@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
@@ -20,6 +20,19 @@ var __spreadValues = (a, b) => {
20
20
  return a;
21
21
  };
22
22
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
23
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
24
+ var __objRest = (source, exclude) => {
25
+ var target = {};
26
+ for (var prop in source)
27
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
28
+ target[prop] = source[prop];
29
+ if (source != null && __getOwnPropSymbols)
30
+ for (var prop of __getOwnPropSymbols(source)) {
31
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
32
+ target[prop] = source[prop];
33
+ }
34
+ return target;
35
+ };
23
36
  var __decorateClass = (decorators, target, key, kind) => {
24
37
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
25
38
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
@@ -37,7 +50,10 @@ import { Client } from "@google-cloud/vertexai/build/src/genai/client.js";
37
50
  import { isCompactedEvent } from "../events/compacted_event.js";
38
51
  import { experimental } from "../utils/experimental.js";
39
52
  import { logger } from "../utils/logger.js";
40
- import { getExpressModeApiKey } from "../utils/vertex_ai_utils.js";
53
+ import {
54
+ EXPRESS_MODE_UNSUPPORTED_MESSAGE,
55
+ getExpressModeApiKey
56
+ } from "../utils/vertex_ai_utils.js";
41
57
  import { partialCopy } from "../utils/partial_copy.js";
42
58
  import {
43
59
  BaseSessionService,
@@ -47,13 +63,17 @@ import { createSession } from "./session.js";
47
63
  const DEFAULT_MAX_ATTEMPTS = 30;
48
64
  const GRPC_NOT_FOUND = 5;
49
65
  const HTTP_NOT_FOUND = 404;
66
+ const HTTP_BAD_REQUEST = 400;
67
+ const WORKFLOW_CUSTOM_METADATA_KEY = "_workflow";
50
68
  function isVertexAiConnectionString(uri) {
51
69
  return (uri == null ? void 0 : uri.startsWith("vertexai://")) || false;
52
70
  }
71
+ __name(isVertexAiConnectionString, "isVertexAiConnectionString");
53
72
  function quoteFilterLiteral(value) {
54
73
  const escaped = value.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
55
74
  return '"'.concat(escaped, '"');
56
75
  }
76
+ __name(quoteFilterLiteral, "quoteFilterLiteral");
57
77
  let VertexAiSessionService = class extends BaseSessionService {
58
78
  constructor(options) {
59
79
  super();
@@ -65,16 +85,14 @@ let VertexAiSessionService = class extends BaseSessionService {
65
85
  this.location,
66
86
  options.expressModeApiKey
67
87
  );
68
- if (!options.sessions) {
69
- if (!this.expressModeApiKey && (!this.projectId || !this.location)) {
70
- throw new Error(
71
- "Either (Project ID and Location) or an expressModeApiKey is required."
72
- );
73
- }
74
- }
75
88
  if (options.sessions) {
76
89
  this.sessions = options.sessions;
77
90
  } else {
91
+ if (!this.projectId || !this.location) {
92
+ throw new Error(
93
+ this.expressModeApiKey ? EXPRESS_MODE_UNSUPPORTED_MESSAGE : "Project ID and Location are required."
94
+ );
95
+ }
78
96
  const client = new Client({
79
97
  project: this.projectId,
80
98
  location: this.location
@@ -98,19 +116,31 @@ let VertexAiSessionService = class extends BaseSessionService {
98
116
  }
99
117
  return match[3];
100
118
  }
119
+ /**
120
+ * Creates a session on Vertex AI Agent Engine.
121
+ *
122
+ * @throws if both `ttl` and `expireTime` are specified.
123
+ */
101
124
  async createSession({
102
125
  appName,
103
126
  userId,
104
127
  state,
105
- sessionId
128
+ sessionId,
129
+ ttl,
130
+ expireTime
106
131
  }) {
107
132
  var _a;
133
+ if (ttl != null && expireTime != null) {
134
+ throw new Error(
135
+ "Cannot specify both 'ttl' and 'expireTime' simultaneously."
136
+ );
137
+ }
108
138
  const reasoningEngineId = this.getReasoningEngineId(appName);
109
139
  const filteredState = state ? trimTempState(state) : void 0;
110
140
  let apiResponse = await this.sessions.createInternal({
111
141
  name: "reasoningEngines/".concat(reasoningEngineId),
112
142
  userId,
113
- config: __spreadValues(__spreadValues({}, filteredState ? { sessionState: filteredState } : {}), sessionId ? { sessionId } : {})
143
+ config: __spreadValues(__spreadValues(__spreadValues(__spreadValues({}, filteredState ? { sessionState: filteredState } : {}), sessionId ? { sessionId } : {}), ttl != null ? { ttl } : {}), expireTime != null ? { expireTime } : {})
114
144
  });
115
145
  const operationName = apiResponse.name;
116
146
  let attempts = 0;
@@ -195,7 +225,7 @@ let VertexAiSessionService = class extends BaseSessionService {
195
225
  return session;
196
226
  } catch (error) {
197
227
  const err = error;
198
- if (err.code === GRPC_NOT_FOUND || err.code === HTTP_NOT_FOUND) {
228
+ if (err.code === GRPC_NOT_FOUND || err.code === HTTP_NOT_FOUND || err.status === HTTP_NOT_FOUND) {
199
229
  return void 0;
200
230
  }
201
231
  logger.error("Error getting session from Vertex AI: ".concat(err.message));
@@ -311,12 +341,17 @@ let VertexAiSessionService = class extends BaseSessionService {
311
341
  if (event.usageMetadata) {
312
342
  customMetadata._usage_metadata = event.usageMetadata;
313
343
  }
344
+ const workflowMetadata = toWorkflowMetadata(event);
345
+ if (workflowMetadata) {
346
+ customMetadata[WORKFLOW_CUSTOM_METADATA_KEY] = workflowMetadata;
347
+ }
314
348
  const config = partialCopy(event, [
315
- "content",
316
- "actions",
317
349
  "errorCode",
318
350
  "errorMessage"
319
351
  ]);
352
+ config.actions = toApiActions(event.actions);
353
+ const content = dropUnsupportedPartFields(event.content);
354
+ config.content = content;
320
355
  config.eventMetadata = __spreadProps(__spreadValues({}, partialCopy(event, [
321
356
  "partial",
322
357
  "turnComplete",
@@ -327,7 +362,7 @@ let VertexAiSessionService = class extends BaseSessionService {
327
362
  ])), {
328
363
  customMetadata: Object.keys(customMetadata).length > 0 ? customMetadata : void 0
329
364
  });
330
- config.rawEvent = JSON.parse(JSON.stringify(event));
365
+ config.rawEvent = JSON.parse(JSON.stringify(__spreadProps(__spreadValues({}, event), { content })));
331
366
  const params = {
332
367
  name: "reasoningEngines/".concat(reasoningEngineId, "/sessions/").concat(session.id),
333
368
  author: event.author || "user",
@@ -338,27 +373,95 @@ let VertexAiSessionService = class extends BaseSessionService {
338
373
  try {
339
374
  await this.sessions.events.append(params);
340
375
  } catch (error) {
376
+ if (!isInvalidArgumentError(error)) {
377
+ throw error;
378
+ }
341
379
  logger.warn(
342
- "Failed to append event with rawEvent, falling back...",
380
+ "Failed to append event with rawEvent; retrying without it. The event will be reconstructed from its structured fields and customMetadata on read.",
343
381
  error
344
382
  );
345
383
  delete config.rawEvent;
346
- await this.sessions.events.append({
347
- name: "reasoningEngines/".concat(reasoningEngineId, "/sessions/").concat(session.id),
348
- author: event.author || "user",
349
- invocationId: event.invocationId || "inv-".concat(Date.now()),
350
- timestamp: new Date(event.timestamp).toISOString(),
351
- config
352
- });
384
+ await this.sessions.events.append(params);
353
385
  }
354
386
  return event;
355
387
  }
356
388
  };
389
+ __name(VertexAiSessionService, "VertexAiSessionService");
357
390
  VertexAiSessionService = __decorateClass([
358
391
  experimental
359
392
  ], VertexAiSessionService);
393
+ function toWorkflowMetadata(event) {
394
+ var _a, _b;
395
+ const metadata = {};
396
+ if (event.output !== void 0) {
397
+ metadata.output = event.output;
398
+ }
399
+ if (event.route !== void 0) {
400
+ metadata.route = event.route;
401
+ }
402
+ if (event.nodeInfo !== void 0) {
403
+ metadata.nodeInfo = event.nodeInfo;
404
+ }
405
+ if (event.isolationScope !== void 0) {
406
+ metadata.isolationScope = event.isolationScope;
407
+ }
408
+ if (((_a = event.actions) == null ? void 0 : _a.agentState) !== void 0) {
409
+ metadata.agentState = event.actions.agentState;
410
+ }
411
+ if (((_b = event.actions) == null ? void 0 : _b.endOfAgent) !== void 0) {
412
+ metadata.endOfAgent = event.actions.endOfAgent;
413
+ }
414
+ return Object.keys(metadata).length > 0 ? metadata : void 0;
415
+ }
416
+ __name(toWorkflowMetadata, "toWorkflowMetadata");
417
+ function applyWorkflowMetadata(event, metadata) {
418
+ if (metadata.output !== void 0) {
419
+ event.output = metadata.output;
420
+ }
421
+ if (metadata.route !== void 0) {
422
+ event.route = metadata.route;
423
+ }
424
+ if (metadata.nodeInfo !== void 0) {
425
+ event.nodeInfo = metadata.nodeInfo;
426
+ }
427
+ if (metadata.isolationScope !== void 0) {
428
+ event.isolationScope = metadata.isolationScope;
429
+ }
430
+ if (metadata.agentState !== void 0) {
431
+ event.actions.agentState = metadata.agentState;
432
+ }
433
+ if (metadata.endOfAgent !== void 0) {
434
+ event.actions.endOfAgent = metadata.endOfAgent;
435
+ }
436
+ }
437
+ __name(applyWorkflowMetadata, "applyWorkflowMetadata");
438
+ function toApiActions(actions) {
439
+ if (!actions) {
440
+ return void 0;
441
+ }
442
+ const _a = actions, { transferToAgent } = _a, rest = __objRest(_a, ["transferToAgent"]);
443
+ return __spreadValues(__spreadValues({}, rest), transferToAgent !== void 0 ? { transferAgent: transferToAgent } : {});
444
+ }
445
+ __name(toApiActions, "toApiActions");
446
+ function dropUnsupportedPartFields(content) {
447
+ if (!(content == null ? void 0 : content.parts)) {
448
+ return content;
449
+ }
450
+ return __spreadProps(__spreadValues({}, content), {
451
+ parts: content.parts.map((part) => {
452
+ const copy = __spreadValues({}, part);
453
+ delete copy.partMetadata;
454
+ return copy;
455
+ })
456
+ });
457
+ }
458
+ __name(dropUnsupportedPartFields, "dropUnsupportedPartFields");
459
+ function isInvalidArgumentError(error) {
460
+ return (error == null ? void 0 : error.status) === HTTP_BAD_REQUEST;
461
+ }
462
+ __name(isInvalidArgumentError, "isInvalidArgumentError");
360
463
  function _fromApiEvent(apiEventObj) {
361
- var _a, _b, _c;
464
+ var _a, _b, _c, _d;
362
465
  const rawEvent = apiEventObj.rawEvent;
363
466
  if (rawEvent) {
364
467
  const event2 = JSON.parse(JSON.stringify(rawEvent));
@@ -375,7 +478,9 @@ function _fromApiEvent(apiEventObj) {
375
478
  let customMetadata = eventMetadata.customMetadata;
376
479
  let compactionData = null;
377
480
  let usageMetadataData = null;
481
+ let workflowData;
378
482
  if (customMetadata) {
483
+ customMetadata = __spreadValues({}, customMetadata);
379
484
  if (customMetadata._compaction) {
380
485
  compactionData = customMetadata._compaction;
381
486
  delete customMetadata._compaction;
@@ -384,6 +489,10 @@ function _fromApiEvent(apiEventObj) {
384
489
  usageMetadataData = customMetadata._usage_metadata;
385
490
  delete customMetadata._usage_metadata;
386
491
  }
492
+ if (customMetadata[WORKFLOW_CUSTOM_METADATA_KEY]) {
493
+ workflowData = customMetadata[WORKFLOW_CUSTOM_METADATA_KEY];
494
+ delete customMetadata[WORKFLOW_CUSTOM_METADATA_KEY];
495
+ }
387
496
  if (Object.keys(customMetadata).length === 0) {
388
497
  customMetadata = void 0;
389
498
  }
@@ -394,18 +503,20 @@ function _fromApiEvent(apiEventObj) {
394
503
  requestedAuthConfigs: actions.requestedAuthConfigs || {},
395
504
  requestedToolConfirmations: actions["requestedToolConfirmations"] || {},
396
505
  skipSummarization: actions["skipSummarization"],
397
- transferToAgent: actions["transferAgent"],
506
+ // Earlier adk-js versions copied `event.actions` onto the request
507
+ // verbatim, so sessions they wrote store ADK's own `transferToAgent` key.
508
+ transferToAgent: (_b = actions["transferAgent"]) != null ? _b : actions["transferToAgent"],
398
509
  escalate: actions["escalate"],
399
510
  compaction: compactionData || void 0
400
511
  };
401
512
  const event = {
402
- id: ((_b = apiEventObj.name) == null ? void 0 : _b.split("/").pop()) || "",
513
+ id: ((_c = apiEventObj.name) == null ? void 0 : _c.split("/").pop()) || "",
403
514
  invocationId: apiEventObj.invocationId || "",
404
515
  author: apiEventObj.author,
405
516
  actions: eventActions,
406
517
  content: apiEventObj.content,
407
518
  timestamp: apiEventObj.timestamp ? new Date(apiEventObj.timestamp).getTime() : Date.now(),
408
- errorCode: (_c = apiEventObj.errorCode) == null ? void 0 : _c.toString(),
519
+ errorCode: (_d = apiEventObj.errorCode) == null ? void 0 : _d.toString(),
409
520
  errorMessage: apiEventObj.errorMessage,
410
521
  partial: eventMetadata["partial"],
411
522
  turnComplete: eventMetadata["turnComplete"],
@@ -413,6 +524,7 @@ function _fromApiEvent(apiEventObj) {
413
524
  branch: eventMetadata["branch"],
414
525
  customMetadata,
415
526
  longRunningToolIds: eventMetadata["longRunningToolIds"],
527
+ groundingMetadata: eventMetadata["groundingMetadata"],
416
528
  usageMetadata: usageMetadataData
417
529
  };
418
530
  if (compactionData) {
@@ -421,8 +533,12 @@ function _fromApiEvent(apiEventObj) {
421
533
  event.endTime = compactionData.endTime;
422
534
  event.compactedContent = compactionData.compactedContent;
423
535
  }
536
+ if (workflowData) {
537
+ applyWorkflowMetadata(event, workflowData);
538
+ }
424
539
  return event;
425
540
  }
541
+ __name(_fromApiEvent, "_fromApiEvent");
426
542
  export {
427
543
  VertexAiSessionService,
428
544
  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);
@@ -19,6 +19,7 @@ var __spreadValues = (a, b) => {
19
19
  return a;
20
20
  };
21
21
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
22
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
22
23
  /**
23
24
  * @license
24
25
  * Copyright 2026 Google LLC
@@ -26,6 +27,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
26
27
  */
27
28
  import AdmZip from "adm-zip";
28
29
  import yaml from "js-yaml";
30
+ import { isUtf8 } from "node:buffer";
29
31
  import * as fs from "node:fs/promises";
30
32
  import * as path from "node:path";
31
33
  import { logger } from "../utils/logger.js";
@@ -37,6 +39,9 @@ const ALLOWED_FRONTMATTER_KEYS = /* @__PURE__ */ new Set([
37
39
  "description",
38
40
  "license",
39
41
  "allowed-tools",
42
+ // Camel-case alias: FrontmatterSchema's preprocessor derives `allowedTools`
43
+ // from `allowed-tools`, and `.loose()` passes either spelling through.
44
+ "allowedTools",
40
45
  "metadata",
41
46
  "compatibility"
42
47
  ]);
@@ -62,6 +67,10 @@ const IGNORED_EXTENSIONS = /* @__PURE__ */ new Set([
62
67
  ".tsbuildinfo",
63
68
  ".DS_Store"
64
69
  ]);
70
+ function decodeSkillFileContent(data) {
71
+ return isUtf8(data) ? data.toString("utf-8") : data;
72
+ }
73
+ __name(decodeSkillFileContent, "decodeSkillFileContent");
65
74
  async function loadDir(directoryPath) {
66
75
  const files = {};
67
76
  async function walk(dir) {
@@ -79,14 +88,11 @@ async function loadDir(directoryPath) {
79
88
  continue;
80
89
  }
81
90
  const fileData = await fs.readFile(fullPath);
82
- try {
83
- files[relativePath] = fileData.toString("utf-8");
84
- } catch (_e) {
85
- files[relativePath] = fileData;
86
- }
91
+ files[relativePath] = decodeSkillFileContent(fileData);
87
92
  }
88
93
  }
89
94
  }
95
+ __name(walk, "walk");
90
96
  try {
91
97
  const stats = await fs.stat(directoryPath);
92
98
  if (stats.isDirectory()) {
@@ -99,7 +105,8 @@ async function loadDir(directoryPath) {
99
105
  }
100
106
  return files;
101
107
  }
102
- function parseSkillMdContent(content) {
108
+ __name(loadDir, "loadDir");
109
+ function parseFrontmatterYaml(content) {
103
110
  if (!content.startsWith("---")) {
104
111
  throw new Error("SKILL.md must start with YAML frontmatter (---)");
105
112
  }
@@ -111,15 +118,39 @@ function parseSkillMdContent(content) {
111
118
  const body = parts.filter((_, i) => i >= 2).join("---").trim();
112
119
  try {
113
120
  const parsed = yaml.load(frontmatterStr);
114
- if (typeof parsed !== "object" || parsed === null) {
121
+ if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
115
122
  throw new Error("SKILL.md frontmatter must be a YAML mapping");
116
123
  }
117
- const frontmatter = FrontmatterSchema.parse(parsed);
118
- return { frontmatter, body };
124
+ return { raw: parsed, body };
125
+ } catch (e) {
126
+ throw new Error("Invalid YAML in frontmatter: ".concat(e.message));
127
+ }
128
+ }
129
+ __name(parseFrontmatterYaml, "parseFrontmatterYaml");
130
+ function validateFrontmatter(raw) {
131
+ try {
132
+ return FrontmatterSchema.parse(raw);
119
133
  } catch (e) {
120
134
  throw new Error("Invalid YAML in frontmatter: ".concat(e.message));
121
135
  }
122
136
  }
137
+ __name(validateFrontmatter, "validateFrontmatter");
138
+ function parseSkillMdContent(content) {
139
+ const { raw, body } = parseFrontmatterYaml(content);
140
+ return { frontmatter: validateFrontmatter(raw), body };
141
+ }
142
+ __name(parseSkillMdContent, "parseSkillMdContent");
143
+ function isDangerousZipEntryName(entryName) {
144
+ if (path.posix.isAbsolute(entryName) || path.win32.isAbsolute(entryName)) {
145
+ return true;
146
+ }
147
+ return entryName.split(/[/\\]/).some((segment) => segment === "..");
148
+ }
149
+ __name(isDangerousZipEntryName, "isDangerousZipEntryName");
150
+ function isBareSkillName(name) {
151
+ return name !== "." && name !== ".." && path.basename(name) === name;
152
+ }
153
+ __name(isBareSkillName, "isBareSkillName");
123
154
  async function loadSkillFromDir(skillDir) {
124
155
  const resolvedDir = path.resolve(skillDir);
125
156
  const skill = await loadSkillFile(skillDir);
@@ -142,6 +173,7 @@ async function loadSkillFromDir(skillDir) {
142
173
  resources
143
174
  });
144
175
  }
176
+ __name(loadSkillFromDir, "loadSkillFromDir");
145
177
  async function validateSkillDir(skillDir) {
146
178
  const problems = [];
147
179
  const resolvedDir = path.resolve(skillDir);
@@ -170,6 +202,7 @@ async function validateSkillDir(skillDir) {
170
202
  }
171
203
  return problems;
172
204
  }
205
+ __name(validateSkillDir, "validateSkillDir");
173
206
  async function loadSkillFile(skillDir) {
174
207
  const resolvedDir = path.resolve(skillDir);
175
208
  let skillMdPath = "";
@@ -210,6 +243,7 @@ async function loadSkillFile(skillDir) {
210
243
  instructions: body
211
244
  };
212
245
  }
246
+ __name(loadSkillFile, "loadSkillFile");
213
247
  async function loadAllSkillsInDir(skillsBasePath) {
214
248
  const resolvedPath = path.resolve(skillsBasePath);
215
249
  const skills = {};
@@ -247,6 +281,7 @@ async function loadAllSkillsInDir(skillsBasePath) {
247
281
  }
248
282
  }
249
283
  }
284
+ __name(scanDir, "scanDir");
250
285
  try {
251
286
  await fs.readdir(resolvedPath);
252
287
  await scanDir(resolvedPath);
@@ -255,9 +290,15 @@ async function loadAllSkillsInDir(skillsBasePath) {
255
290
  }
256
291
  return skills;
257
292
  }
293
+ __name(loadAllSkillsInDir, "loadAllSkillsInDir");
258
294
  function loadSkillFromZipBuffer(zipBuffer) {
259
295
  const zip = new AdmZip(zipBuffer);
260
296
  const entries = zip.getEntries();
297
+ for (const entry of entries) {
298
+ if (isDangerousZipEntryName(entry.entryName)) {
299
+ throw new Error("Dangerous zip entry ignored: ".concat(entry.entryName));
300
+ }
301
+ }
261
302
  let skillMdContent = "";
262
303
  for (const entry of entries) {
263
304
  if (entry.isDirectory) continue;
@@ -269,8 +310,15 @@ function loadSkillFromZipBuffer(zipBuffer) {
269
310
  if (!skillMdContent) {
270
311
  throw new Error("SKILL.md not found in zipped filesystem.");
271
312
  }
272
- const { frontmatter: parsed, body } = parseSkillMdContent(skillMdContent);
273
- const frontmatter = FrontmatterSchema.parse(parsed);
313
+ const { raw, body } = parseFrontmatterYaml(skillMdContent);
314
+ const skillName = raw["name"];
315
+ if (!skillName) {
316
+ throw new Error("SKILL.md frontmatter must contain 'name'");
317
+ }
318
+ if (typeof skillName !== "string" || !isBareSkillName(skillName)) {
319
+ throw new Error("Invalid skill name in SKILL.md: ".concat(String(skillName)));
320
+ }
321
+ const frontmatter = validateFrontmatter(raw);
274
322
  const references = {};
275
323
  const assets = {};
276
324
  const scripts = {};
@@ -284,15 +332,12 @@ function loadSkillFromZipBuffer(zipBuffer) {
284
332
  const relativePath = entry.entryName.substring(normPrefix.length);
285
333
  if (!relativePath) continue;
286
334
  const data = entry.getData();
287
- try {
288
- res[relativePath] = data.toString("utf-8");
289
- } catch (_e) {
290
- res[relativePath] = data;
291
- }
335
+ res[relativePath] = decodeSkillFileContent(data);
292
336
  }
293
337
  }
294
338
  return res;
295
339
  }
340
+ __name(loadZipDir, "loadZipDir");
296
341
  const refFiles = loadZipDir("references");
297
342
  for (const [key, val] of Object.entries(refFiles)) {
298
343
  references[key] = val;
@@ -317,6 +362,7 @@ function loadSkillFromZipBuffer(zipBuffer) {
317
362
  }
318
363
  };
319
364
  }
365
+ __name(loadSkillFromZipBuffer, "loadSkillFromZipBuffer");
320
366
  export {
321
367
  loadAllSkillsInDir,
322
368
  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
  };