@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,346 @@
1
+ /**
2
+ * Logger - Structured logging with automatic context injection
3
+ *
4
+ * Built on pino for performance, with automatic injection of:
5
+ * - Execution context (executionId, threadId, userId, tick)
6
+ * - OpenTelemetry trace/span IDs for log-trace correlation
7
+ * - Custom metadata
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * import { Logger } from './core';
12
+ *
13
+ * // Configure once at app start
14
+ * Logger.configure({
15
+ * level: 'info',
16
+ * transport: {
17
+ * targets: [
18
+ * { target: 'pino-pretty', options: { colorize: true } },
19
+ * { target: 'pino/file', options: { destination: './app.log' } },
20
+ * ],
21
+ * },
22
+ * });
23
+ *
24
+ * // Use anywhere - context is auto-injected
25
+ * const log = Logger.get();
26
+ * log.info('Processing request');
27
+ *
28
+ * // Create scoped child logger
29
+ * const toolLog = Logger.for('CalculatorTool');
30
+ * toolLog.debug('Executing', { expression: '2+2' });
31
+ * ```
32
+ */
33
+ import pino, {} from "pino";
34
+ import { Context } from "./context";
35
+ // =============================================================================
36
+ // Implementation
37
+ // =============================================================================
38
+ let globalLogger = null;
39
+ let globalConfig = {};
40
+ /**
41
+ * Default context fields extractor.
42
+ * Only extracts well-defined KernelContext properties.
43
+ * Does NOT make assumptions about user/metadata structure.
44
+ */
45
+ const defaultContextFieldsExtractor = (ctx) => {
46
+ const fields = {};
47
+ // Core KernelContext fields (well-defined)
48
+ if (ctx.requestId)
49
+ fields.request_id = ctx.requestId;
50
+ if (ctx.traceId)
51
+ fields.trace_id = ctx.traceId;
52
+ // Procedure context (well-defined)
53
+ if (ctx.procedurePid)
54
+ fields.procedure_id = ctx.procedurePid;
55
+ if (ctx.procedureNode?.name)
56
+ fields.procedure_name = ctx.procedureNode.name;
57
+ if (ctx.origin?.name)
58
+ fields.origin_procedure = ctx.origin.name;
59
+ return fields;
60
+ };
61
+ /**
62
+ * Extract context fields for logging.
63
+ * Called on every log to inject current execution context.
64
+ */
65
+ function getContextFields(config) {
66
+ if (config.includeContext === false) {
67
+ return {};
68
+ }
69
+ const ctx = Context.tryGet();
70
+ if (!ctx) {
71
+ return {};
72
+ }
73
+ // Use custom extractor or default
74
+ const extractor = config.contextFields ?? defaultContextFieldsExtractor;
75
+ return extractor(ctx);
76
+ }
77
+ /**
78
+ * Create pino logger options from config.
79
+ */
80
+ function createPinoOptions(config) {
81
+ const isDev = process.env.NODE_ENV !== "production";
82
+ const usePretty = config.prettyPrint ?? isDev;
83
+ const options = {
84
+ level: config.level ?? "info",
85
+ base: config.base ?? { pid: process.pid },
86
+ // Mixin runs on every log to inject context
87
+ mixin: () => {
88
+ const contextFields = getContextFields(config);
89
+ const customFields = config.mixin?.() ?? {};
90
+ return { ...contextFields, ...customFields };
91
+ },
92
+ // Timestamp in ISO format
93
+ timestamp: pino.stdTimeFunctions.isoTime,
94
+ };
95
+ // Transport configuration
96
+ if (config.transport) {
97
+ options.transport = config.transport;
98
+ }
99
+ else if (usePretty) {
100
+ options.transport = {
101
+ target: "pino-pretty",
102
+ options: {
103
+ colorize: true,
104
+ translateTime: "SYS:standard",
105
+ ignore: "pid,hostname",
106
+ },
107
+ };
108
+ }
109
+ return options;
110
+ }
111
+ /**
112
+ * Wrap pino logger to match KernelLogger interface.
113
+ */
114
+ function wrapLogger(pinoLogger) {
115
+ return {
116
+ trace: pinoLogger.trace.bind(pinoLogger),
117
+ debug: pinoLogger.debug.bind(pinoLogger),
118
+ info: pinoLogger.info.bind(pinoLogger),
119
+ warn: pinoLogger.warn.bind(pinoLogger),
120
+ error: pinoLogger.error.bind(pinoLogger),
121
+ fatal: pinoLogger.fatal.bind(pinoLogger),
122
+ child(bindings) {
123
+ return wrapLogger(pinoLogger.child(bindings));
124
+ },
125
+ get level() {
126
+ return pinoLogger.level;
127
+ },
128
+ isLevelEnabled(level) {
129
+ return pinoLogger.isLevelEnabled(level);
130
+ },
131
+ };
132
+ }
133
+ /**
134
+ * Get or create the global logger instance.
135
+ */
136
+ function getOrCreateGlobalLogger() {
137
+ if (!globalLogger) {
138
+ globalLogger = pino(createPinoOptions(globalConfig));
139
+ }
140
+ return globalLogger;
141
+ }
142
+ // =============================================================================
143
+ // Public API
144
+ // =============================================================================
145
+ /**
146
+ * Logger singleton for Tentickle applications.
147
+ *
148
+ * Provides structured logging with automatic context injection from the
149
+ * current execution context (via AsyncLocalStorage).
150
+ *
151
+ * @example
152
+ * ```typescript
153
+ * // Configure at app startup
154
+ * Logger.configure({ level: 'debug' });
155
+ *
156
+ * // Get logger (context auto-injected)
157
+ * const log = Logger.get();
158
+ * log.info('Request received');
159
+ *
160
+ * // Create child logger for a component
161
+ * const componentLog = Logger.for('MyComponent');
162
+ * componentLog.debug('Initializing');
163
+ *
164
+ * // Or from an object (uses constructor name)
165
+ * class MyTool {
166
+ * private log = Logger.for(this);
167
+ * }
168
+ * ```
169
+ */
170
+ export const Logger = {
171
+ /**
172
+ * Configure the global logger.
173
+ * Should be called once at application startup.
174
+ *
175
+ * @param config Logger configuration
176
+ *
177
+ * @example
178
+ * ```typescript
179
+ * Logger.configure({
180
+ * level: process.env.LOG_LEVEL ?? 'info',
181
+ * transport: {
182
+ * targets: [
183
+ * { target: 'pino-pretty', options: { colorize: true } },
184
+ * { target: 'pino/file', options: { destination: './logs/app.log' } },
185
+ * ],
186
+ * },
187
+ * });
188
+ * ```
189
+ */
190
+ configure(config) {
191
+ // Replace or merge with existing config
192
+ if (config.replace) {
193
+ globalConfig = config;
194
+ }
195
+ else {
196
+ globalConfig = { ...globalConfig, ...config };
197
+ }
198
+ // Handle contextFields composition
199
+ if (config.contextFields) {
200
+ globalConfig.contextFields = composeContextFields(defaultContextFields, config.contextFields);
201
+ }
202
+ else if (!globalConfig.contextFields) {
203
+ globalConfig.contextFields = defaultContextFields;
204
+ }
205
+ globalLogger = pino(createPinoOptions(globalConfig));
206
+ },
207
+ /**
208
+ * Get the global logger instance.
209
+ * Context is automatically injected into every log.
210
+ *
211
+ * @returns KernelLogger instance
212
+ *
213
+ * @example
214
+ * ```typescript
215
+ * const log = Logger.get();
216
+ * log.info('Processing', { items: 5 });
217
+ * // Output includes executionId, userId, trace_id, etc.
218
+ * ```
219
+ */
220
+ get() {
221
+ return wrapLogger(getOrCreateGlobalLogger());
222
+ },
223
+ /**
224
+ * Create a child logger scoped to a component or name.
225
+ *
226
+ * @param nameOrComponent Component name or object (uses constructor.name)
227
+ * @returns Child logger with component binding
228
+ *
229
+ * @example
230
+ * ```typescript
231
+ * // With string name
232
+ * const log = Logger.for('CalculatorTool');
233
+ *
234
+ * // With object (uses class name)
235
+ * class MyAgent {
236
+ * private log = Logger.for(this);
237
+ * }
238
+ * ```
239
+ */
240
+ for(nameOrComponent) {
241
+ const name = typeof nameOrComponent === "string" ? nameOrComponent : nameOrComponent.constructor.name;
242
+ return wrapLogger(getOrCreateGlobalLogger().child({ component: name }));
243
+ },
244
+ /**
245
+ * Create a child logger with custom bindings.
246
+ *
247
+ * @param bindings Key-value pairs to include in every log
248
+ * @returns Child logger with bindings
249
+ *
250
+ * @example
251
+ * ```typescript
252
+ * const requestLog = Logger.child({ request_id: req.id });
253
+ * requestLog.info('Handling request');
254
+ * ```
255
+ */
256
+ child(bindings) {
257
+ return wrapLogger(getOrCreateGlobalLogger().child(bindings));
258
+ },
259
+ /**
260
+ * Create a standalone logger instance with custom config.
261
+ * Does not affect the global logger.
262
+ *
263
+ * @param config Logger configuration
264
+ * @returns New logger instance
265
+ *
266
+ * @example
267
+ * ```typescript
268
+ * const auditLog = Logger.create({
269
+ * level: 'info',
270
+ * transport: { target: 'pino/file', options: { destination: './audit.log' } },
271
+ * });
272
+ * ```
273
+ */
274
+ create(config = {}) {
275
+ return wrapLogger(pino(createPinoOptions(config)));
276
+ },
277
+ /**
278
+ * Get the current log level.
279
+ */
280
+ get level() {
281
+ return getOrCreateGlobalLogger().level;
282
+ },
283
+ /**
284
+ * Set the log level at runtime.
285
+ *
286
+ * @param level New log level
287
+ */
288
+ setLevel(level) {
289
+ getOrCreateGlobalLogger().level = level;
290
+ },
291
+ /**
292
+ * Check if a level is enabled.
293
+ *
294
+ * @param level Log level to check
295
+ * @returns true if the level is enabled
296
+ */
297
+ isLevelEnabled(level) {
298
+ return getOrCreateGlobalLogger().isLevelEnabled(level);
299
+ },
300
+ /**
301
+ * Reset the global logger (mainly for testing).
302
+ */
303
+ reset() {
304
+ globalLogger = null;
305
+ globalConfig = {};
306
+ },
307
+ };
308
+ // =============================================================================
309
+ // Helpers
310
+ // =============================================================================
311
+ /**
312
+ * Compose multiple context field extractors into one.
313
+ * Later extractors override earlier ones for the same keys.
314
+ *
315
+ * @example
316
+ * ```typescript
317
+ * import { composeContextFields, defaultContextFields } from './core';
318
+ *
319
+ * Logger.configure({
320
+ * contextFields: composeContextFields(
321
+ * defaultContextFields, // Core kernel fields
322
+ * (ctx) => ({ // Your custom fields
323
+ * tenantId: ctx.user?.tenantId,
324
+ * threadId: ctx.metadata?.threadId,
325
+ * executionId: ctx.metadata?.executionId,
326
+ * }),
327
+ * ),
328
+ * });
329
+ * ```
330
+ */
331
+ export function composeContextFields(...extractors) {
332
+ return (ctx) => {
333
+ const result = {};
334
+ for (const extractor of extractors) {
335
+ Object.assign(result, extractor(ctx));
336
+ }
337
+ return result;
338
+ };
339
+ }
340
+ /**
341
+ * The default context fields extractor.
342
+ * Exports core KernelContext fields only.
343
+ * Use with composeContextFields to extend.
344
+ */
345
+ export const defaultContextFields = defaultContextFieldsExtractor;
346
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import { type KernelContext } from "./context";
2
+ /**
3
+ * Helper functions for working with metrics.
4
+ * Supports both flat and nested metric structures via dot notation.
5
+ */
6
+ /**
7
+ * Add a metric value (accumulates).
8
+ * Supports dot notation for nested paths: 'usage.inputTokens'
9
+ */
10
+ export declare function addMetric(ctx: KernelContext, key: string, value: number): void;
11
+ /**
12
+ * Set a metric value (overwrites).
13
+ * Supports dot notation for nested paths: 'usage.inputTokens'
14
+ */
15
+ export declare function setMetric(ctx: KernelContext, key: string, value: number): void;
16
+ /**
17
+ * Get a metric value.
18
+ * Supports dot notation for nested paths: 'usage.inputTokens'
19
+ */
20
+ export declare function getMetric(ctx: KernelContext, key: string): number;
21
+ /**
22
+ * Add usage metrics from a usage object.
23
+ * Converts nested structure to flat dot-notation keys.
24
+ *
25
+ * @example
26
+ * addUsageMetrics(ctx, { inputTokens: 100, outputTokens: 50 });
27
+ * // Sets: ctx.metrics['usage.inputTokens'] = 100
28
+ * // ctx.metrics['usage.outputTokens'] = 50
29
+ */
30
+ export declare function addUsageMetrics(ctx: KernelContext, usage: Record<string, number>): void;
31
+ /**
32
+ * Get usage metrics as an object.
33
+ * Converts flat dot-notation keys back to nested structure.
34
+ *
35
+ * @example
36
+ * const usage = getUsageMetrics(ctx);
37
+ * // Returns: { inputTokens: 100, outputTokens: 50 }
38
+ */
39
+ export declare function getUsageMetrics(ctx: KernelContext): Record<string, number>;
40
+ //# sourceMappingURL=metrics-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics-helpers.d.ts","sourceRoot":"","sources":["../../src/core/metrics-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C;;;GAGG;AAEH;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAK9E;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAK9E;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CASvF;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAc1E"}
@@ -0,0 +1,72 @@
1
+ import {} from "./context";
2
+ /**
3
+ * Helper functions for working with metrics.
4
+ * Supports both flat and nested metric structures via dot notation.
5
+ */
6
+ /**
7
+ * Add a metric value (accumulates).
8
+ * Supports dot notation for nested paths: 'usage.inputTokens'
9
+ */
10
+ export function addMetric(ctx, key, value) {
11
+ if (!ctx.metrics) {
12
+ ctx.metrics = {};
13
+ }
14
+ ctx.metrics[key] = (ctx.metrics[key] || 0) + value;
15
+ }
16
+ /**
17
+ * Set a metric value (overwrites).
18
+ * Supports dot notation for nested paths: 'usage.inputTokens'
19
+ */
20
+ export function setMetric(ctx, key, value) {
21
+ if (!ctx.metrics) {
22
+ ctx.metrics = {};
23
+ }
24
+ ctx.metrics[key] = value;
25
+ }
26
+ /**
27
+ * Get a metric value.
28
+ * Supports dot notation for nested paths: 'usage.inputTokens'
29
+ */
30
+ export function getMetric(ctx, key) {
31
+ return ctx.metrics?.[key] || 0;
32
+ }
33
+ /**
34
+ * Add usage metrics from a usage object.
35
+ * Converts nested structure to flat dot-notation keys.
36
+ *
37
+ * @example
38
+ * addUsageMetrics(ctx, { inputTokens: 100, outputTokens: 50 });
39
+ * // Sets: ctx.metrics['usage.inputTokens'] = 100
40
+ * // ctx.metrics['usage.outputTokens'] = 50
41
+ */
42
+ export function addUsageMetrics(ctx, usage) {
43
+ if (!ctx.metrics) {
44
+ ctx.metrics = {};
45
+ }
46
+ for (const [key, value] of Object.entries(usage)) {
47
+ const metricKey = `usage.${key}`;
48
+ ctx.metrics[metricKey] = (ctx.metrics[metricKey] || 0) + value;
49
+ }
50
+ }
51
+ /**
52
+ * Get usage metrics as an object.
53
+ * Converts flat dot-notation keys back to nested structure.
54
+ *
55
+ * @example
56
+ * const usage = getUsageMetrics(ctx);
57
+ * // Returns: { inputTokens: 100, outputTokens: 50 }
58
+ */
59
+ export function getUsageMetrics(ctx) {
60
+ if (!ctx.metrics) {
61
+ return {};
62
+ }
63
+ const usage = {};
64
+ for (const [key, value] of Object.entries(ctx.metrics)) {
65
+ if (key.startsWith("usage.")) {
66
+ const usageKey = key.substring(6); // Remove 'usage.' prefix
67
+ usage[usageKey] = value;
68
+ }
69
+ }
70
+ return usage;
71
+ }
72
+ //# sourceMappingURL=metrics-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics-helpers.js","sourceRoot":"","sources":["../../src/core/metrics-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,MAAM,WAAW,CAAC;AAE/C;;;GAGG;AAEH;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,GAAkB,EAAE,GAAW,EAAE,KAAa;IACtE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACjB,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC;IACnB,CAAC;IACD,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;AACrD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,GAAkB,EAAE,GAAW,EAAE,KAAa;IACtE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACjB,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC;IACnB,CAAC;IACD,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC3B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,GAAkB,EAAE,GAAW;IACvD,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,GAAkB,EAAE,KAA6B;IAC/E,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACjB,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,MAAM,SAAS,GAAG,SAAS,GAAG,EAAE,CAAC;QACjC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;IACjE,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,GAAkB;IAChD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QACvD,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,yBAAyB;YAC5D,KAAK,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * OpenTelemetry provider for Tentickle telemetry.
3
+ *
4
+ * Creates a TelemetryProvider that wraps the standard @opentelemetry/api,
5
+ * eliminating boilerplate for users who already have OTel configured.
6
+ *
7
+ * @module @tentickle/kernel/otel-provider
8
+ */
9
+ import type { TelemetryProvider } from "./telemetry";
10
+ export interface OTelProviderOptions {
11
+ /**
12
+ * Service name for traces and metrics.
13
+ * @default 'tentickle'
14
+ */
15
+ serviceName?: string;
16
+ /**
17
+ * Service version for traces and metrics.
18
+ */
19
+ serviceVersion?: string;
20
+ /**
21
+ * Custom tracer name (if different from serviceName).
22
+ */
23
+ tracerName?: string;
24
+ /**
25
+ * Custom meter name (if different from serviceName).
26
+ */
27
+ meterName?: string;
28
+ }
29
+ /**
30
+ * Create an OpenTelemetry provider from the standard @opentelemetry/api.
31
+ *
32
+ * Requires `@opentelemetry/api` to be installed and configured in your app.
33
+ * This function dynamically imports OTel to avoid hard dependencies.
34
+ *
35
+ * @example
36
+ * ```typescript
37
+ * import { Telemetry, createOTelProvider } from './core';
38
+ *
39
+ * // Basic usage - just works if OTel is configured
40
+ * Telemetry.setProvider(createOTelProvider());
41
+ *
42
+ * // With options
43
+ * Telemetry.setProvider(createOTelProvider({
44
+ * serviceName: 'my-agent-service',
45
+ * serviceVersion: '1.0.0',
46
+ * }));
47
+ * ```
48
+ *
49
+ * @param options - Configuration options
50
+ * @returns A TelemetryProvider that wraps OpenTelemetry
51
+ * @throws Error if @opentelemetry/api is not installed
52
+ */
53
+ export declare function createOTelProvider(options?: OTelProviderOptions): TelemetryProvider;
54
+ //# sourceMappingURL=otel-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"otel-provider.d.ts","sourceRoot":"","sources":["../../src/core/otel-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAA4B,MAAM,aAAa,CAAC;AAE/E,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,mBAAwB,GAAG,iBAAiB,CAsFvF"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * OpenTelemetry provider for Tentickle telemetry.
3
+ *
4
+ * Creates a TelemetryProvider that wraps the standard @opentelemetry/api,
5
+ * eliminating boilerplate for users who already have OTel configured.
6
+ *
7
+ * @module @tentickle/kernel/otel-provider
8
+ */
9
+ /**
10
+ * Create an OpenTelemetry provider from the standard @opentelemetry/api.
11
+ *
12
+ * Requires `@opentelemetry/api` to be installed and configured in your app.
13
+ * This function dynamically imports OTel to avoid hard dependencies.
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * import { Telemetry, createOTelProvider } from './core';
18
+ *
19
+ * // Basic usage - just works if OTel is configured
20
+ * Telemetry.setProvider(createOTelProvider());
21
+ *
22
+ * // With options
23
+ * Telemetry.setProvider(createOTelProvider({
24
+ * serviceName: 'my-agent-service',
25
+ * serviceVersion: '1.0.0',
26
+ * }));
27
+ * ```
28
+ *
29
+ * @param options - Configuration options
30
+ * @returns A TelemetryProvider that wraps OpenTelemetry
31
+ * @throws Error if @opentelemetry/api is not installed
32
+ */
33
+ export function createOTelProvider(options = {}) {
34
+ // Dynamic require - fails gracefully if not installed
35
+ let otel;
36
+ try {
37
+ otel = require("@opentelemetry/api");
38
+ }
39
+ catch {
40
+ throw new Error("createOTelProvider requires @opentelemetry/api to be installed. " +
41
+ "Run: pnpm add @opentelemetry/api");
42
+ }
43
+ const serviceName = options.serviceName ?? "tentickle";
44
+ const tracerName = options.tracerName ?? serviceName;
45
+ const meterName = options.meterName ?? serviceName;
46
+ const tracer = otel.trace.getTracer(tracerName, options.serviceVersion);
47
+ const meter = otel.metrics.getMeter(meterName, options.serviceVersion);
48
+ // Cache for counters and histograms to avoid recreating them
49
+ const counters = new Map();
50
+ const histograms = new Map();
51
+ return {
52
+ startTrace(name) {
53
+ const span = tracer.startSpan(name);
54
+ const ctx = otel.trace.setSpan(otel.context.active(), span);
55
+ otel.context.with(ctx, () => { });
56
+ return span.spanContext().traceId;
57
+ },
58
+ startSpan(name) {
59
+ const parentContext = otel.context.active();
60
+ const span = tracer.startSpan(name, undefined, parentContext);
61
+ return {
62
+ end: () => span.end(),
63
+ setAttribute: (key, value) => span.setAttribute(key, value),
64
+ recordError: (error) => {
65
+ span.recordException(error);
66
+ span.setStatus({ code: otel.SpanStatusCode.ERROR, message: error?.message });
67
+ },
68
+ };
69
+ },
70
+ recordError(error) {
71
+ const span = otel.trace.getActiveSpan();
72
+ if (span) {
73
+ span.recordException(error);
74
+ span.setStatus({ code: otel.SpanStatusCode.ERROR, message: error?.message });
75
+ }
76
+ },
77
+ endTrace() {
78
+ const span = otel.trace.getActiveSpan();
79
+ span?.end();
80
+ },
81
+ getCounter(name, unit, description) {
82
+ const key = `${name}:${unit}:${description}`;
83
+ let counter = counters.get(key);
84
+ if (!counter) {
85
+ const otelCounter = meter.createCounter(name, { unit, description });
86
+ counter = {
87
+ add: (value, attributes) => otelCounter.add(value, attributes),
88
+ };
89
+ counters.set(key, counter);
90
+ }
91
+ return counter;
92
+ },
93
+ getHistogram(name, unit, description) {
94
+ const key = `${name}:${unit}:${description}`;
95
+ let histogram = histograms.get(key);
96
+ if (!histogram) {
97
+ const otelHistogram = meter.createHistogram(name, { unit, description });
98
+ histogram = {
99
+ record: (value, attributes) => otelHistogram.record(value, attributes),
100
+ };
101
+ histograms.set(key, histogram);
102
+ }
103
+ return histogram;
104
+ },
105
+ };
106
+ }
107
+ //# sourceMappingURL=otel-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"otel-provider.js","sourceRoot":"","sources":["../../src/core/otel-provider.ts"],"names":[],"mappings":"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"}