@vybestack/llxprt-code 0.4.8 → 0.5.0-nightly.251102.6bb3db7a
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/package.json +5 -3
- package/dist/src/auth/__tests__/oauthManager.safety.test.d.ts +6 -0
- package/dist/src/auth/__tests__/oauthManager.safety.test.js +49 -0
- package/dist/src/auth/__tests__/oauthManager.safety.test.js.map +1 -0
- package/dist/src/auth/oauth-manager.d.ts +11 -0
- package/dist/src/auth/oauth-manager.js +62 -29
- package/dist/src/auth/oauth-manager.js.map +1 -1
- package/dist/src/auth/oauth-manager.spec.js +7 -2
- package/dist/src/auth/oauth-manager.spec.js.map +1 -1
- package/dist/src/config/__tests__/nonInteractiveTools.test.d.ts +6 -0
- package/dist/src/config/__tests__/nonInteractiveTools.test.js +13 -0
- package/dist/src/config/__tests__/nonInteractiveTools.test.js.map +1 -0
- package/dist/src/config/__tests__/profileBootstrap.test.d.ts +6 -0
- package/dist/src/config/__tests__/profileBootstrap.test.js +91 -0
- package/dist/src/config/__tests__/profileBootstrap.test.js.map +1 -0
- package/dist/src/config/config.d.ts +6 -2
- package/dist/src/config/config.js +219 -18
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/profileBootstrap.d.ts +64 -0
- package/dist/src/config/profileBootstrap.js +140 -0
- package/dist/src/config/profileBootstrap.js.map +1 -0
- package/dist/src/gemini.js +68 -23
- package/dist/src/gemini.js.map +1 -1
- package/dist/src/gemini.test.js +1 -2
- package/dist/src/gemini.test.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +1 -1
- package/dist/src/generated/git-commit.js +1 -1
- package/dist/src/integration-tests/base-url-behavior.integration.test.js +110 -450
- package/dist/src/integration-tests/base-url-behavior.integration.test.js.map +1 -1
- package/dist/src/integration-tests/model-params-isolation.integration.test.js +101 -539
- package/dist/src/integration-tests/model-params-isolation.integration.test.js.map +1 -1
- package/dist/src/integration-tests/modelParams.integration.test.js +86 -761
- package/dist/src/integration-tests/modelParams.integration.test.js.map +1 -1
- package/dist/src/integration-tests/provider-multi-runtime.integration.test.d.ts +6 -0
- package/dist/src/integration-tests/provider-multi-runtime.integration.test.js +198 -0
- package/dist/src/integration-tests/provider-multi-runtime.integration.test.js.map +1 -0
- package/dist/src/integration-tests/provider-switching.integration.test.js +97 -151
- package/dist/src/integration-tests/provider-switching.integration.test.js.map +1 -1
- package/dist/src/integration-tests/runtime-isolation.test.d.ts +13 -0
- package/dist/src/integration-tests/runtime-isolation.test.js +170 -0
- package/dist/src/integration-tests/runtime-isolation.test.js.map +1 -0
- package/dist/src/integration-tests/test-utils.js +19 -2
- package/dist/src/integration-tests/test-utils.js.map +1 -1
- package/dist/src/integration-tests/test-utils.test.js +9 -8
- package/dist/src/integration-tests/test-utils.test.js.map +1 -1
- package/dist/src/integration-tests/todo-continuation.integration.test.js +5 -2
- package/dist/src/integration-tests/todo-continuation.integration.test.js.map +1 -1
- package/dist/src/integration-tests/tools-governance.integration.test.d.ts +6 -0
- package/dist/src/integration-tests/tools-governance.integration.test.js +98 -0
- package/dist/src/integration-tests/tools-governance.integration.test.js.map +1 -0
- package/dist/src/nonInteractiveCli.js +36 -11
- package/dist/src/nonInteractiveCli.js.map +1 -1
- package/dist/src/providers/logging/git-stats.test.js +11 -1
- package/dist/src/providers/logging/git-stats.test.js.map +1 -1
- package/dist/src/providers/logging/multi-provider-logging.integration.test.js +1 -2
- package/dist/src/providers/logging/multi-provider-logging.integration.test.js.map +1 -1
- package/dist/src/providers/logging/performance.test.js +1 -1
- package/dist/src/providers/logging/performance.test.js.map +1 -1
- package/dist/src/providers/oauth-provider-registration.d.ts +2 -2
- package/dist/src/providers/oauth-provider-registration.js +25 -9
- package/dist/src/providers/oauth-provider-registration.js.map +1 -1
- package/dist/src/providers/provider-gemini-switching.test.js +67 -89
- package/dist/src/providers/provider-gemini-switching.test.js.map +1 -1
- package/dist/src/providers/provider-switching.integration.test.js +42 -98
- package/dist/src/providers/provider-switching.integration.test.js.map +1 -1
- package/dist/src/providers/providerConfigUtils.d.ts +12 -7
- package/dist/src/providers/providerConfigUtils.js +31 -99
- package/dist/src/providers/providerConfigUtils.js.map +1 -1
- package/dist/src/providers/providerManagerInstance.d.ts +17 -1
- package/dist/src/providers/providerManagerInstance.js +157 -175
- package/dist/src/providers/providerManagerInstance.js.map +1 -1
- package/dist/src/providers/providerManagerInstance.oauthRegistration.test.js +19 -15
- package/dist/src/providers/providerManagerInstance.oauthRegistration.test.js.map +1 -1
- package/dist/src/providers/providerManagerInstance.test.js +2 -5
- package/dist/src/providers/providerManagerInstance.test.js.map +1 -1
- package/dist/src/runtime/__tests__/profileApplication.test.d.ts +5 -0
- package/dist/src/runtime/__tests__/profileApplication.test.js +232 -0
- package/dist/src/runtime/__tests__/profileApplication.test.js.map +1 -0
- package/dist/src/runtime/__tests__/runtimeIsolation.test.d.ts +5 -0
- package/dist/src/runtime/__tests__/runtimeIsolation.test.js +376 -0
- package/dist/src/runtime/__tests__/runtimeIsolation.test.js.map +1 -0
- package/dist/src/runtime/agentRuntimeAdapter.d.ts +249 -0
- package/dist/src/runtime/agentRuntimeAdapter.js +506 -0
- package/dist/src/runtime/agentRuntimeAdapter.js.map +1 -0
- package/dist/src/runtime/agentRuntimeAdapter.spec.d.ts +6 -0
- package/dist/src/runtime/agentRuntimeAdapter.spec.js +866 -0
- package/dist/src/runtime/agentRuntimeAdapter.spec.js.map +1 -0
- package/dist/src/runtime/messages.d.ts +28 -0
- package/dist/src/runtime/messages.js +64 -0
- package/dist/src/runtime/messages.js.map +1 -0
- package/dist/src/runtime/profileApplication.d.ts +33 -0
- package/dist/src/runtime/profileApplication.js +191 -0
- package/dist/src/runtime/profileApplication.js.map +1 -0
- package/dist/src/runtime/providerConfigUtils.test.d.ts +1 -0
- package/dist/src/runtime/providerConfigUtils.test.js +68 -0
- package/dist/src/runtime/providerConfigUtils.test.js.map +1 -0
- package/dist/src/runtime/runtimeContextFactory.d.ts +102 -0
- package/dist/src/runtime/runtimeContextFactory.js +190 -0
- package/dist/src/runtime/runtimeContextFactory.js.map +1 -0
- package/dist/src/runtime/runtimeSettings.d.ts +217 -0
- package/dist/src/runtime/runtimeSettings.js +1094 -0
- package/dist/src/runtime/runtimeSettings.js.map +1 -0
- package/dist/src/runtime/runtimeSettings.test.d.ts +1 -0
- package/dist/src/runtime/runtimeSettings.test.js +320 -0
- package/dist/src/runtime/runtimeSettings.test.js.map +1 -0
- package/dist/src/services/BuiltinCommandLoader.d.ts +13 -4
- package/dist/src/services/BuiltinCommandLoader.js +17 -4
- package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
- package/dist/src/services/McpPromptLoader.js +34 -13
- package/dist/src/services/McpPromptLoader.js.map +1 -1
- package/dist/src/test-utils/mockCommandContext.js +5 -2
- package/dist/src/test-utils/mockCommandContext.js.map +1 -1
- package/dist/src/ui/App.js +29 -49
- package/dist/src/ui/App.js.map +1 -1
- package/dist/src/ui/commands/aboutCommand.js +59 -38
- package/dist/src/ui/commands/aboutCommand.js.map +1 -1
- package/dist/src/ui/commands/authCommand.js +7 -9
- package/dist/src/ui/commands/authCommand.js.map +1 -1
- package/dist/src/ui/commands/baseurlCommand.js +8 -44
- package/dist/src/ui/commands/baseurlCommand.js.map +1 -1
- package/dist/src/ui/commands/chatCommand.js +28 -12
- package/dist/src/ui/commands/chatCommand.js.map +1 -1
- package/dist/src/ui/commands/diagnosticsCommand.d.ts +0 -3
- package/dist/src/ui/commands/diagnosticsCommand.js +45 -191
- package/dist/src/ui/commands/diagnosticsCommand.js.map +1 -1
- package/dist/src/ui/commands/keyCommand.js +9 -58
- package/dist/src/ui/commands/keyCommand.js.map +1 -1
- package/dist/src/ui/commands/keyCommand.test.js +48 -102
- package/dist/src/ui/commands/keyCommand.test.js.map +1 -1
- package/dist/src/ui/commands/keyfileCommand.js +42 -93
- package/dist/src/ui/commands/keyfileCommand.js.map +1 -1
- package/dist/src/ui/commands/logoutCommand.js +2 -2
- package/dist/src/ui/commands/logoutCommand.js.map +1 -1
- package/dist/src/ui/commands/mcpCommand.js +29 -7
- package/dist/src/ui/commands/mcpCommand.js.map +1 -1
- package/dist/src/ui/commands/modelCommand.js +8 -59
- package/dist/src/ui/commands/modelCommand.js.map +1 -1
- package/dist/src/ui/commands/profileCommand.js +151 -267
- package/dist/src/ui/commands/profileCommand.js.map +1 -1
- package/dist/src/ui/commands/profileCommand.test.js +88 -344
- package/dist/src/ui/commands/profileCommand.test.js.map +1 -1
- package/dist/src/ui/commands/providerCommand.js +9 -3
- package/dist/src/ui/commands/providerCommand.js.map +1 -1
- package/dist/src/ui/commands/restoreCommand.js +38 -18
- package/dist/src/ui/commands/restoreCommand.js.map +1 -1
- package/dist/src/ui/commands/schema/argumentResolver.test.d.ts +6 -0
- package/dist/src/ui/commands/schema/argumentResolver.test.js +619 -0
- package/dist/src/ui/commands/schema/argumentResolver.test.js.map +1 -0
- package/dist/src/ui/commands/schema/index.d.ts +15 -0
- package/dist/src/ui/commands/schema/index.js +320 -0
- package/dist/src/ui/commands/schema/index.js.map +1 -0
- package/dist/src/ui/commands/schema/types.d.ts +61 -0
- package/dist/src/ui/commands/schema/types.js +12 -0
- package/dist/src/ui/commands/schema/types.js.map +1 -0
- package/dist/src/ui/commands/setCommand.js +641 -325
- package/dist/src/ui/commands/setCommand.js.map +1 -1
- package/dist/src/ui/commands/setCommand.test.js +92 -388
- package/dist/src/ui/commands/setCommand.test.js.map +1 -1
- package/dist/src/ui/commands/statusCommand.js +2 -2
- package/dist/src/ui/commands/statusCommand.js.map +1 -1
- package/dist/src/ui/commands/subagentCommand.d.ts +16 -0
- package/dist/src/ui/commands/subagentCommand.js +674 -0
- package/dist/src/ui/commands/subagentCommand.js.map +1 -0
- package/dist/src/ui/commands/test/setCommand.mutation.test.d.ts +6 -0
- package/dist/src/ui/commands/test/setCommand.mutation.test.js +132 -0
- package/dist/src/ui/commands/test/setCommand.mutation.test.js.map +1 -0
- package/dist/src/ui/commands/test/setCommand.phase09.test.d.ts +6 -0
- package/dist/src/ui/commands/test/setCommand.phase09.test.js +222 -0
- package/dist/src/ui/commands/test/setCommand.phase09.test.js.map +1 -0
- package/dist/src/ui/commands/test/subagentCommand.schema.test.d.ts +6 -0
- package/dist/src/ui/commands/test/subagentCommand.schema.test.js +125 -0
- package/dist/src/ui/commands/test/subagentCommand.schema.test.js.map +1 -0
- package/dist/src/ui/commands/test/subagentCommand.test.d.ts +1 -0
- package/dist/src/ui/commands/test/subagentCommand.test.js +598 -0
- package/dist/src/ui/commands/test/subagentCommand.test.js.map +1 -0
- package/dist/src/ui/commands/toolformatCommand.js +25 -98
- package/dist/src/ui/commands/toolformatCommand.js.map +1 -1
- package/dist/src/ui/commands/toolformatCommand.test.js +56 -102
- package/dist/src/ui/commands/toolformatCommand.test.js.map +1 -1
- package/dist/src/ui/commands/toolsCommand.js +187 -31
- package/dist/src/ui/commands/toolsCommand.js.map +1 -1
- package/dist/src/ui/commands/types.d.ts +11 -2
- package/dist/src/ui/commands/types.js.map +1 -1
- package/dist/src/ui/components/AuthDialog.js +16 -55
- package/dist/src/ui/components/AuthDialog.js.map +1 -1
- package/dist/src/ui/components/Footer.js +4 -5
- package/dist/src/ui/components/Footer.js.map +1 -1
- package/dist/src/ui/components/HistoryItemDisplay.js +1 -1
- package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.js +1 -1
- package/dist/src/ui/components/InputPrompt.js.map +1 -1
- package/dist/src/ui/components/StatsDisplay.js +6 -11
- package/dist/src/ui/components/StatsDisplay.js.map +1 -1
- package/dist/src/ui/components/SuggestionsDisplay.d.ts +13 -1
- package/dist/src/ui/components/SuggestionsDisplay.js +22 -3
- package/dist/src/ui/components/SuggestionsDisplay.js.map +1 -1
- package/dist/src/ui/components/messages/ToolGroupMessage.d.ts +1 -0
- package/dist/src/ui/components/messages/ToolGroupMessage.js +14 -14
- package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
- package/dist/src/ui/components/messages/ToolGroupMessage.test.js +1 -0
- package/dist/src/ui/components/messages/ToolGroupMessage.test.js.map +1 -1
- package/dist/src/ui/containers/SessionController.js +61 -117
- package/dist/src/ui/containers/SessionController.js.map +1 -1
- package/dist/src/ui/contexts/RuntimeContext.d.ts +61 -0
- package/dist/src/ui/contexts/RuntimeContext.js +118 -0
- package/dist/src/ui/contexts/RuntimeContext.js.map +1 -0
- package/dist/src/ui/contexts/TodoProvider.d.ts +1 -0
- package/dist/src/ui/contexts/TodoProvider.js +10 -8
- package/dist/src/ui/contexts/TodoProvider.js.map +1 -1
- package/dist/src/ui/contexts/ToolCallProvider.d.ts +1 -0
- package/dist/src/ui/contexts/ToolCallProvider.js +10 -9
- package/dist/src/ui/contexts/ToolCallProvider.js.map +1 -1
- package/dist/src/ui/hooks/__tests__/useSlashCompletion.set.phase09.test.d.ts +6 -0
- package/dist/src/ui/hooks/__tests__/useSlashCompletion.set.phase09.test.js +39 -0
- package/dist/src/ui/hooks/__tests__/useSlashCompletion.set.phase09.test.js.map +1 -0
- package/dist/src/ui/hooks/atCommandProcessor.js +11 -3
- package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/atCommandProcessor.test.js +3 -1
- package/dist/src/ui/hooks/atCommandProcessor.test.js.map +1 -1
- package/dist/src/ui/hooks/shellCommandProcessor.js +4 -1
- package/dist/src/ui/hooks/shellCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/shellCommandProcessor.test.js +1 -0
- package/dist/src/ui/hooks/shellCommandProcessor.test.js.map +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.js +27 -1
- package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/useAuthCommand.js +11 -3
- package/dist/src/ui/hooks/useAuthCommand.js.map +1 -1
- package/dist/src/ui/hooks/useCommandCompletion.d.ts +1 -0
- package/dist/src/ui/hooks/useCommandCompletion.js +2 -0
- package/dist/src/ui/hooks/useCommandCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useGeminiStream.js +37 -11
- package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
- package/dist/src/ui/hooks/useGeminiStream.subagent.spec.d.ts +6 -0
- package/dist/src/ui/hooks/useGeminiStream.subagent.spec.js +232 -0
- package/dist/src/ui/hooks/useGeminiStream.subagent.spec.js.map +1 -0
- package/dist/src/ui/hooks/useLoadProfileDialog.d.ts +1 -1
- package/dist/src/ui/hooks/useLoadProfileDialog.js +18 -57
- package/dist/src/ui/hooks/useLoadProfileDialog.js.map +1 -1
- package/dist/src/ui/hooks/useOpenAIProviderInfo.d.ts +1 -1
- package/dist/src/ui/hooks/useOpenAIProviderInfo.js +12 -7
- package/dist/src/ui/hooks/useOpenAIProviderInfo.js.map +1 -1
- package/dist/src/ui/hooks/useProviderDialog.d.ts +1 -1
- package/dist/src/ui/hooks/useProviderDialog.js +17 -90
- package/dist/src/ui/hooks/useProviderDialog.js.map +1 -1
- package/dist/src/ui/hooks/useProviderModelDialog.d.ts +2 -2
- package/dist/src/ui/hooks/useProviderModelDialog.js +11 -12
- package/dist/src/ui/hooks/useProviderModelDialog.js.map +1 -1
- package/dist/src/ui/hooks/useReactToolScheduler.d.ts +3 -1
- package/dist/src/ui/hooks/useReactToolScheduler.js +144 -34
- package/dist/src/ui/hooks/useReactToolScheduler.js.map +1 -1
- package/dist/src/ui/hooks/useSlashCompletion.d.ts +32 -0
- package/dist/src/ui/hooks/useSlashCompletion.js +154 -77
- package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useSlashCompletion.test.js +39 -14
- package/dist/src/ui/hooks/useSlashCompletion.test.js.map +1 -1
- package/dist/src/ui/hooks/useToolScheduler.test.js +108 -79
- package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
- package/dist/src/ui/types.d.ts +1 -0
- package/dist/src/ui/types.js.map +1 -1
- package/dist/src/utils/sandbox.js +7 -5
- package/dist/src/utils/sandbox.js.map +1 -1
- package/dist/src/validateNonInterActiveAuth.js +4 -2
- package/dist/src/validateNonInterActiveAuth.js.map +1 -1
- package/dist/src/zed-integration/schema.d.ts +30 -30
- package/dist/src/zed-integration/zedIntegration.js +112 -39
- package/dist/src/zed-integration/zedIntegration.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/package.json +5 -3
- package/dist/tsconfig.tsbuildinfo +0 -1
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Vybestack LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
7
|
+
import * as os from 'node:os';
|
|
8
|
+
import * as path from 'node:path';
|
|
9
|
+
import { Config, MultiProviderTokenStore, ProviderManager, SettingsService, clearActiveProviderRuntimeContext, createProviderRuntimeContext, flushRuntimeAuthScope, ProfileManager, SubagentManager, } from '@vybestack/llxprt-code-core';
|
|
10
|
+
import { OAuthManager } from '../auth/oauth-manager.js';
|
|
11
|
+
const DEFAULT_MODEL = 'gemini-1.5-flash';
|
|
12
|
+
const DEFAULT_DEBUG_MODE = false;
|
|
13
|
+
let sharedTokenStore = null;
|
|
14
|
+
let activationBindings = null;
|
|
15
|
+
let runtimeCounter = 0;
|
|
16
|
+
const runtimeScope = new AsyncLocalStorage();
|
|
17
|
+
export function enterRuntimeScope(scope) {
|
|
18
|
+
runtimeScope.enterWith(scope);
|
|
19
|
+
}
|
|
20
|
+
export function runWithRuntimeScope(scope, callback) {
|
|
21
|
+
return runtimeScope.run(scope, callback);
|
|
22
|
+
}
|
|
23
|
+
export function getCurrentRuntimeScope() {
|
|
24
|
+
return runtimeScope.getStore();
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* @plan:PLAN-20251018-STATELESSPROVIDER2.P03
|
|
28
|
+
* @requirement:REQ-SP2-002
|
|
29
|
+
* @pseudocode multi-runtime-baseline.md lines 6-6
|
|
30
|
+
* Cache CLI activation bindings (reset/context/infrastructure/link) for deterministic invocation.
|
|
31
|
+
*/
|
|
32
|
+
export function registerIsolatedRuntimeBindings(bindings) {
|
|
33
|
+
activationBindings = bindings;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* @plan:PLAN-20251018-STATELESSPROVIDER2.P03
|
|
37
|
+
* @requirement:REQ-SP2-002
|
|
38
|
+
* @pseudocode multi-runtime-baseline.md lines 2-5
|
|
39
|
+
* Construct an isolated runtime using shared immutable resources and scoped services.
|
|
40
|
+
*/
|
|
41
|
+
export function createIsolatedRuntimeContext(options = {}) {
|
|
42
|
+
if (!activationBindings) {
|
|
43
|
+
throw new Error('Isolated runtime activation bindings must be registered before creating contexts.');
|
|
44
|
+
}
|
|
45
|
+
const runtimeId = options.runtimeId ??
|
|
46
|
+
`cli-isolated-${Date.now().toString(16)}-${(runtimeCounter += 1).toString(16)}`;
|
|
47
|
+
const workspaceDir = options.workspaceDir ?? process.cwd();
|
|
48
|
+
const baseMetadata = {
|
|
49
|
+
source: 'cli-isolated-runtime-factory',
|
|
50
|
+
...(options.metadata ?? {}),
|
|
51
|
+
};
|
|
52
|
+
const settingsService = options.config?.getSettingsService() ??
|
|
53
|
+
options.settingsService ??
|
|
54
|
+
new SettingsService();
|
|
55
|
+
const model = options.model ?? DEFAULT_MODEL;
|
|
56
|
+
const debugMode = options.debugMode ?? DEFAULT_DEBUG_MODE;
|
|
57
|
+
const config = options.config ??
|
|
58
|
+
new Config({
|
|
59
|
+
sessionId: runtimeId,
|
|
60
|
+
targetDir: workspaceDir,
|
|
61
|
+
debugMode,
|
|
62
|
+
cwd: workspaceDir,
|
|
63
|
+
model,
|
|
64
|
+
settingsService,
|
|
65
|
+
});
|
|
66
|
+
const configWithManagers = config;
|
|
67
|
+
const optionsConfigWithManagers = options.config;
|
|
68
|
+
const llxprtDir = path.join(os.homedir(), '.llxprt');
|
|
69
|
+
const resolvedProfileManager = optionsConfigWithManagers?.getProfileManager?.() ??
|
|
70
|
+
configWithManagers.getProfileManager?.() ??
|
|
71
|
+
new ProfileManager(path.join(llxprtDir, 'profiles'));
|
|
72
|
+
const resolvedSubagentManager = optionsConfigWithManagers?.getSubagentManager?.() ??
|
|
73
|
+
configWithManagers.getSubagentManager?.() ??
|
|
74
|
+
new SubagentManager(path.join(llxprtDir, 'subagents'), resolvedProfileManager);
|
|
75
|
+
configWithManagers.setProfileManager?.(resolvedProfileManager);
|
|
76
|
+
configWithManagers.setSubagentManager?.(resolvedSubagentManager);
|
|
77
|
+
const resolvedSettingsService = config.getSettingsService() ?? settingsService;
|
|
78
|
+
const tokenStore = sharedTokenStore ?? (sharedTokenStore = new MultiProviderTokenStore()); // Step 1 (multi-runtime-baseline.md line 2) keeps token storage shared.
|
|
79
|
+
const oauthManager = options.oauthManager ?? new OAuthManager(tokenStore);
|
|
80
|
+
const initialRuntimeContext = createProviderRuntimeContext({
|
|
81
|
+
settingsService: resolvedSettingsService,
|
|
82
|
+
config,
|
|
83
|
+
runtimeId,
|
|
84
|
+
metadata: baseMetadata,
|
|
85
|
+
});
|
|
86
|
+
const providerManager = new ProviderManager({
|
|
87
|
+
runtime: initialRuntimeContext,
|
|
88
|
+
settingsService: resolvedSettingsService,
|
|
89
|
+
config,
|
|
90
|
+
});
|
|
91
|
+
let currentRuntimeId = runtimeId;
|
|
92
|
+
let currentMetadata = baseMetadata;
|
|
93
|
+
let active = false;
|
|
94
|
+
/**
|
|
95
|
+
* @plan:PLAN-20251018-STATELESSPROVIDER2.P03
|
|
96
|
+
* @requirement:REQ-SP2-002
|
|
97
|
+
* @pseudocode multi-runtime-baseline.md lines 7-7
|
|
98
|
+
* Execute the activation flow in the reset → context → infrastructure → link order per Step 6.
|
|
99
|
+
*/
|
|
100
|
+
const activate = async (activationOptions) => {
|
|
101
|
+
if (!activationBindings) {
|
|
102
|
+
throw new Error('Isolated runtime activation bindings must be registered before activation.');
|
|
103
|
+
}
|
|
104
|
+
const bindings = activationBindings;
|
|
105
|
+
currentRuntimeId = activationOptions?.runtimeId ?? runtimeId;
|
|
106
|
+
currentMetadata = {
|
|
107
|
+
...baseMetadata,
|
|
108
|
+
...(activationOptions?.metadata ?? {}),
|
|
109
|
+
};
|
|
110
|
+
const scope = {
|
|
111
|
+
runtimeId: currentRuntimeId,
|
|
112
|
+
metadata: currentMetadata,
|
|
113
|
+
};
|
|
114
|
+
enterRuntimeScope(scope);
|
|
115
|
+
await runWithRuntimeScope(scope, async () => {
|
|
116
|
+
const scopedRuntime = createProviderRuntimeContext({
|
|
117
|
+
settingsService: resolvedSettingsService,
|
|
118
|
+
config,
|
|
119
|
+
runtimeId: currentRuntimeId,
|
|
120
|
+
metadata: currentMetadata,
|
|
121
|
+
});
|
|
122
|
+
providerManager.runtime = scopedRuntime;
|
|
123
|
+
await Promise.resolve(bindings.resetInfrastructure());
|
|
124
|
+
await Promise.resolve(bindings.setRuntimeContext(resolvedSettingsService, config, {
|
|
125
|
+
runtimeId: currentRuntimeId,
|
|
126
|
+
metadata: currentMetadata,
|
|
127
|
+
}));
|
|
128
|
+
if (options.prepare) {
|
|
129
|
+
await options.prepare({
|
|
130
|
+
config,
|
|
131
|
+
settingsService: resolvedSettingsService,
|
|
132
|
+
providerManager,
|
|
133
|
+
oauthManager,
|
|
134
|
+
runtimeId: currentRuntimeId,
|
|
135
|
+
metadata: currentMetadata,
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
await Promise.resolve(bindings.registerInfrastructure(providerManager, oauthManager));
|
|
139
|
+
await Promise.resolve(bindings.linkProviderManager(config, providerManager));
|
|
140
|
+
active = true;
|
|
141
|
+
});
|
|
142
|
+
};
|
|
143
|
+
/**
|
|
144
|
+
* @plan:PLAN-20251018-STATELESSPROVIDER2.P03
|
|
145
|
+
* @requirement:REQ-SP2-002
|
|
146
|
+
* @pseudocode multi-runtime-baseline.md lines 8-8
|
|
147
|
+
* Clear activation state and invoke onCleanup hooks in the reverse order detailed in Step 7.
|
|
148
|
+
*/
|
|
149
|
+
const cleanup = async () => {
|
|
150
|
+
if (!active && !options.onCleanup) {
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
const scope = {
|
|
154
|
+
runtimeId: currentRuntimeId,
|
|
155
|
+
metadata: currentMetadata,
|
|
156
|
+
};
|
|
157
|
+
const bindings = activationBindings;
|
|
158
|
+
await runWithRuntimeScope(scope, async () => {
|
|
159
|
+
if (bindings) {
|
|
160
|
+
await Promise.resolve(bindings.resetInfrastructure());
|
|
161
|
+
}
|
|
162
|
+
clearActiveProviderRuntimeContext();
|
|
163
|
+
const revocation = flushRuntimeAuthScope(currentRuntimeId);
|
|
164
|
+
if (options.onCleanup) {
|
|
165
|
+
await options.onCleanup({
|
|
166
|
+
config,
|
|
167
|
+
settingsService: resolvedSettingsService,
|
|
168
|
+
providerManager,
|
|
169
|
+
runtimeId: currentRuntimeId,
|
|
170
|
+
metadata: currentMetadata,
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
if (bindings?.disposeRuntime) {
|
|
174
|
+
await Promise.resolve(bindings.disposeRuntime(currentRuntimeId, revocation));
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
active = false;
|
|
178
|
+
};
|
|
179
|
+
return {
|
|
180
|
+
runtimeId,
|
|
181
|
+
metadata: baseMetadata,
|
|
182
|
+
settingsService: resolvedSettingsService,
|
|
183
|
+
config,
|
|
184
|
+
providerManager,
|
|
185
|
+
oauthManager,
|
|
186
|
+
activate,
|
|
187
|
+
cleanup,
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
//# sourceMappingURL=runtimeContextFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtimeContextFactory.js","sourceRoot":"","sources":["../../../src/runtime/runtimeContextFactory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Vybestack LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Config, ProviderRuntimeContext, SettingsService, AuthType } from '@vybestack/llxprt-code-core';
|
|
7
|
+
import type { ProviderManager, Profile, IModel } from '@vybestack/llxprt-code-core';
|
|
8
|
+
import { OAuthManager } from '../auth/oauth-manager.js';
|
|
9
|
+
import type { HistoryItemWithoutId } from '../ui/types.js';
|
|
10
|
+
import type { LoadedSettings } from '../config/settings.js';
|
|
11
|
+
import { createIsolatedRuntimeContext as createIsolatedRuntimeContextInternal, type IsolatedRuntimeActivationOptions, type IsolatedRuntimeContextHandle } from './runtimeContextFactory.js';
|
|
12
|
+
export { createIsolatedRuntimeContextInternal as createIsolatedRuntimeContext };
|
|
13
|
+
export type { IsolatedRuntimeActivationOptions, IsolatedRuntimeContextHandle, IsolatedRuntimeContextOptions, } from './runtimeContextFactory.js';
|
|
14
|
+
export type StatelessHardeningPreference = 'legacy' | 'strict';
|
|
15
|
+
/**
|
|
16
|
+
* @plan:PLAN-20251023-STATELESS-HARDENING.P07
|
|
17
|
+
* @requirement:REQ-SP4-005
|
|
18
|
+
* Configure the global CLI stateless guard preference. Tests and CLI bootstrap
|
|
19
|
+
* can call this to opt into strict guards without environment toggles.
|
|
20
|
+
*/
|
|
21
|
+
export declare function configureCliStatelessHardening(preference: StatelessHardeningPreference | null): void;
|
|
22
|
+
/**
|
|
23
|
+
* @plan:PLAN-20251023-STATELESS-HARDENING.P07
|
|
24
|
+
* @requirement:REQ-SP4-005
|
|
25
|
+
*/
|
|
26
|
+
export declare function getCliStatelessHardeningOverride(): StatelessHardeningPreference | null;
|
|
27
|
+
/**
|
|
28
|
+
* @plan:PLAN-20251023-STATELESS-HARDENING.P07
|
|
29
|
+
* @requirement:REQ-SP4-005
|
|
30
|
+
* Reports the currently resolved stateless hardening preference.
|
|
31
|
+
*/
|
|
32
|
+
export declare function getCliStatelessHardeningPreference(): StatelessHardeningPreference;
|
|
33
|
+
export declare function isCliStatelessProviderModeEnabled(): boolean;
|
|
34
|
+
export interface CliRuntimeServices {
|
|
35
|
+
settingsService: SettingsService;
|
|
36
|
+
config: Config;
|
|
37
|
+
providerManager: ProviderManager;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* @plan:PLAN-20251023-STATELESS-HARDENING.P08
|
|
41
|
+
* @requirement:REQ-SP4-004
|
|
42
|
+
* @requirement:REQ-SP4-005
|
|
43
|
+
*
|
|
44
|
+
* Acquire the active provider runtime context that CLI bootstrap registered.
|
|
45
|
+
* Throws if the runtime has not yet been initialised.
|
|
46
|
+
*
|
|
47
|
+
* When stateless hardening is enabled, this enforces that all required
|
|
48
|
+
* services (settingsService, config) are present in the runtime registry
|
|
49
|
+
* before allowing provider operations.
|
|
50
|
+
*/
|
|
51
|
+
export declare function getCliRuntimeContext(): ProviderRuntimeContext;
|
|
52
|
+
/**
|
|
53
|
+
* Obtain the services that CLI surfaces through the runtime context.
|
|
54
|
+
*/
|
|
55
|
+
export declare function getCliRuntimeServices(): CliRuntimeServices;
|
|
56
|
+
export declare function getCliProviderManager(options?: {
|
|
57
|
+
allowBrowserEnvironment?: boolean;
|
|
58
|
+
settings?: LoadedSettings;
|
|
59
|
+
addItem?: (itemData: Omit<HistoryItemWithoutId, 'id'>, baseTimestamp: number) => number;
|
|
60
|
+
}): ProviderManager;
|
|
61
|
+
export declare function isCliRuntimeStatelessReady(): boolean;
|
|
62
|
+
/**
|
|
63
|
+
* @plan:PLAN-20251023-STATELESS-HARDENING.P08
|
|
64
|
+
* @requirement:REQ-SP4-004
|
|
65
|
+
* @requirement:REQ-SP4-005
|
|
66
|
+
*
|
|
67
|
+
* Ensure the active provider runtime context is normalized and pushed into
|
|
68
|
+
* ProviderManager before any provider invocation. This function enforces
|
|
69
|
+
* stateless provider guarantees by requiring explicit runtime-scoped services
|
|
70
|
+
* (settings, config, userMemory) before execution.
|
|
71
|
+
*
|
|
72
|
+
* When stateless hardening is enabled (runtime metadata/global preference),
|
|
73
|
+
* this helper normalizes the current runtime context and registers it with
|
|
74
|
+
* ProviderManager so downstream providers always receive call-scoped
|
|
75
|
+
* configuration without relying on singleton fallbacks.
|
|
76
|
+
*/
|
|
77
|
+
export declare function ensureStatelessProviderReady(): void;
|
|
78
|
+
/**
|
|
79
|
+
* @plan:PLAN-20251018-STATELESSPROVIDER2.P03
|
|
80
|
+
* @requirement:REQ-SP2-002
|
|
81
|
+
* @pseudocode multi-runtime-baseline.md lines 7-7
|
|
82
|
+
* Delegate helper that activates an isolated runtime while merging metadata overrides per Step 6.
|
|
83
|
+
*/
|
|
84
|
+
export declare function activateIsolatedRuntimeContext(handle: IsolatedRuntimeContextHandle, options?: IsolatedRuntimeActivationOptions): Promise<void>;
|
|
85
|
+
export declare function registerCliProviderInfrastructure(manager: ProviderManager, oauthManager: OAuthManager): void;
|
|
86
|
+
export declare function resetCliProviderInfrastructure(runtimeId?: string): void;
|
|
87
|
+
export declare function getCliOAuthManager(): OAuthManager | null;
|
|
88
|
+
/**
|
|
89
|
+
* Accessor for the active CLI Config instance registered with the runtime
|
|
90
|
+
* context. Throws if the bootstrap failed to attach the Config.
|
|
91
|
+
*/
|
|
92
|
+
export declare function getCliRuntimeConfig(): Config;
|
|
93
|
+
export declare function getActiveModelName(): string;
|
|
94
|
+
export declare function getActiveProviderStatus(): ProviderRuntimeStatus;
|
|
95
|
+
export declare function listAvailableModels(providerName?: string): Promise<IModel[]>;
|
|
96
|
+
export declare function getActiveProviderMetrics(): ReturnType<ProviderManager['getProviderMetrics']>;
|
|
97
|
+
export declare function getSessionTokenUsage(): {
|
|
98
|
+
input: number;
|
|
99
|
+
output: number;
|
|
100
|
+
cache: number;
|
|
101
|
+
tool: number;
|
|
102
|
+
thought: number;
|
|
103
|
+
total: number;
|
|
104
|
+
};
|
|
105
|
+
export declare function getEphemeralSettings(): Record<string, unknown>;
|
|
106
|
+
export declare function getEphemeralSetting(key: string): unknown;
|
|
107
|
+
export declare function setEphemeralSetting(key: string, value: unknown): void;
|
|
108
|
+
export declare function clearEphemeralSetting(key: string): void;
|
|
109
|
+
export declare function getActiveModelParams(): Record<string, unknown>;
|
|
110
|
+
export declare function setActiveModelParam(name: string, value: unknown): void;
|
|
111
|
+
export declare function clearActiveModelParam(name: string): void;
|
|
112
|
+
export declare function buildRuntimeProfileSnapshot(): Profile;
|
|
113
|
+
export interface ProfileLoadOptions {
|
|
114
|
+
profileName?: string;
|
|
115
|
+
}
|
|
116
|
+
export interface ProfileLoadResult {
|
|
117
|
+
profileName?: string;
|
|
118
|
+
providerName: string;
|
|
119
|
+
modelName: string;
|
|
120
|
+
infoMessages: string[];
|
|
121
|
+
warnings: string[];
|
|
122
|
+
providerChanged: boolean;
|
|
123
|
+
authType?: AuthType;
|
|
124
|
+
baseUrl?: string;
|
|
125
|
+
didFallback: boolean;
|
|
126
|
+
requestedProvider: string | null;
|
|
127
|
+
}
|
|
128
|
+
export interface RuntimeDiagnosticsSnapshot {
|
|
129
|
+
providerName: string | null;
|
|
130
|
+
modelName: string | null;
|
|
131
|
+
profileName: string | null;
|
|
132
|
+
modelParams: Record<string, unknown>;
|
|
133
|
+
ephemeralSettings: Record<string, unknown>;
|
|
134
|
+
}
|
|
135
|
+
export declare function applyProfileSnapshot(profile: Profile, options?: ProfileLoadOptions): Promise<ProfileLoadResult>;
|
|
136
|
+
export declare function saveProfileSnapshot(profileName: string): Promise<Profile>;
|
|
137
|
+
export declare function loadProfileByName(profileName: string): Promise<ProfileLoadResult>;
|
|
138
|
+
export declare function deleteProfileByName(profileName: string): Promise<void>;
|
|
139
|
+
export declare function listSavedProfiles(): Promise<string[]>;
|
|
140
|
+
export declare function getActiveProfileName(): string | null;
|
|
141
|
+
export declare function setDefaultProfileName(profileName: string | null): void;
|
|
142
|
+
export declare function getRuntimeDiagnosticsSnapshot(): RuntimeDiagnosticsSnapshot;
|
|
143
|
+
export declare function listProviders(): string[];
|
|
144
|
+
export declare function getActiveProviderName(): string;
|
|
145
|
+
/**
|
|
146
|
+
* Register or update the active CLI runtime context.
|
|
147
|
+
*/
|
|
148
|
+
export declare function setCliRuntimeContext(settingsService: SettingsService, config?: Config, options?: {
|
|
149
|
+
metadata?: ProviderRuntimeContext['metadata'];
|
|
150
|
+
runtimeId?: string;
|
|
151
|
+
}): void;
|
|
152
|
+
export interface ProviderSwitchResult {
|
|
153
|
+
changed: boolean;
|
|
154
|
+
previousProvider: string | null;
|
|
155
|
+
nextProvider: string;
|
|
156
|
+
defaultModel?: string;
|
|
157
|
+
authType?: AuthType;
|
|
158
|
+
infoMessages: string[];
|
|
159
|
+
}
|
|
160
|
+
export interface ApiKeyUpdateResult {
|
|
161
|
+
changed: boolean;
|
|
162
|
+
providerName: string;
|
|
163
|
+
message: string;
|
|
164
|
+
isPaidMode?: boolean;
|
|
165
|
+
authType?: AuthType;
|
|
166
|
+
}
|
|
167
|
+
export interface BaseUrlUpdateResult {
|
|
168
|
+
changed: boolean;
|
|
169
|
+
providerName: string;
|
|
170
|
+
message: string;
|
|
171
|
+
baseUrl?: string;
|
|
172
|
+
}
|
|
173
|
+
export interface ToolFormatState {
|
|
174
|
+
providerName: string;
|
|
175
|
+
currentFormat: string | null;
|
|
176
|
+
override: string | null;
|
|
177
|
+
isAutoDetected: boolean;
|
|
178
|
+
}
|
|
179
|
+
export type ToolFormatOverrideLiteral = 'auto' | 'openai' | 'qwen' | 'hermes' | 'xml' | 'anthropic' | 'deepseek' | 'gemma' | 'llama';
|
|
180
|
+
export interface ProviderRuntimeStatus {
|
|
181
|
+
providerName: string | null;
|
|
182
|
+
modelName: string | null;
|
|
183
|
+
displayLabel: string;
|
|
184
|
+
isPaidMode?: boolean;
|
|
185
|
+
authType?: AuthType;
|
|
186
|
+
baseURL?: string;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Switch the active provider using the runtime context, updating Config and
|
|
190
|
+
* SettingsService consistently.
|
|
191
|
+
*
|
|
192
|
+
* @plan:PLAN-20250218-STATELESSPROVIDER.P06
|
|
193
|
+
* @requirement:REQ-SP-005
|
|
194
|
+
* @pseudocode:cli-runtime.md lines 9-10
|
|
195
|
+
*/
|
|
196
|
+
export declare function switchActiveProvider(providerName: string, options?: {
|
|
197
|
+
autoOAuth?: boolean;
|
|
198
|
+
}): Promise<ProviderSwitchResult>;
|
|
199
|
+
export interface ModelChangeResult {
|
|
200
|
+
providerName: string;
|
|
201
|
+
previousModel?: string;
|
|
202
|
+
nextModel: string;
|
|
203
|
+
authRefreshed: boolean;
|
|
204
|
+
}
|
|
205
|
+
export declare function updateActiveProviderApiKey(apiKey: string | null): Promise<ApiKeyUpdateResult>;
|
|
206
|
+
export declare function updateActiveProviderBaseUrl(baseUrl: string | null): Promise<BaseUrlUpdateResult>;
|
|
207
|
+
export declare function getActiveToolFormatState(): Promise<ToolFormatState>;
|
|
208
|
+
export declare function setActiveToolFormatOverride(formatName: ToolFormatOverrideLiteral | null): Promise<ToolFormatState>;
|
|
209
|
+
/**
|
|
210
|
+
* Update the active model for the current provider while keeping Config and
|
|
211
|
+
* SettingsService in sync.
|
|
212
|
+
*
|
|
213
|
+
* @plan:PLAN-20250218-STATELESSPROVIDER.P06
|
|
214
|
+
* @requirement:REQ-SP-005
|
|
215
|
+
* @pseudocode:cli-runtime.md line 10
|
|
216
|
+
*/
|
|
217
|
+
export declare function setActiveModel(modelName: string): Promise<ModelChangeResult>;
|