@hubspot/cli 8.2.0 → 8.2.1-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.
Files changed (748) hide show
  1. package/api/migrate.js +8 -4
  2. package/api/releases.d.ts +36 -0
  3. package/api/releases.js +41 -0
  4. package/bin/cli.js +12 -6
  5. package/commands/account/auth.d.ts +3 -1
  6. package/commands/account/auth.js +25 -7
  7. package/commands/account/clean.js +7 -6
  8. package/commands/account/createOverride.js +10 -7
  9. package/commands/account/info.js +36 -17
  10. package/commands/account/link.d.ts +4 -0
  11. package/commands/account/link.js +87 -0
  12. package/commands/account/list.js +32 -76
  13. package/commands/account/remove.js +4 -3
  14. package/commands/account/removeOverride.js +11 -10
  15. package/commands/account/rename.js +5 -6
  16. package/commands/account/unlink.d.ts +4 -0
  17. package/commands/account/unlink.js +68 -0
  18. package/commands/account/use.js +75 -6
  19. package/commands/account.js +4 -0
  20. package/commands/api.d.ts +13 -0
  21. package/commands/api.js +161 -0
  22. package/commands/app/logDetails.d.ts +9 -0
  23. package/commands/app/logDetails.js +86 -0
  24. package/commands/app/logs.d.ts +13 -0
  25. package/commands/app/logs.js +126 -0
  26. package/commands/app/migrate.js +13 -13
  27. package/commands/app/secret/add.js +6 -7
  28. package/commands/app/secret/delete.js +9 -10
  29. package/commands/app/secret/list.js +6 -7
  30. package/commands/app/secret/update.js +8 -9
  31. package/commands/app.js +8 -1
  32. package/commands/auth.js +20 -16
  33. package/commands/cms/app/create.js +9 -5
  34. package/commands/cms/convertFields.js +8 -8
  35. package/commands/cms/delete.js +2 -3
  36. package/commands/cms/fetch.js +7 -7
  37. package/commands/cms/function/create.js +9 -5
  38. package/commands/cms/function/deploy.js +2 -3
  39. package/commands/cms/function/list.js +11 -7
  40. package/commands/cms/function/logs.js +17 -23
  41. package/commands/cms/function/server.js +2 -3
  42. package/commands/cms/getReactModule.js +7 -8
  43. package/commands/cms/lighthouseScore.js +25 -24
  44. package/commands/cms/lint.js +4 -5
  45. package/commands/cms/list.js +5 -6
  46. package/commands/cms/module/create.js +15 -5
  47. package/commands/cms/module/marketplace-validate.js +7 -8
  48. package/commands/cms/mv.js +2 -3
  49. package/commands/cms/template/create.js +10 -6
  50. package/commands/cms/theme/create.js +5 -5
  51. package/commands/cms/theme/generate-selectors.js +5 -4
  52. package/commands/cms/theme/marketplace-validate.js +8 -9
  53. package/commands/cms/theme/preview.js +16 -8
  54. package/commands/cms/upload.js +15 -12
  55. package/commands/cms/watch.js +5 -5
  56. package/commands/cms/webpack/create.js +5 -5
  57. package/commands/completion.js +3 -5
  58. package/commands/config/migrate.js +6 -7
  59. package/commands/config/set.js +29 -11
  60. package/commands/customObject/create.js +4 -5
  61. package/commands/customObject/createSchema.js +6 -8
  62. package/commands/customObject/deleteSchema.js +4 -5
  63. package/commands/customObject/fetchAllSchemas.js +2 -3
  64. package/commands/customObject/fetchSchema.js +2 -3
  65. package/commands/customObject/listSchemas.js +2 -3
  66. package/commands/customObject/updateSchema.js +6 -8
  67. package/commands/doctor.js +8 -8
  68. package/commands/feedback.js +6 -4
  69. package/commands/filemanager/fetch.js +5 -6
  70. package/commands/filemanager/upload.js +5 -5
  71. package/commands/getStarted.js +20 -19
  72. package/commands/hubdb/clear.js +6 -3
  73. package/commands/hubdb/create.js +4 -5
  74. package/commands/hubdb/delete.js +9 -6
  75. package/commands/hubdb/fetch.js +6 -3
  76. package/commands/hubdb/list.d.ts +1 -1
  77. package/commands/hubdb/list.js +23 -22
  78. package/commands/init.js +18 -15
  79. package/commands/mcp/setup.d.ts +2 -0
  80. package/commands/mcp/setup.js +35 -8
  81. package/commands/mcp/start.js +2 -3
  82. package/commands/open.js +4 -5
  83. package/commands/project/add.js +13 -8
  84. package/commands/project/appInstallStatus.d.ts +5 -0
  85. package/commands/project/appInstallStatus.js +135 -0
  86. package/commands/project/create.js +29 -17
  87. package/commands/project/delete.d.ts +7 -0
  88. package/commands/project/delete.js +74 -0
  89. package/commands/project/deploy.d.ts +2 -1
  90. package/commands/project/deploy.js +68 -48
  91. package/commands/project/dev/index.d.ts +3 -3
  92. package/commands/project/dev/index.js +33 -68
  93. package/commands/project/dev/unifiedFlow.js +73 -22
  94. package/commands/project/download.js +12 -9
  95. package/commands/project/info.d.ts +5 -0
  96. package/commands/project/info.js +70 -0
  97. package/commands/project/installApp.d.ts +8 -0
  98. package/commands/project/installApp.js +180 -0
  99. package/commands/project/installDeps.js +11 -6
  100. package/commands/project/lint.js +43 -12
  101. package/commands/project/list.d.ts +2 -2
  102. package/commands/project/list.js +15 -14
  103. package/commands/project/listBuilds.d.ts +1 -1
  104. package/commands/project/listBuilds.js +16 -12
  105. package/commands/project/logs.js +7 -10
  106. package/commands/project/migrate.js +18 -18
  107. package/commands/project/open.js +5 -6
  108. package/commands/project/profile/add.d.ts +2 -1
  109. package/commands/project/profile/add.js +34 -9
  110. package/commands/project/profile/delete.d.ts +1 -1
  111. package/commands/project/profile/delete.js +15 -11
  112. package/commands/project/release/create.d.ts +8 -0
  113. package/commands/project/release/create.js +158 -0
  114. package/commands/project/release/info.d.ts +7 -0
  115. package/commands/project/release/info.js +148 -0
  116. package/commands/project/release/list.d.ts +7 -0
  117. package/commands/project/release/list.js +119 -0
  118. package/commands/project/release.d.ts +3 -0
  119. package/commands/project/release.js +20 -0
  120. package/commands/project/updateDeps.js +9 -6
  121. package/commands/project/upload.d.ts +7 -1
  122. package/commands/project/upload.js +145 -32
  123. package/commands/project/validate.d.ts +1 -1
  124. package/commands/project/validate.js +12 -12
  125. package/commands/project/watch.js +23 -22
  126. package/commands/project.js +16 -3
  127. package/commands/sandbox/create.js +18 -45
  128. package/commands/sandbox/delete.js +15 -17
  129. package/commands/secret/addSecret.js +6 -7
  130. package/commands/secret/deleteSecret.js +5 -6
  131. package/commands/secret/listSecret.js +2 -3
  132. package/commands/secret/updateSecret.js +4 -5
  133. package/commands/testAccount/create.d.ts +3 -2
  134. package/commands/testAccount/create.js +30 -22
  135. package/commands/testAccount/createConfig.js +7 -8
  136. package/commands/testAccount/delete.js +27 -18
  137. package/commands/testAccount/importData.d.ts +1 -1
  138. package/commands/testAccount/importData.js +6 -7
  139. package/commands/upgrade.js +11 -10
  140. package/lang/en.d.ts +558 -40
  141. package/lang/en.js +595 -63
  142. package/lib/CLIWebSocketServer.d.ts +5 -3
  143. package/lib/CLIWebSocketServer.js +31 -4
  144. package/lib/accountAuth.d.ts +3 -1
  145. package/lib/accountAuth.js +47 -17
  146. package/lib/accountTargetDiscovery.d.ts +15 -0
  147. package/lib/accountTargetDiscovery.js +175 -0
  148. package/lib/api/usageTracking.d.ts +30 -0
  149. package/lib/api/usageTracking.js +11 -0
  150. package/lib/app/install.d.ts +22 -0
  151. package/lib/app/install.js +42 -0
  152. package/lib/app/logs.d.ts +38 -0
  153. package/lib/app/logs.js +225 -0
  154. package/lib/app/migrate.js +18 -5
  155. package/lib/app/urls.d.ts +2 -0
  156. package/lib/app/urls.js +7 -1
  157. package/lib/auth/awaitPersonalAccessKeyOverWebsocket.d.ts +4 -0
  158. package/lib/auth/awaitPersonalAccessKeyOverWebsocket.js +146 -0
  159. package/lib/buildAccount.d.ts +1 -6
  160. package/lib/buildAccount.js +10 -43
  161. package/lib/commonOpts.js +6 -2
  162. package/lib/configOptions.d.ts +10 -10
  163. package/lib/configOptions.js +10 -11
  164. package/lib/constants.d.ts +12 -3
  165. package/lib/constants.js +14 -3
  166. package/lib/dependencyManagement.js +7 -7
  167. package/lib/doctor/Diagnosis.js +5 -5
  168. package/lib/doctor/Doctor.d.ts +1 -0
  169. package/lib/doctor/Doctor.js +33 -7
  170. package/lib/errorHandlers/index.js +4 -3
  171. package/lib/errorHandlers/suppressError.js +4 -0
  172. package/lib/errors/PromptExitError.d.ts +6 -0
  173. package/lib/errors/PromptExitError.js +11 -0
  174. package/lib/getStartedV2Actions.js +5 -4
  175. package/lib/hasFeature.js +1 -2
  176. package/lib/importData.js +3 -4
  177. package/lib/jsonOutput.d.ts +109 -0
  178. package/lib/jsonOutput.js +94 -0
  179. package/lib/link/accountTableUtils.d.ts +10 -0
  180. package/lib/link/accountTableUtils.js +39 -0
  181. package/lib/link/index.d.ts +18 -0
  182. package/lib/link/index.js +185 -0
  183. package/lib/link/linkUtils.d.ts +5 -0
  184. package/lib/link/linkUtils.js +49 -0
  185. package/lib/link/prompts.d.ts +7 -0
  186. package/lib/link/prompts.js +126 -0
  187. package/lib/link/renderLinkedAccountsTable.d.ts +2 -0
  188. package/lib/link/renderLinkedAccountsTable.js +14 -0
  189. package/lib/link/warnIfLinkedDirectory.d.ts +1 -0
  190. package/lib/link/warnIfLinkedDirectory.js +9 -0
  191. package/lib/links.js +6 -5
  192. package/lib/mcp/clients.d.ts +13 -0
  193. package/lib/mcp/clients.js +62 -0
  194. package/lib/mcp/promotion.d.ts +3 -0
  195. package/lib/mcp/promotion.js +109 -0
  196. package/lib/mcp/setup.d.ts +8 -2
  197. package/lib/mcp/setup.js +123 -38
  198. package/lib/middleware/autoUpdateMiddleware.js +6 -3
  199. package/lib/middleware/commandTargetingUtils.js +1 -0
  200. package/lib/npm/npmCli.d.ts +1 -0
  201. package/lib/npm/npmCli.js +13 -0
  202. package/lib/process.d.ts +1 -1
  203. package/lib/process.js +10 -3
  204. package/lib/projects/ProjectLogsManager.js +6 -3
  205. package/lib/projects/builds.d.ts +2 -0
  206. package/lib/projects/builds.js +22 -0
  207. package/lib/projects/components.js +15 -4
  208. package/lib/projects/create/index.js +2 -2
  209. package/lib/projects/create/legacy.js +2 -2
  210. package/lib/projects/create/v2.js +5 -5
  211. package/lib/projects/delete.d.ts +13 -0
  212. package/lib/projects/delete.js +193 -0
  213. package/lib/projects/deploy.d.ts +1 -1
  214. package/lib/projects/deploy.js +2 -2
  215. package/lib/projects/installApp.d.ts +58 -0
  216. package/lib/projects/installApp.js +283 -0
  217. package/lib/projects/localDev/AppDevModeInterface.d.ts +0 -3
  218. package/lib/projects/localDev/AppDevModeInterface.js +35 -53
  219. package/lib/projects/localDev/DevSessionManager.d.ts +8 -5
  220. package/lib/projects/localDev/DevSessionManager.js +35 -49
  221. package/lib/projects/localDev/LocalDevProcess.js +13 -10
  222. package/lib/projects/localDev/LocalDevState.d.ts +3 -2
  223. package/lib/projects/localDev/LocalDevState.js +3 -1
  224. package/lib/projects/localDev/LocalDevWebsocketServer.js +1 -1
  225. package/lib/projects/localDev/UIExtensionsDevModeInterface.js +2 -0
  226. package/lib/projects/localDev/helpers/account.d.ts +1 -7
  227. package/lib/projects/localDev/helpers/account.js +12 -100
  228. package/lib/projects/localDev/helpers/process.d.ts +1 -1
  229. package/lib/projects/localDev/helpers/process.js +4 -10
  230. package/lib/projects/localDev/helpers/project.d.ts +8 -6
  231. package/lib/projects/localDev/helpers/project.js +80 -29
  232. package/lib/projects/npmAuditOnUpload.d.ts +10 -0
  233. package/lib/projects/npmAuditOnUpload.js +73 -0
  234. package/lib/projects/pollProjectBuildAndDeploy.d.ts +5 -1
  235. package/lib/projects/pollProjectBuildAndDeploy.js +3 -2
  236. package/lib/projects/preview.d.ts +7 -0
  237. package/lib/projects/preview.js +48 -0
  238. package/lib/projects/projectInfo.d.ts +5 -0
  239. package/lib/projects/projectInfo.js +82 -0
  240. package/lib/projects/projectProfiles.d.ts +1 -2
  241. package/lib/projects/projectProfiles.js +5 -17
  242. package/lib/projects/release.d.ts +4 -0
  243. package/lib/projects/release.js +90 -0
  244. package/lib/projects/ui.d.ts +1 -0
  245. package/lib/projects/ui.js +14 -0
  246. package/lib/projects/uieLinting.d.ts +21 -3
  247. package/lib/projects/uieLinting.js +132 -28
  248. package/lib/projects/upload.d.ts +12 -2
  249. package/lib/projects/upload.js +59 -13
  250. package/lib/projects/urls.d.ts +0 -1
  251. package/lib/projects/urls.js +6 -13
  252. package/lib/projects/validateLintConfigOnUpload.d.ts +9 -0
  253. package/lib/projects/validateLintConfigOnUpload.js +45 -0
  254. package/lib/projects/workspaces.d.ts +60 -0
  255. package/lib/projects/workspaces.js +411 -0
  256. package/lib/prompts/createApiSamplePrompt.js +4 -0
  257. package/lib/prompts/downloadProjectPrompt.js +11 -10
  258. package/lib/prompts/installAppPrompt.js +3 -2
  259. package/lib/prompts/personalAccessKeyPrompt.d.ts +2 -5
  260. package/lib/prompts/personalAccessKeyPrompt.js +10 -7
  261. package/lib/prompts/projectDevTargetAccountPrompt.d.ts +1 -0
  262. package/lib/prompts/projectDevTargetAccountPrompt.js +26 -18
  263. package/lib/prompts/projectProfilePrompt.d.ts +2 -0
  264. package/lib/prompts/projectProfilePrompt.js +46 -0
  265. package/lib/prompts/projectsLogsPrompt.js +3 -0
  266. package/lib/prompts/promptUtils.js +4 -2
  267. package/lib/prompts/selectAppPrompt.js +1 -0
  268. package/lib/prompts/selectHubDBTablePrompt.js +8 -4
  269. package/lib/prompts/selectPublicAppForMigrationPrompt.js +12 -6
  270. package/lib/prompts/setAsDefaultAccountPrompt.js +2 -1
  271. package/lib/sandboxes.d.ts +1 -9
  272. package/lib/sandboxes.js +0 -21
  273. package/lib/serverlessLogs.js +2 -2
  274. package/lib/theme/cmsDevServerProcess.d.ts +2 -0
  275. package/lib/theme/cmsDevServerProcess.js +8 -7
  276. package/lib/theme/migrate.d.ts +1 -1
  277. package/lib/theme/migrate.js +1 -5
  278. package/lib/ui/SpinniesManager.d.ts +1 -0
  279. package/lib/ui/SpinniesManager.js +22 -6
  280. package/lib/ui/accountTable.d.ts +8 -0
  281. package/lib/ui/accountTable.js +67 -0
  282. package/lib/ui/appLogs.d.ts +32 -0
  283. package/lib/ui/appLogs.js +175 -0
  284. package/lib/ui/spinniesUtils.d.ts +0 -1
  285. package/lib/ui/spinniesUtils.js +6 -16
  286. package/lib/usageTracking.d.ts +10 -20
  287. package/lib/usageTracking.js +77 -30
  288. package/lib/yargs/makeWrappedYargsHandler.d.ts +7 -0
  289. package/lib/yargs/makeWrappedYargsHandler.js +179 -0
  290. package/lib/yargs/makeYargsBuilder.d.ts +13 -0
  291. package/lib/yargs/makeYargsBuilder.js +33 -0
  292. package/lib/yargs/parseYargsOrExit.d.ts +4 -0
  293. package/lib/yargs/parseYargsOrExit.js +25 -0
  294. package/lib/yargs/strictEnforceBoolean.d.ts +1 -0
  295. package/lib/yargs/strictEnforceBoolean.js +13 -0
  296. package/lib/yargsUtils.d.ts +3 -16
  297. package/lib/yargsUtils.js +3 -48
  298. package/mcp-server/Tool.d.ts +20 -0
  299. package/mcp-server/Tool.js +79 -0
  300. package/mcp-server/server.js +47 -3
  301. package/mcp-server/tools/cms/HsCreateFunctionTool.d.ts +5 -3
  302. package/mcp-server/tools/cms/HsCreateFunctionTool.js +18 -23
  303. package/mcp-server/tools/cms/HsCreateModuleTool.d.ts +5 -3
  304. package/mcp-server/tools/cms/HsCreateModuleTool.js +21 -26
  305. package/mcp-server/tools/cms/HsCreateTemplateTool.d.ts +5 -3
  306. package/mcp-server/tools/cms/HsCreateTemplateTool.js +16 -16
  307. package/mcp-server/tools/cms/HsFunctionLogsTool.d.ts +5 -3
  308. package/mcp-server/tools/cms/HsFunctionLogsTool.js +16 -15
  309. package/mcp-server/tools/cms/HsListFunctionsTool.d.ts +5 -3
  310. package/mcp-server/tools/cms/HsListFunctionsTool.js +14 -13
  311. package/mcp-server/tools/cms/HsListTool.d.ts +5 -3
  312. package/mcp-server/tools/cms/HsListTool.js +14 -16
  313. package/mcp-server/tools/index.d.ts +3 -2
  314. package/mcp-server/tools/index.js +26 -22
  315. package/mcp-server/tools/project/AddFeatureToProjectTool.d.ts +8 -4
  316. package/mcp-server/tools/project/AddFeatureToProjectTool.js +16 -15
  317. package/mcp-server/tools/project/AuthAccountTool.d.ts +18 -0
  318. package/mcp-server/tools/project/AuthAccountTool.js +78 -0
  319. package/mcp-server/tools/project/CreateProjectTool.d.ts +8 -4
  320. package/mcp-server/tools/project/CreateProjectTool.js +21 -17
  321. package/mcp-server/tools/project/CreateTestAccountTool.d.ts +5 -3
  322. package/mcp-server/tools/project/CreateTestAccountTool.js +35 -24
  323. package/mcp-server/tools/project/DeployProjectTool.d.ts +5 -3
  324. package/mcp-server/tools/project/DeployProjectTool.js +14 -16
  325. package/mcp-server/tools/project/DocFetchTool.d.ts +4 -2
  326. package/mcp-server/tools/project/DocFetchTool.js +8 -6
  327. package/mcp-server/tools/project/DocsSearchTool.d.ts +9 -3
  328. package/mcp-server/tools/project/DocsSearchTool.js +39 -15
  329. package/mcp-server/tools/project/FindProjectsTool.d.ts +15 -0
  330. package/mcp-server/tools/project/FindProjectsTool.js +60 -0
  331. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.d.ts +6 -3
  332. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.js +16 -13
  333. package/mcp-server/tools/project/GetApplicationInfoTool.d.ts +6 -3
  334. package/mcp-server/tools/project/GetApplicationInfoTool.js +19 -14
  335. package/mcp-server/tools/project/GetBuildLogsTool.d.ts +4 -2
  336. package/mcp-server/tools/project/GetBuildLogsTool.js +19 -13
  337. package/mcp-server/tools/project/GetBuildStatusTool.d.ts +4 -2
  338. package/mcp-server/tools/project/GetBuildStatusTool.js +19 -13
  339. package/mcp-server/tools/project/GetConfigValuesTool.d.ts +6 -3
  340. package/mcp-server/tools/project/GetConfigValuesTool.js +20 -13
  341. package/mcp-server/tools/project/GuidedWalkthroughTool.d.ts +4 -2
  342. package/mcp-server/tools/project/GuidedWalkthroughTool.js +4 -6
  343. package/mcp-server/tools/project/UploadProjectTools.d.ts +5 -3
  344. package/mcp-server/tools/project/UploadProjectTools.js +18 -15
  345. package/mcp-server/tools/project/ValidateProjectTool.d.ts +5 -3
  346. package/mcp-server/tools/project/ValidateProjectTool.js +13 -10
  347. package/mcp-server/tools/project/constants.d.ts +3 -1
  348. package/mcp-server/tools/project/constants.js +3 -1
  349. package/mcp-server/types.d.ts +0 -7
  350. package/mcp-server/types.js +1 -13
  351. package/mcp-server/utils/command.d.ts +25 -2
  352. package/mcp-server/utils/command.js +68 -16
  353. package/mcp-server/utils/config.js +6 -0
  354. package/mcp-server/utils/logger.d.ts +13 -0
  355. package/mcp-server/utils/logger.js +59 -0
  356. package/mcp-server/utils/toolUsageTracking.js +28 -11
  357. package/package.json +22 -15
  358. package/types/AccountTargets.d.ts +37 -0
  359. package/types/AccountTargets.js +12 -0
  360. package/types/Link.d.ts +32 -0
  361. package/types/Link.js +5 -0
  362. package/types/LocalDev.d.ts +8 -2
  363. package/types/PackageJson.d.ts +1 -0
  364. package/types/ProjectComponents.d.ts +2 -1
  365. package/types/Projects.d.ts +24 -0
  366. package/types/Prompts.d.ts +1 -0
  367. package/types/Yargs.d.ts +22 -2
  368. package/ui/components/ActionSection.d.ts +1 -1
  369. package/ui/components/InputField.d.ts +1 -1
  370. package/ui/components/SelectInput.d.ts +1 -1
  371. package/ui/components/StatusIcon.d.ts +1 -1
  372. package/ui/components/Table.d.ts +5 -5
  373. package/ui/components/getStarted/GetStartedFlow.d.ts +1 -1
  374. package/ui/components/getStarted/screens/InstallationScreen.d.ts +1 -1
  375. package/ui/components/getStarted/screens/ProjectSetupScreen.d.ts +1 -1
  376. package/ui/components/getStarted/screens/UploadScreen.d.ts +1 -1
  377. package/api/__tests__/migrate.test.d.ts +0 -1
  378. package/api/__tests__/migrate.test.js +0 -199
  379. package/commands/__tests__/account.test.d.ts +0 -1
  380. package/commands/__tests__/account.test.js +0 -69
  381. package/commands/__tests__/auth.test.d.ts +0 -1
  382. package/commands/__tests__/auth.test.js +0 -43
  383. package/commands/__tests__/cms.test.d.ts +0 -1
  384. package/commands/__tests__/cms.test.js +0 -87
  385. package/commands/__tests__/config.test.d.ts +0 -1
  386. package/commands/__tests__/config.test.js +0 -44
  387. package/commands/__tests__/customObject.test.d.ts +0 -1
  388. package/commands/__tests__/customObject.test.js +0 -68
  389. package/commands/__tests__/doctor.test.d.ts +0 -1
  390. package/commands/__tests__/doctor.test.js +0 -132
  391. package/commands/__tests__/feedback.test.d.ts +0 -1
  392. package/commands/__tests__/feedback.test.js +0 -24
  393. package/commands/__tests__/filemanager.test.d.ts +0 -1
  394. package/commands/__tests__/filemanager.test.js +0 -45
  395. package/commands/__tests__/getStarted.test.d.ts +0 -1
  396. package/commands/__tests__/getStarted.test.js +0 -173
  397. package/commands/__tests__/hubdb.test.d.ts +0 -1
  398. package/commands/__tests__/hubdb.test.js +0 -50
  399. package/commands/__tests__/init.test.d.ts +0 -1
  400. package/commands/__tests__/init.test.js +0 -42
  401. package/commands/__tests__/mcp.test.d.ts +0 -1
  402. package/commands/__tests__/mcp.test.js +0 -46
  403. package/commands/__tests__/open.test.d.ts +0 -1
  404. package/commands/__tests__/open.test.js +0 -58
  405. package/commands/__tests__/project.test.d.ts +0 -1
  406. package/commands/__tests__/project.test.js +0 -125
  407. package/commands/__tests__/sandbox.test.d.ts +0 -1
  408. package/commands/__tests__/sandbox.test.js +0 -44
  409. package/commands/__tests__/secret.test.d.ts +0 -1
  410. package/commands/__tests__/secret.test.js +0 -49
  411. package/commands/__tests__/testAccount.test.d.ts +0 -1
  412. package/commands/__tests__/testAccount.test.js +0 -57
  413. package/commands/__tests__/upgrade.test.d.ts +0 -1
  414. package/commands/__tests__/upgrade.test.js +0 -309
  415. package/commands/account/__tests__/auth.test.d.ts +0 -1
  416. package/commands/account/__tests__/auth.test.js +0 -206
  417. package/commands/account/__tests__/clean.test.d.ts +0 -1
  418. package/commands/account/__tests__/clean.test.js +0 -28
  419. package/commands/account/__tests__/createOverride.test.d.ts +0 -1
  420. package/commands/account/__tests__/createOverride.test.js +0 -32
  421. package/commands/account/__tests__/info.test.d.ts +0 -1
  422. package/commands/account/__tests__/info.test.js +0 -28
  423. package/commands/account/__tests__/list.test.d.ts +0 -1
  424. package/commands/account/__tests__/list.test.js +0 -153
  425. package/commands/account/__tests__/remove.test.d.ts +0 -1
  426. package/commands/account/__tests__/remove.test.js +0 -36
  427. package/commands/account/__tests__/removeOverride.d.ts +0 -1
  428. package/commands/account/__tests__/removeOverride.js +0 -25
  429. package/commands/account/__tests__/rename.test.d.ts +0 -1
  430. package/commands/account/__tests__/rename.test.js +0 -82
  431. package/commands/account/__tests__/use.test.d.ts +0 -1
  432. package/commands/account/__tests__/use.test.js +0 -170
  433. package/commands/app/__tests__/migrate.test.d.ts +0 -1
  434. package/commands/app/__tests__/migrate.test.js +0 -111
  435. package/commands/app/secret/__tests__/add.test.d.ts +0 -1
  436. package/commands/app/secret/__tests__/add.test.js +0 -140
  437. package/commands/app/secret/__tests__/delete.test.d.ts +0 -1
  438. package/commands/app/secret/__tests__/delete.test.js +0 -28
  439. package/commands/app/secret/__tests__/list.test.d.ts +0 -1
  440. package/commands/app/secret/__tests__/list.test.js +0 -25
  441. package/commands/app/secret/__tests__/update.test.d.ts +0 -1
  442. package/commands/app/secret/__tests__/update.test.js +0 -28
  443. package/commands/cms/__tests__/delete.test.d.ts +0 -1
  444. package/commands/cms/__tests__/delete.test.js +0 -39
  445. package/commands/cms/__tests__/fetch.test.d.ts +0 -1
  446. package/commands/cms/__tests__/fetch.test.js +0 -156
  447. package/commands/cms/__tests__/function.test.d.ts +0 -1
  448. package/commands/cms/__tests__/function.test.js +0 -50
  449. package/commands/cms/__tests__/lint.test.d.ts +0 -1
  450. package/commands/cms/__tests__/lint.test.js +0 -33
  451. package/commands/cms/__tests__/list.test.d.ts +0 -1
  452. package/commands/cms/__tests__/list.test.js +0 -42
  453. package/commands/cms/__tests__/module.test.d.ts +0 -1
  454. package/commands/cms/__tests__/module.test.js +0 -45
  455. package/commands/cms/__tests__/mv.test.d.ts +0 -1
  456. package/commands/cms/__tests__/mv.test.js +0 -46
  457. package/commands/cms/__tests__/theme.test.d.ts +0 -1
  458. package/commands/cms/__tests__/theme.test.js +0 -54
  459. package/commands/cms/__tests__/upload.test.d.ts +0 -1
  460. package/commands/cms/__tests__/upload.test.js +0 -308
  461. package/commands/cms/__tests__/watch.test.d.ts +0 -1
  462. package/commands/cms/__tests__/watch.test.js +0 -204
  463. package/commands/cms/function/__tests__/logs.test.d.ts +0 -1
  464. package/commands/cms/function/__tests__/logs.test.js +0 -70
  465. package/commands/cms/theme/__tests__/generate-selectors.test.d.ts +0 -1
  466. package/commands/cms/theme/__tests__/generate-selectors.test.js +0 -28
  467. package/commands/cms/theme/__tests__/marketplace-validate.test.d.ts +0 -1
  468. package/commands/cms/theme/__tests__/marketplace-validate.test.js +0 -36
  469. package/commands/cms/theme/__tests__/preview.test.d.ts +0 -1
  470. package/commands/cms/theme/__tests__/preview.test.js +0 -54
  471. package/commands/customObject/__tests__/create.test.d.ts +0 -1
  472. package/commands/customObject/__tests__/create.test.js +0 -40
  473. package/commands/customObject/__tests__/createSchema.test.d.ts +0 -1
  474. package/commands/customObject/__tests__/createSchema.test.js +0 -28
  475. package/commands/customObject/__tests__/deleteSchema.test.d.ts +0 -1
  476. package/commands/customObject/__tests__/deleteSchema.test.js +0 -42
  477. package/commands/customObject/__tests__/fetch-all-schemas.test.d.ts +0 -1
  478. package/commands/customObject/__tests__/fetch-all-schemas.test.js +0 -41
  479. package/commands/customObject/__tests__/fetchSchema.test.d.ts +0 -1
  480. package/commands/customObject/__tests__/fetchSchema.test.js +0 -45
  481. package/commands/customObject/__tests__/listSchemas.test.d.ts +0 -1
  482. package/commands/customObject/__tests__/listSchemas.test.js +0 -29
  483. package/commands/customObject/__tests__/updateSchema.test.d.ts +0 -1
  484. package/commands/customObject/__tests__/updateSchema.test.js +0 -40
  485. package/commands/filemanager/__tests__/fetch.test.d.ts +0 -1
  486. package/commands/filemanager/__tests__/fetch.test.js +0 -32
  487. package/commands/filemanager/__tests__/upload.test.d.ts +0 -1
  488. package/commands/filemanager/__tests__/upload.test.js +0 -191
  489. package/commands/hubdb/__tests__/clear.test.d.ts +0 -1
  490. package/commands/hubdb/__tests__/clear.test.js +0 -28
  491. package/commands/hubdb/__tests__/create.test.d.ts +0 -1
  492. package/commands/hubdb/__tests__/create.test.js +0 -28
  493. package/commands/hubdb/__tests__/delete.test.d.ts +0 -1
  494. package/commands/hubdb/__tests__/delete.test.js +0 -28
  495. package/commands/hubdb/__tests__/fetch.test.d.ts +0 -1
  496. package/commands/hubdb/__tests__/fetch.test.js +0 -28
  497. package/commands/hubdb/__tests__/list.test.d.ts +0 -1
  498. package/commands/hubdb/__tests__/list.test.js +0 -88
  499. package/commands/mcp/__tests__/setup.test.d.ts +0 -1
  500. package/commands/mcp/__tests__/setup.test.js +0 -26
  501. package/commands/mcp/__tests__/start.test.d.ts +0 -1
  502. package/commands/mcp/__tests__/start.test.js +0 -144
  503. package/commands/project/__tests__/add.test.d.ts +0 -1
  504. package/commands/project/__tests__/add.test.js +0 -107
  505. package/commands/project/__tests__/create.test.d.ts +0 -1
  506. package/commands/project/__tests__/create.test.js +0 -97
  507. package/commands/project/__tests__/deploy.test.d.ts +0 -1
  508. package/commands/project/__tests__/deploy.test.js +0 -307
  509. package/commands/project/__tests__/dev.test.d.ts +0 -1
  510. package/commands/project/__tests__/dev.test.js +0 -273
  511. package/commands/project/__tests__/devUnifiedFlow.test.d.ts +0 -1
  512. package/commands/project/__tests__/devUnifiedFlow.test.js +0 -434
  513. package/commands/project/__tests__/download.test.d.ts +0 -1
  514. package/commands/project/__tests__/download.test.js +0 -39
  515. package/commands/project/__tests__/installDeps.test.d.ts +0 -1
  516. package/commands/project/__tests__/installDeps.test.js +0 -140
  517. package/commands/project/__tests__/lint.test.d.ts +0 -1
  518. package/commands/project/__tests__/lint.test.js +0 -704
  519. package/commands/project/__tests__/list.test.d.ts +0 -1
  520. package/commands/project/__tests__/list.test.js +0 -31
  521. package/commands/project/__tests__/listBuilds.test.d.ts +0 -1
  522. package/commands/project/__tests__/listBuilds.test.js +0 -38
  523. package/commands/project/__tests__/logs.test.d.ts +0 -1
  524. package/commands/project/__tests__/logs.test.js +0 -202
  525. package/commands/project/__tests__/migrate.test.d.ts +0 -1
  526. package/commands/project/__tests__/migrate.test.js +0 -106
  527. package/commands/project/__tests__/open.test.d.ts +0 -1
  528. package/commands/project/__tests__/open.test.js +0 -39
  529. package/commands/project/__tests__/profile.test.d.ts +0 -1
  530. package/commands/project/__tests__/profile.test.js +0 -42
  531. package/commands/project/__tests__/updateDeps.test.d.ts +0 -1
  532. package/commands/project/__tests__/updateDeps.test.js +0 -140
  533. package/commands/project/__tests__/upload.test.d.ts +0 -1
  534. package/commands/project/__tests__/upload.test.js +0 -234
  535. package/commands/project/__tests__/validate.test.d.ts +0 -1
  536. package/commands/project/__tests__/validate.test.js +0 -381
  537. package/commands/project/__tests__/watch.test.d.ts +0 -1
  538. package/commands/project/__tests__/watch.test.js +0 -35
  539. package/commands/project/dev/deprecatedFlow.d.ts +0 -11
  540. package/commands/project/dev/deprecatedFlow.js +0 -135
  541. package/commands/sandbox/__tests__/create.test.d.ts +0 -1
  542. package/commands/sandbox/__tests__/create.test.js +0 -245
  543. package/commands/sandbox/__tests__/delete.test.d.ts +0 -1
  544. package/commands/sandbox/__tests__/delete.test.js +0 -31
  545. package/commands/secret/__tests__/addSecret.test.d.ts +0 -1
  546. package/commands/secret/__tests__/addSecret.test.js +0 -162
  547. package/commands/secret/__tests__/deleteSecret.test.d.ts +0 -1
  548. package/commands/secret/__tests__/deleteSecret.test.js +0 -41
  549. package/commands/secret/__tests__/listSecret.test.d.ts +0 -1
  550. package/commands/secret/__tests__/listSecret.test.js +0 -29
  551. package/commands/secret/__tests__/updateSecret.test.d.ts +0 -1
  552. package/commands/secret/__tests__/updateSecret.test.js +0 -29
  553. package/commands/testAccount/__tests__/create.test.d.ts +0 -1
  554. package/commands/testAccount/__tests__/create.test.js +0 -106
  555. package/commands/testAccount/__tests__/createConfig.test.d.ts +0 -1
  556. package/commands/testAccount/__tests__/createConfig.test.js +0 -32
  557. package/commands/testAccount/__tests__/delete.test.d.ts +0 -1
  558. package/commands/testAccount/__tests__/delete.test.js +0 -29
  559. package/commands/testAccount/__tests__/importData.test.d.ts +0 -1
  560. package/commands/testAccount/__tests__/importData.test.js +0 -92
  561. package/lib/__tests__/CLIWebSocketServer.test.d.ts +0 -1
  562. package/lib/__tests__/CLIWebSocketServer.test.js +0 -252
  563. package/lib/__tests__/accountAuth.test.d.ts +0 -1
  564. package/lib/__tests__/accountAuth.test.js +0 -258
  565. package/lib/__tests__/accountTypes.test.d.ts +0 -1
  566. package/lib/__tests__/accountTypes.test.js +0 -98
  567. package/lib/__tests__/buildAccount.test.d.ts +0 -1
  568. package/lib/__tests__/buildAccount.test.js +0 -262
  569. package/lib/__tests__/cliUpgradeUtils.test.d.ts +0 -1
  570. package/lib/__tests__/cliUpgradeUtils.test.js +0 -131
  571. package/lib/__tests__/commandSuggestion.test.d.ts +0 -1
  572. package/lib/__tests__/commandSuggestion.test.js +0 -121
  573. package/lib/__tests__/commonOpts.test.d.ts +0 -1
  574. package/lib/__tests__/commonOpts.test.js +0 -80
  575. package/lib/__tests__/dependencyManagement.test.d.ts +0 -1
  576. package/lib/__tests__/dependencyManagement.test.js +0 -1067
  577. package/lib/__tests__/developerTestAccounts.test.d.ts +0 -1
  578. package/lib/__tests__/developerTestAccounts.test.js +0 -156
  579. package/lib/__tests__/hasFeature.test.d.ts +0 -1
  580. package/lib/__tests__/hasFeature.test.js +0 -167
  581. package/lib/__tests__/http.test.d.ts +0 -1
  582. package/lib/__tests__/http.test.js +0 -40
  583. package/lib/__tests__/importData.test.d.ts +0 -1
  584. package/lib/__tests__/importData.test.js +0 -98
  585. package/lib/__tests__/npmCli.test.d.ts +0 -1
  586. package/lib/__tests__/npmCli.test.js +0 -84
  587. package/lib/__tests__/oauth.test.d.ts +0 -1
  588. package/lib/__tests__/oauth.test.js +0 -109
  589. package/lib/__tests__/parsing.test.d.ts +0 -1
  590. package/lib/__tests__/parsing.test.js +0 -34
  591. package/lib/__tests__/polling.test.d.ts +0 -1
  592. package/lib/__tests__/polling.test.js +0 -76
  593. package/lib/__tests__/process.test.d.ts +0 -1
  594. package/lib/__tests__/process.test.js +0 -89
  595. package/lib/__tests__/sandboxSync.test.d.ts +0 -1
  596. package/lib/__tests__/sandboxSync.test.js +0 -147
  597. package/lib/__tests__/sandboxes.test.d.ts +0 -1
  598. package/lib/__tests__/sandboxes.test.js +0 -156
  599. package/lib/__tests__/serverlessLogs.test.d.ts +0 -1
  600. package/lib/__tests__/serverlessLogs.test.js +0 -163
  601. package/lib/__tests__/usageTracking.test.d.ts +0 -1
  602. package/lib/__tests__/usageTracking.test.js +0 -197
  603. package/lib/__tests__/validation.test.d.ts +0 -1
  604. package/lib/__tests__/validation.test.js +0 -143
  605. package/lib/__tests__/yargsUtils.test.d.ts +0 -1
  606. package/lib/__tests__/yargsUtils.test.js +0 -124
  607. package/lib/app/__tests__/migrate.test.d.ts +0 -1
  608. package/lib/app/__tests__/migrate.test.js +0 -638
  609. package/lib/doctor/__tests__/Diagnosis.test.d.ts +0 -1
  610. package/lib/doctor/__tests__/Diagnosis.test.js +0 -84
  611. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.d.ts +0 -1
  612. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.js +0 -177
  613. package/lib/doctor/__tests__/Doctor.test.d.ts +0 -1
  614. package/lib/doctor/__tests__/Doctor.test.js +0 -560
  615. package/lib/errorHandlers/__tests__/index.test.d.ts +0 -1
  616. package/lib/errorHandlers/__tests__/index.test.js +0 -278
  617. package/lib/mcp/__tests__/setup.test.d.ts +0 -1
  618. package/lib/mcp/__tests__/setup.test.js +0 -523
  619. package/lib/middleware/__tests__/commandTargetingUtils.test.d.ts +0 -1
  620. package/lib/middleware/__tests__/commandTargetingUtils.test.js +0 -99
  621. package/lib/middleware/__tests__/configMiddleware.test.d.ts +0 -1
  622. package/lib/middleware/__tests__/configMiddleware.test.js +0 -118
  623. package/lib/middleware/__tests__/gitMiddleware.test.d.ts +0 -1
  624. package/lib/middleware/__tests__/gitMiddleware.test.js +0 -43
  625. package/lib/middleware/__tests__/requestMiddleware.test.d.ts +0 -1
  626. package/lib/middleware/__tests__/requestMiddleware.test.js +0 -15
  627. package/lib/middleware/__tests__/usageTrackingMiddleware.test.d.ts +0 -1
  628. package/lib/middleware/__tests__/usageTrackingMiddleware.test.js +0 -44
  629. package/lib/middleware/__tests__/yargsChecksMiddleware.test.d.ts +0 -1
  630. package/lib/middleware/__tests__/yargsChecksMiddleware.test.js +0 -39
  631. package/lib/projects/__tests__/AppDevModeInterface.test.d.ts +0 -1
  632. package/lib/projects/__tests__/AppDevModeInterface.test.js +0 -541
  633. package/lib/projects/__tests__/DevServerManager.test.d.ts +0 -1
  634. package/lib/projects/__tests__/DevServerManager.test.js +0 -185
  635. package/lib/projects/__tests__/DevSessionManager.test.d.ts +0 -1
  636. package/lib/projects/__tests__/DevSessionManager.test.js +0 -250
  637. package/lib/projects/__tests__/LocalDevProcess.test.d.ts +0 -1
  638. package/lib/projects/__tests__/LocalDevProcess.test.js +0 -481
  639. package/lib/projects/__tests__/LocalDevWebsocketServer.test.d.ts +0 -1
  640. package/lib/projects/__tests__/LocalDevWebsocketServer.test.js +0 -231
  641. package/lib/projects/__tests__/ProjectLogsManager.test.d.ts +0 -1
  642. package/lib/projects/__tests__/ProjectLogsManager.test.js +0 -302
  643. package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.d.ts +0 -1
  644. package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.js +0 -160
  645. package/lib/projects/__tests__/components.test.d.ts +0 -1
  646. package/lib/projects/__tests__/components.test.js +0 -426
  647. package/lib/projects/__tests__/deploy.test.d.ts +0 -1
  648. package/lib/projects/__tests__/deploy.test.js +0 -231
  649. package/lib/projects/__tests__/localDevProjectHelpers.test.d.ts +0 -1
  650. package/lib/projects/__tests__/localDevProjectHelpers.test.js +0 -120
  651. package/lib/projects/__tests__/platformVersion.test.d.ts +0 -1
  652. package/lib/projects/__tests__/platformVersion.test.js +0 -63
  653. package/lib/projects/__tests__/pollProjectBuildAndDeploy.test.d.ts +0 -1
  654. package/lib/projects/__tests__/pollProjectBuildAndDeploy.test.js +0 -328
  655. package/lib/projects/__tests__/projectProfiles.test.d.ts +0 -1
  656. package/lib/projects/__tests__/projectProfiles.test.js +0 -441
  657. package/lib/projects/__tests__/projects.test.d.ts +0 -1
  658. package/lib/projects/__tests__/projects.test.js +0 -58
  659. package/lib/projects/__tests__/structure.test.d.ts +0 -1
  660. package/lib/projects/__tests__/structure.test.js +0 -210
  661. package/lib/projects/__tests__/uieLinting.test.d.ts +0 -1
  662. package/lib/projects/__tests__/uieLinting.test.js +0 -631
  663. package/lib/projects/__tests__/upload.test.d.ts +0 -1
  664. package/lib/projects/__tests__/upload.test.js +0 -183
  665. package/lib/projects/add/__tests__/legacyAddComponent.test.d.ts +0 -1
  666. package/lib/projects/add/__tests__/legacyAddComponent.test.js +0 -245
  667. package/lib/projects/add/__tests__/v2AddComponent.test.d.ts +0 -1
  668. package/lib/projects/add/__tests__/v2AddComponent.test.js +0 -343
  669. package/lib/projects/create/__tests__/legacy.test.d.ts +0 -1
  670. package/lib/projects/create/__tests__/legacy.test.js +0 -72
  671. package/lib/projects/create/__tests__/v2.test.d.ts +0 -1
  672. package/lib/projects/create/__tests__/v2.test.js +0 -257
  673. package/lib/projects/localDev/DevServerManager_DEPRECATED.d.ts +0 -40
  674. package/lib/projects/localDev/DevServerManager_DEPRECATED.js +0 -128
  675. package/lib/projects/localDev/LocalDevManager_DEPRECATED.d.ts +0 -59
  676. package/lib/projects/localDev/LocalDevManager_DEPRECATED.js +0 -383
  677. package/lib/projects/platformVersion.d.ts +0 -9
  678. package/lib/projects/platformVersion.js +0 -39
  679. package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.d.ts +0 -1
  680. package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.js +0 -157
  681. package/lib/prompts/__tests__/createFunctionPrompt.test.d.ts +0 -1
  682. package/lib/prompts/__tests__/createFunctionPrompt.test.js +0 -129
  683. package/lib/prompts/__tests__/createModulePrompt.test.d.ts +0 -1
  684. package/lib/prompts/__tests__/createModulePrompt.test.js +0 -187
  685. package/lib/prompts/__tests__/createTemplatePrompt.test.d.ts +0 -1
  686. package/lib/prompts/__tests__/createTemplatePrompt.test.js +0 -102
  687. package/lib/prompts/__tests__/downloadProjectPrompt.test.d.ts +0 -1
  688. package/lib/prompts/__tests__/downloadProjectPrompt.test.js +0 -31
  689. package/lib/prompts/__tests__/projectAddPrompt.test.d.ts +0 -1
  690. package/lib/prompts/__tests__/projectAddPrompt.test.js +0 -143
  691. package/lib/prompts/__tests__/projectsLogsPrompt.test.d.ts +0 -1
  692. package/lib/prompts/__tests__/projectsLogsPrompt.test.js +0 -37
  693. package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.d.ts +0 -1
  694. package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.js +0 -160
  695. package/lib/sandboxSync.d.ts +0 -4
  696. package/lib/sandboxSync.js +0 -102
  697. package/lib/theme/__tests__/migrate.test.d.ts +0 -1
  698. package/lib/theme/__tests__/migrate.test.js +0 -256
  699. package/lib/ui/__tests__/SpinniesManager.test.d.ts +0 -1
  700. package/lib/ui/__tests__/SpinniesManager.test.js +0 -488
  701. package/lib/ui/__tests__/removeAnsiCodes.test.d.ts +0 -1
  702. package/lib/ui/__tests__/removeAnsiCodes.test.js +0 -84
  703. package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.d.ts +0 -1
  704. package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.js +0 -254
  705. package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.d.ts +0 -1
  706. package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.js +0 -227
  707. package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.d.ts +0 -1
  708. package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.js +0 -208
  709. package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.d.ts +0 -1
  710. package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.js +0 -186
  711. package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.d.ts +0 -1
  712. package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.js +0 -124
  713. package/mcp-server/tools/cms/__tests__/HsListTool.test.d.ts +0 -1
  714. package/mcp-server/tools/cms/__tests__/HsListTool.test.js +0 -124
  715. package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.d.ts +0 -1
  716. package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.js +0 -157
  717. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.d.ts +0 -1
  718. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.js +0 -132
  719. package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.d.ts +0 -1
  720. package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.js +0 -461
  721. package/mcp-server/tools/project/__tests__/DeployProjectTool.test.d.ts +0 -1
  722. package/mcp-server/tools/project/__tests__/DeployProjectTool.test.js +0 -125
  723. package/mcp-server/tools/project/__tests__/DocFetchTool.test.d.ts +0 -1
  724. package/mcp-server/tools/project/__tests__/DocFetchTool.test.js +0 -125
  725. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.d.ts +0 -1
  726. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.js +0 -210
  727. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.d.ts +0 -1
  728. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.js +0 -146
  729. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.d.ts +0 -1
  730. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.js +0 -124
  731. package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.d.ts +0 -1
  732. package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.js +0 -307
  733. package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.d.ts +0 -1
  734. package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.js +0 -242
  735. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.d.ts +0 -1
  736. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.js +0 -209
  737. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.d.ts +0 -1
  738. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.js +0 -158
  739. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.d.ts +0 -1
  740. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.js +0 -187
  741. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.d.ts +0 -1
  742. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.js +0 -118
  743. package/mcp-server/utils/__tests__/command.test.d.ts +0 -1
  744. package/mcp-server/utils/__tests__/command.test.js +0 -275
  745. package/mcp-server/utils/__tests__/content.test.d.ts +0 -1
  746. package/mcp-server/utils/__tests__/content.test.js +0 -164
  747. package/mcp-server/utils/__tests__/feedbackTracking.test.d.ts +0 -1
  748. package/mcp-server/utils/__tests__/feedbackTracking.test.js +0 -69
@@ -0,0 +1,25 @@
1
+ function getYargsErrorMessage(error) {
2
+ return error instanceof Error && error.name === 'YError' ? error.message : '';
3
+ }
4
+ function getYargsFailureMessage(message, error) {
5
+ if (message) {
6
+ return message;
7
+ }
8
+ return getYargsErrorMessage(error) || message;
9
+ }
10
+ export async function parseYargsOrExit(parser, handleFailure) {
11
+ let failureHandled = false;
12
+ const parserWithFailureHandler = parser.fail((message, error, yargs) => {
13
+ failureHandled = true;
14
+ return handleFailure(getYargsFailureMessage(message, error), error, yargs);
15
+ });
16
+ try {
17
+ return await parserWithFailureHandler.parseAsync();
18
+ }
19
+ catch (error) {
20
+ if (failureHandled) {
21
+ throw error;
22
+ }
23
+ return handleFailure(getYargsErrorMessage(error), error, parserWithFailureHandler);
24
+ }
25
+ }
@@ -0,0 +1 @@
1
+ export declare function strictEnforceBoolean(rawArgs: string[], booleanOptions: string[]): boolean;
@@ -0,0 +1,13 @@
1
+ import { commands } from '../../lang/en.js';
2
+ export function strictEnforceBoolean(rawArgs, booleanOptions) {
3
+ for (const option of booleanOptions) {
4
+ const argIndex = rawArgs.findIndex(arg => arg.startsWith(`--${option}=`));
5
+ if (argIndex !== -1) {
6
+ const value = rawArgs[argIndex].split('=')[1];
7
+ if (value && !['true', 'false'].includes(value.toLowerCase())) {
8
+ throw new Error(commands.config.subcommands.set.errors.invalidBoolean(option, value));
9
+ }
10
+ }
11
+ }
12
+ return true;
13
+ }
@@ -1,16 +1,3 @@
1
- import { Argv } from 'yargs';
2
- import { hasFlag } from './utils/hasFlag.js';
3
- export { hasFlag };
4
- export declare function makeYargsBuilder<T>(callback: (yargs: Argv) => Argv<T>, command: string | string[], describe?: string, options?: {
5
- useGlobalOptions?: boolean;
6
- useAccountOptions?: boolean;
7
- useConfigOptions?: boolean;
8
- useEnvironmentOptions?: boolean;
9
- useTestingOptions?: boolean;
10
- useCmsPublishModeOptions?: boolean | {
11
- read?: boolean;
12
- write?: boolean;
13
- };
14
- useJSONOutputOptions?: boolean;
15
- }): (yargs: Argv) => Promise<Argv<T>>;
16
- export declare function strictEnforceBoolean(rawArgs: string[], booleanOptions: string[]): boolean;
1
+ export { hasFlag } from './utils/hasFlag.js';
2
+ export { makeYargsBuilder } from './yargs/makeYargsBuilder.js';
3
+ export { strictEnforceBoolean } from './yargs/strictEnforceBoolean.js';
package/lib/yargsUtils.js CHANGED
@@ -1,49 +1,4 @@
1
- import { addCustomHelpOutput, addTestingOptions, addAccountOptions, addConfigOptions, addGlobalOptions, addUseEnvironmentOptions, addCmsPublishModeOptions, addJSONOutputOptions, } from './commonOpts.js';
2
- import { hasFlag } from './utils/hasFlag.js';
3
- import { commands } from '../lang/en.js';
4
1
  // Re-export for backwards compatibility
5
- export { hasFlag };
6
- export function makeYargsBuilder(callback, command, describe, options = {}) {
7
- return async function (yargs) {
8
- if (options.useGlobalOptions) {
9
- addGlobalOptions(yargs);
10
- }
11
- if (options.useAccountOptions) {
12
- addAccountOptions(yargs);
13
- }
14
- if (options.useConfigOptions) {
15
- addConfigOptions(yargs);
16
- }
17
- if (options.useEnvironmentOptions) {
18
- addUseEnvironmentOptions(yargs);
19
- }
20
- if (options.useTestingOptions) {
21
- addTestingOptions(yargs);
22
- }
23
- if (options.useJSONOutputOptions) {
24
- addJSONOutputOptions(yargs);
25
- }
26
- if (options.useCmsPublishModeOptions) {
27
- const opts = typeof options.useCmsPublishModeOptions === 'object'
28
- ? options.useCmsPublishModeOptions
29
- : { write: true };
30
- addCmsPublishModeOptions(yargs, opts);
31
- }
32
- const result = callback(yargs);
33
- // Must go last to pick up available options
34
- await addCustomHelpOutput(result, command, describe);
35
- return result;
36
- };
37
- }
38
- export function strictEnforceBoolean(rawArgs, booleanOptions) {
39
- for (const option of booleanOptions) {
40
- const argIndex = rawArgs.findIndex(arg => arg.startsWith(`--${option}=`));
41
- if (argIndex !== -1) {
42
- const value = rawArgs[argIndex].split('=')[1];
43
- if (value && !['true', 'false'].includes(value.toLowerCase())) {
44
- throw new Error(commands.config.subcommands.set.errors.invalidBoolean(option, value));
45
- }
46
- }
47
- }
48
- return true;
49
- }
2
+ export { hasFlag } from './utils/hasFlag.js';
3
+ export { makeYargsBuilder } from './yargs/makeYargsBuilder.js';
4
+ export { strictEnforceBoolean } from './yargs/strictEnforceBoolean.js';
@@ -0,0 +1,20 @@
1
+ import { McpServer, RegisteredTool } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import { RequestHandlerExtra } from '@modelcontextprotocol/sdk/shared/protocol.js';
3
+ import { ServerNotification, ServerRequest } from '@modelcontextprotocol/sdk/types.js';
4
+ import { McpLogger } from './utils/logger.js';
5
+ import { TextContentResponse } from './types.js';
6
+ import { CommandResults, Command } from './utils/command.js';
7
+ export type ToolExtra = RequestHandlerExtra<ServerRequest, ServerNotification>;
8
+ export declare class Tool<InputSchema> {
9
+ protected mcpServer: McpServer;
10
+ protected logger: McpLogger;
11
+ protected toolName: string;
12
+ constructor(mcpServer: McpServer, logger: McpLogger, toolName: string);
13
+ register(): RegisteredTool;
14
+ handler(_input: InputSchema): TextContentResponse | Promise<TextContentResponse>;
15
+ protected runCommand(directory: string, command: Command, extra?: ToolExtra): Promise<CommandResults>;
16
+ protected getTrackingMeta(_input: InputSchema): {
17
+ [key: string]: string;
18
+ } | undefined;
19
+ protected wrappedHandler(input: InputSchema, extra?: ToolExtra): Promise<TextContentResponse>;
20
+ }
@@ -0,0 +1,79 @@
1
+ import { formatTextContents } from './utils/content.js';
2
+ import { getErrorMessage } from '../lib/errorHandlers/index.js';
3
+ import { trackToolUsage } from './utils/toolUsageTracking.js';
4
+ import { runCommandInDir } from './utils/command.js';
5
+ export class Tool {
6
+ mcpServer;
7
+ logger;
8
+ toolName;
9
+ constructor(mcpServer, logger, toolName) {
10
+ this.mcpServer = mcpServer;
11
+ this.logger = logger;
12
+ this.toolName = toolName;
13
+ }
14
+ register() {
15
+ throw new Error('Must implement register');
16
+ }
17
+ handler(_input) {
18
+ throw new Error('Must implement handler');
19
+ }
20
+ runCommand(directory, command, extra) {
21
+ let progressCount = 0;
22
+ return runCommandInDir(directory, command, async (chunk) => {
23
+ try {
24
+ const message = `${chunk.trimEnd()}`;
25
+ this.logger.debug(this.toolName, message);
26
+ const token = extra?._meta?.progressToken;
27
+ if (token !== undefined && extra?.sendNotification) {
28
+ progressCount++;
29
+ await extra.sendNotification({
30
+ method: 'notifications/progress',
31
+ params: {
32
+ progressToken: token,
33
+ progress: progressCount,
34
+ message,
35
+ },
36
+ });
37
+ }
38
+ }
39
+ catch {
40
+ // Swallow notification errors so a failed notification never crashes the tool
41
+ }
42
+ });
43
+ }
44
+ getTrackingMeta(_input) {
45
+ return undefined;
46
+ }
47
+ wrappedHandler(input, extra) {
48
+ return this.logger.runWithBuffer(async () => {
49
+ const startTime = Date.now();
50
+ try {
51
+ // `input` is logged unredacted. Tool input schemas MUST NOT include
52
+ // credentials or other sensitive values, since MCP clients (Claude
53
+ // Desktop, Inspector, etc.) will display these logs.
54
+ this.logger.debug(this.toolName, {
55
+ message: 'Tool invoked',
56
+ args: input,
57
+ });
58
+ await trackToolUsage(this.toolName, this.getTrackingMeta(input));
59
+ const result = await this.handler(input, extra);
60
+ this.logger.debug(this.toolName, {
61
+ message: 'Tool completed',
62
+ durationMs: Date.now() - startTime,
63
+ });
64
+ return result;
65
+ }
66
+ catch (error) {
67
+ this.logger.error(this.toolName, {
68
+ message: 'Tool failed',
69
+ error: error instanceof Error ? error.message : String(error),
70
+ durationMs: Date.now() - startTime,
71
+ });
72
+ return formatTextContents(getErrorMessage(error));
73
+ }
74
+ finally {
75
+ this.logger.flushLogsToFile(this.toolName);
76
+ }
77
+ });
78
+ }
79
+ }
@@ -1,13 +1,57 @@
1
1
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
3
3
  import { registerProjectTools, registerCmsTools } from './tools/index.js';
4
+ import { McpLogger } from './utils/logger.js';
5
+ const instructions = `
6
+ This server exposes the HubSpot CLI (\`hs\`) for local development of HubSpot
7
+ projects, apps, and CMS assets. Prefer these tools over running \`hs\`,
8
+ \`npx hs\`, or HubSpot HTTP APIs directly via shell — they handle config
9
+ loading, auth, platform-version flags, and structured output for you.
10
+
11
+ WHEN TO USE THIS SERVER
12
+ - The user is working in a HubSpot project directory (has an hsproject.json
13
+ or *-hsmeta.json files), or wants to scaffold one.
14
+ - The user asks about HubSpot apps, CMS modules/templates/serverless
15
+ functions, project builds, deploys, or developer test accounts.
16
+ - The user asks a HubSpot platform/API question — answer it from the docs
17
+ via \`search-docs\` + \`fetch-doc\` rather than from prior knowledge.
18
+
19
+ REQUIRED WORKFLOWS
20
+ 1. Authentication: call \`auth-account\` when the user wants to connect a
21
+ HubSpot account, when any tool reports "No account ID found", or when
22
+ there are no authenticated accounts. The tool opens a browser tab for
23
+ the user to authorize — no Personal Access Key is required up front.
24
+ 2. Documentation lookup: always call \`search-docs\` first, then
25
+ \`fetch-doc\` on the most relevant result(s) before planning, writing
26
+ code, or answering platform/API questions. Do not answer from memory.
27
+ 3. Locating a HubSpot project: when the current working directory is not
28
+ a HubSpot project (no \`hsproject.json\`) or you need to determine
29
+ whether a directory contains one, call \`find-projects\` before
30
+ running any tool that requires a project path.
31
+ 4. Editing \`*-hsmeta.json\`: call \`get-feature-config-schema\` for that
32
+ feature type first to learn the allowed fields and values.
33
+ 5. Debugging a failed build: start with \`get-build-status\` to surface
34
+ error messages, and only reach for \`get-build-logs\` for deeper
35
+ troubleshooting or warnings.
36
+ 6. Reading serverless function logs: call \`list-cms-serverless-functions\`
37
+ first to discover the endpoint path, then
38
+ \`get-cms-serverless-function-logs\`.
39
+ 7. App analytics: call \`get-apps-info\` to discover \`appId\` values
40
+ before \`get-api-usage-patterns-by-app-id\`.
41
+
42
+ OUTPUT
43
+ Tool results contain the relevant \`hs\` stdout/stderr or structured data.
44
+ Surface error text from results to the user verbatim when troubleshooting,
45
+ rather than paraphrasing.
46
+ `.trim();
4
47
  const server = new McpServer({
5
48
  name: 'HubSpot CLI MCP Server',
6
49
  version: '0.0.1',
7
50
  description: 'Helps perform tasks for local development of HubSpot projects.',
8
- });
9
- registerProjectTools(server);
10
- registerCmsTools(server);
51
+ }, { capabilities: { logging: {} }, instructions });
52
+ const logger = new McpLogger(server);
53
+ registerProjectTools(server, logger);
54
+ registerCmsTools(server, logger);
11
55
  // Start receiving messages on stdin and sending messages on stdout
12
56
  const transport = new StdioServerTransport();
13
57
  server.connect(transport);
@@ -1,5 +1,7 @@
1
- import { TextContentResponse, Tool } from '../../types.js';
1
+ import { TextContentResponse } from '../../types.js';
2
+ import { Tool, ToolExtra } 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;
@@ -17,8 +19,8 @@ declare const inputSchemaZodObject: z.ZodObject<{
17
19
  }, z.core.$strip>;
18
20
  export type HsCreateFunctionInputSchema = z.infer<typeof inputSchemaZodObject>;
19
21
  export declare class HsCreateFunctionTool extends Tool<HsCreateFunctionInputSchema> {
20
- constructor(mcpServer: McpServer);
21
- handler({ dest, functionsFolder, filename, endpointMethod, endpointPath, absoluteCurrentWorkingDirectory, }: HsCreateFunctionInputSchema): Promise<TextContentResponse>;
22
+ constructor(mcpServer: McpServer, logger: McpLogger);
23
+ handler({ dest, functionsFolder, filename, endpointMethod, endpointPath, absoluteCurrentWorkingDirectory, }: HsCreateFunctionInputSchema, extra?: ToolExtra): Promise<TextContentResponse>;
22
24
  register(): RegisteredTool;
23
25
  }
24
26
  export {};
@@ -1,11 +1,9 @@
1
- import { Tool } from '../../types.js';
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/command.js';
5
4
  import { formatTextContents, formatTextContent } from '../../utils/content.js';
6
- import { trackToolUsage } from '../../utils/toolUsageTracking.js';
7
- import { addFlag } from '../../utils/command.js';
8
5
  import { HTTP_METHODS } from '../../../types/Cms.js';
6
+ import { HubSpotCommand } from '../../utils/command.js';
9
7
  import { setupHubSpotConfig } from '../../utils/config.js';
10
8
  import { getErrorMessage } from '../../../lib/errorHandlers/index.js';
11
9
  const inputSchema = {
@@ -35,12 +33,11 @@ const inputSchema = {
35
33
  const inputSchemaZodObject = z.object({ ...inputSchema });
36
34
  const toolName = 'create-cms-function';
37
35
  export class HsCreateFunctionTool extends Tool {
38
- constructor(mcpServer) {
39
- super(mcpServer);
36
+ constructor(mcpServer, logger) {
37
+ super(mcpServer, logger, toolName);
40
38
  }
41
- async handler({ dest, functionsFolder, filename, endpointMethod, endpointPath, absoluteCurrentWorkingDirectory, }) {
39
+ async handler({ dest, functionsFolder, filename, endpointMethod, endpointPath, absoluteCurrentWorkingDirectory, }, extra) {
42
40
  setupHubSpotConfig(absoluteCurrentWorkingDirectory);
43
- await trackToolUsage(toolName);
44
41
  const content = [];
45
42
  // Require functions folder
46
43
  if (!functionsFolder) {
@@ -61,38 +58,36 @@ export class HsCreateFunctionTool extends Tool {
61
58
  };
62
59
  }
63
60
  // Build the command
64
- let command = 'hs create function';
61
+ const command = new HubSpotCommand('cms function create');
65
62
  if (dest) {
66
- command += ` "${dest}"`;
63
+ command.addArg(dest);
67
64
  }
68
- // Add function-specific flags
69
65
  if (functionsFolder) {
70
- command = addFlag(command, 'functions-folder', functionsFolder);
66
+ command.addFlag('functions-folder', functionsFolder);
71
67
  }
72
68
  if (filename) {
73
- command = addFlag(command, 'filename', filename);
74
- }
75
- if (endpointMethod) {
76
- command = addFlag(command, 'endpoint-method', endpointMethod);
77
- }
78
- else {
79
- command = addFlag(command, 'endpoint-method', 'GET');
69
+ command.addFlag('filename', filename);
80
70
  }
71
+ command.addFlag('endpoint-method', endpointMethod ?? 'GET');
81
72
  if (endpointPath) {
82
- command = addFlag(command, 'endpoint-path', endpointPath);
73
+ command.addFlag('endpoint-path', endpointPath);
83
74
  }
84
75
  try {
85
- const { stdout, stderr } = await runCommandInDir(absoluteCurrentWorkingDirectory, command);
76
+ const { stdout, stderr } = await this.runCommand(absoluteCurrentWorkingDirectory, command, extra);
86
77
  return formatTextContents(stdout, stderr);
87
78
  }
88
79
  catch (error) {
80
+ this.logger.debug(toolName, {
81
+ message: 'Handler caught error',
82
+ error: error instanceof Error ? error.message : String(error),
83
+ });
89
84
  return formatTextContents(getErrorMessage(error));
90
85
  }
91
86
  }
92
87
  register() {
93
88
  return this.mcpServer.registerTool(toolName, {
94
89
  title: 'Create HubSpot CMS Serverless Function',
95
- description: `Creates a new HubSpot CMS serverless function using the hs create function command. Functions can be created non-interactively by specifying functionsFolder, filename, and endpointPath. Supports all HTTP methods (${HTTP_METHODS.join(', ')}).`,
90
+ description: `Creates a new HubSpot CMS serverless function using the hs cms function create command. Functions can be created non-interactively by specifying functionsFolder, filename, and endpointPath. Supports all HTTP methods (${HTTP_METHODS.join(', ')}).`,
96
91
  inputSchema,
97
92
  annotations: {
98
93
  readOnlyHint: false,
@@ -100,6 +95,6 @@ export class HsCreateFunctionTool extends Tool {
100
95
  idempotentHint: false,
101
96
  openWorldHint: false,
102
97
  },
103
- }, this.handler);
98
+ }, (input, extra) => this.wrappedHandler(input, extra));
104
99
  }
105
100
  }
@@ -1,5 +1,7 @@
1
- import { TextContentResponse, Tool } from '../../types.js';
1
+ import { TextContentResponse } from '../../types.js';
2
+ import { Tool, ToolExtra } 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;
@@ -13,8 +15,8 @@ declare const inputSchemaZodObject: z.ZodObject<{
13
15
  }, z.core.$strip>;
14
16
  export type HsCreateModuleInputSchema = z.infer<typeof inputSchemaZodObject>;
15
17
  export declare class HsCreateModuleTool extends Tool<HsCreateModuleInputSchema> {
16
- constructor(mcpServer: McpServer);
17
- handler({ userSuppliedName, dest, moduleLabel, reactType, contentTypes, global, availableForNewContent, absoluteCurrentWorkingDirectory, }: HsCreateModuleInputSchema): Promise<TextContentResponse>;
18
+ constructor(mcpServer: McpServer, logger: McpLogger);
19
+ handler({ userSuppliedName, dest, moduleLabel, reactType, contentTypes, global, availableForNewContent, absoluteCurrentWorkingDirectory, }: HsCreateModuleInputSchema, extra?: ToolExtra): Promise<TextContentResponse>;
18
20
  register(): RegisteredTool;
19
21
  }
20
22
  export {};
@@ -1,11 +1,9 @@
1
- import { Tool } from '../../types.js';
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/command.js';
5
- import { formatTextContents, formatTextContent } from '../../utils/content.js';
6
- import { trackToolUsage } from '../../utils/toolUsageTracking.js';
7
- import { addFlag } from '../../utils/command.js';
4
+ import { formatTextContent, formatTextContents } from '../../utils/content.js';
8
5
  import { CONTENT_TYPES } from '../../../types/Cms.js';
6
+ import { HubSpotCommand } from '../../utils/command.js';
9
7
  import { setupHubSpotConfig } from '../../utils/config.js';
10
8
  import { getErrorMessage } from '../../../lib/errorHandlers/index.js';
11
9
  const inputSchema = {
@@ -51,12 +49,11 @@ const inputSchema = {
51
49
  const inputSchemaZodObject = z.object({ ...inputSchema });
52
50
  const toolName = 'create-cms-module';
53
51
  export class HsCreateModuleTool extends Tool {
54
- constructor(mcpServer) {
55
- super(mcpServer);
52
+ constructor(mcpServer, logger) {
53
+ super(mcpServer, logger, toolName);
56
54
  }
57
- async handler({ userSuppliedName, dest, moduleLabel, reactType, contentTypes, global, availableForNewContent, absoluteCurrentWorkingDirectory, }) {
55
+ async handler({ userSuppliedName, dest, moduleLabel, reactType, contentTypes, global, availableForNewContent, absoluteCurrentWorkingDirectory, }, extra) {
58
56
  setupHubSpotConfig(absoluteCurrentWorkingDirectory);
59
- await trackToolUsage(toolName);
60
57
  const content = [];
61
58
  // Always require a name
62
59
  if (!userSuppliedName) {
@@ -77,44 +74,42 @@ export class HsCreateModuleTool extends Tool {
77
74
  };
78
75
  }
79
76
  // Build the command
80
- let command = 'hs create module';
77
+ const command = new HubSpotCommand('cms module create');
81
78
  if (userSuppliedName) {
82
- command += ` "${userSuppliedName}"`;
79
+ command.addArg(userSuppliedName);
83
80
  }
84
81
  if (dest) {
85
- command += ` "${dest}"`;
82
+ command.addArg(dest);
86
83
  }
87
- // Add module-specific flags
88
84
  if (moduleLabel) {
89
- command = addFlag(command, 'module-label', moduleLabel);
85
+ command.addFlag('module-label', moduleLabel);
90
86
  }
91
87
  if (reactType !== undefined) {
92
- command = addFlag(command, 'react-type', reactType);
93
- }
94
- if (contentTypes) {
95
- command = addFlag(command, 'content-types', contentTypes);
96
- }
97
- else {
98
- command = addFlag(command, 'content-types', 'ANY');
88
+ command.addFlag('react-type', reactType);
99
89
  }
90
+ command.addFlag('content-types', contentTypes ?? 'ANY');
100
91
  if (global !== undefined) {
101
- command = addFlag(command, 'global', global);
92
+ command.addFlag('global', global);
102
93
  }
103
94
  if (availableForNewContent !== undefined) {
104
- command = addFlag(command, 'available-for-new-content', availableForNewContent);
95
+ command.addFlag('available-for-new-content', availableForNewContent);
105
96
  }
106
97
  try {
107
- const { stdout, stderr } = await runCommandInDir(absoluteCurrentWorkingDirectory, command);
98
+ const { stdout, stderr } = await this.runCommand(absoluteCurrentWorkingDirectory, command, extra);
108
99
  return formatTextContents(stdout, stderr);
109
100
  }
110
101
  catch (error) {
102
+ this.logger.debug(toolName, {
103
+ message: 'Handler caught error',
104
+ error: error instanceof Error ? error.message : String(error),
105
+ });
111
106
  return formatTextContents(getErrorMessage(error));
112
107
  }
113
108
  }
114
109
  register() {
115
110
  return this.mcpServer.registerTool(toolName, {
116
111
  title: 'Create HubSpot CMS Module',
117
- description: 'Creates a new HubSpot CMS module using the hs create module command. Modules can be created non-interactively by specifying moduleLabel and other module options. You can create either HubL or React modules by setting the reactType parameter.',
112
+ description: 'Creates a new HubSpot CMS module using the hs cms module create command. Modules can be created non-interactively by specifying moduleLabel and other module options. You can create either HubL or React modules by setting the reactType parameter.',
118
113
  inputSchema,
119
114
  annotations: {
120
115
  readOnlyHint: false,
@@ -122,6 +117,6 @@ export class HsCreateModuleTool extends Tool {
122
117
  idempotentHint: false,
123
118
  openWorldHint: false,
124
119
  },
125
- }, this.handler);
120
+ }, (input, extra) => this.wrappedHandler(input, extra));
126
121
  }
127
122
  }
@@ -1,5 +1,7 @@
1
- import { TextContentResponse, Tool } from '../../types.js';
1
+ import { TextContentResponse } from '../../types.js';
2
+ import { Tool, ToolExtra } 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,8 +20,8 @@ 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);
22
- handler({ userSuppliedName, dest, templateType, absoluteCurrentWorkingDirectory, }: HsCreateTemplateInputSchema): Promise<TextContentResponse>;
23
+ constructor(mcpServer: McpServer, logger: McpLogger);
24
+ handler({ userSuppliedName, dest, templateType, absoluteCurrentWorkingDirectory, }: HsCreateTemplateInputSchema, extra?: ToolExtra): Promise<TextContentResponse>;
23
25
  register(): RegisteredTool;
24
26
  }
25
27
  export {};
@@ -1,11 +1,9 @@
1
- import { Tool } from '../../types.js';
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/command.js';
5
4
  import { formatTextContents, formatTextContent } from '../../utils/content.js';
6
- import { trackToolUsage } from '../../utils/toolUsageTracking.js';
7
- import { addFlag } from '../../utils/command.js';
8
5
  import { TEMPLATE_TYPES } from '../../../types/Cms.js';
6
+ import { HubSpotCommand } from '../../utils/command.js';
9
7
  import { setupHubSpotConfig } from '../../utils/config.js';
10
8
  import { getErrorMessage } from '../../../lib/errorHandlers/index.js';
11
9
  const inputSchema = {
@@ -27,12 +25,11 @@ const inputSchema = {
27
25
  const inputSchemaZodObject = z.object({ ...inputSchema });
28
26
  const toolName = 'create-cms-template';
29
27
  export class HsCreateTemplateTool extends Tool {
30
- constructor(mcpServer) {
31
- super(mcpServer);
28
+ constructor(mcpServer, logger) {
29
+ super(mcpServer, logger, toolName);
32
30
  }
33
- async handler({ userSuppliedName, dest, templateType, absoluteCurrentWorkingDirectory, }) {
31
+ async handler({ userSuppliedName, dest, templateType, absoluteCurrentWorkingDirectory, }, extra) {
34
32
  setupHubSpotConfig(absoluteCurrentWorkingDirectory);
35
- await trackToolUsage(toolName);
36
33
  const content = [];
37
34
  // Always require a name
38
35
  if (!userSuppliedName) {
@@ -49,29 +46,32 @@ export class HsCreateTemplateTool extends Tool {
49
46
  };
50
47
  }
51
48
  // Build the command
52
- let command = 'hs create template';
49
+ const command = new HubSpotCommand('cms template create');
53
50
  if (userSuppliedName) {
54
- command += ` "${userSuppliedName}"`;
51
+ command.addArg(userSuppliedName);
55
52
  }
56
53
  if (dest) {
57
- command += ` "${dest}"`;
54
+ command.addArg(dest);
58
55
  }
59
- // Add template type flag
60
56
  if (templateType) {
61
- command = addFlag(command, 'template-type', templateType);
57
+ command.addFlag('template-type', templateType);
62
58
  }
63
59
  try {
64
- const { stdout, stderr } = await runCommandInDir(absoluteCurrentWorkingDirectory, command);
60
+ const { stdout, stderr } = await this.runCommand(absoluteCurrentWorkingDirectory, command, extra);
65
61
  return formatTextContents(stdout, stderr);
66
62
  }
67
63
  catch (error) {
64
+ this.logger.debug(toolName, {
65
+ message: 'Handler caught error',
66
+ error: error instanceof Error ? error.message : String(error),
67
+ });
68
68
  return formatTextContents(getErrorMessage(error));
69
69
  }
70
70
  }
71
71
  register() {
72
72
  return this.mcpServer.registerTool(toolName, {
73
73
  title: 'Create HubSpot CMS Template',
74
- description: `Creates a new HubSpot CMS template using the hs create template command. Templates can be created non-interactively by specifying templateType. Supports all template types including: ${TEMPLATE_TYPES.join(', ')}.`,
74
+ description: `Creates a new HubSpot CMS template using the hs cms template create command. Templates can be created non-interactively by specifying templateType. Supports all template types including: ${TEMPLATE_TYPES.join(', ')}.`,
75
75
  inputSchema,
76
76
  annotations: {
77
77
  readOnlyHint: false,
@@ -79,6 +79,6 @@ export class HsCreateTemplateTool extends Tool {
79
79
  idempotentHint: false,
80
80
  openWorldHint: false,
81
81
  },
82
- }, this.handler);
82
+ }, (input, extra) => this.wrappedHandler(input, extra));
83
83
  }
84
84
  }
@@ -1,5 +1,7 @@
1
- import { TextContentResponse, Tool } from '../../types.js';
1
+ import { TextContentResponse } from '../../types.js';
2
+ import { Tool, ToolExtra } 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,8 +13,8 @@ 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);
15
- handler({ endpoint, account, latest, compact, limit, absoluteCurrentWorkingDirectory, }: HsFunctionLogsInputSchema): Promise<TextContentResponse>;
16
+ constructor(mcpServer: McpServer, logger: McpLogger);
17
+ handler({ endpoint, account, latest, compact, limit, absoluteCurrentWorkingDirectory, }: HsFunctionLogsInputSchema, extra?: ToolExtra): Promise<TextContentResponse>;
16
18
  register(): RegisteredTool;
17
19
  }
18
20
  export {};