@google/gemini-cli-core 0.42.0-preview.1 → 0.43.0-preview.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 (341) hide show
  1. package/dist/docs/changelogs/index.md +14 -0
  2. package/dist/docs/changelogs/latest.md +108 -166
  3. package/dist/docs/changelogs/preview.md +227 -103
  4. package/dist/docs/cli/auto-memory.md +60 -38
  5. package/dist/docs/cli/settings.md +1 -1
  6. package/dist/docs/cli/tutorials/memory-management.md +1 -1
  7. package/dist/docs/extensions/releasing.md +58 -24
  8. package/dist/docs/reference/configuration.md +14 -1
  9. package/dist/docs/reference/keyboard-shortcuts.md +23 -0
  10. package/dist/src/agent/content-utils.js +2 -0
  11. package/dist/src/agent/content-utils.js.map +1 -1
  12. package/dist/src/agent/content-utils.test.js +5 -1
  13. package/dist/src/agent/content-utils.test.js.map +1 -1
  14. package/dist/src/agent/event-translator.js +7 -6
  15. package/dist/src/agent/event-translator.js.map +1 -1
  16. package/dist/src/agent/legacy-agent-session.js +4 -0
  17. package/dist/src/agent/legacy-agent-session.js.map +1 -1
  18. package/dist/src/agent/legacy-agent-session.test.js +9 -1
  19. package/dist/src/agent/legacy-agent-session.test.js.map +1 -1
  20. package/dist/src/agent/tool-display-utils.d.ts +3 -2
  21. package/dist/src/agent/tool-display-utils.js +3 -2
  22. package/dist/src/agent/tool-display-utils.js.map +1 -1
  23. package/dist/src/agent/types.d.ts +33 -3
  24. package/dist/src/agents/a2aUtils.d.ts +1 -1
  25. package/dist/src/agents/a2aUtils.js +4 -3
  26. package/dist/src/agents/a2aUtils.js.map +1 -1
  27. package/dist/src/agents/agentLoader.d.ts +2 -2
  28. package/dist/src/agents/browser/browserAgentInvocation.js +24 -19
  29. package/dist/src/agents/browser/browserAgentInvocation.js.map +1 -1
  30. package/dist/src/agents/local-executor.d.ts +1 -0
  31. package/dist/src/agents/local-executor.js +46 -32
  32. package/dist/src/agents/local-executor.js.map +1 -1
  33. package/dist/src/agents/local-executor.test.js +127 -0
  34. package/dist/src/agents/local-executor.test.js.map +1 -1
  35. package/dist/src/agents/local-invocation.js +24 -20
  36. package/dist/src/agents/local-invocation.js.map +1 -1
  37. package/dist/src/agents/local-invocation.test.js +9 -9
  38. package/dist/src/agents/local-invocation.test.js.map +1 -1
  39. package/dist/src/agents/local-subagent-protocol.d.ts +18 -0
  40. package/dist/src/agents/local-subagent-protocol.js +357 -0
  41. package/dist/src/agents/local-subagent-protocol.js.map +1 -0
  42. package/dist/src/agents/local-subagent-protocol.test.d.ts +6 -0
  43. package/dist/src/agents/local-subagent-protocol.test.js +676 -0
  44. package/dist/src/agents/local-subagent-protocol.test.js.map +1 -0
  45. package/dist/src/agents/remote-invocation.js +6 -6
  46. package/dist/src/agents/remote-invocation.js.map +1 -1
  47. package/dist/src/agents/remote-invocation.test.js +23 -12
  48. package/dist/src/agents/remote-invocation.test.js.map +1 -1
  49. package/dist/src/agents/remote-subagent-protocol.d.ts +31 -0
  50. package/dist/src/agents/remote-subagent-protocol.js +330 -0
  51. package/dist/src/agents/remote-subagent-protocol.js.map +1 -0
  52. package/dist/src/agents/remote-subagent-protocol.test.d.ts +6 -0
  53. package/dist/src/agents/remote-subagent-protocol.test.js +652 -0
  54. package/dist/src/agents/remote-subagent-protocol.test.js.map +1 -0
  55. package/dist/src/agents/skill-extraction-agent.js +1 -0
  56. package/dist/src/agents/skill-extraction-agent.js.map +1 -1
  57. package/dist/src/agents/skill-extraction-agent.test.js +1 -0
  58. package/dist/src/agents/skill-extraction-agent.test.js.map +1 -1
  59. package/dist/src/agents/types.d.ts +13 -2
  60. package/dist/src/agents/types.js +7 -0
  61. package/dist/src/agents/types.js.map +1 -1
  62. package/dist/src/availability/modelAvailabilityService.d.ts +6 -6
  63. package/dist/src/availability/modelAvailabilityService.js +14 -7
  64. package/dist/src/availability/modelAvailabilityService.js.map +1 -1
  65. package/dist/src/availability/modelAvailabilityService.test.js +34 -0
  66. package/dist/src/availability/modelAvailabilityService.test.js.map +1 -1
  67. package/dist/src/availability/policyHelpers.js +24 -12
  68. package/dist/src/availability/policyHelpers.js.map +1 -1
  69. package/dist/src/availability/policyHelpers.test.js +3 -2
  70. package/dist/src/availability/policyHelpers.test.js.map +1 -1
  71. package/dist/src/code_assist/oauth2.js +3 -0
  72. package/dist/src/code_assist/oauth2.js.map +1 -1
  73. package/dist/src/code_assist/setup.d.ts +3 -0
  74. package/dist/src/code_assist/setup.js +9 -0
  75. package/dist/src/code_assist/setup.js.map +1 -1
  76. package/dist/src/code_assist/setup.test.js +9 -1
  77. package/dist/src/code_assist/setup.test.js.map +1 -1
  78. package/dist/src/commands/memory.d.ts +5 -14
  79. package/dist/src/commands/memory.js +19 -141
  80. package/dist/src/commands/memory.js.map +1 -1
  81. package/dist/src/commands/memory.test.js +62 -0
  82. package/dist/src/commands/memory.test.js.map +1 -1
  83. package/dist/src/config/config.d.ts +6 -2
  84. package/dist/src/config/config.js +63 -8
  85. package/dist/src/config/config.js.map +1 -1
  86. package/dist/src/config/config.test.js +48 -0
  87. package/dist/src/config/config.test.js.map +1 -1
  88. package/dist/src/config/defaultModelConfigs.js +13 -0
  89. package/dist/src/config/defaultModelConfigs.js.map +1 -1
  90. package/dist/src/config/models.js +1 -1
  91. package/dist/src/config/models.js.map +1 -1
  92. package/dist/src/config/projectRegistry.d.ts +1 -0
  93. package/dist/src/config/projectRegistry.js +13 -2
  94. package/dist/src/config/projectRegistry.js.map +1 -1
  95. package/dist/src/config/projectRegistry.test.js +43 -0
  96. package/dist/src/config/projectRegistry.test.js.map +1 -1
  97. package/dist/src/context/config/profiles.js +4 -0
  98. package/dist/src/context/config/profiles.js.map +1 -1
  99. package/dist/src/context/contextManager.barrier.test.js +4 -3
  100. package/dist/src/context/contextManager.barrier.test.js.map +1 -1
  101. package/dist/src/context/contextManager.d.ts +9 -2
  102. package/dist/src/context/contextManager.hotstart.test.d.ts +6 -0
  103. package/dist/src/context/contextManager.hotstart.test.js +61 -0
  104. package/dist/src/context/contextManager.hotstart.test.js.map +1 -0
  105. package/dist/src/context/contextManager.js +96 -21
  106. package/dist/src/context/contextManager.js.map +1 -1
  107. package/dist/src/context/eventBus.d.ts +6 -0
  108. package/dist/src/context/eventBus.js +6 -0
  109. package/dist/src/context/eventBus.js.map +1 -1
  110. package/dist/src/context/graph/render.d.ts +3 -1
  111. package/dist/src/context/graph/render.js +33 -9
  112. package/dist/src/context/graph/render.js.map +1 -1
  113. package/dist/src/context/graph/render.test.d.ts +6 -0
  114. package/dist/src/context/graph/render.test.js +203 -0
  115. package/dist/src/context/graph/render.test.js.map +1 -0
  116. package/dist/src/context/graph/toGraph.js +3 -3
  117. package/dist/src/context/graph/toGraph.js.map +1 -1
  118. package/dist/src/context/graph/toGraph.test.d.ts +6 -0
  119. package/dist/src/context/graph/toGraph.test.js +35 -0
  120. package/dist/src/context/graph/toGraph.test.js.map +1 -0
  121. package/dist/src/context/initializer.js +11 -2
  122. package/dist/src/context/initializer.js.map +1 -1
  123. package/dist/src/context/pipeline/contextWorkingBuffer.d.ts +5 -7
  124. package/dist/src/context/pipeline/contextWorkingBuffer.js +105 -29
  125. package/dist/src/context/pipeline/contextWorkingBuffer.js.map +1 -1
  126. package/dist/src/context/pipeline/contextWorkingBuffer.test.js +67 -0
  127. package/dist/src/context/pipeline/contextWorkingBuffer.test.js.map +1 -1
  128. package/dist/src/context/pipeline/environment.d.ts +4 -0
  129. package/dist/src/context/pipeline/environmentImpl.d.ts +6 -5
  130. package/dist/src/context/pipeline/environmentImpl.js +6 -8
  131. package/dist/src/context/pipeline/environmentImpl.js.map +1 -1
  132. package/dist/src/context/pipeline/environmentImpl.test.js +5 -1
  133. package/dist/src/context/pipeline/environmentImpl.test.js.map +1 -1
  134. package/dist/src/context/pipeline/orchestrator.d.ts +1 -0
  135. package/dist/src/context/pipeline/orchestrator.js +59 -24
  136. package/dist/src/context/pipeline/orchestrator.js.map +1 -1
  137. package/dist/src/context/processors/blobDegradationProcessor.test.js +2 -2
  138. package/dist/src/context/processors/rollingSummaryProcessor.js +2 -15
  139. package/dist/src/context/processors/rollingSummaryProcessor.js.map +1 -1
  140. package/dist/src/context/processors/stateSnapshotAsyncProcessor.d.ts +7 -0
  141. package/dist/src/context/processors/stateSnapshotAsyncProcessor.js +33 -21
  142. package/dist/src/context/processors/stateSnapshotAsyncProcessor.js.map +1 -1
  143. package/dist/src/context/processors/stateSnapshotAsyncProcessor.test.js +31 -7
  144. package/dist/src/context/processors/stateSnapshotAsyncProcessor.test.js.map +1 -1
  145. package/dist/src/context/processors/stateSnapshotProcessor.d.ts +2 -0
  146. package/dist/src/context/processors/stateSnapshotProcessor.js +28 -4
  147. package/dist/src/context/processors/stateSnapshotProcessor.js.map +1 -1
  148. package/dist/src/context/processors/stateSnapshotProcessor.test.js +40 -1
  149. package/dist/src/context/processors/stateSnapshotProcessor.test.js.map +1 -1
  150. package/dist/src/context/system-tests/hysteresis.test.d.ts +6 -0
  151. package/dist/src/context/system-tests/hysteresis.test.js +98 -0
  152. package/dist/src/context/system-tests/hysteresis.test.js.map +1 -0
  153. package/dist/src/context/system-tests/lifecycle.golden.test.js +90 -69
  154. package/dist/src/context/system-tests/lifecycle.golden.test.js.map +1 -1
  155. package/dist/src/context/system-tests/simulationHarness.d.ts +1 -4
  156. package/dist/src/context/system-tests/simulationHarness.js +16 -30
  157. package/dist/src/context/system-tests/simulationHarness.js.map +1 -1
  158. package/dist/src/context/testing/contextTestUtils.d.ts +1 -0
  159. package/dist/src/context/testing/contextTestUtils.js +48 -25
  160. package/dist/src/context/testing/contextTestUtils.js.map +1 -1
  161. package/dist/src/context/utils/adaptiveTokenCalculator.d.ts +61 -0
  162. package/dist/src/context/utils/adaptiveTokenCalculator.js +116 -0
  163. package/dist/src/context/utils/adaptiveTokenCalculator.js.map +1 -0
  164. package/dist/src/context/utils/adaptiveTokenCalculator.test.d.ts +6 -0
  165. package/dist/src/context/utils/adaptiveTokenCalculator.test.js +85 -0
  166. package/dist/src/context/utils/adaptiveTokenCalculator.test.js.map +1 -0
  167. package/dist/src/context/utils/contextTokenCalculator.d.ts +47 -1
  168. package/dist/src/context/utils/contextTokenCalculator.js +20 -3
  169. package/dist/src/context/utils/contextTokenCalculator.js.map +1 -1
  170. package/dist/src/context/utils/contextTokenCalculator.test.js +8 -8
  171. package/dist/src/context/utils/contextTokenCalculator.test.js.map +1 -1
  172. package/dist/src/context/utils/formatNodesForLlm.d.ts +21 -0
  173. package/dist/src/context/utils/formatNodesForLlm.js +69 -0
  174. package/dist/src/context/utils/formatNodesForLlm.js.map +1 -0
  175. package/dist/src/context/utils/formatNodesForLlm.test.d.ts +6 -0
  176. package/dist/src/context/utils/formatNodesForLlm.test.js +110 -0
  177. package/dist/src/context/utils/formatNodesForLlm.test.js.map +1 -0
  178. package/dist/src/context/utils/snapshotGenerator.d.ts +23 -1
  179. package/dist/src/context/utils/snapshotGenerator.js +249 -31
  180. package/dist/src/context/utils/snapshotGenerator.js.map +1 -1
  181. package/dist/src/context/utils/snapshotGenerator.test.d.ts +6 -0
  182. package/dist/src/context/utils/snapshotGenerator.test.js +255 -0
  183. package/dist/src/context/utils/snapshotGenerator.test.js.map +1 -0
  184. package/dist/src/context/utils/tokenCalibration.d.ts +9 -0
  185. package/dist/src/context/utils/tokenCalibration.js +30 -0
  186. package/dist/src/context/utils/tokenCalibration.js.map +1 -0
  187. package/dist/src/core/baseLlmClient.d.ts +8 -0
  188. package/dist/src/core/baseLlmClient.js +14 -0
  189. package/dist/src/core/baseLlmClient.js.map +1 -1
  190. package/dist/src/core/client.js +12 -1
  191. package/dist/src/core/client.js.map +1 -1
  192. package/dist/src/core/client.test.js +4 -4
  193. package/dist/src/core/contentGenerator.js +12 -10
  194. package/dist/src/core/contentGenerator.js.map +1 -1
  195. package/dist/src/core/geminiChat.d.ts +2 -0
  196. package/dist/src/core/geminiChat.js +60 -5
  197. package/dist/src/core/geminiChat.js.map +1 -1
  198. package/dist/src/core/geminiChat.test.js +195 -2
  199. package/dist/src/core/geminiChat.test.js.map +1 -1
  200. package/dist/src/core/turn.js +30 -2
  201. package/dist/src/core/turn.js.map +1 -1
  202. package/dist/src/core/turn.test.js +13 -8
  203. package/dist/src/core/turn.test.js.map +1 -1
  204. package/dist/src/generated/git-commit.d.ts +2 -2
  205. package/dist/src/generated/git-commit.js +2 -2
  206. package/dist/src/hooks/hookEventHandler.js +3 -2
  207. package/dist/src/hooks/hookEventHandler.js.map +1 -1
  208. package/dist/src/hooks/hookEventHandler.test.js +80 -0
  209. package/dist/src/hooks/hookEventHandler.test.js.map +1 -1
  210. package/dist/src/index.d.ts +2 -1
  211. package/dist/src/index.js +2 -2
  212. package/dist/src/index.js.map +1 -1
  213. package/dist/src/prompts/snippets.js +1 -1
  214. package/dist/src/prompts/snippets.js.map +1 -1
  215. package/dist/src/routing/strategies/approvalModeStrategy.js +5 -3
  216. package/dist/src/routing/strategies/approvalModeStrategy.js.map +1 -1
  217. package/dist/src/routing/strategies/approvalModeStrategy.test.js +2 -0
  218. package/dist/src/routing/strategies/approvalModeStrategy.test.js.map +1 -1
  219. package/dist/src/routing/strategies/classifierStrategy.js +8 -1
  220. package/dist/src/routing/strategies/classifierStrategy.js.map +1 -1
  221. package/dist/src/routing/strategies/classifierStrategy.test.js +4 -0
  222. package/dist/src/routing/strategies/classifierStrategy.test.js.map +1 -1
  223. package/dist/src/routing/strategies/gemmaClassifierStrategy.js +7 -1
  224. package/dist/src/routing/strategies/gemmaClassifierStrategy.js.map +1 -1
  225. package/dist/src/routing/strategies/gemmaClassifierStrategy.test.js +4 -0
  226. package/dist/src/routing/strategies/gemmaClassifierStrategy.test.js.map +1 -1
  227. package/dist/src/routing/strategies/numericalClassifierStrategy.d.ts +1 -0
  228. package/dist/src/routing/strategies/numericalClassifierStrategy.js +22 -3
  229. package/dist/src/routing/strategies/numericalClassifierStrategy.js.map +1 -1
  230. package/dist/src/routing/strategies/numericalClassifierStrategy.test.js +168 -23
  231. package/dist/src/routing/strategies/numericalClassifierStrategy.test.js.map +1 -1
  232. package/dist/src/scheduler/scheduler.js +11 -0
  233. package/dist/src/scheduler/scheduler.js.map +1 -1
  234. package/dist/src/scheduler/scheduler.test.js +1 -1
  235. package/dist/src/scheduler/scheduler.test.js.map +1 -1
  236. package/dist/src/scheduler/state-manager.js +5 -1
  237. package/dist/src/scheduler/state-manager.js.map +1 -1
  238. package/dist/src/scheduler/tool-executor.js +7 -4
  239. package/dist/src/scheduler/tool-executor.js.map +1 -1
  240. package/dist/src/scheduler/types.d.ts +5 -1
  241. package/dist/src/scheduler/types.js.map +1 -1
  242. package/dist/src/services/fileDiscoveryService.js +2 -1
  243. package/dist/src/services/fileDiscoveryService.js.map +1 -1
  244. package/dist/src/services/fileDiscoveryService.test.js +36 -0
  245. package/dist/src/services/fileDiscoveryService.test.js.map +1 -1
  246. package/dist/src/services/gitService.js +8 -1
  247. package/dist/src/services/gitService.js.map +1 -1
  248. package/dist/src/services/gitService.test.js +104 -0
  249. package/dist/src/services/gitService.test.js.map +1 -1
  250. package/dist/src/services/keychainService.js +14 -5
  251. package/dist/src/services/keychainService.js.map +1 -1
  252. package/dist/src/services/memoryPatchUtils.d.ts +66 -4
  253. package/dist/src/services/memoryPatchUtils.js +267 -5
  254. package/dist/src/services/memoryPatchUtils.js.map +1 -1
  255. package/dist/src/services/memoryService.js +25 -1
  256. package/dist/src/services/memoryService.js.map +1 -1
  257. package/dist/src/services/memoryService.test.js +61 -1
  258. package/dist/src/services/memoryService.test.js.map +1 -1
  259. package/dist/src/services/test-data/resolved-aliases-retry.golden.json +11 -0
  260. package/dist/src/services/test-data/resolved-aliases.golden.json +11 -0
  261. package/dist/src/telemetry/gcp-exporters.d.ts +2 -0
  262. package/dist/src/telemetry/gcp-exporters.js +69 -5
  263. package/dist/src/telemetry/gcp-exporters.js.map +1 -1
  264. package/dist/src/telemetry/gcp-exporters.test.js +52 -0
  265. package/dist/src/telemetry/gcp-exporters.test.js.map +1 -1
  266. package/dist/src/telemetry/metrics.js +13 -2
  267. package/dist/src/telemetry/metrics.js.map +1 -1
  268. package/dist/src/telemetry/metrics.test.js +61 -1
  269. package/dist/src/telemetry/metrics.test.js.map +1 -1
  270. package/dist/src/tools/definitions/model-family-sets/default-legacy.js +5 -2
  271. package/dist/src/tools/definitions/model-family-sets/default-legacy.js.map +1 -1
  272. package/dist/src/tools/definitions/model-family-sets/gemini-3.js +7 -4
  273. package/dist/src/tools/definitions/model-family-sets/gemini-3.js.map +1 -1
  274. package/dist/src/tools/edit.js +19 -0
  275. package/dist/src/tools/edit.js.map +1 -1
  276. package/dist/src/tools/edit.test.js +9 -0
  277. package/dist/src/tools/edit.test.js.map +1 -1
  278. package/dist/src/tools/grep.js +13 -1
  279. package/dist/src/tools/grep.js.map +1 -1
  280. package/dist/src/tools/ls.js +5 -0
  281. package/dist/src/tools/ls.js.map +1 -1
  282. package/dist/src/tools/mcp-client.js +17 -3
  283. package/dist/src/tools/mcp-client.js.map +1 -1
  284. package/dist/src/tools/mcp-client.test.js +24 -0
  285. package/dist/src/tools/mcp-client.test.js.map +1 -1
  286. package/dist/src/tools/read-file.js +11 -6
  287. package/dist/src/tools/read-file.js.map +1 -1
  288. package/dist/src/tools/read-file.test.js +20 -8
  289. package/dist/src/tools/read-file.test.js.map +1 -1
  290. package/dist/src/tools/ripGrep.js +13 -1
  291. package/dist/src/tools/ripGrep.js.map +1 -1
  292. package/dist/src/tools/shell.js +14 -0
  293. package/dist/src/tools/shell.js.map +1 -1
  294. package/dist/src/tools/shell.test.js +5 -0
  295. package/dist/src/tools/shell.test.js.map +1 -1
  296. package/dist/src/tools/tools.d.ts +6 -0
  297. package/dist/src/tools/tools.js.map +1 -1
  298. package/dist/src/tools/topicTool.js +5 -0
  299. package/dist/src/tools/topicTool.js.map +1 -1
  300. package/dist/src/tools/write-file.js +13 -0
  301. package/dist/src/tools/write-file.js.map +1 -1
  302. package/dist/src/tools/write-file.test.js +8 -0
  303. package/dist/src/tools/write-file.test.js.map +1 -1
  304. package/dist/src/utils/errors.js +3 -8
  305. package/dist/src/utils/errors.js.map +1 -1
  306. package/dist/src/utils/filesearch/ignore.js +4 -1
  307. package/dist/src/utils/filesearch/ignore.js.map +1 -1
  308. package/dist/src/utils/ignoreFileParser.js +1 -1
  309. package/dist/src/utils/ignoreFileParser.js.map +1 -1
  310. package/dist/src/utils/ignorePatterns.js +2 -0
  311. package/dist/src/utils/ignorePatterns.js.map +1 -1
  312. package/dist/src/utils/ignorePatterns.test.js +1 -0
  313. package/dist/src/utils/ignorePatterns.test.js.map +1 -1
  314. package/dist/src/utils/memoryDiscovery.js +55 -40
  315. package/dist/src/utils/memoryDiscovery.js.map +1 -1
  316. package/dist/src/utils/memoryDiscovery.test.js +77 -9
  317. package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
  318. package/dist/src/utils/modelUtils.d.ts +14 -0
  319. package/dist/src/utils/modelUtils.js +17 -0
  320. package/dist/src/utils/modelUtils.js.map +1 -0
  321. package/dist/src/utils/modelUtils.test.d.ts +6 -0
  322. package/dist/src/utils/modelUtils.test.js +23 -0
  323. package/dist/src/utils/modelUtils.test.js.map +1 -0
  324. package/dist/src/utils/paths.d.ts +15 -1
  325. package/dist/src/utils/paths.js +22 -7
  326. package/dist/src/utils/paths.js.map +1 -1
  327. package/dist/src/utils/paths.test.js +25 -1
  328. package/dist/src/utils/paths.test.js.map +1 -1
  329. package/dist/src/utils/quotaErrorDetection.js +23 -12
  330. package/dist/src/utils/quotaErrorDetection.js.map +1 -1
  331. package/dist/src/utils/shell-utils.js +9 -1
  332. package/dist/src/utils/shell-utils.js.map +1 -1
  333. package/dist/src/utils/shell-utils.test.js +7 -3
  334. package/dist/src/utils/shell-utils.test.js.map +1 -1
  335. package/dist/src/utils/tokenCalculation.js +2 -1
  336. package/dist/src/utils/tokenCalculation.js.map +1 -1
  337. package/dist/src/utils/tokenCalculation.test.js +15 -0
  338. package/dist/src/utils/tokenCalculation.test.js.map +1 -1
  339. package/dist/tsconfig.tsbuildinfo +1 -1
  340. package/package.json +1 -1
  341. package/dist/google-gemini-cli-core-0.42.0-preview.0.tgz +0 -0
@@ -0,0 +1,330 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * @fileoverview RemoteSubagentProtocol — wraps A2A remote agent streaming
8
+ * behind the AgentProtocol interface.
9
+ *
10
+ * Pattern mirrors LocalSubagentProtocol and LegacyAgentProtocol, but the loop
11
+ * body drives A2AClientManager instead of LocalAgentExecutor.
12
+ */
13
+ import { randomUUID } from 'node:crypto';
14
+ import { AgentSession } from '../agent/agent-session.js';
15
+ import { DEFAULT_QUERY_STRING, SubagentState, getRemoteAgentTargetUrl, getAgentCardLoadOptions, } from './types.js';
16
+ import { A2AResultReassembler, extractIdsFromResponse } from './a2aUtils.js';
17
+ import { A2AAuthProviderFactory } from './auth-provider/factory.js';
18
+ import { A2AAgentError } from './a2a-errors.js';
19
+ import { debugLogger } from '../utils/debugLogger.js';
20
+ // ---------------------------------------------------------------------------
21
+ // Helpers
22
+ // ---------------------------------------------------------------------------
23
+ function isAbortLikeError(err) {
24
+ return err instanceof Error && err.name === 'AbortError';
25
+ }
26
+ // ---------------------------------------------------------------------------
27
+ // RemoteSubagentProtocol
28
+ // ---------------------------------------------------------------------------
29
+ class RemoteSubagentProtocol {
30
+ definition;
31
+ context;
32
+ _events = [];
33
+ _subscribers = new Set();
34
+ _streamId = randomUUID();
35
+ _eventCounter = 0;
36
+ _agentStartEmitted = false;
37
+ _agentEndEmitted = false;
38
+ _activeStreamId;
39
+ _abortController = new AbortController();
40
+ // A2A conversation state — persists across sends within this session instance
41
+ contextId;
42
+ taskId;
43
+ authHandler;
44
+ // Agent display name (for SubagentProgress construction)
45
+ _agentName;
46
+ // Latest SubagentProgress — updated per chunk, used for error recovery
47
+ _latestProgress;
48
+ // Result promise wiring — re-created per stream in _beginNewStream()
49
+ _resultResolve;
50
+ _resultReject;
51
+ _resultPromise;
52
+ constructor(definition, context,
53
+ // Required for API parity across protocol constructors (local, remote, legacy)
54
+ _messageBus) {
55
+ this.definition = definition;
56
+ this.context = context;
57
+ this._agentName = definition.displayName ?? definition.name;
58
+ }
59
+ // ---------------------------------------------------------------------------
60
+ // AgentProtocol interface
61
+ // ---------------------------------------------------------------------------
62
+ get events() {
63
+ return this._events;
64
+ }
65
+ subscribe(callback) {
66
+ this._subscribers.add(callback);
67
+ return () => {
68
+ this._subscribers.delete(callback);
69
+ };
70
+ }
71
+ async send(payload) {
72
+ if ('message' in payload && payload.message) {
73
+ if (this._activeStreamId) {
74
+ throw new Error('RemoteSubagentProtocol.send() cannot be called while a stream is active.');
75
+ }
76
+ const query = payload.message.content
77
+ .filter((p) => p.type === 'text')
78
+ .map((p) => p.text)
79
+ .join('') || DEFAULT_QUERY_STRING;
80
+ this._beginNewStream();
81
+ const streamId = this._streamId;
82
+ setTimeout(() => {
83
+ void this._runStreamInBackground(query);
84
+ }, 0);
85
+ return { streamId };
86
+ }
87
+ // update/action/elicitations not used for remote agents
88
+ return { streamId: null };
89
+ }
90
+ async abort() {
91
+ this._abortController.abort();
92
+ }
93
+ // ---------------------------------------------------------------------------
94
+ // Protocol-specific: result access
95
+ // ---------------------------------------------------------------------------
96
+ getResult() {
97
+ if (!this._resultPromise) {
98
+ return Promise.reject(new Error('No active or completed stream'));
99
+ }
100
+ return this._resultPromise;
101
+ }
102
+ getLatestProgress() {
103
+ return this._latestProgress;
104
+ }
105
+ // ---------------------------------------------------------------------------
106
+ // Core: A2A streaming
107
+ // ---------------------------------------------------------------------------
108
+ _beginNewStream() {
109
+ this._streamId = randomUUID();
110
+ this._eventCounter = 0;
111
+ this._abortController = new AbortController();
112
+ this._agentStartEmitted = false;
113
+ this._agentEndEmitted = false;
114
+ this._activeStreamId = this._streamId;
115
+ this._resultPromise = new Promise((resolve, reject) => {
116
+ this._resultResolve = resolve;
117
+ this._resultReject = reject;
118
+ });
119
+ }
120
+ async _runStreamInBackground(query) {
121
+ this._ensureAgentStart();
122
+ try {
123
+ await this._runStream(query);
124
+ }
125
+ catch (err) {
126
+ if (this._abortController.signal.aborted || isAbortLikeError(err)) {
127
+ this._ensureAgentEnd('aborted');
128
+ // Abort resolves with an empty result — partial output is intentionally
129
+ // dropped since the caller requested cancellation.
130
+ this._resultResolve({
131
+ llmContent: [{ text: '' }],
132
+ returnDisplay: '',
133
+ });
134
+ }
135
+ else {
136
+ this._emitErrorAndAgentEnd(err);
137
+ this._resultReject(err);
138
+ }
139
+ }
140
+ finally {
141
+ this._clearActiveStream();
142
+ }
143
+ }
144
+ async _runStream(query) {
145
+ const clientManager = this.context.config.getA2AClientManager();
146
+ if (!clientManager) {
147
+ throw new Error(`RemoteSubagentProtocol: A2AClientManager not available for '${this.definition.name}'.`);
148
+ }
149
+ const authHandler = await this._getAuthHandler();
150
+ if (!clientManager.getClient(this.definition.name)) {
151
+ await clientManager.loadAgent(this.definition.name, getAgentCardLoadOptions(this.definition), authHandler);
152
+ }
153
+ const reassembler = new A2AResultReassembler();
154
+ let prevText = '';
155
+ const stream = clientManager.sendMessageStream(this.definition.name, query, {
156
+ contextId: this.contextId,
157
+ taskId: this.taskId,
158
+ signal: this._abortController.signal,
159
+ });
160
+ for await (const chunk of stream) {
161
+ reassembler.update(chunk);
162
+ const { contextId: newContextId, taskId: newTaskId, clearTaskId, } = extractIdsFromResponse(chunk);
163
+ if (newContextId)
164
+ this.contextId = newContextId;
165
+ this.taskId = clearTaskId ? undefined : (newTaskId ?? this.taskId);
166
+ const currentText = reassembler.toString();
167
+ // Update latest progress snapshot (for invocation's error recovery)
168
+ this._latestProgress = {
169
+ isSubagentProgress: true,
170
+ agentName: this._agentName,
171
+ state: SubagentState.RUNNING,
172
+ recentActivity: reassembler.toActivityItems(),
173
+ result: currentText,
174
+ };
175
+ // Emit delta as a message event
176
+ const delta = currentText.slice(prevText.length);
177
+ if (delta) {
178
+ this._emit([
179
+ this._makeEvent('message', {
180
+ role: 'agent',
181
+ content: [{ type: 'text', text: delta }],
182
+ }),
183
+ ]);
184
+ prevText = currentText;
185
+ }
186
+ }
187
+ const finalOutput = reassembler.toString();
188
+ debugLogger.debug(`[RemoteSubagentProtocol] ${this.definition.name} finished, output length: ${finalOutput.length}`);
189
+ const finalProgress = {
190
+ isSubagentProgress: true,
191
+ agentName: this._agentName,
192
+ state: SubagentState.COMPLETED,
193
+ result: finalOutput,
194
+ recentActivity: reassembler.toActivityItems(),
195
+ };
196
+ this._latestProgress = finalProgress;
197
+ this._finishStream('completed');
198
+ this._resultResolve({
199
+ llmContent: [{ text: finalOutput }],
200
+ returnDisplay: finalProgress,
201
+ });
202
+ }
203
+ async _getAuthHandler() {
204
+ if (this.authHandler)
205
+ return this.authHandler;
206
+ if (!this.definition.auth)
207
+ return undefined;
208
+ const targetUrl = getRemoteAgentTargetUrl(this.definition);
209
+ const provider = await A2AAuthProviderFactory.create({
210
+ authConfig: this.definition.auth,
211
+ agentName: this.definition.name,
212
+ targetUrl,
213
+ agentCardUrl: this.definition.agentCardUrl,
214
+ });
215
+ if (!provider) {
216
+ throw new Error(`Failed to create auth provider for agent '${this.definition.name}'`);
217
+ }
218
+ this.authHandler = provider;
219
+ return this.authHandler;
220
+ }
221
+ // ---------------------------------------------------------------------------
222
+ // Internal helpers
223
+ // ---------------------------------------------------------------------------
224
+ _emit(events) {
225
+ if (events.length === 0)
226
+ return;
227
+ const subscribers = [...this._subscribers];
228
+ for (const event of events) {
229
+ this._events.push(event);
230
+ if (event.type === 'agent_end') {
231
+ this._agentEndEmitted = true;
232
+ }
233
+ for (const sub of subscribers) {
234
+ sub(event);
235
+ }
236
+ }
237
+ }
238
+ _clearActiveStream() {
239
+ this._activeStreamId = undefined;
240
+ }
241
+ _ensureAgentStart() {
242
+ if (!this._agentStartEmitted) {
243
+ this._agentStartEmitted = true;
244
+ this._emit([this._makeEvent('agent_start', {})]);
245
+ }
246
+ }
247
+ _ensureAgentEnd(reason = 'completed') {
248
+ if (!this._agentEndEmitted && this._agentStartEmitted) {
249
+ this._emit([this._makeEvent('agent_end', { reason })]);
250
+ }
251
+ }
252
+ _finishStream(reason) {
253
+ this._ensureAgentEnd(reason);
254
+ this._clearActiveStream();
255
+ }
256
+ _emitErrorAndAgentEnd(err) {
257
+ const message = this._formatError(err);
258
+ this._ensureAgentStart();
259
+ const meta = {};
260
+ if (err instanceof Error) {
261
+ meta['errorName'] = err.constructor.name;
262
+ meta['stack'] = err.stack;
263
+ }
264
+ this._emit([
265
+ this._makeEvent('error', {
266
+ status: 'INTERNAL',
267
+ message,
268
+ fatal: true,
269
+ ...(Object.keys(meta).length > 0 ? { _meta: meta } : {}),
270
+ }),
271
+ ]);
272
+ this._ensureAgentEnd('failed');
273
+ }
274
+ _formatError(error) {
275
+ if (error instanceof A2AAgentError) {
276
+ return error.userMessage;
277
+ }
278
+ return `Error calling remote agent: ${error instanceof Error ? error.message : String(error)}`;
279
+ }
280
+ _nextEventFields() {
281
+ return {
282
+ id: `${this._streamId}-${this._eventCounter++}`,
283
+ timestamp: new Date().toISOString(),
284
+ streamId: this._streamId,
285
+ };
286
+ }
287
+ _makeEvent(type, payload) {
288
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
289
+ return {
290
+ ...this._nextEventFields(),
291
+ type,
292
+ ...payload,
293
+ };
294
+ }
295
+ }
296
+ // ---------------------------------------------------------------------------
297
+ // Public export
298
+ // ---------------------------------------------------------------------------
299
+ export class RemoteSubagentSession extends AgentSession {
300
+ _remoteProtocol;
301
+ constructor(definition, context, messageBus) {
302
+ const protocol = new RemoteSubagentProtocol(definition, context, messageBus);
303
+ super(protocol);
304
+ this._remoteProtocol = protocol;
305
+ }
306
+ /**
307
+ * Returns the ToolResult once the remote agent stream completes.
308
+ * Used by RemoteAgentInvocation to return the result.
309
+ */
310
+ getResult() {
311
+ return this._remoteProtocol.getResult();
312
+ }
313
+ /**
314
+ * Returns the most recent SubagentProgress snapshot, updated per streaming
315
+ * chunk. Useful for constructing error progress when getResult() rejects.
316
+ */
317
+ getLatestProgress() {
318
+ return this._remoteProtocol.getLatestProgress();
319
+ }
320
+ /**
321
+ * Convenience: start execution with a query string.
322
+ * Equivalent to send({message: {content: [{type:'text', text: query}]}}).
323
+ */
324
+ async startWithQuery(query) {
325
+ return this.send({
326
+ message: { content: [{ type: 'text', text: query }] },
327
+ });
328
+ }
329
+ }
330
+ //# sourceMappingURL=remote-subagent-protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-subagent-protocol.js","sourceRoot":"","sources":["../../../src/agents/remote-subagent-protocol.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAUzD,OAAO,EACL,oBAAoB,EAGpB,aAAa,EACb,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAE7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtD,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,SAAS,gBAAgB,CAAC,GAAY;IACpC,OAAO,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC;AAC3D,CAAC;AAED,8EAA8E;AAC9E,yBAAyB;AACzB,8EAA8E;AAE9E,MAAM,sBAAsB;IA2BP;IACA;IA3BX,OAAO,GAAiB,EAAE,CAAC;IAC3B,YAAY,GAAG,IAAI,GAAG,EAA+B,CAAC;IACtD,SAAS,GAAW,UAAU,EAAE,CAAC;IACjC,aAAa,GAAG,CAAC,CAAC;IAClB,kBAAkB,GAAG,KAAK,CAAC;IAC3B,gBAAgB,GAAG,KAAK,CAAC;IACzB,eAAe,CAAqB;IACpC,gBAAgB,GAAG,IAAI,eAAe,EAAE,CAAC;IAEjD,8EAA8E;IACtE,SAAS,CAAqB;IAC9B,MAAM,CAAqB;IAC3B,WAAW,CAAoC;IAEvD,yDAAyD;IACxC,UAAU,CAAS;IAEpC,uEAAuE;IAC/D,eAAe,CAA+B;IAEtD,qEAAqE;IAC7D,cAAc,CAAgC;IAC9C,aAAa,CAA0B;IACvC,cAAc,CAAkC;IAExD,YACmB,UAAiC,EACjC,OAAyB;IAC1C,+EAA+E;IAC/E,WAAuB;QAHN,eAAU,GAAV,UAAU,CAAuB;QACjC,YAAO,GAAP,OAAO,CAAkB;QAI1C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,WAAW,IAAI,UAAU,CAAC,IAAI,CAAC;IAC9D,CAAC;IAED,8EAA8E;IAC9E,0BAA0B;IAC1B,8EAA8E;IAE9E,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,SAAS,CAAC,QAAqC;QAC7C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChC,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAkB;QAC3B,IAAI,SAAS,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAC5C,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CACb,0EAA0E,CAC3E,CAAC;YACJ,CAAC;YAED,MAAM,KAAK,GACT,OAAO,CAAC,OAAO,CAAC,OAAO;iBACpB,MAAM,CAAC,CAAC,CAAC,EAAuC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;iBACrE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;iBAClB,IAAI,CAAC,EAAE,CAAC,IAAI,oBAAoB,CAAC;YAEtC,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;YAEhC,UAAU,CAAC,GAAG,EAAE;gBACd,KAAK,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;YAC1C,CAAC,EAAE,CAAC,CAAC,CAAC;YAEN,OAAO,EAAE,QAAQ,EAAE,CAAC;QACtB,CAAC;QAED,wDAAwD;QACxD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;IAED,8EAA8E;IAC9E,mCAAmC;IACnC,8EAA8E;IAE9E,SAAS;QACP,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,8EAA8E;IAC9E,sBAAsB;IACtB,8EAA8E;IAEtE,eAAe;QACrB,IAAI,CAAC,SAAS,GAAG,UAAU,EAAE,CAAC;QAC9B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,gBAAgB,GAAG,IAAI,eAAe,EAAE,CAAC;QAC9C,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC;QACtC,IAAI,CAAC,cAAc,GAAG,IAAI,OAAO,CAAa,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAChE,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;YAC9B,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,KAAa;QAChD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;gBAChC,wEAAwE;gBACxE,mDAAmD;gBACnD,IAAI,CAAC,cAAc,CAAC;oBAClB,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;oBAC1B,aAAa,EAAE,EAAE;iBAClB,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;gBAChC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,KAAa;QACpC,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;QAChE,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACb,+DAA+D,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CACxF,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QACjD,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACnD,MAAM,aAAa,CAAC,SAAS,CAC3B,IAAI,CAAC,UAAU,CAAC,IAAI,EACpB,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,EACxC,WAAW,CACZ,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC/C,IAAI,QAAQ,GAAG,EAAE,CAAC;QAElB,MAAM,MAAM,GAAG,aAAa,CAAC,iBAAiB,CAC5C,IAAI,CAAC,UAAU,CAAC,IAAI,EACpB,KAAK,EACL;YACE,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM;SACrC,CACF,CAAC;QAEF,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACjC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAE1B,MAAM,EACJ,SAAS,EAAE,YAAY,EACvB,MAAM,EAAE,SAAS,EACjB,WAAW,GACZ,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;YAClC,IAAI,YAAY;gBAAE,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC;YAChD,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;YAEnE,MAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;YAE3C,oEAAoE;YACpE,IAAI,CAAC,eAAe,GAAG;gBACrB,kBAAkB,EAAE,IAAI;gBACxB,SAAS,EAAE,IAAI,CAAC,UAAU;gBAC1B,KAAK,EAAE,aAAa,CAAC,OAAO;gBAC5B,cAAc,EAAE,WAAW,CAAC,eAAe,EAAE;gBAC7C,MAAM,EAAE,WAAW;aACpB,CAAC;YAEF,gCAAgC;YAChC,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACjD,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,CAAC,KAAK,CAAC;oBACT,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;wBACzB,IAAI,EAAE,OAAO;wBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;qBACzC,CAAC;iBACH,CAAC,CAAC;gBACH,QAAQ,GAAG,WAAW,CAAC;YACzB,CAAC;QACH,CAAC;QAED,MAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;QAC3C,WAAW,CAAC,KAAK,CACf,4BAA4B,IAAI,CAAC,UAAU,CAAC,IAAI,6BAA6B,WAAW,CAAC,MAAM,EAAE,CAClG,CAAC;QAEF,MAAM,aAAa,GAAqB;YACtC,kBAAkB,EAAE,IAAI;YACxB,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,KAAK,EAAE,aAAa,CAAC,SAAS;YAC9B,MAAM,EAAE,WAAW;YACnB,cAAc,EAAE,WAAW,CAAC,eAAe,EAAE;SAC9C,CAAC;QACF,IAAI,CAAC,eAAe,GAAG,aAAa,CAAC;QAErC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAEhC,IAAI,CAAC,cAAc,CAAC;YAClB,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;YACnC,aAAa,EAAE,aAAa;SAC7B,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,eAAe;QAC3B,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAE5C,MAAM,SAAS,GAAG,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3D,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,MAAM,CAAC;YACnD,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI;YAChC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI;YAC/B,SAAS;YACT,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY;SAC3C,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,6CAA6C,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CACrE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;QAC5B,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,8EAA8E;IAC9E,mBAAmB;IACnB,8EAA8E;IAEtE,KAAK,CAAC,MAAoB;QAChC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAChC,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAC/B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC/B,CAAC;YACD,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;gBAC9B,GAAG,CAAC,KAAK,CAAC,CAAC;YACb,CAAC;QACH,CAAC;IACH,CAAC;IAEO,kBAAkB;QACxB,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;IACnC,CAAC;IAEO,iBAAiB;QACvB,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC7B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,SAA0B,WAAW;QAC3D,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACtD,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,MAAuB;QAC3C,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAEO,qBAAqB,CAAC,GAAY;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,MAAM,IAAI,GAA4B,EAAE,CAAC;QACzC,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC;YACzC,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC,KAAK,CAAC;YACT,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;gBACvB,MAAM,EAAE,UAAU;gBAClB,OAAO;gBACP,KAAK,EAAE,IAAI;gBACX,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACzD,CAAC;SACH,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAEO,YAAY,CAAC,KAAc;QACjC,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;YACnC,OAAO,KAAK,CAAC,WAAW,CAAC;QAC3B,CAAC;QACD,OAAO,+BAA+B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IACjG,CAAC;IAEO,gBAAgB;QACtB,OAAO;YACL,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;YAC/C,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,QAAQ,EAAE,IAAI,CAAC,SAAS;SACzB,CAAC;IACJ,CAAC;IAEO,UAAU,CAChB,IAAO,EACP,OAAsE;QAEtE,uEAAuE;QACvE,OAAO;YACL,GAAG,IAAI,CAAC,gBAAgB,EAAE;YAC1B,IAAI;YACJ,GAAG,OAAO;SACG,CAAC;IAClB,CAAC;CACF;AAED,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E,MAAM,OAAO,qBAAsB,SAAQ,YAAY;IACpC,eAAe,CAAyB;IAEzD,YACE,UAAiC,EACjC,OAAyB,EACzB,UAAsB;QAEtB,MAAM,QAAQ,GAAG,IAAI,sBAAsB,CACzC,UAAU,EACV,OAAO,EACP,UAAU,CACX,CAAC;QACF,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChB,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;IAClC,CAAC;IAED;;;OAGG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACH,iBAAiB;QACf,OAAO,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,CAAC;IAClD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc,CAAC,KAAa;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC;YACf,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;SACtD,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export {};