liang-opencode-suite 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.
- package/PROMPT.md +368 -0
- package/README.md +106 -0
- package/dist/cli.d.ts +6 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +82 -0
- package/dist/cli.js.map +1 -0
- package/dist/steps/check-opencode.d.ts +10 -0
- package/dist/steps/check-opencode.d.ts.map +1 -0
- package/dist/steps/check-opencode.js +52 -0
- package/dist/steps/check-opencode.js.map +1 -0
- package/dist/steps/configure-api-keys.d.ts +12 -0
- package/dist/steps/configure-api-keys.d.ts.map +1 -0
- package/dist/steps/configure-api-keys.js +45 -0
- package/dist/steps/configure-api-keys.js.map +1 -0
- package/dist/steps/install-agents.d.ts +6 -0
- package/dist/steps/install-agents.d.ts.map +1 -0
- package/dist/steps/install-agents.js +56 -0
- package/dist/steps/install-agents.js.map +1 -0
- package/dist/steps/install-commands.d.ts +6 -0
- package/dist/steps/install-commands.d.ts.map +1 -0
- package/dist/steps/install-commands.js +48 -0
- package/dist/steps/install-commands.js.map +1 -0
- package/dist/steps/install-skills.d.ts +7 -0
- package/dist/steps/install-skills.d.ts.map +1 -0
- package/dist/steps/install-skills.js +104 -0
- package/dist/steps/install-skills.js.map +1 -0
- package/dist/steps/install-superpowers.d.ts +7 -0
- package/dist/steps/install-superpowers.d.ts.map +1 -0
- package/dist/steps/install-superpowers.js +74 -0
- package/dist/steps/install-superpowers.js.map +1 -0
- package/dist/steps/select-providers.d.ts +11 -0
- package/dist/steps/select-providers.d.ts.map +1 -0
- package/dist/steps/select-providers.js +47 -0
- package/dist/steps/select-providers.js.map +1 -0
- package/dist/steps/setup-minimax-mcp.d.ts +8 -0
- package/dist/steps/setup-minimax-mcp.d.ts.map +1 -0
- package/dist/steps/setup-minimax-mcp.js +162 -0
- package/dist/steps/setup-minimax-mcp.js.map +1 -0
- package/dist/steps/verify-installation.d.ts +11 -0
- package/dist/steps/verify-installation.d.ts.map +1 -0
- package/dist/steps/verify-installation.js +108 -0
- package/dist/steps/verify-installation.js.map +1 -0
- package/dist/types.d.ts +64 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/file-writer.d.ts +9 -0
- package/dist/utils/file-writer.d.ts.map +1 -0
- package/dist/utils/file-writer.js +58 -0
- package/dist/utils/file-writer.js.map +1 -0
- package/dist/utils/git-clone.d.ts +7 -0
- package/dist/utils/git-clone.d.ts.map +1 -0
- package/dist/utils/git-clone.js +44 -0
- package/dist/utils/git-clone.js.map +1 -0
- package/dist/utils/index.d.ts +7 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +7 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +8 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +23 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/os-utils.d.ts +20 -0
- package/dist/utils/os-utils.d.ts.map +1 -0
- package/dist/utils/os-utils.js +127 -0
- package/dist/utils/os-utils.js.map +1 -0
- package/dist/utils/paths.d.ts +14 -0
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/paths.js +38 -0
- package/dist/utils/paths.js.map +1 -0
- package/dist/utils/validators.d.ts +23 -0
- package/dist/utils/validators.d.ts.map +1 -0
- package/dist/utils/validators.js +63 -0
- package/dist/utils/validators.js.map +1 -0
- package/dist/wizard.d.ts +10 -0
- package/dist/wizard.d.ts.map +1 -0
- package/dist/wizard.js +347 -0
- package/dist/wizard.js.map +1 -0
- package/package.json +62 -0
- package/templates/AGENTS.md +199 -0
- package/templates/commands/commit.md +6 -0
- package/templates/commands/component.md +9 -0
- package/templates/commands/explain.md +7 -0
- package/templates/commands/review.md +7 -0
- package/templates/commands/test.md +8 -0
- package/templates/commands/vibe-select.md +147 -0
- package/templates/oh-my-openagent.json +129 -0
- package/templates/opencode.template.json +39 -0
- package/templates/skills/agent-browser/SKILL.md +25 -0
- package/templates/skills/find-skills/SKILL.md +22 -0
- package/templates/skills/frontend-design/SKILL.md +18 -0
- package/templates/skills/skill-creator/SKILL.md +18 -0
- package/templates/skills/superpowers/SKILL.md +45 -0
- package/templates/skills/vibe-stack-guardian/SKILL.md +22 -0
package/PROMPT.md
ADDED
|
@@ -0,0 +1,368 @@
|
|
|
1
|
+
# š Liang's OpenCode Suite - One-Click Installer
|
|
2
|
+
|
|
3
|
+
**Copy and paste this entire prompt into your AI agent (Claude Code, Cursor, AmpCode, etc.) to install.**
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## šÆ Your Mission
|
|
8
|
+
|
|
9
|
+
You are an expert DevOps engineer. Install the **Liang OpenCode Suite** on this system.
|
|
10
|
+
|
|
11
|
+
The suite includes:
|
|
12
|
+
- ā
**oh-my-openagent** - 9 AI agents with optimized configurations
|
|
13
|
+
- ā
**7 Custom Skills** - Specialized workflows for development
|
|
14
|
+
- ā
**6 Custom Commands** - Streamlined CLI shortcuts
|
|
15
|
+
- ā
**Superpowers** - 14 sub-skills for advanced automation (REQUIRED)
|
|
16
|
+
- ā
**MiniMax MCP** - AI-powered web search and image understanding (Optional)
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## š PHASE 1: System Detection
|
|
21
|
+
|
|
22
|
+
Execute these commands and report the results:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
# Detect OS
|
|
26
|
+
echo "OS: $(uname -s 2>/dev/null || echo 'Windows')"
|
|
27
|
+
echo "Platform: $(uname -m 2>/dev/null || echo 'unknown')"
|
|
28
|
+
|
|
29
|
+
# Check if virtual machine
|
|
30
|
+
if [ -f /proc/cpuinfo ]; then grep -i "hypervisor\|vmware\|virtualbox\|qemu\|xen" /proc/cpuinfo | head -1; fi
|
|
31
|
+
system_profiler SPHardwareDataType 2>/dev/null | grep -i "virtual" || echo "Not VM or unknown"
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
**Report:** `OS: ___ | VM: Yes/No`
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## ā
PHASE 2: Prerequisites Check
|
|
39
|
+
|
|
40
|
+
Check if these are installed (run commands, show output):
|
|
41
|
+
|
|
42
|
+
| Tool | Check Command | Install if Missing |
|
|
43
|
+
|------|---------------|-------------------|
|
|
44
|
+
| **OpenCode** | `opencode --version` | https://opencode.ai |
|
|
45
|
+
| **Node.js** | `node --version` | https://nodejs.org (v18+) |
|
|
46
|
+
| **Git** | `git --version` | https://git-scm.com |
|
|
47
|
+
| **uv** (optional) | `uv --version` | See below |
|
|
48
|
+
|
|
49
|
+
### Install uv (if MiniMax MCP desired):
|
|
50
|
+
|
|
51
|
+
**macOS/Linux:**
|
|
52
|
+
```bash
|
|
53
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
**Windows (PowerShell as Admin):**
|
|
57
|
+
```powershell
|
|
58
|
+
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**Report which tools are missing and install them.**
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## š PHASE 3: Directory Setup
|
|
66
|
+
|
|
67
|
+
Create the configuration directory:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
# macOS/Linux
|
|
71
|
+
mkdir -p ~/.config/opencode
|
|
72
|
+
|
|
73
|
+
# Windows (Git Bash)
|
|
74
|
+
mkdir -p ~/.config/opencode
|
|
75
|
+
|
|
76
|
+
# Windows (PowerShell)
|
|
77
|
+
New-Item -ItemType Directory -Force -Path "$env:APPDATA\opencode"
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Set `CONFIG_DIR`:
|
|
81
|
+
- macOS/Linux: `~/.config/opencode`
|
|
82
|
+
- Windows: `$env:APPDATA\opencode` or `~/.config/opencode` (Git Bash)
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## š§ PHASE 4: Core Configuration
|
|
87
|
+
|
|
88
|
+
### Step 4.1: Create `oh-my-openagent.json`
|
|
89
|
+
|
|
90
|
+
Save this to `$CONFIG_DIR/oh-my-openagent.json`:
|
|
91
|
+
|
|
92
|
+
```json
|
|
93
|
+
{
|
|
94
|
+
"$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-openagent/dev/assets/oh-my-opencode.schema.json",
|
|
95
|
+
"agents": {
|
|
96
|
+
"sisyphus": {
|
|
97
|
+
"model": "kimi-for-coding/k2-thinking",
|
|
98
|
+
"max_tokens": 32768,
|
|
99
|
+
"thinking": { "type": "enabled", "budgetTokens": 16000, "clear_thinking": false }
|
|
100
|
+
},
|
|
101
|
+
"hephaestus": {
|
|
102
|
+
"model": "minimax-cn-coding-plan/MiniMax-M2.7-highspeed",
|
|
103
|
+
"variant": "medium",
|
|
104
|
+
"max_tokens": 32768,
|
|
105
|
+
"thinking": { "type": "enabled", "budgetTokens": 16000, "clear_thinking": false }
|
|
106
|
+
},
|
|
107
|
+
"oracle": { "model": "minimax-cn-coding-plan/MiniMax-M2.7-highspeed", "variant": "high" },
|
|
108
|
+
"explore": { "model": "minimax-cn-coding-plan/MiniMax-M2.7-highspeed" },
|
|
109
|
+
"multimodal-looker": { "model": "minimax-cn-coding-plan/MiniMax-M2.7-highspeed" },
|
|
110
|
+
"prometheus": {
|
|
111
|
+
"model": "kimi-for-coding/k2p5",
|
|
112
|
+
"max_tokens": 32768,
|
|
113
|
+
"thinking": { "type": "enabled", "budgetTokens": 16000, "clear_thinking": false },
|
|
114
|
+
"interleaved": { "field": "reasoning_content" }
|
|
115
|
+
},
|
|
116
|
+
"metis": { "model": "minimax-cn-coding-plan/MiniMax-M2.7-highspeed" },
|
|
117
|
+
"momus": { "model": "minimax-cn-coding-plan/MiniMax-M2.7-highspeed" },
|
|
118
|
+
"atlas": { "model": "minimax-cn-coding-plan/MiniMax-M2.7-highspeed" }
|
|
119
|
+
},
|
|
120
|
+
"categories": {
|
|
121
|
+
"visual-engineering": { "model": "minimax-cn-coding-plan/MiniMax-M2.7-highspeed", "max_tokens": 32768, "thinking": { "type": "enabled", "budgetTokens": 16000, "clear_thinking": false } },
|
|
122
|
+
"ultrabrain": { "model": "minimax-cn-coding-plan/MiniMax-M2.7-highspeed", "max_tokens": 32768, "thinking": { "type": "enabled", "budgetTokens": 16000, "clear_thinking": false } },
|
|
123
|
+
"deep": { "model": "minimax-cn-coding-plan/MiniMax-M2.7-highspeed", "max_tokens": 32768, "thinking": { "type": "enabled", "budgetTokens": 16000, "clear_thinking": false } },
|
|
124
|
+
"artistry": { "model": "minimax-cn-coding-plan/MiniMax-M2.7-highspeed", "max_tokens": 32768, "thinking": { "type": "enabled", "budgetTokens": 16000, "clear_thinking": false } },
|
|
125
|
+
"quick": { "model": "minimax-cn-coding-plan/MiniMax-M2.7-highspeed", "max_tokens": 32768, "thinking": { "type": "enabled", "budgetTokens": 16000, "clear_thinking": false } },
|
|
126
|
+
"unspecified-low": { "model": "minimax-cn-coding-plan/MiniMax-M2.7-highspeed", "max_tokens": 32768, "thinking": { "type": "enabled", "budgetTokens": 16000, "clear_thinking": false } },
|
|
127
|
+
"unspecified-high": { "model": "minimax-cn-coding-plan/MiniMax-M2.7-highspeed", "max_tokens": 32768, "thinking": { "type": "enabled", "budgetTokens": 16000, "clear_thinking": false } },
|
|
128
|
+
"writing": { "model": "minimax-cn-coding-plan/MiniMax-M2.7-highspeed", "max_tokens": 32768, "thinking": { "type": "enabled", "budgetTokens": 16000, "clear_thinking": false } }
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Step 4.2: Create `AGENTS.md`
|
|
134
|
+
|
|
135
|
+
Download from:
|
|
136
|
+
```bash
|
|
137
|
+
curl -o "$CONFIG_DIR/AGENTS.md" https://raw.githubusercontent.com/liang/liang-opencode-suite/main/templates/AGENTS.md
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## š PHASE 5: API Key Configuration
|
|
143
|
+
|
|
144
|
+
**Ask the user:**
|
|
145
|
+
|
|
146
|
+
> Which AI providers would you like to configure? (Select all that apply)
|
|
147
|
+
> - [ ] Kimi (Moonshot AI) - https://platform.moonshot.cn
|
|
148
|
+
> - [ ] MiniMax - https://platform.minimax.com/subscribe/token-plan
|
|
149
|
+
> - [ ] Claude (Anthropic) - https://console.anthropic.com
|
|
150
|
+
|
|
151
|
+
For each selected provider, ask for their API key:
|
|
152
|
+
|
|
153
|
+
> Enter your [Provider] API Key: [masked input]
|
|
154
|
+
|
|
155
|
+
Then create `$CONFIG_DIR/opencode.json`:
|
|
156
|
+
|
|
157
|
+
```json
|
|
158
|
+
{
|
|
159
|
+
"$schema": "https://opencode.ai/config.json",
|
|
160
|
+
"plugin": ["oh-my-openagent@latest"],
|
|
161
|
+
"provider": {
|
|
162
|
+
"moonshotai-cn": {
|
|
163
|
+
"npm": "@ai-sdk/openai-compatible",
|
|
164
|
+
"options": {
|
|
165
|
+
"baseURL": "https://api.moonshot.cn/v1",
|
|
166
|
+
"apiKey": "KIMI_API_KEY_HERE"
|
|
167
|
+
}
|
|
168
|
+
},
|
|
169
|
+
"minimax-cn": {
|
|
170
|
+
"npm": "@ai-sdk/openai-compatible",
|
|
171
|
+
"options": {
|
|
172
|
+
"baseURL": "https://api.minimaxi.com/v1",
|
|
173
|
+
"apiKey": "MINIMAX_API_KEY_HERE"
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
},
|
|
177
|
+
"model": "kimi-for-coding/k2-thinking"
|
|
178
|
+
}
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## š ļø PHASE 6: Install Skills
|
|
184
|
+
|
|
185
|
+
### Step 6.1: Create Skills Directory
|
|
186
|
+
```bash
|
|
187
|
+
mkdir -p "$CONFIG_DIR/skills"
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### Step 6.2: Install Core Skills (6 Required)
|
|
191
|
+
|
|
192
|
+
Download each skill's SKILL.md:
|
|
193
|
+
|
|
194
|
+
```bash
|
|
195
|
+
# Base URL for skills
|
|
196
|
+
SKILLS_BASE="https://raw.githubusercontent.com/liang/liang-opencode-suite/main/templates/skills"
|
|
197
|
+
|
|
198
|
+
# Create directories and download skills
|
|
199
|
+
for skill in superpowers frontend-design skill-creator agent-browser find-skills vibe-stack-guardian; do
|
|
200
|
+
mkdir -p "$CONFIG_DIR/skills/$skill"
|
|
201
|
+
curl -o "$CONFIG_DIR/skills/$skill/SKILL.md" "$SKILLS_BASE/$skill/SKILL.md"
|
|
202
|
+
echo "ā
$skill"
|
|
203
|
+
done
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### Step 6.3: Optional Skill
|
|
207
|
+
|
|
208
|
+
**Ask user:**
|
|
209
|
+
> Install lingjing-ux-core? (Lingjing Aviation Intelligence Platform - proprietary business logic) [y/N]
|
|
210
|
+
|
|
211
|
+
If yes:
|
|
212
|
+
```bash
|
|
213
|
+
mkdir -p "$CONFIG_DIR/skills/lingjing-ux-core"
|
|
214
|
+
curl -o "$CONFIG_DIR/skills/lingjing-ux-core/SKILL.md" "$SKILLS_BASE/lingjing-ux-core/SKILL.md"
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## āØļø PHASE 7: Install Commands
|
|
220
|
+
|
|
221
|
+
### Step 7.1: Create Commands Directory
|
|
222
|
+
```bash
|
|
223
|
+
mkdir -p "$CONFIG_DIR/commands"
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### Step 7.2: Download Commands
|
|
227
|
+
|
|
228
|
+
```bash
|
|
229
|
+
COMMANDS_BASE="https://raw.githubusercontent.com/liang/liang-opencode-suite/main/templates/commands"
|
|
230
|
+
|
|
231
|
+
for cmd in commit component explain review test vibe-select; do
|
|
232
|
+
curl -o "$CONFIG_DIR/commands/${cmd}.md" "$COMMANDS_BASE/${cmd}.md"
|
|
233
|
+
echo "ā
$cmd command"
|
|
234
|
+
done
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
## ā” PHASE 8: Install Superpowers (REQUIRED)
|
|
240
|
+
|
|
241
|
+
**ā ļø This step is REQUIRED and cannot be skipped.**
|
|
242
|
+
|
|
243
|
+
Superpowers contains 14 essential workflow skills:
|
|
244
|
+
- brainstorming, writing-plans, executing-plans
|
|
245
|
+
- test-driven-development, systematic-debugging
|
|
246
|
+
- subagent-driven-development, dispatching-parallel-agents
|
|
247
|
+
- using-git-worktrees, finishing-a-development-branch
|
|
248
|
+
- requesting-code-review, receiving-code-review
|
|
249
|
+
- verification-before-completion, using-superpowers, writing-skills
|
|
250
|
+
|
|
251
|
+
### Step 8.1: Clone Repository
|
|
252
|
+
```bash
|
|
253
|
+
cd "$CONFIG_DIR"
|
|
254
|
+
git clone https://github.com/opencode-ai/superpowers.git
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
### Step 8.2: Initialize Submodules
|
|
258
|
+
```bash
|
|
259
|
+
cd "$CONFIG_DIR/superpowers"
|
|
260
|
+
git submodule update --init --recursive
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
## š PHASE 9: MiniMax MCP Setup (Optional)
|
|
266
|
+
|
|
267
|
+
**Ask user:**
|
|
268
|
+
> Would you like to set up MiniMax MCP for web search and image understanding? [y/N]
|
|
269
|
+
|
|
270
|
+
If yes:
|
|
271
|
+
|
|
272
|
+
1. Ensure uv is installed (see Phase 2)
|
|
273
|
+
2. Ask for MiniMax API key (from https://platform.minimax.com)
|
|
274
|
+
3. Update `$CONFIG_DIR/opencode.json`:
|
|
275
|
+
|
|
276
|
+
```json
|
|
277
|
+
{
|
|
278
|
+
"mcp": {
|
|
279
|
+
"MiniMax": {
|
|
280
|
+
"type": "local",
|
|
281
|
+
"command": ["uvx", "minimax-coding-plan-mcp", "-y"],
|
|
282
|
+
"environment": {
|
|
283
|
+
"MINIMAX_API_KEY": "USER_MINIMAX_KEY_HERE",
|
|
284
|
+
"MINIMAX_API_HOST": "https://api.minimaxi.com"
|
|
285
|
+
},
|
|
286
|
+
"enabled": true
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
---
|
|
293
|
+
|
|
294
|
+
## ā
PHASE 10: Verification
|
|
295
|
+
|
|
296
|
+
Run these checks and report results:
|
|
297
|
+
|
|
298
|
+
```bash
|
|
299
|
+
echo "=== Verification ==="
|
|
300
|
+
echo "Config directory: $CONFIG_DIR"
|
|
301
|
+
echo ""
|
|
302
|
+
echo "Files:"
|
|
303
|
+
ls -la "$CONFIG_DIR"
|
|
304
|
+
echo ""
|
|
305
|
+
echo "Skills ($(ls "$CONFIG_DIR/skills" | wc -l) installed):"
|
|
306
|
+
ls "$CONFIG_DIR/skills"
|
|
307
|
+
echo ""
|
|
308
|
+
echo "Commands ($(ls "$CONFIG_DIR/commands" | wc -l) installed):"
|
|
309
|
+
ls "$CONFIG_DIR/commands"
|
|
310
|
+
echo ""
|
|
311
|
+
echo "Superpowers submodules:"
|
|
312
|
+
ls "$CONFIG_DIR/superpowers/skills" 2>/dev/null | wc -l
|
|
313
|
+
echo ""
|
|
314
|
+
echo "OpenCode version:"
|
|
315
|
+
opencode --version 2>/dev/null || echo "Not found"
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
**Expected:**
|
|
319
|
+
- ā
7-8 skills directories
|
|
320
|
+
- ā
6 command files
|
|
321
|
+
- ā
14 superpowers sub-skills
|
|
322
|
+
- ā
oh-my-openagent.json exists
|
|
323
|
+
- ā
opencode.json exists
|
|
324
|
+
|
|
325
|
+
---
|
|
326
|
+
|
|
327
|
+
## š COMPLETION
|
|
328
|
+
|
|
329
|
+
When all phases are complete, output:
|
|
330
|
+
|
|
331
|
+
```
|
|
332
|
+
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
|
|
333
|
+
ā ā
OpenCode AI Suite - Installation Complete! ā
|
|
334
|
+
ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā£
|
|
335
|
+
ā š¦ Components Installed: ā
|
|
336
|
+
ā ⢠oh-my-openagent (9 agents, 8 categories) ā
|
|
337
|
+
ā ⢠6-7 skills (core + optional) ā
|
|
338
|
+
ā ⢠6 custom commands ā
|
|
339
|
+
ā ⢠Superpowers (14 sub-skills) ā
|
|
340
|
+
ā ⢠MiniMax MCP (if selected) ā
|
|
341
|
+
ā ā
|
|
342
|
+
ā š Next Steps: ā
|
|
343
|
+
ā 1. Restart your terminal ā
|
|
344
|
+
ā 2. Run: opencode ā
|
|
345
|
+
ā 3. Try: /commit, /review, /test ā
|
|
346
|
+
ā ā
|
|
347
|
+
ā š Documentation: https://github.com/liang/liang-opencode-suite ā
|
|
348
|
+
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
---
|
|
352
|
+
|
|
353
|
+
## ā ļø ERROR HANDLING
|
|
354
|
+
|
|
355
|
+
If any phase fails:
|
|
356
|
+
1. **STOP** and report the exact error
|
|
357
|
+
2. Show the command that failed
|
|
358
|
+
3. Provide manual fallback instructions
|
|
359
|
+
4. Ask user if they want to continue or abort
|
|
360
|
+
|
|
361
|
+
**Common Issues:**
|
|
362
|
+
- Permission denied ā Use `sudo` or check directory permissions
|
|
363
|
+
- Git clone fails ā Check internet connection or Git configuration
|
|
364
|
+
- API key invalid ā Verify key at provider's dashboard
|
|
365
|
+
|
|
366
|
+
---
|
|
367
|
+
|
|
368
|
+
**End of Installation Prompt - Thank you for using Liang's OpenCode Suite! š**
|
package/README.md
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# š Liang's OpenCode Suite
|
|
2
|
+
|
|
3
|
+
CLI tool to quickly set up OpenCode with Liang's optimized configuration.
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/liang-opencode-suite)
|
|
6
|
+
[](https://opensource.org/licenses/MIT)
|
|
7
|
+
|
|
8
|
+
## ⨠Features
|
|
9
|
+
|
|
10
|
+
- š¤ **oh-my-openagent** - Full Sisyphus orchestration framework with 9 agents
|
|
11
|
+
- š ļø **7 Custom Skills** - Specialized workflows for development tasks
|
|
12
|
+
- āØļø **6 Custom Commands** - Streamlined CLI shortcuts
|
|
13
|
+
- ā” **Superpowers Workflow** - 14 sub-skills for advanced automation
|
|
14
|
+
- š **MiniMax MCP** - Web search & image understanding integration
|
|
15
|
+
- š„ļø **Cross-Platform** - macOS, Windows, Linux support
|
|
16
|
+
- š» **VM Detection** - Handles virtual machine environments
|
|
17
|
+
|
|
18
|
+
## š¦ Installation
|
|
19
|
+
|
|
20
|
+
### Option 1: CLI Installation (Recommended)
|
|
21
|
+
|
|
22
|
+
\`\`\`bash
|
|
23
|
+
npx liang-opencode-suite@latest init
|
|
24
|
+
\`\`\`
|
|
25
|
+
|
|
26
|
+
Or install globally:
|
|
27
|
+
|
|
28
|
+
\`\`\`bash
|
|
29
|
+
npm install -g liang-opencode-suite
|
|
30
|
+
liang-opencode-suite init
|
|
31
|
+
\`\`\`
|
|
32
|
+
|
|
33
|
+
### Option 2: For LLM Agents
|
|
34
|
+
|
|
35
|
+
Copy and paste this prompt to your LLM agent (Claude Code, AmpCode, Cursor, etc.):
|
|
36
|
+
|
|
37
|
+
\`\`\`
|
|
38
|
+
Install and configure liang-opencode-suite by following the instructions here:
|
|
39
|
+
https://raw.githubusercontent.com/l17396917969-cell/liang-opencode-suite/main/docs/guide/installation.md
|
|
40
|
+
\`\`\`
|
|
41
|
+
|
|
42
|
+
Or fetch the installation guide directly:
|
|
43
|
+
|
|
44
|
+
\`\`\`bash
|
|
45
|
+
curl -s https://raw.githubusercontent.com/l17396917969-cell/liang-opencode-suite/main/docs/guide/installation.md
|
|
46
|
+
\`\`\`
|
|
47
|
+
|
|
48
|
+
## š„ļø Platform Support
|
|
49
|
+
|
|
50
|
+
| Platform | Status | Notes |
|
|
51
|
+
|----------|--------|-------|
|
|
52
|
+
| **macOS** | ā
Fully Supported | Intel & Apple Silicon |
|
|
53
|
+
| **Linux** | ā
Fully Supported | Ubuntu, Debian, CentOS, etc. |
|
|
54
|
+
| **Windows** | ā
Fully Supported | Native & WSL |
|
|
55
|
+
| **VMs** | ā
Detected & Supported | VMware, VirtualBox, Parallels |
|
|
56
|
+
|
|
57
|
+
## š Prerequisites
|
|
58
|
+
|
|
59
|
+
- **Node.js** 18.0.0+ ā https://nodejs.org
|
|
60
|
+
- **OpenCode CLI** ā https://opencode.ai
|
|
61
|
+
- **Git** ā https://git-scm.com
|
|
62
|
+
- **uv** (optional, for MiniMax MCP) ā https://astral.sh/uv
|
|
63
|
+
|
|
64
|
+
## šÆ What Gets Installed
|
|
65
|
+
|
|
66
|
+
### Core Components
|
|
67
|
+
|
|
68
|
+
- \`oh-my-openagent.json\` - 9 agents + 8 categories
|
|
69
|
+
- \`AGENTS.md\` - Sisyphus workflow definition
|
|
70
|
+
- \`opencode.json\` - Provider configuration
|
|
71
|
+
|
|
72
|
+
### Skills (7 Total)
|
|
73
|
+
|
|
74
|
+
6 core + 1 optional (lingjing-ux-core)
|
|
75
|
+
|
|
76
|
+
### Commands (6 Total)
|
|
77
|
+
|
|
78
|
+
\`/commit\`, \`/component\`, \`/explain\`, \`/review\`, \`/test\`, \`/vibe-select\`
|
|
79
|
+
|
|
80
|
+
### Superpowers (14 Sub-skills)
|
|
81
|
+
|
|
82
|
+
brainstorming, writing-plans, executing-plans, test-driven-development, systematic-debugging, and 9 more.
|
|
83
|
+
|
|
84
|
+
## š Documentation
|
|
85
|
+
|
|
86
|
+
- **Full Installation Guide**: [docs/guide/installation.md](./docs/guide/installation.md)
|
|
87
|
+
- **GitHub Repository**: https://github.com/l17396917969-cell/liang-opencode-suite
|
|
88
|
+
- **NPM Package**: https://www.npmjs.com/package/liang-opencode-suite
|
|
89
|
+
|
|
90
|
+
## š¤ Contributing
|
|
91
|
+
|
|
92
|
+
Contributions welcome! Please read our [Contributing Guide](./CONTRIBUTING.md).
|
|
93
|
+
|
|
94
|
+
## š License
|
|
95
|
+
|
|
96
|
+
MIT Ā© [Liang](https://github.com/l17396917969-cell)
|
|
97
|
+
|
|
98
|
+
## š Acknowledgments
|
|
99
|
+
|
|
100
|
+
- [OpenCode](https://opencode.ai) - The AI IDE
|
|
101
|
+
- [oh-my-openagent](https://github.com/code-yeongyu/oh-my-openagent) - Agent orchestration
|
|
102
|
+
- [Superpowers](https://github.com/opencode-ai/superpowers) - Workflow skills
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
**Made with ā¤ļø for the AI-powered development community**
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Entry Point for liang-opencode-suite
|
|
3
|
+
* Handles command line argument parsing and orchestrates the wizard
|
|
4
|
+
*/
|
|
5
|
+
import { runWizard } from './wizard.js';
|
|
6
|
+
import chalk from 'chalk';
|
|
7
|
+
/**
|
|
8
|
+
* Parse command line arguments from process.argv
|
|
9
|
+
*/
|
|
10
|
+
function parseArgs() {
|
|
11
|
+
const args = {};
|
|
12
|
+
const argv = process.argv.slice(2);
|
|
13
|
+
for (let i = 0; i < argv.length; i++) {
|
|
14
|
+
const arg = argv[i];
|
|
15
|
+
if (arg === 'init') {
|
|
16
|
+
args.command = 'init';
|
|
17
|
+
}
|
|
18
|
+
else if (arg === '--skip-welcome' || arg === '-s') {
|
|
19
|
+
args.skipWelcome = true;
|
|
20
|
+
}
|
|
21
|
+
else if (arg === '--yes' || arg === '-y') {
|
|
22
|
+
args.autoConfirm = true;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return args;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Display usage information
|
|
29
|
+
*/
|
|
30
|
+
function printUsage() {
|
|
31
|
+
console.log(`
|
|
32
|
+
${chalk.cyan('liang-opencode-suite')}
|
|
33
|
+
|
|
34
|
+
${chalk.bold('Usage:')}
|
|
35
|
+
liang-opencode [command] [options]
|
|
36
|
+
|
|
37
|
+
${chalk.bold('Commands:')}
|
|
38
|
+
init Run the installation wizard
|
|
39
|
+
|
|
40
|
+
${chalk.bold('Options:')}
|
|
41
|
+
--skip-welcome, -s Skip the welcome banner
|
|
42
|
+
--yes, -y Skip all confirmations (auto-approve)
|
|
43
|
+
--help, -h Show this help message
|
|
44
|
+
|
|
45
|
+
${chalk.bold('Examples:')}
|
|
46
|
+
liang-opencode init
|
|
47
|
+
liang-opencode init --skip-welcome
|
|
48
|
+
liang-opencode init --yes
|
|
49
|
+
`);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Main CLI handler
|
|
53
|
+
*/
|
|
54
|
+
async function main() {
|
|
55
|
+
const args = parseArgs();
|
|
56
|
+
// Show help if requested or no command provided
|
|
57
|
+
if (args.command === undefined && process.argv.includes('--help')) {
|
|
58
|
+
printUsage();
|
|
59
|
+
process.exit(0);
|
|
60
|
+
}
|
|
61
|
+
if (args.command !== 'init') {
|
|
62
|
+
console.error(chalk.red('Error: Unknown command'));
|
|
63
|
+
console.error(chalk.red('Run "liang-opencode --help" for usage information'));
|
|
64
|
+
process.exit(1);
|
|
65
|
+
}
|
|
66
|
+
try {
|
|
67
|
+
await runWizard({
|
|
68
|
+
skipWelcome: args.skipWelcome ?? false,
|
|
69
|
+
autoConfirm: args.autoConfirm ?? false,
|
|
70
|
+
});
|
|
71
|
+
process.exit(0);
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
console.error(chalk.red('\nā Installation failed:'));
|
|
75
|
+
if (error instanceof Error) {
|
|
76
|
+
console.error(chalk.red(` ${error.message}`));
|
|
77
|
+
}
|
|
78
|
+
process.exit(1);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
main();
|
|
82
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B;;GAEG;AACH,SAAS,SAAS;IAChB,MAAM,IAAI,GAAY,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAEpB,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;YACnB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACxB,CAAC;aAAM,IAAI,GAAG,KAAK,gBAAgB,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACpD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;aAAM,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC3C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,UAAU;IACjB,OAAO,CAAC,GAAG,CAAC;EACZ,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC;;EAElC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;;;EAGpB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;;;EAGvB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;;;;;EAKtB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;;;;CAIxB,CAAC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,SAAS,EAAE,CAAC;IAEzB,gDAAgD;IAChD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClE,UAAU,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC;QACnD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC,CAAC;QAC9E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,SAAS,CAAC;YACd,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,KAAK;YACtC,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,KAAK;SACvC,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACrD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface CheckOpencodeResult {
|
|
2
|
+
success: boolean;
|
|
3
|
+
message: string;
|
|
4
|
+
opencodeInstalled: boolean;
|
|
5
|
+
configDirExists: boolean;
|
|
6
|
+
platform: string;
|
|
7
|
+
isVM: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function checkOpencode(): Promise<CheckOpencodeResult>;
|
|
10
|
+
//# sourceMappingURL=check-opencode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-opencode.d.ts","sourceRoot":"","sources":["../../src/steps/check-opencode.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAmDlE"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { execSync } from 'child_process';
|
|
2
|
+
import { existsSync } from 'fs';
|
|
3
|
+
import { getOpencodeConfigDir, commandExists, getPlatform, isVirtualMachine } from '../utils/os-utils';
|
|
4
|
+
export async function checkOpencode() {
|
|
5
|
+
console.log('š Checking opencode CLI installation...');
|
|
6
|
+
const platform = getPlatform();
|
|
7
|
+
const isVM = isVirtualMachine();
|
|
8
|
+
if (isVM) {
|
|
9
|
+
console.log('š» Detected virtual machine environment');
|
|
10
|
+
}
|
|
11
|
+
console.log(`š„ļø Platform: ${platform}`);
|
|
12
|
+
const opencodeInstalled = commandExists('opencode');
|
|
13
|
+
if (opencodeInstalled) {
|
|
14
|
+
try {
|
|
15
|
+
const version = execSync('opencode --version', { stdio: 'pipe', encoding: 'utf-8' });
|
|
16
|
+
console.log(`ā
opencode CLI found (${version.trim()})`);
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
console.log('ā
opencode CLI found');
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
console.log('ā ļø opencode CLI not found in PATH');
|
|
24
|
+
}
|
|
25
|
+
const configDir = getOpencodeConfigDir();
|
|
26
|
+
const configDirExists = existsSync(configDir);
|
|
27
|
+
if (configDirExists) {
|
|
28
|
+
console.log('ā
Config directory exists at', configDir);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
console.log('ā ļø Config directory not found at', configDir, '(will be created)');
|
|
32
|
+
}
|
|
33
|
+
let message;
|
|
34
|
+
if (opencodeInstalled && configDirExists) {
|
|
35
|
+
message = 'opencode is installed and configured';
|
|
36
|
+
}
|
|
37
|
+
else if (opencodeInstalled) {
|
|
38
|
+
message = 'opencode CLI is installed but config directory not found (will be created)';
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
message = 'opencode CLI is not installed. Please install it from https://opencode.ai first.';
|
|
42
|
+
}
|
|
43
|
+
return {
|
|
44
|
+
success: opencodeInstalled,
|
|
45
|
+
message,
|
|
46
|
+
opencodeInstalled,
|
|
47
|
+
configDirExists,
|
|
48
|
+
platform,
|
|
49
|
+
isVM,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=check-opencode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-opencode.js","sourceRoot":"","sources":["../../src/steps/check-opencode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAEhC,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAWvG,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IAExD,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,gBAAgB,EAAE,CAAC;IAEhC,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,kBAAkB,QAAQ,EAAE,CAAC,CAAC;IAE1C,MAAM,iBAAiB,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAEpD,IAAI,iBAAiB,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,QAAQ,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;YACrF,OAAO,CAAC,GAAG,CAAC,yBAAyB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC1D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,SAAS,GAAG,oBAAoB,EAAE,CAAC;IACzC,MAAM,eAAe,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IAE9C,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,SAAS,CAAC,CAAC;IACzD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC;IACnF,CAAC;IAED,IAAI,OAAe,CAAC;IACpB,IAAI,iBAAiB,IAAI,eAAe,EAAE,CAAC;QACzC,OAAO,GAAG,sCAAsC,CAAC;IACnD,CAAC;SAAM,IAAI,iBAAiB,EAAE,CAAC;QAC7B,OAAO,GAAG,4EAA4E,CAAC;IACzF,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,kFAAkF,CAAC;IAC/F,CAAC;IAED,OAAO;QACL,OAAO,EAAE,iBAAiB;QAC1B,OAAO;QACP,iBAAiB;QACjB,eAAe;QACf,QAAQ;QACR,IAAI;KACL,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Provider } from './select-providers';
|
|
2
|
+
export interface ApiKeyConfig {
|
|
3
|
+
provider: string;
|
|
4
|
+
apiKey: string;
|
|
5
|
+
skipped: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface ConfigureApiKeysResult {
|
|
8
|
+
apiKeys: Record<string, string>;
|
|
9
|
+
skipped: string[];
|
|
10
|
+
}
|
|
11
|
+
export declare function configureApiKeys(providers: Provider[]): Promise<ConfigureApiKeysResult>;
|
|
12
|
+
//# sourceMappingURL=configure-api-keys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configure-api-keys.d.ts","sourceRoot":"","sources":["../../src/steps/configure-api-keys.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,QAAQ,EAAE,GACpB,OAAO,CAAC,sBAAsB,CAAC,CAkDjC"}
|