@google/gemini-cli-core 0.7.0-preview.0 → 0.7.1-reland
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/index.d.ts +2 -3
- package/dist/index.js +2 -3
- package/dist/index.js.map +1 -1
- package/dist/src/config/config.d.ts +0 -7
- package/dist/src/config/config.js +1 -29
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/core/client.js +2 -1
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/client.test.js +39 -0
- package/dist/src/core/client.test.js.map +1 -1
- package/dist/src/core/geminiChat.d.ts +3 -4
- package/dist/src/core/geminiChat.js +52 -44
- package/dist/src/core/geminiChat.js.map +1 -1
- package/dist/src/core/geminiChat.test.js +26 -115
- package/dist/src/core/geminiChat.test.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +2 -2
- package/dist/src/generated/git-commit.js +2 -2
- package/dist/src/generated/git-commit.js.map +1 -1
- package/dist/src/ide/detect-ide.d.ts +2 -4
- package/dist/src/ide/detect-ide.js +1 -7
- package/dist/src/ide/detect-ide.js.map +1 -1
- package/dist/src/ide/detect-ide.test.js +0 -23
- package/dist/src/ide/detect-ide.test.js.map +1 -1
- package/dist/src/ide/ide-client.d.ts +1 -2
- package/dist/src/ide/ide-client.js +17 -22
- package/dist/src/ide/ide-client.js.map +1 -1
- package/dist/src/ide/ide-client.test.js +2 -2
- package/dist/src/ide/ide-client.test.js.map +1 -1
- package/dist/src/index.d.ts +0 -1
- package/dist/src/index.js +0 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/routing/strategies/compositeStrategy.js +3 -4
- package/dist/src/routing/strategies/compositeStrategy.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +2 -6
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +0 -34
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +1 -3
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +0 -4
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
- package/dist/src/telemetry/constants.d.ts +0 -3
- package/dist/src/telemetry/constants.js +0 -3
- package/dist/src/telemetry/constants.js.map +1 -1
- package/dist/src/telemetry/index.d.ts +1 -2
- package/dist/src/telemetry/index.js +1 -2
- package/dist/src/telemetry/index.js.map +1 -1
- package/dist/src/telemetry/loggers.d.ts +1 -3
- package/dist/src/telemetry/loggers.js +2 -36
- package/dist/src/telemetry/loggers.js.map +1 -1
- package/dist/src/telemetry/loggers.test.js +3 -31
- package/dist/src/telemetry/loggers.test.js.map +1 -1
- package/dist/src/telemetry/metrics.d.ts +1 -2
- package/dist/src/telemetry/metrics.js +1 -14
- package/dist/src/telemetry/metrics.js.map +1 -1
- package/dist/src/telemetry/sdk.js +1 -4
- package/dist/src/telemetry/sdk.js.map +1 -1
- package/dist/src/telemetry/sdk.test.js +0 -13
- package/dist/src/telemetry/sdk.test.js.map +1 -1
- package/dist/src/telemetry/types.d.ts +3 -18
- package/dist/src/telemetry/types.js +2 -28
- package/dist/src/telemetry/types.js.map +1 -1
- package/dist/src/tools/ripGrep.js +1 -1
- package/dist/src/tools/ripGrep.js.map +1 -1
- package/dist/src/tools/ripGrep.test.js +2 -2
- package/dist/src/tools/ripGrep.test.js.map +1 -1
- package/dist/src/tools/tools.d.ts +3 -11
- package/dist/src/tools/tools.js +3 -94
- package/dist/src/tools/tools.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/dist/src/telemetry/config.d.ts +0 -31
- package/dist/src/telemetry/config.js +0 -76
- package/dist/src/telemetry/config.js.map +0 -1
- package/dist/src/telemetry/config.test.d.ts +0 -6
- package/dist/src/telemetry/config.test.js +0 -124
- package/dist/src/telemetry/config.test.js.map +0 -1
- package/dist/src/tools/message-bus-integration.test.d.ts +0 -6
- package/dist/src/tools/message-bus-integration.test.js +0 -183
- package/dist/src/tools/message-bus-integration.test.js.map +0 -1
- package/dist/src/tools/write-todos.d.ts +0 -25
- package/dist/src/tools/write-todos.js +0 -150
- package/dist/src/tools/write-todos.js.map +0 -1
- package/dist/src/tools/write-todos.test.d.ts +0 -6
- package/dist/src/tools/write-todos.test.js +0 -89
- package/dist/src/tools/write-todos.test.js.map +0 -1
package/dist/src/tools/tools.js
CHANGED
|
@@ -5,109 +5,20 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { ToolErrorType } from './tool-error.js';
|
|
7
7
|
import { SchemaValidator } from '../utils/schemaValidator.js';
|
|
8
|
-
import { randomUUID } from 'node:crypto';
|
|
9
|
-
import { MessageBusType, } from '../confirmation-bus/types.js';
|
|
10
8
|
/**
|
|
11
9
|
* A convenience base class for ToolInvocation.
|
|
12
10
|
*/
|
|
13
11
|
export class BaseToolInvocation {
|
|
14
12
|
params;
|
|
15
|
-
|
|
16
|
-
constructor(params, messageBus) {
|
|
13
|
+
constructor(params) {
|
|
17
14
|
this.params = params;
|
|
18
|
-
this.messageBus = messageBus;
|
|
19
|
-
if (this.messageBus) {
|
|
20
|
-
console.log(`[DEBUG] Tool ${this.constructor.name} created with messageBus: YES`);
|
|
21
|
-
}
|
|
22
15
|
}
|
|
23
16
|
toolLocations() {
|
|
24
17
|
return [];
|
|
25
18
|
}
|
|
26
19
|
shouldConfirmExecute(_abortSignal) {
|
|
27
|
-
// If message bus is available, use it for confirmation
|
|
28
|
-
if (this.messageBus) {
|
|
29
|
-
console.log(`[DEBUG] Using message bus for tool confirmation: ${this.constructor.name}`);
|
|
30
|
-
return this.handleMessageBusConfirmation(_abortSignal);
|
|
31
|
-
}
|
|
32
|
-
// Fall back to existing confirmation flow
|
|
33
20
|
return Promise.resolve(false);
|
|
34
21
|
}
|
|
35
|
-
/**
|
|
36
|
-
* Handle tool confirmation using the message bus.
|
|
37
|
-
* This method publishes a confirmation request and waits for the response.
|
|
38
|
-
*/
|
|
39
|
-
async handleMessageBusConfirmation(abortSignal) {
|
|
40
|
-
if (!this.messageBus) {
|
|
41
|
-
return false;
|
|
42
|
-
}
|
|
43
|
-
const correlationId = randomUUID();
|
|
44
|
-
const toolCall = {
|
|
45
|
-
name: this.constructor.name,
|
|
46
|
-
args: this.params,
|
|
47
|
-
};
|
|
48
|
-
return new Promise((resolve, reject) => {
|
|
49
|
-
if (!this.messageBus) {
|
|
50
|
-
resolve(false);
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
let timeoutId;
|
|
54
|
-
// Centralized cleanup function
|
|
55
|
-
const cleanup = () => {
|
|
56
|
-
if (timeoutId) {
|
|
57
|
-
clearTimeout(timeoutId);
|
|
58
|
-
timeoutId = undefined;
|
|
59
|
-
}
|
|
60
|
-
abortSignal.removeEventListener('abort', abortHandler);
|
|
61
|
-
this.messageBus?.unsubscribe(MessageBusType.TOOL_CONFIRMATION_RESPONSE, responseHandler);
|
|
62
|
-
};
|
|
63
|
-
// Set up abort handler
|
|
64
|
-
const abortHandler = () => {
|
|
65
|
-
cleanup();
|
|
66
|
-
reject(new Error('Tool confirmation aborted'));
|
|
67
|
-
};
|
|
68
|
-
// Check if already aborted
|
|
69
|
-
if (abortSignal.aborted) {
|
|
70
|
-
reject(new Error('Tool confirmation aborted'));
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
// Set up response handler
|
|
74
|
-
const responseHandler = (response) => {
|
|
75
|
-
if (response.correlationId === correlationId) {
|
|
76
|
-
cleanup();
|
|
77
|
-
if (response.confirmed) {
|
|
78
|
-
// Tool was confirmed, return false to indicate no further confirmation needed
|
|
79
|
-
resolve(false);
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
// Tool was denied, reject to prevent execution
|
|
83
|
-
reject(new Error('Tool execution denied by policy'));
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
// Add event listener for abort signal
|
|
88
|
-
abortSignal.addEventListener('abort', abortHandler);
|
|
89
|
-
// Set up timeout
|
|
90
|
-
timeoutId = setTimeout(() => {
|
|
91
|
-
cleanup();
|
|
92
|
-
resolve(false);
|
|
93
|
-
}, 30000); // 30 second timeout
|
|
94
|
-
// Subscribe to response
|
|
95
|
-
this.messageBus.subscribe(MessageBusType.TOOL_CONFIRMATION_RESPONSE, responseHandler);
|
|
96
|
-
// Publish confirmation request
|
|
97
|
-
const request = {
|
|
98
|
-
type: MessageBusType.TOOL_CONFIRMATION_REQUEST,
|
|
99
|
-
toolCall,
|
|
100
|
-
correlationId,
|
|
101
|
-
};
|
|
102
|
-
try {
|
|
103
|
-
this.messageBus.publish(request);
|
|
104
|
-
}
|
|
105
|
-
catch (_error) {
|
|
106
|
-
cleanup();
|
|
107
|
-
resolve(false);
|
|
108
|
-
}
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
22
|
}
|
|
112
23
|
/**
|
|
113
24
|
* New base class for tools that separates validation from execution.
|
|
@@ -121,8 +32,7 @@ export class DeclarativeTool {
|
|
|
121
32
|
parameterSchema;
|
|
122
33
|
isOutputMarkdown;
|
|
123
34
|
canUpdateOutput;
|
|
124
|
-
|
|
125
|
-
constructor(name, displayName, description, kind, parameterSchema, isOutputMarkdown = true, canUpdateOutput = false, messageBus) {
|
|
35
|
+
constructor(name, displayName, description, kind, parameterSchema, isOutputMarkdown = true, canUpdateOutput = false) {
|
|
126
36
|
this.name = name;
|
|
127
37
|
this.displayName = displayName;
|
|
128
38
|
this.description = description;
|
|
@@ -130,7 +40,6 @@ export class DeclarativeTool {
|
|
|
130
40
|
this.parameterSchema = parameterSchema;
|
|
131
41
|
this.isOutputMarkdown = isOutputMarkdown;
|
|
132
42
|
this.canUpdateOutput = canUpdateOutput;
|
|
133
|
-
this.messageBus = messageBus;
|
|
134
43
|
}
|
|
135
44
|
get schema() {
|
|
136
45
|
return {
|
|
@@ -226,7 +135,7 @@ export class BaseDeclarativeTool extends DeclarativeTool {
|
|
|
226
135
|
if (validationError) {
|
|
227
136
|
throw new Error(validationError);
|
|
228
137
|
}
|
|
229
|
-
return this.createInvocation(params
|
|
138
|
+
return this.createInvocation(params);
|
|
230
139
|
}
|
|
231
140
|
validateToolParams(params) {
|
|
232
141
|
const errors = SchemaValidator.validate(this.schema.parametersJsonSchema, params);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/tools/tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/tools/tools.ts"],"names":[],"mappings":"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"}
|