@vybestack/llxprt-code 0.1.23-nightly.250826.6cba9007 → 0.1.23-nightly.250828.9dff311e
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/generated/git-commit.d.ts +1 -1
- package/dist/src/generated/git-commit.js +1 -1
- package/dist/src/ui/commands/authCommand.d.ts +0 -1
- package/dist/src/ui/commands/authCommand.js +26 -37
- package/dist/src/ui/commands/authCommand.js.map +1 -1
- package/dist/src/ui/commands/ideCommand.js +26 -0
- package/dist/src/ui/commands/ideCommand.js.map +1 -1
- package/dist/src/ui/commands/setupGithubCommand.d.ts +2 -0
- package/dist/src/ui/commands/setupGithubCommand.js +123 -23
- package/dist/src/ui/commands/setupGithubCommand.js.map +1 -1
- package/dist/src/ui/commands/setupGithubCommand.test.js +94 -1
- package/dist/src/ui/commands/setupGithubCommand.test.js.map +1 -1
- package/dist/src/ui/contexts/KeypressContext.js +23 -1
- package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
- package/dist/src/ui/contexts/KeypressContext.test.js +58 -2
- package/dist/src/ui/contexts/KeypressContext.test.js.map +1 -1
- package/dist/src/ui/hooks/atCommandProcessor.js +0 -2
- package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/atCommandProcessor.test.js +21 -6
- package/dist/src/ui/hooks/atCommandProcessor.test.js.map +1 -1
- package/dist/src/ui/hooks/useGeminiStream.js +12 -4
- package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
- package/dist/src/ui/utils/platformConstants.d.ts +2 -0
- package/dist/src/ui/utils/platformConstants.js +2 -0
- package/dist/src/ui/utils/platformConstants.js.map +1 -1
- package/dist/src/zed-integration/schema.d.ts +116 -13
- package/dist/src/zed-integration/schema.js +7 -1
- package/dist/src/zed-integration/schema.js.map +1 -1
- package/dist/src/zed-integration/zedIntegration.js +181 -137
- package/dist/src/zed-integration/zedIntegration.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
package/dist/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@vybestack/llxprt-code",
|
3
|
-
"version": "0.1.23-nightly.
|
3
|
+
"version": "0.1.23-nightly.250828.9dff311e",
|
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/acoliver/llxprt-code/sandbox:0.1.23-nightly.
|
36
|
+
"sandboxImageUri": "ghcr.io/acoliver/llxprt-code/sandbox:0.1.23-nightly.250828.9dff311e"
|
37
37
|
},
|
38
38
|
"dependencies": {
|
39
39
|
"@anthropic-ai/sdk": "^0.55.1",
|
@@ -42,7 +42,7 @@
|
|
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.1.23-nightly.
|
45
|
+
"@vybestack/llxprt-code-core": "0.1.23-nightly.250828.9dff311e",
|
46
46
|
"chalk": "^5.3.0",
|
47
47
|
"command-exists": "^1.2.9",
|
48
48
|
"diff": "^7.0.0",
|
@@ -9,7 +9,6 @@ export declare class AuthCommandExecutor {
|
|
9
9
|
private oauthManager;
|
10
10
|
constructor(oauthManager: OAuthManager);
|
11
11
|
execute(context: CommandContext, args?: string): Promise<SlashCommandActionReturn>;
|
12
|
-
private showOAuthMenu;
|
13
12
|
private showProviderStatus;
|
14
13
|
private setProviderOAuth;
|
15
14
|
/**
|
@@ -16,12 +16,32 @@ export class AuthCommandExecutor {
|
|
16
16
|
this.oauthManager = oauthManager;
|
17
17
|
}
|
18
18
|
async execute(context, args) {
|
19
|
-
|
19
|
+
// Parse args while preserving original parts for error messages
|
20
|
+
const trimmedArgs = args?.trim() || '';
|
21
|
+
const parts = trimmedArgs.split(/\s+/).filter((p) => p.length > 0); // Remove empty parts
|
20
22
|
const provider = parts[0];
|
21
23
|
const action = parts[1];
|
22
|
-
//
|
24
|
+
// For error messages, we want to show the provider as the user typed it
|
25
|
+
// This should be the first word from the arguments, trimmed of leading/trailing spaces
|
26
|
+
// but preserving any internal structure
|
27
|
+
const originalProvider = provider || ''; // Use the parsed provider for consistency
|
28
|
+
// If no provider specified, show the auth dialog
|
23
29
|
if (!provider) {
|
24
|
-
return
|
30
|
+
return {
|
31
|
+
type: 'dialog',
|
32
|
+
dialog: 'auth',
|
33
|
+
};
|
34
|
+
}
|
35
|
+
// Check if provider is supported before processing actions
|
36
|
+
const supportedProviders = this.oauthManager.getSupportedProviders();
|
37
|
+
if (!supportedProviders.includes(provider)) {
|
38
|
+
// Use the original provider string from args for the error message
|
39
|
+
// This preserves whatever the user actually typed (including spaces)
|
40
|
+
return {
|
41
|
+
type: 'message',
|
42
|
+
messageType: 'error',
|
43
|
+
content: `Unknown provider: ${originalProvider}. Supported providers: ${supportedProviders.join(', ')}`,
|
44
|
+
};
|
25
45
|
}
|
26
46
|
// If no action specified, show status for the provider
|
27
47
|
if (!action) {
|
@@ -42,24 +62,9 @@ export class AuthCommandExecutor {
|
|
42
62
|
content: `Invalid action: ${action}. Use enable, disable, or logout`,
|
43
63
|
};
|
44
64
|
}
|
45
|
-
async showOAuthMenu() {
|
46
|
-
// Return dialog action to show OAuth authentication dialog
|
47
|
-
return {
|
48
|
-
type: 'dialog',
|
49
|
-
dialog: 'auth',
|
50
|
-
};
|
51
|
-
}
|
52
65
|
async showProviderStatus(provider) {
|
53
66
|
try {
|
54
|
-
//
|
55
|
-
const supportedProviders = this.oauthManager.getSupportedProviders();
|
56
|
-
if (!supportedProviders.includes(provider)) {
|
57
|
-
return {
|
58
|
-
type: 'message',
|
59
|
-
messageType: 'error',
|
60
|
-
content: `Unknown provider: ${provider}. Supported providers: ${supportedProviders.join(', ')}`,
|
61
|
-
};
|
62
|
-
}
|
67
|
+
// Provider validation is now done in execute(), so we can proceed directly
|
63
68
|
// Get current OAuth status
|
64
69
|
const isEnabled = this.oauthManager.isOAuthEnabled(provider);
|
65
70
|
const isAuthenticated = await this.oauthManager.isAuthenticated(provider);
|
@@ -114,15 +119,7 @@ export class AuthCommandExecutor {
|
|
114
119
|
}
|
115
120
|
async setProviderOAuth(provider, enable) {
|
116
121
|
try {
|
117
|
-
//
|
118
|
-
const supportedProviders = this.oauthManager.getSupportedProviders();
|
119
|
-
if (!supportedProviders.includes(provider)) {
|
120
|
-
return {
|
121
|
-
type: 'message',
|
122
|
-
messageType: 'error',
|
123
|
-
content: `Unknown provider: ${provider}. Supported providers: ${supportedProviders.join(', ')}`,
|
124
|
-
};
|
125
|
-
}
|
122
|
+
// Provider validation is now done in execute(), so we can proceed directly
|
126
123
|
// Check current state
|
127
124
|
const currentlyEnabled = this.oauthManager.isOAuthEnabled(provider);
|
128
125
|
// If already in desired state, just report it
|
@@ -170,15 +167,7 @@ export class AuthCommandExecutor {
|
|
170
167
|
*/
|
171
168
|
async logoutProvider(provider) {
|
172
169
|
try {
|
173
|
-
//
|
174
|
-
const supportedProviders = this.oauthManager.getSupportedProviders();
|
175
|
-
if (!supportedProviders.includes(provider)) {
|
176
|
-
return {
|
177
|
-
type: 'message',
|
178
|
-
messageType: 'error',
|
179
|
-
content: `Unknown provider: ${provider}. Supported providers: ${supportedProviders.join(', ')}`,
|
180
|
-
};
|
181
|
-
}
|
170
|
+
// Provider validation is now done in execute(), so we can proceed directly
|
182
171
|
// Lines 38-49: Check if user is authenticated and perform logout
|
183
172
|
const isAuthenticated = await this.oauthManager.isAuthenticated(provider);
|
184
173
|
if (!isAuthenticated) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"authCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/authCommand.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,WAAW,
|
1
|
+
{"version":3,"file":"authCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/authCommand.ts"],"names":[],"mappings":"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"}
|
@@ -129,6 +129,32 @@ export const ideCommand = (config) => {
|
|
129
129
|
type: result.success ? 'info' : 'error',
|
130
130
|
text: result.message,
|
131
131
|
}, Date.now());
|
132
|
+
if (result.success) {
|
133
|
+
context.services.settings.setValue(SettingScope.User, 'ideMode', true);
|
134
|
+
// Poll for up to 5 seconds for the extension to activate.
|
135
|
+
for (let i = 0; i < 10; i++) {
|
136
|
+
config.setIdeMode(true);
|
137
|
+
await ideClient.connect();
|
138
|
+
if (ideClient.getConnectionStatus().status ===
|
139
|
+
IDEConnectionStatus.Connected) {
|
140
|
+
break;
|
141
|
+
}
|
142
|
+
await new Promise((resolve) => setTimeout(resolve, 500));
|
143
|
+
}
|
144
|
+
const { messageType, content } = await getIdeStatusMessageWithFiles(ideClient);
|
145
|
+
if (messageType === 'error') {
|
146
|
+
context.ui.addItem({
|
147
|
+
type: messageType,
|
148
|
+
text: `Failed to automatically enable IDE integration. To fix this, run the CLI in a new terminal window.`,
|
149
|
+
}, Date.now());
|
150
|
+
}
|
151
|
+
else {
|
152
|
+
context.ui.addItem({
|
153
|
+
type: messageType,
|
154
|
+
text: content,
|
155
|
+
}, Date.now());
|
156
|
+
}
|
157
|
+
}
|
132
158
|
},
|
133
159
|
};
|
134
160
|
const enableCommand = {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ideCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/ideCommand.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"ideCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/ideCommand.ts"],"names":[],"mappings":"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"}
|
@@ -4,4 +4,6 @@
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
5
5
|
*/
|
6
6
|
import { SlashCommand } from './types.js';
|
7
|
+
export declare const GITHUB_WORKFLOW_PATHS: string[];
|
8
|
+
export declare function updateGitignore(gitRepoRoot: string): Promise<void>;
|
7
9
|
export declare const setupGithubCommand: SlashCommand;
|
@@ -4,7 +4,8 @@
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
5
5
|
*/
|
6
6
|
// These imports will be needed when the command is re-enabled
|
7
|
-
|
7
|
+
import path from 'path';
|
8
|
+
import fs from 'fs';
|
8
9
|
// import { CommandContext } from '../../ui/commands/types.js';
|
9
10
|
// import {
|
10
11
|
// getGitRepoRoot,
|
@@ -15,8 +16,69 @@ import { CommandKind, } from './types.js';
|
|
15
16
|
// TODO: Re-add imports when the setup-github command is re-enabled
|
16
17
|
// import { getUrlOpenCommand } from '../../ui/utils/commandUtils.js';
|
17
18
|
// import { getGitHubRepoInfo } from '../../utils/gitUtils.js';
|
18
|
-
|
19
|
-
|
19
|
+
export const GITHUB_WORKFLOW_PATHS = [
|
20
|
+
'gemini-dispatch/gemini-dispatch.yml',
|
21
|
+
'gemini-assistant/gemini-invoke.yml',
|
22
|
+
'issue-triage/gemini-triage.yml',
|
23
|
+
'issue-triage/gemini-scheduled-triage.yml',
|
24
|
+
'pr-review/gemini-review.yml',
|
25
|
+
];
|
26
|
+
// TODO: Reimplement getOpenUrlsCommands when the setup-github command is re-enabled
|
27
|
+
// This function was removed because it's currently unused but kept for reference
|
28
|
+
// function getOpenUrlsCommands(readmeUrl: string): string[] {
|
29
|
+
// // Determine the OS-specific command to open URLs, ex: 'open', 'xdg-open', etc
|
30
|
+
// const openCmd = getUrlOpenCommand();
|
31
|
+
//
|
32
|
+
// // Build a list of URLs to open
|
33
|
+
// const urlsToOpen = [readmeUrl];
|
34
|
+
//
|
35
|
+
// const repoInfo = getGitHubRepoInfo();
|
36
|
+
// if (repoInfo) {
|
37
|
+
// urlsToOpen.push(
|
38
|
+
// `https://github.com/${repoInfo.owner}/${repoInfo.repo}/settings/secrets/actions`,
|
39
|
+
// );
|
40
|
+
// }
|
41
|
+
//
|
42
|
+
// // Create and join the individual commands
|
43
|
+
// const commands = urlsToOpen.map((url) => `${openCmd} "${url}"`);
|
44
|
+
// return commands;
|
45
|
+
// }
|
46
|
+
// Add Gemini CLI specific entries to .gitignore file
|
47
|
+
export async function updateGitignore(gitRepoRoot) {
|
48
|
+
const gitignoreEntries = ['.gemini/', 'gha-creds-*.json'];
|
49
|
+
const gitignorePath = path.join(gitRepoRoot, '.gitignore');
|
50
|
+
try {
|
51
|
+
// Check if .gitignore exists and read its content
|
52
|
+
let existingContent = '';
|
53
|
+
let fileExists = true;
|
54
|
+
try {
|
55
|
+
existingContent = await fs.promises.readFile(gitignorePath, 'utf8');
|
56
|
+
}
|
57
|
+
catch (_error) {
|
58
|
+
// File doesn't exist
|
59
|
+
fileExists = false;
|
60
|
+
}
|
61
|
+
if (!fileExists) {
|
62
|
+
// Create new .gitignore file with the entries
|
63
|
+
const contentToWrite = gitignoreEntries.join('\n') + '\n';
|
64
|
+
await fs.promises.writeFile(gitignorePath, contentToWrite);
|
65
|
+
}
|
66
|
+
else {
|
67
|
+
// Check which entries are missing
|
68
|
+
const missingEntries = gitignoreEntries.filter((entry) => !existingContent
|
69
|
+
.split(/\r?\n/)
|
70
|
+
.some((line) => line.split('#')[0].trim() === entry));
|
71
|
+
if (missingEntries.length > 0) {
|
72
|
+
const contentToAdd = '\n' + missingEntries.join('\n') + '\n';
|
73
|
+
await fs.promises.appendFile(gitignorePath, contentToAdd);
|
74
|
+
}
|
75
|
+
}
|
76
|
+
}
|
77
|
+
catch (error) {
|
78
|
+
console.debug('Failed to update .gitignore:', error);
|
79
|
+
// Continue without failing the whole command
|
80
|
+
}
|
81
|
+
}
|
20
82
|
export const setupGithubCommand = {
|
21
83
|
name: 'setup-github',
|
22
84
|
description: 'Set up GitHub Actions (currently disabled - needs adaptation for llxprt)',
|
@@ -74,36 +136,74 @@ For now, you can manually set up GitHub Actions by creating workflows that use l
|
|
74
136
|
const proxy = context?.services?.config?.getProxy();
|
75
137
|
const releaseTag = await getLatestGitHubRelease(proxy);
|
76
138
|
|
77
|
-
//
|
78
|
-
const
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
139
|
+
// Create the .github/workflows directory to download the files into
|
140
|
+
const githubWorkflowsDir = path.join(gitRepoRoot, '.github', 'workflows');
|
141
|
+
try {
|
142
|
+
await fs.promises.mkdir(githubWorkflowsDir, { recursive: true });
|
143
|
+
} catch (_error) {
|
144
|
+
console.debug(
|
145
|
+
`Failed to create ${githubWorkflowsDir} directory:`,
|
146
|
+
_error,
|
147
|
+
);
|
148
|
+
throw new Error(
|
149
|
+
`Unable to create ${githubWorkflowsDir} directory. Do you have file permissions in the current directory?`,
|
150
|
+
);
|
151
|
+
}
|
84
152
|
|
85
|
-
|
153
|
+
// Download each workflow in parallel - there aren't enough files to warrant
|
154
|
+
// a full workerpool model here.
|
155
|
+
const downloads = [];
|
156
|
+
for (const workflow of GITHUB_WORKFLOW_PATHS) {
|
157
|
+
downloads.push(
|
158
|
+
(async () => {
|
159
|
+
const endpoint = `https://raw.githubusercontent.com/google-github-actions/run-gemini-cli/refs/tags/${releaseTag}/examples/workflows/${workflow}`;
|
160
|
+
const response = await fetch(endpoint, {
|
161
|
+
method: 'GET',
|
162
|
+
dispatcher: proxy ? new ProxyAgent(proxy) : undefined,
|
163
|
+
signal: AbortSignal.any([
|
164
|
+
AbortSignal.timeout(30_000),
|
165
|
+
abortController.signal,
|
166
|
+
]),
|
167
|
+
} as RequestInit);
|
86
168
|
|
87
|
-
|
88
|
-
|
169
|
+
if (!response.ok) {
|
170
|
+
throw new Error(
|
171
|
+
`Invalid response code downloading ${endpoint}: ${response.status} - ${response.statusText}`,
|
172
|
+
);
|
173
|
+
}
|
174
|
+
const body = response.body;
|
175
|
+
if (!body) {
|
176
|
+
throw new Error(
|
177
|
+
`Empty body while downloading ${endpoint}: ${response.status} - ${response.statusText}`,
|
178
|
+
);
|
179
|
+
}
|
89
180
|
|
90
|
-
|
91
|
-
|
181
|
+
const destination = path.resolve(
|
182
|
+
githubWorkflowsDir,
|
183
|
+
path.basename(workflow),
|
184
|
+
);
|
92
185
|
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
186
|
+
const fileStream = fs.createWriteStream(destination, {
|
187
|
+
mode: 0o644, // -rw-r--r--, user(rw), group(r), other(r)
|
188
|
+
flags: 'w', // write and overwrite
|
189
|
+
flush: true,
|
190
|
+
});
|
191
|
+
|
192
|
+
await body.pipeTo(Writable.toWeb(fileStream));
|
193
|
+
})(),
|
99
194
|
);
|
100
|
-
commands.push(curlCommand);
|
101
195
|
}
|
102
196
|
|
103
197
|
const readmeUrl = `https://github.com/google-github-actions/run-gemini-cli/blob/${releaseTag}/README.md#quick-start`;
|
104
198
|
|
199
|
+
// Add entries to .gitignore file
|
200
|
+
await updateGitignore(gitRepoRoot);
|
201
|
+
|
202
|
+
// Print out a message
|
203
|
+
const commands = [];
|
204
|
+
commands.push('set -eEuo pipefail');
|
105
205
|
commands.push(
|
106
|
-
`echo "Successfully downloaded ${
|
206
|
+
`echo "Successfully downloaded ${GITHUB_WORKFLOW_PATHS.length} workflows and updated .gitignore. Follow the steps in ${readmeUrl} (skipping the /setup-github step) to complete setup."`,
|
107
207
|
);
|
108
208
|
|
109
209
|
commands.push(...getOpenUrlsCommands(readmeUrl));
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"setupGithubCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/setupGithubCommand.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,8DAA8D;AAC9D,
|
1
|
+
{"version":3,"file":"setupGithubCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/setupGithubCommand.ts"],"names":[],"mappings":"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"}
|
@@ -4,8 +4,11 @@
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
5
5
|
*/
|
6
6
|
import { vi, describe, expect, it, afterEach, beforeEach } from 'vitest';
|
7
|
+
import path from 'path';
|
8
|
+
import fs from 'fs/promises';
|
9
|
+
import os from 'os';
|
7
10
|
import * as gitUtils from '../../utils/gitUtils.js';
|
8
|
-
import { setupGithubCommand } from './setupGithubCommand.js';
|
11
|
+
import { setupGithubCommand, updateGitignore, GITHUB_WORKFLOW_PATHS, } from './setupGithubCommand.js';
|
9
12
|
vi.mock('child_process');
|
10
13
|
// Mock fetch globally
|
11
14
|
global.fetch = vi.fn();
|
@@ -36,6 +39,10 @@ describe('setupGithubCommand', async () => {
|
|
36
39
|
const fakeRepoName = 'repo';
|
37
40
|
const fakeRepoRoot = `/github.com/${fakeRepoOwner}/${fakeRepoName}/root`;
|
38
41
|
const fakeReleaseVersion = 'v1.2.3';
|
42
|
+
const workflows = GITHUB_WORKFLOW_PATHS.map((p) => path.basename(p));
|
43
|
+
for (const workflow of workflows) {
|
44
|
+
vi.mocked(global.fetch).mockReturnValueOnce(Promise.resolve(new Response(workflow)));
|
45
|
+
}
|
39
46
|
vi.mocked(gitUtils.isGitHubRepository).mockReturnValueOnce(true);
|
40
47
|
vi.mocked(gitUtils.getGitRepoRoot).mockReturnValueOnce(fakeRepoRoot);
|
41
48
|
vi.mocked(gitUtils.getLatestGitHubRelease).mockResolvedValueOnce(fakeReleaseVersion);
|
@@ -66,4 +73,90 @@ describe('setupGithubCommand', async () => {
|
|
66
73
|
}).toThrow('Unable to determine the GitHub repository. /setup-github must be run from a git repository.');
|
67
74
|
});
|
68
75
|
});
|
76
|
+
describe('updateGitignore', () => {
|
77
|
+
let scratchDir = '';
|
78
|
+
beforeEach(async () => {
|
79
|
+
scratchDir = await fs.mkdtemp(path.join(os.tmpdir(), 'update-gitignore-'));
|
80
|
+
});
|
81
|
+
afterEach(async () => {
|
82
|
+
if (scratchDir)
|
83
|
+
await fs.rm(scratchDir, { recursive: true });
|
84
|
+
});
|
85
|
+
it('creates a new .gitignore file when none exists', async () => {
|
86
|
+
await updateGitignore(scratchDir);
|
87
|
+
const gitignorePath = path.join(scratchDir, '.gitignore');
|
88
|
+
const content = await fs.readFile(gitignorePath, 'utf8');
|
89
|
+
expect(content).toBe('.gemini/\ngha-creds-*.json\n');
|
90
|
+
});
|
91
|
+
it('appends entries to existing .gitignore file', async () => {
|
92
|
+
const gitignorePath = path.join(scratchDir, '.gitignore');
|
93
|
+
const existingContent = '# Existing content\nnode_modules/\n';
|
94
|
+
await fs.writeFile(gitignorePath, existingContent);
|
95
|
+
await updateGitignore(scratchDir);
|
96
|
+
const content = await fs.readFile(gitignorePath, 'utf8');
|
97
|
+
expect(content).toBe('# Existing content\nnode_modules/\n\n.gemini/\ngha-creds-*.json\n');
|
98
|
+
});
|
99
|
+
it('does not add duplicate entries', async () => {
|
100
|
+
const gitignorePath = path.join(scratchDir, '.gitignore');
|
101
|
+
const existingContent = '.gemini/\nsome-other-file\ngha-creds-*.json\n';
|
102
|
+
await fs.writeFile(gitignorePath, existingContent);
|
103
|
+
await updateGitignore(scratchDir);
|
104
|
+
const content = await fs.readFile(gitignorePath, 'utf8');
|
105
|
+
expect(content).toBe(existingContent);
|
106
|
+
});
|
107
|
+
it('adds only missing entries when some already exist', async () => {
|
108
|
+
const gitignorePath = path.join(scratchDir, '.gitignore');
|
109
|
+
const existingContent = '.gemini/\nsome-other-file\n';
|
110
|
+
await fs.writeFile(gitignorePath, existingContent);
|
111
|
+
await updateGitignore(scratchDir);
|
112
|
+
const content = await fs.readFile(gitignorePath, 'utf8');
|
113
|
+
// Should add only the missing gha-creds-*.json entry
|
114
|
+
expect(content).toBe('.gemini/\nsome-other-file\n\ngha-creds-*.json\n');
|
115
|
+
expect(content).toContain('gha-creds-*.json');
|
116
|
+
// Should not duplicate .gemini/ entry
|
117
|
+
expect((content.match(/\.gemini\//g) || []).length).toBe(1);
|
118
|
+
});
|
119
|
+
it('does not get confused by entries in comments or as substrings', async () => {
|
120
|
+
const gitignorePath = path.join(scratchDir, '.gitignore');
|
121
|
+
const existingContent = [
|
122
|
+
'# This is a comment mentioning .gemini/ folder',
|
123
|
+
'my-app.gemini/config',
|
124
|
+
'# Another comment with gha-creds-*.json pattern',
|
125
|
+
'some-other-gha-creds-file.json',
|
126
|
+
'',
|
127
|
+
].join('\n');
|
128
|
+
await fs.writeFile(gitignorePath, existingContent);
|
129
|
+
await updateGitignore(scratchDir);
|
130
|
+
const content = await fs.readFile(gitignorePath, 'utf8');
|
131
|
+
// Should add both entries since they don't actually exist as gitignore rules
|
132
|
+
expect(content).toContain('.gemini/');
|
133
|
+
expect(content).toContain('gha-creds-*.json');
|
134
|
+
// Verify the entries were added (not just mentioned in comments)
|
135
|
+
const lines = content
|
136
|
+
.split('\n')
|
137
|
+
.map((line) => line.split('#')[0].trim())
|
138
|
+
.filter((line) => line);
|
139
|
+
expect(lines).toContain('.gemini/');
|
140
|
+
expect(lines).toContain('gha-creds-*.json');
|
141
|
+
expect(lines).toContain('my-app.gemini/config');
|
142
|
+
expect(lines).toContain('some-other-gha-creds-file.json');
|
143
|
+
});
|
144
|
+
it('handles file system errors gracefully', async () => {
|
145
|
+
// Try to update gitignore in a non-existent directory
|
146
|
+
const nonExistentDir = path.join(scratchDir, 'non-existent');
|
147
|
+
// This should not throw an error
|
148
|
+
await expect(updateGitignore(nonExistentDir)).resolves.toBeUndefined();
|
149
|
+
});
|
150
|
+
it('handles permission errors gracefully', async () => {
|
151
|
+
const consoleSpy = vi.spyOn(console, 'debug').mockImplementation(() => { });
|
152
|
+
const fsModule = await import('node:fs');
|
153
|
+
const writeFileSpy = vi
|
154
|
+
.spyOn(fsModule.promises, 'writeFile')
|
155
|
+
.mockRejectedValue(new Error('Permission denied'));
|
156
|
+
await expect(updateGitignore(scratchDir)).resolves.toBeUndefined();
|
157
|
+
expect(consoleSpy).toHaveBeenCalledWith('Failed to update .gitignore:', expect.any(Error));
|
158
|
+
writeFileSpy.mockRestore();
|
159
|
+
consoleSpy.mockRestore();
|
160
|
+
});
|
161
|
+
});
|
69
162
|
//# sourceMappingURL=setupGithubCommand.test.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"setupGithubCommand.test.js","sourceRoot":"","sources":["../../../../src/ui/commands/setupGithubCommand.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AACpD,OAAO,
|
1
|
+
{"version":3,"file":"setupGithubCommand.test.js","sourceRoot":"","sources":["../../../../src/ui/commands/setupGithubCommand.test.ts"],"names":[],"mappings":"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"}
|
@@ -9,7 +9,7 @@ import { useStdin } from 'ink';
|
|
9
9
|
import { createContext, useCallback, useContext, useEffect, useMemo, useRef, } from 'react';
|
10
10
|
import readline from 'readline';
|
11
11
|
import { PassThrough } from 'stream';
|
12
|
-
import { BACKSLASH_ENTER_DETECTION_WINDOW_MS, KITTY_CTRL_C, KITTY_KEYCODE_ENTER, KITTY_KEYCODE_NUMPAD_ENTER, MAX_KITTY_SEQUENCE_LENGTH, } from '../utils/platformConstants.js';
|
12
|
+
import { BACKSLASH_ENTER_DETECTION_WINDOW_MS, KITTY_CTRL_C, KITTY_KEYCODE_BACKSPACE, KITTY_KEYCODE_ENTER, KITTY_KEYCODE_NUMPAD_ENTER, KITTY_KEYCODE_TAB, MAX_KITTY_SEQUENCE_LENGTH, } from '../utils/platformConstants.js';
|
13
13
|
import { FOCUS_IN, FOCUS_OUT } from '../hooks/useFocus.js';
|
14
14
|
const ESC = '\u001B';
|
15
15
|
export const PASTE_MODE_PREFIX = `${ESC}[200~`;
|
@@ -68,6 +68,28 @@ export function KeypressProvider({ children, kittyProtocolEnabled, config, }) {
|
|
68
68
|
kittyProtocol: true,
|
69
69
|
};
|
70
70
|
}
|
71
|
+
if (keyCode === KITTY_KEYCODE_TAB) {
|
72
|
+
return {
|
73
|
+
name: 'tab',
|
74
|
+
ctrl,
|
75
|
+
meta: alt,
|
76
|
+
shift,
|
77
|
+
paste: false,
|
78
|
+
sequence,
|
79
|
+
kittyProtocol: true,
|
80
|
+
};
|
81
|
+
}
|
82
|
+
if (keyCode === KITTY_KEYCODE_BACKSPACE) {
|
83
|
+
return {
|
84
|
+
name: 'backspace',
|
85
|
+
ctrl,
|
86
|
+
meta: alt,
|
87
|
+
shift,
|
88
|
+
paste: false,
|
89
|
+
sequence,
|
90
|
+
kittyProtocol: true,
|
91
|
+
};
|
92
|
+
}
|
71
93
|
if (keyCode === KITTY_KEYCODE_ENTER ||
|
72
94
|
keyCode === KITTY_KEYCODE_NUMPAD_ENTER) {
|
73
95
|
return {
|