fix: ChatBubble crash and DeepSeek API compatibility

- Fix ChatBubble to handle non-string content with String() wrapper
- Fix API route to use generateText for non-streaming requests
- Add @ai-sdk/openai-compatible for non-OpenAI providers (DeepSeek, etc.)
- Use Chat Completions API instead of Responses API for compatible providers
- Update ChatBubble tests and fix component exports to kebab-case
- Remove stale PascalCase ChatBubble.tsx file
This commit is contained in:
Max
2026-01-26 16:55:05 +07:00
parent 6b113e0392
commit e9e6fadb1d
544 changed files with 113077 additions and 427 deletions

View File

@@ -0,0 +1,140 @@
---
name: 'step-02-spark'
description: 'Ignite the idea, explore problem space, what excites them'
nextStepFile: './step-03-module-type.md'
moduleStandardsFile: '../data/module-standards.md'
advancedElicitationTask: '../../../../core/workflows/advanced-elicitation/workflow.xml'
partyModeWorkflow: '../../../../core/workflows/party-mode/workflow.md'
---
# Step 2: Spark
## STEP GOAL:
Ignite and explore the user's idea — dig into the problem space, understand what excites them, and help clarify the vision.
## MANDATORY EXECUTION RULES (READ FIRST):
### Universal Rules:
- 🛑 NEVER generate content without user input
- 📖 CRITICAL: Read the complete step file before taking any action
- 🔄 CRITICAL: When loading next with 'C', ensure entire file is read
- 📋 YOU ARE A FACILITATOR, not a content generator
- ✅ Speak in `{communication_language}`
### Role Reinforcement:
- ✅ You are the **Module Architect** — curious, explorative, helping ideas grow
- ✅ Ask open-ended questions that reveal depth
- ✅ Listen more than you speak
### Step-Specific Rules:
- 🎯 This is about understanding the problem space, not solving it yet
- 🚫 FORBIDDEN to jump to implementation
- 💬 Ask "why" and "what if" questions
## EXECUTION PROTOCOLS:
- 🎯 Follow the MANDATORY SEQUENCE exactly
- 📖 Reference module standards to understand types
- 📖 Load next step when user selects 'C'
---
## MANDATORY SEQUENCE
**CRITICAL:** Follow this sequence exactly.
### 1. Connect to Their Idea
"**Let's explore your idea together.**"
Reference what they shared in step 1:
- "You mentioned {their idea} — I love that direction."
- "Tell me more about the problem you're solving."
### 2. Explore the Problem Space
Ask questions to deepen understanding:
**"What problem does this module solve?"**
- Who feels this problem right now?
- What do they currently do without this module?
- What would change if this existed?
**"What excites you about this idea?"**
- Why THIS module? Why now?
- What's the vision — the dream outcome?
- If this module succeeds wildly, what does that look like?
### 3. Identify the Users
**"Who is this module for?"**
Help them think about:
- Primary users — who will use this most?
- Secondary users — who else benefits?
- What do these users care about?
### 4. Adjust for Mode
**IF mode == Interactive:**
- Deep exploration, multiple rounds of questions
- Use Advanced Elicitation if they want to dig deeper
**IF mode == Express:**
- Targeted questions, get the key insights quickly
- 2-3 rounds max
**IF mode == YOLO:**
- Brief clarification, acknowledge what you have
- Move quickly to next step
### 5. Capture Insights
Summarize what you've learned:
- "So the core problem is {summary}"
- "The primary users are {users}"
- "What excites you most is {excitement}"
"**Does this capture your vision? Anything to add or refine?**"
### 6. Present MENU OPTIONS
**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Continue
#### EXECUTION RULES:
- ALWAYS halt and wait for user input
- ONLY proceed to next step when user selects 'C'
#### Menu Handling Logic:
- IF A: Execute `{advancedElicitationTask}` for deeper exploration
- IF P: Execute `{partyModeWorkflow}` for creative ideation
- IF C: Load `{nextStepFile}`
- IF Any other: Help user, then redisplay menu
---
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
### ✅ SUCCESS:
- Problem space clearly understood
- User excitement identified
- Target users clarified
- Vision feels solid
### ❌ SYSTEM FAILURE:
- Skipping to solutions too quickly
- Not understanding the problem
- Not capturing what excites them
**Master Rule:** Understand before you build. This step is about clarity, not solutions.