@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,199 @@
1
+ import { EventEmitter } from "node:events";
2
+ import { Context } from "./context";
3
+ import { Telemetry } from "./telemetry";
4
+ /**
5
+ * Core Channel primitive.
6
+ * Works standalone in any Node environment.
7
+ * Uses EventEmitter internally for pub/sub.
8
+ */
9
+ export class Channel {
10
+ name;
11
+ emitter = new EventEmitter();
12
+ pendingRequests = new Map();
13
+ // Store recent responses to handle race conditions (response before wait)
14
+ recentResponses = new Map();
15
+ constructor(name) {
16
+ this.name = name;
17
+ }
18
+ /**
19
+ * Publish an event to the channel.
20
+ */
21
+ publish(event) {
22
+ // Ensure channel name matches
23
+ const normalizedEvent = {
24
+ ...event,
25
+ channel: this.name,
26
+ metadata: {
27
+ timestamp: Date.now(),
28
+ ...event.metadata,
29
+ },
30
+ };
31
+ // Track channel events as metrics
32
+ const ctx = Context.tryGet();
33
+ if (ctx?.procedureGraph && ctx.procedurePid) {
34
+ const node = ctx.procedureGraph.get(ctx.procedurePid);
35
+ if (node) {
36
+ // Track as metric in node
37
+ node.addMetric(`channel.${this.name}.events`, 1);
38
+ // Also track in context metrics (for consistency)
39
+ if (ctx.metrics) {
40
+ ctx.metrics[`channel.${this.name}.events`] =
41
+ (ctx.metrics[`channel.${this.name}.events`] || 0) + 1;
42
+ }
43
+ // Send to telemetry immediately
44
+ Telemetry.getCounter(`channel.${this.name}.events`).add(1, {
45
+ channel: this.name,
46
+ event_type: normalizedEvent.type,
47
+ procedure: node.name || "anonymous",
48
+ procedure_pid: node.pid,
49
+ });
50
+ }
51
+ }
52
+ // Emit to all subscribers
53
+ this.emitter.emit("event", normalizedEvent);
54
+ // If this is a response, resolve any pending requests or store for later
55
+ if (normalizedEvent.type === "response" && normalizedEvent.id) {
56
+ const responseId = normalizedEvent.id; // Type guard
57
+ const pending = this.pendingRequests.get(responseId);
58
+ if (pending) {
59
+ clearTimeout(pending.timeout);
60
+ this.pendingRequests.delete(responseId);
61
+ pending.resolve(normalizedEvent);
62
+ }
63
+ else {
64
+ // Store response in case waitForResponse is called later (race condition)
65
+ this.recentResponses.set(responseId, normalizedEvent);
66
+ // Clean up after 5 seconds
67
+ setTimeout(() => {
68
+ this.recentResponses.delete(responseId);
69
+ }, 5000);
70
+ }
71
+ }
72
+ }
73
+ /**
74
+ * Subscribe to events on this channel.
75
+ * @returns Unsubscribe function
76
+ */
77
+ subscribe(handler) {
78
+ this.emitter.on("event", handler);
79
+ return () => {
80
+ this.emitter.off("event", handler);
81
+ };
82
+ }
83
+ /**
84
+ * Wait for a response to a specific request.
85
+ * Used by tools/components for bidirectional communication.
86
+ *
87
+ * @param requestId The request ID to wait for
88
+ * @param timeoutMs Timeout in milliseconds (default: 30000)
89
+ * @returns Promise that resolves when response is received
90
+ */
91
+ waitForResponse(requestId, timeoutMs = 30000) {
92
+ return new Promise((resolve, reject) => {
93
+ // Check if response was already received (race condition: response before wait)
94
+ const cachedResponse = this.recentResponses.get(requestId);
95
+ if (cachedResponse) {
96
+ this.recentResponses.delete(requestId);
97
+ resolve(cachedResponse);
98
+ return;
99
+ }
100
+ const timeout = setTimeout(() => {
101
+ this.pendingRequests.delete(requestId);
102
+ reject(new Error(`Channel "${this.name}": Request "${requestId}" timed out after ${timeoutMs}ms`));
103
+ }, timeoutMs);
104
+ this.pendingRequests.set(requestId, {
105
+ resolve,
106
+ reject,
107
+ timeout,
108
+ });
109
+ // Subscribe to catch responses that arrive after we set up the pending request
110
+ const unsubscribe = this.subscribe((event) => {
111
+ if (event.type === "response" && event.id === requestId) {
112
+ unsubscribe();
113
+ clearTimeout(timeout);
114
+ this.pendingRequests.delete(requestId);
115
+ resolve(event);
116
+ }
117
+ });
118
+ });
119
+ }
120
+ /**
121
+ * Get the number of active subscribers.
122
+ */
123
+ getSubscriberCount() {
124
+ return this.emitter.listenerCount("event");
125
+ }
126
+ /**
127
+ * Cleanup: remove all subscribers and pending requests.
128
+ */
129
+ destroy() {
130
+ // Reject all pending requests
131
+ for (const [requestId, pending] of this.pendingRequests.entries()) {
132
+ clearTimeout(pending.timeout);
133
+ pending.reject(new Error(`Channel "${this.name}" destroyed while waiting for request "${requestId}"`));
134
+ }
135
+ this.pendingRequests.clear();
136
+ // Clear cached responses
137
+ this.recentResponses.clear();
138
+ // Remove all listeners
139
+ this.emitter.removeAllListeners();
140
+ }
141
+ }
142
+ /**
143
+ * Channel session manages a collection of channels.
144
+ * Sessions persist across multiple engine executions.
145
+ */
146
+ export class ChannelSession {
147
+ id;
148
+ channels = new Map();
149
+ createdAt;
150
+ lastActivity;
151
+ constructor(id) {
152
+ this.id = id;
153
+ this.createdAt = Date.now();
154
+ this.lastActivity = Date.now();
155
+ }
156
+ /**
157
+ * Get or create a channel within this session.
158
+ */
159
+ getChannel(name) {
160
+ if (!this.channels.has(name)) {
161
+ this.channels.set(name, new Channel(name));
162
+ }
163
+ this.lastActivity = Date.now();
164
+ return this.channels.get(name);
165
+ }
166
+ /**
167
+ * Remove a channel from the session.
168
+ */
169
+ removeChannel(name) {
170
+ const channel = this.channels.get(name);
171
+ if (channel) {
172
+ channel.destroy();
173
+ this.channels.delete(name);
174
+ }
175
+ }
176
+ /**
177
+ * Default session ID generator.
178
+ * Uses user context + conversation ID or trace ID.
179
+ * Users can override this via ChannelService config.
180
+ */
181
+ static generateId(ctx) {
182
+ const userId = ctx.user?.id || "anonymous";
183
+ // Use conversationId if present and not 'na', otherwise fall back to traceId
184
+ const conversationId = ctx.metadata["conversationId"] && ctx.metadata["conversationId"] !== "na"
185
+ ? ctx.metadata["conversationId"]
186
+ : ctx.traceId;
187
+ return `${userId}-${conversationId}`;
188
+ }
189
+ /**
190
+ * Cleanup all channels in the session.
191
+ */
192
+ destroy() {
193
+ for (const channel of this.channels.values()) {
194
+ channel.destroy();
195
+ }
196
+ this.channels.clear();
197
+ }
198
+ }
199
+ //# sourceMappingURL=channel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/core/channel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,412 @@
1
+ import { EventEmitter } from "node:events";
2
+ import { type ChannelServiceInterface } from "./channel";
3
+ import { ProcedureGraph } from "./procedure-graph";
4
+ import type { ProcedureNode } from "./procedure-graph";
5
+ import type { Middleware } from "./procedure";
6
+ /**
7
+ * User information associated with the current execution context.
8
+ *
9
+ * This is typically populated from authentication/authorization systems
10
+ * and flows through all operations via the `KernelContext`.
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * const ctx = Context.create({
15
+ * user: {
16
+ * id: 'user-123',
17
+ * tenantId: 'tenant-abc',
18
+ * roles: ['admin', 'editor'],
19
+ * email: 'user@example.com', // Custom fields allowed
20
+ * }
21
+ * });
22
+ * ```
23
+ *
24
+ * @see {@link KernelContext.user} - Where user context is stored
25
+ */
26
+ export interface UserContext {
27
+ /** Unique identifier for the user */
28
+ id: string;
29
+ /** Multi-tenant organization identifier */
30
+ tenantId?: string;
31
+ /** User's roles for authorization */
32
+ roles?: string[];
33
+ /** Additional user properties (extensible) */
34
+ [key: string]: any;
35
+ }
36
+ /**
37
+ * Event emitted during procedure execution.
38
+ *
39
+ * Events are emitted to both the global request bus (`ctx.events`)
40
+ * and the operation handle (`ctx.executionHandle`) if present.
41
+ *
42
+ * @example
43
+ * ```typescript
44
+ * ctx.events.on('stream:chunk', (event: ExecutionEvent) => {
45
+ * console.log(`[${event.source}] ${event.type}:`, event.payload);
46
+ * });
47
+ *
48
+ * // Listen to all events
49
+ * ctx.events.on('*', (event: ExecutionEvent) => {
50
+ * console.log(`Event: ${event.type}`);
51
+ * });
52
+ * ```
53
+ *
54
+ * @see {@link Context.emit} - Emit events to the current context
55
+ */
56
+ export interface ExecutionEvent {
57
+ /** Event type (e.g., 'stream:chunk', 'procedure:error') */
58
+ type: string;
59
+ /** Event payload data */
60
+ payload: any;
61
+ /** Unix timestamp when the event occurred */
62
+ timestamp: number;
63
+ /** Source of the event (e.g., 'agent:sales', 'model:openai') */
64
+ source: string;
65
+ /** Trace ID for correlation (distributed tracing) */
66
+ traceId: string;
67
+ /** Request ID for this execution context */
68
+ requestId?: string;
69
+ /** Execution ID from context (auto-populated if available) */
70
+ executionId?: string;
71
+ /** Parent execution ID for nested executions (fork, spawn, component_tool) */
72
+ parentExecutionId?: string;
73
+ /** Procedure ID from context (auto-populated if available) */
74
+ procedureId?: string;
75
+ /** Current tick number if in a tick context */
76
+ tick?: number;
77
+ /** User ID from context (for attribution and multi-tenant filtering) */
78
+ userId?: string;
79
+ /** Tenant ID from context (for multi-tenant dashboards) */
80
+ tenantId?: string;
81
+ }
82
+ /**
83
+ * Extensible metadata storage within the context.
84
+ *
85
+ * Use this to store application-specific data that should flow
86
+ * through the execution context.
87
+ *
88
+ * @example
89
+ * ```typescript
90
+ * const ctx = Context.create({
91
+ * metadata: {
92
+ * conversationId: 'conv-123',
93
+ * feature_flags: { beta: true },
94
+ * }
95
+ * });
96
+ *
97
+ * // Access later
98
+ * const convId = Context.get().metadata.conversationId;
99
+ * ```
100
+ */
101
+ export interface ContextMetadata extends Record<string, any> {
102
+ }
103
+ /**
104
+ * Metrics accumulated during procedure execution.
105
+ *
106
+ * Metrics are automatically propagated from child procedures to parents
107
+ * when execution completes.
108
+ *
109
+ * @example
110
+ * ```typescript
111
+ * // In a procedure
112
+ * addMetric(ctx, 'tokens.input', 100);
113
+ * addMetric(ctx, 'api_calls', 1);
114
+ *
115
+ * // After execution, parent has accumulated metrics
116
+ * const totalTokens = ctx.metrics['tokens.input'];
117
+ * ```
118
+ *
119
+ * @see {@link addMetric} - Accumulate a metric value
120
+ * @see {@link getUsageMetrics} - Get token usage metrics
121
+ */
122
+ export interface ContextMetrics extends Record<string, any> {
123
+ }
124
+ /**
125
+ * Execution context that flows through all async operations via AsyncLocalStorage.
126
+ *
127
+ * The `KernelContext` contains all state needed during execution:
128
+ * - Identity and tracing (requestId, traceId, user)
129
+ * - Event buses (events, executionHandle)
130
+ * - Cancellation (signal)
131
+ * - Communication (channels)
132
+ * - Execution tracking (procedureGraph, procedurePid, origin)
133
+ * - Extensible storage (metadata, metrics)
134
+ *
135
+ * Access the current context with `Context.get()` from anywhere in your code -
136
+ * no need to pass it explicitly through function calls.
137
+ *
138
+ * @example Creating and running with context
139
+ * ```typescript
140
+ * const ctx = Context.create({
141
+ * user: { id: 'user-1' },
142
+ * metadata: { conversationId: 'conv-123' }
143
+ * });
144
+ *
145
+ * await Context.run(ctx, async () => {
146
+ * // Context is available here and in all async calls
147
+ * const current = Context.get();
148
+ * console.log(current.user?.id); // 'user-1'
149
+ * });
150
+ * ```
151
+ *
152
+ * @example Extending for your application
153
+ * ```typescript
154
+ * interface AppContext extends KernelContext {
155
+ * customHandle?: MyCustomHandle;
156
+ * appMetadata: AppSpecificMetadata;
157
+ * }
158
+ * ```
159
+ *
160
+ * @see {@link Context} - Static methods to create/access context
161
+ * @see {@link UserContext} - User information structure
162
+ */
163
+ export interface KernelContext {
164
+ /** Unique identifier for this request/execution */
165
+ requestId: string;
166
+ /** Correlation ID for distributed tracing */
167
+ traceId: string;
168
+ /** User information (from auth) */
169
+ user?: UserContext;
170
+ /** Application-specific metadata */
171
+ metadata: ContextMetadata;
172
+ /** Accumulated execution metrics */
173
+ metrics: ContextMetrics;
174
+ /** Global request event bus for subscribing to all events */
175
+ events: EventEmitter;
176
+ /** Abort signal for cooperative cancellation */
177
+ signal?: AbortSignal;
178
+ /** Operation-specific event emitter (from `.withHandle()`) */
179
+ executionHandle?: EventEmitter;
180
+ /**
181
+ * Channel service for bidirectional communication (optional).
182
+ * Injected by Engine when channels are configured.
183
+ * Tools and components can access channels via this service.
184
+ */
185
+ channels?: ChannelServiceInterface;
186
+ /**
187
+ * Procedure graph for tracking procedure execution hierarchy.
188
+ * Automatically initialized when first procedure is executed.
189
+ */
190
+ procedureGraph?: ProcedureGraph;
191
+ /**
192
+ * Current procedure PID (for tracking nested procedures).
193
+ */
194
+ procedurePid?: string;
195
+ /** Current procedure node in the graph */
196
+ procedureNode?: ProcedureNode;
197
+ /**
198
+ * Origin procedure node - the root procedure that initiated this execution chain.
199
+ * Undefined for the root procedure itself (since it IS the origin).
200
+ * Set automatically by ExecutionTracker when procedures are executed.
201
+ */
202
+ origin?: ProcedureNode;
203
+ /**
204
+ * Current execution ID. Set when entering an execution boundary.
205
+ * All procedures within this execution share this ID.
206
+ */
207
+ executionId?: string;
208
+ /**
209
+ * Type of execution at this boundary (e.g., 'engine', 'model', 'component_tool', 'fork', 'spawn').
210
+ * Only meaningful at execution boundaries.
211
+ */
212
+ executionType?: string;
213
+ /**
214
+ * Parent execution ID for nested executions (e.g., component_tool called from engine).
215
+ * Enables DevTools to show execution hierarchy.
216
+ */
217
+ parentExecutionId?: string;
218
+ /**
219
+ * Current tick number (set by engine during tick loop).
220
+ * Enables events to include tick context for correlation.
221
+ */
222
+ tick?: number;
223
+ /**
224
+ * Middleware registry for procedure execution.
225
+ * Procedures read this at execution time to get instance-level middleware.
226
+ * Typically set by createApp() from the Tentickle instance.
227
+ */
228
+ middleware?: {
229
+ getMiddlewareFor(procedureName: string): Middleware[];
230
+ };
231
+ /**
232
+ * Type brand for context detection
233
+ */
234
+ [KERNEL_CONTEXT_SYMBOL]?: boolean;
235
+ }
236
+ /**
237
+ * Static class for managing execution context via AsyncLocalStorage.
238
+ *
239
+ * Context flows automatically through all async operations without explicit passing.
240
+ * Use `Context.run()` to establish context, and `Context.get()` to access it.
241
+ *
242
+ * @example Basic usage
243
+ * ```typescript
244
+ * // Create and run with context
245
+ * const ctx = Context.create({ user: { id: 'user-1' } });
246
+ * await Context.run(ctx, async () => {
247
+ * const current = Context.get();
248
+ * console.log(current.user?.id); // 'user-1'
249
+ *
250
+ * // Context flows to nested calls
251
+ * await someAsyncFunction(); // Can access Context.get() inside
252
+ * });
253
+ * ```
254
+ *
255
+ * @example Parallel execution with child contexts
256
+ * ```typescript
257
+ * // Each parallel task gets its own context to avoid races
258
+ * const [a, b] = await Promise.all([
259
+ * Context.fork({ procedurePid: 'task-1' }, () => doTask1()),
260
+ * Context.fork({ procedurePid: 'task-2' }, () => doTask2()),
261
+ * ]);
262
+ * ```
263
+ *
264
+ * @example Emitting events
265
+ * ```typescript
266
+ * // Events go to both global bus and operation handle
267
+ * Context.emit('progress', { percent: 50 }, 'my-tool');
268
+ * ```
269
+ *
270
+ * @see {@link KernelContext} - The context interface
271
+ * @see {@link context} - Brand an object as context for procedure detection
272
+ */
273
+ export declare class Context {
274
+ /**
275
+ * Creates a new root context with default values.
276
+ *
277
+ * @param overrides - Partial context to merge with defaults
278
+ * @returns A new KernelContext
279
+ *
280
+ * @example
281
+ * ```typescript
282
+ * const ctx = Context.create({
283
+ * user: { id: 'user-1' },
284
+ * metadata: { feature: 'chat' }
285
+ * });
286
+ * ```
287
+ */
288
+ static create(overrides?: Partial<Omit<KernelContext, "events">>): KernelContext;
289
+ static brand(ctx: Partial<KernelContext>): KernelContext;
290
+ /**
291
+ * Runs a function within the given context.
292
+ * All async operations within `fn` will have access to this context.
293
+ *
294
+ * @param context - The context to run within
295
+ * @param fn - Async function to execute
296
+ * @returns The result of the function
297
+ */
298
+ static run<T>(ctx: Partial<KernelContext>, fn: () => Promise<T>): Promise<T>;
299
+ /**
300
+ * Creates a child context that inherits from the current context (or creates a new root).
301
+ * The child context is a shallow copy - objects like `events`, `procedureGraph`, and `channels`
302
+ * are shared with the parent (intentionally, for coordination).
303
+ *
304
+ * Scalar values like `procedurePid`, `procedureNode`, and `origin` can be safely
305
+ * overridden in the child without affecting the parent.
306
+ *
307
+ * @param overrides - Properties to override in the child context
308
+ * @returns A new context object inheriting from the current context
309
+ *
310
+ * @example
311
+ * ```typescript
312
+ * // Create child context with new procedure ID
313
+ * const childCtx = Context.child({ procedurePid: 'new-pid' });
314
+ * await Context.run(childCtx, async () => {
315
+ * // This context has its own procedurePid but shares events, graph, etc.
316
+ * });
317
+ * ```
318
+ */
319
+ static child(overrides?: Partial<KernelContext>): KernelContext;
320
+ /**
321
+ * Creates a child context and runs a function within it.
322
+ * Convenience method combining `child()` and `run()`.
323
+ *
324
+ * This is the safe way to run parallel procedures - each gets its own
325
+ * context object so mutations don't race.
326
+ *
327
+ * @param overrides - Properties to override in the child context
328
+ * @param fn - Function to run within the child context
329
+ * @returns The result of the function
330
+ *
331
+ * @example
332
+ * ```typescript
333
+ * // Run parallel procedures safely
334
+ * const [result1, result2] = await Promise.all([
335
+ * Context.fork({ procedurePid: 'proc-1' }, async () => doWork1()),
336
+ * Context.fork({ procedurePid: 'proc-2' }, async () => doWork2()),
337
+ * ]);
338
+ * ```
339
+ */
340
+ static fork<T>(overrides: Partial<KernelContext>, fn: () => Promise<T>): Promise<T>;
341
+ /**
342
+ * Gets the current context. Throws if not found.
343
+ */
344
+ static get(): KernelContext;
345
+ /**
346
+ * Gets the current context or returns undefined if not found.
347
+ */
348
+ static tryGet(): KernelContext | undefined;
349
+ /**
350
+ * Set the current tick number in the context.
351
+ * Called by the engine at the start of each tick.
352
+ */
353
+ static setTick(tick: number): void;
354
+ /**
355
+ * Helper to emit an event on the current context.
356
+ * Events are broadcast to:
357
+ * 1. The context's local event bus (ctx.events)
358
+ * 2. The operation handle (ctx.executionHandle) if present
359
+ * 3. All global subscribers registered via subscribeGlobal()
360
+ */
361
+ static emit(type: string, payload: any, source?: string): void;
362
+ /**
363
+ * Subscribe to ALL context events globally.
364
+ * This is useful for observability tools like DevTools that need to see
365
+ * all procedure:start/end/error events across all contexts.
366
+ *
367
+ * @param handler - Callback that receives every event with its context
368
+ * @returns Unsubscribe function
369
+ *
370
+ * @example
371
+ * ```typescript
372
+ * const unsubscribe = Context.subscribeGlobal((event, ctx) => {
373
+ * if (event.type === 'procedure:start') {
374
+ * console.log(`Procedure ${event.payload.name} started`);
375
+ * }
376
+ * });
377
+ *
378
+ * // Later, to stop receiving events:
379
+ * unsubscribe();
380
+ * ```
381
+ */
382
+ static subscribeGlobal(handler: (event: ExecutionEvent, ctx: KernelContext) => void): () => void;
383
+ /**
384
+ * Check if there are any global subscribers.
385
+ * Useful for conditional event emission to avoid overhead when no one is listening.
386
+ */
387
+ static hasGlobalSubscribers(): boolean;
388
+ }
389
+ export declare class ContextProvider {
390
+ withContext<T>(context: KernelContext, fn: () => Promise<T>): Promise<T>;
391
+ }
392
+ /**
393
+ * Symbol used to brand context objects for deterministic detection.
394
+ * This allows procedures to distinguish context from regular arguments.
395
+ */
396
+ export declare const KERNEL_CONTEXT_SYMBOL: unique symbol;
397
+ /**
398
+ * Brand a context object with a Symbol for deterministic detection.
399
+ * This allows procedures to deterministically identify context vs regular args.
400
+ *
401
+ * @example
402
+ * ```typescript
403
+ * await proc(input, agent, context({ traceId: "123" }));
404
+ * ```
405
+ */
406
+ export declare function context(ctx: Partial<KernelContext>): Partial<KernelContext>;
407
+ /**
408
+ * Check if an object is a branded context (deterministic check via Symbol).
409
+ * This is 100% reliable - no heuristics needed.
410
+ */
411
+ export declare function isKernelContext(obj: any): obj is Partial<KernelContext>;
412
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/core/context.ts"],"names":[],"mappings":"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"}