@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,411 @@
|
|
|
1
|
+
const productAgreementGenerator = {
|
|
2
|
+
meta: {
|
|
3
|
+
title: "Privacy Policy Generator for Apps and SaaS",
|
|
4
|
+
description: "Generate privacy policies, terms of service, cookie notices, DPAs, and account-deletion drafts from product facts, with risk flags, missing info, and a review checklist.",
|
|
5
|
+
intro: "Built for apps, websites, SaaS, and AI products before launch. Start with a few product facts, then add entity, SDK, payment, and region details as the draft becomes more complete.",
|
|
6
|
+
category: "Compliance tools",
|
|
7
|
+
keywords: [
|
|
8
|
+
"privacy policy generator",
|
|
9
|
+
"terms and conditions generator",
|
|
10
|
+
"terms of service generator",
|
|
11
|
+
"app privacy policy generator",
|
|
12
|
+
"cookie policy generator",
|
|
13
|
+
"legal agreement generator",
|
|
14
|
+
],
|
|
15
|
+
inputSignal: "Product facts, region, document type",
|
|
16
|
+
outputSignal: "Privacy policy, terms, review checklist",
|
|
17
|
+
boundarySignal: "Draft, not legal advice",
|
|
18
|
+
},
|
|
19
|
+
guide: {
|
|
20
|
+
heroImageAlt: "Visual showing a rough product brief becoming an agreement draft package and review checklist.",
|
|
21
|
+
workspaceHeading: "Generate privacy policy and terms drafts",
|
|
22
|
+
workspaceHint:
|
|
23
|
+
"Enter the product name, type, launch region, and one real business description first. Entity, email, SDK, payment, and region details can be added after the first draft.",
|
|
24
|
+
workspaceBadge: "Privacy policy + terms",
|
|
25
|
+
outputs: "What you can generate",
|
|
26
|
+
outputsIntro:
|
|
27
|
+
"This is not a blank privacy policy template or generic terms template. It turns product facts into copyable, downloadable, revisable agreement drafts, with gaps and risks shown alongside the text.",
|
|
28
|
+
outputItems: [
|
|
29
|
+
{
|
|
30
|
+
title: "Privacy policy and terms drafts",
|
|
31
|
+
body: "Generate privacy policies, user agreements, terms of service, cookie notices, DPAs, account deletion notices, or children's privacy notices based on your document choices.",
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
title: "Risk Flags",
|
|
35
|
+
body: "Surface common privacy and compliance misses such as children, location, payments, ads, AI inputs, cross-border transfers, and multi-region launches.",
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
title: "Details To Confirm",
|
|
39
|
+
body: "Unknown facts such as operator, contact email, third-party SDKs, and retention periods are returned as follow-up items instead of being invented.",
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
title: "Pre-Launch Review Checklist",
|
|
43
|
+
body: "Get a checklist for clauses, entities, data fields, providers, and jurisdiction rules that need human review before publication.",
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
title: "A Revisable Version",
|
|
47
|
+
body: "After generation, add facts, rewrite wording in bulk, or revise one specific agreement through the conversation entry.",
|
|
48
|
+
},
|
|
49
|
+
],
|
|
50
|
+
valueVisualAlt: "Visual of an agreement draft package with risk flags and a downloadable folder.",
|
|
51
|
+
whyTomako: "Why not use a generic agreement template",
|
|
52
|
+
whyTomakoIntro:
|
|
53
|
+
"People searching for a privacy policy generator or terms and conditions generator usually need more than a copied example. Tomako helps early teams keep the draft text, missing facts, risk flags, and review checklist in the same workflow.",
|
|
54
|
+
whyTomakoItems: [
|
|
55
|
+
{
|
|
56
|
+
title: "Lower Input Cost",
|
|
57
|
+
body: "The first step only needs product name, type, region, description, and document choice. Entity, email, SDKs, and other details can come later.",
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
title: "Clear Result Structure",
|
|
61
|
+
body: "Drafts, risks, missing facts, jurisdiction notes, and review checklist items are separated so product, ops, counsel, or founders can inspect them.",
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
title: "Closer To The Business Than A Template",
|
|
65
|
+
body: "The output is organized around product type, launch region, data processing, and feature scope instead of asking you to rewrite a generic policy.",
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
title: "More controlled than a raw chat",
|
|
69
|
+
body: "The page keeps a fixed output structure, copy/download actions, and placeholder blocking to reduce vague privacy policies or terms.",
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
title: "Useful For Professional Review",
|
|
73
|
+
body: "The result keeps risks and missing facts visible, so it can become a package for counsel, a compliance owner, or customer review.",
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
title: "Progressive Completion",
|
|
77
|
+
body: "Uncertain data categories, third-party services, and commercial terms can be added later, and the tool regenerates the updated draft.",
|
|
78
|
+
},
|
|
79
|
+
],
|
|
80
|
+
howToUse: "How to generate a privacy policy and terms",
|
|
81
|
+
howToUseSteps: [
|
|
82
|
+
"Enter the product name, product type, primary launch region, and one real product description.",
|
|
83
|
+
"Choose the privacy policy, terms of service, cookie notice, or other agreement files you need and generate the draft package.",
|
|
84
|
+
"Read the risk flags and details to confirm, then add data, features, entity, and contact facts.",
|
|
85
|
+
"Describe any changes in the conversation entry, then copy or download the TXT file.",
|
|
86
|
+
],
|
|
87
|
+
mockNote:
|
|
88
|
+
"The result is a starting point for product launch and legal review, not final legal advice. The closer the input is to real business facts, the easier the draft is to review and publish.",
|
|
89
|
+
boundary: "Scope, legal boundaries, and recovery",
|
|
90
|
+
boundaryIntro:
|
|
91
|
+
"Agreements, privacy, and data processing are high-risk content. The page can expose unknowns, but it does not replace final judgment from counsel or a responsible compliance owner.",
|
|
92
|
+
boundaryGroups: [
|
|
93
|
+
{
|
|
94
|
+
title: "Good Fit",
|
|
95
|
+
items: [
|
|
96
|
+
"Starter drafts for apps, web products, SaaS, AI products, developer tools, and small e-commerce products.",
|
|
97
|
+
"Privacy policies, user agreements, terms of service, cookie notices, DPAs, account deletion notices, and children's privacy notices.",
|
|
98
|
+
"Early launch pages, app-store review, footer links, privacy centers, and lawyer-ready first drafts.",
|
|
99
|
+
],
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
title: "Not A Replacement For",
|
|
103
|
+
items: [
|
|
104
|
+
"Final legal advice, complete multi-region compliance audits, regulated-industry review, or complex B2B contract negotiation.",
|
|
105
|
+
"Medical, financial, security, minors, highly sensitive data, or enterprise-customer scenarios without dedicated review.",
|
|
106
|
+
"Secrets, unreleased business-critical details, large amounts of personal data, or data you are not allowed to process.",
|
|
107
|
+
],
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
title: "How To Recover From Failure",
|
|
111
|
+
items: [
|
|
112
|
+
"If generation fails, check whether the product description looks like placeholder text or retry the generation service later.",
|
|
113
|
+
"If the result is too generic, add real data fields, providers, payment model, retention periods, regions, and contact channels.",
|
|
114
|
+
"If a public website cannot be read, put the product facts directly in the additional facts field instead of relying on the URL.",
|
|
115
|
+
],
|
|
116
|
+
},
|
|
117
|
+
],
|
|
118
|
+
boundaryVisualAlt: "Visual of an agreement draft with missing information, region markers, and review notes.",
|
|
119
|
+
resultGuidance: "How to use the result",
|
|
120
|
+
resultGuidanceIntro:
|
|
121
|
+
"After generation, do not only check whether the text looks complete. Verify facts, handle risk items, and gradually add missing details into the final version.",
|
|
122
|
+
reviewVisualAlt: "Visual of an agreement draft being edited and exported as a review-ready package.",
|
|
123
|
+
guidanceBullets: [
|
|
124
|
+
"Verify the facts first: product name, operator, contact email, website, and app links must be accurate.",
|
|
125
|
+
"Review high-risk signals separately: children, location, payments, ads, AI inputs, and cross-border usage often need clearer consent and opt-out paths.",
|
|
126
|
+
"Before launch, add third-party SDKs, payment providers, analytics tools, cloud providers, and retention periods.",
|
|
127
|
+
"Requirements can differ under PIPL, GDPR, CCPA, and local rules, so multi-region products need jurisdiction-specific review.",
|
|
128
|
+
],
|
|
129
|
+
useCases: "Use cases",
|
|
130
|
+
useCaseItems: [
|
|
131
|
+
{
|
|
132
|
+
title: "Indie Builders Launching Multiple Small Products",
|
|
133
|
+
body: "Prepare baseline agreements for several apps, web tools, or SaaS products, then adjust each draft for product-specific differences.",
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
title: "Startup Teams Preparing App-Store Review",
|
|
137
|
+
body: "Create a reviewable draft before App Store submission, footer links, privacy centers, or login-page publication.",
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
title: "Product Teams Briefing Counsel",
|
|
141
|
+
body: "Turn product features, data handling, third-party SDKs, and commercial rules into material that is easier for counsel to review.",
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
title: "GTM Teams Checking Launch Readiness",
|
|
145
|
+
body: "Confirm user rights, data processing, account deletion, subscription refunds, and commercial terms before launch.",
|
|
146
|
+
},
|
|
147
|
+
],
|
|
148
|
+
faq: "FAQ",
|
|
149
|
+
faqItems: [
|
|
150
|
+
{
|
|
151
|
+
question: "Can I publish the generated agreements as-is?",
|
|
152
|
+
answer:
|
|
153
|
+
"No. The output is a structured starter draft and review checklist. It still needs final review against your actual business, jurisdiction, legal entity, and third-party services.",
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
question: "Can I generate a draft if some details are missing?",
|
|
157
|
+
answer:
|
|
158
|
+
"Yes. Start with the product facts you already know, then add the operator, contact email, third-party services, and similar details after the result appears.",
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
question: "Do I need to choose every data type and feature first?",
|
|
162
|
+
answer:
|
|
163
|
+
"No. The first step only needs the core product facts. Uncertain data types, providers, payment models, and region-specific details can be added after the first draft.",
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
question: "How is this different from a privacy policy template?",
|
|
167
|
+
answer:
|
|
168
|
+
"A template gives you fixed language and leaves the fit decisions to you. This generator uses product type, launch region, data categories, and features to create a draft and return missing facts and risk notes with it.",
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
question: "Can it generate terms of service or terms and conditions?",
|
|
172
|
+
answer:
|
|
173
|
+
"Yes. Choose the starter package or service-and-payments direction to generate user agreement, terms of service, or terms and conditions drafts, then add subscription, payment, refund, or account-deletion facts.",
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
question: "Can I describe how I want the draft changed?",
|
|
177
|
+
answer:
|
|
178
|
+
"Yes. After a draft is generated, the conversation entry can add facts, rewrite wording in bulk, or adjust a specific document. The tool regenerates the updated content.",
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
question: "What if generation fails or the result is too generic?",
|
|
182
|
+
answer:
|
|
183
|
+
"Check that the product name is not an example or only numbers, and that the description includes real features, users, and launch region. If the draft is too generic, add real data fields, SDKs, payment rules, retention periods, and providers.",
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
question: "Can I copy or download the result?",
|
|
187
|
+
answer:
|
|
188
|
+
"Yes. After a successful generation, you can copy all drafts or download a TXT file for your website, in-app page, privacy center, or review workflow.",
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
question: "Does this tool store my product information?",
|
|
192
|
+
answer:
|
|
193
|
+
"Online generation uses the product facts and public URL to produce the result. Do not submit secrets, unreleased business-critical details, or sensitive personal data.",
|
|
194
|
+
},
|
|
195
|
+
],
|
|
196
|
+
ctaPrimary: "Continue to GTM checklist",
|
|
197
|
+
ctaSecondary: "Back to all tools",
|
|
198
|
+
ctaHint:
|
|
199
|
+
"Once the agreement draft is organized, check whether positioning, channels, assets, and launch metrics are ready.",
|
|
200
|
+
},
|
|
201
|
+
widget: {
|
|
202
|
+
formTitle: "Generate privacy policy and terms",
|
|
203
|
+
formHint:
|
|
204
|
+
"Choose an agreement direction, enter a few basics, then add entity, SDK, payment, and region details after the draft appears.",
|
|
205
|
+
agreementTypeLabel: "Agreement type",
|
|
206
|
+
agreementTabs: {
|
|
207
|
+
starter: {
|
|
208
|
+
label: "Starter package",
|
|
209
|
+
},
|
|
210
|
+
privacy: {
|
|
211
|
+
label: "Privacy and data",
|
|
212
|
+
},
|
|
213
|
+
commercial: {
|
|
214
|
+
label: "Service and payments",
|
|
215
|
+
},
|
|
216
|
+
},
|
|
217
|
+
preview: {
|
|
218
|
+
beforeTitle: "Input",
|
|
219
|
+
afterTitle: "Output",
|
|
220
|
+
productFallback: "Your product",
|
|
221
|
+
briefFallback: "Describe what the product does, who uses it, the main features, and launch region.",
|
|
222
|
+
reviewItems: ["Agreement draft package", "Risk flags", "Details to confirm", "Pre-launch review checklist"],
|
|
223
|
+
},
|
|
224
|
+
modules: {
|
|
225
|
+
core: {
|
|
226
|
+
label: "Product details",
|
|
227
|
+
hint: "Add the name, type, region, and description.",
|
|
228
|
+
badge: "Required",
|
|
229
|
+
},
|
|
230
|
+
risk: {
|
|
231
|
+
label: "Data and features",
|
|
232
|
+
hint: "Select confirmed data categories and features.",
|
|
233
|
+
badge: "Optional",
|
|
234
|
+
},
|
|
235
|
+
publish: {
|
|
236
|
+
label: "Publishing info",
|
|
237
|
+
hint: "Add the operator, website, and contact email.",
|
|
238
|
+
badge: "Optional",
|
|
239
|
+
},
|
|
240
|
+
},
|
|
241
|
+
supplementModules: {
|
|
242
|
+
risk: {
|
|
243
|
+
label: "Data and features",
|
|
244
|
+
hint: "Add the data categories, launched features, third-party services, and special risks that actually apply.",
|
|
245
|
+
},
|
|
246
|
+
publish: {
|
|
247
|
+
label: "Publishing info",
|
|
248
|
+
hint: "Add the operator, website, app links, and contact details that need to appear in the agreements.",
|
|
249
|
+
},
|
|
250
|
+
notes: {
|
|
251
|
+
label: "Additional facts",
|
|
252
|
+
hint: "Describe business facts or revision directions in plain language.",
|
|
253
|
+
},
|
|
254
|
+
},
|
|
255
|
+
productNameLabel: "Product name",
|
|
256
|
+
productNamePlaceholder: "e.g. Tomako Launch",
|
|
257
|
+
operatorLabel: "Operator",
|
|
258
|
+
operatorPlaceholder: "e.g. Example Labs Inc.",
|
|
259
|
+
productTypeLabel: "Product type",
|
|
260
|
+
regionLabel: "Primary region",
|
|
261
|
+
descriptionLabel: "Product description",
|
|
262
|
+
descriptionPlaceholder:
|
|
263
|
+
"Example: A SaaS tool for indie builders. Users sign in, connect Stripe, generate launch assets, and the product collects account data, email, brand content, and usage logs.",
|
|
264
|
+
urlLabel: "Website or app link",
|
|
265
|
+
urlPlaceholder: "https://example.com",
|
|
266
|
+
contactLabel: "Privacy or support email",
|
|
267
|
+
contactPlaceholder: "privacy@example.com",
|
|
268
|
+
notesLabel: "Additional facts",
|
|
269
|
+
notesPlaceholder:
|
|
270
|
+
"For example: Stripe, Firebase, Google Analytics, OpenAI API, auto-renewal, enterprise customers, cross-border team, age restrictions.",
|
|
271
|
+
optional: "Optional",
|
|
272
|
+
riskModuleTitle: "Data and features",
|
|
273
|
+
riskModuleHint:
|
|
274
|
+
"Select only the items that are actually part of the product. Leave uncertain items blank.",
|
|
275
|
+
publishModuleTitle: "Publishing information",
|
|
276
|
+
publishModuleHint:
|
|
277
|
+
"These fields appear in the agreement text, so verify them before publishing.",
|
|
278
|
+
dataTitle: "Data you collect or process",
|
|
279
|
+
dataHint: "Leave blank if unsure",
|
|
280
|
+
dataPlaceholder: "Choose confirmed data categories",
|
|
281
|
+
featureTitle: "Product features",
|
|
282
|
+
featureHint: "Select only confirmed features",
|
|
283
|
+
featurePlaceholder: "Choose confirmed product features",
|
|
284
|
+
documentTitle: "Documents to generate",
|
|
285
|
+
documentHint: "Choose the files to output",
|
|
286
|
+
documentPlaceholder: "Choose agreement files to output",
|
|
287
|
+
generate: "Generate drafts",
|
|
288
|
+
generateAgent: "Generate agreement drafts",
|
|
289
|
+
generatingAgent: "Generating drafts",
|
|
290
|
+
regenerateAgent: "Regenerate agreements",
|
|
291
|
+
updateDraft: "Update draft with new facts",
|
|
292
|
+
updatingAgent: "Updating drafts",
|
|
293
|
+
applySupplement: "Update agreements",
|
|
294
|
+
retryAgent: "Retry generation",
|
|
295
|
+
reset: "Reset",
|
|
296
|
+
loadingTitle: "Drafting agreements",
|
|
297
|
+
loadingHint:
|
|
298
|
+
"Generating the agreement content. Public URLs are used only for product context.",
|
|
299
|
+
errorTitle: "No generated result yet",
|
|
300
|
+
agentResult: "Agreement draft",
|
|
301
|
+
revisingStatus: "Updating draft",
|
|
302
|
+
resultTitle: "Agreement draft package",
|
|
303
|
+
missingPromptTitle: "Details to confirm",
|
|
304
|
+
supplement: {
|
|
305
|
+
title: "Add more details",
|
|
306
|
+
hint: "Use the items to confirm as prompts. The tool will write the new facts back into the agreements.",
|
|
307
|
+
},
|
|
308
|
+
checksTitle: "Checks and review",
|
|
309
|
+
checksHint: "Risks, missing information, and pre-launch review items are collapsed until you need to inspect them.",
|
|
310
|
+
copyAll: "Copy all drafts",
|
|
311
|
+
copied: "Copied",
|
|
312
|
+
downloadAll: "Download TXT",
|
|
313
|
+
conversation: {
|
|
314
|
+
title: "Continue editing in conversation",
|
|
315
|
+
hint: "Add facts, rewrite wording in bulk, or adjust a specific document. The tool will regenerate the result.",
|
|
316
|
+
placeholder:
|
|
317
|
+
"Example: make the limitation-of-liability wording softer and add an auto-renewal cancellation section.",
|
|
318
|
+
send: "Send edit request",
|
|
319
|
+
updated: "The draft has been updated from your instruction.",
|
|
320
|
+
},
|
|
321
|
+
revisionExamples: [
|
|
322
|
+
"Make the wording friendlier for an indie developer product",
|
|
323
|
+
"Add clauses for Stripe auto-renewal",
|
|
324
|
+
"List third-party SDKs separately in the privacy policy",
|
|
325
|
+
],
|
|
326
|
+
revision: {
|
|
327
|
+
coreInstruction:
|
|
328
|
+
"Rebuild the draft from my updated product details and refresh the items to confirm.",
|
|
329
|
+
riskInstruction:
|
|
330
|
+
"Update all relevant agreements from the data, feature, and third-party facts I added.",
|
|
331
|
+
publishInstruction:
|
|
332
|
+
"Add the operator, website, and contact email to the formal clauses and replace placeholders.",
|
|
333
|
+
notesInstruction:
|
|
334
|
+
"Update the agreement content from the facts or notes I added, and refresh the items to confirm.",
|
|
335
|
+
},
|
|
336
|
+
download: {
|
|
337
|
+
riskHeading: "Risk flags",
|
|
338
|
+
missingInfoHeading: "Missing information",
|
|
339
|
+
jurisdictionHeading: "Jurisdiction notes",
|
|
340
|
+
reviewHeading: "Pre-launch review checklist",
|
|
341
|
+
},
|
|
342
|
+
errors: {
|
|
343
|
+
required:
|
|
344
|
+
"Please enter a product name, product description, and at least one document.",
|
|
345
|
+
productNameRequired: "Enter the real product name.",
|
|
346
|
+
productNamePlaceholder:
|
|
347
|
+
"The product name looks like an example or placeholder. Use the real product name.",
|
|
348
|
+
descriptionRequired: "Describe what the product does and who uses it.",
|
|
349
|
+
descriptionPlaceholder:
|
|
350
|
+
"The product description looks like placeholder text. Add real features, target users, or business context.",
|
|
351
|
+
documents: "Choose at least one agreement file to generate.",
|
|
352
|
+
email: "Enter a valid email address or leave the field blank.",
|
|
353
|
+
copy: "This browser could not copy the text. Try downloading it instead.",
|
|
354
|
+
agent: "Generation failed. Please try again later.",
|
|
355
|
+
gateway: "The generation service is temporarily unavailable. Please try again later.",
|
|
356
|
+
notReady:
|
|
357
|
+
"The previous generation turn is not ready for another message yet. Wait for it to finish before sending an edit.",
|
|
358
|
+
noResult: "No agreement result was returned yet. Please retry.",
|
|
359
|
+
resultInvalid:
|
|
360
|
+
"The generated result was incomplete, so it was not shown. Please retry or try again later.",
|
|
361
|
+
},
|
|
362
|
+
productTypes: {
|
|
363
|
+
mobileApp: "Mobile app",
|
|
364
|
+
webApp: "Web app",
|
|
365
|
+
saas: "SaaS product",
|
|
366
|
+
ecommerce: "E-commerce product",
|
|
367
|
+
developerTool: "Developer tool",
|
|
368
|
+
aiProduct: "AI product",
|
|
369
|
+
},
|
|
370
|
+
regions: {
|
|
371
|
+
mainlandChina: "Mainland China",
|
|
372
|
+
global: "Global users",
|
|
373
|
+
us: "United States",
|
|
374
|
+
eu: "EU / EEA",
|
|
375
|
+
},
|
|
376
|
+
dataCategories: {
|
|
377
|
+
account: "Account data",
|
|
378
|
+
contact: "Contact details",
|
|
379
|
+
device: "Device and logs",
|
|
380
|
+
location: "Location data",
|
|
381
|
+
payment: "Payment data",
|
|
382
|
+
content: "User content",
|
|
383
|
+
analytics: "Analytics events",
|
|
384
|
+
cookies: "Cookies",
|
|
385
|
+
aiInput: "AI input content",
|
|
386
|
+
children: "Children's data",
|
|
387
|
+
},
|
|
388
|
+
features: {
|
|
389
|
+
login: "Login and signup",
|
|
390
|
+
payments: "Payments",
|
|
391
|
+
subscription: "Subscriptions",
|
|
392
|
+
analytics: "Analytics",
|
|
393
|
+
ads: "Advertising",
|
|
394
|
+
userContent: "User-generated content",
|
|
395
|
+
messaging: "Messaging",
|
|
396
|
+
aiFeature: "AI features",
|
|
397
|
+
thirdPartyIntegrations: "Third-party integrations",
|
|
398
|
+
exportData: "Data export",
|
|
399
|
+
},
|
|
400
|
+
documentLabels: {
|
|
401
|
+
privacyPolicy: "Privacy policy",
|
|
402
|
+
termsOfService: "Terms of service",
|
|
403
|
+
cookiePolicy: "Cookie and tracking notice",
|
|
404
|
+
dataProcessingAddendum: "Data processing addendum",
|
|
405
|
+
accountDeletion: "Account deletion and data removal notice",
|
|
406
|
+
childrenPrivacy: "Children's privacy notice",
|
|
407
|
+
},
|
|
408
|
+
},
|
|
409
|
+
} as const;
|
|
410
|
+
|
|
411
|
+
export default productAgreementGenerator;
|