@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,684 @@
1
+ import type { Channel } from "@agentick/kernel";
2
+ import { ChannelSession, type ChannelEvent, type ChannelServiceInterface } from "@agentick/kernel";
3
+ import type { EngineContext } from "../types";
4
+ export { Channel, ChannelSession, type ChannelEvent, type ChannelServiceInterface, type ChannelTarget, } from "@agentick/kernel";
5
+ /**
6
+ * Connection metadata for routing decisions.
7
+ * Provided when connecting, used by transport for auto-join and routing.
8
+ */
9
+ export interface ConnectionMetadata {
10
+ /** User ID - for auto-joining user rooms */
11
+ userId?: string;
12
+ /** Tenant ID - for auto-joining tenant rooms */
13
+ tenantId?: string;
14
+ /** Any additional metadata for custom routing */
15
+ [key: string]: unknown;
16
+ }
17
+ /**
18
+ * Configuration for ChannelTransport.
19
+ */
20
+ export interface ChannelTransportConfig {
21
+ /**
22
+ * Auto-join rooms based on connection metadata.
23
+ * Called on connect with the connection's metadata.
24
+ * Return array of room names to automatically join.
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * autoJoinRooms: (meta) => [
29
+ * meta.userId && `user:${meta.userId}`,
30
+ * meta.tenantId && `tenant:${meta.tenantId}`,
31
+ * ].filter(Boolean)
32
+ * ```
33
+ */
34
+ autoJoinRooms?: (metadata: ConnectionMetadata) => string[];
35
+ }
36
+ /**
37
+ * Transport adapter for external communication (e.g., SSE, WebSocket).
38
+ * Optional add-on layer - channels work without transport.
39
+ *
40
+ * Supports room-based routing (inspired by Socket.io):
41
+ * - Connections can join/leave rooms
42
+ * - Events can target specific rooms
43
+ * - excludeSender provides "broadcast" semantics (send to others)
44
+ */
45
+ export interface ChannelTransport {
46
+ /**
47
+ * Transport name (e.g., 'sse', 'websocket')
48
+ */
49
+ name: string;
50
+ /**
51
+ * Connect a client with optional metadata.
52
+ * Metadata is used for routing (userId, tenantId, etc.) and auto-join.
53
+ */
54
+ connect(connectionId: string, metadata?: ConnectionMetadata): Promise<void>;
55
+ /**
56
+ * Disconnect a client (or all if no connectionId).
57
+ */
58
+ disconnect(connectionId?: string): Promise<void>;
59
+ /**
60
+ * Send an event through the transport.
61
+ * Routing is determined by event.target:
62
+ * - No target: broadcast to all
63
+ * - target.connectionId: send to specific connection
64
+ * - target.rooms: send to connections in rooms
65
+ * - target.excludeSender: exclude source connection (broadcast pattern)
66
+ */
67
+ send(event: ChannelEvent): Promise<void>;
68
+ /**
69
+ * Register handler for events received from transport.
70
+ */
71
+ onReceive(handler: (event: ChannelEvent) => void): void;
72
+ /**
73
+ * Join a room. Connections in the same room receive room-targeted events.
74
+ */
75
+ join?(connectionId: string, room: string): Promise<void>;
76
+ /**
77
+ * Leave a room.
78
+ */
79
+ leave?(connectionId: string, room: string): Promise<void>;
80
+ /**
81
+ * Get rooms a connection has joined.
82
+ */
83
+ getConnectionRooms?(connectionId: string): string[];
84
+ /**
85
+ * Get connections in a room.
86
+ */
87
+ getRoomConnections?(room: string): string[];
88
+ /**
89
+ * Close all connections.
90
+ */
91
+ closeAll(): void;
92
+ }
93
+ /**
94
+ * Distribution adapter for multi-instance setups (e.g., Redis pub/sub).
95
+ * Optional add-on layer - channels work without distribution.
96
+ *
97
+ * For room-based routing in distributed setups:
98
+ * - Adapter subscribes to room channels (e.g., Redis `room:{roomName}`)
99
+ * - When event.target.rooms is set, adapter publishes to those room channels
100
+ * - Each instance receives and filters to its local connections
101
+ */
102
+ export interface ChannelAdapter {
103
+ /**
104
+ * Adapter name (e.g., 'redis')
105
+ */
106
+ name: string;
107
+ /**
108
+ * Publish event to distribution layer.
109
+ * If event.target.rooms is set, publish to room-specific channels.
110
+ */
111
+ publish(event: ChannelEvent): Promise<void>;
112
+ /**
113
+ * Subscribe to events from distribution layer.
114
+ */
115
+ subscribe(channel: string, handler: (event: ChannelEvent) => void): Promise<() => void>;
116
+ /**
117
+ * Subscribe this instance to a room.
118
+ * Called when a local connection joins a room.
119
+ * Adapter should subscribe to the room's distribution channel (e.g., Redis `room:{room}`).
120
+ */
121
+ joinRoom?(room: string): Promise<void>;
122
+ /**
123
+ * Unsubscribe this instance from a room.
124
+ * Called when no local connections remain in the room.
125
+ */
126
+ leaveRoom?(room: string): Promise<void>;
127
+ /**
128
+ * Close the adapter connection (cleanup on shutdown).
129
+ */
130
+ close?(): Promise<void>;
131
+ }
132
+ /**
133
+ * Channel service configuration.
134
+ */
135
+ export interface ChannelServiceConfig {
136
+ /**
137
+ * Custom session ID generator.
138
+ * Default: Uses user context + conversation ID or trace ID.
139
+ */
140
+ sessionIdGenerator?: (ctx: EngineContext) => string;
141
+ /**
142
+ * Optional transport adapter (e.g., Streamable HTTP, WebSocket).
143
+ */
144
+ transport?: ChannelTransport;
145
+ /**
146
+ * Optional distribution adapter (e.g., Redis pub/sub).
147
+ */
148
+ adapter?: ChannelAdapter;
149
+ /**
150
+ * Session timeout in milliseconds (default: 1 hour).
151
+ * Sessions are cleaned up after inactivity.
152
+ */
153
+ sessionTimeout?: number;
154
+ /**
155
+ * Channel routers to register.
156
+ * Enables handleEvent() dispatch by channel name without if-else chains.
157
+ *
158
+ * @example
159
+ * ```typescript
160
+ * routers: [todoListChannel, scratchpadChannel]
161
+ * ```
162
+ */
163
+ routers?: ChannelRouter<any>[];
164
+ }
165
+ /**
166
+ * Channel Service - Low-level channel infrastructure.
167
+ *
168
+ * ## Architecture
169
+ *
170
+ * ```
171
+ * ┌─────────────────────────────────────────────────────────────────────┐
172
+ * │ Application Layer (recommended) │
173
+ * │ └── ChannelRouter - declarative handlers, context registry, │
174
+ * │ auto-notifications, scoped publishing │
175
+ * ├─────────────────────────────────────────────────────────────────────┤
176
+ * │ Service Layer (escape hatch) │
177
+ * │ └── ChannelService - sessions, direct publish/subscribe, │
178
+ * │ transport & adapter management │
179
+ * ├─────────────────────────────────────────────────────────────────────┤
180
+ * │ Infrastructure Layer │
181
+ * │ ├── Transport - external communication (SSE, WebSocket) │
182
+ * │ └── Adapter - multi-instance distribution (Redis pub/sub) │
183
+ * └─────────────────────────────────────────────────────────────────────┘
184
+ * ```
185
+ *
186
+ * ## Usage
187
+ *
188
+ * **Recommended:** Use `ChannelRouter` for application code.
189
+ * - Register routers with engine: `createEngine({ channels: { routers: [...] } })`
190
+ * - Handle events via `channelService.handleEvent()`
191
+ * - Components register via `router.registerContext()`
192
+ *
193
+ * **Escape hatch:** Direct `ChannelService` methods for advanced cases.
194
+ * - `subscribe()` - low-level channel subscription
195
+ * - `publish()` - low-level event publishing
196
+ *
197
+ * Sessions persist across multiple engine executions.
198
+ */
199
+ export declare class ChannelService implements ChannelServiceInterface {
200
+ private sessions;
201
+ private sessionIdGenerator;
202
+ private transport?;
203
+ private adapter?;
204
+ private sessionTimeout;
205
+ private cleanupInterval?;
206
+ private adapterSubscriptions;
207
+ private routerRegistry;
208
+ constructor(config?: ChannelServiceConfig);
209
+ /**
210
+ * Get the transport adapter (for external access, e.g., HTTP routes).
211
+ */
212
+ getTransport(): ChannelTransport | undefined;
213
+ /**
214
+ * Get a registered channel router by name.
215
+ */
216
+ getRouter<TContext = unknown>(channelName: string): ChannelRouter<TContext> | undefined;
217
+ /**
218
+ * Handle an event by delegating to the appropriate registered router.
219
+ * Eliminates if-else chains in HTTP routes.
220
+ *
221
+ * @param channelName - Name of the channel
222
+ * @param request - Event type and payload
223
+ * @param context - Context passed to the handler
224
+ * @returns Result from the handler (for HTTP response body)
225
+ *
226
+ * @example
227
+ * ```typescript
228
+ * // In HTTP route - no if-else needed
229
+ * const result = await engine.channels?.handleEvent('todo-list',
230
+ * { type: 'create_task', payload },
231
+ * { userId, broadcast: true }
232
+ * );
233
+ * res.json({ success: true, ...result });
234
+ * ```
235
+ */
236
+ handleEvent<TContext = unknown, TResult = unknown>(channelName: string, request: {
237
+ type: string;
238
+ payload: unknown;
239
+ }, rawContext: Record<string, unknown>): Promise<TResult | undefined>;
240
+ /**
241
+ * Get or create a session for the current context.
242
+ */
243
+ getSession(ctx: EngineContext): ChannelSession;
244
+ /**
245
+ * Get or create a channel within the current session.
246
+ */
247
+ getChannel(ctx: EngineContext, channelName: string): Channel;
248
+ /**
249
+ * Low-level: Publish an event to a channel.
250
+ *
251
+ * **Prefer using ChannelRouter.publisher() for application code.**
252
+ * This is an escape hatch for advanced use cases.
253
+ */
254
+ publish(ctx: EngineContext, channelName: string, event: Omit<ChannelEvent, "channel">): void;
255
+ /**
256
+ * Low-level: Subscribe to events on a channel with a handler function.
257
+ *
258
+ * **Prefer using ChannelRouter for application code.**
259
+ * This is an escape hatch for advanced use cases.
260
+ */
261
+ subscribe(ctx: EngineContext, channelName: string, handler: (event: ChannelEvent) => void | Promise<void>): () => void;
262
+ /**
263
+ * Low-level: Subscribe to multiple channels at once.
264
+ *
265
+ * **Prefer using ChannelRouter for application code.**
266
+ * This is an escape hatch for advanced use cases.
267
+ *
268
+ * @param ctx - Engine context
269
+ * @param channelNames - Array of channel names to subscribe to, or '*' for all channels
270
+ * @param handler - Handler function that receives events from any subscribed channel
271
+ * @returns Unsubscribe function
272
+ */
273
+ subscribeToChannels(ctx: EngineContext, channelNames: string[] | "*", handler: (event: ChannelEvent) => void): () => void;
274
+ /**
275
+ * Low-level: Subscribe to events filtered by session ID.
276
+ *
277
+ * **Prefer using ChannelRouter for application code.**
278
+ * This is an escape hatch for advanced use cases.
279
+ *
280
+ * @param ctx - Engine context
281
+ * @param channelName - Channel name to subscribe to, or '*' for all channels
282
+ * @param handler - Handler function that receives filtered events
283
+ * @param options - Optional filter options
284
+ * @returns Unsubscribe function
285
+ */
286
+ subscribeFiltered(ctx: EngineContext, channelName: string | "*", handler: (event: ChannelEvent) => void, options?: {
287
+ sessionId?: string;
288
+ channelFilter?: (channelName: string) => boolean;
289
+ }): () => void;
290
+ /**
291
+ * Wait for a response on a channel (for bidirectional communication).
292
+ */
293
+ waitForResponse(ctx: EngineContext, channelName: string, requestId: string, timeoutMs?: number): Promise<ChannelEvent>;
294
+ /**
295
+ * Setup transport handlers.
296
+ * Forwards events received from transport to local channels.
297
+ */
298
+ private setupTransport;
299
+ /**
300
+ * Setup adapter handlers.
301
+ * Subscribes to channels via adapter and forwards events to local channels.
302
+ */
303
+ private setupAdapter;
304
+ /**
305
+ * Start cleanup interval for expired sessions.
306
+ */
307
+ private startCleanupInterval;
308
+ /**
309
+ * Destroy a session and cleanup resources.
310
+ */
311
+ destroySession(sessionId: string): void;
312
+ /**
313
+ * Cleanup all sessions and resources.
314
+ */
315
+ destroy(): void;
316
+ }
317
+ /**
318
+ * Scope definition for room-based routing and context matching.
319
+ *
320
+ * - ScopeMapping: { prefix: fieldName } - derives scope key from context field
321
+ * - ScopeMapping[]: multiple mappings - registers for all, dedupes on notify
322
+ * - function: (ctx) => fully qualified scope key(s) like 'user:alice'
323
+ *
324
+ * @example
325
+ * ```typescript
326
+ * // Mapping - prefix + field name
327
+ * scope: { user: 'userId' } // → 'user:alice' from ctx.userId
328
+ *
329
+ * // Multiple mappings
330
+ * scope: [{ user: 'userId' }, { thread: 'threadId' }]
331
+ *
332
+ * // Function - returns fully qualified key(s)
333
+ * scope: (ctx) => `user:${ctx.userId}`
334
+ * scope: (ctx) => [`user:${ctx.userId}`, `org:${ctx.orgId}`]
335
+ * ```
336
+ */
337
+ export type ScopeDefinition = ScopeMapping | ScopeMapping[] | ((ctx: any) => string | string[]);
338
+ /**
339
+ * Configuration for ChannelRouter.
340
+ */
341
+ export interface ChannelRouterConfig {
342
+ /**
343
+ * Transport for sending events (SSE, WebSocket, etc.)
344
+ * Can be a transport instance or a getter function.
345
+ */
346
+ transport?: ChannelTransport | (() => ChannelTransport);
347
+ /**
348
+ * Channel service for subscribing to events.
349
+ * Typically injected via setChannelService() when router is registered.
350
+ */
351
+ channelService?: ChannelService | (() => ChannelService);
352
+ /**
353
+ * Scope definition for room-based routing and context matching.
354
+ * Maps scope names to context field names.
355
+ *
356
+ * @example
357
+ * ```typescript
358
+ * // Single scope
359
+ * scope: { user: 'userId' }
360
+ * // → .to(id) broadcasts to 'user:{id}'
361
+ * // → registerContext uses ctx.userId for matching
362
+ *
363
+ * // Multiple scopes
364
+ * scope: { user: 'userId', thread: 'threadId' }
365
+ * // → .scope('user').to(id) broadcasts to 'user:{id}'
366
+ * // → .scope('thread').to(id) broadcasts to 'thread:{id}'
367
+ * // → registerContext uses both for matching
368
+ *
369
+ * // Function (advanced)
370
+ * scope: (ctx) => `user:${ctx.userId}`
371
+ * ```
372
+ */
373
+ scope?: ScopeDefinition | (() => ScopeDefinition);
374
+ /**
375
+ * Builder function to transform raw context (e.g., from HTTP) into TSubscribeContext.
376
+ */
377
+ contextBuilder?: (data: any) => any;
378
+ }
379
+ /**
380
+ * Scope mapping: { prefix: fieldName }
381
+ * Used to derive both room names and scope keys from context.
382
+ *
383
+ * @example
384
+ * ```typescript
385
+ * { user: 'userId' } // → room 'user:alice', scopeKey 'user:alice'
386
+ * ```
387
+ */
388
+ export type ScopeMapping = {
389
+ [prefix: string]: string;
390
+ };
391
+ /**
392
+ * Value or getter function.
393
+ */
394
+ export type ValueOrGetter<T> = T | (() => T);
395
+ /**
396
+ * Scoped publisher - has scope set, needs .to(id) to complete.
397
+ */
398
+ export interface ScopedPublisher {
399
+ /**
400
+ * Set the target ID and get a bound publisher.
401
+ * @param id - Target ID (string or getter function)
402
+ */
403
+ to(id: ValueOrGetter<string>): BoundPublisher;
404
+ }
405
+ /**
406
+ * Bound publisher - ready to send/broadcast.
407
+ */
408
+ export interface BoundPublisher {
409
+ send(event: {
410
+ type: string;
411
+ payload: unknown;
412
+ }): Promise<void>;
413
+ broadcast(event: {
414
+ type: string;
415
+ payload: unknown;
416
+ }, options?: {
417
+ sourceConnectionId?: string;
418
+ }): Promise<void>;
419
+ }
420
+ /**
421
+ * Publisher interface for sending events to channel rooms.
422
+ *
423
+ * @example
424
+ * ```typescript
425
+ * // Given scope config: { user: 'userId', thread: 'threadId' }
426
+ *
427
+ * // Select scope and target
428
+ * publisher.scope('user').to(userId).broadcast(event); // → room 'user:{userId}'
429
+ * publisher.scope('thread').to(threadId).broadcast(event); // → room 'thread:{threadId}'
430
+ *
431
+ * // Direct .to() uses first scope key from config
432
+ * publisher.to(userId).broadcast(event); // → room 'user:{userId}'
433
+ * ```
434
+ */
435
+ export interface ChannelPublisher {
436
+ /**
437
+ * Select which scope mapping to use for routing.
438
+ *
439
+ * @param scopeKey - Key from scope config (e.g., 'user', 'thread')
440
+ */
441
+ scope(scopeKey: string): ScopedPublisher;
442
+ /**
443
+ * Set the target ID directly (uses first scope key from config).
444
+ * Returns a BoundPublisher ready to send/broadcast.
445
+ *
446
+ * @param id - Target ID (string or getter function)
447
+ */
448
+ to(id: ValueOrGetter<string>): BoundPublisher;
449
+ }
450
+ /**
451
+ * Event handler type for ChannelRouter.
452
+ * Receives the event and optional subscribe context.
453
+ *
454
+ * @template TContext - Type of the subscribe context
455
+ */
456
+ export type ChannelEventHandler<TContext = unknown> = (event: ChannelEvent, context: TContext) => any | Promise<any>;
457
+ /**
458
+ * ChannelRouter - Declarative channel event handling and publishing.
459
+ *
460
+ * **This is the recommended way to work with channels in application code.**
461
+ *
462
+ * ## Features
463
+ * - Declarative event handlers via `.on(eventType, handler)`
464
+ * - Scoped publishing via `.publisher().scope('user').to(id).broadcast()`
465
+ * - Execution context registry with auto-notification after handlers return
466
+ * - Auto-cleanup when executions end
467
+ *
468
+ * ## Usage
469
+ *
470
+ * ```typescript
471
+ * // 1. Define router with scope mapping
472
+ * const todoChannel = new ChannelRouter<TodoContext>('todo-list', {
473
+ * scope: { user: 'userId' },
474
+ * })
475
+ * .on('create_task', async (event, ctx) => {
476
+ * return TodoService.createTask(ctx.userId, event.payload);
477
+ * });
478
+ *
479
+ * // 2. Register with engine (injects ChannelService)
480
+ * createEngine({ channels: { routers: [todoChannel] } });
481
+ *
482
+ * // 3. In components - register for auto-notification
483
+ * const publisher = channel.registerContext(ctx, { userId }, (event, result) => {
484
+ * if (result?.success) ctx.setState('tasks', result.tasks);
485
+ * });
486
+ *
487
+ * // 4. Publish events
488
+ * publisher.to(userId).broadcast({ type: 'state_changed', payload });
489
+ *
490
+ * // 5. Cleanup on unmount
491
+ * channel.unregisterContext(ctx);
492
+ * ```
493
+ *
494
+ * @template TSubscribeContext - Type of the context passed to handlers
495
+ */
496
+ /**
497
+ * Callback invoked when a channel event is handled.
498
+ * Receives the event and the handler's result.
499
+ */
500
+ export type ContextEventCallback<TResult = unknown> = (event: ChannelEvent, result: TResult) => void;
501
+ export declare class ChannelRouter<TSubscribeContext = unknown> {
502
+ readonly channel: string;
503
+ private config;
504
+ private handlers;
505
+ private defaultHandler?;
506
+ private errorHandler?;
507
+ /**
508
+ * Registry of execution contexts.
509
+ * Key format: `${executionId}:${scopeKey}`
510
+ * Allows multiple executions to register for same scope, each with own callbacks.
511
+ */
512
+ private contextRegistry;
513
+ constructor(channel: string, config?: ChannelRouterConfig);
514
+ getTransport(): ChannelTransport;
515
+ getChannelService(): ChannelService;
516
+ setChannelService(service: ChannelService): void;
517
+ setTransport(transport: ChannelTransport): void;
518
+ setScope(scope: ScopeDefinition): void;
519
+ setContextBuilder(contextBuilder: (data: any) => any): void;
520
+ /**
521
+ * Register a handler for a specific event type.
522
+ * Handler receives (event, context) where context is built from the request
523
+ * via contextBuilder or passed directly to handle().
524
+ */
525
+ on(eventType: string, handler: ChannelEventHandler<TSubscribeContext>): this;
526
+ /**
527
+ * Register a default handler for unmatched event types.
528
+ */
529
+ default(handler: ChannelEventHandler<TSubscribeContext>): this;
530
+ /**
531
+ * Register an error handler.
532
+ */
533
+ onError(handler: (error: Error, event: ChannelEvent) => void): this;
534
+ /**
535
+ * Handle an incoming event.
536
+ * Called by ChannelService.handleEvent() or directly.
537
+ * Auto-notifies registered execution contexts after handler returns.
538
+ *
539
+ * @param event - The channel event to handle
540
+ * @param context - Context for the handler (required)
541
+ * @returns Result from the handler, or undefined if no handler matched
542
+ */
543
+ handle<TResult = unknown>(event: ChannelEvent, context: TSubscribeContext): Promise<TResult | undefined>;
544
+ /**
545
+ * Build the context for the handler.
546
+ */
547
+ buildContext(data: any): TSubscribeContext;
548
+ /**
549
+ * Check if value is a ScopeMapping (object with string values, not an array or function)
550
+ */
551
+ private isScopeMapping;
552
+ /**
553
+ * Extract scope keys from channel context based on scope config.
554
+ * Returns array of fully qualified keys like 'prefix:value'.
555
+ *
556
+ * @example
557
+ * // scope: { user: 'userId' }, ctx: { userId: 'alice' }
558
+ * // → ['user:alice']
559
+ *
560
+ * // scope: [{ user: 'userId' }, { thread: 'threadId' }], ctx: { userId: 'alice', threadId: '123' }
561
+ * // → ['user:alice', 'thread:123']
562
+ *
563
+ * // scope: (ctx) => `user:${ctx.userId}`, ctx: { userId: 'alice' }
564
+ * // → ['user:alice']
565
+ */
566
+ private getScopeKeys;
567
+ /**
568
+ * Extract scope keys from a single ScopeMapping.
569
+ */
570
+ private extractKeysFromMapping;
571
+ /**
572
+ * Register an execution's context with this channel.
573
+ * When channel events are handled, the onEvent callback is automatically invoked
574
+ * with the event and handler result.
575
+ *
576
+ * @param ctx - Engine context (provides executionHandle for auto-cleanup)
577
+ * @param channelContext - The context to register (used for scope matching)
578
+ * @param onEvent - Callback invoked after handler returns (receives event + result)
579
+ * @returns ChannelPublisher for publishing events
580
+ *
581
+ * @example
582
+ * ```typescript
583
+ * // In component onMount
584
+ * const publisher = channel.registerContext(ctx, { userId }, (event, result) => {
585
+ * if (result?.success) ctx.setState('tasks', result.tasks);
586
+ * });
587
+ * publisher.to(userId).broadcast({ type: 'state_changed', payload });
588
+ *
589
+ * // In component onUnmount
590
+ * channel.unregisterContext(ctx);
591
+ * ```
592
+ */
593
+ registerContext(ctx: EngineContext, channelContext: TSubscribeContext, onEvent?: ContextEventCallback): ChannelPublisher;
594
+ /**
595
+ * Unregister all contexts for an execution.
596
+ * Alternative to storing the returned function from registerContext.
597
+ *
598
+ * @param ctx - Engine context to unregister
599
+ */
600
+ unregisterContext(ctx: EngineContext): void;
601
+ /**
602
+ * Clean up all contexts for a specific execution ID.
603
+ * Called as a fail-safe when execution ends.
604
+ *
605
+ * @param executionId - The execution ID to clean up
606
+ */
607
+ cleanupExecution(executionId: string): void;
608
+ /**
609
+ * Extract the scope key from a registry key.
610
+ * Registry keys are formatted as `${executionId}:${scopeKey}`.
611
+ * We find the first colon and take everything after it as the scopeKey.
612
+ */
613
+ private extractScopeKeyFromRegistryKey;
614
+ /**
615
+ * Execute a callback for each registered context matching scope(s).
616
+ * Scope keys are derived from the provided context (or explicit scopeKey).
617
+ * Deduplicates by executionId - each execution's callback runs at most once.
618
+ *
619
+ * @param scopeKeyOrContext - Either explicit scope key or context to derive scope from
620
+ * @param fn - Callback to execute for each matching context
621
+ *
622
+ * @example
623
+ * ```typescript
624
+ * // Using context (scope derived automatically, supports multiple scopes)
625
+ * channel.forEachContext(ctx, (regCtx) => regCtx.onUpdate?.(result.notes));
626
+ *
627
+ * // Using explicit scope key (single key)
628
+ * channel.forEachContext('user:alice', (regCtx) => regCtx.onUpdate?.(result.notes));
629
+ * ```
630
+ */
631
+ forEachContext(scopeKeyOrContext: string | TSubscribeContext, fn: (ctx: TSubscribeContext) => void): void;
632
+ /**
633
+ * Notify all registered contexts for matching scopes with an event and result.
634
+ * Called automatically by handle() after handler returns.
635
+ * Deduplicates by executionId - each execution's callback runs at most once.
636
+ *
637
+ * @param context - Context to derive scope from
638
+ * @param event - The channel event
639
+ * @param result - The handler's result
640
+ */
641
+ private notifyRegisteredContexts;
642
+ /**
643
+ * Get the number of registered contexts (for debugging/monitoring).
644
+ */
645
+ getRegisteredContextCount(): number;
646
+ /**
647
+ * Resolve a value or getter function.
648
+ */
649
+ private resolve;
650
+ /**
651
+ * Get the scope prefix for a given scope key.
652
+ * If scopeKey is provided, uses that key from the mapping.
653
+ * Otherwise uses the first key from the mapping.
654
+ *
655
+ * Note: Function scopes are not supported for publishing via .scope()/.to() -
656
+ * use mapping syntax instead: { user: 'userId' }
657
+ */
658
+ private getScopePrefix;
659
+ /**
660
+ * Create a scoped publisher (has scope prefix set, needs .to(id)).
661
+ */
662
+ private createScopedPublisherForKey;
663
+ /**
664
+ * Create a bound publisher for a specific scope prefix.
665
+ */
666
+ private createBoundPublisherForPrefix;
667
+ /**
668
+ * Internal send with explicit scope prefix and id.
669
+ */
670
+ private sendInternalWithPrefix;
671
+ /**
672
+ * Create a publisher interface for this channel.
673
+ */
674
+ private createPublisher;
675
+ /**
676
+ * Get a publisher without subscribing (for services that only publish).
677
+ */
678
+ publisher(): ChannelPublisher;
679
+ }
680
+ /**
681
+ * Factory function to create a ChannelRouter with common defaults.
682
+ */
683
+ export declare function createChannelRouter(channel: string, config?: ChannelRouterConfig): ChannelRouter;
684
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/channels/service.ts"],"names":[],"mappings":"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"}