@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.
Files changed (269) hide show
  1. package/dist/package.json +5 -3
  2. package/dist/src/auth/__tests__/oauthManager.safety.test.d.ts +6 -0
  3. package/dist/src/auth/__tests__/oauthManager.safety.test.js +49 -0
  4. package/dist/src/auth/__tests__/oauthManager.safety.test.js.map +1 -0
  5. package/dist/src/auth/oauth-manager.d.ts +11 -0
  6. package/dist/src/auth/oauth-manager.js +62 -29
  7. package/dist/src/auth/oauth-manager.js.map +1 -1
  8. package/dist/src/auth/oauth-manager.spec.js +7 -2
  9. package/dist/src/auth/oauth-manager.spec.js.map +1 -1
  10. package/dist/src/config/__tests__/nonInteractiveTools.test.d.ts +6 -0
  11. package/dist/src/config/__tests__/nonInteractiveTools.test.js +13 -0
  12. package/dist/src/config/__tests__/nonInteractiveTools.test.js.map +1 -0
  13. package/dist/src/config/__tests__/profileBootstrap.test.d.ts +6 -0
  14. package/dist/src/config/__tests__/profileBootstrap.test.js +91 -0
  15. package/dist/src/config/__tests__/profileBootstrap.test.js.map +1 -0
  16. package/dist/src/config/config.d.ts +6 -2
  17. package/dist/src/config/config.js +219 -18
  18. package/dist/src/config/config.js.map +1 -1
  19. package/dist/src/config/profileBootstrap.d.ts +64 -0
  20. package/dist/src/config/profileBootstrap.js +140 -0
  21. package/dist/src/config/profileBootstrap.js.map +1 -0
  22. package/dist/src/gemini.js +68 -23
  23. package/dist/src/gemini.js.map +1 -1
  24. package/dist/src/gemini.test.js +1 -2
  25. package/dist/src/gemini.test.js.map +1 -1
  26. package/dist/src/generated/git-commit.d.ts +1 -1
  27. package/dist/src/generated/git-commit.js +1 -1
  28. package/dist/src/integration-tests/base-url-behavior.integration.test.js +110 -450
  29. package/dist/src/integration-tests/base-url-behavior.integration.test.js.map +1 -1
  30. package/dist/src/integration-tests/model-params-isolation.integration.test.js +101 -539
  31. package/dist/src/integration-tests/model-params-isolation.integration.test.js.map +1 -1
  32. package/dist/src/integration-tests/modelParams.integration.test.js +86 -761
  33. package/dist/src/integration-tests/modelParams.integration.test.js.map +1 -1
  34. package/dist/src/integration-tests/provider-multi-runtime.integration.test.d.ts +6 -0
  35. package/dist/src/integration-tests/provider-multi-runtime.integration.test.js +198 -0
  36. package/dist/src/integration-tests/provider-multi-runtime.integration.test.js.map +1 -0
  37. package/dist/src/integration-tests/provider-switching.integration.test.js +97 -151
  38. package/dist/src/integration-tests/provider-switching.integration.test.js.map +1 -1
  39. package/dist/src/integration-tests/runtime-isolation.test.d.ts +13 -0
  40. package/dist/src/integration-tests/runtime-isolation.test.js +170 -0
  41. package/dist/src/integration-tests/runtime-isolation.test.js.map +1 -0
  42. package/dist/src/integration-tests/test-utils.js +19 -2
  43. package/dist/src/integration-tests/test-utils.js.map +1 -1
  44. package/dist/src/integration-tests/test-utils.test.js +9 -8
  45. package/dist/src/integration-tests/test-utils.test.js.map +1 -1
  46. package/dist/src/integration-tests/todo-continuation.integration.test.js +5 -2
  47. package/dist/src/integration-tests/todo-continuation.integration.test.js.map +1 -1
  48. package/dist/src/integration-tests/tools-governance.integration.test.d.ts +6 -0
  49. package/dist/src/integration-tests/tools-governance.integration.test.js +98 -0
  50. package/dist/src/integration-tests/tools-governance.integration.test.js.map +1 -0
  51. package/dist/src/nonInteractiveCli.js +36 -11
  52. package/dist/src/nonInteractiveCli.js.map +1 -1
  53. package/dist/src/providers/logging/git-stats.test.js +11 -1
  54. package/dist/src/providers/logging/git-stats.test.js.map +1 -1
  55. package/dist/src/providers/logging/multi-provider-logging.integration.test.js +1 -2
  56. package/dist/src/providers/logging/multi-provider-logging.integration.test.js.map +1 -1
  57. package/dist/src/providers/logging/performance.test.js +1 -1
  58. package/dist/src/providers/logging/performance.test.js.map +1 -1
  59. package/dist/src/providers/oauth-provider-registration.d.ts +2 -2
  60. package/dist/src/providers/oauth-provider-registration.js +25 -9
  61. package/dist/src/providers/oauth-provider-registration.js.map +1 -1
  62. package/dist/src/providers/provider-gemini-switching.test.js +67 -89
  63. package/dist/src/providers/provider-gemini-switching.test.js.map +1 -1
  64. package/dist/src/providers/provider-switching.integration.test.js +42 -98
  65. package/dist/src/providers/provider-switching.integration.test.js.map +1 -1
  66. package/dist/src/providers/providerConfigUtils.d.ts +12 -7
  67. package/dist/src/providers/providerConfigUtils.js +31 -99
  68. package/dist/src/providers/providerConfigUtils.js.map +1 -1
  69. package/dist/src/providers/providerManagerInstance.d.ts +17 -1
  70. package/dist/src/providers/providerManagerInstance.js +157 -175
  71. package/dist/src/providers/providerManagerInstance.js.map +1 -1
  72. package/dist/src/providers/providerManagerInstance.oauthRegistration.test.js +19 -15
  73. package/dist/src/providers/providerManagerInstance.oauthRegistration.test.js.map +1 -1
  74. package/dist/src/providers/providerManagerInstance.test.js +2 -5
  75. package/dist/src/providers/providerManagerInstance.test.js.map +1 -1
  76. package/dist/src/runtime/__tests__/profileApplication.test.d.ts +5 -0
  77. package/dist/src/runtime/__tests__/profileApplication.test.js +232 -0
  78. package/dist/src/runtime/__tests__/profileApplication.test.js.map +1 -0
  79. package/dist/src/runtime/__tests__/runtimeIsolation.test.d.ts +5 -0
  80. package/dist/src/runtime/__tests__/runtimeIsolation.test.js +376 -0
  81. package/dist/src/runtime/__tests__/runtimeIsolation.test.js.map +1 -0
  82. package/dist/src/runtime/agentRuntimeAdapter.d.ts +249 -0
  83. package/dist/src/runtime/agentRuntimeAdapter.js +506 -0
  84. package/dist/src/runtime/agentRuntimeAdapter.js.map +1 -0
  85. package/dist/src/runtime/agentRuntimeAdapter.spec.d.ts +6 -0
  86. package/dist/src/runtime/agentRuntimeAdapter.spec.js +866 -0
  87. package/dist/src/runtime/agentRuntimeAdapter.spec.js.map +1 -0
  88. package/dist/src/runtime/messages.d.ts +28 -0
  89. package/dist/src/runtime/messages.js +64 -0
  90. package/dist/src/runtime/messages.js.map +1 -0
  91. package/dist/src/runtime/profileApplication.d.ts +33 -0
  92. package/dist/src/runtime/profileApplication.js +191 -0
  93. package/dist/src/runtime/profileApplication.js.map +1 -0
  94. package/dist/src/runtime/providerConfigUtils.test.d.ts +1 -0
  95. package/dist/src/runtime/providerConfigUtils.test.js +68 -0
  96. package/dist/src/runtime/providerConfigUtils.test.js.map +1 -0
  97. package/dist/src/runtime/runtimeContextFactory.d.ts +102 -0
  98. package/dist/src/runtime/runtimeContextFactory.js +190 -0
  99. package/dist/src/runtime/runtimeContextFactory.js.map +1 -0
  100. package/dist/src/runtime/runtimeSettings.d.ts +217 -0
  101. package/dist/src/runtime/runtimeSettings.js +1094 -0
  102. package/dist/src/runtime/runtimeSettings.js.map +1 -0
  103. package/dist/src/runtime/runtimeSettings.test.d.ts +1 -0
  104. package/dist/src/runtime/runtimeSettings.test.js +320 -0
  105. package/dist/src/runtime/runtimeSettings.test.js.map +1 -0
  106. package/dist/src/services/BuiltinCommandLoader.d.ts +13 -4
  107. package/dist/src/services/BuiltinCommandLoader.js +17 -4
  108. package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
  109. package/dist/src/services/McpPromptLoader.js +34 -13
  110. package/dist/src/services/McpPromptLoader.js.map +1 -1
  111. package/dist/src/test-utils/mockCommandContext.js +5 -2
  112. package/dist/src/test-utils/mockCommandContext.js.map +1 -1
  113. package/dist/src/ui/App.js +29 -49
  114. package/dist/src/ui/App.js.map +1 -1
  115. package/dist/src/ui/commands/aboutCommand.js +59 -38
  116. package/dist/src/ui/commands/aboutCommand.js.map +1 -1
  117. package/dist/src/ui/commands/authCommand.js +7 -9
  118. package/dist/src/ui/commands/authCommand.js.map +1 -1
  119. package/dist/src/ui/commands/baseurlCommand.js +8 -44
  120. package/dist/src/ui/commands/baseurlCommand.js.map +1 -1
  121. package/dist/src/ui/commands/chatCommand.js +28 -12
  122. package/dist/src/ui/commands/chatCommand.js.map +1 -1
  123. package/dist/src/ui/commands/diagnosticsCommand.d.ts +0 -3
  124. package/dist/src/ui/commands/diagnosticsCommand.js +45 -191
  125. package/dist/src/ui/commands/diagnosticsCommand.js.map +1 -1
  126. package/dist/src/ui/commands/keyCommand.js +9 -58
  127. package/dist/src/ui/commands/keyCommand.js.map +1 -1
  128. package/dist/src/ui/commands/keyCommand.test.js +48 -102
  129. package/dist/src/ui/commands/keyCommand.test.js.map +1 -1
  130. package/dist/src/ui/commands/keyfileCommand.js +42 -93
  131. package/dist/src/ui/commands/keyfileCommand.js.map +1 -1
  132. package/dist/src/ui/commands/logoutCommand.js +2 -2
  133. package/dist/src/ui/commands/logoutCommand.js.map +1 -1
  134. package/dist/src/ui/commands/mcpCommand.js +29 -7
  135. package/dist/src/ui/commands/mcpCommand.js.map +1 -1
  136. package/dist/src/ui/commands/modelCommand.js +8 -59
  137. package/dist/src/ui/commands/modelCommand.js.map +1 -1
  138. package/dist/src/ui/commands/profileCommand.js +151 -267
  139. package/dist/src/ui/commands/profileCommand.js.map +1 -1
  140. package/dist/src/ui/commands/profileCommand.test.js +88 -344
  141. package/dist/src/ui/commands/profileCommand.test.js.map +1 -1
  142. package/dist/src/ui/commands/providerCommand.js +9 -3
  143. package/dist/src/ui/commands/providerCommand.js.map +1 -1
  144. package/dist/src/ui/commands/restoreCommand.js +38 -18
  145. package/dist/src/ui/commands/restoreCommand.js.map +1 -1
  146. package/dist/src/ui/commands/schema/argumentResolver.test.d.ts +6 -0
  147. package/dist/src/ui/commands/schema/argumentResolver.test.js +619 -0
  148. package/dist/src/ui/commands/schema/argumentResolver.test.js.map +1 -0
  149. package/dist/src/ui/commands/schema/index.d.ts +15 -0
  150. package/dist/src/ui/commands/schema/index.js +320 -0
  151. package/dist/src/ui/commands/schema/index.js.map +1 -0
  152. package/dist/src/ui/commands/schema/types.d.ts +61 -0
  153. package/dist/src/ui/commands/schema/types.js +12 -0
  154. package/dist/src/ui/commands/schema/types.js.map +1 -0
  155. package/dist/src/ui/commands/setCommand.js +641 -325
  156. package/dist/src/ui/commands/setCommand.js.map +1 -1
  157. package/dist/src/ui/commands/setCommand.test.js +92 -388
  158. package/dist/src/ui/commands/setCommand.test.js.map +1 -1
  159. package/dist/src/ui/commands/statusCommand.js +2 -2
  160. package/dist/src/ui/commands/statusCommand.js.map +1 -1
  161. package/dist/src/ui/commands/subagentCommand.d.ts +16 -0
  162. package/dist/src/ui/commands/subagentCommand.js +674 -0
  163. package/dist/src/ui/commands/subagentCommand.js.map +1 -0
  164. package/dist/src/ui/commands/test/setCommand.mutation.test.d.ts +6 -0
  165. package/dist/src/ui/commands/test/setCommand.mutation.test.js +132 -0
  166. package/dist/src/ui/commands/test/setCommand.mutation.test.js.map +1 -0
  167. package/dist/src/ui/commands/test/setCommand.phase09.test.d.ts +6 -0
  168. package/dist/src/ui/commands/test/setCommand.phase09.test.js +222 -0
  169. package/dist/src/ui/commands/test/setCommand.phase09.test.js.map +1 -0
  170. package/dist/src/ui/commands/test/subagentCommand.schema.test.d.ts +6 -0
  171. package/dist/src/ui/commands/test/subagentCommand.schema.test.js +125 -0
  172. package/dist/src/ui/commands/test/subagentCommand.schema.test.js.map +1 -0
  173. package/dist/src/ui/commands/test/subagentCommand.test.d.ts +1 -0
  174. package/dist/src/ui/commands/test/subagentCommand.test.js +598 -0
  175. package/dist/src/ui/commands/test/subagentCommand.test.js.map +1 -0
  176. package/dist/src/ui/commands/toolformatCommand.js +25 -98
  177. package/dist/src/ui/commands/toolformatCommand.js.map +1 -1
  178. package/dist/src/ui/commands/toolformatCommand.test.js +56 -102
  179. package/dist/src/ui/commands/toolformatCommand.test.js.map +1 -1
  180. package/dist/src/ui/commands/toolsCommand.js +187 -31
  181. package/dist/src/ui/commands/toolsCommand.js.map +1 -1
  182. package/dist/src/ui/commands/types.d.ts +11 -2
  183. package/dist/src/ui/commands/types.js.map +1 -1
  184. package/dist/src/ui/components/AuthDialog.js +16 -55
  185. package/dist/src/ui/components/AuthDialog.js.map +1 -1
  186. package/dist/src/ui/components/Footer.js +4 -5
  187. package/dist/src/ui/components/Footer.js.map +1 -1
  188. package/dist/src/ui/components/HistoryItemDisplay.js +1 -1
  189. package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
  190. package/dist/src/ui/components/InputPrompt.js +1 -1
  191. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  192. package/dist/src/ui/components/StatsDisplay.js +6 -11
  193. package/dist/src/ui/components/StatsDisplay.js.map +1 -1
  194. package/dist/src/ui/components/SuggestionsDisplay.d.ts +13 -1
  195. package/dist/src/ui/components/SuggestionsDisplay.js +22 -3
  196. package/dist/src/ui/components/SuggestionsDisplay.js.map +1 -1
  197. package/dist/src/ui/components/messages/ToolGroupMessage.d.ts +1 -0
  198. package/dist/src/ui/components/messages/ToolGroupMessage.js +14 -14
  199. package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
  200. package/dist/src/ui/components/messages/ToolGroupMessage.test.js +1 -0
  201. package/dist/src/ui/components/messages/ToolGroupMessage.test.js.map +1 -1
  202. package/dist/src/ui/containers/SessionController.js +61 -117
  203. package/dist/src/ui/containers/SessionController.js.map +1 -1
  204. package/dist/src/ui/contexts/RuntimeContext.d.ts +61 -0
  205. package/dist/src/ui/contexts/RuntimeContext.js +118 -0
  206. package/dist/src/ui/contexts/RuntimeContext.js.map +1 -0
  207. package/dist/src/ui/contexts/TodoProvider.d.ts +1 -0
  208. package/dist/src/ui/contexts/TodoProvider.js +10 -8
  209. package/dist/src/ui/contexts/TodoProvider.js.map +1 -1
  210. package/dist/src/ui/contexts/ToolCallProvider.d.ts +1 -0
  211. package/dist/src/ui/contexts/ToolCallProvider.js +10 -9
  212. package/dist/src/ui/contexts/ToolCallProvider.js.map +1 -1
  213. package/dist/src/ui/hooks/__tests__/useSlashCompletion.set.phase09.test.d.ts +6 -0
  214. package/dist/src/ui/hooks/__tests__/useSlashCompletion.set.phase09.test.js +39 -0
  215. package/dist/src/ui/hooks/__tests__/useSlashCompletion.set.phase09.test.js.map +1 -0
  216. package/dist/src/ui/hooks/atCommandProcessor.js +11 -3
  217. package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
  218. package/dist/src/ui/hooks/atCommandProcessor.test.js +3 -1
  219. package/dist/src/ui/hooks/atCommandProcessor.test.js.map +1 -1
  220. package/dist/src/ui/hooks/shellCommandProcessor.js +4 -1
  221. package/dist/src/ui/hooks/shellCommandProcessor.js.map +1 -1
  222. package/dist/src/ui/hooks/shellCommandProcessor.test.js +1 -0
  223. package/dist/src/ui/hooks/shellCommandProcessor.test.js.map +1 -1
  224. package/dist/src/ui/hooks/slashCommandProcessor.js +27 -1
  225. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  226. package/dist/src/ui/hooks/useAuthCommand.js +11 -3
  227. package/dist/src/ui/hooks/useAuthCommand.js.map +1 -1
  228. package/dist/src/ui/hooks/useCommandCompletion.d.ts +1 -0
  229. package/dist/src/ui/hooks/useCommandCompletion.js +2 -0
  230. package/dist/src/ui/hooks/useCommandCompletion.js.map +1 -1
  231. package/dist/src/ui/hooks/useGeminiStream.js +37 -11
  232. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  233. package/dist/src/ui/hooks/useGeminiStream.subagent.spec.d.ts +6 -0
  234. package/dist/src/ui/hooks/useGeminiStream.subagent.spec.js +232 -0
  235. package/dist/src/ui/hooks/useGeminiStream.subagent.spec.js.map +1 -0
  236. package/dist/src/ui/hooks/useLoadProfileDialog.d.ts +1 -1
  237. package/dist/src/ui/hooks/useLoadProfileDialog.js +18 -57
  238. package/dist/src/ui/hooks/useLoadProfileDialog.js.map +1 -1
  239. package/dist/src/ui/hooks/useOpenAIProviderInfo.d.ts +1 -1
  240. package/dist/src/ui/hooks/useOpenAIProviderInfo.js +12 -7
  241. package/dist/src/ui/hooks/useOpenAIProviderInfo.js.map +1 -1
  242. package/dist/src/ui/hooks/useProviderDialog.d.ts +1 -1
  243. package/dist/src/ui/hooks/useProviderDialog.js +17 -90
  244. package/dist/src/ui/hooks/useProviderDialog.js.map +1 -1
  245. package/dist/src/ui/hooks/useProviderModelDialog.d.ts +2 -2
  246. package/dist/src/ui/hooks/useProviderModelDialog.js +11 -12
  247. package/dist/src/ui/hooks/useProviderModelDialog.js.map +1 -1
  248. package/dist/src/ui/hooks/useReactToolScheduler.d.ts +3 -1
  249. package/dist/src/ui/hooks/useReactToolScheduler.js +144 -34
  250. package/dist/src/ui/hooks/useReactToolScheduler.js.map +1 -1
  251. package/dist/src/ui/hooks/useSlashCompletion.d.ts +32 -0
  252. package/dist/src/ui/hooks/useSlashCompletion.js +154 -77
  253. package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -1
  254. package/dist/src/ui/hooks/useSlashCompletion.test.js +39 -14
  255. package/dist/src/ui/hooks/useSlashCompletion.test.js.map +1 -1
  256. package/dist/src/ui/hooks/useToolScheduler.test.js +108 -79
  257. package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
  258. package/dist/src/ui/types.d.ts +1 -0
  259. package/dist/src/ui/types.js.map +1 -1
  260. package/dist/src/utils/sandbox.js +7 -5
  261. package/dist/src/utils/sandbox.js.map +1 -1
  262. package/dist/src/validateNonInterActiveAuth.js +4 -2
  263. package/dist/src/validateNonInterActiveAuth.js.map +1 -1
  264. package/dist/src/zed-integration/schema.d.ts +30 -30
  265. package/dist/src/zed-integration/zedIntegration.js +112 -39
  266. package/dist/src/zed-integration/zedIntegration.js.map +1 -1
  267. package/dist/tsconfig.build.tsbuildinfo +1 -0
  268. package/package.json +5 -3
  269. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -7,7 +7,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
7
7
  import { createContext, useMemo, useCallback, useEffect, useRef, useReducer, } from 'react';
8
8
  import { MessageType } from '../types.js';
9
9
  import { useHistory } from '../hooks/useHistoryManager.js';
10
- import { getProviderManager } from '../../providers/providerManagerInstance.js';
10
+ import { useRuntimeApi, getRuntimeApi } from '../contexts/RuntimeContext.js';
11
11
  import { getErrorMessage } from '@vybestack/llxprt-code-core';
12
12
  import { loadHierarchicalLlxprtMemory } from '../../config/config.js';
13
13
  import { loadSettings } from '../../config/settings.js';
@@ -15,52 +15,17 @@ import process from 'node:process';
15
15
  import { SessionStateProvider, useSessionState, } from '../contexts/SessionStateContext.js';
16
16
  import { AppDispatchProvider } from '../contexts/AppDispatchContext.js';
17
17
  import { appReducer, initialAppState, } from '../reducers/appReducer.js';
18
- // Helper functions
19
- function getDisplayModelName(config) {
20
- try {
21
- const providerManager = getProviderManager();
22
- if (providerManager.hasActiveProvider()) {
23
- const provider = providerManager.getActiveProvider();
24
- const model = provider.getCurrentModel?.() || 'unknown';
25
- return `${provider.name}:${model}`;
26
- }
27
- }
28
- catch (_e) {
29
- // Fall back to config model if provider manager fails
30
- }
31
- return config.getModel();
32
- }
33
- function getProviderPaymentMode() {
34
- try {
35
- const providerManager = getProviderManager();
36
- if (providerManager.hasActiveProvider()) {
37
- const provider = providerManager.getActiveProvider();
38
- return provider.isPaidMode?.();
39
- }
40
- }
41
- catch (_e) {
42
- // Return undefined if we can't determine payment mode
43
- }
44
- return undefined;
45
- }
46
18
  // Create context
47
19
  export const SessionContext = createContext(undefined);
48
20
  export const SessionController = ({ children, config, isAuthenticating = false, }) => {
49
- // Initialize state with current values
50
- const getInitialProvider = () => {
51
- try {
52
- const providerManager = getProviderManager();
53
- return providerManager.getActiveProvider().name;
54
- }
55
- catch (_e) {
56
- return undefined;
57
- }
58
- };
59
- // Get initial state for the provider
21
+ const runtime = useRuntimeApi();
22
+ const statusSnapshot = runtime.getActiveProviderStatus();
60
23
  const initialState = {
61
- currentModel: getDisplayModelName(config),
62
- isPaidMode: getProviderPaymentMode(),
63
- lastProvider: getInitialProvider(),
24
+ currentModel: statusSnapshot.providerName && statusSnapshot.modelName
25
+ ? `${statusSnapshot.providerName}:${statusSnapshot.modelName}`
26
+ : (statusSnapshot.modelName ?? config.getModel()),
27
+ isPaidMode: statusSnapshot.isPaidMode,
28
+ lastProvider: statusSnapshot.providerName ?? undefined,
64
29
  userTier: undefined,
65
30
  transientWarnings: [],
66
31
  };
@@ -76,16 +41,10 @@ const SessionControllerInner = ({ children, config, }) => {
76
41
  const warningTimerRef = useRef(null);
77
42
  // Check payment mode change function
78
43
  const checkPaymentModeChange = useCallback((forcePreviousProvider) => {
79
- const newPaymentMode = getProviderPaymentMode();
80
- let currentProviderName;
81
- try {
82
- const providerManager = getProviderManager();
83
- const provider = providerManager.getActiveProvider();
84
- currentProviderName = provider.name;
85
- }
86
- catch (_e) {
87
- // ignore
88
- }
44
+ const runtime = getRuntimeApi();
45
+ const status = runtime.getActiveProviderStatus();
46
+ const newPaymentMode = status.isPaidMode;
47
+ const currentProviderName = status.providerName ?? undefined;
89
48
  const previousProvider = forcePreviousProvider || sessionState.lastProvider;
90
49
  const providerChanged = currentProviderName && currentProviderName !== previousProvider;
91
50
  const paymentModeChanged = newPaymentMode !== sessionState.isPaidMode &&
@@ -94,41 +53,31 @@ const SessionControllerInner = ({ children, config, }) => {
94
53
  (providerChanged || history.length > 0)) {
95
54
  dispatch({ type: 'SET_PAID_MODE', payload: newPaymentMode });
96
55
  dispatch({ type: 'SET_LAST_PROVIDER', payload: currentProviderName });
97
- try {
98
- const providerManager = getProviderManager();
99
- const provider = providerManager.getActiveProvider();
100
- // Only show payment mode warnings for Gemini provider
101
- if (provider.name === 'gemini') {
102
- if (newPaymentMode === true) {
103
- dispatch({
104
- type: 'SET_TRANSIENT_WARNINGS',
105
- payload: [
106
- `! PAID MODE: You are now using Gemini with API credentials - usage will be charged to your account`,
107
- ],
108
- });
109
- }
110
- else if (newPaymentMode === false) {
111
- dispatch({
112
- type: 'SET_TRANSIENT_WARNINGS',
113
- payload: [
114
- `FREE MODE: You are now using Gemini with OAuth authentication - no charges will apply`,
115
- ],
116
- });
117
- }
56
+ if (status.providerName === 'gemini') {
57
+ if (newPaymentMode === true) {
58
+ dispatch({
59
+ type: 'SET_TRANSIENT_WARNINGS',
60
+ payload: [
61
+ `! PAID MODE: You are now using Gemini with API credentials - usage will be charged to your account`,
62
+ ],
63
+ });
118
64
  }
119
- // Clear warning timer if exists
120
- if (warningTimerRef.current) {
121
- clearTimeout(warningTimerRef.current);
65
+ else if (newPaymentMode === false) {
66
+ dispatch({
67
+ type: 'SET_TRANSIENT_WARNINGS',
68
+ payload: [
69
+ `FREE MODE: You are now using Gemini with OAuth authentication - no charges will apply`,
70
+ ],
71
+ });
122
72
  }
123
- // Clear the warning after 10 seconds
124
- warningTimerRef.current = setTimeout(() => {
125
- dispatch({ type: 'CLEAR_TRANSIENT_WARNINGS' });
126
- warningTimerRef.current = null;
127
- }, 10000);
128
73
  }
129
- catch (_e) {
130
- // ignore
74
+ if (warningTimerRef.current) {
75
+ clearTimeout(warningTimerRef.current);
131
76
  }
77
+ warningTimerRef.current = setTimeout(() => {
78
+ dispatch({ type: 'CLEAR_TRANSIENT_WARNINGS' });
79
+ warningTimerRef.current = null;
80
+ }, 10000);
132
81
  }
133
82
  }, [
134
83
  sessionState.isPaidMode,
@@ -172,51 +121,45 @@ const SessionControllerInner = ({ children, config, }) => {
172
121
  // Watch for model changes
173
122
  useEffect(() => {
174
123
  const checkModelChange = () => {
175
- const displayModel = getDisplayModelName(config);
124
+ const runtime = getRuntimeApi();
125
+ const status = runtime.getActiveProviderStatus();
126
+ const displayModel = status.providerName && status.modelName
127
+ ? `${status.providerName}:${status.modelName}`
128
+ : (status.modelName ?? config.getModel());
176
129
  if (displayModel !== sessionState.currentModel) {
177
130
  dispatch({ type: 'SET_CURRENT_MODEL', payload: displayModel });
178
131
  }
179
- const paymentMode = getProviderPaymentMode();
132
+ const paymentMode = status.isPaidMode;
180
133
  if (paymentMode !== sessionState.isPaidMode) {
181
134
  dispatch({ type: 'SET_PAID_MODE', payload: paymentMode });
182
135
  if (paymentMode !== undefined &&
183
136
  sessionState.isPaidMode !== undefined &&
184
137
  history.length > 0) {
185
- try {
186
- const providerManager = getProviderManager();
187
- const provider = providerManager.getActiveProvider();
188
- // Only show payment mode warnings for Gemini provider
189
- if (provider.name === 'gemini') {
190
- if (paymentMode === true) {
191
- dispatch({
192
- type: 'SET_TRANSIENT_WARNINGS',
193
- payload: [
194
- `! PAID MODE: You are now using Gemini with API credentials - usage will be charged to your account`,
195
- ],
196
- });
197
- }
198
- else if (paymentMode === false) {
199
- dispatch({
200
- type: 'SET_TRANSIENT_WARNINGS',
201
- payload: [
202
- `FREE MODE: You are now using Gemini with OAuth authentication - no charges will apply`,
203
- ],
204
- });
205
- }
138
+ if (status.providerName === 'gemini') {
139
+ if (paymentMode === true) {
140
+ dispatch({
141
+ type: 'SET_TRANSIENT_WARNINGS',
142
+ payload: [
143
+ `! PAID MODE: You are now using Gemini with API credentials - usage will be charged to your account`,
144
+ ],
145
+ });
206
146
  }
207
- // Clear warning timer if exists
208
- if (warningTimerRef.current) {
209
- clearTimeout(warningTimerRef.current);
147
+ else if (paymentMode === false) {
148
+ dispatch({
149
+ type: 'SET_TRANSIENT_WARNINGS',
150
+ payload: [
151
+ `FREE MODE: You are now using Gemini with OAuth authentication - no charges will apply`,
152
+ ],
153
+ });
210
154
  }
211
- // Clear the warning after 10 seconds
212
- warningTimerRef.current = setTimeout(() => {
213
- dispatch({ type: 'CLEAR_TRANSIENT_WARNINGS' });
214
- warningTimerRef.current = null;
215
- }, 10000);
216
155
  }
217
- catch (_e) {
218
- // ignore
156
+ if (warningTimerRef.current) {
157
+ clearTimeout(warningTimerRef.current);
219
158
  }
159
+ warningTimerRef.current = setTimeout(() => {
160
+ dispatch({ type: 'CLEAR_TRANSIENT_WARNINGS' });
161
+ warningTimerRef.current = null;
162
+ }, 10000);
220
163
  }
221
164
  }
222
165
  };
@@ -235,6 +178,7 @@ const SessionControllerInner = ({ children, config, }) => {
235
178
  history.length,
236
179
  dispatch,
237
180
  ]);
181
+ // Flash fallback removed in main - no longer needed
238
182
  // Handle ADD_ITEM actions
239
183
  useEffect(() => {
240
184
  if (appState.lastAddItemAction) {
@@ -1 +1 @@
1
- {"version":3,"file":"SessionController.js","sourceRoot":"","sources":["../../../../src/ui/containers/SessionController.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SessionController.js","sourceRoot":"","sources":["../../../../src/ui/containers/SessionController.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Vybestack LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import React, { type PropsWithChildren } from 'react';
7
+ import { clearActiveModelParam, deleteProfileByName, getActiveModelName, getActiveModelParams, getActiveProviderMetrics, getActiveProviderName, getActiveProviderStatus, getActiveToolFormatState, getCliOAuthManager, getCliProviderManager, getCliRuntimeServices, getEphemeralSetting, getEphemeralSettings, getRuntimeDiagnosticsSnapshot, listAvailableModels, listProviders, listSavedProfiles, loadProfileByName, registerCliProviderInfrastructure, saveProfileSnapshot, setActiveModel, setActiveModelParam, setActiveToolFormatOverride, setDefaultProfileName, setEphemeralSetting, switchActiveProvider, updateActiveProviderApiKey, updateActiveProviderBaseUrl, getSessionTokenUsage } from '../../runtime/runtimeSettings.js';
8
+ /**
9
+ * @plan PLAN-20251018-STATELESSPROVIDER2.P15
10
+ * @requirement REQ-SP2-003
11
+ * @pseudocode cli-runtime-isolation.md lines 4-10
12
+ * React bridge that binds CLI runtime helpers to the active runtime scope so UI commands remain isolated.
13
+ */
14
+ declare const runtimeFunctions: {
15
+ readonly switchActiveProvider: typeof switchActiveProvider;
16
+ readonly listProviders: typeof listProviders;
17
+ readonly getActiveProviderName: typeof getActiveProviderName;
18
+ readonly setActiveModel: typeof setActiveModel;
19
+ readonly listAvailableModels: typeof listAvailableModels;
20
+ readonly getActiveModelName: typeof getActiveModelName;
21
+ readonly getActiveProviderStatus: typeof getActiveProviderStatus;
22
+ readonly getActiveModelParams: typeof getActiveModelParams;
23
+ readonly getEphemeralSettings: typeof getEphemeralSettings;
24
+ readonly setEphemeralSetting: typeof setEphemeralSetting;
25
+ readonly setActiveModelParam: typeof setActiveModelParam;
26
+ readonly clearActiveModelParam: typeof clearActiveModelParam;
27
+ readonly saveProfileSnapshot: typeof saveProfileSnapshot;
28
+ readonly loadProfileByName: typeof loadProfileByName;
29
+ readonly deleteProfileByName: typeof deleteProfileByName;
30
+ readonly listSavedProfiles: typeof listSavedProfiles;
31
+ readonly setDefaultProfileName: typeof setDefaultProfileName;
32
+ readonly updateActiveProviderBaseUrl: typeof updateActiveProviderBaseUrl;
33
+ readonly updateActiveProviderApiKey: typeof updateActiveProviderApiKey;
34
+ readonly getCliProviderManager: typeof getCliProviderManager;
35
+ readonly getCliOAuthManager: typeof getCliOAuthManager;
36
+ readonly registerCliProviderInfrastructure: typeof registerCliProviderInfrastructure;
37
+ readonly getRuntimeDiagnosticsSnapshot: typeof getRuntimeDiagnosticsSnapshot;
38
+ readonly getActiveToolFormatState: typeof getActiveToolFormatState;
39
+ readonly setActiveToolFormatOverride: typeof setActiveToolFormatOverride;
40
+ readonly getActiveProviderMetrics: typeof getActiveProviderMetrics;
41
+ readonly getSessionTokenUsage: typeof getSessionTokenUsage;
42
+ readonly getCliRuntimeServices: typeof getCliRuntimeServices;
43
+ readonly getEphemeralSetting: typeof getEphemeralSetting;
44
+ };
45
+ type RuntimeFunctions = typeof runtimeFunctions;
46
+ type RuntimeApi = {
47
+ [K in keyof RuntimeFunctions]: RuntimeFunctions[K];
48
+ };
49
+ interface RuntimeContextBridge {
50
+ runtimeId: string;
51
+ metadata: Record<string, unknown>;
52
+ api: RuntimeApi;
53
+ runWithScope<T>(callback: () => T): T;
54
+ enterScope(): void;
55
+ }
56
+ export declare const RuntimeContextProvider: React.FC<PropsWithChildren<unknown>>;
57
+ export declare function useRuntimeBridge(): RuntimeContextBridge;
58
+ export declare function useRuntimeApi(): RuntimeApi;
59
+ export declare function getRuntimeBridge(): RuntimeContextBridge;
60
+ export declare function getRuntimeApi(): RuntimeApi;
61
+ export {};
@@ -0,0 +1,118 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * @license
4
+ * Copyright 2025 Vybestack LLC
5
+ * SPDX-License-Identifier: Apache-2.0
6
+ */
7
+ import { createContext, useContext, useEffect, useMemo, } from 'react';
8
+ import { clearActiveModelParam, deleteProfileByName, getActiveModelName, getActiveModelParams, getActiveProviderMetrics, getActiveProviderName, getActiveProviderStatus, getActiveToolFormatState, getCliOAuthManager, getCliProviderManager, getCliRuntimeContext, getCliRuntimeServices, getEphemeralSetting, getEphemeralSettings, getRuntimeDiagnosticsSnapshot, listAvailableModels, listProviders, listSavedProfiles, loadProfileByName, registerCliProviderInfrastructure, saveProfileSnapshot, setActiveModel, setActiveModelParam, setActiveToolFormatOverride, setDefaultProfileName, setEphemeralSetting, switchActiveProvider, updateActiveProviderApiKey, updateActiveProviderBaseUrl, getSessionTokenUsage, } from '../../runtime/runtimeSettings.js';
9
+ import { enterRuntimeScope, runWithRuntimeScope, } from '../../runtime/runtimeContextFactory.js';
10
+ /**
11
+ * @plan PLAN-20251018-STATELESSPROVIDER2.P15
12
+ * @requirement REQ-SP2-003
13
+ * @pseudocode cli-runtime-isolation.md lines 4-10
14
+ * React bridge that binds CLI runtime helpers to the active runtime scope so UI commands remain isolated.
15
+ */
16
+ const runtimeFunctions = {
17
+ switchActiveProvider,
18
+ listProviders,
19
+ getActiveProviderName,
20
+ setActiveModel,
21
+ listAvailableModels,
22
+ getActiveModelName,
23
+ getActiveProviderStatus,
24
+ getActiveModelParams,
25
+ getEphemeralSettings,
26
+ setEphemeralSetting,
27
+ setActiveModelParam,
28
+ clearActiveModelParam,
29
+ saveProfileSnapshot,
30
+ loadProfileByName,
31
+ deleteProfileByName,
32
+ listSavedProfiles,
33
+ setDefaultProfileName,
34
+ updateActiveProviderBaseUrl,
35
+ updateActiveProviderApiKey,
36
+ getCliProviderManager,
37
+ getCliOAuthManager,
38
+ registerCliProviderInfrastructure,
39
+ getRuntimeDiagnosticsSnapshot,
40
+ getActiveToolFormatState,
41
+ setActiveToolFormatOverride,
42
+ getActiveProviderMetrics,
43
+ getSessionTokenUsage,
44
+ getCliRuntimeServices,
45
+ getEphemeralSetting,
46
+ };
47
+ const RuntimeContext = createContext(null);
48
+ function makeRuntimeApi(runtimeId, metadata) {
49
+ const scope = { runtimeId, metadata };
50
+ const boundEntries = Object.entries(runtimeFunctions).map(([key, fn]) => {
51
+ if (typeof fn !== 'function') {
52
+ return [key, fn];
53
+ }
54
+ const wrapped = (...args) => runWithRuntimeScope(scope, () => fn(...args));
55
+ return [key, wrapped];
56
+ });
57
+ return Object.fromEntries(boundEntries);
58
+ }
59
+ function createBridge(runtimeId, metadata) {
60
+ const scope = { runtimeId, metadata };
61
+ const api = makeRuntimeApi(runtimeId, metadata);
62
+ return {
63
+ runtimeId,
64
+ metadata,
65
+ api,
66
+ runWithScope: (callback) => runWithRuntimeScope(scope, callback),
67
+ enterScope: () => enterRuntimeScope(scope),
68
+ };
69
+ }
70
+ let latestBridge = null;
71
+ export const RuntimeContextProvider = ({ children, }) => {
72
+ const runtime = getCliRuntimeContext();
73
+ const runtimeId = (typeof runtime.runtimeId === 'string' && runtime.runtimeId.trim() !== ''
74
+ ? runtime.runtimeId
75
+ : 'legacy-singleton') ?? 'legacy-singleton';
76
+ const bridge = useMemo(() => {
77
+ const normalizedMetadata = runtime.metadata ?? {};
78
+ return createBridge(runtimeId, normalizedMetadata);
79
+ }, [runtimeId, runtime]);
80
+ useEffect(() => {
81
+ bridge.enterScope();
82
+ latestBridge = bridge;
83
+ return () => {
84
+ if (latestBridge?.runtimeId === bridge.runtimeId) {
85
+ latestBridge = null;
86
+ }
87
+ };
88
+ }, [bridge]);
89
+ return (_jsx(RuntimeContext.Provider, { value: bridge, children: children }));
90
+ };
91
+ export function useRuntimeBridge() {
92
+ const context = useContext(RuntimeContext);
93
+ if (!context) {
94
+ throw new Error('RuntimeContextProvider is missing from the component tree.');
95
+ }
96
+ return context;
97
+ }
98
+ export function useRuntimeApi() {
99
+ return useRuntimeBridge().api;
100
+ }
101
+ export function getRuntimeBridge() {
102
+ if (latestBridge) {
103
+ return latestBridge;
104
+ }
105
+ const runtime = getCliRuntimeContext();
106
+ const runtimeId = (typeof runtime.runtimeId === 'string' && runtime.runtimeId.trim() !== ''
107
+ ? runtime.runtimeId
108
+ : 'legacy-singleton') ?? 'legacy-singleton';
109
+ const metadata = runtime.metadata ?? {};
110
+ const bridge = createBridge(runtimeId, metadata);
111
+ bridge.enterScope();
112
+ latestBridge = bridge;
113
+ return bridge;
114
+ }
115
+ export function getRuntimeApi() {
116
+ return getRuntimeBridge().api;
117
+ }
118
+ //# sourceMappingURL=RuntimeContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RuntimeContext.js","sourceRoot":"","sources":["../../../../src/ui/contexts/RuntimeContext.tsx"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ import React from 'react';
7
7
  interface TodoProviderProps {
8
8
  children: React.ReactNode;
9
9
  sessionId: string;
10
+ agentId?: string;
10
11
  }
11
12
  export declare const TodoProvider: React.FC<TodoProviderProps>;
12
13
  export {};
@@ -5,16 +5,17 @@ import { jsx as _jsx } from "react/jsx-runtime";
5
5
  * SPDX-License-Identifier: Apache-2.0
6
6
  */
7
7
  import { useState, useEffect, useMemo, useCallback } from 'react';
8
- import { TodoStore, todoEvents, } from '@vybestack/llxprt-code-core';
8
+ import { TodoStore, todoEvents, DEFAULT_AGENT_ID, } from '@vybestack/llxprt-code-core';
9
9
  import { TodoContext } from './TodoContext.js';
10
- export const TodoProvider = ({ children, sessionId = 'default', }) => {
10
+ export const TodoProvider = ({ children, sessionId = 'default', agentId, }) => {
11
11
  const [todos, setTodos] = useState([]);
12
12
  const [loading, setLoading] = useState(true);
13
13
  const [error, setError] = useState(null);
14
+ const scopedAgentId = agentId ?? DEFAULT_AGENT_ID;
14
15
  const refreshTodos = useCallback(async () => {
15
16
  try {
16
17
  setLoading(true);
17
- const store = new TodoStore(sessionId);
18
+ const store = new TodoStore(sessionId, agentId);
18
19
  const todos = await store.readTodos();
19
20
  setTodos(todos);
20
21
  setError(null);
@@ -26,7 +27,7 @@ export const TodoProvider = ({ children, sessionId = 'default', }) => {
26
27
  finally {
27
28
  setLoading(false);
28
29
  }
29
- }, [sessionId]);
30
+ }, [agentId, sessionId]);
30
31
  // Load initial data
31
32
  useEffect(() => {
32
33
  refreshTodos();
@@ -35,7 +36,8 @@ export const TodoProvider = ({ children, sessionId = 'default', }) => {
35
36
  useEffect(() => {
36
37
  const handleTodoUpdate = (eventData) => {
37
38
  // Verify this update is for our session
38
- if (eventData.sessionId === sessionId) {
39
+ if (eventData.sessionId === sessionId &&
40
+ (eventData.agentId ?? DEFAULT_AGENT_ID) === scopedAgentId) {
39
41
  // Use the todos from the event instead of re-reading from file
40
42
  // This avoids race conditions with file I/O
41
43
  setTodos(eventData.todos);
@@ -46,15 +48,15 @@ export const TodoProvider = ({ children, sessionId = 'default', }) => {
46
48
  return () => {
47
49
  todoEvents.offTodoUpdated(handleTodoUpdate);
48
50
  };
49
- }, [sessionId]);
51
+ }, [scopedAgentId, sessionId]);
50
52
  const updateTodos = useCallback((newTodos) => {
51
53
  setTodos(newTodos);
52
54
  // Persist to store
53
- const store = new TodoStore(sessionId);
55
+ const store = new TodoStore(sessionId, agentId);
54
56
  store.writeTodos(newTodos).catch((err) => {
55
57
  setError(`Failed to save todos: ${err instanceof Error ? err.message : 'Unknown error'}`);
56
58
  });
57
- }, [sessionId]);
59
+ }, [agentId, sessionId]);
58
60
  const contextValue = useMemo(() => ({
59
61
  todos,
60
62
  updateTodos,
@@ -1 +1 @@
1
- {"version":3,"file":"TodoProvider.js","sourceRoot":"","sources":["../../../../src/ui/contexts/TodoProvider.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TodoProvider.js","sourceRoot":"","sources":["../../../../src/ui/contexts/TodoProvider.tsx"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ import React from 'react';
7
7
  interface ToolCallProviderProps {
8
8
  children: React.ReactNode;
9
9
  sessionId: string;
10
+ agentId?: string;
10
11
  }
11
12
  export declare const ToolCallProvider: React.FC<ToolCallProviderProps>;
12
13
  export {};
@@ -6,8 +6,8 @@ import { jsx as _jsx } from "react/jsx-runtime";
6
6
  */
7
7
  import { useState, useEffect, useCallback, useRef, useMemo, } from 'react';
8
8
  import { ToolCallContext } from './ToolCallContext.js';
9
- import { ToolCallTrackerService, } from '@vybestack/llxprt-code-core';
10
- export const ToolCallProvider = ({ children, sessionId, }) => {
9
+ import { ToolCallTrackerService, DEFAULT_AGENT_ID, } from '@vybestack/llxprt-code-core';
10
+ export const ToolCallProvider = ({ children, sessionId, agentId, }) => {
11
11
  // Store executing tool calls in state to trigger re-renders
12
12
  const [executingToolCalls, setExecutingToolCalls] = useState(new Map());
13
13
  // Track if we've already subscribed to avoid duplicate subscriptions
@@ -15,18 +15,19 @@ export const ToolCallProvider = ({ children, sessionId, }) => {
15
15
  // Get executing tool calls for a specific todo
16
16
  const getExecutingToolCalls = useCallback((todoId) => executingToolCalls.get(todoId) || [], [executingToolCalls]);
17
17
  // Update the state with current tool calls
18
+ const scopedAgentId = agentId ?? DEFAULT_AGENT_ID;
18
19
  const updateExecutingToolCalls = useCallback(() => {
19
20
  // Get all tool calls for this session
20
- const allCalls = ToolCallTrackerService.getAllToolCallsForSession(sessionId);
21
+ const allCalls = ToolCallTrackerService.getAllToolCallsForSession(sessionId, scopedAgentId);
21
22
  // Convert to the format we want for state
22
23
  const newExecutingToolCalls = new Map();
23
24
  for (const [todoId] of allCalls) {
24
25
  // Get all tool calls (both executing and completed)
25
- const allToolCalls = ToolCallTrackerService.getAllToolCalls(sessionId, todoId);
26
+ const allToolCalls = ToolCallTrackerService.getAllToolCalls(sessionId, todoId, scopedAgentId);
26
27
  newExecutingToolCalls.set(todoId, allToolCalls);
27
28
  }
28
29
  setExecutingToolCalls(newExecutingToolCalls);
29
- }, [sessionId]);
30
+ }, [scopedAgentId, sessionId]);
30
31
  // Set up subscription to tool call updates
31
32
  useEffect(() => {
32
33
  // Unsubscribe from previous subscription if it exists
@@ -35,7 +36,7 @@ export const ToolCallProvider = ({ children, sessionId, }) => {
35
36
  unsubscribeRef.current = null;
36
37
  }
37
38
  // Subscribe to updates
38
- const unsubscribe = ToolCallTrackerService.subscribeToUpdates(sessionId, updateExecutingToolCalls);
39
+ const unsubscribe = ToolCallTrackerService.subscribeToUpdates(sessionId, updateExecutingToolCalls, scopedAgentId);
39
40
  unsubscribeRef.current = unsubscribe;
40
41
  // Do an initial update to get current state
41
42
  updateExecutingToolCalls();
@@ -46,17 +47,17 @@ export const ToolCallProvider = ({ children, sessionId, }) => {
46
47
  unsubscribeRef.current = null;
47
48
  }
48
49
  };
49
- }, [sessionId, updateExecutingToolCalls]);
50
+ }, [scopedAgentId, sessionId, updateExecutingToolCalls]);
50
51
  const contextValue = useMemo(() => ({
51
52
  getExecutingToolCalls,
52
53
  subscribe: (callback) => {
53
54
  const unsubscribe = ToolCallTrackerService.subscribeToUpdates(sessionId, () => {
54
55
  updateExecutingToolCalls();
55
56
  callback();
56
- });
57
+ }, scopedAgentId);
57
58
  return unsubscribe;
58
59
  },
59
- }), [getExecutingToolCalls, sessionId, updateExecutingToolCalls]);
60
+ }), [getExecutingToolCalls, scopedAgentId, sessionId, updateExecutingToolCalls]);
60
61
  return (_jsx(ToolCallContext.Provider, { value: contextValue, children: children }));
61
62
  };
62
63
  //# sourceMappingURL=ToolCallProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToolCallProvider.js","sourceRoot":"","sources":["../../../../src/ui/contexts/ToolCallProvider.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAc,EACZ,QAAQ,EACR,SAAS,EACT,WAAW,EACX,MAAM,EACN,OAAO,GACR,MAAM,OAAO,CAAC;AACf,OAAO,EAAuB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EACL,sBAAsB,GAEvB,MAAM,6BAA6B,CAAC;AAOrC,MAAM,CAAC,MAAM,gBAAgB,GAAoC,CAAC,EAChE,QAAQ,EACR,SAAS,GACV,EAAE,EAAE;IACH,4DAA4D;IAC5D,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAE1D,IAAI,GAAG,EAAE,CAAC,CAAC;IAEb,qEAAqE;IACrE,MAAM,cAAc,GAAG,MAAM,CAAsB,IAAI,CAAC,CAAC;IAEzD,+CAA+C;IAC/C,MAAM,qBAAqB,GAAG,WAAW,CACvC,CAAC,MAAc,EAAkB,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EACxE,CAAC,kBAAkB,CAAC,CACrB,CAAC;IAEF,2CAA2C;IAC3C,MAAM,wBAAwB,GAAG,WAAW,CAAC,GAAG,EAAE;QAChD,sCAAsC;QACtC,MAAM,QAAQ,GACZ,sBAAsB,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC;QAE9D,0CAA0C;QAC1C,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAA0B,CAAC;QAChE,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YAChC,oDAAoD;YACpD,MAAM,YAAY,GAAG,sBAAsB,CAAC,eAAe,CACzD,SAAS,EACT,MAAM,CACP,CAAC;YACF,qBAAqB,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAClD,CAAC;QAED,qBAAqB,CAAC,qBAAqB,CAAC,CAAC;IAC/C,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,2CAA2C;IAC3C,SAAS,CAAC,GAAG,EAAE;QACb,sDAAsD;QACtD,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;YAC3B,cAAc,CAAC,OAAO,EAAE,CAAC;YACzB,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC;QAChC,CAAC;QAED,uBAAuB;QACvB,MAAM,WAAW,GAAG,sBAAsB,CAAC,kBAAkB,CAC3D,SAAS,EACT,wBAAwB,CACzB,CAAC;QACF,cAAc,CAAC,OAAO,GAAG,WAAW,CAAC;QAErC,4CAA4C;QAC5C,wBAAwB,EAAE,CAAC;QAE3B,mCAAmC;QACnC,OAAO,GAAG,EAAE;YACV,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;gBAC3B,cAAc,CAAC,OAAO,EAAE,CAAC;gBACzB,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC;YAChC,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,SAAS,EAAE,wBAAwB,CAAC,CAAC,CAAC;IAE1C,MAAM,YAAY,GAAG,OAAO,CAC1B,GAAG,EAAE,CAAC,CAAC;QACL,qBAAqB;QACrB,SAAS,EAAE,CAAC,QAAoB,EAAE,EAAE;YAClC,MAAM,WAAW,GAAG,sBAAsB,CAAC,kBAAkB,CAC3D,SAAS,EACT,GAAG,EAAE;gBACH,wBAAwB,EAAE,CAAC;gBAC3B,QAAQ,EAAE,CAAC;YACb,CAAC,CACF,CAAC;YACF,OAAO,WAAW,CAAC;QACrB,CAAC;KACF,CAAC,EACF,CAAC,qBAAqB,EAAE,SAAS,EAAE,wBAAwB,CAAC,CAC7D,CAAC;IAEF,OAAO,CACL,KAAC,eAAe,CAAC,QAAQ,IAAC,KAAK,EAAE,YAAY,YAC1C,QAAQ,GACgB,CAC5B,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"ToolCallProvider.js","sourceRoot":"","sources":["../../../../src/ui/contexts/ToolCallProvider.tsx"],"names":[],"mappings":"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"}