@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
@@ -9,6 +9,7 @@ var __defProp = Object.defineProperty;
9
9
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10
10
  var __getOwnPropNames = Object.getOwnPropertyNames;
11
11
  var __hasOwnProp = Object.prototype.hasOwnProperty;
12
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
12
13
  var __export = (target, all) => {
13
14
  for (var name in all)
14
15
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -53,13 +54,17 @@ var import_session = require("./session.js");
53
54
  const DEFAULT_MAX_ATTEMPTS = 30;
54
55
  const GRPC_NOT_FOUND = 5;
55
56
  const HTTP_NOT_FOUND = 404;
57
+ const HTTP_BAD_REQUEST = 400;
58
+ const WORKFLOW_CUSTOM_METADATA_KEY = "_workflow";
56
59
  function isVertexAiConnectionString(uri) {
57
60
  return (uri == null ? void 0 : uri.startsWith("vertexai://")) || false;
58
61
  }
62
+ __name(isVertexAiConnectionString, "isVertexAiConnectionString");
59
63
  function quoteFilterLiteral(value) {
60
64
  const escaped = value.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
61
65
  return `"${escaped}"`;
62
66
  }
67
+ __name(quoteFilterLiteral, "quoteFilterLiteral");
63
68
  let VertexAiSessionService = class extends import_base_session_service.BaseSessionService {
64
69
  constructor(options) {
65
70
  super();
@@ -71,16 +76,14 @@ let VertexAiSessionService = class extends import_base_session_service.BaseSessi
71
76
  this.location,
72
77
  options.expressModeApiKey
73
78
  );
74
- if (!options.sessions) {
75
- if (!this.expressModeApiKey && (!this.projectId || !this.location)) {
76
- throw new Error(
77
- "Either (Project ID and Location) or an expressModeApiKey is required."
78
- );
79
- }
80
- }
81
79
  if (options.sessions) {
82
80
  this.sessions = options.sessions;
83
81
  } else {
82
+ if (!this.projectId || !this.location) {
83
+ throw new Error(
84
+ this.expressModeApiKey ? import_vertex_ai_utils.EXPRESS_MODE_UNSUPPORTED_MESSAGE : "Project ID and Location are required."
85
+ );
86
+ }
84
87
  const client = new import_client.Client({
85
88
  project: this.projectId,
86
89
  location: this.location
@@ -104,13 +107,25 @@ let VertexAiSessionService = class extends import_base_session_service.BaseSessi
104
107
  }
105
108
  return match[3];
106
109
  }
110
+ /**
111
+ * Creates a session on Vertex AI Agent Engine.
112
+ *
113
+ * @throws if both `ttl` and `expireTime` are specified.
114
+ */
107
115
  async createSession({
108
116
  appName,
109
117
  userId,
110
118
  state,
111
- sessionId
119
+ sessionId,
120
+ ttl,
121
+ expireTime
112
122
  }) {
113
123
  var _a;
124
+ if (ttl != null && expireTime != null) {
125
+ throw new Error(
126
+ "Cannot specify both 'ttl' and 'expireTime' simultaneously."
127
+ );
128
+ }
114
129
  const reasoningEngineId = this.getReasoningEngineId(appName);
115
130
  const filteredState = state ? (0, import_base_session_service.trimTempState)(state) : void 0;
116
131
  let apiResponse = await this.sessions.createInternal({
@@ -118,7 +133,9 @@ let VertexAiSessionService = class extends import_base_session_service.BaseSessi
118
133
  userId,
119
134
  config: {
120
135
  ...filteredState ? { sessionState: filteredState } : {},
121
- ...sessionId ? { sessionId } : {}
136
+ ...sessionId ? { sessionId } : {},
137
+ ...ttl != null ? { ttl } : {},
138
+ ...expireTime != null ? { expireTime } : {}
122
139
  }
123
140
  });
124
141
  const operationName = apiResponse.name;
@@ -204,7 +221,7 @@ let VertexAiSessionService = class extends import_base_session_service.BaseSessi
204
221
  return session;
205
222
  } catch (error) {
206
223
  const err = error;
207
- if (err.code === GRPC_NOT_FOUND || err.code === HTTP_NOT_FOUND) {
224
+ if (err.code === GRPC_NOT_FOUND || err.code === HTTP_NOT_FOUND || err.status === HTTP_NOT_FOUND) {
208
225
  return void 0;
209
226
  }
210
227
  import_logger.logger.error(`Error getting session from Vertex AI: ${err.message}`);
@@ -323,12 +340,17 @@ let VertexAiSessionService = class extends import_base_session_service.BaseSessi
323
340
  if (event.usageMetadata) {
324
341
  customMetadata._usage_metadata = event.usageMetadata;
325
342
  }
343
+ const workflowMetadata = toWorkflowMetadata(event);
344
+ if (workflowMetadata) {
345
+ customMetadata[WORKFLOW_CUSTOM_METADATA_KEY] = workflowMetadata;
346
+ }
326
347
  const config = (0, import_partial_copy.partialCopy)(event, [
327
- "content",
328
- "actions",
329
348
  "errorCode",
330
349
  "errorMessage"
331
350
  ]);
351
+ config.actions = toApiActions(event.actions);
352
+ const content = dropUnsupportedPartFields(event.content);
353
+ config.content = content;
332
354
  config.eventMetadata = {
333
355
  ...(0, import_partial_copy.partialCopy)(event, [
334
356
  "partial",
@@ -340,7 +362,7 @@ let VertexAiSessionService = class extends import_base_session_service.BaseSessi
340
362
  ]),
341
363
  customMetadata: Object.keys(customMetadata).length > 0 ? customMetadata : void 0
342
364
  };
343
- config.rawEvent = JSON.parse(JSON.stringify(event));
365
+ config.rawEvent = JSON.parse(JSON.stringify({ ...event, content }));
344
366
  const params = {
345
367
  name: `reasoningEngines/${reasoningEngineId}/sessions/${session.id}`,
346
368
  author: event.author || "user",
@@ -351,27 +373,99 @@ let VertexAiSessionService = class extends import_base_session_service.BaseSessi
351
373
  try {
352
374
  await this.sessions.events.append(params);
353
375
  } catch (error) {
376
+ if (!isInvalidArgumentError(error)) {
377
+ throw error;
378
+ }
354
379
  import_logger.logger.warn(
355
- "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.",
356
381
  error
357
382
  );
358
383
  delete config.rawEvent;
359
- await this.sessions.events.append({
360
- name: `reasoningEngines/${reasoningEngineId}/sessions/${session.id}`,
361
- author: event.author || "user",
362
- invocationId: event.invocationId || `inv-${Date.now()}`,
363
- timestamp: new Date(event.timestamp).toISOString(),
364
- config
365
- });
384
+ await this.sessions.events.append(params);
366
385
  }
367
386
  return event;
368
387
  }
369
388
  };
389
+ __name(VertexAiSessionService, "VertexAiSessionService");
370
390
  VertexAiSessionService = __decorateClass([
371
391
  import_experimental.experimental
372
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 { transferToAgent, ...rest } = actions;
443
+ return {
444
+ ...rest,
445
+ ...transferToAgent !== void 0 ? { transferAgent: transferToAgent } : {}
446
+ };
447
+ }
448
+ __name(toApiActions, "toApiActions");
449
+ function dropUnsupportedPartFields(content) {
450
+ if (!(content == null ? void 0 : content.parts)) {
451
+ return content;
452
+ }
453
+ return {
454
+ ...content,
455
+ parts: content.parts.map((part) => {
456
+ const copy = { ...part };
457
+ delete copy.partMetadata;
458
+ return copy;
459
+ })
460
+ };
461
+ }
462
+ __name(dropUnsupportedPartFields, "dropUnsupportedPartFields");
463
+ function isInvalidArgumentError(error) {
464
+ return (error == null ? void 0 : error.status) === HTTP_BAD_REQUEST;
465
+ }
466
+ __name(isInvalidArgumentError, "isInvalidArgumentError");
373
467
  function _fromApiEvent(apiEventObj) {
374
- var _a, _b, _c;
468
+ var _a, _b, _c, _d;
375
469
  const rawEvent = apiEventObj.rawEvent;
376
470
  if (rawEvent) {
377
471
  const event2 = JSON.parse(JSON.stringify(rawEvent));
@@ -388,7 +482,9 @@ function _fromApiEvent(apiEventObj) {
388
482
  let customMetadata = eventMetadata.customMetadata;
389
483
  let compactionData = null;
390
484
  let usageMetadataData = null;
485
+ let workflowData;
391
486
  if (customMetadata) {
487
+ customMetadata = { ...customMetadata };
392
488
  if (customMetadata._compaction) {
393
489
  compactionData = customMetadata._compaction;
394
490
  delete customMetadata._compaction;
@@ -397,6 +493,10 @@ function _fromApiEvent(apiEventObj) {
397
493
  usageMetadataData = customMetadata._usage_metadata;
398
494
  delete customMetadata._usage_metadata;
399
495
  }
496
+ if (customMetadata[WORKFLOW_CUSTOM_METADATA_KEY]) {
497
+ workflowData = customMetadata[WORKFLOW_CUSTOM_METADATA_KEY];
498
+ delete customMetadata[WORKFLOW_CUSTOM_METADATA_KEY];
499
+ }
400
500
  if (Object.keys(customMetadata).length === 0) {
401
501
  customMetadata = void 0;
402
502
  }
@@ -407,18 +507,20 @@ function _fromApiEvent(apiEventObj) {
407
507
  requestedAuthConfigs: actions.requestedAuthConfigs || {},
408
508
  requestedToolConfirmations: actions["requestedToolConfirmations"] || {},
409
509
  skipSummarization: actions["skipSummarization"],
410
- transferToAgent: actions["transferAgent"],
510
+ // Earlier adk-js versions copied `event.actions` onto the request
511
+ // verbatim, so sessions they wrote store ADK's own `transferToAgent` key.
512
+ transferToAgent: (_b = actions["transferAgent"]) != null ? _b : actions["transferToAgent"],
411
513
  escalate: actions["escalate"],
412
514
  compaction: compactionData || void 0
413
515
  };
414
516
  const event = {
415
- id: ((_b = apiEventObj.name) == null ? void 0 : _b.split("/").pop()) || "",
517
+ id: ((_c = apiEventObj.name) == null ? void 0 : _c.split("/").pop()) || "",
416
518
  invocationId: apiEventObj.invocationId || "",
417
519
  author: apiEventObj.author,
418
520
  actions: eventActions,
419
521
  content: apiEventObj.content,
420
522
  timestamp: apiEventObj.timestamp ? new Date(apiEventObj.timestamp).getTime() : Date.now(),
421
- errorCode: (_c = apiEventObj.errorCode) == null ? void 0 : _c.toString(),
523
+ errorCode: (_d = apiEventObj.errorCode) == null ? void 0 : _d.toString(),
422
524
  errorMessage: apiEventObj.errorMessage,
423
525
  partial: eventMetadata["partial"],
424
526
  turnComplete: eventMetadata["turnComplete"],
@@ -426,6 +528,7 @@ function _fromApiEvent(apiEventObj) {
426
528
  branch: eventMetadata["branch"],
427
529
  customMetadata,
428
530
  longRunningToolIds: eventMetadata["longRunningToolIds"],
531
+ groundingMetadata: eventMetadata["groundingMetadata"],
429
532
  usageMetadata: usageMetadataData
430
533
  };
431
534
  if (compactionData) {
@@ -434,8 +537,12 @@ function _fromApiEvent(apiEventObj) {
434
537
  event.endTime = compactionData.endTime;
435
538
  event.compactedContent = compactionData.compactedContent;
436
539
  }
540
+ if (workflowData) {
541
+ applyWorkflowMetadata(event, workflowData);
542
+ }
437
543
  return event;
438
544
  }
545
+ __name(_fromApiEvent, "_fromApiEvent");
439
546
  // Annotate the CommonJS export names for ESM import in node:
440
547
  0 && (module.exports = {
441
548
  VertexAiSessionService,
@@ -9,6 +9,7 @@ var __defProp = Object.defineProperty;
9
9
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10
10
  var __getOwnPropNames = Object.getOwnPropertyNames;
11
11
  var __hasOwnProp = Object.prototype.hasOwnProperty;
12
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
12
13
  var __export = (target, all) => {
13
14
  for (var name in all)
14
15
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -95,6 +96,7 @@ let GCPSkillRegistry = class {
95
96
  return results;
96
97
  }
97
98
  };
99
+ __name(GCPSkillRegistry, "GCPSkillRegistry");
98
100
  GCPSkillRegistry = __decorateClass([
99
101
  import_experimental.experimental
100
102
  ], GCPSkillRegistry);
@@ -11,6 +11,7 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
11
11
  var __getOwnPropNames = Object.getOwnPropertyNames;
12
12
  var __getProtoOf = Object.getPrototypeOf;
13
13
  var __hasOwnProp = Object.prototype.hasOwnProperty;
14
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
14
15
  var __export = (target, all) => {
15
16
  for (var name in all)
16
17
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -43,6 +44,7 @@ __export(loader_exports, {
43
44
  module.exports = __toCommonJS(loader_exports);
44
45
  var import_adm_zip = __toESM(require("adm-zip"), 1);
45
46
  var import_js_yaml = __toESM(require("js-yaml"), 1);
47
+ var import_node_buffer = require("node:buffer");
46
48
  var fs = __toESM(require("node:fs/promises"), 1);
47
49
  var path = __toESM(require("node:path"), 1);
48
50
  var import_logger = require("../utils/logger.js");
@@ -57,6 +59,9 @@ const ALLOWED_FRONTMATTER_KEYS = /* @__PURE__ */ new Set([
57
59
  "description",
58
60
  "license",
59
61
  "allowed-tools",
62
+ // Camel-case alias: FrontmatterSchema's preprocessor derives `allowedTools`
63
+ // from `allowed-tools`, and `.loose()` passes either spelling through.
64
+ "allowedTools",
60
65
  "metadata",
61
66
  "compatibility"
62
67
  ]);
@@ -82,6 +87,10 @@ const IGNORED_EXTENSIONS = /* @__PURE__ */ new Set([
82
87
  ".tsbuildinfo",
83
88
  ".DS_Store"
84
89
  ]);
90
+ function decodeSkillFileContent(data) {
91
+ return (0, import_node_buffer.isUtf8)(data) ? data.toString("utf-8") : data;
92
+ }
93
+ __name(decodeSkillFileContent, "decodeSkillFileContent");
85
94
  async function loadDir(directoryPath) {
86
95
  const files = {};
87
96
  async function walk(dir) {
@@ -99,14 +108,11 @@ async function loadDir(directoryPath) {
99
108
  continue;
100
109
  }
101
110
  const fileData = await fs.readFile(fullPath);
102
- try {
103
- files[relativePath] = fileData.toString("utf-8");
104
- } catch (_e) {
105
- files[relativePath] = fileData;
106
- }
111
+ files[relativePath] = decodeSkillFileContent(fileData);
107
112
  }
108
113
  }
109
114
  }
115
+ __name(walk, "walk");
110
116
  try {
111
117
  const stats = await fs.stat(directoryPath);
112
118
  if (stats.isDirectory()) {
@@ -119,7 +125,8 @@ async function loadDir(directoryPath) {
119
125
  }
120
126
  return files;
121
127
  }
122
- function parseSkillMdContent(content) {
128
+ __name(loadDir, "loadDir");
129
+ function parseFrontmatterYaml(content) {
123
130
  if (!content.startsWith("---")) {
124
131
  throw new Error("SKILL.md must start with YAML frontmatter (---)");
125
132
  }
@@ -131,15 +138,39 @@ function parseSkillMdContent(content) {
131
138
  const body = parts.filter((_, i) => i >= 2).join("---").trim();
132
139
  try {
133
140
  const parsed = import_js_yaml.default.load(frontmatterStr);
134
- if (typeof parsed !== "object" || parsed === null) {
141
+ if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
135
142
  throw new Error("SKILL.md frontmatter must be a YAML mapping");
136
143
  }
137
- const frontmatter = import_skill.FrontmatterSchema.parse(parsed);
138
- return { frontmatter, body };
144
+ return { raw: parsed, body };
145
+ } catch (e) {
146
+ throw new Error(`Invalid YAML in frontmatter: ${e.message}`);
147
+ }
148
+ }
149
+ __name(parseFrontmatterYaml, "parseFrontmatterYaml");
150
+ function validateFrontmatter(raw) {
151
+ try {
152
+ return import_skill.FrontmatterSchema.parse(raw);
139
153
  } catch (e) {
140
154
  throw new Error(`Invalid YAML in frontmatter: ${e.message}`);
141
155
  }
142
156
  }
157
+ __name(validateFrontmatter, "validateFrontmatter");
158
+ function parseSkillMdContent(content) {
159
+ const { raw, body } = parseFrontmatterYaml(content);
160
+ return { frontmatter: validateFrontmatter(raw), body };
161
+ }
162
+ __name(parseSkillMdContent, "parseSkillMdContent");
163
+ function isDangerousZipEntryName(entryName) {
164
+ if (path.posix.isAbsolute(entryName) || path.win32.isAbsolute(entryName)) {
165
+ return true;
166
+ }
167
+ return entryName.split(/[/\\]/).some((segment) => segment === "..");
168
+ }
169
+ __name(isDangerousZipEntryName, "isDangerousZipEntryName");
170
+ function isBareSkillName(name) {
171
+ return name !== "." && name !== ".." && path.basename(name) === name;
172
+ }
173
+ __name(isBareSkillName, "isBareSkillName");
143
174
  async function loadSkillFromDir(skillDir) {
144
175
  const resolvedDir = path.resolve(skillDir);
145
176
  const skill = await loadSkillFile(skillDir);
@@ -163,6 +194,7 @@ async function loadSkillFromDir(skillDir) {
163
194
  resources
164
195
  };
165
196
  }
197
+ __name(loadSkillFromDir, "loadSkillFromDir");
166
198
  async function validateSkillDir(skillDir) {
167
199
  const problems = [];
168
200
  const resolvedDir = path.resolve(skillDir);
@@ -191,6 +223,7 @@ async function validateSkillDir(skillDir) {
191
223
  }
192
224
  return problems;
193
225
  }
226
+ __name(validateSkillDir, "validateSkillDir");
194
227
  async function loadSkillFile(skillDir) {
195
228
  const resolvedDir = path.resolve(skillDir);
196
229
  let skillMdPath = "";
@@ -231,6 +264,7 @@ async function loadSkillFile(skillDir) {
231
264
  instructions: body
232
265
  };
233
266
  }
267
+ __name(loadSkillFile, "loadSkillFile");
234
268
  async function loadAllSkillsInDir(skillsBasePath) {
235
269
  const resolvedPath = path.resolve(skillsBasePath);
236
270
  const skills = {};
@@ -268,6 +302,7 @@ async function loadAllSkillsInDir(skillsBasePath) {
268
302
  }
269
303
  }
270
304
  }
305
+ __name(scanDir, "scanDir");
271
306
  try {
272
307
  await fs.readdir(resolvedPath);
273
308
  await scanDir(resolvedPath);
@@ -276,9 +311,15 @@ async function loadAllSkillsInDir(skillsBasePath) {
276
311
  }
277
312
  return skills;
278
313
  }
314
+ __name(loadAllSkillsInDir, "loadAllSkillsInDir");
279
315
  function loadSkillFromZipBuffer(zipBuffer) {
280
316
  const zip = new import_adm_zip.default(zipBuffer);
281
317
  const entries = zip.getEntries();
318
+ for (const entry of entries) {
319
+ if (isDangerousZipEntryName(entry.entryName)) {
320
+ throw new Error(`Dangerous zip entry ignored: ${entry.entryName}`);
321
+ }
322
+ }
282
323
  let skillMdContent = "";
283
324
  for (const entry of entries) {
284
325
  if (entry.isDirectory) continue;
@@ -290,8 +331,15 @@ function loadSkillFromZipBuffer(zipBuffer) {
290
331
  if (!skillMdContent) {
291
332
  throw new Error("SKILL.md not found in zipped filesystem.");
292
333
  }
293
- const { frontmatter: parsed, body } = parseSkillMdContent(skillMdContent);
294
- const frontmatter = import_skill.FrontmatterSchema.parse(parsed);
334
+ const { raw, body } = parseFrontmatterYaml(skillMdContent);
335
+ const skillName = raw["name"];
336
+ if (!skillName) {
337
+ throw new Error("SKILL.md frontmatter must contain 'name'");
338
+ }
339
+ if (typeof skillName !== "string" || !isBareSkillName(skillName)) {
340
+ throw new Error(`Invalid skill name in SKILL.md: ${String(skillName)}`);
341
+ }
342
+ const frontmatter = validateFrontmatter(raw);
295
343
  const references = {};
296
344
  const assets = {};
297
345
  const scripts = {};
@@ -305,15 +353,12 @@ function loadSkillFromZipBuffer(zipBuffer) {
305
353
  const relativePath = entry.entryName.substring(normPrefix.length);
306
354
  if (!relativePath) continue;
307
355
  const data = entry.getData();
308
- try {
309
- res[relativePath] = data.toString("utf-8");
310
- } catch (_e) {
311
- res[relativePath] = data;
312
- }
356
+ res[relativePath] = decodeSkillFileContent(data);
313
357
  }
314
358
  }
315
359
  return res;
316
360
  }
361
+ __name(loadZipDir, "loadZipDir");
317
362
  const refFiles = loadZipDir("references");
318
363
  for (const [key, val] of Object.entries(refFiles)) {
319
364
  references[key] = val;
@@ -338,6 +383,7 @@ function loadSkillFromZipBuffer(zipBuffer) {
338
383
  }
339
384
  };
340
385
  }
386
+ __name(loadSkillFromZipBuffer, "loadSkillFromZipBuffer");
341
387
  // Annotate the CommonJS export names for ESM import in node:
342
388
  0 && (module.exports = {
343
389
  loadAllSkillsInDir,
@@ -9,6 +9,7 @@ var __defProp = Object.defineProperty;
9
9
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10
10
  var __getOwnPropNames = Object.getOwnPropertyNames;
11
11
  var __hasOwnProp = Object.prototype.hasOwnProperty;
12
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
12
13
  var __export = (target, all) => {
13
14
  for (var name in all)
14
15
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -35,6 +36,7 @@ module.exports = __toCommonJS(prompt_exports);
35
36
  function escapeHtml(unsafe) {
36
37
  return unsafe.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#039;");
37
38
  }
39
+ __name(escapeHtml, "escapeHtml");
38
40
  function formatSkillsAsXml(skills) {
39
41
  if (!skills || skills.length === 0) {
40
42
  return "<available_skills>\n</available_skills>";
@@ -52,6 +54,7 @@ function formatSkillsAsXml(skills) {
52
54
  lines.push("</available_skills>");
53
55
  return lines.join("\n");
54
56
  }
57
+ __name(formatSkillsAsXml, "formatSkillsAsXml");
55
58
  // Annotate the CommonJS export names for ESM import in node:
56
59
  0 && (module.exports = {
57
60
  formatSkillsAsXml
@@ -5,10 +5,13 @@
5
5
  */
6
6
 
7
7
  "use strict";
8
+ var __create = Object.create;
8
9
  var __defProp = Object.defineProperty;
9
10
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10
11
  var __getOwnPropNames = Object.getOwnPropertyNames;
12
+ var __getProtoOf = Object.getPrototypeOf;
11
13
  var __hasOwnProp = Object.prototype.hasOwnProperty;
14
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
12
15
  var __export = (target, all) => {
13
16
  for (var name in all)
14
17
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -21,6 +24,14 @@ var __copyProps = (to, from, except, desc) => {
21
24
  }
22
25
  return to;
23
26
  };
27
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
28
+ // If the importer is in node compatibility mode or this is not an ESM
29
+ // file that has been converted to a CommonJS file using a Babel-
30
+ // compatible transform (i.e. "__esModule" has not been set), then set
31
+ // "default" to the CommonJS "module.exports" for node compatibility.
32
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
33
+ mod
34
+ ));
24
35
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
36
  var google_cloud_exports = {};
26
37
  __export(google_cloud_exports, {
@@ -28,14 +39,13 @@ __export(google_cloud_exports, {
28
39
  getGcpResource: () => getGcpResource
29
40
  });
30
41
  module.exports = __toCommonJS(google_cloud_exports);
31
- var import_opentelemetry_cloud_monitoring_exporter = require("@google-cloud/opentelemetry-cloud-monitoring-exporter");
32
- var import_opentelemetry_cloud_trace_exporter = require("@google-cloud/opentelemetry-cloud-trace-exporter");
33
42
  var import_resource_detector_gcp = require("@opentelemetry/resource-detector-gcp");
34
43
  var import_resources = require("@opentelemetry/resources");
35
44
  var import_sdk_metrics = require("@opentelemetry/sdk-metrics");
36
45
  var import_sdk_trace_base = require("@opentelemetry/sdk-trace-base");
37
46
  var import_google_auth_library = require("google-auth-library");
38
47
  var import_logger = require("../utils/logger.js");
48
+ var import_optional_peer = require("../utils/optional_peer.js");
39
49
  /**
40
50
  * @license
41
51
  * Copyright 2025 Google LLC
@@ -51,6 +61,32 @@ async function getGcpProjectId() {
51
61
  return void 0;
52
62
  }
53
63
  }
64
+ __name(getGcpProjectId, "getGcpProjectId");
65
+ async function createCloudTraceProcessor(projectId) {
66
+ const { TraceExporter } = await (0, import_optional_peer.loadOptionalPeer)(
67
+ {
68
+ packageName: "@google-cloud/opentelemetry-cloud-trace-exporter",
69
+ feature: "getGcpExporters({enableTracing: true})"
70
+ },
71
+ () => Promise.resolve().then(() => __toESM(require("@google-cloud/opentelemetry-cloud-trace-exporter"), 1))
72
+ );
73
+ return new import_sdk_trace_base.BatchSpanProcessor(new TraceExporter({ projectId }));
74
+ }
75
+ __name(createCloudTraceProcessor, "createCloudTraceProcessor");
76
+ async function createCloudMetricReader(projectId) {
77
+ const { MetricExporter } = await (0, import_optional_peer.loadOptionalPeer)(
78
+ {
79
+ packageName: "@google-cloud/opentelemetry-cloud-monitoring-exporter",
80
+ feature: "getGcpExporters({enableMetrics: true})"
81
+ },
82
+ () => Promise.resolve().then(() => __toESM(require("@google-cloud/opentelemetry-cloud-monitoring-exporter"), 1))
83
+ );
84
+ return new import_sdk_metrics.PeriodicExportingMetricReader({
85
+ exporter: new MetricExporter({ projectId }),
86
+ exportIntervalMillis: 5e3
87
+ });
88
+ }
89
+ __name(createCloudMetricReader, "createCloudMetricReader");
54
90
  async function getGcpExporters(config = {}) {
55
91
  const {
56
92
  enableTracing = false,
@@ -63,19 +99,16 @@ async function getGcpExporters(config = {}) {
63
99
  return {};
64
100
  }
65
101
  return {
66
- spanProcessors: enableTracing ? [new import_sdk_trace_base.BatchSpanProcessor(new import_opentelemetry_cloud_trace_exporter.TraceExporter({ projectId }))] : [],
67
- metricReaders: enableMetrics ? [
68
- new import_sdk_metrics.PeriodicExportingMetricReader({
69
- exporter: new import_opentelemetry_cloud_monitoring_exporter.MetricExporter({ projectId }),
70
- exportIntervalMillis: 5e3
71
- })
72
- ] : [],
102
+ spanProcessors: enableTracing ? [await createCloudTraceProcessor(projectId)] : [],
103
+ metricReaders: enableMetrics ? [await createCloudMetricReader(projectId)] : [],
73
104
  logRecordProcessors: []
74
105
  };
75
106
  }
107
+ __name(getGcpExporters, "getGcpExporters");
76
108
  function getGcpResource() {
77
109
  return (0, import_resources.detectResources)({ detectors: [import_resource_detector_gcp.gcpDetector] });
78
110
  }
111
+ __name(getGcpResource, "getGcpResource");
79
112
  // Annotate the CommonJS export names for ESM import in node:
80
113
  0 && (module.exports = {
81
114
  getGcpExporters,
@@ -9,6 +9,7 @@ var __defProp = Object.defineProperty;
9
9
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10
10
  var __getOwnPropNames = Object.getOwnPropertyNames;
11
11
  var __hasOwnProp = Object.prototype.hasOwnProperty;
12
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
12
13
  var __export = (target, all) => {
13
14
  for (var name in all)
14
15
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -75,11 +76,13 @@ function maybeSetOtelProviders(otelHooksToSetup = [], otelResource) {
75
76
  import_api_logs.logs.setGlobalLoggerProvider(loggerProvider);
76
77
  }
77
78
  }
79
+ __name(maybeSetOtelProviders, "maybeSetOtelProviders");
78
80
  function getOtelResource() {
79
81
  return (0, import_resources.detectResources)({
80
82
  detectors: []
81
83
  });
82
84
  }
85
+ __name(getOtelResource, "getOtelResource");
83
86
  function getOtelExportersConfig() {
84
87
  return {
85
88
  enableTracing: !!(process.env.OTEL_EXPORTER_OTLP_ENDPOINT || process.env.OTEL_EXPORTER_OTLP_TRACES_ENDPOINT),
@@ -87,6 +90,7 @@ function getOtelExportersConfig() {
87
90
  enableLogging: !!(process.env.OTEL_EXPORTER_OTLP_ENDPOINT || process.env.OTEL_EXPORTER_OTLP_LOGS_ENDPOINT)
88
91
  };
89
92
  }
93
+ __name(getOtelExportersConfig, "getOtelExportersConfig");
90
94
  function getOtelExporters(config = getOtelExportersConfig()) {
91
95
  const { enableTracing, enableMetrics, enableLogging } = config;
92
96
  return {
@@ -99,6 +103,7 @@ function getOtelExporters(config = getOtelExportersConfig()) {
99
103
  logRecordProcessors: enableLogging ? [new import_sdk_logs.BatchLogRecordProcessor(new import_exporter_logs_otlp_http.OTLPLogExporter())] : []
100
104
  };
101
105
  }
106
+ __name(getOtelExporters, "getOtelExporters");
102
107
  // Annotate the CommonJS export names for ESM import in node:
103
108
  0 && (module.exports = {
104
109
  maybeSetOtelProviders