@vybestack/llxprt-code 0.4.7 → 0.5.0-nightly.251102.f115237d

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 (301) hide show
  1. package/dist/package.json +7 -5
  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 +16 -0
  6. package/dist/src/auth/oauth-manager.js +81 -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/commands/extensions.js +1 -1
  11. package/dist/src/commands/extensions.js.map +1 -1
  12. package/dist/src/config/__tests__/nonInteractiveTools.test.d.ts +6 -0
  13. package/dist/src/config/__tests__/nonInteractiveTools.test.js +13 -0
  14. package/dist/src/config/__tests__/nonInteractiveTools.test.js.map +1 -0
  15. package/dist/src/config/__tests__/profileBootstrap.test.d.ts +6 -0
  16. package/dist/src/config/__tests__/profileBootstrap.test.js +91 -0
  17. package/dist/src/config/__tests__/profileBootstrap.test.js.map +1 -0
  18. package/dist/src/config/config.d.ts +7 -2
  19. package/dist/src/config/config.js +225 -10
  20. package/dist/src/config/config.js.map +1 -1
  21. package/dist/src/config/config.loadMemory.test.js +1 -0
  22. package/dist/src/config/config.loadMemory.test.js.map +1 -1
  23. package/dist/src/config/profileBootstrap.d.ts +64 -0
  24. package/dist/src/config/profileBootstrap.js +140 -0
  25. package/dist/src/config/profileBootstrap.js.map +1 -0
  26. package/dist/src/config/settings.env.test.d.ts +6 -0
  27. package/dist/src/config/settings.env.test.js +38 -0
  28. package/dist/src/config/settings.env.test.js.map +1 -0
  29. package/dist/src/config/settings.js +2 -2
  30. package/dist/src/config/settings.js.map +1 -1
  31. package/dist/src/gemini.js +70 -25
  32. package/dist/src/gemini.js.map +1 -1
  33. package/dist/src/gemini.test.js +1 -2
  34. package/dist/src/gemini.test.js.map +1 -1
  35. package/dist/src/generated/git-commit.d.ts +1 -1
  36. package/dist/src/generated/git-commit.js +1 -1
  37. package/dist/src/integration-tests/base-url-behavior.integration.test.js +110 -450
  38. package/dist/src/integration-tests/base-url-behavior.integration.test.js.map +1 -1
  39. package/dist/src/integration-tests/model-params-isolation.integration.test.js +101 -539
  40. package/dist/src/integration-tests/model-params-isolation.integration.test.js.map +1 -1
  41. package/dist/src/integration-tests/modelParams.integration.test.js +86 -761
  42. package/dist/src/integration-tests/modelParams.integration.test.js.map +1 -1
  43. package/dist/src/integration-tests/provider-multi-runtime.integration.test.d.ts +6 -0
  44. package/dist/src/integration-tests/provider-multi-runtime.integration.test.js +198 -0
  45. package/dist/src/integration-tests/provider-multi-runtime.integration.test.js.map +1 -0
  46. package/dist/src/integration-tests/provider-switching.integration.test.js +97 -151
  47. package/dist/src/integration-tests/provider-switching.integration.test.js.map +1 -1
  48. package/dist/src/integration-tests/runtime-isolation.test.d.ts +13 -0
  49. package/dist/src/integration-tests/runtime-isolation.test.js +170 -0
  50. package/dist/src/integration-tests/runtime-isolation.test.js.map +1 -0
  51. package/dist/src/integration-tests/test-utils.js +19 -2
  52. package/dist/src/integration-tests/test-utils.js.map +1 -1
  53. package/dist/src/integration-tests/test-utils.test.js +9 -8
  54. package/dist/src/integration-tests/test-utils.test.js.map +1 -1
  55. package/dist/src/integration-tests/todo-continuation.integration.test.js +5 -2
  56. package/dist/src/integration-tests/todo-continuation.integration.test.js.map +1 -1
  57. package/dist/src/integration-tests/tools-governance.integration.test.d.ts +6 -0
  58. package/dist/src/integration-tests/tools-governance.integration.test.js +98 -0
  59. package/dist/src/integration-tests/tools-governance.integration.test.js.map +1 -0
  60. package/dist/src/nonInteractiveCli.js +36 -11
  61. package/dist/src/nonInteractiveCli.js.map +1 -1
  62. package/dist/src/providers/logging/git-stats.test.js +11 -1
  63. package/dist/src/providers/logging/git-stats.test.js.map +1 -1
  64. package/dist/src/providers/logging/multi-provider-logging.integration.test.js +1 -2
  65. package/dist/src/providers/logging/multi-provider-logging.integration.test.js.map +1 -1
  66. package/dist/src/providers/logging/performance.test.js +1 -1
  67. package/dist/src/providers/logging/performance.test.js.map +1 -1
  68. package/dist/src/providers/oauth-provider-registration.d.ts +2 -2
  69. package/dist/src/providers/oauth-provider-registration.js +25 -9
  70. package/dist/src/providers/oauth-provider-registration.js.map +1 -1
  71. package/dist/src/providers/provider-gemini-switching.test.js +67 -89
  72. package/dist/src/providers/provider-gemini-switching.test.js.map +1 -1
  73. package/dist/src/providers/provider-switching.integration.test.js +42 -98
  74. package/dist/src/providers/provider-switching.integration.test.js.map +1 -1
  75. package/dist/src/providers/providerConfigUtils.d.ts +12 -7
  76. package/dist/src/providers/providerConfigUtils.js +31 -99
  77. package/dist/src/providers/providerConfigUtils.js.map +1 -1
  78. package/dist/src/providers/providerManagerInstance.d.ts +17 -1
  79. package/dist/src/providers/providerManagerInstance.js +157 -175
  80. package/dist/src/providers/providerManagerInstance.js.map +1 -1
  81. package/dist/src/providers/providerManagerInstance.oauthRegistration.test.js +19 -15
  82. package/dist/src/providers/providerManagerInstance.oauthRegistration.test.js.map +1 -1
  83. package/dist/src/providers/providerManagerInstance.test.js +2 -5
  84. package/dist/src/providers/providerManagerInstance.test.js.map +1 -1
  85. package/dist/src/runtime/__tests__/profileApplication.test.d.ts +5 -0
  86. package/dist/src/runtime/__tests__/profileApplication.test.js +232 -0
  87. package/dist/src/runtime/__tests__/profileApplication.test.js.map +1 -0
  88. package/dist/src/runtime/__tests__/runtimeIsolation.test.d.ts +5 -0
  89. package/dist/src/runtime/__tests__/runtimeIsolation.test.js +376 -0
  90. package/dist/src/runtime/__tests__/runtimeIsolation.test.js.map +1 -0
  91. package/dist/src/runtime/agentRuntimeAdapter.d.ts +249 -0
  92. package/dist/src/runtime/agentRuntimeAdapter.js +506 -0
  93. package/dist/src/runtime/agentRuntimeAdapter.js.map +1 -0
  94. package/dist/src/runtime/agentRuntimeAdapter.spec.d.ts +6 -0
  95. package/dist/src/runtime/agentRuntimeAdapter.spec.js +866 -0
  96. package/dist/src/runtime/agentRuntimeAdapter.spec.js.map +1 -0
  97. package/dist/src/runtime/messages.d.ts +28 -0
  98. package/dist/src/runtime/messages.js +64 -0
  99. package/dist/src/runtime/messages.js.map +1 -0
  100. package/dist/src/runtime/profileApplication.d.ts +33 -0
  101. package/dist/src/runtime/profileApplication.js +191 -0
  102. package/dist/src/runtime/profileApplication.js.map +1 -0
  103. package/dist/src/runtime/providerConfigUtils.test.d.ts +1 -0
  104. package/dist/src/runtime/providerConfigUtils.test.js +68 -0
  105. package/dist/src/runtime/providerConfigUtils.test.js.map +1 -0
  106. package/dist/src/runtime/runtimeContextFactory.d.ts +102 -0
  107. package/dist/src/runtime/runtimeContextFactory.js +190 -0
  108. package/dist/src/runtime/runtimeContextFactory.js.map +1 -0
  109. package/dist/src/runtime/runtimeSettings.d.ts +217 -0
  110. package/dist/src/runtime/runtimeSettings.js +1094 -0
  111. package/dist/src/runtime/runtimeSettings.js.map +1 -0
  112. package/dist/src/runtime/runtimeSettings.test.d.ts +1 -0
  113. package/dist/src/runtime/runtimeSettings.test.js +320 -0
  114. package/dist/src/runtime/runtimeSettings.test.js.map +1 -0
  115. package/dist/src/services/BuiltinCommandLoader.d.ts +13 -4
  116. package/dist/src/services/BuiltinCommandLoader.js +17 -4
  117. package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
  118. package/dist/src/services/McpPromptLoader.js +34 -13
  119. package/dist/src/services/McpPromptLoader.js.map +1 -1
  120. package/dist/src/settings/ephemeralSettings.js +3 -2
  121. package/dist/src/settings/ephemeralSettings.js.map +1 -1
  122. package/dist/src/test-utils/mockCommandContext.js +5 -2
  123. package/dist/src/test-utils/mockCommandContext.js.map +1 -1
  124. package/dist/src/ui/App.js +29 -49
  125. package/dist/src/ui/App.js.map +1 -1
  126. package/dist/src/ui/commands/aboutCommand.js +29 -0
  127. package/dist/src/ui/commands/aboutCommand.js.map +1 -1
  128. package/dist/src/ui/commands/authCommand.js +15 -12
  129. package/dist/src/ui/commands/authCommand.js.map +1 -1
  130. package/dist/src/ui/commands/baseurlCommand.js +8 -44
  131. package/dist/src/ui/commands/baseurlCommand.js.map +1 -1
  132. package/dist/src/ui/commands/chatCommand.js +28 -12
  133. package/dist/src/ui/commands/chatCommand.js.map +1 -1
  134. package/dist/src/ui/commands/diagnosticsCommand.d.ts +0 -3
  135. package/dist/src/ui/commands/diagnosticsCommand.js +40 -191
  136. package/dist/src/ui/commands/diagnosticsCommand.js.map +1 -1
  137. package/dist/src/ui/commands/docsCommand.js +1 -1
  138. package/dist/src/ui/commands/docsCommand.js.map +1 -1
  139. package/dist/src/ui/commands/keyCommand.js +9 -58
  140. package/dist/src/ui/commands/keyCommand.js.map +1 -1
  141. package/dist/src/ui/commands/keyCommand.test.js +48 -102
  142. package/dist/src/ui/commands/keyCommand.test.js.map +1 -1
  143. package/dist/src/ui/commands/keyfileCommand.js +42 -93
  144. package/dist/src/ui/commands/keyfileCommand.js.map +1 -1
  145. package/dist/src/ui/commands/logoutCommand.js +2 -2
  146. package/dist/src/ui/commands/logoutCommand.js.map +1 -1
  147. package/dist/src/ui/commands/mcpCommand.js +29 -7
  148. package/dist/src/ui/commands/mcpCommand.js.map +1 -1
  149. package/dist/src/ui/commands/modelCommand.js +8 -59
  150. package/dist/src/ui/commands/modelCommand.js.map +1 -1
  151. package/dist/src/ui/commands/profileCommand.js +151 -267
  152. package/dist/src/ui/commands/profileCommand.js.map +1 -1
  153. package/dist/src/ui/commands/profileCommand.test.js +88 -344
  154. package/dist/src/ui/commands/profileCommand.test.js.map +1 -1
  155. package/dist/src/ui/commands/providerCommand.js +9 -3
  156. package/dist/src/ui/commands/providerCommand.js.map +1 -1
  157. package/dist/src/ui/commands/restoreCommand.js +38 -18
  158. package/dist/src/ui/commands/restoreCommand.js.map +1 -1
  159. package/dist/src/ui/commands/schema/argumentResolver.test.d.ts +6 -0
  160. package/dist/src/ui/commands/schema/argumentResolver.test.js +619 -0
  161. package/dist/src/ui/commands/schema/argumentResolver.test.js.map +1 -0
  162. package/dist/src/ui/commands/schema/index.d.ts +15 -0
  163. package/dist/src/ui/commands/schema/index.js +320 -0
  164. package/dist/src/ui/commands/schema/index.js.map +1 -0
  165. package/dist/src/ui/commands/schema/types.d.ts +61 -0
  166. package/dist/src/ui/commands/schema/types.js +12 -0
  167. package/dist/src/ui/commands/schema/types.js.map +1 -0
  168. package/dist/src/ui/commands/setCommand.js +641 -325
  169. package/dist/src/ui/commands/setCommand.js.map +1 -1
  170. package/dist/src/ui/commands/setCommand.test.js +92 -388
  171. package/dist/src/ui/commands/setCommand.test.js.map +1 -1
  172. package/dist/src/ui/commands/statusCommand.js +2 -2
  173. package/dist/src/ui/commands/statusCommand.js.map +1 -1
  174. package/dist/src/ui/commands/subagentCommand.d.ts +16 -0
  175. package/dist/src/ui/commands/subagentCommand.js +656 -0
  176. package/dist/src/ui/commands/subagentCommand.js.map +1 -0
  177. package/dist/src/ui/commands/test/setCommand.mutation.test.d.ts +6 -0
  178. package/dist/src/ui/commands/test/setCommand.mutation.test.js +132 -0
  179. package/dist/src/ui/commands/test/setCommand.mutation.test.js.map +1 -0
  180. package/dist/src/ui/commands/test/setCommand.phase09.test.d.ts +6 -0
  181. package/dist/src/ui/commands/test/setCommand.phase09.test.js +222 -0
  182. package/dist/src/ui/commands/test/setCommand.phase09.test.js.map +1 -0
  183. package/dist/src/ui/commands/test/subagentCommand.schema.test.d.ts +6 -0
  184. package/dist/src/ui/commands/test/subagentCommand.schema.test.js +125 -0
  185. package/dist/src/ui/commands/test/subagentCommand.schema.test.js.map +1 -0
  186. package/dist/src/ui/commands/test/subagentCommand.test.d.ts +1 -0
  187. package/dist/src/ui/commands/test/subagentCommand.test.js +589 -0
  188. package/dist/src/ui/commands/test/subagentCommand.test.js.map +1 -0
  189. package/dist/src/ui/commands/toolformatCommand.js +25 -98
  190. package/dist/src/ui/commands/toolformatCommand.js.map +1 -1
  191. package/dist/src/ui/commands/toolformatCommand.test.js +56 -102
  192. package/dist/src/ui/commands/toolformatCommand.test.js.map +1 -1
  193. package/dist/src/ui/commands/toolsCommand.js +187 -31
  194. package/dist/src/ui/commands/toolsCommand.js.map +1 -1
  195. package/dist/src/ui/commands/types.d.ts +11 -2
  196. package/dist/src/ui/commands/types.js.map +1 -1
  197. package/dist/src/ui/components/AboutBox.d.ts +4 -0
  198. package/dist/src/ui/components/AboutBox.js +1 -1
  199. package/dist/src/ui/components/AboutBox.js.map +1 -1
  200. package/dist/src/ui/components/AuthDialog.js +4 -3
  201. package/dist/src/ui/components/AuthDialog.js.map +1 -1
  202. package/dist/src/ui/components/AuthDialog.test.js +67 -1
  203. package/dist/src/ui/components/AuthDialog.test.js.map +1 -1
  204. package/dist/src/ui/components/Footer.js +4 -5
  205. package/dist/src/ui/components/Footer.js.map +1 -1
  206. package/dist/src/ui/components/HistoryItemDisplay.js +1 -1
  207. package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
  208. package/dist/src/ui/components/HistoryItemDisplay.test.js +2 -0
  209. package/dist/src/ui/components/HistoryItemDisplay.test.js.map +1 -1
  210. package/dist/src/ui/components/InputPrompt.js +18 -6
  211. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  212. package/dist/src/ui/components/SettingsDialog.js +1 -1
  213. package/dist/src/ui/components/SettingsDialog.js.map +1 -1
  214. package/dist/src/ui/components/StatsDisplay.js +6 -11
  215. package/dist/src/ui/components/StatsDisplay.js.map +1 -1
  216. package/dist/src/ui/components/SuggestionsDisplay.d.ts +13 -1
  217. package/dist/src/ui/components/SuggestionsDisplay.js +22 -3
  218. package/dist/src/ui/components/SuggestionsDisplay.js.map +1 -1
  219. package/dist/src/ui/components/WorkspaceMigrationDialog.js +1 -1
  220. package/dist/src/ui/components/WorkspaceMigrationDialog.js.map +1 -1
  221. package/dist/src/ui/components/messages/ToolGroupMessage.d.ts +1 -0
  222. package/dist/src/ui/components/messages/ToolGroupMessage.js +14 -14
  223. package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
  224. package/dist/src/ui/components/messages/ToolGroupMessage.test.js +1 -0
  225. package/dist/src/ui/components/messages/ToolGroupMessage.test.js.map +1 -1
  226. package/dist/src/ui/components/shared/text-buffer.js +4 -1
  227. package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
  228. package/dist/src/ui/containers/SessionController.js +61 -117
  229. package/dist/src/ui/containers/SessionController.js.map +1 -1
  230. package/dist/src/ui/contexts/RuntimeContext.d.ts +61 -0
  231. package/dist/src/ui/contexts/RuntimeContext.js +118 -0
  232. package/dist/src/ui/contexts/RuntimeContext.js.map +1 -0
  233. package/dist/src/ui/contexts/TodoProvider.d.ts +1 -0
  234. package/dist/src/ui/contexts/TodoProvider.js +10 -8
  235. package/dist/src/ui/contexts/TodoProvider.js.map +1 -1
  236. package/dist/src/ui/contexts/ToolCallProvider.d.ts +1 -0
  237. package/dist/src/ui/contexts/ToolCallProvider.js +10 -9
  238. package/dist/src/ui/contexts/ToolCallProvider.js.map +1 -1
  239. package/dist/src/ui/hooks/__tests__/useSlashCompletion.set.phase09.test.d.ts +6 -0
  240. package/dist/src/ui/hooks/__tests__/useSlashCompletion.set.phase09.test.js +39 -0
  241. package/dist/src/ui/hooks/__tests__/useSlashCompletion.set.phase09.test.js.map +1 -0
  242. package/dist/src/ui/hooks/atCommandProcessor.js +11 -3
  243. package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
  244. package/dist/src/ui/hooks/atCommandProcessor.test.js +3 -1
  245. package/dist/src/ui/hooks/atCommandProcessor.test.js.map +1 -1
  246. package/dist/src/ui/hooks/shellCommandProcessor.js +4 -1
  247. package/dist/src/ui/hooks/shellCommandProcessor.js.map +1 -1
  248. package/dist/src/ui/hooks/shellCommandProcessor.test.js +1 -0
  249. package/dist/src/ui/hooks/shellCommandProcessor.test.js.map +1 -1
  250. package/dist/src/ui/hooks/slashCommandProcessor.js +29 -1
  251. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  252. package/dist/src/ui/hooks/useAuthCommand.js +11 -3
  253. package/dist/src/ui/hooks/useAuthCommand.js.map +1 -1
  254. package/dist/src/ui/hooks/useCommandCompletion.d.ts +1 -0
  255. package/dist/src/ui/hooks/useCommandCompletion.js +2 -0
  256. package/dist/src/ui/hooks/useCommandCompletion.js.map +1 -1
  257. package/dist/src/ui/hooks/useGeminiStream.js +37 -11
  258. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  259. package/dist/src/ui/hooks/useGeminiStream.subagent.spec.d.ts +6 -0
  260. package/dist/src/ui/hooks/useGeminiStream.subagent.spec.js +232 -0
  261. package/dist/src/ui/hooks/useGeminiStream.subagent.spec.js.map +1 -0
  262. package/dist/src/ui/hooks/useLoadProfileDialog.d.ts +1 -1
  263. package/dist/src/ui/hooks/useLoadProfileDialog.js +18 -57
  264. package/dist/src/ui/hooks/useLoadProfileDialog.js.map +1 -1
  265. package/dist/src/ui/hooks/useOpenAIProviderInfo.d.ts +1 -1
  266. package/dist/src/ui/hooks/useOpenAIProviderInfo.js +12 -7
  267. package/dist/src/ui/hooks/useOpenAIProviderInfo.js.map +1 -1
  268. package/dist/src/ui/hooks/useProviderDialog.d.ts +1 -1
  269. package/dist/src/ui/hooks/useProviderDialog.js +17 -90
  270. package/dist/src/ui/hooks/useProviderDialog.js.map +1 -1
  271. package/dist/src/ui/hooks/useProviderModelDialog.d.ts +2 -2
  272. package/dist/src/ui/hooks/useProviderModelDialog.js +11 -12
  273. package/dist/src/ui/hooks/useProviderModelDialog.js.map +1 -1
  274. package/dist/src/ui/hooks/useReactToolScheduler.d.ts +3 -1
  275. package/dist/src/ui/hooks/useReactToolScheduler.js +144 -34
  276. package/dist/src/ui/hooks/useReactToolScheduler.js.map +1 -1
  277. package/dist/src/ui/hooks/useSlashCompletion.d.ts +32 -0
  278. package/dist/src/ui/hooks/useSlashCompletion.js +154 -77
  279. package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -1
  280. package/dist/src/ui/hooks/useSlashCompletion.test.js +39 -14
  281. package/dist/src/ui/hooks/useSlashCompletion.test.js.map +1 -1
  282. package/dist/src/ui/hooks/useToolScheduler.test.js +108 -79
  283. package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
  284. package/dist/src/ui/privacy/CloudFreePrivacyNotice.js +1 -1
  285. package/dist/src/ui/privacy/CloudFreePrivacyNotice.js.map +1 -1
  286. package/dist/src/ui/types.d.ts +5 -0
  287. package/dist/src/ui/types.js.map +1 -1
  288. package/dist/src/ui/utils/MarkdownDisplay.test.js +16 -0
  289. package/dist/src/ui/utils/MarkdownDisplay.test.js.map +1 -1
  290. package/dist/src/ui/utils/TableRenderer.js +213 -40
  291. package/dist/src/ui/utils/TableRenderer.js.map +1 -1
  292. package/dist/src/utils/sandbox.js +1 -1
  293. package/dist/src/utils/sandbox.js.map +1 -1
  294. package/dist/src/validateNonInterActiveAuth.js +4 -2
  295. package/dist/src/validateNonInterActiveAuth.js.map +1 -1
  296. package/dist/src/zed-integration/schema.d.ts +30 -30
  297. package/dist/src/zed-integration/zedIntegration.js +112 -39
  298. package/dist/src/zed-integration/zedIntegration.js.map +1 -1
  299. package/dist/tsconfig.build.tsbuildinfo +1 -0
  300. package/package.json +7 -5
  301. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"setCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/setCommand.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/setCommand.ts"],"names":[],"mappings":"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"}
@@ -3,56 +3,26 @@
3
3
  * Copyright 2025 Vybestack LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { describe, it, expect, beforeEach, vi } from 'vitest';
7
- import { setCommand } from './setCommand.js';
6
+ import { beforeEach, describe, expect, it, vi } from 'vitest';
8
7
  import { createMockCommandContext } from '../../test-utils/mockCommandContext.js';
9
- // import { getProviderManager } from '../../providers/providerManagerInstance.js';
10
- // Mock the provider manager module
11
- vi.mock('../../providers/providerManagerInstance.js', () => ({
12
- getProviderManager: vi.fn(),
8
+ import { setCommand } from './setCommand.js';
9
+ const mockRuntime = {
10
+ getActiveModelParams: vi.fn(() => ({})),
11
+ getEphemeralSettings: vi.fn(() => ({})),
12
+ setEphemeralSetting: vi.fn(),
13
+ setActiveModelParam: vi.fn(),
14
+ clearActiveModelParam: vi.fn(),
15
+ };
16
+ vi.mock('../contexts/RuntimeContext.js', () => ({
17
+ getRuntimeApi: () => mockRuntime,
13
18
  }));
14
- describe('setCommand', () => {
19
+ describe('setCommand runtime integration', () => {
15
20
  let context;
16
- let mockProvider;
17
- let mockProviderManager;
18
- let mockConfig;
19
21
  beforeEach(() => {
20
- // Create a mock provider with setModelParams and getModelParams methods
21
- mockProvider = {
22
- name: 'test-provider',
23
- getModels: vi.fn().mockResolvedValue([]),
24
- generateChatCompletion: vi.fn(),
25
- getDefaultModel: vi.fn().mockReturnValue('default'),
26
- getServerTools: vi.fn().mockReturnValue([]),
27
- invokeServerTool: vi.fn().mockResolvedValue(undefined),
28
- setModelParams: vi.fn(),
29
- getModelParams: vi.fn(),
30
- };
31
- // Create a mock provider manager
32
- mockProviderManager = {
33
- getActiveProvider: vi.fn().mockReturnValue(mockProvider),
34
- };
35
- // Create a mock config
36
- mockConfig = {
37
- getProviderManager: vi.fn().mockReturnValue(mockProviderManager),
38
- setEphemeralSetting: vi.fn(),
39
- getEphemeralSetting: vi.fn(() => undefined),
40
- getEphemeralSettings: vi.fn(() => ({})),
41
- getGeminiClient: vi.fn(() => null),
42
- getSettingsService: vi.fn().mockReturnValue(null), // Return null to use fallback behavior
43
- };
44
- // Create context with the mock config
45
- context = createMockCommandContext({
46
- services: {
47
- config: mockConfig,
48
- },
49
- });
22
+ context = createMockCommandContext();
23
+ vi.clearAllMocks();
50
24
  });
51
- it('should have correct metadata', () => {
52
- expect(setCommand.name).toBe('set');
53
- expect(setCommand.description).toBe('set model parameters or ephemeral settings');
54
- });
55
- it('should show usage when no arguments provided', async () => {
25
+ it('requires arguments and shows usage when missing', async () => {
56
26
  const result = await setCommand.action(context, '');
57
27
  expect(result).toEqual({
58
28
  type: 'message',
@@ -60,394 +30,128 @@ describe('setCommand', () => {
60
30
  content: 'Usage: /set <ephemeral-key> <value>\nExample: /set context-limit 100000\n\nFor model parameters use: /set modelparam <key> <value>',
61
31
  });
62
32
  });
63
- it('should show usage when insufficient arguments provided', async () => {
64
- const result = await setCommand.action(context, 'temperature');
33
+ it('stores numeric ephemeral settings via runtime helper', async () => {
34
+ const result = await setCommand.action(context, 'context-limit 32000');
35
+ expect(mockRuntime.setEphemeralSetting).toHaveBeenCalledWith('context-limit', 32000);
65
36
  expect(result).toEqual({
66
37
  type: 'message',
67
- messageType: 'error',
68
- content: 'Usage: /set temperature <value>\n\nValid ephemeral keys:\n context-limit: Maximum number of tokens for the context window (e.g., 100000)\n compression-threshold: Fraction of context limit that triggers compression (0.0-1.0, e.g., 0.7 for 70%)\n base-url: Base URL for API requests\n tool-format: Tool format override for the provider\n api-version: API version to use\n custom-headers: Custom HTTP headers as JSON object\n stream-options: Stream options for OpenAI API (default: { include_usage: true })\n streaming: Enable or disable streaming responses (enabled/disabled, default: enabled)\n shell-replacement: Allow command substitution ($(), <(), backticks) in shell commands (default: false)\n socket-timeout: Request timeout in milliseconds for local AI servers (default: 60000)\n socket-keepalive: Enable TCP keepalive for local AI server connections (true/false, default: true)\n socket-nodelay: Enable TCP_NODELAY concept for local AI servers (true/false, default: true)\n tool-output-max-items: Maximum number of items/files/matches returned by tools (default: 50)\n tool-output-max-tokens: Maximum tokens in tool output (default: 50000)\n tool-output-truncate-mode: How to handle exceeding limits: warn, truncate, or sample (default: warn)\n tool-output-item-size-limit: Maximum size per item/file in bytes (default: 524288 = 512KB)\n max-prompt-tokens: Maximum tokens allowed in any prompt sent to LLM (default: 200000)\n emojifilter: Emoji filter mode (allowed, auto, warn, error)\n retries: Maximum number of retry attempts for API calls (default: varies by provider)\n retrywait: Initial delay in milliseconds between retry attempts (default: varies by provider)\n maxTurnsPerPrompt: Maximum number of turns allowed per prompt before stopping (default: 100, -1 for unlimited)\n authOnly: Force providers to use OAuth authentication only, ignoring API keys and environment variables',
38
+ messageType: 'info',
39
+ content: "Ephemeral setting 'context-limit' set to 32000 (session only, use /profile save to persist)",
69
40
  });
70
41
  });
71
- it('should set model parameter successfully', async () => {
72
- const modelParamCommand = setCommand.subCommands[0];
73
- const result = await modelParamCommand.action(context, 'temperature 0.7');
74
- expect(mockProvider.setModelParams).toHaveBeenCalledWith({
75
- temperature: 0.7,
76
- });
42
+ it('parses JSON payloads for custom headers', async () => {
43
+ const payload = 'custom-headers {"Authorization":"Bearer token","X-Test":"value"}';
44
+ const result = await setCommand.action(context, payload);
45
+ expect(mockRuntime.setEphemeralSetting).toHaveBeenCalledWith('custom-headers', expect.objectContaining({
46
+ Authorization: 'Bearer token',
47
+ 'X-Test': 'value',
48
+ }));
77
49
  expect(result).toEqual({
78
50
  type: 'message',
79
51
  messageType: 'info',
80
- content: "Model parameter 'temperature' set to 0.7 (use /profile save to persist)",
52
+ content: 'Ephemeral setting \'custom-headers\' set to {"Authorization":"Bearer token","X-Test":"value"} (session only, use /profile save to persist)',
81
53
  });
82
54
  });
83
- it('should show error for modelparam with insufficient arguments', async () => {
84
- const modelParamCommand = setCommand.subCommands[0];
85
- const result = await modelParamCommand.action(context, 'temperature');
55
+ it('rejects invalid ephemeral keys', async () => {
56
+ const result = await setCommand.action(context, 'invalid-key value');
86
57
  expect(result).toEqual({
87
58
  type: 'message',
88
59
  messageType: 'error',
89
- content: 'Usage: /set modelparam <key> <value>\nExample: /set modelparam temperature 0.7',
60
+ content: 'Invalid setting key: invalid-key. Valid keys are: context-limit, compression-threshold, base-url, tool-format, api-version, custom-headers, stream-options, streaming, shell-replacement, socket-timeout, socket-keepalive, socket-nodelay, tool-output-max-items, tool-output-max-tokens, tool-output-truncate-mode, tool-output-item-size-limit, max-prompt-tokens, emojifilter, retries, retrywait, maxTurnsPerPrompt',
90
61
  });
91
62
  });
92
- it('should set ephemeral setting successfully', async () => {
93
- const result = await setCommand.action(context, 'context-limit 32000');
94
- expect(mockConfig.setEphemeralSetting).toHaveBeenCalledWith('context-limit', 32000);
63
+ it('validates compression threshold range', async () => {
64
+ const result = await setCommand.action(context, 'compression-threshold 1.5');
65
+ expect(mockRuntime.setEphemeralSetting).not.toHaveBeenCalled();
66
+ expect(result).toEqual({
67
+ type: 'message',
68
+ messageType: 'error',
69
+ content: 'compression-threshold must be a decimal between 0 and 1 (e.g., 0.7 for 70%)',
70
+ });
71
+ });
72
+ it('sets model parameters through runtime helper', async () => {
73
+ const result = await setCommand.action(context, 'modelparam temperature 0.7');
74
+ expect(mockRuntime.setActiveModelParam).toHaveBeenCalledWith('temperature', 0.7);
95
75
  expect(result).toEqual({
96
76
  type: 'message',
97
77
  messageType: 'info',
98
- content: "Ephemeral setting 'context-limit' set to 32000 (session only, use /profile save to persist)",
78
+ content: "Model parameter 'temperature' set to 0.7",
99
79
  });
100
80
  });
101
- it('should show error for invalid ephemeral key', async () => {
102
- const result = await setCommand.action(context, 'invalid-key some-value');
81
+ it('requires both key and value for modelparam', async () => {
82
+ const result = await setCommand.action(context, 'modelparam temperature');
103
83
  expect(result).toEqual({
104
84
  type: 'message',
105
85
  messageType: 'error',
106
- content: 'Invalid setting key: invalid-key. Valid keys are: context-limit, compression-threshold, base-url, tool-format, api-version, custom-headers, stream-options, streaming, shell-replacement, socket-timeout, socket-keepalive, socket-nodelay, tool-output-max-items, tool-output-max-tokens, tool-output-truncate-mode, tool-output-item-size-limit, max-prompt-tokens, emojifilter, retries, retrywait, maxTurnsPerPrompt, authOnly',
86
+ content: 'Usage: /set modelparam <key> <value>\nExample: /set modelparam temperature 0.7',
107
87
  });
88
+ expect(mockRuntime.setActiveModelParam).not.toHaveBeenCalled();
108
89
  });
109
- it('should handle multi-word JSON values correctly', async () => {
110
- const result = await setCommand.action(context, 'custom-headers {"Authorization": "Bearer token"}');
111
- expect(mockConfig.setEphemeralSetting).toHaveBeenCalledWith('custom-headers', {
112
- Authorization: 'Bearer token',
90
+ it('surfaces runtime errors from model parameter helper', async () => {
91
+ mockRuntime.setActiveModelParam.mockImplementationOnce(() => {
92
+ throw new Error('Provider error');
113
93
  });
94
+ const result = await setCommand.action(context, 'modelparam max_tokens 4096');
114
95
  expect(result).toEqual({
115
96
  type: 'message',
116
- messageType: 'info',
117
- content: 'Ephemeral setting \'custom-headers\' set to {"Authorization":"Bearer token"} (session only, use /profile save to persist)',
97
+ messageType: 'error',
98
+ content: 'Failed to set model parameter: Provider error',
118
99
  });
119
100
  });
120
- it('should normalize boolean streaming values to enabled/disabled', async () => {
121
- const disableResult = await setCommand.action(context, 'streaming false');
122
- expect(mockConfig.setEphemeralSetting).toHaveBeenNthCalledWith(1, 'streaming', 'disabled');
123
- expect(disableResult).toEqual({
124
- type: 'message',
125
- messageType: 'info',
126
- content: 'Ephemeral setting \'streaming\' set to "disabled" (session only, use /profile save to persist)',
127
- });
128
- const enableResult = await setCommand.action(context, 'streaming true');
129
- expect(mockConfig.setEphemeralSetting).toHaveBeenNthCalledWith(2, 'streaming', 'enabled');
130
- expect(enableResult).toEqual({
101
+ it('clears ephemeral settings via unset', async () => {
102
+ const result = await setCommand.action(context, 'unset base-url');
103
+ expect(mockRuntime.setEphemeralSetting).toHaveBeenCalledWith('base-url', undefined);
104
+ expect(result).toEqual({
131
105
  type: 'message',
132
106
  messageType: 'info',
133
- content: 'Ephemeral setting \'streaming\' set to "enabled" (session only, use /profile save to persist)',
107
+ content: "Ephemeral setting 'base-url' cleared",
134
108
  });
135
109
  });
136
- it('should set authOnly flag via /set', async () => {
137
- const result = await setCommand.action(context, 'authOnly true');
138
- expect(mockConfig.setEphemeralSetting).toHaveBeenCalledWith('authOnly', true);
110
+ it('clears model parameters via unset modelparam', async () => {
111
+ const result = await setCommand.action(context, 'unset modelparam temperature');
112
+ expect(mockRuntime.clearActiveModelParam).toHaveBeenCalledWith('temperature');
139
113
  expect(result).toEqual({
140
114
  type: 'message',
141
115
  messageType: 'info',
142
- content: "Ephemeral setting 'authOnly' set to true (session only, use /profile save to persist)",
116
+ content: "Model parameter 'temperature' cleared",
143
117
  });
144
118
  });
145
- describe('modelparam behavioral tests', () => {
146
- it('should call provider.setModelParams with correct parameters', async () => {
147
- const modelParamCommand = setCommand.subCommands[0];
148
- const result = await modelParamCommand.action(context, 'temperature 0.7');
149
- // Verify the calls
150
- expect(mockConfig.getProviderManager).toHaveBeenCalled();
151
- expect(mockProviderManager.getActiveProvider).toHaveBeenCalled();
152
- expect(mockProvider.setModelParams).toHaveBeenCalledWith({
153
- temperature: 0.7,
154
- });
155
- // Verify success message
156
- expect(result).toEqual({
157
- type: 'message',
158
- messageType: 'info',
159
- content: "Model parameter 'temperature' set to 0.7 (use /profile save to persist)",
160
- });
161
- });
162
- it('should show warning if provider does not support setModelParams', async () => {
163
- // Create a provider without setModelParams method
164
- const providerWithoutModelParams = {
165
- name: 'basic-provider',
166
- getModels: vi.fn().mockResolvedValue([]),
167
- generateChatCompletion: vi.fn(),
168
- getServerTools: vi.fn().mockReturnValue([]),
169
- invokeServerTool: vi.fn().mockResolvedValue(undefined),
170
- // No setModelParams method
171
- };
172
- mockProviderManager.getActiveProvider.mockReturnValue(providerWithoutModelParams);
173
- const modelParamCommand = setCommand.subCommands[0];
174
- const result = await modelParamCommand.action(context, 'temperature 0.7');
175
- expect(result).toEqual({
176
- type: 'message',
177
- messageType: 'error',
178
- content: "Provider 'basic-provider' does not support model parameters",
179
- });
180
- });
181
- it('should parse numeric values correctly for temperature', async () => {
182
- const modelParamCommand = setCommand.subCommands[0];
183
- await modelParamCommand.action(context, 'temperature 0.95');
184
- // Verify it was called with a number, not a string
185
- expect(mockProvider.setModelParams).toHaveBeenCalledWith({
186
- temperature: 0.95,
187
- });
188
- expect(mockProvider.setModelParams).not.toHaveBeenCalledWith({
189
- temperature: '0.95',
190
- });
191
- });
192
- it('should parse integer values correctly for max_tokens', async () => {
193
- const modelParamCommand = setCommand.subCommands[0];
194
- await modelParamCommand.action(context, 'max_tokens 4096');
195
- // Verify it was called with a number
196
- expect(mockProvider.setModelParams).toHaveBeenCalledWith({
197
- max_tokens: 4096,
198
- });
199
- expect(typeof mockProvider.setModelParams.mock.calls[0][0].max_tokens).toBe('number');
200
- });
201
- it('should handle multiple modelparams being set sequentially', async () => {
202
- const modelParamCommand = setCommand.subCommands[0];
203
- // Set temperature first
204
- await modelParamCommand.action(context, 'temperature 0.7');
205
- expect(mockProvider.setModelParams).toHaveBeenCalledWith({
206
- temperature: 0.7,
207
- });
208
- // Set max_tokens second
209
- await modelParamCommand.action(context, 'max_tokens 2048');
210
- expect(mockProvider.setModelParams).toHaveBeenCalledWith({
211
- max_tokens: 2048,
212
- });
213
- // Verify both calls were made independently
214
- expect(mockProvider.setModelParams).toHaveBeenCalledTimes(2);
215
- });
216
- it('should handle string values without parsing', async () => {
217
- const modelParamCommand = setCommand.subCommands[0];
218
- await modelParamCommand.action(context, 'model gpt-4-turbo');
219
- // Verify it was called with a string
220
- expect(mockProvider.setModelParams).toHaveBeenCalledWith({
221
- model: 'gpt-4-turbo',
222
- });
223
- expect(typeof mockProvider.setModelParams.mock.calls[0][0].model).toBe('string');
224
- });
225
- it('should handle JSON values for complex parameters', async () => {
226
- const modelParamCommand = setCommand.subCommands[0];
227
- await modelParamCommand.action(context, 'response_format {"type":"json_object"}');
228
- expect(mockProvider.setModelParams).toHaveBeenCalledWith({
229
- response_format: { type: 'json_object' },
230
- });
231
- });
232
- });
233
- describe('ephemeral settings behavioral tests', () => {
234
- it('should store context-limit as ephemeral setting', async () => {
235
- const result = await setCommand.action(context, 'context-limit 32000');
236
- expect(result).toEqual({
237
- type: 'message',
238
- messageType: 'info',
239
- content: "Ephemeral setting 'context-limit' set to 32000 (session only, use /profile save to persist)",
240
- });
241
- });
242
- it('should store compression-threshold as ephemeral setting', async () => {
243
- // Valid value
244
- const result = await setCommand.action(context, 'compression-threshold 0.8');
245
- expect(result).toEqual({
246
- type: 'message',
247
- messageType: 'info',
248
- content: "Ephemeral setting 'compression-threshold' set to 0.8 (session only, use /profile save to persist)",
249
- });
250
- // Note: Validation of compression-threshold range should be done when the value is used,
251
- // not when it's set, as we're just storing ephemeral settings for now
252
- });
253
- it('should store auth-key as ephemeral setting', async () => {
254
- const result = await setCommand.action(context, 'auth-key sk-1234567890');
255
- expect(result).toEqual({
256
- type: 'message',
257
- messageType: 'error',
258
- content: 'Invalid setting key: auth-key. Valid keys are: context-limit, compression-threshold, base-url, tool-format, api-version, custom-headers, stream-options, streaming, shell-replacement, socket-timeout, socket-keepalive, socket-nodelay, tool-output-max-items, tool-output-max-tokens, tool-output-truncate-mode, tool-output-item-size-limit, max-prompt-tokens, emojifilter, retries, retrywait, maxTurnsPerPrompt, authOnly',
259
- });
260
- });
261
- it('should store auth-keyfile path as ephemeral setting', async () => {
262
- const result = await setCommand.action(context, 'auth-keyfile ~/.keys/api-key');
263
- expect(result).toEqual({
264
- type: 'message',
265
- messageType: 'error',
266
- content: 'Invalid setting key: auth-keyfile. Valid keys are: context-limit, compression-threshold, base-url, tool-format, api-version, custom-headers, stream-options, streaming, shell-replacement, socket-timeout, socket-keepalive, socket-nodelay, tool-output-max-items, tool-output-max-tokens, tool-output-truncate-mode, tool-output-item-size-limit, max-prompt-tokens, emojifilter, retries, retrywait, maxTurnsPerPrompt, authOnly',
267
- });
268
- });
269
- it('should store base-url as ephemeral setting', async () => {
270
- const result = await setCommand.action(context, 'base-url http://localhost:8080/v1');
271
- expect(result).toEqual({
272
- type: 'message',
273
- messageType: 'info',
274
- content: 'Ephemeral setting \'base-url\' set to "http://localhost:8080/v1" (session only, use /profile save to persist)',
275
- });
276
- });
277
- it('should store custom-headers as JSON', async () => {
278
- const result = await setCommand.action(context, 'custom-headers {"Authorization":"Bearer token","X-Custom":"value"}');
279
- expect(result).toEqual({
280
- type: 'message',
281
- messageType: 'info',
282
- content: 'Ephemeral setting \'custom-headers\' set to {"Authorization":"Bearer token","X-Custom":"value"} (session only, use /profile save to persist)',
283
- });
284
- });
285
- it('should store tool-output-max-items as ephemeral setting', async () => {
286
- const result = await setCommand.action(context, 'tool-output-max-items 100');
287
- expect(mockConfig.setEphemeralSetting).toHaveBeenCalledWith('tool-output-max-items', 100);
288
- expect(result).toEqual({
289
- type: 'message',
290
- messageType: 'info',
291
- content: "Ephemeral setting 'tool-output-max-items' set to 100 (session only, use /profile save to persist)",
292
- });
293
- });
294
- it('should store tool-output-max-tokens as ephemeral setting', async () => {
295
- const result = await setCommand.action(context, 'tool-output-max-tokens 75000');
296
- expect(mockConfig.setEphemeralSetting).toHaveBeenCalledWith('tool-output-max-tokens', 75000);
297
- expect(result).toEqual({
298
- type: 'message',
299
- messageType: 'info',
300
- content: "Ephemeral setting 'tool-output-max-tokens' set to 75000 (session only, use /profile save to persist)",
301
- });
302
- });
303
- it('should store tool-output-truncate-mode as ephemeral setting', async () => {
304
- const result = await setCommand.action(context, 'tool-output-truncate-mode truncate');
305
- expect(mockConfig.setEphemeralSetting).toHaveBeenCalledWith('tool-output-truncate-mode', 'truncate');
306
- expect(result).toEqual({
307
- type: 'message',
308
- messageType: 'info',
309
- content: 'Ephemeral setting \'tool-output-truncate-mode\' set to "truncate" (session only, use /profile save to persist)',
310
- });
311
- });
312
- it('should validate tool-output-truncate-mode values', async () => {
313
- const result = await setCommand.action(context, 'tool-output-truncate-mode invalid-mode');
314
- expect(result).toEqual({
315
- type: 'message',
316
- messageType: 'error',
317
- content: 'tool-output-truncate-mode must be one of: warn, truncate, sample',
318
- });
319
- });
320
- it('should store tool-output-item-size-limit as ephemeral setting', async () => {
321
- const result = await setCommand.action(context, 'tool-output-item-size-limit 1048576');
322
- expect(mockConfig.setEphemeralSetting).toHaveBeenCalledWith('tool-output-item-size-limit', 1048576);
323
- expect(result).toEqual({
324
- type: 'message',
325
- messageType: 'info',
326
- content: "Ephemeral setting 'tool-output-item-size-limit' set to 1048576 (session only, use /profile save to persist)",
327
- });
328
- });
329
- it('should store max-prompt-tokens as ephemeral setting', async () => {
330
- const result = await setCommand.action(context, 'max-prompt-tokens 150000');
331
- expect(mockConfig.setEphemeralSetting).toHaveBeenCalledWith('max-prompt-tokens', 150000);
332
- expect(result).toEqual({
333
- type: 'message',
334
- messageType: 'info',
335
- content: "Ephemeral setting 'max-prompt-tokens' set to 150000 (session only, use /profile save to persist)",
336
- });
337
- });
338
- it('should store stream-options as ephemeral setting', async () => {
339
- const result = await setCommand.action(context, 'stream-options {"include_usage":true}');
340
- expect(mockConfig.setEphemeralSetting).toHaveBeenCalledWith('stream-options', { include_usage: true });
341
- expect(result).toEqual({
342
- type: 'message',
343
- messageType: 'info',
344
- content: 'Ephemeral setting \'stream-options\' set to {"include_usage":true} (session only, use /profile save to persist)',
345
- });
346
- });
347
- it('should store stream-options as null when set to null', async () => {
348
- const result = await setCommand.action(context, 'stream-options null');
349
- expect(mockConfig.setEphemeralSetting).toHaveBeenCalledWith('stream-options', null);
350
- expect(result).toEqual({
351
- type: 'message',
352
- messageType: 'info',
353
- content: "Ephemeral setting 'stream-options' set to null (session only, use /profile save to persist)",
354
- });
355
- });
356
- it('should validate numeric tool-output settings', async () => {
357
- // Test non-numeric value
358
- const result = await setCommand.action(context, 'tool-output-max-items not-a-number');
359
- expect(result).toEqual({
360
- type: 'message',
361
- messageType: 'error',
362
- content: 'tool-output-max-items must be a positive integer',
363
- });
364
- // Test negative value
365
- const result2 = await setCommand.action(context, 'tool-output-max-tokens -100');
366
- expect(result2).toEqual({
367
- type: 'message',
368
- messageType: 'error',
369
- content: 'tool-output-max-tokens must be a positive integer',
370
- });
371
- // Test non-integer value
372
- const result3 = await setCommand.action(context, 'max-prompt-tokens 100.5');
373
- expect(result3).toEqual({
374
- type: 'message',
375
- messageType: 'error',
376
- content: 'max-prompt-tokens must be a positive integer',
377
- });
119
+ it('requires model parameter name when clearing modelparam', async () => {
120
+ const result = await setCommand.action(context, 'unset modelparam');
121
+ expect(result).toEqual({
122
+ type: 'message',
123
+ messageType: 'error',
124
+ content: 'Usage: /set unset modelparam <key>\nExample: /set unset modelparam temperature',
378
125
  });
126
+ expect(mockRuntime.clearActiveModelParam).not.toHaveBeenCalled();
379
127
  });
380
- describe('error handling behavioral tests', () => {
381
- it('should handle invalid JSON gracefully', async () => {
382
- // When value looks like JSON but isn't valid, it's treated as a string
383
- const modelParamCommand = setCommand.subCommands[0];
384
- const result = await modelParamCommand.action(context, 'response_format {invalid json}');
385
- expect(mockProvider.setModelParams).toHaveBeenCalledWith({
386
- response_format: '{invalid json}',
387
- });
388
- expect(result).toEqual({
389
- type: 'message',
390
- messageType: 'info',
391
- content: 'Model parameter \'response_format\' set to "{invalid json}" (use /profile save to persist)',
392
- });
128
+ it('handles nested custom header removal when header exists', async () => {
129
+ mockRuntime.getEphemeralSettings.mockReturnValueOnce({
130
+ 'custom-headers': {
131
+ Authorization: 'Bearer token',
132
+ 'X-Test': 'value',
133
+ },
393
134
  });
394
- it('should handle provider errors gracefully', async () => {
395
- mockProvider.setModelParams = vi.fn().mockImplementation(() => {
396
- throw new Error('Provider error');
397
- });
398
- const modelParamCommand = setCommand.subCommands[0];
399
- const result = await modelParamCommand.action(context, 'temperature 0.7');
400
- expect(result).toEqual({
401
- type: 'message',
402
- messageType: 'error',
403
- content: 'Failed to set model parameter: Provider error',
404
- });
135
+ const result = await setCommand.action(context, 'unset custom-headers Authorization');
136
+ expect(mockRuntime.setEphemeralSetting).toHaveBeenCalledWith('custom-headers', {
137
+ 'X-Test': 'value',
405
138
  });
406
- it('should handle missing config gracefully', async () => {
407
- context.services.config = null;
408
- const modelParamCommand = setCommand.subCommands[0];
409
- const result = await modelParamCommand.action(context, 'temperature 0.7');
410
- expect(result).toEqual({
411
- type: 'message',
412
- messageType: 'error',
413
- content: 'No configuration available',
414
- });
139
+ expect(result).toEqual({
140
+ type: 'message',
141
+ messageType: 'info',
142
+ content: "Custom header 'Authorization' cleared",
415
143
  });
416
144
  });
417
- describe('value parsing behavioral tests', () => {
418
- it('should parse boolean values correctly', async () => {
419
- const modelParamCommand = setCommand.subCommands[0];
420
- await modelParamCommand.action(context, 'stream true');
421
- expect(mockProvider.setModelParams).toHaveBeenCalledWith({
422
- stream: true,
423
- });
424
- expect(typeof mockProvider.setModelParams.mock.calls[0][0].stream).toBe('boolean');
425
- // Test false as well
426
- await modelParamCommand.action(context, 'stream false');
427
- expect(mockProvider.setModelParams).toHaveBeenCalledWith({
428
- stream: false,
429
- });
430
- });
431
- it('should handle null values', async () => {
432
- const modelParamCommand = setCommand.subCommands[0];
433
- await modelParamCommand.action(context, 'stop null');
434
- expect(mockProvider.setModelParams).toHaveBeenCalledWith({ stop: null });
435
- });
436
- it('should preserve string values that look like numbers', async () => {
437
- // Quoted values are parsed as JSON, which preserves them as strings
438
- const modelParamCommand = setCommand.subCommands[0];
439
- await modelParamCommand.action(context, 'api_version "2023-05-15"');
440
- expect(mockProvider.setModelParams).toHaveBeenCalledWith({
441
- api_version: '2023-05-15',
442
- });
443
- expect(typeof mockProvider.setModelParams.mock.calls[0][0].api_version).toBe('string');
145
+ it('returns informational message when nested custom header missing', async () => {
146
+ mockRuntime.getEphemeralSettings.mockReturnValueOnce({
147
+ 'custom-headers': {},
444
148
  });
445
- it('should handle array values', async () => {
446
- const modelParamCommand = setCommand.subCommands[0];
447
- await modelParamCommand.action(context, 'stop ["\\n","END"]');
448
- expect(mockProvider.setModelParams).toHaveBeenCalledWith({
449
- stop: ['\n', 'END'],
450
- });
149
+ const result = await setCommand.action(context, 'unset custom-headers Authorization');
150
+ expect(mockRuntime.setEphemeralSetting).not.toHaveBeenCalled();
151
+ expect(result).toEqual({
152
+ type: 'message',
153
+ messageType: 'info',
154
+ content: "No custom header named 'Authorization' found",
451
155
  });
452
156
  });
453
157
  });