@google/gemini-cli-core 0.24.0-nightly.20260103.30f5c4af4 → 0.25.0-nightly.20260112.15891721a

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 (489) hide show
  1. package/README.md +1 -1
  2. package/dist/docs/changelogs/index.md +22 -0
  3. package/dist/docs/changelogs/latest.md +137 -209
  4. package/dist/docs/changelogs/preview.md +116 -114
  5. package/dist/docs/changelogs/releases.md +273 -7
  6. package/dist/docs/cli/model-routing.md +1 -1
  7. package/dist/docs/cli/model.md +1 -1
  8. package/dist/docs/cli/settings.md +67 -52
  9. package/dist/docs/cli/skills.md +156 -0
  10. package/dist/docs/cli/telemetry.md +3 -3
  11. package/dist/docs/cli/tutorials/skills-getting-started.md +124 -0
  12. package/dist/docs/cli/tutorials.md +4 -0
  13. package/dist/docs/core/policy-engine.md +3 -2
  14. package/dist/docs/extensions/index.md +57 -7
  15. package/dist/docs/get-started/configuration.md +44 -11
  16. package/dist/docs/get-started/gemini-3.md +2 -17
  17. package/dist/docs/hooks/best-practices.md +1 -1
  18. package/dist/docs/hooks/index.md +47 -11
  19. package/dist/docs/hooks/reference.md +19 -9
  20. package/dist/docs/hooks/writing-hooks.md +19 -1
  21. package/dist/docs/sidebar.json +4 -0
  22. package/dist/docs/troubleshooting.md +9 -3
  23. package/dist/google-gemini-cli-core-0.25.0-nightly.20260107.59a18e710.tgz +0 -0
  24. package/dist/src/agents/a2a-client-manager.d.ts +9 -0
  25. package/dist/src/agents/a2a-client-manager.js +130 -0
  26. package/dist/src/agents/a2a-client-manager.js.map +1 -1
  27. package/dist/src/agents/a2a-client-manager.test.js +71 -1
  28. package/dist/src/agents/a2a-client-manager.test.js.map +1 -1
  29. package/dist/src/agents/a2aUtils.d.ts +28 -0
  30. package/dist/src/agents/a2aUtils.js +111 -0
  31. package/dist/src/agents/a2aUtils.js.map +1 -0
  32. package/dist/src/agents/a2aUtils.test.js +147 -0
  33. package/dist/src/agents/a2aUtils.test.js.map +1 -0
  34. package/dist/src/agents/agentLoader.d.ts +68 -0
  35. package/dist/src/agents/{toml-loader.js → agentLoader.js} +83 -78
  36. package/dist/src/agents/agentLoader.js.map +1 -0
  37. package/dist/src/agents/agentLoader.test.js +283 -0
  38. package/dist/src/agents/agentLoader.test.js.map +1 -0
  39. package/dist/src/agents/{introspection-agent.d.ts → cli-help-agent.d.ts} +3 -2
  40. package/dist/src/agents/{introspection-agent.js → cli-help-agent.js} +17 -11
  41. package/dist/src/agents/cli-help-agent.js.map +1 -0
  42. package/dist/src/agents/{introspection-agent.test.js → cli-help-agent.test.js} +26 -8
  43. package/dist/src/agents/cli-help-agent.test.js.map +1 -0
  44. package/dist/src/agents/delegate-to-agent-tool.d.ts +2 -2
  45. package/dist/src/agents/delegate-to-agent-tool.js +23 -16
  46. package/dist/src/agents/delegate-to-agent-tool.js.map +1 -1
  47. package/dist/src/agents/delegate-to-agent-tool.test.js +88 -16
  48. package/dist/src/agents/delegate-to-agent-tool.test.js.map +1 -1
  49. package/dist/src/agents/local-executor.js +36 -2
  50. package/dist/src/agents/local-executor.js.map +1 -1
  51. package/dist/src/agents/local-executor.test.js +55 -2
  52. package/dist/src/agents/local-executor.test.js.map +1 -1
  53. package/dist/src/agents/local-invocation.d.ts +2 -2
  54. package/dist/src/agents/local-invocation.js +3 -3
  55. package/dist/src/agents/local-invocation.js.map +1 -1
  56. package/dist/src/agents/local-invocation.test.js +7 -5
  57. package/dist/src/agents/local-invocation.test.js.map +1 -1
  58. package/dist/src/agents/registry.d.ts +10 -0
  59. package/dist/src/agents/registry.js +61 -26
  60. package/dist/src/agents/registry.js.map +1 -1
  61. package/dist/src/agents/registry.test.js +66 -11
  62. package/dist/src/agents/registry.test.js.map +1 -1
  63. package/dist/src/agents/remote-invocation.d.ts +17 -3
  64. package/dist/src/agents/remote-invocation.js +106 -6
  65. package/dist/src/agents/remote-invocation.js.map +1 -1
  66. package/dist/src/agents/remote-invocation.test.js +184 -18
  67. package/dist/src/agents/remote-invocation.test.js.map +1 -1
  68. package/dist/src/agents/subagent-tool-wrapper.d.ts +2 -2
  69. package/dist/src/agents/subagent-tool-wrapper.js +6 -5
  70. package/dist/src/agents/subagent-tool-wrapper.js.map +1 -1
  71. package/dist/src/agents/subagent-tool-wrapper.test.js +17 -10
  72. package/dist/src/agents/subagent-tool-wrapper.test.js.map +1 -1
  73. package/dist/src/agents/types.d.ts +6 -0
  74. package/dist/src/availability/fallbackIntegration.test.js +58 -0
  75. package/dist/src/availability/fallbackIntegration.test.js.map +1 -0
  76. package/dist/src/code_assist/experiments/experiments.d.ts +1 -1
  77. package/dist/src/code_assist/experiments/experiments.js +21 -0
  78. package/dist/src/code_assist/experiments/experiments.js.map +1 -1
  79. package/dist/src/code_assist/experiments/experiments_local.test.js +110 -0
  80. package/dist/src/code_assist/experiments/experiments_local.test.js.map +1 -0
  81. package/dist/src/code_assist/oauth-credential-storage.js +3 -4
  82. package/dist/src/code_assist/oauth-credential-storage.js.map +1 -1
  83. package/dist/src/code_assist/oauth2.js +31 -1
  84. package/dist/src/code_assist/oauth2.js.map +1 -1
  85. package/dist/src/code_assist/oauth2.test.js +105 -8
  86. package/dist/src/code_assist/oauth2.test.js.map +1 -1
  87. package/dist/src/code_assist/server.d.ts +5 -0
  88. package/dist/src/code_assist/server.js +19 -4
  89. package/dist/src/code_assist/server.js.map +1 -1
  90. package/dist/src/code_assist/server.test.js +19 -0
  91. package/dist/src/code_assist/server.test.js.map +1 -1
  92. package/dist/src/code_assist/setup.js +6 -4
  93. package/dist/src/code_assist/setup.js.map +1 -1
  94. package/dist/src/code_assist/setup.test.js +63 -0
  95. package/dist/src/code_assist/setup.test.js.map +1 -1
  96. package/dist/src/code_assist/telemetry.js +2 -1
  97. package/dist/src/code_assist/telemetry.js.map +1 -1
  98. package/dist/src/code_assist/telemetry.test.js +2 -1
  99. package/dist/src/code_assist/telemetry.test.js.map +1 -1
  100. package/dist/src/code_assist/types.d.ts +25 -0
  101. package/dist/src/code_assist/types.js +7 -0
  102. package/dist/src/code_assist/types.js.map +1 -1
  103. package/dist/src/config/config.d.ts +45 -9
  104. package/dist/src/config/config.js +128 -62
  105. package/dist/src/config/config.js.map +1 -1
  106. package/dist/src/config/config.test.js +94 -7
  107. package/dist/src/config/config.test.js.map +1 -1
  108. package/dist/src/config/models.d.ts +7 -0
  109. package/dist/src/config/models.js +17 -4
  110. package/dist/src/config/models.js.map +1 -1
  111. package/dist/src/config/models.test.js +37 -1
  112. package/dist/src/config/models.test.js.map +1 -1
  113. package/dist/src/config/storage.d.ts +1 -0
  114. package/dist/src/config/storage.js +5 -2
  115. package/dist/src/config/storage.js.map +1 -1
  116. package/dist/src/core/client.js +66 -15
  117. package/dist/src/core/client.js.map +1 -1
  118. package/dist/src/core/client.test.js +171 -22
  119. package/dist/src/core/client.test.js.map +1 -1
  120. package/dist/src/core/contentGenerator.js +1 -1
  121. package/dist/src/core/contentGenerator.js.map +1 -1
  122. package/dist/src/core/contentGenerator.test.js +1 -1
  123. package/dist/src/core/contentGenerator.test.js.map +1 -1
  124. package/dist/src/core/coreToolHookTriggers.d.ts +8 -4
  125. package/dist/src/core/coreToolHookTriggers.js +43 -5
  126. package/dist/src/core/coreToolHookTriggers.js.map +1 -1
  127. package/dist/src/core/coreToolHookTriggers.test.js +11 -9
  128. package/dist/src/core/coreToolHookTriggers.test.js.map +1 -1
  129. package/dist/src/core/coreToolScheduler.d.ts +2 -8
  130. package/dist/src/core/coreToolScheduler.js +84 -166
  131. package/dist/src/core/coreToolScheduler.js.map +1 -1
  132. package/dist/src/core/coreToolScheduler.test.js +51 -29
  133. package/dist/src/core/coreToolScheduler.test.js.map +1 -1
  134. package/dist/src/core/geminiChat.d.ts +26 -1
  135. package/dist/src/core/geminiChat.js +74 -8
  136. package/dist/src/core/geminiChat.js.map +1 -1
  137. package/dist/src/core/geminiChat.test.js +109 -0
  138. package/dist/src/core/geminiChat.test.js.map +1 -1
  139. package/dist/src/core/geminiChatHookTriggers.d.ts +8 -4
  140. package/dist/src/core/geminiChatHookTriggers.js +31 -9
  141. package/dist/src/core/geminiChatHookTriggers.js.map +1 -1
  142. package/dist/src/core/geminiChatHookTriggers.test.d.ts +6 -0
  143. package/dist/src/core/geminiChatHookTriggers.test.js +153 -0
  144. package/dist/src/core/geminiChatHookTriggers.test.js.map +1 -0
  145. package/dist/src/core/loggingContentGenerator.js +19 -2
  146. package/dist/src/core/loggingContentGenerator.js.map +1 -1
  147. package/dist/src/core/loggingContentGenerator.test.js +30 -0
  148. package/dist/src/core/loggingContentGenerator.test.js.map +1 -1
  149. package/dist/src/core/nonInteractiveToolExecutor.test.js +4 -2
  150. package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
  151. package/dist/src/core/prompts.js +9 -9
  152. package/dist/src/core/prompts.js.map +1 -1
  153. package/dist/src/core/prompts.test.js +4 -2
  154. package/dist/src/core/prompts.test.js.map +1 -1
  155. package/dist/src/core/tokenLimits.js +6 -12
  156. package/dist/src/core/tokenLimits.js.map +1 -1
  157. package/dist/src/core/tokenLimits.test.js +8 -4
  158. package/dist/src/core/tokenLimits.test.js.map +1 -1
  159. package/dist/src/core/turn.d.ts +18 -2
  160. package/dist/src/core/turn.js +16 -0
  161. package/dist/src/core/turn.js.map +1 -1
  162. package/dist/src/generated/git-commit.d.ts +2 -2
  163. package/dist/src/generated/git-commit.js +2 -2
  164. package/dist/src/hooks/hookEventHandler.d.ts +9 -5
  165. package/dist/src/hooks/hookEventHandler.js +51 -11
  166. package/dist/src/hooks/hookEventHandler.js.map +1 -1
  167. package/dist/src/hooks/hookEventHandler.test.js +176 -8
  168. package/dist/src/hooks/hookEventHandler.test.js.map +1 -1
  169. package/dist/src/hooks/hookRunner.d.ts +2 -2
  170. package/dist/src/hooks/hookRunner.js +12 -4
  171. package/dist/src/hooks/hookRunner.js.map +1 -1
  172. package/dist/src/hooks/hookRunner.test.js +33 -0
  173. package/dist/src/hooks/hookRunner.test.js.map +1 -1
  174. package/dist/src/hooks/hookSystem.d.ts +12 -0
  175. package/dist/src/hooks/hookSystem.js +36 -0
  176. package/dist/src/hooks/hookSystem.js.map +1 -1
  177. package/dist/src/hooks/hookTranslator.js +2 -1
  178. package/dist/src/hooks/hookTranslator.js.map +1 -1
  179. package/dist/src/hooks/index.d.ts +0 -1
  180. package/dist/src/hooks/index.js +0 -2
  181. package/dist/src/hooks/index.js.map +1 -1
  182. package/dist/src/hooks/types.d.ts +21 -0
  183. package/dist/src/hooks/types.js +0 -15
  184. package/dist/src/hooks/types.js.map +1 -1
  185. package/dist/src/hooks/types.test.js +4 -28
  186. package/dist/src/hooks/types.test.js.map +1 -1
  187. package/dist/src/ide/detect-ide.d.ts +4 -0
  188. package/dist/src/ide/detect-ide.js +7 -2
  189. package/dist/src/ide/detect-ide.js.map +1 -1
  190. package/dist/src/ide/detect-ide.test.js +10 -0
  191. package/dist/src/ide/detect-ide.test.js.map +1 -1
  192. package/dist/src/ide/ide-installer.js +2 -2
  193. package/dist/src/ide/ide-installer.js.map +1 -1
  194. package/dist/src/ide/ide-installer.test.js +11 -2
  195. package/dist/src/ide/ide-installer.test.js.map +1 -1
  196. package/dist/src/index.d.ts +11 -2
  197. package/dist/src/index.js +13 -3
  198. package/dist/src/index.js.map +1 -1
  199. package/dist/src/mcp/token-storage/file-token-storage.js +2 -2
  200. package/dist/src/mcp/token-storage/file-token-storage.js.map +1 -1
  201. package/dist/src/policy/config.js +60 -22
  202. package/dist/src/policy/config.js.map +1 -1
  203. package/dist/src/policy/config.test.js +21 -0
  204. package/dist/src/policy/config.test.js.map +1 -1
  205. package/dist/src/policy/persistence.test.js +1 -1
  206. package/dist/src/policy/persistence.test.js.map +1 -1
  207. package/dist/src/policy/policies/agent.toml +1 -1
  208. package/dist/src/policy/policies/yolo.toml +1 -0
  209. package/dist/src/policy/policy-engine.js +22 -6
  210. package/dist/src/policy/policy-engine.js.map +1 -1
  211. package/dist/src/policy/policy-engine.test.js +206 -1
  212. package/dist/src/policy/policy-engine.test.js.map +1 -1
  213. package/dist/src/policy/policy-updater.test.js +3 -3
  214. package/dist/src/policy/policy-updater.test.js.map +1 -1
  215. package/dist/src/policy/toml-loader.d.ts +0 -8
  216. package/dist/src/policy/toml-loader.js +7 -70
  217. package/dist/src/policy/toml-loader.js.map +1 -1
  218. package/dist/src/policy/toml-loader.test.js +16 -6
  219. package/dist/src/policy/toml-loader.test.js.map +1 -1
  220. package/dist/src/policy/utils.d.ts +21 -0
  221. package/dist/src/policy/utils.js +45 -0
  222. package/dist/src/policy/utils.js.map +1 -0
  223. package/dist/src/policy/utils.test.d.ts +6 -0
  224. package/dist/src/policy/utils.test.js +92 -0
  225. package/dist/src/policy/utils.test.js.map +1 -0
  226. package/dist/src/routing/routingStrategy.d.ts +2 -0
  227. package/dist/src/routing/strategies/classifierStrategy.js +1 -1
  228. package/dist/src/routing/strategies/classifierStrategy.js.map +1 -1
  229. package/dist/src/routing/strategies/classifierStrategy.test.js +16 -0
  230. package/dist/src/routing/strategies/classifierStrategy.test.js.map +1 -1
  231. package/dist/src/routing/strategies/fallbackStrategy.d.ts +1 -1
  232. package/dist/src/routing/strategies/fallbackStrategy.js +2 -2
  233. package/dist/src/routing/strategies/fallbackStrategy.js.map +1 -1
  234. package/dist/src/routing/strategies/fallbackStrategy.test.js +13 -0
  235. package/dist/src/routing/strategies/fallbackStrategy.test.js.map +1 -1
  236. package/dist/src/routing/strategies/overrideStrategy.d.ts +1 -1
  237. package/dist/src/routing/strategies/overrideStrategy.js +5 -5
  238. package/dist/src/routing/strategies/overrideStrategy.js.map +1 -1
  239. package/dist/src/routing/strategies/overrideStrategy.test.js +14 -0
  240. package/dist/src/routing/strategies/overrideStrategy.test.js.map +1 -1
  241. package/dist/src/scheduler/tool-executor.d.ts +22 -0
  242. package/dist/src/scheduler/tool-executor.js +198 -0
  243. package/dist/src/scheduler/tool-executor.js.map +1 -0
  244. package/dist/src/scheduler/tool-executor.test.d.ts +6 -0
  245. package/dist/src/scheduler/tool-executor.test.js +231 -0
  246. package/dist/src/scheduler/tool-executor.test.js.map +1 -0
  247. package/dist/src/scheduler/tool-modifier.d.ts +23 -0
  248. package/dist/src/scheduler/tool-modifier.js +50 -0
  249. package/dist/src/scheduler/tool-modifier.js.map +1 -0
  250. package/dist/src/scheduler/tool-modifier.test.d.ts +6 -0
  251. package/dist/src/scheduler/tool-modifier.test.js +159 -0
  252. package/dist/src/scheduler/tool-modifier.test.js.map +1 -0
  253. package/dist/src/services/chatCompressionService.js +3 -10
  254. package/dist/src/services/chatCompressionService.js.map +1 -1
  255. package/dist/src/services/chatCompressionService.test.js +1 -0
  256. package/dist/src/services/chatCompressionService.test.js.map +1 -1
  257. package/dist/src/services/chatRecordingService.d.ts +7 -1
  258. package/dist/src/services/chatRecordingService.js +20 -2
  259. package/dist/src/services/chatRecordingService.js.map +1 -1
  260. package/dist/src/services/chatRecordingService.test.js +43 -0
  261. package/dist/src/services/chatRecordingService.test.js.map +1 -1
  262. package/dist/src/services/environmentSanitization.js +4 -3
  263. package/dist/src/services/environmentSanitization.js.map +1 -1
  264. package/dist/src/services/gitService.test.js +10 -2
  265. package/dist/src/services/gitService.test.js.map +1 -1
  266. package/dist/src/services/modelConfig.integration.test.js +2 -2
  267. package/dist/src/services/modelConfig.integration.test.js.map +1 -1
  268. package/dist/src/services/modelConfigService.d.ts +29 -1
  269. package/dist/src/services/modelConfigService.js +116 -69
  270. package/dist/src/services/modelConfigService.js.map +1 -1
  271. package/dist/src/services/modelConfigService.test.js +116 -0
  272. package/dist/src/services/modelConfigService.test.js.map +1 -1
  273. package/dist/src/services/shellExecutionService.js +1 -1
  274. package/dist/src/services/shellExecutionService.js.map +1 -1
  275. package/dist/src/services/shellExecutionService.test.js +43 -2
  276. package/dist/src/services/shellExecutionService.test.js.map +1 -1
  277. package/dist/src/skills/skillLoader.d.ts +31 -0
  278. package/dist/src/skills/skillLoader.js +77 -0
  279. package/dist/src/skills/skillLoader.js.map +1 -0
  280. package/dist/src/skills/skillLoader.test.d.ts +6 -0
  281. package/dist/src/skills/skillLoader.test.js +75 -0
  282. package/dist/src/skills/skillLoader.test.js.map +1 -0
  283. package/dist/src/{services → skills}/skillManager.d.ts +18 -19
  284. package/dist/src/skills/skillManager.js +108 -0
  285. package/dist/src/skills/skillManager.js.map +1 -0
  286. package/dist/src/skills/skillManager.test.d.ts +6 -0
  287. package/dist/src/skills/skillManager.test.js +164 -0
  288. package/dist/src/skills/skillManager.test.js.map +1 -0
  289. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +9 -6
  290. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +20 -16
  291. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  292. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +43 -4
  293. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
  294. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +2 -2
  295. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +4 -4
  296. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  297. package/dist/src/telemetry/loggers.d.ts +3 -3
  298. package/dist/src/telemetry/loggers.js +4 -4
  299. package/dist/src/telemetry/loggers.js.map +1 -1
  300. package/dist/src/telemetry/loggers.test.js +7 -5
  301. package/dist/src/telemetry/loggers.test.js.map +1 -1
  302. package/dist/src/telemetry/types.d.ts +7 -7
  303. package/dist/src/telemetry/types.js +14 -12
  304. package/dist/src/telemetry/types.js.map +1 -1
  305. package/dist/src/test-utils/mock-message-bus.d.ts +1 -0
  306. package/dist/src/test-utils/mock-message-bus.js +29 -0
  307. package/dist/src/test-utils/mock-message-bus.js.map +1 -1
  308. package/dist/src/test-utils/mock-tool.d.ts +5 -3
  309. package/dist/src/test-utils/mock-tool.js +11 -10
  310. package/dist/src/test-utils/mock-tool.js.map +1 -1
  311. package/dist/src/tools/activate-skill.d.ts +2 -2
  312. package/dist/src/tools/activate-skill.js +28 -10
  313. package/dist/src/tools/activate-skill.js.map +1 -1
  314. package/dist/src/tools/activate-skill.test.js +31 -11
  315. package/dist/src/tools/activate-skill.test.js.map +1 -1
  316. package/dist/src/tools/confirmation-policy.test.js +2 -12
  317. package/dist/src/tools/confirmation-policy.test.js.map +1 -1
  318. package/dist/src/tools/edit.d.ts +27 -5
  319. package/dist/src/tools/edit.js +446 -137
  320. package/dist/src/tools/edit.js.map +1 -1
  321. package/dist/src/tools/edit.test.js +257 -525
  322. package/dist/src/tools/edit.test.js.map +1 -1
  323. package/dist/src/tools/get-internal-docs.d.ts +2 -2
  324. package/dist/src/tools/get-internal-docs.js +17 -24
  325. package/dist/src/tools/get-internal-docs.js.map +1 -1
  326. package/dist/src/tools/get-internal-docs.test.js +2 -1
  327. package/dist/src/tools/get-internal-docs.test.js.map +1 -1
  328. package/dist/src/tools/glob.d.ts +2 -2
  329. package/dist/src/tools/glob.js +1 -1
  330. package/dist/src/tools/glob.js.map +1 -1
  331. package/dist/src/tools/glob.test.js +2 -1
  332. package/dist/src/tools/glob.test.js.map +1 -1
  333. package/dist/src/tools/grep.d.ts +2 -2
  334. package/dist/src/tools/grep.js +1 -1
  335. package/dist/src/tools/grep.js.map +1 -1
  336. package/dist/src/tools/grep.test.js +5 -4
  337. package/dist/src/tools/grep.test.js.map +1 -1
  338. package/dist/src/tools/ls.d.ts +2 -2
  339. package/dist/src/tools/ls.js +2 -2
  340. package/dist/src/tools/ls.js.map +1 -1
  341. package/dist/src/tools/ls.test.js +2 -1
  342. package/dist/src/tools/ls.test.js.map +1 -1
  343. package/dist/src/tools/mcp-client.d.ts +2 -2
  344. package/dist/src/tools/mcp-client.js +2 -1
  345. package/dist/src/tools/mcp-client.js.map +1 -1
  346. package/dist/src/tools/mcp-tool.d.ts +20 -5
  347. package/dist/src/tools/mcp-tool.js +8 -8
  348. package/dist/src/tools/mcp-tool.js.map +1 -1
  349. package/dist/src/tools/mcp-tool.test.js +11 -6
  350. package/dist/src/tools/mcp-tool.test.js.map +1 -1
  351. package/dist/src/tools/memoryTool.d.ts +3 -3
  352. package/dist/src/tools/memoryTool.js +2 -2
  353. package/dist/src/tools/memoryTool.js.map +1 -1
  354. package/dist/src/tools/memoryTool.test.js +5 -2
  355. package/dist/src/tools/memoryTool.test.js.map +1 -1
  356. package/dist/src/tools/message-bus-integration.test.js +10 -37
  357. package/dist/src/tools/message-bus-integration.test.js.map +1 -1
  358. package/dist/src/tools/read-file.d.ts +2 -2
  359. package/dist/src/tools/read-file.js +1 -1
  360. package/dist/src/tools/read-file.js.map +1 -1
  361. package/dist/src/tools/read-file.test.js +3 -2
  362. package/dist/src/tools/read-file.test.js.map +1 -1
  363. package/dist/src/tools/read-many-files.d.ts +2 -2
  364. package/dist/src/tools/read-many-files.js +2 -3
  365. package/dist/src/tools/read-many-files.js.map +1 -1
  366. package/dist/src/tools/read-many-files.test.js +3 -2
  367. package/dist/src/tools/read-many-files.test.js.map +1 -1
  368. package/dist/src/tools/ripGrep.d.ts +2 -2
  369. package/dist/src/tools/ripGrep.js +3 -4
  370. package/dist/src/tools/ripGrep.js.map +1 -1
  371. package/dist/src/tools/ripGrep.test.js +7 -6
  372. package/dist/src/tools/ripGrep.test.js.map +1 -1
  373. package/dist/src/tools/shell.d.ts +3 -4
  374. package/dist/src/tools/shell.js +9 -35
  375. package/dist/src/tools/shell.js.map +1 -1
  376. package/dist/src/tools/shell.test.js +40 -57
  377. package/dist/src/tools/shell.test.js.map +1 -1
  378. package/dist/src/tools/tool-error.d.ts +4 -0
  379. package/dist/src/tools/tool-error.js +4 -0
  380. package/dist/src/tools/tool-error.js.map +1 -1
  381. package/dist/src/tools/tool-registry.d.ts +11 -6
  382. package/dist/src/tools/tool-registry.js +13 -8
  383. package/dist/src/tools/tool-registry.js.map +1 -1
  384. package/dist/src/tools/tool-registry.test.js +14 -10
  385. package/dist/src/tools/tool-registry.test.js.map +1 -1
  386. package/dist/src/tools/tools.d.ts +7 -5
  387. package/dist/src/tools/tools.js +15 -17
  388. package/dist/src/tools/tools.js.map +1 -1
  389. package/dist/src/tools/tools.test.js +3 -1
  390. package/dist/src/tools/tools.test.js.map +1 -1
  391. package/dist/src/tools/web-fetch.d.ts +2 -2
  392. package/dist/src/tools/web-fetch.js +4 -4
  393. package/dist/src/tools/web-fetch.js.map +1 -1
  394. package/dist/src/tools/web-fetch.test.js +17 -19
  395. package/dist/src/tools/web-fetch.test.js.map +1 -1
  396. package/dist/src/tools/web-search.d.ts +2 -2
  397. package/dist/src/tools/web-search.js +3 -4
  398. package/dist/src/tools/web-search.js.map +1 -1
  399. package/dist/src/tools/web-search.test.js +2 -1
  400. package/dist/src/tools/web-search.test.js.map +1 -1
  401. package/dist/src/tools/write-file.d.ts +2 -2
  402. package/dist/src/tools/write-file.js +5 -3
  403. package/dist/src/tools/write-file.js.map +1 -1
  404. package/dist/src/tools/write-file.test.js +4 -1
  405. package/dist/src/tools/write-file.test.js.map +1 -1
  406. package/dist/src/tools/write-todos.d.ts +2 -2
  407. package/dist/src/tools/write-todos.js +5 -4
  408. package/dist/src/tools/write-todos.js.map +1 -1
  409. package/dist/src/tools/write-todos.test.js +2 -1
  410. package/dist/src/tools/write-todos.test.js.map +1 -1
  411. package/dist/src/utils/apiConversionUtils.d.ts +12 -0
  412. package/dist/src/utils/apiConversionUtils.js +46 -0
  413. package/dist/src/utils/apiConversionUtils.js.map +1 -0
  414. package/dist/src/utils/apiConversionUtils.test.d.ts +6 -0
  415. package/dist/src/utils/apiConversionUtils.test.js +150 -0
  416. package/dist/src/utils/apiConversionUtils.test.js.map +1 -0
  417. package/dist/src/utils/editCorrector.test.js +1 -1
  418. package/dist/src/utils/editCorrector.test.js.map +1 -1
  419. package/dist/src/utils/editor.d.ts +2 -2
  420. package/dist/src/utils/editor.js +19 -2
  421. package/dist/src/utils/editor.js.map +1 -1
  422. package/dist/src/utils/editor.test.js +27 -4
  423. package/dist/src/utils/editor.test.js.map +1 -1
  424. package/dist/src/utils/events.d.ts +52 -1
  425. package/dist/src/utils/events.js +28 -0
  426. package/dist/src/utils/events.js.map +1 -1
  427. package/dist/src/utils/events.test.js +25 -0
  428. package/dist/src/utils/events.test.js.map +1 -1
  429. package/dist/src/utils/fileDiffUtils.d.ts +18 -0
  430. package/dist/src/utils/fileDiffUtils.js +37 -0
  431. package/dist/src/utils/fileDiffUtils.js.map +1 -0
  432. package/dist/src/utils/fileDiffUtils.test.d.ts +6 -0
  433. package/dist/src/utils/fileDiffUtils.test.js +84 -0
  434. package/dist/src/utils/fileDiffUtils.test.js.map +1 -0
  435. package/dist/src/utils/gitIgnoreParser.js +9 -10
  436. package/dist/src/utils/gitIgnoreParser.js.map +1 -1
  437. package/dist/src/utils/installationManager.test.js +11 -3
  438. package/dist/src/utils/installationManager.test.js.map +1 -1
  439. package/dist/src/utils/memoryDiscovery.js +1 -2
  440. package/dist/src/utils/memoryDiscovery.js.map +1 -1
  441. package/dist/src/utils/memoryDiscovery.test.js +9 -0
  442. package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
  443. package/dist/src/utils/paths.d.ts +10 -0
  444. package/dist/src/utils/paths.js +20 -1
  445. package/dist/src/utils/paths.js.map +1 -1
  446. package/dist/src/utils/terminal.d.ts +2 -0
  447. package/dist/src/utils/terminal.js +6 -0
  448. package/dist/src/utils/terminal.js.map +1 -1
  449. package/dist/src/utils/tokenCalculation.js +20 -5
  450. package/dist/src/utils/tokenCalculation.js.map +1 -1
  451. package/dist/src/utils/tokenCalculation.test.js +11 -2
  452. package/dist/src/utils/tokenCalculation.test.js.map +1 -1
  453. package/dist/src/utils/tool-utils.test.js +2 -1
  454. package/dist/src/utils/tool-utils.test.js.map +1 -1
  455. package/dist/src/utils/userAccountManager.test.js +5 -5
  456. package/dist/src/utils/userAccountManager.test.js.map +1 -1
  457. package/dist/tsconfig.tsbuildinfo +1 -1
  458. package/package.json +3 -2
  459. package/dist/docs/cli/configuration.md +0 -780
  460. package/dist/docs/get-started/deployment.md +0 -143
  461. package/dist/google-gemini-cli-core-0.24.0-nightly.20251227.37be16243.tgz +0 -0
  462. package/dist/src/agents/introspection-agent.js.map +0 -1
  463. package/dist/src/agents/introspection-agent.test.js.map +0 -1
  464. package/dist/src/agents/toml-loader.d.ts +0 -74
  465. package/dist/src/agents/toml-loader.js.map +0 -1
  466. package/dist/src/agents/toml-loader.test.js +0 -309
  467. package/dist/src/agents/toml-loader.test.js.map +0 -1
  468. package/dist/src/core/sessionHookTriggers.d.ts +0 -28
  469. package/dist/src/core/sessionHookTriggers.js +0 -68
  470. package/dist/src/core/sessionHookTriggers.js.map +0 -1
  471. package/dist/src/services/skillManager.js +0 -157
  472. package/dist/src/services/skillManager.js.map +0 -1
  473. package/dist/src/services/skillManager.test.js +0 -169
  474. package/dist/src/services/skillManager.test.js.map +0 -1
  475. package/dist/src/tools/smart-edit.d.ts +0 -78
  476. package/dist/src/tools/smart-edit.js +0 -722
  477. package/dist/src/tools/smart-edit.js.map +0 -1
  478. package/dist/src/tools/smart-edit.test.js +0 -591
  479. package/dist/src/tools/smart-edit.test.js.map +0 -1
  480. package/dist/src/utils/shell-permissions.d.ts +0 -52
  481. package/dist/src/utils/shell-permissions.js +0 -188
  482. package/dist/src/utils/shell-permissions.js.map +0 -1
  483. package/dist/src/utils/shell-permissions.test.js +0 -342
  484. package/dist/src/utils/shell-permissions.test.js.map +0 -1
  485. /package/dist/src/agents/{introspection-agent.test.d.ts → a2aUtils.test.d.ts} +0 -0
  486. /package/dist/src/agents/{toml-loader.test.d.ts → agentLoader.test.d.ts} +0 -0
  487. /package/dist/src/{services/skillManager.test.d.ts → agents/cli-help-agent.test.d.ts} +0 -0
  488. /package/dist/src/{tools/smart-edit.test.d.ts → availability/fallbackIntegration.test.d.ts} +0 -0
  489. /package/dist/src/{utils/shell-permissions.test.d.ts → code_assist/experiments/experiments_local.test.d.ts} +0 -0
@@ -1,14 +1,15 @@
1
1
  /**
2
2
  * @license
3
- * Copyright 2025 Google LLC
3
+ * Copyright 2026 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import TOML from '@iarna/toml';
6
+ import yaml from 'js-yaml';
7
7
  import * as fs from 'node:fs/promises';
8
8
  import {} from 'node:fs';
9
9
  import * as path from 'node:path';
10
10
  import { z } from 'zod';
11
11
  import { isValidToolName, DELEGATE_TO_AGENT_TOOL_NAME, } from '../tools/tool-names.js';
12
+ import { FRONTMATTER_REGEX } from '../skills/skillLoader.js';
12
13
  /**
13
14
  * Error thrown when an agent definition is invalid or cannot be loaded.
14
15
  */
@@ -34,22 +35,10 @@ const localAgentSchema = z
34
35
  message: 'Invalid tool name',
35
36
  }))
36
37
  .optional(),
37
- prompts: z.object({
38
- system_prompt: z.string().min(1),
39
- query: z.string().optional(),
40
- }),
41
- model: z
42
- .object({
43
- model: z.string().optional(),
44
- temperature: z.number().optional(),
45
- })
46
- .optional(),
47
- run: z
48
- .object({
49
- max_turns: z.number().int().positive().optional(),
50
- timeout_mins: z.number().int().positive().optional(),
51
- })
52
- .optional(),
38
+ model: z.string().optional(),
39
+ temperature: z.number().optional(),
40
+ max_turns: z.number().int().positive().optional(),
41
+ timeout_mins: z.number().int().positive().optional(),
53
42
  })
54
43
  .strict();
55
44
  const remoteAgentSchema = z
@@ -61,20 +50,14 @@ const remoteAgentSchema = z
61
50
  agent_card_url: z.string().url(),
62
51
  })
63
52
  .strict();
64
- const remoteAgentsConfigSchema = z
65
- .object({
66
- remote_agents: z.array(remoteAgentSchema),
67
- })
68
- .strict();
69
53
  // Use a Zod union to automatically discriminate between local and remote
70
- // agent types. This is more robust than manually checking the 'kind' field,
71
- // as it correctly handles cases where 'kind' is omitted by relying on
72
- // the presence of unique fields like `agent_card_url` or `prompts`.
54
+ // agent types.
73
55
  const agentUnionOptions = [
74
56
  { schema: localAgentSchema, label: 'Local Agent' },
75
57
  { schema: remoteAgentSchema, label: 'Remote Agent' },
76
58
  ];
77
- const singleAgentSchema = z.union([
59
+ const remoteAgentsListSchema = z.array(remoteAgentSchema);
60
+ const markdownFrontmatterSchema = z.union([
78
61
  agentUnionOptions[0].schema,
79
62
  agentUnionOptions[1].schema,
80
63
  ]);
@@ -99,13 +82,13 @@ function formatZodError(error, context) {
99
82
  return `${context}:\n${issues}`;
100
83
  }
101
84
  /**
102
- * Parses and validates an agent TOML file. Returns a validated array of RemoteAgentDefinitions or a single LocalAgentDefinition.
85
+ * Parses and validates an agent Markdown file with frontmatter.
103
86
  *
104
- * @param filePath Path to the TOML file.
105
- * @returns An array of parsed and validated TomlAgentDefinitions.
87
+ * @param filePath Path to the Markdown file.
88
+ * @returns An array containing the single parsed agent definition.
106
89
  * @throws AgentLoadError if parsing or validation fails.
107
90
  */
108
- export async function parseAgentToml(filePath) {
91
+ export async function parseAgentMarkdown(filePath) {
109
92
  let content;
110
93
  try {
111
94
  content = await fs.readFile(filePath, 'utf-8');
@@ -113,42 +96,65 @@ export async function parseAgentToml(filePath) {
113
96
  catch (error) {
114
97
  throw new AgentLoadError(filePath, `Could not read file: ${error.message}`);
115
98
  }
116
- let raw;
99
+ // Split frontmatter and body
100
+ const match = content.match(FRONTMATTER_REGEX);
101
+ if (!match) {
102
+ throw new AgentLoadError(filePath, 'Invalid markdown format. File must start with YAML frontmatter enclosed in "---".');
103
+ }
104
+ const frontmatterStr = match[1];
105
+ const body = match[2] || '';
106
+ let rawFrontmatter;
117
107
  try {
118
- raw = TOML.parse(content);
108
+ rawFrontmatter = yaml.load(frontmatterStr);
119
109
  }
120
110
  catch (error) {
121
- throw new AgentLoadError(filePath, `TOML parsing failed: ${error.message}`);
111
+ throw new AgentLoadError(filePath, `YAML frontmatter parsing failed: ${error.message}`);
122
112
  }
123
- // Check for `remote_agents` array
124
- if (typeof raw === 'object' &&
125
- raw !== null &&
126
- 'remote_agents' in raw) {
127
- const result = remoteAgentsConfigSchema.safeParse(raw);
113
+ // Handle array of remote agents
114
+ if (Array.isArray(rawFrontmatter)) {
115
+ const result = remoteAgentsListSchema.safeParse(rawFrontmatter);
128
116
  if (!result.success) {
129
- throw new AgentLoadError(filePath, `Validation failed: ${formatZodError(result.error, 'Remote Agents Config')}`);
117
+ throw new AgentLoadError(filePath, `Validation failed: ${formatZodError(result.error, 'Remote Agents List')}`);
130
118
  }
131
- return result.data.remote_agents;
119
+ return result.data.map((agent) => ({
120
+ ...agent,
121
+ kind: 'remote',
122
+ }));
132
123
  }
133
- // Single Agent Logic
134
- const result = singleAgentSchema.safeParse(raw);
124
+ const result = markdownFrontmatterSchema.safeParse(rawFrontmatter);
135
125
  if (!result.success) {
136
126
  throw new AgentLoadError(filePath, `Validation failed: ${formatZodError(result.error, 'Agent Definition')}`);
137
127
  }
138
- const toml = result.data;
139
- // Prevent sub-agents from delegating to other agents (to prevent recursion/complexity)
140
- if ('tools' in toml && toml.tools?.includes(DELEGATE_TO_AGENT_TOOL_NAME)) {
128
+ const frontmatter = result.data;
129
+ if (frontmatter.kind === 'remote') {
130
+ return [
131
+ {
132
+ ...frontmatter,
133
+ kind: 'remote',
134
+ },
135
+ ];
136
+ }
137
+ // Local agent validation
138
+ // Validate tools
139
+ if (frontmatter.tools &&
140
+ frontmatter.tools.includes(DELEGATE_TO_AGENT_TOOL_NAME)) {
141
141
  throw new AgentLoadError(filePath, `Validation failed: tools list cannot include '${DELEGATE_TO_AGENT_TOOL_NAME}'. Sub-agents cannot delegate to other agents.`);
142
142
  }
143
- return [toml];
143
+ // Construct the local agent definition
144
+ const agentDef = {
145
+ ...frontmatter,
146
+ kind: 'local',
147
+ system_prompt: body.trim(),
148
+ };
149
+ return [agentDef];
144
150
  }
145
151
  /**
146
- * Converts a TomlAgentDefinition DTO to the internal AgentDefinition structure.
152
+ * Converts a FrontmatterAgentDefinition DTO to the internal AgentDefinition structure.
147
153
  *
148
- * @param toml The parsed TOML definition.
154
+ * @param markdown The parsed Markdown/Frontmatter definition.
149
155
  * @returns The internal AgentDefinition.
150
156
  */
151
- export function tomlToAgentDefinition(toml) {
157
+ export function markdownToAgentDefinition(markdown) {
152
158
  const inputConfig = {
153
159
  inputs: {
154
160
  query: {
@@ -158,39 +164,39 @@ export function tomlToAgentDefinition(toml) {
158
164
  },
159
165
  },
160
166
  };
161
- if (toml.kind === 'remote') {
167
+ if (markdown.kind === 'remote') {
162
168
  return {
163
169
  kind: 'remote',
164
- name: toml.name,
165
- description: toml.description || '(Loading description...)',
166
- displayName: toml.display_name,
167
- agentCardUrl: toml.agent_card_url,
170
+ name: markdown.name,
171
+ description: markdown.description || '(Loading description...)',
172
+ displayName: markdown.display_name,
173
+ agentCardUrl: markdown.agent_card_url,
168
174
  inputConfig,
169
175
  };
170
176
  }
171
177
  // If a model is specified, use it. Otherwise, inherit
172
- const modelName = toml.model?.model || 'inherit';
178
+ const modelName = markdown.model || 'inherit';
173
179
  return {
174
180
  kind: 'local',
175
- name: toml.name,
176
- description: toml.description,
177
- displayName: toml.display_name,
181
+ name: markdown.name,
182
+ description: markdown.description,
183
+ displayName: markdown.display_name,
178
184
  promptConfig: {
179
- systemPrompt: toml.prompts.system_prompt,
180
- query: toml.prompts.query,
185
+ systemPrompt: markdown.system_prompt,
186
+ query: '${query}',
181
187
  },
182
188
  modelConfig: {
183
189
  model: modelName,
184
- temp: toml.model?.temperature ?? 1,
190
+ temp: markdown.temperature ?? 1,
185
191
  top_p: 0.95,
186
192
  },
187
193
  runConfig: {
188
- max_turns: toml.run?.max_turns,
189
- max_time_minutes: toml.run?.timeout_mins || 5,
194
+ max_turns: markdown.max_turns,
195
+ max_time_minutes: markdown.timeout_mins || 5,
190
196
  },
191
- toolConfig: toml.tools
197
+ toolConfig: markdown.tools
192
198
  ? {
193
- tools: toml.tools,
199
+ tools: markdown.tools,
194
200
  }
195
201
  : undefined,
196
202
  inputConfig,
@@ -198,7 +204,8 @@ export function tomlToAgentDefinition(toml) {
198
204
  }
199
205
  /**
200
206
  * Loads all agents from a specific directory.
201
- * Ignores non-TOML files and files starting with _.
207
+ * Ignores files starting with _ and non-supported extensions.
208
+ * Supported extensions: .md
202
209
  *
203
210
  * @param dir Directory path to scan.
204
211
  * @returns Object containing successfully loaded agents and any errors.
@@ -220,17 +227,15 @@ export async function loadAgentsFromDirectory(dir) {
220
227
  result.errors.push(new AgentLoadError(dir, `Could not list directory: ${error.message}`));
221
228
  return result;
222
229
  }
223
- const files = dirEntries
224
- .filter((entry) => entry.isFile() &&
225
- entry.name.endsWith('.toml') &&
226
- !entry.name.startsWith('_'))
227
- .map((entry) => entry.name);
228
- for (const file of files) {
229
- const filePath = path.join(dir, file);
230
+ const files = dirEntries.filter((entry) => entry.isFile() &&
231
+ !entry.name.startsWith('_') &&
232
+ entry.name.endsWith('.md'));
233
+ for (const entry of files) {
234
+ const filePath = path.join(dir, entry.name);
230
235
  try {
231
- const tomls = await parseAgentToml(filePath);
232
- for (const toml of tomls) {
233
- const agent = tomlToAgentDefinition(toml);
236
+ const agentDefs = await parseAgentMarkdown(filePath);
237
+ for (const def of agentDefs) {
238
+ const agent = markdownToAgentDefinition(def);
234
239
  result.agents.push(agent);
235
240
  }
236
241
  }
@@ -245,4 +250,4 @@ export async function loadAgentsFromDirectory(dir) {
245
250
  }
246
251
  return result;
247
252
  }
248
- //# sourceMappingURL=toml-loader.js.map
253
+ //# sourceMappingURL=agentLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentLoader.js","sourceRoot":"","sources":["../../../src/agents/agentLoader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,283 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { describe, it, expect, beforeEach, afterEach } from 'vitest';
7
+ import * as fs from 'node:fs/promises';
8
+ import * as path from 'node:path';
9
+ import * as os from 'node:os';
10
+ import { parseAgentMarkdown, markdownToAgentDefinition, loadAgentsFromDirectory, AgentLoadError, } from './agentLoader.js';
11
+ import { GEMINI_MODEL_ALIAS_PRO } from '../config/models.js';
12
+ describe('loader', () => {
13
+ let tempDir;
14
+ beforeEach(async () => {
15
+ tempDir = await fs.mkdtemp(path.join(os.tmpdir(), 'agent-test-'));
16
+ });
17
+ afterEach(async () => {
18
+ if (tempDir) {
19
+ await fs.rm(tempDir, { recursive: true, force: true });
20
+ }
21
+ });
22
+ async function writeAgentMarkdown(content, fileName = 'test.md') {
23
+ const filePath = path.join(tempDir, fileName);
24
+ await fs.writeFile(filePath, content);
25
+ return filePath;
26
+ }
27
+ describe('parseAgentMarkdown', () => {
28
+ it('should parse a valid markdown agent file', async () => {
29
+ const filePath = await writeAgentMarkdown(`---
30
+ name: test-agent-md
31
+ description: A markdown agent
32
+ ---
33
+ You are a markdown agent.`);
34
+ const result = await parseAgentMarkdown(filePath);
35
+ expect(result).toHaveLength(1);
36
+ expect(result[0]).toMatchObject({
37
+ name: 'test-agent-md',
38
+ description: 'A markdown agent',
39
+ kind: 'local',
40
+ system_prompt: 'You are a markdown agent.',
41
+ });
42
+ });
43
+ it('should parse frontmatter with tools and model config', async () => {
44
+ const filePath = await writeAgentMarkdown(`---
45
+ name: complex-agent
46
+ description: A complex markdown agent
47
+ tools:
48
+ - run_shell_command
49
+ model: gemini-pro
50
+ temperature: 0.7
51
+ ---
52
+ System prompt content.`);
53
+ const result = await parseAgentMarkdown(filePath);
54
+ expect(result).toHaveLength(1);
55
+ expect(result[0]).toMatchObject({
56
+ name: 'complex-agent',
57
+ description: 'A complex markdown agent',
58
+ tools: ['run_shell_command'],
59
+ model: 'gemini-pro',
60
+ temperature: 0.7,
61
+ system_prompt: 'System prompt content.',
62
+ });
63
+ });
64
+ it('should throw AgentLoadError if frontmatter is missing', async () => {
65
+ const filePath = await writeAgentMarkdown(`Just some markdown content.`);
66
+ await expect(parseAgentMarkdown(filePath)).rejects.toThrow(AgentLoadError);
67
+ await expect(parseAgentMarkdown(filePath)).rejects.toThrow('Invalid markdown format');
68
+ });
69
+ it('should throw AgentLoadError if frontmatter is invalid YAML', async () => {
70
+ const filePath = await writeAgentMarkdown(`---
71
+ name: [invalid yaml
72
+ ---
73
+ Body`);
74
+ await expect(parseAgentMarkdown(filePath)).rejects.toThrow(AgentLoadError);
75
+ await expect(parseAgentMarkdown(filePath)).rejects.toThrow('YAML frontmatter parsing failed');
76
+ });
77
+ it('should throw AgentLoadError if validation fails (missing required field)', async () => {
78
+ const filePath = await writeAgentMarkdown(`---
79
+ name: test-agent
80
+ # missing description
81
+ ---
82
+ Body`);
83
+ await expect(parseAgentMarkdown(filePath)).rejects.toThrow(/Validation failed/);
84
+ });
85
+ it('should throw AgentLoadError if tools list includes forbidden tool', async () => {
86
+ const filePath = await writeAgentMarkdown(`---
87
+ name: test-agent
88
+ description: Test
89
+ tools:
90
+ - delegate_to_agent
91
+ ---
92
+ Body`);
93
+ await expect(parseAgentMarkdown(filePath)).rejects.toThrow(/tools list cannot include 'delegate_to_agent'/);
94
+ });
95
+ it('should parse a valid remote agent markdown file', async () => {
96
+ const filePath = await writeAgentMarkdown(`---
97
+ kind: remote
98
+ name: remote-agent
99
+ description: A remote agent
100
+ agent_card_url: https://example.com/card
101
+ ---
102
+ `);
103
+ const result = await parseAgentMarkdown(filePath);
104
+ expect(result).toHaveLength(1);
105
+ expect(result[0]).toEqual({
106
+ kind: 'remote',
107
+ name: 'remote-agent',
108
+ description: 'A remote agent',
109
+ agent_card_url: 'https://example.com/card',
110
+ });
111
+ });
112
+ it('should infer remote agent kind from agent_card_url', async () => {
113
+ const filePath = await writeAgentMarkdown(`---
114
+ name: inferred-remote
115
+ description: Inferred
116
+ agent_card_url: https://example.com/inferred
117
+ ---
118
+ `);
119
+ const result = await parseAgentMarkdown(filePath);
120
+ expect(result).toHaveLength(1);
121
+ expect(result[0]).toEqual({
122
+ kind: 'remote',
123
+ name: 'inferred-remote',
124
+ description: 'Inferred',
125
+ agent_card_url: 'https://example.com/inferred',
126
+ });
127
+ });
128
+ it('should parse a remote agent with no body', async () => {
129
+ const filePath = await writeAgentMarkdown(`---
130
+ kind: remote
131
+ name: no-body-remote
132
+ agent_card_url: https://example.com/card
133
+ ---
134
+ `);
135
+ const result = await parseAgentMarkdown(filePath);
136
+ expect(result).toHaveLength(1);
137
+ expect(result[0]).toEqual({
138
+ kind: 'remote',
139
+ name: 'no-body-remote',
140
+ agent_card_url: 'https://example.com/card',
141
+ });
142
+ });
143
+ it('should parse multiple remote agents in a list', async () => {
144
+ const filePath = await writeAgentMarkdown(`---
145
+ - kind: remote
146
+ name: remote-1
147
+ agent_card_url: https://example.com/1
148
+ - kind: remote
149
+ name: remote-2
150
+ agent_card_url: https://example.com/2
151
+ ---
152
+ `);
153
+ const result = await parseAgentMarkdown(filePath);
154
+ expect(result).toHaveLength(2);
155
+ expect(result[0]).toEqual({
156
+ kind: 'remote',
157
+ name: 'remote-1',
158
+ agent_card_url: 'https://example.com/1',
159
+ });
160
+ expect(result[1]).toEqual({
161
+ kind: 'remote',
162
+ name: 'remote-2',
163
+ agent_card_url: 'https://example.com/2',
164
+ });
165
+ });
166
+ });
167
+ describe('markdownToAgentDefinition', () => {
168
+ it('should convert valid Markdown DTO to AgentDefinition with defaults', () => {
169
+ const markdown = {
170
+ kind: 'local',
171
+ name: 'test-agent',
172
+ description: 'A test agent',
173
+ system_prompt: 'You are a test agent.',
174
+ };
175
+ const result = markdownToAgentDefinition(markdown);
176
+ expect(result).toMatchObject({
177
+ name: 'test-agent',
178
+ description: 'A test agent',
179
+ promptConfig: {
180
+ systemPrompt: 'You are a test agent.',
181
+ query: '${query}',
182
+ },
183
+ modelConfig: {
184
+ model: 'inherit',
185
+ top_p: 0.95,
186
+ },
187
+ runConfig: {
188
+ max_time_minutes: 5,
189
+ },
190
+ inputConfig: {
191
+ inputs: {
192
+ query: {
193
+ type: 'string',
194
+ required: false,
195
+ },
196
+ },
197
+ },
198
+ });
199
+ });
200
+ it('should pass through model aliases', () => {
201
+ const markdown = {
202
+ kind: 'local',
203
+ name: 'test-agent',
204
+ description: 'A test agent',
205
+ model: GEMINI_MODEL_ALIAS_PRO,
206
+ system_prompt: 'You are a test agent.',
207
+ };
208
+ const result = markdownToAgentDefinition(markdown);
209
+ expect(result.modelConfig.model).toBe(GEMINI_MODEL_ALIAS_PRO);
210
+ });
211
+ it('should pass through unknown model names (e.g. auto)', () => {
212
+ const markdown = {
213
+ kind: 'local',
214
+ name: 'test-agent',
215
+ description: 'A test agent',
216
+ model: 'auto',
217
+ system_prompt: 'You are a test agent.',
218
+ };
219
+ const result = markdownToAgentDefinition(markdown);
220
+ expect(result.modelConfig.model).toBe('auto');
221
+ });
222
+ it('should convert remote agent definition', () => {
223
+ const markdown = {
224
+ kind: 'remote',
225
+ name: 'remote-agent',
226
+ description: 'A remote agent',
227
+ agent_card_url: 'https://example.com/card',
228
+ };
229
+ const result = markdownToAgentDefinition(markdown);
230
+ expect(result).toEqual({
231
+ kind: 'remote',
232
+ name: 'remote-agent',
233
+ description: 'A remote agent',
234
+ displayName: undefined,
235
+ agentCardUrl: 'https://example.com/card',
236
+ inputConfig: {
237
+ inputs: {
238
+ query: {
239
+ type: 'string',
240
+ description: 'The task for the agent.',
241
+ required: false,
242
+ },
243
+ },
244
+ },
245
+ });
246
+ });
247
+ });
248
+ describe('loadAgentsFromDirectory', () => {
249
+ it('should load definitions from a directory (Markdown only)', async () => {
250
+ await writeAgentMarkdown(`---
251
+ name: agent-1
252
+ description: Agent 1
253
+ ---
254
+ Prompt 1`, 'valid.md');
255
+ // Create a non-supported file
256
+ await fs.writeFile(path.join(tempDir, 'other.txt'), 'content');
257
+ // Create a hidden file
258
+ await writeAgentMarkdown(`---
259
+ name: hidden
260
+ description: Hidden
261
+ ---
262
+ Hidden`, '_hidden.md');
263
+ const result = await loadAgentsFromDirectory(tempDir);
264
+ expect(result.agents).toHaveLength(1);
265
+ expect(result.agents[0].name).toBe('agent-1');
266
+ expect(result.errors).toHaveLength(0);
267
+ });
268
+ it('should return empty result if directory does not exist', async () => {
269
+ const nonExistentDir = path.join(tempDir, 'does-not-exist');
270
+ const result = await loadAgentsFromDirectory(nonExistentDir);
271
+ expect(result.agents).toHaveLength(0);
272
+ expect(result.errors).toHaveLength(0);
273
+ });
274
+ it('should capture errors for malformed individual files', async () => {
275
+ // Create a malformed Markdown file
276
+ await writeAgentMarkdown('invalid markdown', 'malformed.md');
277
+ const result = await loadAgentsFromDirectory(tempDir);
278
+ expect(result.agents).toHaveLength(0);
279
+ expect(result.errors).toHaveLength(1);
280
+ });
281
+ });
282
+ });
283
+ //# sourceMappingURL=agentLoader.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentLoader.test.js","sourceRoot":"","sources":["../../../src/agents/agentLoader.test.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,8 @@
5
5
  */
6
6
  import type { AgentDefinition } from './types.js';
7
7
  import { z } from 'zod';
8
- declare const IntrospectionReportSchema: z.ZodObject<{
8
+ import type { Config } from '../config/config.js';
9
+ declare const CliHelpReportSchema: z.ZodObject<{
9
10
  answer: z.ZodString;
10
11
  sources: z.ZodArray<z.ZodString, "many">;
11
12
  }, "strip", z.ZodTypeAny, {
@@ -19,5 +20,5 @@ declare const IntrospectionReportSchema: z.ZodObject<{
19
20
  * An agent specialized in answering questions about Gemini CLI itself,
20
21
  * using its own documentation and runtime state.
21
22
  */
22
- export declare const IntrospectionAgent: AgentDefinition<typeof IntrospectionReportSchema>;
23
+ export declare const CliHelpAgent: (config: Config) => AgentDefinition<typeof CliHelpReportSchema>;
23
24
  export {};