@vybestack/llxprt-code 0.1.16 → 0.1.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/package.json +3 -3
- package/dist/src/config/config.d.ts +0 -1
- package/dist/src/config/config.js +1 -3
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +1 -1
- package/dist/src/generated/git-commit.js +2 -2
- package/dist/src/generated/git-commit.js.map +1 -1
- package/dist/src/ui/App.js +14 -2
- package/dist/src/ui/App.js.map +1 -1
- package/dist/src/ui/commands/ideCommand.js +26 -11
- package/dist/src/ui/commands/ideCommand.js.map +1 -1
- package/dist/src/ui/commands/mcpCommand.js +15 -20
- package/dist/src/ui/commands/mcpCommand.js.map +1 -1
- package/dist/src/ui/commands/modelCommand.js +0 -2
- package/dist/src/ui/commands/modelCommand.js.map +1 -1
- package/dist/src/ui/commands/profileCommand.js +11 -5
- package/dist/src/ui/commands/profileCommand.js.map +1 -1
- package/dist/src/ui/commands/setCommand.js +45 -0
- package/dist/src/ui/commands/setCommand.js.map +1 -1
- package/dist/src/ui/commands/toolsCommand.js +41 -11
- package/dist/src/ui/commands/toolsCommand.js.map +1 -1
- package/dist/src/ui/commands/types.d.ts +1 -1
- package/dist/src/ui/commands/types.js.map +1 -1
- package/dist/src/ui/components/ToolsDialog.d.ts +16 -0
- package/dist/src/ui/components/ToolsDialog.js +48 -0
- package/dist/src/ui/components/ToolsDialog.js.map +1 -0
- package/dist/src/ui/hooks/atCommandProcessor.js +11 -4
- package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/index.d.ts +1 -0
- package/dist/src/ui/hooks/index.js +1 -0
- package/dist/src/ui/hooks/index.js.map +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.d.ts +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.js +10 -1
- package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/useGeminiStream.js +143 -69
- package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
- package/dist/src/ui/hooks/useSlashCompletion.js +10 -8
- package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useToolsDialog.d.ts +27 -0
- package/dist/src/ui/hooks/useToolsDialog.js +97 -0
- package/dist/src/ui/hooks/useToolsDialog.js.map +1 -0
- package/dist/src/ui/reducers/appReducer.d.ts +3 -2
- package/dist/src/ui/reducers/appReducer.js +1 -0
- package/dist/src/ui/reducers/appReducer.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
@@ -0,0 +1,97 @@
|
|
1
|
+
/**
|
2
|
+
* @license
|
3
|
+
* Copyright 2025 Vybestack LLC
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
5
|
+
*/
|
6
|
+
import { useCallback, useState } from 'react';
|
7
|
+
import { MessageType } from '../types.js';
|
8
|
+
import { useAppDispatch } from '../contexts/AppDispatchContext.js';
|
9
|
+
export const useToolsDialog = ({ addMessage, appState, config, }) => {
|
10
|
+
const appDispatch = useAppDispatch();
|
11
|
+
const showDialog = appState.openDialogs.tools;
|
12
|
+
const [action, setAction] = useState('disable');
|
13
|
+
const [availableTools, setAvailableTools] = useState([]);
|
14
|
+
const [disabledTools, setDisabledTools] = useState([]);
|
15
|
+
const openDialog = useCallback(async (dialogAction) => {
|
16
|
+
try {
|
17
|
+
const toolRegistry = await config.getToolRegistry();
|
18
|
+
if (!toolRegistry) {
|
19
|
+
addMessage({
|
20
|
+
type: MessageType.ERROR,
|
21
|
+
content: 'Could not retrieve tool registry.',
|
22
|
+
timestamp: new Date(),
|
23
|
+
});
|
24
|
+
return;
|
25
|
+
}
|
26
|
+
// Get current disabled tools from ephemeral settings
|
27
|
+
const ephemeralSettings = config.getEphemeralSettings() || {};
|
28
|
+
const currentDisabledTools = ephemeralSettings['disabled-tools'] || [];
|
29
|
+
// Get all non-MCP tools
|
30
|
+
const allTools = toolRegistry.getAllTools();
|
31
|
+
const geminiTools = allTools.filter((tool) => !('serverName' in tool));
|
32
|
+
// Filter tools based on the action
|
33
|
+
let tools;
|
34
|
+
if (dialogAction === 'disable') {
|
35
|
+
// Show only enabled tools for disabling
|
36
|
+
tools = geminiTools.filter((tool) => !currentDisabledTools.includes(tool.name));
|
37
|
+
}
|
38
|
+
else {
|
39
|
+
// Show only disabled tools for enabling
|
40
|
+
tools = geminiTools.filter((tool) => currentDisabledTools.includes(tool.name));
|
41
|
+
}
|
42
|
+
if (tools.length === 0) {
|
43
|
+
addMessage({
|
44
|
+
type: MessageType.INFO,
|
45
|
+
content: dialogAction === 'disable'
|
46
|
+
? 'All tools are already disabled.'
|
47
|
+
: 'No tools are currently disabled.',
|
48
|
+
timestamp: new Date(),
|
49
|
+
});
|
50
|
+
return;
|
51
|
+
}
|
52
|
+
setAction(dialogAction);
|
53
|
+
setAvailableTools(tools);
|
54
|
+
setDisabledTools(currentDisabledTools);
|
55
|
+
appDispatch({ type: 'OPEN_DIALOG', payload: 'tools' });
|
56
|
+
}
|
57
|
+
catch (e) {
|
58
|
+
addMessage({
|
59
|
+
type: MessageType.ERROR,
|
60
|
+
content: `Failed to load tools: ${e instanceof Error ? e.message : String(e)}`,
|
61
|
+
timestamp: new Date(),
|
62
|
+
});
|
63
|
+
}
|
64
|
+
}, [addMessage, appDispatch, config]);
|
65
|
+
const closeDialog = useCallback(() => appDispatch({ type: 'CLOSE_DIALOG', payload: 'tools' }), [appDispatch]);
|
66
|
+
const handleSelect = useCallback((toolName) => {
|
67
|
+
const selectedTool = availableTools.find((t) => t.name === toolName);
|
68
|
+
if (!selectedTool)
|
69
|
+
return;
|
70
|
+
// Update disabled tools list
|
71
|
+
let updatedDisabledTools;
|
72
|
+
if (action === 'disable') {
|
73
|
+
updatedDisabledTools = [...disabledTools, toolName];
|
74
|
+
}
|
75
|
+
else {
|
76
|
+
updatedDisabledTools = disabledTools.filter((name) => name !== toolName);
|
77
|
+
}
|
78
|
+
// Update ephemeral settings
|
79
|
+
config.setEphemeralSetting('disabled-tools', updatedDisabledTools);
|
80
|
+
addMessage({
|
81
|
+
type: MessageType.INFO,
|
82
|
+
content: `Tool '${selectedTool.displayName}' has been ${action}d.`,
|
83
|
+
timestamp: new Date(),
|
84
|
+
});
|
85
|
+
appDispatch({ type: 'CLOSE_DIALOG', payload: 'tools' });
|
86
|
+
}, [addMessage, appDispatch, config, action, availableTools, disabledTools]);
|
87
|
+
return {
|
88
|
+
showDialog,
|
89
|
+
openDialog,
|
90
|
+
closeDialog,
|
91
|
+
action,
|
92
|
+
availableTools,
|
93
|
+
disabledTools,
|
94
|
+
handleSelect,
|
95
|
+
};
|
96
|
+
};
|
97
|
+
//# sourceMappingURL=useToolsDialog.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useToolsDialog.js","sourceRoot":"","sources":["../../../../src/ui/hooks/useToolsDialog.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAanE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC7B,UAAU,EACV,QAAQ,EACR,MAAM,GACe,EAAE,EAAE;IACzB,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC;IAC9C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAuB,SAAS,CAAC,CAAC;IACtE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAC;IACjE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAW,EAAE,CAAC,CAAC;IAEjE,MAAM,UAAU,GAAG,WAAW,CAC5B,KAAK,EAAE,YAAkC,EAAE,EAAE;QAC3C,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,eAAe,EAAE,CAAC;YACpD,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,UAAU,CAAC;oBACT,IAAI,EAAE,WAAW,CAAC,KAAK;oBACvB,OAAO,EAAE,mCAAmC;oBAC5C,SAAS,EAAE,IAAI,IAAI,EAAE;iBACtB,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,qDAAqD;YACrD,MAAM,iBAAiB,GAAG,MAAM,CAAC,oBAAoB,EAAE,IAAI,EAAE,CAAC;YAC9D,MAAM,oBAAoB,GACvB,iBAAiB,CAAC,gBAAgB,CAAc,IAAI,EAAE,CAAC;YAE1D,wBAAwB;YACxB,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;YAC5C,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CACjC,CAAC,IAAU,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC,CACxC,CAAC;YAEF,mCAAmC;YACnC,IAAI,KAAa,CAAC;YAClB,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC/B,wCAAwC;gBACxC,KAAK,GAAG,WAAW,CAAC,MAAM,CACxB,CAAC,IAAU,EAAE,EAAE,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAC1D,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,wCAAwC;gBACxC,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,IAAU,EAAE,EAAE,CACxC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CACzC,CAAC;YACJ,CAAC;YAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,UAAU,CAAC;oBACT,IAAI,EAAE,WAAW,CAAC,IAAI;oBACtB,OAAO,EACL,YAAY,KAAK,SAAS;wBACxB,CAAC,CAAC,iCAAiC;wBACnC,CAAC,CAAC,kCAAkC;oBACxC,SAAS,EAAE,IAAI,IAAI,EAAE;iBACtB,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,SAAS,CAAC,YAAY,CAAC,CAAC;YACxB,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACzB,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;YACvC,WAAW,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QACzD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,UAAU,CAAC;gBACT,IAAI,EAAE,WAAW,CAAC,KAAK;gBACvB,OAAO,EAAE,yBAAyB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBAC9E,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CAAC,CAAC;QACL,CAAC;IACH,CAAC,EACD,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC,CAClC,CAAC;IAEF,MAAM,WAAW,GAAG,WAAW,CAC7B,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAC7D,CAAC,WAAW,CAAC,CACd,CAAC;IAEF,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,QAAgB,EAAE,EAAE;QACnB,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QACrE,IAAI,CAAC,YAAY;YAAE,OAAO;QAE1B,6BAA6B;QAC7B,IAAI,oBAA8B,CAAC;QACnC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,oBAAoB,GAAG,CAAC,GAAG,aAAa,EAAE,QAAQ,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,oBAAoB,GAAG,aAAa,CAAC,MAAM,CACzC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,QAAQ,CAC5B,CAAC;QACJ,CAAC;QAED,4BAA4B;QAC5B,MAAM,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,CAAC;QAEnE,UAAU,CAAC;YACT,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,OAAO,EAAE,SAAS,YAAY,CAAC,WAAW,cAAc,MAAM,IAAI;YAClE,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC,CAAC;QAEH,WAAW,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1D,CAAC,EACD,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,aAAa,CAAC,CACzE,CAAC;IAEF,OAAO;QACL,UAAU;QACV,UAAU;QACV,WAAW;QACX,MAAM;QACN,cAAc;QACd,aAAa;QACb,YAAY;KACb,CAAC;AACJ,CAAC,CAAC"}
|
@@ -12,10 +12,10 @@ export type AppAction = {
|
|
12
12
|
};
|
13
13
|
} | {
|
14
14
|
type: 'OPEN_DIALOG';
|
15
|
-
payload: 'theme' | 'auth' | 'editor' | 'providerModel' | 'provider' | 'privacy' | 'loadProfile';
|
15
|
+
payload: 'theme' | 'auth' | 'editor' | 'providerModel' | 'provider' | 'privacy' | 'loadProfile' | 'tools';
|
16
16
|
} | {
|
17
17
|
type: 'CLOSE_DIALOG';
|
18
|
-
payload: 'theme' | 'auth' | 'editor' | 'providerModel' | 'provider' | 'privacy' | 'loadProfile';
|
18
|
+
payload: 'theme' | 'auth' | 'editor' | 'providerModel' | 'provider' | 'privacy' | 'loadProfile' | 'tools';
|
19
19
|
} | {
|
20
20
|
type: 'SET_WARNING';
|
21
21
|
payload: {
|
@@ -44,6 +44,7 @@ export interface AppState {
|
|
44
44
|
provider: boolean;
|
45
45
|
privacy: boolean;
|
46
46
|
loadProfile: boolean;
|
47
|
+
tools: boolean;
|
47
48
|
};
|
48
49
|
warnings: Map<string, string>;
|
49
50
|
errors: {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"appReducer.js","sourceRoot":"","sources":["../../../../src/ui/reducers/appReducer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
1
|
+
{"version":3,"file":"appReducer.js","sourceRoot":"","sources":["../../../../src/ui/reducers/appReducer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA8DH,MAAM,CAAC,MAAM,eAAe,GAAa;IACvC,WAAW,EAAE;QACX,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,KAAK;QACb,aAAa,EAAE,KAAK;QACpB,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,KAAK;QAClB,KAAK,EAAE,KAAK;KACb;IACD,QAAQ,EAAE,IAAI,GAAG,EAAE;IACnB,MAAM,EAAE;QACN,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,IAAI;KACb;IACD,iBAAiB,EAAE,IAAI;CACxB,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,KAAe,EAAE,MAAiB;IAC3D,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,UAAU;YACb,0DAA0D;YAC1D,OAAO;gBACL,GAAG,KAAK;gBACR,iBAAiB,EAAE,MAAM,CAAC,OAAO;aAClC,CAAC;QAEJ,KAAK,aAAa;YAChB,OAAO;gBACL,GAAG,KAAK;gBACR,WAAW,EAAE;oBACX,GAAG,KAAK,CAAC,WAAW;oBACpB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI;iBACvB;aACF,CAAC;QAEJ,KAAK,cAAc;YACjB,OAAO;gBACL,GAAG,KAAK;gBACR,WAAW,EAAE;oBACX,GAAG,KAAK,CAAC,WAAW;oBACpB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK;iBACxB;aACF,CAAC;QAEJ,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC5C,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC5D,OAAO;gBACL,GAAG,KAAK;gBACR,QAAQ,EAAE,WAAW;aACtB,CAAC;QACJ,CAAC;QAED,KAAK,eAAe,CAAC,CAAC,CAAC;YACrB,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC5C,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACnC,OAAO;gBACL,GAAG,KAAK;gBACR,QAAQ,EAAE,WAAW;aACtB,CAAC;QACJ,CAAC;QAED,KAAK,iBAAiB;YACpB,OAAO;gBACL,GAAG,KAAK;gBACR,MAAM,EAAE;oBACN,GAAG,KAAK,CAAC,MAAM;oBACf,KAAK,EAAE,MAAM,CAAC,OAAO;iBACtB;aACF,CAAC;QAEJ,KAAK,gBAAgB;YACnB,OAAO;gBACL,GAAG,KAAK;gBACR,MAAM,EAAE;oBACN,GAAG,KAAK,CAAC,MAAM;oBACf,IAAI,EAAE,MAAM,CAAC,OAAO;iBACrB;aACF,CAAC;QAEJ,KAAK,kBAAkB;YACrB,OAAO;gBACL,GAAG,KAAK;gBACR,MAAM,EAAE;oBACN,GAAG,KAAK,CAAC,MAAM;oBACf,MAAM,EAAE,MAAM,CAAC,OAAO;iBACvB;aACF,CAAC;QAEJ;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC"}
|