@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.
- package/README.md +12 -0
- package/package.json +629 -0
- package/src/assets/icons/brands/social/bluesky-icon.tsx +9 -0
- package/src/assets/icons/brands/social/facebook-icon.tsx +9 -0
- package/src/assets/icons/brands/social/index.ts +8 -0
- package/src/assets/icons/brands/social/instagram-icon.tsx +9 -0
- package/src/assets/icons/brands/social/linkedin-icon.tsx +9 -0
- package/src/assets/icons/brands/social/threads-icon.tsx +9 -0
- package/src/assets/icons/brands/social/tiktok-icon.tsx +10 -0
- package/src/assets/icons/brands/social/x-icon.tsx +9 -0
- package/src/assets/icons/brands/social/youtube-icon.tsx +9 -0
- package/src/assets/icons/social-profile/facebook-icon.tsx +12 -0
- package/src/assets/icons/social-profile/index.ts +29 -0
- package/src/assets/icons/social-profile/instagram-icon.tsx +18 -0
- package/src/assets/icons/social-profile/linkedin-icon.tsx +12 -0
- package/src/assets/icons/social-profile/tiktok-icon.tsx +12 -0
- package/src/assets/icons/social-profile/x-icon.tsx +13 -0
- package/src/assets/icons/social-profile/youtube-icon.tsx +12 -0
- package/src/components/tools/engine/form-builder.tsx +219 -0
- package/src/components/tools/engine/package-widget-loader.tsx +38 -0
- package/src/components/tools/engine/package-widget-runtime.tsx +409 -0
- package/src/components/tools/engine/package-widget.tsx +77 -0
- package/src/components/tools/engine/result-view.tsx +596 -0
- package/src/components/tools/engine/use-legacy-llm-task.ts +64 -0
- package/src/components/tools/engine/use-tool-task.ts +195 -0
- package/src/components/tools/market-forecast-report.tsx +1150 -0
- package/src/components/tools/registry.ts +13 -0
- package/src/components/tools/workspace/index.ts +39 -0
- package/src/components/tools/workspace/tool-action-bar.tsx +99 -0
- package/src/components/tools/workspace/tool-empty-panel.tsx +32 -0
- package/src/components/tools/workspace/tool-error-panel.tsx +40 -0
- package/src/components/tools/workspace/tool-field.tsx +124 -0
- package/src/components/tools/workspace/tool-file-upload.tsx +112 -0
- package/src/components/tools/workspace/tool-form-section.tsx +21 -0
- package/src/components/tools/workspace/tool-form-shell.tsx +36 -0
- package/src/components/tools/workspace/tool-loading-panel.tsx +269 -0
- package/src/components/tools/workspace/tool-option-row.tsx +97 -0
- package/src/components/tools/workspace/tool-preview-panel.tsx +31 -0
- package/src/components/tools/workspace/tool-result-actions.tsx +67 -0
- package/src/components/tools/workspace/tool-result-file-actions.ts +31 -0
- package/src/components/tools/workspace/tool-result-header.tsx +39 -0
- package/src/components/tools/workspace/tool-status.tsx +13 -0
- package/src/components/tools/workspace/tool-workspace-layout.tsx +226 -0
- package/src/constants/LKS.ts +29 -0
- package/src/constants/related-tools.ts +18 -0
- package/src/constants/social-profile-kit.ts +284 -0
- package/src/constants/tool-assets.ts +7 -0
- package/src/env.d.ts +3 -0
- package/src/features/tools/_templates/standard-tool.container.tsx +90 -0
- package/src/features/tools/app-icon-resizer/app-icon-resizer.container.tsx +11 -0
- package/src/features/tools/app-icon-resizer/app-icon-resizer.spec.ts +15 -0
- package/src/features/tools/app-icon-resizer/widget/app-icon-resizer.tsx +444 -0
- package/src/features/tools/app-icon-resizer/widget/constants.ts +19 -0
- package/src/features/tools/app-icon-resizer/widget/helpers.ts +314 -0
- package/src/features/tools/app-icon-resizer/widget/index.ts +7 -0
- package/src/features/tools/app-icon-resizer/widget/platform-icons.tsx +59 -0
- package/src/features/tools/app-icon-resizer/widget/preview-dialogs.tsx +139 -0
- package/src/features/tools/app-icon-resizer/widget/result-shell.tsx +165 -0
- package/src/features/tools/app-icon-resizer/widget/types.ts +36 -0
- package/src/features/tools/app-store-screenshot-generator/app-store-screenshot-generator.container.tsx +108 -0
- package/src/features/tools/app-store-screenshot-generator/app-store-screenshot-generator.spec.ts +14 -0
- package/src/features/tools/app-store-screenshot-generator/config.ts +3 -0
- package/src/features/tools/app-store-screenshot-generator/widget/app-store-screenshot-generator.tsx +1250 -0
- package/src/features/tools/app-store-screenshot-generator/widget/asset-slots.ts +76 -0
- package/src/features/tools/app-store-screenshot-generator/widget/constants.ts +43 -0
- package/src/features/tools/app-store-screenshot-generator/widget/form-controls.tsx +214 -0
- package/src/features/tools/app-store-screenshot-generator/widget/generation.ts +528 -0
- package/src/features/tools/app-store-screenshot-generator/widget/index.ts +7 -0
- package/src/features/tools/app-store-screenshot-generator/widget/input-media.ts +175 -0
- package/src/features/tools/app-store-screenshot-generator/widget/types.ts +60 -0
- package/src/features/tools/app-store-screenshot-generator/widget/zip.ts +119 -0
- package/src/features/tools/build-in-public-story-generator/build-in-public-story-generator.container.tsx +135 -0
- package/src/features/tools/build-in-public-story-generator/build-in-public-story-generator.spec.ts +15 -0
- package/src/features/tools/build-in-public-story-generator/widget/build-in-public-story-generator.tsx +314 -0
- package/src/features/tools/build-in-public-story-generator/widget/constants.ts +3 -0
- package/src/features/tools/build-in-public-story-generator/widget/helpers.ts +25 -0
- package/src/features/tools/build-in-public-story-generator/widget/index.ts +7 -0
- package/src/features/tools/build-in-public-story-generator/widget/preview-panels.tsx +58 -0
- package/src/features/tools/build-in-public-story-generator/widget/result-shell.tsx +164 -0
- package/src/features/tools/build-in-public-story-generator/widget/types.ts +6 -0
- package/src/features/tools/cold-start-channel-selector/cold-start-channel-selector.container.tsx +30 -0
- package/src/features/tools/cold-start-channel-selector/cold-start-channel-selector.spec.ts +15 -0
- package/src/features/tools/cold-start-channel-selector/widget/cold-start-channel-selector.tsx +417 -0
- package/src/features/tools/cold-start-channel-selector/widget/constants.ts +46 -0
- package/src/features/tools/cold-start-channel-selector/widget/form-controls.tsx +41 -0
- package/src/features/tools/cold-start-channel-selector/widget/helpers.ts +75 -0
- package/src/features/tools/cold-start-channel-selector/widget/index.ts +7 -0
- package/src/features/tools/cold-start-channel-selector/widget/preview-panels.tsx +250 -0
- package/src/features/tools/cold-start-channel-selector/widget/result-shell.tsx +199 -0
- package/src/features/tools/cold-start-channel-selector/widget/types.ts +21 -0
- package/src/features/tools/commercial-bp-generator/commercial-bp-generator.container.tsx +102 -0
- package/src/features/tools/commercial-bp-generator/commercial-bp-generator.spec.ts +14 -0
- package/src/features/tools/commercial-bp-generator/widget/commercial-bp-generator.tsx +676 -0
- package/src/features/tools/commercial-bp-generator/widget/constants.ts +32 -0
- package/src/features/tools/commercial-bp-generator/widget/helpers.ts +147 -0
- package/src/features/tools/commercial-bp-generator/widget/index.ts +7 -0
- package/src/features/tools/commercial-bp-generator/widget/result-shell.tsx +271 -0
- package/src/features/tools/commercial-bp-generator/widget/style-option.tsx +54 -0
- package/src/features/tools/commercial-bp-generator/widget/types.ts +33 -0
- package/src/features/tools/community-feedback-inbox/community-feedback-inbox.container.tsx +126 -0
- package/src/features/tools/community-feedback-inbox/community-feedback-inbox.spec.ts +15 -0
- package/src/features/tools/community-feedback-inbox/widget/community-feedback-inbox.tsx +271 -0
- package/src/features/tools/community-feedback-inbox/widget/constants.ts +3 -0
- package/src/features/tools/community-feedback-inbox/widget/helpers.ts +28 -0
- package/src/features/tools/community-feedback-inbox/widget/index.ts +7 -0
- package/src/features/tools/community-feedback-inbox/widget/preview-panels.tsx +92 -0
- package/src/features/tools/community-feedback-inbox/widget/result-shell.tsx +266 -0
- package/src/features/tools/community-feedback-inbox/widget/types.ts +6 -0
- package/src/features/tools/community-pain-point-extractor/community-pain-point-extractor.container.tsx +124 -0
- package/src/features/tools/community-pain-point-extractor/community-pain-point-extractor.spec.ts +15 -0
- package/src/features/tools/community-pain-point-extractor/widget/community-pain-point-extractor.tsx +404 -0
- package/src/features/tools/community-pain-point-extractor/widget/constants.ts +41 -0
- package/src/features/tools/community-pain-point-extractor/widget/helpers.ts +76 -0
- package/src/features/tools/community-pain-point-extractor/widget/index.ts +8 -0
- package/src/features/tools/community-pain-point-extractor/widget/progress-panels.tsx +251 -0
- package/src/features/tools/community-pain-point-extractor/widget/result-shell.tsx +478 -0
- package/src/features/tools/community-pain-point-extractor/widget/types.ts +33 -0
- package/src/features/tools/community-post-risk-checker/community-post-risk-checker.package.ts +792 -0
- package/src/features/tools/competitor-analysis/competitor-analysis.container.tsx +136 -0
- package/src/features/tools/competitor-analysis/competitor-analysis.spec.ts +15 -0
- package/src/features/tools/competitor-analysis/widget/competitor-analysis.tsx +241 -0
- package/src/features/tools/competitor-analysis/widget/constants.ts +9 -0
- package/src/features/tools/competitor-analysis/widget/index.ts +7 -0
- package/src/features/tools/competitor-analysis/widget/preview-panels.tsx +60 -0
- package/src/features/tools/competitor-analysis/widget/result-shell.tsx +418 -0
- package/src/features/tools/competitor-analysis/widget/types.ts +13 -0
- package/src/features/tools/disclaimer-generator/disclaimer-generator.package.ts +339 -0
- package/src/features/tools/email-template-generator/email-template-generator.container.tsx +224 -0
- package/src/features/tools/email-template-generator/email-template-generator.spec.ts +14 -0
- package/src/features/tools/email-template-generator/widget/email-template-generator.tsx +358 -0
- package/src/features/tools/email-template-generator/widget/helpers.ts +39 -0
- package/src/features/tools/email-template-generator/widget/index.ts +7 -0
- package/src/features/tools/email-template-generator/widget/preview-panel.tsx +311 -0
- package/src/features/tools/email-template-generator/widget/result-text-block.tsx +7 -0
- package/src/features/tools/email-template-generator/widget/types.ts +24 -0
- package/src/features/tools/gtm-readiness-checklist/gtm-readiness-checklist.container.tsx +75 -0
- package/src/features/tools/gtm-readiness-checklist/gtm-readiness-checklist.spec.ts +15 -0
- package/src/features/tools/gtm-readiness-checklist/widget/gtm-readiness-checklist.tsx +122 -0
- package/src/features/tools/gtm-readiness-checklist/widget/index.ts +7 -0
- package/src/features/tools/investor-matching-planner/investor-matching-planner.package.ts +869 -0
- package/src/features/tools/koko-codex-assistant/koko-codex-assistant.container.tsx +151 -0
- package/src/features/tools/koko-codex-assistant/koko-codex-assistant.spec.ts +14 -0
- package/src/features/tools/koko-codex-assistant/widget/index.ts +7 -0
- package/src/features/tools/koko-codex-assistant/widget/koko-codex-assistant-download.tsx +192 -0
- package/src/features/tools/logo-generator/logo-generator.container.tsx +112 -0
- package/src/features/tools/logo-generator/logo-generator.spec.ts +15 -0
- package/src/features/tools/logo-generator/widget/index.ts +7 -0
- package/src/features/tools/logo-generator/widget/logo-generator.tsx +1244 -0
- package/src/features/tools/market-forecast-report/market-forecast-report.container.tsx +73 -0
- package/src/features/tools/market-forecast-report/market-forecast-report.spec.ts +15 -0
- package/src/features/tools/million-user-growth-test/million-user-growth-test.container.tsx +123 -0
- package/src/features/tools/million-user-growth-test/million-user-growth-test.spec.ts +14 -0
- package/src/features/tools/million-user-growth-test/widget/index.ts +7 -0
- package/src/features/tools/million-user-growth-test/widget/million-user-growth-test.tsx +433 -0
- package/src/features/tools/module-loader.ts +107 -0
- package/src/features/tools/og-image-generator/og-image-generator.container.tsx +86 -0
- package/src/features/tools/og-image-generator/og-image-generator.spec.ts +14 -0
- package/src/features/tools/og-image-generator/widget/constants.ts +38 -0
- package/src/features/tools/og-image-generator/widget/form-fields.tsx +240 -0
- package/src/features/tools/og-image-generator/widget/index.ts +7 -0
- package/src/features/tools/og-image-generator/widget/og-image-generator.tsx +742 -0
- package/src/features/tools/og-image-generator/widget/preview-panel.tsx +305 -0
- package/src/features/tools/og-image-generator/widget/types.ts +1 -0
- package/src/features/tools/package/direct-models.ts +20 -0
- package/src/features/tools/package/form.ts +38 -0
- package/src/features/tools/package/l10n.ts +22 -0
- package/src/features/tools/package/package-container.tsx +285 -0
- package/src/features/tools/package/package-loaders.ts +22 -0
- package/src/features/tools/package/package-registry.ts +36 -0
- package/src/features/tools/package/result-markdown.ts +142 -0
- package/src/features/tools/package/schema.ts +379 -0
- package/src/features/tools/package/to-tool-module.ts +20 -0
- package/src/features/tools/package/to-tool-spec.ts +52 -0
- package/src/features/tools/package/types.ts +381 -0
- package/src/features/tools/pitch-deck-generator/pitch-deck-generator.container.tsx +175 -0
- package/src/features/tools/pitch-deck-generator/pitch-deck-generator.spec.ts +14 -0
- package/src/features/tools/pitch-deck-generator/pitch-deck-library-data.ts +476 -0
- package/src/features/tools/pitch-deck-generator/pitch-deck-library.tsx +159 -0
- package/src/features/tools/pitch-deck-generator/widget/ceremony-line.tsx +27 -0
- package/src/features/tools/pitch-deck-generator/widget/constants.ts +27 -0
- package/src/features/tools/pitch-deck-generator/widget/index.ts +7 -0
- package/src/features/tools/pitch-deck-generator/widget/pitch-deck-generator.tsx +763 -0
- package/src/features/tools/pitch-deck-generator/widget/result-helpers.ts +102 -0
- package/src/features/tools/pitch-deck-generator/widget/result-shell.tsx +263 -0
- package/src/features/tools/pitch-deck-generator/widget/slide-frame.tsx +106 -0
- package/src/features/tools/pitch-deck-generator/widget/slide-lightbox.tsx +149 -0
- package/src/features/tools/pitch-deck-generator/widget/style-option.tsx +54 -0
- package/src/features/tools/pitch-deck-generator/widget/types.ts +44 -0
- package/src/features/tools/product-agreement-generator/product-agreement-generator.container.tsx +137 -0
- package/src/features/tools/product-agreement-generator/product-agreement-generator.spec.ts +14 -0
- package/src/features/tools/product-agreement-generator/widget/constants.ts +27 -0
- package/src/features/tools/product-agreement-generator/widget/form-controls.tsx +218 -0
- package/src/features/tools/product-agreement-generator/widget/helpers.ts +68 -0
- package/src/features/tools/product-agreement-generator/widget/index.ts +7 -0
- package/src/features/tools/product-agreement-generator/widget/product-agreement-generator.tsx +671 -0
- package/src/features/tools/product-agreement-generator/widget/result-shell.tsx +473 -0
- package/src/features/tools/product-agreement-generator/widget/types.ts +89 -0
- package/src/features/tools/product-hunt-launch-planner/product-hunt-launch-planner.container.tsx +122 -0
- package/src/features/tools/product-hunt-launch-planner/product-hunt-launch-planner.spec.ts +15 -0
- package/src/features/tools/product-hunt-launch-planner/widget/constants.ts +5 -0
- package/src/features/tools/product-hunt-launch-planner/widget/helpers.ts +44 -0
- package/src/features/tools/product-hunt-launch-planner/widget/index.ts +7 -0
- package/src/features/tools/product-hunt-launch-planner/widget/preview-panel.tsx +143 -0
- package/src/features/tools/product-hunt-launch-planner/widget/product-hunt-launch-planner.tsx +504 -0
- package/src/features/tools/product-hunt-launch-planner/widget/result-shell.tsx +176 -0
- package/src/features/tools/product-hunt-launch-planner/widget/types.ts +20 -0
- package/src/features/tools/product-name-generator/product-name-generator.container.tsx +14 -0
- package/src/features/tools/product-name-generator/product-name-generator.spec.ts +15 -0
- package/src/features/tools/product-name-generator/widget/candidate-card.tsx +273 -0
- package/src/features/tools/product-name-generator/widget/constants.ts +21 -0
- package/src/features/tools/product-name-generator/widget/form-controls.tsx +136 -0
- package/src/features/tools/product-name-generator/widget/helpers.ts +41 -0
- package/src/features/tools/product-name-generator/widget/index.ts +7 -0
- package/src/features/tools/product-name-generator/widget/product-name-generator.tsx +776 -0
- package/src/features/tools/product-name-generator/widget/types.ts +36 -0
- package/src/features/tools/product-positioning-analyzer/product-positioning-analyzer.package.ts +801 -0
- package/src/features/tools/product-poster-generator/product-poster-generator.container.tsx +14 -0
- package/src/features/tools/product-poster-generator/product-poster-generator.spec.ts +15 -0
- package/src/features/tools/product-poster-generator/widget/constants.ts +125 -0
- package/src/features/tools/product-poster-generator/widget/form-controls.tsx +204 -0
- package/src/features/tools/product-poster-generator/widget/helpers.ts +155 -0
- package/src/features/tools/product-poster-generator/widget/index.ts +7 -0
- package/src/features/tools/product-poster-generator/widget/product-poster-generator.tsx +663 -0
- package/src/features/tools/product-poster-generator/widget/result-shell.tsx +12 -0
- package/src/features/tools/product-poster-generator/widget/types.ts +83 -0
- package/src/features/tools/product-ui-generator/product-ui-generator.container.tsx +116 -0
- package/src/features/tools/product-ui-generator/product-ui-generator.spec.ts +14 -0
- package/src/features/tools/product-ui-generator/widget/constants.ts +18 -0
- package/src/features/tools/product-ui-generator/widget/helpers.ts +11 -0
- package/src/features/tools/product-ui-generator/widget/index.ts +7 -0
- package/src/features/tools/product-ui-generator/widget/preview-panels.tsx +73 -0
- package/src/features/tools/product-ui-generator/widget/product-ui-generator.tsx +304 -0
- package/src/features/tools/product-ui-generator/widget/result-shell.tsx +118 -0
- package/src/features/tools/product-ui-generator/widget/types.ts +9 -0
- package/src/features/tools/reddit-pain-point-finder/reddit-pain-point-finder.container.tsx +113 -0
- package/src/features/tools/reddit-pain-point-finder/reddit-pain-point-finder.spec.ts +15 -0
- package/src/features/tools/reddit-pain-point-finder/widget/constants.ts +5 -0
- package/src/features/tools/reddit-pain-point-finder/widget/index.ts +7 -0
- package/src/features/tools/reddit-pain-point-finder/widget/preview-panels.tsx +73 -0
- package/src/features/tools/reddit-pain-point-finder/widget/reddit-pain-point-finder.tsx +281 -0
- package/src/features/tools/reddit-pain-point-finder/widget/result-shell.tsx +203 -0
- package/src/features/tools/reddit-pain-point-finder/widget/types.ts +15 -0
- package/src/features/tools/registry.ts +288 -0
- package/src/features/tools/runtime-registry.ts +186 -0
- package/src/features/tools/shared/create-guide-stack-container.tsx +176 -0
- package/src/features/tools/shared/create-standard-landing-container.tsx +163 -0
- package/src/features/tools/shared/tool-content-sections.tsx +659 -0
- package/src/features/tools/shared/tool-cta.tsx +66 -0
- package/src/features/tools/shared/tool-draft-view.tsx +53 -0
- package/src/features/tools/shared/tool-guide-section.tsx +191 -0
- package/src/features/tools/shared/tool-handoff.tsx +38 -0
- package/src/features/tools/shared/tool-mcp-badge.tsx +23 -0
- package/src/features/tools/shared/tool-message-translator.ts +37 -0
- package/src/features/tools/shared/tool-page-shell.tsx +348 -0
- package/src/features/tools/shared/tool-standard-generation-steps.tsx +52 -0
- package/src/features/tools/shared/tool-standard-landing-sections.tsx +447 -0
- package/src/features/tools/shared/tool-ui-registry.ts +237 -0
- package/src/features/tools/shared/tool-widget-slot.tsx +29 -0
- package/src/features/tools/slogan-generator/slogan-generator.package.ts +641 -0
- package/src/features/tools/social-listening-research-report/social-listening-research-report.container.tsx +124 -0
- package/src/features/tools/social-listening-research-report/social-listening-research-report.spec.ts +15 -0
- package/src/features/tools/social-listening-research-report/widget/constants.ts +4 -0
- package/src/features/tools/social-listening-research-report/widget/index.ts +7 -0
- package/src/features/tools/social-listening-research-report/widget/preview-panels.tsx +73 -0
- package/src/features/tools/social-listening-research-report/widget/result-shell.tsx +216 -0
- package/src/features/tools/social-listening-research-report/widget/social-listening-research-report.tsx +303 -0
- package/src/features/tools/social-listening-research-report/widget/types.ts +15 -0
- package/src/features/tools/social-platform-asset-adapter/social-platform-asset-adapter.container.tsx +123 -0
- package/src/features/tools/social-platform-asset-adapter/social-platform-asset-adapter.spec.ts +15 -0
- package/src/features/tools/social-platform-asset-adapter/widget/constants.ts +43 -0
- package/src/features/tools/social-platform-asset-adapter/widget/helpers.ts +249 -0
- package/src/features/tools/social-platform-asset-adapter/widget/index.ts +7 -0
- package/src/features/tools/social-platform-asset-adapter/widget/result-shell.tsx +350 -0
- package/src/features/tools/social-platform-asset-adapter/widget/section-heading.tsx +18 -0
- package/src/features/tools/social-platform-asset-adapter/widget/social-platform-asset-adapter.tsx +641 -0
- package/src/features/tools/social-platform-asset-adapter/widget/types.ts +40 -0
- package/src/features/tools/social-profile-kit/social-profile-kit.container.tsx +177 -0
- package/src/features/tools/social-profile-kit/social-profile-kit.spec.ts +15 -0
- package/src/features/tools/social-profile-kit/widget/context-editor.tsx +171 -0
- package/src/features/tools/social-profile-kit/widget/generation-runtime.ts +281 -0
- package/src/features/tools/social-profile-kit/widget/index.ts +7 -0
- package/src/features/tools/social-profile-kit/widget/input-panel.tsx +294 -0
- package/src/features/tools/social-profile-kit/widget/platform-dock.tsx +115 -0
- package/src/features/tools/social-profile-kit/widget/profile-canvas.tsx +318 -0
- package/src/features/tools/social-profile-kit/widget/profile-preview/bluesky-preview.tsx +188 -0
- package/src/features/tools/social-profile-kit/widget/profile-preview/facebook-preview.tsx +168 -0
- package/src/features/tools/social-profile-kit/widget/profile-preview/index.ts +1 -0
- package/src/features/tools/social-profile-kit/widget/profile-preview/instagram-preview.tsx +278 -0
- package/src/features/tools/social-profile-kit/widget/profile-preview/linkedin-preview.tsx +358 -0
- package/src/features/tools/social-profile-kit/widget/profile-preview/profile-preview.tsx +348 -0
- package/src/features/tools/social-profile-kit/widget/profile-preview/shared.tsx +391 -0
- package/src/features/tools/social-profile-kit/widget/profile-preview/threads-preview.tsx +148 -0
- package/src/features/tools/social-profile-kit/widget/profile-preview/tiktok-preview.tsx +319 -0
- package/src/features/tools/social-profile-kit/widget/profile-preview/x-preview.tsx +341 -0
- package/src/features/tools/social-profile-kit/widget/profile-preview/youtube-preview.tsx +297 -0
- package/src/features/tools/social-profile-kit/widget/social-profile-kit-generator.tsx +1059 -0
- package/src/features/tools/social-profile-kit/widget/types.ts +104 -0
- package/src/features/tools/spec-registry.ts +158 -0
- package/src/features/tools/startup-idea-research/startup-idea-research.container.tsx +111 -0
- package/src/features/tools/startup-idea-research/startup-idea-research.spec.ts +15 -0
- package/src/features/tools/startup-idea-research/widget/constants.ts +11 -0
- package/src/features/tools/startup-idea-research/widget/index.ts +7 -0
- package/src/features/tools/startup-idea-research/widget/preview-panels.tsx +67 -0
- package/src/features/tools/startup-idea-research/widget/result-shell.tsx +323 -0
- package/src/features/tools/startup-idea-research/widget/startup-idea-research.tsx +272 -0
- package/src/features/tools/startup-idea-research/widget/types.ts +21 -0
- package/src/features/tools/tarot-reading/tarot-reading.container.tsx +412 -0
- package/src/features/tools/tarot-reading/tarot-reading.spec.ts +15 -0
- package/src/features/tools/tarot-reading/widget/cards.tsx +152 -0
- package/src/features/tools/tarot-reading/widget/constants.ts +69 -0
- package/src/features/tools/tarot-reading/widget/deck-view.tsx +86 -0
- package/src/features/tools/tarot-reading/widget/deck.ts +86 -0
- package/src/features/tools/tarot-reading/widget/index.ts +7 -0
- package/src/features/tools/tarot-reading/widget/landing-view.tsx +209 -0
- package/src/features/tools/tarot-reading/widget/reading-copy.tsx +138 -0
- package/src/features/tools/tarot-reading/widget/reading-view.tsx +189 -0
- package/src/features/tools/tarot-reading/widget/reveal-view.tsx +50 -0
- package/src/features/tools/tarot-reading/widget/ritual-view.tsx +276 -0
- package/src/features/tools/tarot-reading/widget/tarot-reading.tsx +262 -0
- package/src/features/tools/tarot-reading/widget/types.ts +22 -0
- package/src/features/tools/twitter-gif-downloader/twitter-gif-downloader.container.tsx +114 -0
- package/src/features/tools/twitter-gif-downloader/twitter-gif-downloader.spec.ts +14 -0
- package/src/features/tools/twitter-gif-downloader/widget/index.ts +7 -0
- package/src/features/tools/twitter-gif-downloader/widget/twitter-gif-downloader.tsx +351 -0
- package/src/features/tools/types.ts +68 -0
- package/src/features/tools/user-interview-guide-generator/user-interview-guide-generator.package.ts +774 -0
- package/src/features/tools/user-interview-insight-report-generator/user-interview-insight-report-generator.container.tsx +23 -0
- package/src/features/tools/user-interview-insight-report-generator/user-interview-insight-report-generator.spec.ts +14 -0
- package/src/features/tools/user-interview-insight-report-generator/widget/constants.ts +8 -0
- package/src/features/tools/user-interview-insight-report-generator/widget/helpers.ts +4 -0
- package/src/features/tools/user-interview-insight-report-generator/widget/index.ts +7 -0
- package/src/features/tools/user-interview-insight-report-generator/widget/preview-panels.tsx +55 -0
- package/src/features/tools/user-interview-insight-report-generator/widget/result-shell.tsx +122 -0
- package/src/features/tools/user-interview-insight-report-generator/widget/types.ts +16 -0
- package/src/features/tools/user-interview-insight-report-generator/widget/user-interview-insight-report-generator.tsx +293 -0
- package/src/features/tools/user-interview-record-generator/user-interview-record-generator.container.tsx +18 -0
- package/src/features/tools/user-interview-record-generator/user-interview-record-generator.spec.ts +14 -0
- package/src/features/tools/user-interview-record-generator/widget/constants.ts +9 -0
- package/src/features/tools/user-interview-record-generator/widget/helpers.ts +4 -0
- package/src/features/tools/user-interview-record-generator/widget/index.ts +7 -0
- package/src/features/tools/user-interview-record-generator/widget/preview-panels.tsx +48 -0
- package/src/features/tools/user-interview-record-generator/widget/result-shell.tsx +128 -0
- package/src/features/tools/user-interview-record-generator/widget/types.ts +16 -0
- package/src/features/tools/user-interview-record-generator/widget/user-interview-record-generator.tsx +305 -0
- package/src/features/tools/utm-builder/utm-builder.package.ts +846 -0
- package/src/features/tools/widget-registry.ts +73 -0
- package/src/generated/mcp-tools-registry.json +17 -0
- package/src/host/client-proxy.test.ts +33 -0
- package/src/host/client.ts +678 -0
- package/src/host/server.ts +119 -0
- package/src/i18n/client.ts +11 -0
- package/src/i18n/locale-fallback.ts +38 -0
- package/src/i18n/locale.ts +18 -0
- package/src/i18n/messages/en/page/tools.ts +124 -0
- package/src/i18n/messages/en/tools/app-icon-resizer.ts +244 -0
- package/src/i18n/messages/en/tools/app-store-screenshot-generator.ts +145 -0
- package/src/i18n/messages/en/tools/build-in-public-story-generator.ts +229 -0
- package/src/i18n/messages/en/tools/cold-start-channel-selector.ts +423 -0
- package/src/i18n/messages/en/tools/commercial-bp-generator.ts +304 -0
- package/src/i18n/messages/en/tools/community-feedback-inbox.ts +218 -0
- package/src/i18n/messages/en/tools/community-pain-point-extractor.ts +230 -0
- package/src/i18n/messages/en/tools/community-post-risk-checker.ts +209 -0
- package/src/i18n/messages/en/tools/competitor-analysis.ts +197 -0
- package/src/i18n/messages/en/tools/email-template-generator.ts +302 -0
- package/src/i18n/messages/en/tools/engine.ts +69 -0
- package/src/i18n/messages/en/tools/gtm-readiness-checklist.ts +166 -0
- package/src/i18n/messages/en/tools/index.ts +73 -0
- package/src/i18n/messages/en/tools/koko-codex-assistant.ts +171 -0
- package/src/i18n/messages/en/tools/logo-generator.ts +173 -0
- package/src/i18n/messages/en/tools/market-forecast-report.ts +228 -0
- package/src/i18n/messages/en/tools/million-user-growth-test.ts +386 -0
- package/src/i18n/messages/en/tools/og-image-generator.ts +172 -0
- package/src/i18n/messages/en/tools/pitch-deck-generator.ts +358 -0
- package/src/i18n/messages/en/tools/product-agreement-generator.ts +411 -0
- package/src/i18n/messages/en/tools/product-hunt-launch-planner.ts +272 -0
- package/src/i18n/messages/en/tools/product-name-generator.ts +383 -0
- package/src/i18n/messages/en/tools/product-poster-generator.ts +294 -0
- package/src/i18n/messages/en/tools/product-ui-generator.ts +234 -0
- package/src/i18n/messages/en/tools/reddit-pain-point-finder.ts +163 -0
- package/src/i18n/messages/en/tools/shared.ts +24 -0
- package/src/i18n/messages/en/tools/social-listening-research-report.ts +185 -0
- package/src/i18n/messages/en/tools/social-media-profile-generator.ts +22 -0
- package/src/i18n/messages/en/tools/social-platform-asset-adapter.ts +287 -0
- package/src/i18n/messages/en/tools/social-profile-kit.ts +150 -0
- package/src/i18n/messages/en/tools/startup-idea-research.ts +170 -0
- package/src/i18n/messages/en/tools/tarot-reading.ts +230 -0
- package/src/i18n/messages/en/tools/twitter-gif-downloader.ts +145 -0
- package/src/i18n/messages/en/tools/user-interview-insight-report-generator.ts +242 -0
- package/src/i18n/messages/en/tools/user-interview-record-generator.ts +244 -0
- package/src/i18n/messages/en/tools-ui.ts +704 -0
- package/src/i18n/messages/zh/page/tools.ts +124 -0
- package/src/i18n/messages/zh/tools/app-icon-resizer.ts +242 -0
- package/src/i18n/messages/zh/tools/app-store-screenshot-generator.ts +145 -0
- package/src/i18n/messages/zh/tools/build-in-public-story-generator.ts +230 -0
- package/src/i18n/messages/zh/tools/cold-start-channel-selector.ts +422 -0
- package/src/i18n/messages/zh/tools/commercial-bp-generator.ts +302 -0
- package/src/i18n/messages/zh/tools/community-feedback-inbox.ts +217 -0
- package/src/i18n/messages/zh/tools/community-pain-point-extractor.ts +230 -0
- package/src/i18n/messages/zh/tools/community-post-risk-checker.ts +200 -0
- package/src/i18n/messages/zh/tools/competitor-analysis.ts +192 -0
- package/src/i18n/messages/zh/tools/email-template-generator.ts +302 -0
- package/src/i18n/messages/zh/tools/engine.ts +68 -0
- package/src/i18n/messages/zh/tools/gtm-readiness-checklist.ts +166 -0
- package/src/i18n/messages/zh/tools/index.ts +73 -0
- package/src/i18n/messages/zh/tools/koko-codex-assistant.ts +170 -0
- package/src/i18n/messages/zh/tools/logo-generator.ts +172 -0
- package/src/i18n/messages/zh/tools/market-forecast-report.ts +228 -0
- package/src/i18n/messages/zh/tools/million-user-growth-test.ts +385 -0
- package/src/i18n/messages/zh/tools/og-image-generator.ts +173 -0
- package/src/i18n/messages/zh/tools/pitch-deck-generator.ts +358 -0
- package/src/i18n/messages/zh/tools/product-agreement-generator.ts +401 -0
- package/src/i18n/messages/zh/tools/product-hunt-launch-planner.ts +267 -0
- package/src/i18n/messages/zh/tools/product-name-generator.ts +383 -0
- package/src/i18n/messages/zh/tools/product-poster-generator.ts +282 -0
- package/src/i18n/messages/zh/tools/product-ui-generator.ts +234 -0
- package/src/i18n/messages/zh/tools/reddit-pain-point-finder.ts +162 -0
- package/src/i18n/messages/zh/tools/shared.ts +24 -0
- package/src/i18n/messages/zh/tools/social-listening-research-report.ts +181 -0
- package/src/i18n/messages/zh/tools/social-media-profile-generator.ts +22 -0
- package/src/i18n/messages/zh/tools/social-platform-asset-adapter.ts +284 -0
- package/src/i18n/messages/zh/tools/social-profile-kit.ts +150 -0
- package/src/i18n/messages/zh/tools/startup-idea-research.ts +165 -0
- package/src/i18n/messages/zh/tools/tarot-reading.ts +228 -0
- package/src/i18n/messages/zh/tools/twitter-gif-downloader.ts +138 -0
- package/src/i18n/messages/zh/tools/user-interview-insight-report-generator.ts +224 -0
- package/src/i18n/messages/zh/tools/user-interview-record-generator.ts +226 -0
- package/src/i18n/messages/zh/tools-ui.ts +684 -0
- package/src/i18n/messages/zh-tw/page/tools.ts +115 -0
- package/src/i18n/messages/zh-tw/tools/app-icon-resizer.ts +242 -0
- package/src/i18n/messages/zh-tw/tools/app-store-screenshot-generator.ts +145 -0
- package/src/i18n/messages/zh-tw/tools/build-in-public-story-generator.ts +230 -0
- package/src/i18n/messages/zh-tw/tools/cold-start-channel-selector.ts +440 -0
- package/src/i18n/messages/zh-tw/tools/commercial-bp-generator.ts +302 -0
- package/src/i18n/messages/zh-tw/tools/community-feedback-inbox.ts +217 -0
- package/src/i18n/messages/zh-tw/tools/community-pain-point-extractor.ts +230 -0
- package/src/i18n/messages/zh-tw/tools/community-post-risk-checker.ts +200 -0
- package/src/i18n/messages/zh-tw/tools/competitor-analysis.ts +192 -0
- package/src/i18n/messages/zh-tw/tools/email-template-generator.ts +302 -0
- package/src/i18n/messages/zh-tw/tools/engine.ts +68 -0
- package/src/i18n/messages/zh-tw/tools/gtm-readiness-checklist.ts +166 -0
- package/src/i18n/messages/zh-tw/tools/index.ts +73 -0
- package/src/i18n/messages/zh-tw/tools/koko-codex-assistant.ts +170 -0
- package/src/i18n/messages/zh-tw/tools/logo-generator.ts +71 -0
- package/src/i18n/messages/zh-tw/tools/market-forecast-report.ts +228 -0
- package/src/i18n/messages/zh-tw/tools/million-user-growth-test.ts +385 -0
- package/src/i18n/messages/zh-tw/tools/og-image-generator.ts +173 -0
- package/src/i18n/messages/zh-tw/tools/pitch-deck-generator.ts +358 -0
- package/src/i18n/messages/zh-tw/tools/product-agreement-generator.ts +401 -0
- package/src/i18n/messages/zh-tw/tools/product-hunt-launch-planner.ts +267 -0
- package/src/i18n/messages/zh-tw/tools/product-name-generator.ts +383 -0
- package/src/i18n/messages/zh-tw/tools/product-poster-generator.ts +282 -0
- package/src/i18n/messages/zh-tw/tools/product-ui-generator.ts +234 -0
- package/src/i18n/messages/zh-tw/tools/reddit-pain-point-finder.ts +162 -0
- package/src/i18n/messages/zh-tw/tools/shared.ts +24 -0
- package/src/i18n/messages/zh-tw/tools/social-listening-research-report.ts +181 -0
- package/src/i18n/messages/zh-tw/tools/social-media-profile-generator.ts +22 -0
- package/src/i18n/messages/zh-tw/tools/social-platform-asset-adapter.ts +284 -0
- package/src/i18n/messages/zh-tw/tools/social-profile-kit.ts +150 -0
- package/src/i18n/messages/zh-tw/tools/startup-idea-research.ts +165 -0
- package/src/i18n/messages/zh-tw/tools/tarot-reading.ts +228 -0
- package/src/i18n/messages/zh-tw/tools/twitter-gif-downloader.ts +138 -0
- package/src/i18n/messages/zh-tw/tools/user-interview-insight-report-generator.ts +224 -0
- package/src/i18n/messages/zh-tw/tools/user-interview-record-generator.ts +226 -0
- package/src/i18n/messages/zh-tw/tools-ui.ts +525 -0
- package/src/index.ts +15 -0
- package/src/lib/activity-task-handoff.ts +404 -0
- package/src/lib/api/errors.ts +39 -0
- package/src/lib/app-origin.ts +30 -0
- package/src/lib/fact-claim-contract.ts +68 -0
- package/src/lib/fake-delay.ts +3 -0
- package/src/lib/file/download.ts +10 -0
- package/src/lib/routing/locale-paths.ts +27 -0
- package/src/lib/seo-meta.ts +3 -0
- package/src/lib/tools/app-icon-resizer-schema.ts +191 -0
- package/src/lib/tools/app-store-screenshot-generator-schema.ts +185 -0
- package/src/lib/tools/build-in-public-story-generator-schema.ts +67 -0
- package/src/lib/tools/build-in-public-story-generator.format.ts +507 -0
- package/src/lib/tools/cold-start-channel-selector-schema.ts +147 -0
- package/src/lib/tools/commercial-bp-generator-schema.ts +222 -0
- package/src/lib/tools/community-feedback-inbox-schema.ts +125 -0
- package/src/lib/tools/community-feedback-inbox.format.ts +764 -0
- package/src/lib/tools/community-pain-point-extractor-schema.ts +166 -0
- package/src/lib/tools/community-post-risk-checker-schema.ts +99 -0
- package/src/lib/tools/community-post-risk-checker.format.ts +557 -0
- package/src/lib/tools/competitor-analysis-schema.ts +144 -0
- package/src/lib/tools/draft-preview-access.ts +3 -0
- package/src/lib/tools/draft-store.ts +69 -0
- package/src/lib/tools/email-template-generator-schema.ts +124 -0
- package/src/lib/tools/gtm-checklist-copy.ts +57 -0
- package/src/lib/tools/gtm-checklist-structure.ts +37 -0
- package/src/lib/tools/image-download.ts +68 -0
- package/src/lib/tools/input-quality.ts +97 -0
- package/src/lib/tools/logo-generator-schema.ts +224 -0
- package/src/lib/tools/market-forecast-report-schema.ts +299 -0
- package/src/lib/tools/mcp-registry.ts +16 -0
- package/src/lib/tools/mcp-types.ts +18 -0
- package/src/lib/tools/million-user-growth-test-schema.ts +49 -0
- package/src/lib/tools/million-user-growth-test.ts +181 -0
- package/src/lib/tools/og-image-generator-render.ts +448 -0
- package/src/lib/tools/og-image-generator-schema.ts +140 -0
- package/src/lib/tools/ops-catalog.ts +102 -0
- package/src/lib/tools/pitch-deck-generator-schema.ts +182 -0
- package/src/lib/tools/pitch-deck-package.ts +0 -0
- package/src/lib/tools/product-agreement-generator-schema.ts +168 -0
- package/src/lib/tools/product-hunt-launch-planner-schema.ts +136 -0
- package/src/lib/tools/product-hunt-launch-planner.format.ts +72 -0
- package/src/lib/tools/product-name-generator-schema.ts +563 -0
- package/src/lib/tools/product-poster-generator-schema.ts +215 -0
- package/src/lib/tools/product-ui-generator-schema.ts +157 -0
- package/src/lib/tools/reddit-pain-point-finder-schema.ts +88 -0
- package/src/lib/tools/resolve-tool-locale-copy.ts +75 -0
- package/src/lib/tools/slug.ts +60 -0
- package/src/lib/tools/social-listening-research-report-schema.ts +105 -0
- package/src/lib/tools/social-platform-asset-adapter-schema.ts +152 -0
- package/src/lib/tools/social-profile-kit.constants.ts +12 -0
- package/src/lib/tools/social-profile-kit.generation.ts +257 -0
- package/src/lib/tools/social-profile-kit.input.ts +290 -0
- package/src/lib/tools/social-profile-kit.manual.ts +481 -0
- package/src/lib/tools/social-profile-kit.package.ts +220 -0
- package/src/lib/tools/social-profile-kit.schema.ts +328 -0
- package/src/lib/tools/startup-idea-research-schema.ts +107 -0
- package/src/lib/tools/tarot-imagery.ts +89 -0
- package/src/lib/tools/tarot-reading.ts +1044 -0
- package/src/lib/tools/tool-message-keys.ts +18 -0
- package/src/lib/tools/types.ts +32 -0
- package/src/lib/tools/user-interview.format.ts +147 -0
- package/src/lib/tools/user-interview.generation.ts +670 -0
- package/src/lib/tools/user-interview.schema.ts +192 -0
- package/src/lib/zip.ts +106 -0
- package/src/services/tools/handlers/gtm-readiness-checklist.ts +71 -0
- 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;
|