@truefoundry/trueforge-core 0.0.0 → 0.1.0-rc.0

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 (557) hide show
  1. package/LICENSE +21 -0
  2. package/dist/agent-session/ITurnResourceResolver.d.ts +69 -0
  3. package/dist/agent-session/ITurnResourceResolver.d.ts.map +1 -0
  4. package/dist/agent-session/ITurnResourceResolver.js +19 -0
  5. package/dist/agent-session/ITurnResourceResolver.js.map +1 -0
  6. package/dist/agent-session/ITurnResourceResolver.mjs +1 -0
  7. package/dist/agent-session/ITurnResourceResolver.mjs.map +1 -0
  8. package/dist/agent-session/SessionHandle.d.ts +81 -0
  9. package/dist/agent-session/SessionHandle.d.ts.map +1 -0
  10. package/dist/agent-session/SessionHandle.js +392 -0
  11. package/dist/agent-session/SessionHandle.js.map +1 -0
  12. package/dist/agent-session/SessionHandle.mjs +371 -0
  13. package/dist/agent-session/SessionHandle.mjs.map +1 -0
  14. package/dist/agent-session/Sessions.d.ts +25 -0
  15. package/dist/agent-session/Sessions.d.ts.map +1 -0
  16. package/dist/agent-session/Sessions.js +71 -0
  17. package/dist/agent-session/Sessions.js.map +1 -0
  18. package/dist/agent-session/Sessions.mjs +46 -0
  19. package/dist/agent-session/Sessions.mjs.map +1 -0
  20. package/dist/agent-session/TurnHandle.d.ts +88 -0
  21. package/dist/agent-session/TurnHandle.d.ts.map +1 -0
  22. package/dist/agent-session/TurnHandle.js +490 -0
  23. package/dist/agent-session/TurnHandle.js.map +1 -0
  24. package/dist/agent-session/TurnHandle.mjs +469 -0
  25. package/dist/agent-session/TurnHandle.mjs.map +1 -0
  26. package/dist/agent-session/TurnResourceResolver.d.ts +154 -0
  27. package/dist/agent-session/TurnResourceResolver.d.ts.map +1 -0
  28. package/dist/agent-session/TurnResourceResolver.js +178 -0
  29. package/dist/agent-session/TurnResourceResolver.js.map +1 -0
  30. package/dist/agent-session/TurnResourceResolver.mjs +153 -0
  31. package/dist/agent-session/TurnResourceResolver.mjs.map +1 -0
  32. package/dist/agent-session/builtinsFromSpec.d.ts +19 -0
  33. package/dist/agent-session/builtinsFromSpec.d.ts.map +1 -0
  34. package/dist/agent-session/builtinsFromSpec.js +73 -0
  35. package/dist/agent-session/builtinsFromSpec.js.map +1 -0
  36. package/dist/agent-session/builtinsFromSpec.mjs +48 -0
  37. package/dist/agent-session/builtinsFromSpec.mjs.map +1 -0
  38. package/dist/agent-session/index.d.ts +29 -0
  39. package/dist/agent-session/index.d.ts.map +1 -0
  40. package/dist/agent-session/index.js +117 -0
  41. package/dist/agent-session/index.js.map +1 -0
  42. package/dist/agent-session/index.mjs +84 -0
  43. package/dist/agent-session/index.mjs.map +1 -0
  44. package/dist/agent-session/models/SessionRecord.d.ts +34 -0
  45. package/dist/agent-session/models/SessionRecord.d.ts.map +1 -0
  46. package/dist/agent-session/models/SessionRecord.js +19 -0
  47. package/dist/agent-session/models/SessionRecord.js.map +1 -0
  48. package/dist/agent-session/models/SessionRecord.mjs +1 -0
  49. package/dist/agent-session/models/SessionRecord.mjs.map +1 -0
  50. package/dist/agent-session/models/TurnRecord.d.ts +37 -0
  51. package/dist/agent-session/models/TurnRecord.d.ts.map +1 -0
  52. package/dist/agent-session/models/TurnRecord.js +31 -0
  53. package/dist/agent-session/models/TurnRecord.js.map +1 -0
  54. package/dist/agent-session/models/TurnRecord.mjs +6 -0
  55. package/dist/agent-session/models/TurnRecord.mjs.map +1 -0
  56. package/dist/agent-session/schemas/agentSpec.d.ts +142 -0
  57. package/dist/agent-session/schemas/agentSpec.d.ts.map +1 -0
  58. package/dist/agent-session/schemas/agentSpec.js +170 -0
  59. package/dist/agent-session/schemas/agentSpec.js.map +1 -0
  60. package/dist/agent-session/schemas/agentSpec.mjs +154 -0
  61. package/dist/agent-session/schemas/agentSpec.mjs.map +1 -0
  62. package/dist/agent-session/schemas/events.d.ts +1037 -0
  63. package/dist/agent-session/schemas/events.d.ts.map +1 -0
  64. package/dist/agent-session/schemas/events.js +80 -0
  65. package/dist/agent-session/schemas/events.js.map +1 -0
  66. package/dist/agent-session/schemas/events.mjs +69 -0
  67. package/dist/agent-session/schemas/events.mjs.map +1 -0
  68. package/dist/agent-session/schemas/pagination.d.ts +9 -0
  69. package/dist/agent-session/schemas/pagination.d.ts.map +1 -0
  70. package/dist/agent-session/schemas/pagination.js +36 -0
  71. package/dist/agent-session/schemas/pagination.js.map +1 -0
  72. package/dist/agent-session/schemas/pagination.mjs +11 -0
  73. package/dist/agent-session/schemas/pagination.mjs.map +1 -0
  74. package/dist/agent-session/schemas/session.d.ts +319 -0
  75. package/dist/agent-session/schemas/session.d.ts.map +1 -0
  76. package/dist/agent-session/schemas/session.js +58 -0
  77. package/dist/agent-session/schemas/session.js.map +1 -0
  78. package/dist/agent-session/schemas/session.mjs +30 -0
  79. package/dist/agent-session/schemas/session.mjs.map +1 -0
  80. package/dist/agent-session/schemas/turn.d.ts +494 -0
  81. package/dist/agent-session/schemas/turn.d.ts.map +1 -0
  82. package/dist/agent-session/schemas/turn.js +131 -0
  83. package/dist/agent-session/schemas/turn.js.map +1 -0
  84. package/dist/agent-session/schemas/turn.mjs +102 -0
  85. package/dist/agent-session/schemas/turn.mjs.map +1 -0
  86. package/dist/agent-session/store/ISessionStore.d.ts +310 -0
  87. package/dist/agent-session/store/ISessionStore.d.ts.map +1 -0
  88. package/dist/agent-session/store/ISessionStore.js +19 -0
  89. package/dist/agent-session/store/ISessionStore.js.map +1 -0
  90. package/dist/agent-session/store/ISessionStore.mjs +1 -0
  91. package/dist/agent-session/store/ISessionStore.mjs.map +1 -0
  92. package/dist/agent-session/store/InMemorySessionStore.d.ts +55 -0
  93. package/dist/agent-session/store/InMemorySessionStore.d.ts.map +1 -0
  94. package/dist/agent-session/store/InMemorySessionStore.js +475 -0
  95. package/dist/agent-session/store/InMemorySessionStore.js.map +1 -0
  96. package/dist/agent-session/store/InMemorySessionStore.mjs +461 -0
  97. package/dist/agent-session/store/InMemorySessionStore.mjs.map +1 -0
  98. package/dist/agent-session/store/OffsetPageToken.d.ts +13 -0
  99. package/dist/agent-session/store/OffsetPageToken.d.ts.map +1 -0
  100. package/dist/agent-session/store/OffsetPageToken.js +60 -0
  101. package/dist/agent-session/store/OffsetPageToken.js.map +1 -0
  102. package/dist/agent-session/store/OffsetPageToken.mjs +32 -0
  103. package/dist/agent-session/store/OffsetPageToken.mjs.map +1 -0
  104. package/dist/agent-session/store/PageToken.d.ts +4 -0
  105. package/dist/agent-session/store/PageToken.d.ts.map +1 -0
  106. package/dist/agent-session/store/PageToken.js +45 -0
  107. package/dist/agent-session/store/PageToken.js.map +1 -0
  108. package/dist/agent-session/store/PageToken.mjs +19 -0
  109. package/dist/agent-session/store/PageToken.mjs.map +1 -0
  110. package/dist/agent-session/store/SessionEventPageToken.d.ts +14 -0
  111. package/dist/agent-session/store/SessionEventPageToken.d.ts.map +1 -0
  112. package/dist/agent-session/store/SessionEventPageToken.js +70 -0
  113. package/dist/agent-session/store/SessionEventPageToken.js.map +1 -0
  114. package/dist/agent-session/store/SessionEventPageToken.mjs +42 -0
  115. package/dist/agent-session/store/SessionEventPageToken.mjs.map +1 -0
  116. package/dist/agent-session/store/SessionListPageToken.d.ts +24 -0
  117. package/dist/agent-session/store/SessionListPageToken.d.ts.map +1 -0
  118. package/dist/agent-session/store/SessionListPageToken.js +66 -0
  119. package/dist/agent-session/store/SessionListPageToken.js.map +1 -0
  120. package/dist/agent-session/store/SessionListPageToken.mjs +38 -0
  121. package/dist/agent-session/store/SessionListPageToken.mjs.map +1 -0
  122. package/dist/agent-session/store/SessionStoreErrors.d.ts +43 -0
  123. package/dist/agent-session/store/SessionStoreErrors.d.ts.map +1 -0
  124. package/dist/agent-session/store/SessionStoreErrors.js +126 -0
  125. package/dist/agent-session/store/SessionStoreErrors.js.map +1 -0
  126. package/dist/agent-session/store/SessionStoreErrors.mjs +92 -0
  127. package/dist/agent-session/store/SessionStoreErrors.mjs.map +1 -0
  128. package/dist/agent-session/store/assertCreateTurnThreadDelta.d.ts +18 -0
  129. package/dist/agent-session/store/assertCreateTurnThreadDelta.d.ts.map +1 -0
  130. package/dist/agent-session/store/assertCreateTurnThreadDelta.js +67 -0
  131. package/dist/agent-session/store/assertCreateTurnThreadDelta.js.map +1 -0
  132. package/dist/agent-session/store/assertCreateTurnThreadDelta.mjs +42 -0
  133. package/dist/agent-session/store/assertCreateTurnThreadDelta.mjs.map +1 -0
  134. package/dist/core/InstructionBuilder.d.ts +71 -0
  135. package/dist/core/InstructionBuilder.d.ts.map +1 -0
  136. package/dist/core/InstructionBuilder.js +95 -0
  137. package/dist/core/InstructionBuilder.js.map +1 -0
  138. package/dist/core/InstructionBuilder.mjs +69 -0
  139. package/dist/core/InstructionBuilder.mjs.map +1 -0
  140. package/dist/core/capabilities/AgentCapability.d.ts +32 -0
  141. package/dist/core/capabilities/AgentCapability.d.ts.map +1 -0
  142. package/dist/core/capabilities/AgentCapability.js +19 -0
  143. package/dist/core/capabilities/AgentCapability.js.map +1 -0
  144. package/dist/core/capabilities/AgentCapability.mjs +1 -0
  145. package/dist/core/capabilities/AgentCapability.mjs.map +1 -0
  146. package/dist/core/capabilities/AgentContextProcessor.d.ts +30 -0
  147. package/dist/core/capabilities/AgentContextProcessor.d.ts.map +1 -0
  148. package/dist/core/capabilities/AgentContextProcessor.js +19 -0
  149. package/dist/core/capabilities/AgentContextProcessor.js.map +1 -0
  150. package/dist/core/capabilities/AgentContextProcessor.mjs +1 -0
  151. package/dist/core/capabilities/AgentContextProcessor.mjs.map +1 -0
  152. package/dist/core/capabilities/ToolResponseProcessor.d.ts +12 -0
  153. package/dist/core/capabilities/ToolResponseProcessor.d.ts.map +1 -0
  154. package/dist/core/capabilities/ToolResponseProcessor.js +19 -0
  155. package/dist/core/capabilities/ToolResponseProcessor.js.map +1 -0
  156. package/dist/core/capabilities/ToolResponseProcessor.mjs +1 -0
  157. package/dist/core/capabilities/ToolResponseProcessor.mjs.map +1 -0
  158. package/dist/core/capabilities/builtins/AskUserQuestion.d.ts +11 -0
  159. package/dist/core/capabilities/builtins/AskUserQuestion.d.ts.map +1 -0
  160. package/dist/core/capabilities/builtins/AskUserQuestion.js +90 -0
  161. package/dist/core/capabilities/builtins/AskUserQuestion.js.map +1 -0
  162. package/dist/core/capabilities/builtins/AskUserQuestion.mjs +64 -0
  163. package/dist/core/capabilities/builtins/AskUserQuestion.mjs.map +1 -0
  164. package/dist/core/capabilities/builtins/ContextCompaction.d.ts +23 -0
  165. package/dist/core/capabilities/builtins/ContextCompaction.d.ts.map +1 -0
  166. package/dist/core/capabilities/builtins/ContextCompaction.js +235 -0
  167. package/dist/core/capabilities/builtins/ContextCompaction.js.map +1 -0
  168. package/dist/core/capabilities/builtins/ContextCompaction.mjs +208 -0
  169. package/dist/core/capabilities/builtins/ContextCompaction.mjs.map +1 -0
  170. package/dist/core/capabilities/builtins/CurrentDateTime.d.ts +17 -0
  171. package/dist/core/capabilities/builtins/CurrentDateTime.d.ts.map +1 -0
  172. package/dist/core/capabilities/builtins/CurrentDateTime.js +75 -0
  173. package/dist/core/capabilities/builtins/CurrentDateTime.js.map +1 -0
  174. package/dist/core/capabilities/builtins/CurrentDateTime.mjs +47 -0
  175. package/dist/core/capabilities/builtins/CurrentDateTime.mjs.map +1 -0
  176. package/dist/core/capabilities/builtins/DynamicSubAgents.d.ts +39 -0
  177. package/dist/core/capabilities/builtins/DynamicSubAgents.d.ts.map +1 -0
  178. package/dist/core/capabilities/builtins/DynamicSubAgents.js +176 -0
  179. package/dist/core/capabilities/builtins/DynamicSubAgents.js.map +1 -0
  180. package/dist/core/capabilities/builtins/DynamicSubAgents.mjs +134 -0
  181. package/dist/core/capabilities/builtins/DynamicSubAgents.mjs.map +1 -0
  182. package/dist/core/capabilities/builtins/LargeToolResponse.d.ts +40 -0
  183. package/dist/core/capabilities/builtins/LargeToolResponse.d.ts.map +1 -0
  184. package/dist/core/capabilities/builtins/LargeToolResponse.js +225 -0
  185. package/dist/core/capabilities/builtins/LargeToolResponse.js.map +1 -0
  186. package/dist/core/capabilities/builtins/LargeToolResponse.mjs +186 -0
  187. package/dist/core/capabilities/builtins/LargeToolResponse.mjs.map +1 -0
  188. package/dist/core/capabilities/builtins/OpenUI.d.ts +31 -0
  189. package/dist/core/capabilities/builtins/OpenUI.d.ts.map +1 -0
  190. package/dist/core/capabilities/builtins/OpenUI.js +376 -0
  191. package/dist/core/capabilities/builtins/OpenUI.js.map +1 -0
  192. package/dist/core/capabilities/builtins/OpenUI.mjs +326 -0
  193. package/dist/core/capabilities/builtins/OpenUI.mjs.map +1 -0
  194. package/dist/core/errors.d.ts +33 -0
  195. package/dist/core/errors.d.ts.map +1 -0
  196. package/dist/core/errors.js +88 -0
  197. package/dist/core/errors.js.map +1 -0
  198. package/dist/core/errors.mjs +57 -0
  199. package/dist/core/errors.mjs.map +1 -0
  200. package/dist/core/events/PassthroughEvents.d.ts +30 -0
  201. package/dist/core/events/PassthroughEvents.d.ts.map +1 -0
  202. package/dist/core/events/PassthroughEvents.js +19 -0
  203. package/dist/core/events/PassthroughEvents.js.map +1 -0
  204. package/dist/core/events/PassthroughEvents.mjs +1 -0
  205. package/dist/core/events/PassthroughEvents.mjs.map +1 -0
  206. package/dist/core/events/schema.d.ts +1103 -0
  207. package/dist/core/events/schema.d.ts.map +1 -0
  208. package/dist/core/events/schema.js +337 -0
  209. package/dist/core/events/schema.js.map +1 -0
  210. package/dist/core/events/schema.mjs +283 -0
  211. package/dist/core/events/schema.mjs.map +1 -0
  212. package/dist/core/index.d.ts +60 -0
  213. package/dist/core/index.d.ts.map +1 -0
  214. package/dist/core/index.js +209 -0
  215. package/dist/core/index.js.map +1 -0
  216. package/dist/core/index.mjs +144 -0
  217. package/dist/core/index.mjs.map +1 -0
  218. package/dist/core/llm/ILLM.d.ts +15 -0
  219. package/dist/core/llm/ILLM.d.ts.map +1 -0
  220. package/dist/core/llm/ILLM.js +19 -0
  221. package/dist/core/llm/ILLM.js.map +1 -0
  222. package/dist/core/llm/ILLM.mjs +1 -0
  223. package/dist/core/llm/ILLM.mjs.map +1 -0
  224. package/dist/core/llm/LLMTypes.d.ts +369 -0
  225. package/dist/core/llm/LLMTypes.d.ts.map +1 -0
  226. package/dist/core/llm/LLMTypes.js +170 -0
  227. package/dist/core/llm/LLMTypes.js.map +1 -0
  228. package/dist/core/llm/LLMTypes.mjs +133 -0
  229. package/dist/core/llm/LLMTypes.mjs.map +1 -0
  230. package/dist/core/llm/VercelAILLM.d.ts +228 -0
  231. package/dist/core/llm/VercelAILLM.d.ts.map +1 -0
  232. package/dist/core/llm/VercelAILLM.js +1042 -0
  233. package/dist/core/llm/VercelAILLM.js.map +1 -0
  234. package/dist/core/llm/VercelAILLM.mjs +999 -0
  235. package/dist/core/llm/VercelAILLM.mjs.map +1 -0
  236. package/dist/core/llm/openaiSchemas.d.ts +190 -0
  237. package/dist/core/llm/openaiSchemas.d.ts.map +1 -0
  238. package/dist/core/llm/openaiSchemas.js +144 -0
  239. package/dist/core/llm/openaiSchemas.js.map +1 -0
  240. package/dist/core/llm/openaiSchemas.mjs +107 -0
  241. package/dist/core/llm/openaiSchemas.mjs.map +1 -0
  242. package/dist/core/llm/responseFormat.d.ts +25 -0
  243. package/dist/core/llm/responseFormat.d.ts.map +1 -0
  244. package/dist/core/llm/responseFormat.js +58 -0
  245. package/dist/core/llm/responseFormat.js.map +1 -0
  246. package/dist/core/llm/responseFormat.mjs +32 -0
  247. package/dist/core/llm/responseFormat.mjs.map +1 -0
  248. package/dist/core/llm/toOpenAIChatMessage.d.ts +11 -0
  249. package/dist/core/llm/toOpenAIChatMessage.d.ts.map +1 -0
  250. package/dist/core/llm/toOpenAIChatMessage.js +95 -0
  251. package/dist/core/llm/toOpenAIChatMessage.js.map +1 -0
  252. package/dist/core/llm/toOpenAIChatMessage.mjs +70 -0
  253. package/dist/core/llm/toOpenAIChatMessage.mjs.map +1 -0
  254. package/dist/core/llm/usage.d.ts +4 -0
  255. package/dist/core/llm/usage.d.ts.map +1 -0
  256. package/dist/core/llm/usage.js +52 -0
  257. package/dist/core/llm/usage.js.map +1 -0
  258. package/dist/core/llm/usage.mjs +26 -0
  259. package/dist/core/llm/usage.mjs.map +1 -0
  260. package/dist/core/mcp/ClientSideTool.d.ts +10 -0
  261. package/dist/core/mcp/ClientSideTool.d.ts.map +1 -0
  262. package/dist/core/mcp/ClientSideTool.js +56 -0
  263. package/dist/core/mcp/ClientSideTool.js.map +1 -0
  264. package/dist/core/mcp/ClientSideTool.mjs +31 -0
  265. package/dist/core/mcp/ClientSideTool.mjs.map +1 -0
  266. package/dist/core/mcp/IMCPServer.d.ts +78 -0
  267. package/dist/core/mcp/IMCPServer.d.ts.map +1 -0
  268. package/dist/core/mcp/IMCPServer.js +63 -0
  269. package/dist/core/mcp/IMCPServer.js.map +1 -0
  270. package/dist/core/mcp/IMCPServer.mjs +33 -0
  271. package/dist/core/mcp/IMCPServer.mjs.map +1 -0
  272. package/dist/core/mcp/LocalToolMCP.d.ts +39 -0
  273. package/dist/core/mcp/LocalToolMCP.d.ts.map +1 -0
  274. package/dist/core/mcp/LocalToolMCP.js +121 -0
  275. package/dist/core/mcp/LocalToolMCP.js.map +1 -0
  276. package/dist/core/mcp/LocalToolMCP.mjs +98 -0
  277. package/dist/core/mcp/LocalToolMCP.mjs.map +1 -0
  278. package/dist/core/mcp/RemoteMCP.d.ts +67 -0
  279. package/dist/core/mcp/RemoteMCP.d.ts.map +1 -0
  280. package/dist/core/mcp/RemoteMCP.js +244 -0
  281. package/dist/core/mcp/RemoteMCP.js.map +1 -0
  282. package/dist/core/mcp/RemoteMCP.mjs +222 -0
  283. package/dist/core/mcp/RemoteMCP.mjs.map +1 -0
  284. package/dist/core/mcp/ToolSelectorPolicy.d.ts +52 -0
  285. package/dist/core/mcp/ToolSelectorPolicy.d.ts.map +1 -0
  286. package/dist/core/mcp/ToolSelectorPolicy.js +108 -0
  287. package/dist/core/mcp/ToolSelectorPolicy.js.map +1 -0
  288. package/dist/core/mcp/ToolSelectorPolicy.mjs +90 -0
  289. package/dist/core/mcp/ToolSelectorPolicy.mjs.map +1 -0
  290. package/dist/core/mcp/ToolSet.d.ts +31 -0
  291. package/dist/core/mcp/ToolSet.d.ts.map +1 -0
  292. package/dist/core/mcp/ToolSet.js +119 -0
  293. package/dist/core/mcp/ToolSet.js.map +1 -0
  294. package/dist/core/mcp/ToolSet.mjs +98 -0
  295. package/dist/core/mcp/ToolSet.mjs.map +1 -0
  296. package/dist/core/mcp/convertMCPServers.d.ts +22 -0
  297. package/dist/core/mcp/convertMCPServers.d.ts.map +1 -0
  298. package/dist/core/mcp/convertMCPServers.js +89 -0
  299. package/dist/core/mcp/convertMCPServers.js.map +1 -0
  300. package/dist/core/mcp/convertMCPServers.mjs +64 -0
  301. package/dist/core/mcp/convertMCPServers.mjs.map +1 -0
  302. package/dist/core/mcp/executeToolCalls.d.ts +31 -0
  303. package/dist/core/mcp/executeToolCalls.d.ts.map +1 -0
  304. package/dist/core/mcp/executeToolCalls.js +168 -0
  305. package/dist/core/mcp/executeToolCalls.js.map +1 -0
  306. package/dist/core/mcp/executeToolCalls.mjs +149 -0
  307. package/dist/core/mcp/executeToolCalls.mjs.map +1 -0
  308. package/dist/core/mcp/pagination.d.ts +11 -0
  309. package/dist/core/mcp/pagination.d.ts.map +1 -0
  310. package/dist/core/mcp/pagination.js +49 -0
  311. package/dist/core/mcp/pagination.js.map +1 -0
  312. package/dist/core/mcp/pagination.mjs +24 -0
  313. package/dist/core/mcp/pagination.mjs.map +1 -0
  314. package/dist/core/mcp/remoteMcpClient.d.ts +36 -0
  315. package/dist/core/mcp/remoteMcpClient.d.ts.map +1 -0
  316. package/dist/core/mcp/remoteMcpClient.js +138 -0
  317. package/dist/core/mcp/remoteMcpClient.js.map +1 -0
  318. package/dist/core/mcp/remoteMcpClient.mjs +112 -0
  319. package/dist/core/mcp/remoteMcpClient.mjs.map +1 -0
  320. package/dist/core/mcp/toolNames.d.ts +6 -0
  321. package/dist/core/mcp/toolNames.d.ts.map +1 -0
  322. package/dist/core/mcp/toolNames.js +59 -0
  323. package/dist/core/mcp/toolNames.js.map +1 -0
  324. package/dist/core/mcp/toolNames.mjs +33 -0
  325. package/dist/core/mcp/toolNames.mjs.map +1 -0
  326. package/dist/core/mcp/toolSelectors.d.ts +28 -0
  327. package/dist/core/mcp/toolSelectors.d.ts.map +1 -0
  328. package/dist/core/mcp/toolSelectors.js +113 -0
  329. package/dist/core/mcp/toolSelectors.js.map +1 -0
  330. package/dist/core/mcp/toolSelectors.mjs +78 -0
  331. package/dist/core/mcp/toolSelectors.mjs.map +1 -0
  332. package/dist/core/runtime/AgentDefinition.d.ts +23 -0
  333. package/dist/core/runtime/AgentDefinition.d.ts.map +1 -0
  334. package/dist/core/runtime/AgentDefinition.js +19 -0
  335. package/dist/core/runtime/AgentDefinition.js.map +1 -0
  336. package/dist/core/runtime/AgentDefinition.mjs +1 -0
  337. package/dist/core/runtime/AgentDefinition.mjs.map +1 -0
  338. package/dist/core/runtime/AgentThread.d.ts +64 -0
  339. package/dist/core/runtime/AgentThread.d.ts.map +1 -0
  340. package/dist/core/runtime/AgentThread.js +1065 -0
  341. package/dist/core/runtime/AgentThread.js.map +1 -0
  342. package/dist/core/runtime/AgentThread.mjs +1062 -0
  343. package/dist/core/runtime/AgentThread.mjs.map +1 -0
  344. package/dist/core/runtime/AgentThread.types.d.ts +123 -0
  345. package/dist/core/runtime/AgentThread.types.d.ts.map +1 -0
  346. package/dist/core/runtime/AgentThread.types.js +46 -0
  347. package/dist/core/runtime/AgentThread.types.js.map +1 -0
  348. package/dist/core/runtime/AgentThread.types.mjs +20 -0
  349. package/dist/core/runtime/AgentThread.types.mjs.map +1 -0
  350. package/dist/core/runtime/AgentThreadOrchestrator.d.ts +35 -0
  351. package/dist/core/runtime/AgentThreadOrchestrator.d.ts.map +1 -0
  352. package/dist/core/runtime/AgentThreadOrchestrator.js +433 -0
  353. package/dist/core/runtime/AgentThreadOrchestrator.js.map +1 -0
  354. package/dist/core/runtime/AgentThreadOrchestrator.mjs +418 -0
  355. package/dist/core/runtime/AgentThreadOrchestrator.mjs.map +1 -0
  356. package/dist/core/runtime/CreateDynamicSubAgentThread.d.ts +11 -0
  357. package/dist/core/runtime/CreateDynamicSubAgentThread.d.ts.map +1 -0
  358. package/dist/core/runtime/CreateDynamicSubAgentThread.js +19 -0
  359. package/dist/core/runtime/CreateDynamicSubAgentThread.js.map +1 -0
  360. package/dist/core/runtime/CreateDynamicSubAgentThread.mjs +1 -0
  361. package/dist/core/runtime/CreateDynamicSubAgentThread.mjs.map +1 -0
  362. package/dist/core/runtime/DeferredTool.d.ts +34 -0
  363. package/dist/core/runtime/DeferredTool.d.ts.map +1 -0
  364. package/dist/core/runtime/DeferredTool.js +321 -0
  365. package/dist/core/runtime/DeferredTool.js.map +1 -0
  366. package/dist/core/runtime/DeferredTool.mjs +287 -0
  367. package/dist/core/runtime/DeferredTool.mjs.map +1 -0
  368. package/dist/core/runtime/OpenToolCallCloser.d.ts +21 -0
  369. package/dist/core/runtime/OpenToolCallCloser.d.ts.map +1 -0
  370. package/dist/core/runtime/OpenToolCallCloser.js +92 -0
  371. package/dist/core/runtime/OpenToolCallCloser.js.map +1 -0
  372. package/dist/core/runtime/OpenToolCallCloser.mjs +66 -0
  373. package/dist/core/runtime/OpenToolCallCloser.mjs.map +1 -0
  374. package/dist/core/runtime/UserInputMessage.d.ts +16 -0
  375. package/dist/core/runtime/UserInputMessage.d.ts.map +1 -0
  376. package/dist/core/runtime/UserInputMessage.js +183 -0
  377. package/dist/core/runtime/UserInputMessage.js.map +1 -0
  378. package/dist/core/runtime/UserInputMessage.mjs +157 -0
  379. package/dist/core/runtime/UserInputMessage.mjs.map +1 -0
  380. package/dist/core/runtime/contextUsage.d.ts +17 -0
  381. package/dist/core/runtime/contextUsage.d.ts.map +1 -0
  382. package/dist/core/runtime/contextUsage.js +56 -0
  383. package/dist/core/runtime/contextUsage.js.map +1 -0
  384. package/dist/core/runtime/contextUsage.mjs +28 -0
  385. package/dist/core/runtime/contextUsage.mjs.map +1 -0
  386. package/dist/core/runtime/contextUtils.d.ts +30 -0
  387. package/dist/core/runtime/contextUtils.d.ts.map +1 -0
  388. package/dist/core/runtime/contextUtils.js +198 -0
  389. package/dist/core/runtime/contextUtils.js.map +1 -0
  390. package/dist/core/runtime/contextUtils.mjs +148 -0
  391. package/dist/core/runtime/contextUtils.mjs.map +1 -0
  392. package/dist/core/runtime/metrics.d.ts +22 -0
  393. package/dist/core/runtime/metrics.d.ts.map +1 -0
  394. package/dist/core/runtime/metrics.js +89 -0
  395. package/dist/core/runtime/metrics.js.map +1 -0
  396. package/dist/core/runtime/metrics.mjs +61 -0
  397. package/dist/core/runtime/metrics.mjs.map +1 -0
  398. package/dist/core/sandbox/Sandbox.d.ts +121 -0
  399. package/dist/core/sandbox/Sandbox.d.ts.map +1 -0
  400. package/dist/core/sandbox/Sandbox.js +572 -0
  401. package/dist/core/sandbox/Sandbox.js.map +1 -0
  402. package/dist/core/sandbox/Sandbox.mjs +536 -0
  403. package/dist/core/sandbox/Sandbox.mjs.map +1 -0
  404. package/dist/core/sandbox/SandboxErrors.d.ts +30 -0
  405. package/dist/core/sandbox/SandboxErrors.d.ts.map +1 -0
  406. package/dist/core/sandbox/SandboxErrors.js +102 -0
  407. package/dist/core/sandbox/SandboxErrors.js.map +1 -0
  408. package/dist/core/sandbox/SandboxErrors.mjs +71 -0
  409. package/dist/core/sandbox/SandboxErrors.mjs.map +1 -0
  410. package/dist/core/sandbox/SandboxNatsBridge.d.ts +33 -0
  411. package/dist/core/sandbox/SandboxNatsBridge.d.ts.map +1 -0
  412. package/dist/core/sandbox/SandboxNatsBridge.js +222 -0
  413. package/dist/core/sandbox/SandboxNatsBridge.js.map +1 -0
  414. package/dist/core/sandbox/SandboxNatsBridge.mjs +201 -0
  415. package/dist/core/sandbox/SandboxNatsBridge.mjs.map +1 -0
  416. package/dist/core/sandbox/constants.d.ts +10 -0
  417. package/dist/core/sandbox/constants.d.ts.map +1 -0
  418. package/dist/core/sandbox/constants.js +37 -0
  419. package/dist/core/sandbox/constants.js.map +1 -0
  420. package/dist/core/sandbox/constants.mjs +10 -0
  421. package/dist/core/sandbox/constants.mjs.map +1 -0
  422. package/dist/core/sandbox/provider/DaytonaProvider.d.ts +80 -0
  423. package/dist/core/sandbox/provider/DaytonaProvider.d.ts.map +1 -0
  424. package/dist/core/sandbox/provider/DaytonaProvider.js +346 -0
  425. package/dist/core/sandbox/provider/DaytonaProvider.js.map +1 -0
  426. package/dist/core/sandbox/provider/DaytonaProvider.mjs +326 -0
  427. package/dist/core/sandbox/provider/DaytonaProvider.mjs.map +1 -0
  428. package/dist/core/sandbox/provider/Provider.d.ts +83 -0
  429. package/dist/core/sandbox/provider/Provider.d.ts.map +1 -0
  430. package/dist/core/sandbox/provider/Provider.js +43 -0
  431. package/dist/core/sandbox/provider/Provider.js.map +1 -0
  432. package/dist/core/sandbox/provider/Provider.mjs +17 -0
  433. package/dist/core/sandbox/provider/Provider.mjs.map +1 -0
  434. package/dist/core/sandbox/provider/TFYSandboxProvider.d.ts +41 -0
  435. package/dist/core/sandbox/provider/TFYSandboxProvider.d.ts.map +1 -0
  436. package/dist/core/sandbox/provider/TFYSandboxProvider.js +180 -0
  437. package/dist/core/sandbox/provider/TFYSandboxProvider.js.map +1 -0
  438. package/dist/core/sandbox/provider/TFYSandboxProvider.mjs +147 -0
  439. package/dist/core/sandbox/provider/TFYSandboxProvider.mjs.map +1 -0
  440. package/dist/core/sandbox/sandboxImage.d.ts +6 -0
  441. package/dist/core/sandbox/sandboxImage.d.ts.map +1 -0
  442. package/dist/core/sandbox/sandboxImage.js +31 -0
  443. package/dist/core/sandbox/sandboxImage.js.map +1 -0
  444. package/dist/core/sandbox/sandboxImage.mjs +6 -0
  445. package/dist/core/sandbox/sandboxImage.mjs.map +1 -0
  446. package/dist/core/sandbox/sandboxScripts.gen.d.ts +5 -0
  447. package/dist/core/sandbox/sandboxScripts.gen.d.ts.map +1 -0
  448. package/dist/core/sandbox/sandboxScripts.gen.js +343 -0
  449. package/dist/core/sandbox/sandboxScripts.gen.js.map +1 -0
  450. package/dist/core/sandbox/sandboxScripts.gen.mjs +318 -0
  451. package/dist/core/sandbox/sandboxScripts.gen.mjs.map +1 -0
  452. package/dist/core/sandbox/skills/ISkillMounter.d.ts +7 -0
  453. package/dist/core/sandbox/skills/ISkillMounter.d.ts.map +1 -0
  454. package/dist/core/sandbox/skills/ISkillMounter.js +19 -0
  455. package/dist/core/sandbox/skills/ISkillMounter.js.map +1 -0
  456. package/dist/core/sandbox/skills/ISkillMounter.mjs +1 -0
  457. package/dist/core/sandbox/skills/ISkillMounter.mjs.map +1 -0
  458. package/dist/core/sandbox/skills/SkillMounter.d.ts +17 -0
  459. package/dist/core/sandbox/skills/SkillMounter.d.ts.map +1 -0
  460. package/dist/core/sandbox/skills/SkillMounter.js +73 -0
  461. package/dist/core/sandbox/skills/SkillMounter.js.map +1 -0
  462. package/dist/core/sandbox/skills/SkillMounter.mjs +48 -0
  463. package/dist/core/sandbox/skills/SkillMounter.mjs.map +1 -0
  464. package/dist/core/sandbox/skills/constants.d.ts +10 -0
  465. package/dist/core/sandbox/skills/constants.d.ts.map +1 -0
  466. package/dist/core/sandbox/skills/constants.js +56 -0
  467. package/dist/core/sandbox/skills/constants.js.map +1 -0
  468. package/dist/core/sandbox/skills/constants.mjs +28 -0
  469. package/dist/core/sandbox/skills/constants.mjs.map +1 -0
  470. package/dist/core/sandbox/skills/index.d.ts +5 -0
  471. package/dist/core/sandbox/skills/index.d.ts.map +1 -0
  472. package/dist/core/sandbox/skills/index.js +40 -0
  473. package/dist/core/sandbox/skills/index.js.map +1 -0
  474. package/dist/core/sandbox/skills/index.mjs +11 -0
  475. package/dist/core/sandbox/skills/index.mjs.map +1 -0
  476. package/dist/core/tracing/AgentTracing.d.ts +38 -0
  477. package/dist/core/tracing/AgentTracing.d.ts.map +1 -0
  478. package/dist/core/tracing/AgentTracing.js +19 -0
  479. package/dist/core/tracing/AgentTracing.js.map +1 -0
  480. package/dist/core/tracing/AgentTracing.mjs +1 -0
  481. package/dist/core/tracing/AgentTracing.mjs.map +1 -0
  482. package/dist/core/tracing/NoopAgentTracing.d.ts +3 -0
  483. package/dist/core/tracing/NoopAgentTracing.d.ts.map +1 -0
  484. package/dist/core/tracing/NoopAgentTracing.js +79 -0
  485. package/dist/core/tracing/NoopAgentTracing.js.map +1 -0
  486. package/dist/core/tracing/NoopAgentTracing.mjs +54 -0
  487. package/dist/core/tracing/NoopAgentTracing.mjs.map +1 -0
  488. package/dist/core/util/abort.d.ts +2 -0
  489. package/dist/core/util/abort.d.ts.map +1 -0
  490. package/dist/core/util/abort.js +38 -0
  491. package/dist/core/util/abort.js.map +1 -0
  492. package/dist/core/util/abort.mjs +13 -0
  493. package/dist/core/util/abort.mjs.map +1 -0
  494. package/dist/core/util/errorLogFields.d.ts +6 -0
  495. package/dist/core/util/errorLogFields.d.ts.map +1 -0
  496. package/dist/core/util/errorLogFields.js +36 -0
  497. package/dist/core/util/errorLogFields.js.map +1 -0
  498. package/dist/core/util/errorLogFields.mjs +11 -0
  499. package/dist/core/util/errorLogFields.mjs.map +1 -0
  500. package/dist/core/util/promiseUtils.d.ts +7 -0
  501. package/dist/core/util/promiseUtils.d.ts.map +1 -0
  502. package/dist/core/util/promiseUtils.js +82 -0
  503. package/dist/core/util/promiseUtils.js.map +1 -0
  504. package/dist/core/util/promiseUtils.mjs +55 -0
  505. package/dist/core/util/promiseUtils.mjs.map +1 -0
  506. package/dist/index.d.ts +7 -0
  507. package/dist/index.d.ts.map +1 -0
  508. package/dist/index.js +44 -0
  509. package/dist/index.js.map +1 -0
  510. package/dist/index.mjs +8 -0
  511. package/dist/index.mjs.map +1 -0
  512. package/dist/package.json +3 -0
  513. package/dist/request-reply/client.d.ts +21 -0
  514. package/dist/request-reply/client.d.ts.map +1 -0
  515. package/dist/request-reply/client.js +92 -0
  516. package/dist/request-reply/client.js.map +1 -0
  517. package/dist/request-reply/client.mjs +67 -0
  518. package/dist/request-reply/client.mjs.map +1 -0
  519. package/dist/request-reply/errors.d.ts +23 -0
  520. package/dist/request-reply/errors.d.ts.map +1 -0
  521. package/dist/request-reply/errors.js +66 -0
  522. package/dist/request-reply/errors.js.map +1 -0
  523. package/dist/request-reply/errors.mjs +39 -0
  524. package/dist/request-reply/errors.mjs.map +1 -0
  525. package/dist/request-reply/executor.d.ts +70 -0
  526. package/dist/request-reply/executor.d.ts.map +1 -0
  527. package/dist/request-reply/executor.js +267 -0
  528. package/dist/request-reply/executor.js.map +1 -0
  529. package/dist/request-reply/executor.mjs +232 -0
  530. package/dist/request-reply/executor.mjs.map +1 -0
  531. package/dist/request-reply/index.d.ts +16 -0
  532. package/dist/request-reply/index.d.ts.map +1 -0
  533. package/dist/request-reply/index.js +47 -0
  534. package/dist/request-reply/index.js.map +1 -0
  535. package/dist/request-reply/index.mjs +16 -0
  536. package/dist/request-reply/index.mjs.map +1 -0
  537. package/dist/request-reply/router.d.ts +20 -0
  538. package/dist/request-reply/router.d.ts.map +1 -0
  539. package/dist/request-reply/router.js +55 -0
  540. package/dist/request-reply/router.js.map +1 -0
  541. package/dist/request-reply/router.mjs +30 -0
  542. package/dist/request-reply/router.mjs.map +1 -0
  543. package/dist/request-reply/types.d.ts +25 -0
  544. package/dist/request-reply/types.d.ts.map +1 -0
  545. package/dist/request-reply/types.js +54 -0
  546. package/dist/request-reply/types.js.map +1 -0
  547. package/dist/request-reply/types.mjs +28 -0
  548. package/dist/request-reply/types.mjs.map +1 -0
  549. package/dist/request-reply/utils.d.ts +9 -0
  550. package/dist/request-reply/utils.d.ts.map +1 -0
  551. package/dist/request-reply/utils.js +51 -0
  552. package/dist/request-reply/utils.js.map +1 -0
  553. package/dist/request-reply/utils.mjs +22 -0
  554. package/dist/request-reply/utils.mjs.map +1 -0
  555. package/package.json +127 -6
  556. package/README.md +0 -4
  557. package/index.js +0 -1
@@ -0,0 +1,107 @@
1
+ // src/core/llm/openaiSchemas.ts
2
+ import { z } from "@hono/zod-openapi";
3
+ var ChatCompletionContentPartTextSchema = z.object({
4
+ type: z.literal("text").describe("Text content part."),
5
+ text: z.string().describe("Plain-text content.")
6
+ }).openapi("ChatCompletionContentPartText");
7
+ var ChatCompletionContentPartRefusalSchema = z.object({
8
+ type: z.literal("refusal").describe("Model refusal content part."),
9
+ refusal: z.string().describe("Refusal message text.")
10
+ }).openapi("ChatCompletionContentPartRefusal");
11
+ var ChatCompletionContentPartImageSchema = z.object({
12
+ type: z.literal("image_url").describe("Image URL content part."),
13
+ image_url: z.object({
14
+ url: z.string().describe("Image URL or data URI."),
15
+ detail: z.enum(["auto", "low", "high"]).optional().describe("Optional image detail level.")
16
+ })
17
+ }).openapi("ChatCompletionContentPartImage");
18
+ var ChatCompletionContentPartInputAudioSchema = z.object({
19
+ type: z.literal("input_audio").describe("Input audio content part."),
20
+ input_audio: z.object({
21
+ data: z.string().describe("Base64-encoded audio data."),
22
+ format: z.enum(["wav", "mp3"]).describe("Audio encoding format.")
23
+ })
24
+ }).openapi("ChatCompletionContentPartInputAudio");
25
+ var ChatCompletionContentPartFileSchema = z.object({
26
+ type: z.literal("file").describe("File content part."),
27
+ file: z.object({
28
+ file_data: z.string().optional().describe("Optional base64 file payload."),
29
+ file_id: z.string().optional().describe("Optional provider file id."),
30
+ filename: z.string().optional().describe("Optional filename.")
31
+ })
32
+ }).openapi("ChatCompletionContentPartFile");
33
+ var ChatCompletionContentPartSchema = z.union([
34
+ ChatCompletionContentPartTextSchema,
35
+ ChatCompletionContentPartImageSchema,
36
+ ChatCompletionContentPartInputAudioSchema,
37
+ ChatCompletionContentPartFileSchema
38
+ ]);
39
+ var ChatCompletionMessageToolCallSchema = z.object({
40
+ id: z.string().describe("Tool call id."),
41
+ type: z.literal("function").describe("Tool call type."),
42
+ function: z.object({
43
+ name: z.string().describe("Function/tool name."),
44
+ arguments: z.string().describe("JSON-encoded function arguments string.")
45
+ })
46
+ }).openapi("ChatCompletionMessageToolCall");
47
+ var ChatCompletionChunkDeltaToolCallSchema = z.object({
48
+ index: z.number().int().nonnegative().describe("Index of this tool call in the streaming delta array."),
49
+ id: z.string().optional().describe("Tool call id (may arrive across multiple deltas)."),
50
+ type: z.literal("function").optional().describe("Tool call type when present on this delta."),
51
+ function: z.object({
52
+ name: z.string().optional().describe("Partial or complete function name."),
53
+ arguments: z.string().optional().describe("Partial or complete JSON arguments string.")
54
+ }).optional()
55
+ }).openapi("ChatCompletionChunkDeltaToolCall");
56
+ var ChatCompletionChunkDeltaSchema = z.object({
57
+ content: z.string().nullable().optional().describe("Incremental assistant text content."),
58
+ refusal: z.string().nullable().optional().describe("Incremental refusal text when present."),
59
+ role: z.enum(["developer", "system", "user", "assistant", "tool"]).optional().describe("Role when set on the delta."),
60
+ function_call: z.object({
61
+ name: z.string().optional().describe("Legacy function-call name fragment."),
62
+ arguments: z.string().optional().describe("Legacy function-call arguments fragment.")
63
+ }).optional(),
64
+ tool_calls: z.array(ChatCompletionChunkDeltaToolCallSchema).optional().describe("Incremental tool-call deltas.")
65
+ }).openapi("ChatCompletionChunkDelta");
66
+ var ChatCompletionAssistantMessageParamSchema = z.object({
67
+ role: z.literal("assistant").describe("Assistant message role."),
68
+ audio: z.object({ id: z.string().describe("Provider audio id.") }).nullable().optional(),
69
+ content: z.union([
70
+ z.string(),
71
+ z.array(z.union([ChatCompletionContentPartTextSchema, ChatCompletionContentPartRefusalSchema]))
72
+ ]).nullable().optional().describe("Assistant message content as text or content parts."),
73
+ function_call: z.object({
74
+ name: z.string().describe("Legacy function name."),
75
+ arguments: z.string().describe("Legacy function arguments JSON string.")
76
+ }).nullable().optional(),
77
+ name: z.string().optional().describe("Optional participant name."),
78
+ refusal: z.string().nullable().optional().describe("Optional refusal text."),
79
+ tool_calls: z.array(ChatCompletionMessageToolCallSchema).optional().describe("Tool calls requested by the assistant.")
80
+ }).openapi("ChatCompletionAssistantMessageParam");
81
+ var ChatCompletionToolMessageParamSchema = z.object({
82
+ role: z.literal("tool").describe("Tool message role."),
83
+ tool_call_id: z.string().describe("Id of the tool call this message responds to."),
84
+ content: z.union([z.string(), z.array(ChatCompletionContentPartTextSchema)]).describe("Tool result content.")
85
+ }).openapi("ChatCompletionToolMessageParam");
86
+ var ChatCompletionUserMessageParamSchema = z.object({
87
+ role: z.literal("user").describe("User message role."),
88
+ content: z.union([z.string(), z.array(ChatCompletionContentPartSchema)]).describe("User message content as text or content parts."),
89
+ name: z.string().optional().describe("Optional participant name.")
90
+ }).openapi("ChatCompletionUserMessageParam");
91
+ var ChatCompletionChunkFinishReasonSchema = z.enum(["stop", "length", "tool_calls", "content_filter", "function_call"]).describe("Why the model stopped generating.").openapi("ChatCompletionChunkFinishReason");
92
+ export {
93
+ ChatCompletionAssistantMessageParamSchema,
94
+ ChatCompletionChunkDeltaSchema,
95
+ ChatCompletionChunkDeltaToolCallSchema,
96
+ ChatCompletionChunkFinishReasonSchema,
97
+ ChatCompletionContentPartFileSchema,
98
+ ChatCompletionContentPartImageSchema,
99
+ ChatCompletionContentPartInputAudioSchema,
100
+ ChatCompletionContentPartRefusalSchema,
101
+ ChatCompletionContentPartSchema,
102
+ ChatCompletionContentPartTextSchema,
103
+ ChatCompletionMessageToolCallSchema,
104
+ ChatCompletionToolMessageParamSchema,
105
+ ChatCompletionUserMessageParamSchema
106
+ };
107
+ //# sourceMappingURL=openaiSchemas.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/core/llm/openaiSchemas.ts"],"sourcesContent":["/**\n * Canonical OpenAI wire schemas with OpenAPI component names.\n * Nested composites are rebuilt from decorated leaves so `$ref`s are preserved.\n */\nimport { z } from '@hono/zod-openapi';\n\nexport const ChatCompletionContentPartTextSchema = z\n .object({\n type: z.literal('text').describe('Text content part.'),\n text: z.string().describe('Plain-text content.'),\n })\n .openapi('ChatCompletionContentPartText');\n\nexport const ChatCompletionContentPartRefusalSchema = z\n .object({\n type: z.literal('refusal').describe('Model refusal content part.'),\n refusal: z.string().describe('Refusal message text.'),\n })\n .openapi('ChatCompletionContentPartRefusal');\n\nexport const ChatCompletionContentPartImageSchema = z\n .object({\n type: z.literal('image_url').describe('Image URL content part.'),\n image_url: z.object({\n url: z.string().describe('Image URL or data URI.'),\n detail: z.enum(['auto', 'low', 'high']).optional().describe('Optional image detail level.'),\n }),\n })\n .openapi('ChatCompletionContentPartImage');\n\nexport const ChatCompletionContentPartInputAudioSchema = z\n .object({\n type: z.literal('input_audio').describe('Input audio content part.'),\n input_audio: z.object({\n data: z.string().describe('Base64-encoded audio data.'),\n format: z.enum(['wav', 'mp3']).describe('Audio encoding format.'),\n }),\n })\n .openapi('ChatCompletionContentPartInputAudio');\n\nexport const ChatCompletionContentPartFileSchema = z\n .object({\n type: z.literal('file').describe('File content part.'),\n file: z.object({\n file_data: z.string().optional().describe('Optional base64 file payload.'),\n file_id: z.string().optional().describe('Optional provider file id.'),\n filename: z.string().optional().describe('Optional filename.'),\n }),\n })\n .openapi('ChatCompletionContentPartFile');\n\n// User-message content parts (matches OpenAI's `ChatCompletionContentPart`).\nexport const ChatCompletionContentPartSchema = z.union([\n ChatCompletionContentPartTextSchema,\n ChatCompletionContentPartImageSchema,\n ChatCompletionContentPartInputAudioSchema,\n ChatCompletionContentPartFileSchema,\n]);\n\nexport const ChatCompletionMessageToolCallSchema = z\n .object({\n id: z.string().describe('Tool call id.'),\n type: z.literal('function').describe('Tool call type.'),\n function: z.object({\n name: z.string().describe('Function/tool name.'),\n arguments: z.string().describe('JSON-encoded function arguments string.'),\n }),\n })\n .openapi('ChatCompletionMessageToolCall');\n\nexport const ChatCompletionChunkDeltaToolCallSchema = z\n .object({\n index: z.number().int().nonnegative().describe('Index of this tool call in the streaming delta array.'),\n id: z.string().optional().describe('Tool call id (may arrive across multiple deltas).'),\n type: z.literal('function').optional().describe('Tool call type when present on this delta.'),\n function: z\n .object({\n name: z.string().optional().describe('Partial or complete function name.'),\n arguments: z.string().optional().describe('Partial or complete JSON arguments string.'),\n })\n .optional(),\n })\n .openapi('ChatCompletionChunkDeltaToolCall');\n\nexport const ChatCompletionChunkDeltaSchema = z\n .object({\n content: z.string().nullable().optional().describe('Incremental assistant text content.'),\n refusal: z.string().nullable().optional().describe('Incremental refusal text when present.'),\n role: z\n .enum(['developer', 'system', 'user', 'assistant', 'tool'])\n .optional()\n .describe('Role when set on the delta.'),\n function_call: z\n .object({\n name: z.string().optional().describe('Legacy function-call name fragment.'),\n arguments: z.string().optional().describe('Legacy function-call arguments fragment.'),\n })\n .optional(),\n tool_calls: z.array(ChatCompletionChunkDeltaToolCallSchema).optional().describe('Incremental tool-call deltas.'),\n })\n .openapi('ChatCompletionChunkDelta');\n\nexport const ChatCompletionAssistantMessageParamSchema = z\n .object({\n role: z.literal('assistant').describe('Assistant message role.'),\n audio: z\n .object({ id: z.string().describe('Provider audio id.') })\n .nullable()\n .optional(),\n content: z\n .union([\n z.string(),\n z.array(z.union([ChatCompletionContentPartTextSchema, ChatCompletionContentPartRefusalSchema])),\n ])\n .nullable()\n .optional()\n .describe('Assistant message content as text or content parts.'),\n function_call: z\n .object({\n name: z.string().describe('Legacy function name.'),\n arguments: z.string().describe('Legacy function arguments JSON string.'),\n })\n .nullable()\n .optional(),\n name: z.string().optional().describe('Optional participant name.'),\n refusal: z.string().nullable().optional().describe('Optional refusal text.'),\n tool_calls: z\n .array(ChatCompletionMessageToolCallSchema)\n .optional()\n .describe('Tool calls requested by the assistant.'),\n })\n .openapi('ChatCompletionAssistantMessageParam');\n\n// `content` is wider here than in our pipeline; `LLMToolMessageSchema` narrows it to string.\nexport const ChatCompletionToolMessageParamSchema = z\n .object({\n role: z.literal('tool').describe('Tool message role.'),\n tool_call_id: z.string().describe('Id of the tool call this message responds to.'),\n content: z.union([z.string(), z.array(ChatCompletionContentPartTextSchema)]).describe('Tool result content.'),\n })\n .openapi('ChatCompletionToolMessageParam');\n\nexport const ChatCompletionUserMessageParamSchema = z\n .object({\n role: z.literal('user').describe('User message role.'),\n content: z\n .union([z.string(), z.array(ChatCompletionContentPartSchema)])\n .describe('User message content as text or content parts.'),\n name: z.string().optional().describe('Optional participant name.'),\n })\n .openapi('ChatCompletionUserMessageParam');\n\nexport const ChatCompletionChunkFinishReasonSchema = z\n .enum(['stop', 'length', 'tool_calls', 'content_filter', 'function_call'])\n .describe('Why the model stopped generating.')\n .openapi('ChatCompletionChunkFinishReason');\n"],"mappings":"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","names":[]}
@@ -0,0 +1,25 @@
1
+ import { z } from '@hono/zod-openapi';
2
+ import type { ChatCompletionCreateParamsStreaming } from 'openai/resources/chat';
3
+ export declare const ResponseFormatSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
4
+ type: z.ZodLiteral<"text">;
5
+ }, z.core.$loose>, z.ZodObject<{
6
+ type: z.ZodLiteral<"json_object">;
7
+ }, z.core.$loose>, z.ZodObject<{
8
+ type: z.ZodLiteral<"json_schema">;
9
+ json_schema: z.ZodObject<{
10
+ name: z.ZodString;
11
+ description: z.ZodOptional<z.ZodString>;
12
+ schema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
13
+ strict: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
14
+ }, z.core.$loose>;
15
+ }, z.core.$loose>], "type">;
16
+ export type ResponseFormat = z.infer<typeof ResponseFormatSchema>;
17
+ type OpenAIResponseFormat = NonNullable<ChatCompletionCreateParamsStreaming['response_format']>;
18
+ /**
19
+ * Maps our wire ResponseFormat into the OpenAI SDK shape for the chat.completions body.
20
+ * Identity-preserving: spreads the validated format (and nested json_schema) so
21
+ * Zod `.loose()` provider extensions reach the LLM unchanged.
22
+ */
23
+ export declare function toOpenAIResponseFormat(format: ResponseFormat): OpenAIResponseFormat;
24
+ export {};
25
+ //# sourceMappingURL=responseFormat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responseFormat.d.ts","sourceRoot":"","sources":["../../../src/core/llm/responseFormat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AACtC,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,uBAAuB,CAAC;AAuCjF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;2BAML,CAAC;AAE7B,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,KAAK,oBAAoB,GAAG,WAAW,CAAC,mCAAmC,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAEhG;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,cAAc,GAAG,oBAAoB,CAWnF"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/core/llm/responseFormat.ts
21
+ var responseFormat_exports = {};
22
+ __export(responseFormat_exports, {
23
+ ResponseFormatSchema: () => ResponseFormatSchema,
24
+ toOpenAIResponseFormat: () => toOpenAIResponseFormat
25
+ });
26
+ module.exports = __toCommonJS(responseFormat_exports);
27
+ var import_zod_openapi = require("@hono/zod-openapi");
28
+ var ResponseFormatTextSchema = import_zod_openapi.z.object({ type: import_zod_openapi.z.literal("text").describe("Unconstrained text output.") }).loose().describe("Default text response format. Extra provider fields are allowed.").openapi("ResponseFormatText");
29
+ var ResponseFormatJsonObjectSchema = import_zod_openapi.z.object({ type: import_zod_openapi.z.literal("json_object").describe("Model must return a JSON object.") }).loose().describe("JSON object response format. Extra provider fields are allowed.").openapi("ResponseFormatJsonObject");
30
+ var ResponseFormatJsonSchemaSchema = import_zod_openapi.z.object({
31
+ type: import_zod_openapi.z.literal("json_schema").describe("Model must return JSON matching a schema."),
32
+ json_schema: import_zod_openapi.z.object({
33
+ name: import_zod_openapi.z.string().describe("Schema name sent to the provider."),
34
+ description: import_zod_openapi.z.string().optional().describe("Optional schema description for the model."),
35
+ schema: import_zod_openapi.z.record(import_zod_openapi.z.string(), import_zod_openapi.z.unknown()).optional().describe("JSON Schema object for the response."),
36
+ strict: import_zod_openapi.z.boolean().nullable().optional().describe("When true, ask the provider to enforce the schema strictly.")
37
+ }).loose().describe("JSON Schema payload. Extra provider fields are allowed.")
38
+ }).loose().describe("JSON Schema response format. Extra provider fields are allowed.").openapi("ResponseFormatJsonSchema");
39
+ var ResponseFormatSchema = import_zod_openapi.z.discriminatedUnion("type", [
40
+ ResponseFormatTextSchema,
41
+ ResponseFormatJsonObjectSchema,
42
+ ResponseFormatJsonSchemaSchema
43
+ ]).openapi("ResponseFormat");
44
+ function toOpenAIResponseFormat(format) {
45
+ if (format.type === "text" || format.type === "json_object") {
46
+ return { ...format };
47
+ }
48
+ return {
49
+ ...format,
50
+ json_schema: { ...format.json_schema }
51
+ };
52
+ }
53
+ // Annotate the CommonJS export names for ESM import in node:
54
+ 0 && (module.exports = {
55
+ ResponseFormatSchema,
56
+ toOpenAIResponseFormat
57
+ });
58
+ //# sourceMappingURL=responseFormat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/core/llm/responseFormat.ts"],"sourcesContent":["import { z } from '@hono/zod-openapi';\nimport type { ChatCompletionCreateParamsStreaming } from 'openai/resources/chat';\n\n/**\n * Wire/runtime response format (Zod). Kept in core so AgentDefinition and AgentSpec\n * share one type without agentSession → core inversion.\n * `.loose()` lets unknown fields within a known `type` flow through to the LLM.\n */\n\nconst ResponseFormatTextSchema = z\n .object({ type: z.literal('text').describe('Unconstrained text output.') })\n .loose()\n .describe('Default text response format. Extra provider fields are allowed.')\n .openapi('ResponseFormatText');\nconst ResponseFormatJsonObjectSchema = z\n .object({ type: z.literal('json_object').describe('Model must return a JSON object.') })\n .loose()\n .describe('JSON object response format. Extra provider fields are allowed.')\n .openapi('ResponseFormatJsonObject');\nconst ResponseFormatJsonSchemaSchema = z\n .object({\n type: z.literal('json_schema').describe('Model must return JSON matching a schema.'),\n json_schema: z\n .object({\n name: z.string().describe('Schema name sent to the provider.'),\n description: z.string().optional().describe('Optional schema description for the model.'),\n schema: z.record(z.string(), z.unknown()).optional().describe('JSON Schema object for the response.'),\n strict: z\n .boolean()\n .nullable()\n .optional()\n .describe('When true, ask the provider to enforce the schema strictly.'),\n })\n .loose()\n .describe('JSON Schema payload. Extra provider fields are allowed.'),\n })\n .loose()\n .describe('JSON Schema response format. Extra provider fields are allowed.')\n .openapi('ResponseFormatJsonSchema');\n\nexport const ResponseFormatSchema = z\n .discriminatedUnion('type', [\n ResponseFormatTextSchema,\n ResponseFormatJsonObjectSchema,\n ResponseFormatJsonSchemaSchema,\n ])\n .openapi('ResponseFormat');\n\nexport type ResponseFormat = z.infer<typeof ResponseFormatSchema>;\n\ntype OpenAIResponseFormat = NonNullable<ChatCompletionCreateParamsStreaming['response_format']>;\n\n/**\n * Maps our wire ResponseFormat into the OpenAI SDK shape for the chat.completions body.\n * Identity-preserving: spreads the validated format (and nested json_schema) so\n * Zod `.loose()` provider extensions reach the LLM unchanged.\n */\nexport function toOpenAIResponseFormat(format: ResponseFormat): OpenAIResponseFormat {\n if (format.type === 'text' || format.type === 'json_object') {\n // Spread preserves Zod .loose() provider extensions beyond the SDK type.\n return { ...format };\n }\n // Assert: OpenAI SDK json_schema type is a closed shape; Zod ResponseFormatSchema.loose()\n // intentionally forwards provider extensions (top-level and nested) for the LLM call.\n return {\n ...format,\n json_schema: { ...format.json_schema },\n } as OpenAIResponseFormat;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAAkB;AASlB,IAAM,2BAA2B,qBAC9B,OAAO,EAAE,MAAM,qBAAE,QAAQ,MAAM,EAAE,SAAS,4BAA4B,EAAE,CAAC,EACzE,MAAM,EACN,SAAS,kEAAkE,EAC3E,QAAQ,oBAAoB;AAC/B,IAAM,iCAAiC,qBACpC,OAAO,EAAE,MAAM,qBAAE,QAAQ,aAAa,EAAE,SAAS,kCAAkC,EAAE,CAAC,EACtF,MAAM,EACN,SAAS,iEAAiE,EAC1E,QAAQ,0BAA0B;AACrC,IAAM,iCAAiC,qBACpC,OAAO;AAAA,EACN,MAAM,qBAAE,QAAQ,aAAa,EAAE,SAAS,2CAA2C;AAAA,EACnF,aAAa,qBACV,OAAO;AAAA,IACN,MAAM,qBAAE,OAAO,EAAE,SAAS,mCAAmC;AAAA,IAC7D,aAAa,qBAAE,OAAO,EAAE,SAAS,EAAE,SAAS,4CAA4C;AAAA,IACxF,QAAQ,qBAAE,OAAO,qBAAE,OAAO,GAAG,qBAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,SAAS,sCAAsC;AAAA,IACpG,QAAQ,qBACL,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,6DAA6D;AAAA,EAC3E,CAAC,EACA,MAAM,EACN,SAAS,yDAAyD;AACvE,CAAC,EACA,MAAM,EACN,SAAS,iEAAiE,EAC1E,QAAQ,0BAA0B;AAE9B,IAAM,uBAAuB,qBACjC,mBAAmB,QAAQ;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AACF,CAAC,EACA,QAAQ,gBAAgB;AAWpB,SAAS,uBAAuB,QAA8C;AACnF,MAAI,OAAO,SAAS,UAAU,OAAO,SAAS,eAAe;AAE3D,WAAO,EAAE,GAAG,OAAO;AAAA,EACrB;AAGA,SAAO;AAAA,IACL,GAAG;AAAA,IACH,aAAa,EAAE,GAAG,OAAO,YAAY;AAAA,EACvC;AACF;","names":[]}
@@ -0,0 +1,32 @@
1
+ // src/core/llm/responseFormat.ts
2
+ import { z } from "@hono/zod-openapi";
3
+ var ResponseFormatTextSchema = z.object({ type: z.literal("text").describe("Unconstrained text output.") }).loose().describe("Default text response format. Extra provider fields are allowed.").openapi("ResponseFormatText");
4
+ var ResponseFormatJsonObjectSchema = z.object({ type: z.literal("json_object").describe("Model must return a JSON object.") }).loose().describe("JSON object response format. Extra provider fields are allowed.").openapi("ResponseFormatJsonObject");
5
+ var ResponseFormatJsonSchemaSchema = z.object({
6
+ type: z.literal("json_schema").describe("Model must return JSON matching a schema."),
7
+ json_schema: z.object({
8
+ name: z.string().describe("Schema name sent to the provider."),
9
+ description: z.string().optional().describe("Optional schema description for the model."),
10
+ schema: z.record(z.string(), z.unknown()).optional().describe("JSON Schema object for the response."),
11
+ strict: z.boolean().nullable().optional().describe("When true, ask the provider to enforce the schema strictly.")
12
+ }).loose().describe("JSON Schema payload. Extra provider fields are allowed.")
13
+ }).loose().describe("JSON Schema response format. Extra provider fields are allowed.").openapi("ResponseFormatJsonSchema");
14
+ var ResponseFormatSchema = z.discriminatedUnion("type", [
15
+ ResponseFormatTextSchema,
16
+ ResponseFormatJsonObjectSchema,
17
+ ResponseFormatJsonSchemaSchema
18
+ ]).openapi("ResponseFormat");
19
+ function toOpenAIResponseFormat(format) {
20
+ if (format.type === "text" || format.type === "json_object") {
21
+ return { ...format };
22
+ }
23
+ return {
24
+ ...format,
25
+ json_schema: { ...format.json_schema }
26
+ };
27
+ }
28
+ export {
29
+ ResponseFormatSchema,
30
+ toOpenAIResponseFormat
31
+ };
32
+ //# sourceMappingURL=responseFormat.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/core/llm/responseFormat.ts"],"sourcesContent":["import { z } from '@hono/zod-openapi';\nimport type { ChatCompletionCreateParamsStreaming } from 'openai/resources/chat';\n\n/**\n * Wire/runtime response format (Zod). Kept in core so AgentDefinition and AgentSpec\n * share one type without agentSession → core inversion.\n * `.loose()` lets unknown fields within a known `type` flow through to the LLM.\n */\n\nconst ResponseFormatTextSchema = z\n .object({ type: z.literal('text').describe('Unconstrained text output.') })\n .loose()\n .describe('Default text response format. Extra provider fields are allowed.')\n .openapi('ResponseFormatText');\nconst ResponseFormatJsonObjectSchema = z\n .object({ type: z.literal('json_object').describe('Model must return a JSON object.') })\n .loose()\n .describe('JSON object response format. Extra provider fields are allowed.')\n .openapi('ResponseFormatJsonObject');\nconst ResponseFormatJsonSchemaSchema = z\n .object({\n type: z.literal('json_schema').describe('Model must return JSON matching a schema.'),\n json_schema: z\n .object({\n name: z.string().describe('Schema name sent to the provider.'),\n description: z.string().optional().describe('Optional schema description for the model.'),\n schema: z.record(z.string(), z.unknown()).optional().describe('JSON Schema object for the response.'),\n strict: z\n .boolean()\n .nullable()\n .optional()\n .describe('When true, ask the provider to enforce the schema strictly.'),\n })\n .loose()\n .describe('JSON Schema payload. Extra provider fields are allowed.'),\n })\n .loose()\n .describe('JSON Schema response format. Extra provider fields are allowed.')\n .openapi('ResponseFormatJsonSchema');\n\nexport const ResponseFormatSchema = z\n .discriminatedUnion('type', [\n ResponseFormatTextSchema,\n ResponseFormatJsonObjectSchema,\n ResponseFormatJsonSchemaSchema,\n ])\n .openapi('ResponseFormat');\n\nexport type ResponseFormat = z.infer<typeof ResponseFormatSchema>;\n\ntype OpenAIResponseFormat = NonNullable<ChatCompletionCreateParamsStreaming['response_format']>;\n\n/**\n * Maps our wire ResponseFormat into the OpenAI SDK shape for the chat.completions body.\n * Identity-preserving: spreads the validated format (and nested json_schema) so\n * Zod `.loose()` provider extensions reach the LLM unchanged.\n */\nexport function toOpenAIResponseFormat(format: ResponseFormat): OpenAIResponseFormat {\n if (format.type === 'text' || format.type === 'json_object') {\n // Spread preserves Zod .loose() provider extensions beyond the SDK type.\n return { ...format };\n }\n // Assert: OpenAI SDK json_schema type is a closed shape; Zod ResponseFormatSchema.loose()\n // intentionally forwards provider extensions (top-level and nested) for the LLM call.\n return {\n ...format,\n json_schema: { ...format.json_schema },\n } as OpenAIResponseFormat;\n}\n"],"mappings":";AAAA,SAAS,SAAS;AASlB,IAAM,2BAA2B,EAC9B,OAAO,EAAE,MAAM,EAAE,QAAQ,MAAM,EAAE,SAAS,4BAA4B,EAAE,CAAC,EACzE,MAAM,EACN,SAAS,kEAAkE,EAC3E,QAAQ,oBAAoB;AAC/B,IAAM,iCAAiC,EACpC,OAAO,EAAE,MAAM,EAAE,QAAQ,aAAa,EAAE,SAAS,kCAAkC,EAAE,CAAC,EACtF,MAAM,EACN,SAAS,iEAAiE,EAC1E,QAAQ,0BAA0B;AACrC,IAAM,iCAAiC,EACpC,OAAO;AAAA,EACN,MAAM,EAAE,QAAQ,aAAa,EAAE,SAAS,2CAA2C;AAAA,EACnF,aAAa,EACV,OAAO;AAAA,IACN,MAAM,EAAE,OAAO,EAAE,SAAS,mCAAmC;AAAA,IAC7D,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,4CAA4C;AAAA,IACxF,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,SAAS,sCAAsC;AAAA,IACpG,QAAQ,EACL,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,6DAA6D;AAAA,EAC3E,CAAC,EACA,MAAM,EACN,SAAS,yDAAyD;AACvE,CAAC,EACA,MAAM,EACN,SAAS,iEAAiE,EAC1E,QAAQ,0BAA0B;AAE9B,IAAM,uBAAuB,EACjC,mBAAmB,QAAQ;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AACF,CAAC,EACA,QAAQ,gBAAgB;AAWpB,SAAS,uBAAuB,QAA8C;AACnF,MAAI,OAAO,SAAS,UAAU,OAAO,SAAS,eAAe;AAE3D,WAAO,EAAE,GAAG,OAAO;AAAA,EACrB;AAGA,SAAO;AAAA,IACL,GAAG;AAAA,IACH,aAAa,EAAE,GAAG,OAAO,YAAY;AAAA,EACvC;AACF;","names":[]}
@@ -0,0 +1,11 @@
1
+ import type { ChatCompletionMessageParam } from 'openai/resources/chat';
2
+ import type { LLMContextMessage } from '../runtime/AgentThread.types';
3
+ /**
4
+ * Maps harness context messages to the OpenAI chat message param shape.
5
+ * For assistants: spreads the message (preserving thinking_blocks, reasoning_content,
6
+ * and tool-call provider_specific_fields), strips only `tool_info`, and omits empty
7
+ * `tool_calls` (OpenAI rejects `tool_calls: []`).
8
+ * User content is rebuilt field-by-field for exactOptionalPropertyTypes.
9
+ */
10
+ export declare function toOpenAIChatMessage(msg: LLMContextMessage): ChatCompletionMessageParam;
11
+ //# sourceMappingURL=toOpenAIChatMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toOpenAIChatMessage.d.ts","sourceRoot":"","sources":["../../../src/core/llm/toOpenAIChatMessage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA6B,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAGtE;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,iBAAiB,GAAG,0BAA0B,CA8BtF"}
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/core/llm/toOpenAIChatMessage.ts
21
+ var toOpenAIChatMessage_exports = {};
22
+ __export(toOpenAIChatMessage_exports, {
23
+ toOpenAIChatMessage: () => toOpenAIChatMessage
24
+ });
25
+ module.exports = __toCommonJS(toOpenAIChatMessage_exports);
26
+ function toOpenAIChatMessage(msg) {
27
+ if (msg.role === "user") {
28
+ return { role: "user", content: toOpenAIUserContent(msg.content) };
29
+ }
30
+ if (msg.role === "tool") {
31
+ return {
32
+ role: "tool",
33
+ tool_call_id: msg.tool_call_id,
34
+ content: msg.content
35
+ };
36
+ }
37
+ if (!msg.tool_calls?.length) {
38
+ const { tool_calls: _omit, ...rest } = msg;
39
+ void _omit;
40
+ return rest;
41
+ }
42
+ return {
43
+ ...msg,
44
+ tool_calls: msg.tool_calls.map(({ tool_info: _toolInfo, ...rest }) => {
45
+ void _toolInfo;
46
+ return rest;
47
+ })
48
+ };
49
+ }
50
+ function toOpenAIUserContent(content) {
51
+ if (typeof content === "string") {
52
+ return content;
53
+ }
54
+ const parts = [];
55
+ for (const part of content) {
56
+ if (part.type === "text") {
57
+ parts.push({ type: "text", text: part.text });
58
+ continue;
59
+ }
60
+ if (part.type === "image_url") {
61
+ parts.push({
62
+ type: "image_url",
63
+ image_url: {
64
+ url: part.image_url.url,
65
+ ...part.image_url.detail !== void 0 ? { detail: part.image_url.detail } : {}
66
+ }
67
+ });
68
+ continue;
69
+ }
70
+ if (part.type === "input_audio") {
71
+ parts.push({
72
+ type: "input_audio",
73
+ input_audio: {
74
+ data: part.input_audio.data,
75
+ format: part.input_audio.format
76
+ }
77
+ });
78
+ continue;
79
+ }
80
+ parts.push({
81
+ type: "file",
82
+ file: {
83
+ ...part.file.file_data !== void 0 ? { file_data: part.file.file_data } : {},
84
+ ...part.file.file_id !== void 0 ? { file_id: part.file.file_id } : {},
85
+ ...part.file.filename !== void 0 ? { filename: part.file.filename } : {}
86
+ }
87
+ });
88
+ }
89
+ return parts;
90
+ }
91
+ // Annotate the CommonJS export names for ESM import in node:
92
+ 0 && (module.exports = {
93
+ toOpenAIChatMessage
94
+ });
95
+ //# sourceMappingURL=toOpenAIChatMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/core/llm/toOpenAIChatMessage.ts"],"sourcesContent":["import type { ChatCompletionContentPart, ChatCompletionMessageParam } from 'openai/resources/chat';\nimport type { LLMContextMessage } from '../runtime/AgentThread.types';\nimport type { LLMUserMessage } from './LLMTypes';\n\n/**\n * Maps harness context messages to the OpenAI chat message param shape.\n * For assistants: spreads the message (preserving thinking_blocks, reasoning_content,\n * and tool-call provider_specific_fields), strips only `tool_info`, and omits empty\n * `tool_calls` (OpenAI rejects `tool_calls: []`).\n * User content is rebuilt field-by-field for exactOptionalPropertyTypes.\n */\nexport function toOpenAIChatMessage(msg: LLMContextMessage): ChatCompletionMessageParam {\n if (msg.role === 'user') {\n return { role: 'user', content: toOpenAIUserContent(msg.content) };\n }\n\n if (msg.role === 'tool') {\n return {\n role: 'tool',\n tool_call_id: msg.tool_call_id,\n content: msg.content,\n };\n }\n\n // assistant — match gateway AgentThread inline mapping: spread msg, strip tool_info only.\n if (!msg.tool_calls?.length) {\n const { tool_calls: _omit, ...rest } = msg;\n void _omit;\n // Assert: OpenAI SDK message type omits gateway thinking-block / provider extensions\n // (thinking_blocks, reasoning_content, …); we intentionally forward them for replay.\n return rest as ChatCompletionMessageParam;\n }\n\n // Assert: same as above, plus tool-call provider_specific_fields (e.g. Gemini thought_signature).\n return {\n ...msg,\n tool_calls: msg.tool_calls.map(({ tool_info: _toolInfo, ...rest }) => {\n void _toolInfo;\n return rest;\n }),\n } as ChatCompletionMessageParam;\n}\n\nfunction toOpenAIUserContent(content: LLMUserMessage['content']): string | ChatCompletionContentPart[] {\n if (typeof content === 'string') {\n return content;\n }\n\n const parts: ChatCompletionContentPart[] = [];\n for (const part of content) {\n if (part.type === 'text') {\n parts.push({ type: 'text', text: part.text });\n continue;\n }\n if (part.type === 'image_url') {\n parts.push({\n type: 'image_url',\n image_url: {\n url: part.image_url.url,\n ...(part.image_url.detail !== undefined ? { detail: part.image_url.detail } : {}),\n },\n });\n continue;\n }\n if (part.type === 'input_audio') {\n parts.push({\n type: 'input_audio',\n input_audio: {\n data: part.input_audio.data,\n format: part.input_audio.format,\n },\n });\n continue;\n }\n parts.push({\n type: 'file',\n file: {\n ...(part.file.file_data !== undefined ? { file_data: part.file.file_data } : {}),\n ...(part.file.file_id !== undefined ? { file_id: part.file.file_id } : {}),\n ...(part.file.filename !== undefined ? { filename: part.file.filename } : {}),\n },\n });\n }\n return parts;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAWO,SAAS,oBAAoB,KAAoD;AACtF,MAAI,IAAI,SAAS,QAAQ;AACvB,WAAO,EAAE,MAAM,QAAQ,SAAS,oBAAoB,IAAI,OAAO,EAAE;AAAA,EACnE;AAEA,MAAI,IAAI,SAAS,QAAQ;AACvB,WAAO;AAAA,MACL,MAAM;AAAA,MACN,cAAc,IAAI;AAAA,MAClB,SAAS,IAAI;AAAA,IACf;AAAA,EACF;AAGA,MAAI,CAAC,IAAI,YAAY,QAAQ;AAC3B,UAAM,EAAE,YAAY,OAAO,GAAG,KAAK,IAAI;AACvC,SAAK;AAGL,WAAO;AAAA,EACT;AAGA,SAAO;AAAA,IACL,GAAG;AAAA,IACH,YAAY,IAAI,WAAW,IAAI,CAAC,EAAE,WAAW,WAAW,GAAG,KAAK,MAAM;AACpE,WAAK;AACL,aAAO;AAAA,IACT,CAAC;AAAA,EACH;AACF;AAEA,SAAS,oBAAoB,SAA0E;AACrG,MAAI,OAAO,YAAY,UAAU;AAC/B,WAAO;AAAA,EACT;AAEA,QAAM,QAAqC,CAAC;AAC5C,aAAW,QAAQ,SAAS;AAC1B,QAAI,KAAK,SAAS,QAAQ;AACxB,YAAM,KAAK,EAAE,MAAM,QAAQ,MAAM,KAAK,KAAK,CAAC;AAC5C;AAAA,IACF;AACA,QAAI,KAAK,SAAS,aAAa;AAC7B,YAAM,KAAK;AAAA,QACT,MAAM;AAAA,QACN,WAAW;AAAA,UACT,KAAK,KAAK,UAAU;AAAA,UACpB,GAAI,KAAK,UAAU,WAAW,SAAY,EAAE,QAAQ,KAAK,UAAU,OAAO,IAAI,CAAC;AAAA,QACjF;AAAA,MACF,CAAC;AACD;AAAA,IACF;AACA,QAAI,KAAK,SAAS,eAAe;AAC/B,YAAM,KAAK;AAAA,QACT,MAAM;AAAA,QACN,aAAa;AAAA,UACX,MAAM,KAAK,YAAY;AAAA,UACvB,QAAQ,KAAK,YAAY;AAAA,QAC3B;AAAA,MACF,CAAC;AACD;AAAA,IACF;AACA,UAAM,KAAK;AAAA,MACT,MAAM;AAAA,MACN,MAAM;AAAA,QACJ,GAAI,KAAK,KAAK,cAAc,SAAY,EAAE,WAAW,KAAK,KAAK,UAAU,IAAI,CAAC;AAAA,QAC9E,GAAI,KAAK,KAAK,YAAY,SAAY,EAAE,SAAS,KAAK,KAAK,QAAQ,IAAI,CAAC;AAAA,QACxE,GAAI,KAAK,KAAK,aAAa,SAAY,EAAE,UAAU,KAAK,KAAK,SAAS,IAAI,CAAC;AAAA,MAC7E;AAAA,IACF,CAAC;AAAA,EACH;AACA,SAAO;AACT;","names":[]}
@@ -0,0 +1,70 @@
1
+ // src/core/llm/toOpenAIChatMessage.ts
2
+ function toOpenAIChatMessage(msg) {
3
+ if (msg.role === "user") {
4
+ return { role: "user", content: toOpenAIUserContent(msg.content) };
5
+ }
6
+ if (msg.role === "tool") {
7
+ return {
8
+ role: "tool",
9
+ tool_call_id: msg.tool_call_id,
10
+ content: msg.content
11
+ };
12
+ }
13
+ if (!msg.tool_calls?.length) {
14
+ const { tool_calls: _omit, ...rest } = msg;
15
+ void _omit;
16
+ return rest;
17
+ }
18
+ return {
19
+ ...msg,
20
+ tool_calls: msg.tool_calls.map(({ tool_info: _toolInfo, ...rest }) => {
21
+ void _toolInfo;
22
+ return rest;
23
+ })
24
+ };
25
+ }
26
+ function toOpenAIUserContent(content) {
27
+ if (typeof content === "string") {
28
+ return content;
29
+ }
30
+ const parts = [];
31
+ for (const part of content) {
32
+ if (part.type === "text") {
33
+ parts.push({ type: "text", text: part.text });
34
+ continue;
35
+ }
36
+ if (part.type === "image_url") {
37
+ parts.push({
38
+ type: "image_url",
39
+ image_url: {
40
+ url: part.image_url.url,
41
+ ...part.image_url.detail !== void 0 ? { detail: part.image_url.detail } : {}
42
+ }
43
+ });
44
+ continue;
45
+ }
46
+ if (part.type === "input_audio") {
47
+ parts.push({
48
+ type: "input_audio",
49
+ input_audio: {
50
+ data: part.input_audio.data,
51
+ format: part.input_audio.format
52
+ }
53
+ });
54
+ continue;
55
+ }
56
+ parts.push({
57
+ type: "file",
58
+ file: {
59
+ ...part.file.file_data !== void 0 ? { file_data: part.file.file_data } : {},
60
+ ...part.file.file_id !== void 0 ? { file_id: part.file.file_id } : {},
61
+ ...part.file.filename !== void 0 ? { filename: part.file.filename } : {}
62
+ }
63
+ });
64
+ }
65
+ return parts;
66
+ }
67
+ export {
68
+ toOpenAIChatMessage
69
+ };
70
+ //# sourceMappingURL=toOpenAIChatMessage.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/core/llm/toOpenAIChatMessage.ts"],"sourcesContent":["import type { ChatCompletionContentPart, ChatCompletionMessageParam } from 'openai/resources/chat';\nimport type { LLMContextMessage } from '../runtime/AgentThread.types';\nimport type { LLMUserMessage } from './LLMTypes';\n\n/**\n * Maps harness context messages to the OpenAI chat message param shape.\n * For assistants: spreads the message (preserving thinking_blocks, reasoning_content,\n * and tool-call provider_specific_fields), strips only `tool_info`, and omits empty\n * `tool_calls` (OpenAI rejects `tool_calls: []`).\n * User content is rebuilt field-by-field for exactOptionalPropertyTypes.\n */\nexport function toOpenAIChatMessage(msg: LLMContextMessage): ChatCompletionMessageParam {\n if (msg.role === 'user') {\n return { role: 'user', content: toOpenAIUserContent(msg.content) };\n }\n\n if (msg.role === 'tool') {\n return {\n role: 'tool',\n tool_call_id: msg.tool_call_id,\n content: msg.content,\n };\n }\n\n // assistant — match gateway AgentThread inline mapping: spread msg, strip tool_info only.\n if (!msg.tool_calls?.length) {\n const { tool_calls: _omit, ...rest } = msg;\n void _omit;\n // Assert: OpenAI SDK message type omits gateway thinking-block / provider extensions\n // (thinking_blocks, reasoning_content, …); we intentionally forward them for replay.\n return rest as ChatCompletionMessageParam;\n }\n\n // Assert: same as above, plus tool-call provider_specific_fields (e.g. Gemini thought_signature).\n return {\n ...msg,\n tool_calls: msg.tool_calls.map(({ tool_info: _toolInfo, ...rest }) => {\n void _toolInfo;\n return rest;\n }),\n } as ChatCompletionMessageParam;\n}\n\nfunction toOpenAIUserContent(content: LLMUserMessage['content']): string | ChatCompletionContentPart[] {\n if (typeof content === 'string') {\n return content;\n }\n\n const parts: ChatCompletionContentPart[] = [];\n for (const part of content) {\n if (part.type === 'text') {\n parts.push({ type: 'text', text: part.text });\n continue;\n }\n if (part.type === 'image_url') {\n parts.push({\n type: 'image_url',\n image_url: {\n url: part.image_url.url,\n ...(part.image_url.detail !== undefined ? { detail: part.image_url.detail } : {}),\n },\n });\n continue;\n }\n if (part.type === 'input_audio') {\n parts.push({\n type: 'input_audio',\n input_audio: {\n data: part.input_audio.data,\n format: part.input_audio.format,\n },\n });\n continue;\n }\n parts.push({\n type: 'file',\n file: {\n ...(part.file.file_data !== undefined ? { file_data: part.file.file_data } : {}),\n ...(part.file.file_id !== undefined ? { file_id: part.file.file_id } : {}),\n ...(part.file.filename !== undefined ? { filename: part.file.filename } : {}),\n },\n });\n }\n return parts;\n}\n"],"mappings":";AAWO,SAAS,oBAAoB,KAAoD;AACtF,MAAI,IAAI,SAAS,QAAQ;AACvB,WAAO,EAAE,MAAM,QAAQ,SAAS,oBAAoB,IAAI,OAAO,EAAE;AAAA,EACnE;AAEA,MAAI,IAAI,SAAS,QAAQ;AACvB,WAAO;AAAA,MACL,MAAM;AAAA,MACN,cAAc,IAAI;AAAA,MAClB,SAAS,IAAI;AAAA,IACf;AAAA,EACF;AAGA,MAAI,CAAC,IAAI,YAAY,QAAQ;AAC3B,UAAM,EAAE,YAAY,OAAO,GAAG,KAAK,IAAI;AACvC,SAAK;AAGL,WAAO;AAAA,EACT;AAGA,SAAO;AAAA,IACL,GAAG;AAAA,IACH,YAAY,IAAI,WAAW,IAAI,CAAC,EAAE,WAAW,WAAW,GAAG,KAAK,MAAM;AACpE,WAAK;AACL,aAAO;AAAA,IACT,CAAC;AAAA,EACH;AACF;AAEA,SAAS,oBAAoB,SAA0E;AACrG,MAAI,OAAO,YAAY,UAAU;AAC/B,WAAO;AAAA,EACT;AAEA,QAAM,QAAqC,CAAC;AAC5C,aAAW,QAAQ,SAAS;AAC1B,QAAI,KAAK,SAAS,QAAQ;AACxB,YAAM,KAAK,EAAE,MAAM,QAAQ,MAAM,KAAK,KAAK,CAAC;AAC5C;AAAA,IACF;AACA,QAAI,KAAK,SAAS,aAAa;AAC7B,YAAM,KAAK;AAAA,QACT,MAAM;AAAA,QACN,WAAW;AAAA,UACT,KAAK,KAAK,UAAU;AAAA,UACpB,GAAI,KAAK,UAAU,WAAW,SAAY,EAAE,QAAQ,KAAK,UAAU,OAAO,IAAI,CAAC;AAAA,QACjF;AAAA,MACF,CAAC;AACD;AAAA,IACF;AACA,QAAI,KAAK,SAAS,eAAe;AAC/B,YAAM,KAAK;AAAA,QACT,MAAM;AAAA,QACN,aAAa;AAAA,UACX,MAAM,KAAK,YAAY;AAAA,UACvB,QAAQ,KAAK,YAAY;AAAA,QAC3B;AAAA,MACF,CAAC;AACD;AAAA,IACF;AACA,UAAM,KAAK;AAAA,MACT,MAAM;AAAA,MACN,MAAM;AAAA,QACJ,GAAI,KAAK,KAAK,cAAc,SAAY,EAAE,WAAW,KAAK,KAAK,UAAU,IAAI,CAAC;AAAA,QAC9E,GAAI,KAAK,KAAK,YAAY,SAAY,EAAE,SAAS,KAAK,KAAK,QAAQ,IAAI,CAAC;AAAA,QACxE,GAAI,KAAK,KAAK,aAAa,SAAY,EAAE,UAAU,KAAK,KAAK,SAAS,IAAI,CAAC;AAAA,MAC7E;AAAA,IACF,CAAC;AAAA,EACH;AACA,SAAO;AACT;","names":[]}
@@ -0,0 +1,4 @@
1
+ import type { CompletionUsage } from './LLMTypes';
2
+ export declare function estimateTokensForString(s: string): number;
3
+ export declare function mergeUsage(a: CompletionUsage, b: CompletionUsage): CompletionUsage;
4
+ //# sourceMappingURL=usage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../../src/core/llm/usage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAEzD;AASD,wBAAgB,UAAU,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,eAAe,GAAG,eAAe,CAUlF"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/core/llm/usage.ts
21
+ var usage_exports = {};
22
+ __export(usage_exports, {
23
+ estimateTokensForString: () => estimateTokensForString,
24
+ mergeUsage: () => mergeUsage
25
+ });
26
+ module.exports = __toCommonJS(usage_exports);
27
+ function estimateTokensForString(s) {
28
+ return s.length / 4;
29
+ }
30
+ function sumOptional(a, b) {
31
+ if (a === void 0 && b === void 0) {
32
+ return void 0;
33
+ }
34
+ return (a ?? 0) + (b ?? 0);
35
+ }
36
+ function mergeUsage(a, b) {
37
+ return {
38
+ input_tokens: a.input_tokens + b.input_tokens,
39
+ output_tokens: a.output_tokens + b.output_tokens,
40
+ total_tokens: a.total_tokens + b.total_tokens,
41
+ cache_read_tokens: sumOptional(a.cache_read_tokens, b.cache_read_tokens),
42
+ cache_write_tokens: sumOptional(a.cache_write_tokens, b.cache_write_tokens),
43
+ reasoning_tokens: sumOptional(a.reasoning_tokens, b.reasoning_tokens),
44
+ cost_in_usd: sumOptional(a.cost_in_usd, b.cost_in_usd)
45
+ };
46
+ }
47
+ // Annotate the CommonJS export names for ESM import in node:
48
+ 0 && (module.exports = {
49
+ estimateTokensForString,
50
+ mergeUsage
51
+ });
52
+ //# sourceMappingURL=usage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/core/llm/usage.ts"],"sourcesContent":["import type { CompletionUsage } from './LLMTypes';\n\nexport function estimateTokensForString(s: string): number {\n return s.length / 4;\n}\n\nfunction sumOptional(a: number | undefined, b: number | undefined): number | undefined {\n if (a === undefined && b === undefined) {\n return undefined;\n }\n return (a ?? 0) + (b ?? 0);\n}\n\nexport function mergeUsage(a: CompletionUsage, b: CompletionUsage): CompletionUsage {\n return {\n input_tokens: a.input_tokens + b.input_tokens,\n output_tokens: a.output_tokens + b.output_tokens,\n total_tokens: a.total_tokens + b.total_tokens,\n cache_read_tokens: sumOptional(a.cache_read_tokens, b.cache_read_tokens),\n cache_write_tokens: sumOptional(a.cache_write_tokens, b.cache_write_tokens),\n reasoning_tokens: sumOptional(a.reasoning_tokens, b.reasoning_tokens),\n cost_in_usd: sumOptional(a.cost_in_usd, b.cost_in_usd),\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,SAAS,wBAAwB,GAAmB;AACzD,SAAO,EAAE,SAAS;AACpB;AAEA,SAAS,YAAY,GAAuB,GAA2C;AACrF,MAAI,MAAM,UAAa,MAAM,QAAW;AACtC,WAAO;AAAA,EACT;AACA,UAAQ,KAAK,MAAM,KAAK;AAC1B;AAEO,SAAS,WAAW,GAAoB,GAAqC;AAClF,SAAO;AAAA,IACL,cAAc,EAAE,eAAe,EAAE;AAAA,IACjC,eAAe,EAAE,gBAAgB,EAAE;AAAA,IACnC,cAAc,EAAE,eAAe,EAAE;AAAA,IACjC,mBAAmB,YAAY,EAAE,mBAAmB,EAAE,iBAAiB;AAAA,IACvE,oBAAoB,YAAY,EAAE,oBAAoB,EAAE,kBAAkB;AAAA,IAC1E,kBAAkB,YAAY,EAAE,kBAAkB,EAAE,gBAAgB;AAAA,IACpE,aAAa,YAAY,EAAE,aAAa,EAAE,WAAW;AAAA,EACvD;AACF;","names":[]}
@@ -0,0 +1,26 @@
1
+ // src/core/llm/usage.ts
2
+ function estimateTokensForString(s) {
3
+ return s.length / 4;
4
+ }
5
+ function sumOptional(a, b) {
6
+ if (a === void 0 && b === void 0) {
7
+ return void 0;
8
+ }
9
+ return (a ?? 0) + (b ?? 0);
10
+ }
11
+ function mergeUsage(a, b) {
12
+ return {
13
+ input_tokens: a.input_tokens + b.input_tokens,
14
+ output_tokens: a.output_tokens + b.output_tokens,
15
+ total_tokens: a.total_tokens + b.total_tokens,
16
+ cache_read_tokens: sumOptional(a.cache_read_tokens, b.cache_read_tokens),
17
+ cache_write_tokens: sumOptional(a.cache_write_tokens, b.cache_write_tokens),
18
+ reasoning_tokens: sumOptional(a.reasoning_tokens, b.reasoning_tokens),
19
+ cost_in_usd: sumOptional(a.cost_in_usd, b.cost_in_usd)
20
+ };
21
+ }
22
+ export {
23
+ estimateTokensForString,
24
+ mergeUsage
25
+ };
26
+ //# sourceMappingURL=usage.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/core/llm/usage.ts"],"sourcesContent":["import type { CompletionUsage } from './LLMTypes';\n\nexport function estimateTokensForString(s: string): number {\n return s.length / 4;\n}\n\nfunction sumOptional(a: number | undefined, b: number | undefined): number | undefined {\n if (a === undefined && b === undefined) {\n return undefined;\n }\n return (a ?? 0) + (b ?? 0);\n}\n\nexport function mergeUsage(a: CompletionUsage, b: CompletionUsage): CompletionUsage {\n return {\n input_tokens: a.input_tokens + b.input_tokens,\n output_tokens: a.output_tokens + b.output_tokens,\n total_tokens: a.total_tokens + b.total_tokens,\n cache_read_tokens: sumOptional(a.cache_read_tokens, b.cache_read_tokens),\n cache_write_tokens: sumOptional(a.cache_write_tokens, b.cache_write_tokens),\n reasoning_tokens: sumOptional(a.reasoning_tokens, b.reasoning_tokens),\n cost_in_usd: sumOptional(a.cost_in_usd, b.cost_in_usd),\n };\n}\n"],"mappings":";AAEO,SAAS,wBAAwB,GAAmB;AACzD,SAAO,EAAE,SAAS;AACpB;AAEA,SAAS,YAAY,GAAuB,GAA2C;AACrF,MAAI,MAAM,UAAa,MAAM,QAAW;AACtC,WAAO;AAAA,EACT;AACA,UAAQ,KAAK,MAAM,KAAK;AAC1B;AAEO,SAAS,WAAW,GAAoB,GAAqC;AAClF,SAAO;AAAA,IACL,cAAc,EAAE,eAAe,EAAE;AAAA,IACjC,eAAe,EAAE,gBAAgB,EAAE;AAAA,IACnC,cAAc,EAAE,eAAe,EAAE;AAAA,IACjC,mBAAmB,YAAY,EAAE,mBAAmB,EAAE,iBAAiB;AAAA,IACvE,oBAAoB,YAAY,EAAE,oBAAoB,EAAE,kBAAkB;AAAA,IAC1E,kBAAkB,YAAY,EAAE,kBAAkB,EAAE,gBAAgB;AAAA,IACpE,aAAa,YAAY,EAAE,aAAa,EAAE,WAAW;AAAA,EACvD;AACF;","names":[]}
@@ -0,0 +1,10 @@
1
+ import type { CallToolRequest } from '@modelcontextprotocol/sdk/types.js';
2
+ import type { InternalToolCallInfo } from '../llm/LLMTypes';
3
+ import type { CallToolResponse } from './IMCPServer';
4
+ import { LocalToolMCP } from './LocalToolMCP';
5
+ export declare abstract class ClientSideTool extends LocalToolMCP {
6
+ constructor();
7
+ callTool(params: CallToolRequest['params']): Promise<CallToolResponse>;
8
+ toolCallInfo(params: CallToolRequest['params'], _resolveUnderlyingTool?: boolean): Promise<InternalToolCallInfo>;
9
+ }
10
+ //# sourceMappingURL=ClientSideTool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClientSideTool.d.ts","sourceRoot":"","sources":["../../../src/core/mcp/ClientSideTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAM9C,8BAAsB,cAAe,SAAQ,YAAY;IAGvD,cAEC;IAEc,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAMpF;IAEQ,YAAY,CACnB,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,EACjC,sBAAsB,CAAC,EAAE,OAAO,GAC/B,OAAO,CAAC,oBAAoB,CAAC,CAS/B;CACF"}