@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;
|