@tomako/tools-runtime 0.1.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 (531) hide show
  1. package/README.md +12 -0
  2. package/package.json +629 -0
  3. package/src/assets/icons/brands/social/bluesky-icon.tsx +9 -0
  4. package/src/assets/icons/brands/social/facebook-icon.tsx +9 -0
  5. package/src/assets/icons/brands/social/index.ts +8 -0
  6. package/src/assets/icons/brands/social/instagram-icon.tsx +9 -0
  7. package/src/assets/icons/brands/social/linkedin-icon.tsx +9 -0
  8. package/src/assets/icons/brands/social/threads-icon.tsx +9 -0
  9. package/src/assets/icons/brands/social/tiktok-icon.tsx +10 -0
  10. package/src/assets/icons/brands/social/x-icon.tsx +9 -0
  11. package/src/assets/icons/brands/social/youtube-icon.tsx +9 -0
  12. package/src/assets/icons/social-profile/facebook-icon.tsx +12 -0
  13. package/src/assets/icons/social-profile/index.ts +29 -0
  14. package/src/assets/icons/social-profile/instagram-icon.tsx +18 -0
  15. package/src/assets/icons/social-profile/linkedin-icon.tsx +12 -0
  16. package/src/assets/icons/social-profile/tiktok-icon.tsx +12 -0
  17. package/src/assets/icons/social-profile/x-icon.tsx +13 -0
  18. package/src/assets/icons/social-profile/youtube-icon.tsx +12 -0
  19. package/src/components/tools/engine/form-builder.tsx +219 -0
  20. package/src/components/tools/engine/package-widget-loader.tsx +38 -0
  21. package/src/components/tools/engine/package-widget-runtime.tsx +409 -0
  22. package/src/components/tools/engine/package-widget.tsx +77 -0
  23. package/src/components/tools/engine/result-view.tsx +596 -0
  24. package/src/components/tools/engine/use-legacy-llm-task.ts +64 -0
  25. package/src/components/tools/engine/use-tool-task.ts +195 -0
  26. package/src/components/tools/market-forecast-report.tsx +1150 -0
  27. package/src/components/tools/registry.ts +13 -0
  28. package/src/components/tools/workspace/index.ts +39 -0
  29. package/src/components/tools/workspace/tool-action-bar.tsx +99 -0
  30. package/src/components/tools/workspace/tool-empty-panel.tsx +32 -0
  31. package/src/components/tools/workspace/tool-error-panel.tsx +40 -0
  32. package/src/components/tools/workspace/tool-field.tsx +124 -0
  33. package/src/components/tools/workspace/tool-file-upload.tsx +112 -0
  34. package/src/components/tools/workspace/tool-form-section.tsx +21 -0
  35. package/src/components/tools/workspace/tool-form-shell.tsx +36 -0
  36. package/src/components/tools/workspace/tool-loading-panel.tsx +269 -0
  37. package/src/components/tools/workspace/tool-option-row.tsx +97 -0
  38. package/src/components/tools/workspace/tool-preview-panel.tsx +31 -0
  39. package/src/components/tools/workspace/tool-result-actions.tsx +67 -0
  40. package/src/components/tools/workspace/tool-result-file-actions.ts +31 -0
  41. package/src/components/tools/workspace/tool-result-header.tsx +39 -0
  42. package/src/components/tools/workspace/tool-status.tsx +13 -0
  43. package/src/components/tools/workspace/tool-workspace-layout.tsx +226 -0
  44. package/src/constants/LKS.ts +29 -0
  45. package/src/constants/related-tools.ts +18 -0
  46. package/src/constants/social-profile-kit.ts +284 -0
  47. package/src/constants/tool-assets.ts +7 -0
  48. package/src/env.d.ts +3 -0
  49. package/src/features/tools/_templates/standard-tool.container.tsx +90 -0
  50. package/src/features/tools/app-icon-resizer/app-icon-resizer.container.tsx +11 -0
  51. package/src/features/tools/app-icon-resizer/app-icon-resizer.spec.ts +15 -0
  52. package/src/features/tools/app-icon-resizer/widget/app-icon-resizer.tsx +444 -0
  53. package/src/features/tools/app-icon-resizer/widget/constants.ts +19 -0
  54. package/src/features/tools/app-icon-resizer/widget/helpers.ts +314 -0
  55. package/src/features/tools/app-icon-resizer/widget/index.ts +7 -0
  56. package/src/features/tools/app-icon-resizer/widget/platform-icons.tsx +59 -0
  57. package/src/features/tools/app-icon-resizer/widget/preview-dialogs.tsx +139 -0
  58. package/src/features/tools/app-icon-resizer/widget/result-shell.tsx +165 -0
  59. package/src/features/tools/app-icon-resizer/widget/types.ts +36 -0
  60. package/src/features/tools/app-store-screenshot-generator/app-store-screenshot-generator.container.tsx +108 -0
  61. package/src/features/tools/app-store-screenshot-generator/app-store-screenshot-generator.spec.ts +14 -0
  62. package/src/features/tools/app-store-screenshot-generator/config.ts +3 -0
  63. package/src/features/tools/app-store-screenshot-generator/widget/app-store-screenshot-generator.tsx +1250 -0
  64. package/src/features/tools/app-store-screenshot-generator/widget/asset-slots.ts +76 -0
  65. package/src/features/tools/app-store-screenshot-generator/widget/constants.ts +43 -0
  66. package/src/features/tools/app-store-screenshot-generator/widget/form-controls.tsx +214 -0
  67. package/src/features/tools/app-store-screenshot-generator/widget/generation.ts +528 -0
  68. package/src/features/tools/app-store-screenshot-generator/widget/index.ts +7 -0
  69. package/src/features/tools/app-store-screenshot-generator/widget/input-media.ts +175 -0
  70. package/src/features/tools/app-store-screenshot-generator/widget/types.ts +60 -0
  71. package/src/features/tools/app-store-screenshot-generator/widget/zip.ts +119 -0
  72. package/src/features/tools/build-in-public-story-generator/build-in-public-story-generator.container.tsx +135 -0
  73. package/src/features/tools/build-in-public-story-generator/build-in-public-story-generator.spec.ts +15 -0
  74. package/src/features/tools/build-in-public-story-generator/widget/build-in-public-story-generator.tsx +314 -0
  75. package/src/features/tools/build-in-public-story-generator/widget/constants.ts +3 -0
  76. package/src/features/tools/build-in-public-story-generator/widget/helpers.ts +25 -0
  77. package/src/features/tools/build-in-public-story-generator/widget/index.ts +7 -0
  78. package/src/features/tools/build-in-public-story-generator/widget/preview-panels.tsx +58 -0
  79. package/src/features/tools/build-in-public-story-generator/widget/result-shell.tsx +164 -0
  80. package/src/features/tools/build-in-public-story-generator/widget/types.ts +6 -0
  81. package/src/features/tools/cold-start-channel-selector/cold-start-channel-selector.container.tsx +30 -0
  82. package/src/features/tools/cold-start-channel-selector/cold-start-channel-selector.spec.ts +15 -0
  83. package/src/features/tools/cold-start-channel-selector/widget/cold-start-channel-selector.tsx +417 -0
  84. package/src/features/tools/cold-start-channel-selector/widget/constants.ts +46 -0
  85. package/src/features/tools/cold-start-channel-selector/widget/form-controls.tsx +41 -0
  86. package/src/features/tools/cold-start-channel-selector/widget/helpers.ts +75 -0
  87. package/src/features/tools/cold-start-channel-selector/widget/index.ts +7 -0
  88. package/src/features/tools/cold-start-channel-selector/widget/preview-panels.tsx +250 -0
  89. package/src/features/tools/cold-start-channel-selector/widget/result-shell.tsx +199 -0
  90. package/src/features/tools/cold-start-channel-selector/widget/types.ts +21 -0
  91. package/src/features/tools/commercial-bp-generator/commercial-bp-generator.container.tsx +102 -0
  92. package/src/features/tools/commercial-bp-generator/commercial-bp-generator.spec.ts +14 -0
  93. package/src/features/tools/commercial-bp-generator/widget/commercial-bp-generator.tsx +676 -0
  94. package/src/features/tools/commercial-bp-generator/widget/constants.ts +32 -0
  95. package/src/features/tools/commercial-bp-generator/widget/helpers.ts +147 -0
  96. package/src/features/tools/commercial-bp-generator/widget/index.ts +7 -0
  97. package/src/features/tools/commercial-bp-generator/widget/result-shell.tsx +271 -0
  98. package/src/features/tools/commercial-bp-generator/widget/style-option.tsx +54 -0
  99. package/src/features/tools/commercial-bp-generator/widget/types.ts +33 -0
  100. package/src/features/tools/community-feedback-inbox/community-feedback-inbox.container.tsx +126 -0
  101. package/src/features/tools/community-feedback-inbox/community-feedback-inbox.spec.ts +15 -0
  102. package/src/features/tools/community-feedback-inbox/widget/community-feedback-inbox.tsx +271 -0
  103. package/src/features/tools/community-feedback-inbox/widget/constants.ts +3 -0
  104. package/src/features/tools/community-feedback-inbox/widget/helpers.ts +28 -0
  105. package/src/features/tools/community-feedback-inbox/widget/index.ts +7 -0
  106. package/src/features/tools/community-feedback-inbox/widget/preview-panels.tsx +92 -0
  107. package/src/features/tools/community-feedback-inbox/widget/result-shell.tsx +266 -0
  108. package/src/features/tools/community-feedback-inbox/widget/types.ts +6 -0
  109. package/src/features/tools/community-pain-point-extractor/community-pain-point-extractor.container.tsx +124 -0
  110. package/src/features/tools/community-pain-point-extractor/community-pain-point-extractor.spec.ts +15 -0
  111. package/src/features/tools/community-pain-point-extractor/widget/community-pain-point-extractor.tsx +404 -0
  112. package/src/features/tools/community-pain-point-extractor/widget/constants.ts +41 -0
  113. package/src/features/tools/community-pain-point-extractor/widget/helpers.ts +76 -0
  114. package/src/features/tools/community-pain-point-extractor/widget/index.ts +8 -0
  115. package/src/features/tools/community-pain-point-extractor/widget/progress-panels.tsx +251 -0
  116. package/src/features/tools/community-pain-point-extractor/widget/result-shell.tsx +478 -0
  117. package/src/features/tools/community-pain-point-extractor/widget/types.ts +33 -0
  118. package/src/features/tools/community-post-risk-checker/community-post-risk-checker.package.ts +792 -0
  119. package/src/features/tools/competitor-analysis/competitor-analysis.container.tsx +136 -0
  120. package/src/features/tools/competitor-analysis/competitor-analysis.spec.ts +15 -0
  121. package/src/features/tools/competitor-analysis/widget/competitor-analysis.tsx +241 -0
  122. package/src/features/tools/competitor-analysis/widget/constants.ts +9 -0
  123. package/src/features/tools/competitor-analysis/widget/index.ts +7 -0
  124. package/src/features/tools/competitor-analysis/widget/preview-panels.tsx +60 -0
  125. package/src/features/tools/competitor-analysis/widget/result-shell.tsx +418 -0
  126. package/src/features/tools/competitor-analysis/widget/types.ts +13 -0
  127. package/src/features/tools/disclaimer-generator/disclaimer-generator.package.ts +339 -0
  128. package/src/features/tools/email-template-generator/email-template-generator.container.tsx +224 -0
  129. package/src/features/tools/email-template-generator/email-template-generator.spec.ts +14 -0
  130. package/src/features/tools/email-template-generator/widget/email-template-generator.tsx +358 -0
  131. package/src/features/tools/email-template-generator/widget/helpers.ts +39 -0
  132. package/src/features/tools/email-template-generator/widget/index.ts +7 -0
  133. package/src/features/tools/email-template-generator/widget/preview-panel.tsx +311 -0
  134. package/src/features/tools/email-template-generator/widget/result-text-block.tsx +7 -0
  135. package/src/features/tools/email-template-generator/widget/types.ts +24 -0
  136. package/src/features/tools/gtm-readiness-checklist/gtm-readiness-checklist.container.tsx +75 -0
  137. package/src/features/tools/gtm-readiness-checklist/gtm-readiness-checklist.spec.ts +15 -0
  138. package/src/features/tools/gtm-readiness-checklist/widget/gtm-readiness-checklist.tsx +122 -0
  139. package/src/features/tools/gtm-readiness-checklist/widget/index.ts +7 -0
  140. package/src/features/tools/investor-matching-planner/investor-matching-planner.package.ts +869 -0
  141. package/src/features/tools/koko-codex-assistant/koko-codex-assistant.container.tsx +151 -0
  142. package/src/features/tools/koko-codex-assistant/koko-codex-assistant.spec.ts +14 -0
  143. package/src/features/tools/koko-codex-assistant/widget/index.ts +7 -0
  144. package/src/features/tools/koko-codex-assistant/widget/koko-codex-assistant-download.tsx +192 -0
  145. package/src/features/tools/logo-generator/logo-generator.container.tsx +112 -0
  146. package/src/features/tools/logo-generator/logo-generator.spec.ts +15 -0
  147. package/src/features/tools/logo-generator/widget/index.ts +7 -0
  148. package/src/features/tools/logo-generator/widget/logo-generator.tsx +1244 -0
  149. package/src/features/tools/market-forecast-report/market-forecast-report.container.tsx +73 -0
  150. package/src/features/tools/market-forecast-report/market-forecast-report.spec.ts +15 -0
  151. package/src/features/tools/million-user-growth-test/million-user-growth-test.container.tsx +123 -0
  152. package/src/features/tools/million-user-growth-test/million-user-growth-test.spec.ts +14 -0
  153. package/src/features/tools/million-user-growth-test/widget/index.ts +7 -0
  154. package/src/features/tools/million-user-growth-test/widget/million-user-growth-test.tsx +433 -0
  155. package/src/features/tools/module-loader.ts +107 -0
  156. package/src/features/tools/og-image-generator/og-image-generator.container.tsx +86 -0
  157. package/src/features/tools/og-image-generator/og-image-generator.spec.ts +14 -0
  158. package/src/features/tools/og-image-generator/widget/constants.ts +38 -0
  159. package/src/features/tools/og-image-generator/widget/form-fields.tsx +240 -0
  160. package/src/features/tools/og-image-generator/widget/index.ts +7 -0
  161. package/src/features/tools/og-image-generator/widget/og-image-generator.tsx +742 -0
  162. package/src/features/tools/og-image-generator/widget/preview-panel.tsx +305 -0
  163. package/src/features/tools/og-image-generator/widget/types.ts +1 -0
  164. package/src/features/tools/package/direct-models.ts +20 -0
  165. package/src/features/tools/package/form.ts +38 -0
  166. package/src/features/tools/package/l10n.ts +22 -0
  167. package/src/features/tools/package/package-container.tsx +285 -0
  168. package/src/features/tools/package/package-loaders.ts +22 -0
  169. package/src/features/tools/package/package-registry.ts +36 -0
  170. package/src/features/tools/package/result-markdown.ts +142 -0
  171. package/src/features/tools/package/schema.ts +379 -0
  172. package/src/features/tools/package/to-tool-module.ts +20 -0
  173. package/src/features/tools/package/to-tool-spec.ts +52 -0
  174. package/src/features/tools/package/types.ts +381 -0
  175. package/src/features/tools/pitch-deck-generator/pitch-deck-generator.container.tsx +175 -0
  176. package/src/features/tools/pitch-deck-generator/pitch-deck-generator.spec.ts +14 -0
  177. package/src/features/tools/pitch-deck-generator/pitch-deck-library-data.ts +476 -0
  178. package/src/features/tools/pitch-deck-generator/pitch-deck-library.tsx +159 -0
  179. package/src/features/tools/pitch-deck-generator/widget/ceremony-line.tsx +27 -0
  180. package/src/features/tools/pitch-deck-generator/widget/constants.ts +27 -0
  181. package/src/features/tools/pitch-deck-generator/widget/index.ts +7 -0
  182. package/src/features/tools/pitch-deck-generator/widget/pitch-deck-generator.tsx +763 -0
  183. package/src/features/tools/pitch-deck-generator/widget/result-helpers.ts +102 -0
  184. package/src/features/tools/pitch-deck-generator/widget/result-shell.tsx +263 -0
  185. package/src/features/tools/pitch-deck-generator/widget/slide-frame.tsx +106 -0
  186. package/src/features/tools/pitch-deck-generator/widget/slide-lightbox.tsx +149 -0
  187. package/src/features/tools/pitch-deck-generator/widget/style-option.tsx +54 -0
  188. package/src/features/tools/pitch-deck-generator/widget/types.ts +44 -0
  189. package/src/features/tools/product-agreement-generator/product-agreement-generator.container.tsx +137 -0
  190. package/src/features/tools/product-agreement-generator/product-agreement-generator.spec.ts +14 -0
  191. package/src/features/tools/product-agreement-generator/widget/constants.ts +27 -0
  192. package/src/features/tools/product-agreement-generator/widget/form-controls.tsx +218 -0
  193. package/src/features/tools/product-agreement-generator/widget/helpers.ts +68 -0
  194. package/src/features/tools/product-agreement-generator/widget/index.ts +7 -0
  195. package/src/features/tools/product-agreement-generator/widget/product-agreement-generator.tsx +671 -0
  196. package/src/features/tools/product-agreement-generator/widget/result-shell.tsx +473 -0
  197. package/src/features/tools/product-agreement-generator/widget/types.ts +89 -0
  198. package/src/features/tools/product-hunt-launch-planner/product-hunt-launch-planner.container.tsx +122 -0
  199. package/src/features/tools/product-hunt-launch-planner/product-hunt-launch-planner.spec.ts +15 -0
  200. package/src/features/tools/product-hunt-launch-planner/widget/constants.ts +5 -0
  201. package/src/features/tools/product-hunt-launch-planner/widget/helpers.ts +44 -0
  202. package/src/features/tools/product-hunt-launch-planner/widget/index.ts +7 -0
  203. package/src/features/tools/product-hunt-launch-planner/widget/preview-panel.tsx +143 -0
  204. package/src/features/tools/product-hunt-launch-planner/widget/product-hunt-launch-planner.tsx +504 -0
  205. package/src/features/tools/product-hunt-launch-planner/widget/result-shell.tsx +176 -0
  206. package/src/features/tools/product-hunt-launch-planner/widget/types.ts +20 -0
  207. package/src/features/tools/product-name-generator/product-name-generator.container.tsx +14 -0
  208. package/src/features/tools/product-name-generator/product-name-generator.spec.ts +15 -0
  209. package/src/features/tools/product-name-generator/widget/candidate-card.tsx +273 -0
  210. package/src/features/tools/product-name-generator/widget/constants.ts +21 -0
  211. package/src/features/tools/product-name-generator/widget/form-controls.tsx +136 -0
  212. package/src/features/tools/product-name-generator/widget/helpers.ts +41 -0
  213. package/src/features/tools/product-name-generator/widget/index.ts +7 -0
  214. package/src/features/tools/product-name-generator/widget/product-name-generator.tsx +776 -0
  215. package/src/features/tools/product-name-generator/widget/types.ts +36 -0
  216. package/src/features/tools/product-positioning-analyzer/product-positioning-analyzer.package.ts +801 -0
  217. package/src/features/tools/product-poster-generator/product-poster-generator.container.tsx +14 -0
  218. package/src/features/tools/product-poster-generator/product-poster-generator.spec.ts +15 -0
  219. package/src/features/tools/product-poster-generator/widget/constants.ts +125 -0
  220. package/src/features/tools/product-poster-generator/widget/form-controls.tsx +204 -0
  221. package/src/features/tools/product-poster-generator/widget/helpers.ts +155 -0
  222. package/src/features/tools/product-poster-generator/widget/index.ts +7 -0
  223. package/src/features/tools/product-poster-generator/widget/product-poster-generator.tsx +663 -0
  224. package/src/features/tools/product-poster-generator/widget/result-shell.tsx +12 -0
  225. package/src/features/tools/product-poster-generator/widget/types.ts +83 -0
  226. package/src/features/tools/product-ui-generator/product-ui-generator.container.tsx +116 -0
  227. package/src/features/tools/product-ui-generator/product-ui-generator.spec.ts +14 -0
  228. package/src/features/tools/product-ui-generator/widget/constants.ts +18 -0
  229. package/src/features/tools/product-ui-generator/widget/helpers.ts +11 -0
  230. package/src/features/tools/product-ui-generator/widget/index.ts +7 -0
  231. package/src/features/tools/product-ui-generator/widget/preview-panels.tsx +73 -0
  232. package/src/features/tools/product-ui-generator/widget/product-ui-generator.tsx +304 -0
  233. package/src/features/tools/product-ui-generator/widget/result-shell.tsx +118 -0
  234. package/src/features/tools/product-ui-generator/widget/types.ts +9 -0
  235. package/src/features/tools/reddit-pain-point-finder/reddit-pain-point-finder.container.tsx +113 -0
  236. package/src/features/tools/reddit-pain-point-finder/reddit-pain-point-finder.spec.ts +15 -0
  237. package/src/features/tools/reddit-pain-point-finder/widget/constants.ts +5 -0
  238. package/src/features/tools/reddit-pain-point-finder/widget/index.ts +7 -0
  239. package/src/features/tools/reddit-pain-point-finder/widget/preview-panels.tsx +73 -0
  240. package/src/features/tools/reddit-pain-point-finder/widget/reddit-pain-point-finder.tsx +281 -0
  241. package/src/features/tools/reddit-pain-point-finder/widget/result-shell.tsx +203 -0
  242. package/src/features/tools/reddit-pain-point-finder/widget/types.ts +15 -0
  243. package/src/features/tools/registry.ts +288 -0
  244. package/src/features/tools/runtime-registry.ts +186 -0
  245. package/src/features/tools/shared/create-guide-stack-container.tsx +176 -0
  246. package/src/features/tools/shared/create-standard-landing-container.tsx +163 -0
  247. package/src/features/tools/shared/tool-content-sections.tsx +659 -0
  248. package/src/features/tools/shared/tool-cta.tsx +66 -0
  249. package/src/features/tools/shared/tool-draft-view.tsx +53 -0
  250. package/src/features/tools/shared/tool-guide-section.tsx +191 -0
  251. package/src/features/tools/shared/tool-handoff.tsx +38 -0
  252. package/src/features/tools/shared/tool-mcp-badge.tsx +23 -0
  253. package/src/features/tools/shared/tool-message-translator.ts +37 -0
  254. package/src/features/tools/shared/tool-page-shell.tsx +348 -0
  255. package/src/features/tools/shared/tool-standard-generation-steps.tsx +52 -0
  256. package/src/features/tools/shared/tool-standard-landing-sections.tsx +447 -0
  257. package/src/features/tools/shared/tool-ui-registry.ts +237 -0
  258. package/src/features/tools/shared/tool-widget-slot.tsx +29 -0
  259. package/src/features/tools/slogan-generator/slogan-generator.package.ts +641 -0
  260. package/src/features/tools/social-listening-research-report/social-listening-research-report.container.tsx +124 -0
  261. package/src/features/tools/social-listening-research-report/social-listening-research-report.spec.ts +15 -0
  262. package/src/features/tools/social-listening-research-report/widget/constants.ts +4 -0
  263. package/src/features/tools/social-listening-research-report/widget/index.ts +7 -0
  264. package/src/features/tools/social-listening-research-report/widget/preview-panels.tsx +73 -0
  265. package/src/features/tools/social-listening-research-report/widget/result-shell.tsx +216 -0
  266. package/src/features/tools/social-listening-research-report/widget/social-listening-research-report.tsx +303 -0
  267. package/src/features/tools/social-listening-research-report/widget/types.ts +15 -0
  268. package/src/features/tools/social-platform-asset-adapter/social-platform-asset-adapter.container.tsx +123 -0
  269. package/src/features/tools/social-platform-asset-adapter/social-platform-asset-adapter.spec.ts +15 -0
  270. package/src/features/tools/social-platform-asset-adapter/widget/constants.ts +43 -0
  271. package/src/features/tools/social-platform-asset-adapter/widget/helpers.ts +249 -0
  272. package/src/features/tools/social-platform-asset-adapter/widget/index.ts +7 -0
  273. package/src/features/tools/social-platform-asset-adapter/widget/result-shell.tsx +350 -0
  274. package/src/features/tools/social-platform-asset-adapter/widget/section-heading.tsx +18 -0
  275. package/src/features/tools/social-platform-asset-adapter/widget/social-platform-asset-adapter.tsx +641 -0
  276. package/src/features/tools/social-platform-asset-adapter/widget/types.ts +40 -0
  277. package/src/features/tools/social-profile-kit/social-profile-kit.container.tsx +177 -0
  278. package/src/features/tools/social-profile-kit/social-profile-kit.spec.ts +15 -0
  279. package/src/features/tools/social-profile-kit/widget/context-editor.tsx +171 -0
  280. package/src/features/tools/social-profile-kit/widget/generation-runtime.ts +281 -0
  281. package/src/features/tools/social-profile-kit/widget/index.ts +7 -0
  282. package/src/features/tools/social-profile-kit/widget/input-panel.tsx +294 -0
  283. package/src/features/tools/social-profile-kit/widget/platform-dock.tsx +115 -0
  284. package/src/features/tools/social-profile-kit/widget/profile-canvas.tsx +318 -0
  285. package/src/features/tools/social-profile-kit/widget/profile-preview/bluesky-preview.tsx +188 -0
  286. package/src/features/tools/social-profile-kit/widget/profile-preview/facebook-preview.tsx +168 -0
  287. package/src/features/tools/social-profile-kit/widget/profile-preview/index.ts +1 -0
  288. package/src/features/tools/social-profile-kit/widget/profile-preview/instagram-preview.tsx +278 -0
  289. package/src/features/tools/social-profile-kit/widget/profile-preview/linkedin-preview.tsx +358 -0
  290. package/src/features/tools/social-profile-kit/widget/profile-preview/profile-preview.tsx +348 -0
  291. package/src/features/tools/social-profile-kit/widget/profile-preview/shared.tsx +391 -0
  292. package/src/features/tools/social-profile-kit/widget/profile-preview/threads-preview.tsx +148 -0
  293. package/src/features/tools/social-profile-kit/widget/profile-preview/tiktok-preview.tsx +319 -0
  294. package/src/features/tools/social-profile-kit/widget/profile-preview/x-preview.tsx +341 -0
  295. package/src/features/tools/social-profile-kit/widget/profile-preview/youtube-preview.tsx +297 -0
  296. package/src/features/tools/social-profile-kit/widget/social-profile-kit-generator.tsx +1059 -0
  297. package/src/features/tools/social-profile-kit/widget/types.ts +104 -0
  298. package/src/features/tools/spec-registry.ts +158 -0
  299. package/src/features/tools/startup-idea-research/startup-idea-research.container.tsx +111 -0
  300. package/src/features/tools/startup-idea-research/startup-idea-research.spec.ts +15 -0
  301. package/src/features/tools/startup-idea-research/widget/constants.ts +11 -0
  302. package/src/features/tools/startup-idea-research/widget/index.ts +7 -0
  303. package/src/features/tools/startup-idea-research/widget/preview-panels.tsx +67 -0
  304. package/src/features/tools/startup-idea-research/widget/result-shell.tsx +323 -0
  305. package/src/features/tools/startup-idea-research/widget/startup-idea-research.tsx +272 -0
  306. package/src/features/tools/startup-idea-research/widget/types.ts +21 -0
  307. package/src/features/tools/tarot-reading/tarot-reading.container.tsx +412 -0
  308. package/src/features/tools/tarot-reading/tarot-reading.spec.ts +15 -0
  309. package/src/features/tools/tarot-reading/widget/cards.tsx +152 -0
  310. package/src/features/tools/tarot-reading/widget/constants.ts +69 -0
  311. package/src/features/tools/tarot-reading/widget/deck-view.tsx +86 -0
  312. package/src/features/tools/tarot-reading/widget/deck.ts +86 -0
  313. package/src/features/tools/tarot-reading/widget/index.ts +7 -0
  314. package/src/features/tools/tarot-reading/widget/landing-view.tsx +209 -0
  315. package/src/features/tools/tarot-reading/widget/reading-copy.tsx +138 -0
  316. package/src/features/tools/tarot-reading/widget/reading-view.tsx +189 -0
  317. package/src/features/tools/tarot-reading/widget/reveal-view.tsx +50 -0
  318. package/src/features/tools/tarot-reading/widget/ritual-view.tsx +276 -0
  319. package/src/features/tools/tarot-reading/widget/tarot-reading.tsx +262 -0
  320. package/src/features/tools/tarot-reading/widget/types.ts +22 -0
  321. package/src/features/tools/twitter-gif-downloader/twitter-gif-downloader.container.tsx +114 -0
  322. package/src/features/tools/twitter-gif-downloader/twitter-gif-downloader.spec.ts +14 -0
  323. package/src/features/tools/twitter-gif-downloader/widget/index.ts +7 -0
  324. package/src/features/tools/twitter-gif-downloader/widget/twitter-gif-downloader.tsx +351 -0
  325. package/src/features/tools/types.ts +68 -0
  326. package/src/features/tools/user-interview-guide-generator/user-interview-guide-generator.package.ts +774 -0
  327. package/src/features/tools/user-interview-insight-report-generator/user-interview-insight-report-generator.container.tsx +23 -0
  328. package/src/features/tools/user-interview-insight-report-generator/user-interview-insight-report-generator.spec.ts +14 -0
  329. package/src/features/tools/user-interview-insight-report-generator/widget/constants.ts +8 -0
  330. package/src/features/tools/user-interview-insight-report-generator/widget/helpers.ts +4 -0
  331. package/src/features/tools/user-interview-insight-report-generator/widget/index.ts +7 -0
  332. package/src/features/tools/user-interview-insight-report-generator/widget/preview-panels.tsx +55 -0
  333. package/src/features/tools/user-interview-insight-report-generator/widget/result-shell.tsx +122 -0
  334. package/src/features/tools/user-interview-insight-report-generator/widget/types.ts +16 -0
  335. package/src/features/tools/user-interview-insight-report-generator/widget/user-interview-insight-report-generator.tsx +293 -0
  336. package/src/features/tools/user-interview-record-generator/user-interview-record-generator.container.tsx +18 -0
  337. package/src/features/tools/user-interview-record-generator/user-interview-record-generator.spec.ts +14 -0
  338. package/src/features/tools/user-interview-record-generator/widget/constants.ts +9 -0
  339. package/src/features/tools/user-interview-record-generator/widget/helpers.ts +4 -0
  340. package/src/features/tools/user-interview-record-generator/widget/index.ts +7 -0
  341. package/src/features/tools/user-interview-record-generator/widget/preview-panels.tsx +48 -0
  342. package/src/features/tools/user-interview-record-generator/widget/result-shell.tsx +128 -0
  343. package/src/features/tools/user-interview-record-generator/widget/types.ts +16 -0
  344. package/src/features/tools/user-interview-record-generator/widget/user-interview-record-generator.tsx +305 -0
  345. package/src/features/tools/utm-builder/utm-builder.package.ts +846 -0
  346. package/src/features/tools/widget-registry.ts +73 -0
  347. package/src/generated/mcp-tools-registry.json +17 -0
  348. package/src/host/client-proxy.test.ts +33 -0
  349. package/src/host/client.ts +678 -0
  350. package/src/host/server.ts +119 -0
  351. package/src/i18n/client.ts +11 -0
  352. package/src/i18n/locale-fallback.ts +38 -0
  353. package/src/i18n/locale.ts +18 -0
  354. package/src/i18n/messages/en/page/tools.ts +124 -0
  355. package/src/i18n/messages/en/tools/app-icon-resizer.ts +244 -0
  356. package/src/i18n/messages/en/tools/app-store-screenshot-generator.ts +145 -0
  357. package/src/i18n/messages/en/tools/build-in-public-story-generator.ts +229 -0
  358. package/src/i18n/messages/en/tools/cold-start-channel-selector.ts +423 -0
  359. package/src/i18n/messages/en/tools/commercial-bp-generator.ts +304 -0
  360. package/src/i18n/messages/en/tools/community-feedback-inbox.ts +218 -0
  361. package/src/i18n/messages/en/tools/community-pain-point-extractor.ts +230 -0
  362. package/src/i18n/messages/en/tools/community-post-risk-checker.ts +209 -0
  363. package/src/i18n/messages/en/tools/competitor-analysis.ts +197 -0
  364. package/src/i18n/messages/en/tools/email-template-generator.ts +302 -0
  365. package/src/i18n/messages/en/tools/engine.ts +69 -0
  366. package/src/i18n/messages/en/tools/gtm-readiness-checklist.ts +166 -0
  367. package/src/i18n/messages/en/tools/index.ts +73 -0
  368. package/src/i18n/messages/en/tools/koko-codex-assistant.ts +171 -0
  369. package/src/i18n/messages/en/tools/logo-generator.ts +173 -0
  370. package/src/i18n/messages/en/tools/market-forecast-report.ts +228 -0
  371. package/src/i18n/messages/en/tools/million-user-growth-test.ts +386 -0
  372. package/src/i18n/messages/en/tools/og-image-generator.ts +172 -0
  373. package/src/i18n/messages/en/tools/pitch-deck-generator.ts +358 -0
  374. package/src/i18n/messages/en/tools/product-agreement-generator.ts +411 -0
  375. package/src/i18n/messages/en/tools/product-hunt-launch-planner.ts +272 -0
  376. package/src/i18n/messages/en/tools/product-name-generator.ts +383 -0
  377. package/src/i18n/messages/en/tools/product-poster-generator.ts +294 -0
  378. package/src/i18n/messages/en/tools/product-ui-generator.ts +234 -0
  379. package/src/i18n/messages/en/tools/reddit-pain-point-finder.ts +163 -0
  380. package/src/i18n/messages/en/tools/shared.ts +24 -0
  381. package/src/i18n/messages/en/tools/social-listening-research-report.ts +185 -0
  382. package/src/i18n/messages/en/tools/social-media-profile-generator.ts +22 -0
  383. package/src/i18n/messages/en/tools/social-platform-asset-adapter.ts +287 -0
  384. package/src/i18n/messages/en/tools/social-profile-kit.ts +150 -0
  385. package/src/i18n/messages/en/tools/startup-idea-research.ts +170 -0
  386. package/src/i18n/messages/en/tools/tarot-reading.ts +230 -0
  387. package/src/i18n/messages/en/tools/twitter-gif-downloader.ts +145 -0
  388. package/src/i18n/messages/en/tools/user-interview-insight-report-generator.ts +242 -0
  389. package/src/i18n/messages/en/tools/user-interview-record-generator.ts +244 -0
  390. package/src/i18n/messages/en/tools-ui.ts +704 -0
  391. package/src/i18n/messages/zh/page/tools.ts +124 -0
  392. package/src/i18n/messages/zh/tools/app-icon-resizer.ts +242 -0
  393. package/src/i18n/messages/zh/tools/app-store-screenshot-generator.ts +145 -0
  394. package/src/i18n/messages/zh/tools/build-in-public-story-generator.ts +230 -0
  395. package/src/i18n/messages/zh/tools/cold-start-channel-selector.ts +422 -0
  396. package/src/i18n/messages/zh/tools/commercial-bp-generator.ts +302 -0
  397. package/src/i18n/messages/zh/tools/community-feedback-inbox.ts +217 -0
  398. package/src/i18n/messages/zh/tools/community-pain-point-extractor.ts +230 -0
  399. package/src/i18n/messages/zh/tools/community-post-risk-checker.ts +200 -0
  400. package/src/i18n/messages/zh/tools/competitor-analysis.ts +192 -0
  401. package/src/i18n/messages/zh/tools/email-template-generator.ts +302 -0
  402. package/src/i18n/messages/zh/tools/engine.ts +68 -0
  403. package/src/i18n/messages/zh/tools/gtm-readiness-checklist.ts +166 -0
  404. package/src/i18n/messages/zh/tools/index.ts +73 -0
  405. package/src/i18n/messages/zh/tools/koko-codex-assistant.ts +170 -0
  406. package/src/i18n/messages/zh/tools/logo-generator.ts +172 -0
  407. package/src/i18n/messages/zh/tools/market-forecast-report.ts +228 -0
  408. package/src/i18n/messages/zh/tools/million-user-growth-test.ts +385 -0
  409. package/src/i18n/messages/zh/tools/og-image-generator.ts +173 -0
  410. package/src/i18n/messages/zh/tools/pitch-deck-generator.ts +358 -0
  411. package/src/i18n/messages/zh/tools/product-agreement-generator.ts +401 -0
  412. package/src/i18n/messages/zh/tools/product-hunt-launch-planner.ts +267 -0
  413. package/src/i18n/messages/zh/tools/product-name-generator.ts +383 -0
  414. package/src/i18n/messages/zh/tools/product-poster-generator.ts +282 -0
  415. package/src/i18n/messages/zh/tools/product-ui-generator.ts +234 -0
  416. package/src/i18n/messages/zh/tools/reddit-pain-point-finder.ts +162 -0
  417. package/src/i18n/messages/zh/tools/shared.ts +24 -0
  418. package/src/i18n/messages/zh/tools/social-listening-research-report.ts +181 -0
  419. package/src/i18n/messages/zh/tools/social-media-profile-generator.ts +22 -0
  420. package/src/i18n/messages/zh/tools/social-platform-asset-adapter.ts +284 -0
  421. package/src/i18n/messages/zh/tools/social-profile-kit.ts +150 -0
  422. package/src/i18n/messages/zh/tools/startup-idea-research.ts +165 -0
  423. package/src/i18n/messages/zh/tools/tarot-reading.ts +228 -0
  424. package/src/i18n/messages/zh/tools/twitter-gif-downloader.ts +138 -0
  425. package/src/i18n/messages/zh/tools/user-interview-insight-report-generator.ts +224 -0
  426. package/src/i18n/messages/zh/tools/user-interview-record-generator.ts +226 -0
  427. package/src/i18n/messages/zh/tools-ui.ts +684 -0
  428. package/src/i18n/messages/zh-tw/page/tools.ts +115 -0
  429. package/src/i18n/messages/zh-tw/tools/app-icon-resizer.ts +242 -0
  430. package/src/i18n/messages/zh-tw/tools/app-store-screenshot-generator.ts +145 -0
  431. package/src/i18n/messages/zh-tw/tools/build-in-public-story-generator.ts +230 -0
  432. package/src/i18n/messages/zh-tw/tools/cold-start-channel-selector.ts +440 -0
  433. package/src/i18n/messages/zh-tw/tools/commercial-bp-generator.ts +302 -0
  434. package/src/i18n/messages/zh-tw/tools/community-feedback-inbox.ts +217 -0
  435. package/src/i18n/messages/zh-tw/tools/community-pain-point-extractor.ts +230 -0
  436. package/src/i18n/messages/zh-tw/tools/community-post-risk-checker.ts +200 -0
  437. package/src/i18n/messages/zh-tw/tools/competitor-analysis.ts +192 -0
  438. package/src/i18n/messages/zh-tw/tools/email-template-generator.ts +302 -0
  439. package/src/i18n/messages/zh-tw/tools/engine.ts +68 -0
  440. package/src/i18n/messages/zh-tw/tools/gtm-readiness-checklist.ts +166 -0
  441. package/src/i18n/messages/zh-tw/tools/index.ts +73 -0
  442. package/src/i18n/messages/zh-tw/tools/koko-codex-assistant.ts +170 -0
  443. package/src/i18n/messages/zh-tw/tools/logo-generator.ts +71 -0
  444. package/src/i18n/messages/zh-tw/tools/market-forecast-report.ts +228 -0
  445. package/src/i18n/messages/zh-tw/tools/million-user-growth-test.ts +385 -0
  446. package/src/i18n/messages/zh-tw/tools/og-image-generator.ts +173 -0
  447. package/src/i18n/messages/zh-tw/tools/pitch-deck-generator.ts +358 -0
  448. package/src/i18n/messages/zh-tw/tools/product-agreement-generator.ts +401 -0
  449. package/src/i18n/messages/zh-tw/tools/product-hunt-launch-planner.ts +267 -0
  450. package/src/i18n/messages/zh-tw/tools/product-name-generator.ts +383 -0
  451. package/src/i18n/messages/zh-tw/tools/product-poster-generator.ts +282 -0
  452. package/src/i18n/messages/zh-tw/tools/product-ui-generator.ts +234 -0
  453. package/src/i18n/messages/zh-tw/tools/reddit-pain-point-finder.ts +162 -0
  454. package/src/i18n/messages/zh-tw/tools/shared.ts +24 -0
  455. package/src/i18n/messages/zh-tw/tools/social-listening-research-report.ts +181 -0
  456. package/src/i18n/messages/zh-tw/tools/social-media-profile-generator.ts +22 -0
  457. package/src/i18n/messages/zh-tw/tools/social-platform-asset-adapter.ts +284 -0
  458. package/src/i18n/messages/zh-tw/tools/social-profile-kit.ts +150 -0
  459. package/src/i18n/messages/zh-tw/tools/startup-idea-research.ts +165 -0
  460. package/src/i18n/messages/zh-tw/tools/tarot-reading.ts +228 -0
  461. package/src/i18n/messages/zh-tw/tools/twitter-gif-downloader.ts +138 -0
  462. package/src/i18n/messages/zh-tw/tools/user-interview-insight-report-generator.ts +224 -0
  463. package/src/i18n/messages/zh-tw/tools/user-interview-record-generator.ts +226 -0
  464. package/src/i18n/messages/zh-tw/tools-ui.ts +525 -0
  465. package/src/index.ts +15 -0
  466. package/src/lib/activity-task-handoff.ts +404 -0
  467. package/src/lib/api/errors.ts +39 -0
  468. package/src/lib/app-origin.ts +30 -0
  469. package/src/lib/fact-claim-contract.ts +68 -0
  470. package/src/lib/fake-delay.ts +3 -0
  471. package/src/lib/file/download.ts +10 -0
  472. package/src/lib/routing/locale-paths.ts +27 -0
  473. package/src/lib/seo-meta.ts +3 -0
  474. package/src/lib/tools/app-icon-resizer-schema.ts +191 -0
  475. package/src/lib/tools/app-store-screenshot-generator-schema.ts +185 -0
  476. package/src/lib/tools/build-in-public-story-generator-schema.ts +67 -0
  477. package/src/lib/tools/build-in-public-story-generator.format.ts +507 -0
  478. package/src/lib/tools/cold-start-channel-selector-schema.ts +147 -0
  479. package/src/lib/tools/commercial-bp-generator-schema.ts +222 -0
  480. package/src/lib/tools/community-feedback-inbox-schema.ts +125 -0
  481. package/src/lib/tools/community-feedback-inbox.format.ts +764 -0
  482. package/src/lib/tools/community-pain-point-extractor-schema.ts +166 -0
  483. package/src/lib/tools/community-post-risk-checker-schema.ts +99 -0
  484. package/src/lib/tools/community-post-risk-checker.format.ts +557 -0
  485. package/src/lib/tools/competitor-analysis-schema.ts +144 -0
  486. package/src/lib/tools/draft-preview-access.ts +3 -0
  487. package/src/lib/tools/draft-store.ts +69 -0
  488. package/src/lib/tools/email-template-generator-schema.ts +124 -0
  489. package/src/lib/tools/gtm-checklist-copy.ts +57 -0
  490. package/src/lib/tools/gtm-checklist-structure.ts +37 -0
  491. package/src/lib/tools/image-download.ts +68 -0
  492. package/src/lib/tools/input-quality.ts +97 -0
  493. package/src/lib/tools/logo-generator-schema.ts +224 -0
  494. package/src/lib/tools/market-forecast-report-schema.ts +299 -0
  495. package/src/lib/tools/mcp-registry.ts +16 -0
  496. package/src/lib/tools/mcp-types.ts +18 -0
  497. package/src/lib/tools/million-user-growth-test-schema.ts +49 -0
  498. package/src/lib/tools/million-user-growth-test.ts +181 -0
  499. package/src/lib/tools/og-image-generator-render.ts +448 -0
  500. package/src/lib/tools/og-image-generator-schema.ts +140 -0
  501. package/src/lib/tools/ops-catalog.ts +102 -0
  502. package/src/lib/tools/pitch-deck-generator-schema.ts +182 -0
  503. package/src/lib/tools/pitch-deck-package.ts +0 -0
  504. package/src/lib/tools/product-agreement-generator-schema.ts +168 -0
  505. package/src/lib/tools/product-hunt-launch-planner-schema.ts +136 -0
  506. package/src/lib/tools/product-hunt-launch-planner.format.ts +72 -0
  507. package/src/lib/tools/product-name-generator-schema.ts +563 -0
  508. package/src/lib/tools/product-poster-generator-schema.ts +215 -0
  509. package/src/lib/tools/product-ui-generator-schema.ts +157 -0
  510. package/src/lib/tools/reddit-pain-point-finder-schema.ts +88 -0
  511. package/src/lib/tools/resolve-tool-locale-copy.ts +75 -0
  512. package/src/lib/tools/slug.ts +60 -0
  513. package/src/lib/tools/social-listening-research-report-schema.ts +105 -0
  514. package/src/lib/tools/social-platform-asset-adapter-schema.ts +152 -0
  515. package/src/lib/tools/social-profile-kit.constants.ts +12 -0
  516. package/src/lib/tools/social-profile-kit.generation.ts +257 -0
  517. package/src/lib/tools/social-profile-kit.input.ts +290 -0
  518. package/src/lib/tools/social-profile-kit.manual.ts +481 -0
  519. package/src/lib/tools/social-profile-kit.package.ts +220 -0
  520. package/src/lib/tools/social-profile-kit.schema.ts +328 -0
  521. package/src/lib/tools/startup-idea-research-schema.ts +107 -0
  522. package/src/lib/tools/tarot-imagery.ts +89 -0
  523. package/src/lib/tools/tarot-reading.ts +1044 -0
  524. package/src/lib/tools/tool-message-keys.ts +18 -0
  525. package/src/lib/tools/types.ts +32 -0
  526. package/src/lib/tools/user-interview.format.ts +147 -0
  527. package/src/lib/tools/user-interview.generation.ts +670 -0
  528. package/src/lib/tools/user-interview.schema.ts +192 -0
  529. package/src/lib/zip.ts +106 -0
  530. package/src/services/tools/handlers/gtm-readiness-checklist.ts +71 -0
  531. package/src/services/tools/handlers/types.ts +7 -0
@@ -0,0 +1,302 @@
1
+ const emailTemplateGenerator = {
2
+ meta: {
3
+ title: "Email Template Generator",
4
+ description: "Turn marketing or common transactional email requirements into an Agent-generated MJML-first template package with HTML preview, plain text, variables, review notes, and developer handoff.",
5
+ intro: "Convert a rough email brief into a previewable, revisable, export-ready MJML template package for campaigns, verification codes, receipts, subscription confirmations, and account notifications.",
6
+ category: "Marketing tools",
7
+ keywords: [
8
+ "email template generator",
9
+ "MJML email template",
10
+ "HTML email generator",
11
+ "marketing email template",
12
+ ],
13
+ inputSignal: "Brief, audience, scenario, brand tone",
14
+ outputSignal: "MJML, HTML, plain text, variables, handoff notes",
15
+ boundarySignal: "Marketing compliance needs review",
16
+ },
17
+ guide: {
18
+ heroImageAlt: "Visual of a rough email brief becoming MJML, HTML, plain text, variables, and an export bundle.",
19
+ workspaceHeading: "Tool Workspace",
20
+ workspaceHint:
21
+ "Describe the email goal, audience, scenario, and brand tone. The Agent returns a structured MJML-first package you can preview, revise, copy, or export.",
22
+ workspaceBadge: "MJML package",
23
+ outputs: "What You Get",
24
+ outputsIntro:
25
+ "The result is designed for handoff, not just reading. You get source markup, rendered HTML, fallback text, variables, and review notes in one structured package.",
26
+ outputItems: [
27
+ {
28
+ title: "MJML Source",
29
+ body: "Use MJML as the editable source of truth for responsive email layouts, spacing, sections, buttons, and footer structure.",
30
+ },
31
+ {
32
+ title: "HTML Email",
33
+ body: "Export a matching HTML version for email service imports, developer review, and client-side preview.",
34
+ },
35
+ {
36
+ title: "Plain-Text Fallback",
37
+ body: "Get a readable text version for deliverability, accessibility, and clients that do not render HTML.",
38
+ },
39
+ {
40
+ title: "Variables And Placeholders",
41
+ body: "Receive suggested placeholders such as {{first_name}}, {{cta_url}}, {{verification_code}}, or {{invoice_url}} with examples.",
42
+ },
43
+ {
44
+ title: "Review Notes",
45
+ body: "See compliance, accessibility, rendering, and missing-information notes before handing the template to development.",
46
+ },
47
+ {
48
+ title: "Agent Revision Loop",
49
+ body: "After generation, describe the exact wording or module change and regenerate a new structured result from the Agent.",
50
+ },
51
+ ],
52
+ valueVisualAlt: "Visual of an email template package with MJML, HTML, variables, and developer handoff notes.",
53
+ standards: "What Makes A Good Email Template Generator",
54
+ standardsIntro:
55
+ "A useful email generator must do more than produce nice copy. It should create a format that developers, marketers, and lifecycle teams can actually ship.",
56
+ standardsItems: [
57
+ {
58
+ title: "Exportable Format",
59
+ body: "MJML, HTML, and plain text are separated so the source, rendered template, and fallback each have a clear job.",
60
+ },
61
+ {
62
+ title: "Scenario Awareness",
63
+ body: "Campaigns, lifecycle emails, verification codes, receipts, and subscription notices need different tone, CTA, and compliance treatment.",
64
+ },
65
+ {
66
+ title: "Developer Handoff",
67
+ body: "Variables, missing facts, preview text, and implementation notes reduce back-and-forth between marketing and engineering.",
68
+ },
69
+ {
70
+ title: "Reviewable Boundaries",
71
+ body: "The tool flags unsubscribe, transactional-vs-marketing, accessibility, and rendering checks instead of pretending every email is safe to send.",
72
+ },
73
+ {
74
+ title: "Fast Iteration",
75
+ body: "A rough brief can become a first package quickly, then the Agent can revise structure, wording, and sections from follow-up instructions.",
76
+ },
77
+ {
78
+ title: "Useful Preview",
79
+ body: "HTML preview, source view, plain text, and handoff notes help users inspect the result before export.",
80
+ },
81
+ ],
82
+ boundary: "Supported Scenarios, Boundaries, And Recovery",
83
+ boundaryIntro:
84
+ "Marketing email and transactional email share delivery constraints, but they should not be written the same way. The generator keeps those differences visible.",
85
+ boundaryGroups: [
86
+ {
87
+ title: "Good Fit",
88
+ items: [
89
+ "Marketing newsletters, launch emails, promotional campaigns, onboarding and lifecycle nurture emails.",
90
+ "Common transactional templates such as verification codes, invoices, receipts, subscription confirmation, and account notifications.",
91
+ "Developer handoff packages for teams that want MJML source, HTML export, plain text, variables, and review notes.",
92
+ ],
93
+ },
94
+ {
95
+ title: "Needs Human Review",
96
+ items: [
97
+ "CAN-SPAM, GDPR/ePrivacy, CASL, unsubscribe links, sender identity, legal footer, claims, discounts, and sweepstakes language.",
98
+ "Deliverability-sensitive content such as cold outreach, regulated products, financial promises, medical claims, or high-risk promotions.",
99
+ "Brand-critical copy, localization, image assets, merge variables, and email service provider requirements.",
100
+ ],
101
+ },
102
+ {
103
+ title: "How To Recover",
104
+ items: [
105
+ "If the result is too generic, add real product value, user segment, offer, CTA, objections, and brand examples.",
106
+ "If the template feels too promotional, switch to a transactional scenario or ask the Agent to remove sales language.",
107
+ "If a merge field or link is missing, add the required variable name and regenerate through the revision box.",
108
+ ],
109
+ },
110
+ ],
111
+ supportVisualAlt: "Visual of campaign, verification code, receipt, and review email cards.",
112
+ guidance: "How To Use The Result",
113
+ guidanceIntro:
114
+ "Treat the generated package as a developer-ready starting point. Preview it, review the variables, then test it in your email service provider before sending.",
115
+ guidanceItems: [
116
+ "Start from MJML when editing layout, spacing, buttons, sections, or footer blocks.",
117
+ "Use the HTML export for preview, implementation review, or importing into systems that accept raw HTML.",
118
+ "Keep the plain-text version aligned with the core message and CTA so accessibility and deliverability do not become afterthoughts.",
119
+ "Before sending, test desktop and mobile rendering, unsubscribe and preference links, merge variables, preview text, sender identity, and tracking requirements.",
120
+ ],
121
+ exportVisualAlt: "Visual of an editable email draft, responsive preview, MJML source, and export folder.",
122
+ useCases: "Use cases",
123
+ useCaseItems: [
124
+ {
125
+ title: "Campaign And Launch Emails",
126
+ body: "Turn a product launch, feature update, seasonal offer, or newsletter brief into a first MJML package.",
127
+ },
128
+ {
129
+ title: "Lifecycle Marketing",
130
+ body: "Create activation, onboarding, upgrade, win-back, and retention emails that include clear CTA and follow-up notes.",
131
+ },
132
+ {
133
+ title: "Transactional Templates",
134
+ body: "Draft verification, invoice, receipt, subscription confirmation, and account notification emails without making them sound like ads.",
135
+ },
136
+ {
137
+ title: "Marketing-To-Dev Handoff",
138
+ body: "Give engineers MJML, HTML, variables, plain text, and review notes instead of a loose copy doc.",
139
+ },
140
+ ],
141
+ faq: "FAQ",
142
+ faqItems: [
143
+ {
144
+ question: "Does this generate HTML or MJML?",
145
+ answer:
146
+ "It generates both. MJML is treated as the editable source, while HTML is included for preview, import, and developer handoff.",
147
+ },
148
+ {
149
+ question: "Can it handle transactional emails?",
150
+ answer:
151
+ "Yes. It supports verification codes, invoices, receipts, subscription confirmations, and account notifications. These scenarios are kept more factual and less promotional.",
152
+ },
153
+ {
154
+ question: "Can I edit the result?",
155
+ answer:
156
+ "Yes. You can inspect sections and send revision instructions back to the Agent. The next version is written back as a new structured result.",
157
+ },
158
+ {
159
+ question: "Is the generated HTML ready to send?",
160
+ answer:
161
+ "It is a strong starting point, but you should test it in your email service provider and review unsubscribe, sender identity, claims, variables, and rendering before sending.",
162
+ },
163
+ {
164
+ question: "What information should I provide?",
165
+ answer:
166
+ "A product name, audience, scenario, goal, offer or trigger, brand tone, CTA, and must-include details are enough for a useful first version.",
167
+ },
168
+ {
169
+ question: "What if the result is too generic?",
170
+ answer:
171
+ "Add product proof, customer segment, objections, offer details, sender identity, variable names, and a clearer CTA, then regenerate through the revision box.",
172
+ },
173
+ ],
174
+ ctaTitle: "Keep Building The Launch System",
175
+ ctaPrimary: "Try product name generator",
176
+ ctaSecondary: "Back to all tools",
177
+ ctaHint:
178
+ "After your email template is ready, continue tightening the product name, launch copy, and handoff materials.",
179
+ },
180
+ widget: {
181
+ formTitle: "Build the first usable package",
182
+ formHint: "Fill the essentials first. Brand rules and must-include details can stay in advanced settings.",
183
+ productNameLabel: "Product name",
184
+ productNamePlaceholder: "e.g. Tomako Launch",
185
+ audienceLabel: "Audience",
186
+ audiencePlaceholder: "e.g. trial users who have not finished setup",
187
+ scenarioLabel: "Scenario",
188
+ toneLabel: "Tone",
189
+ languageLabel: "Language",
190
+ briefLabel: "Email brief",
191
+ briefPlaceholder:
192
+ "Describe the email goal, trigger, offer, audience context, key message, and what the user should do next.",
193
+ ctaLabel: "Primary CTA",
194
+ ctaPlaceholder: "e.g. Complete setup",
195
+ brandNotesLabel: "Brand and style notes",
196
+ brandNotesPlaceholder:
197
+ "Tone examples, brand rules, forbidden words, sender identity, colors, or existing email examples.",
198
+ mustIncludeLabel: "Must include",
199
+ mustIncludePlaceholder:
200
+ "Specific merge variables, links, disclaimers, footer requirements, offer details, or code placeholders.",
201
+ advancedTitle: "Advanced settings",
202
+ optional: "Optional",
203
+ generate: "Generate email template",
204
+ submitting: "Submitting request...",
205
+ running: "Generating package...",
206
+ retry: "Retry",
207
+ emptyTitle: "Your generated package will appear here",
208
+ emptyHint:
209
+ "The result includes HTML preview, MJML source, HTML, plain text, variables, review notes, and export actions.",
210
+ runningTitle: "The Agent is building your template package",
211
+ runningHint:
212
+ "It is writing MJML, matching HTML, plain text, variables, and review notes. Short result fetch delays are normal.",
213
+ previewInput: "Input",
214
+ previewOutput: "Output",
215
+ previewTitle: "Workspace preview",
216
+ previewHint: "The panel switches from brief preview to live generation and final HTML preview.",
217
+ previewDraft: "Draft",
218
+ previewReady: "Ready",
219
+ previewProductFallback: "Your product",
220
+ previewAudienceFallback: "Target audience",
221
+ previewBriefFallback:
222
+ "Describe the campaign, trigger, user context, key message, CTA, and required variables.",
223
+ previewItems: ["MJML source", "HTML preview", "Plain text", "Variables", "Review notes"],
224
+ previewFooter: "After generation, the full package appears below with source tabs, handoff notes, copy, download, and revision actions.",
225
+ resultReady: "Template package ready",
226
+ copyPackage: "Copy package",
227
+ downloadPackage: "Download package",
228
+ copied: "Copied",
229
+ tabs: {
230
+ preview: "Preview",
231
+ plain: "Plain text",
232
+ handoff: "Handoff",
233
+ },
234
+ htmlPreviewTitle: "Generated HTML email preview",
235
+ sectionsTitle: "Editable sections",
236
+ copyMjml: "Copy MJML",
237
+ downloadMjml: "Download MJML",
238
+ copyHtml: "Copy HTML",
239
+ downloadHtml: "Download HTML",
240
+ copyPlain: "Copy text",
241
+ downloadPlain: "Download TXT",
242
+ handoff: {
243
+ variables: "Variables",
244
+ compliance: "Compliance notes",
245
+ developer: "Developer notes",
246
+ accessibility: "Accessibility notes",
247
+ render: "Render checklist",
248
+ missing: "Missing information",
249
+ empty: "No items returned.",
250
+ },
251
+ revisionLabel: "Ask the Agent to revise",
252
+ revisionHint: "Use a specific change request",
253
+ revisionPlaceholder:
254
+ "Example: Make the hero shorter, change the CTA to book a demo, and add {{calendar_url}} as a variable.",
255
+ sendRevision: "Send revision",
256
+ status: {
257
+ PENDING: "Queued",
258
+ STREAMING: "Generating",
259
+ AWAITING_INPUT: "Waiting for structured result",
260
+ SUCCEEDED: "Finalizing result",
261
+ default: "Working",
262
+ },
263
+ errors: {
264
+ invalid: "Add a real product name, audience, and email brief. Placeholder or numeric input cannot produce a useful template.",
265
+ revision: "Write a specific revision instruction before sending it to the Agent.",
266
+ copy: "Copy failed. You can still select and copy the text manually.",
267
+ submit: "The request could not be submitted.",
268
+ task: "The generation task failed.",
269
+ timeout: "The structured result did not arrive in time.",
270
+ schema: "The Agent returned a result that did not match the email template schema.",
271
+ generic: "The template could not be generated.",
272
+ recover:
273
+ "Check the brief, try again, or add more concrete product, audience, CTA, and variable details.",
274
+ },
275
+ copy: {
276
+ scenarios: {
277
+ newsletter: "Newsletter",
278
+ productLaunch: "Product launch",
279
+ promoCampaign: "Promotion",
280
+ lifecycleNurture: "Lifecycle nurture",
281
+ verificationCode: "Verification code",
282
+ invoiceReceipt: "Invoice or receipt",
283
+ subscriptionConfirmation: "Subscription confirmation",
284
+ accountNotification: "Account notification",
285
+ },
286
+ tones: {
287
+ clear: "Clear",
288
+ friendly: "Friendly",
289
+ premium: "Premium",
290
+ urgent: "Urgent",
291
+ minimal: "Minimal",
292
+ technical: "Technical",
293
+ },
294
+ languages: {
295
+ zh: "Chinese",
296
+ en: "English",
297
+ },
298
+ },
299
+ },
300
+ };
301
+
302
+ export default emailTemplateGenerator;
@@ -0,0 +1,69 @@
1
+ /** Shared copy for package-driven tool widgets (archetype engine). */
2
+ const engine = {
3
+ submit: "Generate",
4
+ submitting: "Submitting",
5
+ reset: "Reset",
6
+ advancedSettings: "More options",
7
+ copyMarkdown: "Copy Markdown",
8
+ copyValue: "Copy",
9
+ copied: "Copied",
10
+ taskId: "Task id: {taskId}",
11
+ resultReady: "Structured result",
12
+ pendingTitle: "Preparing the result",
13
+ pendingHint:
14
+ "Tomako reads the brief first, then returns a reviewable structured result. Keep this page open.",
15
+ invalidField: "Add real context here — placeholder or test text is blocked.",
16
+ modelLabel: "Model",
17
+ modelOptions: {
18
+ flash: "Flash · faster",
19
+ pro: "V4 Pro · stronger",
20
+ },
21
+ status: {
22
+ idle: "Waiting for input",
23
+ submitting: "Submitting",
24
+ running: "Tomako is generating",
25
+ awaitingResult: "Waiting for structured result",
26
+ done: "Result ready",
27
+ error: "Needs attention",
28
+ },
29
+ errors: {
30
+ validation: {
31
+ title: "Add real context",
32
+ body: "Required fields need specific input. Test text, numbers, and vague filler are blocked.",
33
+ },
34
+ authRequired: {
35
+ title: "Sign in required",
36
+ body: "Generation requires a Tomako account. Redirecting to sign-in; you will return to this tool afterward.",
37
+ },
38
+ submitFailed: {
39
+ title: "Task submission failed",
40
+ body: "The generation task was not created. Keep your input, retry later, or check the task service.",
41
+ },
42
+ taskFailed: {
43
+ title: "Generation task failed",
44
+ body: "The task failed and there is no structured result to display. Use the task id to inspect logs.",
45
+ },
46
+ resultTimeout: {
47
+ title: "Result wait timed out",
48
+ body: "The task may still be running, but the page did not receive a structured result within the wait window.",
49
+ },
50
+ wrongResultType: {
51
+ title: "Wrong result type",
52
+ body: "The backend returned a result for another tool, so the page will not display it as a success.",
53
+ },
54
+ invalidResultSchema: {
55
+ title: "Invalid result structure",
56
+ body: "The backend returned a result, but it did not match the page's renderable structure.",
57
+ },
58
+ resultWritebackMissing: {
59
+ title: "Missing writeback result",
60
+ body: "The task completed but no structured result was found. Check backend writeback and the API URL.",
61
+ },
62
+ computeFailed: {
63
+ title: "Could not process this input",
64
+ body: "This input combination could not be converted. Check the values and try again.",
65
+ },
66
+ },
67
+ } as const;
68
+
69
+ export default engine;
@@ -0,0 +1,166 @@
1
+ const gtmReadinessChecklist = {
2
+ meta: {
3
+ title: "Go-to-Market Checklist for Launch",
4
+ description:
5
+ "Check nine launch-readiness items across positioning, channels, assets, and measurement. Turn the gaps into a focused pre-launch backlog before you promote.",
6
+ intro:
7
+ "Use this 9-point go-to-market checklist to find the launch gaps worth closing before you invest in outreach, content, or ads.",
8
+ category: "GTM Tools",
9
+ keywords: [
10
+ "go to market checklist",
11
+ "gtm readiness checklist",
12
+ "launch readiness checklist",
13
+ "product launch checklist",
14
+ ],
15
+ },
16
+ widget: {
17
+ howToUse: "Check each item. Unchecked rows become your next GTM sprint backlog.",
18
+ score: "Readiness score",
19
+ gaps: "Gaps to close",
20
+ allDone: "All items checked",
21
+ sections: {
22
+ positioning: "Positioning and audience",
23
+ channels: "Channels and assets",
24
+ metrics: "Measurement and iteration",
25
+ },
26
+ },
27
+ guide: {
28
+ workspaceTitle: "Check your GTM readiness before you promote",
29
+ workspaceHint:
30
+ "Mark what is true today. The score flags gaps to close; it does not guarantee a successful launch.",
31
+ workspaceBadge: "9 launch checks",
32
+ whatItChecksHeading: "What the 9 GTM readiness checks cover",
33
+ whatItChecksIntro:
34
+ "This is a focused pre-launch check, not a full go-to-market plan. Each group maps directly to the items above.",
35
+ whatItChecksItems: [
36
+ {
37
+ title: "Positioning and audience",
38
+ body: "Verify a one-line value proposition, a specific ICP scenario, and a clear difference from alternatives.",
39
+ },
40
+ {
41
+ title: "Channels and launch assets",
42
+ body: "Confirm one or two primary channels, a single landing-page CTA, and reusable promotion material.",
43
+ },
44
+ {
45
+ title: "Measurement and iteration",
46
+ body: "Define the stage metric, distinguish traffic sources, and schedule a review within two weeks of launch.",
47
+ },
48
+ ],
49
+ howToUseHeading: "Turn the score into your next launch decision",
50
+ howToUseIntro:
51
+ "The result is deliberately small: use it to decide which gap to close first, whether to run a limited test, or whether a bigger promotion should wait.",
52
+ howToUseSteps: [
53
+ "Mark only work you can verify today—not plans you hope to finish later.",
54
+ "Start with the unchecked positioning, channel, and measurement items; turn them into the next sprint's smallest concrete tasks.",
55
+ "Re-check before you expand promotion, then review source data and learnings within two weeks of launch.",
56
+ ],
57
+ scoreHeading: "How to read a GTM readiness score",
58
+ scoreIntro:
59
+ "The score summarizes completion across nine checks. It helps you choose the scope of your next move, not predict demand or revenue.",
60
+ scoreItems: [
61
+ {
62
+ title: "0–3 checks complete",
63
+ body: "Close positioning and ICP gaps before external promotion. A clearer message is more useful than adding more channels.",
64
+ },
65
+ {
66
+ title: "4–6 checks complete",
67
+ body: "Run a limited pilot on a primary channel while you finish the missing assets and measurement basics.",
68
+ },
69
+ {
70
+ title: "7–9 checks complete",
71
+ body: "Increase investment gradually, keep source tracking in place, and use the planned review to adapt the next cycle.",
72
+ },
73
+ ],
74
+ useCasesHeading: "When to use this launch-readiness checklist",
75
+ useCasesIntro:
76
+ "Use it at a decision point—not as a substitute for customer research, product QA, or a channel-specific launch plan.",
77
+ useCaseItems: [
78
+ "Before a first public launch, when the product is built but the message, channel focus, or measurement plan is still unclear.",
79
+ "Before paid ads or outbound, when you need to decide whether the landing page, promotion assets, and source tracking are ready.",
80
+ "Before a small channel experiment, when a founder and growth lead need one shared view of the launch gaps.",
81
+ "After an early launch, when you need to schedule a short review and turn what you learn into the next GTM sprint.",
82
+ ],
83
+ boundaryHeading: "What this checklist does not cover",
84
+ boundaryIntro:
85
+ "A checked box means that one planning condition is in place. It is not evidence that the product, market response, or channel execution is ready.",
86
+ boundaryGroups: [
87
+ {
88
+ title: "Still needs separate review",
89
+ items: [
90
+ "Product quality, security, legal or compliance requirements, and channel-specific policies.",
91
+ "Whether your positioning resonates with customers, not just whether it has been written down.",
92
+ "Creative quality, budget fit, and real results from a specific channel test.",
93
+ ],
94
+ },
95
+ {
96
+ title: "Why the score is still useful",
97
+ items: [
98
+ "It turns an unclear feeling of not being ready into visible, shared gaps.",
99
+ "It gives a small team a repeatable pre-launch discussion before more time or budget is committed.",
100
+ "It does not forecast customer demand, revenue, or the outcome of a launch.",
101
+ ],
102
+ },
103
+ ],
104
+ faqHeading: "Go-to-Market Checklist FAQs",
105
+ faqItems: [
106
+ {
107
+ question: "What is a go-to-market readiness checklist?",
108
+ answer:
109
+ "A go-to-market readiness checklist is a short pre-launch review of the conditions needed to promote a product responsibly. This one checks positioning, channels and launch assets, plus the measurement and review loop you need to learn after launch.",
110
+ },
111
+ {
112
+ question: "What are the nine GTM readiness checks?",
113
+ answer:
114
+ "The nine checks cover a one-line value proposition, a specific ICP, differentiation, one or two primary channels, a landing-page CTA, reusable promotion material, a stage metric, source tracking, and a post-launch review date.",
115
+ },
116
+ {
117
+ question: "What should I do with an early or pilot score?",
118
+ answer:
119
+ "With 0–3 checks complete, close positioning and ICP gaps before promotion. With 4–6 checks complete, keep the test small: use one primary channel while you finish missing assets and measurement. Turn the unchecked rows into concrete sprint tasks, then re-check.",
120
+ },
121
+ {
122
+ question: "Does a high GTM readiness score mean I should launch?",
123
+ answer:
124
+ "No. A high score means the nine planning conditions are in place. You still need product-quality, compliance, channel-policy, creative, and customer-response review before committing significant budget or treating a launch as successful.",
125
+ },
126
+ {
127
+ question: "Can I customize this go-to-market checklist?",
128
+ answer:
129
+ "This page keeps the nine shared checks fixed so that small teams can make a quick comparison. Add team- or launch-specific checks to your sprint backlog after you complete the common baseline.",
130
+ },
131
+ {
132
+ question: "Does this checklist send my answers to a server?",
133
+ answer:
134
+ "No. The score is calculated in the browser from the boxes you check on this page. No API call is needed to calculate the current readiness score.",
135
+ },
136
+ ],
137
+ ctaHeading: "Turn one readiness gap into a smaller first test",
138
+ ctaPrimary: "Re-check the 9 items",
139
+ ctaSecondary: "Choose a first channel",
140
+ ctaHint:
141
+ "After the basics are in place, choose one channel to test first—or return here after you close the gaps. Neither step replaces customer validation.",
142
+ },
143
+ items: {
144
+ positioning_one_liner: "One-sentence value proposition",
145
+ icp_specific: "ICP with concrete scenarios",
146
+ competitor_diff: "Clear differentiation vs alternatives",
147
+ primary_channels: "One to two primary channels",
148
+ landing_cta: "Landing page has a single primary CTA",
149
+ social_templates: "Reusable social or ad templates",
150
+ north_star_metric: "North-star or stage metric defined",
151
+ utm_tracking: "Traffic sources distinguishable",
152
+ retro_schedule: "Review scheduled within two weeks after launch",
153
+ },
154
+ tiers: {
155
+ early: "Close positioning and ICP gaps first",
156
+ pilot: "Ready for a limited pilot",
157
+ scale: "Ready to scale channel spend",
158
+ },
159
+ recommendations: {
160
+ early: "Finish positioning, ICP, and differentiation before external promotion.",
161
+ pilot: "Core assets and metrics are in place—test primary channels in a small scope.",
162
+ scale: "GTM fundamentals look solid—increase content output and channel investment.",
163
+ },
164
+ } as const;
165
+
166
+ export default gtmReadinessChecklist;
@@ -0,0 +1,73 @@
1
+ import appIconResizer from "./app-icon-resizer";
2
+ import appStoreScreenshotGenerator from "./app-store-screenshot-generator";
3
+ import buildInPublicStoryGenerator from "./build-in-public-story-generator";
4
+ import coldStartChannelSelector from "./cold-start-channel-selector";
5
+ import commercialBpGenerator from "./commercial-bp-generator";
6
+ import communityFeedbackInbox from "./community-feedback-inbox";
7
+ import communityPainPointExtractor from "./community-pain-point-extractor";
8
+ import communityPostRiskChecker from "./community-post-risk-checker";
9
+ import competitorAnalysis from "./competitor-analysis";
10
+ import emailTemplateGenerator from "./email-template-generator";
11
+ import engine from "./engine";
12
+ import gtmReadinessChecklist from "./gtm-readiness-checklist";
13
+ import kokoCodexAssistant from "./koko-codex-assistant";
14
+ import logoGenerator from "./logo-generator";
15
+ import marketForecastReport from "./market-forecast-report";
16
+ import millionUserGrowthTest from "./million-user-growth-test";
17
+ import ogImageGenerator from "./og-image-generator";
18
+ import productAgreementGenerator from "./product-agreement-generator";
19
+ import pitchDeckGenerator from "./pitch-deck-generator";
20
+ import productHuntLaunchPlanner from "./product-hunt-launch-planner";
21
+ import productNameGenerator from "./product-name-generator";
22
+ import productPosterGenerator from "./product-poster-generator";
23
+ import productUiGenerator from "./product-ui-generator";
24
+ import redditPainPointFinder from "./reddit-pain-point-finder";
25
+ import shared from "./shared";
26
+ import socialListeningResearchReport from "./social-listening-research-report";
27
+ import socialMediaProfileGenerator from "./social-media-profile-generator";
28
+ import socialPlatformAssetAdapter from "./social-platform-asset-adapter";
29
+ import socialProfileKit from "./social-profile-kit";
30
+ import startupIdeaResearch from "./startup-idea-research";
31
+ import tarotReading from "./tarot-reading";
32
+ import twitterGifDownloader from "./twitter-gif-downloader";
33
+ import userInterviewInsightReportGenerator from "./user-interview-insight-report-generator";
34
+ import userInterviewRecordGenerator from "./user-interview-record-generator";
35
+
36
+ const toolsPages = {
37
+ shared,
38
+ engine,
39
+ appIconResizer,
40
+ buildInPublicStoryGenerator,
41
+ coldStartChannelSelector,
42
+ commercialBpGenerator,
43
+ communityFeedbackInbox,
44
+ communityPainPointExtractor,
45
+ communityPostRiskChecker,
46
+ pitchDeckGenerator,
47
+ productNameGenerator,
48
+ productPosterGenerator,
49
+ productUiGenerator,
50
+ productAgreementGenerator,
51
+ productHuntLaunchPlanner,
52
+ emailTemplateGenerator,
53
+ competitorAnalysis,
54
+ redditPainPointFinder,
55
+ socialListeningResearchReport,
56
+ socialMediaProfileGenerator,
57
+ gtmReadinessChecklist,
58
+ kokoCodexAssistant,
59
+ logoGenerator,
60
+ marketForecastReport,
61
+ millionUserGrowthTest,
62
+ ogImageGenerator,
63
+ appStoreScreenshotGenerator,
64
+ twitterGifDownloader,
65
+ socialPlatformAssetAdapter,
66
+ socialProfileKit,
67
+ startupIdeaResearch,
68
+ tarotReading,
69
+ userInterviewInsightReportGenerator,
70
+ userInterviewRecordGenerator,
71
+ } as const;
72
+
73
+ export default toolsPages;