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.
- package/CHANGELOG.md +98 -43
- package/dist/browser.bundle.js +13 -10
- package/dist/browser.bundle.js.map +3 -3
- package/dist/cjs/browser/index-node.js +3 -1
- package/dist/cjs/browser/index.js +3 -1
- package/dist/cjs/browser/index.js.map +2 -2
- package/dist/cjs/browser/query_options.js.map +2 -2
- package/dist/cjs/browser/sync/authentication_manager.js +4 -1
- package/dist/cjs/browser/sync/authentication_manager.js.map +2 -2
- package/dist/cjs/browser/sync/web_socket_manager.js +1 -7
- package/dist/cjs/browser/sync/web_socket_manager.js.map +2 -2
- package/dist/cjs/cli/aiFiles.js +39 -20
- package/dist/cjs/cli/aiFiles.js.map +3 -3
- package/dist/cjs/cli/codegen_templates/readme.js +14 -1
- package/dist/cjs/cli/codegen_templates/readme.js.map +2 -2
- package/dist/cjs/cli/configure.js +34 -32
- package/dist/cjs/cli/configure.js.map +2 -2
- package/dist/cjs/cli/deploy.js +7 -8
- package/dist/cjs/cli/deploy.js.map +2 -2
- package/dist/cjs/cli/deploymentCreate.js +225 -40
- package/dist/cjs/cli/deploymentCreate.js.map +3 -3
- package/dist/cjs/cli/deploymentSelect.js +14 -13
- package/dist/cjs/cli/deploymentSelect.js.map +2 -2
- package/dist/cjs/cli/dev.js +30 -11
- package/dist/cjs/cli/dev.js.map +2 -2
- package/dist/cjs/cli/docs.js +1 -1
- package/dist/cjs/cli/docs.js.map +2 -2
- package/dist/cjs/cli/init.js +1 -1
- package/dist/cjs/cli/init.js.map +2 -2
- package/dist/cjs/cli/lib/aiFiles/agentsmd.js +73 -0
- package/dist/cjs/cli/lib/aiFiles/agentsmd.js.map +7 -0
- package/dist/cjs/cli/lib/aiFiles/claudemd.js +73 -0
- package/dist/cjs/cli/lib/aiFiles/claudemd.js.map +7 -0
- package/dist/cjs/cli/lib/aiFiles/cursorrules.js +48 -0
- package/dist/cjs/cli/lib/aiFiles/cursorrules.js.map +7 -0
- package/dist/cjs/cli/lib/aiFiles/guidelinesmd.js +58 -0
- package/dist/cjs/cli/lib/aiFiles/guidelinesmd.js.map +7 -0
- package/dist/cjs/cli/lib/aiFiles/index.js +215 -0
- package/dist/cjs/cli/lib/aiFiles/index.js.map +7 -0
- package/dist/cjs/cli/lib/aiFiles/paths.js.map +7 -0
- package/dist/cjs/cli/lib/aiFiles/skills.js +196 -0
- package/dist/cjs/cli/lib/aiFiles/skills.js.map +7 -0
- package/dist/cjs/cli/lib/aiFiles/state.js +96 -0
- package/dist/cjs/cli/lib/aiFiles/state.js.map +7 -0
- package/dist/cjs/cli/lib/aiFiles/status.js +198 -0
- package/dist/cjs/cli/lib/aiFiles/status.js.map +7 -0
- package/dist/cjs/cli/lib/aiFiles/utils.js +128 -0
- package/dist/cjs/cli/lib/aiFiles/utils.js.map +7 -0
- package/dist/cjs/cli/lib/api.js +70 -7
- package/dist/cjs/cli/lib/api.js.map +2 -2
- package/dist/cjs/cli/lib/command.js +10 -6
- package/dist/cjs/cli/lib/command.js.map +2 -2
- package/dist/cjs/cli/lib/config.js +43 -7
- package/dist/cjs/cli/lib/config.js.map +3 -3
- package/dist/cjs/cli/lib/deploy2.js +9 -26
- package/dist/cjs/cli/lib/deploy2.js.map +2 -2
- package/dist/cjs/cli/lib/deployApi/componentDefinition.js +4 -1
- package/dist/cjs/cli/lib/deployApi/componentDefinition.js.map +2 -2
- package/dist/cjs/cli/lib/deploymentSelection.js +45 -2
- package/dist/cjs/cli/lib/deploymentSelection.js.map +2 -2
- package/dist/cjs/cli/lib/deploymentSelector.js +1 -0
- package/dist/cjs/cli/lib/deploymentSelector.js.map +2 -2
- package/dist/cjs/cli/lib/dev.js +162 -117
- package/dist/cjs/cli/lib/dev.js.map +2 -2
- package/dist/cjs/cli/lib/env.js +1 -13
- package/dist/cjs/cli/lib/env.js.map +2 -2
- package/dist/cjs/cli/lib/expiration.js +104 -0
- package/dist/cjs/cli/lib/expiration.js.map +7 -0
- package/dist/cjs/cli/lib/generatedFunctionLogsApi.js.map +1 -1
- package/dist/cjs/cli/lib/init.js +4 -3
- package/dist/cjs/cli/lib/init.js.map +2 -2
- package/dist/cjs/cli/lib/insights.js +1 -1
- package/dist/cjs/cli/lib/insights.js.map +2 -2
- package/dist/cjs/cli/lib/localDeployment/anonymous.js +15 -8
- package/dist/cjs/cli/lib/localDeployment/anonymous.js.map +2 -2
- package/dist/cjs/cli/lib/localDeployment/localDeployment.js +8 -10
- package/dist/cjs/cli/lib/localDeployment/localDeployment.js.map +2 -2
- package/dist/cjs/cli/lib/localDeployment/run.js +1 -0
- package/dist/cjs/cli/lib/localDeployment/run.js.map +2 -2
- package/dist/cjs/cli/lib/localDeployment/upgrade.js +2 -2
- package/dist/cjs/cli/lib/localDeployment/upgrade.js.map +2 -2
- package/dist/cjs/cli/lib/localDeployment/utils.js +9 -0
- package/dist/cjs/cli/lib/localDeployment/utils.js.map +2 -2
- package/dist/cjs/cli/lib/mcp/tools/status.js +1 -1
- package/dist/cjs/cli/lib/mcp/tools/status.js.map +2 -2
- package/dist/cjs/cli/lib/updates.js +12 -13
- package/dist/cjs/cli/lib/updates.js.map +2 -2
- package/dist/cjs/cli/lib/usage.js +2 -1
- package/dist/cjs/cli/lib/usage.js.map +2 -2
- package/dist/cjs/cli/lib/utils/prompts.js +2 -1
- package/dist/cjs/cli/lib/utils/prompts.js.map +2 -2
- package/dist/cjs/cli/lib/utils/utils.js +46 -20
- package/dist/cjs/cli/lib/utils/utils.js.map +3 -3
- package/dist/cjs/cli/lib/versionApi.js +7 -4
- package/dist/cjs/cli/lib/versionApi.js.map +2 -2
- package/dist/cjs/cli/lib/workos/workos.js +4 -6
- package/dist/cjs/cli/lib/workos/workos.js.map +2 -2
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/react/client.js +43 -6
- package/dist/cjs/react/client.js.map +2 -2
- package/dist/cjs/react/index.js +2 -0
- package/dist/cjs/react/index.js.map +2 -2
- package/dist/cjs/react-clerk/ConvexProviderWithClerk.js.map +1 -1
- package/dist/cjs/server/api.js.map +2 -2
- package/dist/cjs/server/components/definition.js.map +1 -1
- package/dist/cjs/server/components/index.js +40 -4
- package/dist/cjs/server/components/index.js.map +2 -2
- package/dist/cjs/server/data_model.js.map +1 -1
- package/dist/cjs/server/impl/meta_impl.js +78 -0
- package/dist/cjs/server/impl/meta_impl.js.map +7 -0
- package/dist/cjs/server/impl/registration_impl.js +16 -11
- package/dist/cjs/server/impl/registration_impl.js.map +2 -2
- package/dist/cjs/server/index.js.map +2 -2
- package/dist/cjs/server/meta.js +17 -0
- package/dist/cjs/server/meta.js.map +7 -0
- package/dist/cjs/server/registration.js.map +1 -1
- package/dist/cjs-types/browser/index.d.ts +1 -0
- package/dist/cjs-types/browser/index.d.ts.map +1 -1
- package/dist/cjs-types/browser/query_options.d.ts +12 -9
- package/dist/cjs-types/browser/query_options.d.ts.map +1 -1
- package/dist/cjs-types/browser/sync/authentication_manager.d.ts.map +1 -1
- package/dist/cjs-types/browser/sync/web_socket_manager.d.ts.map +1 -1
- package/dist/cjs-types/cli/aiFiles.d.ts.map +1 -1
- package/dist/cjs-types/cli/codegen_templates/readme.d.ts.map +1 -1
- package/dist/cjs-types/cli/configure.d.ts.map +1 -1
- package/dist/cjs-types/cli/configure.test.d.ts +2 -0
- package/dist/cjs-types/cli/configure.test.d.ts.map +1 -0
- package/dist/cjs-types/cli/deploy.d.ts.map +1 -1
- package/dist/cjs-types/cli/deploymentCreate.d.ts +1 -0
- package/dist/cjs-types/cli/deploymentCreate.d.ts.map +1 -1
- package/dist/cjs-types/cli/deploymentSelect.d.ts +2 -1
- package/dist/cjs-types/cli/deploymentSelect.d.ts.map +1 -1
- package/dist/cjs-types/cli/dev.d.ts +3 -1
- package/dist/cjs-types/cli/dev.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/aiFiles/agentsmd.d.ts +19 -0
- package/dist/cjs-types/cli/lib/aiFiles/agentsmd.d.ts.map +1 -0
- package/dist/cjs-types/cli/lib/aiFiles/agentsmd.test.d.ts +2 -0
- package/dist/cjs-types/cli/lib/aiFiles/agentsmd.test.d.ts.map +1 -0
- package/dist/cjs-types/cli/lib/aiFiles/claudemd.d.ts +19 -0
- package/dist/cjs-types/cli/lib/aiFiles/claudemd.d.ts.map +1 -0
- package/dist/cjs-types/cli/lib/aiFiles/claudemd.test.d.ts +2 -0
- package/dist/cjs-types/cli/lib/aiFiles/claudemd.test.d.ts.map +1 -0
- package/dist/cjs-types/cli/lib/aiFiles/cursorrules.d.ts +10 -0
- package/dist/cjs-types/cli/lib/aiFiles/cursorrules.d.ts.map +1 -0
- package/dist/cjs-types/cli/lib/aiFiles/guidelinesmd.d.ts +12 -0
- package/dist/cjs-types/cli/lib/aiFiles/guidelinesmd.d.ts.map +1 -0
- package/dist/cjs-types/cli/lib/aiFiles/guidelinesmd.test.d.ts +2 -0
- package/dist/cjs-types/cli/lib/aiFiles/guidelinesmd.test.d.ts.map +1 -0
- package/dist/cjs-types/cli/lib/aiFiles/index.d.ts +42 -0
- package/dist/cjs-types/cli/lib/aiFiles/index.d.ts.map +1 -0
- package/dist/cjs-types/cli/lib/aiFiles/index.test.d.ts.map +1 -0
- package/dist/cjs-types/cli/lib/aiFiles/integration.test.d.ts.map +1 -0
- package/dist/cjs-types/cli/lib/{ai → aiFiles}/paths.d.ts +4 -0
- package/dist/cjs-types/cli/lib/aiFiles/paths.d.ts.map +1 -0
- package/dist/cjs-types/cli/lib/aiFiles/prompt.test.d.ts.map +1 -0
- package/dist/cjs-types/cli/lib/aiFiles/skills.d.ts +20 -0
- package/dist/cjs-types/cli/lib/aiFiles/skills.d.ts.map +1 -0
- package/dist/cjs-types/cli/lib/aiFiles/state.d.ts +38 -0
- package/dist/cjs-types/cli/lib/aiFiles/state.d.ts.map +1 -0
- package/dist/cjs-types/cli/lib/aiFiles/state.test.d.ts +2 -0
- package/dist/cjs-types/cli/lib/aiFiles/state.test.d.ts.map +1 -0
- package/dist/cjs-types/cli/lib/aiFiles/status.d.ts +6 -0
- package/dist/cjs-types/cli/lib/aiFiles/status.d.ts.map +1 -0
- package/dist/cjs-types/cli/lib/aiFiles/utils.d.ts +56 -0
- package/dist/cjs-types/cli/lib/aiFiles/utils.d.ts.map +1 -0
- package/dist/cjs-types/cli/lib/aiFiles/utils.test.d.ts +2 -0
- package/dist/cjs-types/cli/lib/aiFiles/utils.test.d.ts.map +1 -0
- package/dist/cjs-types/cli/lib/api.d.ts +3 -3
- package/dist/cjs-types/cli/lib/api.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/command.d.ts +2 -1
- package/dist/cjs-types/cli/lib/command.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/config.d.ts +18 -6
- package/dist/cjs-types/cli/lib/config.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/deploy2.d.ts +5 -2
- package/dist/cjs-types/cli/lib/deploy2.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/deployApi/componentDefinition.d.ts +27 -12
- package/dist/cjs-types/cli/lib/deployApi/componentDefinition.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/deployApi/definitionConfig.d.ts +24 -24
- package/dist/cjs-types/cli/lib/deployApi/modules.d.ts +14 -14
- package/dist/cjs-types/cli/lib/deployApi/startPush.d.ts +61 -52
- package/dist/cjs-types/cli/lib/deployApi/startPush.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/deploymentSelection.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/deploymentSelector.d.ts +2 -0
- package/dist/cjs-types/cli/lib/deploymentSelector.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/dev.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/env.d.ts +0 -4
- package/dist/cjs-types/cli/lib/env.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/expiration.d.ts +35 -0
- package/dist/cjs-types/cli/lib/expiration.d.ts.map +1 -0
- package/dist/cjs-types/cli/lib/expiration.test.d.ts +2 -0
- package/dist/cjs-types/cli/lib/expiration.test.d.ts.map +1 -0
- package/dist/cjs-types/cli/lib/generatedFunctionLogsApi.d.ts +16 -1
- package/dist/cjs-types/cli/lib/generatedFunctionLogsApi.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/init.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/localDeployment/anonymous.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/localDeployment/localDeployment.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/localDeployment/run.d.ts +15 -0
- package/dist/cjs-types/cli/lib/localDeployment/run.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/localDeployment/upgrade.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/localDeployment/utils.d.ts +7 -0
- package/dist/cjs-types/cli/lib/localDeployment/utils.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/mcp/requestContext.d.ts +3 -3
- package/dist/cjs-types/cli/lib/mcp/tools/insights.d.ts +2 -2
- package/dist/cjs-types/cli/lib/updates.d.ts +4 -3
- package/dist/cjs-types/cli/lib/updates.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/usage.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/utils/prompts.d.ts +1 -0
- package/dist/cjs-types/cli/lib/utils/prompts.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/utils/utils.d.ts +16 -2
- package/dist/cjs-types/cli/lib/utils/utils.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/versionApi.d.ts +7 -1
- package/dist/cjs-types/cli/lib/versionApi.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/workos/workos.d.ts.map +1 -1
- package/dist/cjs-types/index.d.ts +1 -1
- package/dist/cjs-types/react/client.d.ts +54 -2
- package/dist/cjs-types/react/client.d.ts.map +1 -1
- package/dist/cjs-types/react/index.d.ts +7 -2
- package/dist/cjs-types/react/index.d.ts.map +1 -1
- package/dist/cjs-types/react/use_query_object_options.test.d.ts +5 -0
- package/dist/cjs-types/react/use_query_object_options.test.d.ts.map +1 -0
- package/dist/cjs-types/react/use_query_result.test.d.ts +5 -0
- package/dist/cjs-types/react/use_query_result.test.d.ts.map +1 -0
- package/dist/cjs-types/react-clerk/ConvexProviderWithClerk.d.ts +1 -1
- package/dist/cjs-types/server/api.d.ts +5 -1
- package/dist/cjs-types/server/api.d.ts.map +1 -1
- package/dist/cjs-types/server/components/definition.d.ts +1 -0
- package/dist/cjs-types/server/components/definition.d.ts.map +1 -1
- package/dist/cjs-types/server/components/index.d.ts +5 -1
- package/dist/cjs-types/server/components/index.d.ts.map +1 -1
- package/dist/cjs-types/server/data_model.d.ts +2 -1
- package/dist/cjs-types/server/data_model.d.ts.map +1 -1
- package/dist/cjs-types/server/impl/meta_impl.d.ts +5 -0
- package/dist/cjs-types/server/impl/meta_impl.d.ts.map +1 -0
- package/dist/cjs-types/server/impl/registration_impl.d.ts.map +1 -1
- package/dist/cjs-types/server/index.d.ts +1 -0
- package/dist/cjs-types/server/index.d.ts.map +1 -1
- package/dist/cjs-types/server/meta.d.ts +72 -0
- package/dist/cjs-types/server/meta.d.ts.map +1 -0
- package/dist/cjs-types/server/registration.d.ts.map +1 -1
- package/dist/cli.bundle.cjs +2446 -1933
- package/dist/cli.bundle.cjs.map +4 -4
- package/dist/esm/browser/index-node.js +1 -0
- package/dist/esm/browser/index.js +1 -0
- package/dist/esm/browser/index.js.map +2 -2
- package/dist/esm/browser/query_options.js.map +2 -2
- package/dist/esm/browser/sync/authentication_manager.js +4 -1
- package/dist/esm/browser/sync/authentication_manager.js.map +2 -2
- package/dist/esm/browser/sync/web_socket_manager.js +1 -7
- package/dist/esm/browser/sync/web_socket_manager.js.map +2 -2
- package/dist/esm/cli/aiFiles.js +41 -23
- package/dist/esm/cli/aiFiles.js.map +2 -2
- package/dist/esm/cli/codegen_templates/readme.js +14 -1
- package/dist/esm/cli/codegen_templates/readme.js.map +2 -2
- package/dist/esm/cli/configure.js +35 -33
- package/dist/esm/cli/configure.js.map +2 -2
- package/dist/esm/cli/deploy.js +11 -10
- package/dist/esm/cli/deploy.js.map +2 -2
- package/dist/esm/cli/deploymentCreate.js +238 -42
- package/dist/esm/cli/deploymentCreate.js.map +2 -2
- package/dist/esm/cli/deploymentSelect.js +13 -12
- package/dist/esm/cli/deploymentSelect.js.map +2 -2
- package/dist/esm/cli/dev.js +34 -13
- package/dist/esm/cli/dev.js.map +2 -2
- package/dist/esm/cli/docs.js +1 -1
- package/dist/esm/cli/docs.js.map +2 -2
- package/dist/esm/cli/init.js +2 -2
- package/dist/esm/cli/init.js.map +2 -2
- package/dist/esm/cli/lib/aiFiles/agentsmd.js +56 -0
- package/dist/esm/cli/lib/aiFiles/agentsmd.js.map +7 -0
- package/dist/esm/cli/lib/aiFiles/claudemd.js +56 -0
- package/dist/esm/cli/lib/aiFiles/claudemd.js.map +7 -0
- package/dist/esm/cli/lib/aiFiles/cursorrules.js +16 -0
- package/dist/esm/cli/lib/aiFiles/cursorrules.js.map +7 -0
- package/dist/esm/cli/lib/aiFiles/guidelinesmd.js +35 -0
- package/dist/esm/cli/lib/aiFiles/guidelinesmd.js.map +7 -0
- package/dist/esm/cli/lib/aiFiles/index.js +193 -0
- package/dist/esm/cli/lib/aiFiles/index.js.map +7 -0
- package/dist/esm/cli/lib/aiFiles/paths.js.map +7 -0
- package/dist/esm/cli/lib/aiFiles/skills.js +163 -0
- package/dist/esm/cli/lib/aiFiles/skills.js.map +7 -0
- package/dist/esm/cli/lib/aiFiles/state.js +60 -0
- package/dist/esm/cli/lib/aiFiles/state.js.map +7 -0
- package/dist/esm/cli/lib/aiFiles/status.js +178 -0
- package/dist/esm/cli/lib/aiFiles/status.js.map +7 -0
- package/dist/esm/cli/lib/aiFiles/utils.js +97 -0
- package/dist/esm/cli/lib/aiFiles/utils.js.map +7 -0
- package/dist/esm/cli/lib/api.js +70 -7
- package/dist/esm/cli/lib/api.js.map +2 -2
- package/dist/esm/cli/lib/command.js +10 -6
- package/dist/esm/cli/lib/command.js.map +2 -2
- package/dist/esm/cli/lib/config.js +41 -6
- package/dist/esm/cli/lib/config.js.map +2 -2
- package/dist/esm/cli/lib/deploy2.js +13 -26
- package/dist/esm/cli/lib/deploy2.js.map +2 -2
- package/dist/esm/cli/lib/deployApi/componentDefinition.js +4 -1
- package/dist/esm/cli/lib/deployApi/componentDefinition.js.map +2 -2
- package/dist/esm/cli/lib/deploymentSelection.js +46 -2
- package/dist/esm/cli/lib/deploymentSelection.js.map +2 -2
- package/dist/esm/cli/lib/deploymentSelector.js +1 -0
- package/dist/esm/cli/lib/deploymentSelector.js.map +2 -2
- package/dist/esm/cli/lib/dev.js +162 -118
- package/dist/esm/cli/lib/dev.js.map +2 -2
- package/dist/esm/cli/lib/env.js +0 -11
- package/dist/esm/cli/lib/env.js.map +2 -2
- package/dist/esm/cli/lib/expiration.js +80 -0
- package/dist/esm/cli/lib/expiration.js.map +7 -0
- package/dist/esm/cli/lib/init.js +4 -3
- package/dist/esm/cli/lib/init.js.map +2 -2
- package/dist/esm/cli/lib/insights.js +1 -1
- package/dist/esm/cli/lib/insights.js.map +2 -2
- package/dist/esm/cli/lib/localDeployment/anonymous.js +16 -9
- package/dist/esm/cli/lib/localDeployment/anonymous.js.map +2 -2
- package/dist/esm/cli/lib/localDeployment/localDeployment.js +9 -11
- package/dist/esm/cli/lib/localDeployment/localDeployment.js.map +2 -2
- package/dist/esm/cli/lib/localDeployment/run.js +1 -1
- package/dist/esm/cli/lib/localDeployment/run.js.map +2 -2
- package/dist/esm/cli/lib/localDeployment/upgrade.js +2 -2
- package/dist/esm/cli/lib/localDeployment/upgrade.js.map +2 -2
- package/dist/esm/cli/lib/localDeployment/utils.js +8 -0
- package/dist/esm/cli/lib/localDeployment/utils.js.map +2 -2
- package/dist/esm/cli/lib/mcp/tools/status.js +1 -1
- package/dist/esm/cli/lib/mcp/tools/status.js.map +2 -2
- package/dist/esm/cli/lib/updates.js +14 -12
- package/dist/esm/cli/lib/updates.js.map +2 -2
- package/dist/esm/cli/lib/usage.js +2 -1
- package/dist/esm/cli/lib/usage.js.map +2 -2
- package/dist/esm/cli/lib/utils/prompts.js +2 -1
- package/dist/esm/cli/lib/utils/prompts.js.map +2 -2
- package/dist/esm/cli/lib/utils/utils.js +45 -20
- package/dist/esm/cli/lib/utils/utils.js.map +3 -3
- package/dist/esm/cli/lib/versionApi.js +7 -4
- package/dist/esm/cli/lib/versionApi.js.map +2 -2
- package/dist/esm/cli/lib/workos/workos.js +4 -6
- package/dist/esm/cli/lib/workos/workos.js.map +2 -2
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/react/client.js +43 -6
- package/dist/esm/react/client.js.map +2 -2
- package/dist/esm/react/index.js +1 -0
- package/dist/esm/react/index.js.map +2 -2
- package/dist/esm/react-clerk/ConvexProviderWithClerk.js.map +1 -1
- package/dist/esm/server/api.js.map +2 -2
- package/dist/esm/server/components/index.js +40 -4
- package/dist/esm/server/components/index.js.map +2 -2
- package/dist/esm/server/impl/meta_impl.js +54 -0
- package/dist/esm/server/impl/meta_impl.js.map +7 -0
- package/dist/esm/server/impl/registration_impl.js +20 -11
- package/dist/esm/server/impl/registration_impl.js.map +2 -2
- package/dist/esm/server/index.js.map +2 -2
- package/dist/esm/server/meta.js +2 -0
- package/dist/esm/server/meta.js.map +7 -0
- package/dist/esm-types/browser/index.d.ts +1 -0
- package/dist/esm-types/browser/index.d.ts.map +1 -1
- package/dist/esm-types/browser/query_options.d.ts +12 -9
- package/dist/esm-types/browser/query_options.d.ts.map +1 -1
- package/dist/esm-types/browser/sync/authentication_manager.d.ts.map +1 -1
- package/dist/esm-types/browser/sync/web_socket_manager.d.ts.map +1 -1
- package/dist/esm-types/cli/aiFiles.d.ts.map +1 -1
- package/dist/esm-types/cli/codegen_templates/readme.d.ts.map +1 -1
- package/dist/esm-types/cli/configure.d.ts.map +1 -1
- package/dist/esm-types/cli/configure.test.d.ts +2 -0
- package/dist/esm-types/cli/configure.test.d.ts.map +1 -0
- package/dist/esm-types/cli/deploy.d.ts.map +1 -1
- package/dist/esm-types/cli/deploymentCreate.d.ts +1 -0
- package/dist/esm-types/cli/deploymentCreate.d.ts.map +1 -1
- package/dist/esm-types/cli/deploymentSelect.d.ts +2 -1
- package/dist/esm-types/cli/deploymentSelect.d.ts.map +1 -1
- package/dist/esm-types/cli/dev.d.ts +3 -1
- package/dist/esm-types/cli/dev.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/aiFiles/agentsmd.d.ts +19 -0
- package/dist/esm-types/cli/lib/aiFiles/agentsmd.d.ts.map +1 -0
- package/dist/esm-types/cli/lib/aiFiles/agentsmd.test.d.ts +2 -0
- package/dist/esm-types/cli/lib/aiFiles/agentsmd.test.d.ts.map +1 -0
- package/dist/esm-types/cli/lib/aiFiles/claudemd.d.ts +19 -0
- package/dist/esm-types/cli/lib/aiFiles/claudemd.d.ts.map +1 -0
- package/dist/esm-types/cli/lib/aiFiles/claudemd.test.d.ts +2 -0
- package/dist/esm-types/cli/lib/aiFiles/claudemd.test.d.ts.map +1 -0
- package/dist/esm-types/cli/lib/aiFiles/cursorrules.d.ts +10 -0
- package/dist/esm-types/cli/lib/aiFiles/cursorrules.d.ts.map +1 -0
- package/dist/esm-types/cli/lib/aiFiles/guidelinesmd.d.ts +12 -0
- package/dist/esm-types/cli/lib/aiFiles/guidelinesmd.d.ts.map +1 -0
- package/dist/esm-types/cli/lib/aiFiles/guidelinesmd.test.d.ts +2 -0
- package/dist/esm-types/cli/lib/aiFiles/guidelinesmd.test.d.ts.map +1 -0
- package/dist/esm-types/cli/lib/aiFiles/index.d.ts +42 -0
- package/dist/esm-types/cli/lib/aiFiles/index.d.ts.map +1 -0
- package/dist/esm-types/cli/lib/aiFiles/index.test.d.ts.map +1 -0
- package/dist/esm-types/cli/lib/aiFiles/integration.test.d.ts.map +1 -0
- package/dist/esm-types/cli/lib/{ai → aiFiles}/paths.d.ts +4 -0
- package/dist/esm-types/cli/lib/aiFiles/paths.d.ts.map +1 -0
- package/dist/esm-types/cli/lib/aiFiles/prompt.test.d.ts.map +1 -0
- package/dist/esm-types/cli/lib/aiFiles/skills.d.ts +20 -0
- package/dist/esm-types/cli/lib/aiFiles/skills.d.ts.map +1 -0
- package/dist/esm-types/cli/lib/aiFiles/state.d.ts +38 -0
- package/dist/esm-types/cli/lib/aiFiles/state.d.ts.map +1 -0
- package/dist/esm-types/cli/lib/aiFiles/state.test.d.ts +2 -0
- package/dist/esm-types/cli/lib/aiFiles/state.test.d.ts.map +1 -0
- package/dist/esm-types/cli/lib/aiFiles/status.d.ts +6 -0
- package/dist/esm-types/cli/lib/aiFiles/status.d.ts.map +1 -0
- package/dist/esm-types/cli/lib/aiFiles/utils.d.ts +56 -0
- package/dist/esm-types/cli/lib/aiFiles/utils.d.ts.map +1 -0
- package/dist/esm-types/cli/lib/aiFiles/utils.test.d.ts +2 -0
- package/dist/esm-types/cli/lib/aiFiles/utils.test.d.ts.map +1 -0
- package/dist/esm-types/cli/lib/api.d.ts +3 -3
- package/dist/esm-types/cli/lib/api.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/command.d.ts +2 -1
- package/dist/esm-types/cli/lib/command.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/config.d.ts +18 -6
- package/dist/esm-types/cli/lib/config.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/deploy2.d.ts +5 -2
- package/dist/esm-types/cli/lib/deploy2.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/deployApi/componentDefinition.d.ts +27 -12
- package/dist/esm-types/cli/lib/deployApi/componentDefinition.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/deployApi/definitionConfig.d.ts +24 -24
- package/dist/esm-types/cli/lib/deployApi/modules.d.ts +14 -14
- package/dist/esm-types/cli/lib/deployApi/startPush.d.ts +61 -52
- package/dist/esm-types/cli/lib/deployApi/startPush.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/deploymentSelection.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/deploymentSelector.d.ts +2 -0
- package/dist/esm-types/cli/lib/deploymentSelector.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/dev.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/env.d.ts +0 -4
- package/dist/esm-types/cli/lib/env.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/expiration.d.ts +35 -0
- package/dist/esm-types/cli/lib/expiration.d.ts.map +1 -0
- package/dist/esm-types/cli/lib/expiration.test.d.ts +2 -0
- package/dist/esm-types/cli/lib/expiration.test.d.ts.map +1 -0
- package/dist/esm-types/cli/lib/generatedFunctionLogsApi.d.ts +16 -1
- package/dist/esm-types/cli/lib/generatedFunctionLogsApi.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/init.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/localDeployment/anonymous.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/localDeployment/localDeployment.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/localDeployment/run.d.ts +15 -0
- package/dist/esm-types/cli/lib/localDeployment/run.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/localDeployment/upgrade.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/localDeployment/utils.d.ts +7 -0
- package/dist/esm-types/cli/lib/localDeployment/utils.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/mcp/requestContext.d.ts +3 -3
- package/dist/esm-types/cli/lib/mcp/tools/insights.d.ts +2 -2
- package/dist/esm-types/cli/lib/updates.d.ts +4 -3
- package/dist/esm-types/cli/lib/updates.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/usage.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/utils/prompts.d.ts +1 -0
- package/dist/esm-types/cli/lib/utils/prompts.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/utils/utils.d.ts +16 -2
- package/dist/esm-types/cli/lib/utils/utils.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/versionApi.d.ts +7 -1
- package/dist/esm-types/cli/lib/versionApi.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/workos/workos.d.ts.map +1 -1
- package/dist/esm-types/index.d.ts +1 -1
- package/dist/esm-types/react/client.d.ts +54 -2
- package/dist/esm-types/react/client.d.ts.map +1 -1
- package/dist/esm-types/react/index.d.ts +7 -2
- package/dist/esm-types/react/index.d.ts.map +1 -1
- package/dist/esm-types/react/use_query_object_options.test.d.ts +5 -0
- package/dist/esm-types/react/use_query_object_options.test.d.ts.map +1 -0
- package/dist/esm-types/react/use_query_result.test.d.ts +5 -0
- package/dist/esm-types/react/use_query_result.test.d.ts.map +1 -0
- package/dist/esm-types/react-clerk/ConvexProviderWithClerk.d.ts +1 -1
- package/dist/esm-types/server/api.d.ts +5 -1
- package/dist/esm-types/server/api.d.ts.map +1 -1
- package/dist/esm-types/server/components/definition.d.ts +1 -0
- package/dist/esm-types/server/components/definition.d.ts.map +1 -1
- package/dist/esm-types/server/components/index.d.ts +5 -1
- package/dist/esm-types/server/components/index.d.ts.map +1 -1
- package/dist/esm-types/server/data_model.d.ts +2 -1
- package/dist/esm-types/server/data_model.d.ts.map +1 -1
- package/dist/esm-types/server/impl/meta_impl.d.ts +5 -0
- package/dist/esm-types/server/impl/meta_impl.d.ts.map +1 -0
- package/dist/esm-types/server/impl/registration_impl.d.ts.map +1 -1
- package/dist/esm-types/server/index.d.ts +1 -0
- package/dist/esm-types/server/index.d.ts.map +1 -1
- package/dist/esm-types/server/meta.d.ts +72 -0
- package/dist/esm-types/server/meta.d.ts.map +1 -0
- package/dist/esm-types/server/registration.d.ts.map +1 -1
- package/dist/react.bundle.js +55 -15
- package/dist/react.bundle.js.map +3 -3
- package/package.json +11 -7
- package/schemas/convex.schema.json +22 -3
- package/src/browser/index.ts +3 -0
- package/src/browser/query_options.test.ts +0 -9
- package/src/browser/query_options.ts +36 -15
- package/src/browser/sync/authentication_manager.ts +9 -4
- package/src/browser/sync/client_node.test.ts +125 -0
- package/src/browser/sync/web_socket_manager.ts +1 -7
- package/src/cli/aiFiles.ts +56 -33
- package/src/cli/codegen_templates/readme.ts +14 -1
- package/src/cli/configure.test.ts +138 -0
- package/src/cli/configure.ts +62 -55
- package/src/cli/deploy.ts +12 -9
- package/src/cli/deploymentCreate.test.ts +349 -14
- package/src/cli/deploymentCreate.ts +268 -41
- package/src/cli/deploymentSelect.test.ts +136 -27
- package/src/cli/deploymentSelect.ts +50 -41
- package/src/cli/deploymentSelection.test.ts +399 -37
- package/src/cli/dev.ts +49 -14
- package/src/cli/docs.ts +1 -1
- package/src/cli/init.ts +2 -2
- package/src/cli/lib/{ai → aiFiles}/MANUAL_TESTING.md +6 -2
- package/src/cli/lib/aiFiles/agentsmd.test.ts +133 -0
- package/src/cli/lib/aiFiles/agentsmd.ts +81 -0
- package/src/cli/lib/aiFiles/claudemd.test.ts +92 -0
- package/src/cli/lib/aiFiles/claudemd.ts +81 -0
- package/src/cli/lib/aiFiles/cursorrules.ts +25 -0
- package/src/cli/lib/aiFiles/guidelinesmd.test.ts +50 -0
- package/src/cli/lib/aiFiles/guidelinesmd.ts +49 -0
- package/src/cli/lib/{ai → aiFiles}/index.test.ts +343 -516
- package/src/cli/lib/aiFiles/index.ts +297 -0
- package/src/cli/lib/{ai → aiFiles}/integration.test.ts +195 -158
- package/src/cli/lib/{ai → aiFiles}/paths.ts +5 -0
- package/src/cli/lib/{ai → aiFiles}/prompt.test.ts +79 -31
- package/src/cli/lib/aiFiles/skills.ts +243 -0
- package/src/cli/lib/aiFiles/state.test.ts +280 -0
- package/src/cli/lib/aiFiles/state.ts +82 -0
- package/src/cli/lib/aiFiles/status.ts +246 -0
- package/src/cli/lib/aiFiles/utils.test.ts +50 -0
- package/src/cli/lib/aiFiles/utils.ts +191 -0
- package/src/cli/lib/api.ts +88 -7
- package/src/cli/lib/command.ts +18 -8
- package/src/cli/lib/config.test.ts +185 -8
- package/src/cli/lib/config.ts +73 -12
- package/src/cli/lib/deploy2.ts +14 -27
- package/src/cli/lib/deployApi/componentDefinition.ts +4 -1
- package/src/cli/lib/deploymentSelection.ts +59 -6
- package/src/cli/lib/deploymentSelector.test.ts +6 -0
- package/src/cli/lib/deploymentSelector.ts +2 -0
- package/src/cli/lib/dev.ts +202 -153
- package/src/cli/lib/env.ts +0 -15
- package/src/cli/lib/expiration.test.ts +159 -0
- package/src/cli/lib/expiration.ts +124 -0
- package/src/cli/lib/generatedFunctionLogsApi.ts +16 -1
- package/src/cli/lib/init.ts +6 -2
- package/src/cli/lib/insights.ts +1 -1
- package/src/cli/lib/localDeployment/anonymous.ts +19 -9
- package/src/cli/lib/localDeployment/localDeployment.ts +9 -11
- package/src/cli/lib/localDeployment/run.ts +1 -1
- package/src/cli/lib/localDeployment/upgrade.ts +12 -10
- package/src/cli/lib/localDeployment/utils.ts +12 -0
- package/src/cli/lib/mcp/tools/status.ts +1 -1
- package/src/cli/lib/updates.test.ts +97 -60
- package/src/cli/lib/updates.ts +17 -15
- package/src/cli/lib/usage.ts +3 -1
- package/src/cli/lib/utils/prompts.ts +2 -0
- package/src/cli/lib/utils/utils.test.ts +6 -6
- package/src/cli/lib/utils/utils.ts +66 -27
- package/src/cli/lib/versionApi.test.ts +13 -10
- package/src/cli/lib/versionApi.ts +13 -5
- package/src/cli/lib/workos/workos.ts +4 -5
- package/src/index.ts +1 -1
- package/src/react/client.test.tsx +65 -0
- package/src/react/client.ts +129 -13
- package/src/react/index.ts +9 -1
- package/src/react/use_query_object_options.test.ts +50 -0
- package/src/react/use_query_result.test.ts +41 -0
- package/src/react-clerk/ConvexProviderWithClerk.test.tsx +1 -1
- package/src/react-clerk/ConvexProviderWithClerk.tsx +1 -1
- package/src/server/api.ts +5 -1
- package/src/server/components/definition.ts +3 -0
- package/src/server/components/index.ts +62 -5
- package/src/server/data_model.ts +2 -1
- package/src/server/impl/meta_impl.ts +74 -0
- package/src/server/impl/registration_impl.ts +21 -9
- package/src/server/index.ts +8 -0
- package/src/server/meta.ts +76 -0
- package/src/server/registration.ts +10 -0
- package/src/server/schema.test.ts +78 -1
- package/dist/cjs/cli/lib/ai/config.js +0 -144
- package/dist/cjs/cli/lib/ai/config.js.map +0 -7
- package/dist/cjs/cli/lib/ai/index.js +0 -704
- package/dist/cjs/cli/lib/ai/index.js.map +0 -7
- package/dist/cjs/cli/lib/ai/paths.js.map +0 -7
- package/dist/cjs-types/cli/lib/ai/config.d.ts +0 -50
- package/dist/cjs-types/cli/lib/ai/config.d.ts.map +0 -1
- package/dist/cjs-types/cli/lib/ai/config.test.d.ts +0 -2
- package/dist/cjs-types/cli/lib/ai/config.test.d.ts.map +0 -1
- package/dist/cjs-types/cli/lib/ai/index.d.ts +0 -56
- package/dist/cjs-types/cli/lib/ai/index.d.ts.map +0 -1
- package/dist/cjs-types/cli/lib/ai/index.test.d.ts.map +0 -1
- package/dist/cjs-types/cli/lib/ai/integration.test.d.ts.map +0 -1
- package/dist/cjs-types/cli/lib/ai/paths.d.ts.map +0 -1
- package/dist/cjs-types/cli/lib/ai/prompt.test.d.ts.map +0 -1
- package/dist/esm/cli/lib/ai/config.js +0 -109
- package/dist/esm/cli/lib/ai/config.js.map +0 -7
- package/dist/esm/cli/lib/ai/index.js +0 -684
- package/dist/esm/cli/lib/ai/index.js.map +0 -7
- package/dist/esm/cli/lib/ai/paths.js.map +0 -7
- package/dist/esm-types/cli/lib/ai/config.d.ts +0 -50
- package/dist/esm-types/cli/lib/ai/config.d.ts.map +0 -1
- package/dist/esm-types/cli/lib/ai/config.test.d.ts +0 -2
- package/dist/esm-types/cli/lib/ai/config.test.d.ts.map +0 -1
- package/dist/esm-types/cli/lib/ai/index.d.ts +0 -56
- package/dist/esm-types/cli/lib/ai/index.d.ts.map +0 -1
- package/dist/esm-types/cli/lib/ai/index.test.d.ts.map +0 -1
- package/dist/esm-types/cli/lib/ai/integration.test.d.ts.map +0 -1
- package/dist/esm-types/cli/lib/ai/paths.d.ts.map +0 -1
- package/dist/esm-types/cli/lib/ai/prompt.test.d.ts.map +0 -1
- package/src/cli/lib/ai/config.test.ts +0 -338
- package/src/cli/lib/ai/config.ts +0 -159
- package/src/cli/lib/ai/index.ts +0 -1006
- /package/dist/cjs/cli/lib/{ai → aiFiles}/paths.js +0 -0
- /package/dist/cjs-types/cli/lib/{ai → aiFiles}/index.test.d.ts +0 -0
- /package/dist/cjs-types/cli/lib/{ai → aiFiles}/integration.test.d.ts +0 -0
- /package/dist/cjs-types/cli/lib/{ai → aiFiles}/prompt.test.d.ts +0 -0
- /package/dist/esm/cli/lib/{ai → aiFiles}/paths.js +0 -0
- /package/dist/esm-types/cli/lib/{ai → aiFiles}/index.test.d.ts +0 -0
- /package/dist/esm-types/cli/lib/{ai → aiFiles}/integration.test.d.ts +0 -0
- /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 {
|
|
2
|
+
import { checkVersionAndAiFilesStaleness } from "./updates.js";
|
|
3
3
|
import { getVersion } from "./versionApi.js";
|
|
4
4
|
import { logMessage } from "../../bundler/log.js";
|
|
5
|
-
import {
|
|
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("./
|
|
14
|
-
|
|
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
|
|
32
|
+
const mockCheckAiFilesStalenessAndLog = vi.mocked(checkAiFilesStalenessAndLog);
|
|
28
33
|
const mockReadProjectConfig = vi.mocked(readProjectConfig);
|
|
29
34
|
|
|
30
35
|
const fakeCtx = {} as Context;
|
|
31
36
|
|
|
32
|
-
|
|
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
|
-
|
|
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
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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
|
-
|
|
72
|
+
await checkVersionAndAiFilesStaleness(fakeCtx);
|
|
63
73
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
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
|
-
|
|
77
|
-
|
|
78
|
-
|
|
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:
|
|
82
|
-
|
|
83
|
-
|
|
99
|
+
agentSkillsSha: "abc123def456abc123def456abc123def456abc1",
|
|
100
|
+
}),
|
|
101
|
+
);
|
|
84
102
|
|
|
85
|
-
|
|
103
|
+
await checkVersionAndAiFilesStaleness(fakeCtx);
|
|
86
104
|
|
|
87
|
-
|
|
88
|
-
|
|
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
|
-
|
|
92
|
-
|
|
114
|
+
it("passes null hashes when version has none", async () => {
|
|
115
|
+
mockGetVersion.mockResolvedValue(
|
|
116
|
+
okVersion({ guidelinesHash: null, agentSkillsSha: null }),
|
|
117
|
+
);
|
|
93
118
|
|
|
94
|
-
|
|
119
|
+
await checkVersionAndAiFilesStaleness(fakeCtx);
|
|
95
120
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
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
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
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
|
});
|
package/src/cli/lib/updates.ts
CHANGED
|
@@ -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 {
|
|
6
|
+
import {
|
|
7
|
+
checkAiFilesStalenessAndLog,
|
|
8
|
+
isAiFilesDisabled,
|
|
9
|
+
} from "./aiFiles/index.js";
|
|
7
10
|
import { getVersion } from "./versionApi.js";
|
|
8
11
|
|
|
9
12
|
/**
|
|
10
|
-
*
|
|
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
|
|
17
|
+
export async function checkVersionAndAiFilesStaleness(ctx: Context) {
|
|
14
18
|
const version = await getVersion();
|
|
19
|
+
if (version.kind === "error") return;
|
|
15
20
|
|
|
16
|
-
if (version
|
|
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
|
|
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
|
}
|
package/src/cli/lib/usage.ts
CHANGED
|
@@ -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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
|
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
|
|
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
|
-
:
|
|
768
|
-
|
|
771
|
+
: T extends PlatformDeploymentPaths
|
|
772
|
+
? PlatformDeploymentPaths
|
|
773
|
+
: never;
|
|
774
|
+
const client = createClient<Paths>({
|
|
769
775
|
baseUrl,
|
|
770
|
-
fetch:
|
|
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(
|
|
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
|
-
|
|
813
|
+
export const typedBigBrainClient = typedApiClientFactory<CliManagementPaths>(
|
|
814
|
+
BIG_BRAIN_URL,
|
|
815
|
+
bigBrainFetch,
|
|
816
|
+
);
|
|
815
817
|
export const typedPlatformClient =
|
|
816
|
-
|
|
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 =
|
|
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
|
-
|
|
898
|
-
|
|
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
|
|
901
|
-
return
|
|
932
|
+
if (n === 0) {
|
|
933
|
+
return "0 bytes";
|
|
902
934
|
}
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
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 `${
|
|
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
|
|
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
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
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
|
|
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).
|
|
70
|
+
expect(result).toEqual({ kind: "error" });
|
|
68
71
|
});
|
|
69
72
|
|
|
70
|
-
it("returns
|
|
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).
|
|
82
|
+
expect(result).toEqual({ kind: "error" });
|
|
80
83
|
});
|
|
81
84
|
|
|
82
|
-
it("returns
|
|
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).
|
|
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
|
|
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
|
|
37
|
+
return { kind: "error" };
|
|
34
38
|
}
|
|
35
39
|
|
|
36
40
|
const json = await req.json();
|
|
37
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
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.
|
|
1
|
+
export const version = "1.35.0";
|