@google/gemini-cli-core 0.54.0-preview.0 → 0.54.0

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 (52) hide show
  1. package/dist/src/agent/event-translator.js +7 -1
  2. package/dist/src/agent/event-translator.js.map +1 -1
  3. package/dist/src/agent/event-translator.test.js +24 -1
  4. package/dist/src/agent/event-translator.test.js.map +1 -1
  5. package/dist/src/agent/legacy-agent-session.js +8 -5
  6. package/dist/src/agent/legacy-agent-session.js.map +1 -1
  7. package/dist/src/core/agentChatHistory.d.ts +5 -0
  8. package/dist/src/core/agentChatHistory.js +9 -0
  9. package/dist/src/core/agentChatHistory.js.map +1 -1
  10. package/dist/src/core/agentChatHistory.test.d.ts +6 -0
  11. package/dist/src/core/agentChatHistory.test.js +95 -0
  12. package/dist/src/core/agentChatHistory.test.js.map +1 -0
  13. package/dist/src/core/geminiChat.d.ts +4 -4
  14. package/dist/src/core/geminiChat.js +106 -32
  15. package/dist/src/core/geminiChat.js.map +1 -1
  16. package/dist/src/core/geminiChat.test.js +586 -10
  17. package/dist/src/core/geminiChat.test.js.map +1 -1
  18. package/dist/src/core/turn.d.ts +4 -0
  19. package/dist/src/core/turn.js +7 -1
  20. package/dist/src/core/turn.js.map +1 -1
  21. package/dist/src/core/turn.test.js +9 -1
  22. package/dist/src/core/turn.test.js.map +1 -1
  23. package/dist/src/generated/git-commit.d.ts +2 -2
  24. package/dist/src/generated/git-commit.js +2 -2
  25. package/dist/src/generated/git-commit.js.map +1 -1
  26. package/dist/src/prompts/snippets.js +10 -0
  27. package/dist/src/prompts/snippets.js.map +1 -1
  28. package/dist/src/scheduler/scheduler.js +8 -0
  29. package/dist/src/scheduler/scheduler.js.map +1 -1
  30. package/dist/src/scheduler/scheduler.test.js +2 -2
  31. package/dist/src/scheduler/scheduler.test.js.map +1 -1
  32. package/dist/src/services/modelConfigService.d.ts +1 -0
  33. package/dist/src/services/modelConfigService.js.map +1 -1
  34. package/dist/src/telemetry/uiTelemetry.d.ts +2 -0
  35. package/dist/src/telemetry/uiTelemetry.js +21 -0
  36. package/dist/src/telemetry/uiTelemetry.js.map +1 -1
  37. package/dist/src/telemetry/uiTelemetry.test.js +39 -0
  38. package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
  39. package/dist/src/utils/constants.d.ts +7 -0
  40. package/dist/src/utils/constants.js +7 -0
  41. package/dist/src/utils/constants.js.map +1 -1
  42. package/dist/src/utils/googleQuotaErrors.js +9 -0
  43. package/dist/src/utils/googleQuotaErrors.js.map +1 -1
  44. package/dist/src/utils/googleQuotaErrors.test.js +51 -0
  45. package/dist/src/utils/googleQuotaErrors.test.js.map +1 -1
  46. package/dist/src/utils/messageInspectors.js +2 -1
  47. package/dist/src/utils/messageInspectors.js.map +1 -1
  48. package/dist/src/utils/messageInspectors.test.d.ts +6 -0
  49. package/dist/src/utils/messageInspectors.test.js +156 -0
  50. package/dist/src/utils/messageInspectors.test.js.map +1 -0
  51. package/dist/tsconfig.tsbuildinfo +1 -1
  52. package/package.json +1 -1
@@ -6,11 +6,12 @@
6
6
  export function isFunctionResponse(content) {
7
7
  return (content.role === 'user' &&
8
8
  !!content.parts &&
9
- content.parts.every((part) => !!part.functionResponse));
9
+ content.parts.some((part) => !!part.functionResponse));
10
10
  }
11
11
  export function isFunctionCall(content) {
12
12
  return (content.role === 'model' &&
13
13
  !!content.parts &&
14
+ content.parts.length > 0 &&
14
15
  content.parts.every((part) => !!part.functionCall));
15
16
  }
16
17
  //# sourceMappingURL=messageInspectors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"messageInspectors.js","sourceRoot":"","sources":["../../../src/utils/messageInspectors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,UAAU,kBAAkB,CAAC,OAAgB;IACjD,OAAO,CACL,OAAO,CAAC,IAAI,KAAK,MAAM;QACvB,CAAC,CAAC,OAAO,CAAC,KAAK;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CACvD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,OAAO,CACL,OAAO,CAAC,IAAI,KAAK,OAAO;QACxB,CAAC,CAAC,OAAO,CAAC,KAAK;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CACnD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"messageInspectors.js","sourceRoot":"","sources":["../../../src/utils/messageInspectors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,UAAU,kBAAkB,CAAC,OAAgB;IACjD,OAAO,CACL,OAAO,CAAC,IAAI,KAAK,MAAM;QACvB,CAAC,CAAC,OAAO,CAAC,KAAK;QACf,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CACtD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,OAAO,CACL,OAAO,CAAC,IAAI,KAAK,OAAO;QACxB,CAAC,CAAC,OAAO,CAAC,KAAK;QACf,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CACnD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export {};
@@ -0,0 +1,156 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { describe, it, expect } from 'vitest';
7
+ import { isFunctionResponse, isFunctionCall } from './messageInspectors.js';
8
+ describe('messageInspectors', () => {
9
+ describe('isFunctionResponse', () => {
10
+ it('should return false if content role is not user', () => {
11
+ const content = {
12
+ role: 'model',
13
+ parts: [
14
+ {
15
+ functionResponse: {
16
+ name: 'test_tool',
17
+ response: { success: true },
18
+ },
19
+ },
20
+ ],
21
+ };
22
+ expect(isFunctionResponse(content)).toBe(false);
23
+ });
24
+ it('should return false if content has no parts', () => {
25
+ const content = {
26
+ role: 'user',
27
+ };
28
+ expect(isFunctionResponse(content)).toBe(false);
29
+ });
30
+ it('should return false if parts are empty', () => {
31
+ const content = {
32
+ role: 'user',
33
+ parts: [],
34
+ };
35
+ expect(isFunctionResponse(content)).toBe(false);
36
+ });
37
+ it('should return false if none of the parts is a functionResponse', () => {
38
+ const content = {
39
+ role: 'user',
40
+ parts: [
41
+ {
42
+ text: 'Hello world',
43
+ },
44
+ {
45
+ fileData: {
46
+ mimeType: 'image/png',
47
+ fileUri: 'https://example.com/image.png',
48
+ },
49
+ },
50
+ ],
51
+ };
52
+ expect(isFunctionResponse(content)).toBe(false);
53
+ });
54
+ it('should return true if all parts are functionResponses', () => {
55
+ const content = {
56
+ role: 'user',
57
+ parts: [
58
+ {
59
+ functionResponse: {
60
+ name: 'test_tool_1',
61
+ response: { success: true },
62
+ },
63
+ },
64
+ {
65
+ functionResponse: {
66
+ name: 'test_tool_2',
67
+ response: { value: 42 },
68
+ },
69
+ },
70
+ ],
71
+ };
72
+ expect(isFunctionResponse(content)).toBe(true);
73
+ });
74
+ it('should return true if content is a mixed multimodal tool response containing functionResponse and sibling parts', () => {
75
+ const content = {
76
+ role: 'user',
77
+ parts: [
78
+ {
79
+ functionResponse: {
80
+ name: 'test_tool',
81
+ response: { success: true },
82
+ },
83
+ },
84
+ {
85
+ fileData: {
86
+ mimeType: 'image/png',
87
+ fileUri: 'https://example.com/image.png',
88
+ },
89
+ },
90
+ ],
91
+ };
92
+ expect(isFunctionResponse(content)).toBe(true);
93
+ });
94
+ });
95
+ describe('isFunctionCall', () => {
96
+ it('should return false if content role is not model', () => {
97
+ const content = {
98
+ role: 'user',
99
+ parts: [
100
+ {
101
+ functionCall: {
102
+ name: 'test_tool',
103
+ args: {},
104
+ },
105
+ },
106
+ ],
107
+ };
108
+ expect(isFunctionCall(content)).toBe(false);
109
+ });
110
+ it('should return false if content has no parts', () => {
111
+ const content = {
112
+ role: 'model',
113
+ };
114
+ expect(isFunctionCall(content)).toBe(false);
115
+ });
116
+ it('should return false if parts are empty', () => {
117
+ const content = {
118
+ role: 'model',
119
+ parts: [],
120
+ };
121
+ expect(isFunctionCall(content)).toBe(false);
122
+ });
123
+ it('should return false if none of the parts is a functionCall', () => {
124
+ const content = {
125
+ role: 'model',
126
+ parts: [
127
+ {
128
+ text: 'I am thinking...',
129
+ },
130
+ ],
131
+ };
132
+ expect(isFunctionCall(content)).toBe(false);
133
+ });
134
+ it('should return true if all parts are functionCalls', () => {
135
+ const content = {
136
+ role: 'model',
137
+ parts: [
138
+ {
139
+ functionCall: {
140
+ name: 'test_tool_1',
141
+ args: {},
142
+ },
143
+ },
144
+ {
145
+ functionCall: {
146
+ name: 'test_tool_2',
147
+ args: { query: 'foo' },
148
+ },
149
+ },
150
+ ],
151
+ };
152
+ expect(isFunctionCall(content)).toBe(true);
153
+ });
154
+ });
155
+ });
156
+ //# sourceMappingURL=messageInspectors.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageInspectors.test.js","sourceRoot":"","sources":["../../../src/utils/messageInspectors.test.ts"],"names":[],"mappings":"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"}