@google/adk 0.6.1 → 1.0.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 (402) hide show
  1. package/dist/cjs/agents/base_agent.js +11 -2
  2. package/dist/cjs/agents/context.js +1 -0
  3. package/dist/cjs/agents/functions.js +1 -0
  4. package/dist/cjs/agents/invocation_context.js +1 -0
  5. package/dist/cjs/agents/llm_agent.js +70 -13
  6. package/dist/cjs/agents/loop_agent.js +4 -0
  7. package/dist/cjs/agents/parallel_agent.js +4 -0
  8. package/dist/cjs/agents/processors/code_execution_request_processor.js +2 -0
  9. package/dist/cjs/agents/processors/context_compactor_request_processor.js +9 -0
  10. package/dist/cjs/agents/processors/tool_filter_request_processor.js +73 -0
  11. package/dist/cjs/agents/routed_agent.js +97 -0
  12. package/dist/cjs/auth/auth_handler.js +66 -1
  13. package/dist/cjs/auth/auth_preprocessor.js +178 -0
  14. package/dist/cjs/auth/auth_provider_registry.js +61 -0
  15. package/dist/cjs/auth/base_auth_provider.js +27 -0
  16. package/dist/cjs/auth/credential_service/session_state_credential_service.js +51 -0
  17. package/dist/cjs/auth/oauth2/oauth2_credential_exchanger.js +198 -0
  18. package/dist/cjs/auth/oauth2/oauth2_credential_refresher.js +109 -0
  19. package/dist/cjs/auth/oauth2/oauth2_discovery.js +186 -0
  20. package/dist/cjs/auth/oauth2/oauth2_utils.js +119 -0
  21. package/dist/cjs/auth/refresher/base_credential_refresher.js +44 -0
  22. package/dist/cjs/auth/refresher/credential_refresher_registry.js +68 -0
  23. package/dist/cjs/code_executors/base_code_executor.js +9 -5
  24. package/dist/cjs/code_executors/code_execution_utils.js +19 -0
  25. package/dist/cjs/code_executors/unsafe_local_code_executor.js +241 -0
  26. package/dist/cjs/common.js +61 -0
  27. package/dist/cjs/features/feature_registry.js +141 -0
  28. package/dist/cjs/index.js +32 -20
  29. package/dist/cjs/index.js.map +4 -4
  30. package/dist/cjs/models/apigee_llm.js +2 -2
  31. package/dist/cjs/models/google_llm.js +18 -53
  32. package/dist/cjs/models/routed_llm.js +99 -0
  33. package/dist/cjs/plugins/base_plugin.js +39 -2
  34. package/dist/cjs/plugins/plugin_manager.js +39 -0
  35. package/dist/cjs/runner/runner.js +31 -3
  36. package/dist/cjs/sessions/db/operations.js +3 -10
  37. package/dist/cjs/skills/loader.js +283 -0
  38. package/dist/cjs/skills/prompt.js +58 -0
  39. package/dist/cjs/skills/skill.js +78 -0
  40. package/dist/cjs/tools/agent_tool.js +10 -3
  41. package/dist/cjs/tools/mcp/mcp_tool.js +4 -1
  42. package/dist/cjs/tools/skill/list_skills_tool.js +76 -0
  43. package/dist/cjs/tools/skill/load_skill_resource_tool.js +225 -0
  44. package/dist/cjs/tools/skill/load_skill_tool.js +108 -0
  45. package/dist/cjs/tools/skill/run_skill_inline_script_tool.js +146 -0
  46. package/dist/cjs/tools/skill/run_skill_script_tool.js +224 -0
  47. package/dist/cjs/tools/skill/skill_toolset.js +163 -0
  48. package/dist/cjs/utils/experimental.js +74 -0
  49. package/dist/cjs/utils/failover_utils.js +93 -0
  50. package/dist/cjs/utils/file_extension_utils.js +77 -0
  51. package/dist/cjs/utils/file_utils.js +94 -0
  52. package/dist/cjs/utils/streaming_utils.js +333 -0
  53. package/dist/cjs/version.js +1 -1
  54. package/dist/esm/a2a/a2a_event.js +2 -0
  55. package/dist/esm/a2a/a2a_remote_agent.js +2 -0
  56. package/dist/esm/a2a/a2a_remote_agent_run_processor.js +2 -0
  57. package/dist/esm/a2a/a2a_remote_agent_utils.js +2 -0
  58. package/dist/esm/a2a/agent_card.js +2 -0
  59. package/dist/esm/a2a/agent_executor.js +2 -0
  60. package/dist/esm/a2a/agent_to_a2a.js +2 -0
  61. package/dist/esm/a2a/event_converter_utils.js +2 -0
  62. package/dist/esm/a2a/event_processor_utils.js +2 -0
  63. package/dist/esm/a2a/executor_context.js +2 -0
  64. package/dist/esm/a2a/metadata_converter_utils.js +2 -0
  65. package/dist/esm/a2a/part_converter_utils.js +2 -0
  66. package/dist/esm/agents/active_streaming_tool.js +2 -0
  67. package/dist/esm/agents/base_agent.js +13 -2
  68. package/dist/esm/agents/context.js +3 -0
  69. package/dist/esm/agents/functions.js +3 -0
  70. package/dist/esm/agents/instructions.js +2 -0
  71. package/dist/esm/agents/invocation_context.js +3 -0
  72. package/dist/esm/agents/live_request_queue.js +2 -0
  73. package/dist/esm/agents/llm_agent.js +72 -13
  74. package/dist/esm/agents/loop_agent.js +6 -0
  75. package/dist/esm/agents/parallel_agent.js +6 -0
  76. package/dist/esm/agents/processors/agent_transfer_llm_request_processor.js +2 -0
  77. package/dist/esm/agents/processors/base_llm_processor.js +2 -0
  78. package/dist/esm/agents/processors/basic_llm_request_processor.js +2 -0
  79. package/dist/esm/agents/processors/code_execution_request_processor.js +5 -0
  80. package/dist/esm/agents/processors/content_processor_utils.js +2 -0
  81. package/dist/esm/agents/processors/content_request_processor.js +2 -0
  82. package/dist/esm/agents/processors/context_compactor_request_processor.js +11 -0
  83. package/dist/esm/agents/processors/identity_llm_request_processor.js +2 -0
  84. package/dist/esm/agents/processors/instructions_llm_request_processor.js +2 -0
  85. package/dist/esm/agents/processors/request_confirmation_llm_request_processor.js +2 -0
  86. package/dist/esm/agents/processors/tool_filter_request_processor.js +44 -0
  87. package/dist/esm/agents/readonly_context.js +2 -0
  88. package/dist/esm/agents/routed_agent.js +70 -0
  89. package/dist/esm/agents/run_config.js +2 -0
  90. package/dist/esm/agents/sequential_agent.js +2 -0
  91. package/dist/esm/agents/transcription_entry.js +2 -0
  92. package/dist/esm/artifacts/base_artifact_service.js +2 -0
  93. package/dist/esm/artifacts/file_artifact_service.js +2 -0
  94. package/dist/esm/artifacts/gcs_artifact_service.js +2 -0
  95. package/dist/esm/artifacts/in_memory_artifact_service.js +2 -0
  96. package/dist/esm/artifacts/registry.js +2 -0
  97. package/dist/esm/auth/auth_credential.js +2 -0
  98. package/dist/esm/auth/auth_handler.js +68 -1
  99. package/dist/esm/auth/auth_preprocessor.js +155 -0
  100. package/dist/esm/auth/auth_provider_registry.js +33 -0
  101. package/dist/esm/auth/auth_schemes.js +2 -0
  102. package/dist/esm/auth/auth_tool.js +2 -0
  103. package/dist/esm/auth/base_auth_provider.js +7 -0
  104. package/dist/esm/auth/credential_service/base_credential_service.js +2 -0
  105. package/dist/esm/auth/credential_service/in_memory_credential_service.js +2 -0
  106. package/dist/esm/auth/credential_service/session_state_credential_service.js +23 -0
  107. package/dist/esm/auth/exchanger/base_credential_exchanger.js +2 -0
  108. package/dist/esm/auth/exchanger/credential_exchanger_registry.js +2 -0
  109. package/dist/esm/auth/oauth2/oauth2_credential_exchanger.js +177 -0
  110. package/dist/esm/auth/oauth2/oauth2_credential_refresher.js +85 -0
  111. package/dist/esm/auth/oauth2/oauth2_discovery.js +156 -0
  112. package/dist/esm/auth/oauth2/oauth2_utils.js +87 -0
  113. package/dist/esm/auth/refresher/base_credential_refresher.js +16 -0
  114. package/dist/esm/auth/refresher/credential_refresher_registry.js +40 -0
  115. package/dist/esm/code_executors/base_code_executor.js +11 -5
  116. package/dist/esm/code_executors/built_in_code_executor.js +2 -0
  117. package/dist/esm/code_executors/code_execution_utils.js +19 -0
  118. package/dist/esm/code_executors/code_executor_context.js +2 -0
  119. package/dist/esm/code_executors/unsafe_local_code_executor.js +205 -0
  120. package/dist/esm/common.js +47 -3
  121. package/dist/esm/context/base_context_compactor.js +2 -0
  122. package/dist/esm/context/summarizers/base_summarizer.js +2 -0
  123. package/dist/esm/context/summarizers/llm_summarizer.js +2 -0
  124. package/dist/esm/context/token_based_context_compactor.js +2 -0
  125. package/dist/esm/context/truncating_context_compactor.js +2 -0
  126. package/dist/esm/events/compacted_event.js +2 -0
  127. package/dist/esm/events/event.js +2 -0
  128. package/dist/esm/events/event_actions.js +2 -0
  129. package/dist/esm/events/structured_events.js +2 -0
  130. package/dist/esm/examples/base_example_provider.js +2 -0
  131. package/dist/esm/examples/example.js +2 -0
  132. package/dist/esm/examples/example_util.js +2 -0
  133. package/dist/esm/features/feature_registry.js +107 -0
  134. package/dist/esm/index.js +34 -21
  135. package/dist/esm/index.js.map +4 -4
  136. package/dist/esm/index_web.js +2 -0
  137. package/dist/esm/memory/base_memory_service.js +2 -0
  138. package/dist/esm/memory/in_memory_memory_service.js +2 -0
  139. package/dist/esm/memory/memory_entry.js +2 -0
  140. package/dist/esm/models/apigee_llm.js +4 -2
  141. package/dist/esm/models/base_llm.js +2 -0
  142. package/dist/esm/models/base_llm_connection.js +2 -0
  143. package/dist/esm/models/gemini_llm_connection.js +2 -0
  144. package/dist/esm/models/google_llm.js +20 -54
  145. package/dist/esm/models/llm_request.js +2 -0
  146. package/dist/esm/models/llm_response.js +2 -0
  147. package/dist/esm/models/registry.js +2 -0
  148. package/dist/esm/models/routed_llm.js +73 -0
  149. package/dist/esm/plugins/base_plugin.js +41 -1
  150. package/dist/esm/plugins/logging_plugin.js +2 -0
  151. package/dist/esm/plugins/plugin_manager.js +41 -0
  152. package/dist/esm/plugins/security_plugin.js +2 -0
  153. package/dist/esm/runner/in_memory_runner.js +2 -0
  154. package/dist/esm/runner/runner.js +33 -3
  155. package/dist/esm/sessions/base_session_service.js +2 -0
  156. package/dist/esm/sessions/database_session_service.js +2 -0
  157. package/dist/esm/sessions/db/operations.js +5 -10
  158. package/dist/esm/sessions/db/schema.js +2 -0
  159. package/dist/esm/sessions/in_memory_session_service.js +2 -0
  160. package/dist/esm/sessions/registry.js +2 -0
  161. package/dist/esm/sessions/session.js +2 -0
  162. package/dist/esm/sessions/state.js +2 -0
  163. package/dist/esm/skills/loader.js +244 -0
  164. package/dist/esm/skills/prompt.js +30 -0
  165. package/dist/esm/skills/skill.js +49 -0
  166. package/dist/esm/telemetry/google_cloud.js +2 -0
  167. package/dist/esm/telemetry/setup.js +2 -0
  168. package/dist/esm/telemetry/tracing.js +2 -0
  169. package/dist/esm/tools/agent_tool.js +12 -3
  170. package/dist/esm/tools/base_tool.js +2 -0
  171. package/dist/esm/tools/base_toolset.js +2 -0
  172. package/dist/esm/tools/exit_loop_tool.js +2 -0
  173. package/dist/esm/tools/forwarding_artifact_service.js +2 -0
  174. package/dist/esm/tools/function_tool.js +2 -0
  175. package/dist/esm/tools/google_search_tool.js +2 -0
  176. package/dist/esm/tools/load_artifacts_tool.js +2 -0
  177. package/dist/esm/tools/load_memory_tool.js +2 -0
  178. package/dist/esm/tools/long_running_tool.js +2 -0
  179. package/dist/esm/tools/mcp/mcp_session_manager.js +2 -0
  180. package/dist/esm/tools/mcp/mcp_tool.js +6 -1
  181. package/dist/esm/tools/mcp/mcp_toolset.js +2 -0
  182. package/dist/esm/tools/preload_memory_tool.js +2 -0
  183. package/dist/esm/tools/skill/list_skills_tool.js +50 -0
  184. package/dist/esm/tools/skill/load_skill_resource_tool.js +191 -0
  185. package/dist/esm/tools/skill/load_skill_tool.js +82 -0
  186. package/dist/esm/tools/skill/run_skill_inline_script_tool.js +120 -0
  187. package/dist/esm/tools/skill/run_skill_script_tool.js +192 -0
  188. package/dist/esm/tools/skill/skill_toolset.js +137 -0
  189. package/dist/esm/tools/tool_confirmation.js +2 -0
  190. package/dist/esm/utils/client_labels.js +2 -0
  191. package/dist/esm/utils/env_aware_utils.js +2 -0
  192. package/dist/esm/utils/experimental.js +46 -0
  193. package/dist/esm/utils/failover_utils.js +65 -0
  194. package/dist/esm/utils/file_extension_utils.js +51 -0
  195. package/dist/esm/utils/file_utils.js +56 -0
  196. package/dist/esm/utils/gemini_schema_util.js +2 -0
  197. package/dist/esm/utils/logger.js +2 -0
  198. package/dist/esm/utils/model_name.js +2 -0
  199. package/dist/esm/utils/object_notation_utils.js +2 -0
  200. package/dist/esm/utils/simple_zod_to_json.js +2 -0
  201. package/dist/esm/utils/streaming_utils.js +307 -0
  202. package/dist/esm/utils/variant_utils.js +2 -0
  203. package/dist/esm/version.js +3 -1
  204. package/dist/types/agents/context.d.ts +1 -0
  205. package/dist/types/agents/invocation_context.d.ts +5 -0
  206. package/dist/types/agents/processors/tool_filter_request_processor.d.ts +14 -0
  207. package/dist/types/agents/routed_agent.d.ts +59 -0
  208. package/dist/types/auth/auth_credential.d.ts +17 -0
  209. package/dist/types/auth/auth_handler.d.ts +1 -0
  210. package/dist/types/auth/auth_preprocessor.d.ts +12 -0
  211. package/dist/types/auth/auth_provider_registry.d.ts +27 -0
  212. package/dist/types/auth/base_auth_provider.d.ts +20 -0
  213. package/dist/types/auth/credential_service/session_state_credential_service.d.ts +20 -0
  214. package/dist/types/auth/exchanger/base_credential_exchanger.d.ts +12 -5
  215. package/dist/types/auth/oauth2/oauth2_credential_exchanger.d.ts +26 -0
  216. package/dist/types/auth/oauth2/oauth2_credential_refresher.d.ts +29 -0
  217. package/dist/types/auth/oauth2/oauth2_discovery.d.ts +38 -0
  218. package/dist/types/auth/oauth2/oauth2_utils.d.ts +56 -0
  219. package/dist/types/auth/refresher/base_credential_refresher.d.ts +38 -0
  220. package/dist/types/auth/refresher/credential_refresher_registry.d.ts +27 -0
  221. package/dist/types/code_executors/base_code_executor.d.ts +4 -4
  222. package/dist/types/code_executors/code_execution_utils.d.ts +29 -1
  223. package/dist/types/code_executors/unsafe_local_code_executor.d.ts +48 -0
  224. package/dist/types/common.d.ts +26 -3
  225. package/dist/types/features/feature_registry.d.ts +66 -0
  226. package/dist/types/index.d.ts +4 -0
  227. package/dist/types/memory/base_memory_service.d.ts +6 -0
  228. package/dist/types/memory/memory_entry.d.ts +11 -5
  229. package/dist/types/models/apigee_llm.d.ts +1 -1
  230. package/dist/types/models/base_llm.d.ts +1 -1
  231. package/dist/types/models/google_llm.d.ts +1 -1
  232. package/dist/types/models/llm_request.d.ts +4 -0
  233. package/dist/types/models/routed_llm.d.ts +38 -0
  234. package/dist/types/plugins/base_plugin.d.ts +49 -0
  235. package/dist/types/plugins/plugin_manager.d.ts +22 -1
  236. package/dist/types/runner/runner.d.ts +1 -0
  237. package/dist/types/skills/loader.d.ts +38 -0
  238. package/dist/types/skills/prompt.d.ts +13 -0
  239. package/dist/types/skills/skill.d.ts +48 -0
  240. package/dist/types/tools/skill/list_skills_tool.d.ts +14 -0
  241. package/dist/types/tools/skill/load_skill_resource_tool.d.ts +15 -0
  242. package/dist/types/tools/skill/load_skill_tool.d.ts +14 -0
  243. package/dist/types/tools/skill/run_skill_inline_script_tool.d.ts +14 -0
  244. package/dist/types/tools/skill/run_skill_script_tool.d.ts +17 -0
  245. package/dist/types/tools/skill/skill_toolset.d.ts +28 -0
  246. package/dist/types/utils/experimental.d.ts +11 -0
  247. package/dist/types/utils/failover_utils.d.ts +17 -0
  248. package/dist/types/utils/file_extension_utils.d.ts +21 -0
  249. package/dist/types/utils/file_utils.d.ts +11 -0
  250. package/dist/types/utils/streaming_utils.d.ts +40 -0
  251. package/dist/types/version.d.ts +1 -1
  252. package/dist/web/a2a/a2a_event.js +2 -0
  253. package/dist/web/a2a/a2a_remote_agent.js +2 -0
  254. package/dist/web/a2a/a2a_remote_agent_run_processor.js +2 -0
  255. package/dist/web/a2a/a2a_remote_agent_utils.js +2 -0
  256. package/dist/web/a2a/agent_card.js +2 -0
  257. package/dist/web/a2a/agent_executor.js +2 -0
  258. package/dist/web/a2a/agent_to_a2a.js +2 -0
  259. package/dist/web/a2a/event_converter_utils.js +2 -0
  260. package/dist/web/a2a/event_processor_utils.js +2 -0
  261. package/dist/web/a2a/executor_context.js +2 -0
  262. package/dist/web/a2a/metadata_converter_utils.js +2 -0
  263. package/dist/web/a2a/part_converter_utils.js +2 -0
  264. package/dist/web/agents/active_streaming_tool.js +2 -0
  265. package/dist/web/agents/base_agent.js +13 -2
  266. package/dist/web/agents/context.js +3 -0
  267. package/dist/web/agents/functions.js +3 -0
  268. package/dist/web/agents/instructions.js +2 -0
  269. package/dist/web/agents/invocation_context.js +3 -0
  270. package/dist/web/agents/live_request_queue.js +2 -0
  271. package/dist/web/agents/llm_agent.js +72 -13
  272. package/dist/web/agents/loop_agent.js +6 -0
  273. package/dist/web/agents/parallel_agent.js +6 -0
  274. package/dist/web/agents/processors/agent_transfer_llm_request_processor.js +2 -0
  275. package/dist/web/agents/processors/base_llm_processor.js +2 -0
  276. package/dist/web/agents/processors/basic_llm_request_processor.js +2 -0
  277. package/dist/web/agents/processors/code_execution_request_processor.js +5 -0
  278. package/dist/web/agents/processors/content_processor_utils.js +2 -0
  279. package/dist/web/agents/processors/content_request_processor.js +2 -0
  280. package/dist/web/agents/processors/context_compactor_request_processor.js +11 -0
  281. package/dist/web/agents/processors/identity_llm_request_processor.js +2 -0
  282. package/dist/web/agents/processors/instructions_llm_request_processor.js +2 -0
  283. package/dist/web/agents/processors/request_confirmation_llm_request_processor.js +2 -0
  284. package/dist/web/agents/processors/tool_filter_request_processor.js +62 -0
  285. package/dist/web/agents/readonly_context.js +2 -0
  286. package/dist/web/agents/routed_agent.js +138 -0
  287. package/dist/web/agents/run_config.js +2 -0
  288. package/dist/web/agents/sequential_agent.js +2 -0
  289. package/dist/web/agents/transcription_entry.js +2 -0
  290. package/dist/web/artifacts/base_artifact_service.js +2 -0
  291. package/dist/web/artifacts/file_artifact_service.js +2 -0
  292. package/dist/web/artifacts/gcs_artifact_service.js +2 -0
  293. package/dist/web/artifacts/in_memory_artifact_service.js +2 -0
  294. package/dist/web/artifacts/registry.js +2 -0
  295. package/dist/web/auth/auth_credential.js +2 -0
  296. package/dist/web/auth/auth_handler.js +85 -1
  297. package/dist/web/auth/auth_preprocessor.js +173 -0
  298. package/dist/web/auth/auth_provider_registry.js +33 -0
  299. package/dist/web/auth/auth_schemes.js +2 -0
  300. package/dist/web/auth/auth_tool.js +2 -0
  301. package/dist/web/auth/base_auth_provider.js +7 -0
  302. package/dist/web/auth/credential_service/base_credential_service.js +2 -0
  303. package/dist/web/auth/credential_service/in_memory_credential_service.js +2 -0
  304. package/dist/web/auth/credential_service/session_state_credential_service.js +23 -0
  305. package/dist/web/auth/exchanger/base_credential_exchanger.js +2 -0
  306. package/dist/web/auth/exchanger/credential_exchanger_registry.js +2 -0
  307. package/dist/web/auth/oauth2/oauth2_credential_exchanger.js +188 -0
  308. package/dist/web/auth/oauth2/oauth2_credential_refresher.js +102 -0
  309. package/dist/web/auth/oauth2/oauth2_discovery.js +156 -0
  310. package/dist/web/auth/oauth2/oauth2_utils.js +87 -0
  311. package/dist/web/auth/refresher/base_credential_refresher.js +16 -0
  312. package/dist/web/auth/refresher/credential_refresher_registry.js +40 -0
  313. package/dist/web/code_executors/base_code_executor.js +11 -5
  314. package/dist/web/code_executors/built_in_code_executor.js +2 -0
  315. package/dist/web/code_executors/code_execution_utils.js +19 -0
  316. package/dist/web/code_executors/code_executor_context.js +2 -0
  317. package/dist/web/code_executors/unsafe_local_code_executor.js +203 -0
  318. package/dist/web/common.js +47 -3
  319. package/dist/web/context/base_context_compactor.js +2 -0
  320. package/dist/web/context/summarizers/base_summarizer.js +2 -0
  321. package/dist/web/context/summarizers/llm_summarizer.js +2 -0
  322. package/dist/web/context/token_based_context_compactor.js +2 -0
  323. package/dist/web/context/truncating_context_compactor.js +2 -0
  324. package/dist/web/events/compacted_event.js +2 -0
  325. package/dist/web/events/event.js +2 -0
  326. package/dist/web/events/event_actions.js +2 -0
  327. package/dist/web/events/structured_events.js +2 -0
  328. package/dist/web/examples/base_example_provider.js +2 -0
  329. package/dist/web/examples/example.js +2 -0
  330. package/dist/web/examples/example_util.js +2 -0
  331. package/dist/web/features/feature_registry.js +107 -0
  332. package/dist/web/index.js +3 -2
  333. package/dist/web/index.js.map +4 -4
  334. package/dist/web/index_web.js +2 -0
  335. package/dist/web/memory/base_memory_service.js +2 -0
  336. package/dist/web/memory/in_memory_memory_service.js +2 -0
  337. package/dist/web/memory/memory_entry.js +2 -0
  338. package/dist/web/models/apigee_llm.js +4 -2
  339. package/dist/web/models/base_llm.js +2 -0
  340. package/dist/web/models/base_llm_connection.js +2 -0
  341. package/dist/web/models/gemini_llm_connection.js +2 -0
  342. package/dist/web/models/google_llm.js +37 -59
  343. package/dist/web/models/llm_request.js +2 -0
  344. package/dist/web/models/llm_response.js +2 -0
  345. package/dist/web/models/registry.js +2 -0
  346. package/dist/web/models/routed_llm.js +122 -0
  347. package/dist/web/plugins/base_plugin.js +41 -1
  348. package/dist/web/plugins/logging_plugin.js +2 -0
  349. package/dist/web/plugins/plugin_manager.js +41 -0
  350. package/dist/web/plugins/security_plugin.js +2 -0
  351. package/dist/web/runner/in_memory_runner.js +2 -0
  352. package/dist/web/runner/runner.js +33 -3
  353. package/dist/web/sessions/base_session_service.js +2 -0
  354. package/dist/web/sessions/database_session_service.js +2 -0
  355. package/dist/web/sessions/db/operations.js +5 -10
  356. package/dist/web/sessions/db/schema.js +2 -0
  357. package/dist/web/sessions/in_memory_session_service.js +2 -0
  358. package/dist/web/sessions/registry.js +2 -0
  359. package/dist/web/sessions/session.js +2 -0
  360. package/dist/web/sessions/state.js +2 -0
  361. package/dist/web/skills/loader.js +262 -0
  362. package/dist/web/skills/prompt.js +30 -0
  363. package/dist/web/skills/skill.js +67 -0
  364. package/dist/web/telemetry/google_cloud.js +2 -0
  365. package/dist/web/telemetry/setup.js +2 -0
  366. package/dist/web/telemetry/tracing.js +2 -0
  367. package/dist/web/tools/agent_tool.js +12 -3
  368. package/dist/web/tools/base_tool.js +2 -0
  369. package/dist/web/tools/base_toolset.js +2 -0
  370. package/dist/web/tools/exit_loop_tool.js +2 -0
  371. package/dist/web/tools/forwarding_artifact_service.js +2 -0
  372. package/dist/web/tools/function_tool.js +2 -0
  373. package/dist/web/tools/google_search_tool.js +2 -0
  374. package/dist/web/tools/load_artifacts_tool.js +2 -0
  375. package/dist/web/tools/load_memory_tool.js +2 -0
  376. package/dist/web/tools/long_running_tool.js +2 -0
  377. package/dist/web/tools/mcp/mcp_session_manager.js +2 -0
  378. package/dist/web/tools/mcp/mcp_tool.js +6 -1
  379. package/dist/web/tools/mcp/mcp_toolset.js +2 -0
  380. package/dist/web/tools/preload_memory_tool.js +2 -0
  381. package/dist/web/tools/skill/list_skills_tool.js +50 -0
  382. package/dist/web/tools/skill/load_skill_resource_tool.js +191 -0
  383. package/dist/web/tools/skill/load_skill_tool.js +82 -0
  384. package/dist/web/tools/skill/run_skill_inline_script_tool.js +120 -0
  385. package/dist/web/tools/skill/run_skill_script_tool.js +190 -0
  386. package/dist/web/tools/skill/skill_toolset.js +123 -0
  387. package/dist/web/tools/tool_confirmation.js +2 -0
  388. package/dist/web/utils/client_labels.js +2 -0
  389. package/dist/web/utils/env_aware_utils.js +2 -0
  390. package/dist/web/utils/experimental.js +46 -0
  391. package/dist/web/utils/failover_utils.js +96 -0
  392. package/dist/web/utils/file_extension_utils.js +51 -0
  393. package/dist/web/utils/file_utils.js +74 -0
  394. package/dist/web/utils/gemini_schema_util.js +2 -0
  395. package/dist/web/utils/logger.js +2 -0
  396. package/dist/web/utils/model_name.js +2 -0
  397. package/dist/web/utils/object_notation_utils.js +2 -0
  398. package/dist/web/utils/simple_zod_to_json.js +2 -0
  399. package/dist/web/utils/streaming_utils.js +325 -0
  400. package/dist/web/utils/variant_utils.js +2 -0
  401. package/dist/web/version.js +3 -1
  402. package/package.json +19 -17
@@ -0,0 +1,283 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ "use strict";
8
+ var __create = Object.create;
9
+ var __defProp = Object.defineProperty;
10
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
11
+ var __getOwnPropNames = Object.getOwnPropertyNames;
12
+ var __getProtoOf = Object.getPrototypeOf;
13
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
14
+ var __export = (target, all) => {
15
+ for (var name in all)
16
+ __defProp(target, name, { get: all[name], enumerable: true });
17
+ };
18
+ var __copyProps = (to, from, except, desc) => {
19
+ if (from && typeof from === "object" || typeof from === "function") {
20
+ for (let key of __getOwnPropNames(from))
21
+ if (!__hasOwnProp.call(to, key) && key !== except)
22
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
23
+ }
24
+ return to;
25
+ };
26
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
27
+ // If the importer is in node compatibility mode or this is not an ESM
28
+ // file that has been converted to a CommonJS file using a Babel-
29
+ // compatible transform (i.e. "__esModule" has not been set), then set
30
+ // "default" to the CommonJS "module.exports" for node compatibility.
31
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
32
+ mod
33
+ ));
34
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
35
+ var loader_exports = {};
36
+ __export(loader_exports, {
37
+ loadAllSkillsInDir: () => loadAllSkillsInDir,
38
+ loadSkillFromDir: () => loadSkillFromDir,
39
+ parseSkillMdContent: () => parseSkillMdContent,
40
+ validateSkillDir: () => validateSkillDir
41
+ });
42
+ module.exports = __toCommonJS(loader_exports);
43
+ var import_js_yaml = __toESM(require("js-yaml"), 1);
44
+ var fs = __toESM(require("node:fs/promises"), 1);
45
+ var path = __toESM(require("node:path"), 1);
46
+ var import_logger = require("../utils/logger.js");
47
+ var import_skill = require("./skill.js");
48
+ /**
49
+ * @license
50
+ * Copyright 2026 Google LLC
51
+ * SPDX-License-Identifier: Apache-2.0
52
+ */
53
+ const ALLOWED_FRONTMATTER_KEYS = /* @__PURE__ */ new Set([
54
+ "name",
55
+ "description",
56
+ "license",
57
+ "allowed-tools",
58
+ "metadata",
59
+ "compatibility"
60
+ ]);
61
+ const IGNORED_DIRECTORIES = /* @__PURE__ */ new Set([
62
+ "__pycache__",
63
+ ".pytest_cache",
64
+ ".mypy_cache",
65
+ ".ruff_cache",
66
+ "node_modules",
67
+ "coverage",
68
+ "venv",
69
+ ".venv",
70
+ "env",
71
+ ".env",
72
+ ".git",
73
+ ".vscode",
74
+ ".idea"
75
+ ]);
76
+ const IGNORED_EXTENSIONS = /* @__PURE__ */ new Set([
77
+ ".pyc",
78
+ ".pyo",
79
+ ".pyd",
80
+ ".tsbuildinfo",
81
+ ".DS_Store"
82
+ ]);
83
+ async function loadDir(directoryPath) {
84
+ const files = {};
85
+ async function walk(dir) {
86
+ const entries = await fs.readdir(dir, { withFileTypes: true });
87
+ for (const entry of entries) {
88
+ const fullPath = path.join(dir, entry.name);
89
+ if (entry.isDirectory()) {
90
+ if (IGNORED_DIRECTORIES.has(entry.name)) {
91
+ continue;
92
+ }
93
+ await walk(fullPath);
94
+ } else if (entry.isFile()) {
95
+ const relativePath = path.relative(directoryPath, fullPath);
96
+ if (IGNORED_EXTENSIONS.has(path.extname(entry.name))) {
97
+ continue;
98
+ }
99
+ const fileData = await fs.readFile(fullPath);
100
+ try {
101
+ files[relativePath] = fileData.toString("utf-8");
102
+ } catch (_e) {
103
+ files[relativePath] = fileData;
104
+ }
105
+ }
106
+ }
107
+ }
108
+ try {
109
+ const stats = await fs.stat(directoryPath);
110
+ if (stats.isDirectory()) {
111
+ await walk(directoryPath);
112
+ }
113
+ } catch (e) {
114
+ import_logger.logger.warn(
115
+ `Failed to load directory '${directoryPath}': ${e.message}`
116
+ );
117
+ }
118
+ return files;
119
+ }
120
+ function parseSkillMdContent(content) {
121
+ if (!content.startsWith("---")) {
122
+ throw new Error("SKILL.md must start with YAML frontmatter (---)");
123
+ }
124
+ const parts = content.split("---", 3);
125
+ if (parts.length < 3) {
126
+ throw new Error("SKILL.md frontmatter not properly closed with ---");
127
+ }
128
+ const frontmatterStr = parts[1];
129
+ const body = parts[2].trim();
130
+ try {
131
+ const parsed = import_js_yaml.default.load(frontmatterStr);
132
+ if (typeof parsed !== "object" || parsed === null) {
133
+ throw new Error("SKILL.md frontmatter must be a YAML mapping");
134
+ }
135
+ const frontmatter = import_skill.FrontmatterSchema.parse(parsed);
136
+ return { frontmatter, body };
137
+ } catch (e) {
138
+ throw new Error(`Invalid YAML in frontmatter: ${e.message}`);
139
+ }
140
+ }
141
+ async function loadSkillFromDir(skillDir) {
142
+ const resolvedDir = path.resolve(skillDir);
143
+ const skill = await loadSkillFile(skillDir);
144
+ const referencesDir = path.join(resolvedDir, "references");
145
+ const assetsDir = path.join(resolvedDir, "assets");
146
+ const scriptsDir = path.join(resolvedDir, "scripts");
147
+ const [references, assets, rawScripts] = await Promise.all([
148
+ loadDir(referencesDir),
149
+ loadDir(assetsDir),
150
+ loadDir(scriptsDir)
151
+ ]);
152
+ const scripts = {};
153
+ for (const [name, src] of Object.entries(rawScripts)) {
154
+ if (typeof src === "string") {
155
+ scripts[name] = { src };
156
+ }
157
+ }
158
+ const resources = { references, assets, scripts };
159
+ return {
160
+ ...skill,
161
+ resources
162
+ };
163
+ }
164
+ async function validateSkillDir(skillDir) {
165
+ const problems = [];
166
+ const resolvedDir = path.resolve(skillDir);
167
+ let skill;
168
+ try {
169
+ skill = await loadSkillFile(resolvedDir);
170
+ } catch (e) {
171
+ return [e.message];
172
+ }
173
+ try {
174
+ const keys = Object.keys(skill.frontmatter);
175
+ const unknown = keys.filter((k) => !ALLOWED_FRONTMATTER_KEYS.has(k));
176
+ if (unknown.length > 0) {
177
+ problems.push(
178
+ `Unknown frontmatter fields: [${unknown.sort().join(", ")}]`
179
+ );
180
+ }
181
+ const dirName = path.basename(resolvedDir);
182
+ if (dirName !== skill.frontmatter.name) {
183
+ problems.push(
184
+ `Skill name '${skill.frontmatter.name}' does not match directory name '${dirName}'.`
185
+ );
186
+ }
187
+ } catch (e) {
188
+ problems.push(e.message);
189
+ }
190
+ return problems;
191
+ }
192
+ async function loadSkillFile(skillDir) {
193
+ const resolvedDir = path.resolve(skillDir);
194
+ let skillMdPath = "";
195
+ let content = "";
196
+ try {
197
+ const entries = await fs.readdir(resolvedDir, { withFileTypes: true });
198
+ for (const entry of entries) {
199
+ if (entry.isFile() && entry.name.toLowerCase() === "skill.md") {
200
+ const p = path.join(resolvedDir, entry.name);
201
+ try {
202
+ content = await fs.readFile(p, "utf-8");
203
+ skillMdPath = p;
204
+ break;
205
+ } catch (_e) {
206
+ }
207
+ }
208
+ }
209
+ } catch (e) {
210
+ import_logger.logger.warn(
211
+ `Failed to load directory '${skillDir}': ${e.message}`
212
+ );
213
+ }
214
+ if (!skillMdPath) {
215
+ throw new Error(
216
+ `SKILL.md (or any case variation like skill.md) not found in '${skillDir}'.`
217
+ );
218
+ }
219
+ const { frontmatter: parsed, body } = parseSkillMdContent(content);
220
+ const frontmatter = import_skill.FrontmatterSchema.parse(parsed);
221
+ const dirName = path.basename(resolvedDir);
222
+ if (dirName !== frontmatter.name) {
223
+ throw new Error(
224
+ `Skill name '${frontmatter.name}' does not match directory name '${dirName}'.`
225
+ );
226
+ }
227
+ return {
228
+ frontmatter,
229
+ instructions: body
230
+ };
231
+ }
232
+ async function loadAllSkillsInDir(skillsBasePath) {
233
+ const resolvedPath = path.resolve(skillsBasePath);
234
+ const skills = {};
235
+ async function scanDir(currentDir) {
236
+ let entries;
237
+ try {
238
+ entries = await fs.readdir(currentDir, { withFileTypes: true });
239
+ } catch (_e) {
240
+ return;
241
+ }
242
+ let isSkillDir = false;
243
+ if (currentDir !== resolvedPath) {
244
+ for (const entry of entries) {
245
+ if (entry.isFile() && entry.name.toLowerCase() === "skill.md") {
246
+ isSkillDir = true;
247
+ break;
248
+ }
249
+ }
250
+ }
251
+ if (isSkillDir) {
252
+ try {
253
+ const skill = await loadSkillFromDir(currentDir);
254
+ skills[skill.frontmatter.name] = skill;
255
+ } catch (e) {
256
+ import_logger.logger.warn(`Skipping invalid skill in '${currentDir}':`, e);
257
+ }
258
+ } else {
259
+ for (const entry of entries) {
260
+ if (entry.isDirectory()) {
261
+ if (IGNORED_DIRECTORIES.has(entry.name)) {
262
+ continue;
263
+ }
264
+ await scanDir(path.join(currentDir, entry.name));
265
+ }
266
+ }
267
+ }
268
+ }
269
+ try {
270
+ await fs.readdir(resolvedPath);
271
+ await scanDir(resolvedPath);
272
+ } catch (e) {
273
+ import_logger.logger.warn(`Skills base path '${skillsBasePath}' is not a directory.`, e);
274
+ }
275
+ return skills;
276
+ }
277
+ // Annotate the CommonJS export names for ESM import in node:
278
+ 0 && (module.exports = {
279
+ loadAllSkillsInDir,
280
+ loadSkillFromDir,
281
+ parseSkillMdContent,
282
+ validateSkillDir
283
+ });
@@ -0,0 +1,58 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ "use strict";
8
+ var __defProp = Object.defineProperty;
9
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10
+ var __getOwnPropNames = Object.getOwnPropertyNames;
11
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
12
+ var __export = (target, all) => {
13
+ for (var name in all)
14
+ __defProp(target, name, { get: all[name], enumerable: true });
15
+ };
16
+ var __copyProps = (to, from, except, desc) => {
17
+ if (from && typeof from === "object" || typeof from === "function") {
18
+ for (let key of __getOwnPropNames(from))
19
+ if (!__hasOwnProp.call(to, key) && key !== except)
20
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
21
+ }
22
+ return to;
23
+ };
24
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
+ var prompt_exports = {};
26
+ __export(prompt_exports, {
27
+ formatSkillsAsXml: () => formatSkillsAsXml
28
+ });
29
+ module.exports = __toCommonJS(prompt_exports);
30
+ /**
31
+ * @license
32
+ * Copyright 2026 Google LLC
33
+ * SPDX-License-Identifier: Apache-2.0
34
+ */
35
+ function escapeHtml(unsafe) {
36
+ return unsafe.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#039;");
37
+ }
38
+ function formatSkillsAsXml(skills) {
39
+ if (!skills || skills.length === 0) {
40
+ return "<available_skills>\n</available_skills>";
41
+ }
42
+ const lines = ["<available_skills>"];
43
+ for (const item of skills) {
44
+ const frontmatter = "frontmatter" in item ? item.frontmatter : item;
45
+ lines.push(" <skill>");
46
+ lines.push(` <name>${escapeHtml(frontmatter.name)}</name>`);
47
+ lines.push(
48
+ ` <description>${escapeHtml(frontmatter.description)}</description>`
49
+ );
50
+ lines.push(" </skill>");
51
+ }
52
+ lines.push("</available_skills>");
53
+ return lines.join("\n");
54
+ }
55
+ // Annotate the CommonJS export names for ESM import in node:
56
+ 0 && (module.exports = {
57
+ formatSkillsAsXml
58
+ });
@@ -0,0 +1,78 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ "use strict";
8
+ var __defProp = Object.defineProperty;
9
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10
+ var __getOwnPropNames = Object.getOwnPropertyNames;
11
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
12
+ var __export = (target, all) => {
13
+ for (var name in all)
14
+ __defProp(target, name, { get: all[name], enumerable: true });
15
+ };
16
+ var __copyProps = (to, from, except, desc) => {
17
+ if (from && typeof from === "object" || typeof from === "function") {
18
+ for (let key of __getOwnPropNames(from))
19
+ if (!__hasOwnProp.call(to, key) && key !== except)
20
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
21
+ }
22
+ return to;
23
+ };
24
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
+ var skill_exports = {};
26
+ __export(skill_exports, {
27
+ FrontmatterSchema: () => FrontmatterSchema,
28
+ SNAKE_OR_KEBAB_NAME_PATTERN: () => SNAKE_OR_KEBAB_NAME_PATTERN
29
+ });
30
+ module.exports = __toCommonJS(skill_exports);
31
+ var import_zod = require("zod");
32
+ /**
33
+ * @license
34
+ * Copyright 2026 Google LLC
35
+ * SPDX-License-Identifier: Apache-2.0
36
+ */
37
+ const SNAKE_OR_KEBAB_NAME_PATTERN = /^([a-z0-9]+(-[a-z0-9]+)*|[a-z0-9]+(_[a-z0-9]+)*)$/;
38
+ const FrontmatterSchema = import_zod.z.preprocess(
39
+ (data) => {
40
+ if (typeof data === "object" && data !== null) {
41
+ const obj = data;
42
+ if ("allowed-tools" in obj && !("allowedTools" in obj)) {
43
+ return {
44
+ ...obj,
45
+ allowedTools: obj["allowed-tools"]
46
+ };
47
+ }
48
+ }
49
+ return data;
50
+ },
51
+ import_zod.z.object({
52
+ name: import_zod.z.string().regex(SNAKE_OR_KEBAB_NAME_PATTERN, {
53
+ message: "name must be lowercase kebab-case (a-z, 0-9, hyphens) or snake_case (a-z, 0-9, underscores), with no leading, trailing, or consecutive delimiters. Mixing hyphens and underscores is not allowed."
54
+ }).max(64),
55
+ description: import_zod.z.string().min(1).max(1024),
56
+ license: import_zod.z.string().optional(),
57
+ compatibility: import_zod.z.string().max(500).optional(),
58
+ "allowed-tools": import_zod.z.string().optional(),
59
+ metadata: import_zod.z.record(import_zod.z.string(), import_zod.z.any()).default({}).refine(
60
+ (data) => {
61
+ if ("adk_additional_tools" in data) {
62
+ return Array.isArray(data.adk_additional_tools) && data.adk_additional_tools.every(
63
+ (item) => typeof item === "string"
64
+ );
65
+ }
66
+ return true;
67
+ },
68
+ {
69
+ message: "adk_additional_tools must be a list of strings"
70
+ }
71
+ )
72
+ }).loose()
73
+ );
74
+ // Annotate the CommonJS export names for ESM import in node:
75
+ 0 && (module.exports = {
76
+ FrontmatterSchema,
77
+ SNAKE_OR_KEBAB_NAME_PATTERN
78
+ });
@@ -93,7 +93,7 @@ class AgentTool extends (_b = import_base_tool.BaseTool, _a = AGENT_TOOL_SIGNATU
93
93
  args,
94
94
  toolContext
95
95
  }) {
96
- var _a2, _b2, _c, _d;
96
+ var _a2, _b2, _c, _d, _e, _f;
97
97
  if (this.skipSummarization) {
98
98
  toolContext.actions.skipSummarization = true;
99
99
  }
@@ -122,18 +122,25 @@ class AgentTool extends (_b = import_base_tool.BaseTool, _a = AGENT_TOOL_SIGNATU
122
122
  sessionId: toolContext.invocationContext.session.id,
123
123
  state: toolContext.state.toRecord()
124
124
  });
125
+ if ((_c = toolContext.abortSignal) == null ? void 0 : _c.aborted) {
126
+ return "";
127
+ }
125
128
  let lastEvent;
126
129
  for await (const event of runner.runAsync({
127
130
  userId: session.userId,
128
131
  sessionId: session.id,
129
- newMessage: content
132
+ newMessage: content,
133
+ abortSignal: toolContext.abortSignal
130
134
  })) {
135
+ if ((_d = toolContext.abortSignal) == null ? void 0 : _d.aborted) {
136
+ return;
137
+ }
131
138
  if (event.actions.stateDelta) {
132
139
  toolContext.state.update(event.actions.stateDelta);
133
140
  }
134
141
  lastEvent = event;
135
142
  }
136
- if (!((_d = (_c = lastEvent == null ? void 0 : lastEvent.content) == null ? void 0 : _c.parts) == null ? void 0 : _d.length)) {
143
+ if (!((_f = (_e = lastEvent == null ? void 0 : lastEvent.content) == null ? void 0 : _e.parts) == null ? void 0 : _f.length)) {
137
144
  return "";
138
145
  }
139
146
  const hasOutputSchema = (0, import_llm_agent.isLlmAgent)(this.agent) && this.agent.outputSchema;
@@ -54,7 +54,10 @@ class MCPTool extends import_base_tool.BaseTool {
54
54
  const session = await this.mcpSessionManager.createSession();
55
55
  const callRequest = {};
56
56
  callRequest.params = { name: this.mcpTool.name, arguments: request.args };
57
- return await session.callTool(callRequest.params);
57
+ const result = await session.callTool(callRequest.params, void 0, {
58
+ signal: request.toolContext.abortSignal
59
+ });
60
+ return result;
58
61
  }
59
62
  }
60
63
  // Annotate the CommonJS export names for ESM import in node:
@@ -0,0 +1,76 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ "use strict";
8
+ var __defProp = Object.defineProperty;
9
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10
+ var __getOwnPropNames = Object.getOwnPropertyNames;
11
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
12
+ var __export = (target, all) => {
13
+ for (var name in all)
14
+ __defProp(target, name, { get: all[name], enumerable: true });
15
+ };
16
+ var __copyProps = (to, from, except, desc) => {
17
+ if (from && typeof from === "object" || typeof from === "function") {
18
+ for (let key of __getOwnPropNames(from))
19
+ if (!__hasOwnProp.call(to, key) && key !== except)
20
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
21
+ }
22
+ return to;
23
+ };
24
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
+ var __decorateClass = (decorators, target, key, kind) => {
26
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
27
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
28
+ if (decorator = decorators[i])
29
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
30
+ if (kind && result) __defProp(target, key, result);
31
+ return result;
32
+ };
33
+ var list_skills_tool_exports = {};
34
+ __export(list_skills_tool_exports, {
35
+ ListSkillsTool: () => ListSkillsTool
36
+ });
37
+ module.exports = __toCommonJS(list_skills_tool_exports);
38
+ var import_genai = require("@google/genai");
39
+ var import_prompt = require("../../skills/prompt.js");
40
+ var import_experimental = require("../../utils/experimental.js");
41
+ var import_base_tool = require("../base_tool.js");
42
+ /**
43
+ * @license
44
+ * Copyright 2026 Google LLC
45
+ * SPDX-License-Identifier: Apache-2.0
46
+ */
47
+ let ListSkillsTool = class extends import_base_tool.BaseTool {
48
+ constructor(toolset) {
49
+ super({
50
+ name: "list_skills",
51
+ description: "Lists all available skills with their names and descriptions."
52
+ });
53
+ this.toolset = toolset;
54
+ }
55
+ _getDeclaration() {
56
+ return {
57
+ name: this.name,
58
+ description: this.description,
59
+ parameters: {
60
+ type: import_genai.Type.OBJECT,
61
+ properties: {}
62
+ }
63
+ };
64
+ }
65
+ async runAsync(_request) {
66
+ const skills = Object.values(this.toolset.skills);
67
+ return (0, import_prompt.formatSkillsAsXml)(skills);
68
+ }
69
+ };
70
+ ListSkillsTool = __decorateClass([
71
+ import_experimental.experimental
72
+ ], ListSkillsTool);
73
+ // Annotate the CommonJS export names for ESM import in node:
74
+ 0 && (module.exports = {
75
+ ListSkillsTool
76
+ });