@vybestack/llxprt-code 0.5.0-nightly.251120.027a6733 → 0.5.0

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 (65) hide show
  1. package/dist/package.json +5 -5
  2. package/dist/src/commands/extensions/install.js +1 -7
  3. package/dist/src/commands/extensions/install.js.map +1 -1
  4. package/dist/src/commands/extensions/install.test.js +11 -89
  5. package/dist/src/commands/extensions/install.test.js.map +1 -1
  6. package/dist/src/config/extension.d.ts +4 -5
  7. package/dist/src/config/extension.js +15 -25
  8. package/dist/src/config/extension.js.map +1 -1
  9. package/dist/src/config/extensions/variableSchema.d.ts +0 -8
  10. package/dist/src/config/extensions/variableSchema.js +0 -4
  11. package/dist/src/config/extensions/variableSchema.js.map +1 -1
  12. package/dist/src/config/settings.d.ts +3 -2
  13. package/dist/src/config/settings.js +7 -3
  14. package/dist/src/config/settings.js.map +1 -1
  15. package/dist/src/config/trustedFolders.d.ts +3 -1
  16. package/dist/src/config/trustedFolders.js +5 -8
  17. package/dist/src/config/trustedFolders.js.map +1 -1
  18. package/dist/src/config/trustedFolders.test.js +8 -30
  19. package/dist/src/config/trustedFolders.test.js.map +1 -1
  20. package/dist/src/gemini.js +4 -20
  21. package/dist/src/gemini.js.map +1 -1
  22. package/dist/src/generated/git-commit.d.ts +1 -1
  23. package/dist/src/generated/git-commit.js +1 -1
  24. package/dist/src/ui/App.js +0 -2
  25. package/dist/src/ui/App.js.map +1 -1
  26. package/dist/src/ui/commands/mcpCommand.js +1 -2
  27. package/dist/src/ui/commands/mcpCommand.js.map +1 -1
  28. package/dist/src/ui/components/LoadProfileDialog.js +9 -13
  29. package/dist/src/ui/components/LoadProfileDialog.js.map +1 -1
  30. package/dist/src/ui/components/LoggingDialog.js +10 -14
  31. package/dist/src/ui/components/LoggingDialog.js.map +1 -1
  32. package/dist/src/ui/components/ProviderDialog.js +18 -23
  33. package/dist/src/ui/components/ProviderDialog.js.map +1 -1
  34. package/dist/src/ui/components/ProviderModelDialog.js +18 -24
  35. package/dist/src/ui/components/ProviderModelDialog.js.map +1 -1
  36. package/dist/src/ui/components/SettingsDialog.js +7 -5
  37. package/dist/src/ui/components/SettingsDialog.js.map +1 -1
  38. package/dist/src/ui/components/SettingsDialog.test.js +0 -50
  39. package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
  40. package/dist/src/ui/components/ToolsDialog.js +4 -5
  41. package/dist/src/ui/components/ToolsDialog.js.map +1 -1
  42. package/dist/src/ui/contexts/KeypressContext.js +1 -29
  43. package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
  44. package/dist/src/ui/contexts/KeypressContext.test.js +0 -131
  45. package/dist/src/ui/contexts/KeypressContext.test.js.map +1 -1
  46. package/dist/src/ui/hooks/useBracketedPaste.js +2 -1
  47. package/dist/src/ui/hooks/useBracketedPaste.js.map +1 -1
  48. package/dist/src/ui/hooks/useGeminiStream.js +8 -14
  49. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  50. package/dist/src/ui/hooks/useToolScheduler.test.js +20 -17
  51. package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
  52. package/dist/tsconfig.build.tsbuildinfo +1 -1
  53. package/package.json +5 -5
  54. package/dist/src/config/paths.d.ts +0 -8
  55. package/dist/src/config/paths.js +0 -11
  56. package/dist/src/config/paths.js.map +0 -1
  57. package/dist/src/ui/hooks/useStaticHistoryRefresh.d.ts +0 -13
  58. package/dist/src/ui/hooks/useStaticHistoryRefresh.js +0 -35
  59. package/dist/src/ui/hooks/useStaticHistoryRefresh.js.map +0 -1
  60. package/dist/src/ui/hooks/useStaticHistoryRefresh.test.d.ts +0 -6
  61. package/dist/src/ui/hooks/useStaticHistoryRefresh.test.js +0 -42
  62. package/dist/src/ui/hooks/useStaticHistoryRefresh.test.js.map +0 -1
  63. package/dist/src/ui/utils/terminalSequences.d.ts +0 -22
  64. package/dist/src/ui/utils/terminalSequences.js +0 -23
  65. package/dist/src/ui/utils/terminalSequences.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vybestack/llxprt-code",
3
- "version": "0.5.0-nightly.251120.027a6733",
3
+ "version": "0.5.0",
4
4
  "description": "LLxprt Code",
5
5
  "repository": {
6
6
  "type": "git",
@@ -33,7 +33,7 @@
33
33
  "dist"
34
34
  ],
35
35
  "config": {
36
- "sandboxImageUri": "ghcr.io/vybestack/llxprt-code/sandbox:0.5.0-nightly.251120.027a6733"
36
+ "sandboxImageUri": "ghcr.io/vybestack/llxprt-code/sandbox:0.5.0"
37
37
  },
38
38
  "dependencies": {
39
39
  "@anthropic-ai/sdk": "^0.55.1",
@@ -42,17 +42,17 @@
42
42
  "@iarna/toml": "^2.2.5",
43
43
  "@modelcontextprotocol/sdk": "^1.15.1",
44
44
  "@types/update-notifier": "^6.0.8",
45
- "@vybestack/llxprt-code-core": "0.5.0-nightly.251120.027a6733",
45
+ "@vybestack/llxprt-code-core": "0.5.0",
46
46
  "chalk": "^5.3.0",
47
47
  "cli-spinners": "2.9.2",
48
48
  "command-exists": "^1.2.9",
49
49
  "diff": "^7.0.0",
50
50
  "dotenv": "^17.1.0",
51
51
  "fzf": "^0.5.2",
52
- "glob": "^12.0.0",
52
+ "glob": "^10.4.1",
53
53
  "gradient-string": "2.0.2",
54
54
  "highlight.js": "^11.11.1",
55
- "ink": "^6.5.1",
55
+ "ink": "^6.3.1",
56
56
  "ink-gradient": "^3.0.0",
57
57
  "ink-select-input": "^6.2.0",
58
58
  "ink-spinner": "^5.0.0",
@@ -1,8 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Vybestack LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- export declare const SETTINGS_DIRECTORY_NAME = ".llxprt";
7
- export declare const USER_SETTINGS_PATH: string;
8
- export declare const USER_SETTINGS_DIR: string;
@@ -1,11 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Vybestack LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import * as path from 'node:path';
7
- import { Storage } from '@vybestack/llxprt-code-core';
8
- export const SETTINGS_DIRECTORY_NAME = '.llxprt';
9
- export const USER_SETTINGS_PATH = Storage.getGlobalSettingsPath();
10
- export const USER_SETTINGS_DIR = path.dirname(USER_SETTINGS_PATH);
11
- //# sourceMappingURL=paths.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../../src/config/paths.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAEtD,MAAM,CAAC,MAAM,uBAAuB,GAAG,SAAS,CAAC;AACjD,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;AAClE,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC"}
@@ -1,13 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Vybestack LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import type { HistoryItem } from '../types.js';
7
- /**
8
- * Ensures the Ink <Static> history output stays in sync with the in-memory
9
- * history when earlier items are trimmed (due to max items/bytes). Ink's
10
- * Static component only appends new rows, so if items are removed we must
11
- * force a full refresh so future rows render again.
12
- */
13
- export declare function useStaticHistoryRefresh(history: HistoryItem[], refreshStatic: () => void): void;
@@ -1,35 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Vybestack LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { useEffect, useRef } from 'react';
7
- /**
8
- * Ensures the Ink <Static> history output stays in sync with the in-memory
9
- * history when earlier items are trimmed (due to max items/bytes). Ink's
10
- * Static component only appends new rows, so if items are removed we must
11
- * force a full refresh so future rows render again.
12
- */
13
- export function useStaticHistoryRefresh(history, refreshStatic) {
14
- const previousStateRef = useRef({
15
- firstId: null,
16
- length: 0,
17
- });
18
- useEffect(() => {
19
- const currentFirstId = history.length > 0 ? history[0].id : null;
20
- const previousState = previousStateRef.current;
21
- const historyShrank = history.length < previousState.length ||
22
- (previousState.firstId !== null && currentFirstId === null) ||
23
- (previousState.firstId !== null &&
24
- currentFirstId !== null &&
25
- currentFirstId > previousState.firstId);
26
- if (historyShrank) {
27
- refreshStatic();
28
- }
29
- previousStateRef.current = {
30
- firstId: currentFirstId,
31
- length: history.length,
32
- };
33
- }, [history, refreshStatic]);
34
- }
35
- //# sourceMappingURL=useStaticHistoryRefresh.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useStaticHistoryRefresh.js","sourceRoot":"","sources":["../../../../src/ui/hooks/useStaticHistoryRefresh.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAG1C;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,OAAsB,EACtB,aAAyB;IAEzB,MAAM,gBAAgB,GAAG,MAAM,CAG5B;QACD,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,CAAC;KACV,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACjE,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC;QAE/C,MAAM,aAAa,GACjB,OAAO,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM;YACrC,CAAC,aAAa,CAAC,OAAO,KAAK,IAAI,IAAI,cAAc,KAAK,IAAI,CAAC;YAC3D,CAAC,aAAa,CAAC,OAAO,KAAK,IAAI;gBAC7B,cAAc,KAAK,IAAI;gBACvB,cAAc,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QAE5C,IAAI,aAAa,EAAE,CAAC;YAClB,aAAa,EAAE,CAAC;QAClB,CAAC;QAED,gBAAgB,CAAC,OAAO,GAAG;YACzB,OAAO,EAAE,cAAc;YACvB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;AAC/B,CAAC"}
@@ -1,6 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Vybestack LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- export {};
@@ -1,42 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Vybestack LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { describe, it, expect, vi } from 'vitest';
7
- import { renderHook, waitFor } from '@testing-library/react';
8
- import { useStaticHistoryRefresh } from './useStaticHistoryRefresh.js';
9
- const makeHistory = (...ids) => ids.map((id, index) => ({
10
- id,
11
- type: index % 2 === 0 ? 'user' : 'gemini',
12
- text: `item-${id}`,
13
- }));
14
- describe('useStaticHistoryRefresh', () => {
15
- it('does not refresh when history only grows', async () => {
16
- const refreshStatic = vi.fn();
17
- const { rerender } = renderHook(({ history }) => useStaticHistoryRefresh(history, refreshStatic), { initialProps: { history: [] } });
18
- rerender({ history: makeHistory(1) });
19
- rerender({ history: makeHistory(1, 2, 3) });
20
- await waitFor(() => {
21
- expect(refreshStatic).toHaveBeenCalledTimes(0);
22
- });
23
- });
24
- it('refreshes when history length decreases', async () => {
25
- const refreshStatic = vi.fn();
26
- const { rerender } = renderHook(({ history }) => useStaticHistoryRefresh(history, refreshStatic), { initialProps: { history: makeHistory(1, 2, 3, 4) } });
27
- rerender({ history: makeHistory(3, 4) });
28
- await waitFor(() => {
29
- expect(refreshStatic).toHaveBeenCalledTimes(1);
30
- });
31
- });
32
- it('refreshes when the oldest id changes while length stays constant', async () => {
33
- const refreshStatic = vi.fn();
34
- const { rerender } = renderHook(({ history }) => useStaticHistoryRefresh(history, refreshStatic), { initialProps: { history: makeHistory(10, 11, 12, 13) } });
35
- // Simulate trimming the first item while appending a new one.
36
- rerender({ history: makeHistory(11, 12, 13, 14) });
37
- await waitFor(() => {
38
- expect(refreshStatic).toHaveBeenCalledTimes(1);
39
- });
40
- });
41
- });
42
- //# sourceMappingURL=useStaticHistoryRefresh.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useStaticHistoryRefresh.test.js","sourceRoot":"","sources":["../../../../src/ui/hooks/useStaticHistoryRefresh.test.ts"],"names":[],"mappings":"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"}
@@ -1,22 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Vybestack LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- /**
7
- * Terminal control sequences for managing terminal modes and cursor state.
8
- * These sequences are used to enable/disable various terminal features and
9
- * need to be re-sent after terminal resume (e.g., tmux reattach).
10
- */
11
- /** Enable bracketed paste mode - terminal wraps pasted text with special sequences */
12
- export declare const ENABLE_BRACKETED_PASTE = "\u001B[?2004h";
13
- /** Disable bracketed paste mode */
14
- export declare const DISABLE_BRACKETED_PASTE = "\u001B[?2004l";
15
- /** Enable focus tracking - terminal sends sequences when window gains/loses focus */
16
- export declare const ENABLE_FOCUS_TRACKING = "\u001B[?1004h";
17
- /** Disable focus tracking */
18
- export declare const DISABLE_FOCUS_TRACKING = "\u001B[?1004l";
19
- /** Show cursor */
20
- export declare const SHOW_CURSOR = "\u001B[?25h";
21
- /** Hide cursor */
22
- export declare const HIDE_CURSOR = "\u001B[?25l";
@@ -1,23 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Vybestack LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- /**
7
- * Terminal control sequences for managing terminal modes and cursor state.
8
- * These sequences are used to enable/disable various terminal features and
9
- * need to be re-sent after terminal resume (e.g., tmux reattach).
10
- */
11
- /** Enable bracketed paste mode - terminal wraps pasted text with special sequences */
12
- export const ENABLE_BRACKETED_PASTE = '\x1b[?2004h';
13
- /** Disable bracketed paste mode */
14
- export const DISABLE_BRACKETED_PASTE = '\x1b[?2004l';
15
- /** Enable focus tracking - terminal sends sequences when window gains/loses focus */
16
- export const ENABLE_FOCUS_TRACKING = '\x1b[?1004h';
17
- /** Disable focus tracking */
18
- export const DISABLE_FOCUS_TRACKING = '\x1b[?1004l';
19
- /** Show cursor */
20
- export const SHOW_CURSOR = '\x1b[?25h';
21
- /** Hide cursor */
22
- export const HIDE_CURSOR = '\x1b[?25l';
23
- //# sourceMappingURL=terminalSequences.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"terminalSequences.js","sourceRoot":"","sources":["../../../../src/ui/utils/terminalSequences.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;GAIG;AAEH,sFAAsF;AACtF,MAAM,CAAC,MAAM,sBAAsB,GAAG,aAAa,CAAC;AAEpD,mCAAmC;AACnC,MAAM,CAAC,MAAM,uBAAuB,GAAG,aAAa,CAAC;AAErD,qFAAqF;AACrF,MAAM,CAAC,MAAM,qBAAqB,GAAG,aAAa,CAAC;AAEnD,6BAA6B;AAC7B,MAAM,CAAC,MAAM,sBAAsB,GAAG,aAAa,CAAC;AAEpD,kBAAkB;AAClB,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAC;AAEvC,kBAAkB;AAClB,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAC"}