@symbolica/agentica 0.2.11-rc

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 (631) hide show
  1. package/LICENSE +77 -0
  2. package/README.md +50 -0
  3. package/bun/agentica.plugin.ts +40 -0
  4. package/default-configs/agentica-hello-world.ts +12 -0
  5. package/default-configs/esbuild.config.ts +30 -0
  6. package/default-configs/next.config.ts +9 -0
  7. package/default-configs/rollup.config.ts +57 -0
  8. package/default-configs/vite.config.ts +6 -0
  9. package/default-configs/webpack.config.ts +5 -0
  10. package/dist/bin/agentica-setup.d.ts +3 -0
  11. package/dist/bin/agentica-setup.d.ts.map +1 -0
  12. package/dist/bin/agentica-setup.js +1407 -0
  13. package/dist/bin/agentica-setup.js.map +1 -0
  14. package/dist/src/agentica/agent.d.ts +68 -0
  15. package/dist/src/agentica/agent.d.ts.map +1 -0
  16. package/dist/src/agentica/agent.js +171 -0
  17. package/dist/src/agentica/agent.js.map +1 -0
  18. package/dist/src/agentica/agentic.d.ts +35 -0
  19. package/dist/src/agentica/agentic.d.ts.map +1 -0
  20. package/dist/src/agentica/agentic.js +86 -0
  21. package/dist/src/agentica/agentic.js.map +1 -0
  22. package/dist/src/agentica/common.d.ts +89 -0
  23. package/dist/src/agentica/common.d.ts.map +1 -0
  24. package/dist/src/agentica/common.js +229 -0
  25. package/dist/src/agentica/common.js.map +1 -0
  26. package/dist/src/agentica/index.d.ts +3 -0
  27. package/dist/src/agentica/index.d.ts.map +1 -0
  28. package/dist/src/agentica/index.js +3 -0
  29. package/dist/src/agentica/index.js.map +1 -0
  30. package/dist/src/agentica/template.d.ts +19 -0
  31. package/dist/src/agentica/template.d.ts.map +1 -0
  32. package/dist/src/agentica/template.js +44 -0
  33. package/dist/src/agentica/template.js.map +1 -0
  34. package/dist/src/agentica-client/agentica-client.d.ts +14 -0
  35. package/dist/src/agentica-client/agentica-client.d.ts.map +1 -0
  36. package/dist/src/agentica-client/agentica-client.js +109 -0
  37. package/dist/src/agentica-client/agentica-client.js.map +1 -0
  38. package/dist/src/agentica-client/global-csm.d.ts +6 -0
  39. package/dist/src/agentica-client/global-csm.d.ts.map +1 -0
  40. package/dist/src/agentica-client/global-csm.js +33 -0
  41. package/dist/src/agentica-client/global-csm.js.map +1 -0
  42. package/dist/src/agentica-client/index.d.ts +3 -0
  43. package/dist/src/agentica-client/index.d.ts.map +1 -0
  44. package/dist/src/agentica-client/index.js +3 -0
  45. package/dist/src/agentica-client/index.js.map +1 -0
  46. package/dist/src/agentica-client/utils.d.ts +2 -0
  47. package/dist/src/agentica-client/utils.d.ts.map +1 -0
  48. package/dist/src/agentica-client/utils.js +4 -0
  49. package/dist/src/agentica-client/utils.js.map +1 -0
  50. package/dist/src/agentica-unplugin.d.ts +21 -0
  51. package/dist/src/agentica-unplugin.d.ts.map +1 -0
  52. package/dist/src/agentica-unplugin.js +136 -0
  53. package/dist/src/agentica-unplugin.js.map +1 -0
  54. package/dist/src/bundlers/bun.d.ts +7 -0
  55. package/dist/src/bundlers/bun.d.ts.map +1 -0
  56. package/dist/src/bundlers/bun.js +55 -0
  57. package/dist/src/bundlers/bun.js.map +1 -0
  58. package/dist/src/bundlers/esbuild.d.ts +3 -0
  59. package/dist/src/bundlers/esbuild.d.ts.map +1 -0
  60. package/dist/src/bundlers/esbuild.js +3 -0
  61. package/dist/src/bundlers/esbuild.js.map +1 -0
  62. package/dist/src/bundlers/rollup.d.ts +3 -0
  63. package/dist/src/bundlers/rollup.d.ts.map +1 -0
  64. package/dist/src/bundlers/rollup.js +3 -0
  65. package/dist/src/bundlers/rollup.js.map +1 -0
  66. package/dist/src/bundlers/utils.d.ts +5 -0
  67. package/dist/src/bundlers/utils.d.ts.map +1 -0
  68. package/dist/src/bundlers/utils.js +37 -0
  69. package/dist/src/bundlers/utils.js.map +1 -0
  70. package/dist/src/bundlers/vite.d.ts +3 -0
  71. package/dist/src/bundlers/vite.d.ts.map +1 -0
  72. package/dist/src/bundlers/vite.js +3 -0
  73. package/dist/src/bundlers/vite.js.map +1 -0
  74. package/dist/src/bundlers/webpack.d.ts +3 -0
  75. package/dist/src/bundlers/webpack.d.ts.map +1 -0
  76. package/dist/src/bundlers/webpack.js +3 -0
  77. package/dist/src/bundlers/webpack.js.map +1 -0
  78. package/dist/src/client-session-manager/at-exit.d.ts +6 -0
  79. package/dist/src/client-session-manager/at-exit.d.ts.map +1 -0
  80. package/dist/src/client-session-manager/at-exit.js +120 -0
  81. package/dist/src/client-session-manager/at-exit.js.map +1 -0
  82. package/dist/src/client-session-manager/client-session-manager.d.ts +73 -0
  83. package/dist/src/client-session-manager/client-session-manager.d.ts.map +1 -0
  84. package/dist/src/client-session-manager/client-session-manager.js +859 -0
  85. package/dist/src/client-session-manager/client-session-manager.js.map +1 -0
  86. package/dist/src/client-session-manager/message-utils.d.ts +7 -0
  87. package/dist/src/client-session-manager/message-utils.d.ts.map +1 -0
  88. package/dist/src/client-session-manager/message-utils.js +58 -0
  89. package/dist/src/client-session-manager/message-utils.js.map +1 -0
  90. package/dist/src/client-session-manager/queue.d.ts +10 -0
  91. package/dist/src/client-session-manager/queue.d.ts.map +1 -0
  92. package/dist/src/client-session-manager/queue.js +41 -0
  93. package/dist/src/client-session-manager/queue.js.map +1 -0
  94. package/dist/src/client-session-manager/types.d.ts +23 -0
  95. package/dist/src/client-session-manager/types.d.ts.map +1 -0
  96. package/dist/src/client-session-manager/types.js +2 -0
  97. package/dist/src/client-session-manager/types.js.map +1 -0
  98. package/dist/src/coming-soon.d.ts +45 -0
  99. package/dist/src/coming-soon.d.ts.map +1 -0
  100. package/dist/src/coming-soon.js +206 -0
  101. package/dist/src/coming-soon.js.map +1 -0
  102. package/dist/src/common.d.ts +3 -0
  103. package/dist/src/common.d.ts.map +1 -0
  104. package/dist/src/common.js +14 -0
  105. package/dist/src/common.js.map +1 -0
  106. package/dist/src/errors/base.d.ts +16 -0
  107. package/dist/src/errors/base.d.ts.map +1 -0
  108. package/dist/src/errors/base.js +45 -0
  109. package/dist/src/errors/base.js.map +1 -0
  110. package/dist/src/errors/bugs.d.ts +5 -0
  111. package/dist/src/errors/bugs.d.ts.map +1 -0
  112. package/dist/src/errors/bugs.js +15 -0
  113. package/dist/src/errors/bugs.js.map +1 -0
  114. package/dist/src/errors/connection.d.ts +17 -0
  115. package/dist/src/errors/connection.d.ts.map +1 -0
  116. package/dist/src/errors/connection.js +27 -0
  117. package/dist/src/errors/connection.js.map +1 -0
  118. package/dist/src/errors/generation.d.ts +53 -0
  119. package/dist/src/errors/generation.d.ts.map +1 -0
  120. package/dist/src/errors/generation.js +73 -0
  121. package/dist/src/errors/generation.js.map +1 -0
  122. package/dist/src/errors/index.d.ts +9 -0
  123. package/dist/src/errors/index.d.ts.map +1 -0
  124. package/dist/src/errors/index.js +62 -0
  125. package/dist/src/errors/index.js.map +1 -0
  126. package/dist/src/errors/invocation.d.ts +8 -0
  127. package/dist/src/errors/invocation.d.ts.map +1 -0
  128. package/dist/src/errors/invocation.js +8 -0
  129. package/dist/src/errors/invocation.js.map +1 -0
  130. package/dist/src/index.d.ts +8 -0
  131. package/dist/src/index.d.ts.map +1 -0
  132. package/dist/src/index.js +33 -0
  133. package/dist/src/index.js.map +1 -0
  134. package/dist/src/logging/composite-logger.d.ts +20 -0
  135. package/dist/src/logging/composite-logger.d.ts.map +1 -0
  136. package/dist/src/logging/composite-logger.js +107 -0
  137. package/dist/src/logging/composite-logger.js.map +1 -0
  138. package/dist/src/logging/config.d.ts +17 -0
  139. package/dist/src/logging/config.d.ts.map +1 -0
  140. package/dist/src/logging/config.js +88 -0
  141. package/dist/src/logging/config.js.map +1 -0
  142. package/dist/src/logging/index.d.ts +11 -0
  143. package/dist/src/logging/index.d.ts.map +1 -0
  144. package/dist/src/logging/index.js +24 -0
  145. package/dist/src/logging/index.js.map +1 -0
  146. package/dist/src/logging/logger.d.ts +30 -0
  147. package/dist/src/logging/logger.d.ts.map +1 -0
  148. package/dist/src/logging/logger.js +156 -0
  149. package/dist/src/logging/logger.js.map +1 -0
  150. package/dist/src/logging/otel-logger.d.ts +24 -0
  151. package/dist/src/logging/otel-logger.d.ts.map +1 -0
  152. package/dist/src/logging/otel-logger.js +114 -0
  153. package/dist/src/logging/otel-logger.js.map +1 -0
  154. package/dist/src/logging/span.d.ts +23 -0
  155. package/dist/src/logging/span.d.ts.map +1 -0
  156. package/dist/src/logging/span.js +42 -0
  157. package/dist/src/logging/span.js.map +1 -0
  158. package/dist/src/logging/types.d.ts +32 -0
  159. package/dist/src/logging/types.d.ts.map +1 -0
  160. package/dist/src/logging/types.js +2 -0
  161. package/dist/src/logging/types.js.map +1 -0
  162. package/dist/src/nextjs-wrapper.d.ts +6 -0
  163. package/dist/src/nextjs-wrapper.d.ts.map +1 -0
  164. package/dist/src/nextjs-wrapper.js +18 -0
  165. package/dist/src/nextjs-wrapper.js.map +1 -0
  166. package/dist/src/otel-config.d.ts +18 -0
  167. package/dist/src/otel-config.d.ts.map +1 -0
  168. package/dist/src/otel-config.js +116 -0
  169. package/dist/src/otel-config.js.map +1 -0
  170. package/dist/src/otel-logging.d.ts +13 -0
  171. package/dist/src/otel-logging.d.ts.map +1 -0
  172. package/dist/src/otel-logging.js +63 -0
  173. package/dist/src/otel-logging.js.map +1 -0
  174. package/dist/src/transformer/codegen/context-gen.d.ts +31 -0
  175. package/dist/src/transformer/codegen/context-gen.d.ts.map +1 -0
  176. package/dist/src/transformer/codegen/context-gen.js +292 -0
  177. package/dist/src/transformer/codegen/context-gen.js.map +1 -0
  178. package/dist/src/transformer/processor/class-targets.d.ts +11 -0
  179. package/dist/src/transformer/processor/class-targets.d.ts.map +1 -0
  180. package/dist/src/transformer/processor/class-targets.js +35 -0
  181. package/dist/src/transformer/processor/class-targets.js.map +1 -0
  182. package/dist/src/transformer/processor/function-targets.d.ts +11 -0
  183. package/dist/src/transformer/processor/function-targets.d.ts.map +1 -0
  184. package/dist/src/transformer/processor/function-targets.js +9 -0
  185. package/dist/src/transformer/processor/function-targets.js.map +1 -0
  186. package/dist/src/transformer/processor/object-targets.d.ts +11 -0
  187. package/dist/src/transformer/processor/object-targets.d.ts.map +1 -0
  188. package/dist/src/transformer/processor/object-targets.js +9 -0
  189. package/dist/src/transformer/processor/object-targets.js.map +1 -0
  190. package/dist/src/transformer/processor/processor-utils.d.ts +55 -0
  191. package/dist/src/transformer/processor/processor-utils.d.ts.map +1 -0
  192. package/dist/src/transformer/processor/processor-utils.js +491 -0
  193. package/dist/src/transformer/processor/processor-utils.js.map +1 -0
  194. package/dist/src/transformer/processor/processor.d.ts +22 -0
  195. package/dist/src/transformer/processor/processor.d.ts.map +1 -0
  196. package/dist/src/transformer/processor/processor.js +187 -0
  197. package/dist/src/transformer/processor/processor.js.map +1 -0
  198. package/dist/src/transformer/transformer-config.d.ts +9 -0
  199. package/dist/src/transformer/transformer-config.d.ts.map +1 -0
  200. package/dist/src/transformer/transformer-config.js +13 -0
  201. package/dist/src/transformer/transformer-config.js.map +1 -0
  202. package/dist/src/transformer/transformer-utils.d.ts +29 -0
  203. package/dist/src/transformer/transformer-utils.d.ts.map +1 -0
  204. package/dist/src/transformer/transformer-utils.js +349 -0
  205. package/dist/src/transformer/transformer-utils.js.map +1 -0
  206. package/dist/src/transformer/transformer.d.ts +4 -0
  207. package/dist/src/transformer/transformer.d.ts.map +1 -0
  208. package/dist/src/transformer/transformer.js +96 -0
  209. package/dist/src/transformer/transformer.js.map +1 -0
  210. package/dist/src/transformer/traverser/class-traversal.d.ts +9 -0
  211. package/dist/src/transformer/traverser/class-traversal.d.ts.map +1 -0
  212. package/dist/src/transformer/traverser/class-traversal.js +292 -0
  213. package/dist/src/transformer/traverser/class-traversal.js.map +1 -0
  214. package/dist/src/transformer/traverser/function-traversal.d.ts +7 -0
  215. package/dist/src/transformer/traverser/function-traversal.d.ts.map +1 -0
  216. package/dist/src/transformer/traverser/function-traversal.js +29 -0
  217. package/dist/src/transformer/traverser/function-traversal.js.map +1 -0
  218. package/dist/src/transformer/traverser/system-traversal.d.ts +9 -0
  219. package/dist/src/transformer/traverser/system-traversal.d.ts.map +1 -0
  220. package/dist/src/transformer/traverser/system-traversal.js +309 -0
  221. package/dist/src/transformer/traverser/system-traversal.js.map +1 -0
  222. package/dist/src/transformer/traverser/traversal-utils.d.ts +16 -0
  223. package/dist/src/transformer/traverser/traversal-utils.d.ts.map +1 -0
  224. package/dist/src/transformer/traverser/traversal-utils.js +132 -0
  225. package/dist/src/transformer/traverser/traversal-utils.js.map +1 -0
  226. package/dist/src/transformer/traverser/traverser.d.ts +44 -0
  227. package/dist/src/transformer/traverser/traverser.d.ts.map +1 -0
  228. package/dist/src/transformer/traverser/traverser.js +369 -0
  229. package/dist/src/transformer/traverser/traverser.js.map +1 -0
  230. package/dist/src/version.d.ts +2 -0
  231. package/dist/src/version.d.ts.map +1 -0
  232. package/dist/src/version.js +2 -0
  233. package/dist/src/version.js.map +1 -0
  234. package/dist/src/warpc/frame-context/annotation-ctx.d.ts +15 -0
  235. package/dist/src/warpc/frame-context/annotation-ctx.d.ts.map +1 -0
  236. package/dist/src/warpc/frame-context/annotation-ctx.js +33 -0
  237. package/dist/src/warpc/frame-context/annotation-ctx.js.map +1 -0
  238. package/dist/src/warpc/frame-context/frame-ctx.d.ts +27 -0
  239. package/dist/src/warpc/frame-context/frame-ctx.d.ts.map +1 -0
  240. package/dist/src/warpc/frame-context/frame-ctx.js +49 -0
  241. package/dist/src/warpc/frame-context/frame-ctx.js.map +1 -0
  242. package/dist/src/warpc/frame-context/message-conversion/decoder.d.ts +24 -0
  243. package/dist/src/warpc/frame-context/message-conversion/decoder.d.ts.map +1 -0
  244. package/dist/src/warpc/frame-context/message-conversion/decoder.js +197 -0
  245. package/dist/src/warpc/frame-context/message-conversion/decoder.js.map +1 -0
  246. package/dist/src/warpc/frame-context/message-conversion/encoder.d.ts +21 -0
  247. package/dist/src/warpc/frame-context/message-conversion/encoder.d.ts.map +1 -0
  248. package/dist/src/warpc/frame-context/message-conversion/encoder.js +225 -0
  249. package/dist/src/warpc/frame-context/message-conversion/encoder.js.map +1 -0
  250. package/dist/src/warpc/frame-context/resource-ctx.d.ts +45 -0
  251. package/dist/src/warpc/frame-context/resource-ctx.d.ts.map +1 -0
  252. package/dist/src/warpc/frame-context/resource-ctx.js +112 -0
  253. package/dist/src/warpc/frame-context/resource-ctx.js.map +1 -0
  254. package/dist/src/warpc/frame-context/synthetic-resources/factory.d.ts +22 -0
  255. package/dist/src/warpc/frame-context/synthetic-resources/factory.d.ts.map +1 -0
  256. package/dist/src/warpc/frame-context/synthetic-resources/factory.js +174 -0
  257. package/dist/src/warpc/frame-context/synthetic-resources/factory.js.map +1 -0
  258. package/dist/src/warpc/frame-context/synthetic-resources/index.d.ts +1 -0
  259. package/dist/src/warpc/frame-context/synthetic-resources/index.d.ts.map +1 -0
  260. package/dist/src/warpc/frame-context/synthetic-resources/index.js +2 -0
  261. package/dist/src/warpc/frame-context/synthetic-resources/index.js.map +1 -0
  262. package/dist/src/warpc/frame-context/system-ctx.d.ts +18 -0
  263. package/dist/src/warpc/frame-context/system-ctx.d.ts.map +1 -0
  264. package/dist/src/warpc/frame-context/system-ctx.js +132 -0
  265. package/dist/src/warpc/frame-context/system-ctx.js.map +1 -0
  266. package/dist/src/warpc/frame-context/uid-gen.d.ts +10 -0
  267. package/dist/src/warpc/frame-context/uid-gen.d.ts.map +1 -0
  268. package/dist/src/warpc/frame-context/uid-gen.js +20 -0
  269. package/dist/src/warpc/frame-context/uid-gen.js.map +1 -0
  270. package/dist/src/warpc/frame-context/virtual-resources/default.d.ts +16 -0
  271. package/dist/src/warpc/frame-context/virtual-resources/default.d.ts.map +1 -0
  272. package/dist/src/warpc/frame-context/virtual-resources/default.js +193 -0
  273. package/dist/src/warpc/frame-context/virtual-resources/default.js.map +1 -0
  274. package/dist/src/warpc/frame-context/virtual-resources/dispatcher.d.ts +17 -0
  275. package/dist/src/warpc/frame-context/virtual-resources/dispatcher.d.ts.map +1 -0
  276. package/dist/src/warpc/frame-context/virtual-resources/dispatcher.js +257 -0
  277. package/dist/src/warpc/frame-context/virtual-resources/dispatcher.js.map +1 -0
  278. package/dist/src/warpc/frame-context/virtual-resources/virtualizer.d.ts +29 -0
  279. package/dist/src/warpc/frame-context/virtual-resources/virtualizer.d.ts.map +1 -0
  280. package/dist/src/warpc/frame-context/virtual-resources/virtualizer.js +16 -0
  281. package/dist/src/warpc/frame-context/virtual-resources/virtualizer.js.map +1 -0
  282. package/dist/src/warpc/frame.d.ts +45 -0
  283. package/dist/src/warpc/frame.d.ts.map +1 -0
  284. package/dist/src/warpc/frame.js +390 -0
  285. package/dist/src/warpc/frame.js.map +1 -0
  286. package/dist/src/warpc/msg-protocol/concept/annotations/annotation-msg.d.ts +64 -0
  287. package/dist/src/warpc/msg-protocol/concept/annotations/annotation-msg.d.ts.map +1 -0
  288. package/dist/src/warpc/msg-protocol/concept/annotations/annotation-msg.js +138 -0
  289. package/dist/src/warpc/msg-protocol/concept/annotations/annotation-msg.js.map +1 -0
  290. package/dist/src/warpc/msg-protocol/concept/concept.d.ts +33 -0
  291. package/dist/src/warpc/msg-protocol/concept/concept.d.ts.map +1 -0
  292. package/dist/src/warpc/msg-protocol/concept/concept.js +47 -0
  293. package/dist/src/warpc/msg-protocol/concept/concept.js.map +1 -0
  294. package/dist/src/warpc/msg-protocol/concept/exception/exception-msg.d.ts +42 -0
  295. package/dist/src/warpc/msg-protocol/concept/exception/exception-msg.d.ts.map +1 -0
  296. package/dist/src/warpc/msg-protocol/concept/exception/exception-msg.js +86 -0
  297. package/dist/src/warpc/msg-protocol/concept/exception/exception-msg.js.map +1 -0
  298. package/dist/src/warpc/msg-protocol/concept/rehydrate.d.ts +2 -0
  299. package/dist/src/warpc/msg-protocol/concept/rehydrate.d.ts.map +1 -0
  300. package/dist/src/warpc/msg-protocol/concept/rehydrate.js +56 -0
  301. package/dist/src/warpc/msg-protocol/concept/rehydrate.js.map +1 -0
  302. package/dist/src/warpc/msg-protocol/concept/resource/class-msg.d.ts +86 -0
  303. package/dist/src/warpc/msg-protocol/concept/resource/class-msg.d.ts.map +1 -0
  304. package/dist/src/warpc/msg-protocol/concept/resource/class-msg.js +158 -0
  305. package/dist/src/warpc/msg-protocol/concept/resource/class-msg.js.map +1 -0
  306. package/dist/src/warpc/msg-protocol/concept/resource/function-msg.d.ts +30 -0
  307. package/dist/src/warpc/msg-protocol/concept/resource/function-msg.d.ts.map +1 -0
  308. package/dist/src/warpc/msg-protocol/concept/resource/function-msg.js +48 -0
  309. package/dist/src/warpc/msg-protocol/concept/resource/function-msg.js.map +1 -0
  310. package/dist/src/warpc/msg-protocol/concept/resource/object-msg.d.ts +19 -0
  311. package/dist/src/warpc/msg-protocol/concept/resource/object-msg.d.ts.map +1 -0
  312. package/dist/src/warpc/msg-protocol/concept/resource/object-msg.js +23 -0
  313. package/dist/src/warpc/msg-protocol/concept/resource/object-msg.js.map +1 -0
  314. package/dist/src/warpc/msg-protocol/concept/resource/resource-msg.d.ts +27 -0
  315. package/dist/src/warpc/msg-protocol/concept/resource/resource-msg.d.ts.map +1 -0
  316. package/dist/src/warpc/msg-protocol/concept/resource/resource-msg.js +32 -0
  317. package/dist/src/warpc/msg-protocol/concept/resource/resource-msg.js.map +1 -0
  318. package/dist/src/warpc/msg-protocol/concept/resource/system-msg.d.ts +48 -0
  319. package/dist/src/warpc/msg-protocol/concept/resource/system-msg.d.ts.map +1 -0
  320. package/dist/src/warpc/msg-protocol/concept/resource/system-msg.js +301 -0
  321. package/dist/src/warpc/msg-protocol/concept/resource/system-msg.js.map +1 -0
  322. package/dist/src/warpc/msg-protocol/concept/value/atom.d.ts +33 -0
  323. package/dist/src/warpc/msg-protocol/concept/value/atom.d.ts.map +1 -0
  324. package/dist/src/warpc/msg-protocol/concept/value/atom.js +74 -0
  325. package/dist/src/warpc/msg-protocol/concept/value/atom.js.map +1 -0
  326. package/dist/src/warpc/msg-protocol/concept/value/container.d.ts +59 -0
  327. package/dist/src/warpc/msg-protocol/concept/value/container.d.ts.map +1 -0
  328. package/dist/src/warpc/msg-protocol/concept/value/container.js +189 -0
  329. package/dist/src/warpc/msg-protocol/concept/value/container.js.map +1 -0
  330. package/dist/src/warpc/msg-protocol/concept/value/symbol.d.ts +20 -0
  331. package/dist/src/warpc/msg-protocol/concept/value/symbol.d.ts.map +1 -0
  332. package/dist/src/warpc/msg-protocol/concept/value/symbol.js +61 -0
  333. package/dist/src/warpc/msg-protocol/concept/value/symbol.js.map +1 -0
  334. package/dist/src/warpc/msg-protocol/concept/value/value-msg.d.ts +8 -0
  335. package/dist/src/warpc/msg-protocol/concept/value/value-msg.d.ts.map +1 -0
  336. package/dist/src/warpc/msg-protocol/concept/value/value-msg.js +12 -0
  337. package/dist/src/warpc/msg-protocol/concept/value/value-msg.js.map +1 -0
  338. package/dist/src/warpc/msg-protocol/kinds.d.ts +118 -0
  339. package/dist/src/warpc/msg-protocol/kinds.d.ts.map +1 -0
  340. package/dist/src/warpc/msg-protocol/kinds.js +131 -0
  341. package/dist/src/warpc/msg-protocol/kinds.js.map +1 -0
  342. package/dist/src/warpc/msg-protocol/rpc/event-msg.d.ts +12 -0
  343. package/dist/src/warpc/msg-protocol/rpc/event-msg.d.ts.map +1 -0
  344. package/dist/src/warpc/msg-protocol/rpc/event-msg.js +19 -0
  345. package/dist/src/warpc/msg-protocol/rpc/event-msg.js.map +1 -0
  346. package/dist/src/warpc/msg-protocol/rpc/request-msg.d.ts +90 -0
  347. package/dist/src/warpc/msg-protocol/rpc/request-msg.d.ts.map +1 -0
  348. package/dist/src/warpc/msg-protocol/rpc/request-msg.js +75 -0
  349. package/dist/src/warpc/msg-protocol/rpc/request-msg.js.map +1 -0
  350. package/dist/src/warpc/msg-protocol/rpc/response-msg.d.ts +29 -0
  351. package/dist/src/warpc/msg-protocol/rpc/response-msg.d.ts.map +1 -0
  352. package/dist/src/warpc/msg-protocol/rpc/response-msg.js +37 -0
  353. package/dist/src/warpc/msg-protocol/rpc/response-msg.js.map +1 -0
  354. package/dist/src/warpc/msg-protocol/rpc/rpc-msg.d.ts +8 -0
  355. package/dist/src/warpc/msg-protocol/rpc/rpc-msg.d.ts.map +1 -0
  356. package/dist/src/warpc/msg-protocol/rpc/rpc-msg.js +13 -0
  357. package/dist/src/warpc/msg-protocol/rpc/rpc-msg.js.map +1 -0
  358. package/dist/src/warpc/rpc-channel/handler.d.ts +23 -0
  359. package/dist/src/warpc/rpc-channel/handler.d.ts.map +1 -0
  360. package/dist/src/warpc/rpc-channel/handler.js +163 -0
  361. package/dist/src/warpc/rpc-channel/handler.js.map +1 -0
  362. package/dist/src/warpc/rpc-channel/mux.d.ts +25 -0
  363. package/dist/src/warpc/rpc-channel/mux.d.ts.map +1 -0
  364. package/dist/src/warpc/rpc-channel/mux.js +95 -0
  365. package/dist/src/warpc/rpc-channel/mux.js.map +1 -0
  366. package/dist/src/warpc/rpc-channel/responder.d.ts +18 -0
  367. package/dist/src/warpc/rpc-channel/responder.d.ts.map +1 -0
  368. package/dist/src/warpc/rpc-channel/responder.js +423 -0
  369. package/dist/src/warpc/rpc-channel/responder.js.map +1 -0
  370. package/dist/src/warpc/rpc-channel/socket.d.ts +25 -0
  371. package/dist/src/warpc/rpc-channel/socket.d.ts.map +1 -0
  372. package/dist/src/warpc/rpc-channel/socket.js +58 -0
  373. package/dist/src/warpc/rpc-channel/socket.js.map +1 -0
  374. package/dist/src/warpc/rpc-channel/utils.d.ts +6 -0
  375. package/dist/src/warpc/rpc-channel/utils.d.ts.map +1 -0
  376. package/dist/src/warpc/rpc-channel/utils.js +15 -0
  377. package/dist/src/warpc/rpc-channel/utils.js.map +1 -0
  378. package/dist/src/warpc/runtime.d.ts +36 -0
  379. package/dist/src/warpc/runtime.d.ts.map +1 -0
  380. package/dist/src/warpc/runtime.js +153 -0
  381. package/dist/src/warpc/runtime.js.map +1 -0
  382. package/dist-transformer/agentica/agent.d.ts +81 -0
  383. package/dist-transformer/agentica/agent.d.ts.map +1 -0
  384. package/dist-transformer/agentica/agent.js +185 -0
  385. package/dist-transformer/agentica/agentic.d.ts +36 -0
  386. package/dist-transformer/agentica/agentic.d.ts.map +1 -0
  387. package/dist-transformer/agentica/agentic.js +100 -0
  388. package/dist-transformer/agentica/common.d.ts +137 -0
  389. package/dist-transformer/agentica/common.d.ts.map +1 -0
  390. package/dist-transformer/agentica/common.js +276 -0
  391. package/dist-transformer/agentica/template.d.ts +19 -0
  392. package/dist-transformer/agentica/template.d.ts.map +1 -0
  393. package/dist-transformer/agentica/template.js +47 -0
  394. package/dist-transformer/agentica-client/agentica-client.d.ts +32 -0
  395. package/dist-transformer/agentica-client/agentica-client.d.ts.map +1 -0
  396. package/dist-transformer/agentica-client/agentica-client.js +129 -0
  397. package/dist-transformer/agentica-client/global-csm.d.ts +20 -0
  398. package/dist-transformer/agentica-client/global-csm.d.ts.map +1 -0
  399. package/dist-transformer/agentica-client/global-csm.js +46 -0
  400. package/dist-transformer/agentica-client/index.d.ts +3 -0
  401. package/dist-transformer/agentica-client/index.d.ts.map +1 -0
  402. package/dist-transformer/agentica-client/index.js +2 -0
  403. package/dist-transformer/agentica-client/utils.d.ts +5 -0
  404. package/dist-transformer/agentica-client/utils.d.ts.map +1 -0
  405. package/dist-transformer/agentica-client/utils.js +6 -0
  406. package/dist-transformer/bundlers/utils.d.ts +18 -0
  407. package/dist-transformer/bundlers/utils.d.ts.map +1 -0
  408. package/dist-transformer/bundlers/utils.js +49 -0
  409. package/dist-transformer/client-session-manager/at-exit.d.ts +19 -0
  410. package/dist-transformer/client-session-manager/at-exit.d.ts.map +1 -0
  411. package/dist-transformer/client-session-manager/at-exit.js +140 -0
  412. package/dist-transformer/client-session-manager/client-session-manager.d.ts +148 -0
  413. package/dist-transformer/client-session-manager/client-session-manager.d.ts.map +1 -0
  414. package/dist-transformer/client-session-manager/client-session-manager.js +966 -0
  415. package/dist-transformer/client-session-manager/message-utils.d.ts +19 -0
  416. package/dist-transformer/client-session-manager/message-utils.d.ts.map +1 -0
  417. package/dist-transformer/client-session-manager/message-utils.js +69 -0
  418. package/dist-transformer/client-session-manager/queue.d.ts +13 -0
  419. package/dist-transformer/client-session-manager/queue.d.ts.map +1 -0
  420. package/dist-transformer/client-session-manager/queue.js +45 -0
  421. package/dist-transformer/client-session-manager/types.d.ts +23 -0
  422. package/dist-transformer/client-session-manager/types.d.ts.map +1 -0
  423. package/dist-transformer/client-session-manager/types.js +1 -0
  424. package/dist-transformer/coming-soon.d.ts +45 -0
  425. package/dist-transformer/coming-soon.d.ts.map +1 -0
  426. package/dist-transformer/coming-soon.js +210 -0
  427. package/dist-transformer/common.d.ts +3 -0
  428. package/dist-transformer/common.d.ts.map +1 -0
  429. package/dist-transformer/common.js +13 -0
  430. package/dist-transformer/errors/base.d.ts +20 -0
  431. package/dist-transformer/errors/base.d.ts.map +1 -0
  432. package/dist-transformer/errors/base.js +43 -0
  433. package/dist-transformer/errors/bugs.d.ts +7 -0
  434. package/dist-transformer/errors/bugs.d.ts.map +1 -0
  435. package/dist-transformer/errors/bugs.js +16 -0
  436. package/dist-transformer/errors/connection.d.ts +22 -0
  437. package/dist-transformer/errors/connection.d.ts.map +1 -0
  438. package/dist-transformer/errors/connection.js +31 -0
  439. package/dist-transformer/errors/generation.d.ts +75 -0
  440. package/dist-transformer/errors/generation.d.ts.map +1 -0
  441. package/dist-transformer/errors/generation.js +98 -0
  442. package/dist-transformer/errors/index.d.ts +9 -0
  443. package/dist-transformer/errors/index.d.ts.map +1 -0
  444. package/dist-transformer/errors/index.js +64 -0
  445. package/dist-transformer/errors/invocation.d.ts +8 -0
  446. package/dist-transformer/errors/invocation.d.ts.map +1 -0
  447. package/dist-transformer/errors/invocation.js +7 -0
  448. package/dist-transformer/index.d.ts +8 -0
  449. package/dist-transformer/index.d.ts.map +1 -0
  450. package/dist-transformer/index.js +40 -0
  451. package/dist-transformer/logging/composite-logger.d.ts +28 -0
  452. package/dist-transformer/logging/composite-logger.d.ts.map +1 -0
  453. package/dist-transformer/logging/composite-logger.js +118 -0
  454. package/dist-transformer/logging/config.d.ts +17 -0
  455. package/dist-transformer/logging/config.d.ts.map +1 -0
  456. package/dist-transformer/logging/config.js +86 -0
  457. package/dist-transformer/logging/index.d.ts +19 -0
  458. package/dist-transformer/logging/index.d.ts.map +1 -0
  459. package/dist-transformer/logging/index.js +32 -0
  460. package/dist-transformer/logging/logger.d.ts +30 -0
  461. package/dist-transformer/logging/logger.d.ts.map +1 -0
  462. package/dist-transformer/logging/logger.js +153 -0
  463. package/dist-transformer/logging/otel-logger.d.ts +33 -0
  464. package/dist-transformer/logging/otel-logger.d.ts.map +1 -0
  465. package/dist-transformer/logging/otel-logger.js +121 -0
  466. package/dist-transformer/logging/span.d.ts +23 -0
  467. package/dist-transformer/logging/span.d.ts.map +1 -0
  468. package/dist-transformer/logging/span.js +40 -0
  469. package/dist-transformer/logging/types.d.ts +32 -0
  470. package/dist-transformer/logging/types.d.ts.map +1 -0
  471. package/dist-transformer/logging/types.js +1 -0
  472. package/dist-transformer/otel-config.d.ts +61 -0
  473. package/dist-transformer/otel-config.d.ts.map +1 -0
  474. package/dist-transformer/otel-config.js +175 -0
  475. package/dist-transformer/otel-logging.d.ts +49 -0
  476. package/dist-transformer/otel-logging.d.ts.map +1 -0
  477. package/dist-transformer/otel-logging.js +99 -0
  478. package/dist-transformer/transformer/codegen/context-gen.d.ts +47 -0
  479. package/dist-transformer/transformer/codegen/context-gen.d.ts.map +1 -0
  480. package/dist-transformer/transformer/codegen/context-gen.js +354 -0
  481. package/dist-transformer/transformer/processor/class-targets.d.ts +11 -0
  482. package/dist-transformer/transformer/processor/class-targets.d.ts.map +1 -0
  483. package/dist-transformer/transformer/processor/class-targets.js +37 -0
  484. package/dist-transformer/transformer/processor/function-targets.d.ts +11 -0
  485. package/dist-transformer/transformer/processor/function-targets.d.ts.map +1 -0
  486. package/dist-transformer/transformer/processor/function-targets.js +8 -0
  487. package/dist-transformer/transformer/processor/object-targets.d.ts +11 -0
  488. package/dist-transformer/transformer/processor/object-targets.d.ts.map +1 -0
  489. package/dist-transformer/transformer/processor/object-targets.js +8 -0
  490. package/dist-transformer/transformer/processor/processor-utils.d.ts +67 -0
  491. package/dist-transformer/transformer/processor/processor-utils.d.ts.map +1 -0
  492. package/dist-transformer/transformer/processor/processor-utils.js +533 -0
  493. package/dist-transformer/transformer/processor/processor.d.ts +22 -0
  494. package/dist-transformer/transformer/processor/processor.d.ts.map +1 -0
  495. package/dist-transformer/transformer/processor/processor.js +202 -0
  496. package/dist-transformer/transformer/transformer-config.d.ts +9 -0
  497. package/dist-transformer/transformer/transformer-config.d.ts.map +1 -0
  498. package/dist-transformer/transformer/transformer-config.js +12 -0
  499. package/dist-transformer/transformer/transformer-utils.d.ts +29 -0
  500. package/dist-transformer/transformer/transformer-utils.d.ts.map +1 -0
  501. package/dist-transformer/transformer/transformer-utils.js +364 -0
  502. package/dist-transformer/transformer/transformer.d.ts +8 -0
  503. package/dist-transformer/transformer/transformer.d.ts.map +1 -0
  504. package/dist-transformer/transformer/transformer.js +104 -0
  505. package/dist-transformer/transformer/traverser/class-traversal.d.ts +9 -0
  506. package/dist-transformer/transformer/traverser/class-traversal.d.ts.map +1 -0
  507. package/dist-transformer/transformer/traverser/class-traversal.js +336 -0
  508. package/dist-transformer/transformer/traverser/function-traversal.d.ts +7 -0
  509. package/dist-transformer/transformer/traverser/function-traversal.d.ts.map +1 -0
  510. package/dist-transformer/transformer/traverser/function-traversal.js +28 -0
  511. package/dist-transformer/transformer/traverser/system-traversal.d.ts +13 -0
  512. package/dist-transformer/transformer/traverser/system-traversal.d.ts.map +1 -0
  513. package/dist-transformer/transformer/traverser/system-traversal.js +350 -0
  514. package/dist-transformer/transformer/traverser/traversal-utils.d.ts +16 -0
  515. package/dist-transformer/transformer/traverser/traversal-utils.d.ts.map +1 -0
  516. package/dist-transformer/transformer/traverser/traversal-utils.js +132 -0
  517. package/dist-transformer/transformer/traverser/traverser.d.ts +44 -0
  518. package/dist-transformer/transformer/traverser/traverser.d.ts.map +1 -0
  519. package/dist-transformer/transformer/traverser/traverser.js +414 -0
  520. package/dist-transformer/version.d.ts +2 -0
  521. package/dist-transformer/version.d.ts.map +1 -0
  522. package/dist-transformer/version.js +3 -0
  523. package/dist-transformer/warpc/frame-context/annotation-ctx.d.ts +15 -0
  524. package/dist-transformer/warpc/frame-context/annotation-ctx.d.ts.map +1 -0
  525. package/dist-transformer/warpc/frame-context/annotation-ctx.js +30 -0
  526. package/dist-transformer/warpc/frame-context/frame-ctx.d.ts +27 -0
  527. package/dist-transformer/warpc/frame-context/frame-ctx.d.ts.map +1 -0
  528. package/dist-transformer/warpc/frame-context/frame-ctx.js +42 -0
  529. package/dist-transformer/warpc/frame-context/message-conversion/decoder.d.ts +24 -0
  530. package/dist-transformer/warpc/frame-context/message-conversion/decoder.d.ts.map +1 -0
  531. package/dist-transformer/warpc/frame-context/message-conversion/decoder.js +204 -0
  532. package/dist-transformer/warpc/frame-context/message-conversion/encoder.d.ts +22 -0
  533. package/dist-transformer/warpc/frame-context/message-conversion/encoder.d.ts.map +1 -0
  534. package/dist-transformer/warpc/frame-context/message-conversion/encoder.js +246 -0
  535. package/dist-transformer/warpc/frame-context/resource-ctx.d.ts +45 -0
  536. package/dist-transformer/warpc/frame-context/resource-ctx.d.ts.map +1 -0
  537. package/dist-transformer/warpc/frame-context/resource-ctx.js +103 -0
  538. package/dist-transformer/warpc/frame-context/synthetic-resources/factory.d.ts +31 -0
  539. package/dist-transformer/warpc/frame-context/synthetic-resources/factory.d.ts.map +1 -0
  540. package/dist-transformer/warpc/frame-context/synthetic-resources/factory.js +196 -0
  541. package/dist-transformer/warpc/frame-context/system-ctx.d.ts +18 -0
  542. package/dist-transformer/warpc/frame-context/system-ctx.d.ts.map +1 -0
  543. package/dist-transformer/warpc/frame-context/system-ctx.js +135 -0
  544. package/dist-transformer/warpc/frame-context/uid-gen.d.ts +14 -0
  545. package/dist-transformer/warpc/frame-context/uid-gen.d.ts.map +1 -0
  546. package/dist-transformer/warpc/frame-context/uid-gen.js +22 -0
  547. package/dist-transformer/warpc/frame-context/virtual-resources/default.d.ts +16 -0
  548. package/dist-transformer/warpc/frame-context/virtual-resources/default.d.ts.map +1 -0
  549. package/dist-transformer/warpc/frame-context/virtual-resources/default.js +196 -0
  550. package/dist-transformer/warpc/frame-context/virtual-resources/dispatcher.d.ts +17 -0
  551. package/dist-transformer/warpc/frame-context/virtual-resources/dispatcher.d.ts.map +1 -0
  552. package/dist-transformer/warpc/frame-context/virtual-resources/dispatcher.js +255 -0
  553. package/dist-transformer/warpc/frame-context/virtual-resources/virtualizer.d.ts +32 -0
  554. package/dist-transformer/warpc/frame-context/virtual-resources/virtualizer.d.ts.map +1 -0
  555. package/dist-transformer/warpc/frame-context/virtual-resources/virtualizer.js +15 -0
  556. package/dist-transformer/warpc/frame.d.ts +45 -0
  557. package/dist-transformer/warpc/frame.d.ts.map +1 -0
  558. package/dist-transformer/warpc/frame.js +417 -0
  559. package/dist-transformer/warpc/msg-protocol/concept/annotations/annotation-msg.d.ts +68 -0
  560. package/dist-transformer/warpc/msg-protocol/concept/annotations/annotation-msg.d.ts.map +1 -0
  561. package/dist-transformer/warpc/msg-protocol/concept/annotations/annotation-msg.js +135 -0
  562. package/dist-transformer/warpc/msg-protocol/concept/concept.d.ts +33 -0
  563. package/dist-transformer/warpc/msg-protocol/concept/concept.d.ts.map +1 -0
  564. package/dist-transformer/warpc/msg-protocol/concept/concept.js +44 -0
  565. package/dist-transformer/warpc/msg-protocol/concept/exception/exception-msg.d.ts +42 -0
  566. package/dist-transformer/warpc/msg-protocol/concept/exception/exception-msg.d.ts.map +1 -0
  567. package/dist-transformer/warpc/msg-protocol/concept/exception/exception-msg.js +74 -0
  568. package/dist-transformer/warpc/msg-protocol/concept/rehydrate.d.ts +2 -0
  569. package/dist-transformer/warpc/msg-protocol/concept/rehydrate.d.ts.map +1 -0
  570. package/dist-transformer/warpc/msg-protocol/concept/rehydrate.js +61 -0
  571. package/dist-transformer/warpc/msg-protocol/concept/resource/class-msg.d.ts +86 -0
  572. package/dist-transformer/warpc/msg-protocol/concept/resource/class-msg.d.ts.map +1 -0
  573. package/dist-transformer/warpc/msg-protocol/concept/resource/class-msg.js +157 -0
  574. package/dist-transformer/warpc/msg-protocol/concept/resource/function-msg.d.ts +30 -0
  575. package/dist-transformer/warpc/msg-protocol/concept/resource/function-msg.d.ts.map +1 -0
  576. package/dist-transformer/warpc/msg-protocol/concept/resource/function-msg.js +48 -0
  577. package/dist-transformer/warpc/msg-protocol/concept/resource/object-msg.d.ts +25 -0
  578. package/dist-transformer/warpc/msg-protocol/concept/resource/object-msg.d.ts.map +1 -0
  579. package/dist-transformer/warpc/msg-protocol/concept/resource/object-msg.js +24 -0
  580. package/dist-transformer/warpc/msg-protocol/concept/resource/resource-msg.d.ts +37 -0
  581. package/dist-transformer/warpc/msg-protocol/concept/resource/resource-msg.d.ts.map +1 -0
  582. package/dist-transformer/warpc/msg-protocol/concept/resource/resource-msg.js +32 -0
  583. package/dist-transformer/warpc/msg-protocol/concept/resource/system-msg.d.ts +48 -0
  584. package/dist-transformer/warpc/msg-protocol/concept/resource/system-msg.d.ts.map +1 -0
  585. package/dist-transformer/warpc/msg-protocol/concept/resource/system-msg.js +306 -0
  586. package/dist-transformer/warpc/msg-protocol/concept/value/atom.d.ts +33 -0
  587. package/dist-transformer/warpc/msg-protocol/concept/value/atom.d.ts.map +1 -0
  588. package/dist-transformer/warpc/msg-protocol/concept/value/atom.js +69 -0
  589. package/dist-transformer/warpc/msg-protocol/concept/value/container.d.ts +59 -0
  590. package/dist-transformer/warpc/msg-protocol/concept/value/container.d.ts.map +1 -0
  591. package/dist-transformer/warpc/msg-protocol/concept/value/container.js +185 -0
  592. package/dist-transformer/warpc/msg-protocol/concept/value/symbol.d.ts +20 -0
  593. package/dist-transformer/warpc/msg-protocol/concept/value/symbol.d.ts.map +1 -0
  594. package/dist-transformer/warpc/msg-protocol/concept/value/symbol.js +57 -0
  595. package/dist-transformer/warpc/msg-protocol/concept/value/value-msg.d.ts +8 -0
  596. package/dist-transformer/warpc/msg-protocol/concept/value/value-msg.d.ts.map +1 -0
  597. package/dist-transformer/warpc/msg-protocol/concept/value/value-msg.js +10 -0
  598. package/dist-transformer/warpc/msg-protocol/kinds.d.ts +118 -0
  599. package/dist-transformer/warpc/msg-protocol/kinds.d.ts.map +1 -0
  600. package/dist-transformer/warpc/msg-protocol/kinds.js +141 -0
  601. package/dist-transformer/warpc/msg-protocol/rpc/event-msg.d.ts +12 -0
  602. package/dist-transformer/warpc/msg-protocol/rpc/event-msg.d.ts.map +1 -0
  603. package/dist-transformer/warpc/msg-protocol/rpc/event-msg.js +15 -0
  604. package/dist-transformer/warpc/msg-protocol/rpc/request-msg.d.ts +90 -0
  605. package/dist-transformer/warpc/msg-protocol/rpc/request-msg.d.ts.map +1 -0
  606. package/dist-transformer/warpc/msg-protocol/rpc/request-msg.js +64 -0
  607. package/dist-transformer/warpc/msg-protocol/rpc/response-msg.d.ts +29 -0
  608. package/dist-transformer/warpc/msg-protocol/rpc/response-msg.d.ts.map +1 -0
  609. package/dist-transformer/warpc/msg-protocol/rpc/response-msg.js +32 -0
  610. package/dist-transformer/warpc/msg-protocol/rpc/rpc-msg.d.ts +8 -0
  611. package/dist-transformer/warpc/msg-protocol/rpc/rpc-msg.d.ts.map +1 -0
  612. package/dist-transformer/warpc/msg-protocol/rpc/rpc-msg.js +9 -0
  613. package/dist-transformer/warpc/rpc-channel/handler.d.ts +23 -0
  614. package/dist-transformer/warpc/rpc-channel/handler.d.ts.map +1 -0
  615. package/dist-transformer/warpc/rpc-channel/handler.js +163 -0
  616. package/dist-transformer/warpc/rpc-channel/mux.d.ts +25 -0
  617. package/dist-transformer/warpc/rpc-channel/mux.d.ts.map +1 -0
  618. package/dist-transformer/warpc/rpc-channel/mux.js +93 -0
  619. package/dist-transformer/warpc/rpc-channel/responder.d.ts +27 -0
  620. package/dist-transformer/warpc/rpc-channel/responder.d.ts.map +1 -0
  621. package/dist-transformer/warpc/rpc-channel/responder.js +463 -0
  622. package/dist-transformer/warpc/rpc-channel/socket.d.ts +25 -0
  623. package/dist-transformer/warpc/rpc-channel/socket.d.ts.map +1 -0
  624. package/dist-transformer/warpc/rpc-channel/socket.js +70 -0
  625. package/dist-transformer/warpc/rpc-channel/utils.d.ts +6 -0
  626. package/dist-transformer/warpc/rpc-channel/utils.d.ts.map +1 -0
  627. package/dist-transformer/warpc/rpc-channel/utils.js +14 -0
  628. package/dist-transformer/warpc/runtime.d.ts +36 -0
  629. package/dist-transformer/warpc/runtime.d.ts.map +1 -0
  630. package/dist-transformer/warpc/runtime.js +159 -0
  631. package/package.json +126 -0
@@ -0,0 +1,966 @@
1
+ import { Usage, makeRole } from '../agentica/common.js';
2
+ import { createLogger, loggingConfig } from '../logging/index.js';
3
+ import { v4 as uuidv4 } from 'uuid';
4
+ async function createWebSocket(url, apiKey, customHeaders) {
5
+ // Check for Node.js environment and ws package
6
+ if (typeof process !== 'undefined' && process.versions?.node) {
7
+ const WS = await import('ws').then((m) => m.default || m);
8
+ const headers = { ...customHeaders };
9
+ if (apiKey) {
10
+ headers['Authorization'] = `Bearer ${apiKey}`;
11
+ }
12
+ return new WS(url, { headers });
13
+ }
14
+ // Browser environment - native WebSocket (doesn't support custom headers)
15
+ // Note: traceparent would need to be sent via query params or other mechanism in browser
16
+ if (apiKey) {
17
+ const separator = url.includes('?') ? '&' : '?';
18
+ const authenticatedUrl = `${url}${separator}bearer=${encodeURIComponent(apiKey)}`;
19
+ return new WebSocket(authenticatedUrl);
20
+ }
21
+ return new WebSocket(url);
22
+ }
23
+ import { registerCleanup } from './at-exit.js';
24
+ import { decodeMessage, encodeMessage, isServerMessage, uint8ArrayToBase64 } from './message-utils.js';
25
+ import { Queue } from './queue.js';
26
+ import { ConnectionError, SDKUnsupportedError, ServerError, WebSocketConnectionError, attemptToParseMultiplexError, enrichError, } from '../errors/index.js';
27
+ import { waitForTracing } from '../index.js';
28
+ import { injectTraceContext } from '../otel-config.js';
29
+ import { CustomLogFW } from '../otel-logging.js';
30
+ import { version } from '../version.js';
31
+ /**
32
+ * ClientSessionManager - TypeScript equivalent of the Python ClientSessionManager
33
+ * Maintains identical structure and method signatures
34
+ */
35
+ export class ClientSessionManager {
36
+ constructor(config = {}) {
37
+ this.websocket = null;
38
+ this.tasks = null;
39
+ this.sendQueue = null;
40
+ this.baseHttp = null;
41
+ this.baseWs = null;
42
+ this.apiKey = null;
43
+ this.uidToLogger = new Map();
44
+ this.isStopped = false;
45
+ this.isStopping = false;
46
+ this.sessionSpan = null;
47
+ // Invocation guard: keeps process alive only during active WebSocket connections
48
+ this.activeConnectionCount = 0;
49
+ this.invocationGuard = null;
50
+ this.logger = createLogger('session-manager');
51
+ this.idIssuer = () => uuidv4();
52
+ this.uidIidRecvQueue = new Map();
53
+ this.uidIidException = new Map();
54
+ this.matchIid = new Map();
55
+ this.iidToUid = new Map();
56
+ this.knownUids = new Set();
57
+ this.apiKey = config.apiKey ?? null;
58
+ // Initialize session management
59
+ this.clientSessionId = uuidv4();
60
+ // Start session-level span for entire SDK lifetime
61
+ this.sessionSpan = this.logger.startSpan('sdk.session');
62
+ this.sessionSpan.setAttribute('sdk.version', version);
63
+ this.sessionSpan.setAttribute('sdk.session_id', this.clientSessionId);
64
+ // Initialize OpenTelemetry logging (optional) - sends logs to session manager's collector
65
+ if (config.enableOtelLogging || loggingConfig.isOtelLoggingEnabled()) {
66
+ const instanceId = `sdk-${this.idIssuer().slice(0, 8)}`;
67
+ const logFW = new CustomLogFW('agentica-sdk-typescript', instanceId);
68
+ logFW.setupLogging();
69
+ this.logger.info(`OpenTelemetry logging initialized for SDK instance: ${instanceId}`);
70
+ if (this.sessionSpan) {
71
+ this.sessionSpan.setAttribute('sdk.instance_id', instanceId);
72
+ }
73
+ }
74
+ // Cleanup registration happens in setEndpoints() when CSM is actually configured
75
+ this.logger.info(`Initialized ClientSessionManager with session ID: ${this.clientSessionId}`);
76
+ }
77
+ /**
78
+ * Increment active connection count and create guard if needed.
79
+ * The guard is a ref'd interval that keeps the process alive during active connections.
80
+ */
81
+ refConnection() {
82
+ this.activeConnectionCount++;
83
+ if (this.activeConnectionCount === 1 && !this.invocationGuard) {
84
+ // Create a dummy interval that keeps the process alive
85
+ this.invocationGuard = setInterval(() => { }, 2147483647); // Max safe interval
86
+ }
87
+ }
88
+ /**
89
+ * Decrement active connection count and clear guard if no more connections.
90
+ */
91
+ unrefConnection() {
92
+ this.activeConnectionCount = Math.max(0, this.activeConnectionCount - 1);
93
+ if (this.activeConnectionCount === 0 && this.invocationGuard) {
94
+ clearInterval(this.invocationGuard);
95
+ this.invocationGuard = null;
96
+ }
97
+ }
98
+ setEndpoints(baseHttp, baseWs) {
99
+ this.baseHttp = baseHttp;
100
+ this.baseWs = baseWs;
101
+ if (this.sessionSpan) {
102
+ this.sessionSpan.setAttribute('sdk.base_url', baseHttp);
103
+ }
104
+ this.logger.debug(`Endpoints set (http=${baseHttp}, ws=${baseWs})`);
105
+ // Register for cleanup only when first configured
106
+ registerCleanup(this, () => this.close());
107
+ // Register session with server
108
+ this.registerSession().catch((error) => {
109
+ this.logger.error('Fatal error during session registration:', error);
110
+ throw error;
111
+ });
112
+ }
113
+ /**
114
+ * Register this client session with the server.
115
+ * Throws an error if registration fails.
116
+ */
117
+ async registerSession() {
118
+ await waitForTracing;
119
+ if (!this.baseHttp) {
120
+ const error = new ConnectionError('Cannot register session: baseHttp not set');
121
+ enrichError(error, { sessionId: this.clientSessionId });
122
+ throw error;
123
+ }
124
+ try {
125
+ const response = await fetch(`${this.baseHttp}/session/register`, {
126
+ method: 'POST',
127
+ headers: this.buildHeaders(),
128
+ });
129
+ if (response.ok) {
130
+ this.logger.info(`Session ${this.clientSessionId} registered with server`);
131
+ }
132
+ else {
133
+ const responseText = await response.text().catch(() => 'unknown error');
134
+ const error = new ConnectionError(`Failed to register session: HTTP ${response.status} - ${responseText}`);
135
+ enrichError(error, { sessionId: this.clientSessionId });
136
+ throw error;
137
+ }
138
+ }
139
+ catch (error) {
140
+ if (error instanceof ConnectionError) {
141
+ throw error;
142
+ }
143
+ const enrichedError = new ConnectionError(`Failed to register session: ${error instanceof Error ? error.message : 'unknown error'}`);
144
+ enrichError(enrichedError, { sessionId: this.clientSessionId });
145
+ throw enrichedError;
146
+ }
147
+ }
148
+ /**
149
+ * Build authentication headers for HTTP requests.
150
+ */
151
+ buildHeaders(additionalHeaders) {
152
+ const headers = additionalHeaders || {};
153
+ if (this.apiKey) {
154
+ headers['Authorization'] = `Bearer ${this.apiKey}`;
155
+ }
156
+ headers['X-Client-Session-ID'] = this.clientSessionId;
157
+ return headers;
158
+ }
159
+ /**
160
+ * Background task for writing messages to WebSocket - matches Python _ws_background_task_writer
161
+ */
162
+ async wsBackgroundTaskWriter(control) {
163
+ await waitForTracing;
164
+ const wsLogger = this.logger.withScope('ws-writer');
165
+ wsLogger.debug('Writer task started');
166
+ const ws = this.websocket;
167
+ try {
168
+ while (!control.shouldStop) {
169
+ try {
170
+ const sendQueue = this.sendQueue;
171
+ if (!sendQueue) {
172
+ wsLogger.debug('Send queue removed, exiting writer');
173
+ break;
174
+ }
175
+ const msg = await sendQueue.get();
176
+ const msgUid = msg.uid;
177
+ const msgLogger = msgUid ? (this.uidToLogger.get(msgUid) ?? wsLogger) : wsLogger;
178
+ if (ws.readyState !== 1) {
179
+ const error = new WebSocketConnectionError(`cannot send as websocket is not open.`);
180
+ enrichError(error, { uid: msgUid, sessionId: this.clientSessionId });
181
+ throw error;
182
+ }
183
+ msgLogger.debug(`Sending ${msg.type} message`);
184
+ ws.send(encodeMessage(msg));
185
+ }
186
+ catch (error) {
187
+ if (error instanceof Error && error.message === 'Queue closed') {
188
+ wsLogger.debug('Queue closed, exiting writer');
189
+ break;
190
+ }
191
+ throw error;
192
+ }
193
+ }
194
+ wsLogger.debug('Writer task stopped');
195
+ }
196
+ catch (error) {
197
+ wsLogger.error('Writer task failed', error);
198
+ for (const [matchId, handlers] of this.matchIid.entries()) {
199
+ handlers.reject(new WebSocketConnectionError(`WebSocket writer failed: ${error.message}`));
200
+ this.matchIid.delete(matchId);
201
+ }
202
+ for (const [_, exceptionMap] of this.uidIidException.entries()) {
203
+ for (const [_iid, handlers] of exceptionMap.entries()) {
204
+ handlers.reject(new WebSocketConnectionError(`WebSocket writer failed: ${error.message}`));
205
+ }
206
+ }
207
+ throw error;
208
+ }
209
+ }
210
+ /**
211
+ * Background task for reading messages from WebSocket - matches Python _ws_background_task_reader
212
+ */
213
+ async wsBackgroundTaskReader(control) {
214
+ await waitForTracing;
215
+ const wsLogger = this.logger.withScope('ws-reader');
216
+ wsLogger.debug('Reader task started');
217
+ const ws = this.websocket;
218
+ ws.onmessage = (event) => {
219
+ if (control.shouldStop)
220
+ return;
221
+ let msg_bytes;
222
+ // Check for Buffer in Node.js environment
223
+ if (typeof Buffer !== 'undefined' && event.data instanceof Buffer) {
224
+ msg_bytes = new Uint8Array(event.data);
225
+ }
226
+ else if (event.data instanceof ArrayBuffer) {
227
+ msg_bytes = new Uint8Array(event.data);
228
+ }
229
+ else if (event.data instanceof Uint8Array) {
230
+ msg_bytes = event.data;
231
+ }
232
+ else {
233
+ wsLogger.warn(`Unexpected WebSocket data type: ${typeof event.data}`);
234
+ return;
235
+ }
236
+ let msg;
237
+ try {
238
+ msg = decodeMessage(msg_bytes);
239
+ }
240
+ catch (error) {
241
+ wsLogger.warn('Failed to decode message', error);
242
+ return;
243
+ }
244
+ wsLogger.debug(`Received ${msg.type} message (${msg_bytes.length} bytes)`);
245
+ if (!isServerMessage(msg)) {
246
+ wsLogger.debug(`Message is not a server message: ${msg.type}`);
247
+ wsLogger.debugObject('Message', msg);
248
+ return;
249
+ }
250
+ switch (msg.type) {
251
+ case 'new_iid': {
252
+ wsLogger.debug(`New IID message for match_id=${msg.match_id} uid=${msg.uid} iid=${msg.iid}`);
253
+ const promise = this.matchIid.get(msg.match_id);
254
+ if (promise) {
255
+ promise.resolve(msg.iid);
256
+ this.matchIid.delete(msg.match_id);
257
+ wsLogger.debug(`Matched IID ${msg.iid} for match_id=${msg.match_id}`);
258
+ }
259
+ break;
260
+ }
261
+ case 'data': {
262
+ const uid = msg.uid;
263
+ const msgLogger = this.uidToLogger.get(uid) ?? wsLogger;
264
+ msgLogger.debug(`Data message for iid=${msg.iid} (${msg.data.length} bytes)`);
265
+ const recvQueue = this.uidIidRecvQueue.get(uid)?.get(msg.iid);
266
+ if (recvQueue) {
267
+ recvQueue.put(msg.data);
268
+ msgLogger.debug(`Queued data for iid=${msg.iid} (${msg.data.length} bytes)`);
269
+ }
270
+ break;
271
+ }
272
+ case 'invocation': {
273
+ const uid = msg.uid;
274
+ const msgLogger = this.uidToLogger.get(uid) ?? wsLogger;
275
+ msgLogger.debug(`Invocation message: ${msg.event}`);
276
+ const recvQueue = this.uidIidRecvQueue.get(uid)?.get(msg.iid);
277
+ const exceptionMap = this.uidIidException.get(uid);
278
+ if (msg.event === 'ERROR') {
279
+ if (exceptionMap && exceptionMap.has(msg.iid)) {
280
+ const resolver = exceptionMap.get(msg.iid);
281
+ exceptionMap.delete(msg.iid);
282
+ resolver.reject(new ServerError(`Error event for iid=${msg.iid}`));
283
+ }
284
+ if (recvQueue) {
285
+ recvQueue.put(new Uint8Array([0]));
286
+ }
287
+ }
288
+ if (msg.event === 'EXIT') {
289
+ msgLogger.debug(`Invocation exit for iid=${msg.iid}`);
290
+ if (exceptionMap && exceptionMap.has(msg.iid)) {
291
+ exceptionMap.delete(msg.iid);
292
+ }
293
+ }
294
+ break;
295
+ }
296
+ case 'error': {
297
+ const uid = msg.uid;
298
+ const msgLogger = uid ? (this.uidToLogger.get(uid) ?? wsLogger) : wsLogger;
299
+ msgLogger.debug(`Error message for iid=${msg.iid}`);
300
+ const exceptionMap = uid ? this.uidIidException.get(uid) : undefined;
301
+ const error = attemptToParseMultiplexError(msg);
302
+ if (exceptionMap && exceptionMap.has(msg.iid)) {
303
+ const resolver = exceptionMap.get(msg.iid);
304
+ exceptionMap.delete(msg.iid);
305
+ resolver.reject(error);
306
+ }
307
+ break;
308
+ }
309
+ default: {
310
+ wsLogger.debug(`Unknown message: ${msg}`);
311
+ break;
312
+ }
313
+ }
314
+ };
315
+ return new Promise((resolve) => {
316
+ ws.onclose = (event) => {
317
+ wsLogger.debug(`WebSocket closed (code=${event.code}, reason=${event.reason || 'none'})`);
318
+ control.shouldStop = true;
319
+ for (const [matchId, handlers] of this.matchIid.entries()) {
320
+ handlers.reject(new WebSocketConnectionError(`WebSocket closed: ${event.reason || 'Connection closed'}`));
321
+ this.matchIid.delete(matchId);
322
+ }
323
+ for (const [_, exceptionMap] of this.uidIidException.entries()) {
324
+ for (const [_iid, handlers] of exceptionMap.entries()) {
325
+ handlers.reject(new WebSocketConnectionError(`WebSocket closed: ${event.reason || 'Connection closed'}`));
326
+ }
327
+ exceptionMap.clear();
328
+ }
329
+ resolve();
330
+ };
331
+ ws.onerror = (_error) => {
332
+ wsLogger.error('WebSocket error');
333
+ control.shouldStop = true;
334
+ for (const [matchId, handlers] of this.matchIid.entries()) {
335
+ handlers.reject(new WebSocketConnectionError('WebSocket error occurred'));
336
+ this.matchIid.delete(matchId);
337
+ }
338
+ for (const [_, exceptionMap] of this.uidIidException.entries()) {
339
+ for (const [_iid, handlers] of exceptionMap.entries()) {
340
+ handlers.reject(new WebSocketConnectionError('WebSocket error occurred'));
341
+ }
342
+ exceptionMap.clear();
343
+ }
344
+ resolve();
345
+ };
346
+ });
347
+ }
348
+ /**
349
+ * Ensure WebSocket connection exists, creating it if needed.
350
+ */
351
+ async _ensureWebSocketConnection() {
352
+ if (this.websocket && this.websocket.readyState === 1) {
353
+ return;
354
+ }
355
+ await waitForTracing;
356
+ const span = this.logger.startSpan('sdk.websocket_connection');
357
+ try {
358
+ this.sendQueue = new Queue();
359
+ const websocket_uri = `${this.baseWs}/socket`;
360
+ this.logger.debug(`Connecting WebSocket`);
361
+ span.setAttribute('websocket.uri', websocket_uri);
362
+ span.setAttribute('websocket.state', 'connecting');
363
+ // Create headers object with trace context for distributed tracing
364
+ const headers = {};
365
+ if (this.apiKey) {
366
+ headers['Authorization'] = `Bearer ${this.apiKey}`;
367
+ }
368
+ headers['x-client-session-id'] = this.clientSessionId;
369
+ // Inject trace context into WebSocket headers for distributed tracing
370
+ // Execute in span's context to ensure proper trace propagation (like Python's inject(headers, context=ctx))
371
+ if (span.executeInContext) {
372
+ span.executeInContext(() => {
373
+ injectTraceContext(headers);
374
+ });
375
+ }
376
+ else {
377
+ // Fallback: pass span context directly
378
+ injectTraceContext(headers, span);
379
+ }
380
+ // Pass null for apiKey since headers already has Authorization
381
+ const ws = await createWebSocket(websocket_uri, this.apiKey, headers);
382
+ ws.binaryType = 'arraybuffer';
383
+ return new Promise((resolve, reject) => {
384
+ ws.onopen = () => {
385
+ this.websocket = ws;
386
+ try {
387
+ ws._socket?.unref?.();
388
+ }
389
+ catch {
390
+ // Ignore unref errors
391
+ }
392
+ const readerControl = {
393
+ shouldStop: false,
394
+ promise: Promise.resolve(),
395
+ };
396
+ const writerControl = {
397
+ shouldStop: false,
398
+ promise: Promise.resolve(),
399
+ };
400
+ readerControl.promise = this.wsBackgroundTaskReader(readerControl).catch((error) => {
401
+ this.logger.error('Reader background task crashed', error);
402
+ });
403
+ writerControl.promise = this.wsBackgroundTaskWriter(writerControl).catch((error) => {
404
+ this.logger.error('Writer background task crashed', error);
405
+ });
406
+ this.tasks = [readerControl, writerControl];
407
+ this.logger.info(`WebSocket connected`);
408
+ span.setAttribute('websocket.state', 'connected');
409
+ span.end();
410
+ resolve();
411
+ };
412
+ ws.onerror = (error) => {
413
+ this.logger.error(`WebSocket connection failed:\n${error.toString()}`);
414
+ span.setAttribute('websocket.state', 'error');
415
+ span.recordException(error);
416
+ span.end();
417
+ reject(new WebSocketConnectionError('WebSocket connection failed'));
418
+ };
419
+ });
420
+ }
421
+ catch (error) {
422
+ span.setAttribute('websocket.state', 'error');
423
+ span.recordException(error);
424
+ span.end();
425
+ throw error;
426
+ }
427
+ }
428
+ /**
429
+ * Initialize per-agent data structures.
430
+ */
431
+ _initAgentState(uid, parentLogger) {
432
+ if (!this.uidIidRecvQueue.has(uid)) {
433
+ this.uidIidRecvQueue.set(uid, new Map());
434
+ }
435
+ if (!this.uidIidException.has(uid)) {
436
+ this.uidIidException.set(uid, new Map());
437
+ }
438
+ if (parentLogger) {
439
+ this.uidToLogger.set(uid, parentLogger);
440
+ }
441
+ }
442
+ /**
443
+ * Create new agent - matches Python new_agent
444
+ */
445
+ async newAgent(cmar, parentLogger) {
446
+ await waitForTracing;
447
+ this.refConnection();
448
+ const logger = parentLogger ?? this.logger;
449
+ const span = logger.startSpan('sdk.new_agent');
450
+ try {
451
+ // Wait if currently stopping
452
+ while (this.isStopping) {
453
+ await new Promise((resolve) => setTimeout(resolve, 10));
454
+ }
455
+ // Restart if stopped
456
+ if (this.isStopped) {
457
+ this.isStopped = false;
458
+ }
459
+ if (!this.baseHttp || !this.baseWs) {
460
+ logger.error('Endpoints not set');
461
+ const error = new ConnectionError('Base HTTP and WS endpoints must be set');
462
+ enrichError(error, { sessionId: this.clientSessionId });
463
+ throw error;
464
+ }
465
+ cmar.protocol = `typescript/${version}`;
466
+ const uri = `${this.baseHttp}/agent/create`;
467
+ logger.debug(`Creating agent (model=${cmar.model})`);
468
+ span.setAttribute('agent.model', cmar.model || 'unknown');
469
+ span.setAttribute('agent.streaming', cmar.streaming || false);
470
+ const requestBody = {
471
+ ...cmar,
472
+ warp_globals_payload: uint8ArrayToBase64(cmar.warp_globals_payload),
473
+ };
474
+ // Build headers with trace context for distributed tracing
475
+ const headers = this.buildHeaders({ 'Content-Type': 'application/json' });
476
+ injectTraceContext(headers, span);
477
+ const response = await fetch(uri, {
478
+ method: 'POST',
479
+ headers,
480
+ body: JSON.stringify(requestBody),
481
+ });
482
+ if (response.status === 426) {
483
+ const errorData = await response.json();
484
+ const detail = errorData?.detail || 'SDK version is no longer supported.';
485
+ const error = new SDKUnsupportedError(detail);
486
+ enrichError(error, { sessionId: this.clientSessionId });
487
+ throw error;
488
+ }
489
+ if (!response.ok) {
490
+ logger.error(`HTTP request failed: ${response.status} ${response.statusText}`);
491
+ const error = new ConnectionError(`HTTP ${response.status}: ${response.statusText}`);
492
+ enrichError(error, { sessionId: this.clientSessionId });
493
+ throw error;
494
+ }
495
+ const warning = response.headers.get('X-SDK-Warning');
496
+ if (warning === 'deprecated') {
497
+ const message = response.headers.get('X-SDK-Upgrade-Message');
498
+ if (message) {
499
+ logger.warn(message);
500
+ }
501
+ }
502
+ const uid = await response.text();
503
+ logger.info('Created agent');
504
+ span.setAttribute('agent.uid', uid);
505
+ await this._ensureWebSocketConnection();
506
+ this.knownUids.add(uid);
507
+ this._initAgentState(uid, parentLogger);
508
+ return uid;
509
+ }
510
+ catch (error) {
511
+ span.recordException(error);
512
+ throw error;
513
+ }
514
+ finally {
515
+ span.end();
516
+ }
517
+ }
518
+ /**
519
+ * Create new agent invocation - matches Python invoke_agent
520
+ */
521
+ async invokeAgent(params, parentLogger) {
522
+ await waitForTracing;
523
+ this.refConnection();
524
+ const { uid, warpLocalsPayload, taskDesc, streaming } = params;
525
+ const logger = parentLogger ?? this.logger;
526
+ const span = logger.startSpan('sdk.invoke_agent');
527
+ const invLogger = logger.withScope('inv');
528
+ try {
529
+ if (this.isStopping) {
530
+ logger.error('Cannot invoke agent: session manager is stopping');
531
+ const error = new ConnectionError('Session manager is stopping');
532
+ enrichError(error, { uid, sessionId: this.clientSessionId });
533
+ throw error;
534
+ }
535
+ if (!this.baseHttp || !this.baseWs) {
536
+ logger.error('Endpoints not set');
537
+ const error = new ConnectionError('Base HTTP and WS endpoints must be set');
538
+ enrichError(error, { uid, sessionId: this.clientSessionId });
539
+ throw error;
540
+ }
541
+ // Add attributes matching Python SDK
542
+ span.setAttribute('agent.uid', uid);
543
+ span.setAttribute('agent.task_desc', typeof taskDesc === 'string' ? taskDesc : taskDesc.template);
544
+ span.setAttribute('invocation.streaming', streaming);
545
+ const matchId = this.idIssuer();
546
+ const msg = {
547
+ type: 'invoke',
548
+ match_id: matchId,
549
+ uid: uid,
550
+ warp_locals_payload: warpLocalsPayload,
551
+ timestamp: new Date().toISOString(),
552
+ prompt: taskDesc,
553
+ streaming: streaming,
554
+ };
555
+ invLogger.debug(`Invoking with match_id=${matchId}`);
556
+ const iidPromise = new Promise((resolve, reject) => {
557
+ this.matchIid.set(matchId, { resolve, reject });
558
+ });
559
+ this.sendQueue.put(msg);
560
+ const iid = await iidPromise;
561
+ this.iidToUid.set(iid, uid);
562
+ invLogger.info(`Invocation created with iid=${iid}`);
563
+ span.setAttribute('invocation.iid', iid);
564
+ this.uidIidRecvQueue.get(uid).set(iid, new Queue());
565
+ const recvQueue = this.uidIidRecvQueue.get(uid).get(iid);
566
+ const { resolvers, promise: exceptionPromise } = (() => {
567
+ let resolve;
568
+ let reject;
569
+ const promise = new Promise((res, rej) => {
570
+ resolve = res;
571
+ reject = rej;
572
+ });
573
+ return { resolvers: { resolve, reject, promise }, promise };
574
+ })();
575
+ this.uidIidException.get(uid).set(iid, resolvers);
576
+ return {
577
+ send_message: async (data) => {
578
+ const dataMsg = {
579
+ type: 'data',
580
+ uid,
581
+ iid,
582
+ data,
583
+ timestamp: new Date().toISOString(),
584
+ };
585
+ this.sendQueue.put(dataMsg);
586
+ invLogger.debug(`Queued ${data.length} bytes to send`);
587
+ },
588
+ recv_message: async () => {
589
+ const data = await recvQueue.get();
590
+ invLogger.debug(`Received ${data.length} bytes`);
591
+ return data;
592
+ },
593
+ exception: exceptionPromise,
594
+ iid,
595
+ };
596
+ }
597
+ catch (error) {
598
+ span.recordException(error);
599
+ throw error;
600
+ }
601
+ finally {
602
+ span.end();
603
+ this.unrefConnection();
604
+ }
605
+ }
606
+ /**
607
+ * Echo streaming endpoint
608
+ */
609
+ async *echo(cancelSignal, uid, iid) {
610
+ if (!this.baseHttp) {
611
+ const error = new ConnectionError('Base HTTP endpoint must be set');
612
+ enrichError(error, { uid, iid, sessionId: this.clientSessionId });
613
+ throw error;
614
+ }
615
+ const endpoint = `/echo/${uid}${iid ? `/${iid}` : ''}`;
616
+ const url = `${this.baseHttp}${endpoint}`;
617
+ this.logger.debug(`Starting echo stream for ${uid}${iid ? `/${iid}` : ''}`);
618
+ let reader = null;
619
+ let response = null;
620
+ const abortController = new AbortController();
621
+ try {
622
+ response = await fetch(url, {
623
+ method: 'GET',
624
+ headers: this.buildHeaders({ Accept: 'text/event-stream' }),
625
+ signal: AbortSignal.any([abortController.signal, cancelSignal]),
626
+ bodyTimeout: 0, // Node.js only
627
+ });
628
+ if (!response.ok) {
629
+ const errorText = await response.text().catch(() => 'Unknown error');
630
+ const error = new ServerError(`HTTP ${response.status}: ${response.statusText} - ${errorText}`);
631
+ enrichError(error, { uid, iid, sessionId: this.clientSessionId });
632
+ throw error;
633
+ }
634
+ if (!response.body) {
635
+ const error = new ServerError('Response body is null - server may not support streaming');
636
+ enrichError(error, { uid, iid, sessionId: this.clientSessionId });
637
+ throw error;
638
+ }
639
+ reader = response.body.getReader();
640
+ const decoder = new TextDecoder();
641
+ let buffer = '';
642
+ let chunkCount = 0;
643
+ const maxChunks = 10000; // Prevent infinite loops
644
+ const maxBufferSize = 1024 * 1024; // 1MB buffer limit
645
+ let isStreaming = false;
646
+ try {
647
+ while (chunkCount < maxChunks) {
648
+ const { done, value } = await reader.read();
649
+ if (done) {
650
+ this.logger.debug(`Echo stream completed normally after ${chunkCount} chunks`);
651
+ break;
652
+ }
653
+ // Prevent buffer overflow
654
+ if (buffer.length > maxBufferSize) {
655
+ this.logger.warn('Buffer size exceeded, clearing buffer');
656
+ buffer = '';
657
+ }
658
+ buffer += decoder.decode(value, { stream: true });
659
+ const lines = buffer.split('\n');
660
+ buffer = lines.pop() || '';
661
+ for (const line of lines) {
662
+ if (!line.trim()) {
663
+ continue;
664
+ }
665
+ try {
666
+ const logmsg = JSON.parse(line);
667
+ const typ = logmsg.type;
668
+ if (typ === 'sm_invocation_exit') {
669
+ this.logger.debug('Received invocation exit signal, ending stream');
670
+ return;
671
+ }
672
+ if (typ === 'sm_monad' && logmsg.body) {
673
+ const body = JSON.parse(logmsg.body);
674
+ if (body.system)
675
+ continue;
676
+ if (body.type === 'stream_chunk') {
677
+ isStreaming = true;
678
+ const delta = body.args[0];
679
+ if (delta && delta.content) {
680
+ yield { role: 'agent', content: delta.content };
681
+ chunkCount++;
682
+ }
683
+ }
684
+ else if (body.type === 'delta') {
685
+ const delta = body.args[0];
686
+ if (delta && delta.content) {
687
+ const role = makeRole(delta.role, delta.username);
688
+ if (role === 'system') {
689
+ // Skip system messages
690
+ continue;
691
+ }
692
+ else if (isStreaming && role === 'agent') {
693
+ // Skip agent messages as they're already handled in stream_chunk
694
+ continue;
695
+ }
696
+ yield { role, content: delta.content };
697
+ chunkCount++;
698
+ }
699
+ }
700
+ }
701
+ }
702
+ catch (parseError) {
703
+ this.logger.warn('Failed to parse echo line', parseError);
704
+ // Continue processing other lines instead of failing completely
705
+ }
706
+ }
707
+ }
708
+ if (chunkCount >= maxChunks) {
709
+ this.logger.warn(`Echo stream stopped after ${maxChunks} chunks (safety limit)`);
710
+ }
711
+ }
712
+ finally {
713
+ if (reader) {
714
+ try {
715
+ reader.releaseLock();
716
+ }
717
+ catch (releaseError) {
718
+ this.logger.warn('Failed to release reader lock', releaseError);
719
+ }
720
+ }
721
+ }
722
+ }
723
+ catch (error) {
724
+ if (error instanceof Error && error.name === 'AbortError' && cancelSignal.aborted) {
725
+ // this is expected after result was received
726
+ this.logger.debug('Echo stream aborted by caller');
727
+ return;
728
+ }
729
+ this.logger.error('Echo stream error', error);
730
+ // Provide more specific error information
731
+ if (error instanceof TypeError && error.message.includes('fetch')) {
732
+ const enrichedError = new ConnectionError(`Network error during echo stream: ${error.message}`);
733
+ enrichError(enrichedError, { uid, iid, sessionId: this.clientSessionId });
734
+ throw enrichedError;
735
+ }
736
+ else if (error instanceof Error && error.message.includes('HTTP')) {
737
+ const enrichedError = new ServerError(`Server error during echo stream: ${error.message}`);
738
+ enrichError(enrichedError, { uid, iid, sessionId: this.clientSessionId });
739
+ throw enrichedError;
740
+ }
741
+ else {
742
+ const enrichedError = new ServerError(`Echo stream failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
743
+ enrichError(enrichedError, { uid, iid, sessionId: this.clientSessionId });
744
+ throw enrichedError;
745
+ }
746
+ }
747
+ finally {
748
+ // Abort the fetch request to close the underlying socket
749
+ try {
750
+ abortController.abort();
751
+ }
752
+ catch {
753
+ // Ignore abort errors
754
+ }
755
+ // Ensure cleanup even if an error occurs
756
+ if (reader) {
757
+ try {
758
+ reader.releaseLock();
759
+ }
760
+ catch {
761
+ // Ignore cleanup errors
762
+ }
763
+ }
764
+ }
765
+ }
766
+ /**
767
+ * Fetch logs for a specific agent and optionally a specific invocation.
768
+ * Matches Python logs() method.
769
+ */
770
+ async logs(uid, iid, params) {
771
+ if (!this.baseHttp) {
772
+ throw new ConnectionError('Base HTTP endpoint must be set');
773
+ }
774
+ let endpoint = `/logs/${uid}`;
775
+ if (iid) {
776
+ endpoint += `/${iid}`;
777
+ }
778
+ const url = new URL(`${this.baseHttp}${endpoint}`);
779
+ if (params) {
780
+ for (const [key, value] of Object.entries(params)) {
781
+ url.searchParams.append(key, String(value));
782
+ }
783
+ }
784
+ const response = await fetch(url.toString(), {
785
+ method: 'GET',
786
+ headers: this.buildHeaders(),
787
+ });
788
+ if (!response.ok) {
789
+ const errorText = await response.text().catch(() => 'Unknown error');
790
+ throw new ServerError(`HTTP ${response.status}: ${response.statusText} - ${errorText}`);
791
+ }
792
+ return response.json();
793
+ }
794
+ /**
795
+ * Fetch and calculate usage for a specific invocation.
796
+ * Handles chat-completions API's cumulative token reporting by subtracting previous totals.
797
+ *
798
+ * @param uid - Agent UID
799
+ * @param iid - Invocation ID
800
+ * @param lastTotal - Previous cumulative total (for cross-invocation adjustment)
801
+ * @returns Object containing the usage for this invocation and the new cumulative total
802
+ */
803
+ async fetchUsage(uid, iid, lastTotal) {
804
+ // Fetch logs for this invocation and sum usages
805
+ let total = Usage.zero();
806
+ const logs = await this.logs(uid, iid, { type: 'sm_inference_usage' });
807
+ for (const log of logs) {
808
+ const logUsage = log.usage;
809
+ if (logUsage) {
810
+ total = total.add(Usage.fromCompletions(logUsage, total));
811
+ }
812
+ }
813
+ let usage = total;
814
+ if (lastTotal) {
815
+ // Subtract previous cumulative total, but keep output_tokens as-is
816
+ // since output_tokens is already absolute (not cumulative)
817
+ usage = total.sub(lastTotal.replace({ outputTokens: 0 }));
818
+ }
819
+ return { usage, newTotal: total };
820
+ }
821
+ /**
822
+ * Check if agent exists - matches Python agent_exists
823
+ */
824
+ agentExists(uid) {
825
+ return this.knownUids.has(uid) && this.websocket !== null && this.websocket.readyState === 1; // 1 = OPEN
826
+ }
827
+ /**
828
+ * Get uid from iid (used for parent-child agent tracking)
829
+ */
830
+ getUidForIid(iid) {
831
+ return this.iidToUid.get(iid);
832
+ }
833
+ /**
834
+ * Destroy an agent on the server
835
+ */
836
+ async destroyAgent(uid) {
837
+ if (!this.baseHttp) {
838
+ this.logger.warn('Cannot destroy agent: baseHttp not set');
839
+ return;
840
+ }
841
+ const span = this.logger.startSpan('sdk.destroy_agent');
842
+ span.setAttribute('agent.uid', uid);
843
+ try {
844
+ const uri = `${this.baseHttp}/agent/destroy/${uid}`;
845
+ this.logger.debug(`Destroying agent ${uid.slice(0, 8)}`);
846
+ const response = await fetch(uri, {
847
+ method: 'DELETE',
848
+ headers: this.buildHeaders(),
849
+ });
850
+ if (response.ok) {
851
+ this.logger.debug(`Destroyed agent ${uid.slice(0, 8)}`);
852
+ }
853
+ else {
854
+ this.logger.info(`Failed to destroy agent: HTTP ${response.status} ${response.statusText}`);
855
+ }
856
+ }
857
+ catch (error) {
858
+ this.logger.debug(`Failed to destroy agent ${uid.slice(0, 8)} (server may be down): ${error.message}`);
859
+ span.recordException(error);
860
+ }
861
+ finally {
862
+ span.end();
863
+ }
864
+ }
865
+ /**
866
+ * Close a specific agent's resources (does not close the shared WebSocket)
867
+ */
868
+ async closeAgent(uid) {
869
+ const logger = this.uidToLogger.get(uid) ?? this.logger;
870
+ logger.debug(`Closing agent ${uid.slice(0, 8)}`);
871
+ // Close receive queues for this uid
872
+ const recvMap = this.uidIidRecvQueue.get(uid);
873
+ if (recvMap) {
874
+ for (const queue of recvMap.values()) {
875
+ queue.close();
876
+ }
877
+ }
878
+ // Clean up iidToUid entries for this uid
879
+ for (const [iid, mappedUid] of this.iidToUid.entries()) {
880
+ if (mappedUid === uid) {
881
+ this.iidToUid.delete(iid);
882
+ }
883
+ }
884
+ // Clean up per-agent maps
885
+ this.uidIidRecvQueue.delete(uid);
886
+ this.uidIidException.delete(uid);
887
+ this.knownUids.delete(uid);
888
+ this.uidToLogger.delete(uid);
889
+ logger.debug(`Closed agent ${uid.slice(0, 8)}`);
890
+ // Finally, destroy the agent on the server
891
+ await this.destroyAgent(uid);
892
+ this.unrefConnection();
893
+ }
894
+ /**
895
+ * Stop all connections and cleanup resources
896
+ */
897
+ async stop() {
898
+ if (this.isStopping || this.isStopped)
899
+ return;
900
+ this.isStopping = true;
901
+ const span = this.logger.startSpan('stop');
902
+ try {
903
+ const agentCount = this.knownUids.size;
904
+ this.logger.debug(`CSM Stop: stopping with ${agentCount} agent(s)`);
905
+ span.setAttribute('agent_count', agentCount);
906
+ // Close all agents (cleans up per-agent state and destroys on server)
907
+ const uids = Array.from(this.knownUids);
908
+ await Promise.allSettled(uids.map((uid) => this.closeAgent(uid)));
909
+ // Close send queue
910
+ if (this.sendQueue) {
911
+ this.sendQueue.close();
912
+ this.sendQueue = null;
913
+ }
914
+ // Close WebSocket gracefully
915
+ if (this.websocket) {
916
+ try {
917
+ // 0 = CONNECTING, 1 = OPEN
918
+ if (this.websocket.readyState === 0 || this.websocket.readyState === 1) {
919
+ this.websocket.close(1000, 'Normal closure');
920
+ }
921
+ }
922
+ catch (error) {
923
+ this.logger.warn('Failed to close WebSocket', error);
924
+ }
925
+ this.websocket = null;
926
+ }
927
+ // Stop tasks
928
+ if (this.tasks) {
929
+ const [readerControl, writerControl] = this.tasks;
930
+ readerControl.shouldStop = true;
931
+ writerControl.shouldStop = true;
932
+ await Promise.allSettled([readerControl.promise, writerControl.promise]);
933
+ this.tasks = null;
934
+ }
935
+ this.logger.debug('All resources cleaned up');
936
+ this.isStopped = true;
937
+ // Ensure invocation guard is cleared
938
+ if (this.invocationGuard) {
939
+ clearInterval(this.invocationGuard);
940
+ this.invocationGuard = null;
941
+ }
942
+ this.activeConnectionCount = 0;
943
+ // End session span when closing the entire ClientSessionManager
944
+ if (this.sessionSpan) {
945
+ this.sessionSpan.setAttribute('sdk.agents_created', agentCount);
946
+ this.sessionSpan.end();
947
+ this.sessionSpan = null;
948
+ this.logger.debug('Ended session span');
949
+ }
950
+ }
951
+ finally {
952
+ this.isStopping = false;
953
+ span.end();
954
+ }
955
+ }
956
+ /**
957
+ * Close all connections and cleanup resources
958
+ */
959
+ async close() {
960
+ return this.stop();
961
+ }
962
+ }
963
+ const __globalScope = globalThis;
964
+ export const __AGENTIC_MANAGER = __globalScope.__AGENTICA_AGENTIC_MANAGER ??
965
+ (__globalScope.__AGENTICA_AGENTIC_MANAGER = new ClientSessionManager({}));
966
+ export const __AGENTIC_PROTO_VER = `typescript/${version}`;