@umituz/web-ai 0.0.0-stage → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +98 -2
  3. package/dist/ABTesting-DDqNhHtP.d.ts +184 -0
  4. package/dist/ABTesting-DWBtKTMQ.d.cts +184 -0
  5. package/dist/ContentGeneration-B6iK2B33.d.cts +93 -0
  6. package/dist/ContentGeneration-B6iK2B33.d.ts +93 -0
  7. package/dist/ProviderConfig-a55tLhWT.d.cts +99 -0
  8. package/dist/ProviderConfig-a55tLhWT.d.ts +99 -0
  9. package/dist/cache-manager-Df9LLYGA.d.cts +31 -0
  10. package/dist/cache-manager-Df9LLYGA.d.ts +31 -0
  11. package/dist/chat/index.cjs +534 -0
  12. package/dist/chat/index.cjs.map +1 -0
  13. package/dist/chat/index.d.cts +25 -0
  14. package/dist/chat/index.d.ts +25 -0
  15. package/dist/chat/index.js +527 -0
  16. package/dist/chat/index.js.map +1 -0
  17. package/dist/chat.service-DBKq9I2c.d.cts +124 -0
  18. package/dist/chat.service-RQn8UTXD.d.ts +124 -0
  19. package/dist/content/index.cjs +3769 -0
  20. package/dist/content/index.cjs.map +1 -0
  21. package/dist/content/index.d.cts +225 -0
  22. package/dist/content/index.d.ts +225 -0
  23. package/dist/content/index.js +3738 -0
  24. package/dist/content/index.js.map +1 -0
  25. package/dist/core/index.cjs +1040 -0
  26. package/dist/core/index.cjs.map +1 -0
  27. package/dist/core/index.d.cts +232 -0
  28. package/dist/core/index.d.ts +232 -0
  29. package/dist/core/index.js +969 -0
  30. package/dist/core/index.js.map +1 -0
  31. package/dist/create-ai-BhNaz86i.d.ts +268 -0
  32. package/dist/create-ai-DGZFBOA1.d.cts +268 -0
  33. package/dist/hooks/index.cjs +5056 -0
  34. package/dist/hooks/index.cjs.map +1 -0
  35. package/dist/hooks/index.d.cts +210 -0
  36. package/dist/hooks/index.d.ts +210 -0
  37. package/dist/hooks/index.js +5045 -0
  38. package/dist/hooks/index.js.map +1 -0
  39. package/dist/index-DjX9ZKuM.d.cts +14 -0
  40. package/dist/index-DxLvE588.d.ts +14 -0
  41. package/dist/index-fXjxTR5W.d.cts +66 -0
  42. package/dist/index-fXjxTR5W.d.ts +66 -0
  43. package/dist/index.cjs +3158 -0
  44. package/dist/index.cjs.map +1 -0
  45. package/dist/index.d.cts +11 -0
  46. package/dist/index.d.ts +11 -0
  47. package/dist/index.js +3048 -0
  48. package/dist/index.js.map +1 -0
  49. package/dist/provider.factory-COsnprLH.d.cts +110 -0
  50. package/dist/provider.factory-CpWFyjbw.d.ts +110 -0
  51. package/dist/providers/index.cjs +2410 -0
  52. package/dist/providers/index.cjs.map +1 -0
  53. package/dist/providers/index.d.cts +333 -0
  54. package/dist/providers/index.d.ts +333 -0
  55. package/dist/providers/index.js +2376 -0
  56. package/dist/providers/index.js.map +1 -0
  57. package/dist/request-deduplicator.util-NDo0_n1y.d.cts +50 -0
  58. package/dist/request-deduplicator.util-NDo0_n1y.d.ts +50 -0
  59. package/dist/wizard/index.cjs +230 -0
  60. package/dist/wizard/index.cjs.map +1 -0
  61. package/dist/wizard/index.d.cts +86 -0
  62. package/dist/wizard/index.d.ts +86 -0
  63. package/dist/wizard/index.js +223 -0
  64. package/dist/wizard/index.js.map +1 -0
  65. package/package.json +111 -4
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/wizard/content.wizard.ts","../../src/wizard/image.wizard.ts","../../src/wizard/video.wizard.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["\nimport type { WizardStep } from './base.wizard';\nimport type { BlogGenerationRequest, SocialContentRequest, VideoScriptRequest } from '../content/domain/entities/ContentGeneration';\n\nexport type ContentType = 'blog' | 'social' | 'script' | 'news' | 'ebook' | 'podcast';\n\nexport type ContentWizardStep =\n | 'select-type'\n | 'input-topic'\n | 'configure'\n | 'advanced'\n | 'preview'\n | 'generating'\n | 'results';\n\nexport interface ContentWizardData {\n contentType?: ContentType;\n\n topic?: string;\n description?: string;\n\n tone?: 'professional' | 'casual' | 'enthusiastic' | 'humorous' | 'dramatic' | 'educational';\n platform?: 'twitter' | 'linkedin' | 'instagram' | 'threads' | 'tiktok' | 'facebook';\n targetAudience?: string;\n wordCount?: number;\n duration?: number;\n\n keywords?: string[];\n includeImages?: boolean;\n includeCallToAction?: boolean;\n seoOptimization?: boolean;\n language?: string;\n\n generatedContent?: string;\n generatedId?: string;\n}\n\nexport const CONTENT_WIZARD_STEPS: ReadonlyArray<WizardStep<ContentWizardStep>> = [\n {\n id: 'select-type',\n label: 'Select Type',\n icon: 'Layers',\n description: 'Choose the type of content you want to generate',\n validate: (data) => Boolean((data as ContentWizardData).contentType),\n },\n {\n id: 'input-topic',\n label: 'Topic',\n icon: 'Lightbulb',\n description: 'Enter your topic or idea',\n validate: (data) => {\n const topic = (data as ContentWizardData).topic;\n return typeof topic === 'string' && topic.length > 0;\n },\n },\n {\n id: 'configure',\n label: 'Configure',\n icon: 'Settings',\n description: 'Set tone, audience, and platform',\n validate: (data) => {\n const d = data as ContentWizardData;\n return Boolean(d.tone && d.targetAudience);\n },\n },\n {\n id: 'advanced',\n label: 'Advanced',\n icon: 'Sliders',\n description: 'Additional options and optimizations',\n optional: true,\n },\n {\n id: 'preview',\n label: 'Preview',\n icon: 'Eye',\n description: 'Review your settings before generation',\n },\n {\n id: 'generating',\n label: 'Generating',\n icon: 'Sparkles',\n description: 'AI is generating your content',\n },\n {\n id: 'results',\n label: 'Results',\n icon: 'CheckCircle',\n description: 'Your generated content is ready',\n },\n];\n\nexport function buildContentRequest(\n data: ContentWizardData,\n): BlogGenerationRequest | SocialContentRequest | VideoScriptRequest {\n switch (data.contentType) {\n case 'blog':\n return {\n topic: data.topic ?? '',\n blogType: 'tutorial',\n targetKeywords: data.keywords ?? [],\n tone: data.tone ?? 'professional',\n wordCount: data.wordCount ?? 1000,\n targetAudience: data.targetAudience ?? '',\n seoOptimization: data.seoOptimization ?? false,\n includeImages: data.includeImages ?? false,\n includeSchema: false,\n };\n case 'social':\n return {\n topic: data.topic ?? '',\n platform: data.platform ?? 'twitter',\n tone: data.tone ?? 'casual',\n hashtags: true,\n targetAudience: data.targetAudience,\n includeCallToAction: data.includeCallToAction,\n };\n case 'script':\n return {\n topic: data.topic ?? '',\n tone: data.tone ?? 'professional',\n duration: data.duration ?? 60,\n targetAudience: data.targetAudience ?? '',\n includeVisuals: true,\n includeCallToAction: data.includeCallToAction ?? false,\n };\n default:\n throw new Error(`Unsupported content type: ${data.contentType}`);\n }\n}\n","\nimport type { WizardStep } from './base.wizard';\nimport type { ImageGenerationRequest } from '../content/domain/config/ProviderConfig';\n\nexport type ImageWizardStep =\n | 'input-prompt'\n | 'select-style'\n | 'configure'\n | 'advanced'\n | 'preview'\n | 'generating'\n | 'results';\n\nexport interface ImageWizardData {\n prompt?: string;\n\n style?: 'realistic' | 'cartoon' | 'abstract' | 'minimalist' | 'vintage';\n\n format?: 'square' | 'landscape' | 'portrait' | 'story' | 'banner';\n quality?: 'standard' | 'high' | 'ultra';\n quantity?: number;\n\n colorPalette?: string[];\n platform?: 'instagram' | 'youtube' | 'facebook' | 'twitter' | 'general';\n\n generatedImageUrl?: string;\n generatedId?: string;\n}\n\nexport const IMAGE_WIZARD_STEPS: ReadonlyArray<WizardStep<ImageWizardStep>> = [\n {\n id: 'input-prompt',\n label: 'Describe Image',\n icon: 'Image',\n description: 'Describe the image you want to create',\n validate: (data) => {\n const prompt = (data as ImageWizardData).prompt;\n return typeof prompt === 'string' && prompt.length > 0;\n },\n },\n {\n id: 'select-style',\n label: 'Style',\n icon: 'Palette',\n description: 'Choose the artistic style',\n validate: (data) => Boolean((data as ImageWizardData).style),\n },\n {\n id: 'configure',\n label: 'Configure',\n icon: 'Settings',\n description: 'Set format, quality, and quantity',\n validate: (data) => {\n const d = data as ImageWizardData;\n return Boolean(d.format && d.quality);\n },\n },\n {\n id: 'advanced',\n label: 'Advanced',\n icon: 'Sliders',\n description: 'Color palette and platform optimization',\n optional: true,\n },\n { id: 'preview', label: 'Preview', icon: 'Eye', description: 'Review your settings' },\n { id: 'generating', label: 'Generating', icon: 'Sparkles', description: 'AI is creating your image' },\n { id: 'results', label: 'Results', icon: 'Image', description: 'Your generated image is ready' },\n];\n\nexport function buildImageRequest(data: ImageWizardData): ImageGenerationRequest {\n return {\n type: 'image',\n prompt: data.prompt ?? '',\n style: data.style,\n format: data.format,\n quality: data.quality,\n quantity: data.quantity ?? 1,\n };\n}\n","\nimport type { WizardStep } from './base.wizard';\nimport type { VideoGenerationRequest, ImageToVideoRequest, VideoToVideoRequest } from '../content/domain/config/ProviderConfig';\n\nexport type VideoGenerationType = 'text-to-video' | 'image-to-video' | 'video-to-video';\n\nexport type VideoWizardStep =\n | 'select-type'\n | 'input-source'\n | 'configure'\n | 'advanced'\n | 'preview'\n | 'generating'\n | 'results';\n\nexport interface VideoWizardData {\n generationType?: VideoGenerationType;\n\n prompt?: string;\n imageUrl?: string;\n sourceVideoUrl?: string;\n\n duration?: number;\n aspectRatio?: '16:9' | '9:16' | '1:1';\n style?: 'realistic' | 'animated' | 'cinematic' | 'documentary';\n quality?: 'standard' | 'high' | 'ultra';\n\n motion?: 'slow' | 'medium' | 'fast';\n camera?: 'static' | 'pan' | 'zoom' | 'tracking';\n styleTransfer?: 'cinematic' | 'anime' | 'cartoon' | 'vintage';\n enhanceQuality?: boolean;\n\n generatedVideoUrl?: string;\n generatedId?: string;\n}\n\nconst validateSource = (data: Record<string, unknown>): boolean => {\n const d = data as VideoWizardData;\n if (d.generationType === 'text-to-video') {\n return typeof d.prompt === 'string' && d.prompt.length > 0;\n }\n if (d.generationType === 'image-to-video') {\n return typeof d.imageUrl === 'string' && d.imageUrl.length > 0;\n }\n if (d.generationType === 'video-to-video') {\n return typeof d.sourceVideoUrl === 'string' && d.sourceVideoUrl.length > 0\n && typeof d.prompt === 'string' && d.prompt.length > 0;\n }\n return false;\n};\n\nexport const VIDEO_WIZARD_STEPS: ReadonlyArray<WizardStep<VideoWizardStep>> = [\n {\n id: 'select-type',\n label: 'Select Type',\n icon: 'Video',\n description: 'Choose video generation type',\n validate: (data) => Boolean((data as VideoWizardData).generationType),\n },\n {\n id: 'input-source',\n label: 'Source',\n icon: 'FileInput',\n description: 'Provide your source (prompt, image, or video)',\n validate: validateSource,\n },\n {\n id: 'configure',\n label: 'Configure',\n icon: 'Settings',\n description: 'Set duration, aspect ratio, and style',\n validate: (data) => {\n const d = data as VideoWizardData;\n return Boolean(d.duration && d.aspectRatio);\n },\n },\n { id: 'advanced', label: 'Advanced', icon: 'Sliders', description: 'Additional video options', optional: true },\n { id: 'preview', label: 'Preview', icon: 'Eye', description: 'Review your settings' },\n { id: 'generating', label: 'Generating', icon: 'Sparkles', description: 'AI is creating your video' },\n { id: 'results', label: 'Results', icon: 'Video', description: 'Your generated video is ready' },\n];\n\nexport function buildVideoRequest(\n data: VideoWizardData,\n): VideoGenerationRequest | ImageToVideoRequest | VideoToVideoRequest {\n switch (data.generationType) {\n case 'text-to-video':\n return {\n type: 'video',\n prompt: data.prompt ?? '',\n duration: data.duration ?? 5,\n aspectRatio: data.aspectRatio ?? '16:9',\n style: data.style,\n quality: data.quality,\n } as VideoGenerationRequest;\n case 'image-to-video':\n return {\n type: 'video',\n imageUrl: data.imageUrl ?? '',\n prompt: data.prompt,\n duration: data.duration ?? 5,\n motion: data.motion ?? 'medium',\n camera: data.camera ?? 'static',\n } as ImageToVideoRequest;\n case 'video-to-video':\n return {\n type: 'video',\n sourceVideoUrl: data.sourceVideoUrl ?? '',\n prompt: data.prompt ?? '',\n styleTransfer: data.styleTransfer,\n enhanceQuality: data.enhanceQuality,\n } as VideoToVideoRequest;\n default:\n throw new Error(`Unsupported generation type: ${data.generationType}`);\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,113 @@
1
1
  {
2
2
  "name": "@umituz/web-ai",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "1.0.0",
4
+ "description": "Provider-agnostic AI engine for web and edge — text, chat, structured output and streaming over swappable providers (Anthropic, Groq, Gemini, fal, Pruna), plus a content generation suite",
5
+ "type": "module",
6
+ "main": "./dist/index.cjs",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.js",
13
+ "require": "./dist/index.cjs"
14
+ },
15
+ "./core": {
16
+ "types": "./dist/core/index.d.ts",
17
+ "import": "./dist/core/index.js",
18
+ "require": "./dist/core/index.cjs"
19
+ },
20
+ "./providers": {
21
+ "types": "./dist/providers/index.d.ts",
22
+ "import": "./dist/providers/index.js",
23
+ "require": "./dist/providers/index.cjs"
24
+ },
25
+ "./chat": {
26
+ "types": "./dist/chat/index.d.ts",
27
+ "import": "./dist/chat/index.js",
28
+ "require": "./dist/chat/index.cjs"
29
+ },
30
+ "./content": {
31
+ "types": "./dist/content/index.d.ts",
32
+ "import": "./dist/content/index.js",
33
+ "require": "./dist/content/index.cjs"
34
+ },
35
+ "./wizard": {
36
+ "types": "./dist/wizard/index.d.ts",
37
+ "import": "./dist/wizard/index.js",
38
+ "require": "./dist/wizard/index.cjs"
39
+ },
40
+ "./hooks": {
41
+ "types": "./dist/hooks/index.d.ts",
42
+ "import": "./dist/hooks/index.js",
43
+ "require": "./dist/hooks/index.cjs"
44
+ },
45
+ "./package.json": "./package.json"
46
+ },
47
+ "sideEffects": false,
48
+ "scripts": {
49
+ "typecheck": "tsc --noEmit",
50
+ "lint": "eslint .",
51
+ "build": "tsup",
52
+ "dev": "tsup --watch",
53
+ "test": "vitest run",
54
+ "test:watch": "vitest",
55
+ "version:patch": "npm version patch -m 'chore: release v%s'",
56
+ "version:minor": "npm version minor -m 'chore: release v%s'",
57
+ "version:major": "npm version major -m 'chore: release v%s'"
58
+ },
59
+ "keywords": [
60
+ "ai",
61
+ "llm",
62
+ "anthropic",
63
+ "claude",
64
+ "groq",
65
+ "gemini",
66
+ "provider-agnostic",
67
+ "chat",
68
+ "streaming",
69
+ "structured-output",
70
+ "content-generation",
71
+ "react",
72
+ "cloudflare-workers",
73
+ "typescript"
74
+ ],
75
+ "author": "umituz",
76
+ "license": "MIT",
77
+ "repository": {
78
+ "type": "git",
79
+ "url": "https://github.com/umituz/web-ai"
80
+ },
81
+ "peerDependencies": {
82
+ "@umituz/pruna-provider": ">=1.0.0",
83
+ "react": ">=18"
84
+ },
85
+ "peerDependenciesMeta": {
86
+ "@umituz/pruna-provider": {
87
+ "optional": true
88
+ },
89
+ "react": {
90
+ "optional": true
91
+ }
92
+ },
93
+ "devDependencies": {
94
+ "@eslint/js": "^9.32.0",
95
+ "@types/node": "^20.0.0",
96
+ "@types/react": "^18.2.0",
97
+ "@umituz/pruna-provider": "^1.0.9",
98
+ "eslint": "^9.32.0",
99
+ "react": "18.3.1",
100
+ "tsup": "^8.0.0",
101
+ "typescript": "~5.9.2",
102
+ "typescript-eslint": "^8.38.0",
103
+ "vitest": "^3.2.7"
104
+ },
105
+ "publishConfig": {
106
+ "access": "public"
107
+ },
108
+ "files": [
109
+ "dist",
110
+ "README.md",
111
+ "LICENSE"
112
+ ]
113
+ }