@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,230 @@
1
+ const communityPainPointExtractor = {
2
+ meta: {
3
+ title: "社區痛點抓取器",
4
+ displayTitle: "社區痛點抓取器",
5
+ description: "輸入產品方向,從 Reddit、X 和 Hacker News 的公開討論中整理重複抱怨、可核對原話、付費信號與一個可執行的 landing page 測試;證據不足會明確標出。",
6
+ intro: "把一個粗糙方向變成可複核的社區痛點報告。先找公開討論和真實抱怨,再輸出高頻痛點、原話證據、付費意願和可落地的頁面切入角度。",
7
+ category: "用戶調研工具",
8
+ keywords: [
9
+ "社區痛點抓取器",
10
+ "Reddit 痛點分析",
11
+ "用戶痛點調研",
12
+ "Hacker News 用戶研究",
13
+ "landing page 角度",
14
+ ],
15
+ },
16
+ examples: [
17
+ {
18
+ label: "Shopify 客服方向",
19
+ input: "AI customer support tool for Shopify sellers",
20
+ expectedOutput: "相關 Reddit/X/HN 社區、高頻訂單/物流抱怨、用戶原話、付費意願、可切入的小 widget 和 landing page 角度。",
21
+ },
22
+ ],
23
+ widget: {
24
+ directionLabel: "產品方向",
25
+ directionPlaceholder: "例如:AI customer support tool for Shopify sellers",
26
+ targetUsersLabel: "目標用戶(可選)",
27
+ targetUsersPlaceholder: "例如 Shopify 獨立賣家、客服負責人",
28
+ marketLabel: "市場/語言(可選)",
29
+ marketPlaceholder: "例如 北美、英文市場",
30
+ platformLabel: "優先平臺",
31
+ platform: {
32
+ all: "Reddit + X + Hacker News",
33
+ reddit: "Reddit",
34
+ x: "X",
35
+ hackernews: "Hacker News",
36
+ other: "其他公開來源",
37
+ },
38
+ focusLabel: "重點關注(可選)",
39
+ focusPlaceholder: "例如 付費意願、可切入小功能、landing page 文案",
40
+ inputHint:
41
+ "第一輪只需要一個方向。工具只使用公開信息;私密社區、登錄後內容和無法驗證的 quote 會被標成缺失證據。",
42
+ submit: "抓取社區痛點",
43
+ submitting: "提交中…",
44
+ running: "抓取中…",
45
+ emptyTitle: "社區痛點報告會顯示在這裡",
46
+ emptyHint:
47
+ "提交後會查找相關 Reddit、X、Hacker News 公開討論,整理高頻抱怨、原話證據、付費信號和 landing page 角度。",
48
+ runningTitle: "正在研究公開社區信號",
49
+ runningHint:
50
+ "正在先併發收集公開證據,再聚類成痛點報告。多數方向會比完整人工翻社區更快完成。",
51
+ partialTitle: "報告已開始生成",
52
+ partialHint: "已完成的模塊會先顯示出來,後續社區、痛點和頁面角度會繼續追加。",
53
+ progressTitle: "最近進展",
54
+ progressSteps: [
55
+ "已收到方向,正在拆成可檢索的用戶問題。",
56
+ "正在併發收集 Reddit、X、Hacker News 和公開網頁線索。",
57
+ "正在篩選 evidence pack 中的重複抱怨、用戶原話和現有替代方案。",
58
+ "正在判斷出現頻率、痛感強度和潛在付費信號。",
59
+ "正在整理可切入小功能、landing page 角度和驗證實驗。",
60
+ ],
61
+ progressResultReady: "結構化報告已寫回,正在讀取並校驗結果。",
62
+ status: {
63
+ default: "研究中",
64
+ PENDING: "排隊中",
65
+ STREAMING: "研究中",
66
+ AWAITING_INPUT: "分析中",
67
+ AWAITING_RESULT: "彙總結果中",
68
+ PARTIAL_RESULT: "持續生成中",
69
+ SUCCEEDED: "即將完成",
70
+ },
71
+ retry: "重試",
72
+ errors: {
73
+ invalid: "請用 10 個字符以上描述真實產品方向,避免 test/demo/佔位內容。",
74
+ submit: "提交失敗,請檢查網絡後重試。",
75
+ task: "社區研究任務失敗,請稍後重試。",
76
+ timeout: "研究超時,公開信息可能較難獲取,請稍後重試。",
77
+ schema: "返回結果格式異常,請重試。",
78
+ },
79
+ taskId: "任務",
80
+ partialTaskFallback: "生成中",
81
+ partialReportTitle: "社區痛點報告生成中",
82
+ partialBadge: "部分結果,仍在繼續生成",
83
+ moduleLoading: {
84
+ currentPrefix: "當前處理",
85
+ stepLabel: "步驟",
86
+ estimatePrefix: "預計剩餘",
87
+ elapsedPrefix: "已用",
88
+ seconds: "秒",
89
+ overTime: "仍在處理",
90
+ generatedPrefix: "已生成",
91
+ painClusterUnit: "個痛點",
92
+ progressAria: "報告模塊生成進度",
93
+ overallProgressAria: "報告整體生成進度",
94
+ modules: {
95
+ summary: {
96
+ title: "任務摘要",
97
+ hint: "正在把輸入方向整理成報告標題和總覽結論。",
98
+ },
99
+ communities: {
100
+ title: "相關社區",
101
+ hint: "正在篩選最相關的 Reddit、X、Hacker News 和公開討論來源。",
102
+ },
103
+ paidIntent: {
104
+ title: "付費意願",
105
+ hint: "正在區分預算信號、價格阻力、替代方案和購買語氣。",
106
+ },
107
+ entryFeatures: {
108
+ title: "切入功能",
109
+ hint: "正在把痛點壓縮成能先驗證的小功能切口。",
110
+ },
111
+ painClusters: {
112
+ title: "高頻痛點",
113
+ hint: "正在追加下一個高頻痛點卡片、用戶原話和可落地角度。",
114
+ },
115
+ landing: {
116
+ title: "Landing page 角度",
117
+ hint: "正在把最強痛點轉成首屏承諾、目標人群和 CTA。",
118
+ },
119
+ experiments: {
120
+ title: "驗證實驗",
121
+ hint: "正在整理下一步可以低成本驗證的渠道、方法和指標。",
122
+ },
123
+ sources: {
124
+ title: "公開來源",
125
+ hint: "正在收攏來源鏈接、缺失證據和公開信息邊界。",
126
+ },
127
+ },
128
+ },
129
+ copyReport: "複製報告",
130
+ analyzeAnother: "分析另一個方向",
131
+ visit: "查看來源",
132
+ emptyList: "暫無明確公開信號",
133
+ paidIntentSignal: "付費信號",
134
+ paidIntentObjection: "付費阻力",
135
+ frequencyLabel: "頻率",
136
+ severityLabel: "痛感",
137
+ userQuotes: "用戶原話",
138
+ microFeature: "可切入小功能",
139
+ landingAngle: "Landing page 角度",
140
+ paySignal: "付費意願判斷",
141
+ missingEvidence: "仍缺的證據",
142
+ disclaimerFallback:
143
+ "以上為基於公開信息的輔助用戶研究,不構成市場規模、收入或成功承諾。請用訪談、落地頁測試和真實成交繼續驗證。",
144
+ frequency: { low: "低", medium: "中", high: "高" },
145
+ severity: { low: "低", medium: "中", high: "高" },
146
+ confidence: { low: "低置信", medium: "中置信", high: "高置信" },
147
+ sections: {
148
+ communities: "相關社區",
149
+ paidIntent: "付費意願",
150
+ entryFeatures: "切入功能",
151
+ painClusters: "高頻痛點 cluster",
152
+ landing: "Landing page 角度",
153
+ experiments: "驗證實驗",
154
+ sources: "公開來源",
155
+ },
156
+ },
157
+ guide: {
158
+ workspaceHeading: "找到使用者在公開社群反覆提到的痛點",
159
+ workspaceHint: "輸入產品方向,獲得公開討論、可複核證據、付費線索和下一步最小測試。",
160
+ workspaceBadge: "社群痛點調研",
161
+ visualAlt: {
162
+ hero: "社區討論信號匯入痛點報告包的視覺物料",
163
+ workspace: "粗糙產品方向轉成痛點、原話和角度的視覺物料",
164
+ value: "社區抱怨聚類為機會地圖的視覺物料",
165
+ boundary: "公開來源、用戶原話和置信度邊界的視覺物料",
166
+ useCase: "痛點報告轉成小功能和 landing page 測試的視覺物料",
167
+ },
168
+ valueKicker: "你會得到什麼",
169
+ valueTitle: "不是一句“用戶需要更好體驗”,而是可驗證的社區證據",
170
+ valueItems: [
171
+ "相關社區清單:先告訴你該看哪些 subreddit、X 討論和 HN 線索,而不是讓你自己翻半天。",
172
+ "高頻抱怨和原話:按重複程度、痛感和平臺來源整理,讓你看到用戶怎麼說這個問題。",
173
+ "付費意願判斷:把預算、替代方案、價格抱怨和購買語氣分開,不把熱鬧當成願意付費。",
174
+ "切入功能和頁面角度:把痛點轉成小 widget、首屏承諾、CTA 和下一輪驗證實驗。",
175
+ ],
176
+ standardKicker: "好工具標準",
177
+ standardTitle: "一個靠譜的痛點抓取工具要先證明抱怨重複出現",
178
+ standardItems: [
179
+ "來源要具體:報告必須能指出社區、帖子或公開搜索線索,不能只給泛泛總結。",
180
+ "原話要可複核:能引用就給短 quote 和來源;不能驗證就改成 evidence note,不偽裝成原話。",
181
+ "頻率要分層:區分偶發吐槽、反覆抱怨和高痛感問題,避免為少數聲音過度設計。",
182
+ "結果要能行動:最終要落到切入功能、landing page 角度和驗證實驗,而不是停在情緒總結。",
183
+ ],
184
+ boundaryKicker: "支持與邊界",
185
+ boundaryTitle: "只研究公開信號,缺證據會明確標出來",
186
+ boundaryItems: [
187
+ "支持 Reddit、X、Hacker News 和公開網頁搜索線索;不同平臺可訪問性會影響結果完整度。",
188
+ "不訪問私密、登錄後、刪除、付費牆或受權限限制的內容;平臺規則和用戶隱私需要你自行確認。",
189
+ "出現頻率是研究判斷,不是精確統計;報告會用 low / medium / high 表示相對強弱。",
190
+ "如果公開 quote 不足,工具會列出缺失證據和下一步訪談問題,而不是編造看起來漂亮的結論。",
191
+ ],
192
+ resultKicker: "結果使用",
193
+ resultTitle: "拿到報告後,先做最小切入和頁面測試",
194
+ resultGuidanceItems: [
195
+ "先選一個高頻、高痛感且能用小功能解決的 cluster,不要一次覆蓋所有抱怨。",
196
+ "把用戶原話改寫成 landing page 首屏承諾,再用來源和場景證明它不是團隊自嗨。",
197
+ "如果付費信號弱,先做訪談、等候名單或人工服務交付,不急著做完整 SaaS。",
198
+ "如果某個社區反覆出現同一抱怨,優先用小 widget、Chrome extension 或插件測試解決意願。",
199
+ ],
200
+ faqKicker: "常見問題",
201
+ faqTitle: "社群痛點調研常見問題",
202
+ faqItems: [
203
+ {
204
+ question: "這個工具會自動翻完整個 Reddit、X 和 Hacker News 嗎?",
205
+ answer:
206
+ "不會承諾全量抓取。它會研究公開可搜索的社區、帖子和網頁線索,並在來源不足時標註缺失證據。",
207
+ },
208
+ {
209
+ question: "用戶原話一定是真實 quote 嗎?",
210
+ answer:
211
+ "報告要求可驗證 quote 才作為原話展示,並儘量帶來源鏈接。無法驗證的內容應該被寫成證據備註,而不是直接引號引用。",
212
+ },
213
+ {
214
+ question: "付費意願判斷可靠嗎?",
215
+ answer:
216
+ "它是方向性判斷,會看預算語氣、替代方案、價格抱怨和現有付費工具。最終仍需要落地頁、訪談或真實支付驗證。",
217
+ },
218
+ {
219
+ question: "結果可以直接寫進 landing page 嗎?",
220
+ answer:
221
+ "可以作為首屏角度、功能切口和 CTA 草案,但建議保留人工複核,避免把未經驗證的 quote、數量或平臺結論寫成確定事實。",
222
+ },
223
+ ],
224
+ ctaHint: "如果痛點方向看起來強,下一步可以驗證整個創業 idea 或補一份訪談提綱。",
225
+ ctaPrimary: "驗證創業 idea",
226
+ ctaSecondary: "生成用戶訪談提綱",
227
+ },
228
+ } as const;
229
+
230
+ export default communityPainPointExtractor;
@@ -0,0 +1,200 @@
1
+ const communityPostRiskChecker = {
2
+ meta: {
3
+ title: "Community Post Risk Checker",
4
+ displayTitle: "Community Post Risk Checker",
5
+ description: "粘貼一篇 Reddit、r/SaaS、r/indiehackers 或 Indie Hackers 草稿,檢查標題廣告感、CTA 時機、真實過程、自我推廣段落和社區語氣風險。",
6
+ intro: "在發佈前先做一次社區風險體檢:哪些地方像廣告,CTA 應該放正文、評論區還是暫時不放,哪些段落需要補真實過程和透明身份。",
7
+ category: "社區增長工具",
8
+ keywords: [
9
+ "community post risk checker",
10
+ "Reddit self promotion checker",
11
+ "r/SaaS post review",
12
+ "indie hackers post checker",
13
+ "社區帖子廣告風險檢測",
14
+ ],
15
+ inputSignal: "社區帖子標題 + 正文草稿 + 目標社區 + CTA 計劃",
16
+ outputSignal: "風險分數 + 段落標註 + CTA 建議 + 重寫清單",
17
+ boundarySignal: "公開啟發式工具;降低廣告感和 self-promotion 風險,不保證任何平臺審核結果",
18
+ },
19
+ examples: [
20
+ {
21
+ label: "r/SaaS 草稿",
22
+ input: "標題:We launched an AI tool that helps SaaS founders get more users. 正文裡包含產品介紹、註冊鏈接和請求反饋。",
23
+ expectedOutput: "指出標題賣點過強、CTA 太早、正文缺少真實過程,並建議把鏈接移到評論區或等別人追問。",
24
+ },
25
+ ],
26
+ guide: {
27
+ heroVisualAlt: "帶有標題、CTA 和自我推廣風險標註的社區帖子草稿",
28
+ workspaceBadge: "公開 SEO 工具",
29
+ workspaceHeading: "檢查社區帖是否讀起來像廣告",
30
+ workspaceHint:
31
+ "粘貼你從任何地方生成或自己寫的草稿。工具會給出推廣風險分、標出危險段落,並建議 CTA 應該放正文、評論區,還是暫時不放。",
32
+ workspaceVisualAlt: "展示帖子草稿和審核風險標註的工作區界面",
33
+ outputs: "工具會輸出什麼",
34
+ outputItems: [
35
+ {
36
+ title: "推廣風險分",
37
+ body: "從標題廣告感、CTA 時機、真實過程、社區語氣、自我推廣和身份透明度六個維度給出 0-100 分。",
38
+ },
39
+ {
40
+ title: "段落風險標註",
41
+ body: "指出正文裡哪些段落可能被社區讀成 self-promotion、過早 CTA 或產品營銷。",
42
+ },
43
+ {
44
+ title: "CTA 放置建議",
45
+ body: "建議正文不放、放評論區、放正文末尾,或只有別人追問時再給鏈接。",
46
+ },
47
+ {
48
+ title: "修改清單",
49
+ body: "給出具體改法,讓帖子更像真實創業者覆盤,而不是產品公告。",
50
+ },
51
+ ],
52
+ useCaseHeading: "適合發 Reddit 和 Indie Hackers 前使用",
53
+ useCaseVisualAlt: "帶有安全 CTA 和真實過程證據的社區帖子準備流程",
54
+ useCaseItems: [
55
+ "檢查 r/SaaS、r/indiehackers、Indie Hackers、創始人論壇和垂直小社區草稿。",
56
+ "提前發現最常見問題:你腦子裡覺得是在分享,但讀者眼裡像發佈公告。",
57
+ "把帖子拉回真實過程:試過什麼、哪裡失敗、後來怎麼改、到底想問什麼。",
58
+ "判斷鏈接應該放正文、首條評論、回覆線程,還是完全不放。",
59
+ ],
60
+ boundaryHeading: "它降低風險,但不保證過審",
61
+ boundaryVisualAlt: "從草稿檢查到修改發佈的平臺審核邊界流程",
62
+ boundaryItems: [
63
+ "這是啟發式發佈前檢查,不是 Reddit 或 Indie Hackers 的審核引擎。",
64
+ "它不應該被包裝成繞過平臺規則或隱藏商業意圖的工具。",
65
+ "Tomako 內部最好的體驗仍然是自動化:生成給用戶前就應該通過類似檢查。",
66
+ "公開工具服務的是外部草稿、競品文案和已經在別處寫好內容的創始人。",
67
+ ],
68
+ seoHeading: "為什麼它適合做 SEO 獲客頁",
69
+ seoVisualAlt: "包含標題、CTA、過程、語氣和透明度檢查的風險報告",
70
+ seoItems: [
71
+ "搜索意圖很明確:用戶已經擔心自己的帖子會不會像 self-promotion。",
72
+ "工具能立刻給價值,不要求用戶先理解完整 Tomako 工作臺。",
73
+ "它自然把公開流量引到 Tomako 的社區發帖和 build-in-public 工作流。",
74
+ "它比自動發帖更可信,因為它幫助用戶尊重社區規範,而不是批量發佈。",
75
+ ],
76
+ whyTomakoHeading: "為什麼 Tomako 應該做這個",
77
+ whyTomakoItems: [
78
+ {
79
+ title: "更接近真實分發難點",
80
+ body: "北美創始人社區的失敗點通常不是寫不出來,而是寫出來像在索取注意力。",
81
+ },
82
+ {
83
+ title: "可內化為質量門",
84
+ body: "同一套 rubric 可以成為隱藏生成門,讓 Tomako 默認輸出更安全的草稿。",
85
+ },
86
+ {
87
+ title: "建立公開信任",
88
+ body: "在要求用戶生成帖子前,先證明 Tomako 理解社區禮儀。",
89
+ },
90
+ {
91
+ title: "SEO 切入清晰",
92
+ body: "Reddit self-promotion、post review、community posting 相關搜索都有直接創始人意圖。",
93
+ },
94
+ ],
95
+ standardHeading: "判斷標準",
96
+ standardVisualAlt: "包含標題廣告感、早期 CTA、過程缺失和身份說明的檢查清單",
97
+ standardItems: [
98
+ "一篇好帖子即使刪掉產品名和鏈接,仍然對社區有用。",
99
+ "安全 CTA 通常靠後、放評論區,或只有別人追問時出現。",
100
+ "可信的創始人帖子會包含不確定性、過程、限制和一個具體問題。",
101
+ "透明的帖子會在請求關注前說明自己與產品的關係。",
102
+ ],
103
+ faq: "常見問題",
104
+ faqItems: [
105
+ {
106
+ question: "它能保證 Reddit 不刪帖嗎?",
107
+ answer:
108
+ "不能。它只是基於常見社區信號做發佈前風險檢查,最終仍取決於具體社區規則和版主判斷。",
109
+ },
110
+ {
111
+ question: "這個能力也應該在 Tomako 生成器內部嗎?",
112
+ answer:
113
+ "應該。公開工具適合外部草稿和 SEO 獲客;Tomako 自己生成的帖子,應該在輸出前自動過類似質量門。",
114
+ },
115
+ {
116
+ question: "為什麼要單獨檢查 CTA 位置?",
117
+ answer:
118
+ "一篇真實覆盤可能因為註冊鏈接出現太早,瞬間被讀成 self-promotion。位置會改變讀者對意圖的判斷。",
119
+ },
120
+ {
121
+ question: "支持中文草稿嗎?",
122
+ answer:
123
+ "支持。界面跟隨當前語言,啟發式檢查也包含中文和英文的推廣信號。",
124
+ },
125
+ ],
126
+ ctaHint:
127
+ "先用工具檢查已有草稿,再根據報告生成更安全的 build-in-public 內容。",
128
+ ctaPrimary: "生成 build-in-public 故事",
129
+ ctaSecondary: "整理社區反饋",
130
+ },
131
+ widget: {
132
+ formTitle: "發佈前風險檢查",
133
+ formHint:
134
+ "檢查標題廣告感、過早 CTA、真實過程缺失、Reddit 風格 self-promotion 信號和身份說明問題。",
135
+ titleLabel: "帖子標題",
136
+ titlePlaceholder: "例如:我做了一個給 SaaS 創始人用的 AI 工具,想聽反饋",
137
+ communityLabel: "目標社區",
138
+ goalLabel: "發帖目的",
139
+ ctaLabel: "CTA 計劃",
140
+ bodyLabel: "帖子正文",
141
+ bodyPlaceholder:
142
+ "把完整社區帖草稿粘貼到這裡。請保留鏈接、請求、產品上下文和結尾,就像你真實準備發佈的版本。",
143
+ checkButton: "檢查風險",
144
+ resetButton: "重置",
145
+ copyButton: "複製報告",
146
+ copiedButton: "已複製",
147
+ downloadButton: "下載",
148
+ emptyTitle: "風險報告會顯示在這裡",
149
+ emptyBody: "請粘貼有足夠上下文的真實草稿。過短樣例和佔位文本會被拒絕。",
150
+ flaggedHeading: "可能被讀成 self-promotion 的段落",
151
+ noFlags: "本次沒有段落超過風險閾值。發佈前仍建議核對目標社區規則。",
152
+ ctaAdviceHeading: "CTA 建議",
153
+ revisionHeading: "修改清單",
154
+ paragraphLabel: "第 {index} 段",
155
+ status: {
156
+ idle: "等待草稿",
157
+ error: "需要真實草稿",
158
+ done: "檢查完成",
159
+ },
160
+ errors: {
161
+ validation: "請補充真實標題和正文。正文需要足夠長,才能判斷上下文和 CTA 位置。",
162
+ weakInput: "這看起來太短或像佔位文本。請粘貼你真實準備發佈的帖子草稿。",
163
+ },
164
+ preview: [
165
+ "風險",
166
+ "標註",
167
+ "段落",
168
+ "CTA 建議會顯示在這裡",
169
+ "分析後會顯示最重要的修改方向。",
170
+ "工具檢查推廣風險,不保證平臺審核結果。",
171
+ ],
172
+ riskLevels: {
173
+ low: "低風險",
174
+ medium: "中風險",
175
+ high: "高風險",
176
+ },
177
+ communities: {
178
+ redditSaas: "r/SaaS",
179
+ redditIndieHackers: "r/indiehackers",
180
+ indieHackers: "Indie Hackers",
181
+ other: "其他社區",
182
+ },
183
+ goals: {
184
+ askFeedback: "請求反饋",
185
+ shareLearning: "分享經驗",
186
+ launchUpdate: "發佈更新",
187
+ findBeta: "尋找 beta 用戶",
188
+ askAdvice: "請教建議",
189
+ },
190
+ ctaPlans: {
191
+ none: "不放 CTA",
192
+ body: "正文裡放 CTA",
193
+ comment: "評論區放 CTA",
194
+ onlyIfAsked: "被問到再發",
195
+ unsure: "還不確定",
196
+ },
197
+ },
198
+ } as const;
199
+
200
+ export default communityPostRiskChecker;
@@ -0,0 +1,192 @@
1
+ const competitorAnalysis = {
2
+ meta: {
3
+ title: "競品分析工具",
4
+ description: "輸入一個競品的網址,雲端 Agent 調研公開信息,輸出結構化的競品檔案:產品概覽、流量與增長、業務規模、團隊與融資,並附來源和可信度。",
5
+ intro: "把一個競品 URL 變成一頁看懂的競品檔案。基於公開網頁和檢索的估算,每個維度都標註可信度,幫助你做定位、增長和競爭決策。",
6
+ category: "市場調研工具",
7
+ keywords: [
8
+ "競品分析工具",
9
+ "競品分析",
10
+ "競品調研",
11
+ "競品流量分析",
12
+ "競品融資查詢",
13
+ ],
14
+ },
15
+ examples: [
16
+ {
17
+ label: "已上線 SaaS 競品",
18
+ input: "競品 URL https://linear.app",
19
+ expectedOutput: "產品概覽、流量量級與趨勢、定價與規模估算、創始團隊、融資輪次、來源鏈接,以及每個維度的可信度。",
20
+ },
21
+ {
22
+ label: "帶關注點的競品",
23
+ input: "競品 URL https://www.notion.so,備註 關注定價與團隊規模",
24
+ expectedOutput: "圍繞定價與團隊規模重點輸出,並對缺失數據降低可信度而非編造。",
25
+ },
26
+ ],
27
+ widget: {
28
+ urlLabel: "競品網址",
29
+ urlPlaceholder: "https://competitor.com",
30
+ nameLabel: "競品名稱(可選)",
31
+ namePlaceholder: "例如 Linear",
32
+ notesLabel: "關注點(可選)",
33
+ notesPlaceholder: "想重點了解什麼?例如定價、團隊規模、增長渠道。",
34
+ inputHint: "僅基於公開信息調研,請填寫競品的公開官網地址。",
35
+ submit: "開始分析",
36
+ submitting: "提交中…",
37
+ running: "調研中…",
38
+ emptyTitle: "競品檔案會顯示在這裡",
39
+ emptyHint: "輸入一個競品網址,雲端 Agent 會調研公開信息並生成結構化檔案。",
40
+ runningTitle: "正在調研這個競品",
41
+ runningHint: "Agent 正在讀取官網並檢索公開信號,整理流量、規模、團隊和融資。通常需要 1-3 分鐘。",
42
+ status: {
43
+ default: "調研中",
44
+ PENDING: "排隊中",
45
+ STREAMING: "研究中",
46
+ AWAITING_INPUT: "分析中",
47
+ AWAITING_RESULT: "彙總結果中",
48
+ SUCCEEDED: "即將完成",
49
+ },
50
+ retry: "重試",
51
+ errors: {
52
+ invalidUrl: "請輸入有效的競品網址(含 https://)。",
53
+ submit: "提交失敗,請檢查網絡後重試。",
54
+ task: "調研任務失敗,請稍後重試。",
55
+ timeout: "調研超時,競品信息可能較難獲取,請稍後重試。",
56
+ schema: "返回結果格式異常,請重試。",
57
+ generic: "出現問題,請重試。",
58
+ },
59
+ noData: "暫無公開數據",
60
+ unknownCompetitor: "未識別競品",
61
+ visitSite: "訪問官網",
62
+ analyzeAnother: "分析另一個競品",
63
+ disclaimerFallback:
64
+ "以上為基於公開信息的估算,可能不完整或滯後,非官方實時數據,請結合多方來源判斷。",
65
+ confidence: {
66
+ label: "可信度",
67
+ low: "低",
68
+ medium: "中",
69
+ high: "高",
70
+ },
71
+ sections: {
72
+ overview: "產品概覽",
73
+ traffic: "流量與增長",
74
+ businessScale: "業務規模",
75
+ team: "團隊",
76
+ funding: "融資",
77
+ positioning: "定位與機會",
78
+ sources: "信息來源",
79
+ },
80
+ overview: {
81
+ category: "品類",
82
+ businessModel: "商業模式",
83
+ founded: "成立時間",
84
+ hq: "總部",
85
+ },
86
+ traffic: {
87
+ monthlyVisits: "月訪問量(估算)",
88
+ trend: "增長趨勢",
89
+ trendTitle: "近期流量趨勢",
90
+ channels: "流量渠道",
91
+ geographies: "主要地區",
92
+ trendLabels: {
93
+ growing: "上升",
94
+ flat: "平穩",
95
+ declining: "下降",
96
+ unknown: "未知",
97
+ },
98
+ },
99
+ businessScale: {
100
+ pricing: "定價模式",
101
+ priceRange: "價格區間",
102
+ revenue: "營收(估算)",
103
+ employees: "員工規模",
104
+ segments: "目標客戶",
105
+ customers: "代表客戶",
106
+ },
107
+ team: {
108
+ teamSize: "團隊規模",
109
+ founders: "創始團隊",
110
+ keyPeople: "核心成員",
111
+ },
112
+ funding: {
113
+ totalRaised: "累計融資",
114
+ stage: "最新輪次",
115
+ amount: "金額",
116
+ date: "時間",
117
+ leadInvestors: "領投方",
118
+ investors: "投資方",
119
+ },
120
+ positioning: {
121
+ strengths: "優勢",
122
+ weaknesses: "短板",
123
+ opportunities: "你的切入機會",
124
+ },
125
+ },
126
+ guide: {
127
+ visualAlt: {
128
+ hero: "競品檔案報告預覽(配圖待補)",
129
+ howToUse: "競品分析使用流程示意(配圖待補)",
130
+ result: "競品檔案結果解讀示意(配圖待補)",
131
+ },
132
+ howToUseKicker: "使用流程",
133
+ howToUse: "如何分析一個競品",
134
+ howToUseSteps: [
135
+ "粘貼競品的公開官網網址,可選填競品名稱和你重點關注的維度。",
136
+ "提交後,雲端 Agent 會讀取官網並檢索公開信號,整理流量、規模、團隊和融資。",
137
+ "結果以結構化檔案返回:每個維度都帶可信度,數據缺失時降級而非編造。",
138
+ "先看概覽和流量趨勢,再把“定位與機會”轉成你的定位、定價或渠道假設。",
139
+ ],
140
+ runtimeNote:
141
+ "調研由雲端 Agent 完成,僅基於公開網頁和檢索的估算。頁面只渲染結構化結果,不提供本地模板兜底。",
142
+ resultKicker: "結果解讀",
143
+ resultGuidance: "如何看懂競品檔案",
144
+ guidanceBullets: [
145
+ "可信度標籤決定權重:low 僅作線索,medium 可參考,high 才適合作為決策依據。",
146
+ "流量趨勢比絕對數字更重要——上升說明在搶佔心智,下降可能是切入窗口。",
147
+ "業務規模和融資幫你判斷對手的資源厚度,以及你能否在細分人群上錯位競爭。",
148
+ "“你的切入機會”是行動項:落到首頁定位、定價策略、關鍵功能或首發渠道上。",
149
+ ],
150
+ useCasesKicker: "適用場景",
151
+ useCases: "適合的場景",
152
+ useCasesIntro: "把一個競品 URL 變成可執行的競爭情報,而不是零散搜索結果的堆砌。",
153
+ useCaseBullets: [
154
+ "進入新賽道前,快速摸清頭部競品的規模、資源和增長態勢。",
155
+ "重寫官網、定價頁或冷啟動文案前,先看清對手怎麼定位、面向誰。",
156
+ "做競品頁、alternative 頁或 vs 頁之前,確認真實的比較對象和差異點。",
157
+ ],
158
+ faqKicker: "常見問題",
159
+ faq: "常見問題",
160
+ faqItems: [
161
+ {
162
+ question: "數據是真實的嗎?",
163
+ answer:
164
+ "是基於公開網頁和檢索的估算,不是官方實時數據。流量、營收、融資等可能滯後或缺失,每個維度都標註了可信度。",
165
+ },
166
+ {
167
+ question: "需要填什麼?",
168
+ answer: "只需競品的公開官網網址;可選填名稱和你關注的維度,讓結果更聚焦。",
169
+ },
170
+ {
171
+ question: "會處理私有或登錄後的頁面嗎?",
172
+ answer: "不會。Agent 只讀取公開頁面和公開檢索結果,不抓取私有、登錄或付費牆後的內容。",
173
+ },
174
+ {
175
+ question: "拿到結果後該做什麼?",
176
+ answer:
177
+ "用“定位與機會”裡的行動項,去調整你的定位、定價、關鍵功能或首發渠道,並結合多方來源複核高影響決策。",
178
+ },
179
+ ],
180
+ faqBoundaryTitle: "能力邊界",
181
+ faqBoundaryBullets: [
182
+ "僅公開信息的估算,非官方實時數據。",
183
+ "冷門或信息稀少的競品,部分維度可能為空。",
184
+ "高影響決策請結合多方來源人工複核。",
185
+ ],
186
+ ctaHint: "拿到競品檔案後,下一步把它轉成你的上市準備。",
187
+ ctaPrimary: "去做 GTM 準備清單",
188
+ ctaSecondary: "查看全部工具",
189
+ },
190
+ } as const;
191
+
192
+ export default competitorAnalysis;