@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 commercialBpGenerator = {
2
+ meta: {
3
+ title: "AI 商业 BP 生成器",
4
+ description: "输入产品官网或手动产品背景,由在线 Agent 先生成 BP 大纲,再逐页生成图片版商业 BP,支持风格模板、单页下载和整套打包下载。",
5
+ intro: "把零散产品信息、品牌约束、目标用户和商业诉求整理成一套图片版商业 BP,适合融资、招募、发布和商业合作材料的首版制作。",
6
+ category: "商业化工具",
7
+ keywords: [
8
+ "AI 商业 BP 生成器",
9
+ "商业计划书生成器",
10
+ "融资 BP 生成器",
11
+ "图片版 BP",
12
+ ],
13
+ inputSignal: "产品 URL 或产品背景、品牌约束、BP 目的",
14
+ outputSignal: "BP 大纲、逐页图片、来源、QA 和下载包",
15
+ boundarySignal: "市场数据和图片文字需要人工复核",
16
+ },
17
+ guide: {
18
+ heroImageAlt: "产品背景被整理成商业 BP 大纲、图片页面和下载包的视觉图。",
19
+ workspaceHeading: "工具工作台",
20
+ workspaceHint:
21
+ "输入产品官网或手动填写产品背景,Agent 会先返回 BP 页面框架,再按顺序逐页生成图片版 BP。",
22
+ workspaceBadge: "图片版商业 BP",
23
+ outputs: "你会得到什么",
24
+ outputsIntro:
25
+ "结果不是一段商业计划书文本,而是一套可查看、可下载、可继续修改的图片 BP 制作包。",
26
+ outputItems: [
27
+ {
28
+ title: "BP 页面框架",
29
+ body: "先看到页面列表、每页核心观点、信息密度和视觉职责,确认 Agent 正在按叙事结构组织材料。",
30
+ },
31
+ {
32
+ title: "逐页图片结果",
33
+ body: "每生成一页就按顺序展示一页,适合快速检查封面、市场、产品、商业化和邀请页是否连贯。",
34
+ },
35
+ {
36
+ title: "风格方向锁定",
37
+ body: "可以选择 3 个抽象视觉方向之一,也可以不选,让 Agent 根据产品和受众决定视觉系统。",
38
+ },
39
+ {
40
+ title: "来源与 QA",
41
+ body: "市场数据、公开证据、图片文字风险、缺失信息和需要人工复核的地方会单独返回。",
42
+ },
43
+ {
44
+ title: "单页下载",
45
+ body: "每张图片都有独立下载入口,便于替换单页、发给团队复核或放进其他材料。",
46
+ },
47
+ {
48
+ title: "整套打包下载",
49
+ body: "最终结果支持整套 BP 下载,并使用产品名和页面内容命名,而不是随机乱码文件。",
50
+ },
51
+ ],
52
+ pipelineVisualAlt: "BP 大纲、来源、Prompt、QA 和最终图片包的制作流程视觉图。",
53
+ standards: "好的商业 BP 生成器应该具备什么",
54
+ standardsIntro:
55
+ "真正有用的 BP Agent 不能只把模板填满,它需要同时处理叙事、证据、品牌一致性、图片质量和交付规范。",
56
+ standardsItems: [
57
+ {
58
+ title: "先叙事后生图",
59
+ body: "先确定为什么做、谁需要、为什么现在、如何解决和希望谁加入,再进入页面生成。",
60
+ },
61
+ {
62
+ title: "低信息密度",
63
+ body: "一页只讲一个核心判断,内容放不下就拆页,而不是缩小字号或堆卡片。",
64
+ },
65
+ {
66
+ title: "品牌约束优先",
67
+ body: "产品名、Logo、禁用词、旧名称、IP 和视觉规则会被写入 brief,降低风格漂移。",
68
+ },
69
+ {
70
+ title: "证据可追溯",
71
+ body: "市场、趋势和关键数字必须有来源;不确定的事实进入 QA,不会伪装成确定结论。",
72
+ },
73
+ {
74
+ title: "渐进生成",
75
+ body: "先让用户看到框架和当前处理阶段,再按批次生成图片,让等待过程可感知。",
76
+ },
77
+ {
78
+ title: "版本清楚",
79
+ body: "最终文件、contact sheet、outline、sources、QA 和下载包都应该指向同一个权威版本。",
80
+ },
81
+ ],
82
+ boundary: "支持范围、边界和失败恢复",
83
+ boundaryIntro:
84
+ "商业 BP 会影响融资、招募和对外承诺,所以生成结果必须被当作高质量起点,而不是免复核成品。",
85
+ boundaryGroups: [
86
+ {
87
+ title: "适合处理",
88
+ items: [
89
+ "互联网产品、SaaS、AI Agent、开发者工具、消费 App、平台型产品和早期创业项目。",
90
+ "融资 BP、招募 BP、发布材料、商业合作材料和综合型对外介绍材料。",
91
+ "已有官网、产品说明、品牌规则、Logo/IP 参考、用户定位和商业目标的项目。",
92
+ ],
93
+ },
94
+ {
95
+ title: "需要人工复核",
96
+ items: [
97
+ "融资金额、财务预测、市场规模、用户数据、客户案例、竞品结论和法律/合规表述。",
98
+ "图片里的中文文字、数字、来源、Logo、IP、禁用词和旧产品名。",
99
+ "投资人版、招募版、发布版之间的措辞边界和信息披露程度。",
100
+ ],
101
+ },
102
+ {
103
+ title: "失败时怎么恢复",
104
+ items: [
105
+ "如果大纲太泛,补充目标受众、真实功能、当前阶段、差异化和已有数据。",
106
+ "如果图片风格不稳,选择一个风格方向,并写清品牌色、Logo、禁用视觉和参考材料。",
107
+ "如果市场页不可信,补充可引用来源,或要求 Agent 降级为趋势判断而非具体数字。",
108
+ ],
109
+ },
110
+ ],
111
+ useCases: "适用场景",
112
+ useCaseItems: [
113
+ {
114
+ title: "个人开发者融资或招人",
115
+ body: "把产品想法、上线进展和长期愿景整理成投资人、候选人和支持者能理解的材料。",
116
+ },
117
+ {
118
+ title: "早期团队对外沟通",
119
+ body: "快速生成一版可讨论的 BP,用于路演、合作洽谈、内部战略同步和项目介绍。",
120
+ },
121
+ {
122
+ title: "互联网产品发布",
123
+ body: "把产品定位、用户痛点、市场时机和商业化路径打包成更适合传播的图片材料。",
124
+ },
125
+ {
126
+ title: "孵化器或顾问辅导",
127
+ body: "帮助不同基础的团队先拉齐 BP 下限,再集中精力修改证据、故事和关键页面。",
128
+ },
129
+ ],
130
+ faq: "常见问题",
131
+ faqItems: [
132
+ {
133
+ question: "为什么要先生成大纲,再生成图片?",
134
+ answer:
135
+ "BP 的价值首先来自叙事顺序和单页判断。如果直接生图,容易得到漂亮但讲不清楚的页面。",
136
+ },
137
+ {
138
+ question: "可以只输入产品官网吗?",
139
+ answer:
140
+ "可以先用 URL 模式,但如果官网信息太少,结果会在 missingInfo 里提示需要补充目标用户、商业目标、品牌约束或数据来源。",
141
+ },
142
+ {
143
+ question: "风格模板是不是行业分类?",
144
+ answer:
145
+ "不是。这里的风格是更底层的视觉方向,例如叙事感、系统感、市场地图感。它们可用于不同互联网领域,而不是直接标成社交或 SaaS。",
146
+ },
147
+ {
148
+ question: "会生成可编辑 PPT 吗?",
149
+ answer:
150
+ "这一版按图片 BP 实现,不承诺 HTML 或可编辑 PPT。后续可以基于 manifest 和图片页继续扩展导出。",
151
+ },
152
+ {
153
+ question: "图片里的文字可以直接用吗?",
154
+ answer:
155
+ "需要复核。生图模型可能改写文字、数字或标点,市场数据页和中文长句尤其要做人工检查。",
156
+ },
157
+ {
158
+ question: "下载文件怎么命名?",
159
+ answer:
160
+ "Agent 应返回基于产品名、页码和页面主题的文件名,例如 tomako-business-bp-01-cover.png,而不是随机 task id。",
161
+ },
162
+ ],
163
+ ctaTitle: "继续完善商业化材料",
164
+ ctaPrimary: "规划 Product Hunt 发布",
165
+ ctaSecondary: "返回全部工具",
166
+ ctaHint:
167
+ "BP 讲清楚后,可以继续生成发布计划、商店截图、社媒资料和上线素材。",
168
+ },
169
+ widget: {
170
+ urlMode: "输入 URL",
171
+ manualMode: "手动输入",
172
+ productUrlLabel: "产品官网 URL",
173
+ productUrlPlaceholder: "https://your-product.com",
174
+ productContextLabel: "产品背景",
175
+ productContextPlaceholder:
176
+ "描述产品功能、目标用户、当前阶段、商业目标、愿景、已有证据、品牌规则和你希望这份 BP 服务谁。",
177
+ productNameLabel: "产品名称",
178
+ productNamePlaceholder: "例如 Tomako",
179
+ positioningLabel: "一句话定位",
180
+ positioningPlaceholder: "例如 面向个人开发者的 AI 商业化 Agent 平台",
181
+ targetUsersLabel: "目标用户",
182
+ targetUsersPlaceholder: "例如 个人开发者、超级个体、早期创业团队",
183
+ purposeLabel: "BP 目的",
184
+ densityLabel: "信息密度",
185
+ languageLabel: "输出语言",
186
+ styleLabel: "风格方向",
187
+ styleHint: "可左右滑动,也可以不选",
188
+ brandNotesLabel: "品牌、Logo、IP 与视觉规则",
189
+ brandNotesPlaceholder:
190
+ "可以写品牌色、Logo 链接、IP 规则、字体偏好、参考图、希望避免的视觉元素。",
191
+ referenceImagesLabel: "参考图与补充图片",
192
+ referenceImagesHint: "支持 PNG、JPG、WebP,最多 6 张;会压缩后作为 Agent 参考。",
193
+ referenceImagesButton: "上传图片",
194
+ referenceImagesEmpty: "还没有上传参考图",
195
+ referenceImagesPlaceholder: "可以上传 Logo、产品截图、旧 BP、风格参考或竞品截图。",
196
+ referenceImagesCount: "已上传 {count} / {max} 张",
197
+ referenceImageMeta: "{width} x {height} · {size}",
198
+ removeReferenceImage: "移除 {name}",
199
+ mustIncludeLabel: "必须包含",
200
+ mustIncludePlaceholder:
201
+ "例如市场数据、团队优势、某个功能、某个用户场景、指定页面。",
202
+ mustAvoidLabel: "不能出现",
203
+ mustAvoidPlaceholder:
204
+ "例如旧产品名、错误 IP、融资金额、未经确认客户、过度夸张表达。",
205
+ optional: "可选",
206
+ generate: "生成商业 BP",
207
+ submitting: "正在提交请求...",
208
+ running: "正在生成 BP...",
209
+ retry: "重试",
210
+ emptyTitle: "BP 框架和图片页会显示在这里",
211
+ emptyHint:
212
+ "生成后会先看到页面框架和思考过程,随后每张图片按顺序进入结果区。最终支持单页下载和整套打包下载。",
213
+ resultReady: "商业 BP 已生成",
214
+ resultRunning: "Agent 正在生成商业 BP",
215
+ resultFallbackTitle: "商业 BP 制作中",
216
+ resultFallbackSummary:
217
+ "正在整理产品上下文、页面框架、视觉方向和图片生成队列。",
218
+ progressFallback: "正在准备下一组页面",
219
+ outlineTitle: "BP 页面框架",
220
+ slidesTitle: "图片页面",
221
+ downloadAll: "下载整套 BP",
222
+ downloadManifest: "下载 manifest",
223
+ downloadContactSheet: "下载总览图",
224
+ downloadSlide: "下载单页",
225
+ workspaceVisualAlt: "粗略产品 brief 生成有序 BP 图片页和下载包的视觉图。",
226
+ revisionLabel: "让 Agent 修改",
227
+ revisionHint: "写具体修改要求",
228
+ revisionPlaceholder:
229
+ "例如:把市场规模拆成两页,封面更克制,重绘第 6 页,所有文件名加入产品名。",
230
+ sendRevision: "发送修改要求",
231
+ status: {
232
+ PENDING: "排队中",
233
+ STREAMING: "生成中",
234
+ AWAITING_INPUT: "等待结构化结果",
235
+ AWAITING_FINAL: "继续生成图片页",
236
+ SUCCEEDED: "正在完成结果",
237
+ default: "处理中",
238
+ },
239
+ slideStatus: {
240
+ queued: "排队中",
241
+ generating: "生成中",
242
+ ready: "已完成",
243
+ failed: "失败",
244
+ },
245
+ errors: {
246
+ invalid:
247
+ "URL 模式只需要有效产品官网;手动模式请填写真实产品背景、产品名称、定位和目标用户。",
248
+ revision: "发送给 Agent 前,请写清楚具体修改要求。",
249
+ referenceImageType: "仅支持 PNG、JPG 或 WebP 图片。",
250
+ referenceImageSize: "单张图片不能超过 8 MB。",
251
+ referenceImageLarge: "这张图片压缩后仍然过大,请换一张更小的图。",
252
+ referenceImageRead: "图片读取失败,请重新上传。",
253
+ referenceImageLimit: "最多上传 6 张参考图。",
254
+ submit: "请求提交失败。",
255
+ task: "生成任务失败。",
256
+ timeout: "结构化结果没有在限定时间内返回。",
257
+ schema: "Agent 返回的结果不符合商业 BP schema。",
258
+ generic: "商业 BP 生成失败。",
259
+ recover:
260
+ "请检查产品链接或补充产品背景、品牌规则、目标受众和必须包含的信息后重试。",
261
+ },
262
+ copy: {
263
+ purposes: {
264
+ fundraising: "融资",
265
+ recruiting: "招募",
266
+ launch: "发布",
267
+ partnership: "合作",
268
+ strategy: "战略",
269
+ combined: "综合",
270
+ },
271
+ languages: {
272
+ zh: "中文",
273
+ en: "English",
274
+ },
275
+ densities: {
276
+ lean: "精简",
277
+ standard: "标准",
278
+ complete: "完整",
279
+ },
280
+ styles: {
281
+ none: {
282
+ name: "不选风格",
283
+ summary: "让 Agent 根据产品、受众和品牌规则自动选择。",
284
+ },
285
+ signalEditorial: {
286
+ name: "叙事冲击",
287
+ summary: "更强调信念、用户情绪、传播感和大图留白。",
288
+ },
289
+ operatorGrid: {
290
+ name: "系统秩序",
291
+ summary: "更强调流程、指标、产品链路和可执行感。",
292
+ },
293
+ marketAtlas: {
294
+ name: "市场地图",
295
+ summary: "更强调生态、增长、市场证据和商业结构。",
296
+ },
297
+ },
298
+ },
299
+ },
300
+ };
301
+
302
+ export default commercialBpGenerator;
@@ -0,0 +1,217 @@
1
+ const communityFeedbackInbox = {
2
+ meta: {
3
+ title: "社区反馈收件箱",
4
+ displayTitle: "Community Feedback Inbox",
5
+ description: "粘贴 Reddit、Indie Hackers、Product Hunt 或 X 评论,把零散社区反馈整理成痛点、反对意见、竞品线索、功能请求、beta 邀请名单、build-in-public 素材、backlog 和 landing page FAQ。",
6
+ intro: "把发帖后的评论、私信和试用反馈变成一套学习系统:先分类真实用户语言,再决定谁值得邀请 beta、哪些反馈进入 backlog、哪些反对意见应该回到 landing page。",
7
+ category: "用户反馈工具",
8
+ keywords: [
9
+ "community feedback inbox",
10
+ "Reddit product feedback analyzer",
11
+ "build in public feedback organizer",
12
+ "用户反馈分类",
13
+ "社区评论分析",
14
+ ],
15
+ inputSignal: "社区评论 + 产品上下文",
16
+ outputSignal: "反馈分类 + beta 候选 + 内容素材 + FAQ/backlog",
17
+ boundarySignal: "Review 原型;本地启发式分析,不自动抓取或私信用户",
18
+ },
19
+ examples: [
20
+ {
21
+ label: "Reddit 发帖评论",
22
+ input: "产品:帮助独立开发者把社区发布反馈转成 GTM 学习资产。评论包含定价疑问、和 Canny/Notion 的对比、希望支持导出、有人愿意试用 beta。",
23
+ expectedOutput: "输出痛点、反对意见、竞品、功能、定价和文案分类,并给出 beta 邀请名单、build-in-public 素材、backlog 候选和 landing page FAQ。",
24
+ },
25
+ ],
26
+ guide: {
27
+ heroVisualAlt:
28
+ "零散社区评论被整理成反馈分类、beta 候选、内容素材和产品 backlog 的工作台。",
29
+ workspaceHeading: "整理社区评论,生成下一步增长学习资产",
30
+ workspaceHint:
31
+ "粘贴 Reddit、Indie Hackers、Product Hunt、X 或 Discord 评论。这个 review 原型会把反馈分成痛点、反对意见、竞品、功能请求、定价反馈和文案反馈,并输出可复核的下一步。",
32
+ workspaceBadge: "Review 原型",
33
+ workspaceVisualAlt:
34
+ "零散社区反馈从未整理的纸条变成带有信号分类、beta 候选、内容和 backlog 标签的报告。",
35
+ outputs: "你可以得到什么",
36
+ outputItems: [
37
+ {
38
+ title: "反馈分类",
39
+ body: "把评论自动归入痛点、反对意见、竞品、功能请求、定价反馈和文案反馈,附带证据摘录。",
40
+ },
41
+ {
42
+ title: "Beta 邀请名单",
43
+ body: "标记表达明确场景、试用意愿或追问价值的人,并给出可编辑的私信草稿。",
44
+ },
45
+ {
46
+ title: "Build-in-public 素材",
47
+ body: "把高质量评论转成下一篇公开构建帖的角度、hook 和可引用用户语言。",
48
+ },
49
+ {
50
+ title: "Backlog 与 FAQ 候选",
51
+ body: "把重复反馈沉淀成 backlog 假设、landing page FAQ 和反对意见处理材料。",
52
+ },
53
+ ],
54
+ supportHeading: "适合发帖后需要学习,而不只是统计曝光的时候",
55
+ supportVisualAlt:
56
+ "社区评论、私信和试用反馈被整理成清晰的产品学习资产。",
57
+ supportItems: [
58
+ "适合独立开发者、早期 SaaS、开发者工具、AI 工具、开源项目和 build-in-public 创作者。",
59
+ "最适合处理已经发布后的评论、私信、试用反馈、Product Hunt 评论、Reddit 讨论和 Indie Hackers 回复。",
60
+ "它不是一个公开投票板,而是把社区里的真实用户语言整理成下一轮产品和 GTM 决策。",
61
+ "如果评论里有用户名或来源,beta 候选会更有用;如果只粘贴匿名段落,也能先做主题分类。",
62
+ ],
63
+ boundaryHeading: "这个版本故意不做自动抓取和自动私信",
64
+ boundaryVisualAlt:
65
+ "带有人工作业边界和隐私复核标记的社区反馈分析工作台。",
66
+ boundaryItems: [
67
+ "不会连接 Reddit、Indie Hackers、Product Hunt、X 或 Discord API,也不会绕过平台规则抓取内容。",
68
+ "不会自动给用户发私信;beta 邀请只生成候选名单和草稿,最终由你人工判断。",
69
+ "分类是本地启发式分析,不等于正式 AI 研究结论;进入 backlog 前需要复核原评论。",
70
+ "发布 build-in-public 内容前,应删除用户名、隐私信息和任何可能误引用户的细节。",
71
+ ],
72
+ resultUseHeading: "把结果接到 Tomako 的 GTM 工作流",
73
+ resultUseVisualAlt:
74
+ "社区反馈结果流向 build-in-public 帖子、landing page FAQ、beta 邀请和 backlog。",
75
+ resultUseItems: [
76
+ "把内容角度交给 Social Platform Asset Adapter,改写成 X、LinkedIn、Reddit 或 Product Hunt follow-up。",
77
+ "把高信号 beta 候选转成手动 DM 列表,先追问场景,再邀请试用。",
78
+ "把反对意见转成 landing page FAQ 和评论回复,不要只藏在内部笔记。",
79
+ "把重复反馈写成假设、证据数和验收标准,再进入产品 backlog。",
80
+ ],
81
+ whyTomakoHeading: "为什么不只用表格或传统反馈板",
82
+ whyTomakoItems: [
83
+ {
84
+ title: "围绕发帖后的学习闭环",
85
+ body: "传统反馈板重收集和投票;这个工具更关注社区评论如何变成下一篇内容、下一批 beta 用户和下一轮产品验证。",
86
+ },
87
+ {
88
+ title: "保留用户原话",
89
+ body: "结果不是只给标签,而是保留证据摘录,方便回到原评论复核,避免凭感觉定优先级。",
90
+ },
91
+ {
92
+ title: "把反对意见变成资产",
93
+ body: "用户不理解、担心或比较竞品时,这些内容会进入 FAQ、评论回复和 landing page 改写。",
94
+ },
95
+ {
96
+ title: "避免过度自动化",
97
+ body: "社区增长最怕把真实对话变成群发流程;Tomako 只整理线索,私信和产品决策保留人工判断。",
98
+ },
99
+ ],
100
+ standardHeading: "好的社区反馈工具应该帮你判断,而不是替你盲目照做",
101
+ standardVisualAlt:
102
+ "社区反馈被拆成证据、优先级、人工复核和下一步行动的标准卡片。",
103
+ standardItems: [
104
+ "证据:每个分类都应该能回到原评论,而不是只有抽象标签。",
105
+ "克制:功能请求要先合并和验证,不应该一句话就进 roadmap。",
106
+ "可行动:结果应该能直接转成 beta 邀请、FAQ、内容角度或 backlog 假设。",
107
+ "边界:必须说清不自动抓取、不自动私信、不替代用户研究和产品判断。",
108
+ "工作流:社区反馈应该回流到 GTM,而不是停留在一次性曝光数据里。",
109
+ ],
110
+ faq: "常见问题",
111
+ faqItems: [
112
+ {
113
+ question: "这个工具会自动抓取 Reddit 或 Indie Hackers 吗?",
114
+ answer:
115
+ "不会。当前版本只处理你手动粘贴的评论,避免平台规则、登录权限和隐私边界不清的问题。",
116
+ },
117
+ {
118
+ question: "它和 Canny、Productboard、Featurebase 有什么不同?",
119
+ answer:
120
+ "那些工具更偏长期反馈门户、roadmap 和投票。这个工具更轻,专注把发帖后的社区评论转成 GTM 学习资产。",
121
+ },
122
+ {
123
+ question: "分类结果可以直接进入产品 backlog 吗?",
124
+ answer:
125
+ "不建议直接进入。它会给出候选项、证据数和下一步动作,但你仍然要对照原评论和产品策略复核。",
126
+ },
127
+ {
128
+ question: "能用来邀请 beta 用户吗?",
129
+ answer:
130
+ "可以作为候选名单,但最终邀请要人工判断。尤其要避免对所有评论者群发私信。",
131
+ },
132
+ ],
133
+ ctaHint:
134
+ "整理完社区反馈后,可以把单条高质量评论整理成用户访谈记录,或把内容角度改写成不同平台的 follow-up 素材。",
135
+ ctaPrimary: "整理单条用户访谈",
136
+ ctaSecondary: "改写成平台素材",
137
+ },
138
+ widget: {
139
+ formTitle: "反馈 brief",
140
+ formHint:
141
+ "粘贴真实评论,最好保留用户名或来源。输入越具体,beta 候选、FAQ 和 backlog 候选越可用。",
142
+ productNameLabel: "产品名",
143
+ productNamePlaceholder: "Tomako",
144
+ sourceLabel: "主要来源",
145
+ productContextLabel: "产品上下文",
146
+ productContextPlaceholder:
147
+ "Tomako 帮助独立开发者把产品发布、社区反馈和增长动作整理成可执行的 GTM 工作流。",
148
+ commentsLabel: "粘贴评论、私信或试用反馈",
149
+ commentsPlaceholder:
150
+ "@founder42: I like the idea, but I already use Notion and Canny. How is this different?\n\n@maker_jane: Would love export to Linear. I would try the beta if it handles Reddit comments.\n\n匿名用户:价格如果是订阅制我会犹豫,除非它能直接帮我改 landing page。",
151
+ goalLabel: "本轮目标",
152
+ generate: "整理反馈",
153
+ status: {
154
+ idle: "等待评论",
155
+ done: "反馈已整理",
156
+ error: "需要更具体输入",
157
+ },
158
+ previewItems: [
159
+ "评论数",
160
+ "强信号",
161
+ "Beta",
162
+ "主反馈主题会显示在这里",
163
+ "最强证据评论会显示在这里",
164
+ "整理后会给出下一步 GTM 动作",
165
+ ],
166
+ sources: {
167
+ mixed: "混合来源",
168
+ reddit: "Reddit",
169
+ indieHackers: "Indie Hackers",
170
+ hackerNews: "Hacker News",
171
+ productHunt: "Product Hunt",
172
+ x: "X",
173
+ discord: "Discord",
174
+ },
175
+ goals: {
176
+ launchLearning: "发帖后学习",
177
+ betaRecruiting: "邀请 beta 用户",
178
+ roadmap: "整理产品 backlog",
179
+ landingPage: "改 landing page / FAQ",
180
+ },
181
+ errors: {
182
+ validation: {
183
+ title: "先补齐最小反馈 brief",
184
+ body: "需要产品上下文和至少两条较具体的评论,才能整理出有用的分类、beta 候选和下一步动作。",
185
+ },
186
+ weakInput: {
187
+ title: "请粘贴更真实的社区反馈",
188
+ body: "当前输入像占位符、过短文本或只有一条评论。至少粘贴两条评论,并尽量保留用户表达的完整上下文。",
189
+ },
190
+ },
191
+ resultReady: "已生成社区反馈学习报告",
192
+ copied: "已复制",
193
+ copy: "复制 Markdown",
194
+ download: "下载",
195
+ reset: "重置",
196
+ totalComments: "评论数",
197
+ highSignals: "强信号",
198
+ betaCandidates: "Beta 候选",
199
+ categories: "反馈分类",
200
+ signalCount: "{count} 条信号",
201
+ inviteShortlist: "Beta 邀请名单",
202
+ emptyInvite: "暂时没有足够强的 beta 候选。可以补充用户名、试用意愿或具体使用场景。",
203
+ contentAngles: "Build-in-public 素材",
204
+ backlog: "Backlog 候选",
205
+ faq: "Landing page FAQ 候选",
206
+ objections: "反对意见处理",
207
+ emptyObjections: "暂时没有明显反对意见。继续收集不理解、担心或比较竞品的评论会更有价值。",
208
+ reviewChecklist: "缺失信息与人工复核",
209
+ confidence: {
210
+ low: "低证据",
211
+ medium: "中证据",
212
+ high: "高证据",
213
+ },
214
+ },
215
+ } as const;
216
+
217
+ export default communityFeedbackInbox;