@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: "邮件模板生成器",
4
+ description: "输入营销或高频交易邮件需求,由在线 Agent 生成 MJML-first 邮件模板包,包含可预览 HTML、纯文本、变量、复核项和开发交付说明。",
5
+ intro: "把粗略邮件需求转成可预览、可修改、可导出的 MJML 邮件模板包,适合营销活动、验证码、账单、订阅成功和账号通知等场景。",
6
+ category: "营销工具",
7
+ keywords: [
8
+ "邮件模板生成器",
9
+ "MJML 邮件模板",
10
+ "HTML 邮件生成器",
11
+ "营销邮件模板",
12
+ ],
13
+ inputSignal: "邮件需求、受众、场景、品牌语气",
14
+ outputSignal: "MJML、HTML、纯文本、变量和交付说明",
15
+ boundarySignal: "营销合规需人工复核",
16
+ },
17
+ guide: {
18
+ heroImageAlt: "粗略邮件需求转成 MJML、HTML、纯文本、变量和导出包的视觉图。",
19
+ workspaceHeading: "工具工作台",
20
+ workspaceHint:
21
+ "描述邮件目标、受众、场景和品牌语气,Agent 会返回结构化的 MJML-first 邮件模板包,可预览、修改、复制和导出。",
22
+ workspaceBadge: "MJML 模板包",
23
+ outputs: "你会得到什么",
24
+ outputsIntro:
25
+ "生成结果不是一段只能阅读的文案,而是一组可交付开发的邮件材料:源码、渲染版本、纯文本、变量和复核说明都在同一个结构化结果里。",
26
+ outputItems: [
27
+ {
28
+ title: "MJML 源文件",
29
+ body: "把 MJML 作为可编辑源文件,用来维护响应式邮件布局、间距、区块、按钮和页脚结构。",
30
+ },
31
+ {
32
+ title: "HTML 邮件版本",
33
+ body: "同时拿到匹配的 HTML 版本,用于邮件服务导入、开发检查和页面预览。",
34
+ },
35
+ {
36
+ title: "纯文本 fallback",
37
+ body: "生成适合无 HTML 邮件客户端、可访问性和送达率检查的纯文本版本。",
38
+ },
39
+ {
40
+ title: "变量和占位符",
41
+ body: "返回 {{first_name}}、{{cta_url}}、{{verification_code}}、{{invoice_url}} 等可替换变量及示例说明。",
42
+ },
43
+ {
44
+ title: "复核说明",
45
+ body: "在交付开发前看到营销合规、无障碍、渲染兼容和缺失信息等检查项。",
46
+ },
47
+ {
48
+ title: "Agent 修改循环",
49
+ body: "生成后可以描述要改的文案、模块或结构,重新由 Agent 写回新的结构化结果。",
50
+ },
51
+ ],
52
+ valueVisualAlt: "包含 MJML、HTML、变量和开发交付说明的邮件模板包视觉图。",
53
+ standards: "好的邮件模板生成器应该具备什么",
54
+ standardsIntro:
55
+ "真正有用的邮件生成器不只是写几段好看的文案,还应该产出营销、生命周期和研发团队可以继续落地的格式。",
56
+ standardsItems: [
57
+ {
58
+ title: "格式可交付",
59
+ body: "MJML、HTML 和纯文本分开输出,让源文件、渲染模板和 fallback 各自有清楚用途。",
60
+ },
61
+ {
62
+ title: "理解场景差异",
63
+ body: "营销活动、生命周期邮件、验证码、账单和订阅通知需要不同语气、CTA 和合规处理。",
64
+ },
65
+ {
66
+ title: "方便开发接手",
67
+ body: "变量、缺失信息、预览文案和实现说明能减少营销与研发之间的反复沟通。",
68
+ },
69
+ {
70
+ title: "边界可复核",
71
+ body: "工具会提示退订、交易/营销边界、无障碍和渲染检查,而不是假装每封邮件都可以直接发送。",
72
+ },
73
+ {
74
+ title: "迭代速度快",
75
+ body: "粗略 brief 可以先生成第一版,再通过 Agent 修改结构、措辞和模块。",
76
+ },
77
+ {
78
+ title: "预览真实有用",
79
+ body: "HTML 预览、源码、纯文本和交付说明放在一起,方便用户在导出前检查。",
80
+ },
81
+ ],
82
+ boundary: "支持场景、边界和失败恢复",
83
+ boundaryIntro:
84
+ "营销邮件和交易邮件有相同的投递限制,但写法不能混在一起。这个工具会把这些差异在结果里显式保留。",
85
+ boundaryGroups: [
86
+ {
87
+ title: "适合处理",
88
+ items: [
89
+ "营销 newsletter、产品发布、促销活动、用户激活和生命周期培育邮件。",
90
+ "验证码、账单、收据、订阅成功、账号通知等常见交易/系统邮件模板。",
91
+ "需要 MJML 源码、HTML 导出、纯文本、变量和开发说明的邮件模板交付场景。",
92
+ ],
93
+ },
94
+ {
95
+ title: "需要人工复核",
96
+ items: [
97
+ "CAN-SPAM、GDPR/ePrivacy、CASL、退订链接、发件人身份、法律页脚、营销承诺、折扣和抽奖规则。",
98
+ "冷邮件、强监管产品、金融承诺、医疗声明和高风险促销等送达率或合规敏感内容。",
99
+ "品牌关键文案、本地化、图片资产、变量命名和邮件服务商特殊要求。",
100
+ ],
101
+ },
102
+ {
103
+ title: "失败时怎么恢复",
104
+ items: [
105
+ "如果结果太泛,补充真实产品价值、用户分群、优惠内容、CTA、反对意见和品牌示例。",
106
+ "如果交易邮件显得过度营销,切换到交易场景,或要求 Agent 移除销售性措辞。",
107
+ "如果缺少变量或链接,把需要的变量名写进修改要求,再通过修改框重新生成。",
108
+ ],
109
+ },
110
+ ],
111
+ supportVisualAlt: "营销、验证码、收据和复核邮件卡片的视觉图。",
112
+ guidance: "如何使用生成结果",
113
+ guidanceIntro:
114
+ "把生成包当作可交付开发的起点。先预览,再检查变量和说明,最后放到邮件服务商里做真实测试。",
115
+ guidanceItems: [
116
+ "需要调整布局、间距、按钮、模块或页脚时,从 MJML 源文件开始改。",
117
+ "HTML 导出适合预览、开发评审,或导入支持原始 HTML 的邮件系统。",
118
+ "纯文本版本要和核心消息及 CTA 保持一致,不要把可访问性和送达率放到最后才补。",
119
+ "发送前检查桌面和移动端渲染、退订或偏好链接、变量、预览文案、发件人身份和追踪要求。",
120
+ ],
121
+ exportVisualAlt: "可编辑邮件草案、响应式预览、MJML 源码和导出文件夹的视觉图。",
122
+ useCases: "适用场景",
123
+ useCaseItems: [
124
+ {
125
+ title: "活动和发布邮件",
126
+ body: "把产品发布、功能更新、季节促销或 newsletter 需求转成第一版 MJML 模板包。",
127
+ },
128
+ {
129
+ title: "生命周期营销",
130
+ body: "生成激活、入门引导、升级、召回和留存邮件,并附带清楚 CTA 与后续检查项。",
131
+ },
132
+ {
133
+ title: "交易/系统模板",
134
+ body: "起草验证码、账单、收据、订阅成功和账号通知邮件,避免把系统通知写成广告。",
135
+ },
136
+ {
137
+ title: "营销交付开发",
138
+ body: "给研发一组 MJML、HTML、变量、纯文本和复核说明,而不是一份松散文案文档。",
139
+ },
140
+ ],
141
+ faq: "常见问题",
142
+ faqItems: [
143
+ {
144
+ question: "这个工具生成 HTML 还是 MJML?",
145
+ answer:
146
+ "两个都会生成。MJML 是可编辑源文件,HTML 用于预览、导入和开发交付。",
147
+ },
148
+ {
149
+ question: "可以处理交易邮件吗?",
150
+ answer:
151
+ "可以。它支持验证码、账单、收据、订阅成功和账号通知等高频场景,这些邮件会保持更事实化、更少营销味。",
152
+ },
153
+ {
154
+ question: "生成后可以修改吗?",
155
+ answer:
156
+ "可以。你可以查看模块,并把修改要求发回 Agent。下一版会作为新的结构化结果写回。",
157
+ },
158
+ {
159
+ question: "生成的 HTML 可以直接发送吗?",
160
+ answer:
161
+ "它是高质量起点,但发送前仍要在邮件服务商里测试,并复核退订、发件人身份、营销承诺、变量和渲染兼容。",
162
+ },
163
+ {
164
+ question: "我需要提供哪些信息?",
165
+ answer:
166
+ "产品名称、受众、场景、目标、优惠或触发条件、品牌语气、CTA 和必须包含的信息,就足够生成第一版。",
167
+ },
168
+ {
169
+ question: "结果太泛怎么办?",
170
+ answer:
171
+ "补充产品证据、用户分群、反对意见、优惠细节、发件人身份、变量名和更明确的 CTA,然后通过修改框重新生成。",
172
+ },
173
+ ],
174
+ ctaTitle: "继续完善上线系统",
175
+ ctaPrimary: "试试产品命名工具",
176
+ ctaSecondary: "返回全部工具",
177
+ ctaHint:
178
+ "邮件模板整理好后,可以继续打磨产品命名、上线文案和开发交付材料。",
179
+ },
180
+ widget: {
181
+ formTitle: "先生成可用的第一版",
182
+ formHint: "先填写必要信息。品牌规则和必须包含的内容可以放到高级设置里。",
183
+ productNameLabel: "产品名称",
184
+ productNamePlaceholder: "例如 Tomako Launch",
185
+ audienceLabel: "目标受众",
186
+ audiencePlaceholder: "例如还没有完成设置的试用用户",
187
+ scenarioLabel: "邮件场景",
188
+ toneLabel: "语气",
189
+ languageLabel: "语言",
190
+ briefLabel: "邮件需求",
191
+ briefPlaceholder:
192
+ "说明这封邮件的目标、触发条件、优惠或通知内容、用户背景、核心信息,以及希望用户下一步做什么。",
193
+ ctaLabel: "主要 CTA",
194
+ ctaPlaceholder: "例如 完成设置",
195
+ brandNotesLabel: "品牌与风格说明",
196
+ brandNotesPlaceholder:
197
+ "可以写品牌语气、禁用词、发件人身份、颜色、已有邮件示例或文案偏好。",
198
+ mustIncludeLabel: "必须包含",
199
+ mustIncludePlaceholder:
200
+ "可以写变量名、链接、免责声明、页脚要求、优惠细节或验证码占位符。",
201
+ advancedTitle: "高级设置",
202
+ optional: "可选",
203
+ generate: "生成邮件模板",
204
+ submitting: "正在提交请求...",
205
+ running: "正在生成模板包...",
206
+ retry: "重试",
207
+ emptyTitle: "生成结果会显示在这里",
208
+ emptyHint:
209
+ "结果包含 HTML 预览、MJML 源码、HTML、纯文本、变量、复核说明和导出动作。",
210
+ runningTitle: "Agent 正在生成邮件模板包",
211
+ runningHint:
212
+ "它会生成 MJML、匹配的 HTML、纯文本、变量和复核说明。结构化结果短暂延迟是正常的。",
213
+ previewInput: "输入",
214
+ previewOutput: "输出",
215
+ previewTitle: "工作台预览",
216
+ previewHint: "右侧会从需求预览切换到生成中状态,完成后显示真实 HTML 预览。",
217
+ previewDraft: "草稿",
218
+ previewReady: "已生成",
219
+ previewProductFallback: "你的产品",
220
+ previewAudienceFallback: "目标受众",
221
+ previewBriefFallback:
222
+ "描述活动、触发条件、用户背景、核心信息、CTA 和所需变量。",
223
+ previewItems: ["MJML 源码", "HTML 预览", "纯文本", "变量", "复核说明"],
224
+ previewFooter: "生成后,下方会展示完整模板包,包括源码 tab、交付说明、复制、下载和继续修改动作。",
225
+ resultReady: "模板包已生成",
226
+ copyPackage: "复制完整包",
227
+ downloadPackage: "下载完整包",
228
+ copied: "已复制",
229
+ tabs: {
230
+ preview: "预览",
231
+ plain: "纯文本",
232
+ handoff: "交付说明",
233
+ },
234
+ htmlPreviewTitle: "生成的 HTML 邮件预览",
235
+ sectionsTitle: "可修改模块",
236
+ copyMjml: "复制 MJML",
237
+ downloadMjml: "下载 MJML",
238
+ copyHtml: "复制 HTML",
239
+ downloadHtml: "下载 HTML",
240
+ copyPlain: "复制纯文本",
241
+ downloadPlain: "下载 TXT",
242
+ handoff: {
243
+ variables: "变量",
244
+ compliance: "合规提示",
245
+ developer: "开发说明",
246
+ accessibility: "无障碍说明",
247
+ render: "渲染检查",
248
+ missing: "缺失信息",
249
+ empty: "没有返回相关项目。",
250
+ },
251
+ revisionLabel: "让 Agent 修改",
252
+ revisionHint: "写具体修改要求",
253
+ revisionPlaceholder:
254
+ "例如:缩短首屏,把 CTA 改成预约演示,并增加 {{calendar_url}} 变量。",
255
+ sendRevision: "发送修改要求",
256
+ status: {
257
+ PENDING: "排队中",
258
+ STREAMING: "生成中",
259
+ AWAITING_INPUT: "等待结构化结果",
260
+ SUCCEEDED: "正在完成结果",
261
+ default: "处理中",
262
+ },
263
+ errors: {
264
+ invalid: "请填写真实产品名称、目标受众和邮件需求。占位或纯数字输入无法生成有用模板。",
265
+ revision: "发送给 Agent 前,请写清楚具体修改要求。",
266
+ copy: "复制失败。你仍然可以手动选中文本复制。",
267
+ submit: "请求提交失败。",
268
+ task: "生成任务失败。",
269
+ timeout: "结构化结果没有在限定时间内返回。",
270
+ schema: "Agent 返回的结果不符合邮件模板 schema。",
271
+ generic: "邮件模板生成失败。",
272
+ recover:
273
+ "请检查邮件需求,或补充更具体的产品、受众、CTA 和变量信息后重试。",
274
+ },
275
+ copy: {
276
+ scenarios: {
277
+ newsletter: "Newsletter",
278
+ productLaunch: "产品发布",
279
+ promoCampaign: "促销活动",
280
+ lifecycleNurture: "生命周期培育",
281
+ verificationCode: "验证码",
282
+ invoiceReceipt: "账单或收据",
283
+ subscriptionConfirmation: "订阅成功",
284
+ accountNotification: "账号通知",
285
+ },
286
+ tones: {
287
+ clear: "清晰直接",
288
+ friendly: "友好",
289
+ premium: "高级克制",
290
+ urgent: "有紧迫感",
291
+ minimal: "极简",
292
+ technical: "技术专业",
293
+ },
294
+ languages: {
295
+ zh: "中文",
296
+ en: "英文",
297
+ },
298
+ },
299
+ },
300
+ };
301
+
302
+ export default emailTemplateGenerator;
@@ -0,0 +1,68 @@
1
+ /** package 驱动工具 widget(archetype 引擎)的共享文案。 */
2
+ const engine = {
3
+ submit: "开始生成",
4
+ submitting: "提交中",
5
+ reset: "重置",
6
+ advancedSettings: "更多选项",
7
+ copyMarkdown: "复制 Markdown",
8
+ copyValue: "复制",
9
+ copied: "已复制",
10
+ taskId: "任务 ID:{taskId}",
11
+ resultReady: "结构化结果",
12
+ pendingTitle: "正在准备结果",
13
+ pendingHint: "Tomako 会先理解你的输入,再返回可复核的结构化结果。请保持页面打开。",
14
+ invalidField: "请补充真实信息——占位文本或测试字符会被拦截。",
15
+ modelLabel: "模型",
16
+ modelOptions: {
17
+ flash: "Flash · 更快",
18
+ pro: "V4 Pro · 更强",
19
+ },
20
+ status: {
21
+ idle: "等待输入",
22
+ submitting: "提交中",
23
+ running: "Tomako 正在生成",
24
+ awaitingResult: "等待结构化结果",
25
+ done: "结果已就绪",
26
+ error: "需要处理",
27
+ },
28
+ errors: {
29
+ validation: {
30
+ title: "请补充真实上下文",
31
+ body: "必填字段需要具体信息。测试文本、纯数字和模糊占位会被拦截。",
32
+ },
33
+ authRequired: {
34
+ title: "请先登录",
35
+ body: "工具生成需要登录账号。正在跳转登录页,登录后会回到当前工具继续。",
36
+ },
37
+ submitFailed: {
38
+ title: "任务提交失败",
39
+ body: "生成任务未能创建。输入已保留,可稍后重试或检查任务服务。",
40
+ },
41
+ taskFailed: {
42
+ title: "生成任务失败",
43
+ body: "任务执行失败,没有可展示的结构化结果。可凭任务 ID 排查日志。",
44
+ },
45
+ resultTimeout: {
46
+ title: "等待结果超时",
47
+ body: "任务可能仍在执行,但页面在等待窗口内没有收到结构化结果。",
48
+ },
49
+ wrongResultType: {
50
+ title: "结果类型不符",
51
+ body: "后端返回了其他工具的结果,页面不会将其展示为成功。",
52
+ },
53
+ invalidResultSchema: {
54
+ title: "结果结构无效",
55
+ body: "后端返回了结果,但与页面可渲染的结构不匹配。",
56
+ },
57
+ resultWritebackMissing: {
58
+ title: "缺少写回结果",
59
+ body: "任务已完成但未找到结构化结果。请检查后端写回与 API 地址。",
60
+ },
61
+ computeFailed: {
62
+ title: "无法处理当前输入",
63
+ body: "这组输入无法完成转换。请检查输入内容后重试。",
64
+ },
65
+ },
66
+ } as const;
67
+
68
+ export default engine;
@@ -0,0 +1,166 @@
1
+ const gtmReadinessChecklist = {
2
+ meta: {
3
+ title: "GTM 上市检查清单:上线前 9 项自检",
4
+ description:
5
+ "用九项检查核对定位、渠道、素材与衡量是否就绪;把未勾选项变成发布前应优先补齐的 GTM 待办,再决定是否对外推广。",
6
+ intro:
7
+ "在开始外联、内容分发或投放前,用这份 9 项 GTM 检查清单找出需要优先补齐的上线缺口。",
8
+ category: "GTM 工具",
9
+ keywords: [
10
+ "GTM 检查清单",
11
+ "GTM 就绪度自检",
12
+ "上市检查清单",
13
+ "上线前检查",
14
+ ],
15
+ },
16
+ widget: {
17
+ howToUse: "逐项勾选。未勾选项即为下一冲刺的 GTM 待办。",
18
+ score: "就绪度得分",
19
+ gaps: "待补齐项",
20
+ allDone: "全部完成",
21
+ sections: {
22
+ positioning: "定位与受众",
23
+ channels: "渠道与素材",
24
+ metrics: "衡量与迭代",
25
+ },
26
+ },
27
+ guide: {
28
+ useCasesHeading: "何时使用这份上线就绪清单",
29
+ useCaseItems: [
30
+ "首次公开发布前:产品已完成,但信息表达、渠道重点或衡量计划仍不够清晰。",
31
+ "投放或外联前:需要判断落地页、推广素材和来源追踪是否已准备好。",
32
+ "开始小规模渠道实验前:创始人与增长负责人需要对上线缺口有同一份判断。",
33
+ "早期发布后:需要安排一次短复盘,并把学到的内容变成下一轮 GTM 待办。",
34
+ ],
35
+ faqHeading: "GTM 上市检查清单常见问题",
36
+ faqItems: [
37
+ {
38
+ question: "什么是 GTM 就绪度检查清单?",
39
+ answer:
40
+ "GTM 就绪度检查清单用于在对外推广前,快速确认产品定位、渠道与素材,以及上线后的衡量和复盘条件是否具备。本页是一份 9 项的基础自检。",
41
+ },
42
+ {
43
+ question: "这 9 项 GTM 检查分别是什么?",
44
+ answer:
45
+ "它检查一句话价值主张、具体 ICP、竞品差异、1–2 个主渠道、落地页 CTA、可复用推广素材、阶段指标、来源追踪和发布后复盘时间。",
46
+ },
47
+ {
48
+ question: "得分较低或处于试运营阶段,下一步该做什么?",
49
+ answer:
50
+ "完成 0–3 项时,先补定位和 ICP,再推广;完成 4–6 项时,只在一个主渠道做小范围测试,同时补齐素材和衡量基础。把未勾选项写成具体冲刺待办后再检查。",
51
+ },
52
+ {
53
+ question: "高 GTM 得分就代表可以正式上线吗?",
54
+ answer:
55
+ "不代表。高分只说明这九个规划条件已具备。在投入较多预算或判断上线成功前,仍需独立复核产品质量、合规、平台规则、创意质量和真实客户反馈。",
56
+ },
57
+ {
58
+ question: "可以自定义这份 GTM 检查清单吗?",
59
+ answer:
60
+ "为了让小团队能快速对比,本页固定了这九项共通检查。完成基础项后,可以把团队或某次发布特有的要求加入冲刺待办。",
61
+ },
62
+ {
63
+ question: "勾选会把答案发送到服务器吗?",
64
+ answer:
65
+ "不会。得分仅根据你在当前页面勾选的状态在浏览器内计算,不需要调用 API。",
66
+ },
67
+ ],
68
+ workspaceTitle: "对外推广前,先检查 GTM 是否就绪",
69
+ workspaceHint:
70
+ "只勾选你今天已能确认的事项。得分用于暴露缺口,并不保证这次上线会成功。",
71
+ workspaceBadge: "9 项上线检查",
72
+ whatItChecksHeading: "这 9 项 GTM 检查覆盖什么",
73
+ whatItChecksIntro:
74
+ "这是发布前的聚焦自检,不是一份完整 GTM 计划。以下三组内容与上方的实际检查项一一对应。",
75
+ whatItChecksItems: [
76
+ {
77
+ title: "定位与受众",
78
+ body: "核对一句话价值主张、具体 ICP 场景,以及与替代方案的清晰差异。",
79
+ },
80
+ {
81
+ title: "渠道与上线素材",
82
+ body: "确认 1–2 个主渠道、落地页唯一主 CTA,以及可复用的推广素材。",
83
+ },
84
+ {
85
+ title: "衡量与迭代",
86
+ body: "定义当前阶段指标、能区分流量来源,并在上线后两周内安排复盘。",
87
+ },
88
+ ],
89
+ howToUseHeading: "把得分变成下一次上线决策",
90
+ howToUseIntro:
91
+ "结果刻意保持简洁:它帮助你判断先补哪项、是否只做小范围测试,或是否应暂缓更大规模的推广。",
92
+ howToUseSteps: [
93
+ "只勾选今天已有证据的事项,而不是计划之后再完成的事情。",
94
+ "从未勾选的定位、渠道和衡量项开始,把它们拆成下一冲刺中最小的具体待办。",
95
+ "扩大推广前再检查一次;上线后两周内结合来源数据和实际反馈完成复盘。",
96
+ ],
97
+ scoreHeading: "如何解读 GTM 就绪度得分",
98
+ scoreIntro:
99
+ "得分汇总九项检查的完成情况。它帮助你决定下一步投入的范围,而非预测需求、收入或上线结果。",
100
+ scoreItems: [
101
+ {
102
+ title: "完成 0–3 项",
103
+ body: "先补齐定位和 ICP 缺口,再对外推广。更清晰的信息通常比增加更多渠道更重要。",
104
+ },
105
+ {
106
+ title: "完成 4–6 项",
107
+ body: "可在一个主渠道做小范围测试,同时补齐缺失的素材和衡量基础。",
108
+ },
109
+ {
110
+ title: "完成 7–9 项",
111
+ body: "可逐步增加投入,但仍要保留来源追踪,并按照既定时间复盘下一轮。",
112
+ },
113
+ ],
114
+ useCasesIntro:
115
+ "把它用在需要做决定的时刻,而不是把它当作用户调研、产品 QA 或具体渠道上线计划的替代品。",
116
+ boundaryHeading: "这份清单不检查什么",
117
+ boundaryIntro:
118
+ "勾选某项只说明一个规划条件已具备;它不能证明产品、市场反馈或渠道执行本身已经准备好。",
119
+ boundaryGroups: [
120
+ {
121
+ title: "仍需单独复核",
122
+ items: [
123
+ "产品质量、安全、法务或合规要求,以及各渠道的具体平台规则。",
124
+ "你的定位是否真正打动客户,而不仅是文档已经写好。",
125
+ "某个渠道测试的创意质量、预算匹配度和真实效果。",
126
+ ],
127
+ },
128
+ {
129
+ title: "得分为什么仍然有用",
130
+ items: [
131
+ "把「好像还没准备好」变成团队可看见、可讨论的缺口。",
132
+ "让小团队在投入更多时间或预算前,有一套可重复使用的发布前讨论方式。",
133
+ "它不预测客户需求、收入,也不预测一次上线的结果。",
134
+ ],
135
+ },
136
+ ],
137
+ ctaHeading: "把一个就绪缺口变成更小的首轮测试",
138
+ ctaPrimary: "重新检查 9 项",
139
+ ctaSecondary: "选择首个渠道",
140
+ ctaHint:
141
+ "基础项具备后,先选一条渠道开始测试;补齐缺口后也可回到这里再检查。两者都不能代替真实的客户验证。",
142
+ },
143
+ items: {
144
+ positioning_one_liner: "能用一句话说明「为谁解决什么问题」",
145
+ icp_specific: "目标用户画像有具体场景,而非「所有人」",
146
+ competitor_diff: "与主要竞品相比有清晰差异点",
147
+ primary_channels: "已选定 1–2 个主渠道(而非同时铺 8 个平台)",
148
+ landing_cta: "落地页有单一主 CTA",
149
+ social_templates: "至少有 1 套可复用的社媒/广告素材模板",
150
+ north_star_metric: "定义了北极星或阶段核心指标",
151
+ utm_tracking: "能区分流量来源(UTM 或等价方案)",
152
+ retro_schedule: "有发布后 2 周内的复盘时间点",
153
+ },
154
+ tiers: {
155
+ early: "先补齐定位与 ICP",
156
+ pilot: "可以小范围试运营",
157
+ scale: "可加大渠道投入",
158
+ },
159
+ recommendations: {
160
+ early: "建议先完成定位、ICP 与竞品差异三项,再启动对外推广。",
161
+ pilot: "核心素材与衡量指标基本就绪,可小范围测试主渠道。",
162
+ scale: "GTM 基础扎实,可加大内容产出与渠道投放。",
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;