convex 1.34.0 → 1.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (607) hide show
  1. package/CHANGELOG.md +98 -43
  2. package/dist/browser.bundle.js +13 -10
  3. package/dist/browser.bundle.js.map +3 -3
  4. package/dist/cjs/browser/index-node.js +3 -1
  5. package/dist/cjs/browser/index.js +3 -1
  6. package/dist/cjs/browser/index.js.map +2 -2
  7. package/dist/cjs/browser/query_options.js.map +2 -2
  8. package/dist/cjs/browser/sync/authentication_manager.js +4 -1
  9. package/dist/cjs/browser/sync/authentication_manager.js.map +2 -2
  10. package/dist/cjs/browser/sync/web_socket_manager.js +1 -7
  11. package/dist/cjs/browser/sync/web_socket_manager.js.map +2 -2
  12. package/dist/cjs/cli/aiFiles.js +39 -20
  13. package/dist/cjs/cli/aiFiles.js.map +3 -3
  14. package/dist/cjs/cli/codegen_templates/readme.js +14 -1
  15. package/dist/cjs/cli/codegen_templates/readme.js.map +2 -2
  16. package/dist/cjs/cli/configure.js +34 -32
  17. package/dist/cjs/cli/configure.js.map +2 -2
  18. package/dist/cjs/cli/deploy.js +7 -8
  19. package/dist/cjs/cli/deploy.js.map +2 -2
  20. package/dist/cjs/cli/deploymentCreate.js +225 -40
  21. package/dist/cjs/cli/deploymentCreate.js.map +3 -3
  22. package/dist/cjs/cli/deploymentSelect.js +14 -13
  23. package/dist/cjs/cli/deploymentSelect.js.map +2 -2
  24. package/dist/cjs/cli/dev.js +30 -11
  25. package/dist/cjs/cli/dev.js.map +2 -2
  26. package/dist/cjs/cli/docs.js +1 -1
  27. package/dist/cjs/cli/docs.js.map +2 -2
  28. package/dist/cjs/cli/init.js +1 -1
  29. package/dist/cjs/cli/init.js.map +2 -2
  30. package/dist/cjs/cli/lib/aiFiles/agentsmd.js +73 -0
  31. package/dist/cjs/cli/lib/aiFiles/agentsmd.js.map +7 -0
  32. package/dist/cjs/cli/lib/aiFiles/claudemd.js +73 -0
  33. package/dist/cjs/cli/lib/aiFiles/claudemd.js.map +7 -0
  34. package/dist/cjs/cli/lib/aiFiles/cursorrules.js +48 -0
  35. package/dist/cjs/cli/lib/aiFiles/cursorrules.js.map +7 -0
  36. package/dist/cjs/cli/lib/aiFiles/guidelinesmd.js +58 -0
  37. package/dist/cjs/cli/lib/aiFiles/guidelinesmd.js.map +7 -0
  38. package/dist/cjs/cli/lib/aiFiles/index.js +215 -0
  39. package/dist/cjs/cli/lib/aiFiles/index.js.map +7 -0
  40. package/dist/cjs/cli/lib/aiFiles/paths.js.map +7 -0
  41. package/dist/cjs/cli/lib/aiFiles/skills.js +196 -0
  42. package/dist/cjs/cli/lib/aiFiles/skills.js.map +7 -0
  43. package/dist/cjs/cli/lib/aiFiles/state.js +96 -0
  44. package/dist/cjs/cli/lib/aiFiles/state.js.map +7 -0
  45. package/dist/cjs/cli/lib/aiFiles/status.js +198 -0
  46. package/dist/cjs/cli/lib/aiFiles/status.js.map +7 -0
  47. package/dist/cjs/cli/lib/aiFiles/utils.js +128 -0
  48. package/dist/cjs/cli/lib/aiFiles/utils.js.map +7 -0
  49. package/dist/cjs/cli/lib/api.js +70 -7
  50. package/dist/cjs/cli/lib/api.js.map +2 -2
  51. package/dist/cjs/cli/lib/command.js +10 -6
  52. package/dist/cjs/cli/lib/command.js.map +2 -2
  53. package/dist/cjs/cli/lib/config.js +43 -7
  54. package/dist/cjs/cli/lib/config.js.map +3 -3
  55. package/dist/cjs/cli/lib/deploy2.js +9 -26
  56. package/dist/cjs/cli/lib/deploy2.js.map +2 -2
  57. package/dist/cjs/cli/lib/deployApi/componentDefinition.js +4 -1
  58. package/dist/cjs/cli/lib/deployApi/componentDefinition.js.map +2 -2
  59. package/dist/cjs/cli/lib/deploymentSelection.js +45 -2
  60. package/dist/cjs/cli/lib/deploymentSelection.js.map +2 -2
  61. package/dist/cjs/cli/lib/deploymentSelector.js +1 -0
  62. package/dist/cjs/cli/lib/deploymentSelector.js.map +2 -2
  63. package/dist/cjs/cli/lib/dev.js +162 -117
  64. package/dist/cjs/cli/lib/dev.js.map +2 -2
  65. package/dist/cjs/cli/lib/env.js +1 -13
  66. package/dist/cjs/cli/lib/env.js.map +2 -2
  67. package/dist/cjs/cli/lib/expiration.js +104 -0
  68. package/dist/cjs/cli/lib/expiration.js.map +7 -0
  69. package/dist/cjs/cli/lib/generatedFunctionLogsApi.js.map +1 -1
  70. package/dist/cjs/cli/lib/init.js +4 -3
  71. package/dist/cjs/cli/lib/init.js.map +2 -2
  72. package/dist/cjs/cli/lib/insights.js +1 -1
  73. package/dist/cjs/cli/lib/insights.js.map +2 -2
  74. package/dist/cjs/cli/lib/localDeployment/anonymous.js +15 -8
  75. package/dist/cjs/cli/lib/localDeployment/anonymous.js.map +2 -2
  76. package/dist/cjs/cli/lib/localDeployment/localDeployment.js +8 -10
  77. package/dist/cjs/cli/lib/localDeployment/localDeployment.js.map +2 -2
  78. package/dist/cjs/cli/lib/localDeployment/run.js +1 -0
  79. package/dist/cjs/cli/lib/localDeployment/run.js.map +2 -2
  80. package/dist/cjs/cli/lib/localDeployment/upgrade.js +2 -2
  81. package/dist/cjs/cli/lib/localDeployment/upgrade.js.map +2 -2
  82. package/dist/cjs/cli/lib/localDeployment/utils.js +9 -0
  83. package/dist/cjs/cli/lib/localDeployment/utils.js.map +2 -2
  84. package/dist/cjs/cli/lib/mcp/tools/status.js +1 -1
  85. package/dist/cjs/cli/lib/mcp/tools/status.js.map +2 -2
  86. package/dist/cjs/cli/lib/updates.js +12 -13
  87. package/dist/cjs/cli/lib/updates.js.map +2 -2
  88. package/dist/cjs/cli/lib/usage.js +2 -1
  89. package/dist/cjs/cli/lib/usage.js.map +2 -2
  90. package/dist/cjs/cli/lib/utils/prompts.js +2 -1
  91. package/dist/cjs/cli/lib/utils/prompts.js.map +2 -2
  92. package/dist/cjs/cli/lib/utils/utils.js +46 -20
  93. package/dist/cjs/cli/lib/utils/utils.js.map +3 -3
  94. package/dist/cjs/cli/lib/versionApi.js +7 -4
  95. package/dist/cjs/cli/lib/versionApi.js.map +2 -2
  96. package/dist/cjs/cli/lib/workos/workos.js +4 -6
  97. package/dist/cjs/cli/lib/workos/workos.js.map +2 -2
  98. package/dist/cjs/index.js +1 -1
  99. package/dist/cjs/index.js.map +1 -1
  100. package/dist/cjs/react/client.js +43 -6
  101. package/dist/cjs/react/client.js.map +2 -2
  102. package/dist/cjs/react/index.js +2 -0
  103. package/dist/cjs/react/index.js.map +2 -2
  104. package/dist/cjs/react-clerk/ConvexProviderWithClerk.js.map +1 -1
  105. package/dist/cjs/server/api.js.map +2 -2
  106. package/dist/cjs/server/components/definition.js.map +1 -1
  107. package/dist/cjs/server/components/index.js +40 -4
  108. package/dist/cjs/server/components/index.js.map +2 -2
  109. package/dist/cjs/server/data_model.js.map +1 -1
  110. package/dist/cjs/server/impl/meta_impl.js +78 -0
  111. package/dist/cjs/server/impl/meta_impl.js.map +7 -0
  112. package/dist/cjs/server/impl/registration_impl.js +16 -11
  113. package/dist/cjs/server/impl/registration_impl.js.map +2 -2
  114. package/dist/cjs/server/index.js.map +2 -2
  115. package/dist/cjs/server/meta.js +17 -0
  116. package/dist/cjs/server/meta.js.map +7 -0
  117. package/dist/cjs/server/registration.js.map +1 -1
  118. package/dist/cjs-types/browser/index.d.ts +1 -0
  119. package/dist/cjs-types/browser/index.d.ts.map +1 -1
  120. package/dist/cjs-types/browser/query_options.d.ts +12 -9
  121. package/dist/cjs-types/browser/query_options.d.ts.map +1 -1
  122. package/dist/cjs-types/browser/sync/authentication_manager.d.ts.map +1 -1
  123. package/dist/cjs-types/browser/sync/web_socket_manager.d.ts.map +1 -1
  124. package/dist/cjs-types/cli/aiFiles.d.ts.map +1 -1
  125. package/dist/cjs-types/cli/codegen_templates/readme.d.ts.map +1 -1
  126. package/dist/cjs-types/cli/configure.d.ts.map +1 -1
  127. package/dist/cjs-types/cli/configure.test.d.ts +2 -0
  128. package/dist/cjs-types/cli/configure.test.d.ts.map +1 -0
  129. package/dist/cjs-types/cli/deploy.d.ts.map +1 -1
  130. package/dist/cjs-types/cli/deploymentCreate.d.ts +1 -0
  131. package/dist/cjs-types/cli/deploymentCreate.d.ts.map +1 -1
  132. package/dist/cjs-types/cli/deploymentSelect.d.ts +2 -1
  133. package/dist/cjs-types/cli/deploymentSelect.d.ts.map +1 -1
  134. package/dist/cjs-types/cli/dev.d.ts +3 -1
  135. package/dist/cjs-types/cli/dev.d.ts.map +1 -1
  136. package/dist/cjs-types/cli/lib/aiFiles/agentsmd.d.ts +19 -0
  137. package/dist/cjs-types/cli/lib/aiFiles/agentsmd.d.ts.map +1 -0
  138. package/dist/cjs-types/cli/lib/aiFiles/agentsmd.test.d.ts +2 -0
  139. package/dist/cjs-types/cli/lib/aiFiles/agentsmd.test.d.ts.map +1 -0
  140. package/dist/cjs-types/cli/lib/aiFiles/claudemd.d.ts +19 -0
  141. package/dist/cjs-types/cli/lib/aiFiles/claudemd.d.ts.map +1 -0
  142. package/dist/cjs-types/cli/lib/aiFiles/claudemd.test.d.ts +2 -0
  143. package/dist/cjs-types/cli/lib/aiFiles/claudemd.test.d.ts.map +1 -0
  144. package/dist/cjs-types/cli/lib/aiFiles/cursorrules.d.ts +10 -0
  145. package/dist/cjs-types/cli/lib/aiFiles/cursorrules.d.ts.map +1 -0
  146. package/dist/cjs-types/cli/lib/aiFiles/guidelinesmd.d.ts +12 -0
  147. package/dist/cjs-types/cli/lib/aiFiles/guidelinesmd.d.ts.map +1 -0
  148. package/dist/cjs-types/cli/lib/aiFiles/guidelinesmd.test.d.ts +2 -0
  149. package/dist/cjs-types/cli/lib/aiFiles/guidelinesmd.test.d.ts.map +1 -0
  150. package/dist/cjs-types/cli/lib/aiFiles/index.d.ts +42 -0
  151. package/dist/cjs-types/cli/lib/aiFiles/index.d.ts.map +1 -0
  152. package/dist/cjs-types/cli/lib/aiFiles/index.test.d.ts.map +1 -0
  153. package/dist/cjs-types/cli/lib/aiFiles/integration.test.d.ts.map +1 -0
  154. package/dist/cjs-types/cli/lib/{ai → aiFiles}/paths.d.ts +4 -0
  155. package/dist/cjs-types/cli/lib/aiFiles/paths.d.ts.map +1 -0
  156. package/dist/cjs-types/cli/lib/aiFiles/prompt.test.d.ts.map +1 -0
  157. package/dist/cjs-types/cli/lib/aiFiles/skills.d.ts +20 -0
  158. package/dist/cjs-types/cli/lib/aiFiles/skills.d.ts.map +1 -0
  159. package/dist/cjs-types/cli/lib/aiFiles/state.d.ts +38 -0
  160. package/dist/cjs-types/cli/lib/aiFiles/state.d.ts.map +1 -0
  161. package/dist/cjs-types/cli/lib/aiFiles/state.test.d.ts +2 -0
  162. package/dist/cjs-types/cli/lib/aiFiles/state.test.d.ts.map +1 -0
  163. package/dist/cjs-types/cli/lib/aiFiles/status.d.ts +6 -0
  164. package/dist/cjs-types/cli/lib/aiFiles/status.d.ts.map +1 -0
  165. package/dist/cjs-types/cli/lib/aiFiles/utils.d.ts +56 -0
  166. package/dist/cjs-types/cli/lib/aiFiles/utils.d.ts.map +1 -0
  167. package/dist/cjs-types/cli/lib/aiFiles/utils.test.d.ts +2 -0
  168. package/dist/cjs-types/cli/lib/aiFiles/utils.test.d.ts.map +1 -0
  169. package/dist/cjs-types/cli/lib/api.d.ts +3 -3
  170. package/dist/cjs-types/cli/lib/api.d.ts.map +1 -1
  171. package/dist/cjs-types/cli/lib/command.d.ts +2 -1
  172. package/dist/cjs-types/cli/lib/command.d.ts.map +1 -1
  173. package/dist/cjs-types/cli/lib/config.d.ts +18 -6
  174. package/dist/cjs-types/cli/lib/config.d.ts.map +1 -1
  175. package/dist/cjs-types/cli/lib/deploy2.d.ts +5 -2
  176. package/dist/cjs-types/cli/lib/deploy2.d.ts.map +1 -1
  177. package/dist/cjs-types/cli/lib/deployApi/componentDefinition.d.ts +27 -12
  178. package/dist/cjs-types/cli/lib/deployApi/componentDefinition.d.ts.map +1 -1
  179. package/dist/cjs-types/cli/lib/deployApi/definitionConfig.d.ts +24 -24
  180. package/dist/cjs-types/cli/lib/deployApi/modules.d.ts +14 -14
  181. package/dist/cjs-types/cli/lib/deployApi/startPush.d.ts +61 -52
  182. package/dist/cjs-types/cli/lib/deployApi/startPush.d.ts.map +1 -1
  183. package/dist/cjs-types/cli/lib/deploymentSelection.d.ts.map +1 -1
  184. package/dist/cjs-types/cli/lib/deploymentSelector.d.ts +2 -0
  185. package/dist/cjs-types/cli/lib/deploymentSelector.d.ts.map +1 -1
  186. package/dist/cjs-types/cli/lib/dev.d.ts.map +1 -1
  187. package/dist/cjs-types/cli/lib/env.d.ts +0 -4
  188. package/dist/cjs-types/cli/lib/env.d.ts.map +1 -1
  189. package/dist/cjs-types/cli/lib/expiration.d.ts +35 -0
  190. package/dist/cjs-types/cli/lib/expiration.d.ts.map +1 -0
  191. package/dist/cjs-types/cli/lib/expiration.test.d.ts +2 -0
  192. package/dist/cjs-types/cli/lib/expiration.test.d.ts.map +1 -0
  193. package/dist/cjs-types/cli/lib/generatedFunctionLogsApi.d.ts +16 -1
  194. package/dist/cjs-types/cli/lib/generatedFunctionLogsApi.d.ts.map +1 -1
  195. package/dist/cjs-types/cli/lib/init.d.ts.map +1 -1
  196. package/dist/cjs-types/cli/lib/localDeployment/anonymous.d.ts.map +1 -1
  197. package/dist/cjs-types/cli/lib/localDeployment/localDeployment.d.ts.map +1 -1
  198. package/dist/cjs-types/cli/lib/localDeployment/run.d.ts +15 -0
  199. package/dist/cjs-types/cli/lib/localDeployment/run.d.ts.map +1 -1
  200. package/dist/cjs-types/cli/lib/localDeployment/upgrade.d.ts.map +1 -1
  201. package/dist/cjs-types/cli/lib/localDeployment/utils.d.ts +7 -0
  202. package/dist/cjs-types/cli/lib/localDeployment/utils.d.ts.map +1 -1
  203. package/dist/cjs-types/cli/lib/mcp/requestContext.d.ts +3 -3
  204. package/dist/cjs-types/cli/lib/mcp/tools/insights.d.ts +2 -2
  205. package/dist/cjs-types/cli/lib/updates.d.ts +4 -3
  206. package/dist/cjs-types/cli/lib/updates.d.ts.map +1 -1
  207. package/dist/cjs-types/cli/lib/usage.d.ts.map +1 -1
  208. package/dist/cjs-types/cli/lib/utils/prompts.d.ts +1 -0
  209. package/dist/cjs-types/cli/lib/utils/prompts.d.ts.map +1 -1
  210. package/dist/cjs-types/cli/lib/utils/utils.d.ts +16 -2
  211. package/dist/cjs-types/cli/lib/utils/utils.d.ts.map +1 -1
  212. package/dist/cjs-types/cli/lib/versionApi.d.ts +7 -1
  213. package/dist/cjs-types/cli/lib/versionApi.d.ts.map +1 -1
  214. package/dist/cjs-types/cli/lib/workos/workos.d.ts.map +1 -1
  215. package/dist/cjs-types/index.d.ts +1 -1
  216. package/dist/cjs-types/react/client.d.ts +54 -2
  217. package/dist/cjs-types/react/client.d.ts.map +1 -1
  218. package/dist/cjs-types/react/index.d.ts +7 -2
  219. package/dist/cjs-types/react/index.d.ts.map +1 -1
  220. package/dist/cjs-types/react/use_query_object_options.test.d.ts +5 -0
  221. package/dist/cjs-types/react/use_query_object_options.test.d.ts.map +1 -0
  222. package/dist/cjs-types/react/use_query_result.test.d.ts +5 -0
  223. package/dist/cjs-types/react/use_query_result.test.d.ts.map +1 -0
  224. package/dist/cjs-types/react-clerk/ConvexProviderWithClerk.d.ts +1 -1
  225. package/dist/cjs-types/server/api.d.ts +5 -1
  226. package/dist/cjs-types/server/api.d.ts.map +1 -1
  227. package/dist/cjs-types/server/components/definition.d.ts +1 -0
  228. package/dist/cjs-types/server/components/definition.d.ts.map +1 -1
  229. package/dist/cjs-types/server/components/index.d.ts +5 -1
  230. package/dist/cjs-types/server/components/index.d.ts.map +1 -1
  231. package/dist/cjs-types/server/data_model.d.ts +2 -1
  232. package/dist/cjs-types/server/data_model.d.ts.map +1 -1
  233. package/dist/cjs-types/server/impl/meta_impl.d.ts +5 -0
  234. package/dist/cjs-types/server/impl/meta_impl.d.ts.map +1 -0
  235. package/dist/cjs-types/server/impl/registration_impl.d.ts.map +1 -1
  236. package/dist/cjs-types/server/index.d.ts +1 -0
  237. package/dist/cjs-types/server/index.d.ts.map +1 -1
  238. package/dist/cjs-types/server/meta.d.ts +72 -0
  239. package/dist/cjs-types/server/meta.d.ts.map +1 -0
  240. package/dist/cjs-types/server/registration.d.ts.map +1 -1
  241. package/dist/cli.bundle.cjs +2446 -1933
  242. package/dist/cli.bundle.cjs.map +4 -4
  243. package/dist/esm/browser/index-node.js +1 -0
  244. package/dist/esm/browser/index.js +1 -0
  245. package/dist/esm/browser/index.js.map +2 -2
  246. package/dist/esm/browser/query_options.js.map +2 -2
  247. package/dist/esm/browser/sync/authentication_manager.js +4 -1
  248. package/dist/esm/browser/sync/authentication_manager.js.map +2 -2
  249. package/dist/esm/browser/sync/web_socket_manager.js +1 -7
  250. package/dist/esm/browser/sync/web_socket_manager.js.map +2 -2
  251. package/dist/esm/cli/aiFiles.js +41 -23
  252. package/dist/esm/cli/aiFiles.js.map +2 -2
  253. package/dist/esm/cli/codegen_templates/readme.js +14 -1
  254. package/dist/esm/cli/codegen_templates/readme.js.map +2 -2
  255. package/dist/esm/cli/configure.js +35 -33
  256. package/dist/esm/cli/configure.js.map +2 -2
  257. package/dist/esm/cli/deploy.js +11 -10
  258. package/dist/esm/cli/deploy.js.map +2 -2
  259. package/dist/esm/cli/deploymentCreate.js +238 -42
  260. package/dist/esm/cli/deploymentCreate.js.map +2 -2
  261. package/dist/esm/cli/deploymentSelect.js +13 -12
  262. package/dist/esm/cli/deploymentSelect.js.map +2 -2
  263. package/dist/esm/cli/dev.js +34 -13
  264. package/dist/esm/cli/dev.js.map +2 -2
  265. package/dist/esm/cli/docs.js +1 -1
  266. package/dist/esm/cli/docs.js.map +2 -2
  267. package/dist/esm/cli/init.js +2 -2
  268. package/dist/esm/cli/init.js.map +2 -2
  269. package/dist/esm/cli/lib/aiFiles/agentsmd.js +56 -0
  270. package/dist/esm/cli/lib/aiFiles/agentsmd.js.map +7 -0
  271. package/dist/esm/cli/lib/aiFiles/claudemd.js +56 -0
  272. package/dist/esm/cli/lib/aiFiles/claudemd.js.map +7 -0
  273. package/dist/esm/cli/lib/aiFiles/cursorrules.js +16 -0
  274. package/dist/esm/cli/lib/aiFiles/cursorrules.js.map +7 -0
  275. package/dist/esm/cli/lib/aiFiles/guidelinesmd.js +35 -0
  276. package/dist/esm/cli/lib/aiFiles/guidelinesmd.js.map +7 -0
  277. package/dist/esm/cli/lib/aiFiles/index.js +193 -0
  278. package/dist/esm/cli/lib/aiFiles/index.js.map +7 -0
  279. package/dist/esm/cli/lib/aiFiles/paths.js.map +7 -0
  280. package/dist/esm/cli/lib/aiFiles/skills.js +163 -0
  281. package/dist/esm/cli/lib/aiFiles/skills.js.map +7 -0
  282. package/dist/esm/cli/lib/aiFiles/state.js +60 -0
  283. package/dist/esm/cli/lib/aiFiles/state.js.map +7 -0
  284. package/dist/esm/cli/lib/aiFiles/status.js +178 -0
  285. package/dist/esm/cli/lib/aiFiles/status.js.map +7 -0
  286. package/dist/esm/cli/lib/aiFiles/utils.js +97 -0
  287. package/dist/esm/cli/lib/aiFiles/utils.js.map +7 -0
  288. package/dist/esm/cli/lib/api.js +70 -7
  289. package/dist/esm/cli/lib/api.js.map +2 -2
  290. package/dist/esm/cli/lib/command.js +10 -6
  291. package/dist/esm/cli/lib/command.js.map +2 -2
  292. package/dist/esm/cli/lib/config.js +41 -6
  293. package/dist/esm/cli/lib/config.js.map +2 -2
  294. package/dist/esm/cli/lib/deploy2.js +13 -26
  295. package/dist/esm/cli/lib/deploy2.js.map +2 -2
  296. package/dist/esm/cli/lib/deployApi/componentDefinition.js +4 -1
  297. package/dist/esm/cli/lib/deployApi/componentDefinition.js.map +2 -2
  298. package/dist/esm/cli/lib/deploymentSelection.js +46 -2
  299. package/dist/esm/cli/lib/deploymentSelection.js.map +2 -2
  300. package/dist/esm/cli/lib/deploymentSelector.js +1 -0
  301. package/dist/esm/cli/lib/deploymentSelector.js.map +2 -2
  302. package/dist/esm/cli/lib/dev.js +162 -118
  303. package/dist/esm/cli/lib/dev.js.map +2 -2
  304. package/dist/esm/cli/lib/env.js +0 -11
  305. package/dist/esm/cli/lib/env.js.map +2 -2
  306. package/dist/esm/cli/lib/expiration.js +80 -0
  307. package/dist/esm/cli/lib/expiration.js.map +7 -0
  308. package/dist/esm/cli/lib/init.js +4 -3
  309. package/dist/esm/cli/lib/init.js.map +2 -2
  310. package/dist/esm/cli/lib/insights.js +1 -1
  311. package/dist/esm/cli/lib/insights.js.map +2 -2
  312. package/dist/esm/cli/lib/localDeployment/anonymous.js +16 -9
  313. package/dist/esm/cli/lib/localDeployment/anonymous.js.map +2 -2
  314. package/dist/esm/cli/lib/localDeployment/localDeployment.js +9 -11
  315. package/dist/esm/cli/lib/localDeployment/localDeployment.js.map +2 -2
  316. package/dist/esm/cli/lib/localDeployment/run.js +1 -1
  317. package/dist/esm/cli/lib/localDeployment/run.js.map +2 -2
  318. package/dist/esm/cli/lib/localDeployment/upgrade.js +2 -2
  319. package/dist/esm/cli/lib/localDeployment/upgrade.js.map +2 -2
  320. package/dist/esm/cli/lib/localDeployment/utils.js +8 -0
  321. package/dist/esm/cli/lib/localDeployment/utils.js.map +2 -2
  322. package/dist/esm/cli/lib/mcp/tools/status.js +1 -1
  323. package/dist/esm/cli/lib/mcp/tools/status.js.map +2 -2
  324. package/dist/esm/cli/lib/updates.js +14 -12
  325. package/dist/esm/cli/lib/updates.js.map +2 -2
  326. package/dist/esm/cli/lib/usage.js +2 -1
  327. package/dist/esm/cli/lib/usage.js.map +2 -2
  328. package/dist/esm/cli/lib/utils/prompts.js +2 -1
  329. package/dist/esm/cli/lib/utils/prompts.js.map +2 -2
  330. package/dist/esm/cli/lib/utils/utils.js +45 -20
  331. package/dist/esm/cli/lib/utils/utils.js.map +3 -3
  332. package/dist/esm/cli/lib/versionApi.js +7 -4
  333. package/dist/esm/cli/lib/versionApi.js.map +2 -2
  334. package/dist/esm/cli/lib/workos/workos.js +4 -6
  335. package/dist/esm/cli/lib/workos/workos.js.map +2 -2
  336. package/dist/esm/index.js +1 -1
  337. package/dist/esm/index.js.map +1 -1
  338. package/dist/esm/react/client.js +43 -6
  339. package/dist/esm/react/client.js.map +2 -2
  340. package/dist/esm/react/index.js +1 -0
  341. package/dist/esm/react/index.js.map +2 -2
  342. package/dist/esm/react-clerk/ConvexProviderWithClerk.js.map +1 -1
  343. package/dist/esm/server/api.js.map +2 -2
  344. package/dist/esm/server/components/index.js +40 -4
  345. package/dist/esm/server/components/index.js.map +2 -2
  346. package/dist/esm/server/impl/meta_impl.js +54 -0
  347. package/dist/esm/server/impl/meta_impl.js.map +7 -0
  348. package/dist/esm/server/impl/registration_impl.js +20 -11
  349. package/dist/esm/server/impl/registration_impl.js.map +2 -2
  350. package/dist/esm/server/index.js.map +2 -2
  351. package/dist/esm/server/meta.js +2 -0
  352. package/dist/esm/server/meta.js.map +7 -0
  353. package/dist/esm-types/browser/index.d.ts +1 -0
  354. package/dist/esm-types/browser/index.d.ts.map +1 -1
  355. package/dist/esm-types/browser/query_options.d.ts +12 -9
  356. package/dist/esm-types/browser/query_options.d.ts.map +1 -1
  357. package/dist/esm-types/browser/sync/authentication_manager.d.ts.map +1 -1
  358. package/dist/esm-types/browser/sync/web_socket_manager.d.ts.map +1 -1
  359. package/dist/esm-types/cli/aiFiles.d.ts.map +1 -1
  360. package/dist/esm-types/cli/codegen_templates/readme.d.ts.map +1 -1
  361. package/dist/esm-types/cli/configure.d.ts.map +1 -1
  362. package/dist/esm-types/cli/configure.test.d.ts +2 -0
  363. package/dist/esm-types/cli/configure.test.d.ts.map +1 -0
  364. package/dist/esm-types/cli/deploy.d.ts.map +1 -1
  365. package/dist/esm-types/cli/deploymentCreate.d.ts +1 -0
  366. package/dist/esm-types/cli/deploymentCreate.d.ts.map +1 -1
  367. package/dist/esm-types/cli/deploymentSelect.d.ts +2 -1
  368. package/dist/esm-types/cli/deploymentSelect.d.ts.map +1 -1
  369. package/dist/esm-types/cli/dev.d.ts +3 -1
  370. package/dist/esm-types/cli/dev.d.ts.map +1 -1
  371. package/dist/esm-types/cli/lib/aiFiles/agentsmd.d.ts +19 -0
  372. package/dist/esm-types/cli/lib/aiFiles/agentsmd.d.ts.map +1 -0
  373. package/dist/esm-types/cli/lib/aiFiles/agentsmd.test.d.ts +2 -0
  374. package/dist/esm-types/cli/lib/aiFiles/agentsmd.test.d.ts.map +1 -0
  375. package/dist/esm-types/cli/lib/aiFiles/claudemd.d.ts +19 -0
  376. package/dist/esm-types/cli/lib/aiFiles/claudemd.d.ts.map +1 -0
  377. package/dist/esm-types/cli/lib/aiFiles/claudemd.test.d.ts +2 -0
  378. package/dist/esm-types/cli/lib/aiFiles/claudemd.test.d.ts.map +1 -0
  379. package/dist/esm-types/cli/lib/aiFiles/cursorrules.d.ts +10 -0
  380. package/dist/esm-types/cli/lib/aiFiles/cursorrules.d.ts.map +1 -0
  381. package/dist/esm-types/cli/lib/aiFiles/guidelinesmd.d.ts +12 -0
  382. package/dist/esm-types/cli/lib/aiFiles/guidelinesmd.d.ts.map +1 -0
  383. package/dist/esm-types/cli/lib/aiFiles/guidelinesmd.test.d.ts +2 -0
  384. package/dist/esm-types/cli/lib/aiFiles/guidelinesmd.test.d.ts.map +1 -0
  385. package/dist/esm-types/cli/lib/aiFiles/index.d.ts +42 -0
  386. package/dist/esm-types/cli/lib/aiFiles/index.d.ts.map +1 -0
  387. package/dist/esm-types/cli/lib/aiFiles/index.test.d.ts.map +1 -0
  388. package/dist/esm-types/cli/lib/aiFiles/integration.test.d.ts.map +1 -0
  389. package/dist/esm-types/cli/lib/{ai → aiFiles}/paths.d.ts +4 -0
  390. package/dist/esm-types/cli/lib/aiFiles/paths.d.ts.map +1 -0
  391. package/dist/esm-types/cli/lib/aiFiles/prompt.test.d.ts.map +1 -0
  392. package/dist/esm-types/cli/lib/aiFiles/skills.d.ts +20 -0
  393. package/dist/esm-types/cli/lib/aiFiles/skills.d.ts.map +1 -0
  394. package/dist/esm-types/cli/lib/aiFiles/state.d.ts +38 -0
  395. package/dist/esm-types/cli/lib/aiFiles/state.d.ts.map +1 -0
  396. package/dist/esm-types/cli/lib/aiFiles/state.test.d.ts +2 -0
  397. package/dist/esm-types/cli/lib/aiFiles/state.test.d.ts.map +1 -0
  398. package/dist/esm-types/cli/lib/aiFiles/status.d.ts +6 -0
  399. package/dist/esm-types/cli/lib/aiFiles/status.d.ts.map +1 -0
  400. package/dist/esm-types/cli/lib/aiFiles/utils.d.ts +56 -0
  401. package/dist/esm-types/cli/lib/aiFiles/utils.d.ts.map +1 -0
  402. package/dist/esm-types/cli/lib/aiFiles/utils.test.d.ts +2 -0
  403. package/dist/esm-types/cli/lib/aiFiles/utils.test.d.ts.map +1 -0
  404. package/dist/esm-types/cli/lib/api.d.ts +3 -3
  405. package/dist/esm-types/cli/lib/api.d.ts.map +1 -1
  406. package/dist/esm-types/cli/lib/command.d.ts +2 -1
  407. package/dist/esm-types/cli/lib/command.d.ts.map +1 -1
  408. package/dist/esm-types/cli/lib/config.d.ts +18 -6
  409. package/dist/esm-types/cli/lib/config.d.ts.map +1 -1
  410. package/dist/esm-types/cli/lib/deploy2.d.ts +5 -2
  411. package/dist/esm-types/cli/lib/deploy2.d.ts.map +1 -1
  412. package/dist/esm-types/cli/lib/deployApi/componentDefinition.d.ts +27 -12
  413. package/dist/esm-types/cli/lib/deployApi/componentDefinition.d.ts.map +1 -1
  414. package/dist/esm-types/cli/lib/deployApi/definitionConfig.d.ts +24 -24
  415. package/dist/esm-types/cli/lib/deployApi/modules.d.ts +14 -14
  416. package/dist/esm-types/cli/lib/deployApi/startPush.d.ts +61 -52
  417. package/dist/esm-types/cli/lib/deployApi/startPush.d.ts.map +1 -1
  418. package/dist/esm-types/cli/lib/deploymentSelection.d.ts.map +1 -1
  419. package/dist/esm-types/cli/lib/deploymentSelector.d.ts +2 -0
  420. package/dist/esm-types/cli/lib/deploymentSelector.d.ts.map +1 -1
  421. package/dist/esm-types/cli/lib/dev.d.ts.map +1 -1
  422. package/dist/esm-types/cli/lib/env.d.ts +0 -4
  423. package/dist/esm-types/cli/lib/env.d.ts.map +1 -1
  424. package/dist/esm-types/cli/lib/expiration.d.ts +35 -0
  425. package/dist/esm-types/cli/lib/expiration.d.ts.map +1 -0
  426. package/dist/esm-types/cli/lib/expiration.test.d.ts +2 -0
  427. package/dist/esm-types/cli/lib/expiration.test.d.ts.map +1 -0
  428. package/dist/esm-types/cli/lib/generatedFunctionLogsApi.d.ts +16 -1
  429. package/dist/esm-types/cli/lib/generatedFunctionLogsApi.d.ts.map +1 -1
  430. package/dist/esm-types/cli/lib/init.d.ts.map +1 -1
  431. package/dist/esm-types/cli/lib/localDeployment/anonymous.d.ts.map +1 -1
  432. package/dist/esm-types/cli/lib/localDeployment/localDeployment.d.ts.map +1 -1
  433. package/dist/esm-types/cli/lib/localDeployment/run.d.ts +15 -0
  434. package/dist/esm-types/cli/lib/localDeployment/run.d.ts.map +1 -1
  435. package/dist/esm-types/cli/lib/localDeployment/upgrade.d.ts.map +1 -1
  436. package/dist/esm-types/cli/lib/localDeployment/utils.d.ts +7 -0
  437. package/dist/esm-types/cli/lib/localDeployment/utils.d.ts.map +1 -1
  438. package/dist/esm-types/cli/lib/mcp/requestContext.d.ts +3 -3
  439. package/dist/esm-types/cli/lib/mcp/tools/insights.d.ts +2 -2
  440. package/dist/esm-types/cli/lib/updates.d.ts +4 -3
  441. package/dist/esm-types/cli/lib/updates.d.ts.map +1 -1
  442. package/dist/esm-types/cli/lib/usage.d.ts.map +1 -1
  443. package/dist/esm-types/cli/lib/utils/prompts.d.ts +1 -0
  444. package/dist/esm-types/cli/lib/utils/prompts.d.ts.map +1 -1
  445. package/dist/esm-types/cli/lib/utils/utils.d.ts +16 -2
  446. package/dist/esm-types/cli/lib/utils/utils.d.ts.map +1 -1
  447. package/dist/esm-types/cli/lib/versionApi.d.ts +7 -1
  448. package/dist/esm-types/cli/lib/versionApi.d.ts.map +1 -1
  449. package/dist/esm-types/cli/lib/workos/workos.d.ts.map +1 -1
  450. package/dist/esm-types/index.d.ts +1 -1
  451. package/dist/esm-types/react/client.d.ts +54 -2
  452. package/dist/esm-types/react/client.d.ts.map +1 -1
  453. package/dist/esm-types/react/index.d.ts +7 -2
  454. package/dist/esm-types/react/index.d.ts.map +1 -1
  455. package/dist/esm-types/react/use_query_object_options.test.d.ts +5 -0
  456. package/dist/esm-types/react/use_query_object_options.test.d.ts.map +1 -0
  457. package/dist/esm-types/react/use_query_result.test.d.ts +5 -0
  458. package/dist/esm-types/react/use_query_result.test.d.ts.map +1 -0
  459. package/dist/esm-types/react-clerk/ConvexProviderWithClerk.d.ts +1 -1
  460. package/dist/esm-types/server/api.d.ts +5 -1
  461. package/dist/esm-types/server/api.d.ts.map +1 -1
  462. package/dist/esm-types/server/components/definition.d.ts +1 -0
  463. package/dist/esm-types/server/components/definition.d.ts.map +1 -1
  464. package/dist/esm-types/server/components/index.d.ts +5 -1
  465. package/dist/esm-types/server/components/index.d.ts.map +1 -1
  466. package/dist/esm-types/server/data_model.d.ts +2 -1
  467. package/dist/esm-types/server/data_model.d.ts.map +1 -1
  468. package/dist/esm-types/server/impl/meta_impl.d.ts +5 -0
  469. package/dist/esm-types/server/impl/meta_impl.d.ts.map +1 -0
  470. package/dist/esm-types/server/impl/registration_impl.d.ts.map +1 -1
  471. package/dist/esm-types/server/index.d.ts +1 -0
  472. package/dist/esm-types/server/index.d.ts.map +1 -1
  473. package/dist/esm-types/server/meta.d.ts +72 -0
  474. package/dist/esm-types/server/meta.d.ts.map +1 -0
  475. package/dist/esm-types/server/registration.d.ts.map +1 -1
  476. package/dist/react.bundle.js +55 -15
  477. package/dist/react.bundle.js.map +3 -3
  478. package/package.json +11 -7
  479. package/schemas/convex.schema.json +22 -3
  480. package/src/browser/index.ts +3 -0
  481. package/src/browser/query_options.test.ts +0 -9
  482. package/src/browser/query_options.ts +36 -15
  483. package/src/browser/sync/authentication_manager.ts +9 -4
  484. package/src/browser/sync/client_node.test.ts +125 -0
  485. package/src/browser/sync/web_socket_manager.ts +1 -7
  486. package/src/cli/aiFiles.ts +56 -33
  487. package/src/cli/codegen_templates/readme.ts +14 -1
  488. package/src/cli/configure.test.ts +138 -0
  489. package/src/cli/configure.ts +62 -55
  490. package/src/cli/deploy.ts +12 -9
  491. package/src/cli/deploymentCreate.test.ts +349 -14
  492. package/src/cli/deploymentCreate.ts +268 -41
  493. package/src/cli/deploymentSelect.test.ts +136 -27
  494. package/src/cli/deploymentSelect.ts +50 -41
  495. package/src/cli/deploymentSelection.test.ts +399 -37
  496. package/src/cli/dev.ts +49 -14
  497. package/src/cli/docs.ts +1 -1
  498. package/src/cli/init.ts +2 -2
  499. package/src/cli/lib/{ai → aiFiles}/MANUAL_TESTING.md +6 -2
  500. package/src/cli/lib/aiFiles/agentsmd.test.ts +133 -0
  501. package/src/cli/lib/aiFiles/agentsmd.ts +81 -0
  502. package/src/cli/lib/aiFiles/claudemd.test.ts +92 -0
  503. package/src/cli/lib/aiFiles/claudemd.ts +81 -0
  504. package/src/cli/lib/aiFiles/cursorrules.ts +25 -0
  505. package/src/cli/lib/aiFiles/guidelinesmd.test.ts +50 -0
  506. package/src/cli/lib/aiFiles/guidelinesmd.ts +49 -0
  507. package/src/cli/lib/{ai → aiFiles}/index.test.ts +343 -516
  508. package/src/cli/lib/aiFiles/index.ts +297 -0
  509. package/src/cli/lib/{ai → aiFiles}/integration.test.ts +195 -158
  510. package/src/cli/lib/{ai → aiFiles}/paths.ts +5 -0
  511. package/src/cli/lib/{ai → aiFiles}/prompt.test.ts +79 -31
  512. package/src/cli/lib/aiFiles/skills.ts +243 -0
  513. package/src/cli/lib/aiFiles/state.test.ts +280 -0
  514. package/src/cli/lib/aiFiles/state.ts +82 -0
  515. package/src/cli/lib/aiFiles/status.ts +246 -0
  516. package/src/cli/lib/aiFiles/utils.test.ts +50 -0
  517. package/src/cli/lib/aiFiles/utils.ts +191 -0
  518. package/src/cli/lib/api.ts +88 -7
  519. package/src/cli/lib/command.ts +18 -8
  520. package/src/cli/lib/config.test.ts +185 -8
  521. package/src/cli/lib/config.ts +73 -12
  522. package/src/cli/lib/deploy2.ts +14 -27
  523. package/src/cli/lib/deployApi/componentDefinition.ts +4 -1
  524. package/src/cli/lib/deploymentSelection.ts +59 -6
  525. package/src/cli/lib/deploymentSelector.test.ts +6 -0
  526. package/src/cli/lib/deploymentSelector.ts +2 -0
  527. package/src/cli/lib/dev.ts +202 -153
  528. package/src/cli/lib/env.ts +0 -15
  529. package/src/cli/lib/expiration.test.ts +159 -0
  530. package/src/cli/lib/expiration.ts +124 -0
  531. package/src/cli/lib/generatedFunctionLogsApi.ts +16 -1
  532. package/src/cli/lib/init.ts +6 -2
  533. package/src/cli/lib/insights.ts +1 -1
  534. package/src/cli/lib/localDeployment/anonymous.ts +19 -9
  535. package/src/cli/lib/localDeployment/localDeployment.ts +9 -11
  536. package/src/cli/lib/localDeployment/run.ts +1 -1
  537. package/src/cli/lib/localDeployment/upgrade.ts +12 -10
  538. package/src/cli/lib/localDeployment/utils.ts +12 -0
  539. package/src/cli/lib/mcp/tools/status.ts +1 -1
  540. package/src/cli/lib/updates.test.ts +97 -60
  541. package/src/cli/lib/updates.ts +17 -15
  542. package/src/cli/lib/usage.ts +3 -1
  543. package/src/cli/lib/utils/prompts.ts +2 -0
  544. package/src/cli/lib/utils/utils.test.ts +6 -6
  545. package/src/cli/lib/utils/utils.ts +66 -27
  546. package/src/cli/lib/versionApi.test.ts +13 -10
  547. package/src/cli/lib/versionApi.ts +13 -5
  548. package/src/cli/lib/workos/workos.ts +4 -5
  549. package/src/index.ts +1 -1
  550. package/src/react/client.test.tsx +65 -0
  551. package/src/react/client.ts +129 -13
  552. package/src/react/index.ts +9 -1
  553. package/src/react/use_query_object_options.test.ts +50 -0
  554. package/src/react/use_query_result.test.ts +41 -0
  555. package/src/react-clerk/ConvexProviderWithClerk.test.tsx +1 -1
  556. package/src/react-clerk/ConvexProviderWithClerk.tsx +1 -1
  557. package/src/server/api.ts +5 -1
  558. package/src/server/components/definition.ts +3 -0
  559. package/src/server/components/index.ts +62 -5
  560. package/src/server/data_model.ts +2 -1
  561. package/src/server/impl/meta_impl.ts +74 -0
  562. package/src/server/impl/registration_impl.ts +21 -9
  563. package/src/server/index.ts +8 -0
  564. package/src/server/meta.ts +76 -0
  565. package/src/server/registration.ts +10 -0
  566. package/src/server/schema.test.ts +78 -1
  567. package/dist/cjs/cli/lib/ai/config.js +0 -144
  568. package/dist/cjs/cli/lib/ai/config.js.map +0 -7
  569. package/dist/cjs/cli/lib/ai/index.js +0 -704
  570. package/dist/cjs/cli/lib/ai/index.js.map +0 -7
  571. package/dist/cjs/cli/lib/ai/paths.js.map +0 -7
  572. package/dist/cjs-types/cli/lib/ai/config.d.ts +0 -50
  573. package/dist/cjs-types/cli/lib/ai/config.d.ts.map +0 -1
  574. package/dist/cjs-types/cli/lib/ai/config.test.d.ts +0 -2
  575. package/dist/cjs-types/cli/lib/ai/config.test.d.ts.map +0 -1
  576. package/dist/cjs-types/cli/lib/ai/index.d.ts +0 -56
  577. package/dist/cjs-types/cli/lib/ai/index.d.ts.map +0 -1
  578. package/dist/cjs-types/cli/lib/ai/index.test.d.ts.map +0 -1
  579. package/dist/cjs-types/cli/lib/ai/integration.test.d.ts.map +0 -1
  580. package/dist/cjs-types/cli/lib/ai/paths.d.ts.map +0 -1
  581. package/dist/cjs-types/cli/lib/ai/prompt.test.d.ts.map +0 -1
  582. package/dist/esm/cli/lib/ai/config.js +0 -109
  583. package/dist/esm/cli/lib/ai/config.js.map +0 -7
  584. package/dist/esm/cli/lib/ai/index.js +0 -684
  585. package/dist/esm/cli/lib/ai/index.js.map +0 -7
  586. package/dist/esm/cli/lib/ai/paths.js.map +0 -7
  587. package/dist/esm-types/cli/lib/ai/config.d.ts +0 -50
  588. package/dist/esm-types/cli/lib/ai/config.d.ts.map +0 -1
  589. package/dist/esm-types/cli/lib/ai/config.test.d.ts +0 -2
  590. package/dist/esm-types/cli/lib/ai/config.test.d.ts.map +0 -1
  591. package/dist/esm-types/cli/lib/ai/index.d.ts +0 -56
  592. package/dist/esm-types/cli/lib/ai/index.d.ts.map +0 -1
  593. package/dist/esm-types/cli/lib/ai/index.test.d.ts.map +0 -1
  594. package/dist/esm-types/cli/lib/ai/integration.test.d.ts.map +0 -1
  595. package/dist/esm-types/cli/lib/ai/paths.d.ts.map +0 -1
  596. package/dist/esm-types/cli/lib/ai/prompt.test.d.ts.map +0 -1
  597. package/src/cli/lib/ai/config.test.ts +0 -338
  598. package/src/cli/lib/ai/config.ts +0 -159
  599. package/src/cli/lib/ai/index.ts +0 -1006
  600. /package/dist/cjs/cli/lib/{ai → aiFiles}/paths.js +0 -0
  601. /package/dist/cjs-types/cli/lib/{ai → aiFiles}/index.test.d.ts +0 -0
  602. /package/dist/cjs-types/cli/lib/{ai → aiFiles}/integration.test.d.ts +0 -0
  603. /package/dist/cjs-types/cli/lib/{ai → aiFiles}/prompt.test.d.ts +0 -0
  604. /package/dist/esm/cli/lib/{ai → aiFiles}/paths.js +0 -0
  605. /package/dist/esm-types/cli/lib/{ai → aiFiles}/index.test.d.ts +0 -0
  606. /package/dist/esm-types/cli/lib/{ai → aiFiles}/integration.test.d.ts +0 -0
  607. /package/dist/esm-types/cli/lib/{ai → aiFiles}/prompt.test.d.ts +0 -0
@@ -1,8 +1,8 @@
1
1
  import { describe, it, expect, beforeEach, afterEach, vi } from "vitest";
2
- import { checkVersion } from "./updates.js";
2
+ import { checkVersionAndAiFilesStaleness } from "./updates.js";
3
3
  import { getVersion } from "./versionApi.js";
4
4
  import { logMessage } from "../../bundler/log.js";
5
- import { checkAiFilesStaleness } from "./ai/index.js";
5
+ import { checkAiFilesStalenessAndLog } from "./aiFiles/index.js";
6
6
  import { readProjectConfig } from "./config.js";
7
7
  import type { Context } from "../../bundler/context.js";
8
8
 
@@ -10,8 +10,13 @@ vi.mock("./versionApi.js", () => ({
10
10
  getVersion: vi.fn(),
11
11
  }));
12
12
 
13
- vi.mock("./ai/index.js", () => ({
14
- checkAiFilesStaleness: vi.fn(),
13
+ vi.mock("./aiFiles/index.js", () => ({
14
+ checkAiFilesStalenessAndLog: vi.fn(),
15
+ isAiFilesDisabled: vi.fn((aiFilesConfig) =>
16
+ aiFilesConfig?.enabled !== undefined
17
+ ? aiFilesConfig.enabled === false
18
+ : aiFilesConfig?.disableStalenessMessage === true,
19
+ ),
15
20
  }));
16
21
 
17
22
  vi.mock("../../bundler/log.js", () => ({
@@ -24,15 +29,26 @@ vi.mock("./config.js", () => ({
24
29
 
25
30
  const mockGetVersion = vi.mocked(getVersion);
26
31
  const mockLogMessage = vi.mocked(logMessage);
27
- const mockCheckAiFilesStaleness = vi.mocked(checkAiFilesStaleness);
32
+ const mockCheckAiFilesStalenessAndLog = vi.mocked(checkAiFilesStalenessAndLog);
28
33
  const mockReadProjectConfig = vi.mocked(readProjectConfig);
29
34
 
30
35
  const fakeCtx = {} as Context;
31
36
 
32
- describe("updates", () => {
37
+ const okVersion = (overrides?: object) => ({
38
+ kind: "ok" as const,
39
+ data: {
40
+ message: null,
41
+ guidelinesHash: "abc-guidelines-hash",
42
+ agentSkillsSha: "abc-skills-sha",
43
+ disableSkillsCli: false,
44
+ ...overrides,
45
+ },
46
+ });
47
+
48
+ describe("checkVersionAndAiFilesStaleness", () => {
33
49
  beforeEach(() => {
34
50
  vi.clearAllMocks();
35
- mockCheckAiFilesStaleness.mockResolvedValue(undefined);
51
+ mockCheckAiFilesStalenessAndLog.mockResolvedValue(undefined);
36
52
  mockReadProjectConfig.mockResolvedValue({
37
53
  projectConfig: {
38
54
  functions: "convex",
@@ -48,72 +64,93 @@ describe("updates", () => {
48
64
  vi.resetAllMocks();
49
65
  });
50
66
 
51
- describe("checkVersion", () => {
52
- it("logs message and passes both hashes to staleness check", async () => {
53
- const sha = "abc123def456abc123def456abc123def456abc1";
54
- mockGetVersion.mockResolvedValue({
55
- message: "New version available: 1.2.3",
56
- guidelinesHash:
57
- "02e43fc1ff0ee48db8da468f5c7525877d8056fcd56c77d78a166ac447efb91c",
58
- agentSkillsSha: sha,
59
- disableSkillsCli: false,
60
- });
67
+ it("logs version message when server provides one", async () => {
68
+ mockGetVersion.mockResolvedValue(
69
+ okVersion({ message: "New version available: 1.2.3" }),
70
+ );
61
71
 
62
- await checkVersion(fakeCtx);
72
+ await checkVersionAndAiFilesStaleness(fakeCtx);
63
73
 
64
- expect(mockGetVersion).toHaveBeenCalled();
65
- expect(mockLogMessage).toHaveBeenCalledWith(
66
- "New version available: 1.2.3",
67
- );
68
- expect(mockCheckAiFilesStaleness).toHaveBeenCalledWith(
69
- "02e43fc1ff0ee48db8da468f5c7525877d8056fcd56c77d78a166ac447efb91c",
70
- sha,
71
- expect.any(String),
72
- expect.any(String),
73
- );
74
- });
74
+ expect(mockLogMessage).toHaveBeenCalledWith("New version available: 1.2.3");
75
+ });
76
+
77
+ it("does not log when version has no message", async () => {
78
+ mockGetVersion.mockResolvedValue(okVersion());
75
79
 
76
- it("does not log when version has no message", async () => {
77
- mockGetVersion.mockResolvedValue({
78
- message: null,
80
+ await checkVersionAndAiFilesStaleness(fakeCtx);
81
+
82
+ expect(mockLogMessage).not.toHaveBeenCalled();
83
+ });
84
+
85
+ it("does nothing when getVersion returns error", async () => {
86
+ mockGetVersion.mockResolvedValue({ kind: "error" });
87
+
88
+ await checkVersionAndAiFilesStaleness(fakeCtx);
89
+
90
+ expect(mockLogMessage).not.toHaveBeenCalled();
91
+ expect(mockCheckAiFilesStalenessAndLog).not.toHaveBeenCalled();
92
+ });
93
+
94
+ it("passes hashes and project paths to staleness check", async () => {
95
+ mockGetVersion.mockResolvedValue(
96
+ okVersion({
79
97
  guidelinesHash:
80
98
  "02e43fc1ff0ee48db8da468f5c7525877d8056fcd56c77d78a166ac447efb91c",
81
- agentSkillsSha: null,
82
- disableSkillsCli: false,
83
- });
99
+ agentSkillsSha: "abc123def456abc123def456abc123def456abc1",
100
+ }),
101
+ );
84
102
 
85
- await checkVersion(fakeCtx);
103
+ await checkVersionAndAiFilesStaleness(fakeCtx);
86
104
 
87
- expect(mockGetVersion).toHaveBeenCalled();
88
- expect(mockLogMessage).not.toHaveBeenCalled();
105
+ expect(mockCheckAiFilesStalenessAndLog).toHaveBeenCalledWith({
106
+ canonicalGuidelinesHash:
107
+ "02e43fc1ff0ee48db8da468f5c7525877d8056fcd56c77d78a166ac447efb91c",
108
+ canonicalAgentSkillsSha: "abc123def456abc123def456abc123def456abc1",
109
+ projectDir: expect.any(String),
110
+ convexDir: expect.any(String),
89
111
  });
112
+ });
90
113
 
91
- it("doesn't do anything when getVersion returns null", async () => {
92
- mockGetVersion.mockResolvedValue(null);
114
+ it("passes null hashes when version has none", async () => {
115
+ mockGetVersion.mockResolvedValue(
116
+ okVersion({ guidelinesHash: null, agentSkillsSha: null }),
117
+ );
93
118
 
94
- await checkVersion(fakeCtx);
119
+ await checkVersionAndAiFilesStaleness(fakeCtx);
95
120
 
96
- expect(mockGetVersion).toHaveBeenCalled();
97
- expect(mockLogMessage).not.toHaveBeenCalled();
98
- expect(mockCheckAiFilesStaleness).not.toHaveBeenCalled();
121
+ expect(mockCheckAiFilesStalenessAndLog).toHaveBeenCalledWith({
122
+ canonicalGuidelinesHash: null,
123
+ canonicalAgentSkillsSha: null,
124
+ projectDir: expect.any(String),
125
+ convexDir: expect.any(String),
99
126
  });
127
+ });
100
128
 
101
- it("passes null hashes to staleness check when version has none", async () => {
102
- mockGetVersion.mockResolvedValue({
103
- message: "New version available: 1.2.3",
104
- guidelinesHash: null,
105
- agentSkillsSha: null,
106
- disableSkillsCli: false,
107
- });
108
-
109
- await checkVersion(fakeCtx);
110
-
111
- expect(mockCheckAiFilesStaleness).toHaveBeenCalledWith(
112
- null,
113
- null,
114
- expect.any(String),
115
- expect.any(String),
116
- );
129
+ it("skips staleness check when aiFiles.disableStalenessMessage is true", async () => {
130
+ mockGetVersion.mockResolvedValue(okVersion());
131
+ mockReadProjectConfig.mockResolvedValue({
132
+ projectConfig: {
133
+ functions: "convex",
134
+ node: { externalPackages: [] },
135
+ generateCommonJSApi: false,
136
+ codegen: { staticApi: true, staticDataModel: true },
137
+ aiFiles: { disableStalenessMessage: true },
138
+ },
139
+ configPath: "convex.json",
117
140
  });
141
+
142
+ await checkVersionAndAiFilesStaleness(fakeCtx);
143
+
144
+ expect(mockCheckAiFilesStalenessAndLog).not.toHaveBeenCalled();
145
+ });
146
+
147
+ it("silently skips staleness check when project config cannot be resolved", async () => {
148
+ mockGetVersion.mockResolvedValue(okVersion());
149
+ mockReadProjectConfig.mockRejectedValue(new Error("no convex.json"));
150
+
151
+ await expect(
152
+ checkVersionAndAiFilesStaleness(fakeCtx),
153
+ ).resolves.toBeUndefined();
154
+ expect(mockCheckAiFilesStalenessAndLog).not.toHaveBeenCalled();
118
155
  });
119
156
  });
@@ -3,34 +3,36 @@ import { logMessage } from "../../bundler/log.js";
3
3
  import type { Context } from "../../bundler/context.js";
4
4
  import { readProjectConfig } from "./config.js";
5
5
  import { functionsDir } from "./utils/utils.js";
6
- import { checkAiFilesStaleness } from "./ai/index.js";
6
+ import {
7
+ checkAiFilesStalenessAndLog,
8
+ isAiFilesDisabled,
9
+ } from "./aiFiles/index.js";
7
10
  import { getVersion } from "./versionApi.js";
8
11
 
9
12
  /**
10
- * Check the version of the `convex` NPM package and nag if Convex AI files
11
- * are out of date.
13
+ * Fetch the latest version data, log any server nag message, and warn if
14
+ * Convex AI files are out of date. Both checks share the one getVersion()
15
+ * round-trip.
12
16
  */
13
- export async function checkVersion(ctx: Context) {
17
+ export async function checkVersionAndAiFilesStaleness(ctx: Context) {
14
18
  const version = await getVersion();
19
+ if (version.kind === "error") return;
15
20
 
16
- if (version === null) {
17
- return;
18
- }
19
-
20
- if (version.message) {
21
- logMessage(version.message);
22
- }
21
+ if (version.data.message) logMessage(version.data.message);
23
22
 
24
23
  try {
25
24
  const { configPath, projectConfig } = await readProjectConfig(ctx);
25
+ const aiFilesConfig = projectConfig.aiFiles;
26
+ if (isAiFilesDisabled(aiFilesConfig)) return;
26
27
  const convexDir = path.resolve(functionsDir(configPath, projectConfig));
27
28
  const projectDir = path.resolve(path.dirname(configPath));
28
- await checkAiFilesStaleness(
29
- version.guidelinesHash,
30
- version.agentSkillsSha,
29
+ await checkAiFilesStalenessAndLog({
30
+ canonicalGuidelinesHash: version.data.guidelinesHash,
31
+ canonicalAgentSkillsSha: version.data.agentSkillsSha,
32
+ aiFilesConfig,
31
33
  projectDir,
32
34
  convexDir,
33
- );
35
+ });
34
36
  } catch {
35
37
  // Non-fatal: skip staleness check if project config can't be resolved.
36
38
  }
@@ -3,6 +3,7 @@ import { Context } from "../../bundler/context.js";
3
3
  import { logWarning } from "../../bundler/log.js";
4
4
  import { teamDashboardUrl } from "./dashboard.js";
5
5
  import { fetchTeamAndProject } from "./api.js";
6
+ import { isAnonymousDeployment } from "./deployment.js";
6
7
  import { bigBrainAPI } from "./utils/utils.js";
7
8
 
8
9
  async function warn(
@@ -53,7 +54,8 @@ export async function usageStateWarning(
53
54
  auth === null ||
54
55
  auth.kind === "projectKey" ||
55
56
  auth.kind === "deploymentKey" ||
56
- process.env.CONVEX_AGENT_MODE === "anonymous"
57
+ process.env.CONVEX_AGENT_MODE === "anonymous" ||
58
+ isAnonymousDeployment(targetDeployment)
57
59
  ) {
58
60
  return;
59
61
  }
@@ -30,12 +30,14 @@ export const promptString = async (
30
30
  options: {
31
31
  message: string;
32
32
  default?: string;
33
+ validate?: (value: string) => boolean | string | Promise<string | boolean>;
33
34
  },
34
35
  ): Promise<string> => {
35
36
  if (process.stdin.isTTY) {
36
37
  return input({
37
38
  message: options.message,
38
39
  ...(options.default !== undefined ? { default: options.default } : {}),
40
+ ...(options.validate !== undefined ? { validate: options.validate } : {}),
39
41
  }).catch(handlePromptError(ctx));
40
42
  } else {
41
43
  return ctx.crash({
@@ -65,7 +65,7 @@ describe("bigBrainFetch", () => {
65
65
  const mockFetch = stubFetch();
66
66
  const ctx = makeContext(null);
67
67
 
68
- const fetch = await bigBrainFetch(ctx);
68
+ const fetch = bigBrainFetch(ctx);
69
69
  await fetch("https://api.convex.dev/api/test", { method: "GET" });
70
70
 
71
71
  expect(mockFetch).toHaveBeenCalledOnce();
@@ -82,7 +82,7 @@ describe("bigBrainFetch", () => {
82
82
  accessToken: "test-token",
83
83
  });
84
84
 
85
- const fetch = await bigBrainFetch(ctx);
85
+ const fetch = bigBrainFetch(ctx);
86
86
  await fetch("https://api.convex.dev/api/test", { method: "GET" });
87
87
 
88
88
  expect(mockFetch).toHaveBeenCalledOnce();
@@ -99,7 +99,7 @@ describe("bigBrainFetch", () => {
99
99
  accessToken: "original-token",
100
100
  });
101
101
 
102
- const fetch = await bigBrainFetch(ctx);
102
+ const fetch = bigBrainFetch(ctx);
103
103
  await fetch("https://api.convex.dev/api/test", {
104
104
  method: "POST",
105
105
  headers: {
@@ -124,7 +124,7 @@ describe("bigBrainFetch", () => {
124
124
  headers: { "X-Custom-Header": "custom-value" },
125
125
  });
126
126
 
127
- const fetch = await bigBrainFetch(ctx);
127
+ const fetch = bigBrainFetch(ctx);
128
128
  await fetch(request, undefined);
129
129
 
130
130
  expect(mockFetch).toHaveBeenCalledOnce();
@@ -143,7 +143,7 @@ describe("bigBrainFetch", () => {
143
143
  headers: { "X-Custom-Header": "from-request" },
144
144
  });
145
145
 
146
- const fetch = await bigBrainFetch(ctx);
146
+ const fetch = bigBrainFetch(ctx);
147
147
  await fetch(request, {
148
148
  headers: { "X-Custom-Header": "from-options" },
149
149
  });
@@ -160,7 +160,7 @@ describe("bigBrainFetch", () => {
160
160
  method: "POST",
161
161
  });
162
162
 
163
- const fetch = await bigBrainFetch(ctx);
163
+ const fetch = bigBrainFetch(ctx);
164
164
  await fetch(request);
165
165
 
166
166
  expect(mockFetch).toHaveBeenCalledOnce();
@@ -1,3 +1,4 @@
1
+ import { paths as PlatformDeploymentPaths } from "@convex-dev/platform/deploymentApi";
1
2
  import { paths as PlatformManagementPaths } from "@convex-dev/platform/managementApi";
2
3
  import { chalkStderr } from "chalk";
3
4
  import os from "os";
@@ -692,7 +693,7 @@ export function cacheDir() {
692
693
  *
693
694
  * This fetch() also has retries and throws if the response is not ok.
694
695
  */
695
- export async function bigBrainFetch(ctx: Context): Promise<typeof fetch> {
696
+ export function bigBrainFetch(ctx: Context): typeof fetch {
696
697
  const authHeader = ctx.bigBrainAuth()?.header;
697
698
  const bigBrainHeaders: Record<string, string> = authHeader
698
699
  ? {
@@ -758,26 +759,25 @@ export async function bigBrainAPI<T = any>({
758
759
  *
759
760
  * Pass { throw: true } to throw ThrowingFetchErrors instead of exiting the process.
760
761
  */
761
- function typedBigBrainClientFactory<T>(baseUrl: string) {
762
+ function typedApiClientFactory<T>(
763
+ baseUrl: string,
764
+ fetchBuilder: (ctx: Context) => typeof fetch,
765
+ ) {
762
766
  return (ctx: Context, options: { throw?: boolean } = {}) => {
763
767
  type Paths = T extends CliManagementPaths
764
768
  ? CliManagementPaths
765
769
  : T extends PlatformManagementPaths
766
770
  ? PlatformManagementPaths
767
- : never;
768
- const bigBrainClient = createClient<Paths>({
771
+ : T extends PlatformDeploymentPaths
772
+ ? PlatformDeploymentPaths
773
+ : never;
774
+ const client = createClient<Paths>({
769
775
  baseUrl,
770
- fetch: async (
771
- resource: Request,
772
- options?: RequestInit,
773
- ): Promise<Response> => {
774
- const fetch = await bigBrainFetch(ctx);
775
- return fetch(resource, options);
776
- },
776
+ fetch: fetchBuilder(ctx),
777
777
  });
778
778
 
779
779
  // Wrap the client with error handling - go back to proxy since middleware doesn't catch parsing errors
780
- return new Proxy(bigBrainClient, {
780
+ return new Proxy(client, {
781
781
  get(target, prop) {
782
782
  const originalMethod = target[prop as keyof typeof target];
783
783
 
@@ -810,13 +810,31 @@ function typedBigBrainClientFactory<T>(baseUrl: string) {
810
810
  };
811
811
  }
812
812
 
813
- export const typedBigBrainClient =
814
- typedBigBrainClientFactory<CliManagementPaths>(BIG_BRAIN_URL);
813
+ export const typedBigBrainClient = typedApiClientFactory<CliManagementPaths>(
814
+ BIG_BRAIN_URL,
815
+ bigBrainFetch,
816
+ );
815
817
  export const typedPlatformClient =
816
- typedBigBrainClientFactory<PlatformManagementPaths>(
818
+ typedApiClientFactory<PlatformManagementPaths>(
817
819
  PLATFORM_MANAGEMENT_API_URL,
820
+ bigBrainFetch,
818
821
  );
819
822
 
823
+ export function typedDeploymentClient(
824
+ ctx: Context,
825
+ args: { deploymentUrl: string; adminKey: string },
826
+ options: { throw?: boolean } = {},
827
+ ) {
828
+ return typedApiClientFactory<PlatformDeploymentPaths>(
829
+ `${args.deploymentUrl}/api/v1`,
830
+ (ctx) =>
831
+ deploymentFetch(ctx, {
832
+ deploymentUrl: args.deploymentUrl,
833
+ adminKey: args.adminKey,
834
+ }),
835
+ )(ctx, options);
836
+ }
837
+
820
838
  export async function bigBrainAPIMaybeThrows({
821
839
  ctx,
822
840
  method,
@@ -828,7 +846,7 @@ export async function bigBrainAPIMaybeThrows({
828
846
  path: string;
829
847
  data?: any;
830
848
  }): Promise<any> {
831
- const fetch = await bigBrainFetch(ctx);
849
+ const fetch = bigBrainFetch(ctx);
832
850
  const dataString =
833
851
  data === undefined
834
852
  ? method === "POST"
@@ -894,19 +912,40 @@ export function waitUntilCalled(): [Promise<unknown>, () => void] {
894
912
  return [waitPromise, () => onCalled(null)];
895
913
  }
896
914
 
897
- // We can eventually switch to something like `filesize` for i18n and
898
- // more robust formatting, but let's keep our CLI bundle small for now.
915
+ const BYTE_UNITS: [number, string][] = [
916
+ [1 << 30, "GiB"],
917
+ [1_000_000_000, "GB"],
918
+ [1 << 20, "MiB"],
919
+ [1_000_000, "MB"],
920
+ [1 << 10, "KiB"],
921
+ [1_000, "KB"],
922
+ ];
923
+
924
+ /**
925
+ * Format a byte count into a human-friendly string.
926
+ *
927
+ * Picks the unit (binary or decimal) that divides most cleanly.
928
+ * Shows one decimal place only when it divides exactly (e.g. "4.1 MiB").
929
+ * Falls back to raw bytes when no unit divides cleanly.
930
+ */
899
931
  export function formatSize(n: number): string {
900
- if (n < 1024) {
901
- return `${n} B`;
932
+ if (n === 0) {
933
+ return "0 bytes";
902
934
  }
903
- if (n < 1024 * 1024) {
904
- return `${(n / 1024).toFixed(1)} KB`;
905
- }
906
- if (n < 1024 * 1024 * 1024) {
907
- return `${(n / 1024 / 1024).toFixed(1)} MB`;
935
+ for (const [unitSize, unitName] of BYTE_UNITS) {
936
+ if (n < unitSize) {
937
+ continue;
938
+ }
939
+ if (n % unitSize === 0) {
940
+ return `${n / unitSize} ${unitName}`;
941
+ }
942
+ if ((n * 10) % unitSize === 0) {
943
+ const whole = Math.floor(n / unitSize);
944
+ const frac = Math.floor((n * 10) / unitSize) % 10;
945
+ return `${whole}.${frac} ${unitName}`;
946
+ }
908
947
  }
909
- return `${(n / 1024 / 1024 / 1024).toFixed(2)} GB`;
948
+ return `${n} bytes`;
910
949
  }
911
950
 
912
951
  export function formatDuration(ms: number): string {
@@ -1236,7 +1275,7 @@ export function deploymentFetch(
1236
1275
  adminKey: string;
1237
1276
  onError?: (err: any) => void;
1238
1277
  },
1239
- ): typeof throwingFetch {
1278
+ ): typeof fetch {
1240
1279
  const { deploymentUrl, adminKey, onError } = options;
1241
1280
  const onErrorWithAttempt = (err: any, attempt: number) => {
1242
1281
  onError?.(err);
@@ -40,10 +40,13 @@ describe("versionApi", () => {
40
40
  const result = await getVersion();
41
41
 
42
42
  expect(result).toEqual({
43
- message: "New version available",
44
- guidelinesHash: null,
45
- agentSkillsSha: sha,
46
- disableSkillsCli: false,
43
+ kind: "ok",
44
+ data: {
45
+ message: "New version available",
46
+ guidelinesHash: null,
47
+ agentSkillsSha: sha,
48
+ disableSkillsCli: false,
49
+ },
47
50
  });
48
51
  expect(mockFetch).toHaveBeenCalledWith(
49
52
  "https://version.convex.dev/v1/version",
@@ -59,15 +62,15 @@ describe("versionApi", () => {
59
62
  );
60
63
  });
61
64
 
62
- it("returns null on network error", async () => {
65
+ it("returns error on network error", async () => {
63
66
  mockFetch.mockRejectedValue(new Error("Network error"));
64
67
 
65
68
  const result = await getVersion();
66
69
 
67
- expect(result).toBeNull();
70
+ expect(result).toEqual({ kind: "error" });
68
71
  });
69
72
 
70
- it("returns null on non-ok response", async () => {
73
+ it("returns error on non-ok response", async () => {
71
74
  const mockResponse = {
72
75
  ok: false,
73
76
  status: 500,
@@ -76,10 +79,10 @@ describe("versionApi", () => {
76
79
 
77
80
  const result = await getVersion();
78
81
 
79
- expect(result).toBeNull();
82
+ expect(result).toEqual({ kind: "error" });
80
83
  });
81
84
 
82
- it("returns null on invalid JSON response", async () => {
85
+ it("returns error on invalid JSON response", async () => {
83
86
  const mockResponse = {
84
87
  ok: true,
85
88
  json: vi.fn().mockResolvedValue("invalid json"),
@@ -88,7 +91,7 @@ describe("versionApi", () => {
88
91
 
89
92
  const result = await getVersion();
90
93
 
91
- expect(result).toBeNull();
94
+ expect(result).toEqual({ kind: "error" });
92
95
  });
93
96
  });
94
97
 
@@ -20,7 +20,11 @@ export type VersionResult = {
20
20
  disableSkillsCli: boolean;
21
21
  };
22
22
 
23
- export async function getVersion(): Promise<VersionResult | null> {
23
+ export type VersionFetchResult =
24
+ | { kind: "ok"; data: VersionResult }
25
+ | { kind: "error" };
26
+
27
+ export async function getVersion(): Promise<VersionFetchResult> {
24
28
  try {
25
29
  const req = await fetch(VERSION_ENDPOINT, {
26
30
  headers: HEADERS,
@@ -30,14 +34,17 @@ export async function getVersion(): Promise<VersionResult | null> {
30
34
  Sentry.captureException(
31
35
  new Error(`Failed to fetch version: status = ${req.status}`),
32
36
  );
33
- return null;
37
+ return { kind: "error" };
34
38
  }
35
39
 
36
40
  const json = await req.json();
37
- return validateVersionResult(json);
41
+ const result = validateVersionResult(json);
42
+
43
+ if (result === null) return { kind: "error" };
44
+ return { kind: "ok", data: result };
38
45
  } catch (error) {
39
46
  Sentry.captureException(error);
40
- return null;
47
+ return { kind: "error" };
41
48
  }
42
49
  }
43
50
 
@@ -71,7 +78,8 @@ export function validateVersionResult(json: any): VersionResult | null {
71
78
  /** Fetch the latest agent skills SHA from version.convex.dev. */
72
79
  export async function fetchAgentSkillsSha(): Promise<string | null> {
73
80
  const versionData = await getVersion();
74
- return versionData?.agentSkillsSha ?? null;
81
+ if (versionData.kind === "error") return null;
82
+ return versionData.data.agentSkillsSha;
75
83
  }
76
84
 
77
85
  export async function downloadGuidelines(): Promise<string | null> {
@@ -618,12 +618,11 @@ export async function tryToCreateAssociatedWorkosTeam(
618
618
  );
619
619
 
620
620
  if (!result.success) {
621
- const dashboardUrl = deploymentDashboardUrlPage(
622
- deploymentName,
623
- `/settings/environment-variables?var=WORKOS_CLIENT_ID`,
624
- );
625
621
  logMessage(
626
- `To provide your own WorkOS environment credentials instead, set environment variables manually on the dashboard:\n ${dashboardUrl}`,
622
+ `To provide your own WorkOS environment credentials instead, set environment variables manually:
623
+
624
+ npx convex env set WORKOS_CLIENT_ID $YOUR_CLIENT_ID_HERE
625
+ npx convex env set WORKOS_API_KEY $YOUR_API_KEY_HERE`,
627
626
  );
628
627
  return "choseNotToAssociatedTeam";
629
628
  }
package/src/index.ts CHANGED
@@ -1 +1 @@
1
- export const version = "1.34.0";
1
+ export const version = "1.35.0";