@vybestack/llxprt-code 0.1.19 → 0.1.20
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/README.md +9 -0
- package/dist/package.json +5 -5
- package/dist/src/auth/oauth-manager.spec.js +4 -4
- package/dist/src/auth/oauth-manager.spec.js.map +1 -1
- package/dist/src/commands/mcp/list.js +1 -1
- package/dist/src/commands/mcp/list.js.map +1 -1
- package/dist/src/config/config.d.ts +2 -1
- package/dist/src/config/config.js +174 -19
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/keyBindings.js +4 -0
- package/dist/src/config/keyBindings.js.map +1 -1
- package/dist/src/config/settingsSchema.d.ts +18 -9
- package/dist/src/config/settingsSchema.js +18 -9
- package/dist/src/config/settingsSchema.js.map +1 -1
- package/dist/src/config/trustedFolders.d.ts +36 -0
- package/dist/src/config/trustedFolders.js +112 -0
- package/dist/src/config/trustedFolders.js.map +1 -0
- package/dist/src/gemini.js +8 -16
- package/dist/src/gemini.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +1 -1
- package/dist/src/generated/git-commit.js +1 -1
- package/dist/src/nonInteractiveCli.js +3 -4
- package/dist/src/nonInteractiveCli.js.map +1 -1
- package/dist/src/providers/logging/git-stats.js +0 -1
- package/dist/src/providers/logging/git-stats.js.map +1 -1
- package/dist/src/providers/providerConfigUtils.js +1 -1
- package/dist/src/providers/providerConfigUtils.js.map +1 -1
- package/dist/src/services/BuiltinCommandLoader.js +2 -0
- package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
- package/dist/src/services/todo-continuation/todoContinuationService.d.ts +0 -1
- package/dist/src/services/todo-continuation/todoContinuationService.js +2 -1
- package/dist/src/services/todo-continuation/todoContinuationService.js.map +1 -1
- package/dist/src/ui/App.js +33 -27
- package/dist/src/ui/App.js.map +1 -1
- package/dist/src/ui/IdeIntegrationNudge.js +5 -4
- package/dist/src/ui/IdeIntegrationNudge.js.map +1 -1
- package/dist/src/ui/commands/authCommand.js +1 -1
- package/dist/src/ui/commands/authCommand.js.map +1 -1
- package/dist/src/ui/commands/directoryCommand.js +2 -4
- package/dist/src/ui/commands/directoryCommand.js.map +1 -1
- package/dist/src/ui/commands/ideCommand.js +4 -4
- package/dist/src/ui/commands/ideCommand.js.map +1 -1
- package/dist/src/ui/commands/keyCommand.js +1 -1
- package/dist/src/ui/commands/keyCommand.js.map +1 -1
- package/dist/src/ui/commands/keyfileCommand.js +1 -1
- package/dist/src/ui/commands/keyfileCommand.js.map +1 -1
- package/dist/src/ui/commands/mcpCommand.js +10 -6
- package/dist/src/ui/commands/mcpCommand.js.map +1 -1
- package/dist/src/ui/commands/setCommand.js +43 -3
- package/dist/src/ui/commands/setCommand.js.map +1 -1
- package/dist/src/ui/commands/setupGithubCommand.js +5 -16
- package/dist/src/ui/commands/setupGithubCommand.js.map +1 -1
- package/dist/src/ui/commands/terminalSetupCommand.d.ts +13 -0
- package/dist/src/ui/commands/terminalSetupCommand.js +41 -0
- package/dist/src/ui/commands/terminalSetupCommand.js.map +1 -0
- package/dist/src/ui/commands/types.d.ts +1 -0
- package/dist/src/ui/commands/types.js.map +1 -1
- package/dist/src/ui/components/AuthDialog.js +7 -12
- package/dist/src/ui/components/AuthDialog.js.map +1 -1
- package/dist/src/ui/components/AuthInProgress.js +5 -4
- package/dist/src/ui/components/AuthInProgress.js.map +1 -1
- package/dist/src/ui/components/DebugProfiler.js +5 -4
- package/dist/src/ui/components/DebugProfiler.js.map +1 -1
- package/dist/src/ui/components/DetailedMessagesDisplay.js +4 -4
- package/dist/src/ui/components/DetailedMessagesDisplay.js.map +1 -1
- package/dist/src/ui/components/EditorSettingsDialog.js +6 -5
- package/dist/src/ui/components/EditorSettingsDialog.js.map +1 -1
- package/dist/src/ui/components/ErrorBoundary.js +2 -2
- package/dist/src/ui/components/ErrorBoundary.js.map +1 -1
- package/dist/src/ui/components/FolderTrustDialog.js +5 -4
- package/dist/src/ui/components/FolderTrustDialog.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.js +7 -1
- package/dist/src/ui/components/InputPrompt.js.map +1 -1
- package/dist/src/ui/components/LoggingDialog.js +5 -1
- package/dist/src/ui/components/LoggingDialog.js.map +1 -1
- package/dist/src/ui/components/SettingsDialog.js +12 -10
- package/dist/src/ui/components/SettingsDialog.js.map +1 -1
- package/dist/src/ui/components/ShellConfirmationDialog.js +5 -4
- package/dist/src/ui/components/ShellConfirmationDialog.js.map +1 -1
- package/dist/src/ui/components/ThemeDialog.js +6 -5
- package/dist/src/ui/components/ThemeDialog.js.map +1 -1
- package/dist/src/ui/components/TodoPanel.js +2 -2
- package/dist/src/ui/components/TodoPanel.js.map +1 -1
- package/dist/src/ui/components/messages/InfoMessage.js +1 -1
- package/dist/src/ui/components/messages/InfoMessage.js.map +1 -1
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js +7 -6
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
- package/dist/src/ui/components/shared/RadioButtonSelect.js +11 -9
- package/dist/src/ui/components/shared/RadioButtonSelect.js.map +1 -1
- package/dist/src/ui/components/shared/text-buffer.js +32 -10
- package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
- package/dist/src/ui/components/shared/vim-buffer-actions.js +2 -1
- package/dist/src/ui/components/shared/vim-buffer-actions.js.map +1 -1
- package/dist/src/ui/containers/SessionController.js +23 -23
- package/dist/src/ui/containers/SessionController.js.map +1 -1
- package/dist/src/ui/hooks/atCommandProcessor.js +1 -1
- package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.js +7 -1
- package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/useAutoAcceptIndicator.js +5 -5
- package/dist/src/ui/hooks/useAutoAcceptIndicator.js.map +1 -1
- package/dist/src/ui/hooks/useFocus.d.ts +4 -0
- package/dist/src/ui/hooks/useFocus.js +4 -4
- package/dist/src/ui/hooks/useFocus.js.map +1 -1
- package/dist/src/ui/hooks/useFolderTrust.d.ts +3 -2
- package/dist/src/ui/hooks/useFolderTrust.js +24 -9
- package/dist/src/ui/hooks/useFolderTrust.js.map +1 -1
- package/dist/src/ui/hooks/useGeminiStream.js +81 -23
- package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
- package/dist/src/ui/hooks/useKeypress.d.ts +9 -1
- package/dist/src/ui/hooks/useKeypress.js +191 -8
- package/dist/src/ui/hooks/useKeypress.js.map +1 -1
- package/dist/src/ui/hooks/useKittyKeyboardProtocol.d.ts +15 -0
- package/dist/src/ui/hooks/useKittyKeyboardProtocol.js +20 -0
- package/dist/src/ui/hooks/useKittyKeyboardProtocol.js.map +1 -0
- package/dist/src/ui/privacy/CloudFreePrivacyNotice.js +5 -4
- package/dist/src/ui/privacy/CloudFreePrivacyNotice.js.map +1 -1
- package/dist/src/ui/privacy/CloudPaidPrivacyNotice.js +5 -4
- package/dist/src/ui/privacy/CloudPaidPrivacyNotice.js.map +1 -1
- package/dist/src/ui/privacy/GeminiPrivacyNotice.js +5 -4
- package/dist/src/ui/privacy/GeminiPrivacyNotice.js.map +1 -1
- package/dist/src/ui/reducers/sessionReducer.js +1 -0
- package/dist/src/ui/reducers/sessionReducer.js.map +1 -1
- package/dist/src/ui/utils/kittyProtocolDetector.d.ts +13 -0
- package/dist/src/ui/utils/kittyProtocolDetector.js +88 -0
- package/dist/src/ui/utils/kittyProtocolDetector.js.map +1 -0
- package/dist/src/ui/utils/platformConstants.d.ts +38 -0
- package/dist/src/ui/utils/platformConstants.js +39 -0
- package/dist/src/ui/utils/platformConstants.js.map +1 -0
- package/dist/src/ui/utils/renderLoopDetector.js +3 -3
- package/dist/src/ui/utils/renderLoopDetector.js.map +1 -1
- package/dist/src/ui/utils/terminalSetup.d.ts +30 -0
- package/dist/src/ui/utils/terminalSetup.js +281 -0
- package/dist/src/ui/utils/terminalSetup.js.map +1 -0
- package/dist/src/utils/checks.d.ts +19 -0
- package/dist/src/utils/checks.js +24 -0
- package/dist/src/utils/checks.js.map +1 -0
- package/dist/src/utils/privacy/ConversationDataRedactor.d.ts +0 -2
- package/dist/src/utils/privacy/ConversationDataRedactor.js +4 -37
- package/dist/src/utils/privacy/ConversationDataRedactor.js.map +1 -1
- package/dist/src/zed-integration/acp.d.ts +63 -0
- package/dist/src/{acp → zed-integration}/acp.js +76 -44
- package/dist/src/zed-integration/acp.js.map +1 -0
- package/dist/src/zed-integration/schema.d.ts +11679 -0
- package/dist/src/zed-integration/schema.js +305 -0
- package/dist/src/zed-integration/schema.js.map +1 -0
- package/dist/src/zed-integration/zedIntegration.d.ts +10 -0
- package/dist/src/{acp/acpPeer.js → zed-integration/zedIntegration.js} +333 -188
- package/dist/src/zed-integration/zedIntegration.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/dist/src/acp/acp.d.ts +0 -208
- package/dist/src/acp/acp.js.map +0 -1
- package/dist/src/acp/acpPeer.d.ts +0 -8
- package/dist/src/acp/acpPeer.js.map +0 -1
- package/dist/src/ui/utils/errorParsing.d.ts +0 -7
- package/dist/src/ui/utils/errorParsing.js +0 -106
- package/dist/src/ui/utils/errorParsing.js.map +0 -1
@@ -3,59 +3,82 @@
|
|
3
3
|
* Copyright 2025 Google LLC
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
5
5
|
*/
|
6
|
-
|
6
|
+
/* ACP defines a schema for a simple (experimental) JSON-RPC protocol that allows GUI applications to interact with agents. */
|
7
|
+
import { z } from 'zod';
|
8
|
+
import * as schema from './schema.js';
|
9
|
+
export * from './schema.js';
|
10
|
+
export class AgentSideConnection {
|
7
11
|
#connection;
|
8
|
-
constructor(
|
9
|
-
|
12
|
+
constructor(toAgent, input, output) {
|
13
|
+
const agent = toAgent(this);
|
14
|
+
const handler = async (method, params) => {
|
15
|
+
switch (method) {
|
16
|
+
case schema.AGENT_METHODS.initialize: {
|
17
|
+
const validatedParams = schema.initializeRequestSchema.parse(params);
|
18
|
+
return agent.initialize(validatedParams);
|
19
|
+
}
|
20
|
+
case schema.AGENT_METHODS.session_new: {
|
21
|
+
const validatedParams = schema.newSessionRequestSchema.parse(params);
|
22
|
+
return agent.newSession(validatedParams);
|
23
|
+
}
|
24
|
+
case schema.AGENT_METHODS.session_load: {
|
25
|
+
if (!agent.loadSession) {
|
26
|
+
throw RequestError.methodNotFound();
|
27
|
+
}
|
28
|
+
const validatedParams = schema.loadSessionRequestSchema.parse(params);
|
29
|
+
return agent.loadSession(validatedParams);
|
30
|
+
}
|
31
|
+
case schema.AGENT_METHODS.authenticate: {
|
32
|
+
const validatedParams = schema.authenticateRequestSchema.parse(params);
|
33
|
+
return agent.authenticate(validatedParams);
|
34
|
+
}
|
35
|
+
case schema.AGENT_METHODS.session_prompt: {
|
36
|
+
const validatedParams = schema.promptRequestSchema.parse(params);
|
37
|
+
return agent.prompt(validatedParams);
|
38
|
+
}
|
39
|
+
case schema.AGENT_METHODS.session_cancel: {
|
40
|
+
const validatedParams = schema.cancelNotificationSchema.parse(params);
|
41
|
+
return agent.cancel(validatedParams);
|
42
|
+
}
|
43
|
+
default:
|
44
|
+
throw RequestError.methodNotFound(method);
|
45
|
+
}
|
46
|
+
};
|
47
|
+
this.#connection = new Connection(handler, input, output);
|
10
48
|
}
|
11
49
|
/**
|
12
|
-
* Streams
|
50
|
+
* Streams new content to the client including text, tool calls, etc.
|
13
51
|
*/
|
14
|
-
async
|
15
|
-
await this.#connection.
|
52
|
+
async sessionUpdate(params) {
|
53
|
+
return await this.#connection.sendNotification(schema.CLIENT_METHODS.session_update, params);
|
16
54
|
}
|
17
55
|
/**
|
18
|
-
* Request
|
56
|
+
* Request permission before running a tool
|
19
57
|
*
|
20
|
-
*
|
21
|
-
*
|
58
|
+
* The agent specifies a series of permission options with different granularity,
|
59
|
+
* and the client returns the chosen one.
|
22
60
|
*/
|
23
|
-
|
24
|
-
return this.#connection.sendRequest(
|
61
|
+
async requestPermission(params) {
|
62
|
+
return await this.#connection.sendRequest(schema.CLIENT_METHODS.session_request_permission, params);
|
25
63
|
}
|
26
|
-
|
27
|
-
|
28
|
-
* when it does not need to request permission to do so.
|
29
|
-
*
|
30
|
-
* The returned id can be used to update the UI for the tool
|
31
|
-
* call as needed.
|
32
|
-
*/
|
33
|
-
pushToolCall(params) {
|
34
|
-
return this.#connection.sendRequest('pushToolCall', params);
|
64
|
+
async readTextFile(params) {
|
65
|
+
return await this.#connection.sendRequest(schema.CLIENT_METHODS.fs_read_text_file, params);
|
35
66
|
}
|
36
|
-
|
37
|
-
|
38
|
-
*
|
39
|
-
* The new content replaces what is currently displayed in the UI.
|
40
|
-
*
|
41
|
-
* The [`ToolCallId`] is included in the response of
|
42
|
-
* `pushToolCall` or `requestToolCallConfirmation` respectively.
|
43
|
-
*/
|
44
|
-
async updateToolCall(params) {
|
45
|
-
await this.#connection.sendRequest('updateToolCall', params);
|
67
|
+
async writeTextFile(params) {
|
68
|
+
return await this.#connection.sendRequest(schema.CLIENT_METHODS.fs_write_text_file, params);
|
46
69
|
}
|
47
70
|
}
|
48
71
|
class Connection {
|
49
72
|
#pendingResponses = new Map();
|
50
73
|
#nextRequestId = 0;
|
51
|
-
#
|
74
|
+
#handler;
|
52
75
|
#peerInput;
|
53
76
|
#writeQueue = Promise.resolve();
|
54
77
|
#textEncoder;
|
55
|
-
constructor(
|
78
|
+
constructor(handler, peerInput, peerOutput) {
|
79
|
+
this.#handler = handler;
|
56
80
|
this.#peerInput = peerInput;
|
57
81
|
this.#textEncoder = new TextEncoder();
|
58
|
-
this.#delegate = delegate;
|
59
82
|
this.#receive(peerOutput);
|
60
83
|
}
|
61
84
|
async #receive(output) {
|
@@ -75,31 +98,36 @@ class Connection {
|
|
75
98
|
}
|
76
99
|
}
|
77
100
|
async #processMessage(message) {
|
78
|
-
if ('method' in message) {
|
79
|
-
|
101
|
+
if ('method' in message && 'id' in message) {
|
102
|
+
// It's a request
|
103
|
+
const response = await this.#tryCallHandler(message.method, message.params);
|
80
104
|
await this.#sendMessage({
|
81
105
|
jsonrpc: '2.0',
|
82
106
|
id: message.id,
|
83
107
|
...response,
|
84
108
|
});
|
85
109
|
}
|
86
|
-
else {
|
110
|
+
else if ('method' in message) {
|
111
|
+
// It's a notification
|
112
|
+
await this.#tryCallHandler(message.method, message.params);
|
113
|
+
}
|
114
|
+
else if ('id' in message) {
|
115
|
+
// It's a response
|
87
116
|
this.#handleResponse(message);
|
88
117
|
}
|
89
118
|
}
|
90
|
-
async #
|
91
|
-
const methodName = method;
|
92
|
-
if (typeof this.#delegate[methodName] !== 'function') {
|
93
|
-
return RequestError.methodNotFound(method).toResult();
|
94
|
-
}
|
119
|
+
async #tryCallHandler(method, params) {
|
95
120
|
try {
|
96
|
-
const result = await this.#
|
121
|
+
const result = await this.#handler(method, params);
|
97
122
|
return { result: result ?? null };
|
98
123
|
}
|
99
124
|
catch (error) {
|
100
125
|
if (error instanceof RequestError) {
|
101
126
|
return error.toResult();
|
102
127
|
}
|
128
|
+
if (error instanceof z.ZodError) {
|
129
|
+
return RequestError.invalidParams(JSON.stringify(error.format(), undefined, 2)).toResult();
|
130
|
+
}
|
103
131
|
let details;
|
104
132
|
if (error instanceof Error) {
|
105
133
|
details = error.message;
|
@@ -133,6 +161,9 @@ class Connection {
|
|
133
161
|
await this.#sendMessage({ jsonrpc: '2.0', id, method, params });
|
134
162
|
return responsePromise;
|
135
163
|
}
|
164
|
+
async sendNotification(method, params) {
|
165
|
+
await this.#sendMessage({ jsonrpc: '2.0', method, params });
|
166
|
+
}
|
136
167
|
async #sendMessage(json) {
|
137
168
|
const content = JSON.stringify(json) + '\n';
|
138
169
|
this.#writeQueue = this.#writeQueue
|
@@ -178,6 +209,9 @@ export class RequestError extends Error {
|
|
178
209
|
static internalError(details) {
|
179
210
|
return new RequestError(-32603, 'Internal error', details);
|
180
211
|
}
|
212
|
+
static authRequired(details) {
|
213
|
+
return new RequestError(-32000, 'Authentication required', details);
|
214
|
+
}
|
181
215
|
toResult() {
|
182
216
|
return {
|
183
217
|
error: {
|
@@ -188,6 +222,4 @@ export class RequestError extends Error {
|
|
188
222
|
};
|
189
223
|
}
|
190
224
|
}
|
191
|
-
// Protocol types
|
192
|
-
export const LATEST_PROTOCOL_VERSION = '0.0.9';
|
193
225
|
//# sourceMappingURL=acp.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"acp.js","sourceRoot":"","sources":["../../../src/zed-integration/acp.ts"],"names":[],"mappings":"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"}
|