@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,284 @@
|
|
|
1
|
+
const socialPlatformAssetAdapter = {
|
|
2
|
+
meta: {
|
|
3
|
+
title: "社媒图片尺寸适配器",
|
|
4
|
+
description: "上传已有截图、封面或产品图,选择 X、LinkedIn、Instagram、TikTok、YouTube Shorts 或 Facebook,生成平台尺寸图片预览、下载图和配套发布文案。",
|
|
5
|
+
intro: "把一张现有图片变成多个社媒平台可用的发布素材:先生成常用平台尺寸图,再补标题、正文、标签、格式建议和人工复核清单。",
|
|
6
|
+
category: "社媒工具",
|
|
7
|
+
keywords: [
|
|
8
|
+
"社媒图片尺寸适配",
|
|
9
|
+
"社交媒体图片尺寸",
|
|
10
|
+
"Instagram 封面尺寸",
|
|
11
|
+
"LinkedIn 图片尺寸",
|
|
12
|
+
"TikTok 封面图",
|
|
13
|
+
"多平台素材适配",
|
|
14
|
+
],
|
|
15
|
+
inputSignal: "原始图片、标题、文案、标签、目标平台",
|
|
16
|
+
outputSignal: "平台尺寸图片、标题、正文、标签、复核清单",
|
|
17
|
+
boundarySignal: "浏览器生成尺寸图;发布文案需结构化写回,不自动发布",
|
|
18
|
+
},
|
|
19
|
+
examples: [
|
|
20
|
+
{
|
|
21
|
+
label: "产品发布主图",
|
|
22
|
+
input: "上传一张产品截图,补充一句发布标题、简短产品说明和初始标签,希望适配 X、LinkedIn、Instagram 和 TikTok。",
|
|
23
|
+
expectedOutput: "输出各平台尺寸图片预览和下载图,并生成标题、正文、标签、格式注意、风险提示和人工复核清单。",
|
|
24
|
+
},
|
|
25
|
+
],
|
|
26
|
+
guide: {
|
|
27
|
+
heroVisualAlt:
|
|
28
|
+
"一张社媒主图被整理成多个平台尺寸,并配有标题、正文、标签和复核清单。",
|
|
29
|
+
workspaceHeading: "把一张图片适配成多平台尺寸和发布草案",
|
|
30
|
+
workspaceHint:
|
|
31
|
+
"上传已有截图、封面、产品图或 mockup,选择目标平台。浏览器会先生成平台尺寸图片预览和下载图,再把标题、文案、标签和限制信息交给生成任务补齐发布草案。",
|
|
32
|
+
workspaceBadge: "Review 图片适配工具",
|
|
33
|
+
outputs: "你可以得到什么",
|
|
34
|
+
outputItems: [
|
|
35
|
+
{
|
|
36
|
+
title: "平台尺寸图片",
|
|
37
|
+
body: "把第一张上传图片适配为 X、LinkedIn、Instagram、TikTok、YouTube Shorts 或 Facebook 的常用发布比例,可预览并下载。",
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
title: "配套标题和正文",
|
|
41
|
+
body: "在同一视觉素材基础上,为不同平台补出标题重点、正文节奏、开头钩子和行动提醒。",
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
title: "标签和格式建议",
|
|
45
|
+
body: "保留用户已有标签,同时给出更克制的平台标签组合、比例提示、构图风险和发布前检查点。",
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
title: "可交付素材包",
|
|
49
|
+
body: "图片结果可下载,文案结果可复制为 Markdown,方便交给运营、设计或发布流程继续处理。",
|
|
50
|
+
},
|
|
51
|
+
],
|
|
52
|
+
supportHeading: "适合已有图片,但不想逐个平台重新裁剪和改文案",
|
|
53
|
+
supportVisualAlt:
|
|
54
|
+
"产品截图和封面图被适配成不同社媒平台的发布素材包。",
|
|
55
|
+
supportItems: [
|
|
56
|
+
"适合产品发布、功能更新、活动预热、案例复用、内容分发和社群运营等场景。",
|
|
57
|
+
"输入可以很不完整:只上传图片也能先生成尺寸图;补充标题、正文、标签、受众或限制后,文案草案会更可用。",
|
|
58
|
+
"当前图片适配是浏览器本地确定性处理:保留原图主体,使用柔和背景补足不同画幅,不会虚构新视觉元素。",
|
|
59
|
+
"输出用于草案和复核,不自动发布,也不代表平台审核、商标、版权或广告合规已经通过。",
|
|
60
|
+
],
|
|
61
|
+
boundaryHeading: "适配图片不等于保证所有平台都最优",
|
|
62
|
+
boundaryVisualAlt:
|
|
63
|
+
"社媒素材卡片旁边带有平台比例、留白和人工复核标记。",
|
|
64
|
+
boundaryItems: [
|
|
65
|
+
"工具不会登录第三方平台、检查账号权限、读取私密内容、自动发布或排程。",
|
|
66
|
+
"本地图片适配会生成常用尺寸预览,但不会做智能抠图、生成式补画、主体识别或平台实时规则校验。",
|
|
67
|
+
"医疗、金融、法律、夸大收益、用户数据或广告投放相关内容需要人工和专业复核。",
|
|
68
|
+
"如果素材里没有证据、数字来源或产品限制,结果会标出缺失信息和风险提示,而不是编造证明。",
|
|
69
|
+
],
|
|
70
|
+
failureHeading: "如果结果太泛,先补这些信息",
|
|
71
|
+
failureItems: [
|
|
72
|
+
"目标受众是谁,以及这次发布希望他们做什么。",
|
|
73
|
+
"哪一张图片是主视觉,是否有不可裁掉的 logo、人物、界面或文字区域。",
|
|
74
|
+
"现有文案中哪些句子必须保留,哪些只是临时想法。",
|
|
75
|
+
"各平台是否有禁用词、品牌语气、图片比例、字幕安全区或合规限制。",
|
|
76
|
+
],
|
|
77
|
+
resultUseHeading: "把结果当成社媒发布前的素材工作台",
|
|
78
|
+
resultUseVisualAlt:
|
|
79
|
+
"多平台社媒素材进入发布日历和人工复核清单。",
|
|
80
|
+
resultUseItems: [
|
|
81
|
+
"先下载平台尺寸图,再把 Markdown 复制到发布文档中逐个平台复核事实、长度和语气。",
|
|
82
|
+
"把格式建议交给设计师、图片生成工具或视频剪辑流程,继续产出更精细的视觉版本。",
|
|
83
|
+
"保留风险提示和缺失信息,避免把草案直接当作已审核内容发布。",
|
|
84
|
+
"效果好的平台版本可以继续扩展到账户资料、邮件模板或发布节奏表。",
|
|
85
|
+
],
|
|
86
|
+
whyTomakoHeading: "为什么不只用普通裁剪或改写模板",
|
|
87
|
+
whyTomakoItems: [
|
|
88
|
+
{
|
|
89
|
+
title: "图片和文案一起处理",
|
|
90
|
+
body: "先解决平台画幅,再补发布标题、正文、标签和复核点,减少图片和文案两边反复改。",
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
title: "按平台拆分意图",
|
|
94
|
+
body: "不是把一段文案改短,而是区分每个平台适合承载的沟通任务和阅读节奏。",
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
title: "把边界写清楚",
|
|
98
|
+
body: "没有证据的承诺、构图风险和人工复核项会留在结果里,而不是被漂亮文案盖过去。",
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
title: "结果能继续交付",
|
|
102
|
+
body: "输出是可下载、可复制、可分配给运营和设计的素材包,而不是一组零散句子。",
|
|
103
|
+
},
|
|
104
|
+
],
|
|
105
|
+
standardHeading: "好的社媒图片适配工具应该兼顾尺寸、语境和复核",
|
|
106
|
+
standardVisualAlt:
|
|
107
|
+
"社媒素材适配标准卡,展示平台尺寸、文案语境和发布复核。",
|
|
108
|
+
standardItems: [
|
|
109
|
+
"尺寸:能快速得到不同平台常用比例,并尽量保留原图主体和安全留白。",
|
|
110
|
+
"语境:不同平台版本应明显不同,同时保留同一来源事实。",
|
|
111
|
+
"易用:第一轮只需要已有图片和平台选择,不要求用户先写完整营销 brief。",
|
|
112
|
+
"可信:缺失证据、夸大承诺和敏感内容应触发人工复核提示。",
|
|
113
|
+
"可交付:结果应方便下载、复制,并继续交给设计或运营修改。",
|
|
114
|
+
],
|
|
115
|
+
faq: "常见问题",
|
|
116
|
+
faqItems: [
|
|
117
|
+
{
|
|
118
|
+
question: "能直接把上传图片变成目标平台尺寸吗?",
|
|
119
|
+
answer:
|
|
120
|
+
"可以。当前版本会用第一张上传图片生成目标平台常用尺寸的 JPG 预览和下载图。它会保留原图主体并用柔和背景补足画幅,但不会做生成式扩图、智能抠图或实时平台规则校验。",
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
question: "除了图片,还会生成什么?",
|
|
124
|
+
answer:
|
|
125
|
+
"如果结构化生成任务成功返回,页面会展示各平台的标题、正文、标签、格式建议、风险提示和复核清单。没有结构化结果时,页面不会用本地模板伪造最终文案。",
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
question: "可以直接发布结果吗?",
|
|
129
|
+
answer:
|
|
130
|
+
"建议先人工复核。工具返回的是尺寸图和发布草案,不替代平台规则、版权、商标、广告合规或事实准确性检查。",
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
question: "会自动发到 X、LinkedIn 或 TikTok 吗?",
|
|
134
|
+
answer:
|
|
135
|
+
"不会。它只生成可下载和可复制的素材,不登录第三方账号、不排程、不发布,也不检查账号权限。",
|
|
136
|
+
},
|
|
137
|
+
],
|
|
138
|
+
ctaHint:
|
|
139
|
+
"适配完社媒图片和发布草案后,可以继续整理账号资料,或把同一内容改造成邮件模板。",
|
|
140
|
+
ctaPrimary: "生成社媒账号资料",
|
|
141
|
+
ctaSecondary: "生成邮件模板",
|
|
142
|
+
},
|
|
143
|
+
widget: {
|
|
144
|
+
formTitle: "图片和发布素材",
|
|
145
|
+
formHint:
|
|
146
|
+
"先上传要适配的图片,再选择目标平台。标题、文案、标签可以只填已有部分;图片会先在浏览器生成平台尺寸图,文案结果由结构化生成任务返回后展示。",
|
|
147
|
+
sourceTitleLabel: "标题",
|
|
148
|
+
sourceTitlePlaceholder:
|
|
149
|
+
"例如:Launch-ready visuals in minutes;或已有 hook、活动主题、产品名、副标题。",
|
|
150
|
+
sourceCopyLabel: "文案",
|
|
151
|
+
sourceCopyPlaceholder:
|
|
152
|
+
"例如:上传产品信息后生成截图说明、社媒封面、发布页素材和复核清单。",
|
|
153
|
+
designAssetsLabel: "原始图片",
|
|
154
|
+
designAssetsHint: "{count}/{max} 张图片",
|
|
155
|
+
designAssetsButton: "上传图片",
|
|
156
|
+
designAssetsEmpty:
|
|
157
|
+
"上传截图、封面、产品图或 mockup。平台尺寸图会先使用第一张图片生成。",
|
|
158
|
+
designAssetsReady: "已添加 {count} 张图片",
|
|
159
|
+
designAssetsRemove: "移除图片",
|
|
160
|
+
designAssetMeta: "{width}x{height} · {size}",
|
|
161
|
+
imageErrors: {
|
|
162
|
+
unsupported: "请上传 PNG、JPG 或 WebP 图片。",
|
|
163
|
+
tooLarge: "单张原图不能超过 3 MB。",
|
|
164
|
+
tooMany: "最多可附加 3 张图片。",
|
|
165
|
+
cannotRead: "这张图片无法读取,请换一张。",
|
|
166
|
+
compressedTooLarge: "图片压缩后仍然过大,请换一张更小的截图。",
|
|
167
|
+
},
|
|
168
|
+
tagsLabel: "标签",
|
|
169
|
+
tagsPlaceholder:
|
|
170
|
+
"例如:#indiehackers #launch #design,或品牌词、话题词、账号 tag。",
|
|
171
|
+
platformsLabel: "适配平台",
|
|
172
|
+
goalLabel: "内容目标",
|
|
173
|
+
toneLabel: "语气",
|
|
174
|
+
advancedTitle: "高级信息",
|
|
175
|
+
audienceLabel: "目标受众",
|
|
176
|
+
audiencePlaceholder: "例如:准备第一次公开发布的独立开发者和早期 SaaS 团队。",
|
|
177
|
+
constraintsLabel: "限制或必须保留的信息",
|
|
178
|
+
constraintsPlaceholder:
|
|
179
|
+
"例如:不能承诺增长结果;必须保留 beta、waitlist、免费试用等信息。",
|
|
180
|
+
generate: "生成平台图片和文案",
|
|
181
|
+
generating: "生成中",
|
|
182
|
+
status: {
|
|
183
|
+
idle: "等待素材",
|
|
184
|
+
submitting: "正在处理",
|
|
185
|
+
running: "正在生成文案",
|
|
186
|
+
awaitingResult: "等待结构化结果",
|
|
187
|
+
done: "素材已生成",
|
|
188
|
+
error: "需要处理",
|
|
189
|
+
},
|
|
190
|
+
previewCards: ["平台尺寸图", "安全留白", "发布文案", "复核清单"],
|
|
191
|
+
workspaceVisualTitle: "图片先本地适配,文案再结构化返回",
|
|
192
|
+
workspaceVisualBody:
|
|
193
|
+
"上传图片后会生成平台尺寸预览和下载图;标题、正文、标签和复核点只在生成任务返回有效结构化结果后展示。",
|
|
194
|
+
mediaExportsTitle: "平台尺寸图片",
|
|
195
|
+
mediaExportsPreparing: "正在把第一张图片适配到已选平台的常用尺寸。",
|
|
196
|
+
mediaExportsReady: "已生成 {count} 张平台尺寸图,可先下载用于复核。",
|
|
197
|
+
mediaExportsEmpty: "正在准备图片预览。",
|
|
198
|
+
mediaExportMeta: "{width}x{height} · {ratio} · JPG · {size}",
|
|
199
|
+
mediaExportSource: "来源:{file}",
|
|
200
|
+
mediaExportPreviewAlt: "{file} 适配到 {platform} 的平台尺寸预览",
|
|
201
|
+
downloadImageAria: "下载 {platform} 平台尺寸图",
|
|
202
|
+
platforms: {
|
|
203
|
+
x: "X",
|
|
204
|
+
linkedin: "LinkedIn",
|
|
205
|
+
instagram: "Instagram",
|
|
206
|
+
tiktok: "TikTok",
|
|
207
|
+
youtubeShorts: "YouTube Shorts",
|
|
208
|
+
facebook: "Facebook",
|
|
209
|
+
},
|
|
210
|
+
goals: {
|
|
211
|
+
launch: "产品发布",
|
|
212
|
+
education: "教育解释",
|
|
213
|
+
community: "社群互动",
|
|
214
|
+
leadGeneration: "线索获取",
|
|
215
|
+
retention: "用户留存",
|
|
216
|
+
},
|
|
217
|
+
tones: {
|
|
218
|
+
clear: "清晰克制",
|
|
219
|
+
bold: "直接有冲击",
|
|
220
|
+
warm: "温暖可信",
|
|
221
|
+
expert: "专业顾问感",
|
|
222
|
+
playful: "轻松有梗",
|
|
223
|
+
},
|
|
224
|
+
resultPendingTitle: "正在生成配套文案",
|
|
225
|
+
resultPendingHint:
|
|
226
|
+
"图片预览可以先下载;标题、正文、标签和复核清单会在结构化结果返回并通过校验后展示。",
|
|
227
|
+
errors: {
|
|
228
|
+
validation: {
|
|
229
|
+
title: "先补充至少一类真实素材",
|
|
230
|
+
body: "请上传图片,或在标题、文案、标签里至少提供一类真实素材,并选择至少一个平台。请避免 test、demo、纯数字或过短描述。",
|
|
231
|
+
},
|
|
232
|
+
submitFailed: {
|
|
233
|
+
title: "任务提交失败",
|
|
234
|
+
body: "生成服务暂时不可用。可以稍后重试,或先下载已经生成的平台尺寸图。",
|
|
235
|
+
},
|
|
236
|
+
taskFailed: {
|
|
237
|
+
title: "文案生成失败",
|
|
238
|
+
body: "上游生成任务返回失败。请减少输入复杂度后重试,或保留当前图片结果做人工整理。",
|
|
239
|
+
},
|
|
240
|
+
resultTimeout: {
|
|
241
|
+
title: "没有等到结构化文案结果",
|
|
242
|
+
body: "任务可能仍在运行,或结果没有成功写回。页面不会用本地模板冒充最终文案。",
|
|
243
|
+
},
|
|
244
|
+
wrongResultType: {
|
|
245
|
+
title: "结果类型不匹配",
|
|
246
|
+
body: "收到的结果不适用于这个适配器,请重新生成。",
|
|
247
|
+
},
|
|
248
|
+
invalidResultSchema: {
|
|
249
|
+
title: "结果结构不完整",
|
|
250
|
+
body: "生成结果缺少必要字段,无法安全渲染。请重新生成或调整输入。",
|
|
251
|
+
},
|
|
252
|
+
},
|
|
253
|
+
resultReady: "配套文案已生成",
|
|
254
|
+
resultTitle: "已生成 {count} 个平台的发布草案",
|
|
255
|
+
taskId: "Task ID:{taskId}",
|
|
256
|
+
copied: "已复制",
|
|
257
|
+
copy: "复制 Markdown",
|
|
258
|
+
download: "下载文案",
|
|
259
|
+
reset: "重置",
|
|
260
|
+
contentAngles: "内容角度",
|
|
261
|
+
materialCoverage: "素材覆盖情况",
|
|
262
|
+
materialFields: {
|
|
263
|
+
title: "标题",
|
|
264
|
+
copy: "文案",
|
|
265
|
+
designMaterials: "图片素材",
|
|
266
|
+
tags: "标签",
|
|
267
|
+
},
|
|
268
|
+
coverage: {
|
|
269
|
+
provided: "用户已提供",
|
|
270
|
+
inferred: "从其他素材推断",
|
|
271
|
+
missing: "信息不足",
|
|
272
|
+
},
|
|
273
|
+
missingInfo: "缺失信息",
|
|
274
|
+
reviewChecklist: "复核清单",
|
|
275
|
+
caption: "正文草案",
|
|
276
|
+
designBrief: "设计建议",
|
|
277
|
+
formatNotes: "格式注意",
|
|
278
|
+
riskNotes: "风险提示",
|
|
279
|
+
sourceBasis: "来源依据",
|
|
280
|
+
exportNotes: "导出和使用建议",
|
|
281
|
+
},
|
|
282
|
+
} as const;
|
|
283
|
+
|
|
284
|
+
export default socialPlatformAssetAdapter;
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
const socialProfileKit = {
|
|
2
|
+
meta: {
|
|
3
|
+
title: "社交媒体账号资料草案生成器",
|
|
4
|
+
description: "输入个人或品牌定位,生成可预览、可编辑的 X、Instagram、TikTok、YouTube、LinkedIn、Facebook 等平台账号资料草案。",
|
|
5
|
+
intro: "输入定位,预览并下载多平台账号资料草案。",
|
|
6
|
+
category: "社交媒体工具",
|
|
7
|
+
keywords: [
|
|
8
|
+
"社交媒体资料",
|
|
9
|
+
"账号资料草案",
|
|
10
|
+
"账号简介生成",
|
|
11
|
+
"品牌资料包预览",
|
|
12
|
+
],
|
|
13
|
+
inputSignal: "名称、定位、目标受众、语气和平台偏好",
|
|
14
|
+
outputSignal: "多平台头像草案、背景图草案、简介、用户名和资料包下载",
|
|
15
|
+
boundarySignal: "当前结果用于预览和草案整理,不替代真人头像授权、商标审查或平台审核规则",
|
|
16
|
+
},
|
|
17
|
+
guide: {
|
|
18
|
+
heroVisualTitle: "PROFILE KIT PREVIEW",
|
|
19
|
+
heroVisualCaption: "同一份定位,拆成不同平台可检查、可调整的账号资料草案。",
|
|
20
|
+
heroVisualItems: ["头像草案", "主页背景草案", "平台简介", "用户名建议"],
|
|
21
|
+
heroImageAlt: "多平台账号资料草案、头像方向、背景图草案和导出文件的视觉组合。",
|
|
22
|
+
workspaceVisualHeading: "从一句定位到一组可复核资料",
|
|
23
|
+
workspaceVisualBody:
|
|
24
|
+
"先填写最少必要信息,再在画布里检查头像、背景、简介和用户名。图片只是预览引导,真实编辑和下载仍在下方工作台完成。",
|
|
25
|
+
workspaceImageAlt: "粗略账号 brief 转成头像、背景图、简介卡片和导出文件的资料包预览。",
|
|
26
|
+
whatYouGet: "你会得到哪些草案",
|
|
27
|
+
whatYouGetBody: [
|
|
28
|
+
"输入名称、定位、受众和语气后,工具会整理一套跨平台账号资料草案,包括头像方向、背景图方向、展示名、用户名、简介、标题和描述字段。",
|
|
29
|
+
"预览区会模拟不同平台的桌面和移动端样式,方便你在正式发布前检查文案长度、视觉重心、裁切边界和平台之间的一致性。",
|
|
30
|
+
],
|
|
31
|
+
valueImageAlt: "账号资料草案包,包含可复制文案、头像草案、平台卡片和 JSON 导出文件。",
|
|
32
|
+
whatYouGetItems: [
|
|
33
|
+
"可编辑账号文案:展示名、用户名、简介、标题和描述字段可以复制,也可以在画布里继续微调。",
|
|
34
|
+
"平台预览草案:按 X、LinkedIn、Instagram、TikTok、YouTube 等常见界面检查头像、背景和文案位置。",
|
|
35
|
+
"可下载资料包:导出当前平台或全部平台 JSON,方便交给设计、运营或继续在其他工具里编辑。",
|
|
36
|
+
"复核提醒:结果会提示哪些地方仍需人工确认,例如肖像授权、商标使用、平台字段长度和品牌合规。",
|
|
37
|
+
],
|
|
38
|
+
deliverablesVisualTitle: "DELIVERABLES",
|
|
39
|
+
deliverablesVisualCaption: "先预览草案,再复制或下载当前平台资料。",
|
|
40
|
+
deliverablesVisualItems: ["头像 SVG 草案", "背景 SVG 草案", "资料 JSON", "平台字段文案"],
|
|
41
|
+
sizes: "平台尺寸与字段边界",
|
|
42
|
+
sizesBody: [
|
|
43
|
+
"不同平台对头像、封面和简介字段的限制并不一致。这个工具把尺寸、字段和预览界面拆开呈现,减少把同一套物料硬塞到所有平台时的变形、裁切和截断。",
|
|
44
|
+
"首版生产规格先聚焦 X、LinkedIn 个人、LinkedIn Company、YouTube 和 Instagram,并区分个人账号与公司账号的表达方式。Instagram 没有通用主页背景图,页面不会为了对称而虚构这个位置。",
|
|
45
|
+
],
|
|
46
|
+
sizesVisualTitle: "PLATFORMS",
|
|
47
|
+
sizesVisualCaption: "按平台预览,而不是只给一张通用图。",
|
|
48
|
+
sizesVisualItems: ["X Header", "LinkedIn 个人/公司", "YouTube Banner", "Instagram 头像"],
|
|
49
|
+
supportImageAlt: "不同平台头像裁切、背景图位置、简介长度和无背景图平台边界的视觉说明。",
|
|
50
|
+
whyChoose: "为什么不用模板硬改",
|
|
51
|
+
whyChooseIntro:
|
|
52
|
+
"一个好的账号资料工具不只是给你几句简介文案,而是帮你判断这套身份在不同平台上是否放得下、看得清、讲得一致。",
|
|
53
|
+
whyChooseCommon: "常见捷径",
|
|
54
|
+
whyChooseTomako: "Tomako 草案资料包",
|
|
55
|
+
whyChooseItems: [
|
|
56
|
+
{
|
|
57
|
+
label: "跨平台一致性",
|
|
58
|
+
ordinary: "复制同一段简介到所有平台,发布后才发现长度、语气或展示位置不合适。",
|
|
59
|
+
tomako: "先把同一定位拆成平台字段,逐个平台检查文案长度、头像裁切和视觉重心。",
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
label: "结果可继续编辑",
|
|
63
|
+
ordinary: "模板生成后通常只适合截图保存,很难交给设计或运营继续处理。",
|
|
64
|
+
tomako: "文案可复制,平台资料可下载为 JSON,头像与背景草案可导出后继续加工。",
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
label: "发布前复核",
|
|
68
|
+
ordinary: "看起来像成品,但没有提醒肖像、商标、版权和平台规则仍需确认。",
|
|
69
|
+
tomako: "明确把结果定位为草案,并把授权、品牌合规和平台审核放进发布前检查。",
|
|
70
|
+
},
|
|
71
|
+
],
|
|
72
|
+
standardImageAlt: "凌乱模板素材整理成统一账号资料草案包的前后对比。",
|
|
73
|
+
guidance: "发布前怎么使用这些草案",
|
|
74
|
+
guidanceIntro:
|
|
75
|
+
"这套资料包更适合作为发布前的对齐材料:你可以复制、下载、交给团队复核,也要在目标平台后台做最后确认。",
|
|
76
|
+
handoffImageAlt: "账号资料草案、复核清单和交付文件夹组成的发布前 handoff 资料。",
|
|
77
|
+
guidanceBlocks: [
|
|
78
|
+
{
|
|
79
|
+
heading: "适合用来做什么",
|
|
80
|
+
items: [
|
|
81
|
+
"为新品牌、个人创作者、产品发布或活动账号快速整理第一版社媒身份。",
|
|
82
|
+
"比较 X、LinkedIn、YouTube 和 Instagram 上的头像裁切、背景图比例和简介表达。",
|
|
83
|
+
"把账号资料交给设计、运营或创始人继续审核,而不是直接当成最终上线稿。",
|
|
84
|
+
],
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
heading: "当前不替代什么",
|
|
88
|
+
items: [
|
|
89
|
+
"不替代真人头像授权、商标检索、版权审核或平台政策判断。",
|
|
90
|
+
"不保证每个平台都会接受同一套图文,也不代表官方尺寸或审核结论。",
|
|
91
|
+
"不负责处理私密账号、登录后内容、平台自动发布或真实社媒账号绑定。",
|
|
92
|
+
],
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
heading: "结果怎么使用",
|
|
96
|
+
items: [
|
|
97
|
+
"先在画布里切换平台和设备,检查文字是否被截断、头像是否偏离视觉中心。",
|
|
98
|
+
"复制简介和用户名候选,下载当前平台或完整资料包。",
|
|
99
|
+
"正式发布前,用目标平台后台再次确认尺寸、字段长度、授权和品牌规范。",
|
|
100
|
+
],
|
|
101
|
+
},
|
|
102
|
+
],
|
|
103
|
+
howItWorks: "草案生成流程",
|
|
104
|
+
howItWorksItems: [
|
|
105
|
+
"先选择个人创作者或品牌公司模式。",
|
|
106
|
+
"填写定位、受众和语气,也可以用自然语言描述。",
|
|
107
|
+
"生成后在预览区切换平台、设备和主题。",
|
|
108
|
+
"微调文案、颜色和元素后下载资料包。",
|
|
109
|
+
"正式发布前再按平台规则复核头像授权、品牌露出和简介长度。",
|
|
110
|
+
],
|
|
111
|
+
faq: "常见问题",
|
|
112
|
+
faqItems: [
|
|
113
|
+
{
|
|
114
|
+
question: "生成结果可以直接发布到社交平台吗?",
|
|
115
|
+
answer:
|
|
116
|
+
"建议把结果当作第一版草案和预览资料使用。正式发布前仍要检查肖像授权、商标、版权、平台尺寸、简介长度和品牌规范。",
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
question: "支持哪些平台和账号类型?",
|
|
120
|
+
answer:
|
|
121
|
+
"当前覆盖 X、Bluesky、Threads、LinkedIn、LinkedIn Company、Instagram、TikTok、YouTube 和 Facebook,并支持个人创作者与品牌公司两种表达方式。",
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
question: "为什么有些平台没有背景图?",
|
|
125
|
+
answer:
|
|
126
|
+
"不同平台的资料页结构不一样。Instagram 和 TikTok 没有通用主页背景图,工具会按平台真实可用的资料位预览,不会为了整齐而虚构一个封面区域。",
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
question: "头像会自动生成真人照片吗?",
|
|
130
|
+
answer:
|
|
131
|
+
"不会。品牌账号优先上传 Logo 或继续使用 Logo 生成器;创始人账号优先上传真实头像或常用头像。没有头像时,画布只使用中性字母占位作为样机预览。",
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
question: "下载资料包里包含什么?",
|
|
135
|
+
answer:
|
|
136
|
+
"你可以下载当前平台资料,也可以下载完整 JSON 资料包。头像按上传图、Logo 或中性占位裁切预览;背景草案可作为 SVG 方向导出,适合继续交给设计工具或人工编辑。",
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
question: "如果结果不够贴合品牌怎么办?",
|
|
140
|
+
answer:
|
|
141
|
+
"先补充更具体的定位、目标受众和语气,再重新生成;也可以直接在画布里编辑文案、替换颜色或上传自己的头像和背景素材。",
|
|
142
|
+
},
|
|
143
|
+
],
|
|
144
|
+
ctaPrimary: "继续生成 Logo",
|
|
145
|
+
ctaSecondary: "返回全部工具",
|
|
146
|
+
ctaHint: "资料包确定后,可以继续把品牌标识、产品截图和社交素材串成一套上线资产。",
|
|
147
|
+
},
|
|
148
|
+
} as const;
|
|
149
|
+
|
|
150
|
+
export default socialProfileKit;
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
const startupIdeaResearch = {
|
|
2
|
+
meta: {
|
|
3
|
+
title: "创业 Idea 调研工具",
|
|
4
|
+
description: "描述创业想法和目标用户,获得公开需求信号、同类产品、付费意愿假设、风险与下一步验证实验;它帮助你缩小要验证的问题,不承诺 idea 一定成功。",
|
|
5
|
+
intro: "把粗糙创业想法变成一份可复核的验证报告。工具会查看公开竞品和用户信号,整理痛点、用户群体、付费意愿、下一步实验和可自行发布的招募素材。",
|
|
6
|
+
category: "创业调研工具",
|
|
7
|
+
keywords: [
|
|
8
|
+
"创业 idea 调研",
|
|
9
|
+
"创业想法验证",
|
|
10
|
+
"痛点分析工具",
|
|
11
|
+
"付费意愿分析",
|
|
12
|
+
"竞品调研",
|
|
13
|
+
],
|
|
14
|
+
},
|
|
15
|
+
examples: [
|
|
16
|
+
{
|
|
17
|
+
label: "粗糙想法验证",
|
|
18
|
+
input: "我想做一个帮独立开发者自动收集 Reddit/PH/HN 需求信号并生成验证实验的工具。",
|
|
19
|
+
expectedOutput: "痛点真实性、同类产品、潜在付费用户、付费阻力、验证实验、风险和可复制下载的招募草案。",
|
|
20
|
+
},
|
|
21
|
+
],
|
|
22
|
+
widget: {
|
|
23
|
+
ideaLabel: "创业想法",
|
|
24
|
+
ideaPlaceholder:
|
|
25
|
+
"例如:我想做一个帮独立开发者自动收集 Reddit、Product Hunt、HN 需求信号,并生成验证实验的工具。",
|
|
26
|
+
targetUsersLabel: "可能用户(可选)",
|
|
27
|
+
targetUsersPlaceholder: "例如 独立开发者、早期 SaaS 团队",
|
|
28
|
+
regionLabel: "市场/语言(可选)",
|
|
29
|
+
regionPlaceholder: "例如 中国、北美、英文市场",
|
|
30
|
+
stageLabel: "当前阶段",
|
|
31
|
+
stage: {
|
|
32
|
+
raw: "只有想法",
|
|
33
|
+
problem: "已确认问题",
|
|
34
|
+
prototype: "已有原型",
|
|
35
|
+
launched: "已经上线",
|
|
36
|
+
pivot: "准备转向",
|
|
37
|
+
},
|
|
38
|
+
focusLabel: "重点关注(可选)",
|
|
39
|
+
focusPlaceholder: "例如 付费意愿、竞品、冷启动渠道",
|
|
40
|
+
inputHint: "第一轮只需要粗糙描述。缺失信息会写进报告,不要求你先补完整 PRD。",
|
|
41
|
+
submit: "调研这个 idea",
|
|
42
|
+
submitting: "提交中…",
|
|
43
|
+
running: "调研中…",
|
|
44
|
+
emptyTitle: "验证报告会显示在这里",
|
|
45
|
+
emptyHint: "提交后会检索同类产品与公开讨论,分析痛点、用户、付费意愿和可执行验证实验。",
|
|
46
|
+
runningTitle: "正在调研公开信号",
|
|
47
|
+
runningHint: "任务已提交。页面只显示服务返回的真实状态,报告准备好后会自动展示;公开资料较多时可能需要几分钟。",
|
|
48
|
+
status: {
|
|
49
|
+
default: "调研中",
|
|
50
|
+
PENDING: "排队中",
|
|
51
|
+
STREAMING: "处理中",
|
|
52
|
+
AWAITING_INPUT: "等待继续处理",
|
|
53
|
+
AWAITING_RESULT: "等待结果写回",
|
|
54
|
+
SUCCEEDED: "正在读取结果",
|
|
55
|
+
},
|
|
56
|
+
retry: "重试",
|
|
57
|
+
errors: {
|
|
58
|
+
invalid: "请用 20 个字以上描述真实创业想法,避免 test/demo/占位内容。",
|
|
59
|
+
submit: "提交失败,请检查网络后重试。",
|
|
60
|
+
task: "调研任务失败,请稍后重试。",
|
|
61
|
+
timeout: "调研超时,公开信息可能较难获取,请稍后重试。",
|
|
62
|
+
schema: "返回结果格式异常,请重试。",
|
|
63
|
+
},
|
|
64
|
+
analyzeAnother: "分析另一个 idea",
|
|
65
|
+
visit: "查看来源",
|
|
66
|
+
emptyList: "暂无明确公开信号",
|
|
67
|
+
disclaimerFallback:
|
|
68
|
+
"以上为基于公开信息的辅助判断,不构成投资、法律或商业承诺。请用真实访谈、投放和成交继续验证。",
|
|
69
|
+
signals: { weak: "弱", mixed: "混合", strong: "强" },
|
|
70
|
+
verdict: { pain: "痛点", pay: "付费", market: "时机" },
|
|
71
|
+
sections: {
|
|
72
|
+
pain: "真实痛点信号",
|
|
73
|
+
users: "可能用户群",
|
|
74
|
+
pay: "付费意愿",
|
|
75
|
+
competitors: "同类产品与替代方案",
|
|
76
|
+
validation: "下一步验证实验",
|
|
77
|
+
risks: "风险与缺失证据",
|
|
78
|
+
sources: "公开来源",
|
|
79
|
+
},
|
|
80
|
+
share: {
|
|
81
|
+
title: "准备可复制的招募素材",
|
|
82
|
+
hint:
|
|
83
|
+
"下面内容不会自动发布到任何社区。请先复核,再复制或下载到你真正使用的渠道。",
|
|
84
|
+
postTitle: "招募标题",
|
|
85
|
+
posterPrompt: "海报提示词",
|
|
86
|
+
body: "招募说明",
|
|
87
|
+
copy: "复制招募文案",
|
|
88
|
+
copied: "已复制",
|
|
89
|
+
copyFailed: "浏览器未允许复制,请手动选择上方文字。",
|
|
90
|
+
downloadText: "下载 TXT",
|
|
91
|
+
posterStatus: "可选招募海报",
|
|
92
|
+
posterStatusHint: "根据当前提示词生成一张可下载的海报草案;不会自动发布。",
|
|
93
|
+
generatePoster: "生成海报草案",
|
|
94
|
+
posterPolling: "海报仍在生成,请留在此页。",
|
|
95
|
+
openPoster: "打开或下载海报",
|
|
96
|
+
posterPromptRequired: "请先填写海报提示词。",
|
|
97
|
+
posterFailed: "海报生成失败,请稍后重试。",
|
|
98
|
+
posterTimeout: "海报生成超时,请稍后重试或保留当前提示词。",
|
|
99
|
+
},
|
|
100
|
+
},
|
|
101
|
+
guide: {
|
|
102
|
+
workspaceHeading: "做产品前,先验证这个创业 idea",
|
|
103
|
+
workspaceHint: "描述想法和目标用户,获得公开需求信号、待验证假设与下一步实验。",
|
|
104
|
+
workspaceBadge: "创业想法验证",
|
|
105
|
+
visualAlt: {
|
|
106
|
+
hero: "创业 idea 调研报告预览(配图待补)",
|
|
107
|
+
workspace: "从粗糙想法到验证报告和招募素材的视觉物料(配图待补)",
|
|
108
|
+
value: "痛点、用户和付费信号分析视觉物料(配图待补)",
|
|
109
|
+
support: "竞品证据和验证实验视觉物料(配图待补)",
|
|
110
|
+
useCase: "招募文案和海报草案视觉物料(配图待补)",
|
|
111
|
+
},
|
|
112
|
+
valueKicker: "你会得到什么",
|
|
113
|
+
valueTitle: "不是替你拍脑袋,而是把 idea 拆成可验证证据",
|
|
114
|
+
valueItems: [
|
|
115
|
+
"痛点真实性判断:区分强信号、弱信号和缺失证据,避免把自己的兴奋当成市场需求。",
|
|
116
|
+
"可能用户群体:整理谁最可能痛、谁有预算、从哪些渠道能触达。",
|
|
117
|
+
"付费意愿假设:结合竞品定价、替代方案和用户成本,给出可测试的价格方向。",
|
|
118
|
+
"招募素材草案:生成可编辑的标题、说明和海报提示词,可复制或下载后自行发布。",
|
|
119
|
+
],
|
|
120
|
+
standardKicker: "好工具标准",
|
|
121
|
+
standardTitle: "一个靠谱的 idea 验证工具应该先证明问题存在",
|
|
122
|
+
standardItems: [
|
|
123
|
+
"证据优先:先看公开讨论、评论、替代方案和竞品,而不是直接生成漂亮商业计划书。",
|
|
124
|
+
"结论可复核:每个关键判断都标注来源、可信度或缺失信息,方便继续人工验证。",
|
|
125
|
+
"行动导向:报告必须落到访谈、落地页、付费测试或社区招募,而不是停在泛泛建议。",
|
|
126
|
+
"不夸大承诺:不能承诺市场规模、融资价值或必然成功,只提供辅助判断和下一步实验。",
|
|
127
|
+
],
|
|
128
|
+
resultKicker: "结果使用",
|
|
129
|
+
resultTitle: "拿到报告后,先验证最危险的假设",
|
|
130
|
+
resultGuidanceItems: [
|
|
131
|
+
"如果痛点信号弱,先找 5-10 个目标用户访谈,不急着做产品。",
|
|
132
|
+
"如果付费意愿混合,用定价页、预售、付费等候名单或服务化交付测试预算。",
|
|
133
|
+
"如果竞品很多,重点看差异化切口和渠道可达性,而不是只做功能堆叠。",
|
|
134
|
+
"把招募文案发布到你真实使用的社区,再从实际回复或报名中筛选愿意试用或共创的人。",
|
|
135
|
+
],
|
|
136
|
+
faqKicker: "常见问题",
|
|
137
|
+
faqTitle: "创业 idea 验证常见问题",
|
|
138
|
+
faqItems: [
|
|
139
|
+
{
|
|
140
|
+
question: "这个工具会直接判断 idea 值不值得做吗?",
|
|
141
|
+
answer:
|
|
142
|
+
"不会给最终创业结论。它会基于公开信号判断痛点、用户和付费意愿的强弱,并列出需要继续验证的假设。",
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
question: "会爬取哪些同类产品数据?",
|
|
146
|
+
answer:
|
|
147
|
+
"工具会优先查看公开官网、定价页、发布页、社区讨论、评论和可搜索资料。不会访问私有、登录后或付费墙内容。",
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
question: "Tomako 会自动把 idea 发布到社区吗?",
|
|
151
|
+
answer: "不会。页面只准备可编辑的招募标题、说明和海报草案,是否发布、发布到哪里都由你决定。",
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
question: "招募素材可以怎样导出?",
|
|
155
|
+
answer:
|
|
156
|
+
"招募文案可直接复制或下载为 TXT;海报生成成功后可打开或下载。页面不会伪造社区留言、评分或参与数据。",
|
|
157
|
+
},
|
|
158
|
+
],
|
|
159
|
+
ctaHint: "如果 idea 已经有明确竞品,下一步可以逐个拆竞品。",
|
|
160
|
+
ctaPrimary: "分析一个竞品",
|
|
161
|
+
ctaSecondary: "查看全部工具",
|
|
162
|
+
},
|
|
163
|
+
} as const;
|
|
164
|
+
|
|
165
|
+
export default startupIdeaResearch;
|