nodal-agents 0.9.1 → 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 (300) hide show
  1. package/cli.js +1033 -473
  2. package/docs-index.json +31 -24
  3. package/migrations/0122_entities_drop_memory_curation_enabled.sql +17 -0
  4. package/migrations/0123_chat_messages_stopped.sql +10 -0
  5. package/migrations/0124_chat_messages_cut_reason.sql +12 -0
  6. package/migrations/0125_shell_checklist.sql +31 -0
  7. package/migrations/0126_run_budget.sql +57 -0
  8. package/migrations/0127_agent_budget.sql +86 -0
  9. package/migrations/0128_shell_policy_retired_kinds.sql +52 -0
  10. package/migrations/meta/_journal.json +49 -0
  11. package/package.json +1 -1
  12. package/runner.js +4824 -2851
  13. package/web/.next/BUILD_ID +1 -1
  14. package/web/.next/app-path-routes-manifest.json +6 -2
  15. package/web/.next/build-manifest.json +2 -2
  16. package/web/.next/prerender-manifest.json +5 -5
  17. package/web/.next/routes-manifest.json +28 -0
  18. package/web/.next/server/app/(dashboard)/agents/[id]/channels/page.js +1 -1
  19. package/web/.next/server/app/(dashboard)/agents/[id]/channels/page_client-reference-manifest.js +1 -1
  20. package/web/.next/server/app/(dashboard)/agents/[id]/edit/page.js +4 -4
  21. package/web/.next/server/app/(dashboard)/agents/[id]/edit/page_client-reference-manifest.js +1 -1
  22. package/web/.next/server/app/(dashboard)/agents/[id]/telegram/page.js +1 -1
  23. package/web/.next/server/app/(dashboard)/agents/[id]/telegram/page_client-reference-manifest.js +1 -1
  24. package/web/.next/server/app/(dashboard)/agents/page.js +1 -1
  25. package/web/.next/server/app/(dashboard)/agents/page_client-reference-manifest.js +1 -1
  26. package/web/.next/server/app/(dashboard)/approvals/page.js +1 -1
  27. package/web/.next/server/app/(dashboard)/approvals/page_client-reference-manifest.js +1 -1
  28. package/web/.next/server/app/(dashboard)/automations/[id]/page.js +1 -1
  29. package/web/.next/server/app/(dashboard)/automations/[id]/page_client-reference-manifest.js +1 -1
  30. package/web/.next/server/app/(dashboard)/automations/page.js +1 -1
  31. package/web/.next/server/app/(dashboard)/automations/page_client-reference-manifest.js +1 -1
  32. package/web/.next/server/app/(dashboard)/chat/[id]/page.js +1 -1
  33. package/web/.next/server/app/(dashboard)/chat/[id]/page_client-reference-manifest.js +1 -1
  34. package/web/.next/server/app/(dashboard)/chat/page.js +1 -1
  35. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  36. package/web/.next/server/app/(dashboard)/chat/runs/[id]/page.js +1 -0
  37. package/web/.next/server/app/(dashboard)/chat/runs/[id]/page_client-reference-manifest.js +1 -0
  38. package/web/.next/server/app/(dashboard)/code/[id]/page.js +1 -1
  39. package/web/.next/server/app/(dashboard)/code/[id]/page_client-reference-manifest.js +1 -1
  40. package/web/.next/server/app/(dashboard)/code/page.js +1 -1
  41. package/web/.next/server/app/(dashboard)/code/page_client-reference-manifest.js +1 -1
  42. package/web/.next/server/app/(dashboard)/connectors/page.js +1 -1
  43. package/web/.next/server/app/(dashboard)/connectors/page_client-reference-manifest.js +1 -1
  44. package/web/.next/server/app/(dashboard)/credentials/page.js +1 -1
  45. package/web/.next/server/app/(dashboard)/credentials/page_client-reference-manifest.js +1 -1
  46. package/web/.next/server/app/(dashboard)/dashboard/page.js +1 -1
  47. package/web/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  48. package/web/.next/server/app/(dashboard)/jobs/[id]/page.js +1 -1
  49. package/web/.next/server/app/(dashboard)/jobs/[id]/page_client-reference-manifest.js +1 -1
  50. package/web/.next/server/app/(dashboard)/jobs/page.js +1 -1
  51. package/web/.next/server/app/(dashboard)/jobs/page_client-reference-manifest.js +1 -1
  52. package/web/.next/server/app/(dashboard)/learned-skills/page.js +1 -1
  53. package/web/.next/server/app/(dashboard)/learned-skills/page_client-reference-manifest.js +1 -1
  54. package/web/.next/server/app/(dashboard)/llm-providers/page.js +1 -1
  55. package/web/.next/server/app/(dashboard)/llm-providers/page_client-reference-manifest.js +1 -1
  56. package/web/.next/server/app/(dashboard)/logs/page.js +1 -1
  57. package/web/.next/server/app/(dashboard)/logs/page_client-reference-manifest.js +1 -1
  58. package/web/.next/server/app/(dashboard)/mcp/page.js +1 -1
  59. package/web/.next/server/app/(dashboard)/mcp/page_client-reference-manifest.js +1 -1
  60. package/web/.next/server/app/(dashboard)/memories/page.js +1 -1
  61. package/web/.next/server/app/(dashboard)/memories/page_client-reference-manifest.js +1 -1
  62. package/web/.next/server/app/(dashboard)/page.js +1 -1
  63. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  64. package/web/.next/server/app/(dashboard)/scheduled/[id]/page.js +1 -1
  65. package/web/.next/server/app/(dashboard)/scheduled/[id]/page_client-reference-manifest.js +1 -1
  66. package/web/.next/server/app/(dashboard)/scheduled/page.js +1 -1
  67. package/web/.next/server/app/(dashboard)/scheduled/page_client-reference-manifest.js +1 -1
  68. package/web/.next/server/app/(dashboard)/settings/page.js +1 -1
  69. package/web/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  70. package/web/.next/server/app/(dashboard)/settings/root-context/page.js +1 -1
  71. package/web/.next/server/app/(dashboard)/settings/root-context/page_client-reference-manifest.js +1 -1
  72. package/web/.next/server/app/(dashboard)/skills/[id]/edit/page.js +1 -1
  73. package/web/.next/server/app/(dashboard)/skills/[id]/edit/page_client-reference-manifest.js +1 -1
  74. package/web/.next/server/app/(dashboard)/skills/new/page.js +1 -1
  75. package/web/.next/server/app/(dashboard)/skills/new/page_client-reference-manifest.js +1 -1
  76. package/web/.next/server/app/(dashboard)/skills/page.js +1 -1
  77. package/web/.next/server/app/(dashboard)/skills/page_client-reference-manifest.js +1 -1
  78. package/web/.next/server/app/(dashboard)/spaces/[id]/files/page.js +1 -1
  79. package/web/.next/server/app/(dashboard)/spaces/[id]/files/page_client-reference-manifest.js +1 -1
  80. package/web/.next/server/app/(dashboard)/spaces/[id]/page.js +1 -1
  81. package/web/.next/server/app/(dashboard)/spaces/[id]/page_client-reference-manifest.js +1 -1
  82. package/web/.next/server/app/(dashboard)/spaces/page.js +1 -1
  83. package/web/.next/server/app/(dashboard)/spaces/page_client-reference-manifest.js +1 -1
  84. package/web/.next/server/app/_global-error/page.js +2 -2
  85. package/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  86. package/web/.next/server/app/_global-error.html +1 -1
  87. package/web/.next/server/app/_global-error.rsc +2 -2
  88. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +2 -2
  89. package/web/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +2 -2
  90. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  91. package/web/.next/server/app/_not-found/page.js +1 -1
  92. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  93. package/web/.next/server/app/_not-found.html +1 -1
  94. package/web/.next/server/app/_not-found.rsc +3 -3
  95. package/web/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  96. package/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  97. package/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  98. package/web/.next/server/app/api/auth/[...all]/route.js +1 -1
  99. package/web/.next/server/app/api/chat/live/route.js +4 -0
  100. package/web/.next/server/app/api/chat/live/route_client-reference-manifest.js +1 -0
  101. package/web/.next/server/app/api/chat/stop/route.js +1 -0
  102. package/web/.next/server/app/api/chat/stop/route_client-reference-manifest.js +1 -0
  103. package/web/.next/server/app/api/chat/stream/route.js +3 -3
  104. package/web/.next/server/app/api/health/route.js +1 -1
  105. package/web/.next/server/app/api/oauth/[provider]/callback/route.js +1 -1
  106. package/web/.next/server/app/api/oauth/[provider]/start/route.js +1 -1
  107. package/web/.next/server/app/api/runs/[jobId]/media/route.js +1 -0
  108. package/web/.next/server/app/api/runs/[jobId]/media/route_client-reference-manifest.js +1 -0
  109. package/web/.next/server/app/auth/callback/route.js +1 -1
  110. package/web/.next/server/app/login/page.js +1 -1
  111. package/web/.next/server/app/login/page_client-reference-manifest.js +1 -1
  112. package/web/.next/server/app/onboarding/page.js +2 -2
  113. package/web/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  114. package/web/.next/server/app-paths-manifest.json +6 -2
  115. package/web/.next/server/chunks/1326.js +136 -0
  116. package/web/.next/server/chunks/1406.js +1773 -0
  117. package/web/.next/server/chunks/1615.js +1 -0
  118. package/web/.next/server/chunks/1873.js +1 -0
  119. package/web/.next/server/chunks/2443.js +3 -0
  120. package/web/.next/server/chunks/3483.js +1 -0
  121. package/web/.next/server/chunks/3675.js +1 -1
  122. package/web/.next/server/chunks/3920.js +1 -0
  123. package/web/.next/server/chunks/42.js +3 -3
  124. package/web/.next/server/chunks/4546.js +1 -0
  125. package/web/.next/server/chunks/494.js +1 -1
  126. package/web/.next/server/chunks/5648.js +1 -0
  127. package/web/.next/server/chunks/5804.js +1 -1
  128. package/web/.next/server/chunks/592.js +1 -1
  129. package/web/.next/server/chunks/5976.js +1 -0
  130. package/web/.next/server/chunks/6915.js +1 -0
  131. package/web/.next/server/chunks/692.js +15 -15
  132. package/web/.next/server/chunks/7465.js +1 -0
  133. package/web/.next/server/chunks/7651.js +812 -0
  134. package/web/.next/server/chunks/7663.js +22 -22
  135. package/web/.next/server/chunks/7876.js +1 -0
  136. package/web/.next/server/chunks/7915.js +1 -1
  137. package/web/.next/server/chunks/796.js +1 -1
  138. package/web/.next/server/chunks/8030.js +1 -0
  139. package/web/.next/server/chunks/8104.js +1 -0
  140. package/web/.next/server/chunks/8697.js +1 -1
  141. package/web/.next/server/chunks/8794.js +1 -0
  142. package/web/.next/server/chunks/8830.js +1 -0
  143. package/web/.next/server/chunks/9009.js +1 -0
  144. package/web/.next/server/chunks/{4208.js → 9066.js} +1 -1
  145. package/web/.next/server/chunks/965.js +1 -1
  146. package/web/.next/server/chunks/{6213.js → 9844.js} +2 -2
  147. package/web/.next/server/chunks/9882.js +36 -0
  148. package/web/.next/server/middleware-build-manifest.js +1 -1
  149. package/web/.next/server/middleware.js +27 -27
  150. package/web/.next/server/pages/404.html +1 -1
  151. package/web/.next/server/pages/500.html +1 -1
  152. package/web/.next/server/server-reference-manifest.js +1 -1
  153. package/web/.next/server/server-reference-manifest.json +1 -1
  154. package/web/.next/static/chunks/1091-9485133bd943918f.js +1 -0
  155. package/web/.next/static/chunks/{1332-0e4a72eac08cebb9.js → 1409-fe80b5952e1f40cb.js} +1 -1
  156. package/web/.next/static/chunks/1789-2566ac18a25fb387.js +1 -0
  157. package/web/.next/static/chunks/{3051-466a9da3e351fd0d.js → 3051-26ddd67461f743c4.js} +1 -1
  158. package/web/.next/static/chunks/3844-36a00411beee6253.js +1 -0
  159. package/web/.next/static/chunks/4020-ec67a80b0e0b651e.js +1 -0
  160. package/web/.next/static/chunks/4666-5fd532303d09a950.js +1 -0
  161. package/web/.next/static/chunks/4771-47261da3c38b4746.js +1 -0
  162. package/web/.next/static/chunks/494-a34a6a0b36862877.js +1 -0
  163. package/web/.next/static/chunks/5034-9aff8cbeb288ac20.js +1 -0
  164. package/web/.next/static/chunks/5216-528f63f54d56b47a.js +1 -0
  165. package/web/.next/static/chunks/5575-444e6f49e2d2a328.js +1 -0
  166. package/web/.next/static/chunks/560-59e02268ee5fe11e.js +1 -0
  167. package/web/.next/static/chunks/5954-7c92f3e7812dce11.js +1 -0
  168. package/web/.next/static/chunks/{5925-76337eacde3c3bc8.js → 6724-8a6d2dc777961105.js} +11 -11
  169. package/web/.next/static/chunks/6861-5edebd867f40e3a6.js +3 -0
  170. package/web/.next/static/chunks/764-a883257e15345ae8.js +1 -0
  171. package/web/.next/static/chunks/825-c876657b507df9d8.js +1 -0
  172. package/web/.next/static/chunks/9052-33a3c725444cb518.js +1 -0
  173. package/web/.next/static/chunks/9287-41590f18e747f14c.js +1 -0
  174. package/web/.next/static/chunks/9484-f972307c1c78a8e8.js +1 -0
  175. package/web/.next/static/chunks/9643-03e18abc622d33f5.js +1 -0
  176. package/web/.next/static/chunks/app/(dashboard)/agents/[id]/channels/page-7b6e8b91210cb2ee.js +1 -0
  177. package/web/.next/static/chunks/app/(dashboard)/agents/[id]/edit/page-16e26ece80055943.js +6 -0
  178. package/web/.next/static/chunks/app/(dashboard)/agents/[id]/telegram/page-7b6e8b91210cb2ee.js +1 -0
  179. package/web/.next/static/chunks/app/(dashboard)/agents/{page-a26d15238b4c55d3.js → page-ca54871a8009f0aa.js} +1 -1
  180. package/web/.next/static/chunks/app/(dashboard)/approvals/page-a5d31137ad6c86c0.js +1 -0
  181. package/web/.next/static/chunks/app/(dashboard)/automations/[id]/{page-bebc71312e736828.js → page-2ea773c99f54f674.js} +1 -1
  182. package/web/.next/static/chunks/app/(dashboard)/automations/{page-04c38b0a633b5c94.js → page-095be3edd6287d73.js} +1 -1
  183. package/web/.next/static/chunks/app/(dashboard)/chat/[id]/page-00acae0653281839.js +1 -0
  184. package/web/.next/static/chunks/app/(dashboard)/chat/page-056975f6c9d5625b.js +1 -0
  185. package/web/.next/static/chunks/app/(dashboard)/chat/runs/[id]/page-899772b15670d3de.js +1 -0
  186. package/web/.next/static/chunks/app/(dashboard)/code/[id]/page-83535784a61e8e36.js +1 -0
  187. package/web/.next/static/chunks/app/(dashboard)/code/page-7b6e8b91210cb2ee.js +1 -0
  188. package/web/.next/static/chunks/app/(dashboard)/connectors/page-af5150e89038a92b.js +1 -0
  189. package/web/.next/static/chunks/app/(dashboard)/dashboard/{page-5002d088b635d8f9.js → page-241109c80363cab1.js} +1 -1
  190. package/web/.next/static/chunks/app/(dashboard)/jobs/[id]/page-899772b15670d3de.js +1 -0
  191. package/web/.next/static/chunks/app/(dashboard)/jobs/page-7b6e8b91210cb2ee.js +1 -0
  192. package/web/.next/static/chunks/app/(dashboard)/layout-2b492fe5d87e7a8c.js +1 -0
  193. package/web/.next/static/chunks/app/(dashboard)/learned-skills/page-d3d0521187a02e31.js +1 -0
  194. package/web/.next/static/chunks/app/(dashboard)/llm-providers/page-1b5aef6848173842.js +1 -0
  195. package/web/.next/static/chunks/app/(dashboard)/logs/page-fd939bac9a74004e.js +1 -0
  196. package/web/.next/static/chunks/app/(dashboard)/mcp/page-11decdc1d91b079d.js +1 -0
  197. package/web/.next/static/chunks/app/(dashboard)/memories/page-2dda98de596fe53c.js +1 -0
  198. package/web/.next/static/chunks/app/(dashboard)/page-40b43271735f5935.js +1 -0
  199. package/web/.next/static/chunks/app/(dashboard)/scheduled/[id]/page-899772b15670d3de.js +1 -0
  200. package/web/.next/static/chunks/app/(dashboard)/scheduled/page-7b6e8b91210cb2ee.js +1 -0
  201. package/web/.next/static/chunks/app/(dashboard)/settings/page-420c62b3fbec2901.js +1 -0
  202. package/web/.next/static/chunks/app/(dashboard)/settings/root-context/page-7840e0f90ad51fd3.js +1 -0
  203. package/web/.next/static/chunks/app/(dashboard)/skills/page-497d3e268b76b0eb.js +1 -0
  204. package/web/.next/static/chunks/app/(dashboard)/spaces/[id]/files/page-d13f877dfd34c6c0.js +1 -0
  205. package/web/.next/static/chunks/app/(dashboard)/spaces/[id]/page-bf466093877ab1c5.js +1 -0
  206. package/web/.next/static/chunks/app/(dashboard)/spaces/page-1d264307964cfdfe.js +1 -0
  207. package/web/.next/static/chunks/app/_global-error/page-7b6e8b91210cb2ee.js +1 -0
  208. package/web/.next/static/chunks/app/_not-found/page-7b6e8b91210cb2ee.js +1 -0
  209. package/web/.next/static/chunks/app/api/auth/[...all]/route-7b6e8b91210cb2ee.js +1 -0
  210. package/web/.next/static/chunks/app/api/chat/live/route-7b6e8b91210cb2ee.js +1 -0
  211. package/web/.next/static/chunks/app/api/chat/stop/route-7b6e8b91210cb2ee.js +1 -0
  212. package/web/.next/static/chunks/app/api/chat/stream/route-7b6e8b91210cb2ee.js +1 -0
  213. package/web/.next/static/chunks/app/api/health/route-7b6e8b91210cb2ee.js +1 -0
  214. package/web/.next/static/chunks/app/api/oauth/[provider]/callback/route-7b6e8b91210cb2ee.js +1 -0
  215. package/web/.next/static/chunks/app/api/oauth/[provider]/start/route-7b6e8b91210cb2ee.js +1 -0
  216. package/web/.next/static/chunks/app/api/runs/[jobId]/media/route-7b6e8b91210cb2ee.js +1 -0
  217. package/web/.next/static/chunks/app/auth/callback/route-7b6e8b91210cb2ee.js +1 -0
  218. package/web/.next/static/chunks/app/login/{page-031e915b40cb5be6.js → page-d260a3be0b6857ef.js} +1 -1
  219. package/web/.next/static/chunks/app/onboarding/{page-06209a6e3a31fb73.js → page-07908ee9b2b6d6b5.js} +2 -2
  220. package/web/.next/static/chunks/next/dist/client/components/builtin/app-error-7b6e8b91210cb2ee.js +1 -0
  221. package/web/.next/static/chunks/next/dist/client/components/builtin/forbidden-7b6e8b91210cb2ee.js +1 -0
  222. package/web/.next/static/chunks/next/dist/client/components/builtin/unauthorized-7b6e8b91210cb2ee.js +1 -0
  223. package/web/.next/static/css/55c009e1dd52d5a7.css +1 -0
  224. package/web/.next/static/uWxfL1NbU-xFtwNtkF4Wb/_buildManifest.js +1 -0
  225. package/web/.next/server/chunks/3592.js +0 -1
  226. package/web/.next/server/chunks/3650.js +0 -1
  227. package/web/.next/server/chunks/385.js +0 -1
  228. package/web/.next/server/chunks/409.js +0 -1
  229. package/web/.next/server/chunks/4194.js +0 -1
  230. package/web/.next/server/chunks/4357.js +0 -1
  231. package/web/.next/server/chunks/616.js +0 -1
  232. package/web/.next/server/chunks/6724.js +0 -1
  233. package/web/.next/server/chunks/7134.js +0 -947
  234. package/web/.next/server/chunks/7190.js +0 -1
  235. package/web/.next/server/chunks/7273.js +0 -3
  236. package/web/.next/server/chunks/7416.js +0 -1
  237. package/web/.next/server/chunks/7709.js +0 -1
  238. package/web/.next/server/chunks/7975.js +0 -1
  239. package/web/.next/server/chunks/8022.js +0 -1
  240. package/web/.next/server/chunks/8153.js +0 -1
  241. package/web/.next/server/chunks/8974.js +0 -1808
  242. package/web/.next/static/bG6cdQqQw9o06-WZ6DrN2/_buildManifest.js +0 -1
  243. package/web/.next/static/chunks/1054-5f8b510bbf6ff3e9.js +0 -1
  244. package/web/.next/static/chunks/1091-8f1b68252431e271.js +0 -1
  245. package/web/.next/static/chunks/1577-09f4d5183fb172de.js +0 -1
  246. package/web/.next/static/chunks/1789-b436bca079b82fcc.js +0 -1
  247. package/web/.next/static/chunks/296-1b50dd61ac3198f4.js +0 -1
  248. package/web/.next/static/chunks/3388-530c6d429c484862.js +0 -3
  249. package/web/.next/static/chunks/3815-aa88c216677b6c3f.js +0 -1
  250. package/web/.next/static/chunks/4020-dcde3e62f67473f3.js +0 -1
  251. package/web/.next/static/chunks/4771-a0aadf337f224b72.js +0 -1
  252. package/web/.next/static/chunks/494-ed02d105fa0ac132.js +0 -1
  253. package/web/.next/static/chunks/5034-11fd1b56b43dc6e5.js +0 -1
  254. package/web/.next/static/chunks/6883-73dc26cf02070115.js +0 -1
  255. package/web/.next/static/chunks/7039-7a3b6bdbfda78038.js +0 -1
  256. package/web/.next/static/chunks/7920-40dc6aa63e653d6b.js +0 -1
  257. package/web/.next/static/chunks/870-b7151716d04a13c3.js +0 -1
  258. package/web/.next/static/chunks/8794-2a616d1f9c210117.js +0 -1
  259. package/web/.next/static/chunks/8861-a108ed6178a56b21.js +0 -1
  260. package/web/.next/static/chunks/9643-b0b049bb41a7cba4.js +0 -1
  261. package/web/.next/static/chunks/9901-24977d0da68dcf77.js +0 -1
  262. package/web/.next/static/chunks/app/(dashboard)/agents/[id]/channels/page-523c5d229e8520bf.js +0 -1
  263. package/web/.next/static/chunks/app/(dashboard)/agents/[id]/edit/page-4594e5fc99cc04ed.js +0 -6
  264. package/web/.next/static/chunks/app/(dashboard)/agents/[id]/telegram/page-523c5d229e8520bf.js +0 -1
  265. package/web/.next/static/chunks/app/(dashboard)/approvals/page-3de0cc34d6dbeaf5.js +0 -1
  266. package/web/.next/static/chunks/app/(dashboard)/chat/[id]/page-faa53d8decd24a6a.js +0 -1
  267. package/web/.next/static/chunks/app/(dashboard)/chat/page-c45d840d7ca4faa7.js +0 -1
  268. package/web/.next/static/chunks/app/(dashboard)/code/[id]/page-52a3e2140bd0d64a.js +0 -1
  269. package/web/.next/static/chunks/app/(dashboard)/code/page-523c5d229e8520bf.js +0 -1
  270. package/web/.next/static/chunks/app/(dashboard)/connectors/page-081ca4b9bbeb2fcb.js +0 -1
  271. package/web/.next/static/chunks/app/(dashboard)/jobs/[id]/page-5573e316921e5315.js +0 -1
  272. package/web/.next/static/chunks/app/(dashboard)/jobs/page-523c5d229e8520bf.js +0 -1
  273. package/web/.next/static/chunks/app/(dashboard)/layout-b542af6fe3f7621e.js +0 -1
  274. package/web/.next/static/chunks/app/(dashboard)/learned-skills/page-950bf08720e4b3aa.js +0 -1
  275. package/web/.next/static/chunks/app/(dashboard)/llm-providers/page-8ada985ee9578d2f.js +0 -1
  276. package/web/.next/static/chunks/app/(dashboard)/logs/page-a2cf705f0ddb7329.js +0 -1
  277. package/web/.next/static/chunks/app/(dashboard)/mcp/page-17498336e813cd6c.js +0 -1
  278. package/web/.next/static/chunks/app/(dashboard)/memories/page-5c8fc395823f4823.js +0 -1
  279. package/web/.next/static/chunks/app/(dashboard)/page-48d1d32604854d18.js +0 -1
  280. package/web/.next/static/chunks/app/(dashboard)/scheduled/[id]/page-5573e316921e5315.js +0 -1
  281. package/web/.next/static/chunks/app/(dashboard)/scheduled/page-523c5d229e8520bf.js +0 -1
  282. package/web/.next/static/chunks/app/(dashboard)/settings/page-f4d50d3900c7387a.js +0 -1
  283. package/web/.next/static/chunks/app/(dashboard)/settings/root-context/page-edace0d3a7f0134a.js +0 -1
  284. package/web/.next/static/chunks/app/(dashboard)/skills/page-7dc32162faa0e762.js +0 -1
  285. package/web/.next/static/chunks/app/(dashboard)/spaces/[id]/files/page-4e2d27f80456a1ba.js +0 -1
  286. package/web/.next/static/chunks/app/(dashboard)/spaces/[id]/page-c81023eaa26c2c7a.js +0 -1
  287. package/web/.next/static/chunks/app/(dashboard)/spaces/page-b516d5b0664dffee.js +0 -1
  288. package/web/.next/static/chunks/app/_global-error/page-523c5d229e8520bf.js +0 -1
  289. package/web/.next/static/chunks/app/_not-found/page-523c5d229e8520bf.js +0 -1
  290. package/web/.next/static/chunks/app/api/auth/[...all]/route-523c5d229e8520bf.js +0 -1
  291. package/web/.next/static/chunks/app/api/chat/stream/route-523c5d229e8520bf.js +0 -1
  292. package/web/.next/static/chunks/app/api/health/route-523c5d229e8520bf.js +0 -1
  293. package/web/.next/static/chunks/app/api/oauth/[provider]/callback/route-523c5d229e8520bf.js +0 -1
  294. package/web/.next/static/chunks/app/api/oauth/[provider]/start/route-523c5d229e8520bf.js +0 -1
  295. package/web/.next/static/chunks/app/auth/callback/route-523c5d229e8520bf.js +0 -1
  296. package/web/.next/static/chunks/next/dist/client/components/builtin/app-error-523c5d229e8520bf.js +0 -1
  297. package/web/.next/static/chunks/next/dist/client/components/builtin/forbidden-523c5d229e8520bf.js +0 -1
  298. package/web/.next/static/chunks/next/dist/client/components/builtin/unauthorized-523c5d229e8520bf.js +0 -1
  299. package/web/.next/static/css/099c0b54fc41e5b0.css +0 -1
  300. /package/web/.next/static/{bG6cdQqQw9o06-WZ6DrN2 → uWxfL1NbU-xFtwNtkF4Wb}/_ssgManifest.js +0 -0
package/cli.js CHANGED
@@ -11425,8 +11425,8 @@ function postmasterHoldsDataDir(pid, dataDir) {
11425
11425
  function processStartedAtMs(pid) {
11426
11426
  if (process.platform !== "linux") return null;
11427
11427
  try {
11428
- const stat2 = readFileSync4(`/proc/${pid}/stat`, "utf-8");
11429
- const after = stat2.slice(stat2.lastIndexOf(")") + 2).split(" ");
11428
+ const stat3 = readFileSync4(`/proc/${pid}/stat`, "utf-8");
11429
+ const after = stat3.slice(stat3.lastIndexOf(")") + 2).split(" ");
11430
11430
  const ticksSinceBoot = Number.parseInt(after[19] ?? "", 10);
11431
11431
  if (!Number.isFinite(ticksSinceBoot)) return null;
11432
11432
  const uptimeSeconds = Number.parseFloat(
@@ -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
  });
@@ -13704,17 +13701,6 @@ var init_model_catalog = __esm({
13704
13701
  cacheWritePerMillionUsd: 6.25
13705
13702
  }
13706
13703
  },
13707
- {
13708
- modelId: "anthropic/claude-opus-5-fast",
13709
- label: "Claude Opus 5 (fast)",
13710
- capabilities: {
13711
- tools: true,
13712
- forcedToolChoice: true,
13713
- reasoningControl: { kind: "effort", levels: ["low", "medium", "high", "max"] }
13714
- },
13715
- contextWindow: 1e6,
13716
- pricing: { inputPerMillionUsd: 10, outputPerMillionUsd: 50 }
13717
- },
13718
13704
  {
13719
13705
  modelId: "anthropic/claude-sonnet-5",
13720
13706
  label: "Claude Sonnet 5",
@@ -13747,6 +13733,34 @@ var init_model_catalog = __esm({
13747
13733
  cacheWritePerMillionUsd: 12.5
13748
13734
  }
13749
13735
  },
13736
+ {
13737
+ // The newest of the family (2026-09-01), read off /api/v1/models on
13738
+ // 2026-09-22: same window, prices and modalities as Fable 5 except the
13739
+ // cache READ price, four times lower (0.25 vs 1). Its `reasoning` object
13740
+ // says mandatory:true with efforts max/xhigh/high/medium/low, so Off is
13741
+ // hidden here — the Fable 5 entry above predates that object and still
13742
+ // offers it (#417). No always-on `reasoning` flag, as for every Claude
13743
+ // route in this file: the flag would flip openrouter.ts's default
13744
+ // injection, and a mandatory model thinks anyway.
13745
+ modelId: "anthropic/claude-fable-5.1",
13746
+ label: "Claude Fable 5.1",
13747
+ capabilities: {
13748
+ tools: true,
13749
+ forcedToolChoice: true,
13750
+ reasoningControl: {
13751
+ kind: "effort",
13752
+ levels: ["low", "medium", "high", "max"],
13753
+ mandatory: true
13754
+ }
13755
+ },
13756
+ contextWindow: 1e6,
13757
+ pricing: {
13758
+ inputPerMillionUsd: 10,
13759
+ outputPerMillionUsd: 50,
13760
+ cacheReadPerMillionUsd: 0.25,
13761
+ cacheWritePerMillionUsd: 12.5
13762
+ }
13763
+ },
13750
13764
  // ─── OpenAI ───────────────────────────────────────────────────────────────
13751
13765
  // OpenAI was absent from the OpenRouter list entirely — not a curation
13752
13766
  // choice, a gap: the native `openai` provider carried gpt-5 while anyone
@@ -13799,6 +13813,107 @@ var init_model_catalog = __esm({
13799
13813
  cacheWritePerMillionUsd: 2.5
13800
13814
  }
13801
13815
  },
13816
+ // The rest of the 5.6 series and GPT-6 Astra, read off OpenRouter's
13817
+ // /api/v1/models on 2026-09-22 — including its `reasoning` object
13818
+ // ({mandatory, default_enabled, supported_efforts}), which is what the
13819
+ // control below follows. Sol, Sol Pro and Terra: mandatory:false,
13820
+ // supported_efforts max/xhigh/high/medium/low/none → the Luna posture
13821
+ // (four levels, Off offered). Astra and Astra Pro: mandatory:true, no
13822
+ // 'none' → the same four levels with Off hidden. Prices are the
13823
+ // STANDARD OpenAI service tier, the one the list endpoint reports; the
13824
+ // endpoints list also carries a flex tier at half and a priority tier at
13825
+ // double, and an override above 272K prompt tokens — the flat catalogue
13826
+ // price is the standard tier, as for Luna and Terra Pro above. Upstream
13827
+ // copy: Sol is the 5.6 flagship, Terra the balanced tier between Sol and
13828
+ // Luna, Astra "OpenAI's flagship model for demanding end-to-end work".
13829
+ {
13830
+ modelId: "openai/gpt-5.6-terra",
13831
+ label: "GPT-5.6 Terra",
13832
+ capabilities: {
13833
+ tools: true,
13834
+ forcedToolChoice: true,
13835
+ reasoningControl: { kind: "effort", levels: ["low", "medium", "high", "max"] }
13836
+ },
13837
+ contextWindow: 105e4,
13838
+ pricing: {
13839
+ inputPerMillionUsd: 2,
13840
+ outputPerMillionUsd: 12,
13841
+ cacheReadPerMillionUsd: 0.2,
13842
+ cacheWritePerMillionUsd: 2.5
13843
+ }
13844
+ },
13845
+ {
13846
+ modelId: "openai/gpt-5.6-sol",
13847
+ label: "GPT-5.6 Sol",
13848
+ capabilities: {
13849
+ tools: true,
13850
+ forcedToolChoice: true,
13851
+ reasoningControl: { kind: "effort", levels: ["low", "medium", "high", "max"] }
13852
+ },
13853
+ contextWindow: 105e4,
13854
+ pricing: {
13855
+ inputPerMillionUsd: 2,
13856
+ outputPerMillionUsd: 10,
13857
+ cacheReadPerMillionUsd: 0.2,
13858
+ cacheWritePerMillionUsd: 2.5
13859
+ }
13860
+ },
13861
+ {
13862
+ modelId: "openai/gpt-5.6-sol-pro",
13863
+ label: "GPT-5.6 Sol Pro",
13864
+ capabilities: {
13865
+ tools: true,
13866
+ forcedToolChoice: true,
13867
+ reasoningControl: { kind: "effort", levels: ["low", "medium", "high", "max"] }
13868
+ },
13869
+ contextWindow: 105e4,
13870
+ pricing: {
13871
+ inputPerMillionUsd: 2,
13872
+ outputPerMillionUsd: 10,
13873
+ cacheReadPerMillionUsd: 0.2,
13874
+ cacheWritePerMillionUsd: 2.5
13875
+ }
13876
+ },
13877
+ {
13878
+ modelId: "openai/gpt-6-astra",
13879
+ label: "GPT-6 Astra",
13880
+ capabilities: {
13881
+ tools: true,
13882
+ forcedToolChoice: true,
13883
+ reasoningControl: {
13884
+ kind: "effort",
13885
+ levels: ["low", "medium", "high", "max"],
13886
+ mandatory: true
13887
+ }
13888
+ },
13889
+ contextWindow: 105e4,
13890
+ pricing: {
13891
+ inputPerMillionUsd: 10,
13892
+ outputPerMillionUsd: 50,
13893
+ cacheReadPerMillionUsd: 1,
13894
+ cacheWritePerMillionUsd: 12.5
13895
+ }
13896
+ },
13897
+ {
13898
+ modelId: "openai/gpt-6-astra-pro",
13899
+ label: "GPT-6 Astra Pro",
13900
+ capabilities: {
13901
+ tools: true,
13902
+ forcedToolChoice: true,
13903
+ reasoningControl: {
13904
+ kind: "effort",
13905
+ levels: ["low", "medium", "high", "max"],
13906
+ mandatory: true
13907
+ }
13908
+ },
13909
+ contextWindow: 105e4,
13910
+ pricing: {
13911
+ inputPerMillionUsd: 10,
13912
+ outputPerMillionUsd: 50,
13913
+ cacheReadPerMillionUsd: 1,
13914
+ cacheWritePerMillionUsd: 12.5
13915
+ }
13916
+ },
13802
13917
  // Anthropic — reasoningControl WITHOUT the `reasoning` flag, on purpose:
13803
13918
  // the flag would flip openrouter.ts's always-on default injection; here
13804
13919
  // thinking is engaged only when the agent explicitly sets an effort.
@@ -13835,17 +13950,6 @@ var init_model_catalog = __esm({
13835
13950
  cacheWritePerMillionUsd: 6.25
13836
13951
  }
13837
13952
  },
13838
- {
13839
- modelId: "anthropic/claude-opus-4.7-fast",
13840
- label: "Claude Opus 4.7 (fast)",
13841
- capabilities: {
13842
- tools: true,
13843
- forcedToolChoice: true,
13844
- reasoningControl: { kind: "effort", levels: ["low", "medium", "high", "max"] }
13845
- },
13846
- contextWindow: 1e6,
13847
- pricing: { inputPerMillionUsd: 30, outputPerMillionUsd: 150 }
13848
- },
13849
13953
  {
13850
13954
  modelId: "anthropic/claude-opus-4.8",
13851
13955
  label: "Claude Opus 4.8",
@@ -13862,17 +13966,6 @@ var init_model_catalog = __esm({
13862
13966
  cacheWritePerMillionUsd: 6.25
13863
13967
  }
13864
13968
  },
13865
- {
13866
- modelId: "anthropic/claude-opus-4.8-fast",
13867
- label: "Claude Opus 4.8 (fast)",
13868
- capabilities: {
13869
- tools: true,
13870
- forcedToolChoice: true,
13871
- reasoningControl: { kind: "effort", levels: ["low", "medium", "high", "max"] }
13872
- },
13873
- contextWindow: 1e6,
13874
- pricing: { inputPerMillionUsd: 10, outputPerMillionUsd: 50 }
13875
- },
13876
13969
  {
13877
13970
  modelId: "anthropic/claude-sonnet-4.6",
13878
13971
  label: "Claude Sonnet 4.6",
@@ -13963,6 +14056,58 @@ var init_model_catalog = __esm({
13963
14056
  cacheReadPerMillionUsd: 0.064902
13964
14057
  }
13965
14058
  },
14059
+ {
14060
+ // "The GA release of DeepSeek V4 Pro" (upstream copy) — the dated
14061
+ // successor of the undated alias above. Pricing (DeepSeek's own
14062
+ // endpoint), context and supported_parameters read off /api/v1/models
14063
+ // on 2026-09-22. The levels follow the list endpoint's `reasoning`
14064
+ // object: supported_efforts max/high/low, mandatory:false — so no
14065
+ // 'medium', unlike the older entries above that predate that field.
14066
+ modelId: "deepseek/deepseek-v4-pro-0813",
14067
+ label: "DeepSeek V4 Pro (0813)",
14068
+ capabilities: {
14069
+ tools: true,
14070
+ forcedToolChoice: true,
14071
+ reasoning: true,
14072
+ reasoningControl: { kind: "effort", levels: ["low", "high", "max"] }
14073
+ },
14074
+ contextWindow: 1048576,
14075
+ providerOrder: ["deepseek"],
14076
+ pricing: {
14077
+ inputPerMillionUsd: 0.66,
14078
+ outputPerMillionUsd: 1.98,
14079
+ cacheReadPerMillionUsd: 0.022
14080
+ }
14081
+ },
14082
+ {
14083
+ // The newest Flash (2026-09-10), first on DeepSeek's Causal
14084
+ // Encoder-Decoder architecture. One difference from every V4 Flash
14085
+ // above: it takes IMAGE input (input_modalities: text, image), so it is
14086
+ // in VISION_MODEL_IDS. Same reasoning caveat as its siblings; levels
14087
+ // from the list endpoint's `reasoning` object (max/high/low,
14088
+ // mandatory:false, default_enabled:true). forcedToolChoice:false —
14089
+ // DeepSeek's own endpoint (the one providerOrder prefers) reports
14090
+ // supports_tool_choice.required:false; some fallbacks (DeepInfra,
14091
+ // Wafer) report true, and the runtime floor relaxes it anyway.
14092
+ // 'max' → OpenRouter 'xhigh' and Auto → 'medium' are not in this
14093
+ // model's supported_efforts; OpenRouter documents that it "will map
14094
+ // your requested effort to the nearest supported level".
14095
+ modelId: "deepseek/deepseek-v4.1-flash",
14096
+ label: "DeepSeek V4.1 Flash",
14097
+ capabilities: {
14098
+ tools: true,
14099
+ forcedToolChoice: false,
14100
+ reasoning: true,
14101
+ reasoningControl: { kind: "effort", levels: ["low", "high", "max"] }
14102
+ },
14103
+ contextWindow: 1048576,
14104
+ providerOrder: ["deepseek"],
14105
+ pricing: {
14106
+ inputPerMillionUsd: 0.15,
14107
+ outputPerMillionUsd: 0.6,
14108
+ cacheReadPerMillionUsd: 3e-3
14109
+ }
14110
+ },
13966
14111
  // Google — all three are thinking models on OpenRouter (supported_parameters
13967
14112
  // includes "reasoning", verified via openrouter.ai/google/… 2026-07-12).
13968
14113
  // reasoning:true makes the OpenRouter provider enable reasoning + round-trip
@@ -14214,6 +14359,93 @@ var init_model_catalog = __esm({
14214
14359
  cacheReadPerMillionUsd: 0.015
14215
14360
  }
14216
14361
  },
14362
+ {
14363
+ // "The high-speed variant of GLM-5.3-Flash ... up to 200 tokens/s"
14364
+ // (upstream copy, 2026-09-18). Same model family as Flash: multimodal
14365
+ // (text, image, video → VISION_MODEL_IDS), forcedToolChoice:false
14366
+ // (supports_tool_choice.required:false on its endpoint). The control
14367
+ // follows the list endpoint's `reasoning` object, read 2026-09-22:
14368
+ // mandatory:true, supported_efforts max/high/low, default max — the
14369
+ // full 5.3's posture, and the same object upstream now reports for
14370
+ // Flash too (the Flash entry above predates that field). It differs
14371
+ // from Flash on price (~5x) and context (1.05M, not 1.31M).
14372
+ modelId: "z-ai/glm-5.3-flashx",
14373
+ label: "GLM 5.3 FlashX",
14374
+ capabilities: {
14375
+ tools: true,
14376
+ forcedToolChoice: false,
14377
+ reasoning: true,
14378
+ reasoningControl: {
14379
+ kind: "effort",
14380
+ levels: ["low", "high", "max"],
14381
+ mandatory: true
14382
+ }
14383
+ },
14384
+ contextWindow: 1048576,
14385
+ pricing: {
14386
+ inputPerMillionUsd: 0.37,
14387
+ outputPerMillionUsd: 1.25,
14388
+ cacheReadPerMillionUsd: 0.075
14389
+ }
14390
+ },
14391
+ // Xiaomi MiMo-V2.6 — the three 2.6 models OpenRouter serves (2026-09-21),
14392
+ // all read off /api/v1/models and /models/<id>/endpoints on 2026-09-22:
14393
+ // 1.05M context, 131K max output, input_modalities text+image+video+audio
14394
+ // (→ VISION_MODEL_IDS), supported_parameters tools, tool_choice,
14395
+ // reasoning, include_reasoning — and NO reasoning_effort. The list
14396
+ // endpoint's `reasoning` object says only {mandatory:false}: no
14397
+ // supported_efforts, so thinking can be switched on or off and nothing
14398
+ // else — kind 'onoff', not a made-up scale. No always-on `reasoning`
14399
+ // flag: Auto keeps the provider's default. forcedToolChoice:true —
14400
+ // every endpoint reports supports_tool_choice.required:true.
14401
+ // Upstream copy: Flash = 309B MoE / 15B active; Pro = the >1T flagship;
14402
+ // Pro-UltraSpeed = the same Pro checkpoint "roughly 10x" faster, 10x the
14403
+ // price.
14404
+ {
14405
+ modelId: "xiaomi/mimo-v2.6-flash",
14406
+ label: "MiMo V2.6 Flash",
14407
+ capabilities: {
14408
+ tools: true,
14409
+ forcedToolChoice: true,
14410
+ reasoningControl: { kind: "onoff" }
14411
+ },
14412
+ contextWindow: 1048576,
14413
+ pricing: {
14414
+ inputPerMillionUsd: 0.14,
14415
+ outputPerMillionUsd: 0.28,
14416
+ cacheReadPerMillionUsd: 28e-4
14417
+ }
14418
+ },
14419
+ {
14420
+ modelId: "xiaomi/mimo-v2.6-pro",
14421
+ label: "MiMo V2.6 Pro",
14422
+ capabilities: {
14423
+ tools: true,
14424
+ forcedToolChoice: true,
14425
+ reasoningControl: { kind: "onoff" }
14426
+ },
14427
+ contextWindow: 1048576,
14428
+ pricing: {
14429
+ inputPerMillionUsd: 0.435,
14430
+ outputPerMillionUsd: 0.87,
14431
+ cacheReadPerMillionUsd: 36e-4
14432
+ }
14433
+ },
14434
+ {
14435
+ modelId: "xiaomi/mimo-v2.6-pro-ultraspeed",
14436
+ label: "MiMo V2.6 Pro UltraSpeed",
14437
+ capabilities: {
14438
+ tools: true,
14439
+ forcedToolChoice: true,
14440
+ reasoningControl: { kind: "onoff" }
14441
+ },
14442
+ contextWindow: 1048576,
14443
+ pricing: {
14444
+ inputPerMillionUsd: 4.35,
14445
+ outputPerMillionUsd: 8.7,
14446
+ cacheReadPerMillionUsd: 0.036
14447
+ }
14448
+ },
14217
14449
  // Moonshot (Kimi)
14218
14450
  {
14219
14451
  modelId: "moonshotai/kimi-k2.6",
@@ -14292,6 +14524,56 @@ var init_model_catalog = __esm({
14292
14524
  cacheReadPerMillionUsd: 0.3
14293
14525
  }
14294
14526
  },
14527
+ // Grok 4.6 (2026-08-12) and 4.7 (2026-09-21, "succeeding Grok 4.6" per
14528
+ // upstream copy): same 500K context, same text+image+file input
14529
+ // (→ VISION_MODEL_IDS), same supported_parameters as 4.5 (tools,
14530
+ // tool_choice, reasoning, reasoning_effort), read off /api/v1/models and
14531
+ // /models/<id>/endpoints on 2026-09-22. The control follows the list
14532
+ // endpoint's `reasoning` object: mandatory:true (no Off), and — unlike
14533
+ // 4.5, whose object stops at high — supported_efforts xhigh/high/medium/
14534
+ // low, so 'max' (→ xhigh) is offered. Pricing: 4.6 = 4.5; 4.7 is 20%
14535
+ // cheaper. Both double above 200K prompt tokens (an override the flat
14536
+ // price does not carry, same as 4.5).
14537
+ {
14538
+ modelId: "x-ai/grok-4.6",
14539
+ label: "Grok 4.6",
14540
+ capabilities: {
14541
+ tools: true,
14542
+ forcedToolChoice: true,
14543
+ reasoning: true,
14544
+ reasoningControl: {
14545
+ kind: "effort",
14546
+ levels: ["low", "medium", "high", "max"],
14547
+ mandatory: true
14548
+ }
14549
+ },
14550
+ contextWindow: 5e5,
14551
+ pricing: {
14552
+ inputPerMillionUsd: 2,
14553
+ outputPerMillionUsd: 6,
14554
+ cacheReadPerMillionUsd: 0.5
14555
+ }
14556
+ },
14557
+ {
14558
+ modelId: "x-ai/grok-4.7",
14559
+ label: "Grok 4.7",
14560
+ capabilities: {
14561
+ tools: true,
14562
+ forcedToolChoice: true,
14563
+ reasoning: true,
14564
+ reasoningControl: {
14565
+ kind: "effort",
14566
+ levels: ["low", "medium", "high", "max"],
14567
+ mandatory: true
14568
+ }
14569
+ },
14570
+ contextWindow: 5e5,
14571
+ pricing: {
14572
+ inputPerMillionUsd: 1.6,
14573
+ outputPerMillionUsd: 4.8,
14574
+ cacheReadPerMillionUsd: 0.4
14575
+ }
14576
+ },
14295
14577
  // Qwen — both verified via OpenRouter /api/v1/models (2026-07-20): 1M
14296
14578
  // context, tools + tool_choice + reasoning params (no native
14297
14579
  // reasoning_effort — OpenRouter's unified param drives the hybrid
@@ -14374,13 +14656,12 @@ var init_model_catalog = __esm({
14374
14656
  VISION_MODEL_IDS = /* @__PURE__ */ new Set([
14375
14657
  // OpenRouter (verified via /api/v1/models)
14376
14658
  "anthropic/claude-fable-5",
14659
+ // input_modalities ["text","image","file"] on /api/v1/models, 2026-09-22.
14660
+ "anthropic/claude-fable-5.1",
14377
14661
  "anthropic/claude-haiku-4.5",
14378
14662
  "anthropic/claude-opus-4.7",
14379
- "anthropic/claude-opus-4.7-fast",
14380
14663
  "anthropic/claude-opus-4.8",
14381
- "anthropic/claude-opus-4.8-fast",
14382
14664
  "anthropic/claude-opus-5",
14383
- "anthropic/claude-opus-5-fast",
14384
14665
  "anthropic/claude-sonnet-4.6",
14385
14666
  "anthropic/claude-sonnet-5",
14386
14667
  "google/gemini-3.1-flash-lite-preview",
@@ -14396,14 +14677,35 @@ var init_model_catalog = __esm({
14396
14677
  "openai/gpt-5.6-luna",
14397
14678
  "openai/gpt-5.6-luna-pro",
14398
14679
  "openai/gpt-5.6-terra-pro",
14680
+ // The rest of the 5.6 series and GPT-6 Astra: input_modalities
14681
+ // ["file","image","text"] on /api/v1/models, 2026-09-22.
14682
+ "openai/gpt-5.6-terra",
14683
+ "openai/gpt-5.6-sol",
14684
+ "openai/gpt-5.6-sol-pro",
14685
+ "openai/gpt-6-astra",
14686
+ "openai/gpt-6-astra-pro",
14687
+ // deepseek/deepseek-v4.1-flash reports ["text","image"] (2026-09-22) — the
14688
+ // first V4 Flash that does; v4-flash, v4-flash-0731 and both V4 Pro are
14689
+ // text-only per the same source and deliberately NOT in this set.
14690
+ "deepseek/deepseek-v4.1-flash",
14399
14691
  "qwen/qwen3.8-max",
14400
14692
  // Verified via OpenRouter /api/v1/models input_modalities on 2026-08-28:
14401
14693
  // z-ai/glm-5.3-flash reports ["text","image","video"]. The full z-ai/glm-5.3
14402
14694
  // reports ["text"] only and is deliberately NOT in this set.
14403
14695
  "z-ai/glm-5.3-flash",
14696
+ // z-ai/glm-5.3-flashx reports the same ["text","image","video"] (2026-09-22).
14697
+ "z-ai/glm-5.3-flashx",
14698
+ // Xiaomi MiMo-V2.6: all three report ["text","image","video","audio"]
14699
+ // (2026-09-22).
14700
+ "xiaomi/mimo-v2.6-flash",
14701
+ "xiaomi/mimo-v2.6-pro",
14702
+ "xiaomi/mimo-v2.6-pro-ultraspeed",
14404
14703
  // Verified via OpenRouter /api/v1/models input_modalities (2026-07-20).
14405
14704
  // qwen/qwen3.7-max is deliberately absent — text-only per the same source.
14406
14705
  "x-ai/grok-4.5",
14706
+ // 4.6 and 4.7 report the same ["text","image","file"] (2026-09-22).
14707
+ "x-ai/grok-4.6",
14708
+ "x-ai/grok-4.7",
14407
14709
  "qwen/qwen3.7-plus",
14408
14710
  // Native-provider forms
14409
14711
  "claude-fable-5",
@@ -14429,6 +14731,31 @@ var init_model_catalog = __esm({
14429
14731
  }
14430
14732
  });
14431
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
+
14432
14759
  // ../../packages/shared/src/mcp-catalog.ts
14433
14760
  var init_mcp_catalog = __esm({
14434
14761
  "../../packages/shared/src/mcp-catalog.ts"() {
@@ -14451,9 +14778,51 @@ var init_redact_secrets = __esm({
14451
14778
  });
14452
14779
 
14453
14780
  // ../../packages/shared/src/catastrophic-command.ts
14781
+ var STATIC_SHELL_CATEGORY_PATTERNS, DESTRUCTIVE_PATTERNS;
14454
14782
  var init_catastrophic_command = __esm({
14455
14783
  "../../packages/shared/src/catastrophic-command.ts"() {
14456
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();
14457
14826
  }
14458
14827
  });
14459
14828
 
@@ -14549,6 +14918,47 @@ var init_agent_slug = __esm({
14549
14918
  }
14550
14919
  });
14551
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
+
14552
14962
  // ../../packages/shared/src/shell-programs.ts
14553
14963
  var init_shell_programs = __esm({
14554
14964
  "../../packages/shared/src/shell-programs.ts"() {
@@ -14601,7 +15011,7 @@ var init_project_subfolder = __esm({
14601
15011
  });
14602
15012
 
14603
15013
  // ../../packages/shared/src/types/verification.ts
14604
- import { z as z23 } from "zod";
15014
+ import { z as z24 } from "zod";
14605
15015
  var DELIVERABLE_TYPES, DeliverableTypeSchema, DECISION_STATUSES, DecisionStatusSchema, ATOMIC_OUTCOMES, AtomicOutcomeSchema, RUN_VERDICTS, RunVerdictSchema, VERIFICATION_RUN_SOURCES, VerificationRunSourceKindSchema, VerifyCommandSchema, VERIFY_COMMANDS_MAX, VerifyCommandsSchema;
14606
15016
  var init_verification = __esm({
14607
15017
  "../../packages/shared/src/types/verification.ts"() {
@@ -14613,7 +15023,7 @@ var init_verification = __esm({
14613
15023
  "outbound_action",
14614
15024
  "other"
14615
15025
  ];
14616
- DeliverableTypeSchema = z23.enum(DELIVERABLE_TYPES);
15026
+ DeliverableTypeSchema = z24.enum(DELIVERABLE_TYPES);
14617
15027
  DECISION_STATUSES = [
14618
15028
  "dirty",
14619
15029
  "green",
@@ -14622,7 +15032,7 @@ var init_verification = __esm({
14622
15032
  "not_configured",
14623
15033
  "infra_error"
14624
15034
  ];
14625
- DecisionStatusSchema = z23.enum(DECISION_STATUSES);
15035
+ DecisionStatusSchema = z24.enum(DECISION_STATUSES);
14626
15036
  ATOMIC_OUTCOMES = [
14627
15037
  "prepared",
14628
15038
  "attempted",
@@ -14630,17 +15040,17 @@ var init_verification = __esm({
14630
15040
  "rejected",
14631
15041
  "outcome_unknown"
14632
15042
  ];
14633
- AtomicOutcomeSchema = z23.enum(ATOMIC_OUTCOMES);
15043
+ AtomicOutcomeSchema = z24.enum(ATOMIC_OUTCOMES);
14634
15044
  RUN_VERDICTS = ["green", "red", "infra_error"];
14635
- RunVerdictSchema = z23.enum(RUN_VERDICTS);
15045
+ RunVerdictSchema = z24.enum(RUN_VERDICTS);
14636
15046
  VERIFICATION_RUN_SOURCES = ["job", "reviewer"];
14637
- VerificationRunSourceKindSchema = z23.enum(VERIFICATION_RUN_SOURCES);
14638
- VerifyCommandSchema = z23.object({
14639
- command: z23.string().trim().min(1).max(2e3),
14640
- 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)
14641
15051
  });
14642
15052
  VERIFY_COMMANDS_MAX = 5;
14643
- VerifyCommandsSchema = z23.array(VerifyCommandSchema).min(1).max(VERIFY_COMMANDS_MAX);
15053
+ VerifyCommandsSchema = z24.array(VerifyCommandSchema).min(1).max(VERIFY_COMMANDS_MAX);
14644
15054
  }
14645
15055
  });
14646
15056
 
@@ -14727,7 +15137,7 @@ var init_verification_manifest = __esm({
14727
15137
  });
14728
15138
 
14729
15139
  // ../../packages/shared/src/verification-surfaces.ts
14730
- import { z as z24 } from "zod";
15140
+ import { z as z25 } from "zod";
14731
15141
  function parseVerificationSurfaces(raw) {
14732
15142
  const strict = VerificationSurfacesSchema.safeParse(raw);
14733
15143
  if (strict.success) return strict.data;
@@ -14744,11 +15154,11 @@ var VerificationSurfacesSchema, DEFAULT_VERIFICATION_SURFACES, VERIFICATION_SURF
14744
15154
  var init_verification_surfaces = __esm({
14745
15155
  "../../packages/shared/src/verification-surfaces.ts"() {
14746
15156
  "use strict";
14747
- VerificationSurfacesSchema = z24.object({
14748
- codeTask: z24.boolean(),
14749
- cliRuntime: z24.boolean(),
14750
- fileOps: z24.boolean(),
14751
- shell: z24.boolean()
15157
+ VerificationSurfacesSchema = z25.object({
15158
+ codeTask: z25.boolean(),
15159
+ cliRuntime: z25.boolean(),
15160
+ fileOps: z25.boolean(),
15161
+ shell: z25.boolean()
14752
15162
  });
14753
15163
  DEFAULT_VERIFICATION_SURFACES = Object.freeze({
14754
15164
  codeTask: true,
@@ -14785,7 +15195,9 @@ var init_verification_surfaces = __esm({
14785
15195
  "xlsx_merge_cells",
14786
15196
  "xlsx_unmerge_cells",
14787
15197
  "xlsx_set_column_widths",
14788
- "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"
14789
15201
  ],
14790
15202
  shell: ["run_command", "run_skill_script"]
14791
15203
  });
@@ -14850,6 +15262,7 @@ var init_src2 = __esm({
14850
15262
  init_connector_catalog();
14851
15263
  init_community_skill_catalog();
14852
15264
  init_model_catalog();
15265
+ init_speech_models();
14853
15266
  init_mcp_catalog();
14854
15267
  init_timezone();
14855
15268
  init_redact_secrets();
@@ -14861,6 +15274,8 @@ var init_src2 = __esm({
14861
15274
  init_redact_transcript();
14862
15275
  init_agent_slug();
14863
15276
  init_catastrophic_command();
15277
+ init_run_budget();
15278
+ init_shell_checklist();
14864
15279
  init_shell_programs();
14865
15280
  init_project_key();
14866
15281
  init_group_prefix();
@@ -14990,10 +15405,10 @@ var init_entities = __esm({
14990
15405
  updatedAt: timestamp("updated_at", { withTimezone: true }).defaultNow(),
14991
15406
  lastCuratorRunAt: timestamp("last_curator_run_at", { withTimezone: true }),
14992
15407
  reflectionEnabled: boolean("reflection_enabled").notNull().default(false),
14993
- // Decoupled from reflection_enabled (which gates the skill-learning loop,
14994
- // opt-in). Gates the memory curator (Phase 2 LLM pass) — ON by default so
14995
- // memory curation runs even for entities that never opted into reflection.
14996
- memoryCurationEnabled: boolean("memory_curation_enabled").notNull().default(true),
15408
+ // `memory_curation_enabled` lived here from 0.7.0 to migration 0122 (#411):
15409
+ // a per-workspace gate on the memory curator that no screen ever exposed.
15410
+ // Memory curation is now gated by the runner's MEMORY_CURATION_ENABLED
15411
+ // kill-switch only; "do not touch this fact" is the pin on the fact.
14997
15412
  // Controls whether agent-authored skills are auto-assigned to the authoring
14998
15413
  // agent ('auto') or queued for the entity owner to approve ('approval').
14999
15414
  skillAssignmentMode: text("skill_assignment_mode").notNull().default("approval").$type(),
@@ -15039,13 +15454,33 @@ var init_entities = __esm({
15039
15454
  * par un script ferait tourner un agent toute la nuit sur une preuve qui
15040
15455
  * ne passera jamais.
15041
15456
  */
15042
- 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)
15043
15470
  },
15044
15471
  (table) => [
15045
15472
  check(
15046
15473
  "entities_proof_repair_attempts_check",
15047
15474
  sql`${table.proofRepairAttempts} >= 0 AND ${table.proofRepairAttempts} <= 3`
15048
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
+ ),
15049
15484
  uniqueIndex("entities_mcp_token_idx").on(table.mcpToken),
15050
15485
  index("idx_entities_user_id").on(table.userId),
15051
15486
  index("idx_entities_root_agent_id").on(table.rootAgentId)
@@ -15116,7 +15551,7 @@ var init_llm_keys = __esm({
15116
15551
  });
15117
15552
 
15118
15553
  // ../../packages/db/src/schema/agents.ts
15119
- var agents, agentAssignments, agentBudgets;
15554
+ var agents, agentAssignments;
15120
15555
  var init_agents = __esm({
15121
15556
  "../../packages/db/src/schema/agents.ts"() {
15122
15557
  "use strict";
@@ -15162,7 +15597,13 @@ var init_agents = __esm({
15162
15597
  taskContextTemplate: text("task_context_template"),
15163
15598
  avatarUrl: text("avatar_url"),
15164
15599
  systemAgent: boolean("system_agent").default(false),
15165
- 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"),
15166
15607
  // Cap on characters of agent_memory injected into the system prompt per job
15167
15608
  // (Memory Sprint 2). Pure char budget — token estimation done at call site
15168
15609
  // (length/4). 1500 chars ≈ ~375 tokens, similar to Hermes' 2200+1375 split.
@@ -15183,12 +15624,21 @@ var init_agents = __esm({
15183
15624
  * faire réutilisable ; c'est celui qui PRODUIT qui en accumule.
15184
15625
  */
15185
15626
  reflectionEnabled: boolean("reflection_enabled"),
15186
- // Daily budget for coding-CLI runs (code_task, étape B of the
15187
- // subscription-runtimes plan), in NOTIONAL USD — the cost the claude CLI
15188
- // reports even under subscription (codex reports none; its runs count 0
15189
- // against this cap, bounded by the per-call timeout instead). 0 = no cap.
15190
- // Enforced in the code_task builtin against SUM(cli_runs.cost_usd) today.
15191
- 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"),
15192
15642
  // Per-provider defaults for code_task runs (étape B-bis): which model and
15193
15643
  // reasoning effort each coding CLI uses BY DEFAULT for this agent. The
15194
15644
  // LLM may still override per task (code_task's optional model/effort
@@ -15267,7 +15717,22 @@ var init_agents = __esm({
15267
15717
  "agents_orchestrator_mode_check",
15268
15718
  sql`${table.orchestratorMode} IN ('router', 'planner') OR ${table.orchestratorMode} IS NULL`
15269
15719
  ),
15270
- 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
+ ),
15271
15736
  check("agents_runtime_check", sql`${table.runtime} IN ('nodal', 'claude-code', 'codex')`),
15272
15737
  // F-6 (audit #2): slug was UNIQUE GLOBALLY, so a 2nd workspace/entity
15273
15738
  // installing the same community skill's companion agent (or any agent
@@ -15304,28 +15769,6 @@ var init_agents = __esm({
15304
15769
  )
15305
15770
  ]
15306
15771
  );
15307
- agentBudgets = pgTable(
15308
- "agent_budgets",
15309
- {
15310
- id: uuid("id").primaryKey().defaultRandom(),
15311
- agentId: uuid("agent_id").unique().references(() => agents.id, { onDelete: "cascade" }),
15312
- entityId: uuid("entity_id").references(() => entities.id, { onDelete: "cascade" }),
15313
- dailyTokenLimit: bigint("daily_token_limit", { mode: "number" }).default(0),
15314
- monthlyTokenLimit: bigint("monthly_token_limit", { mode: "number" }).default(0),
15315
- alertThresholdPct: integer("alert_threshold_pct").default(80),
15316
- autoPause: boolean("auto_pause").default(false),
15317
- maxJobTokens: integer("max_job_tokens").default(15e4),
15318
- createdAt: timestamp("created_at", { withTimezone: true }).defaultNow(),
15319
- updatedAt: timestamp("updated_at", { withTimezone: true }).defaultNow()
15320
- },
15321
- (table) => [
15322
- index("idx_agent_budgets_entity_id").on(table.entityId),
15323
- check(
15324
- "agent_budgets_alert_threshold_pct_check",
15325
- sql`${table.alertThresholdPct} >= 0 AND ${table.alertThresholdPct} <= 100`
15326
- )
15327
- ]
15328
- );
15329
15772
  }
15330
15773
  });
15331
15774
 
@@ -15969,6 +16412,13 @@ var init_approvals = __esm({
15969
16412
  * personne n'a répondu, et sur un refus.
15970
16413
  */
15971
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"),
15972
16422
  requestedAt: timestamp("requested_at", { withTimezone: true }).defaultNow(),
15973
16423
  resolvedAt: timestamp("resolved_at", { withTimezone: true }),
15974
16424
  resolvedBy: text("resolved_by"),
@@ -16831,6 +17281,15 @@ var init_chat_messages = __esm({
16831
17281
  // Set when this (assistant) turn escalated into a real action job — lets the
16832
17282
  // UI render the job's dispatch/progress inline. NULL for pure conversation.
16833
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"),
16834
17293
  createdAt: timestamp("created_at", { withTimezone: true }).defaultNow()
16835
17294
  },
16836
17295
  (table) => [
@@ -17537,7 +17996,6 @@ __export(schema_exports, {
17537
17996
  TASK_STATUSES: () => TASK_STATUSES,
17538
17997
  accounts: () => accounts,
17539
17998
  agentAssignments: () => agentAssignments,
17540
- agentBudgets: () => agentBudgets,
17541
17999
  agentConnectorAssignments: () => agentConnectorAssignments,
17542
18000
  agentJobs: () => agentJobs,
17543
18001
  agentMcpServers: () => agentMcpServers,
@@ -18550,6 +19008,53 @@ var init_retention = __esm({
18550
19008
  }
18551
19009
  });
18552
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
+
18553
19058
  // ../../packages/db/src/repos/schedule-state.ts
18554
19059
  async function readScheduleState(db, scheduleId) {
18555
19060
  const rows = await db.select({
@@ -18694,7 +19199,6 @@ __export(src_exports, {
18694
19199
  TASK_STATUSES: () => TASK_STATUSES,
18695
19200
  accounts: () => accounts,
18696
19201
  agentAssignments: () => agentAssignments,
18697
- agentBudgets: () => agentBudgets,
18698
19202
  agentConnectorAssignments: () => agentConnectorAssignments,
18699
19203
  agentJobs: () => agentJobs,
18700
19204
  agentMcpServers: () => agentMcpServers,
@@ -18715,6 +19219,7 @@ __export(src_exports, {
18715
19219
  assignSkillRepo: () => assignSkillRepo,
18716
19220
  attachAgentToOrchestrator: () => attachAgentToOrchestrator,
18717
19221
  avg: () => avg,
19222
+ budgetReached: () => budgetReached,
18718
19223
  channelAllowedConversations: () => channelAllowedConversations,
18719
19224
  channelBindings: () => channelBindings,
18720
19225
  chatMessages: () => chatMessages,
@@ -18778,6 +19283,8 @@ __export(src_exports, {
18778
19283
  notInArray: () => notInArray,
18779
19284
  or: () => or,
18780
19285
  pruneOldJobs: () => pruneOldJobs,
19286
+ readAgentBudgetState: () => readAgentBudgetState,
19287
+ readAgentSpend: () => readAgentSpend,
18781
19288
  readScheduleState: () => readScheduleState,
18782
19289
  refreshAndPersistCredential: () => refreshAndPersistCredential,
18783
19290
  resolveOwnerChatId: () => resolveOwnerChatId,
@@ -18824,6 +19331,7 @@ var init_src4 = __esm({
18824
19331
  init_agents2();
18825
19332
  init_skills2();
18826
19333
  init_retention();
19334
+ init_agent_spend();
18827
19335
  init_schedule_state2();
18828
19336
  init_app_settings2();
18829
19337
  init_verification_surfaces2();
@@ -20984,8 +21492,45 @@ var init_logs = __esm({
20984
21492
  }
20985
21493
  });
20986
21494
 
21495
+ // ../../packages/shared/src/git-binary.ts
21496
+ import { stat } from "fs/promises";
21497
+ import { delimiter as PATH_DELIMITER } from "path";
21498
+ function enBarresObliques(chemin) {
21499
+ return chemin.replace(/\\/g, "/");
21500
+ }
21501
+ async function estFichier(chemin) {
21502
+ try {
21503
+ return (await stat(chemin)).isFile();
21504
+ } catch {
21505
+ return false;
21506
+ }
21507
+ }
21508
+ async function resolveGitBinary() {
21509
+ gitBinaire ??= (async () => {
21510
+ const chemins = (process.env["PATH"] ?? "").split(PATH_DELIMITER).filter((d) => d !== "");
21511
+ const windows = process.platform === "win32";
21512
+ for (const dossier of chemins) {
21513
+ const base = `${enBarresObliques(dossier)}/git`;
21514
+ for (const ext of windows ? EXTENSIONS_WINDOWS : [""]) {
21515
+ if (await estFichier(base + ext)) return base + ext;
21516
+ }
21517
+ }
21518
+ console.warn("[git] GIT_NOT_ON_PATH");
21519
+ return null;
21520
+ })();
21521
+ return gitBinaire;
21522
+ }
21523
+ var EXTENSIONS_WINDOWS, gitBinaire;
21524
+ var init_git_binary = __esm({
21525
+ "../../packages/shared/src/git-binary.ts"() {
21526
+ "use strict";
21527
+ EXTENSIONS_WINDOWS = [".exe", ".com"];
21528
+ gitBinaire = null;
21529
+ }
21530
+ });
21531
+
20987
21532
  // ../../packages/checkpoints/src/failure.ts
20988
- import { readdir, stat } from "fs/promises";
21533
+ import { readdir, stat as stat2 } from "fs/promises";
20989
21534
  import { basename, join as join13 } from "path";
20990
21535
  function checkpointFailureCode(cause, operation) {
20991
21536
  if (cause === "git_missing") return "git_missing";
@@ -21030,7 +21575,7 @@ async function measureWorkspace(workspace, limits = {}) {
21030
21575
  }
21031
21576
  files++;
21032
21577
  try {
21033
- bytes += (await stat(join13(dir, entry.name))).size;
21578
+ bytes += (await stat2(join13(dir, entry.name))).size;
21034
21579
  } catch {
21035
21580
  }
21036
21581
  }
@@ -21170,7 +21715,13 @@ function isTimeoutError(err) {
21170
21715
  const e = err;
21171
21716
  return e.killed === true || e.code === "ETIMEDOUT";
21172
21717
  }
21718
+ async function gitBinary() {
21719
+ const binaire = await resolveGitBinary();
21720
+ if (binaire === null) throw new GitBinaryMissingError();
21721
+ return binaire;
21722
+ }
21173
21723
  function isGitMissingError(err) {
21724
+ if (err instanceof GitBinaryMissingError) return true;
21174
21725
  if (typeof err !== "object" || err === null) return false;
21175
21726
  const e = err;
21176
21727
  return e.code === "ENOENT" && typeof e.syscall === "string" && e.syscall.startsWith("spawn");
@@ -21242,7 +21793,7 @@ function gitEnv(store, workspace, indexFile) {
21242
21793
  };
21243
21794
  }
21244
21795
  async function git(store, workspace, args, indexFile, timeoutMs = storeTimeoutMs()) {
21245
- const { stdout } = await run("git", args, {
21796
+ const { stdout } = await run(await gitBinary(), args, {
21246
21797
  timeout: timeoutMs,
21247
21798
  windowsHide: true,
21248
21799
  env: gitEnv(store, workspace, indexFile)
@@ -21255,7 +21806,7 @@ async function ensureStore(store) {
21255
21806
  await writeFile(join14(store, "gitconfig"), "", { flag: "a" });
21256
21807
  if (!existsSync13(join14(gitDir, "HEAD"))) {
21257
21808
  await mkdir(gitDir, { recursive: true });
21258
- await run("git", ["init", "--bare", "--quiet", gitDir], {
21809
+ await run(await gitBinary(), ["init", "--bare", "--quiet", gitDir], {
21259
21810
  timeout: GIT_TIMEOUT_MS,
21260
21811
  windowsHide: true
21261
21812
  });
@@ -21321,14 +21872,23 @@ async function restoreCheckpoint(store, workspace, sha) {
21321
21872
  await git(store, workspace, ["checkout", "-f", sha, "--", "."]);
21322
21873
  return { restored: sha, safety };
21323
21874
  }
21324
- var run, GIT_TIMEOUT_MS, badTimeoutSaid, EXCLUDES, CHECKPOINT_COVERAGE_NOTE;
21875
+ var run, GIT_TIMEOUT_MS, badTimeoutSaid, GitBinaryMissingError, EXCLUDES, CHECKPOINT_COVERAGE_NOTE;
21325
21876
  var init_checkpoints = __esm({
21326
21877
  "../../packages/checkpoints/src/checkpoints.ts"() {
21327
21878
  "use strict";
21879
+ init_git_binary();
21328
21880
  init_failure();
21329
21881
  run = promisify(execFile);
21330
21882
  GIT_TIMEOUT_MS = 3e4;
21331
21883
  badTimeoutSaid = false;
21884
+ GitBinaryMissingError = class extends Error {
21885
+ constructor() {
21886
+ super(
21887
+ "git is not on PATH: no checkpoint can be taken or read. Install git, or make it reachable from the process PATH."
21888
+ );
21889
+ this.name = "GitBinaryMissingError";
21890
+ }
21891
+ };
21332
21892
  EXCLUDES = [
21333
21893
  ...SKIPPED_DIRS.map((dir) => `${dir}/`),
21334
21894
  ...SKIPPED_FILE_SUFFIXES.map((suffixe) => `*${suffixe}`)
@@ -21583,7 +22143,7 @@ var init_zod_compat = __esm({
21583
22143
  });
21584
22144
 
21585
22145
  // ../../node_modules/.pnpm/@modelcontextprotocol+sdk@1.29.0_zod@4.4.3/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js
21586
- import * as z25 from "zod/v4";
22146
+ import * as z26 from "zod/v4";
21587
22147
  function assertCompleteRequestPrompt(request) {
21588
22148
  if (request.params.ref.type !== "ref/prompt") {
21589
22149
  throw new TypeError(`Expected CompleteRequestPrompt, but got ${request.params.ref.type}`);
@@ -21604,26 +22164,26 @@ var init_types3 = __esm({
21604
22164
  SUPPORTED_PROTOCOL_VERSIONS = [LATEST_PROTOCOL_VERSION, "2025-06-18", "2025-03-26", "2024-11-05", "2024-10-07"];
21605
22165
  RELATED_TASK_META_KEY = "io.modelcontextprotocol/related-task";
21606
22166
  JSONRPC_VERSION = "2.0";
21607
- AssertObjectSchema = z25.custom((v) => v !== null && (typeof v === "object" || typeof v === "function"));
21608
- ProgressTokenSchema = z25.union([z25.string(), z25.number().int()]);
21609
- CursorSchema = z25.string();
21610
- 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({
21611
22171
  /**
21612
22172
  * Requested duration in milliseconds to retain task from creation.
21613
22173
  */
21614
- ttl: z25.number().optional(),
22174
+ ttl: z26.number().optional(),
21615
22175
  /**
21616
22176
  * Time in milliseconds to wait between task status requests.
21617
22177
  */
21618
- pollInterval: z25.number().optional()
22178
+ pollInterval: z26.number().optional()
21619
22179
  });
21620
- TaskMetadataSchema = z25.object({
21621
- ttl: z25.number().optional()
22180
+ TaskMetadataSchema = z26.object({
22181
+ ttl: z26.number().optional()
21622
22182
  });
21623
- RelatedTaskMetadataSchema = z25.object({
21624
- taskId: z25.string()
22183
+ RelatedTaskMetadataSchema = z26.object({
22184
+ taskId: z26.string()
21625
22185
  });
21626
- RequestMetaSchema = z25.looseObject({
22186
+ RequestMetaSchema = z26.looseObject({
21627
22187
  /**
21628
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.
21629
22189
  */
@@ -21633,7 +22193,7 @@ var init_types3 = __esm({
21633
22193
  */
21634
22194
  [RELATED_TASK_META_KEY]: RelatedTaskMetadataSchema.optional()
21635
22195
  });
21636
- BaseRequestParamsSchema = z25.object({
22196
+ BaseRequestParamsSchema = z26.object({
21637
22197
  /**
21638
22198
  * See [General fields: `_meta`](/specification/draft/basic/index#meta) for notes on `_meta` usage.
21639
22199
  */
@@ -21651,42 +22211,42 @@ var init_types3 = __esm({
21651
22211
  task: TaskMetadataSchema.optional()
21652
22212
  });
21653
22213
  isTaskAugmentedRequestParams = (value) => TaskAugmentedRequestParamsSchema.safeParse(value).success;
21654
- RequestSchema = z25.object({
21655
- method: z25.string(),
22214
+ RequestSchema = z26.object({
22215
+ method: z26.string(),
21656
22216
  params: BaseRequestParamsSchema.loose().optional()
21657
22217
  });
21658
- NotificationsParamsSchema = z25.object({
22218
+ NotificationsParamsSchema = z26.object({
21659
22219
  /**
21660
22220
  * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
21661
22221
  * for notes on _meta usage.
21662
22222
  */
21663
22223
  _meta: RequestMetaSchema.optional()
21664
22224
  });
21665
- NotificationSchema = z25.object({
21666
- method: z25.string(),
22225
+ NotificationSchema = z26.object({
22226
+ method: z26.string(),
21667
22227
  params: NotificationsParamsSchema.loose().optional()
21668
22228
  });
21669
- ResultSchema = z25.looseObject({
22229
+ ResultSchema = z26.looseObject({
21670
22230
  /**
21671
22231
  * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
21672
22232
  * for notes on _meta usage.
21673
22233
  */
21674
22234
  _meta: RequestMetaSchema.optional()
21675
22235
  });
21676
- RequestIdSchema = z25.union([z25.string(), z25.number().int()]);
21677
- JSONRPCRequestSchema = z25.object({
21678
- jsonrpc: z25.literal(JSONRPC_VERSION),
22236
+ RequestIdSchema = z26.union([z26.string(), z26.number().int()]);
22237
+ JSONRPCRequestSchema = z26.object({
22238
+ jsonrpc: z26.literal(JSONRPC_VERSION),
21679
22239
  id: RequestIdSchema,
21680
22240
  ...RequestSchema.shape
21681
22241
  }).strict();
21682
22242
  isJSONRPCRequest = (value) => JSONRPCRequestSchema.safeParse(value).success;
21683
- JSONRPCNotificationSchema = z25.object({
21684
- jsonrpc: z25.literal(JSONRPC_VERSION),
22243
+ JSONRPCNotificationSchema = z26.object({
22244
+ jsonrpc: z26.literal(JSONRPC_VERSION),
21685
22245
  ...NotificationSchema.shape
21686
22246
  }).strict();
21687
22247
  isJSONRPCNotification = (value) => JSONRPCNotificationSchema.safeParse(value).success;
21688
- JSONRPCResultResponseSchema = z25.object({
21689
- jsonrpc: z25.literal(JSONRPC_VERSION),
22248
+ JSONRPCResultResponseSchema = z26.object({
22249
+ jsonrpc: z26.literal(JSONRPC_VERSION),
21690
22250
  id: RequestIdSchema,
21691
22251
  result: ResultSchema
21692
22252
  }).strict();
@@ -21701,32 +22261,32 @@ var init_types3 = __esm({
21701
22261
  ErrorCode2[ErrorCode2["InternalError"] = -32603] = "InternalError";
21702
22262
  ErrorCode2[ErrorCode2["UrlElicitationRequired"] = -32042] = "UrlElicitationRequired";
21703
22263
  })(ErrorCode || (ErrorCode = {}));
21704
- JSONRPCErrorResponseSchema = z25.object({
21705
- jsonrpc: z25.literal(JSONRPC_VERSION),
22264
+ JSONRPCErrorResponseSchema = z26.object({
22265
+ jsonrpc: z26.literal(JSONRPC_VERSION),
21706
22266
  id: RequestIdSchema.optional(),
21707
- error: z25.object({
22267
+ error: z26.object({
21708
22268
  /**
21709
22269
  * The error type that occurred.
21710
22270
  */
21711
- code: z25.number().int(),
22271
+ code: z26.number().int(),
21712
22272
  /**
21713
22273
  * A short description of the error. The message SHOULD be limited to a concise single sentence.
21714
22274
  */
21715
- message: z25.string(),
22275
+ message: z26.string(),
21716
22276
  /**
21717
22277
  * Additional information about the error. The value of this member is defined by the sender (e.g. detailed error information, nested errors etc.).
21718
22278
  */
21719
- data: z25.unknown().optional()
22279
+ data: z26.unknown().optional()
21720
22280
  })
21721
22281
  }).strict();
21722
22282
  isJSONRPCErrorResponse = (value) => JSONRPCErrorResponseSchema.safeParse(value).success;
21723
- JSONRPCMessageSchema = z25.union([
22283
+ JSONRPCMessageSchema = z26.union([
21724
22284
  JSONRPCRequestSchema,
21725
22285
  JSONRPCNotificationSchema,
21726
22286
  JSONRPCResultResponseSchema,
21727
22287
  JSONRPCErrorResponseSchema
21728
22288
  ]);
21729
- JSONRPCResponseSchema = z25.union([JSONRPCResultResponseSchema, JSONRPCErrorResponseSchema]);
22289
+ JSONRPCResponseSchema = z26.union([JSONRPCResultResponseSchema, JSONRPCErrorResponseSchema]);
21730
22290
  EmptyResultSchema = ResultSchema.strict();
21731
22291
  CancelledNotificationParamsSchema = NotificationsParamsSchema.extend({
21732
22292
  /**
@@ -21738,28 +22298,28 @@ var init_types3 = __esm({
21738
22298
  /**
21739
22299
  * An optional string describing the reason for the cancellation. This MAY be logged or presented to the user.
21740
22300
  */
21741
- reason: z25.string().optional()
22301
+ reason: z26.string().optional()
21742
22302
  });
21743
22303
  CancelledNotificationSchema = NotificationSchema.extend({
21744
- method: z25.literal("notifications/cancelled"),
22304
+ method: z26.literal("notifications/cancelled"),
21745
22305
  params: CancelledNotificationParamsSchema
21746
22306
  });
21747
- IconSchema = z25.object({
22307
+ IconSchema = z26.object({
21748
22308
  /**
21749
22309
  * URL or data URI for the icon.
21750
22310
  */
21751
- src: z25.string(),
22311
+ src: z26.string(),
21752
22312
  /**
21753
22313
  * Optional MIME type for the icon.
21754
22314
  */
21755
- mimeType: z25.string().optional(),
22315
+ mimeType: z26.string().optional(),
21756
22316
  /**
21757
22317
  * Optional array of strings that specify sizes at which the icon can be used.
21758
22318
  * Each string should be in WxH format (e.g., `"48x48"`, `"96x96"`) or `"any"` for scalable formats like SVG.
21759
22319
  *
21760
22320
  * If not provided, the client should assume that the icon can be used at any size.
21761
22321
  */
21762
- sizes: z25.array(z25.string()).optional(),
22322
+ sizes: z26.array(z26.string()).optional(),
21763
22323
  /**
21764
22324
  * Optional specifier for the theme this icon is designed for. `light` indicates
21765
22325
  * the icon is designed to be used with a light background, and `dark` indicates
@@ -21767,9 +22327,9 @@ var init_types3 = __esm({
21767
22327
  *
21768
22328
  * If not provided, the client should assume the icon can be used with any theme.
21769
22329
  */
21770
- theme: z25.enum(["light", "dark"]).optional()
22330
+ theme: z26.enum(["light", "dark"]).optional()
21771
22331
  });
21772
- IconsSchema = z25.object({
22332
+ IconsSchema = z26.object({
21773
22333
  /**
21774
22334
  * Optional set of sized icons that the client can display in a user interface.
21775
22335
  *
@@ -21781,11 +22341,11 @@ var init_types3 = __esm({
21781
22341
  * - `image/svg+xml` - SVG images (scalable but requires security precautions)
21782
22342
  * - `image/webp` - WebP images (modern, efficient format)
21783
22343
  */
21784
- icons: z25.array(IconSchema).optional()
22344
+ icons: z26.array(IconSchema).optional()
21785
22345
  });
21786
- BaseMetadataSchema = z25.object({
22346
+ BaseMetadataSchema = z26.object({
21787
22347
  /** Intended for programmatic or logical use, but used as a display name in past specs or fallback */
21788
- name: z25.string(),
22348
+ name: z26.string(),
21789
22349
  /**
21790
22350
  * Intended for UI and end-user contexts — optimized to be human-readable and easily understood,
21791
22351
  * even by those unfamiliar with domain-specific terminology.
@@ -21794,16 +22354,16 @@ var init_types3 = __esm({
21794
22354
  * where `annotations.title` should be given precedence over using `name`,
21795
22355
  * if present).
21796
22356
  */
21797
- title: z25.string().optional()
22357
+ title: z26.string().optional()
21798
22358
  });
21799
22359
  ImplementationSchema = BaseMetadataSchema.extend({
21800
22360
  ...BaseMetadataSchema.shape,
21801
22361
  ...IconsSchema.shape,
21802
- version: z25.string(),
22362
+ version: z26.string(),
21803
22363
  /**
21804
22364
  * An optional URL of the website for this implementation.
21805
22365
  */
21806
- websiteUrl: z25.string().optional(),
22366
+ websiteUrl: z26.string().optional(),
21807
22367
  /**
21808
22368
  * An optional human-readable description of what this implementation does.
21809
22369
  *
@@ -21811,23 +22371,23 @@ var init_types3 = __esm({
21811
22371
  * and capabilities. For example, a server might describe the types of resources
21812
22372
  * or tools it provides, while a client might describe its intended use case.
21813
22373
  */
21814
- description: z25.string().optional()
22374
+ description: z26.string().optional()
21815
22375
  });
21816
- FormElicitationCapabilitySchema = z25.intersection(z25.object({
21817
- applyDefaults: z25.boolean().optional()
21818
- }), z25.record(z25.string(), z25.unknown()));
21819
- 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) => {
21820
22380
  if (value && typeof value === "object" && !Array.isArray(value)) {
21821
22381
  if (Object.keys(value).length === 0) {
21822
22382
  return { form: {} };
21823
22383
  }
21824
22384
  }
21825
22385
  return value;
21826
- }, z25.intersection(z25.object({
22386
+ }, z26.intersection(z26.object({
21827
22387
  form: FormElicitationCapabilitySchema.optional(),
21828
22388
  url: AssertObjectSchema.optional()
21829
- }), z25.record(z25.string(), z25.unknown()).optional()));
21830
- ClientTasksCapabilitySchema = z25.looseObject({
22389
+ }), z26.record(z26.string(), z26.unknown()).optional()));
22390
+ ClientTasksCapabilitySchema = z26.looseObject({
21831
22391
  /**
21832
22392
  * Present if the client supports listing tasks.
21833
22393
  */
@@ -21839,22 +22399,22 @@ var init_types3 = __esm({
21839
22399
  /**
21840
22400
  * Capabilities for task creation on specific request types.
21841
22401
  */
21842
- requests: z25.looseObject({
22402
+ requests: z26.looseObject({
21843
22403
  /**
21844
22404
  * Task support for sampling requests.
21845
22405
  */
21846
- sampling: z25.looseObject({
22406
+ sampling: z26.looseObject({
21847
22407
  createMessage: AssertObjectSchema.optional()
21848
22408
  }).optional(),
21849
22409
  /**
21850
22410
  * Task support for elicitation requests.
21851
22411
  */
21852
- elicitation: z25.looseObject({
22412
+ elicitation: z26.looseObject({
21853
22413
  create: AssertObjectSchema.optional()
21854
22414
  }).optional()
21855
22415
  }).optional()
21856
22416
  });
21857
- ServerTasksCapabilitySchema = z25.looseObject({
22417
+ ServerTasksCapabilitySchema = z26.looseObject({
21858
22418
  /**
21859
22419
  * Present if the server supports listing tasks.
21860
22420
  */
@@ -21866,24 +22426,24 @@ var init_types3 = __esm({
21866
22426
  /**
21867
22427
  * Capabilities for task creation on specific request types.
21868
22428
  */
21869
- requests: z25.looseObject({
22429
+ requests: z26.looseObject({
21870
22430
  /**
21871
22431
  * Task support for tool requests.
21872
22432
  */
21873
- tools: z25.looseObject({
22433
+ tools: z26.looseObject({
21874
22434
  call: AssertObjectSchema.optional()
21875
22435
  }).optional()
21876
22436
  }).optional()
21877
22437
  });
21878
- ClientCapabilitiesSchema = z25.object({
22438
+ ClientCapabilitiesSchema = z26.object({
21879
22439
  /**
21880
22440
  * Experimental, non-standard capabilities that the client supports.
21881
22441
  */
21882
- experimental: z25.record(z25.string(), AssertObjectSchema).optional(),
22442
+ experimental: z26.record(z26.string(), AssertObjectSchema).optional(),
21883
22443
  /**
21884
22444
  * Present if the client supports sampling from an LLM.
21885
22445
  */
21886
- sampling: z25.object({
22446
+ sampling: z26.object({
21887
22447
  /**
21888
22448
  * Present if the client supports context inclusion via includeContext parameter.
21889
22449
  * If not declared, servers SHOULD only use `includeContext: "none"` (or omit it).
@@ -21901,11 +22461,11 @@ var init_types3 = __esm({
21901
22461
  /**
21902
22462
  * Present if the client supports listing roots.
21903
22463
  */
21904
- roots: z25.object({
22464
+ roots: z26.object({
21905
22465
  /**
21906
22466
  * Whether the client supports issuing notifications for changes to the roots list.
21907
22467
  */
21908
- listChanged: z25.boolean().optional()
22468
+ listChanged: z26.boolean().optional()
21909
22469
  }).optional(),
21910
22470
  /**
21911
22471
  * Present if the client supports task creation.
@@ -21914,25 +22474,25 @@ var init_types3 = __esm({
21914
22474
  /**
21915
22475
  * Extensions that the client supports. Keys are extension identifiers (vendor-prefix/extension-name).
21916
22476
  */
21917
- extensions: z25.record(z25.string(), AssertObjectSchema).optional()
22477
+ extensions: z26.record(z26.string(), AssertObjectSchema).optional()
21918
22478
  });
21919
22479
  InitializeRequestParamsSchema = BaseRequestParamsSchema.extend({
21920
22480
  /**
21921
22481
  * The latest version of the Model Context Protocol that the client supports. The client MAY decide to support older versions as well.
21922
22482
  */
21923
- protocolVersion: z25.string(),
22483
+ protocolVersion: z26.string(),
21924
22484
  capabilities: ClientCapabilitiesSchema,
21925
22485
  clientInfo: ImplementationSchema
21926
22486
  });
21927
22487
  InitializeRequestSchema = RequestSchema.extend({
21928
- method: z25.literal("initialize"),
22488
+ method: z26.literal("initialize"),
21929
22489
  params: InitializeRequestParamsSchema
21930
22490
  });
21931
- ServerCapabilitiesSchema = z25.object({
22491
+ ServerCapabilitiesSchema = z26.object({
21932
22492
  /**
21933
22493
  * Experimental, non-standard capabilities that the server supports.
21934
22494
  */
21935
- experimental: z25.record(z25.string(), AssertObjectSchema).optional(),
22495
+ experimental: z26.record(z26.string(), AssertObjectSchema).optional(),
21936
22496
  /**
21937
22497
  * Present if the server supports sending log messages to the client.
21938
22498
  */
@@ -21944,33 +22504,33 @@ var init_types3 = __esm({
21944
22504
  /**
21945
22505
  * Present if the server offers any prompt templates.
21946
22506
  */
21947
- prompts: z25.object({
22507
+ prompts: z26.object({
21948
22508
  /**
21949
22509
  * Whether this server supports issuing notifications for changes to the prompt list.
21950
22510
  */
21951
- listChanged: z25.boolean().optional()
22511
+ listChanged: z26.boolean().optional()
21952
22512
  }).optional(),
21953
22513
  /**
21954
22514
  * Present if the server offers any resources to read.
21955
22515
  */
21956
- resources: z25.object({
22516
+ resources: z26.object({
21957
22517
  /**
21958
22518
  * Whether this server supports clients subscribing to resource updates.
21959
22519
  */
21960
- subscribe: z25.boolean().optional(),
22520
+ subscribe: z26.boolean().optional(),
21961
22521
  /**
21962
22522
  * Whether this server supports issuing notifications for changes to the resource list.
21963
22523
  */
21964
- listChanged: z25.boolean().optional()
22524
+ listChanged: z26.boolean().optional()
21965
22525
  }).optional(),
21966
22526
  /**
21967
22527
  * Present if the server offers any tools to call.
21968
22528
  */
21969
- tools: z25.object({
22529
+ tools: z26.object({
21970
22530
  /**
21971
22531
  * Whether this server supports issuing notifications for changes to the tool list.
21972
22532
  */
21973
- listChanged: z25.boolean().optional()
22533
+ listChanged: z26.boolean().optional()
21974
22534
  }).optional(),
21975
22535
  /**
21976
22536
  * Present if the server supports task creation.
@@ -21979,13 +22539,13 @@ var init_types3 = __esm({
21979
22539
  /**
21980
22540
  * Extensions that the server supports. Keys are extension identifiers (vendor-prefix/extension-name).
21981
22541
  */
21982
- extensions: z25.record(z25.string(), AssertObjectSchema).optional()
22542
+ extensions: z26.record(z26.string(), AssertObjectSchema).optional()
21983
22543
  });
21984
22544
  InitializeResultSchema = ResultSchema.extend({
21985
22545
  /**
21986
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.
21987
22547
  */
21988
- protocolVersion: z25.string(),
22548
+ protocolVersion: z26.string(),
21989
22549
  capabilities: ServerCapabilitiesSchema,
21990
22550
  serverInfo: ImplementationSchema,
21991
22551
  /**
@@ -21993,31 +22553,31 @@ var init_types3 = __esm({
21993
22553
  *
21994
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.
21995
22555
  */
21996
- instructions: z25.string().optional()
22556
+ instructions: z26.string().optional()
21997
22557
  });
21998
22558
  InitializedNotificationSchema = NotificationSchema.extend({
21999
- method: z25.literal("notifications/initialized"),
22559
+ method: z26.literal("notifications/initialized"),
22000
22560
  params: NotificationsParamsSchema.optional()
22001
22561
  });
22002
22562
  PingRequestSchema = RequestSchema.extend({
22003
- method: z25.literal("ping"),
22563
+ method: z26.literal("ping"),
22004
22564
  params: BaseRequestParamsSchema.optional()
22005
22565
  });
22006
- ProgressSchema = z25.object({
22566
+ ProgressSchema = z26.object({
22007
22567
  /**
22008
22568
  * The progress thus far. This should increase every time progress is made, even if the total is unknown.
22009
22569
  */
22010
- progress: z25.number(),
22570
+ progress: z26.number(),
22011
22571
  /**
22012
22572
  * Total number of items to process (or total progress required), if known.
22013
22573
  */
22014
- total: z25.optional(z25.number()),
22574
+ total: z26.optional(z26.number()),
22015
22575
  /**
22016
22576
  * An optional message describing the current progress.
22017
22577
  */
22018
- message: z25.optional(z25.string())
22578
+ message: z26.optional(z26.string())
22019
22579
  });
22020
- ProgressNotificationParamsSchema = z25.object({
22580
+ ProgressNotificationParamsSchema = z26.object({
22021
22581
  ...NotificationsParamsSchema.shape,
22022
22582
  ...ProgressSchema.shape,
22023
22583
  /**
@@ -22026,7 +22586,7 @@ var init_types3 = __esm({
22026
22586
  progressToken: ProgressTokenSchema
22027
22587
  });
22028
22588
  ProgressNotificationSchema = NotificationSchema.extend({
22029
- method: z25.literal("notifications/progress"),
22589
+ method: z26.literal("notifications/progress"),
22030
22590
  params: ProgressNotificationParamsSchema
22031
22591
  });
22032
22592
  PaginatedRequestParamsSchema = BaseRequestParamsSchema.extend({
@@ -22046,86 +22606,86 @@ var init_types3 = __esm({
22046
22606
  */
22047
22607
  nextCursor: CursorSchema.optional()
22048
22608
  });
22049
- TaskStatusSchema2 = z25.enum(["working", "input_required", "completed", "failed", "cancelled"]);
22050
- TaskSchema = z25.object({
22051
- taskId: z25.string(),
22609
+ TaskStatusSchema2 = z26.enum(["working", "input_required", "completed", "failed", "cancelled"]);
22610
+ TaskSchema = z26.object({
22611
+ taskId: z26.string(),
22052
22612
  status: TaskStatusSchema2,
22053
22613
  /**
22054
22614
  * Time in milliseconds to keep task results available after completion.
22055
22615
  * If null, the task has unlimited lifetime until manually cleaned up.
22056
22616
  */
22057
- ttl: z25.union([z25.number(), z25.null()]),
22617
+ ttl: z26.union([z26.number(), z26.null()]),
22058
22618
  /**
22059
22619
  * ISO 8601 timestamp when the task was created.
22060
22620
  */
22061
- createdAt: z25.string(),
22621
+ createdAt: z26.string(),
22062
22622
  /**
22063
22623
  * ISO 8601 timestamp when the task was last updated.
22064
22624
  */
22065
- lastUpdatedAt: z25.string(),
22066
- pollInterval: z25.optional(z25.number()),
22625
+ lastUpdatedAt: z26.string(),
22626
+ pollInterval: z26.optional(z26.number()),
22067
22627
  /**
22068
22628
  * Optional diagnostic message for failed tasks or other status information.
22069
22629
  */
22070
- statusMessage: z25.optional(z25.string())
22630
+ statusMessage: z26.optional(z26.string())
22071
22631
  });
22072
22632
  CreateTaskResultSchema = ResultSchema.extend({
22073
22633
  task: TaskSchema
22074
22634
  });
22075
22635
  TaskStatusNotificationParamsSchema = NotificationsParamsSchema.merge(TaskSchema);
22076
22636
  TaskStatusNotificationSchema = NotificationSchema.extend({
22077
- method: z25.literal("notifications/tasks/status"),
22637
+ method: z26.literal("notifications/tasks/status"),
22078
22638
  params: TaskStatusNotificationParamsSchema
22079
22639
  });
22080
22640
  GetTaskRequestSchema = RequestSchema.extend({
22081
- method: z25.literal("tasks/get"),
22641
+ method: z26.literal("tasks/get"),
22082
22642
  params: BaseRequestParamsSchema.extend({
22083
- taskId: z25.string()
22643
+ taskId: z26.string()
22084
22644
  })
22085
22645
  });
22086
22646
  GetTaskResultSchema = ResultSchema.merge(TaskSchema);
22087
22647
  GetTaskPayloadRequestSchema = RequestSchema.extend({
22088
- method: z25.literal("tasks/result"),
22648
+ method: z26.literal("tasks/result"),
22089
22649
  params: BaseRequestParamsSchema.extend({
22090
- taskId: z25.string()
22650
+ taskId: z26.string()
22091
22651
  })
22092
22652
  });
22093
22653
  GetTaskPayloadResultSchema = ResultSchema.loose();
22094
22654
  ListTasksRequestSchema = PaginatedRequestSchema.extend({
22095
- method: z25.literal("tasks/list")
22655
+ method: z26.literal("tasks/list")
22096
22656
  });
22097
22657
  ListTasksResultSchema = PaginatedResultSchema.extend({
22098
- tasks: z25.array(TaskSchema)
22658
+ tasks: z26.array(TaskSchema)
22099
22659
  });
22100
22660
  CancelTaskRequestSchema = RequestSchema.extend({
22101
- method: z25.literal("tasks/cancel"),
22661
+ method: z26.literal("tasks/cancel"),
22102
22662
  params: BaseRequestParamsSchema.extend({
22103
- taskId: z25.string()
22663
+ taskId: z26.string()
22104
22664
  })
22105
22665
  });
22106
22666
  CancelTaskResultSchema = ResultSchema.merge(TaskSchema);
22107
- ResourceContentsSchema = z25.object({
22667
+ ResourceContentsSchema = z26.object({
22108
22668
  /**
22109
22669
  * The URI of this resource.
22110
22670
  */
22111
- uri: z25.string(),
22671
+ uri: z26.string(),
22112
22672
  /**
22113
22673
  * The MIME type of this resource, if known.
22114
22674
  */
22115
- mimeType: z25.optional(z25.string()),
22675
+ mimeType: z26.optional(z26.string()),
22116
22676
  /**
22117
22677
  * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
22118
22678
  * for notes on _meta usage.
22119
22679
  */
22120
- _meta: z25.record(z25.string(), z25.unknown()).optional()
22680
+ _meta: z26.record(z26.string(), z26.unknown()).optional()
22121
22681
  });
22122
22682
  TextResourceContentsSchema = ResourceContentsSchema.extend({
22123
22683
  /**
22124
22684
  * The text of the item. This must only be set if the item can actually be represented as text (not binary data).
22125
22685
  */
22126
- text: z25.string()
22686
+ text: z26.string()
22127
22687
  });
22128
- Base64Schema = z25.string().refine((val) => {
22688
+ Base64Schema = z26.string().refine((val) => {
22129
22689
  try {
22130
22690
  atob(val);
22131
22691
  return true;
@@ -22139,44 +22699,44 @@ var init_types3 = __esm({
22139
22699
  */
22140
22700
  blob: Base64Schema
22141
22701
  });
22142
- RoleSchema = z25.enum(["user", "assistant"]);
22143
- AnnotationsSchema = z25.object({
22702
+ RoleSchema = z26.enum(["user", "assistant"]);
22703
+ AnnotationsSchema = z26.object({
22144
22704
  /**
22145
22705
  * Intended audience(s) for the resource.
22146
22706
  */
22147
- audience: z25.array(RoleSchema).optional(),
22707
+ audience: z26.array(RoleSchema).optional(),
22148
22708
  /**
22149
22709
  * Importance hint for the resource, from 0 (least) to 1 (most).
22150
22710
  */
22151
- priority: z25.number().min(0).max(1).optional(),
22711
+ priority: z26.number().min(0).max(1).optional(),
22152
22712
  /**
22153
22713
  * ISO 8601 timestamp for the most recent modification.
22154
22714
  */
22155
- lastModified: z25.iso.datetime({ offset: true }).optional()
22715
+ lastModified: z26.iso.datetime({ offset: true }).optional()
22156
22716
  });
22157
- ResourceSchema = z25.object({
22717
+ ResourceSchema = z26.object({
22158
22718
  ...BaseMetadataSchema.shape,
22159
22719
  ...IconsSchema.shape,
22160
22720
  /**
22161
22721
  * The URI of this resource.
22162
22722
  */
22163
- uri: z25.string(),
22723
+ uri: z26.string(),
22164
22724
  /**
22165
22725
  * A description of what this resource represents.
22166
22726
  *
22167
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.
22168
22728
  */
22169
- description: z25.optional(z25.string()),
22729
+ description: z26.optional(z26.string()),
22170
22730
  /**
22171
22731
  * The MIME type of this resource, if known.
22172
22732
  */
22173
- mimeType: z25.optional(z25.string()),
22733
+ mimeType: z26.optional(z26.string()),
22174
22734
  /**
22175
22735
  * The size of the raw resource content, in bytes (i.e., before base64 encoding or any tokenization), if known.
22176
22736
  *
22177
22737
  * This can be used by Hosts to display file sizes and estimate context window usage.
22178
22738
  */
22179
- size: z25.optional(z25.number()),
22739
+ size: z26.optional(z26.number()),
22180
22740
  /**
22181
22741
  * Optional annotations for the client.
22182
22742
  */
@@ -22185,25 +22745,25 @@ var init_types3 = __esm({
22185
22745
  * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
22186
22746
  * for notes on _meta usage.
22187
22747
  */
22188
- _meta: z25.optional(z25.looseObject({}))
22748
+ _meta: z26.optional(z26.looseObject({}))
22189
22749
  });
22190
- ResourceTemplateSchema = z25.object({
22750
+ ResourceTemplateSchema = z26.object({
22191
22751
  ...BaseMetadataSchema.shape,
22192
22752
  ...IconsSchema.shape,
22193
22753
  /**
22194
22754
  * A URI template (according to RFC 6570) that can be used to construct resource URIs.
22195
22755
  */
22196
- uriTemplate: z25.string(),
22756
+ uriTemplate: z26.string(),
22197
22757
  /**
22198
22758
  * A description of what this template is for.
22199
22759
  *
22200
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.
22201
22761
  */
22202
- description: z25.optional(z25.string()),
22762
+ description: z26.optional(z26.string()),
22203
22763
  /**
22204
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.
22205
22765
  */
22206
- mimeType: z25.optional(z25.string()),
22766
+ mimeType: z26.optional(z26.string()),
22207
22767
  /**
22208
22768
  * Optional annotations for the client.
22209
22769
  */
@@ -22212,19 +22772,19 @@ var init_types3 = __esm({
22212
22772
  * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
22213
22773
  * for notes on _meta usage.
22214
22774
  */
22215
- _meta: z25.optional(z25.looseObject({}))
22775
+ _meta: z26.optional(z26.looseObject({}))
22216
22776
  });
22217
22777
  ListResourcesRequestSchema = PaginatedRequestSchema.extend({
22218
- method: z25.literal("resources/list")
22778
+ method: z26.literal("resources/list")
22219
22779
  });
22220
22780
  ListResourcesResultSchema = PaginatedResultSchema.extend({
22221
- resources: z25.array(ResourceSchema)
22781
+ resources: z26.array(ResourceSchema)
22222
22782
  });
22223
22783
  ListResourceTemplatesRequestSchema = PaginatedRequestSchema.extend({
22224
- method: z25.literal("resources/templates/list")
22784
+ method: z26.literal("resources/templates/list")
22225
22785
  });
22226
22786
  ListResourceTemplatesResultSchema = PaginatedResultSchema.extend({
22227
- resourceTemplates: z25.array(ResourceTemplateSchema)
22787
+ resourceTemplates: z26.array(ResourceTemplateSchema)
22228
22788
  });
22229
22789
  ResourceRequestParamsSchema = BaseRequestParamsSchema.extend({
22230
22790
  /**
@@ -22232,97 +22792,97 @@ var init_types3 = __esm({
22232
22792
  *
22233
22793
  * @format uri
22234
22794
  */
22235
- uri: z25.string()
22795
+ uri: z26.string()
22236
22796
  });
22237
22797
  ReadResourceRequestParamsSchema = ResourceRequestParamsSchema;
22238
22798
  ReadResourceRequestSchema = RequestSchema.extend({
22239
- method: z25.literal("resources/read"),
22799
+ method: z26.literal("resources/read"),
22240
22800
  params: ReadResourceRequestParamsSchema
22241
22801
  });
22242
22802
  ReadResourceResultSchema = ResultSchema.extend({
22243
- contents: z25.array(z25.union([TextResourceContentsSchema, BlobResourceContentsSchema]))
22803
+ contents: z26.array(z26.union([TextResourceContentsSchema, BlobResourceContentsSchema]))
22244
22804
  });
22245
22805
  ResourceListChangedNotificationSchema = NotificationSchema.extend({
22246
- method: z25.literal("notifications/resources/list_changed"),
22806
+ method: z26.literal("notifications/resources/list_changed"),
22247
22807
  params: NotificationsParamsSchema.optional()
22248
22808
  });
22249
22809
  SubscribeRequestParamsSchema = ResourceRequestParamsSchema;
22250
22810
  SubscribeRequestSchema = RequestSchema.extend({
22251
- method: z25.literal("resources/subscribe"),
22811
+ method: z26.literal("resources/subscribe"),
22252
22812
  params: SubscribeRequestParamsSchema
22253
22813
  });
22254
22814
  UnsubscribeRequestParamsSchema = ResourceRequestParamsSchema;
22255
22815
  UnsubscribeRequestSchema = RequestSchema.extend({
22256
- method: z25.literal("resources/unsubscribe"),
22816
+ method: z26.literal("resources/unsubscribe"),
22257
22817
  params: UnsubscribeRequestParamsSchema
22258
22818
  });
22259
22819
  ResourceUpdatedNotificationParamsSchema = NotificationsParamsSchema.extend({
22260
22820
  /**
22261
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.
22262
22822
  */
22263
- uri: z25.string()
22823
+ uri: z26.string()
22264
22824
  });
22265
22825
  ResourceUpdatedNotificationSchema = NotificationSchema.extend({
22266
- method: z25.literal("notifications/resources/updated"),
22826
+ method: z26.literal("notifications/resources/updated"),
22267
22827
  params: ResourceUpdatedNotificationParamsSchema
22268
22828
  });
22269
- PromptArgumentSchema = z25.object({
22829
+ PromptArgumentSchema = z26.object({
22270
22830
  /**
22271
22831
  * The name of the argument.
22272
22832
  */
22273
- name: z25.string(),
22833
+ name: z26.string(),
22274
22834
  /**
22275
22835
  * A human-readable description of the argument.
22276
22836
  */
22277
- description: z25.optional(z25.string()),
22837
+ description: z26.optional(z26.string()),
22278
22838
  /**
22279
22839
  * Whether this argument must be provided.
22280
22840
  */
22281
- required: z25.optional(z25.boolean())
22841
+ required: z26.optional(z26.boolean())
22282
22842
  });
22283
- PromptSchema = z25.object({
22843
+ PromptSchema = z26.object({
22284
22844
  ...BaseMetadataSchema.shape,
22285
22845
  ...IconsSchema.shape,
22286
22846
  /**
22287
22847
  * An optional description of what this prompt provides
22288
22848
  */
22289
- description: z25.optional(z25.string()),
22849
+ description: z26.optional(z26.string()),
22290
22850
  /**
22291
22851
  * A list of arguments to use for templating the prompt.
22292
22852
  */
22293
- arguments: z25.optional(z25.array(PromptArgumentSchema)),
22853
+ arguments: z26.optional(z26.array(PromptArgumentSchema)),
22294
22854
  /**
22295
22855
  * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
22296
22856
  * for notes on _meta usage.
22297
22857
  */
22298
- _meta: z25.optional(z25.looseObject({}))
22858
+ _meta: z26.optional(z26.looseObject({}))
22299
22859
  });
22300
22860
  ListPromptsRequestSchema = PaginatedRequestSchema.extend({
22301
- method: z25.literal("prompts/list")
22861
+ method: z26.literal("prompts/list")
22302
22862
  });
22303
22863
  ListPromptsResultSchema = PaginatedResultSchema.extend({
22304
- prompts: z25.array(PromptSchema)
22864
+ prompts: z26.array(PromptSchema)
22305
22865
  });
22306
22866
  GetPromptRequestParamsSchema = BaseRequestParamsSchema.extend({
22307
22867
  /**
22308
22868
  * The name of the prompt or prompt template.
22309
22869
  */
22310
- name: z25.string(),
22870
+ name: z26.string(),
22311
22871
  /**
22312
22872
  * Arguments to use for templating the prompt.
22313
22873
  */
22314
- arguments: z25.record(z25.string(), z25.string()).optional()
22874
+ arguments: z26.record(z26.string(), z26.string()).optional()
22315
22875
  });
22316
22876
  GetPromptRequestSchema = RequestSchema.extend({
22317
- method: z25.literal("prompts/get"),
22877
+ method: z26.literal("prompts/get"),
22318
22878
  params: GetPromptRequestParamsSchema
22319
22879
  });
22320
- TextContentSchema = z25.object({
22321
- type: z25.literal("text"),
22880
+ TextContentSchema = z26.object({
22881
+ type: z26.literal("text"),
22322
22882
  /**
22323
22883
  * The text content of the message.
22324
22884
  */
22325
- text: z25.string(),
22885
+ text: z26.string(),
22326
22886
  /**
22327
22887
  * Optional annotations for the client.
22328
22888
  */
@@ -22331,10 +22891,10 @@ var init_types3 = __esm({
22331
22891
  * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
22332
22892
  * for notes on _meta usage.
22333
22893
  */
22334
- _meta: z25.record(z25.string(), z25.unknown()).optional()
22894
+ _meta: z26.record(z26.string(), z26.unknown()).optional()
22335
22895
  });
22336
- ImageContentSchema = z25.object({
22337
- type: z25.literal("image"),
22896
+ ImageContentSchema = z26.object({
22897
+ type: z26.literal("image"),
22338
22898
  /**
22339
22899
  * The base64-encoded image data.
22340
22900
  */
@@ -22342,7 +22902,7 @@ var init_types3 = __esm({
22342
22902
  /**
22343
22903
  * The MIME type of the image. Different providers may support different image types.
22344
22904
  */
22345
- mimeType: z25.string(),
22905
+ mimeType: z26.string(),
22346
22906
  /**
22347
22907
  * Optional annotations for the client.
22348
22908
  */
@@ -22351,10 +22911,10 @@ var init_types3 = __esm({
22351
22911
  * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
22352
22912
  * for notes on _meta usage.
22353
22913
  */
22354
- _meta: z25.record(z25.string(), z25.unknown()).optional()
22914
+ _meta: z26.record(z26.string(), z26.unknown()).optional()
22355
22915
  });
22356
- AudioContentSchema = z25.object({
22357
- type: z25.literal("audio"),
22916
+ AudioContentSchema = z26.object({
22917
+ type: z26.literal("audio"),
22358
22918
  /**
22359
22919
  * The base64-encoded audio data.
22360
22920
  */
@@ -22362,7 +22922,7 @@ var init_types3 = __esm({
22362
22922
  /**
22363
22923
  * The MIME type of the audio. Different providers may support different audio types.
22364
22924
  */
22365
- mimeType: z25.string(),
22925
+ mimeType: z26.string(),
22366
22926
  /**
22367
22927
  * Optional annotations for the client.
22368
22928
  */
@@ -22371,34 +22931,34 @@ var init_types3 = __esm({
22371
22931
  * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
22372
22932
  * for notes on _meta usage.
22373
22933
  */
22374
- _meta: z25.record(z25.string(), z25.unknown()).optional()
22934
+ _meta: z26.record(z26.string(), z26.unknown()).optional()
22375
22935
  });
22376
- ToolUseContentSchema = z25.object({
22377
- type: z25.literal("tool_use"),
22936
+ ToolUseContentSchema = z26.object({
22937
+ type: z26.literal("tool_use"),
22378
22938
  /**
22379
22939
  * The name of the tool to invoke.
22380
22940
  * Must match a tool name from the request's tools array.
22381
22941
  */
22382
- name: z25.string(),
22942
+ name: z26.string(),
22383
22943
  /**
22384
22944
  * Unique identifier for this tool call.
22385
22945
  * Used to correlate with ToolResultContent in subsequent messages.
22386
22946
  */
22387
- id: z25.string(),
22947
+ id: z26.string(),
22388
22948
  /**
22389
22949
  * Arguments to pass to the tool.
22390
22950
  * Must conform to the tool's inputSchema.
22391
22951
  */
22392
- input: z25.record(z25.string(), z25.unknown()),
22952
+ input: z26.record(z26.string(), z26.unknown()),
22393
22953
  /**
22394
22954
  * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
22395
22955
  * for notes on _meta usage.
22396
22956
  */
22397
- _meta: z25.record(z25.string(), z25.unknown()).optional()
22957
+ _meta: z26.record(z26.string(), z26.unknown()).optional()
22398
22958
  });
22399
- EmbeddedResourceSchema = z25.object({
22400
- type: z25.literal("resource"),
22401
- resource: z25.union([TextResourceContentsSchema, BlobResourceContentsSchema]),
22959
+ EmbeddedResourceSchema = z26.object({
22960
+ type: z26.literal("resource"),
22961
+ resource: z26.union([TextResourceContentsSchema, BlobResourceContentsSchema]),
22402
22962
  /**
22403
22963
  * Optional annotations for the client.
22404
22964
  */
@@ -22407,19 +22967,19 @@ var init_types3 = __esm({
22407
22967
  * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
22408
22968
  * for notes on _meta usage.
22409
22969
  */
22410
- _meta: z25.record(z25.string(), z25.unknown()).optional()
22970
+ _meta: z26.record(z26.string(), z26.unknown()).optional()
22411
22971
  });
22412
22972
  ResourceLinkSchema = ResourceSchema.extend({
22413
- type: z25.literal("resource_link")
22973
+ type: z26.literal("resource_link")
22414
22974
  });
22415
- ContentBlockSchema = z25.union([
22975
+ ContentBlockSchema = z26.union([
22416
22976
  TextContentSchema,
22417
22977
  ImageContentSchema,
22418
22978
  AudioContentSchema,
22419
22979
  ResourceLinkSchema,
22420
22980
  EmbeddedResourceSchema
22421
22981
  ]);
22422
- PromptMessageSchema = z25.object({
22982
+ PromptMessageSchema = z26.object({
22423
22983
  role: RoleSchema,
22424
22984
  content: ContentBlockSchema
22425
22985
  });
@@ -22427,24 +22987,24 @@ var init_types3 = __esm({
22427
22987
  /**
22428
22988
  * An optional description for the prompt.
22429
22989
  */
22430
- description: z25.string().optional(),
22431
- messages: z25.array(PromptMessageSchema)
22990
+ description: z26.string().optional(),
22991
+ messages: z26.array(PromptMessageSchema)
22432
22992
  });
22433
22993
  PromptListChangedNotificationSchema = NotificationSchema.extend({
22434
- method: z25.literal("notifications/prompts/list_changed"),
22994
+ method: z26.literal("notifications/prompts/list_changed"),
22435
22995
  params: NotificationsParamsSchema.optional()
22436
22996
  });
22437
- ToolAnnotationsSchema = z25.object({
22997
+ ToolAnnotationsSchema = z26.object({
22438
22998
  /**
22439
22999
  * A human-readable title for the tool.
22440
23000
  */
22441
- title: z25.string().optional(),
23001
+ title: z26.string().optional(),
22442
23002
  /**
22443
23003
  * If true, the tool does not modify its environment.
22444
23004
  *
22445
23005
  * Default: false
22446
23006
  */
22447
- readOnlyHint: z25.boolean().optional(),
23007
+ readOnlyHint: z26.boolean().optional(),
22448
23008
  /**
22449
23009
  * If true, the tool may perform destructive updates to its environment.
22450
23010
  * If false, the tool performs only additive updates.
@@ -22453,7 +23013,7 @@ var init_types3 = __esm({
22453
23013
  *
22454
23014
  * Default: true
22455
23015
  */
22456
- destructiveHint: z25.boolean().optional(),
23016
+ destructiveHint: z26.boolean().optional(),
22457
23017
  /**
22458
23018
  * If true, calling the tool repeatedly with the same arguments
22459
23019
  * will have no additional effect on the its environment.
@@ -22462,7 +23022,7 @@ var init_types3 = __esm({
22462
23022
  *
22463
23023
  * Default: false
22464
23024
  */
22465
- idempotentHint: z25.boolean().optional(),
23025
+ idempotentHint: z26.boolean().optional(),
22466
23026
  /**
22467
23027
  * If true, this tool may interact with an "open world" of external
22468
23028
  * entities. If false, the tool's domain of interaction is closed.
@@ -22471,9 +23031,9 @@ var init_types3 = __esm({
22471
23031
  *
22472
23032
  * Default: true
22473
23033
  */
22474
- openWorldHint: z25.boolean().optional()
23034
+ openWorldHint: z26.boolean().optional()
22475
23035
  });
22476
- ToolExecutionSchema = z25.object({
23036
+ ToolExecutionSchema = z26.object({
22477
23037
  /**
22478
23038
  * Indicates the tool's preference for task-augmented execution.
22479
23039
  * - "required": Clients MUST invoke the tool as a task
@@ -22482,34 +23042,34 @@ var init_types3 = __esm({
22482
23042
  *
22483
23043
  * If not present, defaults to "forbidden".
22484
23044
  */
22485
- taskSupport: z25.enum(["required", "optional", "forbidden"]).optional()
23045
+ taskSupport: z26.enum(["required", "optional", "forbidden"]).optional()
22486
23046
  });
22487
- ToolSchema = z25.object({
23047
+ ToolSchema = z26.object({
22488
23048
  ...BaseMetadataSchema.shape,
22489
23049
  ...IconsSchema.shape,
22490
23050
  /**
22491
23051
  * A human-readable description of the tool.
22492
23052
  */
22493
- description: z25.string().optional(),
23053
+ description: z26.string().optional(),
22494
23054
  /**
22495
23055
  * A JSON Schema 2020-12 object defining the expected parameters for the tool.
22496
23056
  * Must have type: 'object' at the root level per MCP spec.
22497
23057
  */
22498
- inputSchema: z25.object({
22499
- type: z25.literal("object"),
22500
- properties: z25.record(z25.string(), AssertObjectSchema).optional(),
22501
- required: z25.array(z25.string()).optional()
22502
- }).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()),
22503
23063
  /**
22504
23064
  * An optional JSON Schema 2020-12 object defining the structure of the tool's output
22505
23065
  * returned in the structuredContent field of a CallToolResult.
22506
23066
  * Must have type: 'object' at the root level per MCP spec.
22507
23067
  */
22508
- outputSchema: z25.object({
22509
- type: z25.literal("object"),
22510
- properties: z25.record(z25.string(), AssertObjectSchema).optional(),
22511
- required: z25.array(z25.string()).optional()
22512
- }).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(),
22513
23073
  /**
22514
23074
  * Optional additional tool information.
22515
23075
  */
@@ -22522,13 +23082,13 @@ var init_types3 = __esm({
22522
23082
  * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
22523
23083
  * for notes on _meta usage.
22524
23084
  */
22525
- _meta: z25.record(z25.string(), z25.unknown()).optional()
23085
+ _meta: z26.record(z26.string(), z26.unknown()).optional()
22526
23086
  });
22527
23087
  ListToolsRequestSchema = PaginatedRequestSchema.extend({
22528
- method: z25.literal("tools/list")
23088
+ method: z26.literal("tools/list")
22529
23089
  });
22530
23090
  ListToolsResultSchema = PaginatedResultSchema.extend({
22531
- tools: z25.array(ToolSchema)
23091
+ tools: z26.array(ToolSchema)
22532
23092
  });
22533
23093
  CallToolResultSchema = ResultSchema.extend({
22534
23094
  /**
@@ -22537,13 +23097,13 @@ var init_types3 = __esm({
22537
23097
  * If the Tool does not define an outputSchema, this field MUST be present in the result.
22538
23098
  * For backwards compatibility, this field is always present, but it may be empty.
22539
23099
  */
22540
- content: z25.array(ContentBlockSchema).default([]),
23100
+ content: z26.array(ContentBlockSchema).default([]),
22541
23101
  /**
22542
23102
  * An object containing structured tool output.
22543
23103
  *
22544
23104
  * If the Tool defines an outputSchema, this field MUST be present in the result, and contain a JSON object that matches the schema.
22545
23105
  */
22546
- structuredContent: z25.record(z25.string(), z25.unknown()).optional(),
23106
+ structuredContent: z26.record(z26.string(), z26.unknown()).optional(),
22547
23107
  /**
22548
23108
  * Whether the tool call ended in an error.
22549
23109
  *
@@ -22558,30 +23118,30 @@ var init_types3 = __esm({
22558
23118
  * server does not support tool calls, or any other exceptional conditions,
22559
23119
  * should be reported as an MCP error response.
22560
23120
  */
22561
- isError: z25.boolean().optional()
23121
+ isError: z26.boolean().optional()
22562
23122
  });
22563
23123
  CompatibilityCallToolResultSchema = CallToolResultSchema.or(ResultSchema.extend({
22564
- toolResult: z25.unknown()
23124
+ toolResult: z26.unknown()
22565
23125
  }));
22566
23126
  CallToolRequestParamsSchema = TaskAugmentedRequestParamsSchema.extend({
22567
23127
  /**
22568
23128
  * The name of the tool to call.
22569
23129
  */
22570
- name: z25.string(),
23130
+ name: z26.string(),
22571
23131
  /**
22572
23132
  * Arguments to pass to the tool.
22573
23133
  */
22574
- arguments: z25.record(z25.string(), z25.unknown()).optional()
23134
+ arguments: z26.record(z26.string(), z26.unknown()).optional()
22575
23135
  });
22576
23136
  CallToolRequestSchema = RequestSchema.extend({
22577
- method: z25.literal("tools/call"),
23137
+ method: z26.literal("tools/call"),
22578
23138
  params: CallToolRequestParamsSchema
22579
23139
  });
22580
23140
  ToolListChangedNotificationSchema = NotificationSchema.extend({
22581
- method: z25.literal("notifications/tools/list_changed"),
23141
+ method: z26.literal("notifications/tools/list_changed"),
22582
23142
  params: NotificationsParamsSchema.optional()
22583
23143
  });
22584
- ListChangedOptionsBaseSchema = z25.object({
23144
+ ListChangedOptionsBaseSchema = z26.object({
22585
23145
  /**
22586
23146
  * If true, the list will be refreshed automatically when a list changed notification is received.
22587
23147
  * The callback will be called with the updated list.
@@ -22590,7 +23150,7 @@ var init_types3 = __esm({
22590
23150
  *
22591
23151
  * @default true
22592
23152
  */
22593
- autoRefresh: z25.boolean().default(true),
23153
+ autoRefresh: z26.boolean().default(true),
22594
23154
  /**
22595
23155
  * Debounce time in milliseconds for list changed notification processing.
22596
23156
  *
@@ -22599,9 +23159,9 @@ var init_types3 = __esm({
22599
23159
  *
22600
23160
  * @default 300
22601
23161
  */
22602
- debounceMs: z25.number().int().nonnegative().default(300)
23162
+ debounceMs: z26.number().int().nonnegative().default(300)
22603
23163
  });
22604
- LoggingLevelSchema = z25.enum(["debug", "info", "notice", "warning", "error", "critical", "alert", "emergency"]);
23164
+ LoggingLevelSchema = z26.enum(["debug", "info", "notice", "warning", "error", "critical", "alert", "emergency"]);
22605
23165
  SetLevelRequestParamsSchema = BaseRequestParamsSchema.extend({
22606
23166
  /**
22607
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.
@@ -22609,7 +23169,7 @@ var init_types3 = __esm({
22609
23169
  level: LoggingLevelSchema
22610
23170
  });
22611
23171
  SetLevelRequestSchema = RequestSchema.extend({
22612
- method: z25.literal("logging/setLevel"),
23172
+ method: z26.literal("logging/setLevel"),
22613
23173
  params: SetLevelRequestParamsSchema
22614
23174
  });
22615
23175
  LoggingMessageNotificationParamsSchema = NotificationsParamsSchema.extend({
@@ -22620,80 +23180,80 @@ var init_types3 = __esm({
22620
23180
  /**
22621
23181
  * An optional name of the logger issuing this message.
22622
23182
  */
22623
- logger: z25.string().optional(),
23183
+ logger: z26.string().optional(),
22624
23184
  /**
22625
23185
  * The data to be logged, such as a string message or an object. Any JSON serializable type is allowed here.
22626
23186
  */
22627
- data: z25.unknown()
23187
+ data: z26.unknown()
22628
23188
  });
22629
23189
  LoggingMessageNotificationSchema = NotificationSchema.extend({
22630
- method: z25.literal("notifications/message"),
23190
+ method: z26.literal("notifications/message"),
22631
23191
  params: LoggingMessageNotificationParamsSchema
22632
23192
  });
22633
- ModelHintSchema = z25.object({
23193
+ ModelHintSchema = z26.object({
22634
23194
  /**
22635
23195
  * A hint for a model name.
22636
23196
  */
22637
- name: z25.string().optional()
23197
+ name: z26.string().optional()
22638
23198
  });
22639
- ModelPreferencesSchema = z25.object({
23199
+ ModelPreferencesSchema = z26.object({
22640
23200
  /**
22641
23201
  * Optional hints to use for model selection.
22642
23202
  */
22643
- hints: z25.array(ModelHintSchema).optional(),
23203
+ hints: z26.array(ModelHintSchema).optional(),
22644
23204
  /**
22645
23205
  * How much to prioritize cost when selecting a model.
22646
23206
  */
22647
- costPriority: z25.number().min(0).max(1).optional(),
23207
+ costPriority: z26.number().min(0).max(1).optional(),
22648
23208
  /**
22649
23209
  * How much to prioritize sampling speed (latency) when selecting a model.
22650
23210
  */
22651
- speedPriority: z25.number().min(0).max(1).optional(),
23211
+ speedPriority: z26.number().min(0).max(1).optional(),
22652
23212
  /**
22653
23213
  * How much to prioritize intelligence and capabilities when selecting a model.
22654
23214
  */
22655
- intelligencePriority: z25.number().min(0).max(1).optional()
23215
+ intelligencePriority: z26.number().min(0).max(1).optional()
22656
23216
  });
22657
- ToolChoiceSchema = z25.object({
23217
+ ToolChoiceSchema = z26.object({
22658
23218
  /**
22659
23219
  * Controls when tools are used:
22660
23220
  * - "auto": Model decides whether to use tools (default)
22661
23221
  * - "required": Model MUST use at least one tool before completing
22662
23222
  * - "none": Model MUST NOT use any tools
22663
23223
  */
22664
- mode: z25.enum(["auto", "required", "none"]).optional()
23224
+ mode: z26.enum(["auto", "required", "none"]).optional()
22665
23225
  });
22666
- ToolResultContentSchema = z25.object({
22667
- type: z25.literal("tool_result"),
22668
- toolUseId: z25.string().describe("The unique identifier for the corresponding tool call."),
22669
- content: z25.array(ContentBlockSchema).default([]),
22670
- structuredContent: z25.object({}).loose().optional(),
22671
- 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(),
22672
23232
  /**
22673
23233
  * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
22674
23234
  * for notes on _meta usage.
22675
23235
  */
22676
- _meta: z25.record(z25.string(), z25.unknown()).optional()
23236
+ _meta: z26.record(z26.string(), z26.unknown()).optional()
22677
23237
  });
22678
- SamplingContentSchema = z25.discriminatedUnion("type", [TextContentSchema, ImageContentSchema, AudioContentSchema]);
22679
- SamplingMessageContentBlockSchema = z25.discriminatedUnion("type", [
23238
+ SamplingContentSchema = z26.discriminatedUnion("type", [TextContentSchema, ImageContentSchema, AudioContentSchema]);
23239
+ SamplingMessageContentBlockSchema = z26.discriminatedUnion("type", [
22680
23240
  TextContentSchema,
22681
23241
  ImageContentSchema,
22682
23242
  AudioContentSchema,
22683
23243
  ToolUseContentSchema,
22684
23244
  ToolResultContentSchema
22685
23245
  ]);
22686
- SamplingMessageSchema = z25.object({
23246
+ SamplingMessageSchema = z26.object({
22687
23247
  role: RoleSchema,
22688
- content: z25.union([SamplingMessageContentBlockSchema, z25.array(SamplingMessageContentBlockSchema)]),
23248
+ content: z26.union([SamplingMessageContentBlockSchema, z26.array(SamplingMessageContentBlockSchema)]),
22689
23249
  /**
22690
23250
  * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
22691
23251
  * for notes on _meta usage.
22692
23252
  */
22693
- _meta: z25.record(z25.string(), z25.unknown()).optional()
23253
+ _meta: z26.record(z26.string(), z26.unknown()).optional()
22694
23254
  });
22695
23255
  CreateMessageRequestParamsSchema = TaskAugmentedRequestParamsSchema.extend({
22696
- messages: z25.array(SamplingMessageSchema),
23256
+ messages: z26.array(SamplingMessageSchema),
22697
23257
  /**
22698
23258
  * The server's preferences for which model to select. The client MAY modify or omit this request.
22699
23259
  */
@@ -22701,7 +23261,7 @@ var init_types3 = __esm({
22701
23261
  /**
22702
23262
  * An optional system prompt the server wants to use for sampling. The client MAY modify or omit this prompt.
22703
23263
  */
22704
- systemPrompt: z25.string().optional(),
23264
+ systemPrompt: z26.string().optional(),
22705
23265
  /**
22706
23266
  * A request to include context from one or more MCP servers (including the caller), to be attached to the prompt.
22707
23267
  * The client MAY ignore this request.
@@ -22709,15 +23269,15 @@ var init_types3 = __esm({
22709
23269
  * Default is "none". Values "thisServer" and "allServers" are soft-deprecated. Servers SHOULD only use these values if the client
22710
23270
  * declares ClientCapabilities.sampling.context. These values may be removed in future spec releases.
22711
23271
  */
22712
- includeContext: z25.enum(["none", "thisServer", "allServers"]).optional(),
22713
- temperature: z25.number().optional(),
23272
+ includeContext: z26.enum(["none", "thisServer", "allServers"]).optional(),
23273
+ temperature: z26.number().optional(),
22714
23274
  /**
22715
23275
  * The requested maximum number of tokens to sample (to prevent runaway completions).
22716
23276
  *
22717
23277
  * The client MAY choose to sample fewer tokens than the requested maximum.
22718
23278
  */
22719
- maxTokens: z25.number().int(),
22720
- stopSequences: z25.array(z25.string()).optional(),
23279
+ maxTokens: z26.number().int(),
23280
+ stopSequences: z26.array(z26.string()).optional(),
22721
23281
  /**
22722
23282
  * Optional metadata to pass through to the LLM provider. The format of this metadata is provider-specific.
22723
23283
  */
@@ -22726,7 +23286,7 @@ var init_types3 = __esm({
22726
23286
  * Tools that the model may use during generation.
22727
23287
  * The client MUST return an error if this field is provided but ClientCapabilities.sampling.tools is not declared.
22728
23288
  */
22729
- tools: z25.array(ToolSchema).optional(),
23289
+ tools: z26.array(ToolSchema).optional(),
22730
23290
  /**
22731
23291
  * Controls how the model uses tools.
22732
23292
  * The client MUST return an error if this field is provided but ClientCapabilities.sampling.tools is not declared.
@@ -22735,14 +23295,14 @@ var init_types3 = __esm({
22735
23295
  toolChoice: ToolChoiceSchema.optional()
22736
23296
  });
22737
23297
  CreateMessageRequestSchema = RequestSchema.extend({
22738
- method: z25.literal("sampling/createMessage"),
23298
+ method: z26.literal("sampling/createMessage"),
22739
23299
  params: CreateMessageRequestParamsSchema
22740
23300
  });
22741
23301
  CreateMessageResultSchema = ResultSchema.extend({
22742
23302
  /**
22743
23303
  * The name of the model that generated the message.
22744
23304
  */
22745
- model: z25.string(),
23305
+ model: z26.string(),
22746
23306
  /**
22747
23307
  * The reason why sampling stopped, if known.
22748
23308
  *
@@ -22753,7 +23313,7 @@ var init_types3 = __esm({
22753
23313
  *
22754
23314
  * This field is an open string to allow for provider-specific stop reasons.
22755
23315
  */
22756
- stopReason: z25.optional(z25.enum(["endTurn", "stopSequence", "maxTokens"]).or(z25.string())),
23316
+ stopReason: z26.optional(z26.enum(["endTurn", "stopSequence", "maxTokens"]).or(z26.string())),
22757
23317
  role: RoleSchema,
22758
23318
  /**
22759
23319
  * Response content. Single content block (text, image, or audio).
@@ -22764,7 +23324,7 @@ var init_types3 = __esm({
22764
23324
  /**
22765
23325
  * The name of the model that generated the message.
22766
23326
  */
22767
- model: z25.string(),
23327
+ model: z26.string(),
22768
23328
  /**
22769
23329
  * The reason why sampling stopped, if known.
22770
23330
  *
@@ -22776,144 +23336,144 @@ var init_types3 = __esm({
22776
23336
  *
22777
23337
  * This field is an open string to allow for provider-specific stop reasons.
22778
23338
  */
22779
- 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())),
22780
23340
  role: RoleSchema,
22781
23341
  /**
22782
23342
  * Response content. May be a single block or array. May include ToolUseContent if stopReason is "toolUse".
22783
23343
  */
22784
- content: z25.union([SamplingMessageContentBlockSchema, z25.array(SamplingMessageContentBlockSchema)])
23344
+ content: z26.union([SamplingMessageContentBlockSchema, z26.array(SamplingMessageContentBlockSchema)])
22785
23345
  });
22786
- BooleanSchemaSchema = z25.object({
22787
- type: z25.literal("boolean"),
22788
- title: z25.string().optional(),
22789
- description: z25.string().optional(),
22790
- 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()
22791
23351
  });
22792
- StringSchemaSchema = z25.object({
22793
- type: z25.literal("string"),
22794
- title: z25.string().optional(),
22795
- description: z25.string().optional(),
22796
- minLength: z25.number().optional(),
22797
- maxLength: z25.number().optional(),
22798
- format: z25.enum(["email", "uri", "date", "date-time"]).optional(),
22799
- 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()
22800
23360
  });
22801
- NumberSchemaSchema = z25.object({
22802
- type: z25.enum(["number", "integer"]),
22803
- title: z25.string().optional(),
22804
- description: z25.string().optional(),
22805
- minimum: z25.number().optional(),
22806
- maximum: z25.number().optional(),
22807
- 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()
22808
23368
  });
22809
- UntitledSingleSelectEnumSchemaSchema = z25.object({
22810
- type: z25.literal("string"),
22811
- title: z25.string().optional(),
22812
- description: z25.string().optional(),
22813
- enum: z25.array(z25.string()),
22814
- 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()
22815
23375
  });
22816
- TitledSingleSelectEnumSchemaSchema = z25.object({
22817
- type: z25.literal("string"),
22818
- title: z25.string().optional(),
22819
- description: z25.string().optional(),
22820
- oneOf: z25.array(z25.object({
22821
- const: z25.string(),
22822
- 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()
22823
23383
  })),
22824
- default: z25.string().optional()
23384
+ default: z26.string().optional()
22825
23385
  });
22826
- LegacyTitledEnumSchemaSchema = z25.object({
22827
- type: z25.literal("string"),
22828
- title: z25.string().optional(),
22829
- description: z25.string().optional(),
22830
- enum: z25.array(z25.string()),
22831
- enumNames: z25.array(z25.string()).optional(),
22832
- 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()
22833
23393
  });
22834
- SingleSelectEnumSchemaSchema = z25.union([UntitledSingleSelectEnumSchemaSchema, TitledSingleSelectEnumSchemaSchema]);
22835
- UntitledMultiSelectEnumSchemaSchema = z25.object({
22836
- type: z25.literal("array"),
22837
- title: z25.string().optional(),
22838
- description: z25.string().optional(),
22839
- minItems: z25.number().optional(),
22840
- maxItems: z25.number().optional(),
22841
- items: z25.object({
22842
- type: z25.literal("string"),
22843
- 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())
22844
23404
  }),
22845
- default: z25.array(z25.string()).optional()
23405
+ default: z26.array(z26.string()).optional()
22846
23406
  });
22847
- TitledMultiSelectEnumSchemaSchema = z25.object({
22848
- type: z25.literal("array"),
22849
- title: z25.string().optional(),
22850
- description: z25.string().optional(),
22851
- minItems: z25.number().optional(),
22852
- maxItems: z25.number().optional(),
22853
- items: z25.object({
22854
- anyOf: z25.array(z25.object({
22855
- const: z25.string(),
22856
- 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()
22857
23417
  }))
22858
23418
  }),
22859
- default: z25.array(z25.string()).optional()
23419
+ default: z26.array(z26.string()).optional()
22860
23420
  });
22861
- MultiSelectEnumSchemaSchema = z25.union([UntitledMultiSelectEnumSchemaSchema, TitledMultiSelectEnumSchemaSchema]);
22862
- EnumSchemaSchema = z25.union([LegacyTitledEnumSchemaSchema, SingleSelectEnumSchemaSchema, MultiSelectEnumSchemaSchema]);
22863
- 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]);
22864
23424
  ElicitRequestFormParamsSchema = TaskAugmentedRequestParamsSchema.extend({
22865
23425
  /**
22866
23426
  * The elicitation mode.
22867
23427
  *
22868
23428
  * Optional for backward compatibility. Clients MUST treat missing mode as "form".
22869
23429
  */
22870
- mode: z25.literal("form").optional(),
23430
+ mode: z26.literal("form").optional(),
22871
23431
  /**
22872
23432
  * The message to present to the user describing what information is being requested.
22873
23433
  */
22874
- message: z25.string(),
23434
+ message: z26.string(),
22875
23435
  /**
22876
23436
  * A restricted subset of JSON Schema.
22877
23437
  * Only top-level properties are allowed, without nesting.
22878
23438
  */
22879
- requestedSchema: z25.object({
22880
- type: z25.literal("object"),
22881
- properties: z25.record(z25.string(), PrimitiveSchemaDefinitionSchema),
22882
- 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()
22883
23443
  })
22884
23444
  });
22885
23445
  ElicitRequestURLParamsSchema = TaskAugmentedRequestParamsSchema.extend({
22886
23446
  /**
22887
23447
  * The elicitation mode.
22888
23448
  */
22889
- mode: z25.literal("url"),
23449
+ mode: z26.literal("url"),
22890
23450
  /**
22891
23451
  * The message to present to the user explaining why the interaction is needed.
22892
23452
  */
22893
- message: z25.string(),
23453
+ message: z26.string(),
22894
23454
  /**
22895
23455
  * The ID of the elicitation, which must be unique within the context of the server.
22896
23456
  * The client MUST treat this ID as an opaque value.
22897
23457
  */
22898
- elicitationId: z25.string(),
23458
+ elicitationId: z26.string(),
22899
23459
  /**
22900
23460
  * The URL that the user should navigate to.
22901
23461
  */
22902
- url: z25.string().url()
23462
+ url: z26.string().url()
22903
23463
  });
22904
- ElicitRequestParamsSchema = z25.union([ElicitRequestFormParamsSchema, ElicitRequestURLParamsSchema]);
23464
+ ElicitRequestParamsSchema = z26.union([ElicitRequestFormParamsSchema, ElicitRequestURLParamsSchema]);
22905
23465
  ElicitRequestSchema = RequestSchema.extend({
22906
- method: z25.literal("elicitation/create"),
23466
+ method: z26.literal("elicitation/create"),
22907
23467
  params: ElicitRequestParamsSchema
22908
23468
  });
22909
23469
  ElicitationCompleteNotificationParamsSchema = NotificationsParamsSchema.extend({
22910
23470
  /**
22911
23471
  * The ID of the elicitation that completed.
22912
23472
  */
22913
- elicitationId: z25.string()
23473
+ elicitationId: z26.string()
22914
23474
  });
22915
23475
  ElicitationCompleteNotificationSchema = NotificationSchema.extend({
22916
- method: z25.literal("notifications/elicitation/complete"),
23476
+ method: z26.literal("notifications/elicitation/complete"),
22917
23477
  params: ElicitationCompleteNotificationParamsSchema
22918
23478
  });
22919
23479
  ElicitResultSchema = ResultSchema.extend({
@@ -22923,98 +23483,98 @@ var init_types3 = __esm({
22923
23483
  * - "decline": User explicitly decline the action
22924
23484
  * - "cancel": User dismissed without making an explicit choice
22925
23485
  */
22926
- action: z25.enum(["accept", "decline", "cancel"]),
23486
+ action: z26.enum(["accept", "decline", "cancel"]),
22927
23487
  /**
22928
23488
  * The submitted form data, only present when action is "accept".
22929
23489
  * Contains values matching the requested schema.
22930
23490
  * Per MCP spec, content is "typically omitted" for decline/cancel actions.
22931
23491
  * We normalize null to undefined for leniency while maintaining type compatibility.
22932
23492
  */
22933
- 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())
22934
23494
  });
22935
- ResourceTemplateReferenceSchema = z25.object({
22936
- type: z25.literal("ref/resource"),
23495
+ ResourceTemplateReferenceSchema = z26.object({
23496
+ type: z26.literal("ref/resource"),
22937
23497
  /**
22938
23498
  * The URI or URI template of the resource.
22939
23499
  */
22940
- uri: z25.string()
23500
+ uri: z26.string()
22941
23501
  });
22942
- PromptReferenceSchema = z25.object({
22943
- type: z25.literal("ref/prompt"),
23502
+ PromptReferenceSchema = z26.object({
23503
+ type: z26.literal("ref/prompt"),
22944
23504
  /**
22945
23505
  * The name of the prompt or prompt template
22946
23506
  */
22947
- name: z25.string()
23507
+ name: z26.string()
22948
23508
  });
22949
23509
  CompleteRequestParamsSchema = BaseRequestParamsSchema.extend({
22950
- ref: z25.union([PromptReferenceSchema, ResourceTemplateReferenceSchema]),
23510
+ ref: z26.union([PromptReferenceSchema, ResourceTemplateReferenceSchema]),
22951
23511
  /**
22952
23512
  * The argument's information
22953
23513
  */
22954
- argument: z25.object({
23514
+ argument: z26.object({
22955
23515
  /**
22956
23516
  * The name of the argument
22957
23517
  */
22958
- name: z25.string(),
23518
+ name: z26.string(),
22959
23519
  /**
22960
23520
  * The value of the argument to use for completion matching.
22961
23521
  */
22962
- value: z25.string()
23522
+ value: z26.string()
22963
23523
  }),
22964
- context: z25.object({
23524
+ context: z26.object({
22965
23525
  /**
22966
23526
  * Previously-resolved variables in a URI template or prompt.
22967
23527
  */
22968
- arguments: z25.record(z25.string(), z25.string()).optional()
23528
+ arguments: z26.record(z26.string(), z26.string()).optional()
22969
23529
  }).optional()
22970
23530
  });
22971
23531
  CompleteRequestSchema = RequestSchema.extend({
22972
- method: z25.literal("completion/complete"),
23532
+ method: z26.literal("completion/complete"),
22973
23533
  params: CompleteRequestParamsSchema
22974
23534
  });
22975
23535
  CompleteResultSchema = ResultSchema.extend({
22976
- completion: z25.looseObject({
23536
+ completion: z26.looseObject({
22977
23537
  /**
22978
23538
  * An array of completion values. Must not exceed 100 items.
22979
23539
  */
22980
- values: z25.array(z25.string()).max(100),
23540
+ values: z26.array(z26.string()).max(100),
22981
23541
  /**
22982
23542
  * The total number of completion options available. This can exceed the number of values actually sent in the response.
22983
23543
  */
22984
- total: z25.optional(z25.number().int()),
23544
+ total: z26.optional(z26.number().int()),
22985
23545
  /**
22986
23546
  * Indicates whether there are additional completion options beyond those provided in the current response, even if the exact total is unknown.
22987
23547
  */
22988
- hasMore: z25.optional(z25.boolean())
23548
+ hasMore: z26.optional(z26.boolean())
22989
23549
  })
22990
23550
  });
22991
- RootSchema = z25.object({
23551
+ RootSchema = z26.object({
22992
23552
  /**
22993
23553
  * The URI identifying the root. This *must* start with file:// for now.
22994
23554
  */
22995
- uri: z25.string().startsWith("file://"),
23555
+ uri: z26.string().startsWith("file://"),
22996
23556
  /**
22997
23557
  * An optional name for the root.
22998
23558
  */
22999
- name: z25.string().optional(),
23559
+ name: z26.string().optional(),
23000
23560
  /**
23001
23561
  * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)
23002
23562
  * for notes on _meta usage.
23003
23563
  */
23004
- _meta: z25.record(z25.string(), z25.unknown()).optional()
23564
+ _meta: z26.record(z26.string(), z26.unknown()).optional()
23005
23565
  });
23006
23566
  ListRootsRequestSchema = RequestSchema.extend({
23007
- method: z25.literal("roots/list"),
23567
+ method: z26.literal("roots/list"),
23008
23568
  params: BaseRequestParamsSchema.optional()
23009
23569
  });
23010
23570
  ListRootsResultSchema = ResultSchema.extend({
23011
- roots: z25.array(RootSchema)
23571
+ roots: z26.array(RootSchema)
23012
23572
  });
23013
23573
  RootsListChangedNotificationSchema = NotificationSchema.extend({
23014
- method: z25.literal("notifications/roots/list_changed"),
23574
+ method: z26.literal("notifications/roots/list_changed"),
23015
23575
  params: NotificationsParamsSchema.optional()
23016
23576
  });
23017
- ClientRequestSchema = z25.union([
23577
+ ClientRequestSchema = z26.union([
23018
23578
  PingRequestSchema,
23019
23579
  InitializeRequestSchema,
23020
23580
  CompleteRequestSchema,
@@ -23033,14 +23593,14 @@ var init_types3 = __esm({
23033
23593
  ListTasksRequestSchema,
23034
23594
  CancelTaskRequestSchema
23035
23595
  ]);
23036
- ClientNotificationSchema = z25.union([
23596
+ ClientNotificationSchema = z26.union([
23037
23597
  CancelledNotificationSchema,
23038
23598
  ProgressNotificationSchema,
23039
23599
  InitializedNotificationSchema,
23040
23600
  RootsListChangedNotificationSchema,
23041
23601
  TaskStatusNotificationSchema
23042
23602
  ]);
23043
- ClientResultSchema = z25.union([
23603
+ ClientResultSchema = z26.union([
23044
23604
  EmptyResultSchema,
23045
23605
  CreateMessageResultSchema,
23046
23606
  CreateMessageResultWithToolsSchema,
@@ -23050,7 +23610,7 @@ var init_types3 = __esm({
23050
23610
  ListTasksResultSchema,
23051
23611
  CreateTaskResultSchema
23052
23612
  ]);
23053
- ServerRequestSchema = z25.union([
23613
+ ServerRequestSchema = z26.union([
23054
23614
  PingRequestSchema,
23055
23615
  CreateMessageRequestSchema,
23056
23616
  ElicitRequestSchema,
@@ -23060,7 +23620,7 @@ var init_types3 = __esm({
23060
23620
  ListTasksRequestSchema,
23061
23621
  CancelTaskRequestSchema
23062
23622
  ]);
23063
- ServerNotificationSchema = z25.union([
23623
+ ServerNotificationSchema = z26.union([
23064
23624
  CancelledNotificationSchema,
23065
23625
  ProgressNotificationSchema,
23066
23626
  LoggingMessageNotificationSchema,
@@ -23071,7 +23631,7 @@ var init_types3 = __esm({
23071
23631
  TaskStatusNotificationSchema,
23072
23632
  ElicitationCompleteNotificationSchema
23073
23633
  ]);
23074
- ServerResultSchema = z25.union([
23634
+ ServerResultSchema = z26.union([
23075
23635
  EmptyResultSchema,
23076
23636
  InitializeResultSchema,
23077
23637
  CompleteResultSchema,
@@ -34658,22 +35218,22 @@ var init_stdio2 = __esm({
34658
35218
  });
34659
35219
 
34660
35220
  // ../../packages/mcp-server/src/tools.ts
34661
- import { z as z26 } from "zod";
35221
+ import { z as z27 } from "zod";
34662
35222
  var runTaskInputSchema, RUN_TASK_DESCRIPTION;
34663
35223
  var init_tools = __esm({
34664
35224
  "../../packages/mcp-server/src/tools.ts"() {
34665
35225
  "use strict";
34666
35226
  init_src2();
34667
- runTaskInputSchema = z26.object({
35227
+ runTaskInputSchema = z27.object({
34668
35228
  // LE contrat partage du slug (shared/agent-slug.ts) — la review a montre
34669
35229
  // que trois definitions divergentes rendaient un agent valide inciblable.
34670
35230
  agent: AgentSlugSchema.optional().describe(
34671
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."
34672
35232
  ),
34673
- 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(
34674
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.'
34675
35235
  ),
34676
- instruction: z26.string().min(1).max(16e3).describe(
35236
+ instruction: z27.string().min(1).max(16e3).describe(
34677
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."
34678
35238
  )
34679
35239
  });