@hubspot/cli 8.1.0-beta.0 → 8.1.0-experimental.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/api/migrate.js +8 -4
- package/bin/cli.js +12 -6
- package/commands/account/auth.js +7 -7
- package/commands/account/clean.js +7 -6
- package/commands/account/createOverride.js +10 -7
- package/commands/account/info.js +36 -17
- package/commands/account/link.d.ts +4 -0
- package/commands/account/link.js +89 -0
- package/commands/account/list.js +32 -76
- package/commands/account/remove.js +4 -3
- package/commands/account/removeOverride.js +11 -10
- package/commands/account/rename.js +5 -6
- package/commands/account/unlink.d.ts +4 -0
- package/commands/account/unlink.js +70 -0
- package/commands/account/use.js +75 -6
- package/commands/account.js +4 -0
- package/commands/api.d.ts +10 -0
- package/commands/api.js +164 -0
- package/commands/app/migrate.js +13 -13
- package/commands/app/secret/add.js +6 -7
- package/commands/app/secret/delete.js +9 -10
- package/commands/app/secret/list.js +6 -7
- package/commands/app/secret/update.js +8 -9
- package/commands/auth.js +19 -15
- package/commands/cms/app/create.js +9 -5
- package/commands/cms/convertFields.js +8 -8
- package/commands/cms/delete.js +2 -3
- package/commands/cms/fetch.js +7 -7
- package/commands/cms/function/create.js +9 -5
- package/commands/cms/function/deploy.js +2 -3
- package/commands/cms/function/list.js +11 -7
- package/commands/cms/function/logs.js +17 -22
- package/commands/cms/function/server.js +2 -3
- package/commands/cms/getReactModule.js +7 -8
- package/commands/cms/lighthouseScore.js +25 -24
- package/commands/cms/lint.js +4 -5
- package/commands/cms/list.js +5 -6
- package/commands/cms/module/create.js +9 -5
- package/commands/cms/module/marketplace-validate.js +7 -8
- package/commands/cms/mv.js +2 -3
- package/commands/cms/template/create.js +10 -6
- package/commands/cms/theme/create.js +5 -5
- package/commands/cms/theme/generate-selectors.js +5 -4
- package/commands/cms/theme/marketplace-validate.js +8 -9
- package/commands/cms/theme/preview.js +23 -70
- package/commands/cms/upload.js +15 -12
- package/commands/cms/watch.d.ts +0 -1
- package/commands/cms/watch.js +6 -12
- package/commands/cms/webpack/create.js +5 -5
- package/commands/completion.js +3 -5
- package/commands/config/migrate.js +6 -7
- package/commands/config/set.js +5 -6
- package/commands/customObject/create.js +4 -5
- package/commands/customObject/createSchema.js +4 -5
- package/commands/customObject/deleteSchema.js +4 -5
- package/commands/customObject/fetchAllSchemas.js +2 -3
- package/commands/customObject/fetchSchema.js +2 -3
- package/commands/customObject/listSchemas.js +2 -3
- package/commands/customObject/updateSchema.js +4 -5
- package/commands/doctor.js +8 -8
- package/commands/feedback.js +7 -5
- package/commands/filemanager/fetch.js +5 -6
- package/commands/filemanager/upload.js +5 -5
- package/commands/getStarted.js +17 -19
- package/commands/hubdb/clear.js +6 -3
- package/commands/hubdb/create.js +4 -5
- package/commands/hubdb/delete.js +9 -6
- package/commands/hubdb/fetch.js +6 -3
- package/commands/hubdb/list.js +16 -14
- package/commands/init.js +15 -14
- package/commands/mcp/setup.js +5 -14
- package/commands/mcp/start.js +2 -4
- package/commands/open.js +4 -5
- package/commands/project/add.js +13 -8
- package/commands/project/appInstallStatus.d.ts +4 -0
- package/commands/project/appInstallStatus.js +132 -0
- package/commands/project/create.js +28 -17
- package/commands/project/delete.d.ts +7 -0
- package/commands/project/delete.js +74 -0
- package/commands/project/deploy.js +39 -36
- package/commands/project/dev/deprecatedFlow.js +62 -17
- package/commands/project/dev/index.d.ts +3 -3
- package/commands/project/dev/index.js +59 -48
- package/commands/project/dev/unifiedFlow.js +70 -21
- package/commands/project/download.js +12 -9
- package/commands/project/info.d.ts +4 -0
- package/commands/project/info.js +67 -0
- package/commands/project/installDeps.js +9 -6
- package/commands/project/lint.js +31 -10
- package/commands/project/list.js +14 -14
- package/commands/project/listBuilds.js +8 -6
- package/commands/project/logs.js +5 -6
- package/commands/project/migrate.js +18 -18
- package/commands/project/open.js +5 -6
- package/commands/project/profile/add.js +12 -8
- package/commands/project/profile/delete.js +15 -11
- package/commands/project/updateDeps.js +9 -6
- package/commands/project/upload.js +33 -19
- package/commands/project/validate.js +12 -12
- package/commands/project/watch.js +32 -19
- package/commands/project.js +12 -3
- package/commands/sandbox/create.js +18 -45
- package/commands/sandbox/delete.js +13 -14
- package/commands/secret/addSecret.js +6 -7
- package/commands/secret/deleteSecret.js +5 -6
- package/commands/secret/listSecret.js +2 -3
- package/commands/secret/updateSecret.js +4 -5
- package/commands/testAccount/create.d.ts +1 -1
- package/commands/testAccount/create.js +25 -17
- package/commands/testAccount/createConfig.js +7 -8
- package/commands/testAccount/delete.js +27 -18
- package/commands/testAccount/importData.js +6 -7
- package/commands/upgrade.js +9 -10
- package/lang/en.d.ts +248 -14
- package/lang/en.js +265 -28
- package/lib/accountAuth.js +4 -0
- package/lib/app/migrate.js +18 -5
- package/lib/buildAccount.d.ts +1 -6
- package/lib/buildAccount.js +9 -42
- package/lib/commandSuggestion.js +1 -7
- package/lib/constants.d.ts +2 -4
- package/lib/constants.js +4 -4
- package/lib/doctor/Diagnosis.js +5 -5
- package/lib/doctor/Doctor.js +7 -7
- package/lib/errorHandlers/index.js +4 -3
- package/lib/errorHandlers/suppressError.js +4 -0
- package/lib/errors/PromptExitError.d.ts +6 -0
- package/lib/errors/PromptExitError.js +11 -0
- package/lib/generateSelectors.js +1 -2
- package/lib/getStartedV2Actions.d.ts +13 -0
- package/lib/getStartedV2Actions.js +56 -3
- package/lib/hasFeature.js +1 -2
- package/lib/link/accountTableUtils.d.ts +10 -0
- package/lib/link/accountTableUtils.js +39 -0
- package/lib/link/index.d.ts +18 -0
- package/lib/link/index.js +185 -0
- package/lib/link/linkUtils.d.ts +5 -0
- package/lib/link/linkUtils.js +49 -0
- package/lib/link/prompts.d.ts +7 -0
- package/lib/link/prompts.js +126 -0
- package/lib/link/renderLinkedAccountsTable.d.ts +2 -0
- package/lib/link/renderLinkedAccountsTable.js +14 -0
- package/lib/link/warnIfLinkedDirectory.d.ts +1 -0
- package/lib/link/warnIfLinkedDirectory.js +9 -0
- package/lib/mcp/setup.d.ts +1 -0
- package/lib/mcp/setup.js +77 -30
- package/lib/middleware/autoUpdateMiddleware.js +6 -3
- package/lib/process.d.ts +1 -1
- package/lib/process.js +10 -3
- package/lib/projects/ProjectLogsManager.js +6 -3
- package/lib/projects/components.js +15 -4
- package/lib/projects/create/index.js +3 -6
- package/lib/projects/create/legacy.js +5 -10
- package/lib/projects/create/v2.js +5 -14
- package/lib/projects/delete.d.ts +13 -0
- package/lib/projects/delete.js +193 -0
- package/lib/projects/deploy.d.ts +1 -1
- package/lib/projects/deploy.js +2 -2
- package/lib/projects/ensureProjectExists.js +1 -2
- package/lib/projects/localDev/AppDevModeInterface.js +13 -9
- package/lib/projects/localDev/DevServerManager_DEPRECATED.d.ts +4 -1
- package/lib/projects/localDev/DevServerManager_DEPRECATED.js +3 -3
- package/lib/projects/localDev/DevSessionManager.d.ts +6 -3
- package/lib/projects/localDev/DevSessionManager.js +31 -19
- package/lib/projects/localDev/LocalDevManager_DEPRECATED.d.ts +5 -0
- package/lib/projects/localDev/LocalDevManager_DEPRECATED.js +21 -10
- package/lib/projects/localDev/LocalDevProcess.js +6 -5
- package/lib/projects/localDev/LocalDevState.d.ts +3 -2
- package/lib/projects/localDev/LocalDevState.js +3 -1
- package/lib/projects/localDev/helpers/account.d.ts +4 -3
- package/lib/projects/localDev/helpers/account.js +21 -30
- package/lib/projects/localDev/helpers/process.d.ts +1 -1
- package/lib/projects/localDev/helpers/process.js +4 -10
- package/lib/projects/localDev/helpers/project.d.ts +4 -3
- package/lib/projects/localDev/helpers/project.js +31 -15
- package/lib/projects/pollProjectBuildAndDeploy.js +90 -85
- package/lib/projects/projectInfo.d.ts +5 -0
- package/lib/projects/projectInfo.js +82 -0
- package/lib/projects/projectProfiles.d.ts +1 -2
- package/lib/projects/projectProfiles.js +5 -17
- package/lib/projects/uieLinting.d.ts +17 -3
- package/lib/projects/uieLinting.js +93 -28
- package/lib/projects/upload.d.ts +1 -0
- package/lib/projects/upload.js +59 -49
- package/lib/projects/watch.d.ts +2 -1
- package/lib/projects/watch.js +32 -24
- package/lib/projects/workspaces.d.ts +52 -0
- package/lib/projects/workspaces.js +365 -0
- package/lib/prompts/createApiSamplePrompt.js +4 -0
- package/lib/prompts/downloadProjectPrompt.js +11 -10
- package/lib/prompts/installAppPrompt.js +3 -2
- package/lib/prompts/personalAccessKeyPrompt.js +3 -2
- package/lib/prompts/projectDevTargetAccountPrompt.d.ts +1 -0
- package/lib/prompts/projectDevTargetAccountPrompt.js +23 -16
- package/lib/prompts/projectProfilePrompt.d.ts +2 -0
- package/lib/prompts/projectProfilePrompt.js +46 -0
- package/lib/prompts/projectsLogsPrompt.js +3 -0
- package/lib/prompts/promptUtils.js +4 -2
- package/lib/prompts/selectHubDBTablePrompt.js +8 -4
- package/lib/prompts/selectPublicAppForMigrationPrompt.js +12 -6
- package/lib/sandboxes.d.ts +1 -9
- package/lib/sandboxes.js +0 -21
- package/lib/serverlessLogs.js +50 -44
- package/lib/theme/cmsDevServerProcess.d.ts +14 -0
- package/lib/theme/cmsDevServerProcess.js +149 -0
- package/lib/theme/cmsDevServerRunner.d.ts +14 -0
- package/lib/theme/cmsDevServerRunner.js +90 -0
- package/lib/theme/migrate.d.ts +1 -1
- package/lib/theme/migrate.js +1 -5
- package/lib/ui/SpinniesManager.d.ts +1 -0
- package/lib/ui/SpinniesManager.js +22 -6
- package/lib/ui/accountTable.d.ts +8 -0
- package/lib/ui/accountTable.js +67 -0
- package/lib/ui/spinniesUtils.d.ts +0 -1
- package/lib/ui/spinniesUtils.js +6 -16
- package/lib/usageTracking.d.ts +3 -4
- package/lib/usageTracking.js +9 -6
- package/lib/yargs/makeYargsBuilder.d.ts +13 -0
- package/lib/yargs/makeYargsBuilder.js +33 -0
- package/lib/yargs/makeYargsHandlerWithUsageTracking.d.ts +3 -0
- package/lib/yargs/makeYargsHandlerWithUsageTracking.js +95 -0
- package/lib/yargs/parseYargsOrExit.d.ts +4 -0
- package/lib/yargs/parseYargsOrExit.js +25 -0
- package/lib/yargs/strictEnforceBoolean.d.ts +1 -0
- package/lib/yargs/strictEnforceBoolean.js +13 -0
- package/lib/yargsUtils.d.ts +3 -16
- package/lib/yargsUtils.js +3 -48
- package/mcp-server/Tool.d.ts +15 -0
- package/mcp-server/Tool.js +53 -0
- package/mcp-server/server.js +43 -3
- package/mcp-server/tools/cms/HsCreateFunctionTool.d.ts +4 -2
- package/mcp-server/tools/cms/HsCreateFunctionTool.js +9 -7
- package/mcp-server/tools/cms/HsCreateModuleTool.d.ts +4 -2
- package/mcp-server/tools/cms/HsCreateModuleTool.js +9 -7
- package/mcp-server/tools/cms/HsCreateTemplateTool.d.ts +4 -2
- package/mcp-server/tools/cms/HsCreateTemplateTool.js +9 -7
- package/mcp-server/tools/cms/HsFunctionLogsTool.d.ts +4 -2
- package/mcp-server/tools/cms/HsFunctionLogsTool.js +9 -7
- package/mcp-server/tools/cms/HsListFunctionsTool.d.ts +4 -2
- package/mcp-server/tools/cms/HsListFunctionsTool.js +9 -7
- package/mcp-server/tools/cms/HsListTool.d.ts +4 -2
- package/mcp-server/tools/cms/HsListTool.js +9 -7
- package/mcp-server/tools/index.d.ts +3 -2
- package/mcp-server/tools/index.js +24 -22
- package/mcp-server/tools/project/AddFeatureToProjectTool.d.ts +25 -5
- package/mcp-server/tools/project/AddFeatureToProjectTool.js +16 -18
- package/mcp-server/tools/project/CreateProjectTool.d.ts +29 -6
- package/mcp-server/tools/project/CreateProjectTool.js +16 -18
- package/mcp-server/tools/project/CreateTestAccountTool.d.ts +4 -2
- package/mcp-server/tools/project/CreateTestAccountTool.js +22 -10
- package/mcp-server/tools/project/DeployProjectTool.d.ts +4 -2
- package/mcp-server/tools/project/DeployProjectTool.js +6 -8
- package/mcp-server/tools/project/DocFetchTool.d.ts +4 -2
- package/mcp-server/tools/project/DocFetchTool.js +8 -6
- package/mcp-server/tools/project/DocsSearchTool.d.ts +9 -3
- package/mcp-server/tools/project/DocsSearchTool.js +32 -9
- package/mcp-server/tools/project/FindProjectsTool.d.ts +15 -0
- package/mcp-server/tools/project/FindProjectsTool.js +60 -0
- package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.d.ts +4 -2
- package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.js +13 -14
- package/mcp-server/tools/project/GetApplicationInfoTool.d.ts +4 -2
- package/mcp-server/tools/project/GetApplicationInfoTool.js +8 -6
- package/mcp-server/tools/project/GetBuildLogsTool.d.ts +6 -4
- package/mcp-server/tools/project/GetBuildLogsTool.js +15 -14
- package/mcp-server/tools/project/GetBuildStatusTool.d.ts +5 -3
- package/mcp-server/tools/project/GetBuildStatusTool.js +12 -11
- package/mcp-server/tools/project/GetConfigValuesTool.d.ts +4 -2
- package/mcp-server/tools/project/GetConfigValuesTool.js +12 -7
- package/mcp-server/tools/project/GuidedWalkthroughTool.d.ts +10 -3
- package/mcp-server/tools/project/GuidedWalkthroughTool.js +5 -12
- package/mcp-server/tools/project/UploadProjectTools.d.ts +4 -2
- package/mcp-server/tools/project/UploadProjectTools.js +11 -9
- package/mcp-server/tools/project/ValidateProjectTool.d.ts +4 -2
- package/mcp-server/tools/project/ValidateProjectTool.js +10 -8
- package/mcp-server/tools/project/constants.d.ts +13 -1
- package/mcp-server/tools/project/constants.js +13 -16
- package/mcp-server/types.d.ts +0 -7
- package/mcp-server/types.js +1 -13
- package/mcp-server/utils/command.d.ts +5 -0
- package/mcp-server/utils/command.js +24 -0
- package/mcp-server/utils/feedbackTracking.js +2 -17
- package/mcp-server/utils/logger.d.ts +10 -0
- package/mcp-server/utils/logger.js +29 -0
- package/mcp-server/utils/toolUsageTracking.js +0 -2
- package/package.json +15 -11
- package/types/Link.d.ts +32 -0
- package/types/Link.js +5 -0
- package/types/LocalDev.d.ts +5 -0
- package/types/PackageJson.d.ts +1 -0
- package/types/Projects.d.ts +19 -0
- package/types/Prompts.d.ts +1 -0
- package/types/Yargs.d.ts +19 -1
- package/ui/components/getStarted/GetStartedFlow.js +79 -2
- package/ui/components/getStarted/reducer.d.ts +20 -0
- package/ui/components/getStarted/reducer.js +36 -0
- package/ui/components/getStarted/screens/InstallationScreen.d.ts +7 -0
- package/ui/components/getStarted/screens/InstallationScreen.js +16 -0
- package/ui/components/getStarted/screens/ProjectSetupScreen.js +2 -1
- package/ui/lib/constants.d.ts +1 -0
- package/ui/lib/constants.js +1 -0
- package/api/__tests__/migrate.test.d.ts +0 -1
- package/api/__tests__/migrate.test.js +0 -199
- package/commands/__tests__/account.test.d.ts +0 -1
- package/commands/__tests__/account.test.js +0 -69
- package/commands/__tests__/auth.test.d.ts +0 -1
- package/commands/__tests__/auth.test.js +0 -43
- package/commands/__tests__/cms.test.d.ts +0 -1
- package/commands/__tests__/cms.test.js +0 -87
- package/commands/__tests__/config.test.d.ts +0 -1
- package/commands/__tests__/config.test.js +0 -44
- package/commands/__tests__/customObject.test.d.ts +0 -1
- package/commands/__tests__/customObject.test.js +0 -68
- package/commands/__tests__/doctor.test.d.ts +0 -1
- package/commands/__tests__/doctor.test.js +0 -132
- package/commands/__tests__/feedback.test.d.ts +0 -1
- package/commands/__tests__/feedback.test.js +0 -24
- package/commands/__tests__/filemanager.test.d.ts +0 -1
- package/commands/__tests__/filemanager.test.js +0 -45
- package/commands/__tests__/getStarted.test.d.ts +0 -1
- package/commands/__tests__/getStarted.test.js +0 -173
- package/commands/__tests__/hubdb.test.d.ts +0 -1
- package/commands/__tests__/hubdb.test.js +0 -50
- package/commands/__tests__/init.test.d.ts +0 -1
- package/commands/__tests__/init.test.js +0 -42
- package/commands/__tests__/mcp.test.d.ts +0 -1
- package/commands/__tests__/mcp.test.js +0 -46
- package/commands/__tests__/open.test.d.ts +0 -1
- package/commands/__tests__/open.test.js +0 -58
- package/commands/__tests__/project.test.d.ts +0 -1
- package/commands/__tests__/project.test.js +0 -125
- package/commands/__tests__/sandbox.test.d.ts +0 -1
- package/commands/__tests__/sandbox.test.js +0 -44
- package/commands/__tests__/secret.test.d.ts +0 -1
- package/commands/__tests__/secret.test.js +0 -49
- package/commands/__tests__/testAccount.test.d.ts +0 -1
- package/commands/__tests__/testAccount.test.js +0 -57
- package/commands/__tests__/upgrade.test.d.ts +0 -1
- package/commands/__tests__/upgrade.test.js +0 -309
- package/commands/account/__tests__/auth.test.d.ts +0 -1
- package/commands/account/__tests__/auth.test.js +0 -206
- package/commands/account/__tests__/clean.test.d.ts +0 -1
- package/commands/account/__tests__/clean.test.js +0 -28
- package/commands/account/__tests__/createOverride.test.d.ts +0 -1
- package/commands/account/__tests__/createOverride.test.js +0 -32
- package/commands/account/__tests__/info.test.d.ts +0 -1
- package/commands/account/__tests__/info.test.js +0 -28
- package/commands/account/__tests__/list.test.d.ts +0 -1
- package/commands/account/__tests__/list.test.js +0 -153
- package/commands/account/__tests__/remove.test.d.ts +0 -1
- package/commands/account/__tests__/remove.test.js +0 -36
- package/commands/account/__tests__/removeOverride.d.ts +0 -1
- package/commands/account/__tests__/removeOverride.js +0 -25
- package/commands/account/__tests__/rename.test.d.ts +0 -1
- package/commands/account/__tests__/rename.test.js +0 -82
- package/commands/account/__tests__/use.test.d.ts +0 -1
- package/commands/account/__tests__/use.test.js +0 -170
- package/commands/app/__tests__/migrate.test.d.ts +0 -1
- package/commands/app/__tests__/migrate.test.js +0 -111
- package/commands/app/secret/__tests__/add.test.d.ts +0 -1
- package/commands/app/secret/__tests__/add.test.js +0 -140
- package/commands/app/secret/__tests__/delete.test.d.ts +0 -1
- package/commands/app/secret/__tests__/delete.test.js +0 -28
- package/commands/app/secret/__tests__/list.test.d.ts +0 -1
- package/commands/app/secret/__tests__/list.test.js +0 -25
- package/commands/app/secret/__tests__/update.test.d.ts +0 -1
- package/commands/app/secret/__tests__/update.test.js +0 -28
- package/commands/cms/__tests__/delete.test.d.ts +0 -1
- package/commands/cms/__tests__/delete.test.js +0 -39
- package/commands/cms/__tests__/fetch.test.d.ts +0 -1
- package/commands/cms/__tests__/fetch.test.js +0 -156
- package/commands/cms/__tests__/function.test.d.ts +0 -1
- package/commands/cms/__tests__/function.test.js +0 -50
- package/commands/cms/__tests__/lint.test.d.ts +0 -1
- package/commands/cms/__tests__/lint.test.js +0 -33
- package/commands/cms/__tests__/list.test.d.ts +0 -1
- package/commands/cms/__tests__/list.test.js +0 -42
- package/commands/cms/__tests__/module.test.d.ts +0 -1
- package/commands/cms/__tests__/module.test.js +0 -45
- package/commands/cms/__tests__/mv.test.d.ts +0 -1
- package/commands/cms/__tests__/mv.test.js +0 -46
- package/commands/cms/__tests__/theme.test.d.ts +0 -1
- package/commands/cms/__tests__/theme.test.js +0 -54
- package/commands/cms/__tests__/upload.test.d.ts +0 -1
- package/commands/cms/__tests__/upload.test.js +0 -308
- package/commands/cms/__tests__/watch.test.d.ts +0 -1
- package/commands/cms/__tests__/watch.test.js +0 -212
- package/commands/cms/function/__tests__/logs.test.d.ts +0 -1
- package/commands/cms/function/__tests__/logs.test.js +0 -70
- package/commands/cms/theme/__tests__/generate-selectors.test.d.ts +0 -1
- package/commands/cms/theme/__tests__/generate-selectors.test.js +0 -28
- package/commands/cms/theme/__tests__/marketplace-validate.test.d.ts +0 -1
- package/commands/cms/theme/__tests__/marketplace-validate.test.js +0 -36
- package/commands/cms/theme/__tests__/preview.test.d.ts +0 -1
- package/commands/cms/theme/__tests__/preview.test.js +0 -54
- package/commands/customObject/__tests__/create.test.d.ts +0 -1
- package/commands/customObject/__tests__/create.test.js +0 -40
- package/commands/customObject/__tests__/createSchema.test.d.ts +0 -1
- package/commands/customObject/__tests__/createSchema.test.js +0 -28
- package/commands/customObject/__tests__/deleteSchema.test.d.ts +0 -1
- package/commands/customObject/__tests__/deleteSchema.test.js +0 -42
- package/commands/customObject/__tests__/fetch-all-schemas.test.d.ts +0 -1
- package/commands/customObject/__tests__/fetch-all-schemas.test.js +0 -41
- package/commands/customObject/__tests__/fetchSchema.test.d.ts +0 -1
- package/commands/customObject/__tests__/fetchSchema.test.js +0 -45
- package/commands/customObject/__tests__/listSchemas.test.d.ts +0 -1
- package/commands/customObject/__tests__/listSchemas.test.js +0 -29
- package/commands/customObject/__tests__/updateSchema.test.d.ts +0 -1
- package/commands/customObject/__tests__/updateSchema.test.js +0 -40
- package/commands/filemanager/__tests__/fetch.test.d.ts +0 -1
- package/commands/filemanager/__tests__/fetch.test.js +0 -32
- package/commands/filemanager/__tests__/upload.test.d.ts +0 -1
- package/commands/filemanager/__tests__/upload.test.js +0 -191
- package/commands/hubdb/__tests__/clear.test.d.ts +0 -1
- package/commands/hubdb/__tests__/clear.test.js +0 -28
- package/commands/hubdb/__tests__/create.test.d.ts +0 -1
- package/commands/hubdb/__tests__/create.test.js +0 -28
- package/commands/hubdb/__tests__/delete.test.d.ts +0 -1
- package/commands/hubdb/__tests__/delete.test.js +0 -28
- package/commands/hubdb/__tests__/fetch.test.d.ts +0 -1
- package/commands/hubdb/__tests__/fetch.test.js +0 -28
- package/commands/hubdb/__tests__/list.test.d.ts +0 -1
- package/commands/hubdb/__tests__/list.test.js +0 -88
- package/commands/mcp/__tests__/setup.test.d.ts +0 -1
- package/commands/mcp/__tests__/setup.test.js +0 -26
- package/commands/mcp/__tests__/start.test.d.ts +0 -1
- package/commands/mcp/__tests__/start.test.js +0 -137
- package/commands/project/__tests__/add.test.d.ts +0 -1
- package/commands/project/__tests__/add.test.js +0 -107
- package/commands/project/__tests__/create.test.d.ts +0 -1
- package/commands/project/__tests__/create.test.js +0 -97
- package/commands/project/__tests__/deploy.test.d.ts +0 -1
- package/commands/project/__tests__/deploy.test.js +0 -307
- package/commands/project/__tests__/dev.test.d.ts +0 -1
- package/commands/project/__tests__/dev.test.js +0 -273
- package/commands/project/__tests__/devUnifiedFlow.test.d.ts +0 -1
- package/commands/project/__tests__/devUnifiedFlow.test.js +0 -434
- package/commands/project/__tests__/download.test.d.ts +0 -1
- package/commands/project/__tests__/download.test.js +0 -39
- package/commands/project/__tests__/installDeps.test.d.ts +0 -1
- package/commands/project/__tests__/installDeps.test.js +0 -140
- package/commands/project/__tests__/lint.test.d.ts +0 -1
- package/commands/project/__tests__/lint.test.js +0 -704
- package/commands/project/__tests__/list.test.d.ts +0 -1
- package/commands/project/__tests__/list.test.js +0 -31
- package/commands/project/__tests__/listBuilds.test.d.ts +0 -1
- package/commands/project/__tests__/listBuilds.test.js +0 -38
- package/commands/project/__tests__/logs.test.d.ts +0 -1
- package/commands/project/__tests__/logs.test.js +0 -202
- package/commands/project/__tests__/migrate.test.d.ts +0 -1
- package/commands/project/__tests__/migrate.test.js +0 -106
- package/commands/project/__tests__/open.test.d.ts +0 -1
- package/commands/project/__tests__/open.test.js +0 -39
- package/commands/project/__tests__/profile.test.d.ts +0 -1
- package/commands/project/__tests__/profile.test.js +0 -42
- package/commands/project/__tests__/updateDeps.test.d.ts +0 -1
- package/commands/project/__tests__/updateDeps.test.js +0 -140
- package/commands/project/__tests__/upload.test.d.ts +0 -1
- package/commands/project/__tests__/upload.test.js +0 -234
- package/commands/project/__tests__/validate.test.d.ts +0 -1
- package/commands/project/__tests__/validate.test.js +0 -381
- package/commands/project/__tests__/watch.test.d.ts +0 -1
- package/commands/project/__tests__/watch.test.js +0 -35
- package/commands/sandbox/__tests__/create.test.d.ts +0 -1
- package/commands/sandbox/__tests__/create.test.js +0 -245
- package/commands/sandbox/__tests__/delete.test.d.ts +0 -1
- package/commands/sandbox/__tests__/delete.test.js +0 -31
- package/commands/secret/__tests__/addSecret.test.d.ts +0 -1
- package/commands/secret/__tests__/addSecret.test.js +0 -162
- package/commands/secret/__tests__/deleteSecret.test.d.ts +0 -1
- package/commands/secret/__tests__/deleteSecret.test.js +0 -41
- package/commands/secret/__tests__/listSecret.test.d.ts +0 -1
- package/commands/secret/__tests__/listSecret.test.js +0 -29
- package/commands/secret/__tests__/updateSecret.test.d.ts +0 -1
- package/commands/secret/__tests__/updateSecret.test.js +0 -29
- package/commands/testAccount/__tests__/create.test.d.ts +0 -1
- package/commands/testAccount/__tests__/create.test.js +0 -106
- package/commands/testAccount/__tests__/createConfig.test.d.ts +0 -1
- package/commands/testAccount/__tests__/createConfig.test.js +0 -32
- package/commands/testAccount/__tests__/delete.test.d.ts +0 -1
- package/commands/testAccount/__tests__/delete.test.js +0 -29
- package/commands/testAccount/__tests__/importData.test.d.ts +0 -1
- package/commands/testAccount/__tests__/importData.test.js +0 -92
- package/lib/__tests__/CLIWebSocketServer.test.d.ts +0 -1
- package/lib/__tests__/CLIWebSocketServer.test.js +0 -252
- package/lib/__tests__/accountAuth.test.d.ts +0 -1
- package/lib/__tests__/accountAuth.test.js +0 -258
- package/lib/__tests__/accountTypes.test.d.ts +0 -1
- package/lib/__tests__/accountTypes.test.js +0 -98
- package/lib/__tests__/buildAccount.test.d.ts +0 -1
- package/lib/__tests__/buildAccount.test.js +0 -262
- package/lib/__tests__/cliUpgradeUtils.test.d.ts +0 -1
- package/lib/__tests__/cliUpgradeUtils.test.js +0 -131
- package/lib/__tests__/commandSuggestion.test.d.ts +0 -1
- package/lib/__tests__/commandSuggestion.test.js +0 -119
- package/lib/__tests__/commonOpts.test.d.ts +0 -1
- package/lib/__tests__/commonOpts.test.js +0 -80
- package/lib/__tests__/dependencyManagement.test.d.ts +0 -1
- package/lib/__tests__/dependencyManagement.test.js +0 -1067
- package/lib/__tests__/developerTestAccounts.test.d.ts +0 -1
- package/lib/__tests__/developerTestAccounts.test.js +0 -156
- package/lib/__tests__/hasFeature.test.d.ts +0 -1
- package/lib/__tests__/hasFeature.test.js +0 -167
- package/lib/__tests__/http.test.d.ts +0 -1
- package/lib/__tests__/http.test.js +0 -40
- package/lib/__tests__/importData.test.d.ts +0 -1
- package/lib/__tests__/importData.test.js +0 -98
- package/lib/__tests__/npmCli.test.d.ts +0 -1
- package/lib/__tests__/npmCli.test.js +0 -84
- package/lib/__tests__/oauth.test.d.ts +0 -1
- package/lib/__tests__/oauth.test.js +0 -109
- package/lib/__tests__/parsing.test.d.ts +0 -1
- package/lib/__tests__/parsing.test.js +0 -34
- package/lib/__tests__/polling.test.d.ts +0 -1
- package/lib/__tests__/polling.test.js +0 -76
- package/lib/__tests__/process.test.d.ts +0 -1
- package/lib/__tests__/process.test.js +0 -89
- package/lib/__tests__/sandboxSync.test.d.ts +0 -1
- package/lib/__tests__/sandboxSync.test.js +0 -147
- package/lib/__tests__/sandboxes.test.d.ts +0 -1
- package/lib/__tests__/sandboxes.test.js +0 -156
- package/lib/__tests__/serverlessLogs.test.d.ts +0 -1
- package/lib/__tests__/serverlessLogs.test.js +0 -148
- package/lib/__tests__/usageTracking.test.d.ts +0 -1
- package/lib/__tests__/usageTracking.test.js +0 -197
- package/lib/__tests__/validation.test.d.ts +0 -1
- package/lib/__tests__/validation.test.js +0 -143
- package/lib/__tests__/yargsUtils.test.d.ts +0 -1
- package/lib/__tests__/yargsUtils.test.js +0 -124
- package/lib/app/__tests__/migrate.test.d.ts +0 -1
- package/lib/app/__tests__/migrate.test.js +0 -638
- package/lib/doctor/__tests__/Diagnosis.test.d.ts +0 -1
- package/lib/doctor/__tests__/Diagnosis.test.js +0 -84
- package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.d.ts +0 -1
- package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.js +0 -177
- package/lib/doctor/__tests__/Doctor.test.d.ts +0 -1
- package/lib/doctor/__tests__/Doctor.test.js +0 -560
- package/lib/errorHandlers/__tests__/index.test.d.ts +0 -1
- package/lib/errorHandlers/__tests__/index.test.js +0 -278
- package/lib/mcp/__tests__/setup.test.d.ts +0 -1
- package/lib/mcp/__tests__/setup.test.js +0 -194
- package/lib/middleware/__tests__/commandTargetingUtils.test.d.ts +0 -1
- package/lib/middleware/__tests__/commandTargetingUtils.test.js +0 -99
- package/lib/middleware/__tests__/configMiddleware.test.d.ts +0 -1
- package/lib/middleware/__tests__/configMiddleware.test.js +0 -118
- package/lib/middleware/__tests__/gitMiddleware.test.d.ts +0 -1
- package/lib/middleware/__tests__/gitMiddleware.test.js +0 -43
- package/lib/middleware/__tests__/requestMiddleware.test.d.ts +0 -1
- package/lib/middleware/__tests__/requestMiddleware.test.js +0 -15
- package/lib/middleware/__tests__/usageTrackingMiddleware.test.d.ts +0 -1
- package/lib/middleware/__tests__/usageTrackingMiddleware.test.js +0 -44
- package/lib/middleware/__tests__/yargsChecksMiddleware.test.d.ts +0 -1
- package/lib/middleware/__tests__/yargsChecksMiddleware.test.js +0 -39
- package/lib/projects/__tests__/AppDevModeInterface.test.d.ts +0 -1
- package/lib/projects/__tests__/AppDevModeInterface.test.js +0 -541
- package/lib/projects/__tests__/DevServerManager.test.d.ts +0 -1
- package/lib/projects/__tests__/DevServerManager.test.js +0 -185
- package/lib/projects/__tests__/DevSessionManager.test.d.ts +0 -1
- package/lib/projects/__tests__/DevSessionManager.test.js +0 -250
- package/lib/projects/__tests__/LocalDevProcess.test.d.ts +0 -1
- package/lib/projects/__tests__/LocalDevProcess.test.js +0 -481
- package/lib/projects/__tests__/LocalDevWebsocketServer.test.d.ts +0 -1
- package/lib/projects/__tests__/LocalDevWebsocketServer.test.js +0 -231
- package/lib/projects/__tests__/ProjectLogsManager.test.d.ts +0 -1
- package/lib/projects/__tests__/ProjectLogsManager.test.js +0 -302
- package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.d.ts +0 -1
- package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.js +0 -160
- package/lib/projects/__tests__/components.test.d.ts +0 -1
- package/lib/projects/__tests__/components.test.js +0 -426
- package/lib/projects/__tests__/deploy.test.d.ts +0 -1
- package/lib/projects/__tests__/deploy.test.js +0 -231
- package/lib/projects/__tests__/localDevProjectHelpers.test.d.ts +0 -1
- package/lib/projects/__tests__/localDevProjectHelpers.test.js +0 -120
- package/lib/projects/__tests__/platformVersion.test.d.ts +0 -1
- package/lib/projects/__tests__/platformVersion.test.js +0 -63
- package/lib/projects/__tests__/pollProjectBuildAndDeploy.test.d.ts +0 -1
- package/lib/projects/__tests__/pollProjectBuildAndDeploy.test.js +0 -328
- package/lib/projects/__tests__/projectProfiles.test.d.ts +0 -1
- package/lib/projects/__tests__/projectProfiles.test.js +0 -441
- package/lib/projects/__tests__/projects.test.d.ts +0 -1
- package/lib/projects/__tests__/projects.test.js +0 -58
- package/lib/projects/__tests__/structure.test.d.ts +0 -1
- package/lib/projects/__tests__/structure.test.js +0 -210
- package/lib/projects/__tests__/uieLinting.test.d.ts +0 -1
- package/lib/projects/__tests__/uieLinting.test.js +0 -631
- package/lib/projects/__tests__/upload.test.d.ts +0 -1
- package/lib/projects/__tests__/upload.test.js +0 -183
- package/lib/projects/add/__tests__/legacyAddComponent.test.d.ts +0 -1
- package/lib/projects/add/__tests__/legacyAddComponent.test.js +0 -245
- package/lib/projects/add/__tests__/v2AddComponent.test.d.ts +0 -1
- package/lib/projects/add/__tests__/v2AddComponent.test.js +0 -343
- package/lib/projects/create/__tests__/legacy.test.d.ts +0 -1
- package/lib/projects/create/__tests__/legacy.test.js +0 -90
- package/lib/projects/create/__tests__/v2.test.d.ts +0 -1
- package/lib/projects/create/__tests__/v2.test.js +0 -257
- package/lib/projects/platformVersion.d.ts +0 -9
- package/lib/projects/platformVersion.js +0 -39
- package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.d.ts +0 -1
- package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.js +0 -157
- package/lib/prompts/__tests__/createFunctionPrompt.test.d.ts +0 -1
- package/lib/prompts/__tests__/createFunctionPrompt.test.js +0 -129
- package/lib/prompts/__tests__/createModulePrompt.test.d.ts +0 -1
- package/lib/prompts/__tests__/createModulePrompt.test.js +0 -187
- package/lib/prompts/__tests__/createTemplatePrompt.test.d.ts +0 -1
- package/lib/prompts/__tests__/createTemplatePrompt.test.js +0 -102
- package/lib/prompts/__tests__/downloadProjectPrompt.test.d.ts +0 -1
- package/lib/prompts/__tests__/downloadProjectPrompt.test.js +0 -31
- package/lib/prompts/__tests__/projectAddPrompt.test.d.ts +0 -1
- package/lib/prompts/__tests__/projectAddPrompt.test.js +0 -143
- package/lib/prompts/__tests__/projectsLogsPrompt.test.d.ts +0 -1
- package/lib/prompts/__tests__/projectsLogsPrompt.test.js +0 -37
- package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.d.ts +0 -1
- package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.js +0 -160
- package/lib/sandboxSync.d.ts +0 -4
- package/lib/sandboxSync.js +0 -102
- package/lib/theme/__tests__/migrate.test.d.ts +0 -1
- package/lib/theme/__tests__/migrate.test.js +0 -256
- package/lib/ui/__tests__/SpinniesManager.test.d.ts +0 -1
- package/lib/ui/__tests__/SpinniesManager.test.js +0 -488
- package/lib/ui/__tests__/removeAnsiCodes.test.d.ts +0 -1
- package/lib/ui/__tests__/removeAnsiCodes.test.js +0 -84
- package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.d.ts +0 -1
- package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.js +0 -255
- package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.d.ts +0 -1
- package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.js +0 -228
- package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.d.ts +0 -1
- package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.js +0 -209
- package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.d.ts +0 -1
- package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.js +0 -187
- package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.d.ts +0 -1
- package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.js +0 -125
- package/mcp-server/tools/cms/__tests__/HsListTool.test.d.ts +0 -1
- package/mcp-server/tools/cms/__tests__/HsListTool.test.js +0 -125
- package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.js +0 -158
- package/mcp-server/tools/project/__tests__/CreateProjectTool.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/CreateProjectTool.test.js +0 -133
- package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.js +0 -462
- package/mcp-server/tools/project/__tests__/DeployProjectTool.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/DeployProjectTool.test.js +0 -126
- package/mcp-server/tools/project/__tests__/DocFetchTool.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/DocFetchTool.test.js +0 -125
- package/mcp-server/tools/project/__tests__/DocsSearchTool.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/DocsSearchTool.test.js +0 -210
- package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.js +0 -178
- package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.js +0 -124
- package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.js +0 -307
- package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.js +0 -242
- package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.js +0 -209
- package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.js +0 -158
- package/mcp-server/tools/project/__tests__/UploadProjectTools.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/UploadProjectTools.test.js +0 -179
- package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.d.ts +0 -1
- package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.js +0 -118
- package/mcp-server/utils/__tests__/command.test.d.ts +0 -1
- package/mcp-server/utils/__tests__/command.test.js +0 -45
- package/mcp-server/utils/__tests__/content.test.d.ts +0 -1
- package/mcp-server/utils/__tests__/content.test.js +0 -164
- package/mcp-server/utils/__tests__/feedbackTracking.test.d.ts +0 -1
- package/mcp-server/utils/__tests__/feedbackTracking.test.js +0 -124
- package/mcp-server/utils/__tests__/project.test.d.ts +0 -1
- package/mcp-server/utils/__tests__/project.test.js +0 -140
- package/mcp-server/utils/project.d.ts +0 -5
- package/mcp-server/utils/project.js +0 -18
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { Tool } from '../../
|
|
1
|
+
import { Tool } from '../../Tool.js';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
import { absoluteCurrentWorkingDirectory } from '../project/constants.js';
|
|
4
|
-
import { runCommandInDir } from '../../utils/
|
|
4
|
+
import { runCommandInDir } from '../../utils/command.js';
|
|
5
5
|
import { formatTextContents, formatTextContent } from '../../utils/content.js';
|
|
6
|
-
import { trackToolUsage } from '../../utils/toolUsageTracking.js';
|
|
7
6
|
import { addFlag } from '../../utils/command.js';
|
|
8
7
|
import { CONTENT_TYPES } from '../../../types/Cms.js';
|
|
9
8
|
import { setupHubSpotConfig } from '../../utils/config.js';
|
|
@@ -51,12 +50,11 @@ const inputSchema = {
|
|
|
51
50
|
const inputSchemaZodObject = z.object({ ...inputSchema });
|
|
52
51
|
const toolName = 'create-cms-module';
|
|
53
52
|
export class HsCreateModuleTool extends Tool {
|
|
54
|
-
constructor(mcpServer) {
|
|
55
|
-
super(mcpServer);
|
|
53
|
+
constructor(mcpServer, logger) {
|
|
54
|
+
super(mcpServer, logger, toolName);
|
|
56
55
|
}
|
|
57
56
|
async handler({ userSuppliedName, dest, moduleLabel, reactType, contentTypes, global, availableForNewContent, absoluteCurrentWorkingDirectory, }) {
|
|
58
57
|
setupHubSpotConfig(absoluteCurrentWorkingDirectory);
|
|
59
|
-
await trackToolUsage(toolName);
|
|
60
58
|
const content = [];
|
|
61
59
|
// Always require a name
|
|
62
60
|
if (!userSuppliedName) {
|
|
@@ -108,6 +106,10 @@ export class HsCreateModuleTool extends Tool {
|
|
|
108
106
|
return formatTextContents(stdout, stderr);
|
|
109
107
|
}
|
|
110
108
|
catch (error) {
|
|
109
|
+
this.logger.debug(toolName, {
|
|
110
|
+
message: 'Handler caught error',
|
|
111
|
+
error: error instanceof Error ? error.message : String(error),
|
|
112
|
+
});
|
|
111
113
|
return formatTextContents(getErrorMessage(error));
|
|
112
114
|
}
|
|
113
115
|
}
|
|
@@ -122,6 +124,6 @@ export class HsCreateModuleTool extends Tool {
|
|
|
122
124
|
idempotentHint: false,
|
|
123
125
|
openWorldHint: false,
|
|
124
126
|
},
|
|
125
|
-
}, this.
|
|
127
|
+
}, input => this.wrappedHandler(input));
|
|
126
128
|
}
|
|
127
129
|
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import { TextContentResponse
|
|
1
|
+
import { TextContentResponse } from '../../types.js';
|
|
2
|
+
import { Tool } from '../../Tool.js';
|
|
2
3
|
import { McpServer, RegisteredTool } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
4
|
+
import { McpLogger } from '../../utils/logger.js';
|
|
3
5
|
import { z } from 'zod';
|
|
4
6
|
declare const inputSchemaZodObject: z.ZodObject<{
|
|
5
7
|
absoluteCurrentWorkingDirectory: z.ZodString;
|
|
@@ -18,7 +20,7 @@ declare const inputSchemaZodObject: z.ZodObject<{
|
|
|
18
20
|
}, z.core.$strip>;
|
|
19
21
|
export type HsCreateTemplateInputSchema = z.infer<typeof inputSchemaZodObject>;
|
|
20
22
|
export declare class HsCreateTemplateTool extends Tool<HsCreateTemplateInputSchema> {
|
|
21
|
-
constructor(mcpServer: McpServer);
|
|
23
|
+
constructor(mcpServer: McpServer, logger: McpLogger);
|
|
22
24
|
handler({ userSuppliedName, dest, templateType, absoluteCurrentWorkingDirectory, }: HsCreateTemplateInputSchema): Promise<TextContentResponse>;
|
|
23
25
|
register(): RegisteredTool;
|
|
24
26
|
}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { Tool } from '../../
|
|
1
|
+
import { Tool } from '../../Tool.js';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
import { absoluteCurrentWorkingDirectory } from '../project/constants.js';
|
|
4
|
-
import { runCommandInDir } from '../../utils/
|
|
4
|
+
import { runCommandInDir } from '../../utils/command.js';
|
|
5
5
|
import { formatTextContents, formatTextContent } from '../../utils/content.js';
|
|
6
|
-
import { trackToolUsage } from '../../utils/toolUsageTracking.js';
|
|
7
6
|
import { addFlag } from '../../utils/command.js';
|
|
8
7
|
import { TEMPLATE_TYPES } from '../../../types/Cms.js';
|
|
9
8
|
import { setupHubSpotConfig } from '../../utils/config.js';
|
|
@@ -27,12 +26,11 @@ const inputSchema = {
|
|
|
27
26
|
const inputSchemaZodObject = z.object({ ...inputSchema });
|
|
28
27
|
const toolName = 'create-cms-template';
|
|
29
28
|
export class HsCreateTemplateTool extends Tool {
|
|
30
|
-
constructor(mcpServer) {
|
|
31
|
-
super(mcpServer);
|
|
29
|
+
constructor(mcpServer, logger) {
|
|
30
|
+
super(mcpServer, logger, toolName);
|
|
32
31
|
}
|
|
33
32
|
async handler({ userSuppliedName, dest, templateType, absoluteCurrentWorkingDirectory, }) {
|
|
34
33
|
setupHubSpotConfig(absoluteCurrentWorkingDirectory);
|
|
35
|
-
await trackToolUsage(toolName);
|
|
36
34
|
const content = [];
|
|
37
35
|
// Always require a name
|
|
38
36
|
if (!userSuppliedName) {
|
|
@@ -65,6 +63,10 @@ export class HsCreateTemplateTool extends Tool {
|
|
|
65
63
|
return formatTextContents(stdout, stderr);
|
|
66
64
|
}
|
|
67
65
|
catch (error) {
|
|
66
|
+
this.logger.debug(toolName, {
|
|
67
|
+
message: 'Handler caught error',
|
|
68
|
+
error: error instanceof Error ? error.message : String(error),
|
|
69
|
+
});
|
|
68
70
|
return formatTextContents(getErrorMessage(error));
|
|
69
71
|
}
|
|
70
72
|
}
|
|
@@ -79,6 +81,6 @@ export class HsCreateTemplateTool extends Tool {
|
|
|
79
81
|
idempotentHint: false,
|
|
80
82
|
openWorldHint: false,
|
|
81
83
|
},
|
|
82
|
-
}, this.
|
|
84
|
+
}, input => this.wrappedHandler(input));
|
|
83
85
|
}
|
|
84
86
|
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import { TextContentResponse
|
|
1
|
+
import { TextContentResponse } from '../../types.js';
|
|
2
|
+
import { Tool } from '../../Tool.js';
|
|
2
3
|
import { McpServer, RegisteredTool } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
4
|
+
import { McpLogger } from '../../utils/logger.js';
|
|
3
5
|
import { z } from 'zod';
|
|
4
6
|
declare const inputSchemaZodObject: z.ZodObject<{
|
|
5
7
|
absoluteCurrentWorkingDirectory: z.ZodString;
|
|
@@ -11,7 +13,7 @@ declare const inputSchemaZodObject: z.ZodObject<{
|
|
|
11
13
|
}, z.core.$strip>;
|
|
12
14
|
export type HsFunctionLogsInputSchema = z.infer<typeof inputSchemaZodObject>;
|
|
13
15
|
export declare class HsFunctionLogsTool extends Tool<HsFunctionLogsInputSchema> {
|
|
14
|
-
constructor(mcpServer: McpServer);
|
|
16
|
+
constructor(mcpServer: McpServer, logger: McpLogger);
|
|
15
17
|
handler({ endpoint, account, latest, compact, limit, absoluteCurrentWorkingDirectory, }: HsFunctionLogsInputSchema): Promise<TextContentResponse>;
|
|
16
18
|
register(): RegisteredTool;
|
|
17
19
|
}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { Tool } from '../../
|
|
1
|
+
import { Tool } from '../../Tool.js';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
import { addFlag } from '../../utils/command.js';
|
|
4
4
|
import { absoluteCurrentWorkingDirectory } from '../project/constants.js';
|
|
5
|
-
import { runCommandInDir } from '../../utils/
|
|
5
|
+
import { runCommandInDir } from '../../utils/command.js';
|
|
6
6
|
import { formatTextContents } from '../../utils/content.js';
|
|
7
|
-
import { trackToolUsage } from '../../utils/toolUsageTracking.js';
|
|
8
7
|
import { setupHubSpotConfig } from '../../utils/config.js';
|
|
9
8
|
import { getErrorMessage } from '../../../lib/errorHandlers/index.js';
|
|
10
9
|
const inputSchema = {
|
|
@@ -30,12 +29,11 @@ const inputSchema = {
|
|
|
30
29
|
const inputSchemaZodObject = z.object({ ...inputSchema });
|
|
31
30
|
const toolName = 'get-cms-serverless-function-logs';
|
|
32
31
|
export class HsFunctionLogsTool extends Tool {
|
|
33
|
-
constructor(mcpServer) {
|
|
34
|
-
super(mcpServer);
|
|
32
|
+
constructor(mcpServer, logger) {
|
|
33
|
+
super(mcpServer, logger, toolName);
|
|
35
34
|
}
|
|
36
35
|
async handler({ endpoint, account, latest, compact, limit, absoluteCurrentWorkingDirectory, }) {
|
|
37
36
|
setupHubSpotConfig(absoluteCurrentWorkingDirectory);
|
|
38
|
-
await trackToolUsage(toolName);
|
|
39
37
|
// Ensure endpoint doesn't start with '/'
|
|
40
38
|
const normalizedEndpoint = endpoint.startsWith('/')
|
|
41
39
|
? endpoint.slice(1)
|
|
@@ -58,6 +56,10 @@ export class HsFunctionLogsTool extends Tool {
|
|
|
58
56
|
return formatTextContents(stdout, stderr);
|
|
59
57
|
}
|
|
60
58
|
catch (error) {
|
|
59
|
+
this.logger.debug(toolName, {
|
|
60
|
+
message: 'Handler caught error',
|
|
61
|
+
error: error instanceof Error ? error.message : String(error),
|
|
62
|
+
});
|
|
61
63
|
return formatTextContents(`Error executing hs logs command: ${getErrorMessage(error)}`);
|
|
62
64
|
}
|
|
63
65
|
}
|
|
@@ -70,6 +72,6 @@ export class HsFunctionLogsTool extends Tool {
|
|
|
70
72
|
readOnlyHint: true,
|
|
71
73
|
openWorldHint: true,
|
|
72
74
|
},
|
|
73
|
-
}, this.
|
|
75
|
+
}, input => this.wrappedHandler(input));
|
|
74
76
|
}
|
|
75
77
|
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import { TextContentResponse
|
|
1
|
+
import { TextContentResponse } from '../../types.js';
|
|
2
|
+
import { Tool } from '../../Tool.js';
|
|
2
3
|
import { McpServer, RegisteredTool } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
4
|
+
import { McpLogger } from '../../utils/logger.js';
|
|
3
5
|
import { z } from 'zod';
|
|
4
6
|
declare const inputSchemaZodObject: z.ZodObject<{
|
|
5
7
|
absoluteCurrentWorkingDirectory: z.ZodString;
|
|
@@ -8,7 +10,7 @@ declare const inputSchemaZodObject: z.ZodObject<{
|
|
|
8
10
|
}, z.core.$strip>;
|
|
9
11
|
export type HsListFunctionsInputSchema = z.infer<typeof inputSchemaZodObject>;
|
|
10
12
|
export declare class HsListFunctionsTool extends Tool<HsListFunctionsInputSchema> {
|
|
11
|
-
constructor(mcpServer: McpServer);
|
|
13
|
+
constructor(mcpServer: McpServer, logger: McpLogger);
|
|
12
14
|
handler({ account, json, absoluteCurrentWorkingDirectory, }: HsListFunctionsInputSchema): Promise<TextContentResponse>;
|
|
13
15
|
register(): RegisteredTool;
|
|
14
16
|
}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { Tool } from '../../
|
|
1
|
+
import { Tool } from '../../Tool.js';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
import { addFlag } from '../../utils/command.js';
|
|
4
4
|
import { absoluteCurrentWorkingDirectory } from '../project/constants.js';
|
|
5
|
-
import { runCommandInDir } from '../../utils/
|
|
5
|
+
import { runCommandInDir } from '../../utils/command.js';
|
|
6
6
|
import { formatTextContents } from '../../utils/content.js';
|
|
7
|
-
import { trackToolUsage } from '../../utils/toolUsageTracking.js';
|
|
8
7
|
import { setupHubSpotConfig } from '../../utils/config.js';
|
|
9
8
|
import { getErrorMessage } from '../../../lib/errorHandlers/index.js';
|
|
10
9
|
const inputSchema = {
|
|
@@ -22,12 +21,11 @@ const inputSchema = {
|
|
|
22
21
|
const inputSchemaZodObject = z.object({ ...inputSchema });
|
|
23
22
|
const toolName = 'list-cms-serverless-functions';
|
|
24
23
|
export class HsListFunctionsTool extends Tool {
|
|
25
|
-
constructor(mcpServer) {
|
|
26
|
-
super(mcpServer);
|
|
24
|
+
constructor(mcpServer, logger) {
|
|
25
|
+
super(mcpServer, logger, toolName);
|
|
27
26
|
}
|
|
28
27
|
async handler({ account, json, absoluteCurrentWorkingDirectory, }) {
|
|
29
28
|
setupHubSpotConfig(absoluteCurrentWorkingDirectory);
|
|
30
|
-
await trackToolUsage(toolName);
|
|
31
29
|
let command = 'hs function list';
|
|
32
30
|
if (json) {
|
|
33
31
|
command += ' --json';
|
|
@@ -40,6 +38,10 @@ export class HsListFunctionsTool extends Tool {
|
|
|
40
38
|
return formatTextContents(stdout, stderr);
|
|
41
39
|
}
|
|
42
40
|
catch (error) {
|
|
41
|
+
this.logger.debug(toolName, {
|
|
42
|
+
message: 'Handler caught error',
|
|
43
|
+
error: error instanceof Error ? error.message : String(error),
|
|
44
|
+
});
|
|
43
45
|
return {
|
|
44
46
|
content: [
|
|
45
47
|
{
|
|
@@ -59,6 +61,6 @@ export class HsListFunctionsTool extends Tool {
|
|
|
59
61
|
readOnlyHint: true,
|
|
60
62
|
openWorldHint: true,
|
|
61
63
|
},
|
|
62
|
-
}, this.
|
|
64
|
+
}, input => this.wrappedHandler(input));
|
|
63
65
|
}
|
|
64
66
|
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import { TextContentResponse
|
|
1
|
+
import { TextContentResponse } from '../../types.js';
|
|
2
|
+
import { Tool } from '../../Tool.js';
|
|
2
3
|
import { McpServer, RegisteredTool } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
4
|
+
import { McpLogger } from '../../utils/logger.js';
|
|
3
5
|
import { z } from 'zod';
|
|
4
6
|
declare const inputSchemaZodObject: z.ZodObject<{
|
|
5
7
|
absoluteCurrentWorkingDirectory: z.ZodString;
|
|
@@ -8,7 +10,7 @@ declare const inputSchemaZodObject: z.ZodObject<{
|
|
|
8
10
|
}, z.core.$strip>;
|
|
9
11
|
export type HsListInputSchema = z.infer<typeof inputSchemaZodObject>;
|
|
10
12
|
export declare class HsListTool extends Tool<HsListInputSchema> {
|
|
11
|
-
constructor(mcpServer: McpServer);
|
|
13
|
+
constructor(mcpServer: McpServer, logger: McpLogger);
|
|
12
14
|
handler({ path, account, absoluteCurrentWorkingDirectory, }: HsListInputSchema): Promise<TextContentResponse>;
|
|
13
15
|
register(): RegisteredTool;
|
|
14
16
|
}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { Tool } from '../../
|
|
1
|
+
import { Tool } from '../../Tool.js';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
import { addFlag } from '../../utils/command.js';
|
|
4
4
|
import { absoluteCurrentWorkingDirectory } from '../project/constants.js';
|
|
5
|
-
import { runCommandInDir } from '../../utils/
|
|
5
|
+
import { runCommandInDir } from '../../utils/command.js';
|
|
6
6
|
import { formatTextContents } from '../../utils/content.js';
|
|
7
|
-
import { trackToolUsage } from '../../utils/toolUsageTracking.js';
|
|
8
7
|
import { setupHubSpotConfig } from '../../utils/config.js';
|
|
9
8
|
import { getErrorMessage } from '../../../lib/errorHandlers/index.js';
|
|
10
9
|
const inputSchema = {
|
|
@@ -22,12 +21,11 @@ const inputSchema = {
|
|
|
22
21
|
const inputSchemaZodObject = z.object({ ...inputSchema });
|
|
23
22
|
const toolName = 'list-cms-remote-contents';
|
|
24
23
|
export class HsListTool extends Tool {
|
|
25
|
-
constructor(mcpServer) {
|
|
26
|
-
super(mcpServer);
|
|
24
|
+
constructor(mcpServer, logger) {
|
|
25
|
+
super(mcpServer, logger, toolName);
|
|
27
26
|
}
|
|
28
27
|
async handler({ path, account, absoluteCurrentWorkingDirectory, }) {
|
|
29
28
|
setupHubSpotConfig(absoluteCurrentWorkingDirectory);
|
|
30
|
-
await trackToolUsage(toolName);
|
|
31
29
|
let command = 'hs list';
|
|
32
30
|
if (path) {
|
|
33
31
|
command += ` ${path}`;
|
|
@@ -40,6 +38,10 @@ export class HsListTool extends Tool {
|
|
|
40
38
|
return formatTextContents(stdout, stderr);
|
|
41
39
|
}
|
|
42
40
|
catch (error) {
|
|
41
|
+
this.logger.debug(toolName, {
|
|
42
|
+
message: 'Handler caught error',
|
|
43
|
+
error: error instanceof Error ? error.message : String(error),
|
|
44
|
+
});
|
|
43
45
|
return {
|
|
44
46
|
content: [
|
|
45
47
|
{
|
|
@@ -59,6 +61,6 @@ export class HsListTool extends Tool {
|
|
|
59
61
|
readOnlyHint: true,
|
|
60
62
|
openWorldHint: true,
|
|
61
63
|
},
|
|
62
|
-
}, this.
|
|
64
|
+
}, input => this.wrappedHandler(input));
|
|
63
65
|
}
|
|
64
66
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { McpServer, RegisteredTool } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
-
|
|
3
|
-
export declare function
|
|
2
|
+
import { McpLogger } from '../utils/logger.js';
|
|
3
|
+
export declare function registerProjectTools(mcpServer: McpServer, logger: McpLogger): RegisteredTool[];
|
|
4
|
+
export declare function registerCmsTools(mcpServer: McpServer, logger: McpLogger): RegisteredTool[];
|
|
@@ -18,31 +18,33 @@ import { HsCreateFunctionTool } from './cms/HsCreateFunctionTool.js';
|
|
|
18
18
|
import { HsListFunctionsTool } from './cms/HsListFunctionsTool.js';
|
|
19
19
|
import { HsFunctionLogsTool } from './cms/HsFunctionLogsTool.js';
|
|
20
20
|
import { CreateTestAccountTool } from './project/CreateTestAccountTool.js';
|
|
21
|
-
|
|
21
|
+
import { FindProjectsTool } from './project/FindProjectsTool.js';
|
|
22
|
+
export function registerProjectTools(mcpServer, logger) {
|
|
22
23
|
return [
|
|
23
|
-
new UploadProjectTools(mcpServer).register(),
|
|
24
|
-
new CreateProjectTool(mcpServer).register(),
|
|
25
|
-
new GuidedWalkthroughTool(mcpServer).register(),
|
|
26
|
-
new CreateTestAccountTool(mcpServer).register(),
|
|
27
|
-
new DeployProjectTool(mcpServer).register(),
|
|
28
|
-
new AddFeatureToProjectTool(mcpServer).register(),
|
|
29
|
-
new ValidateProjectTool(mcpServer).register(),
|
|
30
|
-
new GetConfigValuesTool(mcpServer).register(),
|
|
31
|
-
new DocsSearchTool(mcpServer).register(),
|
|
32
|
-
new DocFetchTool(mcpServer).register(),
|
|
33
|
-
new GetApiUsagePatternsByAppIdTool(mcpServer).register(),
|
|
34
|
-
new GetApplicationInfoTool(mcpServer).register(),
|
|
35
|
-
new GetBuildLogsTool(mcpServer).register(),
|
|
36
|
-
new GetBuildStatusTool(mcpServer).register(),
|
|
24
|
+
new UploadProjectTools(mcpServer, logger).register(),
|
|
25
|
+
new CreateProjectTool(mcpServer, logger).register(),
|
|
26
|
+
new GuidedWalkthroughTool(mcpServer, logger).register(),
|
|
27
|
+
new CreateTestAccountTool(mcpServer, logger).register(),
|
|
28
|
+
new DeployProjectTool(mcpServer, logger).register(),
|
|
29
|
+
new AddFeatureToProjectTool(mcpServer, logger).register(),
|
|
30
|
+
new ValidateProjectTool(mcpServer, logger).register(),
|
|
31
|
+
new GetConfigValuesTool(mcpServer, logger).register(),
|
|
32
|
+
new DocsSearchTool(mcpServer, logger).register(),
|
|
33
|
+
new DocFetchTool(mcpServer, logger).register(),
|
|
34
|
+
new GetApiUsagePatternsByAppIdTool(mcpServer, logger).register(),
|
|
35
|
+
new GetApplicationInfoTool(mcpServer, logger).register(),
|
|
36
|
+
new GetBuildLogsTool(mcpServer, logger).register(),
|
|
37
|
+
new GetBuildStatusTool(mcpServer, logger).register(),
|
|
38
|
+
new FindProjectsTool(mcpServer, logger).register(),
|
|
37
39
|
];
|
|
38
40
|
}
|
|
39
|
-
export function registerCmsTools(mcpServer) {
|
|
41
|
+
export function registerCmsTools(mcpServer, logger) {
|
|
40
42
|
return [
|
|
41
|
-
new HsListTool(mcpServer).register(),
|
|
42
|
-
new HsCreateModuleTool(mcpServer).register(),
|
|
43
|
-
new HsCreateTemplateTool(mcpServer).register(),
|
|
44
|
-
new HsCreateFunctionTool(mcpServer).register(),
|
|
45
|
-
new HsListFunctionsTool(mcpServer).register(),
|
|
46
|
-
new HsFunctionLogsTool(mcpServer).register(),
|
|
43
|
+
new HsListTool(mcpServer, logger).register(),
|
|
44
|
+
new HsCreateModuleTool(mcpServer, logger).register(),
|
|
45
|
+
new HsCreateTemplateTool(mcpServer, logger).register(),
|
|
46
|
+
new HsCreateFunctionTool(mcpServer, logger).register(),
|
|
47
|
+
new HsListFunctionsTool(mcpServer, logger).register(),
|
|
48
|
+
new HsFunctionLogsTool(mcpServer, logger).register(),
|
|
47
49
|
];
|
|
48
50
|
}
|
|
@@ -1,17 +1,37 @@
|
|
|
1
|
-
import { TextContentResponse
|
|
1
|
+
import { TextContentResponse } from '../../types.js';
|
|
2
|
+
import { Tool } from '../../Tool.js';
|
|
2
3
|
import { McpServer, RegisteredTool } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
4
|
+
import { McpLogger } from '../../utils/logger.js';
|
|
3
5
|
import { z } from 'zod';
|
|
4
6
|
declare const inputSchemaZodObject: z.ZodObject<{
|
|
5
7
|
absoluteProjectPath: z.ZodString;
|
|
6
8
|
absoluteCurrentWorkingDirectory: z.ZodString;
|
|
7
9
|
addApp: z.ZodBoolean;
|
|
8
|
-
distribution: z.ZodOptional<z.
|
|
9
|
-
|
|
10
|
-
|
|
10
|
+
distribution: z.ZodOptional<z.ZodEnum<{
|
|
11
|
+
marketplace: "marketplace";
|
|
12
|
+
private: "private";
|
|
13
|
+
}>>;
|
|
14
|
+
auth: z.ZodOptional<z.ZodEnum<{
|
|
15
|
+
oauth: "oauth";
|
|
16
|
+
static: "static";
|
|
17
|
+
}>>;
|
|
18
|
+
features: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
19
|
+
card: "card";
|
|
20
|
+
settings: "settings";
|
|
21
|
+
"app-event": "app-event";
|
|
22
|
+
"workflow-action-tool": "workflow-action-tool";
|
|
23
|
+
page: "page";
|
|
24
|
+
webhooks: "webhooks";
|
|
25
|
+
"app-function": "app-function";
|
|
26
|
+
"app-object": "app-object";
|
|
27
|
+
scim: "scim";
|
|
28
|
+
"workflow-action": "workflow-action";
|
|
29
|
+
"app-function-endpoint": "app-function-endpoint";
|
|
30
|
+
}>>>;
|
|
11
31
|
}, z.core.$strip>;
|
|
12
32
|
export type AddFeatureInputSchema = z.infer<typeof inputSchemaZodObject>;
|
|
13
33
|
export declare class AddFeatureToProjectTool extends Tool<AddFeatureInputSchema> {
|
|
14
|
-
constructor(mcpServer: McpServer);
|
|
34
|
+
constructor(mcpServer: McpServer, logger: McpLogger);
|
|
15
35
|
handler({ absoluteProjectPath, absoluteCurrentWorkingDirectory, distribution, auth, features, addApp, }: AddFeatureInputSchema): Promise<TextContentResponse>;
|
|
16
36
|
register(): RegisteredTool;
|
|
17
37
|
}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { Tool } from '../../
|
|
1
|
+
import { Tool } from '../../Tool.js';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
import { APP_AUTH_TYPES, APP_DISTRIBUTION_TYPES, } from '../../../lib/constants.js';
|
|
4
4
|
import { addFlag } from '../../utils/command.js';
|
|
5
5
|
import { absoluteCurrentWorkingDirectory, absoluteProjectPath, features, } from './constants.js';
|
|
6
|
-
import { runCommandInDir } from '../../utils/
|
|
6
|
+
import { runCommandInDir } from '../../utils/command.js';
|
|
7
7
|
import { formatTextContents, formatTextContent } from '../../utils/content.js';
|
|
8
|
-
import { trackToolUsage } from '../../utils/toolUsageTracking.js';
|
|
9
8
|
import { setupHubSpotConfig } from '../../utils/config.js';
|
|
10
9
|
import { getErrorMessage } from '../../../lib/errorHandlers/index.js';
|
|
11
10
|
const inputSchema = {
|
|
@@ -15,17 +14,13 @@ const inputSchema = {
|
|
|
15
14
|
.boolean()
|
|
16
15
|
.describe('Should an app be added? If there is no app in the project, an app must be added to add a feature'),
|
|
17
16
|
distribution: z
|
|
18
|
-
.
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
]))
|
|
22
|
-
.describe('If not specified by the user, DO NOT choose for them. This cannot be changed after a project is uploaded. Private is used if you do not wish to distribute your app on the HubSpot marketplace. '),
|
|
17
|
+
.enum([APP_DISTRIBUTION_TYPES.MARKETPLACE, APP_DISTRIBUTION_TYPES.PRIVATE])
|
|
18
|
+
.describe('If not specified by the user, DO NOT choose for them. This cannot be changed after a project is uploaded. Private is used if you do not wish to distribute your app on the HubSpot marketplace. ')
|
|
19
|
+
.optional(),
|
|
23
20
|
auth: z
|
|
24
|
-
.
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
]))
|
|
28
|
-
.describe('If not specified by the user, DO NOT choose for them. This cannot be changed after a project is uploaded. Static uses a static non changing authentication token, and is only available for private distribution. '),
|
|
21
|
+
.enum([APP_AUTH_TYPES.STATIC, APP_AUTH_TYPES.OAUTH])
|
|
22
|
+
.describe('If not specified by the user, DO NOT choose for them. This cannot be changed after a project is uploaded. Static uses a static non changing authentication token, and is only available for private distribution. ')
|
|
23
|
+
.optional(),
|
|
29
24
|
features,
|
|
30
25
|
};
|
|
31
26
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
@@ -34,13 +29,12 @@ const inputSchemaZodObject = z.object({
|
|
|
34
29
|
});
|
|
35
30
|
const toolName = 'add-feature-to-project';
|
|
36
31
|
export class AddFeatureToProjectTool extends Tool {
|
|
37
|
-
constructor(mcpServer) {
|
|
38
|
-
super(mcpServer);
|
|
32
|
+
constructor(mcpServer, logger) {
|
|
33
|
+
super(mcpServer, logger, toolName);
|
|
39
34
|
}
|
|
40
35
|
async handler({ absoluteProjectPath, absoluteCurrentWorkingDirectory, distribution, auth, features, addApp, }) {
|
|
41
36
|
setupHubSpotConfig(absoluteCurrentWorkingDirectory);
|
|
42
37
|
try {
|
|
43
|
-
await trackToolUsage(toolName);
|
|
44
38
|
let command = `hs project add`;
|
|
45
39
|
const content = [];
|
|
46
40
|
if (distribution) {
|
|
@@ -66,6 +60,10 @@ export class AddFeatureToProjectTool extends Tool {
|
|
|
66
60
|
return formatTextContents(stdout, stderr);
|
|
67
61
|
}
|
|
68
62
|
catch (error) {
|
|
63
|
+
this.logger.debug(toolName, {
|
|
64
|
+
message: 'Handler caught error',
|
|
65
|
+
error: error instanceof Error ? error.message : String(error),
|
|
66
|
+
});
|
|
69
67
|
return formatTextContents(getErrorMessage(error));
|
|
70
68
|
}
|
|
71
69
|
}
|
|
@@ -73,7 +71,7 @@ export class AddFeatureToProjectTool extends Tool {
|
|
|
73
71
|
return this.mcpServer.registerTool(toolName, {
|
|
74
72
|
title: 'Add feature to HubSpot Project',
|
|
75
73
|
description: `Adds a feature to an existing HubSpot project.
|
|
76
|
-
Only works for projects with platformVersion '2025.2' and beyond
|
|
74
|
+
Only works for projects with platformVersion '2025.2' and beyond. If you do not know the project path, use the find-projects tool first to locate HubSpot projects in the workspace.`,
|
|
77
75
|
inputSchema,
|
|
78
76
|
annotations: {
|
|
79
77
|
readOnlyHint: false,
|
|
@@ -81,6 +79,6 @@ export class AddFeatureToProjectTool extends Tool {
|
|
|
81
79
|
idempotentHint: false,
|
|
82
80
|
openWorldHint: false,
|
|
83
81
|
},
|
|
84
|
-
}, this.
|
|
82
|
+
}, input => this.wrappedHandler(input));
|
|
85
83
|
}
|
|
86
84
|
}
|
|
@@ -1,18 +1,41 @@
|
|
|
1
|
-
import { TextContentResponse
|
|
1
|
+
import { TextContentResponse } from '../../types.js';
|
|
2
|
+
import { Tool } from '../../Tool.js';
|
|
2
3
|
import { McpServer, RegisteredTool } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
4
|
+
import { McpLogger } from '../../utils/logger.js';
|
|
3
5
|
import { z } from 'zod';
|
|
4
6
|
declare const inputSchemaZodObject: z.ZodObject<{
|
|
5
7
|
absoluteCurrentWorkingDirectory: z.ZodString;
|
|
6
8
|
name: z.ZodOptional<z.ZodString>;
|
|
7
9
|
destination: z.ZodString;
|
|
8
|
-
projectBase: z.
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
projectBase: z.ZodEnum<{
|
|
11
|
+
app: "app";
|
|
12
|
+
empty: "empty";
|
|
13
|
+
}>;
|
|
14
|
+
distribution: z.ZodOptional<z.ZodEnum<{
|
|
15
|
+
marketplace: "marketplace";
|
|
16
|
+
private: "private";
|
|
17
|
+
}>>;
|
|
18
|
+
auth: z.ZodOptional<z.ZodEnum<{
|
|
19
|
+
oauth: "oauth";
|
|
20
|
+
static: "static";
|
|
21
|
+
}>>;
|
|
22
|
+
features: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
23
|
+
card: "card";
|
|
24
|
+
settings: "settings";
|
|
25
|
+
"app-event": "app-event";
|
|
26
|
+
"workflow-action-tool": "workflow-action-tool";
|
|
27
|
+
page: "page";
|
|
28
|
+
webhooks: "webhooks";
|
|
29
|
+
"app-function": "app-function";
|
|
30
|
+
"app-object": "app-object";
|
|
31
|
+
scim: "scim";
|
|
32
|
+
"workflow-action": "workflow-action";
|
|
33
|
+
"app-function-endpoint": "app-function-endpoint";
|
|
34
|
+
}>>>;
|
|
12
35
|
}, z.core.$strip>;
|
|
13
36
|
export type CreateProjectInputSchema = z.infer<typeof inputSchemaZodObject>;
|
|
14
37
|
export declare class CreateProjectTool extends Tool<CreateProjectInputSchema> {
|
|
15
|
-
constructor(mcpServer: McpServer);
|
|
38
|
+
constructor(mcpServer: McpServer, logger: McpLogger);
|
|
16
39
|
handler({ name, destination, projectBase, distribution, auth, features, absoluteCurrentWorkingDirectory, }: CreateProjectInputSchema): Promise<TextContentResponse>;
|
|
17
40
|
register(): RegisteredTool;
|
|
18
41
|
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { Tool } from '../../
|
|
1
|
+
import { Tool } from '../../Tool.js';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
import { APP_AUTH_TYPES, APP_DISTRIBUTION_TYPES, EMPTY_PROJECT, PROJECT_WITH_APP, } from '../../../lib/constants.js';
|
|
4
4
|
import { addFlag } from '../../utils/command.js';
|
|
5
5
|
import { absoluteCurrentWorkingDirectory, features } from './constants.js';
|
|
6
|
-
import { runCommandInDir } from '../../utils/
|
|
6
|
+
import { runCommandInDir } from '../../utils/command.js';
|
|
7
7
|
import { formatTextContents, formatTextContent } from '../../utils/content.js';
|
|
8
|
-
import { trackToolUsage } from '../../utils/toolUsageTracking.js';
|
|
9
8
|
import { setupHubSpotConfig } from '../../utils/config.js';
|
|
10
9
|
import { getErrorMessage } from '../../../lib/errorHandlers/index.js';
|
|
10
|
+
import { PLATFORM_VERSIONS } from '@hubspot/project-parsing-lib/constants';
|
|
11
11
|
const inputSchema = {
|
|
12
12
|
absoluteCurrentWorkingDirectory,
|
|
13
13
|
name: z
|
|
@@ -18,19 +18,14 @@ const inputSchema = {
|
|
|
18
18
|
.string()
|
|
19
19
|
.describe('DO NOT use the current directory unless the user has explicitly stated to do so. Relative path to the directory the project will be created in.'),
|
|
20
20
|
projectBase: z
|
|
21
|
-
.
|
|
21
|
+
.enum([EMPTY_PROJECT, PROJECT_WITH_APP])
|
|
22
22
|
.describe('Empty will create an empty project, and app will create a project with an app inside of it.'),
|
|
23
23
|
distribution: z
|
|
24
|
-
.
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
]))
|
|
28
|
-
.describe('If not specified by the user, DO NOT choose for them. This cannot be changed after a project is uploaded. Private is used if you do not wish to distribute your app on the HubSpot marketplace. '),
|
|
24
|
+
.enum([APP_DISTRIBUTION_TYPES.MARKETPLACE, APP_DISTRIBUTION_TYPES.PRIVATE])
|
|
25
|
+
.describe('If not specified by the user, DO NOT choose for them. This cannot be changed after a project is uploaded. Private is used if you do not wish to distribute your app on the HubSpot marketplace. ')
|
|
26
|
+
.optional(),
|
|
29
27
|
auth: z
|
|
30
|
-
.
|
|
31
|
-
z.literal(APP_AUTH_TYPES.STATIC),
|
|
32
|
-
z.literal(APP_AUTH_TYPES.OAUTH),
|
|
33
|
-
]))
|
|
28
|
+
.enum([APP_AUTH_TYPES.STATIC, APP_AUTH_TYPES.OAUTH])
|
|
34
29
|
.describe('If not specified by the user, DO NOT choose for them. This cannot be changed after a project is uploaded. Static uses a static non changing authentication token, and is only available for private distribution. ')
|
|
35
30
|
.optional(),
|
|
36
31
|
features,
|
|
@@ -39,13 +34,12 @@ const inputSchema = {
|
|
|
39
34
|
const inputSchemaZodObject = z.object({ ...inputSchema });
|
|
40
35
|
const toolName = 'create-project';
|
|
41
36
|
export class CreateProjectTool extends Tool {
|
|
42
|
-
constructor(mcpServer) {
|
|
43
|
-
super(mcpServer);
|
|
37
|
+
constructor(mcpServer, logger) {
|
|
38
|
+
super(mcpServer, logger, toolName);
|
|
44
39
|
}
|
|
45
40
|
async handler({ name, destination, projectBase, distribution, auth, features, absoluteCurrentWorkingDirectory, }) {
|
|
46
41
|
setupHubSpotConfig(absoluteCurrentWorkingDirectory);
|
|
47
|
-
|
|
48
|
-
let command = addFlag('hs project create', 'platform-version', '2025.2');
|
|
42
|
+
let command = addFlag('hs project create', 'platform-version', PLATFORM_VERSIONS.v2026_03);
|
|
49
43
|
const content = [];
|
|
50
44
|
if (name) {
|
|
51
45
|
command = addFlag(command, 'name', name);
|
|
@@ -83,6 +77,10 @@ export class CreateProjectTool extends Tool {
|
|
|
83
77
|
return formatTextContents(stdout, stderr);
|
|
84
78
|
}
|
|
85
79
|
catch (error) {
|
|
80
|
+
this.logger.debug(toolName, {
|
|
81
|
+
message: 'Handler caught error',
|
|
82
|
+
error: error instanceof Error ? error.message : String(error),
|
|
83
|
+
});
|
|
86
84
|
return formatTextContents(getErrorMessage(error));
|
|
87
85
|
}
|
|
88
86
|
}
|
|
@@ -97,6 +95,6 @@ export class CreateProjectTool extends Tool {
|
|
|
97
95
|
idempotentHint: false,
|
|
98
96
|
openWorldHint: false,
|
|
99
97
|
},
|
|
100
|
-
}, this.
|
|
98
|
+
}, input => this.wrappedHandler(input));
|
|
101
99
|
}
|
|
102
100
|
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { McpServer, RegisteredTool } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
3
|
-
import {
|
|
3
|
+
import { McpLogger } from '../../utils/logger.js';
|
|
4
|
+
import { TextContentResponse } from '../../types.js';
|
|
5
|
+
import { Tool } from '../../Tool.js';
|
|
4
6
|
declare const createTestAccountInputSchema: z.ZodObject<{
|
|
5
7
|
absoluteCurrentWorkingDirectory: z.ZodString;
|
|
6
8
|
configPath: z.ZodOptional<z.ZodString>;
|
|
@@ -44,7 +46,7 @@ declare const createTestAccountInputSchema: z.ZodObject<{
|
|
|
44
46
|
}, z.core.$strip>;
|
|
45
47
|
export type CreateTestAccountInputSchema = z.infer<typeof createTestAccountInputSchema>;
|
|
46
48
|
export declare class CreateTestAccountTool extends Tool<CreateTestAccountInputSchema> {
|
|
47
|
-
constructor(mcpServer: McpServer);
|
|
49
|
+
constructor(mcpServer: McpServer, logger: McpLogger);
|
|
48
50
|
handler({ absoluteCurrentWorkingDirectory, name, description, marketingLevel, opsLevel, serviceLevel, salesLevel, contentLevel, commerceLevel, configPath, }: CreateTestAccountInputSchema): Promise<TextContentResponse>;
|
|
49
51
|
register(): RegisteredTool;
|
|
50
52
|
}
|