convex 1.34.1 → 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 +86 -43
- package/dist/browser.bundle.js +8 -2
- 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/cli/aiFiles.js +31 -13
- 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 +21 -24
- 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 +14 -10
- package/dist/cjs/cli/lib/aiFiles/agentsmd.js.map +2 -2
- package/dist/cjs/cli/lib/aiFiles/claudemd.js +14 -10
- package/dist/cjs/cli/lib/aiFiles/claudemd.js.map +2 -2
- package/dist/cjs/cli/lib/aiFiles/guidelinesmd.js +10 -3
- package/dist/cjs/cli/lib/aiFiles/guidelinesmd.js.map +2 -2
- package/dist/cjs/cli/lib/aiFiles/index.js +70 -86
- package/dist/cjs/cli/lib/aiFiles/index.js.map +3 -3
- package/dist/cjs/cli/lib/aiFiles/skills.js +28 -12
- package/dist/cjs/cli/lib/aiFiles/skills.js.map +2 -2
- 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 +31 -28
- package/dist/cjs/cli/lib/aiFiles/status.js.map +2 -2
- package/dist/cjs/cli/lib/aiFiles/utils.js +31 -14
- package/dist/cjs/cli/lib/aiFiles/utils.js.map +2 -2
- 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 +4 -5
- package/dist/cjs/cli/lib/command.js.map +2 -2
- package/dist/cjs/cli/lib/config.js +41 -4
- 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 +14 -7
- 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 +8 -9
- 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/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/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 +5 -5
- package/dist/cjs-types/cli/lib/aiFiles/agentsmd.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/aiFiles/claudemd.d.ts +5 -5
- package/dist/cjs-types/cli/lib/aiFiles/claudemd.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/aiFiles/guidelinesmd.d.ts +3 -3
- package/dist/cjs-types/cli/lib/aiFiles/guidelinesmd.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/aiFiles/index.d.ts +20 -18
- package/dist/cjs-types/cli/lib/aiFiles/index.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/aiFiles/skills.d.ts +6 -4
- package/dist/cjs-types/cli/lib/aiFiles/skills.d.ts.map +1 -1
- 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 +4 -1
- package/dist/cjs-types/cli/lib/aiFiles/status.d.ts.map +1 -1
- package/dist/cjs-types/cli/lib/aiFiles/utils.d.ts +13 -3
- package/dist/cjs-types/cli/lib/aiFiles/utils.d.ts.map +1 -1
- 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 +17 -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/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 +1670 -1214
- 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/cli/aiFiles.js +33 -15
- 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 +23 -26
- 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 +13 -9
- package/dist/esm/cli/lib/aiFiles/agentsmd.js.map +2 -2
- package/dist/esm/cli/lib/aiFiles/claudemd.js +13 -9
- package/dist/esm/cli/lib/aiFiles/claudemd.js.map +2 -2
- package/dist/esm/cli/lib/aiFiles/guidelinesmd.js +12 -5
- package/dist/esm/cli/lib/aiFiles/guidelinesmd.js.map +2 -2
- package/dist/esm/cli/lib/aiFiles/index.js +72 -89
- package/dist/esm/cli/lib/aiFiles/index.js.map +2 -2
- package/dist/esm/cli/lib/aiFiles/skills.js +29 -13
- package/dist/esm/cli/lib/aiFiles/skills.js.map +2 -2
- 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 +32 -29
- package/dist/esm/cli/lib/aiFiles/status.js.map +2 -2
- package/dist/esm/cli/lib/aiFiles/utils.js +25 -10
- package/dist/esm/cli/lib/aiFiles/utils.js.map +2 -2
- 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 +4 -5
- package/dist/esm/cli/lib/command.js.map +2 -2
- package/dist/esm/cli/lib/config.js +39 -3
- 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 +11 -9
- 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/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/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 +5 -5
- package/dist/esm-types/cli/lib/aiFiles/agentsmd.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/aiFiles/claudemd.d.ts +5 -5
- package/dist/esm-types/cli/lib/aiFiles/claudemd.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/aiFiles/guidelinesmd.d.ts +3 -3
- package/dist/esm-types/cli/lib/aiFiles/guidelinesmd.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/aiFiles/index.d.ts +20 -18
- package/dist/esm-types/cli/lib/aiFiles/index.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/aiFiles/skills.d.ts +6 -4
- package/dist/esm-types/cli/lib/aiFiles/skills.d.ts.map +1 -1
- 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 +4 -1
- package/dist/esm-types/cli/lib/aiFiles/status.d.ts.map +1 -1
- package/dist/esm-types/cli/lib/aiFiles/utils.d.ts +13 -3
- package/dist/esm-types/cli/lib/aiFiles/utils.d.ts.map +1 -1
- 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 +17 -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/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 +50 -7
- package/dist/react.bundle.js.map +3 -3
- package/package.json +11 -7
- package/schemas/convex.schema.json +15 -2
- 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/cli/aiFiles.ts +44 -14
- package/src/cli/codegen_templates/readme.ts +14 -1
- package/src/cli/configure.test.ts +138 -0
- package/src/cli/configure.ts +48 -47
- 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 +343 -35
- 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/aiFiles/agentsmd.ts +15 -11
- package/src/cli/lib/aiFiles/claudemd.ts +15 -11
- package/src/cli/lib/aiFiles/guidelinesmd.test.ts +12 -2
- package/src/cli/lib/aiFiles/guidelinesmd.ts +15 -7
- package/src/cli/lib/aiFiles/index.test.ts +188 -222
- package/src/cli/lib/aiFiles/index.ts +119 -125
- package/src/cli/lib/aiFiles/integration.test.ts +112 -45
- package/src/cli/lib/aiFiles/prompt.test.ts +6 -6
- package/src/cli/lib/aiFiles/skills.ts +46 -16
- 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 +45 -39
- package/src/cli/lib/aiFiles/utils.test.ts +50 -0
- package/src/cli/lib/aiFiles/utils.ts +38 -10
- package/src/cli/lib/api.ts +88 -7
- package/src/cli/lib/command.ts +12 -7
- package/src/cli/lib/config.test.ts +184 -7
- package/src/cli/lib/config.ts +67 -7
- 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 +102 -75
- package/src/cli/lib/updates.ts +14 -12
- 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/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/aiFiles/config.js +0 -171
- package/dist/cjs/cli/lib/aiFiles/config.js.map +0 -7
- package/dist/cjs-types/cli/lib/aiFiles/config.d.ts +0 -46
- package/dist/cjs-types/cli/lib/aiFiles/config.d.ts.map +0 -1
- package/dist/cjs-types/cli/lib/aiFiles/config.test.d.ts +0 -2
- package/dist/cjs-types/cli/lib/aiFiles/config.test.d.ts.map +0 -1
- package/dist/esm/cli/lib/aiFiles/config.js +0 -135
- package/dist/esm/cli/lib/aiFiles/config.js.map +0 -7
- package/dist/esm-types/cli/lib/aiFiles/config.d.ts +0 -46
- package/dist/esm-types/cli/lib/aiFiles/config.d.ts.map +0 -1
- package/dist/esm-types/cli/lib/aiFiles/config.test.d.ts +0 -2
- package/dist/esm-types/cli/lib/aiFiles/config.test.d.ts.map +0 -1
- package/src/cli/lib/aiFiles/config.test.ts +0 -460
- package/src/cli/lib/aiFiles/config.ts +0 -188
- package/src/values/.claude/settings.local.json +0 -10
package/src/cli/dev.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Command, Option } from "@commander-js/extra-typings";
|
|
2
|
+
import { chalkStderr } from "chalk";
|
|
2
3
|
import { oneoffContext } from "../bundler/context.js";
|
|
3
4
|
import { logVerbose } from "../bundler/log.js";
|
|
4
5
|
import { deploymentCredentialsOrConfigure } from "./configure.js";
|
|
@@ -9,8 +10,11 @@ import {
|
|
|
9
10
|
CONVEX_DEPLOYMENT_ENV_VAR_NAME,
|
|
10
11
|
CONVEX_SELF_HOSTED_URL_VAR_NAME,
|
|
11
12
|
} from "./lib/utils/utils.js";
|
|
12
|
-
import {
|
|
13
|
-
|
|
13
|
+
import {
|
|
14
|
+
getDeploymentSelection,
|
|
15
|
+
type DeploymentSelection,
|
|
16
|
+
} from "./lib/deploymentSelection.js";
|
|
17
|
+
import { checkVersionAndAiFilesStaleness } from "./lib/updates.js";
|
|
14
18
|
|
|
15
19
|
export const dev = new Command("dev")
|
|
16
20
|
.summary("Develop against a dev deployment, watching for changes")
|
|
@@ -18,7 +22,7 @@ export const dev = new Command("dev")
|
|
|
18
22
|
"Develop against a dev deployment, watching for changes\n\n" +
|
|
19
23
|
" 1. Configures a new or existing project (if needed)\n" +
|
|
20
24
|
" 2. Updates generated types and pushes code to the configured dev deployment\n" +
|
|
21
|
-
" 3. Runs the provided command (if `--
|
|
25
|
+
" 3. Runs the provided command (if `--start` or `--run` is used)\n" +
|
|
22
26
|
" 4. Watches for file changes, and repeats step 2\n",
|
|
23
27
|
)
|
|
24
28
|
.allowExcessArguments(false)
|
|
@@ -59,25 +63,31 @@ export const dev = new Command("dev")
|
|
|
59
63
|
"Execute only the first 3 steps, on failure watch for local and remote changes and retry steps 2 and 3",
|
|
60
64
|
false,
|
|
61
65
|
)
|
|
66
|
+
.addOption(
|
|
67
|
+
new Option(
|
|
68
|
+
"--start <command>",
|
|
69
|
+
"Start a long-running command alongside `convex dev`, like a frontend " +
|
|
70
|
+
"dev server. The command inherits stdin/stdout so you can interact " +
|
|
71
|
+
"with it directly. Example: npx convex dev --start 'vite --open'",
|
|
72
|
+
).conflicts(["--run", "--run-sh"]),
|
|
73
|
+
)
|
|
74
|
+
.addOption(
|
|
75
|
+
new Option("--run-sh <command>", "Deprecated: use --start instead.")
|
|
76
|
+
.conflicts(["--start", "--run"])
|
|
77
|
+
.hideHelp(),
|
|
78
|
+
)
|
|
62
79
|
.addOption(
|
|
63
80
|
new Option(
|
|
64
81
|
"--run <functionName>",
|
|
65
82
|
"The identifier of the function to run in step 3, " +
|
|
66
83
|
"like `api.init.createData` or `myDir/myFile:myFunction`",
|
|
67
|
-
).conflicts(["--
|
|
84
|
+
).conflicts(["--start"]),
|
|
68
85
|
)
|
|
69
86
|
.option(
|
|
70
87
|
"--run-component <functionName>",
|
|
71
88
|
"If --run is used and the function is in a component, the path the component tree defined in convex.config.ts. " +
|
|
72
89
|
"Components are a beta feature. This flag is unstable and may change in subsequent releases.",
|
|
73
90
|
)
|
|
74
|
-
.addOption(
|
|
75
|
-
new Option(
|
|
76
|
-
"--run-sh <command>",
|
|
77
|
-
"A shell command to run in step 3, like `node myScript.js`. " +
|
|
78
|
-
"If you just want to run a Convex function, use `--run` instead.",
|
|
79
|
-
).conflicts(["--run"]),
|
|
80
|
-
)
|
|
81
91
|
.addOption(
|
|
82
92
|
new Option(
|
|
83
93
|
"--tail-logs [mode]",
|
|
@@ -96,7 +106,7 @@ export const dev = new Command("dev")
|
|
|
96
106
|
"Ignore existing configuration and configure new or existing project, interactively or set by --team <team_slug>, --project <project_slug>, and --dev-deployment local|cloud",
|
|
97
107
|
)
|
|
98
108
|
.choices(["new", "existing"] as const)
|
|
99
|
-
.conflicts(["--local", "--cloud"]),
|
|
109
|
+
.conflicts(["--local", "--cloud", "--url", "--admin-key", "--env-file"]),
|
|
100
110
|
)
|
|
101
111
|
.addOption(
|
|
102
112
|
new Option(
|
|
@@ -147,6 +157,7 @@ Same format as .env.local or .env files, and overrides them.`,
|
|
|
147
157
|
.addOption(new Option("--local-site-port <port>").hideHelp())
|
|
148
158
|
.addOption(new Option("--local-backend-version <version>").hideHelp())
|
|
149
159
|
.addOption(new Option("--local-force-upgrade").default(false).hideHelp())
|
|
160
|
+
.addOption(new Option("--deployment <deployment>").hideHelp())
|
|
150
161
|
.addOption(
|
|
151
162
|
new Option(
|
|
152
163
|
"--local",
|
|
@@ -173,6 +184,20 @@ Same format as .env.local or .env files, and overrides them.`,
|
|
|
173
184
|
await ctx.flushAndExit(-2);
|
|
174
185
|
});
|
|
175
186
|
|
|
187
|
+
if (cmdOptions.deployment !== undefined) {
|
|
188
|
+
return await ctx.crash({
|
|
189
|
+
exitCode: 1,
|
|
190
|
+
errorType: "fatal",
|
|
191
|
+
printedMessage:
|
|
192
|
+
"`--deployment` can’t be used with `npx convex dev`. \n\n" +
|
|
193
|
+
" To select this deployment for development, run: \n" +
|
|
194
|
+
chalkStderr.bold(
|
|
195
|
+
` npx convex deployment select ${cmdOptions.deployment}\n`,
|
|
196
|
+
) +
|
|
197
|
+
" Then, run `npx convex dev` again.",
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
|
|
176
201
|
const devOptions = await normalizeDevOptions(ctx, cmdOptions);
|
|
177
202
|
|
|
178
203
|
if (cmdOptions.configure === undefined) {
|
|
@@ -225,7 +250,17 @@ Same format as .env.local or .env files, and overrides them.`,
|
|
|
225
250
|
|
|
226
251
|
const configure =
|
|
227
252
|
cmdOptions.configure === true ? "ask" : (cmdOptions.configure ?? null);
|
|
228
|
-
|
|
253
|
+
// --configure means "pick a project" — skip deployment selection entirely
|
|
254
|
+
const deploymentSelection =
|
|
255
|
+
configure !== null
|
|
256
|
+
? ({
|
|
257
|
+
kind: "chooseProject",
|
|
258
|
+
selectionWithinProject: {
|
|
259
|
+
// For backwards compatibility, allow `--configure --prod`
|
|
260
|
+
kind: cmdOptions.prod ? "prod" : "unspecified",
|
|
261
|
+
},
|
|
262
|
+
} satisfies DeploymentSelection)
|
|
263
|
+
: await getDeploymentSelection(ctx, cmdOptions);
|
|
229
264
|
const credentials = await deploymentCredentialsOrConfigure(
|
|
230
265
|
ctx,
|
|
231
266
|
deploymentSelection,
|
|
@@ -260,7 +295,7 @@ Same format as .env.local or .env files, and overrides them.`,
|
|
|
260
295
|
...(credentials.deploymentFields !== null
|
|
261
296
|
? [
|
|
262
297
|
usageStateWarning(ctx, credentials.deploymentFields.deploymentName),
|
|
263
|
-
|
|
298
|
+
checkVersionAndAiFilesStaleness(ctx),
|
|
264
299
|
]
|
|
265
300
|
: []),
|
|
266
301
|
]);
|
package/src/cli/docs.ts
CHANGED
|
@@ -38,7 +38,7 @@ export const docs = new Command("docs")
|
|
|
38
38
|
`get_cookie/${configuredDeployment}`,
|
|
39
39
|
BIG_BRAIN_URL,
|
|
40
40
|
);
|
|
41
|
-
const fetch =
|
|
41
|
+
const fetch = bigBrainFetch(ctx);
|
|
42
42
|
try {
|
|
43
43
|
const res = await fetch(getCookieUrl);
|
|
44
44
|
deprecationCheckWarning(ctx, res);
|
package/src/cli/init.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { oneoffContext } from "../bundler/context.js";
|
|
|
3
3
|
import { logVerbose } from "../bundler/log.js";
|
|
4
4
|
import { deploymentCredentialsOrConfigure } from "./configure.js";
|
|
5
5
|
import { getDeploymentSelection } from "./lib/deploymentSelection.js";
|
|
6
|
-
import {
|
|
6
|
+
import { checkVersionAndAiFilesStaleness } from "./lib/updates.js";
|
|
7
7
|
import { usageStateWarning } from "./lib/usage.js";
|
|
8
8
|
|
|
9
9
|
// Equivalent to `npx convex dev --once --skip-push`.
|
|
@@ -37,7 +37,7 @@ export const init = new Command("init")
|
|
|
37
37
|
if (credentials.deploymentFields !== null) {
|
|
38
38
|
await Promise.all([
|
|
39
39
|
usageStateWarning(ctx, credentials.deploymentFields.deploymentName),
|
|
40
|
-
|
|
40
|
+
checkVersionAndAiFilesStaleness(ctx),
|
|
41
41
|
]);
|
|
42
42
|
}
|
|
43
43
|
|
|
@@ -4,16 +4,18 @@ import {
|
|
|
4
4
|
agentsMdConvexSection,
|
|
5
5
|
} from "../../codegen_templates/agentsmd.js";
|
|
6
6
|
import { agentsMdPath } from "./paths.js";
|
|
7
|
-
import { type
|
|
7
|
+
import { type AiFilesState } from "./state.js";
|
|
8
8
|
import {
|
|
9
9
|
type ManagedSectionTarget,
|
|
10
10
|
type InjectResult,
|
|
11
11
|
type StripResult,
|
|
12
12
|
injectManagedSection,
|
|
13
|
-
|
|
13
|
+
attemptToStripManagedSection,
|
|
14
14
|
hasManagedSection,
|
|
15
|
-
|
|
15
|
+
attemptToRemoveMarkdownSection,
|
|
16
16
|
} from "./utils.js";
|
|
17
|
+
import { logMessage } from "../../../bundler/log.js";
|
|
18
|
+
import { chalkStderr } from "chalk";
|
|
17
19
|
|
|
18
20
|
function target(projectDir?: string): ManagedSectionTarget {
|
|
19
21
|
return {
|
|
@@ -33,18 +35,18 @@ export async function injectAgentsMdSection({
|
|
|
33
35
|
return injectManagedSection({ ...target(projectDir), section });
|
|
34
36
|
}
|
|
35
37
|
|
|
36
|
-
export async function
|
|
38
|
+
export async function attemptToStripAgentsMdSection(
|
|
37
39
|
projectDir: string,
|
|
38
40
|
): Promise<StripResult> {
|
|
39
|
-
return
|
|
41
|
+
return attemptToStripManagedSection(target(projectDir));
|
|
40
42
|
}
|
|
41
43
|
|
|
42
|
-
export async function
|
|
44
|
+
export async function attemptToRemoveAgentsMdSection(
|
|
43
45
|
projectDir: string,
|
|
44
46
|
): Promise<boolean> {
|
|
45
|
-
return
|
|
47
|
+
return attemptToRemoveMarkdownSection({
|
|
46
48
|
projectDir,
|
|
47
|
-
strip:
|
|
49
|
+
strip: attemptToStripAgentsMdSection,
|
|
48
50
|
fileName: "AGENTS.md",
|
|
49
51
|
});
|
|
50
52
|
}
|
|
@@ -61,17 +63,19 @@ export async function hasAgentsMdInstalled(
|
|
|
61
63
|
*/
|
|
62
64
|
export async function applyAgentsMdSection({
|
|
63
65
|
projectDir,
|
|
64
|
-
|
|
66
|
+
state,
|
|
65
67
|
convexDirName,
|
|
66
68
|
}: {
|
|
67
69
|
projectDir: string;
|
|
68
|
-
|
|
70
|
+
state: AiFilesState;
|
|
69
71
|
convexDirName: string;
|
|
70
72
|
}): Promise<boolean> {
|
|
71
73
|
const result = await injectAgentsMdSection({
|
|
72
74
|
section: agentsMdConvexSection(convexDirName),
|
|
73
75
|
projectDir,
|
|
74
76
|
});
|
|
75
|
-
|
|
77
|
+
if (result.didWrite)
|
|
78
|
+
logMessage(`${chalkStderr.green("✔")} AGENTS.md written`);
|
|
79
|
+
state.agentsMdSectionHash = result.sectionHash;
|
|
76
80
|
return result.didWrite;
|
|
77
81
|
}
|
|
@@ -4,16 +4,18 @@ import {
|
|
|
4
4
|
claudeMdConvexSection,
|
|
5
5
|
} from "../../codegen_templates/claudemd.js";
|
|
6
6
|
import { claudeMdPath } from "./paths.js";
|
|
7
|
-
import { type
|
|
7
|
+
import { type AiFilesState } from "./state.js";
|
|
8
8
|
import {
|
|
9
9
|
type ManagedSectionTarget,
|
|
10
10
|
type InjectResult,
|
|
11
11
|
type StripResult,
|
|
12
12
|
injectManagedSection,
|
|
13
|
-
|
|
13
|
+
attemptToStripManagedSection,
|
|
14
14
|
hasManagedSection,
|
|
15
|
-
|
|
15
|
+
attemptToRemoveMarkdownSection,
|
|
16
16
|
} from "./utils.js";
|
|
17
|
+
import { logMessage } from "../../../bundler/log.js";
|
|
18
|
+
import { chalkStderr } from "chalk";
|
|
17
19
|
|
|
18
20
|
function target(projectDir?: string): ManagedSectionTarget {
|
|
19
21
|
return {
|
|
@@ -33,18 +35,18 @@ export async function injectClaudeMdSection({
|
|
|
33
35
|
return injectManagedSection({ ...target(projectDir), section });
|
|
34
36
|
}
|
|
35
37
|
|
|
36
|
-
export async function
|
|
38
|
+
export async function attemptToStripClaudeMdSection(
|
|
37
39
|
projectDir: string,
|
|
38
40
|
): Promise<StripResult> {
|
|
39
|
-
return
|
|
41
|
+
return attemptToStripManagedSection(target(projectDir));
|
|
40
42
|
}
|
|
41
43
|
|
|
42
|
-
export async function
|
|
44
|
+
export async function attemptToRemoveClaudeMdSection(
|
|
43
45
|
projectDir: string,
|
|
44
46
|
): Promise<boolean> {
|
|
45
|
-
return
|
|
47
|
+
return attemptToRemoveMarkdownSection({
|
|
46
48
|
projectDir,
|
|
47
|
-
strip:
|
|
49
|
+
strip: attemptToStripClaudeMdSection,
|
|
48
50
|
fileName: "CLAUDE.md",
|
|
49
51
|
});
|
|
50
52
|
}
|
|
@@ -61,17 +63,19 @@ export async function hasClaudeMdInstalled(
|
|
|
61
63
|
*/
|
|
62
64
|
export async function applyClaudeMdSection({
|
|
63
65
|
projectDir,
|
|
64
|
-
|
|
66
|
+
state,
|
|
65
67
|
convexDirName,
|
|
66
68
|
}: {
|
|
67
69
|
projectDir: string;
|
|
68
|
-
|
|
70
|
+
state: AiFilesState;
|
|
69
71
|
convexDirName: string;
|
|
70
72
|
}): Promise<boolean> {
|
|
71
73
|
const result = await injectClaudeMdSection({
|
|
72
74
|
section: claudeMdConvexSection(convexDirName),
|
|
73
75
|
projectDir,
|
|
74
76
|
});
|
|
75
|
-
|
|
77
|
+
if (result.didWrite)
|
|
78
|
+
logMessage(`${chalkStderr.green("✔")} CLAUDE.md written`);
|
|
79
|
+
state.claudeMdHash = result.sectionHash;
|
|
76
80
|
return result.didWrite;
|
|
77
81
|
}
|
|
@@ -30,11 +30,21 @@ describe("hasGuidelinesInstalled", () => {
|
|
|
30
30
|
expect(await hasGuidelinesInstalled(convexDir)).toBe(true);
|
|
31
31
|
});
|
|
32
32
|
|
|
33
|
-
test("returns
|
|
33
|
+
test("returns false when guidelines.md is empty", async () => {
|
|
34
34
|
fs.writeFileSync(
|
|
35
35
|
path.join(convexDir, "_generated", "ai", "guidelines.md"),
|
|
36
36
|
"",
|
|
37
37
|
);
|
|
38
|
-
expect(await hasGuidelinesInstalled(convexDir)).toBe(
|
|
38
|
+
expect(await hasGuidelinesInstalled(convexDir)).toBe(false);
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
test("throws when guidelines.md cannot be read", async () => {
|
|
42
|
+
fs.rmSync(path.join(convexDir, "_generated", "ai", "guidelines.md"), {
|
|
43
|
+
force: true,
|
|
44
|
+
recursive: true,
|
|
45
|
+
});
|
|
46
|
+
fs.mkdirSync(path.join(convexDir, "_generated", "ai", "guidelines.md"));
|
|
47
|
+
|
|
48
|
+
await expect(hasGuidelinesInstalled(convexDir)).rejects.toThrow();
|
|
39
49
|
});
|
|
40
50
|
});
|
|
@@ -4,14 +4,17 @@ import { chalkStderr } from "chalk";
|
|
|
4
4
|
import { logMessage } from "../../../bundler/log.js";
|
|
5
5
|
import { downloadGuidelines } from "../versionApi.js";
|
|
6
6
|
import { hashSha256 } from "../utils/hash.js";
|
|
7
|
-
import { guidelinesPathForConvexDir } from "./paths.js";
|
|
8
|
-
import {
|
|
9
|
-
import { type
|
|
7
|
+
import { aiDirForConvexDir, guidelinesPathForConvexDir } from "./paths.js";
|
|
8
|
+
import { attemptReadFile, exhaustiveCheck } from "./utils.js";
|
|
9
|
+
import { type AiFilesState } from "./state.js";
|
|
10
10
|
|
|
11
11
|
export async function hasGuidelinesInstalled(
|
|
12
12
|
convexDir: string,
|
|
13
13
|
): Promise<boolean> {
|
|
14
|
-
|
|
14
|
+
const result = await attemptReadFile(guidelinesPathForConvexDir(convexDir));
|
|
15
|
+
if (result.kind === "content") return true;
|
|
16
|
+
if (result.kind === "empty" || result.kind === "not-found") return false;
|
|
17
|
+
return exhaustiveCheck(result);
|
|
15
18
|
}
|
|
16
19
|
|
|
17
20
|
/**
|
|
@@ -21,10 +24,10 @@ export async function hasGuidelinesInstalled(
|
|
|
21
24
|
*/
|
|
22
25
|
export async function installGuidelinesFile({
|
|
23
26
|
convexDir,
|
|
24
|
-
|
|
27
|
+
state,
|
|
25
28
|
}: {
|
|
26
29
|
convexDir: string;
|
|
27
|
-
|
|
30
|
+
state: AiFilesState;
|
|
28
31
|
}): Promise<void> {
|
|
29
32
|
const guidelines = await downloadGuidelines();
|
|
30
33
|
if (guidelines === null) {
|
|
@@ -36,6 +39,11 @@ export async function installGuidelinesFile({
|
|
|
36
39
|
return;
|
|
37
40
|
}
|
|
38
41
|
|
|
42
|
+
await fs.mkdir(aiDirForConvexDir(convexDir), { recursive: true });
|
|
39
43
|
await fs.writeFile(guidelinesPathForConvexDir(convexDir), guidelines, "utf8");
|
|
40
|
-
|
|
44
|
+
state.guidelinesHash = hashSha256(guidelines);
|
|
45
|
+
|
|
46
|
+
logMessage(
|
|
47
|
+
`${chalkStderr.green("✔")} ${guidelinesPathForConvexDir(convexDir)} written`,
|
|
48
|
+
);
|
|
41
49
|
}
|