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
- * - Configures model mappings
8
- * - Generates shell functions
9
- * - Optionally installs to $PROFILE
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;;;;;;;;;GASG;AAmCH,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;CACtB;AAqID;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,YAAY,CAAC,CA2O5D"}
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
- * - Configures model mappings
8
- * - Generates shell functions
9
- * - Optionally installs to $PROFILE
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, appendFileSync } from 'fs';
17
- import { addProvider, getProviderEnvVars, getProvidersPath, } from '../../core/provider/index.js';
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
- zai: {
21
+ 'z.ai': {
21
22
  baseUrl: 'https://api.z.ai/api/anthropic',
22
- description: 'Z.AI - Anthropic-compatible API',
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
- * Generate shell function for a provider
70
+ * Detect issues in existing profile
73
71
  */
74
- function generateShellFunction(config) {
75
- const isWindows = process.platform === 'win32';
76
- const envVars = getProviderEnvVars(config);
77
- if (isWindows) {
78
- // PowerShell function
79
- const lines = [
80
- '',
81
- `# Claude Code provider: ${config.name} (generated by dino setup)`,
82
- `function claude-${config.name} {`,
83
- ];
84
- for (const [key, value] of Object.entries(envVars)) {
85
- lines.push(` $env:${key} = "${value}"`);
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
- else {
93
- // Bash/Zsh function
94
- const lines = [
95
- '',
96
- `# Claude Code provider: ${config.name} (generated by dino setup)`,
97
- `claude-${config.name}() {`,
98
- ];
99
- const entries = Object.entries(envVars);
100
- for (let i = 0; i < entries.length; i++) {
101
- const [key, value] = entries[i];
102
- const continuation = i < entries.length - 1 ? ' \\' : ' \\';
103
- lines.push(` ${key}="${value}"${continuation}`);
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
- * Check if function already exists in profile
118
+ * Clean up profile by removing old dino-spec functions and keeping user content
113
119
  */
114
- function functionExistsInProfile(profilePath, providerName) {
120
+ function cleanupProfile(profilePath) {
115
121
  if (!existsSync(profilePath))
116
- return false;
122
+ return '';
117
123
  const content = readFileSync(profilePath, 'utf-8');
118
- return content.includes(`claude-${providerName}`);
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 "dino provider add <name> --key <key>" for non-interactive setup.'));
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('(recommended for Z.AI users)')}`,
171
- value: 'zai',
172
- description: 'Z.AI - Anthropic-compatible API with enhanced features',
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: 'MiniMax - Anthropic-compatible API',
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: 'OpenRouter - Multi-provider gateway',
369
+ description: KNOWN_PROVIDERS['openrouter'].description,
188
370
  },
189
371
  {
190
- name: `${chalk.dim('Custom')} ${chalk.dim('(any Anthropic-compatible API)')}`,
372
+ name: chalk.dim('Custom'),
191
373
  value: 'custom',
192
- description: 'Custom provider - specify your own base URL',
374
+ description: 'Any Anthropic-compatible API',
193
375
  },
194
376
  ],
195
377
  });
196
- // Step 2: Get base URL (auto-filled for known providers)
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
- baseUrl = await input({
200
- message: 'Enter base URL',
201
- validate: (value) => {
202
- if (!value.trim())
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
- default: defaultUrl,
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
- // Step 3: Get provider name (for custom providers or allow override)
224
- let providerName;
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 4: Get API key
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: (value) => {
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
- if (configureModels) {
260
- console.log(chalk.dim('\n Leave empty to use defaults\n'));
261
- const defaultModel = await input({
262
- message: 'Default model (ANTHROPIC_MODEL)',
263
- default: '',
264
- });
265
- const haikuModel = await input({
266
- message: 'Haiku-class model',
267
- default: '',
268
- });
269
- const sonnetModel = await input({
270
- message: 'Sonnet-class model',
271
- default: '',
272
- });
273
- const opusModel = await input({
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
- models = {};
278
- if (defaultModel.trim())
279
- models.default = defaultModel.trim();
280
- if (haikuModel.trim())
281
- models.haiku = haikuModel.trim();
282
- if (sonnetModel.trim())
283
- models.sonnet = sonnetModel.trim();
284
- if (opusModel.trim())
285
- models.opus = opusModel.trim();
286
- if (Object.keys(models).length === 0)
287
- models = undefined;
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 6: Configure flags
447
+ // Step 5: Flags
290
448
  const disableNonessential = await confirm({
291
- message: 'Disable telemetry/updates/error reporting?',
292
- default: false,
449
+ message: 'Disable telemetry/updates?',
450
+ default: providerChoice !== 'anthropic', // Default yes for non-anthropic
293
451
  });
294
- // Build provider config
452
+ // Build config
295
453
  const config = {
296
- name: providerName.toLowerCase(),
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
- // Generate function preview
304
- const functionPreview = generateShellFunction(config);
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 saved to ${getProvidersPath()}`));
311
- // Step 8: Install to profile (optional)
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
- // Check if function already exists
316
- const alreadyExists = functionExistsInProfile(profilePath, providerName);
317
- if (alreadyExists) {
318
- console.log(chalk.yellow(`\n Shell function already exists in ${profilePath}`));
319
- const overwrite = await confirm({
320
- message: 'Add function anyway (may create duplicate)?',
321
- default: false,
322
- });
323
- if (overwrite) {
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
- else {
330
- const installToProfile = await confirm({
331
- message: `Install shell function to ${profilePath}?`,
332
- default: true,
333
- });
334
- if (installToProfile) {
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
- // Print usage instructions
490
+ // Usage instructions
348
491
  console.log('');
349
492
  console.log(chalk.bold('Usage:'));
350
- console.log(` ${chalk.green(`claude-${providerName}`)} # Launch with ${providerName} provider`);
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
- if (isWindows) {
356
- console.log(chalk.dim(' . $PROFILE'));
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":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,EACL,WAAW,EACX,kBAAkB,EAElB,eAAe,GAChB,MAAM,8BAA8B,CAAC;AAGtC,oCAAoC;AACpC,MAAM,eAAe,GAAqF;IACxG,MAAM,EAAE;QACN,OAAO,EAAE,gCAAgC;QACzC,WAAW,EAAE,yCAAyC;QACtD,YAAY,EAAE,IAAI;KACnB;IACD,OAAO,EAAE;QACP,OAAO,EAAE,kCAAkC;QAC3C,WAAW,EAAE,wBAAwB;QACrC,YAAY,EAAE,IAAI;KACnB;IACD,SAAS,EAAE;QACT,OAAO,EAAE,2BAA2B;QACpC,WAAW,EAAE,wBAAwB;KACtC;IACD,UAAU,EAAE;QACV,OAAO,EAAE,8BAA8B;QACvC,WAAW,EAAE,qCAAqC;KACnD;CACF,CAAC;AAmBF;;GAEG;AACH,SAAS,cAAc;IACrB,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;IAE/C,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW;YACvC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,kCAAkC,CAAC;YAC9F,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW;YAC1C,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,mBAAmB,EAAE,kCAAkC,CAAC;YACrG,CAAC,CAAC,IAAI,CAAC;QAET,IAAI,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;QACzD,IAAI,YAAY,IAAI,UAAU,CAAC,YAAY,CAAC;YAAE,OAAO,YAAY,CAAC;QAClE,OAAO,SAAS,CAAC;IACnB,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAErC,IAAI,UAAU,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACpC,IAAI,UAAU,CAAC,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,WAAmB;IAC9C,MAAM,MAAM,GAAkB;QAC5B,mBAAmB,EAAE,KAAK;QAC1B,qBAAqB,EAAE,KAAK;QAC5B,UAAU,EAAE,EAAE;QACd,UAAU,EAAE,EAAE;KACf,CAAC;IAEF,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,MAAM,CAAC;IAE5C,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAEnD,mDAAmD;IACnD,IAAI,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAC1C,MAAM,CAAC,mBAAmB,GAAG,IAAI,CAAC;IACpC,CAAC;IAED,kCAAkC;IAClC,MAAM,UAAU,GAAG;QACjB,0CAA0C;QAC1C,gCAAgC;QAChC,+CAA+C;QAC/C,cAAc;QACd,aAAa;QACb,gBAAgB,EAAG,4BAA4B;QAC/C,aAAa;KACd,CAAC;IAEF,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;QAChC,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,yCAAyC;IACzC,MAAM,eAAe,GAAG,qCAAqC,CAAC;IAC9D,MAAM,aAAa,GAA2B,EAAE,CAAC;IACjD,IAAI,KAAK,CAAC;IAEV,OAAO,CAAC,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACxD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QAC1D,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,MAAM,CAAC,qBAAqB,GAAG,IAAI,CAAC;YACpC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,WAAmB;IACzC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,CAAC;IAExC,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAC/B,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAE5B,mCAAmC;QACnC,IAAI,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YACxC,OAAO,CAAC,QAAQ,CAAC,0CAA0C,CAAC;YAC5D,OAAO,CAAC,QAAQ,CAAC,4CAA4C,CAAC,EAAE,CAAC;YACnE,WAAW,GAAG,IAAI,CAAC;YACnB,SAAS;QACX,CAAC;QAED,IAAI,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YACtC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAAC;YAChD,WAAW,GAAG,KAAK,CAAC;YACpB,SAAS;QACX,CAAC;QAED,kCAAkC;QAClC,IAAI,WAAW;YAAE,SAAS;QAE1B,gDAAgD;QAChD,IAAI,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACzE,2CAA2C;YAC3C,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,IAAI,SAAS,GAAG,KAAK,CAAC;YAEtB,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;gBACxB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC1B,WAAW,IAAI,QAAQ,GAAG,IAAI,CAAC;gBAE/B,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC3B,KAAK,EAAE,CAAC;oBACR,SAAS,GAAG,IAAI,CAAC;gBACnB,CAAC;gBACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC3B,KAAK,EAAE,CAAC;oBACR,IAAI,SAAS,IAAI,KAAK,KAAK,CAAC;wBAAE,MAAM;gBACtC,CAAC;gBACD,CAAC,EAAE,CAAC;YACN,CAAC;YAED,sDAAsD;YACtD,IAAI,WAAW,CAAC,QAAQ,CAAC,mBAAmB,CAAC;gBACzC,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC;gBAClC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC;gBACnC,WAAW,CAAC,QAAQ,CAAC,mBAAmB,CAAC;gBACzC,WAAW,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBAC9C,CAAC,GAAG,CAAC,CAAC,CAAE,0BAA0B;gBAClC,SAAS;YACX,CAAC;QACH,CAAC;QAED,oDAAoD;QACpD,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAC3B,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAC;YAC1C,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YACzC,OAAO,CAAC,QAAQ,CAAC,gCAAgC,CAAC;YAClD,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAAC;YAC9C,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YACxC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC;YACjD,SAAS;QACX,CAAC;QAED,wCAAwC;QACxC,IAAI,OAAO,KAAK,gDAAgD,EAAE,CAAC;YACjE,wCAAwC;YACxC,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnD,IAAI,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;gBACzE,SAAS;YACX,CAAC;QACH,CAAC;QAED,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,yDAAyD;IACzD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACvB,UAAU,EAAE,CAAC;YACb,IAAI,UAAU,IAAI,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,UAAU,GAAG,CAAC,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,SAAS,yBAAyB,CAAC,SAA2B;IAC5D,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;IAC/C,MAAM,KAAK,GAAa;QACtB,EAAE;QACF,gDAAgD;QAChD,8CAA8C;QAC9C,gDAAgD;QAChD,EAAE;KACH,CAAC;IAEF,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QAE3B,IAAI,SAAS,EAAE,CAAC;YACd,sBAAsB;YACtB,qFAAqF;YACrF,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,WAAW,CAAC,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,CAAC;YAExC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnD,KAAK,CAAC,IAAI,CAAC,YAAY,GAAG,OAAO,KAAK,GAAG,CAAC,CAAC;YAC7C,CAAC;YAED,wCAAwC;YACxC,IAAI,QAAQ,CAAC,OAAO,KAAK,2BAA2B,EAAE,CAAC;gBACrD,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;YACpD,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,6EAA6E;YAC7E,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,WAAW,CAAC,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,CAAC;YAEjC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACxC,IAAI,QAAQ,CAAC,OAAO,KAAK,2BAA2B,EAAE,CAAC;gBACrD,OAAO,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC,CAAC;YAC9C,CAAC;YAED,+BAA+B;YAC/B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;gBACnC,KAAK,CAAC,IAAI,CAAC,cAAc,GAAG,KAAK,KAAK,GAAG,CAAC,CAAC;YAC7C,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,IAAI,SAAS,EAAE,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;QACnF,KAAK,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC;QACrF,KAAK,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;QAClF,KAAK,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;QAC/E,KAAK,CAAC,IAAI,CAAC,4FAA4F,CAAC,CAAC;QACzG,KAAK,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;QAChF,KAAK,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC;QAC3F,KAAK,CAAC,IAAI,CAAC,kFAAkF,CAAC,CAAC;QAC/F,KAAK,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAC;QAC9F,KAAK,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC;QAC7F,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC;QACrF,KAAK,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;QACnF,KAAK,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;QACtE,KAAK,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC;QACxF,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;QACrD,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,SAAS,WAAW;IAClB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC;IACzG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,iCAAiC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACxG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,iCAAiC;IACjC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC,CAAC;QAChF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC,CAAC;QAC5F,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,WAAW,EAAE,CAAC;IAEd,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;QACrC,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,wCAAwC;QACxC,IAAI,WAAW,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;YAEhD,IAAI,MAAM,CAAC,mBAAmB,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,qBAAqB,EAAE,CAAC;gBAC/F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC,CAAC;gBAErE,IAAI,MAAM,CAAC,mBAAmB,EAAE,CAAC;oBAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC,CAAC;gBAChF,CAAC;gBACD,IAAI,MAAM,CAAC,qBAAqB,EAAE,CAAC;oBACjC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,4BAA4B,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrF,CAAC;gBACD,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACjC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC,CAAC;gBAC7D,CAAC;gBAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAEhB,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC;oBAClC,OAAO,EAAE,gDAAgD;oBACzD,OAAO,EAAE,IAAI;iBACd,CAAC,CAAC;gBAEH,IAAI,aAAa,EAAE,CAAC;oBAClB,MAAM,OAAO,GAAG,GAAG,CAAC,wBAAwB,CAAC,CAAC,KAAK,EAAE,CAAC;oBAEtD,gBAAgB;oBAChB,MAAM,cAAc,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;oBACnD,aAAa,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;oBAE3C,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;oBACnD,SAAS,GAAG,IAAI,CAAC;oBACjB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC;YAClC,OAAO,EAAE,mBAAmB;YAC5B,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,mCAAmC,CAAC,EAAE;oBAChF,KAAK,EAAE,MAAM;oBACb,WAAW,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,WAAW;iBACjD;gBACD;oBACE,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE,SAAS;oBAChB,WAAW,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC,WAAW;iBACpD;gBACD;oBACE,IAAI,EAAE,WAAW;oBACjB,KAAK,EAAE,WAAW;oBAClB,WAAW,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC,WAAW;iBACtD;gBACD;oBACE,IAAI,EAAE,YAAY;oBAClB,KAAK,EAAE,YAAY;oBACnB,WAAW,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC,WAAW;iBACvD;gBACD;oBACE,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;oBACzB,KAAK,EAAE,QAAQ;oBACf,WAAW,EAAE,8BAA8B;iBAC5C;aACF;SACF,CAAC,CAAC;QAEH,uCAAuC;QACvC,IAAI,OAAe,CAAC;QACpB,IAAI,YAAoB,CAAC;QACzB,IAAI,YAAY,GAAG,KAAK,CAAC;QAEzB,IAAI,cAAc,KAAK,QAAQ,EAAE,CAAC;YAChC,YAAY,GAAG,MAAM,KAAK,CAAC;gBACzB,OAAO,EAAE,kDAAkD;gBAC3D,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU;gBAC7C,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;aAChE,CAAC,CAAC;YAEH,OAAO,GAAG,MAAM,KAAK,CAAC;gBACpB,OAAO,EAAE,UAAU;gBACnB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,qCAAqC;aACrF,CAAC,CAAC;YAEH,YAAY,GAAG,MAAM,OAAO,CAAC;gBAC3B,OAAO,EAAE,kDAAkD;gBAC3D,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,YAAY,GAAG,cAAc,CAAC;YAC9B,OAAO,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC;YAClD,YAAY,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC,YAAY,IAAI,KAAK,CAAC;YAErE,iCAAiC;YACjC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,OAAO,EAAE,CAAC,CAAC,CAAC;QACnD,CAAC;QAED,sBAAsB;QACtB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC;YAC5B,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,oBAAoB;YACtE,IAAI,EAAE,GAAG;YACT,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW;SACrD,CAAC,CAAC;QAEH,8BAA8B;QAC9B,IAAI,MAA+B,CAAC;QAEpC,mEAAmE;QACnE,IAAI,cAAc,KAAK,MAAM,EAAE,CAAC;YAC9B,MAAM,GAAG;gBACP,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE,aAAa;gBACpB,MAAM,EAAE,SAAS;gBACjB,IAAI,EAAE,SAAS;aAChB,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC,CAAC;QACjG,CAAC;aAAM,IAAI,cAAc,KAAK,WAAW,EAAE,CAAC;YAC1C,yCAAyC;YACzC,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC;gBACpC,OAAO,EAAE,2BAA2B;gBACpC,OAAO,EAAE,cAAc,KAAK,SAAS,EAAG,0BAA0B;aACnE,CAAC,CAAC;YAEH,IAAI,eAAe,EAAE,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,CAAC;gBAEzD,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC5E,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;gBACxE,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC1E,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;gBAEtE,MAAM,GAAG,EAAE,CAAC;gBACZ,IAAI,YAAY;oBAAE,MAAM,CAAC,OAAO,GAAG,YAAY,CAAC;gBAChD,IAAI,UAAU;oBAAE,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC;gBAC1C,IAAI,WAAW;oBAAE,MAAM,CAAC,MAAM,GAAG,WAAW,CAAC;gBAC7C,IAAI,SAAS;oBAAE,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC;gBAEvC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC;oBAAE,MAAM,GAAG,SAAS,CAAC;YAC3D,CAAC;QACH,CAAC;QAED,gBAAgB;QAChB,MAAM,mBAAmB,GAAG,MAAM,OAAO,CAAC;YACxC,OAAO,EAAE,4BAA4B;YACrC,OAAO,EAAE,cAAc,KAAK,WAAW,EAAG,gCAAgC;SAC3E,CAAC,CAAC;QAEH,eAAe;QACf,MAAM,MAAM,GAAmB;YAC7B,IAAI,EAAE,YAAY;YAClB,OAAO;YACP,MAAM;YACN,MAAM;YACN,0BAA0B,EAAE,mBAAmB,IAAI,SAAS;YAC5D,YAAY,EAAE,YAAY,IAAI,SAAS;YACvC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;QAEF,gBAAgB;QAChB,MAAM,OAAO,GAAG,GAAG,CAAC,oBAAoB,CAAC,CAAC,KAAK,EAAE,CAAC;QAClD,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;QAC1B,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,YAAY,SAAS,CAAC,CAAC,CAAC;QAEjE,qBAAqB;QACrB,IAAI,sBAAsB,GAAG,KAAK,CAAC;QAEnC,IAAI,WAAW,EAAE,CAAC;YAChB,2CAA2C;YAC3C,MAAM,YAAY,GAAG,MAAM,eAAe,EAAE,CAAC;YAC7C,MAAM,SAAS,GAAG,yBAAyB,CAAC,YAAY,CAAC,CAAC;YAE1D,6CAA6C;YAC7C,IAAI,cAAc,GAAG,EAAE,CAAC;YACxB,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC5B,cAAc,GAAG,SAAS;oBACxB,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC;oBACpC,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YAClC,CAAC;YAED,mBAAmB;YACnB,MAAM,UAAU,GAAG,cAAc,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC;YAE/D,0BAA0B;YAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC5B,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7C,CAAC;YAED,aAAa,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;YACvC,sBAAsB,GAAG,IAAI,CAAC;YAE9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,kCAAkC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC5E,CAAC;QAED,qBAAqB;QACrB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,UAAU,YAAY,EAAE,CAAC,qBAAqB,YAAY,EAAE,CAAC,CAAC;QAC3F,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,kCAAkC,CAAC,CAAC;QAC9E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,IAAI,sBAAsB,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,YAAY,WAAW,EAAE,CAAC,CAAC,CAAC;YAC/E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;QAED,OAAO;YACL,OAAO,EAAE,IAAI;YACb,YAAY;YACZ,sBAAsB;YACtB,WAAW,EAAE,WAAW,IAAI,SAAS;YACrC,SAAS;SACV,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,CAAC,EAAE,CAAC;YAChH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC;YACjD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC5B,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dino-spec",
3
- "version": "11.5.0",
3
+ "version": "11.5.2",
4
4
  "description": "Automatic context engineering for Claude Code",
5
5
  "type": "module",
6
6
  "exports": {