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
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "convex",
|
|
3
3
|
"description": "Client for the Convex Cloud",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.35.0",
|
|
5
5
|
"author": "Convex, Inc. <no-reply@convex.dev>",
|
|
6
6
|
"homepage": "https://convex.dev",
|
|
7
7
|
"repository": {
|
|
@@ -178,6 +178,7 @@
|
|
|
178
178
|
"peerDependencies": {
|
|
179
179
|
"@auth0/auth0-react": "^2.0.1",
|
|
180
180
|
"@clerk/clerk-react": "^4.12.8 || ^5.0.0",
|
|
181
|
+
"@clerk/react": "^6.0.0",
|
|
181
182
|
"react": "^18.0.0 || ^19.0.0-0 || ^19.0.0"
|
|
182
183
|
},
|
|
183
184
|
"peerDependenciesMeta": {
|
|
@@ -189,6 +190,9 @@
|
|
|
189
190
|
},
|
|
190
191
|
"@clerk/clerk-react": {
|
|
191
192
|
"optional": true
|
|
193
|
+
},
|
|
194
|
+
"@clerk/react": {
|
|
195
|
+
"optional": true
|
|
192
196
|
}
|
|
193
197
|
},
|
|
194
198
|
"@comment devDependencies": [
|
|
@@ -199,11 +203,11 @@
|
|
|
199
203
|
"@auth0/auth0-react": "2.11.0",
|
|
200
204
|
"@babel/parser": "^7.27.1",
|
|
201
205
|
"@babel/types": "^7.27.1",
|
|
202
|
-
"@clerk/
|
|
206
|
+
"@clerk/react": "^6.0.0",
|
|
203
207
|
"@commander-js/extra-typings": "^14.0.0",
|
|
204
208
|
"@convex-dev/platform": "0.1.6",
|
|
205
209
|
"@eslint/compat": "~2.0.0",
|
|
206
|
-
"@eslint/eslintrc": "
|
|
210
|
+
"@eslint/eslintrc": "^3",
|
|
207
211
|
"@eslint/js": "~9.39.0",
|
|
208
212
|
"@modelcontextprotocol/sdk": "^1.25.2",
|
|
209
213
|
"@octokit/openapi-types": "~25.0.0",
|
|
@@ -229,7 +233,7 @@
|
|
|
229
233
|
"bufferutil": "^4.0.7",
|
|
230
234
|
"chalk": "5",
|
|
231
235
|
"chokidar": "3.6.0",
|
|
232
|
-
"commander": "^14.0.
|
|
236
|
+
"commander": "^14.0.3",
|
|
233
237
|
"deep-equal": "2.2.3",
|
|
234
238
|
"depcheck": "~1.4.7",
|
|
235
239
|
"detect-port": "^2.1.0",
|
|
@@ -244,10 +248,10 @@
|
|
|
244
248
|
"fetch-retry": "~6.0.0",
|
|
245
249
|
"find-up": "^8.0.0",
|
|
246
250
|
"globals": "~17.0.0",
|
|
247
|
-
"happy-dom": "~20.
|
|
251
|
+
"happy-dom": "~20.8.0",
|
|
248
252
|
"jsdom": "~27.4.0",
|
|
249
253
|
"json5": "~2.2.3",
|
|
250
|
-
"knip": "~5.
|
|
254
|
+
"knip": "~5.86.0",
|
|
251
255
|
"napi-wasm": "1.1.3",
|
|
252
256
|
"open": "^8.3.0",
|
|
253
257
|
"openapi-fetch": "~0.15.0",
|
|
@@ -262,7 +266,7 @@
|
|
|
262
266
|
"serve-handler": "~6.1.6",
|
|
263
267
|
"shx": "~0.4.0",
|
|
264
268
|
"skott": "~0.35.4",
|
|
265
|
-
"tar": "^7.5.
|
|
269
|
+
"tar": "^7.5.11",
|
|
266
270
|
"tsx": "^4.19.4",
|
|
267
271
|
"typedoc": "^0.24.6",
|
|
268
272
|
"typescript": "~5.0.3",
|
|
@@ -150,8 +150,8 @@
|
|
|
150
150
|
},
|
|
151
151
|
"legacyComponentApi": {
|
|
152
152
|
"type": "boolean",
|
|
153
|
-
"description": "When true
|
|
154
|
-
"default":
|
|
153
|
+
"description": "When true, generates inline expanded types for component APIs. When false (recommended), generates import-based component API references instead.",
|
|
154
|
+
"default": false
|
|
155
155
|
},
|
|
156
156
|
"staticApi": {
|
|
157
157
|
"type": "boolean",
|
|
@@ -189,10 +189,29 @@
|
|
|
189
189
|
"type": "object",
|
|
190
190
|
"description": "User-configurable settings for Convex AI files behavior.",
|
|
191
191
|
"properties": {
|
|
192
|
+
"enabled": {
|
|
193
|
+
"type": "boolean",
|
|
194
|
+
"description": "When false, disables all Convex AI files prompts and staleness messages in `npx convex dev`. Use `npx convex ai-files enable` to re-enable.",
|
|
195
|
+
"default": true
|
|
196
|
+
},
|
|
192
197
|
"disableStalenessMessage": {
|
|
193
198
|
"type": "boolean",
|
|
194
|
-
"description": "
|
|
199
|
+
"description": "Deprecated. Use `enabled` instead.",
|
|
200
|
+
"deprecated": true,
|
|
195
201
|
"default": false
|
|
202
|
+
},
|
|
203
|
+
"skills": {
|
|
204
|
+
"type": "object",
|
|
205
|
+
"description": "Configuration for agent skills installed by Convex.",
|
|
206
|
+
"properties": {
|
|
207
|
+
"agents": {
|
|
208
|
+
"type": "array",
|
|
209
|
+
"items": { "type": "string" },
|
|
210
|
+
"description": "List of agents to install skills for (e.g. 'claude-code', 'codex', 'cursor'). Defaults to ['claude-code', 'codex']. For a list of supported agents see: https://github.com/vercel-labs/skills?tab=readme-ov-file#supported-agents",
|
|
211
|
+
"default": ["claude-code", "codex"]
|
|
212
|
+
}
|
|
213
|
+
},
|
|
214
|
+
"additionalProperties": false
|
|
196
215
|
}
|
|
197
216
|
},
|
|
198
217
|
"additionalProperties": false
|
package/src/browser/index.ts
CHANGED
|
@@ -40,3 +40,6 @@ export type { QueryJournal } from "./sync/protocol.js";
|
|
|
40
40
|
/** @internal */
|
|
41
41
|
export type { UserIdentityAttributes } from "./sync/protocol.js";
|
|
42
42
|
export type { FunctionResult } from "./sync/function_result.js";
|
|
43
|
+
/** @internal */
|
|
44
|
+
export { convexQueryOptions } from "./query_options.js";
|
|
45
|
+
export type { QueryOptions } from "./query_options.js";
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { test } from "vitest";
|
|
2
2
|
import { makeFunctionReference } from "../server/index.js";
|
|
3
3
|
import { EmptyObject } from "../server/registration.js";
|
|
4
|
-
import { ConvexReactClient } from "../react/client.js";
|
|
5
4
|
import { convexQueryOptions } from "./query_options.js";
|
|
6
5
|
|
|
7
6
|
const apiQueryFuncWithArgs = makeFunctionReference<
|
|
@@ -42,11 +41,3 @@ test("convexQueryOptions", async () => {
|
|
|
42
41
|
args: { name: "hey" },
|
|
43
42
|
});
|
|
44
43
|
});
|
|
45
|
-
|
|
46
|
-
test("prewarmQuery types", async () => {
|
|
47
|
-
const client = {
|
|
48
|
-
prewarmQuery: () => {},
|
|
49
|
-
} as unknown as ConvexReactClient;
|
|
50
|
-
|
|
51
|
-
client.prewarmQuery({ query: apiQueryFuncWithArgs, args: { name: "hi" } });
|
|
52
|
-
});
|
|
@@ -1,26 +1,47 @@
|
|
|
1
|
-
|
|
2
|
-
* Query options are a potential new API for a variety of functions, but in particular a new overload of the React hook for queries.
|
|
3
|
-
*
|
|
4
|
-
* Inspired by https://tanstack.com/query/v5/docs/framework/react/guides/query-options
|
|
5
|
-
*/
|
|
1
|
+
// Inspired by https://tanstack.com/query/v5/docs/framework/react/guides/query-options
|
|
6
2
|
import type { FunctionArgs, FunctionReference } from "../server/api.js";
|
|
7
3
|
|
|
8
|
-
// TODO if this type can encompass all use cases we can add not requiring args for queries
|
|
9
|
-
// that don't take arguments. Goal would be that queryOptions allows leaving out args,
|
|
10
|
-
// but queryOptions returns an object that always contains args. Helpers, "middleware,"
|
|
11
|
-
// anything that intercepts these arguments
|
|
12
4
|
/**
|
|
13
|
-
*
|
|
5
|
+
* Options for a Convex query: the query function reference and its arguments.
|
|
6
|
+
*
|
|
7
|
+
* Used with the object-form overload of {@link useQuery}.
|
|
8
|
+
*
|
|
9
|
+
* @public
|
|
14
10
|
*/
|
|
15
|
-
export type
|
|
11
|
+
export type QueryOptions<Query extends FunctionReference<"query">> = {
|
|
12
|
+
/**
|
|
13
|
+
* The query function to run.
|
|
14
|
+
*/
|
|
16
15
|
query: Query;
|
|
16
|
+
/**
|
|
17
|
+
* The arguments to the query function.
|
|
18
|
+
*/
|
|
17
19
|
args: FunctionArgs<Query>;
|
|
18
|
-
extendSubscriptionFor?: number;
|
|
19
20
|
};
|
|
20
21
|
|
|
21
|
-
|
|
22
|
+
/**
|
|
23
|
+
* Creates a type-safe {@link QueryOptions} object for a Convex query.
|
|
24
|
+
*
|
|
25
|
+
* This is an identity function that exists to provide type inference — passing
|
|
26
|
+
* your query and args through this helper ensures TypeScript infers the correct
|
|
27
|
+
* `Query` type parameter, which enables precise return types on hooks like
|
|
28
|
+
* {@link useQuery}.
|
|
29
|
+
*
|
|
30
|
+
* ```typescript
|
|
31
|
+
* const opts = convexQueryOptions({
|
|
32
|
+
* query: api.users.getById,
|
|
33
|
+
* args: { id: userId },
|
|
34
|
+
* });
|
|
35
|
+
* // opts is typed as QueryOptions<typeof api.users.getById>
|
|
36
|
+
* client.prewarmQuery(opts);
|
|
37
|
+
* ```
|
|
38
|
+
*
|
|
39
|
+
* @param options - The query and its arguments.
|
|
40
|
+
* @returns The same object, typed as `QueryOptions<Query>`.
|
|
41
|
+
* @internal
|
|
42
|
+
*/
|
|
22
43
|
export function convexQueryOptions<Query extends FunctionReference<"query">>(
|
|
23
|
-
options:
|
|
24
|
-
):
|
|
44
|
+
options: QueryOptions<Query>,
|
|
45
|
+
): QueryOptions<Query> {
|
|
25
46
|
return options;
|
|
26
47
|
}
|
|
@@ -174,6 +174,14 @@ export class AuthenticationManager {
|
|
|
174
174
|
return;
|
|
175
175
|
}
|
|
176
176
|
|
|
177
|
+
this._logVerbose(
|
|
178
|
+
`auth state is ${this.authState.state} when handling transition`,
|
|
179
|
+
);
|
|
180
|
+
|
|
181
|
+
// This transition advanced the auth version, which means the token used was valid
|
|
182
|
+
// and the client and server auth states are in sync.
|
|
183
|
+
this.syncState.markAuthCompletion();
|
|
184
|
+
|
|
177
185
|
if (this.authState.state === "waitingForServerConfirmationOfCachedToken") {
|
|
178
186
|
this._logVerbose("server confirmed auth token is valid");
|
|
179
187
|
void this.refetchToken();
|
|
@@ -455,11 +463,8 @@ export class AuthenticationManager {
|
|
|
455
463
|
}
|
|
456
464
|
}
|
|
457
465
|
if (this.authState.state === "waitingForScheduledRefetch") {
|
|
466
|
+
// TODO: this side-effect would be better situated with scheduling refetch
|
|
458
467
|
clearTimeout(this.authState.refetchTokenTimeoutId);
|
|
459
|
-
|
|
460
|
-
// The waitingForScheduledRefetch state is the most quiesced authed state.
|
|
461
|
-
// Let the syncState know that auth is in a good state, so it can reset failure backoffs
|
|
462
|
-
this.syncState.markAuthCompletion();
|
|
463
468
|
}
|
|
464
469
|
this.authState = newAuth;
|
|
465
470
|
}
|
|
@@ -2,6 +2,7 @@ import child_process from "child_process";
|
|
|
2
2
|
|
|
3
3
|
import { test, expect } from "vitest";
|
|
4
4
|
import { Long } from "../../vendor/long.js";
|
|
5
|
+
import { createHmac } from "crypto";
|
|
5
6
|
|
|
6
7
|
import { BaseConvexClient } from "./client.js";
|
|
7
8
|
import {
|
|
@@ -1026,3 +1027,127 @@ test("Backoff does not reset for idle client until server re-confirms queries",
|
|
|
1026
1027
|
await client.close();
|
|
1027
1028
|
});
|
|
1028
1029
|
});
|
|
1030
|
+
|
|
1031
|
+
// We had an issue where fixing a bug related to having the client do proper exponential backoff
|
|
1032
|
+
// resulted in revealing that if a client was authenticated and had a WebSocket disconnect, the
|
|
1033
|
+
// count of retries would never get reset upon reconnect. This test covers that scenario.
|
|
1034
|
+
test("Retries do not increase across connections for auth'd clients", async () => {
|
|
1035
|
+
await withInMemoryWebSocket(async ({ address, receive, send, close }) => {
|
|
1036
|
+
const client = new BaseConvexClient(address, () => null, {
|
|
1037
|
+
webSocketConstructor: nodeWebSocket,
|
|
1038
|
+
unsavedChangesWarning: false,
|
|
1039
|
+
logger: true,
|
|
1040
|
+
verbose: true,
|
|
1041
|
+
});
|
|
1042
|
+
|
|
1043
|
+
// Setup auth
|
|
1044
|
+
const iat = Math.floor(Date.now() / 1000);
|
|
1045
|
+
const exp = iat + 3600;
|
|
1046
|
+
const token = encodeJwt({ sub: "user_123", exp, iat }, "test-secret");
|
|
1047
|
+
client.setAuth(
|
|
1048
|
+
async () => token,
|
|
1049
|
+
(_) => {},
|
|
1050
|
+
);
|
|
1051
|
+
|
|
1052
|
+
// Verify client handshake on "server" side.
|
|
1053
|
+
expect((await receive()).type).toEqual("Connect");
|
|
1054
|
+
expect((await receive()).type).toEqual("Authenticate");
|
|
1055
|
+
expect((await receive()).type).toEqual("ModifyQuerySet");
|
|
1056
|
+
|
|
1057
|
+
// Respond to the handshake noting that the identity was accepted (increased version).
|
|
1058
|
+
send({
|
|
1059
|
+
type: "Transition",
|
|
1060
|
+
startVersion: { querySet: 0, identity: 0, ts: Long.fromNumber(0) },
|
|
1061
|
+
endVersion: { querySet: 0, identity: 1, ts: Long.fromNumber(100) },
|
|
1062
|
+
modifications: [],
|
|
1063
|
+
});
|
|
1064
|
+
|
|
1065
|
+
// Subscribe to a query and verify the "server" receives it.
|
|
1066
|
+
client.subscribe("queries:myQuery", {});
|
|
1067
|
+
expect((await receive()).type).toEqual("ModifyQuerySet");
|
|
1068
|
+
|
|
1069
|
+
// Respond to the subscription with a result.
|
|
1070
|
+
send({
|
|
1071
|
+
type: "Transition",
|
|
1072
|
+
startVersion: { querySet: 0, identity: 1, ts: Long.fromNumber(100) },
|
|
1073
|
+
endVersion: { querySet: 1, identity: 1, ts: Long.fromNumber(200) },
|
|
1074
|
+
modifications: [
|
|
1075
|
+
{
|
|
1076
|
+
type: "QueryUpdated",
|
|
1077
|
+
queryId: 0,
|
|
1078
|
+
value: "result",
|
|
1079
|
+
logLines: [],
|
|
1080
|
+
journal: null,
|
|
1081
|
+
},
|
|
1082
|
+
],
|
|
1083
|
+
});
|
|
1084
|
+
|
|
1085
|
+
// Verify the client gets the subscription result.
|
|
1086
|
+
for (let i = 0; i < 20; i++) {
|
|
1087
|
+
if (client.localQueryResult("queries:myQuery", {}) === "result") break;
|
|
1088
|
+
await new Promise((r) => setTimeout(r, 50));
|
|
1089
|
+
}
|
|
1090
|
+
expect(client.localQueryResult("queries:myQuery", {})).toEqual("result");
|
|
1091
|
+
|
|
1092
|
+
// Unceremoniously drop the connection.
|
|
1093
|
+
close();
|
|
1094
|
+
|
|
1095
|
+
// The "server" should see the client handshake for a reconnect.
|
|
1096
|
+
expect((await receive()).type).toEqual("Connect");
|
|
1097
|
+
expect((await receive()).type).toEqual("Authenticate");
|
|
1098
|
+
expect((await receive()).type).toEqual("ModifyQuerySet");
|
|
1099
|
+
|
|
1100
|
+
// The client should record that it has begun a retry.
|
|
1101
|
+
expect(client.connectionState().connectionRetries).toBe(1);
|
|
1102
|
+
|
|
1103
|
+
// Respond to the handshake noting that the identity was accepted (increased version).
|
|
1104
|
+
send({
|
|
1105
|
+
type: "Transition",
|
|
1106
|
+
startVersion: { querySet: 0, identity: 0, ts: Long.fromNumber(0) },
|
|
1107
|
+
endVersion: { querySet: 0, identity: 1, ts: Long.fromNumber(100) },
|
|
1108
|
+
modifications: [],
|
|
1109
|
+
});
|
|
1110
|
+
// Let client handle the transition.
|
|
1111
|
+
await new Promise((r) => setTimeout(r, 100));
|
|
1112
|
+
|
|
1113
|
+
// Respond to the re-subscription with a result.
|
|
1114
|
+
send({
|
|
1115
|
+
type: "Transition",
|
|
1116
|
+
startVersion: { querySet: 0, identity: 1, ts: Long.fromNumber(100) },
|
|
1117
|
+
endVersion: { querySet: 1, identity: 1, ts: Long.fromNumber(200) },
|
|
1118
|
+
modifications: [
|
|
1119
|
+
{
|
|
1120
|
+
type: "QueryUpdated",
|
|
1121
|
+
queryId: 0,
|
|
1122
|
+
value: "updated result",
|
|
1123
|
+
logLines: [],
|
|
1124
|
+
journal: null,
|
|
1125
|
+
},
|
|
1126
|
+
],
|
|
1127
|
+
});
|
|
1128
|
+
|
|
1129
|
+
for (let i = 0; i < 20; i++) {
|
|
1130
|
+
if (client.localQueryResult("queries:myQuery", {}) === "updated result")
|
|
1131
|
+
break;
|
|
1132
|
+
await new Promise((r) => setTimeout(r, 50));
|
|
1133
|
+
}
|
|
1134
|
+
// Verify the client gets the subscription result.
|
|
1135
|
+
expect(client.localQueryResult("queries:myQuery", {})).toEqual(
|
|
1136
|
+
"updated result",
|
|
1137
|
+
);
|
|
1138
|
+
|
|
1139
|
+
// Client has resynced - should be at 0 retries
|
|
1140
|
+
expect(client.connectionState().connectionRetries).toBe(0);
|
|
1141
|
+
});
|
|
1142
|
+
});
|
|
1143
|
+
|
|
1144
|
+
function encodeJwt(payload: object, secret: string): string {
|
|
1145
|
+
const header = Buffer.from(
|
|
1146
|
+
JSON.stringify({ alg: "HS256", typ: "JWT" }),
|
|
1147
|
+
).toString("base64url");
|
|
1148
|
+
const body = Buffer.from(JSON.stringify(payload)).toString("base64url");
|
|
1149
|
+
const sig = createHmac("sha256", secret)
|
|
1150
|
+
.update(`${header}.${body}`)
|
|
1151
|
+
.digest("base64url");
|
|
1152
|
+
return `${header}.${body}.${sig}`;
|
|
1153
|
+
}
|
|
@@ -126,12 +126,6 @@ const serverDisconnectErrors = {
|
|
|
126
126
|
VectorIndexesUnavailable: { timeout: 1000 },
|
|
127
127
|
SearchIndexesUnavailable: { timeout: 1000 },
|
|
128
128
|
TableSummariesUnavailable: { timeout: 1000 },
|
|
129
|
-
// ErrorMetadata::service_unavailable() when backend/conductor is unreachable
|
|
130
|
-
ServiceUnavailable: { timeout: 3000 },
|
|
131
|
-
// ErrorMetadata::rejected_before_execution() when funrun workers are unavailable
|
|
132
|
-
WorkerOverloaded: { timeout: 3000 },
|
|
133
|
-
IsolateNotClean: { timeout: 3000 },
|
|
134
|
-
InitialPermitTimeoutError: { timeout: 3000 },
|
|
135
129
|
// More ErrorMetadata::overloaded()
|
|
136
130
|
VectorIndexTooLarge: { timeout: 3000 },
|
|
137
131
|
SearchIndexTooLarge: { timeout: 3000 },
|
|
@@ -235,7 +229,7 @@ export class WebSocketManager {
|
|
|
235
229
|
|
|
236
230
|
// backoff for unknown errors
|
|
237
231
|
this.defaultInitialBackoff = 1000;
|
|
238
|
-
this.maxBackoff =
|
|
232
|
+
this.maxBackoff = 16000;
|
|
239
233
|
this.retries = 0;
|
|
240
234
|
|
|
241
235
|
// Ping messages (sync protocol Pings, not WebSocket protocol Pings) are
|
package/src/cli/aiFiles.ts
CHANGED
|
@@ -1,22 +1,26 @@
|
|
|
1
1
|
import path from "path";
|
|
2
2
|
import { Command } from "@commander-js/extra-typings";
|
|
3
|
+
import { chalkStderr } from "chalk";
|
|
4
|
+
import { logMessage } from "../bundler/log.js";
|
|
3
5
|
import { oneoffContext } from "../bundler/context.js";
|
|
4
6
|
import { readProjectConfig } from "./lib/config.js";
|
|
5
7
|
import { functionsDir } from "./lib/utils/utils.js";
|
|
6
8
|
import {
|
|
7
|
-
|
|
9
|
+
installAiFiles,
|
|
8
10
|
enableAiFiles,
|
|
9
|
-
removeAiFiles,
|
|
10
11
|
disableAiFiles,
|
|
11
|
-
|
|
12
|
-
} from "./lib/
|
|
12
|
+
removeAiFiles,
|
|
13
|
+
} from "./lib/aiFiles/index.js";
|
|
14
|
+
import { statusAiFiles } from "./lib/aiFiles/status.js";
|
|
15
|
+
import { writeAiFilesConfig } from "./lib/config.js";
|
|
13
16
|
|
|
14
17
|
async function resolveProjectPaths() {
|
|
15
18
|
const ctx = await oneoffContext({});
|
|
16
19
|
const { configPath, projectConfig } = await readProjectConfig(ctx);
|
|
17
20
|
const convexDir = path.resolve(functionsDir(configPath, projectConfig));
|
|
18
21
|
const projectDir = path.resolve(path.dirname(configPath));
|
|
19
|
-
|
|
22
|
+
const aiFilesConfig = projectConfig.aiFiles;
|
|
23
|
+
return { projectDir, convexDir, aiFilesConfig, projectConfig };
|
|
20
24
|
}
|
|
21
25
|
|
|
22
26
|
const aiInstall = new Command("install")
|
|
@@ -26,61 +30,78 @@ const aiInstall = new Command("install")
|
|
|
26
30
|
" - convex/_generated/ai/guidelines.md\n" +
|
|
27
31
|
" - AGENTS.md (Convex section only)\n" +
|
|
28
32
|
" - CLAUDE.md (Convex section only)\n" +
|
|
29
|
-
" - Agent skills (installed to each coding agent's native path)
|
|
30
|
-
"Files you have edited yourself are detected via content hashing and skipped\n" +
|
|
31
|
-
"rather than silently overwritten.",
|
|
33
|
+
" - Agent skills (installed to each coding agent's native path, configured via convex.json)",
|
|
32
34
|
)
|
|
33
35
|
.allowExcessArguments(false)
|
|
34
36
|
.action(async () => {
|
|
35
|
-
const { projectDir, convexDir } =
|
|
36
|
-
|
|
37
|
+
const { projectDir, convexDir, aiFilesConfig } =
|
|
38
|
+
await resolveProjectPaths();
|
|
39
|
+
await installAiFiles({ projectDir, convexDir, aiFilesConfig });
|
|
40
|
+
|
|
41
|
+
logMessage(`${chalkStderr.green("✔")} Convex AI files installed.`);
|
|
37
42
|
});
|
|
38
43
|
|
|
39
44
|
const aiEnable = new Command("enable")
|
|
40
|
-
.summary("Enable Convex AI
|
|
45
|
+
.summary("Enable Convex AI files")
|
|
41
46
|
.description(
|
|
42
|
-
"Re-enables AI
|
|
43
|
-
"`
|
|
44
|
-
"or refreshes the managed AI files.",
|
|
47
|
+
"Re-enables Convex AI files by writing `aiFiles.enabled: true` to\n" +
|
|
48
|
+
"`convex.json`, then installs or refreshes the managed AI files.",
|
|
45
49
|
)
|
|
46
50
|
.allowExcessArguments(false)
|
|
47
51
|
.action(async () => {
|
|
48
|
-
const { projectDir, convexDir } =
|
|
49
|
-
|
|
52
|
+
const { projectDir, convexDir, aiFilesConfig } =
|
|
53
|
+
await resolveProjectPaths();
|
|
54
|
+
|
|
55
|
+
const newAiFilesConfig = await enableAiFiles({
|
|
56
|
+
projectDir,
|
|
57
|
+
convexDir,
|
|
58
|
+
aiFilesConfig,
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
await writeAiFilesConfig({ projectDir, aiFiles: newAiFilesConfig });
|
|
50
62
|
});
|
|
51
63
|
|
|
52
64
|
const aiUpdate = new Command("update")
|
|
53
65
|
.summary("Update Convex AI files to the latest version")
|
|
54
66
|
.description(
|
|
55
|
-
"Updates the following
|
|
67
|
+
"Updates the following to their latest versions:\n" +
|
|
56
68
|
" - convex/_generated/ai/guidelines.md\n" +
|
|
57
69
|
" - AGENTS.md (Convex section only)\n" +
|
|
58
70
|
" - CLAUDE.md (Convex section only)\n" +
|
|
59
|
-
" - Agent skills (installed to each coding agent's native path)\n\n"
|
|
60
|
-
"Files you have edited yourself are detected via content hashing and skipped\n" +
|
|
61
|
-
"rather than silently overwritten.\n\n" +
|
|
62
|
-
"Does not change `aiFiles.disableStalenessMessage` in `convex.json`.\n" +
|
|
63
|
-
"Run `npx convex ai-files enable` to enable staleness/install messages.",
|
|
71
|
+
" - Agent skills (installed to each coding agent's native path, configured via convex.json)\n\n",
|
|
64
72
|
)
|
|
65
73
|
.allowExcessArguments(false)
|
|
66
74
|
.action(async () => {
|
|
67
|
-
const { projectDir, convexDir } =
|
|
68
|
-
|
|
75
|
+
const { projectDir, convexDir, aiFilesConfig } =
|
|
76
|
+
await resolveProjectPaths();
|
|
77
|
+
await installAiFiles({ projectDir, convexDir, aiFilesConfig });
|
|
78
|
+
|
|
79
|
+
logMessage(`${chalkStderr.green("✔")} Convex AI files updated.`);
|
|
69
80
|
});
|
|
70
81
|
|
|
71
82
|
const aiDisable = new Command("disable")
|
|
72
|
-
.summary("
|
|
83
|
+
.summary("Disable Convex AI files without removing them")
|
|
73
84
|
.description(
|
|
74
|
-
"Writes
|
|
75
|
-
"
|
|
85
|
+
"Writes `aiFiles.enabled: false` to `convex.json` so `npx convex dev`\n" +
|
|
86
|
+
"stops prompting to install AI files and suppresses staleness messages.\n\n" +
|
|
76
87
|
"Files already installed are left untouched - use `npx convex ai-files remove`\n" +
|
|
77
88
|
"if you also want to delete them.\n\n" +
|
|
78
89
|
"Run `npx convex ai-files enable` to re-enable at any time.",
|
|
79
90
|
)
|
|
80
91
|
.allowExcessArguments(false)
|
|
81
92
|
.action(async () => {
|
|
82
|
-
const { projectDir } = await resolveProjectPaths();
|
|
83
|
-
|
|
93
|
+
const { projectDir, aiFilesConfig } = await resolveProjectPaths();
|
|
94
|
+
|
|
95
|
+
const newAiFilesConfig = disableAiFiles(aiFilesConfig);
|
|
96
|
+
|
|
97
|
+
await writeAiFilesConfig({
|
|
98
|
+
projectDir,
|
|
99
|
+
aiFiles: newAiFilesConfig,
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
logMessage(
|
|
103
|
+
`${chalkStderr.green(`✔`)} Convex AI files disabled. Run ${chalkStderr.bold(`npx convex ai-files enable`)} to re-enable.`,
|
|
104
|
+
);
|
|
84
105
|
});
|
|
85
106
|
|
|
86
107
|
const aiStatus = new Command("status")
|
|
@@ -97,8 +118,10 @@ const aiStatus = new Command("status")
|
|
|
97
118
|
)
|
|
98
119
|
.allowExcessArguments(false)
|
|
99
120
|
.action(async () => {
|
|
100
|
-
const { projectDir, convexDir } =
|
|
101
|
-
|
|
121
|
+
const { projectDir, convexDir, aiFilesConfig } =
|
|
122
|
+
await resolveProjectPaths();
|
|
123
|
+
|
|
124
|
+
await statusAiFiles({ projectDir, convexDir, aiFilesConfig });
|
|
102
125
|
});
|
|
103
126
|
|
|
104
127
|
const aiRemove = new Command("remove")
|
|
@@ -112,12 +135,12 @@ const aiRemove = new Command("remove")
|
|
|
112
135
|
"empty file is deleted. Otherwise the rest of the file is kept.\n\n" +
|
|
113
136
|
"Skills installed from other sources are not affected.\n\n" +
|
|
114
137
|
"Note: after `remove`, `npx convex dev` will suggest reinstalling AI files.\n" +
|
|
115
|
-
"Use `npx convex ai-files disable` to
|
|
138
|
+
"Use `npx convex ai-files disable` to opt out entirely without deleting files.",
|
|
116
139
|
)
|
|
117
140
|
.allowExcessArguments(false)
|
|
118
141
|
.action(async () => {
|
|
119
142
|
const { projectDir, convexDir } = await resolveProjectPaths();
|
|
120
|
-
await removeAiFiles(projectDir, convexDir);
|
|
143
|
+
await removeAiFiles({ projectDir, convexDir });
|
|
121
144
|
});
|
|
122
145
|
|
|
123
146
|
export const aiFiles = new Command("ai-files")
|
|
@@ -37,7 +37,20 @@ export const myQueryFunction = query({
|
|
|
37
37
|
Using this query function in a React component looks like:
|
|
38
38
|
|
|
39
39
|
\`\`\`ts
|
|
40
|
-
const
|
|
40
|
+
const state = useQuery({
|
|
41
|
+
query: api.myFunctions.myQueryFunction,
|
|
42
|
+
args: { first: 10, second: "hello" },
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
if (state.status === "pending") {
|
|
46
|
+
return <div>Loading...</div>;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
if (state.status === "error") {
|
|
50
|
+
return <div>Error: {state.error.message}</div>;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
const data = state.data;
|
|
41
54
|
\`\`\`
|
|
42
55
|
|
|
43
56
|
|