@tpitre/story-ui 2.1.5 → 2.3.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/.env.sample +82 -11
- package/README.md +130 -4
- package/dist/cli/deploy.d.ts +17 -0
- package/dist/cli/deploy.d.ts.map +1 -0
- package/dist/cli/deploy.js +696 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +55 -2
- package/dist/cli/setup.d.ts +11 -0
- package/dist/cli/setup.d.ts.map +1 -0
- package/dist/cli/setup.js +437 -110
- package/dist/mcp-server/index.d.ts +2 -0
- package/dist/mcp-server/index.d.ts.map +1 -0
- package/dist/mcp-server/index.js +138 -6
- package/dist/mcp-server/mcp-stdio-server.d.ts +3 -0
- package/dist/mcp-server/mcp-stdio-server.d.ts.map +1 -0
- package/dist/mcp-server/mcp-stdio-server.js +638 -0
- package/dist/mcp-server/routes/claude.d.ts +3 -0
- package/dist/mcp-server/routes/claude.d.ts.map +1 -0
- package/dist/mcp-server/routes/claude.js +60 -23
- package/dist/mcp-server/routes/components.d.ts +4 -0
- package/dist/mcp-server/routes/components.d.ts.map +1 -0
- package/dist/mcp-server/routes/frameworks.d.ts +38 -0
- package/dist/mcp-server/routes/frameworks.d.ts.map +1 -0
- package/dist/mcp-server/routes/frameworks.js +183 -0
- package/dist/mcp-server/routes/generateStory.d.ts +3 -0
- package/dist/mcp-server/routes/generateStory.d.ts.map +1 -0
- package/dist/mcp-server/routes/generateStory.js +274 -115
- package/dist/mcp-server/routes/generateStoryStream.d.ts +12 -0
- package/dist/mcp-server/routes/generateStoryStream.d.ts.map +1 -0
- package/dist/mcp-server/routes/generateStoryStream.js +947 -0
- package/dist/mcp-server/routes/hybridStories.d.ts +18 -0
- package/dist/mcp-server/routes/hybridStories.d.ts.map +1 -0
- package/dist/mcp-server/routes/hybridStories.js +214 -0
- package/dist/mcp-server/routes/mcpRemote.d.ts +14 -0
- package/dist/mcp-server/routes/mcpRemote.d.ts.map +1 -0
- package/dist/mcp-server/routes/mcpRemote.js +489 -0
- package/dist/mcp-server/routes/memoryStories.d.ts +26 -0
- package/dist/mcp-server/routes/memoryStories.d.ts.map +1 -0
- package/dist/mcp-server/routes/memoryStories.js +13 -7
- package/dist/mcp-server/routes/providers.d.ts +89 -0
- package/dist/mcp-server/routes/providers.d.ts.map +1 -0
- package/dist/mcp-server/routes/providers.js +369 -0
- package/dist/mcp-server/routes/storySync.d.ts +26 -0
- package/dist/mcp-server/routes/storySync.d.ts.map +1 -0
- package/dist/mcp-server/routes/streamTypes.d.ts +110 -0
- package/dist/mcp-server/routes/streamTypes.d.ts.map +1 -0
- package/dist/mcp-server/routes/streamTypes.js +18 -0
- package/dist/mcp-server/sessionManager.d.ts +50 -0
- package/dist/mcp-server/sessionManager.d.ts.map +1 -0
- package/dist/mcp-server/sessionManager.js +125 -0
- package/dist/story-generator/componentBlacklist.d.ts +21 -0
- package/dist/story-generator/componentBlacklist.d.ts.map +1 -0
- package/dist/story-generator/componentBlacklist.js +4 -0
- package/dist/story-generator/componentDiscovery.d.ts +28 -0
- package/dist/story-generator/componentDiscovery.d.ts.map +1 -0
- package/dist/story-generator/componentRegistryGenerator.d.ts +49 -0
- package/dist/story-generator/componentRegistryGenerator.d.ts.map +1 -0
- package/dist/story-generator/componentRegistryGenerator.js +205 -0
- package/dist/story-generator/configLoader.d.ts +33 -0
- package/dist/story-generator/configLoader.d.ts.map +1 -0
- package/dist/story-generator/configLoader.js +8 -1
- package/dist/story-generator/considerationsLoader.d.ts +32 -0
- package/dist/story-generator/considerationsLoader.d.ts.map +1 -0
- package/dist/story-generator/considerationsLoader.js +2 -1
- package/dist/story-generator/documentation-sources.d.ts +28 -0
- package/dist/story-generator/documentation-sources.d.ts.map +1 -0
- package/dist/story-generator/documentationLoader.d.ts +64 -0
- package/dist/story-generator/documentationLoader.d.ts.map +1 -0
- package/dist/story-generator/documentationLoader.js +4 -3
- package/dist/story-generator/dynamicPackageDiscovery.d.ts +97 -0
- package/dist/story-generator/dynamicPackageDiscovery.d.ts.map +1 -0
- package/dist/story-generator/dynamicPackageDiscovery.js +31 -22
- package/dist/story-generator/enhancedComponentDiscovery.d.ts +125 -0
- package/dist/story-generator/enhancedComponentDiscovery.d.ts.map +1 -0
- package/dist/story-generator/enhancedComponentDiscovery.js +162 -21
- package/dist/story-generator/framework-adapters/angular-adapter.d.ts +40 -0
- package/dist/story-generator/framework-adapters/angular-adapter.d.ts.map +1 -0
- package/dist/story-generator/framework-adapters/angular-adapter.js +427 -0
- package/dist/story-generator/framework-adapters/base-adapter.d.ts +75 -0
- package/dist/story-generator/framework-adapters/base-adapter.d.ts.map +1 -0
- package/dist/story-generator/framework-adapters/base-adapter.js +147 -0
- package/dist/story-generator/framework-adapters/framework-detector.d.ts +55 -0
- package/dist/story-generator/framework-adapters/framework-detector.d.ts.map +1 -0
- package/dist/story-generator/framework-adapters/framework-detector.js +323 -0
- package/dist/story-generator/framework-adapters/index.d.ts +97 -0
- package/dist/story-generator/framework-adapters/index.d.ts.map +1 -0
- package/dist/story-generator/framework-adapters/index.js +198 -0
- package/dist/story-generator/framework-adapters/react-adapter.d.ts +40 -0
- package/dist/story-generator/framework-adapters/react-adapter.d.ts.map +1 -0
- package/dist/story-generator/framework-adapters/react-adapter.js +316 -0
- package/dist/story-generator/framework-adapters/svelte-adapter.d.ts +40 -0
- package/dist/story-generator/framework-adapters/svelte-adapter.d.ts.map +1 -0
- package/dist/story-generator/framework-adapters/svelte-adapter.js +372 -0
- package/dist/story-generator/framework-adapters/types.d.ts +182 -0
- package/dist/story-generator/framework-adapters/types.d.ts.map +1 -0
- package/dist/story-generator/framework-adapters/types.js +8 -0
- package/dist/story-generator/framework-adapters/vue-adapter.d.ts +36 -0
- package/dist/story-generator/framework-adapters/vue-adapter.d.ts.map +1 -0
- package/dist/story-generator/framework-adapters/vue-adapter.js +336 -0
- package/dist/story-generator/framework-adapters/web-components-adapter.d.ts +54 -0
- package/dist/story-generator/framework-adapters/web-components-adapter.d.ts.map +1 -0
- package/dist/story-generator/framework-adapters/web-components-adapter.js +387 -0
- package/dist/story-generator/generateStory.d.ts +7 -0
- package/dist/story-generator/generateStory.d.ts.map +1 -0
- package/dist/story-generator/gitignoreManager.d.ts +50 -0
- package/dist/story-generator/gitignoreManager.d.ts.map +1 -0
- package/dist/story-generator/gitignoreManager.js +7 -6
- package/dist/story-generator/imageProcessor.d.ts +80 -0
- package/dist/story-generator/imageProcessor.d.ts.map +1 -0
- package/dist/story-generator/imageProcessor.js +391 -0
- package/dist/story-generator/inMemoryStoryService.d.ts +89 -0
- package/dist/story-generator/inMemoryStoryService.d.ts.map +1 -0
- package/dist/story-generator/llm-providers/base-provider.d.ts +36 -0
- package/dist/story-generator/llm-providers/base-provider.d.ts.map +1 -0
- package/dist/story-generator/llm-providers/base-provider.js +135 -0
- package/dist/story-generator/llm-providers/claude-provider.d.ts +23 -0
- package/dist/story-generator/llm-providers/claude-provider.d.ts.map +1 -0
- package/dist/story-generator/llm-providers/claude-provider.js +414 -0
- package/dist/story-generator/llm-providers/gemini-provider.d.ts +24 -0
- package/dist/story-generator/llm-providers/gemini-provider.d.ts.map +1 -0
- package/dist/story-generator/llm-providers/gemini-provider.js +406 -0
- package/dist/story-generator/llm-providers/index.d.ts +63 -0
- package/dist/story-generator/llm-providers/index.d.ts.map +1 -0
- package/dist/story-generator/llm-providers/index.js +169 -0
- package/dist/story-generator/llm-providers/openai-provider.d.ts +24 -0
- package/dist/story-generator/llm-providers/openai-provider.d.ts.map +1 -0
- package/dist/story-generator/llm-providers/openai-provider.js +458 -0
- package/dist/story-generator/llm-providers/settings-manager.d.ts +75 -0
- package/dist/story-generator/llm-providers/settings-manager.d.ts.map +1 -0
- package/dist/story-generator/llm-providers/settings-manager.js +173 -0
- package/dist/story-generator/llm-providers/story-llm-service.d.ts +79 -0
- package/dist/story-generator/llm-providers/story-llm-service.d.ts.map +1 -0
- package/dist/story-generator/llm-providers/story-llm-service.js +240 -0
- package/dist/story-generator/llm-providers/types.d.ts +153 -0
- package/dist/story-generator/llm-providers/types.d.ts.map +1 -0
- package/dist/story-generator/llm-providers/types.js +8 -0
- package/dist/story-generator/logger.d.ts +14 -0
- package/dist/story-generator/logger.d.ts.map +1 -0
- package/dist/story-generator/logger.js +119 -0
- package/dist/story-generator/postProcessStory.d.ts +6 -0
- package/dist/story-generator/postProcessStory.d.ts.map +1 -0
- package/dist/story-generator/postProcessStory.js +8 -7
- package/dist/story-generator/productionGitignoreManager.d.ts +91 -0
- package/dist/story-generator/productionGitignoreManager.d.ts.map +1 -0
- package/dist/story-generator/productionGitignoreManager.js +11 -10
- package/dist/story-generator/promptGenerator.d.ts +48 -0
- package/dist/story-generator/promptGenerator.d.ts.map +1 -0
- package/dist/story-generator/promptGenerator.js +186 -1
- package/dist/story-generator/storyHistory.d.ts +44 -0
- package/dist/story-generator/storyHistory.d.ts.map +1 -0
- package/dist/story-generator/storySync.d.ts +68 -0
- package/dist/story-generator/storySync.d.ts.map +1 -0
- package/dist/story-generator/storyTracker.d.ts +48 -0
- package/dist/story-generator/storyTracker.d.ts.map +1 -0
- package/dist/story-generator/storyTracker.js +2 -1
- package/dist/story-generator/storyValidator.d.ts +6 -0
- package/dist/story-generator/storyValidator.d.ts.map +1 -0
- package/dist/story-generator/universalDesignSystemAdapter.d.ts +68 -0
- package/dist/story-generator/universalDesignSystemAdapter.d.ts.map +1 -0
- package/dist/story-generator/universalDesignSystemAdapter.js +141 -3
- package/dist/story-generator/urlRedirectService.d.ts +21 -0
- package/dist/story-generator/urlRedirectService.d.ts.map +1 -0
- package/dist/story-generator/urlRedirectService.js +140 -0
- package/dist/story-generator/validateStory.d.ts +19 -0
- package/dist/story-generator/validateStory.d.ts.map +1 -0
- package/dist/story-generator/validateStory.js +6 -2
- package/dist/story-generator/visionPrompts.d.ts +88 -0
- package/dist/story-generator/visionPrompts.d.ts.map +1 -0
- package/dist/story-generator/visionPrompts.js +462 -0
- package/dist/story-ui.config.d.ts +78 -0
- package/dist/story-ui.config.d.ts.map +1 -0
- package/dist/templates/StoryUI/StoryUIPanel.d.ts +4 -0
- package/dist/templates/StoryUI/StoryUIPanel.d.ts.map +1 -0
- package/dist/templates/StoryUI/StoryUIPanel.js +1874 -0
- package/dist/templates/StoryUI/StoryUIPanel.stories.d.ts +18 -0
- package/dist/templates/StoryUI/StoryUIPanel.stories.d.ts.map +1 -0
- package/dist/templates/StoryUI/StoryUIPanel.stories.js +37 -0
- package/dist/templates/StoryUI/index.d.ts +3 -0
- package/dist/templates/StoryUI/index.d.ts.map +1 -0
- package/dist/templates/StoryUI/index.js +2 -0
- package/package.json +35 -4
- package/templates/StoryUI/StoryUIPanel.tsx +1973 -388
- package/templates/StoryUI/index.tsx +1 -1
- package/templates/StoryUI/manager.tsx +264 -0
- package/templates/mcp-config-claude.json +11 -0
- package/templates/mcp-example.md +76 -0
- package/templates/production-app/.env.example +11 -0
- package/templates/production-app/index.html +66 -0
- package/templates/production-app/package.json +30 -0
- package/templates/production-app/public/favicon.svg +5 -0
- package/templates/production-app/src/App.tsx +1157 -0
- package/templates/production-app/src/LivePreviewRenderer.tsx +420 -0
- package/templates/production-app/src/componentRegistry.ts +315 -0
- package/templates/production-app/src/considerations.ts +16 -0
- package/templates/production-app/src/index.css +284 -0
- package/templates/production-app/src/main.tsx +25 -0
- package/templates/production-app/tsconfig.json +32 -0
- package/templates/production-app/tsconfig.node.json +11 -0
- package/templates/production-app/vite.config.ts +83 -0
- package/templates/react-import-rule.json +2 -2
- package/dist/index.js +0 -12
- package/dist/story-ui.config.loader.js +0 -205
package/.env.sample
CHANGED
|
@@ -1,20 +1,91 @@
|
|
|
1
1
|
# Story UI Configuration
|
|
2
|
-
# Copy this file to .env and
|
|
2
|
+
# Copy this file to .env and configure your API keys
|
|
3
3
|
|
|
4
|
-
#
|
|
4
|
+
# =============================================================================
|
|
5
|
+
# LLM Provider API Keys
|
|
6
|
+
# =============================================================================
|
|
7
|
+
# Configure one or more providers. Story UI will use the first available.
|
|
8
|
+
|
|
9
|
+
# Claude (Anthropic)
|
|
5
10
|
# Get your API key from: https://console.anthropic.com/
|
|
6
|
-
CLAUDE_API_KEY=your-claude-api-key
|
|
11
|
+
CLAUDE_API_KEY=your-claude-api-key
|
|
12
|
+
# Alternative key name also supported:
|
|
13
|
+
# ANTHROPIC_API_KEY=your-claude-api-key
|
|
14
|
+
|
|
15
|
+
# OpenAI
|
|
16
|
+
# Get your API key from: https://platform.openai.com/api-keys
|
|
17
|
+
OPENAI_API_KEY=your-openai-api-key
|
|
18
|
+
# Optional: Organization ID for team accounts
|
|
19
|
+
# OPENAI_ORG_ID=your-org-id
|
|
20
|
+
|
|
21
|
+
# Google Gemini
|
|
22
|
+
# Get your API key from: https://aistudio.google.com/apikey
|
|
23
|
+
GEMINI_API_KEY=your-gemini-api-key
|
|
24
|
+
# Alternative key name also supported:
|
|
25
|
+
# GOOGLE_API_KEY=your-gemini-api-key
|
|
26
|
+
|
|
27
|
+
# =============================================================================
|
|
28
|
+
# Default Model Selection
|
|
29
|
+
# =============================================================================
|
|
30
|
+
# These settings define the default provider and model for story generation.
|
|
7
31
|
|
|
8
|
-
#
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
#
|
|
32
|
+
# Default LLM provider (claude, openai, gemini)
|
|
33
|
+
DEFAULT_PROVIDER=claude
|
|
34
|
+
|
|
35
|
+
# Default model ID
|
|
36
|
+
# Claude models:
|
|
37
|
+
# claude-opus-4-5-20251101 - Most capable, highest quality
|
|
38
|
+
# claude-sonnet-4-5-20250514 - Great balance of speed and quality (recommended)
|
|
12
39
|
# claude-3-7-sonnet-20250219 - Fast and efficient
|
|
13
40
|
# claude-3-5-haiku-20241022 - Fastest, good for simple tasks
|
|
14
|
-
|
|
41
|
+
# OpenAI models:
|
|
42
|
+
# gpt-5.1 - Latest GPT-5 with adaptive reasoning
|
|
43
|
+
# gpt-5.1-thinking - Extended thinking for complex tasks
|
|
44
|
+
# gpt-5 - Original GPT-5
|
|
45
|
+
# gpt-4o - Fast multimodal (recommended)
|
|
46
|
+
# gpt-4o-mini - Budget option
|
|
47
|
+
# o1 - Reasoning model
|
|
48
|
+
# Gemini models:
|
|
49
|
+
# gemini-3-pro - Most intelligent Gemini (recommended)
|
|
50
|
+
# gemini-2.0-flash - Fast and efficient
|
|
51
|
+
# gemini-1.5-pro - Legacy, large context
|
|
52
|
+
DEFAULT_MODEL=claude-sonnet-4-5-20250514
|
|
15
53
|
|
|
54
|
+
# Legacy model config (still supported):
|
|
55
|
+
# CLAUDE_MODEL=claude-sonnet-4-20250514
|
|
56
|
+
# OPENAI_MODEL=gpt-4o
|
|
57
|
+
# GEMINI_MODEL=gemini-2.0-flash
|
|
16
58
|
|
|
17
|
-
#
|
|
18
|
-
#
|
|
59
|
+
# =============================================================================
|
|
60
|
+
# DevOps Guardrails (Optional)
|
|
61
|
+
# =============================================================================
|
|
62
|
+
# These settings restrict which providers and models users can select in the UI.
|
|
63
|
+
# Useful for enterprise deployments or cost control.
|
|
64
|
+
|
|
65
|
+
# Allowed providers (comma-separated)
|
|
66
|
+
# If not set, all configured providers are available
|
|
67
|
+
# ALLOWED_PROVIDERS=claude,openai,gemini
|
|
19
68
|
|
|
20
|
-
|
|
69
|
+
# Allowed models (comma-separated)
|
|
70
|
+
# If not set, all models from allowed providers are available
|
|
71
|
+
# ALLOWED_MODELS=claude-sonnet-4-5-20250514,gpt-4o,gemini-2.0-flash
|
|
72
|
+
|
|
73
|
+
# Single provider mode - hide provider selection in UI
|
|
74
|
+
# Set to 'true' to lock users to the default provider
|
|
75
|
+
# SINGLE_PROVIDER_MODE=false
|
|
76
|
+
|
|
77
|
+
# =============================================================================
|
|
78
|
+
# Server Configuration
|
|
79
|
+
# =============================================================================
|
|
80
|
+
|
|
81
|
+
# MCP server port (default: 4001)
|
|
82
|
+
# PORT=4001
|
|
83
|
+
|
|
84
|
+
# Production mode - use in-memory story storage
|
|
85
|
+
# STORY_UI_PRODUCTION=true
|
|
86
|
+
|
|
87
|
+
# CORS allowed origins (comma-separated) for external access
|
|
88
|
+
# STORY_UI_ALLOWED_ORIGINS=https://your-domain.com,https://storybook.your-domain.com
|
|
89
|
+
|
|
90
|
+
# Optional: Custom config file path
|
|
91
|
+
# STORY_UI_CONFIG_PATH=./story-ui.config.js
|
package/README.md
CHANGED
|
@@ -17,6 +17,16 @@ Story UI revolutionizes component documentation by automatically generating Stor
|
|
|
17
17
|
- **Intelligent Component Discovery**: Automatically finds and analyzes your components
|
|
18
18
|
- **TypeScript Support**: Full TypeScript integration with type-aware story generation
|
|
19
19
|
|
|
20
|
+
### 🆕 Version 3.0 Features
|
|
21
|
+
- **Multi-Provider LLM Support**: Choose between Claude, OpenAI, or Gemini
|
|
22
|
+
- **Production Deployment**: Deploy as a standalone web app with Railway or Cloudflare
|
|
23
|
+
- **Post-Generation Validation**: Automatic syntax validation with error detection
|
|
24
|
+
- **Children Props Preservation**: Intelligent handling of `children: 'text'` in args
|
|
25
|
+
- **Image/Vision Support**: Attach screenshots for visual component requests
|
|
26
|
+
- **In-Memory Storage**: Production mode without file system writes
|
|
27
|
+
- **REST API**: Full CRUD operations for story management
|
|
28
|
+
- **Design System Agnosticism**: Core code is framework-independent
|
|
29
|
+
|
|
20
30
|
### 📚 Documentation System (New!)
|
|
21
31
|
- **Auto-Generated Structure**: `npx story-ui init` creates a `story-ui-docs/` directory template
|
|
22
32
|
- **Directory-Based Documentation**: Organize design system docs in a structured directory
|
|
@@ -30,6 +40,7 @@ Story UI revolutionizes component documentation by automatically generating Stor
|
|
|
30
40
|
- **Production Mode**: Clean deployment without generated stories
|
|
31
41
|
- **Auto Port Detection**: Automatically finds available ports
|
|
32
42
|
- **Hot Reload Integration**: Stories update automatically as you chat
|
|
43
|
+
- **MCP Server Integration**: Use Story UI directly from Claude Desktop or other MCP clients
|
|
33
44
|
|
|
34
45
|
## 🚀 Quick Start
|
|
35
46
|
|
|
@@ -72,17 +83,17 @@ Story UI uses advanced AI to understand your component library and generate appr
|
|
|
72
83
|
export default {
|
|
73
84
|
// Component library import path
|
|
74
85
|
importPath: 'your-component-library',
|
|
75
|
-
|
|
86
|
+
|
|
76
87
|
// Path to your local components (for custom libraries)
|
|
77
88
|
componentsPath: './src/components',
|
|
78
|
-
|
|
89
|
+
|
|
79
90
|
// Generated stories location
|
|
80
91
|
generatedStoriesPath: './src/stories/generated/',
|
|
81
|
-
|
|
92
|
+
|
|
82
93
|
// Story configuration
|
|
83
94
|
storyPrefix: 'Generated/',
|
|
84
95
|
defaultAuthor: 'Story UI AI',
|
|
85
|
-
|
|
96
|
+
|
|
86
97
|
// Layout rules for multi-column layouts
|
|
87
98
|
layoutRules: {
|
|
88
99
|
multiColumnWrapper: 'div',
|
|
@@ -147,6 +158,42 @@ AI: "I'll modify the existing story to make the buttons full width..."
|
|
|
147
158
|
|
|
148
159
|
The AI will preserve your existing code and only modify what you requested!
|
|
149
160
|
|
|
161
|
+
## 🤖 MCP Server Integration
|
|
162
|
+
|
|
163
|
+
Story UI can be used as a Model Context Protocol (MCP) server, allowing you to generate stories directly from Claude Desktop or other MCP-compatible clients.
|
|
164
|
+
|
|
165
|
+
### Quick Setup for Claude Desktop
|
|
166
|
+
|
|
167
|
+
1. Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):
|
|
168
|
+
|
|
169
|
+
```json
|
|
170
|
+
{
|
|
171
|
+
"mcpServers": {
|
|
172
|
+
"story-ui": {
|
|
173
|
+
"command": "npx",
|
|
174
|
+
"args": ["@tpitre/story-ui", "mcp"],
|
|
175
|
+
"env": {
|
|
176
|
+
"CLAUDE_API_KEY": "your-claude-api-key-here"
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
2. Start the Story UI HTTP server in your project:
|
|
184
|
+
```bash
|
|
185
|
+
story-ui start
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
3. Restart Claude Desktop
|
|
189
|
+
|
|
190
|
+
Now you can generate stories directly in Claude Desktop! Just ask:
|
|
191
|
+
- "Use Story UI to create a hero section with a title and CTA button"
|
|
192
|
+
- "List all available components in Story UI"
|
|
193
|
+
- "Show me the stories I've generated"
|
|
194
|
+
|
|
195
|
+
For detailed MCP setup instructions, see [docs/MCP_INTEGRATION.md](docs/MCP_INTEGRATION.md).
|
|
196
|
+
|
|
150
197
|
## 📖 Documentation Support
|
|
151
198
|
|
|
152
199
|
### Directory-Based Documentation (Recommended)
|
|
@@ -218,6 +265,85 @@ npx story-ui start --port 4005
|
|
|
218
265
|
npx story-ui start --config custom-config.js
|
|
219
266
|
```
|
|
220
267
|
|
|
268
|
+
## 🚢 Production Deployment
|
|
269
|
+
|
|
270
|
+
Story UI v3 can be deployed as a standalone web application with multiple backend options.
|
|
271
|
+
|
|
272
|
+
### Prerequisites
|
|
273
|
+
|
|
274
|
+
Install the required CLI tools:
|
|
275
|
+
|
|
276
|
+
```bash
|
|
277
|
+
# Railway CLI (for backend deployment)
|
|
278
|
+
npm install -g @railway/cli
|
|
279
|
+
railway login
|
|
280
|
+
|
|
281
|
+
# Wrangler (for Cloudflare Workers - optional)
|
|
282
|
+
npm install -g wrangler
|
|
283
|
+
wrangler login
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
### Option 1: Railway Backend (Recommended)
|
|
287
|
+
|
|
288
|
+
Deploy the backend to Railway for a fully managed Node.js environment:
|
|
289
|
+
|
|
290
|
+
```bash
|
|
291
|
+
# From the project root
|
|
292
|
+
cd mcp-server
|
|
293
|
+
railway up
|
|
294
|
+
|
|
295
|
+
# Set environment variables in Railway dashboard:
|
|
296
|
+
# - ANTHROPIC_API_KEY (required for Claude)
|
|
297
|
+
# - OPENAI_API_KEY (optional for OpenAI)
|
|
298
|
+
# - GEMINI_API_KEY (optional for Gemini)
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
### Option 2: Cloudflare Workers Edge
|
|
302
|
+
|
|
303
|
+
Deploy an edge proxy to Cloudflare Workers:
|
|
304
|
+
|
|
305
|
+
```bash
|
|
306
|
+
# From the project root
|
|
307
|
+
cd cloudflare-edge
|
|
308
|
+
wrangler deploy
|
|
309
|
+
|
|
310
|
+
# Set secrets:
|
|
311
|
+
wrangler secret put ANTHROPIC_API_KEY
|
|
312
|
+
wrangler secret put OPENAI_API_KEY # optional
|
|
313
|
+
wrangler secret put GEMINI_API_KEY # optional
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
### Frontend Deployment
|
|
317
|
+
|
|
318
|
+
Deploy the chat UI to Cloudflare Pages:
|
|
319
|
+
|
|
320
|
+
```bash
|
|
321
|
+
cd test-storybooks/mantine-storybook/.story-ui-build
|
|
322
|
+
npm run build
|
|
323
|
+
wrangler pages deploy dist --project-name=story-ui-app
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
### Environment Variables
|
|
327
|
+
|
|
328
|
+
| Variable | Required | Description |
|
|
329
|
+
|----------|----------|-------------|
|
|
330
|
+
| `ANTHROPIC_API_KEY` | Yes | Claude API key from Anthropic |
|
|
331
|
+
| `OPENAI_API_KEY` | No | OpenAI API key for GPT models |
|
|
332
|
+
| `GEMINI_API_KEY` | No | Google Gemini API key |
|
|
333
|
+
| `DEFAULT_MODEL` | No | Default LLM model to use |
|
|
334
|
+
|
|
335
|
+
### REST API Endpoints
|
|
336
|
+
|
|
337
|
+
The backend provides these endpoints:
|
|
338
|
+
|
|
339
|
+
| Method | Endpoint | Description |
|
|
340
|
+
|--------|----------|-------------|
|
|
341
|
+
| `GET` | `/story-ui/providers` | List available LLM providers |
|
|
342
|
+
| `POST` | `/story-ui/generate` | Generate a new story |
|
|
343
|
+
| `GET` | `/story-ui/stories` | List all stories |
|
|
344
|
+
| `GET` | `/story-ui/stories/:id` | Get a specific story |
|
|
345
|
+
| `DELETE` | `/story-ui/stories/:id` | Delete a story |
|
|
346
|
+
|
|
221
347
|
## 🤝 Contributing
|
|
222
348
|
|
|
223
349
|
We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
interface DeployOptions {
|
|
2
|
+
backend?: boolean;
|
|
3
|
+
frontend?: boolean;
|
|
4
|
+
app?: boolean;
|
|
5
|
+
platform?: 'railway' | 'render' | 'fly';
|
|
6
|
+
backendUrl?: string;
|
|
7
|
+
storybookDir?: string;
|
|
8
|
+
projectName?: string;
|
|
9
|
+
dryRun?: boolean;
|
|
10
|
+
init?: boolean;
|
|
11
|
+
edge?: boolean;
|
|
12
|
+
pages?: boolean;
|
|
13
|
+
all?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export declare function deployCommand(options: DeployOptions): Promise<void>;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=deploy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../cli/deploy.ts"],"names":[],"mappings":"AASA,UAAU,aAAa;IAErB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,KAAK,CAAC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAqpBD,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAwHzE"}
|