@google/adk 1.5.0 → 2.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 (796) hide show
  1. package/dist/cjs/a2a/a2a_event.js +18 -0
  2. package/dist/cjs/a2a/a2a_remote_agent.js +17 -4
  3. package/dist/cjs/a2a/a2a_remote_agent_run_processor.js +7 -3
  4. package/dist/cjs/a2a/a2a_remote_agent_utils.js +9 -2
  5. package/dist/cjs/a2a/agent_card.js +33 -3
  6. package/dist/cjs/a2a/agent_executor.js +25 -16
  7. package/dist/cjs/a2a/agent_to_a2a.js +22 -11
  8. package/dist/cjs/a2a/auth.js +68 -0
  9. package/dist/cjs/a2a/event_converter_utils.js +50 -15
  10. package/dist/cjs/a2a/event_processor_utils.js +71 -35
  11. package/dist/cjs/a2a/executor_context.js +2 -0
  12. package/dist/cjs/a2a/index.js +53 -0
  13. package/dist/cjs/a2a/metadata_converter_utils.js +5 -0
  14. package/dist/cjs/a2a/part_converter_utils.js +12 -0
  15. package/dist/cjs/agents/active_streaming_tool.js +5 -2
  16. package/dist/cjs/agents/base_agent.js +46 -9
  17. package/dist/cjs/agents/context.js +5 -2
  18. package/dist/cjs/agents/framework_function_calls.js +64 -0
  19. package/dist/cjs/agents/functions.js +58 -23
  20. package/dist/cjs/agents/instructions.js +51 -12
  21. package/dist/cjs/agents/invocation_context.js +42 -8
  22. package/dist/cjs/agents/live_request_queue.js +29 -5
  23. package/dist/cjs/agents/llm_agent.js +536 -45
  24. package/dist/cjs/agents/loop_agent.js +19 -2
  25. package/dist/cjs/agents/parallel_agent.js +21 -2
  26. package/dist/cjs/agents/processors/agent_transfer_llm_request_processor.js +7 -4
  27. package/dist/cjs/agents/processors/base_llm_processor.js +9 -4
  28. package/dist/cjs/agents/processors/basic_llm_request_processor.js +8 -4
  29. package/dist/cjs/agents/processors/code_execution_request_processor.js +18 -5
  30. package/dist/cjs/agents/processors/content_processor_utils.js +85 -15
  31. package/dist/cjs/agents/processors/content_request_processor.js +11 -25
  32. package/dist/cjs/agents/processors/context_compactor_request_processor.js +5 -2
  33. package/dist/cjs/agents/processors/identity_llm_request_processor.js +12 -4
  34. package/dist/cjs/agents/processors/instructions_llm_request_processor.js +8 -3
  35. package/dist/cjs/agents/processors/interactions_request_processor.js +5 -2
  36. package/dist/cjs/agents/processors/request_confirmation_llm_request_processor.js +313 -92
  37. package/dist/cjs/agents/processors/request_input_llm_request_processor.js +218 -0
  38. package/dist/cjs/agents/processors/tool_filter_request_processor.js +5 -2
  39. package/dist/cjs/agents/readonly_context.js +7 -3
  40. package/dist/cjs/agents/routed_agent.js +6 -13
  41. package/dist/cjs/agents/run_config.js +12 -0
  42. package/dist/cjs/agents/sequential_agent.js +20 -3
  43. package/dist/cjs/agents/user_input_request.js +145 -0
  44. package/dist/cjs/apps/app.js +11 -11
  45. package/dist/cjs/apps/resumability_config.js +2 -0
  46. package/dist/cjs/artifacts/file_artifact_service.js +21 -2
  47. package/dist/cjs/artifacts/gcs_artifact_service.js +46 -11
  48. package/dist/cjs/artifacts/in_memory_artifact_service.js +19 -11
  49. package/dist/cjs/artifacts/registry.js +6 -1
  50. package/dist/cjs/artifacts/scoped_artifact_service.js +5 -2
  51. package/dist/cjs/auth/auth_handler.js +5 -2
  52. package/dist/cjs/auth/auth_preprocessor.js +48 -40
  53. package/dist/cjs/auth/auth_provider_registry.js +5 -2
  54. package/dist/cjs/auth/auth_schemes.js +2 -0
  55. package/dist/cjs/auth/credential_response_binding.js +101 -0
  56. package/dist/cjs/auth/credential_service/in_memory_credential_service.js +19 -5
  57. package/dist/cjs/auth/credential_service/session_state_credential_service.js +5 -2
  58. package/dist/cjs/auth/exchanger/base_credential_exchanger.js +5 -2
  59. package/dist/cjs/auth/exchanger/credential_exchanger_registry.js +5 -2
  60. package/dist/cjs/auth/oauth2/oauth2_credential_exchanger.js +8 -2
  61. package/dist/cjs/auth/oauth2/oauth2_credential_refresher.js +5 -2
  62. package/dist/cjs/auth/oauth2/oauth2_discovery.js +7 -2
  63. package/dist/cjs/auth/oauth2/oauth2_utils.js +6 -0
  64. package/dist/cjs/auth/refresher/base_credential_refresher.js +5 -2
  65. package/dist/cjs/auth/refresher/credential_refresher_registry.js +5 -2
  66. package/dist/cjs/code_executors/agent_engine_sandbox_code_executor.js +3 -0
  67. package/dist/cjs/code_executors/base_code_executor.js +6 -2
  68. package/dist/cjs/code_executors/built_in_code_executor.js +6 -2
  69. package/dist/cjs/code_executors/code_execution_utils.js +6 -0
  70. package/dist/cjs/code_executors/code_executor_context.js +5 -2
  71. package/dist/cjs/code_executors/unsafe_local_code_executor.js +31 -14
  72. package/dist/cjs/common.js +112 -1
  73. package/dist/cjs/context/agent_controlled_context_compactor.js +7 -13
  74. package/dist/cjs/context/anchored_context_compactor.js +5 -2
  75. package/dist/cjs/context/compaction_utils.js +17 -2
  76. package/dist/cjs/context/summarizers/llm_summarizer.js +5 -2
  77. package/dist/cjs/context/token_based_context_compactor.js +11 -23
  78. package/dist/cjs/context/trajectory_thought_pruning_compactor.js +5 -2
  79. package/dist/cjs/context/truncating_context_compactor.js +5 -2
  80. package/dist/cjs/environment/base_environment.js +97 -0
  81. package/dist/cjs/environment/local_environment.js +186 -0
  82. package/dist/cjs/events/compacted_event.js +4 -0
  83. package/dist/cjs/events/event.js +38 -3
  84. package/dist/cjs/events/event_actions.js +5 -0
  85. package/dist/cjs/events/structured_events.js +2 -0
  86. package/dist/cjs/examples/base_example_provider.js +6 -2
  87. package/dist/cjs/examples/example_util.js +3 -0
  88. package/dist/cjs/features/feature_registry.js +7 -0
  89. package/dist/cjs/index.js +7 -22
  90. package/dist/cjs/integrations/agent_registry/agent_registry.js +7 -4
  91. package/dist/cjs/integrations/agent_registry/agent_registry_mcp_toolset.js +7 -4
  92. package/dist/cjs/integrations/agent_registry/helpers.js +3 -0
  93. package/dist/cjs/memory/in_memory_memory_service.js +21 -4
  94. package/dist/cjs/memory/vertex_ai_memory_bank_service.js +20 -2
  95. package/dist/cjs/models/apigee_llm.js +9 -3
  96. package/dist/cjs/models/base_llm.js +7 -3
  97. package/dist/cjs/models/gemini_llm_connection.js +5 -2
  98. package/dist/cjs/models/google_llm.js +24 -12
  99. package/dist/cjs/models/interactions_utils.js +16 -0
  100. package/dist/cjs/models/llm_request.js +4 -0
  101. package/dist/cjs/models/llm_response.js +2 -0
  102. package/dist/cjs/models/registry.js +6 -2
  103. package/dist/cjs/models/routed_llm.js +4 -13
  104. package/dist/cjs/plugins/base_plugin.js +43 -7
  105. package/dist/cjs/plugins/global_instruction_plugin.js +5 -2
  106. package/dist/cjs/plugins/logging_plugin.js +13 -8
  107. package/dist/cjs/plugins/plugin_manager.js +37 -2
  108. package/dist/cjs/plugins/security_plugin.js +15 -8
  109. package/dist/cjs/runner/in_memory_runner.js +5 -2
  110. package/dist/cjs/runner/runner.js +226 -29
  111. package/dist/cjs/sessions/base_session_service.js +21 -5
  112. package/dist/cjs/sessions/database_session_service.js +6 -2
  113. package/dist/cjs/sessions/db/operations.js +34 -6
  114. package/dist/cjs/sessions/db/schema.js +16 -8
  115. package/dist/cjs/sessions/in_memory_session_service.js +30 -22
  116. package/dist/cjs/sessions/registry.js +4 -1
  117. package/dist/cjs/sessions/session.js +2 -0
  118. package/dist/cjs/sessions/state.js +80 -8
  119. package/dist/cjs/sessions/state_write_order.js +105 -0
  120. package/dist/cjs/sessions/vertex_ai_session_service.js +132 -25
  121. package/dist/cjs/skills/gcp_skill_registry.js +2 -0
  122. package/dist/cjs/skills/loader.js +62 -16
  123. package/dist/cjs/skills/prompt.js +3 -0
  124. package/dist/cjs/telemetry/google_cloud.js +42 -9
  125. package/dist/cjs/telemetry/setup.js +5 -0
  126. package/dist/cjs/telemetry/tracing.js +60 -4
  127. package/dist/cjs/tools/agent_tool.js +6 -2
  128. package/dist/cjs/tools/base_tool.js +24 -2
  129. package/dist/cjs/tools/base_toolset.js +6 -2
  130. package/dist/cjs/tools/consolidate_context_tool.js +5 -2
  131. package/dist/cjs/tools/enterprise_web_search_tool.js +6 -2
  132. package/dist/cjs/tools/example_tool.js +5 -2
  133. package/dist/cjs/tools/exit_loop_tool.js +5 -2
  134. package/dist/cjs/tools/finish_task_tool.js +119 -0
  135. package/dist/cjs/tools/forwarding_artifact_service.js +5 -2
  136. package/dist/cjs/tools/function_tool.js +73 -8
  137. package/dist/cjs/tools/get_user_choice_tool.js +54 -0
  138. package/dist/cjs/tools/google_maps_grounding_tool.js +6 -2
  139. package/dist/cjs/tools/google_search_tool.js +5 -2
  140. package/dist/cjs/tools/load_artifacts_tool.js +8 -2
  141. package/dist/cjs/tools/load_memory_tool.js +5 -2
  142. package/dist/cjs/tools/load_web_page.js +21 -1
  143. package/dist/cjs/tools/long_running_tool.js +5 -2
  144. package/dist/cjs/tools/mcp/index.js +39 -0
  145. package/dist/cjs/tools/mcp/load_mcp_resource_tool.js +5 -2
  146. package/dist/cjs/tools/mcp/mcp_session_manager.js +69 -27
  147. package/dist/cjs/tools/mcp/mcp_tool.js +5 -2
  148. package/dist/cjs/tools/mcp/mcp_toolset.js +5 -2
  149. package/dist/cjs/tools/openapi_tool/auth/auth_helpers.js +4 -0
  150. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +2 -0
  151. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +2 -0
  152. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +30 -9
  153. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/operation_parser.js +2 -0
  154. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +6 -2
  155. package/dist/cjs/tools/openapi_tool/openapi_toolset.js +2 -0
  156. package/dist/cjs/tools/openapi_tool/rest_api_tool.js +23 -5
  157. package/dist/cjs/tools/preload_memory_tool.js +5 -2
  158. package/dist/cjs/tools/request_input_tool.js +56 -0
  159. package/dist/cjs/tools/skill/list_skills_tool.js +2 -0
  160. package/dist/cjs/tools/skill/load_skill_resource_tool.js +2 -0
  161. package/dist/cjs/tools/skill/load_skill_tool.js +4 -1
  162. package/dist/cjs/tools/skill/run_skill_inline_script_tool.js +8 -2
  163. package/dist/cjs/tools/skill/run_skill_script_tool.js +10 -2
  164. package/dist/cjs/tools/skill/search_skills_tool.js +2 -0
  165. package/dist/cjs/tools/skill/skill_toolset.js +35 -0
  166. package/dist/cjs/tools/tool_confirmation.js +26 -3
  167. package/dist/cjs/tools/url_context_tool.js +5 -2
  168. package/dist/cjs/tools/vertex_ai_search_tool.js +5 -2
  169. package/dist/cjs/tools/vertex_rag_retrieval_tool.js +5 -2
  170. package/dist/cjs/utils/async_hooks_shim.js +5 -2
  171. package/dist/cjs/utils/async_queue.js +45 -18
  172. package/dist/cjs/utils/branch_trie.js +2 -0
  173. package/dist/cjs/utils/case_utils.js +2 -0
  174. package/dist/cjs/utils/client_labels.js +5 -0
  175. package/dist/cjs/utils/crypto_shim.js +45 -0
  176. package/dist/cjs/utils/deprecated.js +68 -0
  177. package/dist/cjs/utils/env_aware_utils.js +56 -13
  178. package/dist/cjs/utils/error_utils.js +128 -0
  179. package/dist/cjs/utils/experimental.js +9 -2
  180. package/dist/cjs/utils/failover_utils.js +3 -0
  181. package/dist/cjs/utils/file_extension_utils.js +3 -0
  182. package/dist/cjs/utils/file_utils.js +12 -4
  183. package/dist/cjs/utils/gemini_schema_util.js +6 -2
  184. package/dist/cjs/utils/genai_schema_to_json.js +107 -0
  185. package/dist/cjs/utils/live_connection_utils.js +5 -2
  186. package/dist/cjs/utils/logger.js +13 -4
  187. package/dist/cjs/utils/model_name.js +8 -0
  188. package/dist/cjs/utils/object_notation_utils.js +7 -3
  189. package/dist/cjs/utils/optional_peer.js +68 -0
  190. package/dist/cjs/utils/output_schema_utils.js +45 -0
  191. package/dist/cjs/utils/partial_copy.js +2 -0
  192. package/dist/cjs/utils/redact_uri.js +66 -0
  193. package/dist/cjs/utils/schema.js +178 -0
  194. package/dist/cjs/utils/simple_zod_to_json.js +17 -4
  195. package/dist/cjs/utils/streaming_utils.js +14 -6
  196. package/dist/cjs/utils/task.js +7 -4
  197. package/dist/cjs/utils/variant_utils.js +3 -1
  198. package/dist/cjs/utils/vertex_ai_utils.js +6 -1
  199. package/dist/cjs/version.js +1 -1
  200. package/dist/cjs/workflow/base_node.js +211 -0
  201. package/dist/cjs/workflow/branch_path.js +108 -0
  202. package/dist/cjs/workflow/dynamic_node_scheduler.js +220 -0
  203. package/dist/cjs/workflow/errors.js +178 -0
  204. package/dist/cjs/workflow/graph.js +158 -0
  205. package/dist/cjs/workflow/index.js +131 -0
  206. package/dist/cjs/workflow/node.js +65 -0
  207. package/dist/cjs/workflow/node_builders.js +68 -0
  208. package/dist/cjs/workflow/node_context.js +246 -0
  209. package/dist/cjs/workflow/node_error_event.js +86 -0
  210. package/dist/cjs/workflow/node_runner.js +459 -0
  211. package/dist/cjs/workflow/node_state.js +57 -0
  212. package/dist/cjs/workflow/node_status.js +48 -0
  213. package/dist/cjs/workflow/nodes/function_node.js +195 -0
  214. package/dist/cjs/workflow/nodes/join_node.js +56 -0
  215. package/dist/cjs/workflow/nodes/node_tool.js +156 -0
  216. package/dist/cjs/workflow/nodes/parallel_worker.js +129 -0
  217. package/dist/cjs/workflow/nodes/tool_node.js +117 -0
  218. package/dist/cjs/workflow/request_input.js +64 -0
  219. package/dist/cjs/workflow/retry_config.js +71 -0
  220. package/dist/cjs/workflow/run_llm_agent_as_node.js +192 -0
  221. package/dist/cjs/workflow/run_node_as_invocation.js +165 -0
  222. package/dist/cjs/workflow/schedule_dynamic_node.js +53 -0
  223. package/dist/cjs/workflow/trigger.js +27 -0
  224. package/dist/cjs/workflow/utils/graph_parser.js +212 -0
  225. package/dist/cjs/workflow/utils/graph_validation.js +216 -0
  226. package/dist/cjs/workflow/utils/hitl_utils.js +252 -0
  227. package/dist/cjs/workflow/utils/rehydration_utils.js +373 -0
  228. package/dist/cjs/workflow/utils/retry_utils.js +112 -0
  229. package/dist/cjs/workflow/utils/workflow_graph_utils.js +144 -0
  230. package/dist/cjs/workflow/workflow.js +509 -0
  231. package/dist/esm/a2a/a2a_event.js +19 -0
  232. package/dist/esm/a2a/a2a_remote_agent.js +18 -4
  233. package/dist/esm/a2a/a2a_remote_agent_run_processor.js +8 -3
  234. package/dist/esm/a2a/a2a_remote_agent_utils.js +10 -2
  235. package/dist/esm/a2a/agent_card.js +34 -3
  236. package/dist/esm/a2a/agent_executor.js +27 -17
  237. package/dist/esm/a2a/agent_to_a2a.js +44 -16
  238. package/dist/esm/a2a/auth.js +41 -0
  239. package/dist/esm/a2a/event_converter_utils.js +51 -15
  240. package/dist/esm/a2a/event_processor_utils.js +74 -34
  241. package/dist/esm/a2a/executor_context.js +3 -0
  242. package/dist/esm/a2a/index.js +20 -0
  243. package/dist/esm/a2a/metadata_converter_utils.js +6 -0
  244. package/dist/esm/a2a/part_converter_utils.js +13 -0
  245. package/dist/esm/agents/active_streaming_tool.js +6 -2
  246. package/dist/esm/agents/base_agent.js +47 -9
  247. package/dist/esm/agents/context.js +6 -2
  248. package/dist/esm/agents/framework_function_calls.js +34 -0
  249. package/dist/esm/agents/functions.js +62 -20
  250. package/dist/esm/agents/instructions.js +52 -12
  251. package/dist/esm/agents/invocation_context.js +41 -7
  252. package/dist/esm/agents/live_request_queue.js +30 -5
  253. package/dist/esm/agents/llm_agent.js +537 -45
  254. package/dist/esm/agents/loop_agent.js +21 -2
  255. package/dist/esm/agents/parallel_agent.js +23 -2
  256. package/dist/esm/agents/processors/agent_transfer_llm_request_processor.js +8 -4
  257. package/dist/esm/agents/processors/base_llm_processor.js +10 -4
  258. package/dist/esm/agents/processors/basic_llm_request_processor.js +9 -4
  259. package/dist/esm/agents/processors/code_execution_request_processor.js +19 -5
  260. package/dist/esm/agents/processors/content_processor_utils.js +88 -16
  261. package/dist/esm/agents/processors/content_request_processor.js +12 -25
  262. package/dist/esm/agents/processors/context_compactor_request_processor.js +6 -2
  263. package/dist/esm/agents/processors/identity_llm_request_processor.js +13 -4
  264. package/dist/esm/agents/processors/instructions_llm_request_processor.js +9 -3
  265. package/dist/esm/agents/processors/interactions_request_processor.js +6 -2
  266. package/dist/esm/agents/processors/request_confirmation_llm_request_processor.js +318 -93
  267. package/dist/esm/agents/processors/request_input_llm_request_processor.js +197 -0
  268. package/dist/esm/agents/processors/tool_filter_request_processor.js +6 -2
  269. package/dist/esm/agents/readonly_context.js +8 -3
  270. package/dist/esm/agents/routed_agent.js +6 -14
  271. package/dist/esm/agents/run_config.js +13 -0
  272. package/dist/esm/agents/sequential_agent.js +22 -3
  273. package/dist/esm/agents/user_input_request.js +120 -0
  274. package/dist/esm/apps/app.js +14 -11
  275. package/dist/esm/apps/resumability_config.js +3 -0
  276. package/dist/esm/artifacts/file_artifact_service.js +22 -2
  277. package/dist/esm/artifacts/gcs_artifact_service.js +58 -11
  278. package/dist/esm/artifacts/in_memory_artifact_service.js +20 -11
  279. package/dist/esm/artifacts/registry.js +7 -1
  280. package/dist/esm/artifacts/scoped_artifact_service.js +6 -2
  281. package/dist/esm/auth/auth_handler.js +6 -2
  282. package/dist/esm/auth/auth_preprocessor.js +50 -41
  283. package/dist/esm/auth/auth_provider_registry.js +6 -2
  284. package/dist/esm/auth/auth_schemes.js +3 -0
  285. package/dist/esm/auth/credential_response_binding.js +74 -0
  286. package/dist/esm/auth/credential_service/in_memory_credential_service.js +20 -5
  287. package/dist/esm/auth/credential_service/session_state_credential_service.js +6 -2
  288. package/dist/esm/auth/exchanger/base_credential_exchanger.js +6 -2
  289. package/dist/esm/auth/exchanger/credential_exchanger_registry.js +6 -2
  290. package/dist/esm/auth/oauth2/oauth2_credential_exchanger.js +9 -2
  291. package/dist/esm/auth/oauth2/oauth2_credential_refresher.js +6 -2
  292. package/dist/esm/auth/oauth2/oauth2_discovery.js +8 -2
  293. package/dist/esm/auth/oauth2/oauth2_utils.js +7 -0
  294. package/dist/esm/auth/refresher/base_credential_refresher.js +6 -2
  295. package/dist/esm/auth/refresher/credential_refresher_registry.js +6 -2
  296. package/dist/esm/code_executors/agent_engine_sandbox_code_executor.js +3 -0
  297. package/dist/esm/code_executors/base_code_executor.js +7 -2
  298. package/dist/esm/code_executors/built_in_code_executor.js +7 -2
  299. package/dist/esm/code_executors/code_execution_utils.js +7 -0
  300. package/dist/esm/code_executors/code_executor_context.js +6 -2
  301. package/dist/esm/code_executors/unsafe_local_code_executor.js +31 -13
  302. package/dist/esm/common.js +113 -4
  303. package/dist/esm/context/agent_controlled_context_compactor.js +8 -13
  304. package/dist/esm/context/anchored_context_compactor.js +6 -2
  305. package/dist/esm/context/compaction_utils.js +16 -1
  306. package/dist/esm/context/summarizers/llm_summarizer.js +6 -2
  307. package/dist/esm/context/token_based_context_compactor.js +16 -24
  308. package/dist/esm/context/trajectory_thought_pruning_compactor.js +6 -2
  309. package/dist/esm/context/truncating_context_compactor.js +6 -2
  310. package/dist/esm/environment/base_environment.js +71 -0
  311. package/dist/esm/environment/local_environment.js +150 -0
  312. package/dist/esm/events/compacted_event.js +5 -0
  313. package/dist/esm/events/event.js +38 -3
  314. package/dist/esm/events/event_actions.js +6 -0
  315. package/dist/esm/events/structured_events.js +3 -0
  316. package/dist/esm/examples/base_example_provider.js +7 -2
  317. package/dist/esm/examples/example_util.js +4 -0
  318. package/dist/esm/features/feature_registry.js +8 -0
  319. package/dist/esm/index.js +4 -13
  320. package/dist/esm/integrations/agent_registry/agent_registry.js +8 -4
  321. package/dist/esm/integrations/agent_registry/agent_registry_mcp_toolset.js +6 -2
  322. package/dist/esm/integrations/agent_registry/helpers.js +4 -0
  323. package/dist/esm/memory/in_memory_memory_service.js +22 -4
  324. package/dist/esm/memory/vertex_ai_memory_bank_service.js +25 -3
  325. package/dist/esm/models/apigee_llm.js +10 -3
  326. package/dist/esm/models/base_llm.js +8 -3
  327. package/dist/esm/models/gemini_llm_connection.js +6 -2
  328. package/dist/esm/models/google_llm.js +26 -13
  329. package/dist/esm/models/interactions_utils.js +17 -0
  330. package/dist/esm/models/llm_request.js +5 -0
  331. package/dist/esm/models/llm_response.js +3 -0
  332. package/dist/esm/models/registry.js +7 -2
  333. package/dist/esm/models/routed_llm.js +4 -14
  334. package/dist/esm/plugins/base_plugin.js +43 -7
  335. package/dist/esm/plugins/global_instruction_plugin.js +6 -2
  336. package/dist/esm/plugins/logging_plugin.js +14 -8
  337. package/dist/esm/plugins/plugin_manager.js +38 -2
  338. package/dist/esm/plugins/security_plugin.js +14 -6
  339. package/dist/esm/runner/in_memory_runner.js +6 -2
  340. package/dist/esm/runner/runner.js +233 -31
  341. package/dist/esm/sessions/base_session_service.js +22 -5
  342. package/dist/esm/sessions/database_session_service.js +7 -2
  343. package/dist/esm/sessions/db/operations.js +34 -6
  344. package/dist/esm/sessions/db/schema.js +16 -8
  345. package/dist/esm/sessions/in_memory_session_service.js +31 -22
  346. package/dist/esm/sessions/registry.js +5 -1
  347. package/dist/esm/sessions/session.js +3 -0
  348. package/dist/esm/sessions/state.js +78 -7
  349. package/dist/esm/sessions/state_write_order.js +74 -0
  350. package/dist/esm/sessions/vertex_ai_session_service.js +136 -26
  351. package/dist/esm/skills/gcp_skill_registry.js +2 -0
  352. package/dist/esm/skills/loader.js +63 -16
  353. package/dist/esm/skills/prompt.js +4 -0
  354. package/dist/esm/telemetry/google_cloud.js +54 -9
  355. package/dist/esm/telemetry/setup.js +6 -0
  356. package/dist/esm/telemetry/tracing.js +59 -4
  357. package/dist/esm/tools/agent_tool.js +7 -2
  358. package/dist/esm/tools/base_tool.js +25 -2
  359. package/dist/esm/tools/base_toolset.js +7 -2
  360. package/dist/esm/tools/consolidate_context_tool.js +6 -2
  361. package/dist/esm/tools/enterprise_web_search_tool.js +7 -2
  362. package/dist/esm/tools/example_tool.js +6 -2
  363. package/dist/esm/tools/exit_loop_tool.js +6 -2
  364. package/dist/esm/tools/finish_task_tool.js +92 -0
  365. package/dist/esm/tools/forwarding_artifact_service.js +6 -2
  366. package/dist/esm/tools/function_tool.js +74 -8
  367. package/dist/esm/tools/get_user_choice_tool.js +27 -0
  368. package/dist/esm/tools/google_maps_grounding_tool.js +7 -2
  369. package/dist/esm/tools/google_search_tool.js +6 -2
  370. package/dist/esm/tools/load_artifacts_tool.js +9 -2
  371. package/dist/esm/tools/load_memory_tool.js +6 -2
  372. package/dist/esm/tools/load_web_page.js +22 -1
  373. package/dist/esm/tools/long_running_tool.js +6 -2
  374. package/dist/esm/tools/mcp/index.js +11 -0
  375. package/dist/esm/tools/mcp/load_mcp_resource_tool.js +6 -2
  376. package/dist/esm/tools/mcp/mcp_session_manager.js +80 -30
  377. package/dist/esm/tools/mcp/mcp_tool.js +6 -2
  378. package/dist/esm/tools/mcp/mcp_toolset.js +6 -2
  379. package/dist/esm/tools/openapi_tool/auth/auth_helpers.js +5 -0
  380. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +2 -0
  381. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +2 -0
  382. package/dist/esm/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +30 -9
  383. package/dist/esm/tools/openapi_tool/openapi_spec_parser/operation_parser.js +2 -0
  384. package/dist/esm/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +6 -2
  385. package/dist/esm/tools/openapi_tool/openapi_toolset.js +2 -0
  386. package/dist/esm/tools/openapi_tool/rest_api_tool.js +23 -5
  387. package/dist/esm/tools/preload_memory_tool.js +6 -2
  388. package/dist/esm/tools/request_input_tool.js +29 -0
  389. package/dist/esm/tools/skill/list_skills_tool.js +2 -0
  390. package/dist/esm/tools/skill/load_skill_resource_tool.js +2 -0
  391. package/dist/esm/tools/skill/load_skill_tool.js +4 -1
  392. package/dist/esm/tools/skill/run_skill_inline_script_tool.js +8 -2
  393. package/dist/esm/tools/skill/run_skill_script_tool.js +10 -2
  394. package/dist/esm/tools/skill/search_skills_tool.js +2 -0
  395. package/dist/esm/tools/skill/skill_toolset.js +25 -0
  396. package/dist/esm/tools/tool_confirmation.js +24 -2
  397. package/dist/esm/tools/url_context_tool.js +6 -2
  398. package/dist/esm/tools/vertex_ai_search_tool.js +6 -2
  399. package/dist/esm/tools/vertex_rag_retrieval_tool.js +6 -2
  400. package/dist/esm/utils/async_hooks_shim.js +6 -2
  401. package/dist/esm/utils/async_queue.js +46 -18
  402. package/dist/esm/utils/branch_trie.js +3 -0
  403. package/dist/esm/utils/case_utils.js +3 -0
  404. package/dist/esm/utils/client_labels.js +6 -0
  405. package/dist/esm/utils/crypto_shim.js +18 -0
  406. package/dist/esm/utils/deprecated.js +40 -0
  407. package/dist/esm/utils/env_aware_utils.js +56 -13
  408. package/dist/esm/utils/error_utils.js +101 -0
  409. package/dist/esm/utils/experimental.js +10 -2
  410. package/dist/esm/utils/failover_utils.js +4 -0
  411. package/dist/esm/utils/file_extension_utils.js +4 -0
  412. package/dist/esm/utils/file_utils.js +13 -4
  413. package/dist/esm/utils/gemini_schema_util.js +7 -2
  414. package/dist/esm/utils/genai_schema_to_json.js +80 -0
  415. package/dist/esm/utils/live_connection_utils.js +6 -2
  416. package/dist/esm/utils/logger.js +14 -4
  417. package/dist/esm/utils/model_name.js +9 -0
  418. package/dist/esm/utils/object_notation_utils.js +8 -3
  419. package/dist/esm/utils/optional_peer.js +41 -0
  420. package/dist/esm/utils/output_schema_utils.js +18 -0
  421. package/dist/esm/utils/partial_copy.js +3 -0
  422. package/dist/esm/utils/redact_uri.js +39 -0
  423. package/dist/esm/utils/schema.js +152 -0
  424. package/dist/esm/utils/simple_zod_to_json.js +15 -4
  425. package/dist/esm/utils/streaming_utils.js +15 -6
  426. package/dist/esm/utils/task.js +8 -4
  427. package/dist/esm/utils/variant_utils.js +5 -2
  428. package/dist/esm/utils/vertex_ai_utils.js +7 -2
  429. package/dist/esm/version.js +1 -1
  430. package/dist/esm/workflow/base_node.js +182 -0
  431. package/dist/esm/workflow/branch_path.js +77 -0
  432. package/dist/esm/workflow/dynamic_node_scheduler.js +202 -0
  433. package/dist/esm/workflow/errors.js +140 -0
  434. package/dist/esm/workflow/graph.js +127 -0
  435. package/dist/esm/workflow/index.js +80 -0
  436. package/dist/esm/workflow/node.js +38 -0
  437. package/dist/esm/workflow/node_builders.js +40 -0
  438. package/dist/esm/workflow/node_context.js +219 -0
  439. package/dist/esm/workflow/node_error_event.js +57 -0
  440. package/dist/esm/workflow/node_runner.js +439 -0
  441. package/dist/esm/workflow/node_state.js +29 -0
  442. package/dist/esm/workflow/node_status.js +20 -0
  443. package/dist/esm/workflow/nodes/function_node.js +172 -0
  444. package/dist/esm/workflow/nodes/join_node.js +29 -0
  445. package/dist/esm/workflow/nodes/node_tool.js +131 -0
  446. package/dist/esm/workflow/nodes/parallel_worker.js +102 -0
  447. package/dist/esm/workflow/nodes/tool_node.js +90 -0
  448. package/dist/esm/workflow/request_input.js +36 -0
  449. package/dist/esm/workflow/retry_config.js +43 -0
  450. package/dist/esm/workflow/run_llm_agent_as_node.js +172 -0
  451. package/dist/esm/workflow/run_node_as_invocation.js +139 -0
  452. package/dist/esm/workflow/schedule_dynamic_node.js +26 -0
  453. package/dist/esm/workflow/trigger.js +7 -0
  454. package/dist/esm/workflow/utils/graph_parser.js +188 -0
  455. package/dist/esm/workflow/utils/graph_validation.js +189 -0
  456. package/dist/esm/workflow/utils/hitl_utils.js +222 -0
  457. package/dist/esm/workflow/utils/rehydration_utils.js +342 -0
  458. package/dist/esm/workflow/utils/retry_utils.js +82 -0
  459. package/dist/esm/workflow/utils/workflow_graph_utils.js +115 -0
  460. package/dist/esm/workflow/workflow.js +493 -0
  461. package/dist/types/a2a/agent_card.d.ts +3 -3
  462. package/dist/types/a2a/agent_to_a2a.d.ts +4 -4
  463. package/dist/types/a2a/auth.d.ts +30 -0
  464. package/dist/types/a2a/event_converter_utils.d.ts +4 -1
  465. package/dist/types/a2a/event_processor_utils.d.ts +17 -2
  466. package/dist/types/a2a/index.d.ts +18 -0
  467. package/dist/types/agents/base_agent.d.ts +37 -9
  468. package/dist/types/agents/framework_function_calls.d.ts +26 -0
  469. package/dist/types/agents/functions.d.ts +1 -2
  470. package/dist/types/agents/invocation_context.d.ts +95 -3
  471. package/dist/types/agents/live_request_queue.d.ts +7 -1
  472. package/dist/types/agents/llm_agent.d.ts +77 -1
  473. package/dist/types/agents/loop_agent.d.ts +5 -0
  474. package/dist/types/agents/parallel_agent.d.ts +5 -0
  475. package/dist/types/agents/processors/content_processor_utils.d.ts +3 -2
  476. package/dist/types/agents/processors/identity_llm_request_processor.d.ts +4 -1
  477. package/dist/types/agents/processors/request_input_llm_request_processor.d.ts +21 -0
  478. package/dist/types/agents/run_config.d.ts +57 -2
  479. package/dist/types/agents/sequential_agent.d.ts +5 -0
  480. package/dist/types/agents/user_input_request.d.ts +71 -0
  481. package/dist/types/apps/app.d.ts +8 -3
  482. package/dist/types/artifacts/gcs_artifact_service.d.ts +9 -2
  483. package/dist/types/auth/credential_response_binding.d.ts +24 -0
  484. package/dist/types/auth/credential_service/in_memory_credential_service.d.ts +11 -0
  485. package/dist/types/code_executors/unsafe_local_code_executor.d.ts +5 -1
  486. package/dist/types/common.d.ts +20 -8
  487. package/dist/types/context/agent_controlled_context_compactor.d.ts +0 -1
  488. package/dist/types/context/compaction_utils.d.ts +8 -0
  489. package/dist/types/context/token_based_context_compactor.d.ts +0 -1
  490. package/dist/types/environment/base_environment.d.ts +101 -0
  491. package/dist/types/environment/local_environment.d.ts +72 -0
  492. package/dist/types/events/event.d.ts +94 -1
  493. package/dist/types/events/event_actions.d.ts +10 -0
  494. package/dist/types/index.d.ts +6 -13
  495. package/dist/types/memory/in_memory_memory_service.d.ts +11 -0
  496. package/dist/types/models/apigee_llm.d.ts +4 -4
  497. package/dist/types/models/google_llm.d.ts +2 -1
  498. package/dist/types/plugins/base_plugin.d.ts +39 -2
  499. package/dist/types/plugins/plugin_manager.d.ts +20 -0
  500. package/dist/types/plugins/security_plugin.d.ts +4 -2
  501. package/dist/types/runner/in_memory_runner.d.ts +2 -2
  502. package/dist/types/runner/runner.d.ts +59 -3
  503. package/dist/types/sessions/base_session_service.d.ts +10 -2
  504. package/dist/types/sessions/in_memory_session_service.d.ts +9 -0
  505. package/dist/types/sessions/state.d.ts +34 -1
  506. package/dist/types/sessions/state_write_order.d.ts +39 -0
  507. package/dist/types/sessions/vertex_ai_session_service.d.ts +19 -1
  508. package/dist/types/skills/loader.d.ts +5 -0
  509. package/dist/types/telemetry/tracing.d.ts +15 -0
  510. package/dist/types/tools/base_tool.d.ts +15 -0
  511. package/dist/types/tools/finish_task_tool.d.ts +47 -0
  512. package/dist/types/tools/function_tool.d.ts +46 -1
  513. package/dist/types/tools/get_user_choice_tool.d.ts +14 -0
  514. package/dist/types/tools/mcp/index.d.ts +13 -0
  515. package/dist/types/tools/mcp/mcp_session_manager.d.ts +3 -3
  516. package/dist/types/tools/mcp/mcp_tool.d.ts +1 -1
  517. package/dist/types/tools/mcp/mcp_toolset.d.ts +1 -1
  518. package/dist/types/tools/request_input_tool.d.ts +20 -0
  519. package/dist/types/tools/skill/skill_toolset.d.ts +26 -0
  520. package/dist/types/tools/tool_confirmation.d.ts +47 -0
  521. package/dist/types/utils/async_queue.d.ts +34 -2
  522. package/dist/types/utils/crypto_shim.d.ts +16 -0
  523. package/dist/types/utils/deprecated.d.ts +21 -0
  524. package/dist/types/utils/env_aware_utils.d.ts +39 -0
  525. package/dist/types/utils/error_utils.d.ts +18 -0
  526. package/dist/types/utils/file_utils.d.ts +10 -2
  527. package/dist/types/utils/genai_schema_to_json.d.ts +25 -0
  528. package/dist/types/utils/optional_peer.d.ts +36 -0
  529. package/dist/types/utils/output_schema_utils.d.ts +18 -0
  530. package/dist/types/utils/redact_uri.d.ts +28 -0
  531. package/dist/types/utils/schema.d.ts +73 -0
  532. package/dist/types/utils/simple_zod_to_json.d.ts +8 -0
  533. package/dist/types/utils/vertex_ai_utils.d.ts +5 -0
  534. package/dist/types/version.d.ts +1 -1
  535. package/dist/types/workflow/base_node.d.ts +142 -0
  536. package/dist/types/workflow/branch_path.d.ts +40 -0
  537. package/dist/types/workflow/dynamic_node_scheduler.d.ts +64 -0
  538. package/dist/types/workflow/errors.d.ts +132 -0
  539. package/dist/types/workflow/graph.d.ts +127 -0
  540. package/dist/types/workflow/index.d.ts +46 -0
  541. package/dist/types/workflow/node.d.ts +48 -0
  542. package/dist/types/workflow/node_builders.d.ts +25 -0
  543. package/dist/types/workflow/node_context.d.ts +208 -0
  544. package/dist/types/workflow/node_error_event.d.ts +18 -0
  545. package/dist/types/workflow/node_runner.d.ts +82 -0
  546. package/dist/types/workflow/node_state.d.ts +47 -0
  547. package/dist/types/workflow/node_status.d.ts +28 -0
  548. package/dist/types/workflow/nodes/function_node.d.ts +78 -0
  549. package/dist/types/workflow/nodes/join_node.d.ts +24 -0
  550. package/dist/types/workflow/nodes/node_tool.d.ts +53 -0
  551. package/dist/types/workflow/nodes/parallel_worker.d.ts +55 -0
  552. package/dist/types/workflow/nodes/tool_node.d.ts +34 -0
  553. package/dist/types/workflow/request_input.d.ts +73 -0
  554. package/dist/types/workflow/retry_config.d.ts +84 -0
  555. package/dist/types/workflow/run_llm_agent_as_node.d.ts +28 -0
  556. package/dist/types/workflow/run_node_as_invocation.d.ts +72 -0
  557. package/dist/types/workflow/schedule_dynamic_node.d.ts +66 -0
  558. package/dist/types/workflow/trigger.d.ts +22 -0
  559. package/dist/types/workflow/utils/graph_parser.d.ts +8 -0
  560. package/dist/types/workflow/utils/graph_validation.d.ts +18 -0
  561. package/dist/types/workflow/utils/hitl_utils.d.ts +92 -0
  562. package/dist/types/workflow/utils/rehydration_utils.d.ts +132 -0
  563. package/dist/types/workflow/utils/retry_utils.d.ts +54 -0
  564. package/dist/types/workflow/utils/workflow_graph_utils.d.ts +76 -0
  565. package/dist/types/workflow/workflow.d.ts +115 -0
  566. package/dist/web/a2a/a2a_event.js +19 -0
  567. package/dist/web/a2a/a2a_remote_agent.js +18 -4
  568. package/dist/web/a2a/a2a_remote_agent_run_processor.js +8 -3
  569. package/dist/web/a2a/a2a_remote_agent_utils.js +10 -2
  570. package/dist/web/a2a/agent_card.js +34 -3
  571. package/dist/web/a2a/agent_executor.js +45 -17
  572. package/dist/web/a2a/agent_to_a2a.js +44 -16
  573. package/dist/web/a2a/auth.js +41 -0
  574. package/dist/web/a2a/event_converter_utils.js +50 -15
  575. package/dist/web/a2a/event_processor_utils.js +73 -34
  576. package/dist/web/a2a/executor_context.js +3 -0
  577. package/dist/web/a2a/index.js +20 -0
  578. package/dist/web/a2a/metadata_converter_utils.js +5 -0
  579. package/dist/web/a2a/part_converter_utils.js +13 -0
  580. package/dist/web/agents/active_streaming_tool.js +6 -2
  581. package/dist/web/agents/base_agent.js +48 -9
  582. package/dist/web/agents/context.js +6 -2
  583. package/dist/web/agents/framework_function_calls.js +34 -0
  584. package/dist/web/agents/functions.js +62 -20
  585. package/dist/web/agents/instructions.js +52 -12
  586. package/dist/web/agents/invocation_context.js +56 -7
  587. package/dist/web/agents/live_request_queue.js +30 -5
  588. package/dist/web/agents/llm_agent.js +631 -52
  589. package/dist/web/agents/loop_agent.js +21 -2
  590. package/dist/web/agents/parallel_agent.js +23 -2
  591. package/dist/web/agents/processors/agent_transfer_llm_request_processor.js +8 -4
  592. package/dist/web/agents/processors/base_llm_processor.js +10 -4
  593. package/dist/web/agents/processors/basic_llm_request_processor.js +8 -4
  594. package/dist/web/agents/processors/code_execution_request_processor.js +19 -5
  595. package/dist/web/agents/processors/content_processor_utils.js +87 -16
  596. package/dist/web/agents/processors/content_request_processor.js +12 -25
  597. package/dist/web/agents/processors/context_compactor_request_processor.js +6 -2
  598. package/dist/web/agents/processors/identity_llm_request_processor.js +13 -4
  599. package/dist/web/agents/processors/instructions_llm_request_processor.js +9 -3
  600. package/dist/web/agents/processors/interactions_request_processor.js +6 -2
  601. package/dist/web/agents/processors/request_confirmation_llm_request_processor.js +329 -104
  602. package/dist/web/agents/processors/request_input_llm_request_processor.js +228 -0
  603. package/dist/web/agents/processors/tool_filter_request_processor.js +6 -2
  604. package/dist/web/agents/readonly_context.js +8 -3
  605. package/dist/web/agents/routed_agent.js +6 -14
  606. package/dist/web/agents/run_config.js +12 -0
  607. package/dist/web/agents/sequential_agent.js +22 -3
  608. package/dist/web/agents/user_input_request.js +135 -0
  609. package/dist/web/apps/app.js +14 -11
  610. package/dist/web/apps/resumability_config.js +2 -0
  611. package/dist/web/artifacts/file_artifact_service.js +22 -2
  612. package/dist/web/artifacts/gcs_artifact_service.js +56 -11
  613. package/dist/web/artifacts/in_memory_artifact_service.js +20 -11
  614. package/dist/web/artifacts/registry.js +7 -1
  615. package/dist/web/artifacts/scoped_artifact_service.js +5 -2
  616. package/dist/web/auth/auth_handler.js +5 -2
  617. package/dist/web/auth/auth_preprocessor.js +50 -41
  618. package/dist/web/auth/auth_provider_registry.js +6 -2
  619. package/dist/web/auth/auth_schemes.js +3 -0
  620. package/dist/web/auth/credential_response_binding.js +91 -0
  621. package/dist/web/auth/credential_service/in_memory_credential_service.js +20 -5
  622. package/dist/web/auth/credential_service/session_state_credential_service.js +6 -2
  623. package/dist/web/auth/exchanger/base_credential_exchanger.js +6 -2
  624. package/dist/web/auth/exchanger/credential_exchanger_registry.js +6 -2
  625. package/dist/web/auth/oauth2/oauth2_credential_exchanger.js +8 -2
  626. package/dist/web/auth/oauth2/oauth2_credential_refresher.js +5 -2
  627. package/dist/web/auth/oauth2/oauth2_discovery.js +8 -2
  628. package/dist/web/auth/oauth2/oauth2_utils.js +7 -0
  629. package/dist/web/auth/refresher/base_credential_refresher.js +6 -2
  630. package/dist/web/auth/refresher/credential_refresher_registry.js +6 -2
  631. package/dist/web/code_executors/agent_engine_sandbox_code_executor.js +3 -0
  632. package/dist/web/code_executors/base_code_executor.js +7 -2
  633. package/dist/web/code_executors/built_in_code_executor.js +7 -2
  634. package/dist/web/code_executors/code_execution_utils.js +7 -0
  635. package/dist/web/code_executors/code_executor_context.js +6 -2
  636. package/dist/web/code_executors/unsafe_local_code_executor.js +31 -13
  637. package/dist/web/common.js +113 -4
  638. package/dist/web/context/agent_controlled_context_compactor.js +8 -13
  639. package/dist/web/context/anchored_context_compactor.js +5 -2
  640. package/dist/web/context/compaction_utils.js +16 -1
  641. package/dist/web/context/summarizers/llm_summarizer.js +6 -2
  642. package/dist/web/context/token_based_context_compactor.js +16 -24
  643. package/dist/web/context/trajectory_thought_pruning_compactor.js +6 -2
  644. package/dist/web/context/truncating_context_compactor.js +6 -2
  645. package/dist/web/environment/base_environment.js +71 -0
  646. package/dist/web/environment/local_environment.js +165 -0
  647. package/dist/web/events/compacted_event.js +4 -0
  648. package/dist/web/events/event.js +37 -3
  649. package/dist/web/events/event_actions.js +5 -0
  650. package/dist/web/events/structured_events.js +3 -0
  651. package/dist/web/examples/base_example_provider.js +7 -2
  652. package/dist/web/examples/example_util.js +4 -0
  653. package/dist/web/features/feature_registry.js +8 -0
  654. package/dist/web/index.js +4 -13
  655. package/dist/web/integrations/agent_registry/agent_registry.js +8 -4
  656. package/dist/web/integrations/agent_registry/agent_registry_mcp_toolset.js +5 -2
  657. package/dist/web/integrations/agent_registry/helpers.js +4 -0
  658. package/dist/web/memory/in_memory_memory_service.js +22 -4
  659. package/dist/web/memory/vertex_ai_memory_bank_service.js +24 -3
  660. package/dist/web/models/apigee_llm.js +9 -3
  661. package/dist/web/models/base_llm.js +8 -3
  662. package/dist/web/models/gemini_llm_connection.js +6 -2
  663. package/dist/web/models/google_llm.js +25 -13
  664. package/dist/web/models/interactions_utils.js +17 -0
  665. package/dist/web/models/llm_request.js +5 -0
  666. package/dist/web/models/llm_response.js +3 -0
  667. package/dist/web/models/registry.js +7 -2
  668. package/dist/web/models/routed_llm.js +4 -14
  669. package/dist/web/plugins/base_plugin.js +43 -7
  670. package/dist/web/plugins/global_instruction_plugin.js +6 -2
  671. package/dist/web/plugins/logging_plugin.js +14 -8
  672. package/dist/web/plugins/plugin_manager.js +38 -2
  673. package/dist/web/plugins/security_plugin.js +14 -6
  674. package/dist/web/runner/in_memory_runner.js +6 -2
  675. package/dist/web/runner/runner.js +249 -31
  676. package/dist/web/sessions/base_session_service.js +22 -5
  677. package/dist/web/sessions/database_session_service.js +6 -2
  678. package/dist/web/sessions/db/operations.js +34 -6
  679. package/dist/web/sessions/db/schema.js +16 -8
  680. package/dist/web/sessions/in_memory_session_service.js +31 -22
  681. package/dist/web/sessions/registry.js +5 -1
  682. package/dist/web/sessions/session.js +3 -0
  683. package/dist/web/sessions/state.js +77 -7
  684. package/dist/web/sessions/state_write_order.js +74 -0
  685. package/dist/web/sessions/vertex_ai_session_service.js +142 -26
  686. package/dist/web/skills/gcp_skill_registry.js +2 -0
  687. package/dist/web/skills/loader.js +62 -16
  688. package/dist/web/skills/prompt.js +4 -0
  689. package/dist/web/telemetry/google_cloud.js +54 -9
  690. package/dist/web/telemetry/setup.js +6 -0
  691. package/dist/web/telemetry/tracing.js +77 -7
  692. package/dist/web/tools/agent_tool.js +7 -2
  693. package/dist/web/tools/base_tool.js +25 -2
  694. package/dist/web/tools/base_toolset.js +7 -2
  695. package/dist/web/tools/consolidate_context_tool.js +6 -2
  696. package/dist/web/tools/enterprise_web_search_tool.js +7 -2
  697. package/dist/web/tools/example_tool.js +6 -2
  698. package/dist/web/tools/exit_loop_tool.js +6 -2
  699. package/dist/web/tools/finish_task_tool.js +92 -0
  700. package/dist/web/tools/forwarding_artifact_service.js +6 -2
  701. package/dist/web/tools/function_tool.js +74 -8
  702. package/dist/web/tools/get_user_choice_tool.js +27 -0
  703. package/dist/web/tools/google_maps_grounding_tool.js +7 -2
  704. package/dist/web/tools/google_search_tool.js +6 -2
  705. package/dist/web/tools/load_artifacts_tool.js +9 -2
  706. package/dist/web/tools/load_memory_tool.js +6 -2
  707. package/dist/web/tools/load_web_page.js +22 -1
  708. package/dist/web/tools/long_running_tool.js +5 -2
  709. package/dist/web/tools/mcp/index.js +11 -0
  710. package/dist/web/tools/mcp/load_mcp_resource_tool.js +6 -2
  711. package/dist/web/tools/mcp/mcp_session_manager.js +80 -30
  712. package/dist/web/tools/mcp/mcp_tool.js +6 -2
  713. package/dist/web/tools/mcp/mcp_toolset.js +5 -2
  714. package/dist/web/tools/openapi_tool/auth/auth_helpers.js +5 -0
  715. package/dist/web/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +2 -0
  716. package/dist/web/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +2 -0
  717. package/dist/web/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +30 -9
  718. package/dist/web/tools/openapi_tool/openapi_spec_parser/operation_parser.js +2 -0
  719. package/dist/web/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +6 -2
  720. package/dist/web/tools/openapi_tool/openapi_toolset.js +2 -0
  721. package/dist/web/tools/openapi_tool/rest_api_tool.js +23 -5
  722. package/dist/web/tools/preload_memory_tool.js +6 -2
  723. package/dist/web/tools/request_input_tool.js +29 -0
  724. package/dist/web/tools/skill/list_skills_tool.js +2 -0
  725. package/dist/web/tools/skill/load_skill_resource_tool.js +2 -0
  726. package/dist/web/tools/skill/load_skill_tool.js +4 -1
  727. package/dist/web/tools/skill/run_skill_inline_script_tool.js +26 -2
  728. package/dist/web/tools/skill/run_skill_script_tool.js +28 -2
  729. package/dist/web/tools/skill/search_skills_tool.js +2 -0
  730. package/dist/web/tools/skill/skill_toolset.js +25 -0
  731. package/dist/web/tools/tool_confirmation.js +24 -2
  732. package/dist/web/tools/url_context_tool.js +6 -2
  733. package/dist/web/tools/vertex_ai_search_tool.js +6 -2
  734. package/dist/web/tools/vertex_rag_retrieval_tool.js +6 -2
  735. package/dist/web/utils/async_hooks_shim.js +6 -2
  736. package/dist/web/utils/async_queue.js +46 -18
  737. package/dist/web/utils/branch_trie.js +3 -0
  738. package/dist/web/utils/case_utils.js +3 -0
  739. package/dist/web/utils/client_labels.js +6 -0
  740. package/dist/web/utils/crypto_shim.js +18 -0
  741. package/dist/web/utils/deprecated.js +40 -0
  742. package/dist/web/utils/env_aware_utils.js +56 -13
  743. package/dist/web/utils/error_utils.js +101 -0
  744. package/dist/web/utils/experimental.js +10 -2
  745. package/dist/web/utils/failover_utils.js +4 -0
  746. package/dist/web/utils/file_extension_utils.js +4 -0
  747. package/dist/web/utils/file_utils.js +12 -4
  748. package/dist/web/utils/gemini_schema_util.js +6 -2
  749. package/dist/web/utils/genai_schema_to_json.js +80 -0
  750. package/dist/web/utils/live_connection_utils.js +5 -2
  751. package/dist/web/utils/logger.js +14 -4
  752. package/dist/web/utils/model_name.js +9 -0
  753. package/dist/web/utils/object_notation_utils.js +8 -3
  754. package/dist/web/utils/optional_peer.js +38 -0
  755. package/dist/web/utils/output_schema_utils.js +18 -0
  756. package/dist/web/utils/partial_copy.js +3 -0
  757. package/dist/web/utils/redact_uri.js +39 -0
  758. package/dist/web/utils/schema.js +167 -0
  759. package/dist/web/utils/simple_zod_to_json.js +15 -4
  760. package/dist/web/utils/streaming_utils.js +14 -6
  761. package/dist/web/utils/task.js +8 -4
  762. package/dist/web/utils/variant_utils.js +5 -2
  763. package/dist/web/utils/vertex_ai_utils.js +7 -2
  764. package/dist/web/version.js +1 -1
  765. package/dist/web/workflow/base_node.js +215 -0
  766. package/dist/web/workflow/branch_path.js +77 -0
  767. package/dist/web/workflow/dynamic_node_scheduler.js +202 -0
  768. package/dist/web/workflow/errors.js +140 -0
  769. package/dist/web/workflow/graph.js +127 -0
  770. package/dist/web/workflow/index.js +80 -0
  771. package/dist/web/workflow/node.js +87 -0
  772. package/dist/web/workflow/node_builders.js +40 -0
  773. package/dist/web/workflow/node_context.js +236 -0
  774. package/dist/web/workflow/node_error_event.js +86 -0
  775. package/dist/web/workflow/node_runner.js +481 -0
  776. package/dist/web/workflow/node_state.js +43 -0
  777. package/dist/web/workflow/node_status.js +20 -0
  778. package/dist/web/workflow/nodes/function_node.js +221 -0
  779. package/dist/web/workflow/nodes/join_node.js +47 -0
  780. package/dist/web/workflow/nodes/node_tool.js +131 -0
  781. package/dist/web/workflow/nodes/parallel_worker.js +120 -0
  782. package/dist/web/workflow/nodes/tool_node.js +126 -0
  783. package/dist/web/workflow/request_input.js +36 -0
  784. package/dist/web/workflow/retry_config.js +43 -0
  785. package/dist/web/workflow/run_llm_agent_as_node.js +266 -0
  786. package/dist/web/workflow/run_node_as_invocation.js +170 -0
  787. package/dist/web/workflow/schedule_dynamic_node.js +26 -0
  788. package/dist/web/workflow/trigger.js +7 -0
  789. package/dist/web/workflow/utils/graph_parser.js +188 -0
  790. package/dist/web/workflow/utils/graph_validation.js +189 -0
  791. package/dist/web/workflow/utils/hitl_utils.js +239 -0
  792. package/dist/web/workflow/utils/rehydration_utils.js +342 -0
  793. package/dist/web/workflow/utils/retry_utils.js +82 -0
  794. package/dist/web/workflow/utils/workflow_graph_utils.js +115 -0
  795. package/dist/web/workflow/workflow.js +529 -0
  796. package/package.json +82 -8
@@ -2,6 +2,7 @@ import {createRequire as topLevelCreateRequire} from 'module';
2
2
  const require = topLevelCreateRequire(import.meta.url);
3
3
  var __defProp = Object.defineProperty;
4
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
5
6
  var __decorateClass = (decorators, target, key, kind) => {
6
7
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
7
8
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
@@ -19,7 +20,10 @@ import { Client } from "@google-cloud/vertexai/build/src/genai/client.js";
19
20
  import { isCompactedEvent } from "../events/compacted_event.js";
20
21
  import { experimental } from "../utils/experimental.js";
21
22
  import { logger } from "../utils/logger.js";
22
- import { getExpressModeApiKey } from "../utils/vertex_ai_utils.js";
23
+ import {
24
+ EXPRESS_MODE_UNSUPPORTED_MESSAGE,
25
+ getExpressModeApiKey
26
+ } from "../utils/vertex_ai_utils.js";
23
27
  import { partialCopy } from "../utils/partial_copy.js";
24
28
  import {
25
29
  BaseSessionService,
@@ -29,13 +33,17 @@ import { createSession } from "./session.js";
29
33
  const DEFAULT_MAX_ATTEMPTS = 30;
30
34
  const GRPC_NOT_FOUND = 5;
31
35
  const HTTP_NOT_FOUND = 404;
36
+ const HTTP_BAD_REQUEST = 400;
37
+ const WORKFLOW_CUSTOM_METADATA_KEY = "_workflow";
32
38
  function isVertexAiConnectionString(uri) {
33
39
  return (uri == null ? void 0 : uri.startsWith("vertexai://")) || false;
34
40
  }
41
+ __name(isVertexAiConnectionString, "isVertexAiConnectionString");
35
42
  function quoteFilterLiteral(value) {
36
43
  const escaped = value.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
37
44
  return `"${escaped}"`;
38
45
  }
46
+ __name(quoteFilterLiteral, "quoteFilterLiteral");
39
47
  let VertexAiSessionService = class extends BaseSessionService {
40
48
  constructor(options) {
41
49
  super();
@@ -47,16 +55,14 @@ let VertexAiSessionService = class extends BaseSessionService {
47
55
  this.location,
48
56
  options.expressModeApiKey
49
57
  );
50
- if (!options.sessions) {
51
- if (!this.expressModeApiKey && (!this.projectId || !this.location)) {
52
- throw new Error(
53
- "Either (Project ID and Location) or an expressModeApiKey is required."
54
- );
55
- }
56
- }
57
58
  if (options.sessions) {
58
59
  this.sessions = options.sessions;
59
60
  } else {
61
+ if (!this.projectId || !this.location) {
62
+ throw new Error(
63
+ this.expressModeApiKey ? EXPRESS_MODE_UNSUPPORTED_MESSAGE : "Project ID and Location are required."
64
+ );
65
+ }
60
66
  const client = new Client({
61
67
  project: this.projectId,
62
68
  location: this.location
@@ -80,13 +86,25 @@ let VertexAiSessionService = class extends BaseSessionService {
80
86
  }
81
87
  return match[3];
82
88
  }
89
+ /**
90
+ * Creates a session on Vertex AI Agent Engine.
91
+ *
92
+ * @throws if both `ttl` and `expireTime` are specified.
93
+ */
83
94
  async createSession({
84
95
  appName,
85
96
  userId,
86
97
  state,
87
- sessionId
98
+ sessionId,
99
+ ttl,
100
+ expireTime
88
101
  }) {
89
102
  var _a;
103
+ if (ttl != null && expireTime != null) {
104
+ throw new Error(
105
+ "Cannot specify both 'ttl' and 'expireTime' simultaneously."
106
+ );
107
+ }
90
108
  const reasoningEngineId = this.getReasoningEngineId(appName);
91
109
  const filteredState = state ? trimTempState(state) : void 0;
92
110
  let apiResponse = await this.sessions.createInternal({
@@ -94,7 +112,9 @@ let VertexAiSessionService = class extends BaseSessionService {
94
112
  userId,
95
113
  config: {
96
114
  ...filteredState ? { sessionState: filteredState } : {},
97
- ...sessionId ? { sessionId } : {}
115
+ ...sessionId ? { sessionId } : {},
116
+ ...ttl != null ? { ttl } : {},
117
+ ...expireTime != null ? { expireTime } : {}
98
118
  }
99
119
  });
100
120
  const operationName = apiResponse.name;
@@ -180,7 +200,7 @@ let VertexAiSessionService = class extends BaseSessionService {
180
200
  return session;
181
201
  } catch (error) {
182
202
  const err = error;
183
- if (err.code === GRPC_NOT_FOUND || err.code === HTTP_NOT_FOUND) {
203
+ if (err.code === GRPC_NOT_FOUND || err.code === HTTP_NOT_FOUND || err.status === HTTP_NOT_FOUND) {
184
204
  return void 0;
185
205
  }
186
206
  logger.error(`Error getting session from Vertex AI: ${err.message}`);
@@ -299,12 +319,17 @@ let VertexAiSessionService = class extends BaseSessionService {
299
319
  if (event.usageMetadata) {
300
320
  customMetadata._usage_metadata = event.usageMetadata;
301
321
  }
322
+ const workflowMetadata = toWorkflowMetadata(event);
323
+ if (workflowMetadata) {
324
+ customMetadata[WORKFLOW_CUSTOM_METADATA_KEY] = workflowMetadata;
325
+ }
302
326
  const config = partialCopy(event, [
303
- "content",
304
- "actions",
305
327
  "errorCode",
306
328
  "errorMessage"
307
329
  ]);
330
+ config.actions = toApiActions(event.actions);
331
+ const content = dropUnsupportedPartFields(event.content);
332
+ config.content = content;
308
333
  config.eventMetadata = {
309
334
  ...partialCopy(event, [
310
335
  "partial",
@@ -316,7 +341,7 @@ let VertexAiSessionService = class extends BaseSessionService {
316
341
  ]),
317
342
  customMetadata: Object.keys(customMetadata).length > 0 ? customMetadata : void 0
318
343
  };
319
- config.rawEvent = JSON.parse(JSON.stringify(event));
344
+ config.rawEvent = JSON.parse(JSON.stringify({ ...event, content }));
320
345
  const params = {
321
346
  name: `reasoningEngines/${reasoningEngineId}/sessions/${session.id}`,
322
347
  author: event.author || "user",
@@ -327,27 +352,99 @@ let VertexAiSessionService = class extends BaseSessionService {
327
352
  try {
328
353
  await this.sessions.events.append(params);
329
354
  } catch (error) {
355
+ if (!isInvalidArgumentError(error)) {
356
+ throw error;
357
+ }
330
358
  logger.warn(
331
- "Failed to append event with rawEvent, falling back...",
359
+ "Failed to append event with rawEvent; retrying without it. The event will be reconstructed from its structured fields and customMetadata on read.",
332
360
  error
333
361
  );
334
362
  delete config.rawEvent;
335
- await this.sessions.events.append({
336
- name: `reasoningEngines/${reasoningEngineId}/sessions/${session.id}`,
337
- author: event.author || "user",
338
- invocationId: event.invocationId || `inv-${Date.now()}`,
339
- timestamp: new Date(event.timestamp).toISOString(),
340
- config
341
- });
363
+ await this.sessions.events.append(params);
342
364
  }
343
365
  return event;
344
366
  }
345
367
  };
368
+ __name(VertexAiSessionService, "VertexAiSessionService");
346
369
  VertexAiSessionService = __decorateClass([
347
370
  experimental
348
371
  ], VertexAiSessionService);
372
+ function toWorkflowMetadata(event) {
373
+ var _a, _b;
374
+ const metadata = {};
375
+ if (event.output !== void 0) {
376
+ metadata.output = event.output;
377
+ }
378
+ if (event.route !== void 0) {
379
+ metadata.route = event.route;
380
+ }
381
+ if (event.nodeInfo !== void 0) {
382
+ metadata.nodeInfo = event.nodeInfo;
383
+ }
384
+ if (event.isolationScope !== void 0) {
385
+ metadata.isolationScope = event.isolationScope;
386
+ }
387
+ if (((_a = event.actions) == null ? void 0 : _a.agentState) !== void 0) {
388
+ metadata.agentState = event.actions.agentState;
389
+ }
390
+ if (((_b = event.actions) == null ? void 0 : _b.endOfAgent) !== void 0) {
391
+ metadata.endOfAgent = event.actions.endOfAgent;
392
+ }
393
+ return Object.keys(metadata).length > 0 ? metadata : void 0;
394
+ }
395
+ __name(toWorkflowMetadata, "toWorkflowMetadata");
396
+ function applyWorkflowMetadata(event, metadata) {
397
+ if (metadata.output !== void 0) {
398
+ event.output = metadata.output;
399
+ }
400
+ if (metadata.route !== void 0) {
401
+ event.route = metadata.route;
402
+ }
403
+ if (metadata.nodeInfo !== void 0) {
404
+ event.nodeInfo = metadata.nodeInfo;
405
+ }
406
+ if (metadata.isolationScope !== void 0) {
407
+ event.isolationScope = metadata.isolationScope;
408
+ }
409
+ if (metadata.agentState !== void 0) {
410
+ event.actions.agentState = metadata.agentState;
411
+ }
412
+ if (metadata.endOfAgent !== void 0) {
413
+ event.actions.endOfAgent = metadata.endOfAgent;
414
+ }
415
+ }
416
+ __name(applyWorkflowMetadata, "applyWorkflowMetadata");
417
+ function toApiActions(actions) {
418
+ if (!actions) {
419
+ return void 0;
420
+ }
421
+ const { transferToAgent, ...rest } = actions;
422
+ return {
423
+ ...rest,
424
+ ...transferToAgent !== void 0 ? { transferAgent: transferToAgent } : {}
425
+ };
426
+ }
427
+ __name(toApiActions, "toApiActions");
428
+ function dropUnsupportedPartFields(content) {
429
+ if (!(content == null ? void 0 : content.parts)) {
430
+ return content;
431
+ }
432
+ return {
433
+ ...content,
434
+ parts: content.parts.map((part) => {
435
+ const copy = { ...part };
436
+ delete copy.partMetadata;
437
+ return copy;
438
+ })
439
+ };
440
+ }
441
+ __name(dropUnsupportedPartFields, "dropUnsupportedPartFields");
442
+ function isInvalidArgumentError(error) {
443
+ return (error == null ? void 0 : error.status) === HTTP_BAD_REQUEST;
444
+ }
445
+ __name(isInvalidArgumentError, "isInvalidArgumentError");
349
446
  function _fromApiEvent(apiEventObj) {
350
- var _a, _b, _c;
447
+ var _a, _b, _c, _d;
351
448
  const rawEvent = apiEventObj.rawEvent;
352
449
  if (rawEvent) {
353
450
  const event2 = JSON.parse(JSON.stringify(rawEvent));
@@ -364,7 +461,9 @@ function _fromApiEvent(apiEventObj) {
364
461
  let customMetadata = eventMetadata.customMetadata;
365
462
  let compactionData = null;
366
463
  let usageMetadataData = null;
464
+ let workflowData;
367
465
  if (customMetadata) {
466
+ customMetadata = { ...customMetadata };
368
467
  if (customMetadata._compaction) {
369
468
  compactionData = customMetadata._compaction;
370
469
  delete customMetadata._compaction;
@@ -373,6 +472,10 @@ function _fromApiEvent(apiEventObj) {
373
472
  usageMetadataData = customMetadata._usage_metadata;
374
473
  delete customMetadata._usage_metadata;
375
474
  }
475
+ if (customMetadata[WORKFLOW_CUSTOM_METADATA_KEY]) {
476
+ workflowData = customMetadata[WORKFLOW_CUSTOM_METADATA_KEY];
477
+ delete customMetadata[WORKFLOW_CUSTOM_METADATA_KEY];
478
+ }
376
479
  if (Object.keys(customMetadata).length === 0) {
377
480
  customMetadata = void 0;
378
481
  }
@@ -383,18 +486,20 @@ function _fromApiEvent(apiEventObj) {
383
486
  requestedAuthConfigs: actions.requestedAuthConfigs || {},
384
487
  requestedToolConfirmations: actions["requestedToolConfirmations"] || {},
385
488
  skipSummarization: actions["skipSummarization"],
386
- transferToAgent: actions["transferAgent"],
489
+ // Earlier adk-js versions copied `event.actions` onto the request
490
+ // verbatim, so sessions they wrote store ADK's own `transferToAgent` key.
491
+ transferToAgent: (_b = actions["transferAgent"]) != null ? _b : actions["transferToAgent"],
387
492
  escalate: actions["escalate"],
388
493
  compaction: compactionData || void 0
389
494
  };
390
495
  const event = {
391
- id: ((_b = apiEventObj.name) == null ? void 0 : _b.split("/").pop()) || "",
496
+ id: ((_c = apiEventObj.name) == null ? void 0 : _c.split("/").pop()) || "",
392
497
  invocationId: apiEventObj.invocationId || "",
393
498
  author: apiEventObj.author,
394
499
  actions: eventActions,
395
500
  content: apiEventObj.content,
396
501
  timestamp: apiEventObj.timestamp ? new Date(apiEventObj.timestamp).getTime() : Date.now(),
397
- errorCode: (_c = apiEventObj.errorCode) == null ? void 0 : _c.toString(),
502
+ errorCode: (_d = apiEventObj.errorCode) == null ? void 0 : _d.toString(),
398
503
  errorMessage: apiEventObj.errorMessage,
399
504
  partial: eventMetadata["partial"],
400
505
  turnComplete: eventMetadata["turnComplete"],
@@ -402,6 +507,7 @@ function _fromApiEvent(apiEventObj) {
402
507
  branch: eventMetadata["branch"],
403
508
  customMetadata,
404
509
  longRunningToolIds: eventMetadata["longRunningToolIds"],
510
+ groundingMetadata: eventMetadata["groundingMetadata"],
405
511
  usageMetadata: usageMetadataData
406
512
  };
407
513
  if (compactionData) {
@@ -410,8 +516,12 @@ function _fromApiEvent(apiEventObj) {
410
516
  event.endTime = compactionData.endTime;
411
517
  event.compactedContent = compactionData.compactedContent;
412
518
  }
519
+ if (workflowData) {
520
+ applyWorkflowMetadata(event, workflowData);
521
+ }
413
522
  return event;
414
523
  }
524
+ __name(_fromApiEvent, "_fromApiEvent");
415
525
  export {
416
526
  VertexAiSessionService,
417
527
  isVertexAiConnectionString,
@@ -2,6 +2,7 @@ import {createRequire as topLevelCreateRequire} from 'module';
2
2
  const require = topLevelCreateRequire(import.meta.url);
3
3
  var __defProp = Object.defineProperty;
4
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
5
6
  var __decorateClass = (decorators, target, key, kind) => {
6
7
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
7
8
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
@@ -70,6 +71,7 @@ let GCPSkillRegistry = class {
70
71
  return results;
71
72
  }
72
73
  };
74
+ __name(GCPSkillRegistry, "GCPSkillRegistry");
73
75
  GCPSkillRegistry = __decorateClass([
74
76
  experimental
75
77
  ], GCPSkillRegistry);
@@ -1,5 +1,7 @@
1
1
  import {createRequire as topLevelCreateRequire} from 'module';
2
2
  const require = topLevelCreateRequire(import.meta.url);
3
+ var __defProp = Object.defineProperty;
4
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
5
  /**
4
6
  * @license
5
7
  * Copyright 2026 Google LLC
@@ -7,6 +9,7 @@ const require = topLevelCreateRequire(import.meta.url);
7
9
  */
8
10
  import AdmZip from "adm-zip";
9
11
  import yaml from "js-yaml";
12
+ import { isUtf8 } from "node:buffer";
10
13
  import * as fs from "node:fs/promises";
11
14
  import * as path from "node:path";
12
15
  import { logger } from "../utils/logger.js";
@@ -18,6 +21,9 @@ const ALLOWED_FRONTMATTER_KEYS = /* @__PURE__ */ new Set([
18
21
  "description",
19
22
  "license",
20
23
  "allowed-tools",
24
+ // Camel-case alias: FrontmatterSchema's preprocessor derives `allowedTools`
25
+ // from `allowed-tools`, and `.loose()` passes either spelling through.
26
+ "allowedTools",
21
27
  "metadata",
22
28
  "compatibility"
23
29
  ]);
@@ -43,6 +49,10 @@ const IGNORED_EXTENSIONS = /* @__PURE__ */ new Set([
43
49
  ".tsbuildinfo",
44
50
  ".DS_Store"
45
51
  ]);
52
+ function decodeSkillFileContent(data) {
53
+ return isUtf8(data) ? data.toString("utf-8") : data;
54
+ }
55
+ __name(decodeSkillFileContent, "decodeSkillFileContent");
46
56
  async function loadDir(directoryPath) {
47
57
  const files = {};
48
58
  async function walk(dir) {
@@ -60,14 +70,11 @@ async function loadDir(directoryPath) {
60
70
  continue;
61
71
  }
62
72
  const fileData = await fs.readFile(fullPath);
63
- try {
64
- files[relativePath] = fileData.toString("utf-8");
65
- } catch (_e) {
66
- files[relativePath] = fileData;
67
- }
73
+ files[relativePath] = decodeSkillFileContent(fileData);
68
74
  }
69
75
  }
70
76
  }
77
+ __name(walk, "walk");
71
78
  try {
72
79
  const stats = await fs.stat(directoryPath);
73
80
  if (stats.isDirectory()) {
@@ -80,7 +87,8 @@ async function loadDir(directoryPath) {
80
87
  }
81
88
  return files;
82
89
  }
83
- function parseSkillMdContent(content) {
90
+ __name(loadDir, "loadDir");
91
+ function parseFrontmatterYaml(content) {
84
92
  if (!content.startsWith("---")) {
85
93
  throw new Error("SKILL.md must start with YAML frontmatter (---)");
86
94
  }
@@ -92,15 +100,39 @@ function parseSkillMdContent(content) {
92
100
  const body = parts.filter((_, i) => i >= 2).join("---").trim();
93
101
  try {
94
102
  const parsed = yaml.load(frontmatterStr);
95
- if (typeof parsed !== "object" || parsed === null) {
103
+ if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
96
104
  throw new Error("SKILL.md frontmatter must be a YAML mapping");
97
105
  }
98
- const frontmatter = FrontmatterSchema.parse(parsed);
99
- return { frontmatter, body };
106
+ return { raw: parsed, body };
107
+ } catch (e) {
108
+ throw new Error(`Invalid YAML in frontmatter: ${e.message}`);
109
+ }
110
+ }
111
+ __name(parseFrontmatterYaml, "parseFrontmatterYaml");
112
+ function validateFrontmatter(raw) {
113
+ try {
114
+ return FrontmatterSchema.parse(raw);
100
115
  } catch (e) {
101
116
  throw new Error(`Invalid YAML in frontmatter: ${e.message}`);
102
117
  }
103
118
  }
119
+ __name(validateFrontmatter, "validateFrontmatter");
120
+ function parseSkillMdContent(content) {
121
+ const { raw, body } = parseFrontmatterYaml(content);
122
+ return { frontmatter: validateFrontmatter(raw), body };
123
+ }
124
+ __name(parseSkillMdContent, "parseSkillMdContent");
125
+ function isDangerousZipEntryName(entryName) {
126
+ if (path.posix.isAbsolute(entryName) || path.win32.isAbsolute(entryName)) {
127
+ return true;
128
+ }
129
+ return entryName.split(/[/\\]/).some((segment) => segment === "..");
130
+ }
131
+ __name(isDangerousZipEntryName, "isDangerousZipEntryName");
132
+ function isBareSkillName(name) {
133
+ return name !== "." && name !== ".." && path.basename(name) === name;
134
+ }
135
+ __name(isBareSkillName, "isBareSkillName");
104
136
  async function loadSkillFromDir(skillDir) {
105
137
  const resolvedDir = path.resolve(skillDir);
106
138
  const skill = await loadSkillFile(skillDir);
@@ -124,6 +156,7 @@ async function loadSkillFromDir(skillDir) {
124
156
  resources
125
157
  };
126
158
  }
159
+ __name(loadSkillFromDir, "loadSkillFromDir");
127
160
  async function validateSkillDir(skillDir) {
128
161
  const problems = [];
129
162
  const resolvedDir = path.resolve(skillDir);
@@ -152,6 +185,7 @@ async function validateSkillDir(skillDir) {
152
185
  }
153
186
  return problems;
154
187
  }
188
+ __name(validateSkillDir, "validateSkillDir");
155
189
  async function loadSkillFile(skillDir) {
156
190
  const resolvedDir = path.resolve(skillDir);
157
191
  let skillMdPath = "";
@@ -192,6 +226,7 @@ async function loadSkillFile(skillDir) {
192
226
  instructions: body
193
227
  };
194
228
  }
229
+ __name(loadSkillFile, "loadSkillFile");
195
230
  async function loadAllSkillsInDir(skillsBasePath) {
196
231
  const resolvedPath = path.resolve(skillsBasePath);
197
232
  const skills = {};
@@ -229,6 +264,7 @@ async function loadAllSkillsInDir(skillsBasePath) {
229
264
  }
230
265
  }
231
266
  }
267
+ __name(scanDir, "scanDir");
232
268
  try {
233
269
  await fs.readdir(resolvedPath);
234
270
  await scanDir(resolvedPath);
@@ -237,9 +273,15 @@ async function loadAllSkillsInDir(skillsBasePath) {
237
273
  }
238
274
  return skills;
239
275
  }
276
+ __name(loadAllSkillsInDir, "loadAllSkillsInDir");
240
277
  function loadSkillFromZipBuffer(zipBuffer) {
241
278
  const zip = new AdmZip(zipBuffer);
242
279
  const entries = zip.getEntries();
280
+ for (const entry of entries) {
281
+ if (isDangerousZipEntryName(entry.entryName)) {
282
+ throw new Error(`Dangerous zip entry ignored: ${entry.entryName}`);
283
+ }
284
+ }
243
285
  let skillMdContent = "";
244
286
  for (const entry of entries) {
245
287
  if (entry.isDirectory) continue;
@@ -251,8 +293,15 @@ function loadSkillFromZipBuffer(zipBuffer) {
251
293
  if (!skillMdContent) {
252
294
  throw new Error("SKILL.md not found in zipped filesystem.");
253
295
  }
254
- const { frontmatter: parsed, body } = parseSkillMdContent(skillMdContent);
255
- const frontmatter = FrontmatterSchema.parse(parsed);
296
+ const { raw, body } = parseFrontmatterYaml(skillMdContent);
297
+ const skillName = raw["name"];
298
+ if (!skillName) {
299
+ throw new Error("SKILL.md frontmatter must contain 'name'");
300
+ }
301
+ if (typeof skillName !== "string" || !isBareSkillName(skillName)) {
302
+ throw new Error(`Invalid skill name in SKILL.md: ${String(skillName)}`);
303
+ }
304
+ const frontmatter = validateFrontmatter(raw);
256
305
  const references = {};
257
306
  const assets = {};
258
307
  const scripts = {};
@@ -266,15 +315,12 @@ function loadSkillFromZipBuffer(zipBuffer) {
266
315
  const relativePath = entry.entryName.substring(normPrefix.length);
267
316
  if (!relativePath) continue;
268
317
  const data = entry.getData();
269
- try {
270
- res[relativePath] = data.toString("utf-8");
271
- } catch (_e) {
272
- res[relativePath] = data;
273
- }
318
+ res[relativePath] = decodeSkillFileContent(data);
274
319
  }
275
320
  }
276
321
  return res;
277
322
  }
323
+ __name(loadZipDir, "loadZipDir");
278
324
  const refFiles = loadZipDir("references");
279
325
  for (const [key, val] of Object.entries(refFiles)) {
280
326
  references[key] = val;
@@ -299,6 +345,7 @@ function loadSkillFromZipBuffer(zipBuffer) {
299
345
  }
300
346
  };
301
347
  }
348
+ __name(loadSkillFromZipBuffer, "loadSkillFromZipBuffer");
302
349
  export {
303
350
  loadAllSkillsInDir,
304
351
  loadSkillFromDir,
@@ -1,5 +1,7 @@
1
1
  import {createRequire as topLevelCreateRequire} from 'module';
2
2
  const require = topLevelCreateRequire(import.meta.url);
3
+ var __defProp = Object.defineProperty;
4
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
5
  /**
4
6
  * @license
5
7
  * Copyright 2026 Google LLC
@@ -8,6 +10,7 @@ const require = topLevelCreateRequire(import.meta.url);
8
10
  function escapeHtml(unsafe) {
9
11
  return unsafe.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#039;");
10
12
  }
13
+ __name(escapeHtml, "escapeHtml");
11
14
  function formatSkillsAsXml(skills) {
12
15
  if (!skills || skills.length === 0) {
13
16
  return "<available_skills>\n</available_skills>";
@@ -25,6 +28,7 @@ function formatSkillsAsXml(skills) {
25
28
  lines.push("</available_skills>");
26
29
  return lines.join("\n");
27
30
  }
31
+ __name(formatSkillsAsXml, "formatSkillsAsXml");
28
32
  export {
29
33
  formatSkillsAsXml
30
34
  };
@@ -1,18 +1,40 @@
1
1
  import {createRequire as topLevelCreateRequire} from 'module';
2
2
  const require = topLevelCreateRequire(import.meta.url);
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
19
+ // If the importer is in node compatibility mode or this is not an ESM
20
+ // file that has been converted to a CommonJS file using a Babel-
21
+ // compatible transform (i.e. "__esModule" has not been set), then set
22
+ // "default" to the CommonJS "module.exports" for node compatibility.
23
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
24
+ mod
25
+ ));
3
26
  /**
4
27
  * @license
5
28
  * Copyright 2025 Google LLC
6
29
  * SPDX-License-Identifier: Apache-2.0
7
30
  */
8
- import { MetricExporter } from "@google-cloud/opentelemetry-cloud-monitoring-exporter";
9
- import { TraceExporter } from "@google-cloud/opentelemetry-cloud-trace-exporter";
10
31
  import { gcpDetector } from "@opentelemetry/resource-detector-gcp";
11
32
  import { detectResources } from "@opentelemetry/resources";
12
33
  import { PeriodicExportingMetricReader } from "@opentelemetry/sdk-metrics";
13
34
  import { BatchSpanProcessor } from "@opentelemetry/sdk-trace-base";
14
35
  import { GoogleAuth } from "google-auth-library";
15
36
  import { logger } from "../utils/logger.js";
37
+ import { loadOptionalPeer } from "../utils/optional_peer.js";
16
38
  const GCP_PROJECT_ERROR_MESSAGE = "Cannot determine GCP Project. OTel GCP Exporters cannot be set up. Please make sure to log into correct GCP Project.";
17
39
  async function getGcpProjectId() {
18
40
  try {
@@ -23,6 +45,32 @@ async function getGcpProjectId() {
23
45
  return void 0;
24
46
  }
25
47
  }
48
+ __name(getGcpProjectId, "getGcpProjectId");
49
+ async function createCloudTraceProcessor(projectId) {
50
+ const { TraceExporter } = await loadOptionalPeer(
51
+ {
52
+ packageName: "@google-cloud/opentelemetry-cloud-trace-exporter",
53
+ feature: "getGcpExporters({enableTracing: true})"
54
+ },
55
+ () => Promise.resolve().then(() => __toESM(require("@google-cloud/opentelemetry-cloud-trace-exporter"), 1))
56
+ );
57
+ return new BatchSpanProcessor(new TraceExporter({ projectId }));
58
+ }
59
+ __name(createCloudTraceProcessor, "createCloudTraceProcessor");
60
+ async function createCloudMetricReader(projectId) {
61
+ const { MetricExporter } = await loadOptionalPeer(
62
+ {
63
+ packageName: "@google-cloud/opentelemetry-cloud-monitoring-exporter",
64
+ feature: "getGcpExporters({enableMetrics: true})"
65
+ },
66
+ () => Promise.resolve().then(() => __toESM(require("@google-cloud/opentelemetry-cloud-monitoring-exporter"), 1))
67
+ );
68
+ return new PeriodicExportingMetricReader({
69
+ exporter: new MetricExporter({ projectId }),
70
+ exportIntervalMillis: 5e3
71
+ });
72
+ }
73
+ __name(createCloudMetricReader, "createCloudMetricReader");
26
74
  async function getGcpExporters(config = {}) {
27
75
  const {
28
76
  enableTracing = false,
@@ -35,19 +83,16 @@ async function getGcpExporters(config = {}) {
35
83
  return {};
36
84
  }
37
85
  return {
38
- spanProcessors: enableTracing ? [new BatchSpanProcessor(new TraceExporter({ projectId }))] : [],
39
- metricReaders: enableMetrics ? [
40
- new PeriodicExportingMetricReader({
41
- exporter: new MetricExporter({ projectId }),
42
- exportIntervalMillis: 5e3
43
- })
44
- ] : [],
86
+ spanProcessors: enableTracing ? [await createCloudTraceProcessor(projectId)] : [],
87
+ metricReaders: enableMetrics ? [await createCloudMetricReader(projectId)] : [],
45
88
  logRecordProcessors: []
46
89
  };
47
90
  }
91
+ __name(getGcpExporters, "getGcpExporters");
48
92
  function getGcpResource() {
49
93
  return detectResources({ detectors: [gcpDetector] });
50
94
  }
95
+ __name(getGcpResource, "getGcpResource");
51
96
  export {
52
97
  getGcpExporters,
53
98
  getGcpResource
@@ -1,5 +1,7 @@
1
1
  import {createRequire as topLevelCreateRequire} from 'module';
2
2
  const require = topLevelCreateRequire(import.meta.url);
3
+ var __defProp = Object.defineProperty;
4
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
5
  /**
4
6
  * @license
5
7
  * Copyright 2025 Google LLC
@@ -54,11 +56,13 @@ function maybeSetOtelProviders(otelHooksToSetup = [], otelResource) {
54
56
  logs.setGlobalLoggerProvider(loggerProvider);
55
57
  }
56
58
  }
59
+ __name(maybeSetOtelProviders, "maybeSetOtelProviders");
57
60
  function getOtelResource() {
58
61
  return detectResources({
59
62
  detectors: []
60
63
  });
61
64
  }
65
+ __name(getOtelResource, "getOtelResource");
62
66
  function getOtelExportersConfig() {
63
67
  return {
64
68
  enableTracing: !!(process.env.OTEL_EXPORTER_OTLP_ENDPOINT || process.env.OTEL_EXPORTER_OTLP_TRACES_ENDPOINT),
@@ -66,6 +70,7 @@ function getOtelExportersConfig() {
66
70
  enableLogging: !!(process.env.OTEL_EXPORTER_OTLP_ENDPOINT || process.env.OTEL_EXPORTER_OTLP_LOGS_ENDPOINT)
67
71
  };
68
72
  }
73
+ __name(getOtelExportersConfig, "getOtelExportersConfig");
69
74
  function getOtelExporters(config = getOtelExportersConfig()) {
70
75
  const { enableTracing, enableMetrics, enableLogging } = config;
71
76
  return {
@@ -78,6 +83,7 @@ function getOtelExporters(config = getOtelExportersConfig()) {
78
83
  logRecordProcessors: enableLogging ? [new BatchLogRecordProcessor(new OTLPLogExporter())] : []
79
84
  };
80
85
  }
86
+ __name(getOtelExporters, "getOtelExporters");
81
87
  export {
82
88
  maybeSetOtelProviders
83
89
  };