@google/gemini-cli-core 0.25.0-preview.0 → 0.26.0-nightly.20260115.6cb3ae4e0

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 (70) hide show
  1. package/dist/docs/architecture.md +3 -3
  2. package/dist/docs/changelogs/index.md +25 -0
  3. package/dist/docs/changelogs/latest.md +150 -138
  4. package/dist/docs/changelogs/preview.md +211 -118
  5. package/dist/docs/changelogs/releases.md +406 -25
  6. package/dist/docs/cli/commands.md +7 -0
  7. package/dist/docs/cli/keyboard-shortcuts.md +18 -16
  8. package/dist/docs/cli/rewind.md +51 -0
  9. package/dist/docs/cli/settings.md +1 -0
  10. package/dist/docs/cli/skills.md +8 -8
  11. package/dist/docs/get-started/configuration.md +12 -1
  12. package/dist/docs/sidebar.json +4 -0
  13. package/dist/docs/tools/mcp-server.md +2 -1
  14. package/dist/docs/troubleshooting.md +2 -1
  15. package/dist/src/agents/a2a-client-manager.js +1 -1
  16. package/dist/src/agents/a2a-client-manager.js.map +1 -1
  17. package/dist/src/agents/registry.js +9 -4
  18. package/dist/src/agents/registry.js.map +1 -1
  19. package/dist/src/config/config.d.ts +9 -1
  20. package/dist/src/config/config.js +16 -0
  21. package/dist/src/config/config.js.map +1 -1
  22. package/dist/src/config/config.test.js +20 -0
  23. package/dist/src/config/config.test.js.map +1 -1
  24. package/dist/src/confirmation-bus/types.d.ts +52 -2
  25. package/dist/src/confirmation-bus/types.js +1 -0
  26. package/dist/src/confirmation-bus/types.js.map +1 -1
  27. package/dist/src/core/contentGenerator.js +2 -1
  28. package/dist/src/core/contentGenerator.js.map +1 -1
  29. package/dist/src/core/coreToolScheduler.test.js +7 -4
  30. package/dist/src/core/coreToolScheduler.test.js.map +1 -1
  31. package/dist/src/generated/git-commit.d.ts +2 -2
  32. package/dist/src/generated/git-commit.js +2 -2
  33. package/dist/src/generated/git-commit.js.map +1 -1
  34. package/dist/src/scheduler/state-manager.d.ts +67 -0
  35. package/dist/src/scheduler/state-manager.js +335 -0
  36. package/dist/src/scheduler/state-manager.js.map +1 -0
  37. package/dist/src/scheduler/state-manager.test.d.ts +6 -0
  38. package/dist/src/scheduler/state-manager.test.js +386 -0
  39. package/dist/src/scheduler/state-manager.test.js.map +1 -0
  40. package/dist/src/scheduler/types.d.ts +10 -1
  41. package/dist/src/skills/builtin/skill-creator/SKILL.md +382 -0
  42. package/dist/src/skills/builtin/skill-creator/scripts/init_skill.cjs +235 -0
  43. package/dist/src/skills/builtin/skill-creator/scripts/package_skill.cjs +87 -0
  44. package/dist/src/skills/builtin/skill-creator/scripts/validate_skill.cjs +127 -0
  45. package/dist/src/skills/skillLoader.js +65 -9
  46. package/dist/src/skills/skillLoader.js.map +1 -1
  47. package/dist/src/skills/skillLoader.test.js +110 -0
  48. package/dist/src/skills/skillLoader.test.js.map +1 -1
  49. package/dist/src/skills/skillManager.d.ts +2 -2
  50. package/dist/src/skills/skillManager.js +17 -6
  51. package/dist/src/skills/skillManager.js.map +1 -1
  52. package/dist/src/skills/skillManager.test.js +91 -4
  53. package/dist/src/skills/skillManager.test.js.map +1 -1
  54. package/dist/src/test-utils/mock-tool.d.ts +1 -0
  55. package/dist/src/test-utils/mock-tool.js +1 -0
  56. package/dist/src/test-utils/mock-tool.js.map +1 -1
  57. package/dist/src/tools/shell.js +1 -0
  58. package/dist/src/tools/shell.js.map +1 -1
  59. package/dist/src/tools/tools.d.ts +1 -0
  60. package/dist/src/tools/tools.js.map +1 -1
  61. package/dist/src/utils/shell-utils.js +18 -2
  62. package/dist/src/utils/shell-utils.js.map +1 -1
  63. package/dist/src/utils/shell-utils.test.js +23 -0
  64. package/dist/src/utils/shell-utils.test.js.map +1 -1
  65. package/dist/src/utils/tokenCalculation.js +10 -2
  66. package/dist/src/utils/tokenCalculation.js.map +1 -1
  67. package/dist/src/utils/tokenCalculation.test.js +20 -0
  68. package/dist/src/utils/tokenCalculation.test.js.map +1 -1
  69. package/dist/tsconfig.tsbuildinfo +1 -1
  70. package/package.json +1 -1
@@ -0,0 +1,335 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { MessageBusType, } from '../confirmation-bus/types.js';
7
+ /**
8
+ * Manages the state of tool calls.
9
+ * Publishes state changes to the MessageBus via TOOL_CALLS_UPDATE events.
10
+ */
11
+ export class SchedulerStateManager {
12
+ messageBus;
13
+ activeCalls = new Map();
14
+ queue = [];
15
+ _completedBatch = [];
16
+ constructor(messageBus) {
17
+ this.messageBus = messageBus;
18
+ }
19
+ addToolCalls(calls) {
20
+ this.enqueue(calls);
21
+ }
22
+ getToolCall(callId) {
23
+ return (this.activeCalls.get(callId) ||
24
+ this.queue.find((c) => c.request.callId === callId) ||
25
+ this._completedBatch.find((c) => c.request.callId === callId));
26
+ }
27
+ enqueue(calls) {
28
+ this.queue.push(...calls);
29
+ this.emitUpdate();
30
+ }
31
+ dequeue() {
32
+ const next = this.queue.shift();
33
+ if (next) {
34
+ this.activeCalls.set(next.request.callId, next);
35
+ this.emitUpdate();
36
+ }
37
+ return next;
38
+ }
39
+ get isActive() {
40
+ return this.activeCalls.size > 0;
41
+ }
42
+ get activeCallCount() {
43
+ return this.activeCalls.size;
44
+ }
45
+ get queueLength() {
46
+ return this.queue.length;
47
+ }
48
+ get firstActiveCall() {
49
+ return this.activeCalls.values().next().value;
50
+ }
51
+ updateStatus(callId, status, auxiliaryData) {
52
+ const call = this.activeCalls.get(callId);
53
+ if (!call)
54
+ return;
55
+ const updatedCall = this.transitionCall(call, status, auxiliaryData);
56
+ this.activeCalls.set(callId, updatedCall);
57
+ this.emitUpdate();
58
+ }
59
+ finalizeCall(callId) {
60
+ const call = this.activeCalls.get(callId);
61
+ if (!call)
62
+ return;
63
+ if (this.isTerminalCall(call)) {
64
+ this._completedBatch.push(call);
65
+ this.activeCalls.delete(callId);
66
+ }
67
+ }
68
+ updateArgs(callId, newArgs, newInvocation) {
69
+ const call = this.activeCalls.get(callId);
70
+ if (!call || call.status === 'error')
71
+ return;
72
+ this.activeCalls.set(callId, this.patchCall(call, {
73
+ request: { ...call.request, args: newArgs },
74
+ invocation: newInvocation,
75
+ }));
76
+ this.emitUpdate();
77
+ }
78
+ setOutcome(callId, outcome) {
79
+ const call = this.activeCalls.get(callId);
80
+ if (!call)
81
+ return;
82
+ this.activeCalls.set(callId, this.patchCall(call, { outcome }));
83
+ this.emitUpdate();
84
+ }
85
+ cancelAllQueued(reason) {
86
+ while (this.queue.length > 0) {
87
+ const queuedCall = this.queue.shift();
88
+ if (queuedCall.status === 'error') {
89
+ this._completedBatch.push(queuedCall);
90
+ continue;
91
+ }
92
+ this._completedBatch.push(this.toCancelled(queuedCall, reason));
93
+ }
94
+ this.emitUpdate();
95
+ }
96
+ getSnapshot() {
97
+ return [
98
+ ...this._completedBatch,
99
+ ...Array.from(this.activeCalls.values()),
100
+ ...this.queue,
101
+ ];
102
+ }
103
+ clearBatch() {
104
+ if (this._completedBatch.length === 0)
105
+ return;
106
+ this._completedBatch = [];
107
+ this.emitUpdate();
108
+ }
109
+ get completedBatch() {
110
+ return [...this._completedBatch];
111
+ }
112
+ emitUpdate() {
113
+ const snapshot = this.getSnapshot();
114
+ // Fire and forget - The message bus handles the publish and error handling.
115
+ void this.messageBus.publish({
116
+ type: MessageBusType.TOOL_CALLS_UPDATE,
117
+ toolCalls: snapshot,
118
+ });
119
+ }
120
+ isTerminalCall(call) {
121
+ const { status } = call;
122
+ return status === 'success' || status === 'error' || status === 'cancelled';
123
+ }
124
+ transitionCall(call, newStatus, auxiliaryData) {
125
+ switch (newStatus) {
126
+ case 'success': {
127
+ if (!this.isToolCallResponseInfo(auxiliaryData)) {
128
+ throw new Error(`Invalid data for 'success' transition (callId: ${call.request.callId})`);
129
+ }
130
+ return this.toSuccess(call, auxiliaryData);
131
+ }
132
+ case 'error': {
133
+ if (!this.isToolCallResponseInfo(auxiliaryData)) {
134
+ throw new Error(`Invalid data for 'error' transition (callId: ${call.request.callId})`);
135
+ }
136
+ return this.toError(call, auxiliaryData);
137
+ }
138
+ case 'awaiting_approval': {
139
+ if (!auxiliaryData) {
140
+ throw new Error(`Missing data for 'awaiting_approval' transition (callId: ${call.request.callId})`);
141
+ }
142
+ return this.toAwaitingApproval(call, auxiliaryData);
143
+ }
144
+ case 'scheduled':
145
+ return this.toScheduled(call);
146
+ case 'cancelled': {
147
+ if (typeof auxiliaryData !== 'string') {
148
+ throw new Error(`Invalid reason (string) for 'cancelled' transition (callId: ${call.request.callId})`);
149
+ }
150
+ return this.toCancelled(call, auxiliaryData);
151
+ }
152
+ case 'validating':
153
+ return this.toValidating(call);
154
+ case 'executing': {
155
+ if (auxiliaryData !== undefined &&
156
+ !this.isExecutingToolCallPatch(auxiliaryData)) {
157
+ throw new Error(`Invalid patch for 'executing' transition (callId: ${call.request.callId})`);
158
+ }
159
+ return this.toExecuting(call, auxiliaryData);
160
+ }
161
+ default: {
162
+ const exhaustiveCheck = newStatus;
163
+ return exhaustiveCheck;
164
+ }
165
+ }
166
+ }
167
+ isToolCallResponseInfo(data) {
168
+ return (typeof data === 'object' &&
169
+ data !== null &&
170
+ 'callId' in data &&
171
+ 'responseParts' in data);
172
+ }
173
+ isExecutingToolCallPatch(data) {
174
+ // A partial can be an empty object, but it must be a non-null object.
175
+ return typeof data === 'object' && data !== null;
176
+ }
177
+ // --- Transition Helpers ---
178
+ /**
179
+ * Ensures the tool call has an associated tool and invocation before
180
+ * transitioning to states that require them.
181
+ */
182
+ validateHasToolAndInvocation(call, targetStatus) {
183
+ if (!('tool' in call && call.tool && 'invocation' in call && call.invocation)) {
184
+ throw new Error(`Invalid state transition: cannot transition to ${targetStatus} without tool/invocation (callId: ${call.request.callId})`);
185
+ }
186
+ }
187
+ toSuccess(call, response) {
188
+ this.validateHasToolAndInvocation(call, 'success');
189
+ const startTime = 'startTime' in call ? call.startTime : undefined;
190
+ return {
191
+ request: call.request,
192
+ tool: call.tool,
193
+ invocation: call.invocation,
194
+ status: 'success',
195
+ response,
196
+ durationMs: startTime ? Date.now() - startTime : undefined,
197
+ outcome: call.outcome,
198
+ };
199
+ }
200
+ toError(call, response) {
201
+ const startTime = 'startTime' in call ? call.startTime : undefined;
202
+ return {
203
+ request: call.request,
204
+ status: 'error',
205
+ tool: 'tool' in call ? call.tool : undefined,
206
+ response,
207
+ durationMs: startTime ? Date.now() - startTime : undefined,
208
+ outcome: call.outcome,
209
+ };
210
+ }
211
+ toAwaitingApproval(call, data) {
212
+ this.validateHasToolAndInvocation(call, 'awaiting_approval');
213
+ let confirmationDetails;
214
+ let correlationId;
215
+ if (this.isEventDrivenApprovalData(data)) {
216
+ correlationId = data.correlationId;
217
+ confirmationDetails = data.confirmationDetails;
218
+ }
219
+ else {
220
+ // TODO: Remove legacy callback shape once event-driven migration is complete
221
+ confirmationDetails = data;
222
+ }
223
+ return {
224
+ request: call.request,
225
+ tool: call.tool,
226
+ status: 'awaiting_approval',
227
+ correlationId,
228
+ confirmationDetails,
229
+ startTime: 'startTime' in call ? call.startTime : undefined,
230
+ outcome: call.outcome,
231
+ invocation: call.invocation,
232
+ };
233
+ }
234
+ isEventDrivenApprovalData(data) {
235
+ return (typeof data === 'object' &&
236
+ data !== null &&
237
+ 'correlationId' in data &&
238
+ 'confirmationDetails' in data);
239
+ }
240
+ toScheduled(call) {
241
+ this.validateHasToolAndInvocation(call, 'scheduled');
242
+ return {
243
+ request: call.request,
244
+ tool: call.tool,
245
+ status: 'scheduled',
246
+ startTime: 'startTime' in call ? call.startTime : undefined,
247
+ outcome: call.outcome,
248
+ invocation: call.invocation,
249
+ };
250
+ }
251
+ toCancelled(call, reason) {
252
+ this.validateHasToolAndInvocation(call, 'cancelled');
253
+ const startTime = 'startTime' in call ? call.startTime : undefined;
254
+ // TODO: Refactor this tool-specific logic into the confirmation details payload.
255
+ // See: https://github.com/google-gemini/gemini-cli/issues/16716
256
+ let resultDisplay = undefined;
257
+ if (this.isWaitingToolCall(call)) {
258
+ const details = call.confirmationDetails;
259
+ if (details.type === 'edit' &&
260
+ 'fileDiff' in details &&
261
+ 'fileName' in details &&
262
+ 'filePath' in details &&
263
+ 'originalContent' in details &&
264
+ 'newContent' in details) {
265
+ resultDisplay = {
266
+ fileDiff: details.fileDiff,
267
+ fileName: details.fileName,
268
+ filePath: details.filePath,
269
+ originalContent: details.originalContent,
270
+ newContent: details.newContent,
271
+ };
272
+ }
273
+ }
274
+ const errorMessage = `[Operation Cancelled] Reason: ${reason}`;
275
+ return {
276
+ request: call.request,
277
+ tool: call.tool,
278
+ invocation: call.invocation,
279
+ status: 'cancelled',
280
+ response: {
281
+ callId: call.request.callId,
282
+ responseParts: [
283
+ {
284
+ functionResponse: {
285
+ id: call.request.callId,
286
+ name: call.request.name,
287
+ response: { error: errorMessage },
288
+ },
289
+ },
290
+ ],
291
+ resultDisplay,
292
+ error: undefined,
293
+ errorType: undefined,
294
+ contentLength: errorMessage.length,
295
+ },
296
+ durationMs: startTime ? Date.now() - startTime : undefined,
297
+ outcome: call.outcome,
298
+ };
299
+ }
300
+ isWaitingToolCall(call) {
301
+ return call.status === 'awaiting_approval';
302
+ }
303
+ patchCall(call, patch) {
304
+ return { ...call, ...patch };
305
+ }
306
+ toValidating(call) {
307
+ this.validateHasToolAndInvocation(call, 'validating');
308
+ return {
309
+ request: call.request,
310
+ tool: call.tool,
311
+ status: 'validating',
312
+ startTime: 'startTime' in call ? call.startTime : undefined,
313
+ outcome: call.outcome,
314
+ invocation: call.invocation,
315
+ };
316
+ }
317
+ toExecuting(call, data) {
318
+ this.validateHasToolAndInvocation(call, 'executing');
319
+ const execData = data;
320
+ const liveOutput = execData?.liveOutput ??
321
+ ('liveOutput' in call ? call.liveOutput : undefined);
322
+ const pid = execData?.pid ?? ('pid' in call ? call.pid : undefined);
323
+ return {
324
+ request: call.request,
325
+ tool: call.tool,
326
+ status: 'executing',
327
+ startTime: 'startTime' in call ? call.startTime : undefined,
328
+ outcome: call.outcome,
329
+ invocation: call.invocation,
330
+ liveOutput,
331
+ pid,
332
+ };
333
+ }
334
+ }
335
+ //# sourceMappingURL=state-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-manager.js","sourceRoot":"","sources":["../../../src/scheduler/state-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export {};