@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,290 @@
1
+ import { AsyncLocalStorage } from "node:async_hooks";
2
+ import { EventEmitter } from "node:events";
3
+ import {} from "./channel";
4
+ import { ProcedureGraph } from "./procedure-graph";
5
+ import { ContextError } from "@tentickle/shared";
6
+ const storage = new AsyncLocalStorage();
7
+ /**
8
+ * Global event subscribers that receive ALL context events across all contexts.
9
+ * Use `Context.subscribeGlobal()` to register a subscriber.
10
+ */
11
+ const globalSubscribers = new Set();
12
+ /**
13
+ * Static class for managing execution context via AsyncLocalStorage.
14
+ *
15
+ * Context flows automatically through all async operations without explicit passing.
16
+ * Use `Context.run()` to establish context, and `Context.get()` to access it.
17
+ *
18
+ * @example Basic usage
19
+ * ```typescript
20
+ * // Create and run with context
21
+ * const ctx = Context.create({ user: { id: 'user-1' } });
22
+ * await Context.run(ctx, async () => {
23
+ * const current = Context.get();
24
+ * console.log(current.user?.id); // 'user-1'
25
+ *
26
+ * // Context flows to nested calls
27
+ * await someAsyncFunction(); // Can access Context.get() inside
28
+ * });
29
+ * ```
30
+ *
31
+ * @example Parallel execution with child contexts
32
+ * ```typescript
33
+ * // Each parallel task gets its own context to avoid races
34
+ * const [a, b] = await Promise.all([
35
+ * Context.fork({ procedurePid: 'task-1' }, () => doTask1()),
36
+ * Context.fork({ procedurePid: 'task-2' }, () => doTask2()),
37
+ * ]);
38
+ * ```
39
+ *
40
+ * @example Emitting events
41
+ * ```typescript
42
+ * // Events go to both global bus and operation handle
43
+ * Context.emit('progress', { percent: 50 }, 'my-tool');
44
+ * ```
45
+ *
46
+ * @see {@link KernelContext} - The context interface
47
+ * @see {@link context} - Brand an object as context for procedure detection
48
+ */
49
+ export class Context {
50
+ /**
51
+ * Creates a new root context with default values.
52
+ *
53
+ * @param overrides - Partial context to merge with defaults
54
+ * @returns A new KernelContext
55
+ *
56
+ * @example
57
+ * ```typescript
58
+ * const ctx = Context.create({
59
+ * user: { id: 'user-1' },
60
+ * metadata: { feature: 'chat' }
61
+ * });
62
+ * ```
63
+ */
64
+ static create(overrides = {}) {
65
+ return this.brand({
66
+ requestId: overrides.requestId ?? crypto.randomUUID(),
67
+ traceId: overrides.traceId ?? crypto.randomUUID(),
68
+ metadata: overrides.metadata ?? {},
69
+ metrics: {},
70
+ events: new EventEmitter(),
71
+ user: overrides.user,
72
+ signal: overrides.signal,
73
+ executionHandle: overrides.executionHandle,
74
+ // Tentickle middleware registry (for context-based middleware resolution)
75
+ middleware: overrides.middleware,
76
+ // Execution context fields (Phase 3)
77
+ executionId: overrides.executionId,
78
+ executionType: overrides.executionType,
79
+ parentExecutionId: overrides.parentExecutionId,
80
+ });
81
+ }
82
+ static brand(ctx) {
83
+ if (!isKernelContext(ctx)) {
84
+ return { ...ctx, [KERNEL_CONTEXT_SYMBOL]: true };
85
+ }
86
+ return ctx;
87
+ }
88
+ /**
89
+ * Runs a function within the given context.
90
+ * All async operations within `fn` will have access to this context.
91
+ *
92
+ * @param context - The context to run within
93
+ * @param fn - Async function to execute
94
+ * @returns The result of the function
95
+ */
96
+ static run(ctx, fn) {
97
+ return storage.run((isKernelContext(ctx) ? ctx : Context.create(ctx)), fn);
98
+ }
99
+ /**
100
+ * Creates a child context that inherits from the current context (or creates a new root).
101
+ * The child context is a shallow copy - objects like `events`, `procedureGraph`, and `channels`
102
+ * are shared with the parent (intentionally, for coordination).
103
+ *
104
+ * Scalar values like `procedurePid`, `procedureNode`, and `origin` can be safely
105
+ * overridden in the child without affecting the parent.
106
+ *
107
+ * @param overrides - Properties to override in the child context
108
+ * @returns A new context object inheriting from the current context
109
+ *
110
+ * @example
111
+ * ```typescript
112
+ * // Create child context with new procedure ID
113
+ * const childCtx = Context.child({ procedurePid: 'new-pid' });
114
+ * await Context.run(childCtx, async () => {
115
+ * // This context has its own procedurePid but shares events, graph, etc.
116
+ * });
117
+ * ```
118
+ */
119
+ static child(overrides = {}) {
120
+ const parent = Context.tryGet();
121
+ if (!parent) {
122
+ // No parent context - create a new root context
123
+ return Context.create(overrides);
124
+ }
125
+ // Create shallow copy of parent, then apply overrides
126
+ return this.brand({
127
+ ...parent,
128
+ ...overrides,
129
+ });
130
+ }
131
+ /**
132
+ * Creates a child context and runs a function within it.
133
+ * Convenience method combining `child()` and `run()`.
134
+ *
135
+ * This is the safe way to run parallel procedures - each gets its own
136
+ * context object so mutations don't race.
137
+ *
138
+ * @param overrides - Properties to override in the child context
139
+ * @param fn - Function to run within the child context
140
+ * @returns The result of the function
141
+ *
142
+ * @example
143
+ * ```typescript
144
+ * // Run parallel procedures safely
145
+ * const [result1, result2] = await Promise.all([
146
+ * Context.fork({ procedurePid: 'proc-1' }, async () => doWork1()),
147
+ * Context.fork({ procedurePid: 'proc-2' }, async () => doWork2()),
148
+ * ]);
149
+ * ```
150
+ */
151
+ static fork(overrides, fn) {
152
+ const childCtx = Context.child(overrides);
153
+ return Context.run(childCtx, fn);
154
+ }
155
+ /**
156
+ * Gets the current context. Throws if not found.
157
+ */
158
+ static get() {
159
+ const store = storage.getStore();
160
+ if (!store) {
161
+ throw ContextError.notFound();
162
+ }
163
+ return store;
164
+ }
165
+ /**
166
+ * Gets the current context or returns undefined if not found.
167
+ */
168
+ static tryGet() {
169
+ return storage.getStore();
170
+ }
171
+ /**
172
+ * Set the current tick number in the context.
173
+ * Called by the engine at the start of each tick.
174
+ */
175
+ static setTick(tick) {
176
+ const ctx = this.tryGet();
177
+ if (ctx) {
178
+ ctx.tick = tick;
179
+ }
180
+ }
181
+ /**
182
+ * Helper to emit an event on the current context.
183
+ * Events are broadcast to:
184
+ * 1. The context's local event bus (ctx.events)
185
+ * 2. The operation handle (ctx.executionHandle) if present
186
+ * 3. All global subscribers registered via subscribeGlobal()
187
+ */
188
+ static emit(type, payload, source = "system") {
189
+ const ctx = this.tryGet();
190
+ if (ctx) {
191
+ const event = {
192
+ type,
193
+ payload,
194
+ timestamp: Date.now(),
195
+ source,
196
+ // Correlation IDs for distributed tracing
197
+ traceId: ctx.traceId,
198
+ requestId: ctx.requestId,
199
+ // Execution context (for execution tree building)
200
+ executionId: ctx.executionId,
201
+ parentExecutionId: ctx.parentExecutionId,
202
+ procedureId: ctx.procedurePid,
203
+ tick: ctx.tick,
204
+ // User context (for multi-tenant telemetry)
205
+ userId: ctx.user?.id,
206
+ tenantId: ctx.user?.tenantId,
207
+ };
208
+ // 1. Emit to the Global Request Bus
209
+ ctx.events.emit(type, event);
210
+ ctx.events.emit("*", event);
211
+ // 2. Emit to the Operation Handle (if exists and is an EventEmitter)
212
+ if (ctx.executionHandle) {
213
+ ctx.executionHandle.emit?.(type, event);
214
+ ctx.executionHandle.emit?.("*", event);
215
+ }
216
+ // 3. Emit to global subscribers (for DevTools, telemetry, etc.)
217
+ for (const subscriber of globalSubscribers) {
218
+ try {
219
+ subscriber(event, ctx);
220
+ }
221
+ catch {
222
+ // Silently ignore subscriber errors - don't break execution
223
+ }
224
+ }
225
+ }
226
+ }
227
+ /**
228
+ * Subscribe to ALL context events globally.
229
+ * This is useful for observability tools like DevTools that need to see
230
+ * all procedure:start/end/error events across all contexts.
231
+ *
232
+ * @param handler - Callback that receives every event with its context
233
+ * @returns Unsubscribe function
234
+ *
235
+ * @example
236
+ * ```typescript
237
+ * const unsubscribe = Context.subscribeGlobal((event, ctx) => {
238
+ * if (event.type === 'procedure:start') {
239
+ * console.log(`Procedure ${event.payload.name} started`);
240
+ * }
241
+ * });
242
+ *
243
+ * // Later, to stop receiving events:
244
+ * unsubscribe();
245
+ * ```
246
+ */
247
+ static subscribeGlobal(handler) {
248
+ globalSubscribers.add(handler);
249
+ return () => {
250
+ globalSubscribers.delete(handler);
251
+ };
252
+ }
253
+ /**
254
+ * Check if there are any global subscribers.
255
+ * Useful for conditional event emission to avoid overhead when no one is listening.
256
+ */
257
+ static hasGlobalSubscribers() {
258
+ return globalSubscribers.size > 0;
259
+ }
260
+ }
261
+ export class ContextProvider {
262
+ withContext(context, fn) {
263
+ return Context.run(Context.create(context), async () => await fn());
264
+ }
265
+ }
266
+ /**
267
+ * Symbol used to brand context objects for deterministic detection.
268
+ * This allows procedures to distinguish context from regular arguments.
269
+ */
270
+ export const KERNEL_CONTEXT_SYMBOL = Symbol.for("@tentickle/kernel.context");
271
+ /**
272
+ * Brand a context object with a Symbol for deterministic detection.
273
+ * This allows procedures to deterministically identify context vs regular args.
274
+ *
275
+ * @example
276
+ * ```typescript
277
+ * await proc(input, agent, context({ traceId: "123" }));
278
+ * ```
279
+ */
280
+ export function context(ctx) {
281
+ return Context.brand(ctx);
282
+ }
283
+ /**
284
+ * Check if an object is a branded context (deterministic check via Symbol).
285
+ * This is 100% reliable - no heuristics needed.
286
+ */
287
+ export function isKernelContext(obj) {
288
+ return obj != null && typeof obj === "object" && KERNEL_CONTEXT_SYMBOL in obj;
289
+ }
290
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/core/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,212 @@
1
+ /**
2
+ * EventBuffer - Typed event stream with channel-based subscriptions
3
+ *
4
+ * A streaming primitive that combines EventEmitter's channel model with:
5
+ * - **Type-safe channels**: Event `type` property IS the channel name
6
+ * - **Narrowed handlers**: `on('delta', h)` gives handler the narrowed type
7
+ * - **Dual consumption**: Multiple consumers see all events independently
8
+ * - **Replay support**: Late subscribers receive buffered events
9
+ * - **Async iteration**: `for await (const event of buffer)`
10
+ *
11
+ * Events must have a `type` property that acts as the channel discriminator.
12
+ * This aligns with discriminated union patterns common in TypeScript.
13
+ *
14
+ * @module tentickle/core/event-buffer
15
+ */
16
+ /**
17
+ * Constraint for events - must have a type discriminator.
18
+ */
19
+ export type TypedEvent = {
20
+ type: string;
21
+ };
22
+ /**
23
+ * Maps event union to a record keyed by type.
24
+ * Extracts the specific event shape for each type.
25
+ */
26
+ export type EventMap<T extends TypedEvent> = {
27
+ [K in T["type"]]: Extract<T, {
28
+ type: K;
29
+ }>;
30
+ };
31
+ /**
32
+ * Handler function for events.
33
+ */
34
+ export type EventHandler<T> = (event: T) => void;
35
+ /**
36
+ * Unsubscribe function returned by on/once.
37
+ */
38
+ export type Unsubscribe = () => void;
39
+ /**
40
+ * EventBuffer enables typed, channel-based event streaming.
41
+ *
42
+ * The event's `type` property IS the channel. Subscribing to 'delta'
43
+ * means you only receive events where `event.type === 'delta'`.
44
+ *
45
+ * @example Basic usage with channels
46
+ * ```typescript
47
+ * type StreamEvent =
48
+ * | { type: 'delta'; value: string }
49
+ * | { type: 'complete'; result: any };
50
+ *
51
+ * const buffer = new EventBuffer<StreamEvent>();
52
+ *
53
+ * // Subscribe to specific channel - handler gets narrowed type
54
+ * buffer.on('delta', (event) => {
55
+ * console.log(event.value); // TypeScript knows: { type: 'delta', value: string }
56
+ * });
57
+ *
58
+ * // Subscribe to all events
59
+ * buffer.on((event) => {
60
+ * console.log(event); // StreamEvent union
61
+ * });
62
+ *
63
+ * // Emit - type can be first arg (event.type omitted) or in event object
64
+ * buffer.emit('delta', { value: 'Hello' });
65
+ * buffer.emit({ type: 'complete', result: 42 });
66
+ * ```
67
+ *
68
+ * @example Late subscriber with replay
69
+ * ```typescript
70
+ * buffer.emit('delta', { value: 'first' });
71
+ * buffer.emit('delta', { value: 'second' });
72
+ *
73
+ * // Late subscriber gets all past 'delta' events replayed
74
+ * buffer.onReplay('delta', (e) => console.log(e.value));
75
+ * // logs: 'first', 'second'
76
+ * ```
77
+ *
78
+ * @example Async iteration
79
+ * ```typescript
80
+ * for await (const event of buffer) {
81
+ * if (event.type === 'complete') break;
82
+ * console.log(event);
83
+ * }
84
+ * ```
85
+ */
86
+ export declare class EventBuffer<T extends TypedEvent> {
87
+ private buffer;
88
+ private subscribers;
89
+ private waiters;
90
+ private _closed;
91
+ private _error;
92
+ /**
93
+ * Push an event into the buffer.
94
+ * Notifies subscribers for this event's type and wildcard subscribers.
95
+ */
96
+ push(event: T): void;
97
+ /**
98
+ * Emit an event (two-param form: type + event without type property).
99
+ * @returns true if there were listeners
100
+ */
101
+ emit<K extends T["type"]>(eventType: K, event: Omit<EventMap<T>[K], "type">): boolean;
102
+ /**
103
+ * Emit an event with wildcard (backwards compat with EventEmitter).
104
+ * The event must be a full event object with type property.
105
+ * @returns true if there were listeners
106
+ */
107
+ emit(eventType: "*", event: T): boolean;
108
+ /**
109
+ * Emit an event (one-param form: full event object with type).
110
+ * @returns true if there were listeners
111
+ */
112
+ emit(event: T): boolean;
113
+ /**
114
+ * Subscribe to events of a specific type.
115
+ * Handler receives the narrowed type for that event.
116
+ * @returns Unsubscribe function
117
+ */
118
+ on<K extends T["type"]>(eventType: K, handler: EventHandler<EventMap<T>[K]>): Unsubscribe;
119
+ /**
120
+ * Subscribe to all events (wildcard).
121
+ * Pass "*" or no event type for wildcard subscription.
122
+ * @returns Unsubscribe function
123
+ */
124
+ on(eventType: "*", handler: EventHandler<T>): Unsubscribe;
125
+ on(handler: EventHandler<T>): Unsubscribe;
126
+ /**
127
+ * Subscribe for a single event of a specific type.
128
+ * @returns Unsubscribe function
129
+ */
130
+ once<K extends T["type"]>(eventType: K, handler: EventHandler<EventMap<T>[K]>): Unsubscribe;
131
+ /**
132
+ * Subscribe for a single event (any type).
133
+ * Pass "*" or no event type for wildcard subscription.
134
+ * @returns Unsubscribe function
135
+ */
136
+ once(eventType: "*", handler: EventHandler<T>): Unsubscribe;
137
+ once(handler: EventHandler<T>): Unsubscribe;
138
+ /**
139
+ * Unsubscribe a handler from a specific event type.
140
+ * @returns true if handler was found and removed
141
+ */
142
+ off<K extends T["type"]>(eventType: K, handler: EventHandler<EventMap<T>[K]>): boolean;
143
+ /**
144
+ * Unsubscribe a wildcard handler.
145
+ * Pass "*" or no event type for wildcard.
146
+ * @returns true if handler was found and removed
147
+ */
148
+ off(eventType: "*", handler: EventHandler<T>): boolean;
149
+ off(handler: EventHandler<T>): boolean;
150
+ /**
151
+ * Subscribe to a specific event type and replay all buffered events of that type.
152
+ * @returns Unsubscribe function
153
+ */
154
+ onReplay<K extends T["type"]>(eventType: K, handler: EventHandler<EventMap<T>[K]>): Unsubscribe;
155
+ /**
156
+ * Subscribe to all events and replay entire buffer.
157
+ * @returns Unsubscribe function
158
+ */
159
+ onReplay(handler: EventHandler<T>): Unsubscribe;
160
+ private addSubscriber;
161
+ private removeSubscriber;
162
+ /**
163
+ * Close the buffer (no more events).
164
+ * Completes all async iterators gracefully.
165
+ */
166
+ close(): void;
167
+ /**
168
+ * Close with an error.
169
+ * All waiting iterators will throw this error.
170
+ */
171
+ error(err: Error): void;
172
+ /** Whether the buffer is closed. */
173
+ get closed(): boolean;
174
+ /** Error that closed the buffer (if any). */
175
+ get errorValue(): Error | null;
176
+ /** Number of buffered events. */
177
+ get length(): number;
178
+ /** Total number of active subscribers across all channels. */
179
+ get listenerCount(): number;
180
+ private getTotalListenerCount;
181
+ /** Get listener count for a specific event type. */
182
+ getListenerCount<K extends T["type"]>(eventType: K): number;
183
+ /** Get wildcard listener count. */
184
+ getListenerCount(): number;
185
+ /** Get all buffered events (readonly). */
186
+ getBuffer(): readonly T[];
187
+ /** Get buffered events of a specific type. */
188
+ getBufferByType<K extends T["type"]>(eventType: K): readonly EventMap<T>[K][];
189
+ /** Convert buffer to array (copy). */
190
+ toArray(): T[];
191
+ /**
192
+ * Async iterator that replays all events then waits for new ones.
193
+ *
194
+ * Multiple iterators can exist simultaneously - each sees all events.
195
+ */
196
+ [Symbol.asyncIterator](): AsyncGenerator<T, void, unknown>;
197
+ /**
198
+ * Create a filtered async iterator for a specific event type.
199
+ */
200
+ filter<K extends T["type"]>(eventType: K): AsyncGenerator<EventMap<T>[K], void, unknown>;
201
+ /** Alias for on() (EventEmitter compatibility) */
202
+ addListener<K extends T["type"]>(eventType: K, handler: EventHandler<EventMap<T>[K]>): Unsubscribe;
203
+ addListener(handler: EventHandler<T>): Unsubscribe;
204
+ /** Alias for off() (EventEmitter compatibility) */
205
+ removeListener<K extends T["type"]>(eventType: K, handler: EventHandler<EventMap<T>[K]>): boolean;
206
+ removeListener(handler: EventHandler<T>): boolean;
207
+ /** @deprecated Use `on()` instead */
208
+ subscribe(handler: EventHandler<T>): Unsubscribe;
209
+ /** @deprecated Use `onReplay()` instead */
210
+ subscribeWithReplay(handler: EventHandler<T>): Unsubscribe;
211
+ }
212
+ //# sourceMappingURL=event-buffer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-buffer.d.ts","sourceRoot":"","sources":["../../src/core/event-buffer.ts"],"names":[],"mappings":"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"}