@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,403 @@
1
+ /**
2
+ * Tool Creation
3
+ *
4
+ * createTool() returns a ToolClass that can be:
5
+ * 1. Passed directly to models: engine.execute({ tools: [MyTool] })
6
+ * 2. Run directly: await MyTool.run(input)
7
+ * 3. Used in JSX: <MyTool />
8
+ *
9
+ * Core tool types (ToolMetadata, ToolDefinition, ExecutableTool, etc.)
10
+ * are defined in types.ts to keep them centralized.
11
+ */
12
+ import React from "react";
13
+ import type { ExtractArgs, Middleware, Procedure } from "@agentick/kernel";
14
+ import type { ProviderToolOptions, LibraryToolOptions } from "../types";
15
+ import { ToolExecutionType, ToolIntent, type ClientToolDefinition, type ToolDefinition as BaseToolDefinition } from "@agentick/shared/tools";
16
+ import type { ContentBlock } from "@agentick/shared/blocks";
17
+ import { type RecoveryAction, type TickState } from "../component/component";
18
+ import type { TickResult } from "../hooks/types";
19
+ import type { COM } from "../com/object-model";
20
+ import type { COMInput } from "../com/types";
21
+ import type { JSX } from "../jsx/jsx-runtime";
22
+ import type { ComponentBaseProps } from "../jsx/jsx-types";
23
+ import type { CompiledStructure } from "../compiler/types";
24
+ export { ToolIntent, ToolExecutionType, type ToolCall, type ToolResult, type ToolConfirmationResult, } from "@agentick/shared/tools";
25
+ export type { ToolConfirmationResponse } from "@agentick/shared";
26
+ export type { BaseToolDefinition, ClientToolDefinition };
27
+ /**
28
+ * Version-agnostic Zod schema type.
29
+ * Allows different Zod versions to work together without "excessively deep" errors.
30
+ */
31
+ export interface ZodSchema<T = unknown> {
32
+ parse: (data: unknown) => T;
33
+ safeParse: (data: unknown) => {
34
+ success: boolean;
35
+ data?: T;
36
+ error?: unknown;
37
+ };
38
+ _output: T;
39
+ }
40
+ /**
41
+ * Tool handler function signature.
42
+ * Takes typed input and an optional COM for accessing agent state.
43
+ *
44
+ * When called during agent execution (model calls the tool), `ctx` is provided.
45
+ * When called directly via `MyTool.run(input)`, `ctx` is undefined.
46
+ */
47
+ export type ToolHandler<TInput = any, TOutput extends ContentBlock[] = ContentBlock[]> = (input: TInput, ctx?: COM) => TOutput | Promise<TOutput>;
48
+ /**
49
+ * Options for createTool().
50
+ *
51
+ * Mirrors ToolMetadata but with additional creation-time options
52
+ * (handler, middleware, component lifecycle hooks).
53
+ */
54
+ export interface CreateToolOptions<TInput = any, TOutput extends ContentBlock[] = ContentBlock[]> {
55
+ /** Tool name (used by model to call the tool) */
56
+ name: string;
57
+ /** Description shown to the model */
58
+ description: string;
59
+ /** Zod schema for input validation */
60
+ input: ZodSchema<TInput>;
61
+ /**
62
+ * Optional Zod schema for output validation.
63
+ * Used for type-safe tool composition, workflow orchestration,
64
+ * and runtime validation of handler return values.
65
+ */
66
+ output?: ZodSchema<TOutput>;
67
+ /**
68
+ * Handler function that executes the tool.
69
+ * Receives typed input and an optional COM for accessing agent state.
70
+ *
71
+ * When called during agent execution, `ctx` is provided so the handler
72
+ * can set state, publish to channels, read context, etc.
73
+ * When called directly via `MyTool.run(input)`, `ctx` is undefined.
74
+ *
75
+ * Optional for CLIENT and PROVIDER tools (no server-side execution).
76
+ *
77
+ * @example
78
+ * ```typescript
79
+ * handler: async (input, ctx) => {
80
+ * const result = doSomething(input);
81
+ * ctx?.setState("lastResult", result);
82
+ * return [{ type: "text", text: JSON.stringify(result) }];
83
+ * }
84
+ * ```
85
+ */
86
+ handler?: ToolHandler<TInput, TOutput>;
87
+ /**
88
+ * Execution type (SERVER, CLIENT, MCP, PROVIDER).
89
+ * Default: SERVER
90
+ */
91
+ type?: ToolExecutionType;
92
+ /**
93
+ * Tool intent (RENDER, ACTION, COMPUTE).
94
+ * Helps clients decide how to handle/render tool calls.
95
+ * Default: COMPUTE
96
+ */
97
+ intent?: ToolIntent;
98
+ /**
99
+ * Whether execution should wait for client response.
100
+ * Only applicable for CLIENT type tools.
101
+ * - true: Server pauses until tool_result received (e.g., forms)
102
+ * - false: Server continues with defaultResult (e.g., charts)
103
+ * Default: false
104
+ */
105
+ requiresResponse?: boolean;
106
+ /**
107
+ * Timeout in ms when waiting for client response.
108
+ * Only applicable when requiresResponse is true.
109
+ * Default: 30000
110
+ */
111
+ timeout?: number;
112
+ /**
113
+ * Default result when requiresResponse is false.
114
+ * Returned immediately for render tools.
115
+ * Default: [{ type: 'text', text: '[{name} rendered on client]' }]
116
+ */
117
+ defaultResult?: ContentBlock[];
118
+ /**
119
+ * Whether execution requires user confirmation before running.
120
+ * Applies to any tool type (SERVER, CLIENT, MCP).
121
+ *
122
+ * - boolean: Always require (true) or never require (false)
123
+ * - function: Conditional - receives input, returns whether confirmation needed.
124
+ * Can be async to check persisted "always allow" state.
125
+ * Use Context.get() inside the function to access execution context.
126
+ *
127
+ * Default: false
128
+ *
129
+ * @example
130
+ * ```typescript
131
+ * // Always require confirmation
132
+ * requiresConfirmation: true,
133
+ *
134
+ * // Conditional - check persisted preferences
135
+ * requiresConfirmation: async (input) => {
136
+ * const ctx = context();
137
+ * const prefs = await getPrefs(ctx.user?.id);
138
+ * return !prefs.alwaysAllow.includes('my_tool');
139
+ * },
140
+ * ```
141
+ */
142
+ requiresConfirmation?: boolean | ((input: TInput) => boolean | Promise<boolean>);
143
+ /**
144
+ * Message to show user when requesting confirmation.
145
+ * Can be a string or a function that receives the input.
146
+ * Default: "Allow {tool_name} to execute?"
147
+ *
148
+ * @example
149
+ * ```typescript
150
+ * confirmationMessage: (input) => `Delete file "${input.path}"?`,
151
+ * ```
152
+ */
153
+ confirmationMessage?: string | ((input: TInput) => string);
154
+ /**
155
+ * Provider-specific tool options.
156
+ * Keyed by provider name (openai, google, anthropic, etc.).
157
+ * Used by adapters when converting tools.
158
+ */
159
+ providerOptions?: ProviderToolOptions;
160
+ /**
161
+ * MCP server configuration (for MCP tools).
162
+ */
163
+ mcpConfig?: {
164
+ serverUrl?: string;
165
+ serverName?: string;
166
+ transport?: "stdio" | "sse" | "websocket";
167
+ [key: string]: any;
168
+ };
169
+ /** Middleware applied to handler execution */
170
+ middleware?: Middleware[];
171
+ onMount?: (ctx: COM) => void | Promise<void>;
172
+ onUnmount?: (ctx: COM) => void | Promise<void>;
173
+ onStart?: (ctx: COM) => void | Promise<void>;
174
+ onTickStart?: (tickState: TickState, ctx: COM) => void | Promise<void>;
175
+ onTickEnd?: (result: TickResult, ctx: COM) => void | Promise<void>;
176
+ onComplete?: (finalState: COMInput, ctx: COM) => void | Promise<void>;
177
+ onError?: (tickState: TickState, ctx: COM) => RecoveryAction | void;
178
+ render?: (tickState: TickState, ctx: COM) => JSX.Element | null;
179
+ onAfterCompile?: (compiled: CompiledStructure, ctx: COM) => void | Promise<void>;
180
+ }
181
+ /**
182
+ * A ToolClass is both:
183
+ * - An ExecutableTool (via static metadata/run) - can be passed to models
184
+ * - A functional component - can be used in JSX
185
+ *
186
+ * This enables the three usage patterns:
187
+ * - engine.execute({ tools: [MyTool] }) -- passes static metadata/run
188
+ * - await MyTool.run(input) -- calls static run procedure
189
+ * - <MyTool /> -- renders component that registers tool
190
+ */
191
+ export interface ToolClass<TInput = any> {
192
+ /** Tool metadata (static property) */
193
+ metadata: ToolMetadata<TInput>;
194
+ /** Run procedure (static property). Undefined for client-only tools. */
195
+ run?: Procedure<ToolHandler<TInput>>;
196
+ /** Functional component that registers the tool on mount */
197
+ (props?: ComponentBaseProps): React.ReactElement | null;
198
+ }
199
+ /**
200
+ * ToolClass with run guaranteed to be defined (when handler is provided).
201
+ */
202
+ export interface RunnableToolClass<TInput = any> extends ToolClass<TInput> {
203
+ run: Procedure<ToolHandler<TInput>>;
204
+ }
205
+ /**
206
+ * Creates a tool that can be passed to models, run directly, or used in JSX.
207
+ *
208
+ * The returned class has static `metadata` and `run` properties making it
209
+ * a valid ExecutableTool, while also being instantiable as a Component.
210
+ *
211
+ * @example
212
+ * ```typescript
213
+ * const Calculator = createTool({
214
+ * name: 'calculator',
215
+ * description: 'Performs mathematical calculations',
216
+ * input: z.object({
217
+ * expression: z.string().describe('Math expression to evaluate')
218
+ * }),
219
+ * handler: async ({ expression }) => {
220
+ * const result = eval(expression);
221
+ * return [{ type: 'text', text: String(result) }];
222
+ * },
223
+ * });
224
+ *
225
+ * // Pattern 1: Pass to model
226
+ * engine.execute({
227
+ * messages: [...],
228
+ * tools: [Calculator],
229
+ * });
230
+ *
231
+ * // Pattern 2: Run directly
232
+ * const result = await Calculator.run({ expression: '2 + 2' });
233
+ *
234
+ * // Pattern 3: Use in JSX (registers tool when component mounts)
235
+ * function MyAgent() {
236
+ * return (
237
+ * <>
238
+ * <Calculator />
239
+ * <Model />
240
+ * </>
241
+ * );
242
+ * }
243
+ * ```
244
+ *
245
+ * @example Client tool (no handler)
246
+ * ```typescript
247
+ * const RenderChart = createTool({
248
+ * name: 'render_chart',
249
+ * description: 'Renders a chart in the UI',
250
+ * input: z.object({
251
+ * type: z.enum(['line', 'bar', 'pie']),
252
+ * data: z.array(z.object({ label: z.string(), value: z.number() })),
253
+ * }),
254
+ * type: ToolExecutionType.CLIENT,
255
+ * intent: ToolIntent.RENDER,
256
+ * requiresResponse: false,
257
+ * defaultResult: [{ type: 'text', text: '[Chart rendered]' }],
258
+ * });
259
+ * ```
260
+ */
261
+ export declare function createTool<TInput = any, TOutput extends ContentBlock[] = ContentBlock[]>(options: CreateToolOptions<TInput, TOutput> & {
262
+ handler: ToolHandler<TInput>;
263
+ }): RunnableToolClass<TInput>;
264
+ export declare function createTool<TInput = any, TOutput extends ContentBlock[] = ContentBlock[]>(options: CreateToolOptions<TInput, TOutput> & {
265
+ handler?: undefined;
266
+ }): ToolClass<TInput>;
267
+ /**
268
+ * Tool definition in provider-compatible format (JSON Schema).
269
+ * This is what gets passed to model adapters.
270
+ *
271
+ * Extends the base ToolDefinition from @agentick/shared with backend-specific fields.
272
+ */
273
+ export interface ToolDefinition extends BaseToolDefinition {
274
+ /**
275
+ * Provider-specific tool configurations.
276
+ * Keyed by provider name (e.g., 'openai', 'google', 'anthropic').
277
+ * Adapters will use their provider-specific config when converting tools.
278
+ * Each adapter can extend this type using module augmentation.
279
+ */
280
+ providerOptions?: ProviderToolOptions;
281
+ /**
282
+ * Library-specific tool configurations.
283
+ * Keyed by library name (e.g., 'ai-sdk', 'langchain', 'llamaindex').
284
+ * Used by adapters for library-specific tool behavior (timeouts, callbacks, etc.).
285
+ * Each adapter can extend this type using module augmentation.
286
+ */
287
+ libraryOptions?: LibraryToolOptions;
288
+ /**
289
+ * MCP-specific configuration (only relevant if type === 'mcp').
290
+ * Contains connection info and MCP server details.
291
+ */
292
+ mcpConfig?: {
293
+ serverUrl?: string;
294
+ serverName?: string;
295
+ transport?: "stdio" | "sse" | "websocket";
296
+ [key: string]: any;
297
+ };
298
+ }
299
+ export interface ToolMetadata<TInput = any, TOutput = any> {
300
+ name: string;
301
+ description: string;
302
+ input: ZodSchema<TInput>;
303
+ /**
304
+ * Optional Zod schema for output validation.
305
+ * Used for type-safe tool composition and workflow orchestration.
306
+ */
307
+ output?: ZodSchema<TOutput>;
308
+ /**
309
+ * Tool execution type. Determines how the tool is executed.
310
+ * Default: SERVER (engine executes tool.run on server).
311
+ */
312
+ type?: ToolExecutionType;
313
+ /**
314
+ * Tool intent describes what the tool does (render, action, compute).
315
+ * Used by clients to determine how to render/handle tool calls.
316
+ * Default: COMPUTE
317
+ */
318
+ intent?: ToolIntent;
319
+ /**
320
+ * Whether execution should wait for client response.
321
+ * Only applicable for CLIENT type tools.
322
+ * - true: Server pauses and waits for tool_result from client (e.g., forms)
323
+ * - false: Server continues immediately with defaultResult (e.g., charts)
324
+ * Default: false
325
+ */
326
+ requiresResponse?: boolean;
327
+ /**
328
+ * Timeout in milliseconds when waiting for client response.
329
+ * Only applicable when requiresResponse is true.
330
+ * Default: 30000 (30 seconds)
331
+ */
332
+ timeout?: number;
333
+ /**
334
+ * Default result to use when requiresResponse is false.
335
+ * Returned immediately for render tools that don't need client feedback.
336
+ * Default: [{ type: 'text', text: '[{tool_name} rendered on client]' }]
337
+ */
338
+ defaultResult?: ContentBlock[];
339
+ /**
340
+ * Whether execution requires user confirmation before running.
341
+ * Applies to any tool type (SERVER, CLIENT, MCP).
342
+ *
343
+ * - boolean: Always require (true) or never require (false)
344
+ * - function: Conditional - receives input, returns whether confirmation needed.
345
+ * Can be async to check persisted "always allow" state.
346
+ * Use Context.get() inside the function to access execution context.
347
+ *
348
+ * Default: false
349
+ */
350
+ requiresConfirmation?: boolean | ((input: any) => boolean | Promise<boolean>);
351
+ /**
352
+ * Message to show user when requesting confirmation.
353
+ * Can be a string or a function that receives the input.
354
+ * Default: "Allow {tool_name} to execute?"
355
+ */
356
+ confirmationMessage?: string | ((input: any) => string);
357
+ /**
358
+ * Provider-specific tool configurations.
359
+ * Keyed by provider name (e.g., 'openai', 'google', 'anthropic').
360
+ * Preserved when converting to ToolDefinition.
361
+ * Each adapter can extend this type using module augmentation.
362
+ */
363
+ providerOptions?: ProviderToolOptions;
364
+ /**
365
+ * Library-specific tool configurations.
366
+ * Keyed by library name (e.g., 'ai-sdk', 'langchain', 'llamaindex').
367
+ * Used by adapters for library-specific tool behavior (timeouts, callbacks, etc.).
368
+ * Each adapter can extend this type using module augmentation.
369
+ */
370
+ libraryOptions?: LibraryToolOptions;
371
+ /**
372
+ * MCP-specific configuration (only relevant if type === 'mcp').
373
+ * Contains connection info and MCP server details.
374
+ */
375
+ mcpConfig?: {
376
+ serverUrl?: string;
377
+ serverName?: string;
378
+ transport?: "stdio" | "sse" | "websocket";
379
+ [key: string]: any;
380
+ };
381
+ }
382
+ export interface ExecutableTool<THandler extends (input: any, ctx?: COM) => ContentBlock[] | Promise<ContentBlock[]> = (input: any, ctx?: COM) => ContentBlock[] | Promise<ContentBlock[]>> {
383
+ metadata: ToolMetadata<ExtractArgs<THandler>[0]>;
384
+ run?: Procedure<THandler>;
385
+ }
386
+ /**
387
+ * Convert ClientToolDefinition to ToolDefinition for engine use.
388
+ */
389
+ export declare function clientToolToDefinition(clientTool: ClientToolDefinition): ToolDefinition;
390
+ /**
391
+ * Type guard: checks if a value is a ToolClass.
392
+ */
393
+ export declare function isToolClass(value: any): value is ToolClass;
394
+ /**
395
+ * Extract ExecutableTool from a ToolClass.
396
+ * Useful when you need just the metadata/run without the component.
397
+ */
398
+ export declare function toExecutableTool(toolClass: ToolClass): ExecutableTool;
399
+ /**
400
+ * Check if value implements ExecutableTool interface.
401
+ */
402
+ export declare function isExecutableTool(value: any): value is ExecutableTool;
403
+ //# sourceMappingURL=tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/tool/tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,176 @@
1
+ /**
2
+ * Tool Creation
3
+ *
4
+ * createTool() returns a ToolClass that can be:
5
+ * 1. Passed directly to models: engine.execute({ tools: [MyTool] })
6
+ * 2. Run directly: await MyTool.run(input)
7
+ * 3. Used in JSX: <MyTool />
8
+ *
9
+ * Core tool types (ToolMetadata, ToolDefinition, ExecutableTool, etc.)
10
+ * are defined in types.ts to keep them centralized.
11
+ */
12
+ import React, { useEffect, useRef } from "react";
13
+ import { createEngineProcedure, isProcedure } from "../procedure";
14
+ import { ToolExecutionType, ToolIntent, } from "@agentick/shared/tools";
15
+ import {} from "../component/component";
16
+ import { useCom, useTickState, useOnTickStart, useOnTickEnd, useAfterCompile } from "../hooks";
17
+ // Re-export for convenience
18
+ export { ToolIntent, ToolExecutionType, } from "@agentick/shared/tools";
19
+ // Implementation
20
+ export function createTool(options) {
21
+ // Build metadata from options
22
+ const metadata = {
23
+ name: options.name,
24
+ description: options.description,
25
+ input: options.input,
26
+ output: options.output,
27
+ type: options.type,
28
+ intent: options.intent,
29
+ requiresResponse: options.requiresResponse,
30
+ timeout: options.timeout,
31
+ defaultResult: options.defaultResult,
32
+ requiresConfirmation: options.requiresConfirmation,
33
+ confirmationMessage: options.confirmationMessage,
34
+ providerOptions: options.providerOptions,
35
+ mcpConfig: options.mcpConfig,
36
+ };
37
+ // Create run procedure if handler is provided
38
+ const run = options.handler
39
+ ? isProcedure(options.handler)
40
+ ? options.handler
41
+ : createEngineProcedure({
42
+ name: "tool:run", // Low cardinality span name
43
+ metadata: {
44
+ type: "tool",
45
+ toolName: options.name,
46
+ id: options.name,
47
+ operation: "run",
48
+ },
49
+ middleware: options.middleware || [],
50
+ // Execution boundary: tool runs are child executions of the model call
51
+ executionBoundary: "child",
52
+ executionType: "tool",
53
+ }, options.handler)
54
+ : undefined;
55
+ // Create functional component with static tool properties
56
+ // Using a functional component instead of a class ensures compatibility
57
+ // with React's reconciler (class components must extend React.Component)
58
+ const ToolComponent = function ToolComponent(_props) {
59
+ const ctx = useCom();
60
+ // Note: useTickState returns hooks/types.ts TickState, but lifecycle callbacks
61
+ // expect component/component.ts TickState. They're compatible at runtime,
62
+ // so we use type assertion. The hooks version is a simplified subset.
63
+ const tickState = useTickState();
64
+ // Track lifecycle callbacks (should only fire once per component lifecycle)
65
+ const hasCalledMountRef = useRef(false);
66
+ // Call onMount/onStart lifecycle hooks once
67
+ useEffect(() => {
68
+ if (!hasCalledMountRef.current) {
69
+ hasCalledMountRef.current = true;
70
+ if (options.onMount) {
71
+ Promise.resolve(options.onMount(ctx)).catch(console.error);
72
+ }
73
+ if (options.onStart) {
74
+ Promise.resolve(options.onStart(ctx)).catch(console.error);
75
+ }
76
+ }
77
+ return () => {
78
+ if (options.onUnmount) {
79
+ Promise.resolve(options.onUnmount(ctx)).catch(console.error);
80
+ }
81
+ };
82
+ }, [ctx]);
83
+ // Tick lifecycle hooks - data first, ctx last
84
+ if (options.onTickStart) {
85
+ useOnTickStart((hookTickState, hookCtx) => {
86
+ if (options.onTickStart) {
87
+ Promise.resolve(options.onTickStart(hookTickState, hookCtx)).catch(console.error);
88
+ }
89
+ });
90
+ }
91
+ if (options.onTickEnd) {
92
+ useOnTickEnd((result, hookCtx) => {
93
+ if (options.onTickEnd) {
94
+ Promise.resolve(options.onTickEnd(result, hookCtx)).catch(console.error);
95
+ }
96
+ });
97
+ }
98
+ if (options.onAfterCompile) {
99
+ useAfterCompile((compiled, hookCtx) => {
100
+ if (options.onAfterCompile) {
101
+ Promise.resolve(options.onAfterCompile(compiled, hookCtx)).catch(console.error);
102
+ }
103
+ });
104
+ }
105
+ // Render a <tool> element for the collector to find
106
+ // This is the declarative approach - tools are collected from the tree
107
+ const toolElement = React.createElement("tool", {
108
+ name: metadata.name,
109
+ description: metadata.description,
110
+ schema: metadata.input,
111
+ handler: run,
112
+ // Include full metadata for advanced use cases
113
+ metadata,
114
+ });
115
+ // If custom render provided, wrap both tool element and render output
116
+ if (options.render) {
117
+ const renderOutput = options.render(tickState, ctx);
118
+ return React.createElement(React.Fragment, null, toolElement, renderOutput);
119
+ }
120
+ return toolElement;
121
+ };
122
+ // Attach static properties to make it a valid ToolClass
123
+ ToolComponent.metadata = metadata;
124
+ ToolComponent.run = run;
125
+ return ToolComponent;
126
+ }
127
+ // ClientToolDefinition is now exported from '@agentick/shared'
128
+ /**
129
+ * Convert ClientToolDefinition to ToolDefinition for engine use.
130
+ */
131
+ export function clientToolToDefinition(clientTool) {
132
+ return {
133
+ name: clientTool.name,
134
+ description: clientTool.description,
135
+ input: clientTool.input,
136
+ output: clientTool.output,
137
+ type: ToolExecutionType.CLIENT,
138
+ intent: clientTool.intent ?? ToolIntent.RENDER,
139
+ requiresResponse: clientTool.requiresResponse ?? false,
140
+ timeout: clientTool.timeout ?? 30000,
141
+ defaultResult: clientTool.defaultResult ?? [
142
+ { type: "text", text: `[${clientTool.name} rendered on client]` },
143
+ ],
144
+ };
145
+ }
146
+ // ============================================================================
147
+ // Utilities
148
+ // ============================================================================
149
+ /**
150
+ * Type guard: checks if a value is a ToolClass.
151
+ */
152
+ export function isToolClass(value) {
153
+ return value && typeof value === "function" && "metadata" in value && value.metadata?.name;
154
+ }
155
+ /**
156
+ * Extract ExecutableTool from a ToolClass.
157
+ * Useful when you need just the metadata/run without the component.
158
+ */
159
+ export function toExecutableTool(toolClass) {
160
+ return {
161
+ metadata: toolClass.metadata,
162
+ run: toolClass.run,
163
+ };
164
+ }
165
+ /**
166
+ * Check if value implements ExecutableTool interface.
167
+ */
168
+ export function isExecutableTool(value) {
169
+ return (value &&
170
+ typeof value === "object" &&
171
+ "metadata" in value &&
172
+ value.metadata?.name &&
173
+ value.metadata?.description &&
174
+ value.metadata?.input);
175
+ }
176
+ //# sourceMappingURL=tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../src/tool/tool.ts"],"names":[],"mappings":"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"}