nodal-agents 0.9.2 → 0.9.3

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 (298) hide show
  1. package/cli.js +629 -426
  2. package/docs-index.json +21 -14
  3. package/migrations/0123_chat_messages_stopped.sql +10 -0
  4. package/migrations/0124_chat_messages_cut_reason.sql +12 -0
  5. package/migrations/0125_shell_checklist.sql +31 -0
  6. package/migrations/0126_run_budget.sql +57 -0
  7. package/migrations/0127_agent_budget.sql +86 -0
  8. package/migrations/0128_shell_policy_retired_kinds.sql +52 -0
  9. package/migrations/meta/_journal.json +42 -0
  10. package/package.json +1 -1
  11. package/runner.js +4373 -2761
  12. package/web/.next/BUILD_ID +1 -1
  13. package/web/.next/app-path-routes-manifest.json +6 -2
  14. package/web/.next/build-manifest.json +2 -2
  15. package/web/.next/prerender-manifest.json +5 -5
  16. package/web/.next/routes-manifest.json +28 -0
  17. package/web/.next/server/app/(dashboard)/agents/[id]/channels/page.js +1 -1
  18. package/web/.next/server/app/(dashboard)/agents/[id]/channels/page_client-reference-manifest.js +1 -1
  19. package/web/.next/server/app/(dashboard)/agents/[id]/edit/page.js +4 -4
  20. package/web/.next/server/app/(dashboard)/agents/[id]/edit/page_client-reference-manifest.js +1 -1
  21. package/web/.next/server/app/(dashboard)/agents/[id]/telegram/page.js +1 -1
  22. package/web/.next/server/app/(dashboard)/agents/[id]/telegram/page_client-reference-manifest.js +1 -1
  23. package/web/.next/server/app/(dashboard)/agents/page.js +1 -1
  24. package/web/.next/server/app/(dashboard)/agents/page_client-reference-manifest.js +1 -1
  25. package/web/.next/server/app/(dashboard)/approvals/page.js +1 -1
  26. package/web/.next/server/app/(dashboard)/approvals/page_client-reference-manifest.js +1 -1
  27. package/web/.next/server/app/(dashboard)/automations/[id]/page.js +1 -1
  28. package/web/.next/server/app/(dashboard)/automations/[id]/page_client-reference-manifest.js +1 -1
  29. package/web/.next/server/app/(dashboard)/automations/page.js +1 -1
  30. package/web/.next/server/app/(dashboard)/automations/page_client-reference-manifest.js +1 -1
  31. package/web/.next/server/app/(dashboard)/chat/[id]/page.js +1 -1
  32. package/web/.next/server/app/(dashboard)/chat/[id]/page_client-reference-manifest.js +1 -1
  33. package/web/.next/server/app/(dashboard)/chat/page.js +1 -1
  34. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  35. package/web/.next/server/app/(dashboard)/chat/runs/[id]/page.js +1 -0
  36. package/web/.next/server/app/(dashboard)/chat/runs/[id]/page_client-reference-manifest.js +1 -0
  37. package/web/.next/server/app/(dashboard)/code/[id]/page.js +1 -1
  38. package/web/.next/server/app/(dashboard)/code/[id]/page_client-reference-manifest.js +1 -1
  39. package/web/.next/server/app/(dashboard)/code/page.js +1 -1
  40. package/web/.next/server/app/(dashboard)/code/page_client-reference-manifest.js +1 -1
  41. package/web/.next/server/app/(dashboard)/connectors/page.js +1 -1
  42. package/web/.next/server/app/(dashboard)/connectors/page_client-reference-manifest.js +1 -1
  43. package/web/.next/server/app/(dashboard)/credentials/page.js +1 -1
  44. package/web/.next/server/app/(dashboard)/credentials/page_client-reference-manifest.js +1 -1
  45. package/web/.next/server/app/(dashboard)/dashboard/page.js +1 -1
  46. package/web/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  47. package/web/.next/server/app/(dashboard)/jobs/[id]/page.js +1 -1
  48. package/web/.next/server/app/(dashboard)/jobs/[id]/page_client-reference-manifest.js +1 -1
  49. package/web/.next/server/app/(dashboard)/jobs/page.js +1 -1
  50. package/web/.next/server/app/(dashboard)/jobs/page_client-reference-manifest.js +1 -1
  51. package/web/.next/server/app/(dashboard)/learned-skills/page.js +1 -1
  52. package/web/.next/server/app/(dashboard)/learned-skills/page_client-reference-manifest.js +1 -1
  53. package/web/.next/server/app/(dashboard)/llm-providers/page.js +1 -1
  54. package/web/.next/server/app/(dashboard)/llm-providers/page_client-reference-manifest.js +1 -1
  55. package/web/.next/server/app/(dashboard)/logs/page.js +1 -1
  56. package/web/.next/server/app/(dashboard)/logs/page_client-reference-manifest.js +1 -1
  57. package/web/.next/server/app/(dashboard)/mcp/page.js +1 -1
  58. package/web/.next/server/app/(dashboard)/mcp/page_client-reference-manifest.js +1 -1
  59. package/web/.next/server/app/(dashboard)/memories/page.js +1 -1
  60. package/web/.next/server/app/(dashboard)/memories/page_client-reference-manifest.js +1 -1
  61. package/web/.next/server/app/(dashboard)/page.js +1 -1
  62. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  63. package/web/.next/server/app/(dashboard)/scheduled/[id]/page.js +1 -1
  64. package/web/.next/server/app/(dashboard)/scheduled/[id]/page_client-reference-manifest.js +1 -1
  65. package/web/.next/server/app/(dashboard)/scheduled/page.js +1 -1
  66. package/web/.next/server/app/(dashboard)/scheduled/page_client-reference-manifest.js +1 -1
  67. package/web/.next/server/app/(dashboard)/settings/page.js +1 -1
  68. package/web/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  69. package/web/.next/server/app/(dashboard)/settings/root-context/page.js +1 -1
  70. package/web/.next/server/app/(dashboard)/settings/root-context/page_client-reference-manifest.js +1 -1
  71. package/web/.next/server/app/(dashboard)/skills/[id]/edit/page.js +1 -1
  72. package/web/.next/server/app/(dashboard)/skills/[id]/edit/page_client-reference-manifest.js +1 -1
  73. package/web/.next/server/app/(dashboard)/skills/new/page.js +1 -1
  74. package/web/.next/server/app/(dashboard)/skills/new/page_client-reference-manifest.js +1 -1
  75. package/web/.next/server/app/(dashboard)/skills/page.js +1 -1
  76. package/web/.next/server/app/(dashboard)/skills/page_client-reference-manifest.js +1 -1
  77. package/web/.next/server/app/(dashboard)/spaces/[id]/files/page.js +1 -1
  78. package/web/.next/server/app/(dashboard)/spaces/[id]/files/page_client-reference-manifest.js +1 -1
  79. package/web/.next/server/app/(dashboard)/spaces/[id]/page.js +1 -1
  80. package/web/.next/server/app/(dashboard)/spaces/[id]/page_client-reference-manifest.js +1 -1
  81. package/web/.next/server/app/(dashboard)/spaces/page.js +1 -1
  82. package/web/.next/server/app/(dashboard)/spaces/page_client-reference-manifest.js +1 -1
  83. package/web/.next/server/app/_global-error/page.js +2 -2
  84. package/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  85. package/web/.next/server/app/_global-error.html +1 -1
  86. package/web/.next/server/app/_global-error.rsc +2 -2
  87. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +2 -2
  88. package/web/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +2 -2
  89. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  90. package/web/.next/server/app/_not-found/page.js +1 -1
  91. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  92. package/web/.next/server/app/_not-found.html +1 -1
  93. package/web/.next/server/app/_not-found.rsc +3 -3
  94. package/web/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  95. package/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  96. package/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  97. package/web/.next/server/app/api/auth/[...all]/route.js +1 -1
  98. package/web/.next/server/app/api/chat/live/route.js +4 -0
  99. package/web/.next/server/app/api/chat/live/route_client-reference-manifest.js +1 -0
  100. package/web/.next/server/app/api/chat/stop/route.js +1 -0
  101. package/web/.next/server/app/api/chat/stop/route_client-reference-manifest.js +1 -0
  102. package/web/.next/server/app/api/chat/stream/route.js +3 -3
  103. package/web/.next/server/app/api/health/route.js +1 -1
  104. package/web/.next/server/app/api/oauth/[provider]/callback/route.js +1 -1
  105. package/web/.next/server/app/api/oauth/[provider]/start/route.js +1 -1
  106. package/web/.next/server/app/api/runs/[jobId]/media/route.js +1 -0
  107. package/web/.next/server/app/api/runs/[jobId]/media/route_client-reference-manifest.js +1 -0
  108. package/web/.next/server/app/auth/callback/route.js +1 -1
  109. package/web/.next/server/app/login/page.js +1 -1
  110. package/web/.next/server/app/login/page_client-reference-manifest.js +1 -1
  111. package/web/.next/server/app/onboarding/page.js +2 -2
  112. package/web/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  113. package/web/.next/server/app-paths-manifest.json +6 -2
  114. package/web/.next/server/chunks/1326.js +136 -0
  115. package/web/.next/server/chunks/1406.js +1773 -0
  116. package/web/.next/server/chunks/1615.js +1 -0
  117. package/web/.next/server/chunks/1873.js +1 -0
  118. package/web/.next/server/chunks/2443.js +3 -0
  119. package/web/.next/server/chunks/3483.js +1 -0
  120. package/web/.next/server/chunks/3675.js +1 -1
  121. package/web/.next/server/chunks/3920.js +1 -0
  122. package/web/.next/server/chunks/42.js +3 -3
  123. package/web/.next/server/chunks/4546.js +1 -0
  124. package/web/.next/server/chunks/494.js +1 -1
  125. package/web/.next/server/chunks/5648.js +1 -0
  126. package/web/.next/server/chunks/5804.js +1 -1
  127. package/web/.next/server/chunks/592.js +1 -1
  128. package/web/.next/server/chunks/5976.js +1 -0
  129. package/web/.next/server/chunks/6915.js +1 -0
  130. package/web/.next/server/chunks/692.js +15 -15
  131. package/web/.next/server/chunks/7465.js +1 -0
  132. package/web/.next/server/chunks/7651.js +812 -0
  133. package/web/.next/server/chunks/7663.js +22 -22
  134. package/web/.next/server/chunks/7876.js +1 -0
  135. package/web/.next/server/chunks/7915.js +1 -1
  136. package/web/.next/server/chunks/796.js +1 -1
  137. package/web/.next/server/chunks/8030.js +1 -0
  138. package/web/.next/server/chunks/8104.js +1 -0
  139. package/web/.next/server/chunks/8697.js +1 -1
  140. package/web/.next/server/chunks/8794.js +1 -0
  141. package/web/.next/server/chunks/8830.js +1 -0
  142. package/web/.next/server/chunks/9009.js +1 -0
  143. package/web/.next/server/chunks/{2096.js → 9066.js} +1 -1
  144. package/web/.next/server/chunks/965.js +1 -1
  145. package/web/.next/server/chunks/{6213.js → 9844.js} +2 -2
  146. package/web/.next/server/chunks/9882.js +36 -0
  147. package/web/.next/server/middleware-build-manifest.js +1 -1
  148. package/web/.next/server/middleware.js +27 -27
  149. package/web/.next/server/pages/404.html +1 -1
  150. package/web/.next/server/pages/500.html +1 -1
  151. package/web/.next/server/server-reference-manifest.js +1 -1
  152. package/web/.next/server/server-reference-manifest.json +1 -1
  153. package/web/.next/static/chunks/{1091-6d0af9f18ddf99f6.js → 1091-9485133bd943918f.js} +1 -1
  154. package/web/.next/static/chunks/{1332-c8bed6b750598652.js → 1409-fe80b5952e1f40cb.js} +1 -1
  155. package/web/.next/static/chunks/1789-2566ac18a25fb387.js +1 -0
  156. package/web/.next/static/chunks/3844-36a00411beee6253.js +1 -0
  157. package/web/.next/static/chunks/4020-ec67a80b0e0b651e.js +1 -0
  158. package/web/.next/static/chunks/4666-5fd532303d09a950.js +1 -0
  159. package/web/.next/static/chunks/4771-47261da3c38b4746.js +1 -0
  160. package/web/.next/static/chunks/494-a34a6a0b36862877.js +1 -0
  161. package/web/.next/static/chunks/5034-9aff8cbeb288ac20.js +1 -0
  162. package/web/.next/static/chunks/5216-528f63f54d56b47a.js +1 -0
  163. package/web/.next/static/chunks/5575-444e6f49e2d2a328.js +1 -0
  164. package/web/.next/static/chunks/560-59e02268ee5fe11e.js +1 -0
  165. package/web/.next/static/chunks/5954-7c92f3e7812dce11.js +1 -0
  166. package/web/.next/static/chunks/{5925-76337eacde3c3bc8.js → 6724-8a6d2dc777961105.js} +11 -11
  167. package/web/.next/static/chunks/6861-5edebd867f40e3a6.js +3 -0
  168. package/web/.next/static/chunks/764-a883257e15345ae8.js +1 -0
  169. package/web/.next/static/chunks/825-c876657b507df9d8.js +1 -0
  170. package/web/.next/static/chunks/9052-33a3c725444cb518.js +1 -0
  171. package/web/.next/static/chunks/9287-41590f18e747f14c.js +1 -0
  172. package/web/.next/static/chunks/9484-f972307c1c78a8e8.js +1 -0
  173. package/web/.next/static/chunks/9643-03e18abc622d33f5.js +1 -0
  174. package/web/.next/static/chunks/app/(dashboard)/agents/[id]/channels/page-7b6e8b91210cb2ee.js +1 -0
  175. package/web/.next/static/chunks/app/(dashboard)/agents/[id]/edit/page-16e26ece80055943.js +6 -0
  176. package/web/.next/static/chunks/app/(dashboard)/agents/[id]/telegram/page-7b6e8b91210cb2ee.js +1 -0
  177. package/web/.next/static/chunks/app/(dashboard)/agents/page-ca54871a8009f0aa.js +1 -0
  178. package/web/.next/static/chunks/app/(dashboard)/approvals/page-a5d31137ad6c86c0.js +1 -0
  179. package/web/.next/static/chunks/app/(dashboard)/automations/[id]/{page-9ef1d76121b6030d.js → page-2ea773c99f54f674.js} +1 -1
  180. package/web/.next/static/chunks/app/(dashboard)/automations/page-095be3edd6287d73.js +1 -0
  181. package/web/.next/static/chunks/app/(dashboard)/chat/[id]/page-00acae0653281839.js +1 -0
  182. package/web/.next/static/chunks/app/(dashboard)/chat/page-056975f6c9d5625b.js +1 -0
  183. package/web/.next/static/chunks/app/(dashboard)/chat/runs/[id]/page-899772b15670d3de.js +1 -0
  184. package/web/.next/static/chunks/app/(dashboard)/code/[id]/page-83535784a61e8e36.js +1 -0
  185. package/web/.next/static/chunks/app/(dashboard)/code/page-7b6e8b91210cb2ee.js +1 -0
  186. package/web/.next/static/chunks/app/(dashboard)/connectors/page-af5150e89038a92b.js +1 -0
  187. package/web/.next/static/chunks/app/(dashboard)/dashboard/{page-7473d1190864cbd4.js → page-241109c80363cab1.js} +1 -1
  188. package/web/.next/static/chunks/app/(dashboard)/jobs/[id]/page-899772b15670d3de.js +1 -0
  189. package/web/.next/static/chunks/app/(dashboard)/jobs/page-7b6e8b91210cb2ee.js +1 -0
  190. package/web/.next/static/chunks/app/(dashboard)/layout-2b492fe5d87e7a8c.js +1 -0
  191. package/web/.next/static/chunks/app/(dashboard)/learned-skills/page-d3d0521187a02e31.js +1 -0
  192. package/web/.next/static/chunks/app/(dashboard)/llm-providers/page-1b5aef6848173842.js +1 -0
  193. package/web/.next/static/chunks/app/(dashboard)/logs/page-fd939bac9a74004e.js +1 -0
  194. package/web/.next/static/chunks/app/(dashboard)/mcp/page-11decdc1d91b079d.js +1 -0
  195. package/web/.next/static/chunks/app/(dashboard)/memories/{page-593161bc7c2a25d7.js → page-2dda98de596fe53c.js} +1 -1
  196. package/web/.next/static/chunks/app/(dashboard)/page-40b43271735f5935.js +1 -0
  197. package/web/.next/static/chunks/app/(dashboard)/scheduled/[id]/page-899772b15670d3de.js +1 -0
  198. package/web/.next/static/chunks/app/(dashboard)/scheduled/page-7b6e8b91210cb2ee.js +1 -0
  199. package/web/.next/static/chunks/app/(dashboard)/settings/page-420c62b3fbec2901.js +1 -0
  200. package/web/.next/static/chunks/app/(dashboard)/settings/root-context/page-7840e0f90ad51fd3.js +1 -0
  201. package/web/.next/static/chunks/app/(dashboard)/skills/page-497d3e268b76b0eb.js +1 -0
  202. package/web/.next/static/chunks/app/(dashboard)/spaces/[id]/files/page-d13f877dfd34c6c0.js +1 -0
  203. package/web/.next/static/chunks/app/(dashboard)/spaces/[id]/page-bf466093877ab1c5.js +1 -0
  204. package/web/.next/static/chunks/app/(dashboard)/spaces/page-1d264307964cfdfe.js +1 -0
  205. package/web/.next/static/chunks/app/_global-error/page-7b6e8b91210cb2ee.js +1 -0
  206. package/web/.next/static/chunks/app/_not-found/page-7b6e8b91210cb2ee.js +1 -0
  207. package/web/.next/static/chunks/app/api/auth/[...all]/route-7b6e8b91210cb2ee.js +1 -0
  208. package/web/.next/static/chunks/app/api/chat/live/route-7b6e8b91210cb2ee.js +1 -0
  209. package/web/.next/static/chunks/app/api/chat/stop/route-7b6e8b91210cb2ee.js +1 -0
  210. package/web/.next/static/chunks/app/api/chat/stream/route-7b6e8b91210cb2ee.js +1 -0
  211. package/web/.next/static/chunks/app/api/health/route-7b6e8b91210cb2ee.js +1 -0
  212. package/web/.next/static/chunks/app/api/oauth/[provider]/callback/route-7b6e8b91210cb2ee.js +1 -0
  213. package/web/.next/static/chunks/app/api/oauth/[provider]/start/route-7b6e8b91210cb2ee.js +1 -0
  214. package/web/.next/static/chunks/app/api/runs/[jobId]/media/route-7b6e8b91210cb2ee.js +1 -0
  215. package/web/.next/static/chunks/app/auth/callback/route-7b6e8b91210cb2ee.js +1 -0
  216. package/web/.next/static/chunks/app/login/{page-5357f030e5018563.js → page-d260a3be0b6857ef.js} +1 -1
  217. package/web/.next/static/chunks/app/onboarding/{page-9b6955cdd3033584.js → page-07908ee9b2b6d6b5.js} +2 -2
  218. package/web/.next/static/chunks/next/dist/client/components/builtin/app-error-7b6e8b91210cb2ee.js +1 -0
  219. package/web/.next/static/chunks/next/dist/client/components/builtin/forbidden-7b6e8b91210cb2ee.js +1 -0
  220. package/web/.next/static/chunks/next/dist/client/components/builtin/unauthorized-7b6e8b91210cb2ee.js +1 -0
  221. package/web/.next/static/css/55c009e1dd52d5a7.css +1 -0
  222. package/web/.next/static/uWxfL1NbU-xFtwNtkF4Wb/_buildManifest.js +1 -0
  223. package/web/.next/server/chunks/1960.js +0 -1
  224. package/web/.next/server/chunks/292.js +0 -1
  225. package/web/.next/server/chunks/3592.js +0 -1
  226. package/web/.next/server/chunks/409.js +0 -1
  227. package/web/.next/server/chunks/4357.js +0 -1
  228. package/web/.next/server/chunks/5547.js +0 -1
  229. package/web/.next/server/chunks/570.js +0 -1
  230. package/web/.next/server/chunks/5974.js +0 -1
  231. package/web/.next/server/chunks/6106.js +0 -1
  232. package/web/.next/server/chunks/7134.js +0 -947
  233. package/web/.next/server/chunks/7431.js +0 -1
  234. package/web/.next/server/chunks/7533.js +0 -1
  235. package/web/.next/server/chunks/7709.js +0 -1
  236. package/web/.next/server/chunks/8022.js +0 -1
  237. package/web/.next/server/chunks/8536.js +0 -3
  238. package/web/.next/server/chunks/8974.js +0 -1808
  239. package/web/.next/server/chunks/9200.js +0 -1
  240. package/web/.next/static/chunks/1054-08930540869affcc.js +0 -1
  241. package/web/.next/static/chunks/1577-09f4d5183fb172de.js +0 -1
  242. package/web/.next/static/chunks/1789-b436bca079b82fcc.js +0 -1
  243. package/web/.next/static/chunks/296-1b50dd61ac3198f4.js +0 -1
  244. package/web/.next/static/chunks/3159-f25525771781f5aa.js +0 -1
  245. package/web/.next/static/chunks/3775-3a5a749d63c785a1.js +0 -3
  246. package/web/.next/static/chunks/390-d6132d3a117487df.js +0 -1
  247. package/web/.next/static/chunks/4020-9778230f3cc2164a.js +0 -1
  248. package/web/.next/static/chunks/4771-a0aadf337f224b72.js +0 -1
  249. package/web/.next/static/chunks/494-ed02d105fa0ac132.js +0 -1
  250. package/web/.next/static/chunks/5034-fc9997ff33a114aa.js +0 -1
  251. package/web/.next/static/chunks/7879-67ac5a52d74c20d2.js +0 -1
  252. package/web/.next/static/chunks/7920-40dc6aa63e653d6b.js +0 -1
  253. package/web/.next/static/chunks/870-b7151716d04a13c3.js +0 -1
  254. package/web/.next/static/chunks/8794-2a616d1f9c210117.js +0 -1
  255. package/web/.next/static/chunks/8861-a108ed6178a56b21.js +0 -1
  256. package/web/.next/static/chunks/9643-e9c8a744dd98813d.js +0 -1
  257. package/web/.next/static/chunks/9952-992cabfb077d287c.js +0 -1
  258. package/web/.next/static/chunks/app/(dashboard)/agents/[id]/channels/page-523c5d229e8520bf.js +0 -1
  259. package/web/.next/static/chunks/app/(dashboard)/agents/[id]/edit/page-5ca9c1eef4d0f837.js +0 -6
  260. package/web/.next/static/chunks/app/(dashboard)/agents/[id]/telegram/page-523c5d229e8520bf.js +0 -1
  261. package/web/.next/static/chunks/app/(dashboard)/agents/page-5ffa4a2468c1f95a.js +0 -1
  262. package/web/.next/static/chunks/app/(dashboard)/approvals/page-cd46d5e439a20d3e.js +0 -1
  263. package/web/.next/static/chunks/app/(dashboard)/automations/page-46eeaa40df9e58f8.js +0 -1
  264. package/web/.next/static/chunks/app/(dashboard)/chat/[id]/page-25e095bf0cdd1c40.js +0 -1
  265. package/web/.next/static/chunks/app/(dashboard)/chat/page-e2df1a328e18da7a.js +0 -1
  266. package/web/.next/static/chunks/app/(dashboard)/code/[id]/page-f5f7624cfbb32ee2.js +0 -1
  267. package/web/.next/static/chunks/app/(dashboard)/code/page-523c5d229e8520bf.js +0 -1
  268. package/web/.next/static/chunks/app/(dashboard)/connectors/page-2ecbfc5836577888.js +0 -1
  269. package/web/.next/static/chunks/app/(dashboard)/jobs/[id]/page-47e177ab46926fd7.js +0 -1
  270. package/web/.next/static/chunks/app/(dashboard)/jobs/page-523c5d229e8520bf.js +0 -1
  271. package/web/.next/static/chunks/app/(dashboard)/layout-0b429859260736b2.js +0 -1
  272. package/web/.next/static/chunks/app/(dashboard)/learned-skills/page-596d973a31e774db.js +0 -1
  273. package/web/.next/static/chunks/app/(dashboard)/llm-providers/page-ba1968c9430c4dd4.js +0 -1
  274. package/web/.next/static/chunks/app/(dashboard)/logs/page-f74da6f66116c7e7.js +0 -1
  275. package/web/.next/static/chunks/app/(dashboard)/mcp/page-07bdc6780b13cfca.js +0 -1
  276. package/web/.next/static/chunks/app/(dashboard)/page-889d6e89a8f679f8.js +0 -1
  277. package/web/.next/static/chunks/app/(dashboard)/scheduled/[id]/page-47e177ab46926fd7.js +0 -1
  278. package/web/.next/static/chunks/app/(dashboard)/scheduled/page-523c5d229e8520bf.js +0 -1
  279. package/web/.next/static/chunks/app/(dashboard)/settings/page-1b40e127c38affda.js +0 -1
  280. package/web/.next/static/chunks/app/(dashboard)/settings/root-context/page-6b7e1cffcad40a6a.js +0 -1
  281. package/web/.next/static/chunks/app/(dashboard)/skills/page-3ad87d1a3fbb4f05.js +0 -1
  282. package/web/.next/static/chunks/app/(dashboard)/spaces/[id]/files/page-4e2d27f80456a1ba.js +0 -1
  283. package/web/.next/static/chunks/app/(dashboard)/spaces/[id]/page-c81023eaa26c2c7a.js +0 -1
  284. package/web/.next/static/chunks/app/(dashboard)/spaces/page-9dbb35822503481b.js +0 -1
  285. package/web/.next/static/chunks/app/_global-error/page-523c5d229e8520bf.js +0 -1
  286. package/web/.next/static/chunks/app/_not-found/page-523c5d229e8520bf.js +0 -1
  287. package/web/.next/static/chunks/app/api/auth/[...all]/route-523c5d229e8520bf.js +0 -1
  288. package/web/.next/static/chunks/app/api/chat/stream/route-523c5d229e8520bf.js +0 -1
  289. package/web/.next/static/chunks/app/api/health/route-523c5d229e8520bf.js +0 -1
  290. package/web/.next/static/chunks/app/api/oauth/[provider]/callback/route-523c5d229e8520bf.js +0 -1
  291. package/web/.next/static/chunks/app/api/oauth/[provider]/start/route-523c5d229e8520bf.js +0 -1
  292. package/web/.next/static/chunks/app/auth/callback/route-523c5d229e8520bf.js +0 -1
  293. package/web/.next/static/chunks/next/dist/client/components/builtin/app-error-523c5d229e8520bf.js +0 -1
  294. package/web/.next/static/chunks/next/dist/client/components/builtin/forbidden-523c5d229e8520bf.js +0 -1
  295. package/web/.next/static/chunks/next/dist/client/components/builtin/unauthorized-523c5d229e8520bf.js +0 -1
  296. package/web/.next/static/css/099c0b54fc41e5b0.css +0 -1
  297. package/web/.next/static/x5fvzE6AeZGASlemQTLwd/_buildManifest.js +0 -1
  298. /package/web/.next/static/{x5fvzE6AeZGASlemQTLwd → uWxfL1NbU-xFtwNtkF4Wb}/_ssgManifest.js +0 -0
package/cli.js CHANGED
@@ -12306,8 +12306,6 @@ var init_agent = __esm({
12306
12306
  task_context_template: z7.string().nullable(),
12307
12307
  avatar_url: z7.string().nullable(),
12308
12308
  system_agent: z7.boolean(),
12309
- // 0 = unlimited per DB comment
12310
- max_tokens_per_job: z7.number().int().min(0),
12311
12309
  created_at: z7.string().datetime(),
12312
12310
  updated_at: z7.string().datetime()
12313
12311
  }).strict();
@@ -12326,8 +12324,7 @@ var init_agent = __esm({
12326
12324
  telegram_bot_token: z7.string().nullable().optional(),
12327
12325
  telegram_bot_username: z7.string().nullable().optional(),
12328
12326
  task_context_template: z7.string().nullable().optional(),
12329
- avatar_url: z7.string().nullable().optional(),
12330
- max_tokens_per_job: z7.number().int().min(0).max(5e5).default(0)
12327
+ avatar_url: z7.string().nullable().optional()
12331
12328
  });
12332
12329
  }
12333
12330
  });
@@ -14734,6 +14731,31 @@ var init_model_catalog = __esm({
14734
14731
  }
14735
14732
  });
14736
14733
 
14734
+ // ../../packages/shared/src/speech-models.ts
14735
+ var SPEECH_MODELS, SPEECH_MODEL_IDS;
14736
+ var init_speech_models = __esm({
14737
+ "../../packages/shared/src/speech-models.ts"() {
14738
+ "use strict";
14739
+ SPEECH_MODELS = [
14740
+ {
14741
+ id: "google/gemini-3.8-flash-tts",
14742
+ label: "Gemini 3.8 Flash TTS",
14743
+ summary: "The expressive tier: best for narration and a delivery style.",
14744
+ inputPerMTok: 0.5,
14745
+ outputPerMTok: 9
14746
+ },
14747
+ {
14748
+ id: "google/gemini-3.8-flash-lite-tts",
14749
+ label: "Gemini 3.8 Flash Lite TTS",
14750
+ summary: "The fast, cheaper tier: best for plain reading and volume.",
14751
+ inputPerMTok: 0.5,
14752
+ outputPerMTok: 6
14753
+ }
14754
+ ];
14755
+ SPEECH_MODEL_IDS = SPEECH_MODELS.map((m) => m.id);
14756
+ }
14757
+ });
14758
+
14737
14759
  // ../../packages/shared/src/mcp-catalog.ts
14738
14760
  var init_mcp_catalog = __esm({
14739
14761
  "../../packages/shared/src/mcp-catalog.ts"() {
@@ -14756,9 +14778,51 @@ var init_redact_secrets = __esm({
14756
14778
  });
14757
14779
 
14758
14780
  // ../../packages/shared/src/catastrophic-command.ts
14781
+ var STATIC_SHELL_CATEGORY_PATTERNS, DESTRUCTIVE_PATTERNS;
14759
14782
  var init_catastrophic_command = __esm({
14760
14783
  "../../packages/shared/src/catastrophic-command.ts"() {
14761
14784
  "use strict";
14785
+ STATIC_SHELL_CATEGORY_PATTERNS = {
14786
+ delete_files: [
14787
+ /\b(rm|rmdir|unlink|shred)\b/i,
14788
+ // delete (unix)
14789
+ /\bdel\s|\bRemove-Item\b|\brd\s+\/s/i,
14790
+ // delete (windows/ps)
14791
+ /\bfind\b[^\n]*-delete\b/i,
14792
+ // find … -delete
14793
+ /\bgit\s+push\b[^\n]*(--force|-f\b)|\bgit\s+reset\s+--hard\b|\bgit\s+clean\s+-\S*f|\bgit\s+branch\s+-D\b/i
14794
+ // destructive VCS: work thrown away
14795
+ ],
14796
+ install_software: [
14797
+ /\b(pip3?|npm|pnpm|yarn|apt|apt-get|yum|dnf|brew|pacman|choco|winget|uvx|pipx|cargo|gem|conda|comfy)\b[^\n]*\binstall\b/i,
14798
+ // pkg install
14799
+ /\b(npm|pnpm|yarn|bun)\s+(i|add|ci)\b|\bInstall-(Module|Package)\b/i,
14800
+ // npm i, pnpm add, PowerShell modules
14801
+ /\buv\s+(pip\s+install|add|tool\s+install)\b/i,
14802
+ // uv (review of PR #476)
14803
+ /\bgo\s+install\b|\bcomfy\b[^\n]*\bmodel\s+download\b|\bpip3?\b[^\n]*\bdownload\b/i
14804
+ // go install / model dl
14805
+ ],
14806
+ download: [
14807
+ // `curl -sLo x`: the output flag may close a group of short options, and
14808
+ // `iwr` is Invoke-WebRequest's alias (review of PR #476).
14809
+ /\bwget\b|\bgit\s+clone\b|\bcurl\b[^\n]*(\s-[A-Za-z]*[oO]\b|\s--output\b|\s--remote-name\b)|\bInvoke-WebRequest\b|\biwr\b|\bStart-BitsTransfer\b/i
14810
+ // large download / clone
14811
+ ],
14812
+ stop_programs: [
14813
+ /\b(kill|pkill|killall|taskkill)\b|\bStop-Process\b|\bStop-Service\b/i,
14814
+ // process kill
14815
+ /\bsystemctl\b|\bsc\s+(stop|delete)\b|\bservice\b[^\n]*\b(stop|restart)\b|\bnet\s+stop\b/i
14816
+ // service control
14817
+ ],
14818
+ system_settings: [
14819
+ /\bmkfs(\.\w+)?\b|\bdd\b[^\n]*\bof=|\b(format|fdisk|parted|diskpart)\b/i,
14820
+ // disk ops
14821
+ /\b(chmod|chown|chgrp|takeown|icacls)\b|\bSet-Acl\b|\breg\s+(add|delete|import)\b/i
14822
+ // permissions, ownership, registry
14823
+ ]
14824
+ };
14825
+ DESTRUCTIVE_PATTERNS = Object.values(STATIC_SHELL_CATEGORY_PATTERNS).flat();
14762
14826
  }
14763
14827
  });
14764
14828
 
@@ -14854,6 +14918,47 @@ var init_agent_slug = __esm({
14854
14918
  }
14855
14919
  });
14856
14920
 
14921
+ // ../../packages/shared/src/run-budget.ts
14922
+ var init_run_budget = __esm({
14923
+ "../../packages/shared/src/run-budget.ts"() {
14924
+ "use strict";
14925
+ }
14926
+ });
14927
+
14928
+ // ../../packages/shared/src/shell-checklist.ts
14929
+ import { z as z23 } from "zod";
14930
+ var SHELL_CATEGORIES, SHELL_CATEGORY_STATES, StateSchema, StoredShellPolicySchema, ShellGateReasonsSchema;
14931
+ var init_shell_checklist = __esm({
14932
+ "../../packages/shared/src/shell-checklist.ts"() {
14933
+ "use strict";
14934
+ SHELL_CATEGORIES = [
14935
+ "inline_code",
14936
+ "delete_files",
14937
+ "install_software",
14938
+ "download",
14939
+ "stop_programs",
14940
+ "system_settings"
14941
+ ];
14942
+ SHELL_CATEGORY_STATES = ["allow", "ask", "never"];
14943
+ StateSchema = z23.enum(SHELL_CATEGORY_STATES).optional();
14944
+ StoredShellPolicySchema = z23.object({
14945
+ inline_code: StateSchema,
14946
+ delete_files: StateSchema,
14947
+ install_software: StateSchema,
14948
+ download: StateSchema,
14949
+ stop_programs: StateSchema,
14950
+ system_settings: StateSchema
14951
+ }).strict();
14952
+ ShellGateReasonsSchema = z23.array(
14953
+ z23.object({
14954
+ category: z23.enum(SHELL_CATEGORIES),
14955
+ state: z23.enum(["ask", "never"]),
14956
+ details: z23.array(z23.string())
14957
+ })
14958
+ );
14959
+ }
14960
+ });
14961
+
14857
14962
  // ../../packages/shared/src/shell-programs.ts
14858
14963
  var init_shell_programs = __esm({
14859
14964
  "../../packages/shared/src/shell-programs.ts"() {
@@ -14906,7 +15011,7 @@ var init_project_subfolder = __esm({
14906
15011
  });
14907
15012
 
14908
15013
  // ../../packages/shared/src/types/verification.ts
14909
- import { z as z23 } from "zod";
15014
+ import { z as z24 } from "zod";
14910
15015
  var DELIVERABLE_TYPES, DeliverableTypeSchema, DECISION_STATUSES, DecisionStatusSchema, ATOMIC_OUTCOMES, AtomicOutcomeSchema, RUN_VERDICTS, RunVerdictSchema, VERIFICATION_RUN_SOURCES, VerificationRunSourceKindSchema, VerifyCommandSchema, VERIFY_COMMANDS_MAX, VerifyCommandsSchema;
14911
15016
  var init_verification = __esm({
14912
15017
  "../../packages/shared/src/types/verification.ts"() {
@@ -14918,7 +15023,7 @@ var init_verification = __esm({
14918
15023
  "outbound_action",
14919
15024
  "other"
14920
15025
  ];
14921
- DeliverableTypeSchema = z23.enum(DELIVERABLE_TYPES);
15026
+ DeliverableTypeSchema = z24.enum(DELIVERABLE_TYPES);
14922
15027
  DECISION_STATUSES = [
14923
15028
  "dirty",
14924
15029
  "green",
@@ -14927,7 +15032,7 @@ var init_verification = __esm({
14927
15032
  "not_configured",
14928
15033
  "infra_error"
14929
15034
  ];
14930
- DecisionStatusSchema = z23.enum(DECISION_STATUSES);
15035
+ DecisionStatusSchema = z24.enum(DECISION_STATUSES);
14931
15036
  ATOMIC_OUTCOMES = [
14932
15037
  "prepared",
14933
15038
  "attempted",
@@ -14935,17 +15040,17 @@ var init_verification = __esm({
14935
15040
  "rejected",
14936
15041
  "outcome_unknown"
14937
15042
  ];
14938
- AtomicOutcomeSchema = z23.enum(ATOMIC_OUTCOMES);
15043
+ AtomicOutcomeSchema = z24.enum(ATOMIC_OUTCOMES);
14939
15044
  RUN_VERDICTS = ["green", "red", "infra_error"];
14940
- RunVerdictSchema = z23.enum(RUN_VERDICTS);
15045
+ RunVerdictSchema = z24.enum(RUN_VERDICTS);
14941
15046
  VERIFICATION_RUN_SOURCES = ["job", "reviewer"];
14942
- VerificationRunSourceKindSchema = z23.enum(VERIFICATION_RUN_SOURCES);
14943
- VerifyCommandSchema = z23.object({
14944
- command: z23.string().trim().min(1).max(2e3),
14945
- timeoutSeconds: z23.number().int().min(1).max(3600)
15047
+ VerificationRunSourceKindSchema = z24.enum(VERIFICATION_RUN_SOURCES);
15048
+ VerifyCommandSchema = z24.object({
15049
+ command: z24.string().trim().min(1).max(2e3),
15050
+ timeoutSeconds: z24.number().int().min(1).max(3600)
14946
15051
  });
14947
15052
  VERIFY_COMMANDS_MAX = 5;
14948
- VerifyCommandsSchema = z23.array(VerifyCommandSchema).min(1).max(VERIFY_COMMANDS_MAX);
15053
+ VerifyCommandsSchema = z24.array(VerifyCommandSchema).min(1).max(VERIFY_COMMANDS_MAX);
14949
15054
  }
14950
15055
  });
14951
15056
 
@@ -15032,7 +15137,7 @@ var init_verification_manifest = __esm({
15032
15137
  });
15033
15138
 
15034
15139
  // ../../packages/shared/src/verification-surfaces.ts
15035
- import { z as z24 } from "zod";
15140
+ import { z as z25 } from "zod";
15036
15141
  function parseVerificationSurfaces(raw) {
15037
15142
  const strict = VerificationSurfacesSchema.safeParse(raw);
15038
15143
  if (strict.success) return strict.data;
@@ -15049,11 +15154,11 @@ var VerificationSurfacesSchema, DEFAULT_VERIFICATION_SURFACES, VERIFICATION_SURF
15049
15154
  var init_verification_surfaces = __esm({
15050
15155
  "../../packages/shared/src/verification-surfaces.ts"() {
15051
15156
  "use strict";
15052
- VerificationSurfacesSchema = z24.object({
15053
- codeTask: z24.boolean(),
15054
- cliRuntime: z24.boolean(),
15055
- fileOps: z24.boolean(),
15056
- shell: z24.boolean()
15157
+ VerificationSurfacesSchema = z25.object({
15158
+ codeTask: z25.boolean(),
15159
+ cliRuntime: z25.boolean(),
15160
+ fileOps: z25.boolean(),
15161
+ shell: z25.boolean()
15057
15162
  });
15058
15163
  DEFAULT_VERIFICATION_SURFACES = Object.freeze({
15059
15164
  codeTask: true,
@@ -15090,7 +15195,9 @@ var init_verification_surfaces = __esm({
15090
15195
  "xlsx_merge_cells",
15091
15196
  "xlsx_unmerge_cells",
15092
15197
  "xlsx_set_column_widths",
15093
- "xlsx_freeze_panes"
15198
+ "xlsx_freeze_panes",
15199
+ // An audio file written in the agent's folders is a file like the others (#487).
15200
+ "generate_speech"
15094
15201
  ],
15095
15202
  shell: ["run_command", "run_skill_script"]
15096
15203
  });
@@ -15155,6 +15262,7 @@ var init_src2 = __esm({
15155
15262
  init_connector_catalog();
15156
15263
  init_community_skill_catalog();
15157
15264
  init_model_catalog();
15265
+ init_speech_models();
15158
15266
  init_mcp_catalog();
15159
15267
  init_timezone();
15160
15268
  init_redact_secrets();
@@ -15166,6 +15274,8 @@ var init_src2 = __esm({
15166
15274
  init_redact_transcript();
15167
15275
  init_agent_slug();
15168
15276
  init_catastrophic_command();
15277
+ init_run_budget();
15278
+ init_shell_checklist();
15169
15279
  init_shell_programs();
15170
15280
  init_project_key();
15171
15281
  init_group_prefix();
@@ -15344,13 +15454,33 @@ var init_entities = __esm({
15344
15454
  * par un script ferait tourner un agent toute la nuit sur une preuve qui
15345
15455
  * ne passera jamais.
15346
15456
  */
15347
- proofRepairAttempts: integer("proof_repair_attempts").notNull().default(1)
15457
+ proofRepairAttempts: integer("proof_repair_attempts").notNull().default(1),
15458
+ /**
15459
+ * Ce qu'un run peut coûter, en dollars, avant d'être arrêté avec ce qu'il
15460
+ * a déjà écrit (issue #442, migration 0126). Remplace la variable
15461
+ * d'environnement `MAX_COST_PER_JOB_USD` ; défaut 2, la valeur qu'elle
15462
+ * avait. `0` = aucun plafond.
15463
+ */
15464
+ maxRunCostUsd: real("max_run_cost_usd").notNull().default(2),
15465
+ /**
15466
+ * Combien d'heures un run peut TOURNER (attentes exclues), puis il est
15467
+ * arrêté avec ce qu'il a déjà écrit (issue #442). `0` = aucune limite.
15468
+ */
15469
+ maxRunHours: real("max_run_hours").notNull().default(0)
15348
15470
  },
15349
15471
  (table) => [
15350
15472
  check(
15351
15473
  "entities_proof_repair_attempts_check",
15352
15474
  sql`${table.proofRepairAttempts} >= 0 AND ${table.proofRepairAttempts} <= 3`
15353
15475
  ),
15476
+ check(
15477
+ "entities_max_run_cost_usd_check",
15478
+ sql`${table.maxRunCostUsd} >= 0 AND ${table.maxRunCostUsd} <= 1000`
15479
+ ),
15480
+ check(
15481
+ "entities_max_run_hours_check",
15482
+ sql`${table.maxRunHours} >= 0 AND ${table.maxRunHours} <= 72`
15483
+ ),
15354
15484
  uniqueIndex("entities_mcp_token_idx").on(table.mcpToken),
15355
15485
  index("idx_entities_user_id").on(table.userId),
15356
15486
  index("idx_entities_root_agent_id").on(table.rootAgentId)
@@ -15421,7 +15551,7 @@ var init_llm_keys = __esm({
15421
15551
  });
15422
15552
 
15423
15553
  // ../../packages/db/src/schema/agents.ts
15424
- var agents, agentAssignments, agentBudgets;
15554
+ var agents, agentAssignments;
15425
15555
  var init_agents = __esm({
15426
15556
  "../../packages/db/src/schema/agents.ts"() {
15427
15557
  "use strict";
@@ -15467,7 +15597,13 @@ var init_agents = __esm({
15467
15597
  taskContextTemplate: text("task_context_template"),
15468
15598
  avatarUrl: text("avatar_url"),
15469
15599
  systemAgent: boolean("system_agent").default(false),
15470
- maxTokensPerJob: integer("max_tokens_per_job").default(0).notNull(),
15600
+ /**
15601
+ * Combien de secondes un appel au modèle peut attendre son premier jeton
15602
+ * pour CET agent (issue #442, migration 0126). NULL = la plateforme décide
15603
+ * (packages/llm/src/turn-clocks.ts). Posée, elle gagne sur la valeur
15604
+ * implicite, relèvements compris.
15605
+ */
15606
+ idleTimeoutSeconds: integer("idle_timeout_seconds"),
15471
15607
  // Cap on characters of agent_memory injected into the system prompt per job
15472
15608
  // (Memory Sprint 2). Pure char budget — token estimation done at call site
15473
15609
  // (length/4). 1500 chars ≈ ~375 tokens, similar to Hermes' 2200+1375 split.
@@ -15488,12 +15624,21 @@ var init_agents = __esm({
15488
15624
  * faire réutilisable ; c'est celui qui PRODUIT qui en accumule.
15489
15625
  */
15490
15626
  reflectionEnabled: boolean("reflection_enabled"),
15491
- // Daily budget for coding-CLI runs (code_task, étape B of the
15492
- // subscription-runtimes plan), in NOTIONAL USD — the cost the claude CLI
15493
- // reports even under subscription (codex reports none; its runs count 0
15494
- // against this cap, bounded by the per-call timeout instead). 0 = no cap.
15495
- // Enforced in the code_task builtin against SUM(cli_runs.cost_usd) today.
15496
- cliDailyBudgetUsd: real("cli_daily_budget_usd").default(10).notNull(),
15627
+ // The agent's budget (#447, migration 0127), in USD, provider-agnostic:
15628
+ // API calls of any provider (`llm_calls.cost_usd`) and coding-CLI runs
15629
+ // (`cli_runs.cost_usd`, notional for the claude CLI; codex reports none)
15630
+ // count against the same ceilings. 0 = no ceiling. Enforced between turns
15631
+ // in the job loop and before every CLI run (packages/db/src/repos/agent-spend.ts).
15632
+ budgetDailyUsd: real("budget_daily_usd").default(0).notNull(),
15633
+ budgetMonthlyUsd: real("budget_monthly_usd").default(0).notNull(),
15634
+ /** From this share of a ceiling (1-100 %), the screen warns. */
15635
+ budgetAlertPct: integer("budget_alert_pct").default(80).notNull(),
15636
+ // What this agent may do with a shell, per kind of action (#464): only the
15637
+ // states the owner set, `allow` | `ask` | `never` per category of
15638
+ // `SHELL_CATEGORIES` (packages/shared/src/shell-checklist.ts). NULL, or a
15639
+ // category left out, = ask. Read by `resolveShellPolicy`, which refuses a
15640
+ // value it cannot parse rather than guess.
15641
+ shellPolicy: jsonb("shell_policy"),
15497
15642
  // Per-provider defaults for code_task runs (étape B-bis): which model and
15498
15643
  // reasoning effort each coding CLI uses BY DEFAULT for this agent. The
15499
15644
  // LLM may still override per task (code_task's optional model/effort
@@ -15572,7 +15717,22 @@ var init_agents = __esm({
15572
15717
  "agents_orchestrator_mode_check",
15573
15718
  sql`${table.orchestratorMode} IN ('router', 'planner') OR ${table.orchestratorMode} IS NULL`
15574
15719
  ),
15575
- check("agents_max_tokens_per_job_check", sql`${table.maxTokensPerJob} >= 0`),
15720
+ check(
15721
+ "agents_budget_daily_usd_check",
15722
+ sql`${table.budgetDailyUsd} >= 0 AND ${table.budgetDailyUsd} <= 1000`
15723
+ ),
15724
+ check(
15725
+ "agents_budget_monthly_usd_check",
15726
+ sql`${table.budgetMonthlyUsd} >= 0 AND ${table.budgetMonthlyUsd} <= 10000`
15727
+ ),
15728
+ check(
15729
+ "agents_budget_alert_pct_check",
15730
+ sql`${table.budgetAlertPct} >= 1 AND ${table.budgetAlertPct} <= 100`
15731
+ ),
15732
+ check(
15733
+ "agents_idle_timeout_seconds_check",
15734
+ sql`${table.idleTimeoutSeconds} IS NULL OR (${table.idleTimeoutSeconds} >= 30 AND ${table.idleTimeoutSeconds} <= 3600)`
15735
+ ),
15576
15736
  check("agents_runtime_check", sql`${table.runtime} IN ('nodal', 'claude-code', 'codex')`),
15577
15737
  // F-6 (audit #2): slug was UNIQUE GLOBALLY, so a 2nd workspace/entity
15578
15738
  // installing the same community skill's companion agent (or any agent
@@ -15609,28 +15769,6 @@ var init_agents = __esm({
15609
15769
  )
15610
15770
  ]
15611
15771
  );
15612
- agentBudgets = pgTable(
15613
- "agent_budgets",
15614
- {
15615
- id: uuid("id").primaryKey().defaultRandom(),
15616
- agentId: uuid("agent_id").unique().references(() => agents.id, { onDelete: "cascade" }),
15617
- entityId: uuid("entity_id").references(() => entities.id, { onDelete: "cascade" }),
15618
- dailyTokenLimit: bigint("daily_token_limit", { mode: "number" }).default(0),
15619
- monthlyTokenLimit: bigint("monthly_token_limit", { mode: "number" }).default(0),
15620
- alertThresholdPct: integer("alert_threshold_pct").default(80),
15621
- autoPause: boolean("auto_pause").default(false),
15622
- maxJobTokens: integer("max_job_tokens").default(15e4),
15623
- createdAt: timestamp("created_at", { withTimezone: true }).defaultNow(),
15624
- updatedAt: timestamp("updated_at", { withTimezone: true }).defaultNow()
15625
- },
15626
- (table) => [
15627
- index("idx_agent_budgets_entity_id").on(table.entityId),
15628
- check(
15629
- "agent_budgets_alert_threshold_pct_check",
15630
- sql`${table.alertThresholdPct} >= 0 AND ${table.alertThresholdPct} <= 100`
15631
- )
15632
- ]
15633
- );
15634
15772
  }
15635
15773
  });
15636
15774
 
@@ -16274,6 +16412,13 @@ var init_approvals = __esm({
16274
16412
  * personne n'a répondu, et sur un refus.
16275
16413
  */
16276
16414
  answer: text("answer"),
16415
+ /**
16416
+ * Why the autonomy checklist held this command (#464): one entry per kind
16417
+ * of action — `{ category, state, details }`, the details being the
16418
+ * commands that did it. The approval card shows them; NULL when the
16419
+ * checklist did not hold the call.
16420
+ */
16421
+ gateReasons: jsonb("gate_reasons"),
16277
16422
  requestedAt: timestamp("requested_at", { withTimezone: true }).defaultNow(),
16278
16423
  resolvedAt: timestamp("resolved_at", { withTimezone: true }),
16279
16424
  resolvedBy: text("resolved_by"),
@@ -17136,6 +17281,15 @@ var init_chat_messages = __esm({
17136
17281
  // Set when this (assistant) turn escalated into a real action job — lets the
17137
17282
  // UI render the job's dispatch/progress inline. NULL for pure conversation.
17138
17283
  jobId: uuid("job_id").references(() => agentJobs.id, { onDelete: "set null" }),
17284
+ // La personne a arrêté cette réponse pendant qu'elle s'écrivait (#456) :
17285
+ // `content` est ce qui avait été écrit. Un FAIT, que l'écran dit avec ses
17286
+ // mots — le runner n'écrit aucune phrase pour ça (invariant #2).
17287
+ stopped: boolean("stopped").notNull().default(false),
17288
+ // Une horloge de silence a coupé cette réponse après qu'elle avait commencé
17289
+ // à s'écrire (#458) : `content` est ce qui avait été écrit, et ceci la raison
17290
+ // (`LLMTimeoutError.reason`). NULL pour une réponse rendue entière. Même
17291
+ // règle que `stopped` : un fait, que l'écran dit.
17292
+ cutReason: text("cut_reason"),
17139
17293
  createdAt: timestamp("created_at", { withTimezone: true }).defaultNow()
17140
17294
  },
17141
17295
  (table) => [
@@ -17842,7 +17996,6 @@ __export(schema_exports, {
17842
17996
  TASK_STATUSES: () => TASK_STATUSES,
17843
17997
  accounts: () => accounts,
17844
17998
  agentAssignments: () => agentAssignments,
17845
- agentBudgets: () => agentBudgets,
17846
17999
  agentConnectorAssignments: () => agentConnectorAssignments,
17847
18000
  agentJobs: () => agentJobs,
17848
18001
  agentMcpServers: () => agentMcpServers,
@@ -18855,6 +19008,53 @@ var init_retention = __esm({
18855
19008
  }
18856
19009
  });
18857
19010
 
19011
+ // ../../packages/db/src/repos/agent-spend.ts
19012
+ async function readAgentSpend(db, agentId, timezone, now = /* @__PURE__ */ new Date()) {
19013
+ const at = sql`${now.toISOString()}::timestamptz`;
19014
+ const day = sql`(date_trunc('day', ${at} AT TIME ZONE ${timezone}) AT TIME ZONE ${timezone})`;
19015
+ const month = sql`(date_trunc('month', ${at} AT TIME ZONE ${timezone}) AT TIME ZONE ${timezone})`;
19016
+ const sum2 = (table, from) => sql`coalesce((SELECT sum(cost_usd) FROM ${sql.raw(table)} WHERE agent_id = ${agents.id} AND created_at >= ${from}), 0)`;
19017
+ const rows = await db.select({
19018
+ today: sql`${sum2("llm_calls", day)} + ${sum2("cli_runs", day)}`,
19019
+ month: sql`${sum2("llm_calls", month)} + ${sum2("cli_runs", month)}`
19020
+ }).from(agents).where(eq(agents.id, agentId)).limit(1);
19021
+ return { todayUsd: Number(rows[0]?.today ?? 0), monthUsd: Number(rows[0]?.month ?? 0) };
19022
+ }
19023
+ async function readAgentBudgetState(db, agentId, fallbackTimezone) {
19024
+ const [row] = await db.select({
19025
+ dailyUsd: agents.budgetDailyUsd,
19026
+ monthlyUsd: agents.budgetMonthlyUsd,
19027
+ alertPct: agents.budgetAlertPct,
19028
+ timezone: entities.timezone
19029
+ }).from(agents).leftJoin(entities, eq(entities.id, agents.entityId)).where(eq(agents.id, agentId)).limit(1);
19030
+ if (!row) return null;
19031
+ const timezone = row.timezone !== null && isValidTimezone(row.timezone) ? row.timezone : fallbackTimezone;
19032
+ const spend = await readAgentSpend(db, agentId, timezone);
19033
+ return { ...row, timezone, ...spend, reached: budgetReached(row, spend) };
19034
+ }
19035
+ function isValidTimezone(tz) {
19036
+ if (tz.trim() === "") return false;
19037
+ try {
19038
+ new Intl.DateTimeFormat("en-US", { timeZone: tz });
19039
+ return true;
19040
+ } catch {
19041
+ return false;
19042
+ }
19043
+ }
19044
+ function budgetReached(ceilings, spend) {
19045
+ if (ceilings.dailyUsd > 0 && spend.todayUsd >= ceilings.dailyUsd) return "day";
19046
+ if (ceilings.monthlyUsd > 0 && spend.monthUsd >= ceilings.monthlyUsd) return "month";
19047
+ return null;
19048
+ }
19049
+ var init_agent_spend = __esm({
19050
+ "../../packages/db/src/repos/agent-spend.ts"() {
19051
+ "use strict";
19052
+ init_drizzle_orm();
19053
+ init_agents();
19054
+ init_entities();
19055
+ }
19056
+ });
19057
+
18858
19058
  // ../../packages/db/src/repos/schedule-state.ts
18859
19059
  async function readScheduleState(db, scheduleId) {
18860
19060
  const rows = await db.select({
@@ -18999,7 +19199,6 @@ __export(src_exports, {
18999
19199
  TASK_STATUSES: () => TASK_STATUSES,
19000
19200
  accounts: () => accounts,
19001
19201
  agentAssignments: () => agentAssignments,
19002
- agentBudgets: () => agentBudgets,
19003
19202
  agentConnectorAssignments: () => agentConnectorAssignments,
19004
19203
  agentJobs: () => agentJobs,
19005
19204
  agentMcpServers: () => agentMcpServers,
@@ -19020,6 +19219,7 @@ __export(src_exports, {
19020
19219
  assignSkillRepo: () => assignSkillRepo,
19021
19220
  attachAgentToOrchestrator: () => attachAgentToOrchestrator,
19022
19221
  avg: () => avg,
19222
+ budgetReached: () => budgetReached,
19023
19223
  channelAllowedConversations: () => channelAllowedConversations,
19024
19224
  channelBindings: () => channelBindings,
19025
19225
  chatMessages: () => chatMessages,
@@ -19083,6 +19283,8 @@ __export(src_exports, {
19083
19283
  notInArray: () => notInArray,
19084
19284
  or: () => or,
19085
19285
  pruneOldJobs: () => pruneOldJobs,
19286
+ readAgentBudgetState: () => readAgentBudgetState,
19287
+ readAgentSpend: () => readAgentSpend,
19086
19288
  readScheduleState: () => readScheduleState,
19087
19289
  refreshAndPersistCredential: () => refreshAndPersistCredential,
19088
19290
  resolveOwnerChatId: () => resolveOwnerChatId,
@@ -19129,6 +19331,7 @@ var init_src4 = __esm({
19129
19331
  init_agents2();
19130
19332
  init_skills2();
19131
19333
  init_retention();
19334
+ init_agent_spend();
19132
19335
  init_schedule_state2();
19133
19336
  init_app_settings2();
19134
19337
  init_verification_surfaces2();
@@ -21940,7 +22143,7 @@ var init_zod_compat = __esm({
21940
22143
  });
21941
22144
 
21942
22145
  // ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.29.0_zod@4.4.3/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js
21943
- import * as z25 from "zod/v4";
22146
+ import * as z26 from "zod/v4";
21944
22147
  function assertCompleteRequestPrompt(request) {
21945
22148
  if (request.params.ref.type !== "ref/prompt") {
21946
22149
  throw new TypeError(`Expected CompleteRequestPrompt, but got ${request.params.ref.type}`);
@@ -21961,26 +22164,26 @@ var init_types3 = __esm({
21961
22164
  SUPPORTED_PROTOCOL_VERSIONS = [LATEST_PROTOCOL_VERSION, "2025-06-18", "2025-03-26", "2024-11-05", "2024-10-07"];
21962
22165
  RELATED_TASK_META_KEY = "io.modelcontextprotocol/related-task";
21963
22166
  JSONRPC_VERSION = "2.0";
21964
- AssertObjectSchema = z25.custom((v) => v !== null && (typeof v === "object" || typeof v === "function"));
21965
- ProgressTokenSchema = z25.union([z25.string(), z25.number().int()]);
21966
- CursorSchema = z25.string();
21967
- TaskCreationParamsSchema = z25.looseObject({
22167
+ AssertObjectSchema = z26.custom((v) => v !== null && (typeof v === "object" || typeof v === "function"));
22168
+ ProgressTokenSchema = z26.union([z26.string(), z26.number().int()]);
22169
+ CursorSchema = z26.string();
22170
+ TaskCreationParamsSchema = z26.looseObject({
21968
22171
  /**
21969
22172
  * Requested duration in milliseconds to retain task from creation.
21970
22173
  */
21971
- ttl: z25.number().optional(),
22174
+ ttl: z26.number().optional(),
21972
22175
  /**
21973
22176
  * Time in milliseconds to wait between task status requests.
21974
22177
  */
21975
- pollInterval: z25.number().optional()
22178
+ pollInterval: z26.number().optional()
21976
22179
  });
21977
- TaskMetadataSchema = z25.object({
21978
- ttl: z25.number().optional()
22180
+ TaskMetadataSchema = z26.object({
22181
+ ttl: z26.number().optional()
21979
22182
  });
21980
- RelatedTaskMetadataSchema = z25.object({
21981
- taskId: z25.string()
22183
+ RelatedTaskMetadataSchema = z26.object({
22184
+ taskId: z26.string()
21982
22185
  });
21983
- RequestMetaSchema = z25.looseObject({
22186
+ RequestMetaSchema = z26.looseObject({
21984
22187
  /**
21985
22188
  * If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.
21986
22189
  */
@@ -21990,7 +22193,7 @@ var init_types3 = __esm({
21990
22193
  */
21991
22194
  [RELATED_TASK_META_KEY]: RelatedTaskMetadataSchema.optional()
21992
22195
  });
21993
- BaseRequestParamsSchema = z25.object({
22196
+ BaseRequestParamsSchema = z26.object({
21994
22197
  /**
21995
22198
  * See [General fields: `_meta`](/specification/draft/basic/index#meta) for notes on `_meta` usage.
21996
22199
  */
@@ -22008,42 +22211,42 @@ var init_types3 = __esm({
22008
22211
  task: TaskMetadataSchema.optional()
22009
22212
  });
22010
22213
  isTaskAugmentedRequestParams = (value) => TaskAugmentedRequestParamsSchema.safeParse(value).success;
22011
- RequestSchema = z25.object({
22012
- method: z25.string(),
22214
+ RequestSchema = z26.object({
22215
+ method: z26.string(),
22013
22216
  params: BaseRequestParamsSchema.loose().optional()
22014
22217
  });
22015
- NotificationsParamsSchema = z25.object({
22218
+ NotificationsParamsSchema = z26.object({
22016
22219
  /**
22017
22220
  * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
22018
22221
  * for notes on _meta usage.
22019
22222
  */
22020
22223
  _meta: RequestMetaSchema.optional()
22021
22224
  });
22022
- NotificationSchema = z25.object({
22023
- method: z25.string(),
22225
+ NotificationSchema = z26.object({
22226
+ method: z26.string(),
22024
22227
  params: NotificationsParamsSchema.loose().optional()
22025
22228
  });
22026
- ResultSchema = z25.looseObject({
22229
+ ResultSchema = z26.looseObject({
22027
22230
  /**
22028
22231
  * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
22029
22232
  * for notes on _meta usage.
22030
22233
  */
22031
22234
  _meta: RequestMetaSchema.optional()
22032
22235
  });
22033
- RequestIdSchema = z25.union([z25.string(), z25.number().int()]);
22034
- JSONRPCRequestSchema = z25.object({
22035
- jsonrpc: z25.literal(JSONRPC_VERSION),
22236
+ RequestIdSchema = z26.union([z26.string(), z26.number().int()]);
22237
+ JSONRPCRequestSchema = z26.object({
22238
+ jsonrpc: z26.literal(JSONRPC_VERSION),
22036
22239
  id: RequestIdSchema,
22037
22240
  ...RequestSchema.shape
22038
22241
  }).strict();
22039
22242
  isJSONRPCRequest = (value) => JSONRPCRequestSchema.safeParse(value).success;
22040
- JSONRPCNotificationSchema = z25.object({
22041
- jsonrpc: z25.literal(JSONRPC_VERSION),
22243
+ JSONRPCNotificationSchema = z26.object({
22244
+ jsonrpc: z26.literal(JSONRPC_VERSION),
22042
22245
  ...NotificationSchema.shape
22043
22246
  }).strict();
22044
22247
  isJSONRPCNotification = (value) => JSONRPCNotificationSchema.safeParse(value).success;
22045
- JSONRPCResultResponseSchema = z25.object({
22046
- jsonrpc: z25.literal(JSONRPC_VERSION),
22248
+ JSONRPCResultResponseSchema = z26.object({
22249
+ jsonrpc: z26.literal(JSONRPC_VERSION),
22047
22250
  id: RequestIdSchema,
22048
22251
  result: ResultSchema
22049
22252
  }).strict();
@@ -22058,32 +22261,32 @@ var init_types3 = __esm({
22058
22261
  ErrorCode2[ErrorCode2["InternalError"] = -32603] = "InternalError";
22059
22262
  ErrorCode2[ErrorCode2["UrlElicitationRequired"] = -32042] = "UrlElicitationRequired";
22060
22263
  })(ErrorCode || (ErrorCode = {}));
22061
- JSONRPCErrorResponseSchema = z25.object({
22062
- jsonrpc: z25.literal(JSONRPC_VERSION),
22264
+ JSONRPCErrorResponseSchema = z26.object({
22265
+ jsonrpc: z26.literal(JSONRPC_VERSION),
22063
22266
  id: RequestIdSchema.optional(),
22064
- error: z25.object({
22267
+ error: z26.object({
22065
22268
  /**
22066
22269
  * The error type that occurred.
22067
22270
  */
22068
- code: z25.number().int(),
22271
+ code: z26.number().int(),
22069
22272
  /**
22070
22273
  * A short description of the error. The message SHOULD be limited to a concise single sentence.
22071
22274
  */
22072
- message: z25.string(),
22275
+ message: z26.string(),
22073
22276
  /**
22074
22277
  * Additional information about the error. The value of this member is defined by the sender (e.g. detailed error information, nested errors etc.).
22075
22278
  */
22076
- data: z25.unknown().optional()
22279
+ data: z26.unknown().optional()
22077
22280
  })
22078
22281
  }).strict();
22079
22282
  isJSONRPCErrorResponse = (value) => JSONRPCErrorResponseSchema.safeParse(value).success;
22080
- JSONRPCMessageSchema = z25.union([
22283
+ JSONRPCMessageSchema = z26.union([
22081
22284
  JSONRPCRequestSchema,
22082
22285
  JSONRPCNotificationSchema,
22083
22286
  JSONRPCResultResponseSchema,
22084
22287
  JSONRPCErrorResponseSchema
22085
22288
  ]);
22086
- JSONRPCResponseSchema = z25.union([JSONRPCResultResponseSchema, JSONRPCErrorResponseSchema]);
22289
+ JSONRPCResponseSchema = z26.union([JSONRPCResultResponseSchema, JSONRPCErrorResponseSchema]);
22087
22290
  EmptyResultSchema = ResultSchema.strict();
22088
22291
  CancelledNotificationParamsSchema = NotificationsParamsSchema.extend({
22089
22292
  /**
@@ -22095,28 +22298,28 @@ var init_types3 = __esm({
22095
22298
  /**
22096
22299
  * An optional string describing the reason for the cancellation. This MAY be logged or presented to the user.
22097
22300
  */
22098
- reason: z25.string().optional()
22301
+ reason: z26.string().optional()
22099
22302
  });
22100
22303
  CancelledNotificationSchema = NotificationSchema.extend({
22101
- method: z25.literal("notifications/cancelled"),
22304
+ method: z26.literal("notifications/cancelled"),
22102
22305
  params: CancelledNotificationParamsSchema
22103
22306
  });
22104
- IconSchema = z25.object({
22307
+ IconSchema = z26.object({
22105
22308
  /**
22106
22309
  * URL or data URI for the icon.
22107
22310
  */
22108
- src: z25.string(),
22311
+ src: z26.string(),
22109
22312
  /**
22110
22313
  * Optional MIME type for the icon.
22111
22314
  */
22112
- mimeType: z25.string().optional(),
22315
+ mimeType: z26.string().optional(),
22113
22316
  /**
22114
22317
  * Optional array of strings that specify sizes at which the icon can be used.
22115
22318
  * Each string should be in WxH format (e.g., `"48x48"`, `"96x96"`) or `"any"` for scalable formats like SVG.
22116
22319
  *
22117
22320
  * If not provided, the client should assume that the icon can be used at any size.
22118
22321
  */
22119
- sizes: z25.array(z25.string()).optional(),
22322
+ sizes: z26.array(z26.string()).optional(),
22120
22323
  /**
22121
22324
  * Optional specifier for the theme this icon is designed for. `light` indicates
22122
22325
  * the icon is designed to be used with a light background, and `dark` indicates
@@ -22124,9 +22327,9 @@ var init_types3 = __esm({
22124
22327
  *
22125
22328
  * If not provided, the client should assume the icon can be used with any theme.
22126
22329
  */
22127
- theme: z25.enum(["light", "dark"]).optional()
22330
+ theme: z26.enum(["light", "dark"]).optional()
22128
22331
  });
22129
- IconsSchema = z25.object({
22332
+ IconsSchema = z26.object({
22130
22333
  /**
22131
22334
  * Optional set of sized icons that the client can display in a user interface.
22132
22335
  *
@@ -22138,11 +22341,11 @@ var init_types3 = __esm({
22138
22341
  * - `image/svg+xml` - SVG images (scalable but requires security precautions)
22139
22342
  * - `image/webp` - WebP images (modern, efficient format)
22140
22343
  */
22141
- icons: z25.array(IconSchema).optional()
22344
+ icons: z26.array(IconSchema).optional()
22142
22345
  });
22143
- BaseMetadataSchema = z25.object({
22346
+ BaseMetadataSchema = z26.object({
22144
22347
  /** Intended for programmatic or logical use, but used as a display name in past specs or fallback */
22145
- name: z25.string(),
22348
+ name: z26.string(),
22146
22349
  /**
22147
22350
  * Intended for UI and end-user contexts — optimized to be human-readable and easily understood,
22148
22351
  * even by those unfamiliar with domain-specific terminology.
@@ -22151,16 +22354,16 @@ var init_types3 = __esm({
22151
22354
  * where `annotations.title` should be given precedence over using `name`,
22152
22355
  * if present).
22153
22356
  */
22154
- title: z25.string().optional()
22357
+ title: z26.string().optional()
22155
22358
  });
22156
22359
  ImplementationSchema = BaseMetadataSchema.extend({
22157
22360
  ...BaseMetadataSchema.shape,
22158
22361
  ...IconsSchema.shape,
22159
- version: z25.string(),
22362
+ version: z26.string(),
22160
22363
  /**
22161
22364
  * An optional URL of the website for this implementation.
22162
22365
  */
22163
- websiteUrl: z25.string().optional(),
22366
+ websiteUrl: z26.string().optional(),
22164
22367
  /**
22165
22368
  * An optional human-readable description of what this implementation does.
22166
22369
  *
@@ -22168,23 +22371,23 @@ var init_types3 = __esm({
22168
22371
  * and capabilities. For example, a server might describe the types of resources
22169
22372
  * or tools it provides, while a client might describe its intended use case.
22170
22373
  */
22171
- description: z25.string().optional()
22374
+ description: z26.string().optional()
22172
22375
  });
22173
- FormElicitationCapabilitySchema = z25.intersection(z25.object({
22174
- applyDefaults: z25.boolean().optional()
22175
- }), z25.record(z25.string(), z25.unknown()));
22176
- ElicitationCapabilitySchema = z25.preprocess((value) => {
22376
+ FormElicitationCapabilitySchema = z26.intersection(z26.object({
22377
+ applyDefaults: z26.boolean().optional()
22378
+ }), z26.record(z26.string(), z26.unknown()));
22379
+ ElicitationCapabilitySchema = z26.preprocess((value) => {
22177
22380
  if (value && typeof value === "object" && !Array.isArray(value)) {
22178
22381
  if (Object.keys(value).length === 0) {
22179
22382
  return { form: {} };
22180
22383
  }
22181
22384
  }
22182
22385
  return value;
22183
- }, z25.intersection(z25.object({
22386
+ }, z26.intersection(z26.object({
22184
22387
  form: FormElicitationCapabilitySchema.optional(),
22185
22388
  url: AssertObjectSchema.optional()
22186
- }), z25.record(z25.string(), z25.unknown()).optional()));
22187
- ClientTasksCapabilitySchema = z25.looseObject({
22389
+ }), z26.record(z26.string(), z26.unknown()).optional()));
22390
+ ClientTasksCapabilitySchema = z26.looseObject({
22188
22391
  /**
22189
22392
  * Present if the client supports listing tasks.
22190
22393
  */
@@ -22196,22 +22399,22 @@ var init_types3 = __esm({
22196
22399
  /**
22197
22400
  * Capabilities for task creation on specific request types.
22198
22401
  */
22199
- requests: z25.looseObject({
22402
+ requests: z26.looseObject({
22200
22403
  /**
22201
22404
  * Task support for sampling requests.
22202
22405
  */
22203
- sampling: z25.looseObject({
22406
+ sampling: z26.looseObject({
22204
22407
  createMessage: AssertObjectSchema.optional()
22205
22408
  }).optional(),
22206
22409
  /**
22207
22410
  * Task support for elicitation requests.
22208
22411
  */
22209
- elicitation: z25.looseObject({
22412
+ elicitation: z26.looseObject({
22210
22413
  create: AssertObjectSchema.optional()
22211
22414
  }).optional()
22212
22415
  }).optional()
22213
22416
  });
22214
- ServerTasksCapabilitySchema = z25.looseObject({
22417
+ ServerTasksCapabilitySchema = z26.looseObject({
22215
22418
  /**
22216
22419
  * Present if the server supports listing tasks.
22217
22420
  */
@@ -22223,24 +22426,24 @@ var init_types3 = __esm({
22223
22426
  /**
22224
22427
  * Capabilities for task creation on specific request types.
22225
22428
  */
22226
- requests: z25.looseObject({
22429
+ requests: z26.looseObject({
22227
22430
  /**
22228
22431
  * Task support for tool requests.
22229
22432
  */
22230
- tools: z25.looseObject({
22433
+ tools: z26.looseObject({
22231
22434
  call: AssertObjectSchema.optional()
22232
22435
  }).optional()
22233
22436
  }).optional()
22234
22437
  });
22235
- ClientCapabilitiesSchema = z25.object({
22438
+ ClientCapabilitiesSchema = z26.object({
22236
22439
  /**
22237
22440
  * Experimental, non-standard capabilities that the client supports.
22238
22441
  */
22239
- experimental: z25.record(z25.string(), AssertObjectSchema).optional(),
22442
+ experimental: z26.record(z26.string(), AssertObjectSchema).optional(),
22240
22443
  /**
22241
22444
  * Present if the client supports sampling from an LLM.
22242
22445
  */
22243
- sampling: z25.object({
22446
+ sampling: z26.object({
22244
22447
  /**
22245
22448
  * Present if the client supports context inclusion via includeContext parameter.
22246
22449
  * If not declared, servers SHOULD only use `includeContext: "none"` (or omit it).
@@ -22258,11 +22461,11 @@ var init_types3 = __esm({
22258
22461
  /**
22259
22462
  * Present if the client supports listing roots.
22260
22463
  */
22261
- roots: z25.object({
22464
+ roots: z26.object({
22262
22465
  /**
22263
22466
  * Whether the client supports issuing notifications for changes to the roots list.
22264
22467
  */
22265
- listChanged: z25.boolean().optional()
22468
+ listChanged: z26.boolean().optional()
22266
22469
  }).optional(),
22267
22470
  /**
22268
22471
  * Present if the client supports task creation.
@@ -22271,25 +22474,25 @@ var init_types3 = __esm({
22271
22474
  /**
22272
22475
  * Extensions that the client supports. Keys are extension identifiers (vendor-prefix/extension-name).
22273
22476
  */
22274
- extensions: z25.record(z25.string(), AssertObjectSchema).optional()
22477
+ extensions: z26.record(z26.string(), AssertObjectSchema).optional()
22275
22478
  });
22276
22479
  InitializeRequestParamsSchema = BaseRequestParamsSchema.extend({
22277
22480
  /**
22278
22481
  * The latest version of the Model Context Protocol that the client supports. The client MAY decide to support older versions as well.
22279
22482
  */
22280
- protocolVersion: z25.string(),
22483
+ protocolVersion: z26.string(),
22281
22484
  capabilities: ClientCapabilitiesSchema,
22282
22485
  clientInfo: ImplementationSchema
22283
22486
  });
22284
22487
  InitializeRequestSchema = RequestSchema.extend({
22285
- method: z25.literal("initialize"),
22488
+ method: z26.literal("initialize"),
22286
22489
  params: InitializeRequestParamsSchema
22287
22490
  });
22288
- ServerCapabilitiesSchema = z25.object({
22491
+ ServerCapabilitiesSchema = z26.object({
22289
22492
  /**
22290
22493
  * Experimental, non-standard capabilities that the server supports.
22291
22494
  */
22292
- experimental: z25.record(z25.string(), AssertObjectSchema).optional(),
22495
+ experimental: z26.record(z26.string(), AssertObjectSchema).optional(),
22293
22496
  /**
22294
22497
  * Present if the server supports sending log messages to the client.
22295
22498
  */
@@ -22301,33 +22504,33 @@ var init_types3 = __esm({
22301
22504
  /**
22302
22505
  * Present if the server offers any prompt templates.
22303
22506
  */
22304
- prompts: z25.object({
22507
+ prompts: z26.object({
22305
22508
  /**
22306
22509
  * Whether this server supports issuing notifications for changes to the prompt list.
22307
22510
  */
22308
- listChanged: z25.boolean().optional()
22511
+ listChanged: z26.boolean().optional()
22309
22512
  }).optional(),
22310
22513
  /**
22311
22514
  * Present if the server offers any resources to read.
22312
22515
  */
22313
- resources: z25.object({
22516
+ resources: z26.object({
22314
22517
  /**
22315
22518
  * Whether this server supports clients subscribing to resource updates.
22316
22519
  */
22317
- subscribe: z25.boolean().optional(),
22520
+ subscribe: z26.boolean().optional(),
22318
22521
  /**
22319
22522
  * Whether this server supports issuing notifications for changes to the resource list.
22320
22523
  */
22321
- listChanged: z25.boolean().optional()
22524
+ listChanged: z26.boolean().optional()
22322
22525
  }).optional(),
22323
22526
  /**
22324
22527
  * Present if the server offers any tools to call.
22325
22528
  */
22326
- tools: z25.object({
22529
+ tools: z26.object({
22327
22530
  /**
22328
22531
  * Whether this server supports issuing notifications for changes to the tool list.
22329
22532
  */
22330
- listChanged: z25.boolean().optional()
22533
+ listChanged: z26.boolean().optional()
22331
22534
  }).optional(),
22332
22535
  /**
22333
22536
  * Present if the server supports task creation.
@@ -22336,13 +22539,13 @@ var init_types3 = __esm({
22336
22539
  /**
22337
22540
  * Extensions that the server supports. Keys are extension identifiers (vendor-prefix/extension-name).
22338
22541
  */
22339
- extensions: z25.record(z25.string(), AssertObjectSchema).optional()
22542
+ extensions: z26.record(z26.string(), AssertObjectSchema).optional()
22340
22543
  });
22341
22544
  InitializeResultSchema = ResultSchema.extend({
22342
22545
  /**
22343
22546
  * The version of the Model Context Protocol that the server wants to use. This may not match the version that the client requested. If the client cannot support this version, it MUST disconnect.
22344
22547
  */
22345
- protocolVersion: z25.string(),
22548
+ protocolVersion: z26.string(),
22346
22549
  capabilities: ServerCapabilitiesSchema,
22347
22550
  serverInfo: ImplementationSchema,
22348
22551
  /**
@@ -22350,31 +22553,31 @@ var init_types3 = __esm({
22350
22553
  *
22351
22554
  * This can be used by clients to improve the LLM's understanding of available tools, resources, etc. It can be thought of like a "hint" to the model. For example, this information MAY be added to the system prompt.
22352
22555
  */
22353
- instructions: z25.string().optional()
22556
+ instructions: z26.string().optional()
22354
22557
  });
22355
22558
  InitializedNotificationSchema = NotificationSchema.extend({
22356
- method: z25.literal("notifications/initialized"),
22559
+ method: z26.literal("notifications/initialized"),
22357
22560
  params: NotificationsParamsSchema.optional()
22358
22561
  });
22359
22562
  PingRequestSchema = RequestSchema.extend({
22360
- method: z25.literal("ping"),
22563
+ method: z26.literal("ping"),
22361
22564
  params: BaseRequestParamsSchema.optional()
22362
22565
  });
22363
- ProgressSchema = z25.object({
22566
+ ProgressSchema = z26.object({
22364
22567
  /**
22365
22568
  * The progress thus far. This should increase every time progress is made, even if the total is unknown.
22366
22569
  */
22367
- progress: z25.number(),
22570
+ progress: z26.number(),
22368
22571
  /**
22369
22572
  * Total number of items to process (or total progress required), if known.
22370
22573
  */
22371
- total: z25.optional(z25.number()),
22574
+ total: z26.optional(z26.number()),
22372
22575
  /**
22373
22576
  * An optional message describing the current progress.
22374
22577
  */
22375
- message: z25.optional(z25.string())
22578
+ message: z26.optional(z26.string())
22376
22579
  });
22377
- ProgressNotificationParamsSchema = z25.object({
22580
+ ProgressNotificationParamsSchema = z26.object({
22378
22581
  ...NotificationsParamsSchema.shape,
22379
22582
  ...ProgressSchema.shape,
22380
22583
  /**
@@ -22383,7 +22586,7 @@ var init_types3 = __esm({
22383
22586
  progressToken: ProgressTokenSchema
22384
22587
  });
22385
22588
  ProgressNotificationSchema = NotificationSchema.extend({
22386
- method: z25.literal("notifications/progress"),
22589
+ method: z26.literal("notifications/progress"),
22387
22590
  params: ProgressNotificationParamsSchema
22388
22591
  });
22389
22592
  PaginatedRequestParamsSchema = BaseRequestParamsSchema.extend({
@@ -22403,86 +22606,86 @@ var init_types3 = __esm({
22403
22606
  */
22404
22607
  nextCursor: CursorSchema.optional()
22405
22608
  });
22406
- TaskStatusSchema2 = z25.enum(["working", "input_required", "completed", "failed", "cancelled"]);
22407
- TaskSchema = z25.object({
22408
- taskId: z25.string(),
22609
+ TaskStatusSchema2 = z26.enum(["working", "input_required", "completed", "failed", "cancelled"]);
22610
+ TaskSchema = z26.object({
22611
+ taskId: z26.string(),
22409
22612
  status: TaskStatusSchema2,
22410
22613
  /**
22411
22614
  * Time in milliseconds to keep task results available after completion.
22412
22615
  * If null, the task has unlimited lifetime until manually cleaned up.
22413
22616
  */
22414
- ttl: z25.union([z25.number(), z25.null()]),
22617
+ ttl: z26.union([z26.number(), z26.null()]),
22415
22618
  /**
22416
22619
  * ISO 8601 timestamp when the task was created.
22417
22620
  */
22418
- createdAt: z25.string(),
22621
+ createdAt: z26.string(),
22419
22622
  /**
22420
22623
  * ISO 8601 timestamp when the task was last updated.
22421
22624
  */
22422
- lastUpdatedAt: z25.string(),
22423
- pollInterval: z25.optional(z25.number()),
22625
+ lastUpdatedAt: z26.string(),
22626
+ pollInterval: z26.optional(z26.number()),
22424
22627
  /**
22425
22628
  * Optional diagnostic message for failed tasks or other status information.
22426
22629
  */
22427
- statusMessage: z25.optional(z25.string())
22630
+ statusMessage: z26.optional(z26.string())
22428
22631
  });
22429
22632
  CreateTaskResultSchema = ResultSchema.extend({
22430
22633
  task: TaskSchema
22431
22634
  });
22432
22635
  TaskStatusNotificationParamsSchema = NotificationsParamsSchema.merge(TaskSchema);
22433
22636
  TaskStatusNotificationSchema = NotificationSchema.extend({
22434
- method: z25.literal("notifications/tasks/status"),
22637
+ method: z26.literal("notifications/tasks/status"),
22435
22638
  params: TaskStatusNotificationParamsSchema
22436
22639
  });
22437
22640
  GetTaskRequestSchema = RequestSchema.extend({
22438
- method: z25.literal("tasks/get"),
22641
+ method: z26.literal("tasks/get"),
22439
22642
  params: BaseRequestParamsSchema.extend({
22440
- taskId: z25.string()
22643
+ taskId: z26.string()
22441
22644
  })
22442
22645
  });
22443
22646
  GetTaskResultSchema = ResultSchema.merge(TaskSchema);
22444
22647
  GetTaskPayloadRequestSchema = RequestSchema.extend({
22445
- method: z25.literal("tasks/result"),
22648
+ method: z26.literal("tasks/result"),
22446
22649
  params: BaseRequestParamsSchema.extend({
22447
- taskId: z25.string()
22650
+ taskId: z26.string()
22448
22651
  })
22449
22652
  });
22450
22653
  GetTaskPayloadResultSchema = ResultSchema.loose();
22451
22654
  ListTasksRequestSchema = PaginatedRequestSchema.extend({
22452
- method: z25.literal("tasks/list")
22655
+ method: z26.literal("tasks/list")
22453
22656
  });
22454
22657
  ListTasksResultSchema = PaginatedResultSchema.extend({
22455
- tasks: z25.array(TaskSchema)
22658
+ tasks: z26.array(TaskSchema)
22456
22659
  });
22457
22660
  CancelTaskRequestSchema = RequestSchema.extend({
22458
- method: z25.literal("tasks/cancel"),
22661
+ method: z26.literal("tasks/cancel"),
22459
22662
  params: BaseRequestParamsSchema.extend({
22460
- taskId: z25.string()
22663
+ taskId: z26.string()
22461
22664
  })
22462
22665
  });
22463
22666
  CancelTaskResultSchema = ResultSchema.merge(TaskSchema);
22464
- ResourceContentsSchema = z25.object({
22667
+ ResourceContentsSchema = z26.object({
22465
22668
  /**
22466
22669
  * The URI of this resource.
22467
22670
  */
22468
- uri: z25.string(),
22671
+ uri: z26.string(),
22469
22672
  /**
22470
22673
  * The MIME type of this resource, if known.
22471
22674
  */
22472
- mimeType: z25.optional(z25.string()),
22675
+ mimeType: z26.optional(z26.string()),
22473
22676
  /**
22474
22677
  * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
22475
22678
  * for notes on _meta usage.
22476
22679
  */
22477
- _meta: z25.record(z25.string(), z25.unknown()).optional()
22680
+ _meta: z26.record(z26.string(), z26.unknown()).optional()
22478
22681
  });
22479
22682
  TextResourceContentsSchema = ResourceContentsSchema.extend({
22480
22683
  /**
22481
22684
  * The text of the item. This must only be set if the item can actually be represented as text (not binary data).
22482
22685
  */
22483
- text: z25.string()
22686
+ text: z26.string()
22484
22687
  });
22485
- Base64Schema = z25.string().refine((val) => {
22688
+ Base64Schema = z26.string().refine((val) => {
22486
22689
  try {
22487
22690
  atob(val);
22488
22691
  return true;
@@ -22496,44 +22699,44 @@ var init_types3 = __esm({
22496
22699
  */
22497
22700
  blob: Base64Schema
22498
22701
  });
22499
- RoleSchema = z25.enum(["user", "assistant"]);
22500
- AnnotationsSchema = z25.object({
22702
+ RoleSchema = z26.enum(["user", "assistant"]);
22703
+ AnnotationsSchema = z26.object({
22501
22704
  /**
22502
22705
  * Intended audience(s) for the resource.
22503
22706
  */
22504
- audience: z25.array(RoleSchema).optional(),
22707
+ audience: z26.array(RoleSchema).optional(),
22505
22708
  /**
22506
22709
  * Importance hint for the resource, from 0 (least) to 1 (most).
22507
22710
  */
22508
- priority: z25.number().min(0).max(1).optional(),
22711
+ priority: z26.number().min(0).max(1).optional(),
22509
22712
  /**
22510
22713
  * ISO 8601 timestamp for the most recent modification.
22511
22714
  */
22512
- lastModified: z25.iso.datetime({ offset: true }).optional()
22715
+ lastModified: z26.iso.datetime({ offset: true }).optional()
22513
22716
  });
22514
- ResourceSchema = z25.object({
22717
+ ResourceSchema = z26.object({
22515
22718
  ...BaseMetadataSchema.shape,
22516
22719
  ...IconsSchema.shape,
22517
22720
  /**
22518
22721
  * The URI of this resource.
22519
22722
  */
22520
- uri: z25.string(),
22723
+ uri: z26.string(),
22521
22724
  /**
22522
22725
  * A description of what this resource represents.
22523
22726
  *
22524
22727
  * This can be used by clients to improve the LLM's understanding of available resources. It can be thought of like a "hint" to the model.
22525
22728
  */
22526
- description: z25.optional(z25.string()),
22729
+ description: z26.optional(z26.string()),
22527
22730
  /**
22528
22731
  * The MIME type of this resource, if known.
22529
22732
  */
22530
- mimeType: z25.optional(z25.string()),
22733
+ mimeType: z26.optional(z26.string()),
22531
22734
  /**
22532
22735
  * The size of the raw resource content, in bytes (i.e., before base64 encoding or any tokenization), if known.
22533
22736
  *
22534
22737
  * This can be used by Hosts to display file sizes and estimate context window usage.
22535
22738
  */
22536
- size: z25.optional(z25.number()),
22739
+ size: z26.optional(z26.number()),
22537
22740
  /**
22538
22741
  * Optional annotations for the client.
22539
22742
  */
@@ -22542,25 +22745,25 @@ var init_types3 = __esm({
22542
22745
  * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
22543
22746
  * for notes on _meta usage.
22544
22747
  */
22545
- _meta: z25.optional(z25.looseObject({}))
22748
+ _meta: z26.optional(z26.looseObject({}))
22546
22749
  });
22547
- ResourceTemplateSchema = z25.object({
22750
+ ResourceTemplateSchema = z26.object({
22548
22751
  ...BaseMetadataSchema.shape,
22549
22752
  ...IconsSchema.shape,
22550
22753
  /**
22551
22754
  * A URI template (according to RFC 6570) that can be used to construct resource URIs.
22552
22755
  */
22553
- uriTemplate: z25.string(),
22756
+ uriTemplate: z26.string(),
22554
22757
  /**
22555
22758
  * A description of what this template is for.
22556
22759
  *
22557
22760
  * This can be used by clients to improve the LLM's understanding of available resources. It can be thought of like a "hint" to the model.
22558
22761
  */
22559
- description: z25.optional(z25.string()),
22762
+ description: z26.optional(z26.string()),
22560
22763
  /**
22561
22764
  * The MIME type for all resources that match this template. This should only be included if all resources matching this template have the same type.
22562
22765
  */
22563
- mimeType: z25.optional(z25.string()),
22766
+ mimeType: z26.optional(z26.string()),
22564
22767
  /**
22565
22768
  * Optional annotations for the client.
22566
22769
  */
@@ -22569,19 +22772,19 @@ var init_types3 = __esm({
22569
22772
  * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
22570
22773
  * for notes on _meta usage.
22571
22774
  */
22572
- _meta: z25.optional(z25.looseObject({}))
22775
+ _meta: z26.optional(z26.looseObject({}))
22573
22776
  });
22574
22777
  ListResourcesRequestSchema = PaginatedRequestSchema.extend({
22575
- method: z25.literal("resources/list")
22778
+ method: z26.literal("resources/list")
22576
22779
  });
22577
22780
  ListResourcesResultSchema = PaginatedResultSchema.extend({
22578
- resources: z25.array(ResourceSchema)
22781
+ resources: z26.array(ResourceSchema)
22579
22782
  });
22580
22783
  ListResourceTemplatesRequestSchema = PaginatedRequestSchema.extend({
22581
- method: z25.literal("resources/templates/list")
22784
+ method: z26.literal("resources/templates/list")
22582
22785
  });
22583
22786
  ListResourceTemplatesResultSchema = PaginatedResultSchema.extend({
22584
- resourceTemplates: z25.array(ResourceTemplateSchema)
22787
+ resourceTemplates: z26.array(ResourceTemplateSchema)
22585
22788
  });
22586
22789
  ResourceRequestParamsSchema = BaseRequestParamsSchema.extend({
22587
22790
  /**
@@ -22589,97 +22792,97 @@ var init_types3 = __esm({
22589
22792
  *
22590
22793
  * @format uri
22591
22794
  */
22592
- uri: z25.string()
22795
+ uri: z26.string()
22593
22796
  });
22594
22797
  ReadResourceRequestParamsSchema = ResourceRequestParamsSchema;
22595
22798
  ReadResourceRequestSchema = RequestSchema.extend({
22596
- method: z25.literal("resources/read"),
22799
+ method: z26.literal("resources/read"),
22597
22800
  params: ReadResourceRequestParamsSchema
22598
22801
  });
22599
22802
  ReadResourceResultSchema = ResultSchema.extend({
22600
- contents: z25.array(z25.union([TextResourceContentsSchema, BlobResourceContentsSchema]))
22803
+ contents: z26.array(z26.union([TextResourceContentsSchema, BlobResourceContentsSchema]))
22601
22804
  });
22602
22805
  ResourceListChangedNotificationSchema = NotificationSchema.extend({
22603
- method: z25.literal("notifications/resources/list_changed"),
22806
+ method: z26.literal("notifications/resources/list_changed"),
22604
22807
  params: NotificationsParamsSchema.optional()
22605
22808
  });
22606
22809
  SubscribeRequestParamsSchema = ResourceRequestParamsSchema;
22607
22810
  SubscribeRequestSchema = RequestSchema.extend({
22608
- method: z25.literal("resources/subscribe"),
22811
+ method: z26.literal("resources/subscribe"),
22609
22812
  params: SubscribeRequestParamsSchema
22610
22813
  });
22611
22814
  UnsubscribeRequestParamsSchema = ResourceRequestParamsSchema;
22612
22815
  UnsubscribeRequestSchema = RequestSchema.extend({
22613
- method: z25.literal("resources/unsubscribe"),
22816
+ method: z26.literal("resources/unsubscribe"),
22614
22817
  params: UnsubscribeRequestParamsSchema
22615
22818
  });
22616
22819
  ResourceUpdatedNotificationParamsSchema = NotificationsParamsSchema.extend({
22617
22820
  /**
22618
22821
  * The URI of the resource that has been updated. This might be a sub-resource of the one that the client actually subscribed to.
22619
22822
  */
22620
- uri: z25.string()
22823
+ uri: z26.string()
22621
22824
  });
22622
22825
  ResourceUpdatedNotificationSchema = NotificationSchema.extend({
22623
- method: z25.literal("notifications/resources/updated"),
22826
+ method: z26.literal("notifications/resources/updated"),
22624
22827
  params: ResourceUpdatedNotificationParamsSchema
22625
22828
  });
22626
- PromptArgumentSchema = z25.object({
22829
+ PromptArgumentSchema = z26.object({
22627
22830
  /**
22628
22831
  * The name of the argument.
22629
22832
  */
22630
- name: z25.string(),
22833
+ name: z26.string(),
22631
22834
  /**
22632
22835
  * A human-readable description of the argument.
22633
22836
  */
22634
- description: z25.optional(z25.string()),
22837
+ description: z26.optional(z26.string()),
22635
22838
  /**
22636
22839
  * Whether this argument must be provided.
22637
22840
  */
22638
- required: z25.optional(z25.boolean())
22841
+ required: z26.optional(z26.boolean())
22639
22842
  });
22640
- PromptSchema = z25.object({
22843
+ PromptSchema = z26.object({
22641
22844
  ...BaseMetadataSchema.shape,
22642
22845
  ...IconsSchema.shape,
22643
22846
  /**
22644
22847
  * An optional description of what this prompt provides
22645
22848
  */
22646
- description: z25.optional(z25.string()),
22849
+ description: z26.optional(z26.string()),
22647
22850
  /**
22648
22851
  * A list of arguments to use for templating the prompt.
22649
22852
  */
22650
- arguments: z25.optional(z25.array(PromptArgumentSchema)),
22853
+ arguments: z26.optional(z26.array(PromptArgumentSchema)),
22651
22854
  /**
22652
22855
  * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
22653
22856
  * for notes on _meta usage.
22654
22857
  */
22655
- _meta: z25.optional(z25.looseObject({}))
22858
+ _meta: z26.optional(z26.looseObject({}))
22656
22859
  });
22657
22860
  ListPromptsRequestSchema = PaginatedRequestSchema.extend({
22658
- method: z25.literal("prompts/list")
22861
+ method: z26.literal("prompts/list")
22659
22862
  });
22660
22863
  ListPromptsResultSchema = PaginatedResultSchema.extend({
22661
- prompts: z25.array(PromptSchema)
22864
+ prompts: z26.array(PromptSchema)
22662
22865
  });
22663
22866
  GetPromptRequestParamsSchema = BaseRequestParamsSchema.extend({
22664
22867
  /**
22665
22868
  * The name of the prompt or prompt template.
22666
22869
  */
22667
- name: z25.string(),
22870
+ name: z26.string(),
22668
22871
  /**
22669
22872
  * Arguments to use for templating the prompt.
22670
22873
  */
22671
- arguments: z25.record(z25.string(), z25.string()).optional()
22874
+ arguments: z26.record(z26.string(), z26.string()).optional()
22672
22875
  });
22673
22876
  GetPromptRequestSchema = RequestSchema.extend({
22674
- method: z25.literal("prompts/get"),
22877
+ method: z26.literal("prompts/get"),
22675
22878
  params: GetPromptRequestParamsSchema
22676
22879
  });
22677
- TextContentSchema = z25.object({
22678
- type: z25.literal("text"),
22880
+ TextContentSchema = z26.object({
22881
+ type: z26.literal("text"),
22679
22882
  /**
22680
22883
  * The text content of the message.
22681
22884
  */
22682
- text: z25.string(),
22885
+ text: z26.string(),
22683
22886
  /**
22684
22887
  * Optional annotations for the client.
22685
22888
  */
@@ -22688,10 +22891,10 @@ var init_types3 = __esm({
22688
22891
  * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
22689
22892
  * for notes on _meta usage.
22690
22893
  */
22691
- _meta: z25.record(z25.string(), z25.unknown()).optional()
22894
+ _meta: z26.record(z26.string(), z26.unknown()).optional()
22692
22895
  });
22693
- ImageContentSchema = z25.object({
22694
- type: z25.literal("image"),
22896
+ ImageContentSchema = z26.object({
22897
+ type: z26.literal("image"),
22695
22898
  /**
22696
22899
  * The base64-encoded image data.
22697
22900
  */
@@ -22699,7 +22902,7 @@ var init_types3 = __esm({
22699
22902
  /**
22700
22903
  * The MIME type of the image. Different providers may support different image types.
22701
22904
  */
22702
- mimeType: z25.string(),
22905
+ mimeType: z26.string(),
22703
22906
  /**
22704
22907
  * Optional annotations for the client.
22705
22908
  */
@@ -22708,10 +22911,10 @@ var init_types3 = __esm({
22708
22911
  * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
22709
22912
  * for notes on _meta usage.
22710
22913
  */
22711
- _meta: z25.record(z25.string(), z25.unknown()).optional()
22914
+ _meta: z26.record(z26.string(), z26.unknown()).optional()
22712
22915
  });
22713
- AudioContentSchema = z25.object({
22714
- type: z25.literal("audio"),
22916
+ AudioContentSchema = z26.object({
22917
+ type: z26.literal("audio"),
22715
22918
  /**
22716
22919
  * The base64-encoded audio data.
22717
22920
  */
@@ -22719,7 +22922,7 @@ var init_types3 = __esm({
22719
22922
  /**
22720
22923
  * The MIME type of the audio. Different providers may support different audio types.
22721
22924
  */
22722
- mimeType: z25.string(),
22925
+ mimeType: z26.string(),
22723
22926
  /**
22724
22927
  * Optional annotations for the client.
22725
22928
  */
@@ -22728,34 +22931,34 @@ var init_types3 = __esm({
22728
22931
  * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
22729
22932
  * for notes on _meta usage.
22730
22933
  */
22731
- _meta: z25.record(z25.string(), z25.unknown()).optional()
22934
+ _meta: z26.record(z26.string(), z26.unknown()).optional()
22732
22935
  });
22733
- ToolUseContentSchema = z25.object({
22734
- type: z25.literal("tool_use"),
22936
+ ToolUseContentSchema = z26.object({
22937
+ type: z26.literal("tool_use"),
22735
22938
  /**
22736
22939
  * The name of the tool to invoke.
22737
22940
  * Must match a tool name from the request's tools array.
22738
22941
  */
22739
- name: z25.string(),
22942
+ name: z26.string(),
22740
22943
  /**
22741
22944
  * Unique identifier for this tool call.
22742
22945
  * Used to correlate with ToolResultContent in subsequent messages.
22743
22946
  */
22744
- id: z25.string(),
22947
+ id: z26.string(),
22745
22948
  /**
22746
22949
  * Arguments to pass to the tool.
22747
22950
  * Must conform to the tool's inputSchema.
22748
22951
  */
22749
- input: z25.record(z25.string(), z25.unknown()),
22952
+ input: z26.record(z26.string(), z26.unknown()),
22750
22953
  /**
22751
22954
  * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
22752
22955
  * for notes on _meta usage.
22753
22956
  */
22754
- _meta: z25.record(z25.string(), z25.unknown()).optional()
22957
+ _meta: z26.record(z26.string(), z26.unknown()).optional()
22755
22958
  });
22756
- EmbeddedResourceSchema = z25.object({
22757
- type: z25.literal("resource"),
22758
- resource: z25.union([TextResourceContentsSchema, BlobResourceContentsSchema]),
22959
+ EmbeddedResourceSchema = z26.object({
22960
+ type: z26.literal("resource"),
22961
+ resource: z26.union([TextResourceContentsSchema, BlobResourceContentsSchema]),
22759
22962
  /**
22760
22963
  * Optional annotations for the client.
22761
22964
  */
@@ -22764,19 +22967,19 @@ var init_types3 = __esm({
22764
22967
  * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
22765
22968
  * for notes on _meta usage.
22766
22969
  */
22767
- _meta: z25.record(z25.string(), z25.unknown()).optional()
22970
+ _meta: z26.record(z26.string(), z26.unknown()).optional()
22768
22971
  });
22769
22972
  ResourceLinkSchema = ResourceSchema.extend({
22770
- type: z25.literal("resource_link")
22973
+ type: z26.literal("resource_link")
22771
22974
  });
22772
- ContentBlockSchema = z25.union([
22975
+ ContentBlockSchema = z26.union([
22773
22976
  TextContentSchema,
22774
22977
  ImageContentSchema,
22775
22978
  AudioContentSchema,
22776
22979
  ResourceLinkSchema,
22777
22980
  EmbeddedResourceSchema
22778
22981
  ]);
22779
- PromptMessageSchema = z25.object({
22982
+ PromptMessageSchema = z26.object({
22780
22983
  role: RoleSchema,
22781
22984
  content: ContentBlockSchema
22782
22985
  });
@@ -22784,24 +22987,24 @@ var init_types3 = __esm({
22784
22987
  /**
22785
22988
  * An optional description for the prompt.
22786
22989
  */
22787
- description: z25.string().optional(),
22788
- messages: z25.array(PromptMessageSchema)
22990
+ description: z26.string().optional(),
22991
+ messages: z26.array(PromptMessageSchema)
22789
22992
  });
22790
22993
  PromptListChangedNotificationSchema = NotificationSchema.extend({
22791
- method: z25.literal("notifications/prompts/list_changed"),
22994
+ method: z26.literal("notifications/prompts/list_changed"),
22792
22995
  params: NotificationsParamsSchema.optional()
22793
22996
  });
22794
- ToolAnnotationsSchema = z25.object({
22997
+ ToolAnnotationsSchema = z26.object({
22795
22998
  /**
22796
22999
  * A human-readable title for the tool.
22797
23000
  */
22798
- title: z25.string().optional(),
23001
+ title: z26.string().optional(),
22799
23002
  /**
22800
23003
  * If true, the tool does not modify its environment.
22801
23004
  *
22802
23005
  * Default: false
22803
23006
  */
22804
- readOnlyHint: z25.boolean().optional(),
23007
+ readOnlyHint: z26.boolean().optional(),
22805
23008
  /**
22806
23009
  * If true, the tool may perform destructive updates to its environment.
22807
23010
  * If false, the tool performs only additive updates.
@@ -22810,7 +23013,7 @@ var init_types3 = __esm({
22810
23013
  *
22811
23014
  * Default: true
22812
23015
  */
22813
- destructiveHint: z25.boolean().optional(),
23016
+ destructiveHint: z26.boolean().optional(),
22814
23017
  /**
22815
23018
  * If true, calling the tool repeatedly with the same arguments
22816
23019
  * will have no additional effect on the its environment.
@@ -22819,7 +23022,7 @@ var init_types3 = __esm({
22819
23022
  *
22820
23023
  * Default: false
22821
23024
  */
22822
- idempotentHint: z25.boolean().optional(),
23025
+ idempotentHint: z26.boolean().optional(),
22823
23026
  /**
22824
23027
  * If true, this tool may interact with an "open world" of external
22825
23028
  * entities. If false, the tool's domain of interaction is closed.
@@ -22828,9 +23031,9 @@ var init_types3 = __esm({
22828
23031
  *
22829
23032
  * Default: true
22830
23033
  */
22831
- openWorldHint: z25.boolean().optional()
23034
+ openWorldHint: z26.boolean().optional()
22832
23035
  });
22833
- ToolExecutionSchema = z25.object({
23036
+ ToolExecutionSchema = z26.object({
22834
23037
  /**
22835
23038
  * Indicates the tool's preference for task-augmented execution.
22836
23039
  * - "required": Clients MUST invoke the tool as a task
@@ -22839,34 +23042,34 @@ var init_types3 = __esm({
22839
23042
  *
22840
23043
  * If not present, defaults to "forbidden".
22841
23044
  */
22842
- taskSupport: z25.enum(["required", "optional", "forbidden"]).optional()
23045
+ taskSupport: z26.enum(["required", "optional", "forbidden"]).optional()
22843
23046
  });
22844
- ToolSchema = z25.object({
23047
+ ToolSchema = z26.object({
22845
23048
  ...BaseMetadataSchema.shape,
22846
23049
  ...IconsSchema.shape,
22847
23050
  /**
22848
23051
  * A human-readable description of the tool.
22849
23052
  */
22850
- description: z25.string().optional(),
23053
+ description: z26.string().optional(),
22851
23054
  /**
22852
23055
  * A JSON Schema 2020-12 object defining the expected parameters for the tool.
22853
23056
  * Must have type: 'object' at the root level per MCP spec.
22854
23057
  */
22855
- inputSchema: z25.object({
22856
- type: z25.literal("object"),
22857
- properties: z25.record(z25.string(), AssertObjectSchema).optional(),
22858
- required: z25.array(z25.string()).optional()
22859
- }).catchall(z25.unknown()),
23058
+ inputSchema: z26.object({
23059
+ type: z26.literal("object"),
23060
+ properties: z26.record(z26.string(), AssertObjectSchema).optional(),
23061
+ required: z26.array(z26.string()).optional()
23062
+ }).catchall(z26.unknown()),
22860
23063
  /**
22861
23064
  * An optional JSON Schema 2020-12 object defining the structure of the tool's output
22862
23065
  * returned in the structuredContent field of a CallToolResult.
22863
23066
  * Must have type: 'object' at the root level per MCP spec.
22864
23067
  */
22865
- outputSchema: z25.object({
22866
- type: z25.literal("object"),
22867
- properties: z25.record(z25.string(), AssertObjectSchema).optional(),
22868
- required: z25.array(z25.string()).optional()
22869
- }).catchall(z25.unknown()).optional(),
23068
+ outputSchema: z26.object({
23069
+ type: z26.literal("object"),
23070
+ properties: z26.record(z26.string(), AssertObjectSchema).optional(),
23071
+ required: z26.array(z26.string()).optional()
23072
+ }).catchall(z26.unknown()).optional(),
22870
23073
  /**
22871
23074
  * Optional additional tool information.
22872
23075
  */
@@ -22879,13 +23082,13 @@ var init_types3 = __esm({
22879
23082
  * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
22880
23083
  * for notes on _meta usage.
22881
23084
  */
22882
- _meta: z25.record(z25.string(), z25.unknown()).optional()
23085
+ _meta: z26.record(z26.string(), z26.unknown()).optional()
22883
23086
  });
22884
23087
  ListToolsRequestSchema = PaginatedRequestSchema.extend({
22885
- method: z25.literal("tools/list")
23088
+ method: z26.literal("tools/list")
22886
23089
  });
22887
23090
  ListToolsResultSchema = PaginatedResultSchema.extend({
22888
- tools: z25.array(ToolSchema)
23091
+ tools: z26.array(ToolSchema)
22889
23092
  });
22890
23093
  CallToolResultSchema = ResultSchema.extend({
22891
23094
  /**
@@ -22894,13 +23097,13 @@ var init_types3 = __esm({
22894
23097
  * If the Tool does not define an outputSchema, this field MUST be present in the result.
22895
23098
  * For backwards compatibility, this field is always present, but it may be empty.
22896
23099
  */
22897
- content: z25.array(ContentBlockSchema).default([]),
23100
+ content: z26.array(ContentBlockSchema).default([]),
22898
23101
  /**
22899
23102
  * An object containing structured tool output.
22900
23103
  *
22901
23104
  * If the Tool defines an outputSchema, this field MUST be present in the result, and contain a JSON object that matches the schema.
22902
23105
  */
22903
- structuredContent: z25.record(z25.string(), z25.unknown()).optional(),
23106
+ structuredContent: z26.record(z26.string(), z26.unknown()).optional(),
22904
23107
  /**
22905
23108
  * Whether the tool call ended in an error.
22906
23109
  *
@@ -22915,30 +23118,30 @@ var init_types3 = __esm({
22915
23118
  * server does not support tool calls, or any other exceptional conditions,
22916
23119
  * should be reported as an MCP error response.
22917
23120
  */
22918
- isError: z25.boolean().optional()
23121
+ isError: z26.boolean().optional()
22919
23122
  });
22920
23123
  CompatibilityCallToolResultSchema = CallToolResultSchema.or(ResultSchema.extend({
22921
- toolResult: z25.unknown()
23124
+ toolResult: z26.unknown()
22922
23125
  }));
22923
23126
  CallToolRequestParamsSchema = TaskAugmentedRequestParamsSchema.extend({
22924
23127
  /**
22925
23128
  * The name of the tool to call.
22926
23129
  */
22927
- name: z25.string(),
23130
+ name: z26.string(),
22928
23131
  /**
22929
23132
  * Arguments to pass to the tool.
22930
23133
  */
22931
- arguments: z25.record(z25.string(), z25.unknown()).optional()
23134
+ arguments: z26.record(z26.string(), z26.unknown()).optional()
22932
23135
  });
22933
23136
  CallToolRequestSchema = RequestSchema.extend({
22934
- method: z25.literal("tools/call"),
23137
+ method: z26.literal("tools/call"),
22935
23138
  params: CallToolRequestParamsSchema
22936
23139
  });
22937
23140
  ToolListChangedNotificationSchema = NotificationSchema.extend({
22938
- method: z25.literal("notifications/tools/list_changed"),
23141
+ method: z26.literal("notifications/tools/list_changed"),
22939
23142
  params: NotificationsParamsSchema.optional()
22940
23143
  });
22941
- ListChangedOptionsBaseSchema = z25.object({
23144
+ ListChangedOptionsBaseSchema = z26.object({
22942
23145
  /**
22943
23146
  * If true, the list will be refreshed automatically when a list changed notification is received.
22944
23147
  * The callback will be called with the updated list.
@@ -22947,7 +23150,7 @@ var init_types3 = __esm({
22947
23150
  *
22948
23151
  * @default true
22949
23152
  */
22950
- autoRefresh: z25.boolean().default(true),
23153
+ autoRefresh: z26.boolean().default(true),
22951
23154
  /**
22952
23155
  * Debounce time in milliseconds for list changed notification processing.
22953
23156
  *
@@ -22956,9 +23159,9 @@ var init_types3 = __esm({
22956
23159
  *
22957
23160
  * @default 300
22958
23161
  */
22959
- debounceMs: z25.number().int().nonnegative().default(300)
23162
+ debounceMs: z26.number().int().nonnegative().default(300)
22960
23163
  });
22961
- LoggingLevelSchema = z25.enum(["debug", "info", "notice", "warning", "error", "critical", "alert", "emergency"]);
23164
+ LoggingLevelSchema = z26.enum(["debug", "info", "notice", "warning", "error", "critical", "alert", "emergency"]);
22962
23165
  SetLevelRequestParamsSchema = BaseRequestParamsSchema.extend({
22963
23166
  /**
22964
23167
  * The level of logging that the client wants to receive from the server. The server should send all logs at this level and higher (i.e., more severe) to the client as notifications/logging/message.
@@ -22966,7 +23169,7 @@ var init_types3 = __esm({
22966
23169
  level: LoggingLevelSchema
22967
23170
  });
22968
23171
  SetLevelRequestSchema = RequestSchema.extend({
22969
- method: z25.literal("logging/setLevel"),
23172
+ method: z26.literal("logging/setLevel"),
22970
23173
  params: SetLevelRequestParamsSchema
22971
23174
  });
22972
23175
  LoggingMessageNotificationParamsSchema = NotificationsParamsSchema.extend({
@@ -22977,80 +23180,80 @@ var init_types3 = __esm({
22977
23180
  /**
22978
23181
  * An optional name of the logger issuing this message.
22979
23182
  */
22980
- logger: z25.string().optional(),
23183
+ logger: z26.string().optional(),
22981
23184
  /**
22982
23185
  * The data to be logged, such as a string message or an object. Any JSON serializable type is allowed here.
22983
23186
  */
22984
- data: z25.unknown()
23187
+ data: z26.unknown()
22985
23188
  });
22986
23189
  LoggingMessageNotificationSchema = NotificationSchema.extend({
22987
- method: z25.literal("notifications/message"),
23190
+ method: z26.literal("notifications/message"),
22988
23191
  params: LoggingMessageNotificationParamsSchema
22989
23192
  });
22990
- ModelHintSchema = z25.object({
23193
+ ModelHintSchema = z26.object({
22991
23194
  /**
22992
23195
  * A hint for a model name.
22993
23196
  */
22994
- name: z25.string().optional()
23197
+ name: z26.string().optional()
22995
23198
  });
22996
- ModelPreferencesSchema = z25.object({
23199
+ ModelPreferencesSchema = z26.object({
22997
23200
  /**
22998
23201
  * Optional hints to use for model selection.
22999
23202
  */
23000
- hints: z25.array(ModelHintSchema).optional(),
23203
+ hints: z26.array(ModelHintSchema).optional(),
23001
23204
  /**
23002
23205
  * How much to prioritize cost when selecting a model.
23003
23206
  */
23004
- costPriority: z25.number().min(0).max(1).optional(),
23207
+ costPriority: z26.number().min(0).max(1).optional(),
23005
23208
  /**
23006
23209
  * How much to prioritize sampling speed (latency) when selecting a model.
23007
23210
  */
23008
- speedPriority: z25.number().min(0).max(1).optional(),
23211
+ speedPriority: z26.number().min(0).max(1).optional(),
23009
23212
  /**
23010
23213
  * How much to prioritize intelligence and capabilities when selecting a model.
23011
23214
  */
23012
- intelligencePriority: z25.number().min(0).max(1).optional()
23215
+ intelligencePriority: z26.number().min(0).max(1).optional()
23013
23216
  });
23014
- ToolChoiceSchema = z25.object({
23217
+ ToolChoiceSchema = z26.object({
23015
23218
  /**
23016
23219
  * Controls when tools are used:
23017
23220
  * - "auto": Model decides whether to use tools (default)
23018
23221
  * - "required": Model MUST use at least one tool before completing
23019
23222
  * - "none": Model MUST NOT use any tools
23020
23223
  */
23021
- mode: z25.enum(["auto", "required", "none"]).optional()
23224
+ mode: z26.enum(["auto", "required", "none"]).optional()
23022
23225
  });
23023
- ToolResultContentSchema = z25.object({
23024
- type: z25.literal("tool_result"),
23025
- toolUseId: z25.string().describe("The unique identifier for the corresponding tool call."),
23026
- content: z25.array(ContentBlockSchema).default([]),
23027
- structuredContent: z25.object({}).loose().optional(),
23028
- isError: z25.boolean().optional(),
23226
+ ToolResultContentSchema = z26.object({
23227
+ type: z26.literal("tool_result"),
23228
+ toolUseId: z26.string().describe("The unique identifier for the corresponding tool call."),
23229
+ content: z26.array(ContentBlockSchema).default([]),
23230
+ structuredContent: z26.object({}).loose().optional(),
23231
+ isError: z26.boolean().optional(),
23029
23232
  /**
23030
23233
  * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
23031
23234
  * for notes on _meta usage.
23032
23235
  */
23033
- _meta: z25.record(z25.string(), z25.unknown()).optional()
23236
+ _meta: z26.record(z26.string(), z26.unknown()).optional()
23034
23237
  });
23035
- SamplingContentSchema = z25.discriminatedUnion("type", [TextContentSchema, ImageContentSchema, AudioContentSchema]);
23036
- SamplingMessageContentBlockSchema = z25.discriminatedUnion("type", [
23238
+ SamplingContentSchema = z26.discriminatedUnion("type", [TextContentSchema, ImageContentSchema, AudioContentSchema]);
23239
+ SamplingMessageContentBlockSchema = z26.discriminatedUnion("type", [
23037
23240
  TextContentSchema,
23038
23241
  ImageContentSchema,
23039
23242
  AudioContentSchema,
23040
23243
  ToolUseContentSchema,
23041
23244
  ToolResultContentSchema
23042
23245
  ]);
23043
- SamplingMessageSchema = z25.object({
23246
+ SamplingMessageSchema = z26.object({
23044
23247
  role: RoleSchema,
23045
- content: z25.union([SamplingMessageContentBlockSchema, z25.array(SamplingMessageContentBlockSchema)]),
23248
+ content: z26.union([SamplingMessageContentBlockSchema, z26.array(SamplingMessageContentBlockSchema)]),
23046
23249
  /**
23047
23250
  * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
23048
23251
  * for notes on _meta usage.
23049
23252
  */
23050
- _meta: z25.record(z25.string(), z25.unknown()).optional()
23253
+ _meta: z26.record(z26.string(), z26.unknown()).optional()
23051
23254
  });
23052
23255
  CreateMessageRequestParamsSchema = TaskAugmentedRequestParamsSchema.extend({
23053
- messages: z25.array(SamplingMessageSchema),
23256
+ messages: z26.array(SamplingMessageSchema),
23054
23257
  /**
23055
23258
  * The server's preferences for which model to select. The client MAY modify or omit this request.
23056
23259
  */
@@ -23058,7 +23261,7 @@ var init_types3 = __esm({
23058
23261
  /**
23059
23262
  * An optional system prompt the server wants to use for sampling. The client MAY modify or omit this prompt.
23060
23263
  */
23061
- systemPrompt: z25.string().optional(),
23264
+ systemPrompt: z26.string().optional(),
23062
23265
  /**
23063
23266
  * A request to include context from one or more MCP servers (including the caller), to be attached to the prompt.
23064
23267
  * The client MAY ignore this request.
@@ -23066,15 +23269,15 @@ var init_types3 = __esm({
23066
23269
  * Default is "none". Values "thisServer" and "allServers" are soft-deprecated. Servers SHOULD only use these values if the client
23067
23270
  * declares ClientCapabilities.sampling.context. These values may be removed in future spec releases.
23068
23271
  */
23069
- includeContext: z25.enum(["none", "thisServer", "allServers"]).optional(),
23070
- temperature: z25.number().optional(),
23272
+ includeContext: z26.enum(["none", "thisServer", "allServers"]).optional(),
23273
+ temperature: z26.number().optional(),
23071
23274
  /**
23072
23275
  * The requested maximum number of tokens to sample (to prevent runaway completions).
23073
23276
  *
23074
23277
  * The client MAY choose to sample fewer tokens than the requested maximum.
23075
23278
  */
23076
- maxTokens: z25.number().int(),
23077
- stopSequences: z25.array(z25.string()).optional(),
23279
+ maxTokens: z26.number().int(),
23280
+ stopSequences: z26.array(z26.string()).optional(),
23078
23281
  /**
23079
23282
  * Optional metadata to pass through to the LLM provider. The format of this metadata is provider-specific.
23080
23283
  */
@@ -23083,7 +23286,7 @@ var init_types3 = __esm({
23083
23286
  * Tools that the model may use during generation.
23084
23287
  * The client MUST return an error if this field is provided but ClientCapabilities.sampling.tools is not declared.
23085
23288
  */
23086
- tools: z25.array(ToolSchema).optional(),
23289
+ tools: z26.array(ToolSchema).optional(),
23087
23290
  /**
23088
23291
  * Controls how the model uses tools.
23089
23292
  * The client MUST return an error if this field is provided but ClientCapabilities.sampling.tools is not declared.
@@ -23092,14 +23295,14 @@ var init_types3 = __esm({
23092
23295
  toolChoice: ToolChoiceSchema.optional()
23093
23296
  });
23094
23297
  CreateMessageRequestSchema = RequestSchema.extend({
23095
- method: z25.literal("sampling/createMessage"),
23298
+ method: z26.literal("sampling/createMessage"),
23096
23299
  params: CreateMessageRequestParamsSchema
23097
23300
  });
23098
23301
  CreateMessageResultSchema = ResultSchema.extend({
23099
23302
  /**
23100
23303
  * The name of the model that generated the message.
23101
23304
  */
23102
- model: z25.string(),
23305
+ model: z26.string(),
23103
23306
  /**
23104
23307
  * The reason why sampling stopped, if known.
23105
23308
  *
@@ -23110,7 +23313,7 @@ var init_types3 = __esm({
23110
23313
  *
23111
23314
  * This field is an open string to allow for provider-specific stop reasons.
23112
23315
  */
23113
- stopReason: z25.optional(z25.enum(["endTurn", "stopSequence", "maxTokens"]).or(z25.string())),
23316
+ stopReason: z26.optional(z26.enum(["endTurn", "stopSequence", "maxTokens"]).or(z26.string())),
23114
23317
  role: RoleSchema,
23115
23318
  /**
23116
23319
  * Response content. Single content block (text, image, or audio).
@@ -23121,7 +23324,7 @@ var init_types3 = __esm({
23121
23324
  /**
23122
23325
  * The name of the model that generated the message.
23123
23326
  */
23124
- model: z25.string(),
23327
+ model: z26.string(),
23125
23328
  /**
23126
23329
  * The reason why sampling stopped, if known.
23127
23330
  *
@@ -23133,144 +23336,144 @@ var init_types3 = __esm({
23133
23336
  *
23134
23337
  * This field is an open string to allow for provider-specific stop reasons.
23135
23338
  */
23136
- stopReason: z25.optional(z25.enum(["endTurn", "stopSequence", "maxTokens", "toolUse"]).or(z25.string())),
23339
+ stopReason: z26.optional(z26.enum(["endTurn", "stopSequence", "maxTokens", "toolUse"]).or(z26.string())),
23137
23340
  role: RoleSchema,
23138
23341
  /**
23139
23342
  * Response content. May be a single block or array. May include ToolUseContent if stopReason is "toolUse".
23140
23343
  */
23141
- content: z25.union([SamplingMessageContentBlockSchema, z25.array(SamplingMessageContentBlockSchema)])
23344
+ content: z26.union([SamplingMessageContentBlockSchema, z26.array(SamplingMessageContentBlockSchema)])
23142
23345
  });
23143
- BooleanSchemaSchema = z25.object({
23144
- type: z25.literal("boolean"),
23145
- title: z25.string().optional(),
23146
- description: z25.string().optional(),
23147
- default: z25.boolean().optional()
23346
+ BooleanSchemaSchema = z26.object({
23347
+ type: z26.literal("boolean"),
23348
+ title: z26.string().optional(),
23349
+ description: z26.string().optional(),
23350
+ default: z26.boolean().optional()
23148
23351
  });
23149
- StringSchemaSchema = z25.object({
23150
- type: z25.literal("string"),
23151
- title: z25.string().optional(),
23152
- description: z25.string().optional(),
23153
- minLength: z25.number().optional(),
23154
- maxLength: z25.number().optional(),
23155
- format: z25.enum(["email", "uri", "date", "date-time"]).optional(),
23156
- default: z25.string().optional()
23352
+ StringSchemaSchema = z26.object({
23353
+ type: z26.literal("string"),
23354
+ title: z26.string().optional(),
23355
+ description: z26.string().optional(),
23356
+ minLength: z26.number().optional(),
23357
+ maxLength: z26.number().optional(),
23358
+ format: z26.enum(["email", "uri", "date", "date-time"]).optional(),
23359
+ default: z26.string().optional()
23157
23360
  });
23158
- NumberSchemaSchema = z25.object({
23159
- type: z25.enum(["number", "integer"]),
23160
- title: z25.string().optional(),
23161
- description: z25.string().optional(),
23162
- minimum: z25.number().optional(),
23163
- maximum: z25.number().optional(),
23164
- default: z25.number().optional()
23361
+ NumberSchemaSchema = z26.object({
23362
+ type: z26.enum(["number", "integer"]),
23363
+ title: z26.string().optional(),
23364
+ description: z26.string().optional(),
23365
+ minimum: z26.number().optional(),
23366
+ maximum: z26.number().optional(),
23367
+ default: z26.number().optional()
23165
23368
  });
23166
- UntitledSingleSelectEnumSchemaSchema = z25.object({
23167
- type: z25.literal("string"),
23168
- title: z25.string().optional(),
23169
- description: z25.string().optional(),
23170
- enum: z25.array(z25.string()),
23171
- default: z25.string().optional()
23369
+ UntitledSingleSelectEnumSchemaSchema = z26.object({
23370
+ type: z26.literal("string"),
23371
+ title: z26.string().optional(),
23372
+ description: z26.string().optional(),
23373
+ enum: z26.array(z26.string()),
23374
+ default: z26.string().optional()
23172
23375
  });
23173
- TitledSingleSelectEnumSchemaSchema = z25.object({
23174
- type: z25.literal("string"),
23175
- title: z25.string().optional(),
23176
- description: z25.string().optional(),
23177
- oneOf: z25.array(z25.object({
23178
- const: z25.string(),
23179
- title: z25.string()
23376
+ TitledSingleSelectEnumSchemaSchema = z26.object({
23377
+ type: z26.literal("string"),
23378
+ title: z26.string().optional(),
23379
+ description: z26.string().optional(),
23380
+ oneOf: z26.array(z26.object({
23381
+ const: z26.string(),
23382
+ title: z26.string()
23180
23383
  })),
23181
- default: z25.string().optional()
23384
+ default: z26.string().optional()
23182
23385
  });
23183
- LegacyTitledEnumSchemaSchema = z25.object({
23184
- type: z25.literal("string"),
23185
- title: z25.string().optional(),
23186
- description: z25.string().optional(),
23187
- enum: z25.array(z25.string()),
23188
- enumNames: z25.array(z25.string()).optional(),
23189
- default: z25.string().optional()
23386
+ LegacyTitledEnumSchemaSchema = z26.object({
23387
+ type: z26.literal("string"),
23388
+ title: z26.string().optional(),
23389
+ description: z26.string().optional(),
23390
+ enum: z26.array(z26.string()),
23391
+ enumNames: z26.array(z26.string()).optional(),
23392
+ default: z26.string().optional()
23190
23393
  });
23191
- SingleSelectEnumSchemaSchema = z25.union([UntitledSingleSelectEnumSchemaSchema, TitledSingleSelectEnumSchemaSchema]);
23192
- UntitledMultiSelectEnumSchemaSchema = z25.object({
23193
- type: z25.literal("array"),
23194
- title: z25.string().optional(),
23195
- description: z25.string().optional(),
23196
- minItems: z25.number().optional(),
23197
- maxItems: z25.number().optional(),
23198
- items: z25.object({
23199
- type: z25.literal("string"),
23200
- enum: z25.array(z25.string())
23394
+ SingleSelectEnumSchemaSchema = z26.union([UntitledSingleSelectEnumSchemaSchema, TitledSingleSelectEnumSchemaSchema]);
23395
+ UntitledMultiSelectEnumSchemaSchema = z26.object({
23396
+ type: z26.literal("array"),
23397
+ title: z26.string().optional(),
23398
+ description: z26.string().optional(),
23399
+ minItems: z26.number().optional(),
23400
+ maxItems: z26.number().optional(),
23401
+ items: z26.object({
23402
+ type: z26.literal("string"),
23403
+ enum: z26.array(z26.string())
23201
23404
  }),
23202
- default: z25.array(z25.string()).optional()
23405
+ default: z26.array(z26.string()).optional()
23203
23406
  });
23204
- TitledMultiSelectEnumSchemaSchema = z25.object({
23205
- type: z25.literal("array"),
23206
- title: z25.string().optional(),
23207
- description: z25.string().optional(),
23208
- minItems: z25.number().optional(),
23209
- maxItems: z25.number().optional(),
23210
- items: z25.object({
23211
- anyOf: z25.array(z25.object({
23212
- const: z25.string(),
23213
- title: z25.string()
23407
+ TitledMultiSelectEnumSchemaSchema = z26.object({
23408
+ type: z26.literal("array"),
23409
+ title: z26.string().optional(),
23410
+ description: z26.string().optional(),
23411
+ minItems: z26.number().optional(),
23412
+ maxItems: z26.number().optional(),
23413
+ items: z26.object({
23414
+ anyOf: z26.array(z26.object({
23415
+ const: z26.string(),
23416
+ title: z26.string()
23214
23417
  }))
23215
23418
  }),
23216
- default: z25.array(z25.string()).optional()
23419
+ default: z26.array(z26.string()).optional()
23217
23420
  });
23218
- MultiSelectEnumSchemaSchema = z25.union([UntitledMultiSelectEnumSchemaSchema, TitledMultiSelectEnumSchemaSchema]);
23219
- EnumSchemaSchema = z25.union([LegacyTitledEnumSchemaSchema, SingleSelectEnumSchemaSchema, MultiSelectEnumSchemaSchema]);
23220
- PrimitiveSchemaDefinitionSchema = z25.union([EnumSchemaSchema, BooleanSchemaSchema, StringSchemaSchema, NumberSchemaSchema]);
23421
+ MultiSelectEnumSchemaSchema = z26.union([UntitledMultiSelectEnumSchemaSchema, TitledMultiSelectEnumSchemaSchema]);
23422
+ EnumSchemaSchema = z26.union([LegacyTitledEnumSchemaSchema, SingleSelectEnumSchemaSchema, MultiSelectEnumSchemaSchema]);
23423
+ PrimitiveSchemaDefinitionSchema = z26.union([EnumSchemaSchema, BooleanSchemaSchema, StringSchemaSchema, NumberSchemaSchema]);
23221
23424
  ElicitRequestFormParamsSchema = TaskAugmentedRequestParamsSchema.extend({
23222
23425
  /**
23223
23426
  * The elicitation mode.
23224
23427
  *
23225
23428
  * Optional for backward compatibility. Clients MUST treat missing mode as "form".
23226
23429
  */
23227
- mode: z25.literal("form").optional(),
23430
+ mode: z26.literal("form").optional(),
23228
23431
  /**
23229
23432
  * The message to present to the user describing what information is being requested.
23230
23433
  */
23231
- message: z25.string(),
23434
+ message: z26.string(),
23232
23435
  /**
23233
23436
  * A restricted subset of JSON Schema.
23234
23437
  * Only top-level properties are allowed, without nesting.
23235
23438
  */
23236
- requestedSchema: z25.object({
23237
- type: z25.literal("object"),
23238
- properties: z25.record(z25.string(), PrimitiveSchemaDefinitionSchema),
23239
- required: z25.array(z25.string()).optional()
23439
+ requestedSchema: z26.object({
23440
+ type: z26.literal("object"),
23441
+ properties: z26.record(z26.string(), PrimitiveSchemaDefinitionSchema),
23442
+ required: z26.array(z26.string()).optional()
23240
23443
  })
23241
23444
  });
23242
23445
  ElicitRequestURLParamsSchema = TaskAugmentedRequestParamsSchema.extend({
23243
23446
  /**
23244
23447
  * The elicitation mode.
23245
23448
  */
23246
- mode: z25.literal("url"),
23449
+ mode: z26.literal("url"),
23247
23450
  /**
23248
23451
  * The message to present to the user explaining why the interaction is needed.
23249
23452
  */
23250
- message: z25.string(),
23453
+ message: z26.string(),
23251
23454
  /**
23252
23455
  * The ID of the elicitation, which must be unique within the context of the server.
23253
23456
  * The client MUST treat this ID as an opaque value.
23254
23457
  */
23255
- elicitationId: z25.string(),
23458
+ elicitationId: z26.string(),
23256
23459
  /**
23257
23460
  * The URL that the user should navigate to.
23258
23461
  */
23259
- url: z25.string().url()
23462
+ url: z26.string().url()
23260
23463
  });
23261
- ElicitRequestParamsSchema = z25.union([ElicitRequestFormParamsSchema, ElicitRequestURLParamsSchema]);
23464
+ ElicitRequestParamsSchema = z26.union([ElicitRequestFormParamsSchema, ElicitRequestURLParamsSchema]);
23262
23465
  ElicitRequestSchema = RequestSchema.extend({
23263
- method: z25.literal("elicitation/create"),
23466
+ method: z26.literal("elicitation/create"),
23264
23467
  params: ElicitRequestParamsSchema
23265
23468
  });
23266
23469
  ElicitationCompleteNotificationParamsSchema = NotificationsParamsSchema.extend({
23267
23470
  /**
23268
23471
  * The ID of the elicitation that completed.
23269
23472
  */
23270
- elicitationId: z25.string()
23473
+ elicitationId: z26.string()
23271
23474
  });
23272
23475
  ElicitationCompleteNotificationSchema = NotificationSchema.extend({
23273
- method: z25.literal("notifications/elicitation/complete"),
23476
+ method: z26.literal("notifications/elicitation/complete"),
23274
23477
  params: ElicitationCompleteNotificationParamsSchema
23275
23478
  });
23276
23479
  ElicitResultSchema = ResultSchema.extend({
@@ -23280,98 +23483,98 @@ var init_types3 = __esm({
23280
23483
  * - "decline": User explicitly decline the action
23281
23484
  * - "cancel": User dismissed without making an explicit choice
23282
23485
  */
23283
- action: z25.enum(["accept", "decline", "cancel"]),
23486
+ action: z26.enum(["accept", "decline", "cancel"]),
23284
23487
  /**
23285
23488
  * The submitted form data, only present when action is "accept".
23286
23489
  * Contains values matching the requested schema.
23287
23490
  * Per MCP spec, content is "typically omitted" for decline/cancel actions.
23288
23491
  * We normalize null to undefined for leniency while maintaining type compatibility.
23289
23492
  */
23290
- content: z25.preprocess((val) => val === null ? void 0 : val, z25.record(z25.string(), z25.union([z25.string(), z25.number(), z25.boolean(), z25.array(z25.string())])).optional())
23493
+ content: z26.preprocess((val) => val === null ? void 0 : val, z26.record(z26.string(), z26.union([z26.string(), z26.number(), z26.boolean(), z26.array(z26.string())])).optional())
23291
23494
  });
23292
- ResourceTemplateReferenceSchema = z25.object({
23293
- type: z25.literal("ref/resource"),
23495
+ ResourceTemplateReferenceSchema = z26.object({
23496
+ type: z26.literal("ref/resource"),
23294
23497
  /**
23295
23498
  * The URI or URI template of the resource.
23296
23499
  */
23297
- uri: z25.string()
23500
+ uri: z26.string()
23298
23501
  });
23299
- PromptReferenceSchema = z25.object({
23300
- type: z25.literal("ref/prompt"),
23502
+ PromptReferenceSchema = z26.object({
23503
+ type: z26.literal("ref/prompt"),
23301
23504
  /**
23302
23505
  * The name of the prompt or prompt template
23303
23506
  */
23304
- name: z25.string()
23507
+ name: z26.string()
23305
23508
  });
23306
23509
  CompleteRequestParamsSchema = BaseRequestParamsSchema.extend({
23307
- ref: z25.union([PromptReferenceSchema, ResourceTemplateReferenceSchema]),
23510
+ ref: z26.union([PromptReferenceSchema, ResourceTemplateReferenceSchema]),
23308
23511
  /**
23309
23512
  * The argument's information
23310
23513
  */
23311
- argument: z25.object({
23514
+ argument: z26.object({
23312
23515
  /**
23313
23516
  * The name of the argument
23314
23517
  */
23315
- name: z25.string(),
23518
+ name: z26.string(),
23316
23519
  /**
23317
23520
  * The value of the argument to use for completion matching.
23318
23521
  */
23319
- value: z25.string()
23522
+ value: z26.string()
23320
23523
  }),
23321
- context: z25.object({
23524
+ context: z26.object({
23322
23525
  /**
23323
23526
  * Previously-resolved variables in a URI template or prompt.
23324
23527
  */
23325
- arguments: z25.record(z25.string(), z25.string()).optional()
23528
+ arguments: z26.record(z26.string(), z26.string()).optional()
23326
23529
  }).optional()
23327
23530
  });
23328
23531
  CompleteRequestSchema = RequestSchema.extend({
23329
- method: z25.literal("completion/complete"),
23532
+ method: z26.literal("completion/complete"),
23330
23533
  params: CompleteRequestParamsSchema
23331
23534
  });
23332
23535
  CompleteResultSchema = ResultSchema.extend({
23333
- completion: z25.looseObject({
23536
+ completion: z26.looseObject({
23334
23537
  /**
23335
23538
  * An array of completion values. Must not exceed 100 items.
23336
23539
  */
23337
- values: z25.array(z25.string()).max(100),
23540
+ values: z26.array(z26.string()).max(100),
23338
23541
  /**
23339
23542
  * The total number of completion options available. This can exceed the number of values actually sent in the response.
23340
23543
  */
23341
- total: z25.optional(z25.number().int()),
23544
+ total: z26.optional(z26.number().int()),
23342
23545
  /**
23343
23546
  * Indicates whether there are additional completion options beyond those provided in the current response, even if the exact total is unknown.
23344
23547
  */
23345
- hasMore: z25.optional(z25.boolean())
23548
+ hasMore: z26.optional(z26.boolean())
23346
23549
  })
23347
23550
  });
23348
- RootSchema = z25.object({
23551
+ RootSchema = z26.object({
23349
23552
  /**
23350
23553
  * The URI identifying the root. This *must* start with file:// for now.
23351
23554
  */
23352
- uri: z25.string().startsWith("file://"),
23555
+ uri: z26.string().startsWith("file://"),
23353
23556
  /**
23354
23557
  * An optional name for the root.
23355
23558
  */
23356
- name: z25.string().optional(),
23559
+ name: z26.string().optional(),
23357
23560
  /**
23358
23561
  * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
23359
23562
  * for notes on _meta usage.
23360
23563
  */
23361
- _meta: z25.record(z25.string(), z25.unknown()).optional()
23564
+ _meta: z26.record(z26.string(), z26.unknown()).optional()
23362
23565
  });
23363
23566
  ListRootsRequestSchema = RequestSchema.extend({
23364
- method: z25.literal("roots/list"),
23567
+ method: z26.literal("roots/list"),
23365
23568
  params: BaseRequestParamsSchema.optional()
23366
23569
  });
23367
23570
  ListRootsResultSchema = ResultSchema.extend({
23368
- roots: z25.array(RootSchema)
23571
+ roots: z26.array(RootSchema)
23369
23572
  });
23370
23573
  RootsListChangedNotificationSchema = NotificationSchema.extend({
23371
- method: z25.literal("notifications/roots/list_changed"),
23574
+ method: z26.literal("notifications/roots/list_changed"),
23372
23575
  params: NotificationsParamsSchema.optional()
23373
23576
  });
23374
- ClientRequestSchema = z25.union([
23577
+ ClientRequestSchema = z26.union([
23375
23578
  PingRequestSchema,
23376
23579
  InitializeRequestSchema,
23377
23580
  CompleteRequestSchema,
@@ -23390,14 +23593,14 @@ var init_types3 = __esm({
23390
23593
  ListTasksRequestSchema,
23391
23594
  CancelTaskRequestSchema
23392
23595
  ]);
23393
- ClientNotificationSchema = z25.union([
23596
+ ClientNotificationSchema = z26.union([
23394
23597
  CancelledNotificationSchema,
23395
23598
  ProgressNotificationSchema,
23396
23599
  InitializedNotificationSchema,
23397
23600
  RootsListChangedNotificationSchema,
23398
23601
  TaskStatusNotificationSchema
23399
23602
  ]);
23400
- ClientResultSchema = z25.union([
23603
+ ClientResultSchema = z26.union([
23401
23604
  EmptyResultSchema,
23402
23605
  CreateMessageResultSchema,
23403
23606
  CreateMessageResultWithToolsSchema,
@@ -23407,7 +23610,7 @@ var init_types3 = __esm({
23407
23610
  ListTasksResultSchema,
23408
23611
  CreateTaskResultSchema
23409
23612
  ]);
23410
- ServerRequestSchema = z25.union([
23613
+ ServerRequestSchema = z26.union([
23411
23614
  PingRequestSchema,
23412
23615
  CreateMessageRequestSchema,
23413
23616
  ElicitRequestSchema,
@@ -23417,7 +23620,7 @@ var init_types3 = __esm({
23417
23620
  ListTasksRequestSchema,
23418
23621
  CancelTaskRequestSchema
23419
23622
  ]);
23420
- ServerNotificationSchema = z25.union([
23623
+ ServerNotificationSchema = z26.union([
23421
23624
  CancelledNotificationSchema,
23422
23625
  ProgressNotificationSchema,
23423
23626
  LoggingMessageNotificationSchema,
@@ -23428,7 +23631,7 @@ var init_types3 = __esm({
23428
23631
  TaskStatusNotificationSchema,
23429
23632
  ElicitationCompleteNotificationSchema
23430
23633
  ]);
23431
- ServerResultSchema = z25.union([
23634
+ ServerResultSchema = z26.union([
23432
23635
  EmptyResultSchema,
23433
23636
  InitializeResultSchema,
23434
23637
  CompleteResultSchema,
@@ -35015,22 +35218,22 @@ var init_stdio2 = __esm({
35015
35218
  });
35016
35219
 
35017
35220
  // ../../packages/mcp-server/src/tools.ts
35018
- import { z as z26 } from "zod";
35221
+ import { z as z27 } from "zod";
35019
35222
  var runTaskInputSchema, RUN_TASK_DESCRIPTION;
35020
35223
  var init_tools = __esm({
35021
35224
  "../../packages/mcp-server/src/tools.ts"() {
35022
35225
  "use strict";
35023
35226
  init_src2();
35024
- runTaskInputSchema = z26.object({
35227
+ runTaskInputSchema = z27.object({
35025
35228
  // LE contrat partage du slug (shared/agent-slug.ts) — la review a montre
35026
35229
  // que trois definitions divergentes rendaient un agent valide inciblable.
35027
35230
  agent: AgentSlugSchema.optional().describe(
35028
35231
  "Optional TARGET agent, by slug, resolved INSIDE this workspace only. Omit to address the workspace root agent. Choosing a target is the same power as choosing which chat to type in \u2014 the job runs under THAT agent's tools, approval rules and budgets, and MCP jobs never get the configuration tools regardless of target."
35029
35232
  ),
35030
- caller: z26.string().min(1).max(120).regex(/^[\w .:@/-]+$/, "caller must be a plain label (letters, digits, spaces, .:@/-_ only)").optional().describe(
35233
+ caller: z27.string().min(1).max(120).regex(/^[\w .:@/-]+$/, "caller must be a plain label (letters, digits, spaces, .:@/-_ only)").optional().describe(
35031
35234
  'Optional label naming WHO is asking (e.g. "agent-dev-a", "quentin-terminal"). Purely declarative \u2014 recorded as provenance on the job, shown on the Runs page, and NEVER used for authorization: the job runs under the rules of the agent this server was launched for, whatever this says.'
35032
35235
  ),
35033
- instruction: z26.string().min(1).max(16e3).describe(
35236
+ instruction: z27.string().min(1).max(16e3).describe(
35034
35237
  "La demande, en clair et auto-suffisante : l'agent qui l'ex\xE9cute ne voit RIEN de cette session MCP. Il travaille avec ses propres outils, skills et sous-agents, sous ses propres r\xE8gles d approbation."
35035
35238
  )
35036
35239
  });