@vybestack/llxprt-code 0.8.0 → 0.8.1-nightly.260121.ebf3dc631
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/dist/index.js +0 -0
- package/dist/package.json +4 -4
- package/dist/src/generated/git-commit.d.ts +1 -1
- package/dist/src/generated/git-commit.js +1 -1
- package/dist/src/ui/components/WelcomeOnboarding/AuthMethodStep.js +7 -1
- package/dist/src/ui/components/WelcomeOnboarding/AuthMethodStep.js.map +1 -1
- package/dist/src/ui/components/WelcomeOnboarding/ProviderSelectStep.js +29 -4
- package/dist/src/ui/components/WelcomeOnboarding/ProviderSelectStep.js.map +1 -1
- package/dist/src/ui/hooks/useWelcomeOnboarding.js +51 -30
- package/dist/src/ui/hooks/useWelcomeOnboarding.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +4 -4
package/dist/index.js
CHANGED
|
File without changes
|
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vybestack/llxprt-code",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.1-nightly.260121.ebf3dc631",
|
|
4
4
|
"description": "LLxprt Code",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"llxprt": "dist/index.js"
|
|
14
14
|
},
|
|
15
15
|
"scripts": {
|
|
16
|
-
"build": "node ../../scripts/build_package.js",
|
|
16
|
+
"build": "node ../../scripts/build_package.js && chmod 755 dist/index.js",
|
|
17
17
|
"start": "node dist/index.js",
|
|
18
18
|
"debug": "node --inspect-brk dist/index.js",
|
|
19
19
|
"lint": "eslint . --ext .ts,.tsx",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"dist"
|
|
34
34
|
],
|
|
35
35
|
"config": {
|
|
36
|
-
"sandboxImageUri": "ghcr.io/vybestack/llxprt-code/sandbox:0.8.
|
|
36
|
+
"sandboxImageUri": "ghcr.io/vybestack/llxprt-code/sandbox:0.8.1-nightly.260121.ebf3dc631"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@anthropic-ai/sdk": "^0.55.1",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"@iarna/toml": "^2.2.5",
|
|
43
43
|
"@modelcontextprotocol/sdk": "^1.25.2",
|
|
44
44
|
"@types/update-notifier": "^6.0.8",
|
|
45
|
-
"@vybestack/llxprt-code-core": "0.8.
|
|
45
|
+
"@vybestack/llxprt-code-core": "0.8.1-nightly.260121.ebf3dc631",
|
|
46
46
|
"ansi-regex": "^6.2.2",
|
|
47
47
|
"chalk": "^5.3.0",
|
|
48
48
|
"cli-spinners": "2.9.2",
|
|
@@ -9,7 +9,13 @@ import { Box, Text } from 'ink';
|
|
|
9
9
|
import { Colors } from '../../colors.js';
|
|
10
10
|
import { RadioButtonSelect, } from '../shared/RadioButtonSelect.js';
|
|
11
11
|
// Providers that support OAuth
|
|
12
|
-
const OAUTH_PROVIDERS = new Set([
|
|
12
|
+
const OAUTH_PROVIDERS = new Set([
|
|
13
|
+
'anthropic',
|
|
14
|
+
'openai',
|
|
15
|
+
'gemini',
|
|
16
|
+
'qwen',
|
|
17
|
+
'codex',
|
|
18
|
+
]);
|
|
13
19
|
const API_KEY_URLS = {
|
|
14
20
|
anthropic: 'console.anthropic.com/settings/keys',
|
|
15
21
|
openai: 'platform.openai.com/api-keys',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthMethodStep.js","sourceRoot":"","sources":["../../../../../src/ui/components/WelcomeOnboarding/AuthMethodStep.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAc,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EACL,iBAAiB,GAElB,MAAM,gCAAgC,CAAC;AAExC,+BAA+B;AAC/B,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"AuthMethodStep.js","sourceRoot":"","sources":["../../../../../src/ui/components/WelcomeOnboarding/AuthMethodStep.tsx"],"names":[],"mappings":"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"}
|
|
@@ -9,17 +9,42 @@ import { Box, Text } from 'ink';
|
|
|
9
9
|
import { Colors } from '../../colors.js';
|
|
10
10
|
import { RadioButtonSelect, } from '../shared/RadioButtonSelect.js';
|
|
11
11
|
const PROVIDER_DISPLAY_NAMES = {
|
|
12
|
-
anthropic: 'Anthropic (Claude)',
|
|
13
|
-
openai: 'OpenAI (GPT-4, etc.)',
|
|
14
12
|
gemini: 'Google Gemini',
|
|
15
|
-
|
|
13
|
+
codex: 'OpenAI Codex (ChatGPT Backend)',
|
|
14
|
+
anthropic: 'Anthropic (Claude)',
|
|
16
15
|
qwen: 'Qwen',
|
|
16
|
+
synthetic: 'Synthetic (Testing)',
|
|
17
|
+
zai: 'Zai',
|
|
18
|
+
openai: 'OpenAI (GPT-4, etc.)',
|
|
17
19
|
'openai-responses': 'OpenAI Responses API',
|
|
18
20
|
openaivercel: 'OpenAI (Vercel AI SDK)',
|
|
21
|
+
deepseek: 'DeepSeek',
|
|
19
22
|
};
|
|
23
|
+
// Preferred order for provider display
|
|
24
|
+
const PROVIDER_ORDER = [
|
|
25
|
+
'gemini',
|
|
26
|
+
'codex',
|
|
27
|
+
'anthropic',
|
|
28
|
+
'qwen',
|
|
29
|
+
'synthetic',
|
|
30
|
+
'zai',
|
|
31
|
+
'openai',
|
|
32
|
+
'openai-responses',
|
|
33
|
+
'openaivercel',
|
|
34
|
+
'deepseek',
|
|
35
|
+
];
|
|
20
36
|
export const ProviderSelectStep = ({ providers, onSelect, onSkip, isFocused = true, }) => {
|
|
21
37
|
const options = useMemo(() => {
|
|
22
|
-
|
|
38
|
+
// Sort providers by preferred order
|
|
39
|
+
const sortedProviders = [...providers].sort((a, b) => {
|
|
40
|
+
const aIndex = PROVIDER_ORDER.indexOf(a);
|
|
41
|
+
const bIndex = PROVIDER_ORDER.indexOf(b);
|
|
42
|
+
// Providers not in the list go to the end
|
|
43
|
+
const aOrder = aIndex === -1 ? PROVIDER_ORDER.length : aIndex;
|
|
44
|
+
const bOrder = bIndex === -1 ? PROVIDER_ORDER.length : bIndex;
|
|
45
|
+
return aOrder - bOrder;
|
|
46
|
+
});
|
|
47
|
+
const providerOptions = sortedProviders.map((provider) => ({
|
|
23
48
|
label: PROVIDER_DISPLAY_NAMES[provider] || provider,
|
|
24
49
|
value: provider,
|
|
25
50
|
key: provider,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProviderSelectStep.js","sourceRoot":"","sources":["../../../../../src/ui/components/WelcomeOnboarding/ProviderSelectStep.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAc,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EACL,iBAAiB,GAElB,MAAM,gCAAgC,CAAC;AAExC,MAAM,sBAAsB,GAA2B;IACrD,SAAS,EAAE,oBAAoB;IAC/B,
|
|
1
|
+
{"version":3,"file":"ProviderSelectStep.js","sourceRoot":"","sources":["../../../../../src/ui/components/WelcomeOnboarding/ProviderSelectStep.tsx"],"names":[],"mappings":"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"}
|
|
@@ -42,7 +42,7 @@ export const useWelcomeOnboarding = (options) => {
|
|
|
42
42
|
try {
|
|
43
43
|
const models = await runtime.listAvailableModels(state.selectedProvider);
|
|
44
44
|
const modelInfos = models.map((m) => ({
|
|
45
|
-
id: m.
|
|
45
|
+
id: m.id,
|
|
46
46
|
name: m.name,
|
|
47
47
|
}));
|
|
48
48
|
setAvailableModels(modelInfos);
|
|
@@ -64,16 +64,20 @@ export const useWelcomeOnboarding = (options) => {
|
|
|
64
64
|
setState((prev) => ({
|
|
65
65
|
...prev,
|
|
66
66
|
selectedProvider: providerId,
|
|
67
|
-
step: '
|
|
67
|
+
step: 'auth_method', // Auth before model selection to ensure models load properly
|
|
68
68
|
}));
|
|
69
69
|
}, []);
|
|
70
|
-
const selectModel = useCallback((modelId) => {
|
|
70
|
+
const selectModel = useCallback(async (modelId) => {
|
|
71
|
+
// Actually set the model on the runtime so it's captured in the profile
|
|
72
|
+
debug.log(`[selectModel] Setting model: ${modelId}`);
|
|
73
|
+
await runtime.setActiveModel(modelId);
|
|
74
|
+
debug.log(`[selectModel] Model set successfully: ${modelId}`);
|
|
71
75
|
setState((prev) => ({
|
|
72
76
|
...prev,
|
|
73
77
|
selectedModel: modelId,
|
|
74
|
-
step: '
|
|
78
|
+
step: 'completion', // After model selection, go to completion (auth already done)
|
|
75
79
|
}));
|
|
76
|
-
}, []);
|
|
80
|
+
}, [runtime]);
|
|
77
81
|
const selectAuthMethod = useCallback((method) => {
|
|
78
82
|
setState((prev) => ({
|
|
79
83
|
...prev,
|
|
@@ -82,16 +86,36 @@ export const useWelcomeOnboarding = (options) => {
|
|
|
82
86
|
authInProgress: true,
|
|
83
87
|
}));
|
|
84
88
|
}, []);
|
|
85
|
-
const onAuthComplete = useCallback(() => {
|
|
86
|
-
// Provider switch already happened in triggerAuth
|
|
89
|
+
const onAuthComplete = useCallback(async () => {
|
|
90
|
+
// Provider switch already happened in triggerAuth
|
|
87
91
|
debug.log(`[onAuthComplete] Auth complete for provider: ${state.selectedProvider}`);
|
|
92
|
+
// Refresh models now that auth is established
|
|
93
|
+
try {
|
|
94
|
+
if (state.selectedProvider) {
|
|
95
|
+
setState((prev) => ({ ...prev, modelsLoadStatus: 'loading' }));
|
|
96
|
+
const models = await runtime.listAvailableModels(state.selectedProvider);
|
|
97
|
+
const modelInfos = models.map((m) => ({
|
|
98
|
+
id: m.id,
|
|
99
|
+
name: m.name,
|
|
100
|
+
}));
|
|
101
|
+
setAvailableModels(modelInfos);
|
|
102
|
+
setState((prev) => ({ ...prev, modelsLoadStatus: 'success' }));
|
|
103
|
+
debug.log(`[onAuthComplete] Loaded ${modelInfos.length} models for ${state.selectedProvider}`);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
debug.log(`[onAuthComplete] Failed to reload models: ${error}`);
|
|
108
|
+
setAvailableModels([]);
|
|
109
|
+
setState((prev) => ({ ...prev, modelsLoadStatus: 'error' }));
|
|
110
|
+
}
|
|
111
|
+
// Go to model selection step (since we reordered: provider → auth → model)
|
|
88
112
|
setState((prev) => ({
|
|
89
113
|
...prev,
|
|
90
|
-
step: '
|
|
114
|
+
step: 'model',
|
|
91
115
|
authInProgress: false,
|
|
92
116
|
error: undefined,
|
|
93
117
|
}));
|
|
94
|
-
}, [state.selectedProvider]);
|
|
118
|
+
}, [runtime, state.selectedProvider]);
|
|
95
119
|
const onAuthError = useCallback((error) => {
|
|
96
120
|
setState((prev) => ({
|
|
97
121
|
...prev,
|
|
@@ -106,10 +130,9 @@ export const useWelcomeOnboarding = (options) => {
|
|
|
106
130
|
const goBack = useCallback(() => {
|
|
107
131
|
setState((prev) => {
|
|
108
132
|
switch (prev.step) {
|
|
109
|
-
case 'model':
|
|
110
|
-
return { ...prev, step: 'provider', selectedProvider: undefined };
|
|
111
133
|
case 'auth_method':
|
|
112
|
-
|
|
134
|
+
// Going back from auth method goes to provider selection
|
|
135
|
+
return { ...prev, step: 'provider', selectedProvider: undefined };
|
|
113
136
|
case 'authenticating':
|
|
114
137
|
return {
|
|
115
138
|
...prev,
|
|
@@ -117,6 +140,9 @@ export const useWelcomeOnboarding = (options) => {
|
|
|
117
140
|
selectedAuthMethod: undefined,
|
|
118
141
|
authInProgress: false,
|
|
119
142
|
};
|
|
143
|
+
case 'model':
|
|
144
|
+
// Going back from model selection goes to auth method
|
|
145
|
+
return { ...prev, step: 'auth_method', selectedModel: undefined };
|
|
120
146
|
case 'provider':
|
|
121
147
|
return { ...prev, step: 'welcome' };
|
|
122
148
|
default:
|
|
@@ -160,40 +186,35 @@ export const useWelcomeOnboarding = (options) => {
|
|
|
160
186
|
debug.log(`Welcome flow completed (skipped: ${skipped})`);
|
|
161
187
|
}, [state.step]);
|
|
162
188
|
// Trigger authentication for the selected provider
|
|
189
|
+
// Flow is now: provider → auth → model, so we authenticate FIRST before setting provider/model
|
|
163
190
|
const triggerAuth = useCallback(async (provider, method, apiKey) => {
|
|
164
191
|
debug.log(`[triggerAuth] START provider=${provider} method=${method}`);
|
|
165
192
|
const oauthManager = runtime.getCliOAuthManager();
|
|
166
193
|
const providerManager = runtime.getCliProviderManager();
|
|
167
|
-
debug.log(`[triggerAuth] Before
|
|
168
|
-
//
|
|
169
|
-
// including config updates, ephemeral settings, and settingsService updates
|
|
170
|
-
const switchResult = await runtime.switchActiveProvider(provider);
|
|
171
|
-
debug.log(`[triggerAuth] After switchActiveProvider - changed: ${switchResult.changed}, now active: ${providerManager?.getActiveProviderName()}`);
|
|
172
|
-
// Set the selected model
|
|
173
|
-
if (state.selectedModel) {
|
|
174
|
-
debug.log(`[triggerAuth] Setting model to: ${state.selectedModel}`);
|
|
175
|
-
await runtime.setActiveModel(state.selectedModel);
|
|
176
|
-
debug.log(`[triggerAuth] Model set to: ${state.selectedModel}`);
|
|
177
|
-
}
|
|
194
|
+
debug.log(`[triggerAuth] Before auth - current active: ${providerManager?.getActiveProviderName()}`);
|
|
195
|
+
// Authenticate FIRST before switching provider (prevents double OAuth)
|
|
178
196
|
if (method === 'oauth') {
|
|
179
|
-
// Trigger OAuth flow
|
|
180
197
|
if (!oauthManager) {
|
|
181
198
|
throw new Error('OAuth manager not available');
|
|
182
199
|
}
|
|
200
|
+
debug.log(`[triggerAuth] Starting OAuth for ${provider}`);
|
|
183
201
|
await oauthManager.authenticate(provider);
|
|
184
202
|
debug.log(`[triggerAuth] OAuth complete for ${provider}`);
|
|
185
203
|
}
|
|
186
|
-
|
|
187
|
-
|
|
204
|
+
// Now switch to the provider AFTER auth is complete
|
|
205
|
+
const switchResult = await runtime.switchActiveProvider(provider);
|
|
206
|
+
debug.log(`[triggerAuth] After switchActiveProvider - changed: ${switchResult.changed}, now active: ${providerManager?.getActiveProviderName()}`);
|
|
207
|
+
// For API key method, set the key after switching provider
|
|
208
|
+
if (method === 'api_key') {
|
|
209
|
+
if (!apiKey) {
|
|
210
|
+
throw new Error('API key is required for API key authentication');
|
|
211
|
+
}
|
|
188
212
|
debug.log(`[triggerAuth] Calling updateActiveProviderApiKey for ${provider}`);
|
|
189
213
|
const result = await runtime.updateActiveProviderApiKey(apiKey);
|
|
190
214
|
debug.log(`[triggerAuth] API key result: ${result.message}, providerName=${result.providerName}`);
|
|
191
215
|
}
|
|
192
|
-
else {
|
|
193
|
-
throw new Error('API key is required for API key authentication');
|
|
194
|
-
}
|
|
195
216
|
debug.log(`[triggerAuth] END - active provider: ${providerManager?.getActiveProviderName()}`);
|
|
196
|
-
}, [runtime
|
|
217
|
+
}, [runtime]);
|
|
197
218
|
return {
|
|
198
219
|
showWelcome,
|
|
199
220
|
state,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWelcomeOnboarding.js","sourceRoot":"","sources":["../../../../src/ui/hooks/useWelcomeOnboarding.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE1D,OAAO,EACL,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,gCAAgC,CAAC,CAAC;AA2DhE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,OAAoC,EACR,EAAE;IAC9B,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAC;IAC/D,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAC5D,kBAAkB,EAAE,CACrB,CAAC;IAEF,mDAAmD;IACnD,MAAM,WAAW,GAAG,CAAC,gBAAgB,IAAI,qBAAqB,CAAC;IAE/D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe;QAC/C,IAAI,EAAE,SAAS;QACf,cAAc,EAAE,KAAK;QACrB,gBAAgB,EAAE,MAAM;KACzB,CAAC,CAAC;IAEH,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAW,EAAE,CAAC,CAAC;IAC3E,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAc,EAAE,CAAC,CAAC;IAExE,oCAAoC;IACpC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,eAAe,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;QACxD,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,SAAS,GAAG,eAAe,CAAC,aAAa,EAAE,CAAC;YAClD,qBAAqB,CAAC,SAAS,CAAC,CAAC;YACjC,KAAK,CAAC,GAAG,CACP,UAAU,SAAS,CAAC,MAAM,eAAe,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAChE,CAAC;QACJ,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,kDAAkD;IAClD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;YAC5B,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;gBAC5B,kBAAkB,CAAC,EAAE,CAAC,CAAC;gBACvB,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;gBAC5D,OAAO;YACT,CAAC;YAED,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;YAE/D,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,mBAAmB,CAC9C,KAAK,CAAC,gBAAgB,CACvB,CAAC;gBACF,MAAM,UAAU,GAAgB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACjD,EAAE,EAAE,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"useWelcomeOnboarding.js","sourceRoot":"","sources":["../../../../src/ui/hooks/useWelcomeOnboarding.ts"],"names":[],"mappings":"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"}
|