@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,234 @@
1
+ const productUiGenerator = {
2
+ meta: {
3
+ title: "AI 產品 UI 生成器",
4
+ description: "輸入產品想法、目標用戶和視覺方向,由在線 Agent 生成一組 App/Web 界面方案、視覺系統、交互邏輯和可導出的 OnePage Prompt。",
5
+ intro: "把粗糙產品構想變成一套能打動人的界面方向。先用高質量 UI 方案驗證 idea,再導出設計規範和 Coding Prompt,交給 AI Coding 工具繼續還原。",
6
+ category: "設計工具",
7
+ keywords: [
8
+ "AI 產品 UI 生成器",
9
+ "AI 界面生成器",
10
+ "產品頁面 UI 生成",
11
+ "UI Prompt 生成器",
12
+ "設計規範生成器",
13
+ ],
14
+ inputSignal: "產品想法、目標用戶、平臺和視覺方向",
15
+ outputSignal: "多屏 UI 方案、視覺系統、交互流和 OnePage Prompt",
16
+ boundarySignal: "生成結果是設計草案,需要人工複核和產品取捨",
17
+ },
18
+ guide: {
19
+ workspaceHeading: "生成產品界面方案",
20
+ workspaceHint:
21
+ "輸入粗略想法、目標用戶和視覺傾向,先生成一組可評審的 App/Web 界面,再導出 OnePage Prompt 給 AI Coding 工具繼續還原。",
22
+ workspaceBadge: "界面方案 + OnePage",
23
+ outputs: "你可以得到什麼",
24
+ outputItems: [
25
+ {
26
+ title: "多屏產品界面方案",
27
+ body:
28
+ "圍繞產品任務生成 3-6 個關鍵屏幕,每個屏幕都有用途、佈局、視覺方向和交互說明。",
29
+ },
30
+ {
31
+ title: "高級視覺系統",
32
+ body:
33
+ "輸出 mood、色彩、字體、組件和動效建議,讓結果不是普通線框圖,而是有審美方向的產品方案。",
34
+ },
35
+ {
36
+ title: "功能與業務 OnePage",
37
+ body:
38
+ "把產品定義、功能詳情、業務需求、用戶場景和複核風險整理成一份可交付文檔。",
39
+ },
40
+ {
41
+ title: "可複製 Coding Prompt",
42
+ body:
43
+ "導出的 Prompt 會描述佈局、組件、狀態、響應式和視覺細節,方便交給 AI Coding 工具復現。",
44
+ },
45
+ ],
46
+ exportHeading: "滿意後,一鍵導出給 AI Coding",
47
+ exportBody:
48
+ "這個工具不只生成一張好看的預覽圖。它會把界面背後的產品上下文、設計理由、功能邏輯和實現提示一起寫進 OnePage,讓後續代碼生成更接近原始設計意圖。",
49
+ exportBullets: [
50
+ "產品定義:這個產品是什麼、服務誰、核心價值是什麼。",
51
+ "功能詳情:每個關鍵功能如何使用、應該出現在哪個界面、有哪些狀態。",
52
+ "業務與需求:用戶場景、業務邏輯、邊界、風險和需要人工複核的地方。",
53
+ "實現提示:組件層級、佈局比例、視覺風格、交互動效和響應式要求。",
54
+ ],
55
+ standardHeading: "好 UI 生成器的標準",
56
+ standardItems: [
57
+ {
58
+ title: "視覺先打動人",
59
+ body:
60
+ "這個工具默認把審美權重放得很高,讓用戶先感受到 idea 的氣質和完成度,再進入產品邏輯評估。",
61
+ },
62
+ {
63
+ title: "邏輯不亂編",
64
+ body:
65
+ "界面結構必須貼合輸入的產品任務、目標用戶、平臺和必備功能,不用漂亮外殼掩蓋需求偏差。",
66
+ },
67
+ {
68
+ title: "結果可復現",
69
+ body:
70
+ "每個屏幕都會寫清佈局、組件、狀態和實現提示,避免只得到難以還原的靈感圖。",
71
+ },
72
+ {
73
+ title: "邊界可複核",
74
+ body:
75
+ "生成結果是設計草案,不替代產品決策、數據真實性、法律合規或生產級可用性檢查。",
76
+ },
77
+ ],
78
+ scopeHeading: "支持範圍和邊界",
79
+ scopeBody:
80
+ "適合早期產品驗證、設計探索、PRD 初稿和 AI Coding 前置上下文整理。它不承諾一次生成生產終稿,也不會替你證明市場真實需求。",
81
+ scopeBullets: [
82
+ "支持 App、Web、桌面工具或混合界面方向。",
83
+ "支持很粗糙的產品想法,但越清楚的目標用戶和核心場景會得到越貼合的方案。",
84
+ "暫不適合直接生成法律、醫療、金融等高風險終稿界面,相關內容需要專業複核。",
85
+ "不要提交客戶隱私、未公開商業秘密、密鑰或其他敏感信息。",
86
+ ],
87
+ useCaseHeading: "用視覺測試 idea",
88
+ useCaseBody:
89
+ "很多產品想法在文檔裡很抽象,但一旦變成真實界面,用戶和團隊會更快判斷它是否有吸引力、是否容易理解、是否值得繼續做。",
90
+ useCaseBullets: [
91
+ "把一句話 idea 變成第一組可討論屏幕。",
92
+ "在寫代碼前確認信息架構、主流程和視覺氣質。",
93
+ "給投資人、設計師、開發者或團隊成員展示更具體的產品想像。",
94
+ ],
95
+ useCases: "適合哪些場景",
96
+ useCaseItems: [
97
+ {
98
+ title: "獨立開發者驗證新產品",
99
+ body: "先生成一組界面和 OnePage,再決定是否進入 AI Coding、原型或 MVP 開發。",
100
+ },
101
+ {
102
+ title: "PM 整理模糊需求",
103
+ body: "把用戶場景、功能優先級和交互結構整理成能和設計/研發討論的材料。",
104
+ },
105
+ {
106
+ title: "設計探索前置",
107
+ body: "快速比較不同平臺和視覺方向,減少一開始就陷入細節稿的試錯成本。",
108
+ },
109
+ {
110
+ title: "AI Coding 提示詞準備",
111
+ body: "導出包含產品、需求、界面和視覺上下文的 Prompt,讓代碼生成工具少猜一點。",
112
+ },
113
+ ],
114
+ faq: "常見問題",
115
+ faqItems: [
116
+ {
117
+ question: "它會直接生成真實可運行代碼嗎?",
118
+ answer:
119
+ "不會。這裡生成的是界面方案、產品上下文和可導出的 Coding Prompt。你可以把導出的 OnePage 丟給 AI Coding 工具繼續實現。",
120
+ },
121
+ {
122
+ question: "只寫一個很粗糙的 idea 可以嗎?",
123
+ answer:
124
+ "可以。工具會基於粗略想法生成第一版方案,並把缺失信息寫進結果。產品名、目標用戶和核心場景越清楚,輸出越貼合。",
125
+ },
126
+ {
127
+ question: "生成結果可以直接交付設計師或開發者嗎?",
128
+ answer:
129
+ "可以作為討論起點和實現提示,但仍建議人工複核業務邏輯、數據狀態、品牌規範、合規邊界和最終交互細節。",
130
+ },
131
+ {
132
+ question: "為什麼不只導出圖片?",
133
+ answer:
134
+ "圖片只能表達表面長相。OnePage 會包含產品定義、功能詳情、業務需求和實現提示,AI Coding 工具才更容易還原出一致的界面。",
135
+ },
136
+ {
137
+ question: "支持移動 App 和 Web 同時生成嗎?",
138
+ answer:
139
+ "支持。平臺選擇為混合界面時,結果會優先給出一組跨端關鍵屏幕,並標註每個屏幕更適合的終端。",
140
+ },
141
+ {
142
+ question: "提交的信息會如何使用?",
143
+ answer:
144
+ "表單信息會作為生成界面方案和 OnePage 的上下文。請不要提交敏感客戶數據、密鑰、機密源碼或未授權內容。",
145
+ },
146
+ ],
147
+ ctaHint: "拿到界面方向後,可以繼續把商業敘事整理成可展示材料。",
148
+ ctaPrimary: "繼續生成商業 BP",
149
+ ctaSecondary: "返回全部工具",
150
+ visualAlt: {
151
+ hero: "AI 產品 UI 生成器首屏視覺,展示粗糙 idea 變成高級產品界面方案。",
152
+ export: "OnePage 導出視覺,展示界面方案被整理成設計規範和 Coding Prompt。",
153
+ scope: "支持範圍視覺,展示 App、Web 和產品需求進入同一套界面方案。",
154
+ useCase: "產品 idea 驗證視覺,展示團隊用界面方案判斷產品是否值得繼續開發。",
155
+ },
156
+ },
157
+ widget: {
158
+ formTitle: "描述你的產品構想",
159
+ formHint: "保持輕量,先給 Agent 足夠判斷產品任務、用戶和視覺方向的信息。",
160
+ productNameLabel: "產品名",
161
+ productNamePlaceholder: "例如 Flowmint,可留空",
162
+ ideaLabel: "產品想法",
163
+ ideaPlaceholder:
164
+ "描述產品做什麼、給誰用、解決什麼問題。例如:一個幫播客創作者把長音頻自動拆成短視頻腳本和發佈日曆的 AI 工作臺。",
165
+ targetUsersLabel: "目標用戶",
166
+ targetUsersPlaceholder: "例如 獨立開發者、播客創作者、B2B 銷售團隊",
167
+ coreScenarioLabel: "核心使用場景",
168
+ coreScenarioPlaceholder: "例如 第一次打開後生成完整項目工作臺",
169
+ platformLabel: "界面平臺",
170
+ toneLabel: "視覺氣質",
171
+ languageLabel: "輸出語言",
172
+ mustIncludeLabel: "必須包含",
173
+ mustIncludePlaceholder: "例如 首頁、項目列表、生成結果、導出按鈕、團隊協作",
174
+ mustAvoidLabel: "不要出現",
175
+ mustAvoidPlaceholder: "例如 不要紫藍漸變、不要卡片堆滿、不要太企業後臺",
176
+ submit: "生成界面方案",
177
+ generating: "正在生成...",
178
+ workspaceAlt: "工作臺右側視覺,展示少量輸入變成多張精美界面方案。",
179
+ workspaceCaption: "少量產品信息就能先生成可評審的界面方向,滿意後再導出完整 OnePage。",
180
+ trustNotes: [
181
+ "結果只從結構化 Agent 寫回讀取,不用本地模板冒充最終方案。",
182
+ "OnePage 包含產品定義、功能詳情、業務需求和 AI Coding Prompt。",
183
+ "生成結果是設計草案,正式實現前仍需要人工複核。",
184
+ ],
185
+ platforms: {
186
+ web: "Web 端",
187
+ mobile: "移動 App",
188
+ desktop: "桌面工具",
189
+ mixed: "混合界面",
190
+ },
191
+ tones: {
192
+ premium: "高級剋制",
193
+ minimal: "極簡清爽",
194
+ playful: "輕盈有趣",
195
+ editorial: "編輯感",
196
+ enterprise: "專業工作臺",
197
+ },
198
+ languages: {
199
+ zh: "中文",
200
+ en: "English",
201
+ },
202
+ status: {
203
+ submitting: "正在創建任務",
204
+ running: "Agent 正在生成方案",
205
+ awaitingResult: "等待結構化結果寫回",
206
+ },
207
+ errors: {
208
+ submit: "提交失敗,請稍後重試。",
209
+ timeout: "暫時沒有讀到結構化結果,請稍後重試或換一段更具體的產品描述。",
210
+ resultInvalid: "結果格式不完整,請重試。",
211
+ },
212
+ errorLabels: {
213
+ ideaMin: "產品想法至少寫 24 個字。",
214
+ placeholder: "請填寫真實產品想法,不要使用 test、demo 或純數字。",
215
+ audience: "請填寫真實目標用戶,或留空。",
216
+ },
217
+ resultLabels: {
218
+ loadingTitle: "正在生成界面方案",
219
+ loadingBody: "Agent 會先理解產品定義,再生成多屏方案、視覺系統和可導出的 OnePage。",
220
+ errorTitle: "沒有生成成功",
221
+ resultEyebrow: "Generated UI package",
222
+ thesis: "設計主張",
223
+ visualSystem: "視覺系統",
224
+ features: "功能詳情",
225
+ requirements: "業務與需求",
226
+ flow: "交互流",
227
+ copy: "複製 OnePage",
228
+ copied: "已複製",
229
+ download: "下載 OnePage",
230
+ },
231
+ },
232
+ };
233
+
234
+ export default productUiGenerator;
@@ -0,0 +1,162 @@
1
+ const redditPainPointFinder = {
2
+ meta: {
3
+ title: "Reddit / X / Hacker News 用戶痛點抓取器",
4
+ displayTitle: "Reddit / X / Hacker News 用戶痛點抓取器",
5
+ description: "輸入一個產品方向,讓雲端 Agent 查找 Reddit、X 和 Hacker News 的公開討論,整理相關社區、高頻抱怨、用戶原話、付費意圖、小功能切口和 landing page 角度。",
6
+ intro: "把一句粗糙方向變成可複核的用戶痛點報告。適合獨立開發者、SaaS 創始人和插件作者在開工前先確認用戶到底在哪裡吐槽、為什麼願意付費、先切哪個小功能。",
7
+ category: "用戶調研工具",
8
+ keywords: [
9
+ "Reddit 用戶痛點抓取器",
10
+ "用戶痛點分析工具",
11
+ "Reddit 用戶調研",
12
+ "Hacker News 用戶痛點",
13
+ "創業 idea 驗證",
14
+ ],
15
+ },
16
+ examples: [
17
+ {
18
+ label: "SaaS 痛點驗證",
19
+ input: "AI customer support tool for Shopify sellers",
20
+ expectedOutput: "相關社區、訂單狀態/物流/客服抱怨、用戶原話、頻率、付費意圖、可切入小功能和 landing page 角度。",
21
+ },
22
+ ],
23
+ widget: {
24
+ directionLabel: "產品方向",
25
+ directionPlaceholder: "例如:AI customer support tool for Shopify sellers",
26
+ sourceMixLabel: "優先來源",
27
+ sourceMix: {
28
+ all: "Reddit + X + HN",
29
+ reddit: "只看 Reddit",
30
+ x: "優先 X",
31
+ hackerNews: "優先 Hacker News",
32
+ redditHn: "Reddit + Hacker News",
33
+ },
34
+ audienceLabel: "目標用戶(可選)",
35
+ audiencePlaceholder: "例如 Shopify 賣家、獨立開發者、客服團隊",
36
+ inputHint:
37
+ "一句方向就夠。Agent 會把它拆成可搜索問題,查公開社區信號,並把薄弱證據寫進報告。",
38
+ submit: "抓取用戶痛點",
39
+ submitting: "提交中…",
40
+ running: "抓取中…",
41
+ emptyTitle: "痛點報告會顯示在這裡",
42
+ emptyHint:
43
+ "提交後會整理相關社區、高頻抱怨、用戶原話、出現頻率、付費意圖、可切入小功能和 landing page 角度。",
44
+ runningTitle: "正在查找公開社區信號",
45
+ runningHint:
46
+ "Agent 正在檢索 Reddit、X、Hacker News 和公開搜索結果,通常需要 2-5 分鐘。",
47
+ progressTitle: "最近進展",
48
+ progressSteps: [
49
+ "已收到方向,正在拆成社區搜索 query。",
50
+ "正在查找相關 subreddit、X 討論、HN thread 和公開抱怨。",
51
+ "正在歸併重複抱怨,篩掉泛泛誇獎和噪音。",
52
+ "正在判斷出現頻率、痛感強度和付費意圖。",
53
+ "正在整理可切入的小功能和 landing page 角度。",
54
+ ],
55
+ progressResultReady: "結構化痛點報告已寫回,正在讀取並校驗結果。",
56
+ status: {
57
+ default: "抓取中",
58
+ PENDING: "排隊中",
59
+ STREAMING: "研究中",
60
+ AWAITING_INPUT: "分析中",
61
+ AWAITING_RESULT: "彙總結果中",
62
+ SUCCEEDED: "即將完成",
63
+ },
64
+ retry: "重試",
65
+ errors: {
66
+ invalid: "請用 12 個字符以上描述真實產品方向,避免 test/demo/佔位內容。",
67
+ submit: "提交失敗,請檢查網絡後重試。",
68
+ task: "社區痛點抓取任務失敗,請稍後重試。",
69
+ timeout: "抓取超時,公開討論可能較分散,請稍後重試。",
70
+ schema: "返回結果格式異常,請重試。",
71
+ },
72
+ analyzeAnother: "分析另一個方向",
73
+ copy: "複製報告",
74
+ copied: "已複製",
75
+ boundaryFallback:
76
+ "以上為基於公開信息的輔助判斷,不代表實時全網覆蓋或商業承諾。請繼續人工複核來源、訪談用戶並測試真實付費。",
77
+ signals: { weak: "弱", mixed: "中等", strong: "強" },
78
+ payment: { low: "低", medium: "中", high: "高", unknown: "未知" },
79
+ confidence: { low: "低", medium: "中", high: "高" },
80
+ report: {
81
+ kicker: "痛點報告",
82
+ confidence: "置信度",
83
+ taskId: "Task ID",
84
+ queries: "搜索 Query",
85
+ frequency: "出現頻率",
86
+ paidIntent: "付費意圖",
87
+ whyItHurts: "為什麼剛需",
88
+ smallFeature: "可切入小功能",
89
+ landingAngle: "Landing page 角度",
90
+ avoidBuilding: "先不要做",
91
+ nextSteps: "下一步調研",
92
+ },
93
+ sections: {
94
+ communities: "相關社區",
95
+ complaints: "高頻抱怨與用戶原話",
96
+ wedges: "可切入的小功能方向",
97
+ next: "避免走彎路",
98
+ },
99
+ },
100
+ guide: {
101
+ visualAlt: {
102
+ hero: "公開社區討論匯入用戶痛點報告的視覺物料",
103
+ workspace: "從一句產品方向到社區痛點報告的視覺物料",
104
+ clusters: "把重複抱怨歸併為痛點主題的視覺物料",
105
+ payment: "用頻率和付費意圖判斷機會優先級的視覺物料",
106
+ angle: "從抱怨切入小功能和 landing page 角度的視覺物料",
107
+ },
108
+ valueKicker: "你會得到什麼",
109
+ valueTitle: "不是“用戶需要更好的工具”,而是具體到哪群人在為什麼抱怨",
110
+ valueItems: [
111
+ "相關社區:列出應該繼續追蹤的 subreddit、X 話題、HN 討論和建議搜索 query。",
112
+ "高頻抱怨:把零散帖子歸併成痛點主題,保留用戶原話或短摘錄,避免只看二手總結。",
113
+ "付費意圖判斷:結合時間成本、當前替代方案、預算線索和重複出現頻率,標出哪些痛點可能值得做。",
114
+ "小功能與落地頁角度:把抱怨轉成獨立開發者可以先做的 narrow wedge,而不是一上來做大而全產品。",
115
+ ],
116
+ standardKicker: "好工具標準",
117
+ standardTitle: "一個靠譜的痛點抓取器,應該幫你少走彎路",
118
+ standardItems: [
119
+ "先找用戶語言:輸出要儘量保留原話、抱怨場景和社區上下文,而不是改寫成諮詢報告腔。",
120
+ "區分頻率和噪音:單條帖子不等於需求,工具必須標註信號強弱和證據缺口。",
121
+ "連接付費動機:真正有價值的結果要指出用戶損失了什麼、現在怎麼繞路、為什麼可能願意付費。",
122
+ "落到可測試切口:每個機會都要能變成小功能、landing page headline 或下一輪訪談問題。",
123
+ ],
124
+ resultKicker: "結果使用",
125
+ resultTitle: "拿到報告後,先做最窄的驗證,不要馬上開工大產品",
126
+ resultGuidanceItems: [
127
+ "優先挑一個頻率強、付費意圖中高、切口足夠窄的抱怨,寫一個 landing page 角度。",
128
+ "把報告裡的用戶原話轉成訪談問題,找 5-10 個目標用戶確認這是不是日常真實痛點。",
129
+ "如果來源少或置信度低,先繼續手動搜索 query,不要因為一個漂亮結論就開始開發。",
130
+ "如果多個社區都重複同一抱怨,可以用小工具、Chrome extension、AI widget 或服務化方案先試水。",
131
+ ],
132
+ faqKicker: "常見問題",
133
+ faqTitle: "使用前需要知道的邊界",
134
+ faqItems: [
135
+ {
136
+ question: "它會抓取私密社群或登錄後的內容嗎?",
137
+ answer:
138
+ "不會。工具只應分析公開、可訪問的討論和搜索結果,不訪問私密、登錄後、刪除或付費牆內容。",
139
+ },
140
+ {
141
+ question: "用戶原話一定是逐字引用嗎?",
142
+ answer:
143
+ "不一定。為了避免誤引和版權問題,報告可能使用短摘錄或保守轉述,並保留來源線索供你複核。",
144
+ },
145
+ {
146
+ question: "出現頻率是精確統計嗎?",
147
+ answer:
148
+ "不是精確全網統計。它是基於當前可見公開信號的弱/中/強判斷,適合決定下一步調研優先級。",
149
+ },
150
+ {
151
+ question: "為什麼特別適合 SaaS、AI tool、插件和 Chrome extension?",
152
+ answer:
153
+ "這些產品常常能從一個具體重複抱怨切入:先解決訂單狀態、導出、通知、同步、審閱等小問題,再驗證是否值得擴展。",
154
+ },
155
+ ],
156
+ ctaHint: "如果某個痛點已經看起來值得做,下一步可以把 idea 做成完整驗證報告或訪談提綱。",
157
+ ctaPrimary: "生成 idea 驗證報告",
158
+ ctaSecondary: "生成用戶訪談提綱",
159
+ },
160
+ } as const;
161
+
162
+ export default redditPainPointFinder;
@@ -0,0 +1,24 @@
1
+ const shared = {
2
+ backToTools: "返回工具",
3
+ breadcrumbTools: "免費 GTM 工具",
4
+ updated: "更新於",
5
+ mcpGuide: "MCP 調用說明",
6
+ toolWorkspace: "工具工作臺",
7
+ toolWorkspaceHint: "輸入信息,查看結果,再根據頁面說明進入下一步。",
8
+ searchIntent: "工具任務",
9
+ readingTime: "閱讀時間",
10
+ keywords: "開始使用",
11
+ inputSignal: "輸入",
12
+ outputSignal: "輸出",
13
+ boundarySignal: "邊界",
14
+ faqHeading: "常見問題",
15
+ types: {
16
+ calculator: "計算器",
17
+ downloader: "下載器",
18
+ generator: "生成器",
19
+ analyzer: "分析器",
20
+ tester: "測試器",
21
+ },
22
+ } as const;
23
+
24
+ export default shared;
@@ -0,0 +1,181 @@
1
+ const socialListeningResearchReport = {
2
+ meta: {
3
+ title: "Reddit / X 社媒調研報告工具",
4
+ displayTitle: "Reddit / X 社媒調研報告工具",
5
+ description: "輸入一個調研問題,讓雲端 Agent 檢索 Reddit 和 X 的公開討論,整理主題、情緒、用戶原話、機會、風險、證據缺口和下一步驗證清單。",
6
+ intro: "把一個模糊調研問題變成可複核的 social listening 報告。適合創始人、產品經理、增長團隊和研究員快速理解 Reddit、X 等公開社區裡真實用戶在討論什麼、反對什麼、期待什麼。",
7
+ category: "用戶調研工具",
8
+ keywords: [
9
+ "Reddit 調研工具",
10
+ "X 分析工具",
11
+ "社媒輿情分析報告",
12
+ "social listening report",
13
+ "Reddit market research",
14
+ ],
15
+ },
16
+ examples: [
17
+ {
18
+ label: "產品機會調研",
19
+ input: "開發者為什麼抱怨現有 AI code review 工具?他們最在意價格、準確率還是工作流集成?",
20
+ expectedOutput: "主題聚類、代表性用戶語言、情緒分佈、機會點、風險、來源線索、證據缺口和下一步驗證清單。",
21
+ },
22
+ ],
23
+ widget: {
24
+ questionLabel: "調研問題",
25
+ questionPlaceholder:
26
+ "例如:開發者為什麼抱怨現有 AI code review 工具?他們最在意價格、準確率還是工作流集成?",
27
+ platformsLabel: "來源範圍",
28
+ platforms: {
29
+ redditX: "Reddit + X",
30
+ reddit: "只看 Reddit",
31
+ x: "只看 X",
32
+ all: "Reddit + X + 公開網頁",
33
+ },
34
+ audienceLabel: "目標人群(可選)",
35
+ audiencePlaceholder: "例如開發者、獨立開發者、產品營銷團隊",
36
+ marketLabel: "目標市場(可選)",
37
+ marketPlaceholder: "例如美國、全球、B2B SaaS",
38
+ inputHint:
39
+ "一句問題就夠。Tomako 會把它拆成公開搜索 query,保留證據缺口,並把結果定位為調研證據,而不是確定結論。",
40
+ submit: "生成調研報告",
41
+ submitting: "提交中...",
42
+ running: "調研中...",
43
+ emptyTitle: "社媒調研報告會顯示在這裡",
44
+ emptyHint:
45
+ "提交後會整理主題聚類、情緒、代表性用戶語言、機會、風險、來源線索、證據缺口和下一步驗證問題。",
46
+ runningTitle: "正在查找公開討論信號",
47
+ runningHint:
48
+ "Agent 正在檢查公開 Reddit、X 和可搜索網頁。完整報告出來前,可能先顯示部分已完成模塊。",
49
+ progressTitle: "最近進展",
50
+ progressSteps: [
51
+ "已收到問題,正在生成公開社區搜索 query。",
52
+ "正在查找 Reddit thread、X post 和可搜索的公開討論。",
53
+ "正在把重複主題和孤立評論、噪音區分開。",
54
+ "正在判斷情緒、證據強弱、機會點和風險。",
55
+ "正在整理包含來源缺口和驗證步驟的多維度報告。",
56
+ ],
57
+ progressResultReady: "結構化報告快照已寫回,正在讀取並校驗。",
58
+ status: {
59
+ default: "調研中",
60
+ PENDING: "排隊中",
61
+ STREAMING: "研究中",
62
+ AWAITING_INPUT: "分析中",
63
+ AWAITING_RESULT: "讀取結果中",
64
+ SUCCEEDED: "即將完成",
65
+ },
66
+ retry: "重試",
67
+ errors: {
68
+ invalid: "請用 15 個字符以上描述真實調研問題,避免 test/demo/佔位內容。",
69
+ submit: "提交失敗,請檢查網絡後重試。",
70
+ task: "社媒調研任務失敗,請稍後重試。",
71
+ timeout: "調研超時,已保留當前部分結果;如果需要完整報告可以重試。",
72
+ schema: "返回結果格式異常,請重試。",
73
+ },
74
+ analyzeAnother: "分析另一個問題",
75
+ copy: "複製報告",
76
+ copied: "已複製",
77
+ boundaryFallback:
78
+ "以上為基於公開信息的輔助報告,不代表實時全量覆蓋或專業市場調研結論。請複核來源,並用訪談或實驗驗證關鍵結論。",
79
+ strength: { weak: "弱", mixed: "中等", strong: "強" },
80
+ sentiment: {
81
+ negative: "負面",
82
+ mixed: "混合",
83
+ positive: "正面",
84
+ polarized: "分化",
85
+ },
86
+ confidence: { low: "低", medium: "中", high: "高" },
87
+ report: {
88
+ kicker: "社媒調研報告",
89
+ partialKicker: "部分報告",
90
+ partialSummary: "第一段報告仍在生成中。",
91
+ confidence: "置信度",
92
+ sections: "已完成模塊",
93
+ sources: "來源",
94
+ taskId: "Task ID",
95
+ inProgress: "生成中",
96
+ sentiment: "情緒",
97
+ evidenceStrength: "證據強度",
98
+ implication: "含義",
99
+ risks: "風險與緩解",
100
+ questions: "待驗證問題",
101
+ missingEvidence: "證據缺口",
102
+ },
103
+ sections: {
104
+ scope: "搜索範圍",
105
+ themes: "主題與用戶語言",
106
+ opportunities: "值得驗證的機會",
107
+ next: "風險與驗證計劃",
108
+ sources: "來源與缺口",
109
+ },
110
+ },
111
+ guide: {
112
+ visualAlt: {
113
+ hero: "公開 Reddit 和 X 討論匯入結構化調研報告的視覺物料",
114
+ workspace: "從一個粗糙問題到社媒調研報告的視覺物料",
115
+ themes: "把社區評論歸併為主題和情緒信號的視覺物料",
116
+ opportunities: "把調研信號轉成機會和驗證步驟的視覺物料",
117
+ boundary: "公開來源和證據缺口被清楚標註的視覺物料",
118
+ },
119
+ valueKicker: "你會得到什麼",
120
+ valueTitle: "一份把主題、來源和不確定性都擺出來的調研報告",
121
+ valueItems: [
122
+ "主題聚類:把 Reddit 和 X 中重複出現的討論模式歸併成可讀主題,而不是丟給你一堆鏈接。",
123
+ "用戶語言證據:保留帶來源線索的短摘錄或保守轉述,方便你回到原始語境複核。",
124
+ "機會與風險圖:說明用戶似乎想要什麼、可能反對什麼、哪些假設下一步必須驗證。",
125
+ "證據缺口:來源少、平臺受限、信號弱、缺少某類人群時,會直接寫進報告而不是假裝完整。",
126
+ ],
127
+ standardKicker: "好報告標準",
128
+ standardTitle: "靠譜的社媒調研報告,不應該把弱證據寫成確定結論",
129
+ standardItems: [
130
+ "來源透明:報告要寫清信號來自哪裡、用了哪些搜索 query,不能只給二手總結。",
131
+ "主題質量:重複模式要和單條評論、玩笑、推廣、純誇獎噪音分開。",
132
+ "可行動:每個結論最好能落到定位角度、產品問題、調研任務或驗證步驟。",
133
+ "邊界清楚:公開平臺限制、私密內容、刪除內容、覆蓋不完整,都要用用戶能理解的話說明。",
134
+ ],
135
+ resultKicker: "結果使用",
136
+ resultTitle: "用報告決定下一步查什麼,而不是跳過驗證",
137
+ resultGuidanceItems: [
138
+ "優先看有多個來源、用戶語言清楚、且能推導出產品或商業含義的主題。",
139
+ "把代表性評論轉成訪談問題、問卷題、landing page 假設或競品檢查清單。",
140
+ "如果報告標註證據弱,先縮小問題繼續搜索或直接問目標用戶,不要馬上改產品方向。",
141
+ "把摘要、風險和來源列表發給團隊,讓大家圍繞同一份證據討論,而不是各看各的截圖。",
142
+ ],
143
+ boundaryKicker: "支持與邊界",
144
+ boundaryTitle: "只看公開信號,證據缺口也是結果的一部分",
145
+ boundaryItems: [
146
+ "支持:粗糙調研問題、產品方向、競品擔憂、用戶異議、Reddit/X 公開討論掃描。",
147
+ "不支持:私密社群、登錄後時間線、刪除內容、付費牆數據、精確市場規模或保證實時全網覆蓋。",
148
+ "失敗恢復:如果結果太薄,可以縮小人群、補充產品類別、指定平臺,或加入目標地區。",
149
+ "結果使用:複製到研究文檔,逐條複核來源,再用訪談、問卷或 landing page 測試驗證強結論。",
150
+ ],
151
+ faqKicker: "常見問題",
152
+ faqTitle: "相信報告前先看邊界",
153
+ faqItems: [
154
+ {
155
+ question: "它會抓取私密 Reddit 社群或登錄後的 X 時間線嗎?",
156
+ answer:
157
+ "不會。工具只應分析公開、可訪問、可搜索的討論頁面;私密、登錄後、刪除、受限或付費牆內容都不在範圍內。",
158
+ },
159
+ {
160
+ question: "報告裡的用戶原話一定是逐字引用嗎?",
161
+ answer:
162
+ "不一定。為了降低誤引和版權風險,報告可能使用很短的直接摘錄或保守轉述,並附上來源標籤供你複核。",
163
+ },
164
+ {
165
+ question: "這份報告能直接當最終市場調研結論嗎?",
166
+ answer:
167
+ "不能。它適合做快速 research brief。強主題仍需要你複核來源、訪談用戶、做問卷或產品實驗驗證。",
168
+ },
169
+ {
170
+ question: "如果第一次報告太泛,應該怎麼輸入?",
171
+ answer:
172
+ "補充目標人群、地區、競品名、產品類別,或者把問題收窄。越寬泛的問題,越容易得到寬泛證據缺口。",
173
+ },
174
+ ],
175
+ ctaHint: "如果某個社區信號已經變成產品方向,可以繼續做痛點抓取或完整社區痛點報告。",
176
+ ctaPrimary: "抓取產品痛點",
177
+ ctaSecondary: "生成社區痛點報告",
178
+ },
179
+ } as const;
180
+
181
+ export default socialListeningResearchReport;
@@ -0,0 +1,22 @@
1
+ import socialProfileKit from "./social-profile-kit";
2
+
3
+ const socialMediaProfileGenerator = {
4
+ meta: {
5
+ title: "社交媒體賬號資料草案生成器",
6
+ description: "輸入個人或品牌定位,生成可預覽、可編輯的 X、Instagram、TikTok、YouTube、LinkedIn、Facebook 等平臺賬號資料草案。",
7
+ intro: "輸入定位,預覽並下載多平臺賬號資料草案。",
8
+ category: "社交媒體工具",
9
+ keywords: [
10
+ "社交媒體資料",
11
+ "賬號資料草案",
12
+ "賬號簡介生成",
13
+ "品牌資料包預覽",
14
+ ],
15
+ inputSignal: "名稱、定位、目標受眾、語氣和平臺偏好",
16
+ outputSignal: "多平臺頭像草案、背景圖草案、簡介、用戶名和資料包下載",
17
+ boundarySignal: "當前結果用於預覽和草案整理,不替代真人頭像授權、商標審查或平臺審核規則",
18
+ },
19
+ guide: socialProfileKit.guide,
20
+ } as const;
21
+
22
+ export default socialMediaProfileGenerator;