dino-spec 11.5.0 → 11.5.2
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
CHANGED
|
@@ -53,6 +53,11 @@
|
|
|
53
53
|
- **Real-Time HUD** - Statusline integration showing budget, phase, tests, focus, git status (v9.1.0)
|
|
54
54
|
- **Session Handoff** - Context continuity system for seamless session transitions (v9.1.0)
|
|
55
55
|
- **Workflow Skills** - Phases from discovery to completion (`/dino.*`)
|
|
56
|
+
- **Smart Test Scoping** (v11.5.0) - `/dino.release` intelligently analyzes change impact to optimize test runs
|
|
57
|
+
- **Change Impact Analysis** - Detects dependency/structural/config changes requiring full test suite
|
|
58
|
+
- **Targeted Testing** - Isolated changes run focused tests via `--testPathPattern`
|
|
59
|
+
- **Skip When Verified** - Avoids redundant tests when already passed < 10 min ago
|
|
60
|
+
- **Import Analysis** - Greps for widespread dependencies to recommend full vs targeted scope
|
|
56
61
|
- **Task Delegation** - Specialized agents with context handoffs
|
|
57
62
|
- **Recursive Agents** - Self-spawning agents with complexity-based depth control (v8.0.0)
|
|
58
63
|
- **Recursive Retrieval** (v10.4.0) - Enhanced RLM-style query decomposition with:
|
|
@@ -110,7 +115,7 @@ dino init # Analyze codebase, install hooks, configure MCP
|
|
|
110
115
|
| `dino init` | Initialize project (hooks + MCP) |
|
|
111
116
|
| `dino init --minimal` | Minimal CLAUDE.md with MCP resources |
|
|
112
117
|
| `dino init --bootstrap` | Include project analysis summary |
|
|
113
|
-
| `dino setup` | Interactive wizard for provider configuration (v11.5.0) |
|
|
118
|
+
| `dino setup` | Interactive wizard for provider configuration (v11.5.0, OAuth fix v11.5.1) |
|
|
114
119
|
| `dino setup --provider <name> --key <key>` | Non-interactive provider setup (v11.5.0) |
|
|
115
120
|
| `dino provider list` | List configured providers (v11.4.0) |
|
|
116
121
|
| `dino provider setup` | Generate shell functions for providers (v11.4.0) |
|
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
* Setup Wizard - TUI for configuring Claude Code providers
|
|
3
3
|
*
|
|
4
4
|
* Interactive wizard using @inquirer/prompts that:
|
|
5
|
+
* - Auto-detects and cleans up old/conflicting profile functions
|
|
5
6
|
* - Guides users through provider selection
|
|
6
7
|
* - Collects API credentials
|
|
7
|
-
* -
|
|
8
|
-
*
|
|
9
|
-
*
|
|
8
|
+
* - Generates and installs shell functions
|
|
9
|
+
*
|
|
10
|
+
* Design: Less manual work, convenience over complexity
|
|
10
11
|
*/
|
|
11
12
|
/** Wizard result */
|
|
12
13
|
export interface WizardResult {
|
|
@@ -14,6 +15,7 @@ export interface WizardResult {
|
|
|
14
15
|
providerName?: string;
|
|
15
16
|
shellFunctionInstalled?: boolean;
|
|
16
17
|
profilePath?: string;
|
|
18
|
+
cleanedUp?: boolean;
|
|
17
19
|
}
|
|
18
20
|
/**
|
|
19
21
|
* Run the setup wizard
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-wizard.d.ts","sourceRoot":"","sources":["../../../src/cli/tui/setup-wizard.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"setup-wizard.d.ts","sourceRoot":"","sources":["../../../src/cli/tui/setup-wizard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAsCH,oBAAoB;AACpB,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAgTD;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,YAAY,CAAC,CA+O5D"}
|
|
@@ -2,33 +2,36 @@
|
|
|
2
2
|
* Setup Wizard - TUI for configuring Claude Code providers
|
|
3
3
|
*
|
|
4
4
|
* Interactive wizard using @inquirer/prompts that:
|
|
5
|
+
* - Auto-detects and cleans up old/conflicting profile functions
|
|
5
6
|
* - Guides users through provider selection
|
|
6
7
|
* - Collects API credentials
|
|
7
|
-
* -
|
|
8
|
-
*
|
|
9
|
-
*
|
|
8
|
+
* - Generates and installs shell functions
|
|
9
|
+
*
|
|
10
|
+
* Design: Less manual work, convenience over complexity
|
|
10
11
|
*/
|
|
11
12
|
import chalk from 'chalk';
|
|
12
13
|
import { select, input, password, confirm } from '@inquirer/prompts';
|
|
13
14
|
import ora from 'ora';
|
|
14
15
|
import { homedir } from 'os';
|
|
15
16
|
import { join } from 'path';
|
|
16
|
-
import { existsSync, readFileSync,
|
|
17
|
-
import { addProvider, getProviderEnvVars,
|
|
17
|
+
import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs';
|
|
18
|
+
import { addProvider, getProviderEnvVars, getAllProviders, } from '../../core/provider/index.js';
|
|
18
19
|
/** Known provider configurations */
|
|
19
20
|
const KNOWN_PROVIDERS = {
|
|
20
|
-
|
|
21
|
+
'z.ai': {
|
|
21
22
|
baseUrl: 'https://api.z.ai/api/anthropic',
|
|
22
|
-
description: 'Z.AI -
|
|
23
|
+
description: 'Z.AI - GLM-4.7 (models auto-configured)',
|
|
24
|
+
useAuthToken: true,
|
|
25
|
+
},
|
|
26
|
+
minimax: {
|
|
27
|
+
baseUrl: 'https://api.minimax.io/anthropic',
|
|
28
|
+
description: 'MiniMax - MiniMax-M2.1',
|
|
29
|
+
useAuthToken: true,
|
|
23
30
|
},
|
|
24
31
|
anthropic: {
|
|
25
32
|
baseUrl: 'https://api.anthropic.com',
|
|
26
33
|
description: 'Official Anthropic API',
|
|
27
34
|
},
|
|
28
|
-
minimax: {
|
|
29
|
-
baseUrl: 'https://api.minimax.io/anthropic',
|
|
30
|
-
description: 'MiniMax - Anthropic-compatible API',
|
|
31
|
-
},
|
|
32
35
|
openrouter: {
|
|
33
36
|
baseUrl: 'https://openrouter.ai/api/v1',
|
|
34
37
|
description: 'OpenRouter - Multi-provider gateway',
|
|
@@ -40,23 +43,19 @@ const KNOWN_PROVIDERS = {
|
|
|
40
43
|
function getProfilePath() {
|
|
41
44
|
const isWindows = process.platform === 'win32';
|
|
42
45
|
if (isWindows) {
|
|
43
|
-
// PowerShell profile locations
|
|
44
46
|
const psProfile = process.env.USERPROFILE
|
|
45
47
|
? join(process.env.USERPROFILE, 'Documents', 'PowerShell', 'Microsoft.PowerShell_profile.ps1')
|
|
46
48
|
: null;
|
|
47
49
|
const psProfileWin = process.env.USERPROFILE
|
|
48
50
|
? join(process.env.USERPROFILE, 'Documents', 'WindowsPowerShell', 'Microsoft.PowerShell_profile.ps1')
|
|
49
51
|
: null;
|
|
50
|
-
// Check which one exists or use default
|
|
51
52
|
if (psProfile && existsSync(psProfile))
|
|
52
53
|
return psProfile;
|
|
53
54
|
if (psProfileWin && existsSync(psProfileWin))
|
|
54
55
|
return psProfileWin;
|
|
55
|
-
// Return default PowerShell 7 path
|
|
56
56
|
return psProfile;
|
|
57
57
|
}
|
|
58
58
|
else {
|
|
59
|
-
// Unix shells
|
|
60
59
|
const home = homedir();
|
|
61
60
|
const zshrc = join(home, '.zshrc');
|
|
62
61
|
const bashrc = join(home, '.bashrc');
|
|
@@ -64,58 +63,231 @@ function getProfilePath() {
|
|
|
64
63
|
return zshrc;
|
|
65
64
|
if (existsSync(bashrc))
|
|
66
65
|
return bashrc;
|
|
67
|
-
// Default to zshrc
|
|
68
66
|
return zshrc;
|
|
69
67
|
}
|
|
70
68
|
}
|
|
71
69
|
/**
|
|
72
|
-
*
|
|
70
|
+
* Detect issues in existing profile
|
|
73
71
|
*/
|
|
74
|
-
function
|
|
75
|
-
const
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
72
|
+
function detectProfileIssues(profilePath) {
|
|
73
|
+
const issues = {
|
|
74
|
+
hasOldProfileSystem: false,
|
|
75
|
+
hasDuplicateFunctions: false,
|
|
76
|
+
oldMarkers: [],
|
|
77
|
+
duplicates: [],
|
|
78
|
+
};
|
|
79
|
+
if (!existsSync(profilePath))
|
|
80
|
+
return issues;
|
|
81
|
+
const content = readFileSync(profilePath, 'utf-8');
|
|
82
|
+
// Check for old profile system (CLAUDE_CONFIG_DIR)
|
|
83
|
+
if (content.includes('CLAUDE_CONFIG_DIR')) {
|
|
84
|
+
issues.hasOldProfileSystem = true;
|
|
85
|
+
}
|
|
86
|
+
// Check for old dino-spec markers
|
|
87
|
+
const oldMarkers = [
|
|
88
|
+
'Claude Code Profile & Provider Functions',
|
|
89
|
+
'Generated by dino-spec v11.6.0',
|
|
90
|
+
'Profile isolation - separate config directory',
|
|
91
|
+
'claude-which',
|
|
92
|
+
'claude-list',
|
|
93
|
+
'claude-reset {', // Old reset with Write-Host
|
|
94
|
+
'Switched to',
|
|
95
|
+
];
|
|
96
|
+
for (const marker of oldMarkers) {
|
|
97
|
+
if (content.includes(marker)) {
|
|
98
|
+
issues.oldMarkers.push(marker);
|
|
86
99
|
}
|
|
87
|
-
lines.push(' & claude @args');
|
|
88
|
-
lines.push('}');
|
|
89
|
-
lines.push('');
|
|
90
|
-
return lines.join('\n');
|
|
91
100
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
];
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
101
|
+
// Check for duplicate claude-* functions
|
|
102
|
+
const functionPattern = /function\s+claude-([a-zA-Z0-9.-]+)/g;
|
|
103
|
+
const functionNames = {};
|
|
104
|
+
let match;
|
|
105
|
+
while ((match = functionPattern.exec(content)) !== null) {
|
|
106
|
+
const name = match[1];
|
|
107
|
+
functionNames[name] = (functionNames[name] || 0) + 1;
|
|
108
|
+
}
|
|
109
|
+
for (const [name, count] of Object.entries(functionNames)) {
|
|
110
|
+
if (count > 1) {
|
|
111
|
+
issues.hasDuplicateFunctions = true;
|
|
112
|
+
issues.duplicates.push(`claude-${name} (${count}x)`);
|
|
104
113
|
}
|
|
105
|
-
lines.push(' claude "$@"');
|
|
106
|
-
lines.push('}');
|
|
107
|
-
lines.push('');
|
|
108
|
-
return lines.join('\n');
|
|
109
114
|
}
|
|
115
|
+
return issues;
|
|
110
116
|
}
|
|
111
117
|
/**
|
|
112
|
-
*
|
|
118
|
+
* Clean up profile by removing old dino-spec functions and keeping user content
|
|
113
119
|
*/
|
|
114
|
-
function
|
|
120
|
+
function cleanupProfile(profilePath) {
|
|
115
121
|
if (!existsSync(profilePath))
|
|
116
|
-
return
|
|
122
|
+
return '';
|
|
117
123
|
const content = readFileSync(profilePath, 'utf-8');
|
|
118
|
-
|
|
124
|
+
const lines = content.split('\n');
|
|
125
|
+
const cleanedLines = [];
|
|
126
|
+
let inDinoBlock = false;
|
|
127
|
+
let skipUntilEmptyLine = false;
|
|
128
|
+
let braceDepth = 0;
|
|
129
|
+
for (let i = 0; i < lines.length; i++) {
|
|
130
|
+
const line = lines[i];
|
|
131
|
+
const trimmed = line.trim();
|
|
132
|
+
// Skip old dino-spec block markers
|
|
133
|
+
if (trimmed.includes('DINO:PROVIDERS:START') ||
|
|
134
|
+
trimmed.includes('Claude Code Profile & Provider Functions') ||
|
|
135
|
+
trimmed.includes('Claude Code Provider Functions (dino-spec)')) {
|
|
136
|
+
inDinoBlock = true;
|
|
137
|
+
continue;
|
|
138
|
+
}
|
|
139
|
+
if (trimmed.includes('DINO:PROVIDERS:END') ||
|
|
140
|
+
trimmed.includes('End dino-spec functions')) {
|
|
141
|
+
inDinoBlock = false;
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
144
|
+
// Skip content inside dino blocks
|
|
145
|
+
if (inDinoBlock)
|
|
146
|
+
continue;
|
|
147
|
+
// Skip claude-* functions that use old patterns
|
|
148
|
+
if (trimmed.match(/^function\s+claude-/) && !trimmed.includes('# USER:')) {
|
|
149
|
+
// Check if this function uses old patterns
|
|
150
|
+
let funcContent = '';
|
|
151
|
+
let j = i;
|
|
152
|
+
let depth = 0;
|
|
153
|
+
let foundOpen = false;
|
|
154
|
+
while (j < lines.length) {
|
|
155
|
+
const funcLine = lines[j];
|
|
156
|
+
funcContent += funcLine + '\n';
|
|
157
|
+
if (funcLine.includes('{')) {
|
|
158
|
+
depth++;
|
|
159
|
+
foundOpen = true;
|
|
160
|
+
}
|
|
161
|
+
if (funcLine.includes('}')) {
|
|
162
|
+
depth--;
|
|
163
|
+
if (foundOpen && depth === 0)
|
|
164
|
+
break;
|
|
165
|
+
}
|
|
166
|
+
j++;
|
|
167
|
+
}
|
|
168
|
+
// Skip if uses old profile system or has old patterns
|
|
169
|
+
if (funcContent.includes('CLAUDE_CONFIG_DIR') ||
|
|
170
|
+
funcContent.includes('Write-Host') ||
|
|
171
|
+
funcContent.includes('Switched to') ||
|
|
172
|
+
funcContent.includes('dino provider key') ||
|
|
173
|
+
funcContent.includes('Profile isolation')) {
|
|
174
|
+
i = j; // Skip to end of function
|
|
175
|
+
continue;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
// Skip comment lines that are old dino-spec markers
|
|
179
|
+
if (trimmed.startsWith('#') && (trimmed.includes('Generated by dino-spec') ||
|
|
180
|
+
trimmed.includes('Claude Code provider:') ||
|
|
181
|
+
trimmed.includes('Add to your PowerShell profile') ||
|
|
182
|
+
trimmed.includes('Reset to default Anthropic') ||
|
|
183
|
+
trimmed.includes('Show current profile') ||
|
|
184
|
+
trimmed.includes('List available profiles'))) {
|
|
185
|
+
continue;
|
|
186
|
+
}
|
|
187
|
+
// Skip standalone old dino-spec markers
|
|
188
|
+
if (trimmed === '# ============================================') {
|
|
189
|
+
// Check next few lines for dino markers
|
|
190
|
+
const nextLines = lines.slice(i, i + 3).join('\n');
|
|
191
|
+
if (nextLines.includes('dino-spec') || nextLines.includes('Claude Code')) {
|
|
192
|
+
continue;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
cleanedLines.push(line);
|
|
196
|
+
}
|
|
197
|
+
// Remove excessive blank lines (more than 2 consecutive)
|
|
198
|
+
const result = [];
|
|
199
|
+
let blankCount = 0;
|
|
200
|
+
for (const line of cleanedLines) {
|
|
201
|
+
if (line.trim() === '') {
|
|
202
|
+
blankCount++;
|
|
203
|
+
if (blankCount <= 2)
|
|
204
|
+
result.push(line);
|
|
205
|
+
}
|
|
206
|
+
else {
|
|
207
|
+
blankCount = 0;
|
|
208
|
+
result.push(line);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
return result.join('\n').trim() + '\n';
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Generate all provider shell functions
|
|
215
|
+
*/
|
|
216
|
+
function generateAllShellFunctions(providers) {
|
|
217
|
+
const isWindows = process.platform === 'win32';
|
|
218
|
+
const lines = [
|
|
219
|
+
'',
|
|
220
|
+
'# ============================================',
|
|
221
|
+
'# Claude Code Provider Functions (dino-spec)',
|
|
222
|
+
'# ============================================',
|
|
223
|
+
'',
|
|
224
|
+
];
|
|
225
|
+
for (const provider of providers) {
|
|
226
|
+
const envVars = getProviderEnvVars(provider);
|
|
227
|
+
const name = provider.name;
|
|
228
|
+
if (isWindows) {
|
|
229
|
+
// PowerShell function
|
|
230
|
+
// NOTE: Uses 'claude $args' (not '& claude @args') - tested to bypass OAuth conflict
|
|
231
|
+
lines.push(`# ${name} provider`);
|
|
232
|
+
lines.push(`function claude-${name} {`);
|
|
233
|
+
for (const [key, value] of Object.entries(envVars)) {
|
|
234
|
+
lines.push(` $env:${key} = "${value}"`);
|
|
235
|
+
}
|
|
236
|
+
// Add timeout for third-party providers
|
|
237
|
+
if (provider.baseUrl !== 'https://api.anthropic.com') {
|
|
238
|
+
lines.push(' $env:API_TIMEOUT_MS = "3000000"');
|
|
239
|
+
}
|
|
240
|
+
lines.push(' claude $args');
|
|
241
|
+
lines.push('}');
|
|
242
|
+
lines.push('');
|
|
243
|
+
}
|
|
244
|
+
else {
|
|
245
|
+
// Bash/Zsh function - set vars inline (model mappings bypass OAuth conflict)
|
|
246
|
+
lines.push(`# ${name} provider`);
|
|
247
|
+
lines.push(`claude-${name}() {`);
|
|
248
|
+
const entries = Object.entries(envVars);
|
|
249
|
+
if (provider.baseUrl !== 'https://api.anthropic.com') {
|
|
250
|
+
entries.push(['API_TIMEOUT_MS', '3000000']);
|
|
251
|
+
}
|
|
252
|
+
// Export vars then call claude
|
|
253
|
+
for (const [key, value] of entries) {
|
|
254
|
+
lines.push(` export ${key}="${value}"`);
|
|
255
|
+
}
|
|
256
|
+
lines.push(' claude "$@"');
|
|
257
|
+
lines.push('}');
|
|
258
|
+
lines.push('');
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
// Add reset function
|
|
262
|
+
if (isWindows) {
|
|
263
|
+
lines.push('# Reset to stock Anthropic');
|
|
264
|
+
lines.push('function claude-reset {');
|
|
265
|
+
lines.push(' Remove-Item Env:ANTHROPIC_BASE_URL -ErrorAction SilentlyContinue');
|
|
266
|
+
lines.push(' Remove-Item Env:ANTHROPIC_AUTH_TOKEN -ErrorAction SilentlyContinue');
|
|
267
|
+
lines.push(' Remove-Item Env:ANTHROPIC_API_KEY -ErrorAction SilentlyContinue');
|
|
268
|
+
lines.push(' Remove-Item Env:API_TIMEOUT_MS -ErrorAction SilentlyContinue');
|
|
269
|
+
lines.push(' Remove-Item Env:CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC -ErrorAction SilentlyContinue');
|
|
270
|
+
lines.push(' Remove-Item Env:ANTHROPIC_MODEL -ErrorAction SilentlyContinue');
|
|
271
|
+
lines.push(' Remove-Item Env:ANTHROPIC_SMALL_FAST_MODEL -ErrorAction SilentlyContinue');
|
|
272
|
+
lines.push(' Remove-Item Env:ANTHROPIC_DEFAULT_SONNET_MODEL -ErrorAction SilentlyContinue');
|
|
273
|
+
lines.push(' Remove-Item Env:ANTHROPIC_DEFAULT_HAIKU_MODEL -ErrorAction SilentlyContinue');
|
|
274
|
+
lines.push(' Remove-Item Env:ANTHROPIC_DEFAULT_OPUS_MODEL -ErrorAction SilentlyContinue');
|
|
275
|
+
lines.push(' claude $args');
|
|
276
|
+
lines.push('}');
|
|
277
|
+
}
|
|
278
|
+
else {
|
|
279
|
+
lines.push('# Reset to stock Anthropic');
|
|
280
|
+
lines.push('claude-reset() {');
|
|
281
|
+
lines.push(' unset ANTHROPIC_BASE_URL ANTHROPIC_AUTH_TOKEN ANTHROPIC_API_KEY \\');
|
|
282
|
+
lines.push(' API_TIMEOUT_MS CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC \\');
|
|
283
|
+
lines.push(' ANTHROPIC_MODEL ANTHROPIC_SMALL_FAST_MODEL \\');
|
|
284
|
+
lines.push(' ANTHROPIC_DEFAULT_SONNET_MODEL ANTHROPIC_DEFAULT_HAIKU_MODEL \\');
|
|
285
|
+
lines.push(' ANTHROPIC_DEFAULT_OPUS_MODEL');
|
|
286
|
+
lines.push(' claude "$@"');
|
|
287
|
+
lines.push('}');
|
|
288
|
+
}
|
|
289
|
+
lines.push('');
|
|
290
|
+
return lines.join('\n');
|
|
119
291
|
}
|
|
120
292
|
/**
|
|
121
293
|
* Print welcome header
|
|
@@ -128,28 +300,6 @@ function printHeader() {
|
|
|
128
300
|
console.log(chalk.cyan('└─────────────────────────────────────────┘'));
|
|
129
301
|
console.log('');
|
|
130
302
|
}
|
|
131
|
-
/**
|
|
132
|
-
* Print summary box
|
|
133
|
-
*/
|
|
134
|
-
function printSummary(config, functionPreview) {
|
|
135
|
-
console.log('');
|
|
136
|
-
console.log(chalk.cyan('┌─────────────────────────────────────────┐'));
|
|
137
|
-
console.log(chalk.cyan('│ ') + chalk.bold('Summary') + chalk.cyan(' │'));
|
|
138
|
-
console.log(chalk.cyan('├─────────────────────────────────────────┤'));
|
|
139
|
-
console.log(chalk.cyan('│ ') + `Provider: ${chalk.green(config.name)}`.padEnd(47) + chalk.cyan('│'));
|
|
140
|
-
console.log(chalk.cyan('│ ') + `Base URL: ${chalk.dim(config.baseUrl.slice(0, 28))}...`.padEnd(47) + chalk.cyan('│'));
|
|
141
|
-
const modelInfo = config.models?.default ? config.models.default : '(default)';
|
|
142
|
-
console.log(chalk.cyan('│ ') + `Models: ${chalk.dim(modelInfo)}`.padEnd(47) + chalk.cyan('│'));
|
|
143
|
-
if (config.disableNonessentialTraffic) {
|
|
144
|
-
console.log(chalk.cyan('│ ') + `Flags: ${chalk.dim('nonessential traffic off')}`.padEnd(47) + chalk.cyan('│'));
|
|
145
|
-
}
|
|
146
|
-
console.log(chalk.cyan('└─────────────────────────────────────────┘'));
|
|
147
|
-
console.log('');
|
|
148
|
-
console.log(chalk.dim('Shell function to be generated:'));
|
|
149
|
-
console.log(chalk.cyan('─'.repeat(50)));
|
|
150
|
-
console.log(chalk.dim(functionPreview));
|
|
151
|
-
console.log(chalk.cyan('─'.repeat(50)));
|
|
152
|
-
}
|
|
153
303
|
/**
|
|
154
304
|
* Run the setup wizard
|
|
155
305
|
*/
|
|
@@ -157,221 +307,207 @@ export async function runSetupWizard() {
|
|
|
157
307
|
// Check if terminal supports TUI
|
|
158
308
|
if (!process.stdout.isTTY) {
|
|
159
309
|
console.log(chalk.red('Error: Setup wizard requires an interactive terminal.'));
|
|
160
|
-
console.log(chalk.gray('Use
|
|
310
|
+
console.log(chalk.gray('Use non-interactive mode: dino setup --provider z.ai --key <key>'));
|
|
161
311
|
return { success: false };
|
|
162
312
|
}
|
|
163
313
|
printHeader();
|
|
164
314
|
try {
|
|
315
|
+
const profilePath = getProfilePath();
|
|
316
|
+
let cleanedUp = false;
|
|
317
|
+
// Step 0: Auto-detect and offer cleanup
|
|
318
|
+
if (profilePath && existsSync(profilePath)) {
|
|
319
|
+
const issues = detectProfileIssues(profilePath);
|
|
320
|
+
if (issues.hasOldProfileSystem || issues.oldMarkers.length > 0 || issues.hasDuplicateFunctions) {
|
|
321
|
+
console.log(chalk.yellow(' Found issues in your shell profile:\n'));
|
|
322
|
+
if (issues.hasOldProfileSystem) {
|
|
323
|
+
console.log(chalk.red(' • Old profile system (CLAUDE_CONFIG_DIR) detected'));
|
|
324
|
+
}
|
|
325
|
+
if (issues.hasDuplicateFunctions) {
|
|
326
|
+
console.log(chalk.red(` • Duplicate functions: ${issues.duplicates.join(', ')}`));
|
|
327
|
+
}
|
|
328
|
+
if (issues.oldMarkers.length > 0) {
|
|
329
|
+
console.log(chalk.red(` • Old dino-spec patterns found`));
|
|
330
|
+
}
|
|
331
|
+
console.log('');
|
|
332
|
+
const shouldCleanup = await confirm({
|
|
333
|
+
message: 'Clean up old functions and install fresh ones?',
|
|
334
|
+
default: true,
|
|
335
|
+
});
|
|
336
|
+
if (shouldCleanup) {
|
|
337
|
+
const spinner = ora('Cleaning up profile...').start();
|
|
338
|
+
// Clean profile
|
|
339
|
+
const cleanedContent = cleanupProfile(profilePath);
|
|
340
|
+
writeFileSync(profilePath, cleanedContent);
|
|
341
|
+
spinner.succeed(chalk.green('Profile cleaned up'));
|
|
342
|
+
cleanedUp = true;
|
|
343
|
+
console.log('');
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
}
|
|
165
347
|
// Step 1: Select provider
|
|
166
348
|
const providerChoice = await select({
|
|
167
349
|
message: 'Select a provider',
|
|
168
350
|
choices: [
|
|
169
351
|
{
|
|
170
|
-
name: `${chalk.green('z.ai')} ${chalk.dim('(
|
|
171
|
-
value: '
|
|
172
|
-
description: '
|
|
173
|
-
},
|
|
174
|
-
{
|
|
175
|
-
name: 'Anthropic',
|
|
176
|
-
value: 'anthropic',
|
|
177
|
-
description: 'Official Anthropic API - direct access',
|
|
352
|
+
name: `${chalk.green('z.ai')} ${chalk.dim('(GLM-4.7, models auto-configured)')}`,
|
|
353
|
+
value: 'z.ai',
|
|
354
|
+
description: KNOWN_PROVIDERS['z.ai'].description,
|
|
178
355
|
},
|
|
179
356
|
{
|
|
180
357
|
name: 'MiniMax',
|
|
181
358
|
value: 'minimax',
|
|
182
|
-
description: '
|
|
359
|
+
description: KNOWN_PROVIDERS['minimax'].description,
|
|
360
|
+
},
|
|
361
|
+
{
|
|
362
|
+
name: 'Anthropic',
|
|
363
|
+
value: 'anthropic',
|
|
364
|
+
description: KNOWN_PROVIDERS['anthropic'].description,
|
|
183
365
|
},
|
|
184
366
|
{
|
|
185
367
|
name: 'OpenRouter',
|
|
186
368
|
value: 'openrouter',
|
|
187
|
-
description: '
|
|
369
|
+
description: KNOWN_PROVIDERS['openrouter'].description,
|
|
188
370
|
},
|
|
189
371
|
{
|
|
190
|
-
name:
|
|
372
|
+
name: chalk.dim('Custom'),
|
|
191
373
|
value: 'custom',
|
|
192
|
-
description: '
|
|
374
|
+
description: 'Any Anthropic-compatible API',
|
|
193
375
|
},
|
|
194
376
|
],
|
|
195
377
|
});
|
|
196
|
-
// Step 2: Get
|
|
378
|
+
// Step 2: Get config based on provider
|
|
197
379
|
let baseUrl;
|
|
380
|
+
let providerName;
|
|
381
|
+
let useAuthToken = false;
|
|
198
382
|
if (providerChoice === 'custom') {
|
|
199
|
-
|
|
200
|
-
message: '
|
|
201
|
-
validate: (
|
|
202
|
-
|
|
203
|
-
return 'Base URL is required';
|
|
204
|
-
if (!value.startsWith('http://') && !value.startsWith('https://')) {
|
|
205
|
-
return 'URL must start with http:// or https://';
|
|
206
|
-
}
|
|
207
|
-
return true;
|
|
208
|
-
},
|
|
383
|
+
providerName = await input({
|
|
384
|
+
message: 'Provider name (for shell function claude-<name>)',
|
|
385
|
+
validate: (v) => v.trim() ? true : 'Required',
|
|
386
|
+
transformer: (v) => v.toLowerCase().replace(/[^a-z0-9.-]/g, ''),
|
|
209
387
|
});
|
|
210
|
-
}
|
|
211
|
-
else {
|
|
212
|
-
const defaultUrl = KNOWN_PROVIDERS[providerChoice].baseUrl;
|
|
213
388
|
baseUrl = await input({
|
|
214
389
|
message: 'Base URL',
|
|
215
|
-
|
|
216
|
-
validate: (value) => {
|
|
217
|
-
if (!value.trim())
|
|
218
|
-
return 'Base URL is required';
|
|
219
|
-
return true;
|
|
220
|
-
},
|
|
390
|
+
validate: (v) => v.startsWith('http') ? true : 'Must start with http:// or https://',
|
|
221
391
|
});
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
if (providerChoice === 'custom') {
|
|
226
|
-
providerName = await input({
|
|
227
|
-
message: 'Provider name (for shell function)',
|
|
228
|
-
validate: (value) => {
|
|
229
|
-
if (!value.trim())
|
|
230
|
-
return 'Provider name is required';
|
|
231
|
-
if (!/^[a-z0-9-]+$/i.test(value))
|
|
232
|
-
return 'Use only letters, numbers, and hyphens';
|
|
233
|
-
return true;
|
|
234
|
-
},
|
|
235
|
-
transformer: (value) => value.toLowerCase(),
|
|
392
|
+
useAuthToken = await confirm({
|
|
393
|
+
message: 'Use Bearer auth (AUTH_TOKEN) instead of API key?',
|
|
394
|
+
default: false,
|
|
236
395
|
});
|
|
237
396
|
}
|
|
238
397
|
else {
|
|
239
398
|
providerName = providerChoice;
|
|
399
|
+
baseUrl = KNOWN_PROVIDERS[providerChoice].baseUrl;
|
|
400
|
+
useAuthToken = KNOWN_PROVIDERS[providerChoice].useAuthToken || false;
|
|
401
|
+
// Show base URL for confirmation
|
|
402
|
+
console.log(chalk.dim(` Base URL: ${baseUrl}`));
|
|
240
403
|
}
|
|
241
|
-
// Step
|
|
404
|
+
// Step 3: Get API key
|
|
242
405
|
const apiKey = await password({
|
|
243
|
-
message: 'Enter your API key',
|
|
406
|
+
message: useAuthToken ? 'Enter your auth token' : 'Enter your API key',
|
|
244
407
|
mask: '*',
|
|
245
|
-
validate: (
|
|
246
|
-
if (!value.trim())
|
|
247
|
-
return 'API key is required';
|
|
248
|
-
if (value.length < 10)
|
|
249
|
-
return 'API key seems too short';
|
|
250
|
-
return true;
|
|
251
|
-
},
|
|
252
|
-
});
|
|
253
|
-
// Step 5: Configure model mappings (optional)
|
|
254
|
-
const configureModels = await confirm({
|
|
255
|
-
message: 'Configure model mappings?',
|
|
256
|
-
default: false,
|
|
408
|
+
validate: (v) => v.length >= 10 ? true : 'Too short',
|
|
257
409
|
});
|
|
410
|
+
// Step 4: Model configuration
|
|
258
411
|
let models;
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
message: 'Opus-class model',
|
|
275
|
-
default: '',
|
|
412
|
+
// z.ai REQUIRES model mappings to bypass OAuth conflict (auto-set)
|
|
413
|
+
if (providerChoice === 'z.ai') {
|
|
414
|
+
models = {
|
|
415
|
+
default: 'glm-4.7',
|
|
416
|
+
haiku: 'glm-4.5-air',
|
|
417
|
+
sonnet: 'glm-4.7',
|
|
418
|
+
opus: 'glm-4.7',
|
|
419
|
+
};
|
|
420
|
+
console.log(chalk.dim(' Models auto-configured: glm-4.7 (sonnet/opus), glm-4.5-air (haiku)'));
|
|
421
|
+
}
|
|
422
|
+
else if (providerChoice !== 'anthropic') {
|
|
423
|
+
// Other providers may need manual config
|
|
424
|
+
const configureModels = await confirm({
|
|
425
|
+
message: 'Configure model mappings?',
|
|
426
|
+
default: providerChoice === 'minimax', // Default yes for minimax
|
|
276
427
|
});
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
models
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
428
|
+
if (configureModels) {
|
|
429
|
+
console.log(chalk.dim('\n Leave empty for defaults\n'));
|
|
430
|
+
const defaultModel = await input({ message: 'Default model', default: '' });
|
|
431
|
+
const haikuModel = await input({ message: 'Haiku model', default: '' });
|
|
432
|
+
const sonnetModel = await input({ message: 'Sonnet model', default: '' });
|
|
433
|
+
const opusModel = await input({ message: 'Opus model', default: '' });
|
|
434
|
+
models = {};
|
|
435
|
+
if (defaultModel)
|
|
436
|
+
models.default = defaultModel;
|
|
437
|
+
if (haikuModel)
|
|
438
|
+
models.haiku = haikuModel;
|
|
439
|
+
if (sonnetModel)
|
|
440
|
+
models.sonnet = sonnetModel;
|
|
441
|
+
if (opusModel)
|
|
442
|
+
models.opus = opusModel;
|
|
443
|
+
if (Object.keys(models).length === 0)
|
|
444
|
+
models = undefined;
|
|
445
|
+
}
|
|
288
446
|
}
|
|
289
|
-
// Step
|
|
447
|
+
// Step 5: Flags
|
|
290
448
|
const disableNonessential = await confirm({
|
|
291
|
-
message: 'Disable telemetry/updates
|
|
292
|
-
default:
|
|
449
|
+
message: 'Disable telemetry/updates?',
|
|
450
|
+
default: providerChoice !== 'anthropic', // Default yes for non-anthropic
|
|
293
451
|
});
|
|
294
|
-
// Build
|
|
452
|
+
// Build config
|
|
295
453
|
const config = {
|
|
296
|
-
name: providerName
|
|
454
|
+
name: providerName,
|
|
297
455
|
baseUrl,
|
|
298
456
|
apiKey,
|
|
299
457
|
models,
|
|
300
458
|
disableNonessentialTraffic: disableNonessential || undefined,
|
|
459
|
+
useAuthToken: useAuthToken || undefined,
|
|
301
460
|
createdAt: new Date().toISOString(),
|
|
302
461
|
};
|
|
303
|
-
//
|
|
304
|
-
const
|
|
305
|
-
// Show summary
|
|
306
|
-
printSummary(config, functionPreview);
|
|
307
|
-
// Step 7: Save provider
|
|
308
|
-
const spinner = ora('Saving provider configuration...').start();
|
|
462
|
+
// Save provider
|
|
463
|
+
const spinner = ora('Saving provider...').start();
|
|
309
464
|
await addProvider(config);
|
|
310
|
-
spinner.succeed(chalk.green(`Provider
|
|
311
|
-
//
|
|
312
|
-
const profilePath = getProfilePath();
|
|
465
|
+
spinner.succeed(chalk.green(`Provider '${providerName}' saved`));
|
|
466
|
+
// Install to profile
|
|
313
467
|
let shellFunctionInstalled = false;
|
|
314
468
|
if (profilePath) {
|
|
315
|
-
//
|
|
316
|
-
const
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
appendFileSync(profilePath, functionPreview);
|
|
325
|
-
console.log(chalk.green(`\n✓ Shell function added to ${profilePath}`));
|
|
326
|
-
shellFunctionInstalled = true;
|
|
327
|
-
}
|
|
469
|
+
// Get all providers and generate functions
|
|
470
|
+
const allProviders = await getAllProviders();
|
|
471
|
+
const functions = generateAllShellFunctions(allProviders);
|
|
472
|
+
// Read current profile (cleaned or original)
|
|
473
|
+
let profileContent = '';
|
|
474
|
+
if (existsSync(profilePath)) {
|
|
475
|
+
profileContent = cleanedUp
|
|
476
|
+
? readFileSync(profilePath, 'utf-8')
|
|
477
|
+
: cleanupProfile(profilePath);
|
|
328
478
|
}
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
// Create parent directory if it doesn't exist
|
|
336
|
-
const profileDir = join(profilePath, '..');
|
|
337
|
-
if (!existsSync(profileDir)) {
|
|
338
|
-
const { mkdirSync } = await import('fs');
|
|
339
|
-
mkdirSync(profileDir, { recursive: true });
|
|
340
|
-
}
|
|
341
|
-
appendFileSync(profilePath, functionPreview);
|
|
342
|
-
console.log(chalk.green(`\n✓ Shell function installed to ${profilePath}`));
|
|
343
|
-
shellFunctionInstalled = true;
|
|
344
|
-
}
|
|
479
|
+
// Append functions
|
|
480
|
+
const newContent = profileContent.trimEnd() + '\n' + functions;
|
|
481
|
+
// Ensure directory exists
|
|
482
|
+
const profileDir = join(profilePath, '..');
|
|
483
|
+
if (!existsSync(profileDir)) {
|
|
484
|
+
mkdirSync(profileDir, { recursive: true });
|
|
345
485
|
}
|
|
486
|
+
writeFileSync(profilePath, newContent);
|
|
487
|
+
shellFunctionInstalled = true;
|
|
488
|
+
console.log(chalk.green(`✓ Shell functions installed to ${profilePath}`));
|
|
346
489
|
}
|
|
347
|
-
//
|
|
490
|
+
// Usage instructions
|
|
348
491
|
console.log('');
|
|
349
492
|
console.log(chalk.bold('Usage:'));
|
|
350
|
-
console.log(` ${chalk.green(`claude-${providerName}`)} # Launch with ${providerName}
|
|
493
|
+
console.log(` ${chalk.green(`claude-${providerName}`)} # Launch with ${providerName}`);
|
|
494
|
+
console.log(` ${chalk.dim('claude-reset')} # Back to stock Anthropic`);
|
|
351
495
|
console.log('');
|
|
352
496
|
if (shellFunctionInstalled) {
|
|
353
|
-
console.log(chalk.dim('Restart your terminal or run:'));
|
|
354
497
|
const isWindows = process.platform === 'win32';
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
else {
|
|
359
|
-
console.log(chalk.dim(` source ${profilePath}`));
|
|
360
|
-
}
|
|
498
|
+
console.log(chalk.dim('Reload profile:'));
|
|
499
|
+
console.log(chalk.dim(isWindows ? ' . $PROFILE' : ` source ${profilePath}`));
|
|
500
|
+
console.log('');
|
|
361
501
|
}
|
|
362
|
-
else {
|
|
363
|
-
console.log(chalk.dim('Run `dino provider setup` to see the shell function.'));
|
|
364
|
-
}
|
|
365
|
-
console.log('');
|
|
366
502
|
return {
|
|
367
503
|
success: true,
|
|
368
504
|
providerName,
|
|
369
505
|
shellFunctionInstalled,
|
|
370
506
|
profilePath: profilePath || undefined,
|
|
507
|
+
cleanedUp,
|
|
371
508
|
};
|
|
372
509
|
}
|
|
373
510
|
catch (error) {
|
|
374
|
-
// Handle user cancellation (Ctrl+C)
|
|
375
511
|
if (error instanceof Error && (error.message.includes('User force closed') || error.name === 'ExitPromptError')) {
|
|
376
512
|
console.log(chalk.dim('\n Setup cancelled.\n'));
|
|
377
513
|
return { success: false };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-wizard.js","sourceRoot":"","sources":["../../../src/cli/tui/setup-wizard.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"setup-wizard.js","sourceRoot":"","sources":["../../../src/cli/tui/setup-wizard.ts"],"names":[],"mappings":"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"}
|