@machina.ai/cell-cli 1.45.1-rc4 → 1.49.0-rc1

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 (91) hide show
  1. package/dist/package.json +40 -44
  2. package/dist/src/acp/acpSession.test.js +3 -0
  3. package/dist/src/acp/acpSession.test.js.map +1 -1
  4. package/dist/src/commands/extensions/examples/mcp-server/package.json +2 -2
  5. package/dist/src/config/extensions/extensionEnablement.test.js.map +1 -1
  6. package/dist/src/config/extensions/update.js +3 -2
  7. package/dist/src/config/extensions/update.js.map +1 -1
  8. package/dist/src/config/extensions/variables.js +4 -1
  9. package/dist/src/config/extensions/variables.js.map +1 -1
  10. package/dist/src/gemini.js +1 -1
  11. package/dist/src/gemini.js.map +1 -1
  12. package/dist/src/gemini.test.js +3 -2
  13. package/dist/src/gemini.test.js.map +1 -1
  14. package/dist/src/generated/git-commit.d.ts +2 -2
  15. package/dist/src/generated/git-commit.js +2 -2
  16. package/dist/src/interactiveCli.js +19 -0
  17. package/dist/src/interactiveCli.js.map +1 -1
  18. package/dist/src/services/McpPromptLoader.js +2 -4
  19. package/dist/src/services/McpPromptLoader.js.map +1 -1
  20. package/dist/src/test-utils/render.js +3 -4
  21. package/dist/src/test-utils/render.js.map +1 -1
  22. package/dist/src/ui/AppContainer.test.js +2 -2
  23. package/dist/src/ui/AppContainer.test.js.map +1 -1
  24. package/dist/src/ui/auth/AuthDialog.js +11 -9
  25. package/dist/src/ui/auth/AuthDialog.js.map +1 -1
  26. package/dist/src/ui/commands/extensionsCommand.test.js +4 -2
  27. package/dist/src/ui/commands/extensionsCommand.test.js.map +1 -1
  28. package/dist/src/ui/commands/helpCommand.js +21 -1
  29. package/dist/src/ui/commands/helpCommand.js.map +1 -1
  30. package/dist/src/ui/commands/helpCommand.test.js +60 -7
  31. package/dist/src/ui/commands/helpCommand.test.js.map +1 -1
  32. package/dist/src/ui/commands/mcpCommand.js +1 -0
  33. package/dist/src/ui/commands/mcpCommand.js.map +1 -1
  34. package/dist/src/ui/commands/restoreCommand.js +2 -0
  35. package/dist/src/ui/commands/restoreCommand.js.map +1 -1
  36. package/dist/src/ui/commands/setupGithubCommand.js +3 -4
  37. package/dist/src/ui/commands/setupGithubCommand.js.map +1 -1
  38. package/dist/src/ui/components/AgentConfigDialog.js.map +1 -1
  39. package/dist/src/ui/components/AsciiArt.d.ts +6 -6
  40. package/dist/src/ui/components/AsciiArt.js +6 -6
  41. package/dist/src/ui/components/EditorSettingsDialog.js +9 -3
  42. package/dist/src/ui/components/EditorSettingsDialog.js.map +1 -1
  43. package/dist/src/ui/components/EditorSettingsDialog.test.js +24 -0
  44. package/dist/src/ui/components/EditorSettingsDialog.test.js.map +1 -1
  45. package/dist/src/ui/components/InputPrompt.test.js +9 -3
  46. package/dist/src/ui/components/InputPrompt.test.js.map +1 -1
  47. package/dist/src/ui/constants/wittyPhrases.js +1 -0
  48. package/dist/src/ui/constants/wittyPhrases.js.map +1 -1
  49. package/dist/src/ui/hooks/atCommandProcessor.js +17 -2
  50. package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
  51. package/dist/src/ui/hooks/atCommandProcessor.test.js +1 -0
  52. package/dist/src/ui/hooks/atCommandProcessor.test.js.map +1 -1
  53. package/dist/src/ui/hooks/useBanner.js +12 -2
  54. package/dist/src/ui/hooks/useBanner.js.map +1 -1
  55. package/dist/src/ui/hooks/useBanner.test.js +61 -3
  56. package/dist/src/ui/hooks/useBanner.test.js.map +1 -1
  57. package/dist/src/ui/utils/antigravityUtils.d.ts +14 -0
  58. package/dist/src/ui/utils/antigravityUtils.js +41 -0
  59. package/dist/src/ui/utils/antigravityUtils.js.map +1 -0
  60. package/dist/src/ui/utils/antigravityUtils.test.d.ts +6 -0
  61. package/dist/src/ui/utils/antigravityUtils.test.js +54 -0
  62. package/dist/src/ui/utils/antigravityUtils.test.js.map +1 -0
  63. package/dist/src/ui/utils/terminalCapabilityManager.js +11 -1
  64. package/dist/src/ui/utils/terminalCapabilityManager.js.map +1 -1
  65. package/dist/src/ui/utils/terminalCapabilityManager.test.js +33 -0
  66. package/dist/src/ui/utils/terminalCapabilityManager.test.js.map +1 -1
  67. package/dist/src/ui/utils/updateCheck.js +6 -5
  68. package/dist/src/ui/utils/updateCheck.js.map +1 -1
  69. package/dist/src/utils/envVarResolver.js +5 -2
  70. package/dist/src/utils/envVarResolver.js.map +1 -1
  71. package/dist/src/utils/gitUtils.js +2 -0
  72. package/dist/src/utils/gitUtils.js.map +1 -1
  73. package/dist/src/utils/handleAutoUpdate.test.js +2 -2
  74. package/dist/src/utils/sandbox.js +1 -1
  75. package/dist/src/utils/sandbox.js.map +1 -1
  76. package/dist/src/utils/sessionUtils.d.ts +0 -7
  77. package/dist/src/utils/sessionUtils.js +4 -9
  78. package/dist/src/utils/sessionUtils.js.map +1 -1
  79. package/dist/src/utils/sessionUtils.test.js +51 -125
  80. package/dist/src/utils/sessionUtils.test.js.map +1 -1
  81. package/dist/src/utils/skillUtils.js +39 -12
  82. package/dist/src/utils/skillUtils.js.map +1 -1
  83. package/dist/src/utils/skillUtils.test.js +76 -0
  84. package/dist/src/utils/skillUtils.test.js.map +1 -1
  85. package/dist/src/utils/terminalTheme.js +2 -1
  86. package/dist/src/utils/terminalTheme.js.map +1 -1
  87. package/dist/src/utils/terminalTheme.test.d.ts +6 -0
  88. package/dist/src/utils/terminalTheme.test.js +91 -0
  89. package/dist/src/utils/terminalTheme.test.js.map +1 -0
  90. package/dist/tsconfig.tsbuildinfo +1 -1
  91. package/package.json +51 -55
@@ -14,7 +14,7 @@ export const shortAsciiLogo = `
14
14
  ░ ░ ▒ ░ ░ ░ ░
15
15
  ░ ░ ░ ░ ░ ░ ░ ░
16
16
 
17
- @machina.ai/cell-cli@1.45.1-rc4
17
+ @machina.ai/cell-cli@1.49.0-rc1
18
18
  `;
19
19
  export const longAsciiLogo = `
20
20
  ░███ ░██
@@ -29,7 +29,7 @@ export const longAsciiLogo = `
29
29
  ░ ░ ▒ ░ ░ ░ ░
30
30
  ░ ░ ░ ░ ░ ░ ░ ░
31
31
 
32
- @machina.ai/cell-cli@1.45.1-rc4
32
+ @machina.ai/cell-cli@1.49.0-rc1
33
33
  `;
34
34
  export const tinyAsciiLogo = `
35
35
  ███╗ ██╗██╗ ██╗ ██████╗
@@ -38,7 +38,7 @@ export const tinyAsciiLogo = `
38
38
  ██║╚██╗██║╚██╗ ██╔╝██║
39
39
  ██║ ╚████║ ╚████╔╝ ╚██████╗
40
40
  ╚═╝ ╚═══╝ ╚═══╝ ╚═════╝
41
- @machina.ai/cell-cli@1.45.1-rc4
41
+ @machina.ai/cell-cli@1.49.0-rc1
42
42
  `;
43
43
  export const shortAsciiLogoIde = `
44
44
  ▄████▄▄ ▄▄▄▄▄▄▄▄ ██▓ ██▓
@@ -51,7 +51,7 @@ export const shortAsciiLogoIde = `
51
51
  ░ ░ ▒ ░ ░ ░ ░
52
52
  ░ ░ ░ ░ ░ ░ ░ ░
53
53
 
54
- @machina.ai/cell-cli@1.45.1-rc4
54
+ @machina.ai/cell-cli@1.49.0-rc1
55
55
  `;
56
56
  export const longAsciiLogoIde = `
57
57
  ░███ ░██
@@ -66,7 +66,7 @@ export const longAsciiLogoIde = `
66
66
  ░ ░ ▒ ░ ░ ░ ░
67
67
  ░ ░ ░ ░ ░ ░ ░ ░
68
68
 
69
- @machina.ai/cell-cli@1.45.1-rc4
69
+ @machina.ai/cell-cli@1.49.0-rc1
70
70
  `;
71
71
  export const tinyAsciiLogoIde = `
72
72
  ███╗ ██╗██╗ ██╗ ██████╗
@@ -75,7 +75,7 @@ export const tinyAsciiLogoIde = `
75
75
  ██║╚██╗██║╚██╗ ██╔╝██║
76
76
  ██║ ╚████║ ╚████╔╝ ╚██████╗
77
77
  ╚═╝ ╚═══╝ ╚═══╝ ╚═════╝
78
- @machina.ai/cell-cli@1.45.1-rc4
78
+ @machina.ai/cell-cli@1.49.0-rc1
79
79
  `;
80
80
  export const shortAsciiLogoCompactText = `
81
81
  ██▙ ▜█▘
@@ -1,11 +1,11 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useState } from 'react';
2
+ import { useState, useEffect } from 'react';
3
3
  import { Box, Text } from 'ink';
4
4
  import { theme } from '../semantic-colors.js';
5
5
  import { editorSettingsManager, } from '../editors/editorSettingsManager.js';
6
6
  import { RadioButtonSelect } from './shared/RadioButtonSelect.js';
7
7
  import { SettingScope, } from '../../config/settings.js';
8
- import { isEditorAvailable, EDITOR_DISPLAY_NAMES, } from '@google/gemini-cli-core';
8
+ import { isEditorAvailable, EDITOR_DISPLAY_NAMES, coreEvents, } from '@google/gemini-cli-core';
9
9
  import { useKeypress } from '../hooks/useKeypress.js';
10
10
  export function EditorSettingsDialog({ onSelect, settings, onExit, }) {
11
11
  const [selectedScope, setSelectedScope] = useState(SettingScope.User);
@@ -26,9 +26,15 @@ export function EditorSettingsDialog({ onSelect, settings, onExit, }) {
26
26
  let editorIndex = currentPreference
27
27
  ? editorItems.findIndex((item) => item.type === currentPreference)
28
28
  : 0;
29
- if (editorIndex === -1) {
29
+ const isUnsupportedEditor = editorIndex === -1;
30
+ if (isUnsupportedEditor) {
30
31
  editorIndex = 0;
31
32
  }
33
+ useEffect(() => {
34
+ if (isUnsupportedEditor && currentPreference) {
35
+ coreEvents.emitFeedback('error', `Editor is not supported: ${currentPreference}`);
36
+ }
37
+ }, [isUnsupportedEditor, currentPreference]);
32
38
  const scopeItems = [
33
39
  {
34
40
  label: 'User Settings',
@@ -1 +1 @@
1
- {"version":3,"file":"EditorSettingsDialog.js","sourceRoot":"","sources":["../../../../src/ui/components/EditorSettingsDialog.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EditorSettingsDialog.js","sourceRoot":"","sources":["../../../../src/ui/components/EditorSettingsDialog.tsx"],"names":[],"mappings":"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"}
@@ -117,5 +117,29 @@ describe('EditorSettingsDialog', () => {
117
117
  }
118
118
  expect(frame).toContain('(Also modified');
119
119
  });
120
+ it('emits error feedback only once when preferredEditor is invalid', async () => {
121
+ const mockEmitFeedback = vi.fn();
122
+ vi.spyOn(await import('@google/gemini-cli-core').then((m) => m.coreEvents), 'emitFeedback').mockImplementation(mockEmitFeedback);
123
+ const invalidSettings = {
124
+ forScope: (_scope) => ({
125
+ settings: {
126
+ general: {
127
+ preferredEditor: 'invalideditor',
128
+ },
129
+ },
130
+ }),
131
+ merged: {
132
+ general: {
133
+ preferredEditor: 'invalideditor',
134
+ },
135
+ },
136
+ };
137
+ const { unmount } = await renderWithProvider(_jsx(EditorSettingsDialog, { onSelect: vi.fn(), settings: invalidSettings, onExit: vi.fn() }));
138
+ await waitFor(() => {
139
+ expect(mockEmitFeedback).toHaveBeenCalledWith('error', 'Editor is not supported: invalideditor');
140
+ });
141
+ expect(mockEmitFeedback).toHaveBeenCalledTimes(1);
142
+ unmount();
143
+ });
120
144
  });
121
145
  //# sourceMappingURL=EditorSettingsDialog.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EditorSettingsDialog.test.js","sourceRoot":"","sources":["../../../../src/ui/components/EditorSettingsDialog.test.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EditorSettingsDialog.test.js","sourceRoot":"","sources":["../../../../src/ui/components/EditorSettingsDialog.test.tsx"],"names":[],"mappings":"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"}
@@ -2782,8 +2782,10 @@ describe('InputPrompt', () => {
2782
2782
  unmount();
2783
2783
  });
2784
2784
  it('should toggle paste expansion on double-click', async () => {
2785
+ vi.spyOn(Date, 'now').mockReturnValue(1000);
2785
2786
  const id = '[Pasted Text: 10 lines]';
2786
2787
  const largeText = 'line1\nline2\nline3\nline4\nline5\nline6\nline7\nline8\nline9\nline10';
2788
+ const togglePasteExpansion = vi.fn();
2787
2789
  const baseProps = props;
2788
2790
  const TestWrapper = () => {
2789
2791
  const [isExpanded, setIsExpanded] = useState(false);
@@ -2818,8 +2820,9 @@ describe('InputPrompt', () => {
2818
2820
  row: 0,
2819
2821
  col: 2,
2820
2822
  }),
2821
- togglePasteExpansion: vi.fn().mockImplementation(() => {
2822
- setIsExpanded(!isExpanded);
2823
+ togglePasteExpansion: vi.fn().mockImplementation((...args) => {
2824
+ togglePasteExpansion(...args);
2825
+ setIsExpanded((expanded) => !expanded);
2823
2826
  }),
2824
2827
  getExpandedPasteAtLine: vi
2825
2828
  .fn()
@@ -2842,13 +2845,16 @@ describe('InputPrompt', () => {
2842
2845
  await simulateClick(5, 2);
2843
2846
  // 2. Verify expanded content is visible
2844
2847
  await waitFor(() => {
2845
- expect(stdout.lastFrame()).toMatchSnapshot();
2848
+ expect(togglePasteExpansion).toHaveBeenCalledWith(id, 0, 2);
2849
+ expect(stdout.lastFrame()).toContain('line10');
2846
2850
  });
2847
2851
  // Simulate double-click to collapse
2848
2852
  await simulateClick(5, 2);
2849
2853
  await simulateClick(5, 2);
2850
2854
  // 3. Verify placeholder is restored
2851
2855
  await waitFor(() => {
2856
+ expect(togglePasteExpansion).toHaveBeenCalledTimes(2);
2857
+ expect(stdout.lastFrame()).toContain(id);
2852
2858
  expect(stdout.lastFrame()).toMatchSnapshot();
2853
2859
  });
2854
2860
  unmount();