@truefoundry/trueforge-core 0.0.0 → 0.1.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 (575) 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 +66 -0
  213. package/dist/core/index.d.ts.map +1 -0
  214. package/dist/core/index.js +234 -0
  215. package/dist/core/index.js.map +1 -0
  216. package/dist/core/index.mjs +166 -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 +229 -0
  231. package/dist/core/llm/VercelAILLM.d.ts.map +1 -0
  232. package/dist/core/llm/VercelAILLM.js +1037 -0
  233. package/dist/core/llm/VercelAILLM.js.map +1 -0
  234. package/dist/core/llm/VercelAILLM.mjs +993 -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 +1067 -0
  341. package/dist/core/runtime/AgentThread.js.map +1 -0
  342. package/dist/core/runtime/AgentThread.mjs +1064 -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 +119 -0
  399. package/dist/core/sandbox/Sandbox.d.ts.map +1 -0
  400. package/dist/core/sandbox/Sandbox.js +556 -0
  401. package/dist/core/sandbox/Sandbox.js.map +1 -0
  402. package/dist/core/sandbox/Sandbox.mjs +520 -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/codeMode/CodeModeDispatcher.d.ts +29 -0
  411. package/dist/core/sandbox/codeMode/CodeModeDispatcher.d.ts.map +1 -0
  412. package/dist/core/sandbox/codeMode/CodeModeDispatcher.js +128 -0
  413. package/dist/core/sandbox/codeMode/CodeModeDispatcher.js.map +1 -0
  414. package/dist/core/sandbox/codeMode/CodeModeDispatcher.mjs +107 -0
  415. package/dist/core/sandbox/codeMode/CodeModeDispatcher.mjs.map +1 -0
  416. package/dist/core/sandbox/codeMode/CodeModeTransport.d.ts +21 -0
  417. package/dist/core/sandbox/codeMode/CodeModeTransport.d.ts.map +1 -0
  418. package/dist/core/sandbox/codeMode/CodeModeTransport.js +19 -0
  419. package/dist/core/sandbox/codeMode/CodeModeTransport.js.map +1 -0
  420. package/dist/core/sandbox/codeMode/CodeModeTransport.mjs +1 -0
  421. package/dist/core/sandbox/codeMode/CodeModeTransport.mjs.map +1 -0
  422. package/dist/core/sandbox/codeMode/nats/CodeModeNatsTransport.d.ts +34 -0
  423. package/dist/core/sandbox/codeMode/nats/CodeModeNatsTransport.d.ts.map +1 -0
  424. package/dist/core/sandbox/codeMode/nats/CodeModeNatsTransport.js +187 -0
  425. package/dist/core/sandbox/codeMode/nats/CodeModeNatsTransport.js.map +1 -0
  426. package/dist/core/sandbox/codeMode/nats/CodeModeNatsTransport.mjs +162 -0
  427. package/dist/core/sandbox/codeMode/nats/CodeModeNatsTransport.mjs.map +1 -0
  428. package/dist/core/sandbox/codeMode/types.d.ts +34 -0
  429. package/dist/core/sandbox/codeMode/types.d.ts.map +1 -0
  430. package/dist/core/sandbox/codeMode/types.js +59 -0
  431. package/dist/core/sandbox/codeMode/types.js.map +1 -0
  432. package/dist/core/sandbox/codeMode/types.mjs +32 -0
  433. package/dist/core/sandbox/codeMode/types.mjs.map +1 -0
  434. package/dist/core/sandbox/constants.d.ts +10 -0
  435. package/dist/core/sandbox/constants.d.ts.map +1 -0
  436. package/dist/core/sandbox/constants.js +37 -0
  437. package/dist/core/sandbox/constants.js.map +1 -0
  438. package/dist/core/sandbox/constants.mjs +10 -0
  439. package/dist/core/sandbox/constants.mjs.map +1 -0
  440. package/dist/core/sandbox/provider/DaytonaProvider.d.ts +81 -0
  441. package/dist/core/sandbox/provider/DaytonaProvider.d.ts.map +1 -0
  442. package/dist/core/sandbox/provider/DaytonaProvider.js +353 -0
  443. package/dist/core/sandbox/provider/DaytonaProvider.js.map +1 -0
  444. package/dist/core/sandbox/provider/DaytonaProvider.mjs +333 -0
  445. package/dist/core/sandbox/provider/DaytonaProvider.mjs.map +1 -0
  446. package/dist/core/sandbox/provider/Provider.d.ts +84 -0
  447. package/dist/core/sandbox/provider/Provider.d.ts.map +1 -0
  448. package/dist/core/sandbox/provider/Provider.js +43 -0
  449. package/dist/core/sandbox/provider/Provider.js.map +1 -0
  450. package/dist/core/sandbox/provider/Provider.mjs +17 -0
  451. package/dist/core/sandbox/provider/Provider.mjs.map +1 -0
  452. package/dist/core/sandbox/provider/TFYSandboxProvider.d.ts +42 -0
  453. package/dist/core/sandbox/provider/TFYSandboxProvider.d.ts.map +1 -0
  454. package/dist/core/sandbox/provider/TFYSandboxProvider.js +186 -0
  455. package/dist/core/sandbox/provider/TFYSandboxProvider.js.map +1 -0
  456. package/dist/core/sandbox/provider/TFYSandboxProvider.mjs +153 -0
  457. package/dist/core/sandbox/provider/TFYSandboxProvider.mjs.map +1 -0
  458. package/dist/core/sandbox/sandboxImage.d.ts +6 -0
  459. package/dist/core/sandbox/sandboxImage.d.ts.map +1 -0
  460. package/dist/core/sandbox/sandboxImage.js +31 -0
  461. package/dist/core/sandbox/sandboxImage.js.map +1 -0
  462. package/dist/core/sandbox/sandboxImage.mjs +6 -0
  463. package/dist/core/sandbox/sandboxImage.mjs.map +1 -0
  464. package/dist/core/sandbox/sandboxScripts.gen.d.ts +5 -0
  465. package/dist/core/sandbox/sandboxScripts.gen.d.ts.map +1 -0
  466. package/dist/core/sandbox/sandboxScripts.gen.js +343 -0
  467. package/dist/core/sandbox/sandboxScripts.gen.js.map +1 -0
  468. package/dist/core/sandbox/sandboxScripts.gen.mjs +318 -0
  469. package/dist/core/sandbox/sandboxScripts.gen.mjs.map +1 -0
  470. package/dist/core/sandbox/skills/ISkillMounter.d.ts +7 -0
  471. package/dist/core/sandbox/skills/ISkillMounter.d.ts.map +1 -0
  472. package/dist/core/sandbox/skills/ISkillMounter.js +19 -0
  473. package/dist/core/sandbox/skills/ISkillMounter.js.map +1 -0
  474. package/dist/core/sandbox/skills/ISkillMounter.mjs +1 -0
  475. package/dist/core/sandbox/skills/ISkillMounter.mjs.map +1 -0
  476. package/dist/core/sandbox/skills/SkillMounter.d.ts +17 -0
  477. package/dist/core/sandbox/skills/SkillMounter.d.ts.map +1 -0
  478. package/dist/core/sandbox/skills/SkillMounter.js +73 -0
  479. package/dist/core/sandbox/skills/SkillMounter.js.map +1 -0
  480. package/dist/core/sandbox/skills/SkillMounter.mjs +48 -0
  481. package/dist/core/sandbox/skills/SkillMounter.mjs.map +1 -0
  482. package/dist/core/sandbox/skills/constants.d.ts +10 -0
  483. package/dist/core/sandbox/skills/constants.d.ts.map +1 -0
  484. package/dist/core/sandbox/skills/constants.js +56 -0
  485. package/dist/core/sandbox/skills/constants.js.map +1 -0
  486. package/dist/core/sandbox/skills/constants.mjs +28 -0
  487. package/dist/core/sandbox/skills/constants.mjs.map +1 -0
  488. package/dist/core/sandbox/skills/index.d.ts +5 -0
  489. package/dist/core/sandbox/skills/index.d.ts.map +1 -0
  490. package/dist/core/sandbox/skills/index.js +40 -0
  491. package/dist/core/sandbox/skills/index.js.map +1 -0
  492. package/dist/core/sandbox/skills/index.mjs +11 -0
  493. package/dist/core/sandbox/skills/index.mjs.map +1 -0
  494. package/dist/core/tracing/AgentTracing.d.ts +38 -0
  495. package/dist/core/tracing/AgentTracing.d.ts.map +1 -0
  496. package/dist/core/tracing/AgentTracing.js +19 -0
  497. package/dist/core/tracing/AgentTracing.js.map +1 -0
  498. package/dist/core/tracing/AgentTracing.mjs +1 -0
  499. package/dist/core/tracing/AgentTracing.mjs.map +1 -0
  500. package/dist/core/tracing/NoopAgentTracing.d.ts +3 -0
  501. package/dist/core/tracing/NoopAgentTracing.d.ts.map +1 -0
  502. package/dist/core/tracing/NoopAgentTracing.js +79 -0
  503. package/dist/core/tracing/NoopAgentTracing.js.map +1 -0
  504. package/dist/core/tracing/NoopAgentTracing.mjs +54 -0
  505. package/dist/core/tracing/NoopAgentTracing.mjs.map +1 -0
  506. package/dist/core/util/abort.d.ts +2 -0
  507. package/dist/core/util/abort.d.ts.map +1 -0
  508. package/dist/core/util/abort.js +38 -0
  509. package/dist/core/util/abort.js.map +1 -0
  510. package/dist/core/util/abort.mjs +13 -0
  511. package/dist/core/util/abort.mjs.map +1 -0
  512. package/dist/core/util/errorLogFields.d.ts +11 -0
  513. package/dist/core/util/errorLogFields.d.ts.map +1 -0
  514. package/dist/core/util/errorLogFields.js +72 -0
  515. package/dist/core/util/errorLogFields.js.map +1 -0
  516. package/dist/core/util/errorLogFields.mjs +46 -0
  517. package/dist/core/util/errorLogFields.mjs.map +1 -0
  518. package/dist/core/util/promiseUtils.d.ts +7 -0
  519. package/dist/core/util/promiseUtils.d.ts.map +1 -0
  520. package/dist/core/util/promiseUtils.js +82 -0
  521. package/dist/core/util/promiseUtils.js.map +1 -0
  522. package/dist/core/util/promiseUtils.mjs +55 -0
  523. package/dist/core/util/promiseUtils.mjs.map +1 -0
  524. package/dist/index.d.ts +7 -0
  525. package/dist/index.d.ts.map +1 -0
  526. package/dist/index.js +44 -0
  527. package/dist/index.js.map +1 -0
  528. package/dist/index.mjs +8 -0
  529. package/dist/index.mjs.map +1 -0
  530. package/dist/package.json +3 -0
  531. package/dist/request-reply/client.d.ts +21 -0
  532. package/dist/request-reply/client.d.ts.map +1 -0
  533. package/dist/request-reply/client.js +92 -0
  534. package/dist/request-reply/client.js.map +1 -0
  535. package/dist/request-reply/client.mjs +67 -0
  536. package/dist/request-reply/client.mjs.map +1 -0
  537. package/dist/request-reply/errors.d.ts +23 -0
  538. package/dist/request-reply/errors.d.ts.map +1 -0
  539. package/dist/request-reply/errors.js +66 -0
  540. package/dist/request-reply/errors.js.map +1 -0
  541. package/dist/request-reply/errors.mjs +39 -0
  542. package/dist/request-reply/errors.mjs.map +1 -0
  543. package/dist/request-reply/executor.d.ts +70 -0
  544. package/dist/request-reply/executor.d.ts.map +1 -0
  545. package/dist/request-reply/executor.js +267 -0
  546. package/dist/request-reply/executor.js.map +1 -0
  547. package/dist/request-reply/executor.mjs +232 -0
  548. package/dist/request-reply/executor.mjs.map +1 -0
  549. package/dist/request-reply/index.d.ts +16 -0
  550. package/dist/request-reply/index.d.ts.map +1 -0
  551. package/dist/request-reply/index.js +47 -0
  552. package/dist/request-reply/index.js.map +1 -0
  553. package/dist/request-reply/index.mjs +16 -0
  554. package/dist/request-reply/index.mjs.map +1 -0
  555. package/dist/request-reply/router.d.ts +20 -0
  556. package/dist/request-reply/router.d.ts.map +1 -0
  557. package/dist/request-reply/router.js +55 -0
  558. package/dist/request-reply/router.js.map +1 -0
  559. package/dist/request-reply/router.mjs +30 -0
  560. package/dist/request-reply/router.mjs.map +1 -0
  561. package/dist/request-reply/types.d.ts +25 -0
  562. package/dist/request-reply/types.d.ts.map +1 -0
  563. package/dist/request-reply/types.js +54 -0
  564. package/dist/request-reply/types.js.map +1 -0
  565. package/dist/request-reply/types.mjs +28 -0
  566. package/dist/request-reply/types.mjs.map +1 -0
  567. package/dist/request-reply/utils.d.ts +9 -0
  568. package/dist/request-reply/utils.d.ts.map +1 -0
  569. package/dist/request-reply/utils.js +51 -0
  570. package/dist/request-reply/utils.js.map +1 -0
  571. package/dist/request-reply/utils.mjs +22 -0
  572. package/dist/request-reply/utils.mjs.map +1 -0
  573. package/package.json +127 -6
  574. package/README.md +0 -4
  575. package/index.js +0 -1
@@ -0,0 +1,170 @@
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/agent-session/schemas/agentSpec.ts
21
+ var agentSpec_exports = {};
22
+ __export(agentSpec_exports, {
23
+ AgentSpecSchema: () => AgentSpecSchema,
24
+ DEFAULT_AGENT_CONFIG_ITERATION_LIMIT: () => DEFAULT_AGENT_CONFIG_ITERATION_LIMIT,
25
+ RuntimeConfigSchema: () => RuntimeConfigSchema
26
+ });
27
+ module.exports = __toCommonJS(agentSpec_exports);
28
+ var import_zod_openapi = require("@hono/zod-openapi");
29
+ var import_LargeToolResponse = require("../../core/capabilities/builtins/LargeToolResponse.js");
30
+ var import_responseFormat = require("../../core/llm/responseFormat.js");
31
+ var import_toolSelectors = require("../../core/mcp/toolSelectors.js");
32
+ var DEFAULT_AGENT_CONFIG_ITERATION_LIMIT = 100;
33
+ var ModelParamsSchema = import_zod_openapi.z.object({
34
+ max_tokens: import_zod_openapi.z.number().optional().describe("Maximum tokens to generate in the model response."),
35
+ temperature: import_zod_openapi.z.number().optional().describe("Sampling temperature; higher values increase randomness."),
36
+ top_p: import_zod_openapi.z.number().optional().describe("Nucleus sampling probability mass."),
37
+ top_k: import_zod_openapi.z.number().optional().describe("Top-k sampling; keep only the k highest-probability tokens."),
38
+ parallel_tool_calls: import_zod_openapi.z.boolean().optional().describe("Whether the model may emit multiple tool calls in one response."),
39
+ reasoning_effort: import_zod_openapi.z.string().optional().describe("Provider-specific reasoning effort (e.g. low/medium/high).")
40
+ }).loose().describe(
41
+ "Model call parameters passed through to the provider. Known keys are documented; extra keys are allowed and forwarded as-is."
42
+ ).openapi("ModelParams");
43
+ var ModelSpecSchema = import_zod_openapi.z.object({
44
+ name: import_zod_openapi.z.string().min(1, "model.name must not be empty").describe("Model FQN: `provider/model`, e.g. `openai/gpt-5.2`."),
45
+ params: ModelParamsSchema.optional()
46
+ }).openapi("AgentSpecModel");
47
+ var LiteralToolSelectorSchema = import_zod_openapi.z.string().min(1).refine((s) => !s.startsWith("@"), { message: "Invalid tool selector tag" });
48
+ var EnableToolSelectorSchema = import_zod_openapi.z.union([import_zod_openapi.z.enum(import_toolSelectors.TOOLS_SELECTOR_TAGS), LiteralToolSelectorSchema]);
49
+ var RequireApprovalToolSelectorSchema = import_zod_openapi.z.union([
50
+ import_zod_openapi.z.enum(import_toolSelectors.REQUIRE_APPROVAL_TOOLS_SELECTOR_TAGS),
51
+ LiteralToolSelectorSchema
52
+ ]);
53
+ var MCPServerRequestSchema = import_zod_openapi.z.object({
54
+ name: import_zod_openapi.z.string().min(1, "mcp_servers[].name must not be empty").describe("Name of a configured MCP server (Settings \u2192 Connectors)."),
55
+ // Which tools to enable. Default: all tools.
56
+ enable_tools: import_zod_openapi.z.array(EnableToolSelectorSchema).default(import_toolSelectors.DEFAULT_ENABLE_TOOLS).describe('Tools exposed to the agent: `@all`, `@read-only`, or literal tool names. Default: `["@all"]`.'),
57
+ // Which tools to disable (subtracted from enable_tools). Default: none.
58
+ disable_tools: import_zod_openapi.z.array(EnableToolSelectorSchema).default(import_toolSelectors.DEFAULT_DISABLE_TOOLS).describe("Tools subtracted from the enabled set. Default: none."),
59
+ // When the server is not fully preloaded (`preload: false`), which tools to
60
+ // still preload into context. A non-empty list implies `preload: false`.
61
+ preload_tools: import_zod_openapi.z.array(EnableToolSelectorSchema).default(import_toolSelectors.DEFAULT_PRELOAD_TOOLS).describe(
62
+ "Tools loaded eagerly into context while the rest stay deferred. A non-empty list implies `preload: false`."
63
+ ),
64
+ // Tools that require human approval before execution. Default: @write + @destructive.
65
+ require_approval_for_tools: import_zod_openapi.z.array(RequireApprovalToolSelectorSchema).default(import_toolSelectors.DEFAULT_REQUIRE_APPROVAL_FOR_TOOLS).describe(
66
+ 'Tools that pause for human approval: `@all`, `@write`, `@destructive`, or literal names. Default: `["@write", "@destructive"]`.'
67
+ ),
68
+ // Whether this server's tools are preloaded into context. Default: false.
69
+ // When false, tools are discovered lazily and only `preload_tools` stay eager.
70
+ preload: import_zod_openapi.z.boolean().optional().default(false).describe("When true, load all tool schemas upfront. Default: false (deferred discovery).")
71
+ }).openapi("MCPServer");
72
+ var CompactionSettingsSchema = import_zod_openapi.z.object({
73
+ enabled: import_zod_openapi.z.boolean().default(true).describe("Summarize older history when context grows too large. Default: true."),
74
+ compaction_threshold_tokens: import_zod_openapi.z.number().int().positive().optional().describe("Context size in tokens that triggers compaction. Default: 50000.")
75
+ });
76
+ var LargeToolResponseSettingsSchema = import_zod_openapi.z.object({
77
+ enabled: import_zod_openapi.z.boolean().default(true).describe("Offload oversized tool responses to a sandbox file. Default: true."),
78
+ individual_tool_response_token_threshold: import_zod_openapi.z.number().int().positive().optional().default(import_LargeToolResponse.DEFAULT_INDIVIDUAL_TOOL_TOKEN_THRESHOLD).describe(
79
+ `Token threshold for a single tool response before offloading. Default: ${String(import_LargeToolResponse.DEFAULT_INDIVIDUAL_TOOL_TOKEN_THRESHOLD)}.`
80
+ ),
81
+ total_tool_response_token_threshold: import_zod_openapi.z.number().int().positive().optional().default(import_LargeToolResponse.DEFAULT_TOTAL_TOOL_TOKEN_THRESHOLD).describe(
82
+ `Combined tool-response token threshold before offloading. Default: ${String(import_LargeToolResponse.DEFAULT_TOTAL_TOOL_TOKEN_THRESHOLD)}.`
83
+ ),
84
+ preview_number_of_characters: import_zod_openapi.z.number().int().positive().optional().default(import_LargeToolResponse.DEFAULT_PREVIEW_NUMBER_OF_CHARACTERS).describe(
85
+ `Characters of preview kept in context after offloading. Default: ${String(import_LargeToolResponse.DEFAULT_PREVIEW_NUMBER_OF_CHARACTERS)}.`
86
+ )
87
+ });
88
+ var BASIC_AUTH_USERNAME_PATTERN = /^\S+$/;
89
+ function hostContainsWildcard(host) {
90
+ return host.split(".").some((segment) => segment.includes("*"));
91
+ }
92
+ var SandboxAuthInjectMatchSchema = import_zod_openapi.z.object({
93
+ hosts: import_zod_openapi.z.array(
94
+ import_zod_openapi.z.string().min(1).refine((host) => !hostContainsWildcard(host), {
95
+ message: "Hosts must be exact hostnames without wildcards"
96
+ }).describe("Exact hostname to match (no wildcards).")
97
+ ).min(1).describe("Hostnames that receive injected credentials.")
98
+ });
99
+ var SandboxBasicAuthDataSchema = import_zod_openapi.z.object({
100
+ type: import_zod_openapi.z.literal("basic").describe("Basic auth credential type."),
101
+ username: import_zod_openapi.z.string().regex(BASIC_AUTH_USERNAME_PATTERN, "Username must be non-empty and contain no whitespace").describe("Basic-auth username (no whitespace)."),
102
+ password: import_zod_openapi.z.string().min(1).describe("Basic-auth password.")
103
+ });
104
+ var SandboxGitAuthInjectSchema = import_zod_openapi.z.object({
105
+ type: import_zod_openapi.z.literal("git").describe("Inject credentials for git HTTPS clones."),
106
+ match: SandboxAuthInjectMatchSchema,
107
+ auth_data: SandboxBasicAuthDataSchema
108
+ });
109
+ var SandboxNetworkPolicySchema = import_zod_openapi.z.object({
110
+ auth_inject: import_zod_openapi.z.array(SandboxGitAuthInjectSchema).max(1, "At most one auth inject rule is supported (type: git)").optional().describe("Up to one rule injecting git basic-auth credentials for exact hosts.")
111
+ }).openapi("SandboxNetworkPolicy");
112
+ var SandboxConfigSchema = import_zod_openapi.z.object({
113
+ enabled: import_zod_openapi.z.boolean().describe("Give the agent a sandbox. Required for skills and Code Mode."),
114
+ file_downloads: import_zod_openapi.z.boolean().default(true).describe("Allow downloading agent-produced files via the turn download endpoint. Default: true."),
115
+ network_policy: SandboxNetworkPolicySchema.optional()
116
+ }).openapi("SandboxConfig");
117
+ var DynamicSubAgentsConfigSchema = import_zod_openapi.z.object({
118
+ enabled: import_zod_openapi.z.boolean().default(true).describe("Allow the agent to spawn dynamic subagents. Default: true.")
119
+ }).openapi("DynamicSubAgentsConfig");
120
+ var LargeToolResponseConfigSchema = LargeToolResponseSettingsSchema.pick({
121
+ enabled: true
122
+ }).openapi("LargeToolResponseConfig");
123
+ var ContextManagementConfigSchema = import_zod_openapi.z.object({
124
+ compaction: CompactionSettingsSchema.default(() => ({ enabled: true })),
125
+ large_tool_response: LargeToolResponseConfigSchema.default(() => ({ enabled: true }))
126
+ }).openapi("ContextManagementConfig");
127
+ var GenerativeUIConfigSchema = import_zod_openapi.z.object({
128
+ enabled: import_zod_openapi.z.boolean().default(true).describe("Enable Generative UI (OpenUI blocks). Default: true.")
129
+ }).openapi("GenerativeUIConfig");
130
+ var AskUserQuestionsConfigSchema = import_zod_openapi.z.object({
131
+ enabled: import_zod_openapi.z.boolean().default(true).describe("Enable the `ask_user_question` tool. Default: true.")
132
+ }).openapi("AskUserQuestionsConfig");
133
+ var RuntimeConfigSchema = import_zod_openapi.z.object({
134
+ iteration_limit: import_zod_openapi.z.number().int().positive().max(1024).default(DEFAULT_AGENT_CONFIG_ITERATION_LIMIT).describe(
135
+ `Max agent-loop iterations per turn (1\u20131024). Default: ${String(DEFAULT_AGENT_CONFIG_ITERATION_LIMIT)}.`
136
+ ),
137
+ sandbox: SandboxConfigSchema.default(() => ({ enabled: false, file_downloads: true })),
138
+ dynamic_sub_agents: DynamicSubAgentsConfigSchema.default(() => ({ enabled: true })),
139
+ context_management: ContextManagementConfigSchema.default(() => ({
140
+ compaction: { enabled: true },
141
+ large_tool_response: { enabled: true }
142
+ })),
143
+ generative_ui: GenerativeUIConfigSchema.default(() => ({ enabled: true })),
144
+ ask_user_questions: AskUserQuestionsConfigSchema.default(() => ({ enabled: true }))
145
+ }).openapi("RuntimeConfig");
146
+ var SKILL_NAME_REGEX = /^[A-Za-z0-9._-]+$/;
147
+ var SkillNameRefSchema = import_zod_openapi.z.object({
148
+ name: import_zod_openapi.z.string().trim().min(1).max(64).regex(SKILL_NAME_REGEX, 'Name may only contain letters, numbers, ".", "_", and "-"').refine((v) => v !== "." && v !== "..", 'Name must not be "." or ".."').refine((v) => !v.startsWith(".tfy-"), 'Name must not use the reserved ".tfy-" prefix').describe("Name of a configured skill (also used as the skill directory name in the sandbox).")
149
+ }).strict().openapi("SkillNameRef");
150
+ var AgentSpecUserMessageSchema = import_zod_openapi.z.object({
151
+ type: import_zod_openapi.z.literal("user.message").describe("Seed message type."),
152
+ content: import_zod_openapi.z.string().min(1, "User message content must not be empty").refine((content) => content.trim().length > 0, "User message content must not be empty").describe("Seed user message content injected at the start of every session.")
153
+ }).openapi("AgentSpecUserMessage");
154
+ var AgentSpecSchema = import_zod_openapi.z.object({
155
+ model: ModelSpecSchema,
156
+ instructions: import_zod_openapi.z.string().optional().describe("Optional system prompt \u2014 the agent's role, behavior, and constraints."),
157
+ messages: import_zod_openapi.z.array(AgentSpecUserMessageSchema).optional().describe("Optional seed user messages injected at the start of every session."),
158
+ mcp_servers: import_zod_openapi.z.array(MCPServerRequestSchema).optional().describe("Optional MCP servers attached by configured name."),
159
+ response_format: import_responseFormat.ResponseFormatSchema.optional(),
160
+ skills: import_zod_openapi.z.array(SkillNameRefSchema).optional().describe("Optional name-only skill references. Requires `config.sandbox.enabled: true`."),
161
+ // Factory must parse so nested RuntimeConfig field defaults materialize.
162
+ config: RuntimeConfigSchema.default(() => RuntimeConfigSchema.parse({}))
163
+ }).describe("Complete agent definition used inline on a session or saved as a named agent.").openapi("AgentSpec");
164
+ // Annotate the CommonJS export names for ESM import in node:
165
+ 0 && (module.exports = {
166
+ AgentSpecSchema,
167
+ DEFAULT_AGENT_CONFIG_ITERATION_LIMIT,
168
+ RuntimeConfigSchema
169
+ });
170
+ //# sourceMappingURL=agentSpec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/agent-session/schemas/agentSpec.ts"],"sourcesContent":["/** DB AgentSpec wire schema — FQN model names and name-only skill refs. */\nimport { z } from '@hono/zod-openapi';\nimport {\n DEFAULT_INDIVIDUAL_TOOL_TOKEN_THRESHOLD,\n DEFAULT_PREVIEW_NUMBER_OF_CHARACTERS,\n DEFAULT_TOTAL_TOOL_TOKEN_THRESHOLD,\n} from '../../core/capabilities/builtins/LargeToolResponse';\nimport { ResponseFormatSchema } from '../../core/llm/responseFormat';\nimport {\n DEFAULT_DISABLE_TOOLS,\n DEFAULT_ENABLE_TOOLS,\n DEFAULT_PRELOAD_TOOLS,\n DEFAULT_REQUIRE_APPROVAL_FOR_TOOLS,\n REQUIRE_APPROVAL_TOOLS_SELECTOR_TAGS,\n TOOLS_SELECTOR_TAGS,\n} from '../../core/mcp/toolSelectors';\n\nexport const DEFAULT_AGENT_CONFIG_ITERATION_LIMIT = 100;\n\n// --- Model ---\n\nconst ModelParamsSchema = z\n .object({\n max_tokens: z.number().optional().describe('Maximum tokens to generate in the model response.'),\n temperature: z.number().optional().describe('Sampling temperature; higher values increase randomness.'),\n top_p: z.number().optional().describe('Nucleus sampling probability mass.'),\n top_k: z.number().optional().describe('Top-k sampling; keep only the k highest-probability tokens.'),\n parallel_tool_calls: z\n .boolean()\n .optional()\n .describe('Whether the model may emit multiple tool calls in one response.'),\n reasoning_effort: z.string().optional().describe('Provider-specific reasoning effort (e.g. low/medium/high).'),\n })\n .loose() // this ensures extra model params are allowed\n .describe(\n 'Model call parameters passed through to the provider. Known keys are documented; extra keys are allowed and forwarded as-is.',\n )\n .openapi('ModelParams');\n\n// Opaque runtime identifier; the hosting server owns naming conventions (e.g. provider/model).\nconst ModelSpecSchema = z\n .object({\n name: z\n .string()\n .min(1, 'model.name must not be empty')\n .describe('Model FQN: `provider/model`, e.g. `openai/gpt-5.2`.'),\n params: ModelParamsSchema.optional(),\n })\n .openapi('AgentSpecModel');\n\n// --- MCP servers ---\n\n// Literal tool name (not a tag).\nconst LiteralToolSelectorSchema = z\n .string()\n .min(1)\n .refine(s => !s.startsWith('@'), { message: 'Invalid tool selector tag' });\n\n// enable_tools / disable_tools / preload_tools: @all, @read-only, or a literal name.\nconst EnableToolSelectorSchema = z.union([z.enum(TOOLS_SELECTOR_TAGS), LiteralToolSelectorSchema]);\n\n// require_approval_for_tools: @all, @write, @destructive, or a literal name.\nconst RequireApprovalToolSelectorSchema = z.union([\n z.enum(REQUIRE_APPROVAL_TOOLS_SELECTOR_TAGS),\n LiteralToolSelectorSchema,\n]);\n\n// `preload` defaults to false; use `preload_tools` to eagerly load specific tools when not fully preloading.\n// Auth headers are not part of the spec — they come from the configured MCP server store.\nconst MCPServerRequestSchema = z\n .object({\n name: z\n .string()\n .min(1, 'mcp_servers[].name must not be empty')\n .describe('Name of a configured MCP server (Settings → Connectors).'),\n // Which tools to enable. Default: all tools.\n enable_tools: z\n .array(EnableToolSelectorSchema)\n .default(DEFAULT_ENABLE_TOOLS)\n .describe('Tools exposed to the agent: `@all`, `@read-only`, or literal tool names. Default: `[\"@all\"]`.'),\n // Which tools to disable (subtracted from enable_tools). Default: none.\n disable_tools: z\n .array(EnableToolSelectorSchema)\n .default(DEFAULT_DISABLE_TOOLS)\n .describe('Tools subtracted from the enabled set. Default: none.'),\n // When the server is not fully preloaded (`preload: false`), which tools to\n // still preload into context. A non-empty list implies `preload: false`.\n preload_tools: z\n .array(EnableToolSelectorSchema)\n .default(DEFAULT_PRELOAD_TOOLS)\n .describe(\n 'Tools loaded eagerly into context while the rest stay deferred. A non-empty list implies `preload: false`.',\n ),\n // Tools that require human approval before execution. Default: @write + @destructive.\n require_approval_for_tools: z\n .array(RequireApprovalToolSelectorSchema)\n .default(DEFAULT_REQUIRE_APPROVAL_FOR_TOOLS)\n .describe(\n 'Tools that pause for human approval: `@all`, `@write`, `@destructive`, or literal names. Default: `[\"@write\", \"@destructive\"]`.',\n ),\n // Whether this server's tools are preloaded into context. Default: false.\n // When false, tools are discovered lazily and only `preload_tools` stay eager.\n preload: z\n .boolean()\n .optional()\n .default(false)\n .describe('When true, load all tool schemas upfront. Default: false (deferred discovery).'),\n })\n .openapi('MCPServer');\n\n// --- Runtime config ---\n\nconst CompactionSettingsSchema = z.object({\n enabled: z.boolean().default(true).describe('Summarize older history when context grows too large. Default: true.'),\n compaction_threshold_tokens: z\n .number()\n .int()\n .positive()\n .optional()\n .describe('Context size in tokens that triggers compaction. Default: 50000.'),\n});\n\nconst LargeToolResponseSettingsSchema = z.object({\n enabled: z.boolean().default(true).describe('Offload oversized tool responses to a sandbox file. Default: true.'),\n individual_tool_response_token_threshold: z\n .number()\n .int()\n .positive()\n .optional()\n .default(DEFAULT_INDIVIDUAL_TOOL_TOKEN_THRESHOLD)\n .describe(\n `Token threshold for a single tool response before offloading. Default: ${String(DEFAULT_INDIVIDUAL_TOOL_TOKEN_THRESHOLD)}.`,\n ),\n total_tool_response_token_threshold: z\n .number()\n .int()\n .positive()\n .optional()\n .default(DEFAULT_TOTAL_TOOL_TOKEN_THRESHOLD)\n .describe(\n `Combined tool-response token threshold before offloading. Default: ${String(DEFAULT_TOTAL_TOOL_TOKEN_THRESHOLD)}.`,\n ),\n preview_number_of_characters: z\n .number()\n .int()\n .positive()\n .optional()\n .default(DEFAULT_PREVIEW_NUMBER_OF_CHARACTERS)\n .describe(\n `Characters of preview kept in context after offloading. Default: ${String(DEFAULT_PREVIEW_NUMBER_OF_CHARACTERS)}.`,\n ),\n});\n\nconst BASIC_AUTH_USERNAME_PATTERN = /^\\S+$/;\n\n/** True when any hostname segment contains `*` (e.g. `*.github.com`). */\nfunction hostContainsWildcard(host: string): boolean {\n return host.split('.').some(segment => segment.includes('*'));\n}\n\nconst SandboxAuthInjectMatchSchema = z.object({\n hosts: z\n .array(\n z\n .string()\n .min(1)\n .refine(host => !hostContainsWildcard(host), {\n message: 'Hosts must be exact hostnames without wildcards',\n })\n .describe('Exact hostname to match (no wildcards).'),\n )\n .min(1)\n .describe('Hostnames that receive injected credentials.'),\n});\n\nconst SandboxBasicAuthDataSchema = z.object({\n type: z.literal('basic').describe('Basic auth credential type.'),\n username: z\n .string()\n .regex(BASIC_AUTH_USERNAME_PATTERN, 'Username must be non-empty and contain no whitespace')\n .describe('Basic-auth username (no whitespace).'),\n password: z.string().min(1).describe('Basic-auth password.'),\n});\n\nconst SandboxGitAuthInjectSchema = z.object({\n type: z.literal('git').describe('Inject credentials for git HTTPS clones.'),\n match: SandboxAuthInjectMatchSchema,\n auth_data: SandboxBasicAuthDataSchema,\n});\n\nconst SandboxNetworkPolicySchema = z\n .object({\n auth_inject: z\n .array(SandboxGitAuthInjectSchema)\n .max(1, 'At most one auth inject rule is supported (type: git)')\n .optional()\n .describe('Up to one rule injecting git basic-auth credentials for exact hosts.'),\n })\n .openapi('SandboxNetworkPolicy');\n\nconst SandboxConfigSchema = z\n .object({\n enabled: z.boolean().describe('Give the agent a sandbox. Required for skills and Code Mode.'),\n file_downloads: z\n .boolean()\n .default(true)\n .describe('Allow downloading agent-produced files via the turn download endpoint. Default: true.'),\n network_policy: SandboxNetworkPolicySchema.optional(),\n })\n .openapi('SandboxConfig');\n\nconst DynamicSubAgentsConfigSchema = z\n .object({\n enabled: z.boolean().default(true).describe('Allow the agent to spawn dynamic subagents. Default: true.'),\n })\n .openapi('DynamicSubAgentsConfig');\n\nconst LargeToolResponseConfigSchema = LargeToolResponseSettingsSchema.pick({\n enabled: true,\n}).openapi('LargeToolResponseConfig');\n\nconst ContextManagementConfigSchema = z\n .object({\n compaction: CompactionSettingsSchema.default(() => ({ enabled: true })),\n large_tool_response: LargeToolResponseConfigSchema.default(() => ({ enabled: true })),\n })\n .openapi('ContextManagementConfig');\n\nconst GenerativeUIConfigSchema = z\n .object({\n enabled: z.boolean().default(true).describe('Enable Generative UI (OpenUI blocks). Default: true.'),\n })\n .openapi('GenerativeUIConfig');\n\nconst AskUserQuestionsConfigSchema = z\n .object({\n enabled: z.boolean().default(true).describe('Enable the `ask_user_question` tool. Default: true.'),\n })\n .openapi('AskUserQuestionsConfig');\n\nexport const RuntimeConfigSchema = z\n .object({\n iteration_limit: z\n .number()\n .int()\n .positive()\n .max(1024)\n .default(DEFAULT_AGENT_CONFIG_ITERATION_LIMIT)\n .describe(\n `Max agent-loop iterations per turn (1–1024). Default: ${String(DEFAULT_AGENT_CONFIG_ITERATION_LIMIT)}.`,\n ),\n sandbox: SandboxConfigSchema.default(() => ({ enabled: false, file_downloads: true })),\n dynamic_sub_agents: DynamicSubAgentsConfigSchema.default(() => ({ enabled: true })),\n context_management: ContextManagementConfigSchema.default(() => ({\n compaction: { enabled: true },\n large_tool_response: { enabled: true },\n })),\n generative_ui: GenerativeUIConfigSchema.default(() => ({ enabled: true })),\n ask_user_questions: AskUserQuestionsConfigSchema.default(() => ({ enabled: true })),\n })\n .openapi('RuntimeConfig');\n\n// --- Skills ---\n// Name-only refs; DB sessions expand mount fields from ISkillStore at turn time.\n\nconst SKILL_NAME_REGEX = /^[A-Za-z0-9._-]+$/;\n\n/** Name-only skill selection; mount fields come from the skill store. */\nconst SkillNameRefSchema = z\n .object({\n name: z\n .string()\n .trim()\n .min(1)\n .max(64)\n .regex(SKILL_NAME_REGEX, 'Name may only contain letters, numbers, \".\", \"_\", and \"-\"')\n .refine(v => v !== '.' && v !== '..', 'Name must not be \".\" or \"..\"')\n .refine(v => !v.startsWith('.tfy-'), 'Name must not use the reserved \".tfy-\" prefix')\n .describe('Name of a configured skill (also used as the skill directory name in the sandbox).'),\n })\n .strict()\n .openapi('SkillNameRef');\n\n// --- Response format / messages ---\n\nconst AgentSpecUserMessageSchema = z\n .object({\n type: z.literal('user.message').describe('Seed message type.'),\n content: z\n .string()\n .min(1, 'User message content must not be empty')\n .refine(content => content.trim().length > 0, 'User message content must not be empty')\n .describe('Seed user message content injected at the start of every session.'),\n })\n .openapi('AgentSpecUserMessage');\n\n// --- Agent spec ---\n\nexport const AgentSpecSchema = z\n .object({\n model: ModelSpecSchema,\n instructions: z\n .string()\n .optional()\n .describe(\"Optional system prompt — the agent's role, behavior, and constraints.\"),\n messages: z\n .array(AgentSpecUserMessageSchema)\n .optional()\n .describe('Optional seed user messages injected at the start of every session.'),\n mcp_servers: z\n .array(MCPServerRequestSchema)\n .optional()\n .describe('Optional MCP servers attached by configured name.'),\n response_format: ResponseFormatSchema.optional(),\n skills: z\n .array(SkillNameRefSchema)\n .optional()\n .describe('Optional name-only skill references. Requires `config.sandbox.enabled: true`.'),\n // Factory must parse so nested RuntimeConfig field defaults materialize.\n config: RuntimeConfigSchema.default(() => RuntimeConfigSchema.parse({})),\n })\n .describe('Complete agent definition used inline on a session or saved as a named agent.')\n .openapi('AgentSpec');\n\nexport type AgentSpec = z.infer<typeof AgentSpecSchema>;\nexport type SkillNameRef = z.infer<typeof SkillNameRefSchema>;\n"],"mappings":"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","names":[]}
@@ -0,0 +1,154 @@
1
+ // src/agent-session/schemas/agentSpec.ts
2
+ import { z } from "@hono/zod-openapi";
3
+ import {
4
+ DEFAULT_INDIVIDUAL_TOOL_TOKEN_THRESHOLD,
5
+ DEFAULT_PREVIEW_NUMBER_OF_CHARACTERS,
6
+ DEFAULT_TOTAL_TOOL_TOKEN_THRESHOLD
7
+ } from "../../core/capabilities/builtins/LargeToolResponse.mjs";
8
+ import { ResponseFormatSchema } from "../../core/llm/responseFormat.mjs";
9
+ import {
10
+ DEFAULT_DISABLE_TOOLS,
11
+ DEFAULT_ENABLE_TOOLS,
12
+ DEFAULT_PRELOAD_TOOLS,
13
+ DEFAULT_REQUIRE_APPROVAL_FOR_TOOLS,
14
+ REQUIRE_APPROVAL_TOOLS_SELECTOR_TAGS,
15
+ TOOLS_SELECTOR_TAGS
16
+ } from "../../core/mcp/toolSelectors.mjs";
17
+ var DEFAULT_AGENT_CONFIG_ITERATION_LIMIT = 100;
18
+ var ModelParamsSchema = z.object({
19
+ max_tokens: z.number().optional().describe("Maximum tokens to generate in the model response."),
20
+ temperature: z.number().optional().describe("Sampling temperature; higher values increase randomness."),
21
+ top_p: z.number().optional().describe("Nucleus sampling probability mass."),
22
+ top_k: z.number().optional().describe("Top-k sampling; keep only the k highest-probability tokens."),
23
+ parallel_tool_calls: z.boolean().optional().describe("Whether the model may emit multiple tool calls in one response."),
24
+ reasoning_effort: z.string().optional().describe("Provider-specific reasoning effort (e.g. low/medium/high).")
25
+ }).loose().describe(
26
+ "Model call parameters passed through to the provider. Known keys are documented; extra keys are allowed and forwarded as-is."
27
+ ).openapi("ModelParams");
28
+ var ModelSpecSchema = z.object({
29
+ name: z.string().min(1, "model.name must not be empty").describe("Model FQN: `provider/model`, e.g. `openai/gpt-5.2`."),
30
+ params: ModelParamsSchema.optional()
31
+ }).openapi("AgentSpecModel");
32
+ var LiteralToolSelectorSchema = z.string().min(1).refine((s) => !s.startsWith("@"), { message: "Invalid tool selector tag" });
33
+ var EnableToolSelectorSchema = z.union([z.enum(TOOLS_SELECTOR_TAGS), LiteralToolSelectorSchema]);
34
+ var RequireApprovalToolSelectorSchema = z.union([
35
+ z.enum(REQUIRE_APPROVAL_TOOLS_SELECTOR_TAGS),
36
+ LiteralToolSelectorSchema
37
+ ]);
38
+ var MCPServerRequestSchema = z.object({
39
+ name: z.string().min(1, "mcp_servers[].name must not be empty").describe("Name of a configured MCP server (Settings \u2192 Connectors)."),
40
+ // Which tools to enable. Default: all tools.
41
+ enable_tools: z.array(EnableToolSelectorSchema).default(DEFAULT_ENABLE_TOOLS).describe('Tools exposed to the agent: `@all`, `@read-only`, or literal tool names. Default: `["@all"]`.'),
42
+ // Which tools to disable (subtracted from enable_tools). Default: none.
43
+ disable_tools: z.array(EnableToolSelectorSchema).default(DEFAULT_DISABLE_TOOLS).describe("Tools subtracted from the enabled set. Default: none."),
44
+ // When the server is not fully preloaded (`preload: false`), which tools to
45
+ // still preload into context. A non-empty list implies `preload: false`.
46
+ preload_tools: z.array(EnableToolSelectorSchema).default(DEFAULT_PRELOAD_TOOLS).describe(
47
+ "Tools loaded eagerly into context while the rest stay deferred. A non-empty list implies `preload: false`."
48
+ ),
49
+ // Tools that require human approval before execution. Default: @write + @destructive.
50
+ require_approval_for_tools: z.array(RequireApprovalToolSelectorSchema).default(DEFAULT_REQUIRE_APPROVAL_FOR_TOOLS).describe(
51
+ 'Tools that pause for human approval: `@all`, `@write`, `@destructive`, or literal names. Default: `["@write", "@destructive"]`.'
52
+ ),
53
+ // Whether this server's tools are preloaded into context. Default: false.
54
+ // When false, tools are discovered lazily and only `preload_tools` stay eager.
55
+ preload: z.boolean().optional().default(false).describe("When true, load all tool schemas upfront. Default: false (deferred discovery).")
56
+ }).openapi("MCPServer");
57
+ var CompactionSettingsSchema = z.object({
58
+ enabled: z.boolean().default(true).describe("Summarize older history when context grows too large. Default: true."),
59
+ compaction_threshold_tokens: z.number().int().positive().optional().describe("Context size in tokens that triggers compaction. Default: 50000.")
60
+ });
61
+ var LargeToolResponseSettingsSchema = z.object({
62
+ enabled: z.boolean().default(true).describe("Offload oversized tool responses to a sandbox file. Default: true."),
63
+ individual_tool_response_token_threshold: z.number().int().positive().optional().default(DEFAULT_INDIVIDUAL_TOOL_TOKEN_THRESHOLD).describe(
64
+ `Token threshold for a single tool response before offloading. Default: ${String(DEFAULT_INDIVIDUAL_TOOL_TOKEN_THRESHOLD)}.`
65
+ ),
66
+ total_tool_response_token_threshold: z.number().int().positive().optional().default(DEFAULT_TOTAL_TOOL_TOKEN_THRESHOLD).describe(
67
+ `Combined tool-response token threshold before offloading. Default: ${String(DEFAULT_TOTAL_TOOL_TOKEN_THRESHOLD)}.`
68
+ ),
69
+ preview_number_of_characters: z.number().int().positive().optional().default(DEFAULT_PREVIEW_NUMBER_OF_CHARACTERS).describe(
70
+ `Characters of preview kept in context after offloading. Default: ${String(DEFAULT_PREVIEW_NUMBER_OF_CHARACTERS)}.`
71
+ )
72
+ });
73
+ var BASIC_AUTH_USERNAME_PATTERN = /^\S+$/;
74
+ function hostContainsWildcard(host) {
75
+ return host.split(".").some((segment) => segment.includes("*"));
76
+ }
77
+ var SandboxAuthInjectMatchSchema = z.object({
78
+ hosts: z.array(
79
+ z.string().min(1).refine((host) => !hostContainsWildcard(host), {
80
+ message: "Hosts must be exact hostnames without wildcards"
81
+ }).describe("Exact hostname to match (no wildcards).")
82
+ ).min(1).describe("Hostnames that receive injected credentials.")
83
+ });
84
+ var SandboxBasicAuthDataSchema = z.object({
85
+ type: z.literal("basic").describe("Basic auth credential type."),
86
+ username: z.string().regex(BASIC_AUTH_USERNAME_PATTERN, "Username must be non-empty and contain no whitespace").describe("Basic-auth username (no whitespace)."),
87
+ password: z.string().min(1).describe("Basic-auth password.")
88
+ });
89
+ var SandboxGitAuthInjectSchema = z.object({
90
+ type: z.literal("git").describe("Inject credentials for git HTTPS clones."),
91
+ match: SandboxAuthInjectMatchSchema,
92
+ auth_data: SandboxBasicAuthDataSchema
93
+ });
94
+ var SandboxNetworkPolicySchema = z.object({
95
+ auth_inject: z.array(SandboxGitAuthInjectSchema).max(1, "At most one auth inject rule is supported (type: git)").optional().describe("Up to one rule injecting git basic-auth credentials for exact hosts.")
96
+ }).openapi("SandboxNetworkPolicy");
97
+ var SandboxConfigSchema = z.object({
98
+ enabled: z.boolean().describe("Give the agent a sandbox. Required for skills and Code Mode."),
99
+ file_downloads: z.boolean().default(true).describe("Allow downloading agent-produced files via the turn download endpoint. Default: true."),
100
+ network_policy: SandboxNetworkPolicySchema.optional()
101
+ }).openapi("SandboxConfig");
102
+ var DynamicSubAgentsConfigSchema = z.object({
103
+ enabled: z.boolean().default(true).describe("Allow the agent to spawn dynamic subagents. Default: true.")
104
+ }).openapi("DynamicSubAgentsConfig");
105
+ var LargeToolResponseConfigSchema = LargeToolResponseSettingsSchema.pick({
106
+ enabled: true
107
+ }).openapi("LargeToolResponseConfig");
108
+ var ContextManagementConfigSchema = z.object({
109
+ compaction: CompactionSettingsSchema.default(() => ({ enabled: true })),
110
+ large_tool_response: LargeToolResponseConfigSchema.default(() => ({ enabled: true }))
111
+ }).openapi("ContextManagementConfig");
112
+ var GenerativeUIConfigSchema = z.object({
113
+ enabled: z.boolean().default(true).describe("Enable Generative UI (OpenUI blocks). Default: true.")
114
+ }).openapi("GenerativeUIConfig");
115
+ var AskUserQuestionsConfigSchema = z.object({
116
+ enabled: z.boolean().default(true).describe("Enable the `ask_user_question` tool. Default: true.")
117
+ }).openapi("AskUserQuestionsConfig");
118
+ var RuntimeConfigSchema = z.object({
119
+ iteration_limit: z.number().int().positive().max(1024).default(DEFAULT_AGENT_CONFIG_ITERATION_LIMIT).describe(
120
+ `Max agent-loop iterations per turn (1\u20131024). Default: ${String(DEFAULT_AGENT_CONFIG_ITERATION_LIMIT)}.`
121
+ ),
122
+ sandbox: SandboxConfigSchema.default(() => ({ enabled: false, file_downloads: true })),
123
+ dynamic_sub_agents: DynamicSubAgentsConfigSchema.default(() => ({ enabled: true })),
124
+ context_management: ContextManagementConfigSchema.default(() => ({
125
+ compaction: { enabled: true },
126
+ large_tool_response: { enabled: true }
127
+ })),
128
+ generative_ui: GenerativeUIConfigSchema.default(() => ({ enabled: true })),
129
+ ask_user_questions: AskUserQuestionsConfigSchema.default(() => ({ enabled: true }))
130
+ }).openapi("RuntimeConfig");
131
+ var SKILL_NAME_REGEX = /^[A-Za-z0-9._-]+$/;
132
+ var SkillNameRefSchema = z.object({
133
+ name: z.string().trim().min(1).max(64).regex(SKILL_NAME_REGEX, 'Name may only contain letters, numbers, ".", "_", and "-"').refine((v) => v !== "." && v !== "..", 'Name must not be "." or ".."').refine((v) => !v.startsWith(".tfy-"), 'Name must not use the reserved ".tfy-" prefix').describe("Name of a configured skill (also used as the skill directory name in the sandbox).")
134
+ }).strict().openapi("SkillNameRef");
135
+ var AgentSpecUserMessageSchema = z.object({
136
+ type: z.literal("user.message").describe("Seed message type."),
137
+ content: z.string().min(1, "User message content must not be empty").refine((content) => content.trim().length > 0, "User message content must not be empty").describe("Seed user message content injected at the start of every session.")
138
+ }).openapi("AgentSpecUserMessage");
139
+ var AgentSpecSchema = z.object({
140
+ model: ModelSpecSchema,
141
+ instructions: z.string().optional().describe("Optional system prompt \u2014 the agent's role, behavior, and constraints."),
142
+ messages: z.array(AgentSpecUserMessageSchema).optional().describe("Optional seed user messages injected at the start of every session."),
143
+ mcp_servers: z.array(MCPServerRequestSchema).optional().describe("Optional MCP servers attached by configured name."),
144
+ response_format: ResponseFormatSchema.optional(),
145
+ skills: z.array(SkillNameRefSchema).optional().describe("Optional name-only skill references. Requires `config.sandbox.enabled: true`."),
146
+ // Factory must parse so nested RuntimeConfig field defaults materialize.
147
+ config: RuntimeConfigSchema.default(() => RuntimeConfigSchema.parse({}))
148
+ }).describe("Complete agent definition used inline on a session or saved as a named agent.").openapi("AgentSpec");
149
+ export {
150
+ AgentSpecSchema,
151
+ DEFAULT_AGENT_CONFIG_ITERATION_LIMIT,
152
+ RuntimeConfigSchema
153
+ };
154
+ //# sourceMappingURL=agentSpec.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/agent-session/schemas/agentSpec.ts"],"sourcesContent":["/** DB AgentSpec wire schema — FQN model names and name-only skill refs. */\nimport { z } from '@hono/zod-openapi';\nimport {\n DEFAULT_INDIVIDUAL_TOOL_TOKEN_THRESHOLD,\n DEFAULT_PREVIEW_NUMBER_OF_CHARACTERS,\n DEFAULT_TOTAL_TOOL_TOKEN_THRESHOLD,\n} from '../../core/capabilities/builtins/LargeToolResponse';\nimport { ResponseFormatSchema } from '../../core/llm/responseFormat';\nimport {\n DEFAULT_DISABLE_TOOLS,\n DEFAULT_ENABLE_TOOLS,\n DEFAULT_PRELOAD_TOOLS,\n DEFAULT_REQUIRE_APPROVAL_FOR_TOOLS,\n REQUIRE_APPROVAL_TOOLS_SELECTOR_TAGS,\n TOOLS_SELECTOR_TAGS,\n} from '../../core/mcp/toolSelectors';\n\nexport const DEFAULT_AGENT_CONFIG_ITERATION_LIMIT = 100;\n\n// --- Model ---\n\nconst ModelParamsSchema = z\n .object({\n max_tokens: z.number().optional().describe('Maximum tokens to generate in the model response.'),\n temperature: z.number().optional().describe('Sampling temperature; higher values increase randomness.'),\n top_p: z.number().optional().describe('Nucleus sampling probability mass.'),\n top_k: z.number().optional().describe('Top-k sampling; keep only the k highest-probability tokens.'),\n parallel_tool_calls: z\n .boolean()\n .optional()\n .describe('Whether the model may emit multiple tool calls in one response.'),\n reasoning_effort: z.string().optional().describe('Provider-specific reasoning effort (e.g. low/medium/high).'),\n })\n .loose() // this ensures extra model params are allowed\n .describe(\n 'Model call parameters passed through to the provider. Known keys are documented; extra keys are allowed and forwarded as-is.',\n )\n .openapi('ModelParams');\n\n// Opaque runtime identifier; the hosting server owns naming conventions (e.g. provider/model).\nconst ModelSpecSchema = z\n .object({\n name: z\n .string()\n .min(1, 'model.name must not be empty')\n .describe('Model FQN: `provider/model`, e.g. `openai/gpt-5.2`.'),\n params: ModelParamsSchema.optional(),\n })\n .openapi('AgentSpecModel');\n\n// --- MCP servers ---\n\n// Literal tool name (not a tag).\nconst LiteralToolSelectorSchema = z\n .string()\n .min(1)\n .refine(s => !s.startsWith('@'), { message: 'Invalid tool selector tag' });\n\n// enable_tools / disable_tools / preload_tools: @all, @read-only, or a literal name.\nconst EnableToolSelectorSchema = z.union([z.enum(TOOLS_SELECTOR_TAGS), LiteralToolSelectorSchema]);\n\n// require_approval_for_tools: @all, @write, @destructive, or a literal name.\nconst RequireApprovalToolSelectorSchema = z.union([\n z.enum(REQUIRE_APPROVAL_TOOLS_SELECTOR_TAGS),\n LiteralToolSelectorSchema,\n]);\n\n// `preload` defaults to false; use `preload_tools` to eagerly load specific tools when not fully preloading.\n// Auth headers are not part of the spec — they come from the configured MCP server store.\nconst MCPServerRequestSchema = z\n .object({\n name: z\n .string()\n .min(1, 'mcp_servers[].name must not be empty')\n .describe('Name of a configured MCP server (Settings → Connectors).'),\n // Which tools to enable. Default: all tools.\n enable_tools: z\n .array(EnableToolSelectorSchema)\n .default(DEFAULT_ENABLE_TOOLS)\n .describe('Tools exposed to the agent: `@all`, `@read-only`, or literal tool names. Default: `[\"@all\"]`.'),\n // Which tools to disable (subtracted from enable_tools). Default: none.\n disable_tools: z\n .array(EnableToolSelectorSchema)\n .default(DEFAULT_DISABLE_TOOLS)\n .describe('Tools subtracted from the enabled set. Default: none.'),\n // When the server is not fully preloaded (`preload: false`), which tools to\n // still preload into context. A non-empty list implies `preload: false`.\n preload_tools: z\n .array(EnableToolSelectorSchema)\n .default(DEFAULT_PRELOAD_TOOLS)\n .describe(\n 'Tools loaded eagerly into context while the rest stay deferred. A non-empty list implies `preload: false`.',\n ),\n // Tools that require human approval before execution. Default: @write + @destructive.\n require_approval_for_tools: z\n .array(RequireApprovalToolSelectorSchema)\n .default(DEFAULT_REQUIRE_APPROVAL_FOR_TOOLS)\n .describe(\n 'Tools that pause for human approval: `@all`, `@write`, `@destructive`, or literal names. Default: `[\"@write\", \"@destructive\"]`.',\n ),\n // Whether this server's tools are preloaded into context. Default: false.\n // When false, tools are discovered lazily and only `preload_tools` stay eager.\n preload: z\n .boolean()\n .optional()\n .default(false)\n .describe('When true, load all tool schemas upfront. Default: false (deferred discovery).'),\n })\n .openapi('MCPServer');\n\n// --- Runtime config ---\n\nconst CompactionSettingsSchema = z.object({\n enabled: z.boolean().default(true).describe('Summarize older history when context grows too large. Default: true.'),\n compaction_threshold_tokens: z\n .number()\n .int()\n .positive()\n .optional()\n .describe('Context size in tokens that triggers compaction. Default: 50000.'),\n});\n\nconst LargeToolResponseSettingsSchema = z.object({\n enabled: z.boolean().default(true).describe('Offload oversized tool responses to a sandbox file. Default: true.'),\n individual_tool_response_token_threshold: z\n .number()\n .int()\n .positive()\n .optional()\n .default(DEFAULT_INDIVIDUAL_TOOL_TOKEN_THRESHOLD)\n .describe(\n `Token threshold for a single tool response before offloading. Default: ${String(DEFAULT_INDIVIDUAL_TOOL_TOKEN_THRESHOLD)}.`,\n ),\n total_tool_response_token_threshold: z\n .number()\n .int()\n .positive()\n .optional()\n .default(DEFAULT_TOTAL_TOOL_TOKEN_THRESHOLD)\n .describe(\n `Combined tool-response token threshold before offloading. Default: ${String(DEFAULT_TOTAL_TOOL_TOKEN_THRESHOLD)}.`,\n ),\n preview_number_of_characters: z\n .number()\n .int()\n .positive()\n .optional()\n .default(DEFAULT_PREVIEW_NUMBER_OF_CHARACTERS)\n .describe(\n `Characters of preview kept in context after offloading. Default: ${String(DEFAULT_PREVIEW_NUMBER_OF_CHARACTERS)}.`,\n ),\n});\n\nconst BASIC_AUTH_USERNAME_PATTERN = /^\\S+$/;\n\n/** True when any hostname segment contains `*` (e.g. `*.github.com`). */\nfunction hostContainsWildcard(host: string): boolean {\n return host.split('.').some(segment => segment.includes('*'));\n}\n\nconst SandboxAuthInjectMatchSchema = z.object({\n hosts: z\n .array(\n z\n .string()\n .min(1)\n .refine(host => !hostContainsWildcard(host), {\n message: 'Hosts must be exact hostnames without wildcards',\n })\n .describe('Exact hostname to match (no wildcards).'),\n )\n .min(1)\n .describe('Hostnames that receive injected credentials.'),\n});\n\nconst SandboxBasicAuthDataSchema = z.object({\n type: z.literal('basic').describe('Basic auth credential type.'),\n username: z\n .string()\n .regex(BASIC_AUTH_USERNAME_PATTERN, 'Username must be non-empty and contain no whitespace')\n .describe('Basic-auth username (no whitespace).'),\n password: z.string().min(1).describe('Basic-auth password.'),\n});\n\nconst SandboxGitAuthInjectSchema = z.object({\n type: z.literal('git').describe('Inject credentials for git HTTPS clones.'),\n match: SandboxAuthInjectMatchSchema,\n auth_data: SandboxBasicAuthDataSchema,\n});\n\nconst SandboxNetworkPolicySchema = z\n .object({\n auth_inject: z\n .array(SandboxGitAuthInjectSchema)\n .max(1, 'At most one auth inject rule is supported (type: git)')\n .optional()\n .describe('Up to one rule injecting git basic-auth credentials for exact hosts.'),\n })\n .openapi('SandboxNetworkPolicy');\n\nconst SandboxConfigSchema = z\n .object({\n enabled: z.boolean().describe('Give the agent a sandbox. Required for skills and Code Mode.'),\n file_downloads: z\n .boolean()\n .default(true)\n .describe('Allow downloading agent-produced files via the turn download endpoint. Default: true.'),\n network_policy: SandboxNetworkPolicySchema.optional(),\n })\n .openapi('SandboxConfig');\n\nconst DynamicSubAgentsConfigSchema = z\n .object({\n enabled: z.boolean().default(true).describe('Allow the agent to spawn dynamic subagents. Default: true.'),\n })\n .openapi('DynamicSubAgentsConfig');\n\nconst LargeToolResponseConfigSchema = LargeToolResponseSettingsSchema.pick({\n enabled: true,\n}).openapi('LargeToolResponseConfig');\n\nconst ContextManagementConfigSchema = z\n .object({\n compaction: CompactionSettingsSchema.default(() => ({ enabled: true })),\n large_tool_response: LargeToolResponseConfigSchema.default(() => ({ enabled: true })),\n })\n .openapi('ContextManagementConfig');\n\nconst GenerativeUIConfigSchema = z\n .object({\n enabled: z.boolean().default(true).describe('Enable Generative UI (OpenUI blocks). Default: true.'),\n })\n .openapi('GenerativeUIConfig');\n\nconst AskUserQuestionsConfigSchema = z\n .object({\n enabled: z.boolean().default(true).describe('Enable the `ask_user_question` tool. Default: true.'),\n })\n .openapi('AskUserQuestionsConfig');\n\nexport const RuntimeConfigSchema = z\n .object({\n iteration_limit: z\n .number()\n .int()\n .positive()\n .max(1024)\n .default(DEFAULT_AGENT_CONFIG_ITERATION_LIMIT)\n .describe(\n `Max agent-loop iterations per turn (1–1024). Default: ${String(DEFAULT_AGENT_CONFIG_ITERATION_LIMIT)}.`,\n ),\n sandbox: SandboxConfigSchema.default(() => ({ enabled: false, file_downloads: true })),\n dynamic_sub_agents: DynamicSubAgentsConfigSchema.default(() => ({ enabled: true })),\n context_management: ContextManagementConfigSchema.default(() => ({\n compaction: { enabled: true },\n large_tool_response: { enabled: true },\n })),\n generative_ui: GenerativeUIConfigSchema.default(() => ({ enabled: true })),\n ask_user_questions: AskUserQuestionsConfigSchema.default(() => ({ enabled: true })),\n })\n .openapi('RuntimeConfig');\n\n// --- Skills ---\n// Name-only refs; DB sessions expand mount fields from ISkillStore at turn time.\n\nconst SKILL_NAME_REGEX = /^[A-Za-z0-9._-]+$/;\n\n/** Name-only skill selection; mount fields come from the skill store. */\nconst SkillNameRefSchema = z\n .object({\n name: z\n .string()\n .trim()\n .min(1)\n .max(64)\n .regex(SKILL_NAME_REGEX, 'Name may only contain letters, numbers, \".\", \"_\", and \"-\"')\n .refine(v => v !== '.' && v !== '..', 'Name must not be \".\" or \"..\"')\n .refine(v => !v.startsWith('.tfy-'), 'Name must not use the reserved \".tfy-\" prefix')\n .describe('Name of a configured skill (also used as the skill directory name in the sandbox).'),\n })\n .strict()\n .openapi('SkillNameRef');\n\n// --- Response format / messages ---\n\nconst AgentSpecUserMessageSchema = z\n .object({\n type: z.literal('user.message').describe('Seed message type.'),\n content: z\n .string()\n .min(1, 'User message content must not be empty')\n .refine(content => content.trim().length > 0, 'User message content must not be empty')\n .describe('Seed user message content injected at the start of every session.'),\n })\n .openapi('AgentSpecUserMessage');\n\n// --- Agent spec ---\n\nexport const AgentSpecSchema = z\n .object({\n model: ModelSpecSchema,\n instructions: z\n .string()\n .optional()\n .describe(\"Optional system prompt — the agent's role, behavior, and constraints.\"),\n messages: z\n .array(AgentSpecUserMessageSchema)\n .optional()\n .describe('Optional seed user messages injected at the start of every session.'),\n mcp_servers: z\n .array(MCPServerRequestSchema)\n .optional()\n .describe('Optional MCP servers attached by configured name.'),\n response_format: ResponseFormatSchema.optional(),\n skills: z\n .array(SkillNameRefSchema)\n .optional()\n .describe('Optional name-only skill references. Requires `config.sandbox.enabled: true`.'),\n // Factory must parse so nested RuntimeConfig field defaults materialize.\n config: RuntimeConfigSchema.default(() => RuntimeConfigSchema.parse({})),\n })\n .describe('Complete agent definition used inline on a session or saved as a named agent.')\n .openapi('AgentSpec');\n\nexport type AgentSpec = z.infer<typeof AgentSpecSchema>;\nexport type SkillNameRef = z.infer<typeof SkillNameRefSchema>;\n"],"mappings":"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","names":[]}