@google/adk 1.6.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.
- package/dist/cjs/a2a/a2a_event.js +18 -0
- package/dist/cjs/a2a/a2a_remote_agent.js +5 -2
- package/dist/cjs/a2a/a2a_remote_agent_run_processor.js +7 -3
- package/dist/cjs/a2a/a2a_remote_agent_utils.js +9 -2
- package/dist/cjs/a2a/agent_card.js +33 -3
- package/dist/cjs/a2a/agent_executor.js +25 -16
- package/dist/cjs/a2a/agent_to_a2a.js +22 -10
- package/dist/cjs/a2a/auth.js +3 -0
- package/dist/cjs/a2a/event_converter_utils.js +10 -0
- package/dist/cjs/a2a/event_processor_utils.js +71 -35
- package/dist/cjs/a2a/executor_context.js +2 -0
- package/dist/cjs/a2a/index.js +53 -0
- package/dist/cjs/a2a/metadata_converter_utils.js +5 -0
- package/dist/cjs/a2a/part_converter_utils.js +12 -0
- package/dist/cjs/agents/active_streaming_tool.js +5 -2
- package/dist/cjs/agents/base_agent.js +46 -9
- package/dist/cjs/agents/context.js +5 -2
- package/dist/cjs/agents/framework_function_calls.js +64 -0
- package/dist/cjs/agents/functions.js +38 -16
- package/dist/cjs/agents/instructions.js +51 -12
- package/dist/cjs/agents/invocation_context.js +42 -8
- package/dist/cjs/agents/live_request_queue.js +29 -5
- package/dist/cjs/agents/llm_agent.js +535 -45
- package/dist/cjs/agents/loop_agent.js +19 -2
- package/dist/cjs/agents/parallel_agent.js +21 -2
- package/dist/cjs/agents/processors/agent_transfer_llm_request_processor.js +7 -4
- package/dist/cjs/agents/processors/base_llm_processor.js +9 -4
- package/dist/cjs/agents/processors/basic_llm_request_processor.js +6 -3
- package/dist/cjs/agents/processors/code_execution_request_processor.js +18 -5
- package/dist/cjs/agents/processors/content_processor_utils.js +85 -15
- package/dist/cjs/agents/processors/content_request_processor.js +9 -4
- package/dist/cjs/agents/processors/context_compactor_request_processor.js +5 -2
- package/dist/cjs/agents/processors/identity_llm_request_processor.js +12 -4
- package/dist/cjs/agents/processors/instructions_llm_request_processor.js +5 -2
- package/dist/cjs/agents/processors/interactions_request_processor.js +5 -2
- package/dist/cjs/agents/processors/request_confirmation_llm_request_processor.js +313 -92
- package/dist/cjs/agents/processors/request_input_llm_request_processor.js +218 -0
- package/dist/cjs/agents/processors/tool_filter_request_processor.js +5 -2
- package/dist/cjs/agents/readonly_context.js +7 -3
- package/dist/cjs/agents/routed_agent.js +6 -13
- package/dist/cjs/agents/run_config.js +12 -0
- package/dist/cjs/agents/sequential_agent.js +20 -3
- package/dist/cjs/agents/user_input_request.js +145 -0
- package/dist/cjs/apps/app.js +11 -11
- package/dist/cjs/apps/resumability_config.js +2 -0
- package/dist/cjs/artifacts/file_artifact_service.js +21 -2
- package/dist/cjs/artifacts/gcs_artifact_service.js +46 -11
- package/dist/cjs/artifacts/in_memory_artifact_service.js +9 -2
- package/dist/cjs/artifacts/registry.js +6 -1
- package/dist/cjs/artifacts/scoped_artifact_service.js +5 -2
- package/dist/cjs/auth/auth_handler.js +5 -2
- package/dist/cjs/auth/auth_preprocessor.js +48 -40
- package/dist/cjs/auth/auth_provider_registry.js +5 -2
- package/dist/cjs/auth/auth_schemes.js +2 -0
- package/dist/cjs/auth/credential_response_binding.js +101 -0
- package/dist/cjs/auth/credential_service/in_memory_credential_service.js +5 -2
- package/dist/cjs/auth/credential_service/session_state_credential_service.js +5 -2
- package/dist/cjs/auth/exchanger/base_credential_exchanger.js +5 -2
- package/dist/cjs/auth/exchanger/credential_exchanger_registry.js +5 -2
- package/dist/cjs/auth/oauth2/oauth2_credential_exchanger.js +8 -2
- package/dist/cjs/auth/oauth2/oauth2_credential_refresher.js +5 -2
- package/dist/cjs/auth/oauth2/oauth2_discovery.js +7 -2
- package/dist/cjs/auth/oauth2/oauth2_utils.js +6 -0
- package/dist/cjs/auth/refresher/base_credential_refresher.js +5 -2
- package/dist/cjs/auth/refresher/credential_refresher_registry.js +5 -2
- package/dist/cjs/code_executors/agent_engine_sandbox_code_executor.js +3 -0
- package/dist/cjs/code_executors/base_code_executor.js +6 -2
- package/dist/cjs/code_executors/built_in_code_executor.js +6 -2
- package/dist/cjs/code_executors/code_execution_utils.js +6 -0
- package/dist/cjs/code_executors/code_executor_context.js +5 -2
- package/dist/cjs/code_executors/unsafe_local_code_executor.js +8 -2
- package/dist/cjs/common.js +106 -1
- package/dist/cjs/context/agent_controlled_context_compactor.js +5 -2
- package/dist/cjs/context/anchored_context_compactor.js +5 -2
- package/dist/cjs/context/compaction_utils.js +3 -0
- package/dist/cjs/context/summarizers/llm_summarizer.js +5 -2
- package/dist/cjs/context/token_based_context_compactor.js +9 -3
- package/dist/cjs/context/trajectory_thought_pruning_compactor.js +5 -2
- package/dist/cjs/context/truncating_context_compactor.js +5 -2
- package/dist/cjs/environment/base_environment.js +97 -0
- package/dist/cjs/environment/local_environment.js +186 -0
- package/dist/cjs/events/compacted_event.js +4 -0
- package/dist/cjs/events/event.js +38 -3
- package/dist/cjs/events/event_actions.js +5 -0
- package/dist/cjs/events/structured_events.js +2 -0
- package/dist/cjs/examples/base_example_provider.js +6 -2
- package/dist/cjs/examples/example_util.js +3 -0
- package/dist/cjs/features/feature_registry.js +7 -0
- package/dist/cjs/index.js +7 -25
- package/dist/cjs/integrations/agent_registry/agent_registry.js +7 -4
- package/dist/cjs/integrations/agent_registry/agent_registry_mcp_toolset.js +7 -4
- package/dist/cjs/integrations/agent_registry/helpers.js +3 -0
- package/dist/cjs/memory/in_memory_memory_service.js +8 -2
- package/dist/cjs/memory/vertex_ai_memory_bank_service.js +17 -2
- package/dist/cjs/models/apigee_llm.js +9 -3
- package/dist/cjs/models/base_llm.js +7 -3
- package/dist/cjs/models/gemini_llm_connection.js +5 -2
- package/dist/cjs/models/google_llm.js +24 -12
- package/dist/cjs/models/interactions_utils.js +16 -0
- package/dist/cjs/models/llm_request.js +4 -0
- package/dist/cjs/models/llm_response.js +2 -0
- package/dist/cjs/models/registry.js +6 -2
- package/dist/cjs/models/routed_llm.js +4 -13
- package/dist/cjs/plugins/base_plugin.js +39 -5
- package/dist/cjs/plugins/global_instruction_plugin.js +5 -2
- package/dist/cjs/plugins/logging_plugin.js +13 -8
- package/dist/cjs/plugins/plugin_manager.js +37 -2
- package/dist/cjs/plugins/security_plugin.js +15 -8
- package/dist/cjs/runner/in_memory_runner.js +5 -2
- package/dist/cjs/runner/runner.js +208 -18
- package/dist/cjs/sessions/base_session_service.js +13 -2
- package/dist/cjs/sessions/database_session_service.js +6 -2
- package/dist/cjs/sessions/db/operations.js +34 -6
- package/dist/cjs/sessions/db/schema.js +16 -8
- package/dist/cjs/sessions/in_memory_session_service.js +22 -14
- package/dist/cjs/sessions/registry.js +4 -1
- package/dist/cjs/sessions/session.js +2 -0
- package/dist/cjs/sessions/state.js +80 -8
- package/dist/cjs/sessions/state_write_order.js +105 -0
- package/dist/cjs/sessions/vertex_ai_session_service.js +110 -15
- package/dist/cjs/skills/gcp_skill_registry.js +2 -0
- package/dist/cjs/skills/loader.js +22 -10
- package/dist/cjs/skills/prompt.js +3 -0
- package/dist/cjs/telemetry/google_cloud.js +42 -9
- package/dist/cjs/telemetry/setup.js +5 -0
- package/dist/cjs/telemetry/tracing.js +60 -4
- package/dist/cjs/tools/agent_tool.js +6 -2
- package/dist/cjs/tools/base_tool.js +24 -2
- package/dist/cjs/tools/base_toolset.js +6 -2
- package/dist/cjs/tools/consolidate_context_tool.js +5 -2
- package/dist/cjs/tools/enterprise_web_search_tool.js +6 -2
- package/dist/cjs/tools/example_tool.js +5 -2
- package/dist/cjs/tools/exit_loop_tool.js +5 -2
- package/dist/cjs/tools/finish_task_tool.js +119 -0
- package/dist/cjs/tools/forwarding_artifact_service.js +5 -2
- package/dist/cjs/tools/function_tool.js +73 -8
- package/dist/cjs/tools/get_user_choice_tool.js +3 -2
- package/dist/cjs/tools/google_maps_grounding_tool.js +6 -2
- package/dist/cjs/tools/google_search_tool.js +5 -2
- package/dist/cjs/tools/load_artifacts_tool.js +8 -2
- package/dist/cjs/tools/load_memory_tool.js +5 -2
- package/dist/cjs/tools/load_web_page.js +21 -1
- package/dist/cjs/tools/long_running_tool.js +5 -2
- package/dist/cjs/tools/mcp/index.js +39 -0
- package/dist/cjs/tools/mcp/load_mcp_resource_tool.js +5 -2
- package/dist/cjs/tools/mcp/mcp_session_manager.js +36 -8
- package/dist/cjs/tools/mcp/mcp_tool.js +5 -2
- package/dist/cjs/tools/mcp/mcp_toolset.js +5 -2
- package/dist/cjs/tools/openapi_tool/auth/auth_helpers.js +4 -0
- package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +2 -0
- package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +2 -0
- package/dist/cjs/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +30 -9
- package/dist/cjs/tools/openapi_tool/openapi_spec_parser/operation_parser.js +2 -0
- package/dist/cjs/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +6 -2
- package/dist/cjs/tools/openapi_tool/openapi_toolset.js +2 -0
- package/dist/cjs/tools/openapi_tool/rest_api_tool.js +23 -5
- package/dist/cjs/tools/preload_memory_tool.js +5 -2
- package/dist/cjs/tools/request_input_tool.js +6 -4
- package/dist/cjs/tools/skill/list_skills_tool.js +2 -0
- package/dist/cjs/tools/skill/load_skill_resource_tool.js +2 -0
- package/dist/cjs/tools/skill/load_skill_tool.js +4 -1
- package/dist/cjs/tools/skill/run_skill_inline_script_tool.js +8 -2
- package/dist/cjs/tools/skill/run_skill_script_tool.js +10 -2
- package/dist/cjs/tools/skill/search_skills_tool.js +2 -0
- package/dist/cjs/tools/skill/skill_toolset.js +35 -0
- package/dist/cjs/tools/tool_confirmation.js +26 -3
- package/dist/cjs/tools/url_context_tool.js +5 -2
- package/dist/cjs/tools/vertex_ai_search_tool.js +5 -2
- package/dist/cjs/tools/vertex_rag_retrieval_tool.js +5 -2
- package/dist/cjs/utils/async_hooks_shim.js +5 -2
- package/dist/cjs/utils/async_queue.js +45 -18
- package/dist/cjs/utils/branch_trie.js +2 -0
- package/dist/cjs/utils/case_utils.js +2 -0
- package/dist/cjs/utils/client_labels.js +5 -0
- package/dist/cjs/utils/crypto_shim.js +2 -0
- package/dist/cjs/utils/deprecated.js +68 -0
- package/dist/cjs/utils/env_aware_utils.js +41 -0
- package/dist/cjs/utils/error_utils.js +8 -0
- package/dist/cjs/utils/experimental.js +9 -2
- package/dist/cjs/utils/failover_utils.js +3 -0
- package/dist/cjs/utils/file_extension_utils.js +3 -0
- package/dist/cjs/utils/file_utils.js +7 -2
- package/dist/cjs/utils/gemini_schema_util.js +6 -2
- package/dist/cjs/utils/genai_schema_to_json.js +107 -0
- package/dist/cjs/utils/live_connection_utils.js +5 -2
- package/dist/cjs/utils/logger.js +13 -4
- package/dist/cjs/utils/model_name.js +8 -0
- package/dist/cjs/utils/object_notation_utils.js +7 -3
- package/dist/cjs/utils/optional_peer.js +68 -0
- package/dist/cjs/utils/output_schema_utils.js +2 -0
- package/dist/cjs/utils/partial_copy.js +2 -0
- package/dist/cjs/utils/redact_uri.js +66 -0
- package/dist/cjs/utils/schema.js +178 -0
- package/dist/cjs/utils/simple_zod_to_json.js +17 -4
- package/dist/cjs/utils/streaming_utils.js +14 -6
- package/dist/cjs/utils/task.js +7 -4
- package/dist/cjs/utils/variant_utils.js +3 -1
- package/dist/cjs/utils/vertex_ai_utils.js +3 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/workflow/base_node.js +211 -0
- package/dist/cjs/workflow/branch_path.js +108 -0
- package/dist/cjs/workflow/dynamic_node_scheduler.js +220 -0
- package/dist/cjs/workflow/errors.js +178 -0
- package/dist/cjs/workflow/graph.js +158 -0
- package/dist/cjs/workflow/index.js +131 -0
- package/dist/cjs/workflow/node.js +65 -0
- package/dist/cjs/workflow/node_builders.js +68 -0
- package/dist/cjs/workflow/node_context.js +246 -0
- package/dist/cjs/workflow/node_error_event.js +86 -0
- package/dist/cjs/workflow/node_runner.js +459 -0
- package/dist/cjs/workflow/node_state.js +57 -0
- package/dist/cjs/workflow/node_status.js +48 -0
- package/dist/cjs/workflow/nodes/function_node.js +195 -0
- package/dist/cjs/workflow/nodes/join_node.js +56 -0
- package/dist/cjs/workflow/nodes/node_tool.js +156 -0
- package/dist/cjs/workflow/nodes/parallel_worker.js +129 -0
- package/dist/cjs/workflow/nodes/tool_node.js +117 -0
- package/dist/cjs/workflow/request_input.js +64 -0
- package/dist/cjs/workflow/retry_config.js +71 -0
- package/dist/cjs/workflow/run_llm_agent_as_node.js +192 -0
- package/dist/cjs/workflow/run_node_as_invocation.js +165 -0
- package/dist/cjs/workflow/schedule_dynamic_node.js +53 -0
- package/dist/cjs/workflow/trigger.js +27 -0
- package/dist/cjs/workflow/utils/graph_parser.js +212 -0
- package/dist/cjs/workflow/utils/graph_validation.js +216 -0
- package/dist/cjs/workflow/utils/hitl_utils.js +252 -0
- package/dist/cjs/workflow/utils/rehydration_utils.js +373 -0
- package/dist/cjs/workflow/utils/retry_utils.js +112 -0
- package/dist/cjs/workflow/utils/workflow_graph_utils.js +144 -0
- package/dist/cjs/workflow/workflow.js +509 -0
- package/dist/esm/a2a/a2a_event.js +19 -0
- package/dist/esm/a2a/a2a_remote_agent.js +6 -2
- package/dist/esm/a2a/a2a_remote_agent_run_processor.js +8 -3
- package/dist/esm/a2a/a2a_remote_agent_utils.js +10 -2
- package/dist/esm/a2a/agent_card.js +34 -3
- package/dist/esm/a2a/agent_executor.js +27 -17
- package/dist/esm/a2a/agent_to_a2a.js +44 -15
- package/dist/esm/a2a/auth.js +4 -0
- package/dist/esm/a2a/event_converter_utils.js +11 -0
- package/dist/esm/a2a/event_processor_utils.js +74 -34
- package/dist/esm/a2a/executor_context.js +3 -0
- package/dist/esm/a2a/index.js +20 -0
- package/dist/esm/a2a/metadata_converter_utils.js +6 -0
- package/dist/esm/a2a/part_converter_utils.js +13 -0
- package/dist/esm/agents/active_streaming_tool.js +6 -2
- package/dist/esm/agents/base_agent.js +47 -9
- package/dist/esm/agents/context.js +6 -2
- package/dist/esm/agents/framework_function_calls.js +34 -0
- package/dist/esm/agents/functions.js +42 -13
- package/dist/esm/agents/instructions.js +52 -12
- package/dist/esm/agents/invocation_context.js +41 -7
- package/dist/esm/agents/live_request_queue.js +30 -5
- package/dist/esm/agents/llm_agent.js +536 -45
- package/dist/esm/agents/loop_agent.js +21 -2
- package/dist/esm/agents/parallel_agent.js +23 -2
- package/dist/esm/agents/processors/agent_transfer_llm_request_processor.js +8 -4
- package/dist/esm/agents/processors/base_llm_processor.js +10 -4
- package/dist/esm/agents/processors/basic_llm_request_processor.js +7 -3
- package/dist/esm/agents/processors/code_execution_request_processor.js +19 -5
- package/dist/esm/agents/processors/content_processor_utils.js +88 -16
- package/dist/esm/agents/processors/content_request_processor.js +10 -4
- package/dist/esm/agents/processors/context_compactor_request_processor.js +6 -2
- package/dist/esm/agents/processors/identity_llm_request_processor.js +13 -4
- package/dist/esm/agents/processors/instructions_llm_request_processor.js +6 -2
- package/dist/esm/agents/processors/interactions_request_processor.js +6 -2
- package/dist/esm/agents/processors/request_confirmation_llm_request_processor.js +318 -93
- package/dist/esm/agents/processors/request_input_llm_request_processor.js +197 -0
- package/dist/esm/agents/processors/tool_filter_request_processor.js +6 -2
- package/dist/esm/agents/readonly_context.js +8 -3
- package/dist/esm/agents/routed_agent.js +6 -14
- package/dist/esm/agents/run_config.js +13 -0
- package/dist/esm/agents/sequential_agent.js +22 -3
- package/dist/esm/agents/user_input_request.js +120 -0
- package/dist/esm/apps/app.js +14 -11
- package/dist/esm/apps/resumability_config.js +3 -0
- package/dist/esm/artifacts/file_artifact_service.js +22 -2
- package/dist/esm/artifacts/gcs_artifact_service.js +58 -11
- package/dist/esm/artifacts/in_memory_artifact_service.js +10 -2
- package/dist/esm/artifacts/registry.js +7 -1
- package/dist/esm/artifacts/scoped_artifact_service.js +6 -2
- package/dist/esm/auth/auth_handler.js +6 -2
- package/dist/esm/auth/auth_preprocessor.js +50 -41
- package/dist/esm/auth/auth_provider_registry.js +6 -2
- package/dist/esm/auth/auth_schemes.js +3 -0
- package/dist/esm/auth/credential_response_binding.js +74 -0
- package/dist/esm/auth/credential_service/in_memory_credential_service.js +6 -2
- package/dist/esm/auth/credential_service/session_state_credential_service.js +6 -2
- package/dist/esm/auth/exchanger/base_credential_exchanger.js +6 -2
- package/dist/esm/auth/exchanger/credential_exchanger_registry.js +6 -2
- package/dist/esm/auth/oauth2/oauth2_credential_exchanger.js +9 -2
- package/dist/esm/auth/oauth2/oauth2_credential_refresher.js +6 -2
- package/dist/esm/auth/oauth2/oauth2_discovery.js +8 -2
- package/dist/esm/auth/oauth2/oauth2_utils.js +7 -0
- package/dist/esm/auth/refresher/base_credential_refresher.js +6 -2
- package/dist/esm/auth/refresher/credential_refresher_registry.js +6 -2
- package/dist/esm/code_executors/agent_engine_sandbox_code_executor.js +3 -0
- package/dist/esm/code_executors/base_code_executor.js +7 -2
- package/dist/esm/code_executors/built_in_code_executor.js +7 -2
- package/dist/esm/code_executors/code_execution_utils.js +7 -0
- package/dist/esm/code_executors/code_executor_context.js +6 -2
- package/dist/esm/code_executors/unsafe_local_code_executor.js +9 -2
- package/dist/esm/common.js +109 -4
- package/dist/esm/context/agent_controlled_context_compactor.js +6 -2
- package/dist/esm/context/anchored_context_compactor.js +6 -2
- package/dist/esm/context/compaction_utils.js +4 -0
- package/dist/esm/context/summarizers/llm_summarizer.js +6 -2
- package/dist/esm/context/token_based_context_compactor.js +10 -3
- package/dist/esm/context/trajectory_thought_pruning_compactor.js +6 -2
- package/dist/esm/context/truncating_context_compactor.js +6 -2
- package/dist/esm/environment/base_environment.js +71 -0
- package/dist/esm/environment/local_environment.js +150 -0
- package/dist/esm/events/compacted_event.js +5 -0
- package/dist/esm/events/event.js +38 -3
- package/dist/esm/events/event_actions.js +6 -0
- package/dist/esm/events/structured_events.js +3 -0
- package/dist/esm/examples/base_example_provider.js +7 -2
- package/dist/esm/examples/example_util.js +4 -0
- package/dist/esm/features/feature_registry.js +8 -0
- package/dist/esm/index.js +4 -15
- package/dist/esm/integrations/agent_registry/agent_registry.js +8 -4
- package/dist/esm/integrations/agent_registry/agent_registry_mcp_toolset.js +6 -2
- package/dist/esm/integrations/agent_registry/helpers.js +4 -0
- package/dist/esm/memory/in_memory_memory_service.js +9 -2
- package/dist/esm/memory/vertex_ai_memory_bank_service.js +18 -2
- package/dist/esm/models/apigee_llm.js +10 -3
- package/dist/esm/models/base_llm.js +8 -3
- package/dist/esm/models/gemini_llm_connection.js +6 -2
- package/dist/esm/models/google_llm.js +26 -13
- package/dist/esm/models/interactions_utils.js +17 -0
- package/dist/esm/models/llm_request.js +5 -0
- package/dist/esm/models/llm_response.js +3 -0
- package/dist/esm/models/registry.js +7 -2
- package/dist/esm/models/routed_llm.js +4 -14
- package/dist/esm/plugins/base_plugin.js +39 -5
- package/dist/esm/plugins/global_instruction_plugin.js +6 -2
- package/dist/esm/plugins/logging_plugin.js +14 -8
- package/dist/esm/plugins/plugin_manager.js +38 -2
- package/dist/esm/plugins/security_plugin.js +14 -6
- package/dist/esm/runner/in_memory_runner.js +6 -2
- package/dist/esm/runner/runner.js +215 -20
- package/dist/esm/sessions/base_session_service.js +14 -2
- package/dist/esm/sessions/database_session_service.js +7 -2
- package/dist/esm/sessions/db/operations.js +34 -6
- package/dist/esm/sessions/db/schema.js +16 -8
- package/dist/esm/sessions/in_memory_session_service.js +23 -14
- package/dist/esm/sessions/registry.js +5 -1
- package/dist/esm/sessions/session.js +3 -0
- package/dist/esm/sessions/state.js +78 -7
- package/dist/esm/sessions/state_write_order.js +74 -0
- package/dist/esm/sessions/vertex_ai_session_service.js +110 -15
- package/dist/esm/skills/gcp_skill_registry.js +2 -0
- package/dist/esm/skills/loader.js +23 -10
- package/dist/esm/skills/prompt.js +4 -0
- package/dist/esm/telemetry/google_cloud.js +54 -9
- package/dist/esm/telemetry/setup.js +6 -0
- package/dist/esm/telemetry/tracing.js +59 -4
- package/dist/esm/tools/agent_tool.js +7 -2
- package/dist/esm/tools/base_tool.js +25 -2
- package/dist/esm/tools/base_toolset.js +7 -2
- package/dist/esm/tools/consolidate_context_tool.js +6 -2
- package/dist/esm/tools/enterprise_web_search_tool.js +7 -2
- package/dist/esm/tools/example_tool.js +6 -2
- package/dist/esm/tools/exit_loop_tool.js +6 -2
- package/dist/esm/tools/finish_task_tool.js +92 -0
- package/dist/esm/tools/forwarding_artifact_service.js +6 -2
- package/dist/esm/tools/function_tool.js +74 -8
- package/dist/esm/tools/get_user_choice_tool.js +4 -2
- package/dist/esm/tools/google_maps_grounding_tool.js +7 -2
- package/dist/esm/tools/google_search_tool.js +6 -2
- package/dist/esm/tools/load_artifacts_tool.js +9 -2
- package/dist/esm/tools/load_memory_tool.js +6 -2
- package/dist/esm/tools/load_web_page.js +22 -1
- package/dist/esm/tools/long_running_tool.js +6 -2
- package/dist/esm/tools/mcp/index.js +11 -0
- package/dist/esm/tools/mcp/load_mcp_resource_tool.js +6 -2
- package/dist/esm/tools/mcp/mcp_session_manager.js +45 -9
- package/dist/esm/tools/mcp/mcp_tool.js +6 -2
- package/dist/esm/tools/mcp/mcp_toolset.js +6 -2
- package/dist/esm/tools/openapi_tool/auth/auth_helpers.js +5 -0
- package/dist/esm/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +2 -0
- package/dist/esm/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +2 -0
- package/dist/esm/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +30 -9
- package/dist/esm/tools/openapi_tool/openapi_spec_parser/operation_parser.js +2 -0
- package/dist/esm/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +6 -2
- package/dist/esm/tools/openapi_tool/openapi_toolset.js +2 -0
- package/dist/esm/tools/openapi_tool/rest_api_tool.js +23 -5
- package/dist/esm/tools/preload_memory_tool.js +6 -2
- package/dist/esm/tools/request_input_tool.js +7 -4
- package/dist/esm/tools/skill/list_skills_tool.js +2 -0
- package/dist/esm/tools/skill/load_skill_resource_tool.js +2 -0
- package/dist/esm/tools/skill/load_skill_tool.js +4 -1
- package/dist/esm/tools/skill/run_skill_inline_script_tool.js +8 -2
- package/dist/esm/tools/skill/run_skill_script_tool.js +10 -2
- package/dist/esm/tools/skill/search_skills_tool.js +2 -0
- package/dist/esm/tools/skill/skill_toolset.js +25 -0
- package/dist/esm/tools/tool_confirmation.js +24 -2
- package/dist/esm/tools/url_context_tool.js +6 -2
- package/dist/esm/tools/vertex_ai_search_tool.js +6 -2
- package/dist/esm/tools/vertex_rag_retrieval_tool.js +6 -2
- package/dist/esm/utils/async_hooks_shim.js +6 -2
- package/dist/esm/utils/async_queue.js +46 -18
- package/dist/esm/utils/branch_trie.js +3 -0
- package/dist/esm/utils/case_utils.js +3 -0
- package/dist/esm/utils/client_labels.js +6 -0
- package/dist/esm/utils/crypto_shim.js +3 -0
- package/dist/esm/utils/deprecated.js +40 -0
- package/dist/esm/utils/env_aware_utils.js +41 -0
- package/dist/esm/utils/error_utils.js +9 -0
- package/dist/esm/utils/experimental.js +10 -2
- package/dist/esm/utils/failover_utils.js +4 -0
- package/dist/esm/utils/file_extension_utils.js +4 -0
- package/dist/esm/utils/file_utils.js +8 -2
- package/dist/esm/utils/gemini_schema_util.js +7 -2
- package/dist/esm/utils/genai_schema_to_json.js +80 -0
- package/dist/esm/utils/live_connection_utils.js +6 -2
- package/dist/esm/utils/logger.js +14 -4
- package/dist/esm/utils/model_name.js +9 -0
- package/dist/esm/utils/object_notation_utils.js +8 -3
- package/dist/esm/utils/optional_peer.js +41 -0
- package/dist/esm/utils/output_schema_utils.js +3 -0
- package/dist/esm/utils/partial_copy.js +3 -0
- package/dist/esm/utils/redact_uri.js +39 -0
- package/dist/esm/utils/schema.js +152 -0
- package/dist/esm/utils/simple_zod_to_json.js +15 -4
- package/dist/esm/utils/streaming_utils.js +15 -6
- package/dist/esm/utils/task.js +8 -4
- package/dist/esm/utils/variant_utils.js +5 -2
- package/dist/esm/utils/vertex_ai_utils.js +5 -2
- package/dist/esm/version.js +1 -1
- package/dist/esm/workflow/base_node.js +182 -0
- package/dist/esm/workflow/branch_path.js +77 -0
- package/dist/esm/workflow/dynamic_node_scheduler.js +202 -0
- package/dist/esm/workflow/errors.js +140 -0
- package/dist/esm/workflow/graph.js +127 -0
- package/dist/esm/workflow/index.js +80 -0
- package/dist/esm/workflow/node.js +38 -0
- package/dist/esm/workflow/node_builders.js +40 -0
- package/dist/esm/workflow/node_context.js +219 -0
- package/dist/esm/workflow/node_error_event.js +57 -0
- package/dist/esm/workflow/node_runner.js +439 -0
- package/dist/esm/workflow/node_state.js +29 -0
- package/dist/esm/workflow/node_status.js +20 -0
- package/dist/esm/workflow/nodes/function_node.js +172 -0
- package/dist/esm/workflow/nodes/join_node.js +29 -0
- package/dist/esm/workflow/nodes/node_tool.js +131 -0
- package/dist/esm/workflow/nodes/parallel_worker.js +102 -0
- package/dist/esm/workflow/nodes/tool_node.js +90 -0
- package/dist/esm/workflow/request_input.js +36 -0
- package/dist/esm/workflow/retry_config.js +43 -0
- package/dist/esm/workflow/run_llm_agent_as_node.js +172 -0
- package/dist/esm/workflow/run_node_as_invocation.js +139 -0
- package/dist/esm/workflow/schedule_dynamic_node.js +26 -0
- package/dist/esm/workflow/trigger.js +7 -0
- package/dist/esm/workflow/utils/graph_parser.js +188 -0
- package/dist/esm/workflow/utils/graph_validation.js +189 -0
- package/dist/esm/workflow/utils/hitl_utils.js +222 -0
- package/dist/esm/workflow/utils/rehydration_utils.js +342 -0
- package/dist/esm/workflow/utils/retry_utils.js +82 -0
- package/dist/esm/workflow/utils/workflow_graph_utils.js +115 -0
- package/dist/esm/workflow/workflow.js +493 -0
- package/dist/types/a2a/agent_card.d.ts +3 -3
- package/dist/types/a2a/agent_to_a2a.d.ts +4 -4
- package/dist/types/a2a/event_processor_utils.d.ts +17 -2
- package/dist/types/a2a/index.d.ts +18 -0
- package/dist/types/agents/base_agent.d.ts +37 -9
- package/dist/types/agents/framework_function_calls.d.ts +26 -0
- package/dist/types/agents/functions.d.ts +1 -2
- package/dist/types/agents/invocation_context.d.ts +95 -3
- package/dist/types/agents/live_request_queue.d.ts +7 -1
- package/dist/types/agents/llm_agent.d.ts +77 -1
- package/dist/types/agents/loop_agent.d.ts +5 -0
- package/dist/types/agents/parallel_agent.d.ts +5 -0
- package/dist/types/agents/processors/content_processor_utils.d.ts +3 -2
- package/dist/types/agents/processors/identity_llm_request_processor.d.ts +4 -1
- package/dist/types/agents/processors/request_input_llm_request_processor.d.ts +21 -0
- package/dist/types/agents/run_config.d.ts +57 -2
- package/dist/types/agents/sequential_agent.d.ts +5 -0
- package/dist/types/agents/user_input_request.d.ts +71 -0
- package/dist/types/apps/app.d.ts +8 -3
- package/dist/types/artifacts/gcs_artifact_service.d.ts +9 -2
- package/dist/types/auth/credential_response_binding.d.ts +24 -0
- package/dist/types/common.d.ts +18 -8
- package/dist/types/environment/base_environment.d.ts +101 -0
- package/dist/types/environment/local_environment.d.ts +72 -0
- package/dist/types/events/event.d.ts +94 -1
- package/dist/types/events/event_actions.d.ts +10 -0
- package/dist/types/index.d.ts +5 -13
- package/dist/types/models/apigee_llm.d.ts +4 -4
- package/dist/types/models/google_llm.d.ts +2 -1
- package/dist/types/plugins/base_plugin.d.ts +35 -0
- package/dist/types/plugins/plugin_manager.d.ts +20 -0
- package/dist/types/plugins/security_plugin.d.ts +4 -2
- package/dist/types/runner/in_memory_runner.d.ts +2 -2
- package/dist/types/runner/runner.d.ts +59 -3
- package/dist/types/sessions/base_session_service.d.ts +2 -2
- package/dist/types/sessions/state.d.ts +34 -1
- package/dist/types/sessions/state_write_order.d.ts +39 -0
- package/dist/types/telemetry/tracing.d.ts +15 -0
- package/dist/types/tools/base_tool.d.ts +15 -0
- package/dist/types/tools/finish_task_tool.d.ts +47 -0
- package/dist/types/tools/function_tool.d.ts +46 -1
- package/dist/types/tools/mcp/index.d.ts +13 -0
- package/dist/types/tools/mcp/mcp_session_manager.d.ts +3 -3
- package/dist/types/tools/mcp/mcp_tool.d.ts +1 -1
- package/dist/types/tools/mcp/mcp_toolset.d.ts +1 -1
- package/dist/types/tools/request_input_tool.d.ts +6 -1
- package/dist/types/tools/skill/skill_toolset.d.ts +26 -0
- package/dist/types/tools/tool_confirmation.d.ts +47 -0
- package/dist/types/utils/async_queue.d.ts +34 -2
- package/dist/types/utils/deprecated.d.ts +21 -0
- package/dist/types/utils/env_aware_utils.d.ts +16 -0
- package/dist/types/utils/file_utils.d.ts +10 -2
- package/dist/types/utils/genai_schema_to_json.d.ts +25 -0
- package/dist/types/utils/optional_peer.d.ts +36 -0
- package/dist/types/utils/redact_uri.d.ts +28 -0
- package/dist/types/utils/schema.d.ts +73 -0
- package/dist/types/utils/simple_zod_to_json.d.ts +8 -0
- package/dist/types/utils/vertex_ai_utils.d.ts +4 -0
- package/dist/types/version.d.ts +1 -1
- package/dist/types/workflow/base_node.d.ts +142 -0
- package/dist/types/workflow/branch_path.d.ts +40 -0
- package/dist/types/workflow/dynamic_node_scheduler.d.ts +64 -0
- package/dist/types/workflow/errors.d.ts +132 -0
- package/dist/types/workflow/graph.d.ts +127 -0
- package/dist/types/workflow/index.d.ts +46 -0
- package/dist/types/workflow/node.d.ts +48 -0
- package/dist/types/workflow/node_builders.d.ts +25 -0
- package/dist/types/workflow/node_context.d.ts +208 -0
- package/dist/types/workflow/node_error_event.d.ts +18 -0
- package/dist/types/workflow/node_runner.d.ts +82 -0
- package/dist/types/workflow/node_state.d.ts +47 -0
- package/dist/types/workflow/node_status.d.ts +28 -0
- package/dist/types/workflow/nodes/function_node.d.ts +78 -0
- package/dist/types/workflow/nodes/join_node.d.ts +24 -0
- package/dist/types/workflow/nodes/node_tool.d.ts +53 -0
- package/dist/types/workflow/nodes/parallel_worker.d.ts +55 -0
- package/dist/types/workflow/nodes/tool_node.d.ts +34 -0
- package/dist/types/workflow/request_input.d.ts +73 -0
- package/dist/types/workflow/retry_config.d.ts +84 -0
- package/dist/types/workflow/run_llm_agent_as_node.d.ts +28 -0
- package/dist/types/workflow/run_node_as_invocation.d.ts +72 -0
- package/dist/types/workflow/schedule_dynamic_node.d.ts +66 -0
- package/dist/types/workflow/trigger.d.ts +22 -0
- package/dist/types/workflow/utils/graph_parser.d.ts +8 -0
- package/dist/types/workflow/utils/graph_validation.d.ts +18 -0
- package/dist/types/workflow/utils/hitl_utils.d.ts +92 -0
- package/dist/types/workflow/utils/rehydration_utils.d.ts +132 -0
- package/dist/types/workflow/utils/retry_utils.d.ts +54 -0
- package/dist/types/workflow/utils/workflow_graph_utils.d.ts +76 -0
- package/dist/types/workflow/workflow.d.ts +115 -0
- package/dist/web/a2a/a2a_event.js +19 -0
- package/dist/web/a2a/a2a_remote_agent.js +6 -2
- package/dist/web/a2a/a2a_remote_agent_run_processor.js +8 -3
- package/dist/web/a2a/a2a_remote_agent_utils.js +10 -2
- package/dist/web/a2a/agent_card.js +34 -3
- package/dist/web/a2a/agent_executor.js +45 -17
- package/dist/web/a2a/agent_to_a2a.js +44 -15
- package/dist/web/a2a/auth.js +4 -0
- package/dist/web/a2a/event_converter_utils.js +10 -0
- package/dist/web/a2a/event_processor_utils.js +73 -34
- package/dist/web/a2a/executor_context.js +3 -0
- package/dist/web/a2a/index.js +20 -0
- package/dist/web/a2a/metadata_converter_utils.js +5 -0
- package/dist/web/a2a/part_converter_utils.js +13 -0
- package/dist/web/agents/active_streaming_tool.js +6 -2
- package/dist/web/agents/base_agent.js +48 -9
- package/dist/web/agents/context.js +6 -2
- package/dist/web/agents/framework_function_calls.js +34 -0
- package/dist/web/agents/functions.js +42 -13
- package/dist/web/agents/instructions.js +52 -12
- package/dist/web/agents/invocation_context.js +56 -7
- package/dist/web/agents/live_request_queue.js +30 -5
- package/dist/web/agents/llm_agent.js +630 -52
- package/dist/web/agents/loop_agent.js +21 -2
- package/dist/web/agents/parallel_agent.js +23 -2
- package/dist/web/agents/processors/agent_transfer_llm_request_processor.js +8 -4
- package/dist/web/agents/processors/base_llm_processor.js +10 -4
- package/dist/web/agents/processors/basic_llm_request_processor.js +6 -3
- package/dist/web/agents/processors/code_execution_request_processor.js +19 -5
- package/dist/web/agents/processors/content_processor_utils.js +87 -16
- package/dist/web/agents/processors/content_request_processor.js +10 -4
- package/dist/web/agents/processors/context_compactor_request_processor.js +6 -2
- package/dist/web/agents/processors/identity_llm_request_processor.js +13 -4
- package/dist/web/agents/processors/instructions_llm_request_processor.js +6 -2
- package/dist/web/agents/processors/interactions_request_processor.js +6 -2
- package/dist/web/agents/processors/request_confirmation_llm_request_processor.js +329 -104
- package/dist/web/agents/processors/request_input_llm_request_processor.js +228 -0
- package/dist/web/agents/processors/tool_filter_request_processor.js +6 -2
- package/dist/web/agents/readonly_context.js +8 -3
- package/dist/web/agents/routed_agent.js +6 -14
- package/dist/web/agents/run_config.js +12 -0
- package/dist/web/agents/sequential_agent.js +22 -3
- package/dist/web/agents/user_input_request.js +135 -0
- package/dist/web/apps/app.js +14 -11
- package/dist/web/apps/resumability_config.js +2 -0
- package/dist/web/artifacts/file_artifact_service.js +22 -2
- package/dist/web/artifacts/gcs_artifact_service.js +56 -11
- package/dist/web/artifacts/in_memory_artifact_service.js +10 -2
- package/dist/web/artifacts/registry.js +7 -1
- package/dist/web/artifacts/scoped_artifact_service.js +5 -2
- package/dist/web/auth/auth_handler.js +5 -2
- package/dist/web/auth/auth_preprocessor.js +50 -41
- package/dist/web/auth/auth_provider_registry.js +6 -2
- package/dist/web/auth/auth_schemes.js +3 -0
- package/dist/web/auth/credential_response_binding.js +91 -0
- package/dist/web/auth/credential_service/in_memory_credential_service.js +6 -2
- package/dist/web/auth/credential_service/session_state_credential_service.js +6 -2
- package/dist/web/auth/exchanger/base_credential_exchanger.js +6 -2
- package/dist/web/auth/exchanger/credential_exchanger_registry.js +6 -2
- package/dist/web/auth/oauth2/oauth2_credential_exchanger.js +8 -2
- package/dist/web/auth/oauth2/oauth2_credential_refresher.js +5 -2
- package/dist/web/auth/oauth2/oauth2_discovery.js +8 -2
- package/dist/web/auth/oauth2/oauth2_utils.js +7 -0
- package/dist/web/auth/refresher/base_credential_refresher.js +6 -2
- package/dist/web/auth/refresher/credential_refresher_registry.js +6 -2
- package/dist/web/code_executors/agent_engine_sandbox_code_executor.js +3 -0
- package/dist/web/code_executors/base_code_executor.js +7 -2
- package/dist/web/code_executors/built_in_code_executor.js +7 -2
- package/dist/web/code_executors/code_execution_utils.js +7 -0
- package/dist/web/code_executors/code_executor_context.js +6 -2
- package/dist/web/code_executors/unsafe_local_code_executor.js +9 -2
- package/dist/web/common.js +109 -4
- package/dist/web/context/agent_controlled_context_compactor.js +6 -2
- package/dist/web/context/anchored_context_compactor.js +5 -2
- package/dist/web/context/compaction_utils.js +4 -0
- package/dist/web/context/summarizers/llm_summarizer.js +6 -2
- package/dist/web/context/token_based_context_compactor.js +10 -3
- package/dist/web/context/trajectory_thought_pruning_compactor.js +6 -2
- package/dist/web/context/truncating_context_compactor.js +6 -2
- package/dist/web/environment/base_environment.js +71 -0
- package/dist/web/environment/local_environment.js +165 -0
- package/dist/web/events/compacted_event.js +4 -0
- package/dist/web/events/event.js +37 -3
- package/dist/web/events/event_actions.js +5 -0
- package/dist/web/events/structured_events.js +3 -0
- package/dist/web/examples/base_example_provider.js +7 -2
- package/dist/web/examples/example_util.js +4 -0
- package/dist/web/features/feature_registry.js +8 -0
- package/dist/web/index.js +4 -15
- package/dist/web/integrations/agent_registry/agent_registry.js +8 -4
- package/dist/web/integrations/agent_registry/agent_registry_mcp_toolset.js +5 -2
- package/dist/web/integrations/agent_registry/helpers.js +4 -0
- package/dist/web/memory/in_memory_memory_service.js +9 -2
- package/dist/web/memory/vertex_ai_memory_bank_service.js +17 -2
- package/dist/web/models/apigee_llm.js +9 -3
- package/dist/web/models/base_llm.js +8 -3
- package/dist/web/models/gemini_llm_connection.js +6 -2
- package/dist/web/models/google_llm.js +25 -13
- package/dist/web/models/interactions_utils.js +17 -0
- package/dist/web/models/llm_request.js +5 -0
- package/dist/web/models/llm_response.js +3 -0
- package/dist/web/models/registry.js +7 -2
- package/dist/web/models/routed_llm.js +4 -14
- package/dist/web/plugins/base_plugin.js +39 -5
- package/dist/web/plugins/global_instruction_plugin.js +6 -2
- package/dist/web/plugins/logging_plugin.js +14 -8
- package/dist/web/plugins/plugin_manager.js +38 -2
- package/dist/web/plugins/security_plugin.js +14 -6
- package/dist/web/runner/in_memory_runner.js +6 -2
- package/dist/web/runner/runner.js +232 -20
- package/dist/web/sessions/base_session_service.js +14 -2
- package/dist/web/sessions/database_session_service.js +6 -2
- package/dist/web/sessions/db/operations.js +34 -6
- package/dist/web/sessions/db/schema.js +16 -8
- package/dist/web/sessions/in_memory_session_service.js +23 -14
- package/dist/web/sessions/registry.js +5 -1
- package/dist/web/sessions/session.js +3 -0
- package/dist/web/sessions/state.js +77 -7
- package/dist/web/sessions/state_write_order.js +74 -0
- package/dist/web/sessions/vertex_ai_session_service.js +118 -15
- package/dist/web/skills/gcp_skill_registry.js +2 -0
- package/dist/web/skills/loader.js +22 -10
- package/dist/web/skills/prompt.js +4 -0
- package/dist/web/telemetry/google_cloud.js +54 -9
- package/dist/web/telemetry/setup.js +6 -0
- package/dist/web/telemetry/tracing.js +77 -7
- package/dist/web/tools/agent_tool.js +7 -2
- package/dist/web/tools/base_tool.js +25 -2
- package/dist/web/tools/base_toolset.js +7 -2
- package/dist/web/tools/consolidate_context_tool.js +6 -2
- package/dist/web/tools/enterprise_web_search_tool.js +7 -2
- package/dist/web/tools/example_tool.js +6 -2
- package/dist/web/tools/exit_loop_tool.js +6 -2
- package/dist/web/tools/finish_task_tool.js +92 -0
- package/dist/web/tools/forwarding_artifact_service.js +6 -2
- package/dist/web/tools/function_tool.js +74 -8
- package/dist/web/tools/get_user_choice_tool.js +4 -2
- package/dist/web/tools/google_maps_grounding_tool.js +7 -2
- package/dist/web/tools/google_search_tool.js +6 -2
- package/dist/web/tools/load_artifacts_tool.js +9 -2
- package/dist/web/tools/load_memory_tool.js +6 -2
- package/dist/web/tools/load_web_page.js +22 -1
- package/dist/web/tools/long_running_tool.js +5 -2
- package/dist/web/tools/mcp/index.js +11 -0
- package/dist/web/tools/mcp/load_mcp_resource_tool.js +6 -2
- package/dist/web/tools/mcp/mcp_session_manager.js +45 -9
- package/dist/web/tools/mcp/mcp_tool.js +6 -2
- package/dist/web/tools/mcp/mcp_toolset.js +5 -2
- package/dist/web/tools/openapi_tool/auth/auth_helpers.js +5 -0
- package/dist/web/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +2 -0
- package/dist/web/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +2 -0
- package/dist/web/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +30 -9
- package/dist/web/tools/openapi_tool/openapi_spec_parser/operation_parser.js +2 -0
- package/dist/web/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +6 -2
- package/dist/web/tools/openapi_tool/openapi_toolset.js +2 -0
- package/dist/web/tools/openapi_tool/rest_api_tool.js +23 -5
- package/dist/web/tools/preload_memory_tool.js +6 -2
- package/dist/web/tools/request_input_tool.js +7 -4
- package/dist/web/tools/skill/list_skills_tool.js +2 -0
- package/dist/web/tools/skill/load_skill_resource_tool.js +2 -0
- package/dist/web/tools/skill/load_skill_tool.js +4 -1
- package/dist/web/tools/skill/run_skill_inline_script_tool.js +26 -2
- package/dist/web/tools/skill/run_skill_script_tool.js +28 -2
- package/dist/web/tools/skill/search_skills_tool.js +2 -0
- package/dist/web/tools/skill/skill_toolset.js +25 -0
- package/dist/web/tools/tool_confirmation.js +24 -2
- package/dist/web/tools/url_context_tool.js +6 -2
- package/dist/web/tools/vertex_ai_search_tool.js +6 -2
- package/dist/web/tools/vertex_rag_retrieval_tool.js +6 -2
- package/dist/web/utils/async_hooks_shim.js +6 -2
- package/dist/web/utils/async_queue.js +46 -18
- package/dist/web/utils/branch_trie.js +3 -0
- package/dist/web/utils/case_utils.js +3 -0
- package/dist/web/utils/client_labels.js +6 -0
- package/dist/web/utils/crypto_shim.js +3 -0
- package/dist/web/utils/deprecated.js +40 -0
- package/dist/web/utils/env_aware_utils.js +41 -0
- package/dist/web/utils/error_utils.js +9 -0
- package/dist/web/utils/experimental.js +10 -2
- package/dist/web/utils/failover_utils.js +4 -0
- package/dist/web/utils/file_extension_utils.js +4 -0
- package/dist/web/utils/file_utils.js +7 -2
- package/dist/web/utils/gemini_schema_util.js +6 -2
- package/dist/web/utils/genai_schema_to_json.js +80 -0
- package/dist/web/utils/live_connection_utils.js +5 -2
- package/dist/web/utils/logger.js +14 -4
- package/dist/web/utils/model_name.js +9 -0
- package/dist/web/utils/object_notation_utils.js +8 -3
- package/dist/web/utils/optional_peer.js +38 -0
- package/dist/web/utils/output_schema_utils.js +3 -0
- package/dist/web/utils/partial_copy.js +3 -0
- package/dist/web/utils/redact_uri.js +39 -0
- package/dist/web/utils/schema.js +167 -0
- package/dist/web/utils/simple_zod_to_json.js +15 -4
- package/dist/web/utils/streaming_utils.js +14 -6
- package/dist/web/utils/task.js +8 -4
- package/dist/web/utils/variant_utils.js +5 -2
- package/dist/web/utils/vertex_ai_utils.js +5 -2
- package/dist/web/version.js +1 -1
- package/dist/web/workflow/base_node.js +215 -0
- package/dist/web/workflow/branch_path.js +77 -0
- package/dist/web/workflow/dynamic_node_scheduler.js +202 -0
- package/dist/web/workflow/errors.js +140 -0
- package/dist/web/workflow/graph.js +127 -0
- package/dist/web/workflow/index.js +80 -0
- package/dist/web/workflow/node.js +87 -0
- package/dist/web/workflow/node_builders.js +40 -0
- package/dist/web/workflow/node_context.js +236 -0
- package/dist/web/workflow/node_error_event.js +86 -0
- package/dist/web/workflow/node_runner.js +481 -0
- package/dist/web/workflow/node_state.js +43 -0
- package/dist/web/workflow/node_status.js +20 -0
- package/dist/web/workflow/nodes/function_node.js +221 -0
- package/dist/web/workflow/nodes/join_node.js +47 -0
- package/dist/web/workflow/nodes/node_tool.js +131 -0
- package/dist/web/workflow/nodes/parallel_worker.js +120 -0
- package/dist/web/workflow/nodes/tool_node.js +126 -0
- package/dist/web/workflow/request_input.js +36 -0
- package/dist/web/workflow/retry_config.js +43 -0
- package/dist/web/workflow/run_llm_agent_as_node.js +266 -0
- package/dist/web/workflow/run_node_as_invocation.js +170 -0
- package/dist/web/workflow/schedule_dynamic_node.js +26 -0
- package/dist/web/workflow/trigger.js +7 -0
- package/dist/web/workflow/utils/graph_parser.js +188 -0
- package/dist/web/workflow/utils/graph_validation.js +189 -0
- package/dist/web/workflow/utils/hitl_utils.js +239 -0
- package/dist/web/workflow/utils/rehydration_utils.js +342 -0
- package/dist/web/workflow/utils/retry_utils.js +82 -0
- package/dist/web/workflow/utils/workflow_graph_utils.js +115 -0
- package/dist/web/workflow/workflow.js +529 -0
- package/package.json +82 -8
|
@@ -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,7 +10,7 @@ const require = topLevelCreateRequire(import.meta.url);
|
|
|
8
10
|
import { injectSessionState } from "../agents/instructions.js";
|
|
9
11
|
import { ReadonlyContext } from "../agents/readonly_context.js";
|
|
10
12
|
import { BasePlugin } from "./base_plugin.js";
|
|
11
|
-
class
|
|
13
|
+
const _GlobalInstructionPlugin = class _GlobalInstructionPlugin extends BasePlugin {
|
|
12
14
|
/**
|
|
13
15
|
* Initializes the GlobalInstructionPlugin.
|
|
14
16
|
*
|
|
@@ -63,7 +65,9 @@ ${existingInstruction}`;
|
|
|
63
65
|
}
|
|
64
66
|
return await this.globalInstruction(readonlyContext);
|
|
65
67
|
}
|
|
66
|
-
}
|
|
68
|
+
};
|
|
69
|
+
__name(_GlobalInstructionPlugin, "GlobalInstructionPlugin");
|
|
70
|
+
let GlobalInstructionPlugin = _GlobalInstructionPlugin;
|
|
67
71
|
export {
|
|
68
72
|
GlobalInstructionPlugin
|
|
69
73
|
};
|
|
@@ -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
|
|
@@ -12,7 +14,7 @@ import {
|
|
|
12
14
|
} from "../events/event.js";
|
|
13
15
|
import { logger } from "../utils/logger.js";
|
|
14
16
|
import { BasePlugin } from "./base_plugin.js";
|
|
15
|
-
class
|
|
17
|
+
const _LoggingPlugin = class _LoggingPlugin extends BasePlugin {
|
|
16
18
|
/**
|
|
17
19
|
* Initialize the logging plugin.
|
|
18
20
|
*
|
|
@@ -25,13 +27,13 @@ class LoggingPlugin extends BasePlugin {
|
|
|
25
27
|
invocationContext,
|
|
26
28
|
userMessage
|
|
27
29
|
}) {
|
|
28
|
-
var _a;
|
|
30
|
+
var _a, _b;
|
|
29
31
|
this.log("\u{1F680} USER MESSAGE RECEIVED");
|
|
30
32
|
this.log(` Invocation ID: ${invocationContext.invocationId}`);
|
|
31
33
|
this.log(` Session ID: ${invocationContext.session.id}`);
|
|
32
34
|
this.log(` User ID: ${invocationContext.userId}`);
|
|
33
35
|
this.log(` App Name: ${invocationContext.appName}`);
|
|
34
|
-
this.log(` Root Agent: ${(_a = invocationContext.agent.name) != null ?
|
|
36
|
+
this.log(` Root Agent: ${(_b = (_a = invocationContext.agent) == null ? void 0 : _a.name) != null ? _b : "Unknown"}`);
|
|
35
37
|
this.log(` User Content: ${this.formatContent(userMessage)}`);
|
|
36
38
|
if (invocationContext.branch) {
|
|
37
39
|
this.log(` Branch: ${invocationContext.branch}`);
|
|
@@ -41,10 +43,12 @@ class LoggingPlugin extends BasePlugin {
|
|
|
41
43
|
async beforeRunCallback({
|
|
42
44
|
invocationContext
|
|
43
45
|
}) {
|
|
44
|
-
var _a;
|
|
46
|
+
var _a, _b;
|
|
45
47
|
this.log("\u{1F3C3} INVOCATION STARTING");
|
|
46
48
|
this.log(` Invocation ID: ${invocationContext.invocationId}`);
|
|
47
|
-
this.log(
|
|
49
|
+
this.log(
|
|
50
|
+
` Starting Agent: ${(_b = (_a = invocationContext.agent) == null ? void 0 : _a.name) != null ? _b : "Unknown"}`
|
|
51
|
+
);
|
|
48
52
|
return void 0;
|
|
49
53
|
}
|
|
50
54
|
async onEventCallback({
|
|
@@ -73,10 +77,10 @@ class LoggingPlugin extends BasePlugin {
|
|
|
73
77
|
async afterRunCallback({
|
|
74
78
|
invocationContext
|
|
75
79
|
}) {
|
|
76
|
-
var _a;
|
|
80
|
+
var _a, _b;
|
|
77
81
|
this.log("\u2705 INVOCATION COMPLETED");
|
|
78
82
|
this.log(` Invocation ID: ${invocationContext.invocationId}`);
|
|
79
|
-
this.log(` Final Agent: ${(_a = invocationContext.agent.name) != null ?
|
|
83
|
+
this.log(` Final Agent: ${(_b = (_a = invocationContext.agent) == null ? void 0 : _a.name) != null ? _b : "Unknown"}`);
|
|
80
84
|
return void 0;
|
|
81
85
|
}
|
|
82
86
|
async beforeAgentCallback({
|
|
@@ -229,7 +233,9 @@ class LoggingPlugin extends BasePlugin {
|
|
|
229
233
|
}
|
|
230
234
|
return formatted;
|
|
231
235
|
}
|
|
232
|
-
}
|
|
236
|
+
};
|
|
237
|
+
__name(_LoggingPlugin, "LoggingPlugin");
|
|
238
|
+
let LoggingPlugin = _LoggingPlugin;
|
|
233
239
|
export {
|
|
234
240
|
LoggingPlugin
|
|
235
241
|
};
|
|
@@ -1,12 +1,14 @@
|
|
|
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
|
|
6
8
|
* SPDX-License-Identifier: Apache-2.0
|
|
7
9
|
*/
|
|
8
10
|
import { logger } from "../utils/logger.js";
|
|
9
|
-
class
|
|
11
|
+
const _PluginManager = class _PluginManager {
|
|
10
12
|
/**
|
|
11
13
|
* Initializes the plugin service.
|
|
12
14
|
*
|
|
@@ -21,6 +23,10 @@ class PluginManager {
|
|
|
21
23
|
}
|
|
22
24
|
}
|
|
23
25
|
}
|
|
26
|
+
/** Whether any plugin is registered. */
|
|
27
|
+
get hasPlugins() {
|
|
28
|
+
return this.plugins.size > 0;
|
|
29
|
+
}
|
|
24
30
|
/**
|
|
25
31
|
* Registers a new plugin.
|
|
26
32
|
*
|
|
@@ -153,6 +159,34 @@ class PluginManager {
|
|
|
153
159
|
"afterAgentCallback"
|
|
154
160
|
);
|
|
155
161
|
}
|
|
162
|
+
/**
|
|
163
|
+
* Runs the `beforeNodeCallback` for all plugins.
|
|
164
|
+
*/
|
|
165
|
+
async runBeforeNodeCallback({
|
|
166
|
+
node,
|
|
167
|
+
nodeContext,
|
|
168
|
+
input
|
|
169
|
+
}) {
|
|
170
|
+
return this.runCallbacks(
|
|
171
|
+
this.plugins,
|
|
172
|
+
(plugin) => plugin.beforeNodeCallback({ node, nodeContext, input }),
|
|
173
|
+
"beforeNodeCallback"
|
|
174
|
+
);
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Runs the `afterNodeCallback` for all plugins.
|
|
178
|
+
*/
|
|
179
|
+
async runAfterNodeCallback({
|
|
180
|
+
node,
|
|
181
|
+
nodeContext,
|
|
182
|
+
output
|
|
183
|
+
}) {
|
|
184
|
+
return this.runCallbacks(
|
|
185
|
+
this.plugins,
|
|
186
|
+
(plugin) => plugin.afterNodeCallback({ node, nodeContext, output }),
|
|
187
|
+
"afterNodeCallback"
|
|
188
|
+
);
|
|
189
|
+
}
|
|
156
190
|
/**
|
|
157
191
|
* Runs the `beforeToolSelection` for all plugins.
|
|
158
192
|
*/
|
|
@@ -276,7 +310,9 @@ class PluginManager {
|
|
|
276
310
|
"onToolErrorCallback"
|
|
277
311
|
);
|
|
278
312
|
}
|
|
279
|
-
}
|
|
313
|
+
};
|
|
314
|
+
__name(_PluginManager, "PluginManager");
|
|
315
|
+
let PluginManager = _PluginManager;
|
|
280
316
|
export {
|
|
281
317
|
PluginManager
|
|
282
318
|
};
|
|
@@ -1,12 +1,14 @@
|
|
|
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
|
|
6
8
|
* SPDX-License-Identifier: Apache-2.0
|
|
7
9
|
*/
|
|
10
|
+
import { REQUEST_CONFIRMATION_FUNCTION_CALL_NAME } from "../agents/functions.js";
|
|
8
11
|
import { BasePlugin } from "../plugins/base_plugin.js";
|
|
9
|
-
const REQUEST_CONFIRMATION_FUNCTION_CALL_NAME = "adk_request_confirmation";
|
|
10
12
|
const TOOL_CALL_SECURITY_CHECK_STATES = "orcas_tool_call_security_check_states";
|
|
11
13
|
const INTERMEDIATE_REQUIRE_TOOL_CALL_CONFIRMATION_ERROR = "This tool call needs external confirmation before completion.";
|
|
12
14
|
var PolicyOutcome = /* @__PURE__ */ ((PolicyOutcome2) => {
|
|
@@ -15,20 +17,23 @@ var PolicyOutcome = /* @__PURE__ */ ((PolicyOutcome2) => {
|
|
|
15
17
|
PolicyOutcome2["ALLOW"] = "ALLOW";
|
|
16
18
|
return PolicyOutcome2;
|
|
17
19
|
})(PolicyOutcome || {});
|
|
18
|
-
class
|
|
20
|
+
const _InMemoryPolicyEngine = class _InMemoryPolicyEngine {
|
|
19
21
|
/**
|
|
20
22
|
* Always returns {@link PolicyOutcome.ALLOW} for every tool call.
|
|
21
23
|
*
|
|
24
|
+
* @param _context - The tool and its arguments; ignored.
|
|
22
25
|
* @returns A promise resolving to an ALLOW result.
|
|
23
26
|
*/
|
|
24
|
-
async evaluate() {
|
|
27
|
+
async evaluate(_context) {
|
|
25
28
|
return Promise.resolve({
|
|
26
29
|
outcome: "ALLOW" /* ALLOW */,
|
|
27
30
|
reason: "For prototyping purpose, all tool calls are allowed."
|
|
28
31
|
});
|
|
29
32
|
}
|
|
30
|
-
}
|
|
31
|
-
|
|
33
|
+
};
|
|
34
|
+
__name(_InMemoryPolicyEngine, "InMemoryPolicyEngine");
|
|
35
|
+
let InMemoryPolicyEngine = _InMemoryPolicyEngine;
|
|
36
|
+
const _SecurityPlugin = class _SecurityPlugin extends BasePlugin {
|
|
32
37
|
/**
|
|
33
38
|
* @param params - Optional configuration. Defaults to {@link InMemoryPolicyEngine}
|
|
34
39
|
* when no policy engine is provided.
|
|
@@ -118,7 +123,9 @@ class SecurityPlugin extends BasePlugin {
|
|
|
118
123
|
return;
|
|
119
124
|
}
|
|
120
125
|
}
|
|
121
|
-
}
|
|
126
|
+
};
|
|
127
|
+
__name(_SecurityPlugin, "SecurityPlugin");
|
|
128
|
+
let SecurityPlugin = _SecurityPlugin;
|
|
122
129
|
function getAskUserConfirmationFunctionCalls(event) {
|
|
123
130
|
if (!event.content || !event.content.parts) {
|
|
124
131
|
return [];
|
|
@@ -131,6 +138,7 @@ function getAskUserConfirmationFunctionCalls(event) {
|
|
|
131
138
|
}
|
|
132
139
|
return results;
|
|
133
140
|
}
|
|
141
|
+
__name(getAskUserConfirmationFunctionCalls, "getAskUserConfirmationFunctionCalls");
|
|
134
142
|
export {
|
|
135
143
|
InMemoryPolicyEngine,
|
|
136
144
|
PolicyOutcome,
|
|
@@ -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
|
|
@@ -9,7 +11,7 @@ import { InMemoryArtifactService } from "../artifacts/in_memory_artifact_service
|
|
|
9
11
|
import { InMemoryMemoryService } from "../memory/in_memory_memory_service.js";
|
|
10
12
|
import { InMemorySessionService } from "../sessions/in_memory_session_service.js";
|
|
11
13
|
import { Runner } from "./runner.js";
|
|
12
|
-
class
|
|
14
|
+
const _InMemoryRunner = class _InMemoryRunner extends Runner {
|
|
13
15
|
/**
|
|
14
16
|
* Creates a new InMemoryRunner instance.
|
|
15
17
|
*
|
|
@@ -40,7 +42,9 @@ class InMemoryRunner extends Runner {
|
|
|
40
42
|
resumabilityConfig: (_a = app == null ? void 0 : app.resumabilityConfig) != null ? _a : resumabilityConfig
|
|
41
43
|
});
|
|
42
44
|
}
|
|
43
|
-
}
|
|
45
|
+
};
|
|
46
|
+
__name(_InMemoryRunner, "InMemoryRunner");
|
|
47
|
+
let InMemoryRunner = _InMemoryRunner;
|
|
44
48
|
export {
|
|
45
49
|
InMemoryRunner
|
|
46
50
|
};
|
|
@@ -1,17 +1,22 @@
|
|
|
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
|
|
6
8
|
* SPDX-License-Identifier: Apache-2.0
|
|
7
9
|
*/
|
|
8
10
|
var _a;
|
|
9
|
-
import { createPartFromText } from "@google/genai";
|
|
11
|
+
import { createPartFromText, Modality } from "@google/genai";
|
|
10
12
|
import { context, trace } from "@opentelemetry/api";
|
|
13
|
+
import { isBaseAgent } from "../agents/base_agent.js";
|
|
14
|
+
import { reservedFunctionCallName } from "../agents/framework_function_calls.js";
|
|
11
15
|
import { findMatchingFunctionCall } from "../agents/functions.js";
|
|
12
16
|
import {
|
|
13
17
|
InvocationContext,
|
|
14
|
-
newInvocationContextId
|
|
18
|
+
newInvocationContextId,
|
|
19
|
+
requireAgent
|
|
15
20
|
} from "../agents/invocation_context.js";
|
|
16
21
|
import { isLlmAgent } from "../agents/llm_agent.js";
|
|
17
22
|
import { createRunConfig } from "../agents/run_config.js";
|
|
@@ -30,12 +35,17 @@ import {
|
|
|
30
35
|
import { isBaseToolset } from "../tools/base_toolset.js";
|
|
31
36
|
import { logger } from "../utils/logger.js";
|
|
32
37
|
import { isGemini2OrAbove } from "../utils/model_name.js";
|
|
38
|
+
import {
|
|
39
|
+
asRunnableRoot,
|
|
40
|
+
runNodeAsInvocation
|
|
41
|
+
} from "../workflow/run_node_as_invocation.js";
|
|
33
42
|
const RUNNER_SIGNATURE_SYMBOL = Symbol.for("google.adk.runner");
|
|
34
43
|
function isRunner(obj) {
|
|
35
44
|
return typeof obj === "object" && obj !== null && RUNNER_SIGNATURE_SYMBOL in obj && obj[RUNNER_SIGNATURE_SYMBOL] === true;
|
|
36
45
|
}
|
|
46
|
+
__name(isRunner, "isRunner");
|
|
37
47
|
_a = RUNNER_SIGNATURE_SYMBOL;
|
|
38
|
-
class
|
|
48
|
+
const _Runner = class _Runner {
|
|
39
49
|
/**
|
|
40
50
|
* Creates a new Runner instance.
|
|
41
51
|
*
|
|
@@ -52,7 +62,7 @@ class Runner {
|
|
|
52
62
|
);
|
|
53
63
|
}
|
|
54
64
|
this.appName = appName;
|
|
55
|
-
this.agent = agent;
|
|
65
|
+
this.agent = asRunnableRoot(agent);
|
|
56
66
|
const appPlugins = (_f = (_e = input.app) == null ? void 0 : _e.plugins) != null ? _f : [];
|
|
57
67
|
const configPlugins = (_g = input.plugins) != null ? _g : [];
|
|
58
68
|
this.pluginManager = new PluginManager([...appPlugins, ...configPlugins]);
|
|
@@ -113,6 +123,7 @@ class Runner {
|
|
|
113
123
|
if (newMessage && !newMessage.role) {
|
|
114
124
|
newMessage.role = "user";
|
|
115
125
|
}
|
|
126
|
+
rejectReservedFunctionCalls(newMessage);
|
|
116
127
|
const span = tracer.startSpan("invocation");
|
|
117
128
|
const ctx = trace.setSpan(context.active(), span);
|
|
118
129
|
try {
|
|
@@ -159,7 +170,7 @@ class Runner {
|
|
|
159
170
|
memoryService: this.memoryService,
|
|
160
171
|
credentialService: this.credentialService,
|
|
161
172
|
invocationId: newInvocationContextId(),
|
|
162
|
-
agent: this.agent,
|
|
173
|
+
agent: isBaseAgent(this.agent) ? this.agent : void 0,
|
|
163
174
|
session,
|
|
164
175
|
userContent: newMessage,
|
|
165
176
|
runConfig,
|
|
@@ -205,10 +216,12 @@ class Runner {
|
|
|
205
216
|
return;
|
|
206
217
|
}
|
|
207
218
|
}
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
219
|
+
if (isBaseAgent(this.agent)) {
|
|
220
|
+
invocationContext.agent = this.determineAgentForResumption(
|
|
221
|
+
session,
|
|
222
|
+
this.agent
|
|
223
|
+
);
|
|
224
|
+
}
|
|
212
225
|
if (newMessage) {
|
|
213
226
|
const beforeRunCallbackResponse = await this.pluginManager.runBeforeRunCallback({
|
|
214
227
|
invocationContext
|
|
@@ -231,9 +244,7 @@ class Runner {
|
|
|
231
244
|
}
|
|
232
245
|
yield earlyExitEvent;
|
|
233
246
|
} else {
|
|
234
|
-
for await (const event of
|
|
235
|
-
invocationContext
|
|
236
|
-
)) {
|
|
247
|
+
for await (const event of this.runRoot(invocationContext)) {
|
|
237
248
|
if ((_h = params.abortSignal) == null ? void 0 : _h.aborted) {
|
|
238
249
|
return;
|
|
239
250
|
}
|
|
@@ -270,10 +281,29 @@ class Runner {
|
|
|
270
281
|
);
|
|
271
282
|
} finally {
|
|
272
283
|
span.end();
|
|
273
|
-
const toolsets = getAllToolsets(this.agent);
|
|
284
|
+
const toolsets = isBaseAgent(this.agent) ? getAllToolsets(this.agent) : [];
|
|
274
285
|
await Promise.allSettled(toolsets.map((t) => t.close()));
|
|
275
286
|
}
|
|
276
287
|
}
|
|
288
|
+
/**
|
|
289
|
+
* Runs whatever this runner was given as its root.
|
|
290
|
+
*
|
|
291
|
+
* An agent is run through `runAsync`, as always. A bare node — a `Workflow`
|
|
292
|
+
* handed to the runner directly — is driven by {@link runNodeAsInvocation}.
|
|
293
|
+
*
|
|
294
|
+
* Only the execution differs. Everything around it (the run callbacks, event
|
|
295
|
+
* persistence, cancellation) is shared, so the node path cannot drift from
|
|
296
|
+
* the agent path on the things that are not about execution. adk-python has
|
|
297
|
+
* two separate loops here and a TODO noting its node one lacks tracing and
|
|
298
|
+
* plugins; there is nothing to lack if there is only one loop.
|
|
299
|
+
*/
|
|
300
|
+
async *runRoot(invocationContext) {
|
|
301
|
+
if (isBaseAgent(this.agent)) {
|
|
302
|
+
yield* requireAgent(invocationContext).runAsync(invocationContext);
|
|
303
|
+
return;
|
|
304
|
+
}
|
|
305
|
+
yield* runNodeAsInvocation(this.agent, invocationContext);
|
|
306
|
+
}
|
|
277
307
|
/**
|
|
278
308
|
* Saves artifacts from the message parts and replaces the inline data with
|
|
279
309
|
* a file name placeholder and optional file reference.
|
|
@@ -372,8 +402,150 @@ class Runner {
|
|
|
372
402
|
isRoutableLlmAgent(agentToRun) {
|
|
373
403
|
return isRoutableLlmAgent(agentToRun);
|
|
374
404
|
}
|
|
375
|
-
|
|
405
|
+
/**
|
|
406
|
+
* Runs the agent in the live (bidirectional streaming) mode.
|
|
407
|
+
*
|
|
408
|
+
* Model media events that carry raw inline bytes (audio, video, or image)
|
|
409
|
+
* are yielded but not appended to the session to avoid persisting large
|
|
410
|
+
* blobs; events with `fileData` references and most other live events
|
|
411
|
+
* (transcriptions, tool calls, usage) are persisted as in `runAsync`.
|
|
412
|
+
*
|
|
413
|
+
* This feature is **experimental** and its API may change.
|
|
414
|
+
*
|
|
415
|
+
* @param params.userId The user ID of the session.
|
|
416
|
+
* @param params.sessionId The session ID of the session.
|
|
417
|
+
* @param params.liveRequestQueue The queue used to feed the live model.
|
|
418
|
+
* @param params.runConfig The run config for the agent.
|
|
419
|
+
* @param params.abortSignal Optional signal to abort the live run.
|
|
420
|
+
* @param params.liveSessionResumptionHandle Optional session resumption
|
|
421
|
+
* handle observed from a prior `runLive` cycle on the same conversation.
|
|
422
|
+
* When set, the agent's live flow opens the connection with
|
|
423
|
+
* `liveConnectConfig.sessionResumption.handle` so the server restores its
|
|
424
|
+
* state instead of relying on client-side history replay.
|
|
425
|
+
* @yields The events generated by the agent.
|
|
426
|
+
*/
|
|
427
|
+
async *runLive(params) {
|
|
428
|
+
var _a2, _b, _c, _d;
|
|
429
|
+
if (!params.liveRequestQueue) {
|
|
430
|
+
throw new Error("liveRequestQueue is required for runLive.");
|
|
431
|
+
}
|
|
432
|
+
if (!isBaseAgent(this.agent)) {
|
|
433
|
+
throw new Error("runLive is only supported for agents.");
|
|
434
|
+
}
|
|
435
|
+
const agent = this.agent;
|
|
436
|
+
const runConfig = createRunConfig(params.runConfig);
|
|
437
|
+
if (!((_a2 = runConfig.responseModalities) == null ? void 0 : _a2.length)) {
|
|
438
|
+
runConfig.responseModalities = [Modality.AUDIO];
|
|
439
|
+
}
|
|
440
|
+
if ((_b = agent.subAgents) == null ? void 0 : _b.length) {
|
|
441
|
+
if (runConfig.responseModalities.includes(Modality.AUDIO)) {
|
|
442
|
+
(_c = runConfig.outputAudioTranscription) != null ? _c : runConfig.outputAudioTranscription = {};
|
|
443
|
+
}
|
|
444
|
+
(_d = runConfig.inputAudioTranscription) != null ? _d : runConfig.inputAudioTranscription = {};
|
|
445
|
+
}
|
|
446
|
+
const span = tracer.startSpan("invocation");
|
|
447
|
+
const ctx = trace.setSpan(context.active(), span);
|
|
448
|
+
try {
|
|
449
|
+
yield* runAsyncGeneratorWithOtelContext(
|
|
450
|
+
ctx,
|
|
451
|
+
this,
|
|
452
|
+
async function* () {
|
|
453
|
+
var _a3, _b2, _c2, _d2;
|
|
454
|
+
const session = await this.sessionService.getOrCreateSession({
|
|
455
|
+
appName: this.appName,
|
|
456
|
+
userId: params.userId,
|
|
457
|
+
sessionId: params.sessionId
|
|
458
|
+
});
|
|
459
|
+
if ((_a3 = params.abortSignal) == null ? void 0 : _a3.aborted) {
|
|
460
|
+
return;
|
|
461
|
+
}
|
|
462
|
+
const invocationContext = new InvocationContext({
|
|
463
|
+
artifactService: this.artifactService ? new ScopedArtifactService(
|
|
464
|
+
this.artifactService,
|
|
465
|
+
this.appName,
|
|
466
|
+
params.userId,
|
|
467
|
+
params.sessionId
|
|
468
|
+
) : void 0,
|
|
469
|
+
sessionService: this.sessionService,
|
|
470
|
+
memoryService: this.memoryService,
|
|
471
|
+
credentialService: this.credentialService,
|
|
472
|
+
invocationId: newInvocationContextId(),
|
|
473
|
+
agent,
|
|
474
|
+
session,
|
|
475
|
+
runConfig,
|
|
476
|
+
pluginManager: this.pluginManager,
|
|
477
|
+
liveRequestQueue: params.liveRequestQueue,
|
|
478
|
+
abortSignal: params.abortSignal,
|
|
479
|
+
liveSessionResumptionHandle: params.liveSessionResumptionHandle
|
|
480
|
+
});
|
|
481
|
+
invocationContext.agent = this.determineAgentForResumption(
|
|
482
|
+
session,
|
|
483
|
+
agent
|
|
484
|
+
);
|
|
485
|
+
const beforeRunCallbackResponse = await this.pluginManager.runBeforeRunCallback({
|
|
486
|
+
invocationContext
|
|
487
|
+
});
|
|
488
|
+
if ((_b2 = params.abortSignal) == null ? void 0 : _b2.aborted) {
|
|
489
|
+
return;
|
|
490
|
+
}
|
|
491
|
+
if (beforeRunCallbackResponse) {
|
|
492
|
+
const earlyExitEvent = createEvent({
|
|
493
|
+
invocationId: invocationContext.invocationId,
|
|
494
|
+
author: "model",
|
|
495
|
+
content: beforeRunCallbackResponse
|
|
496
|
+
});
|
|
497
|
+
await this.sessionService.appendEvent({
|
|
498
|
+
session,
|
|
499
|
+
event: earlyExitEvent
|
|
500
|
+
});
|
|
501
|
+
yield earlyExitEvent;
|
|
502
|
+
return;
|
|
503
|
+
}
|
|
504
|
+
for await (const event of requireAgent(invocationContext).runLive(
|
|
505
|
+
invocationContext
|
|
506
|
+
)) {
|
|
507
|
+
if ((_c2 = params.abortSignal) == null ? void 0 : _c2.aborted) {
|
|
508
|
+
return;
|
|
509
|
+
}
|
|
510
|
+
const modifiedEvent = await this.pluginManager.runOnEventCallback({
|
|
511
|
+
invocationContext,
|
|
512
|
+
event
|
|
513
|
+
});
|
|
514
|
+
if ((_d2 = params.abortSignal) == null ? void 0 : _d2.aborted) {
|
|
515
|
+
return;
|
|
516
|
+
}
|
|
517
|
+
const eventToProcess = modifiedEvent != null ? modifiedEvent : event;
|
|
518
|
+
if (!eventToProcess.partial && !isLiveModelMediaEventWithInlineData(eventToProcess)) {
|
|
519
|
+
await this.sessionService.appendEvent({
|
|
520
|
+
session,
|
|
521
|
+
event: eventToProcess
|
|
522
|
+
});
|
|
523
|
+
}
|
|
524
|
+
yield eventToProcess;
|
|
525
|
+
}
|
|
526
|
+
await this.pluginManager.runAfterRunCallback({ invocationContext });
|
|
527
|
+
}
|
|
528
|
+
);
|
|
529
|
+
} finally {
|
|
530
|
+
span.end();
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
};
|
|
534
|
+
__name(_Runner, "Runner");
|
|
535
|
+
let Runner = _Runner;
|
|
536
|
+
function isLiveModelMediaEventWithInlineData(event) {
|
|
537
|
+
var _a2;
|
|
538
|
+
const parts = (_a2 = event.content) == null ? void 0 : _a2.parts;
|
|
539
|
+
if (!(parts == null ? void 0 : parts.length)) {
|
|
540
|
+
return false;
|
|
541
|
+
}
|
|
542
|
+
return parts.some((part) => {
|
|
543
|
+
var _a3, _b;
|
|
544
|
+
const mimeType = (_b = (_a3 = part.inlineData) == null ? void 0 : _a3.mimeType) == null ? void 0 : _b.toLowerCase();
|
|
545
|
+
return mimeType !== void 0 && (mimeType.startsWith("audio/") || mimeType.startsWith("video/") || mimeType.startsWith("image/"));
|
|
546
|
+
});
|
|
376
547
|
}
|
|
548
|
+
__name(isLiveModelMediaEventWithInlineData, "isLiveModelMediaEventWithInlineData");
|
|
377
549
|
function determineAgentForResumption(session, rootAgent, resumabilityConfig) {
|
|
378
550
|
const event = findEventByLastFunctionResponseId(session.events);
|
|
379
551
|
const isResumable = Boolean(resumabilityConfig == null ? void 0 : resumabilityConfig.isResumable);
|
|
@@ -382,9 +554,11 @@ function determineAgentForResumption(session, rootAgent, resumabilityConfig) {
|
|
|
382
554
|
if (resumedAgent) {
|
|
383
555
|
return resumedAgent;
|
|
384
556
|
}
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
557
|
+
if (!isWorkflowNodeEvent(event)) {
|
|
558
|
+
logger.warn(
|
|
559
|
+
`Function response from an unknown agent: ${event.author}, event id: ${event.id}`
|
|
560
|
+
);
|
|
561
|
+
}
|
|
388
562
|
}
|
|
389
563
|
for (let i = session.events.length - 1; i >= 0; i--) {
|
|
390
564
|
logger.debug("event:", JSON.stringify(session.events[i]));
|
|
@@ -397,9 +571,11 @@ function determineAgentForResumption(session, rootAgent, resumabilityConfig) {
|
|
|
397
571
|
}
|
|
398
572
|
const agent = rootAgent.findSubAgent(event2.author);
|
|
399
573
|
if (!agent) {
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
574
|
+
if (!isWorkflowNodeEvent(event2)) {
|
|
575
|
+
logger.warn(
|
|
576
|
+
`Event from an unknown agent: ${event2.author}, event id: ${event2.id}`
|
|
577
|
+
);
|
|
578
|
+
}
|
|
403
579
|
continue;
|
|
404
580
|
}
|
|
405
581
|
if (isRoutableLlmAgent(agent)) {
|
|
@@ -408,6 +584,12 @@ function determineAgentForResumption(session, rootAgent, resumabilityConfig) {
|
|
|
408
584
|
}
|
|
409
585
|
return rootAgent;
|
|
410
586
|
}
|
|
587
|
+
__name(determineAgentForResumption, "determineAgentForResumption");
|
|
588
|
+
function isWorkflowNodeEvent(event) {
|
|
589
|
+
var _a2;
|
|
590
|
+
return Boolean((_a2 = event.nodeInfo) == null ? void 0 : _a2.path);
|
|
591
|
+
}
|
|
592
|
+
__name(isWorkflowNodeEvent, "isWorkflowNodeEvent");
|
|
411
593
|
function isRoutableLlmAgent(agentToRun) {
|
|
412
594
|
let agent = agentToRun;
|
|
413
595
|
while (agent) {
|
|
@@ -421,10 +603,12 @@ function isRoutableLlmAgent(agentToRun) {
|
|
|
421
603
|
}
|
|
422
604
|
return true;
|
|
423
605
|
}
|
|
606
|
+
__name(isRoutableLlmAgent, "isRoutableLlmAgent");
|
|
424
607
|
function findEventByLastFunctionResponseId(events) {
|
|
425
608
|
var _a2;
|
|
426
609
|
return (_a2 = findMatchingFunctionCall(events)) != null ? _a2 : null;
|
|
427
610
|
}
|
|
611
|
+
__name(findEventByLastFunctionResponseId, "findEventByLastFunctionResponseId");
|
|
428
612
|
function getAllToolsets(agent) {
|
|
429
613
|
const toolsets = [];
|
|
430
614
|
const visited = /* @__PURE__ */ new Set();
|
|
@@ -442,9 +626,20 @@ function getAllToolsets(agent) {
|
|
|
442
626
|
traverse(sub);
|
|
443
627
|
}
|
|
444
628
|
}
|
|
629
|
+
__name(traverse, "traverse");
|
|
445
630
|
traverse(agent);
|
|
446
631
|
return toolsets;
|
|
447
632
|
}
|
|
633
|
+
__name(getAllToolsets, "getAllToolsets");
|
|
634
|
+
function rejectReservedFunctionCalls(newMessage) {
|
|
635
|
+
const reserved = reservedFunctionCallName(newMessage);
|
|
636
|
+
if (reserved) {
|
|
637
|
+
throw new Error(
|
|
638
|
+
`A client message may not contain a '${reserved}' function call: it is raised by the framework, and can only be answered with a function response.`
|
|
639
|
+
);
|
|
640
|
+
}
|
|
641
|
+
}
|
|
642
|
+
__name(rejectReservedFunctionCalls, "rejectReservedFunctionCalls");
|
|
448
643
|
export {
|
|
449
644
|
Runner,
|
|
450
645
|
determineAgentForResumption,
|
|
@@ -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
|
|
@@ -7,7 +9,8 @@ const require = topLevelCreateRequire(import.meta.url);
|
|
|
7
9
|
*/
|
|
8
10
|
import { cloneDeep } from "lodash-es";
|
|
9
11
|
import { State } from "./state.js";
|
|
10
|
-
|
|
12
|
+
import { carryDeltaStamps, shouldApplyDeltaWrite } from "./state_write_order.js";
|
|
13
|
+
const _BaseSessionService = class _BaseSessionService {
|
|
11
14
|
/**
|
|
12
15
|
* Gets a session or creates one if it doesn't exist.
|
|
13
16
|
*
|
|
@@ -61,6 +64,9 @@ class BaseSessionService {
|
|
|
61
64
|
if (key.startsWith(State.TEMP_PREFIX)) {
|
|
62
65
|
continue;
|
|
63
66
|
}
|
|
67
|
+
if (!shouldApplyDeltaWrite(session.state, event.actions.stateDelta, key)) {
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
64
70
|
Object.defineProperty(session.state, key, {
|
|
65
71
|
value,
|
|
66
72
|
writable: true,
|
|
@@ -69,7 +75,9 @@ class BaseSessionService {
|
|
|
69
75
|
});
|
|
70
76
|
}
|
|
71
77
|
}
|
|
72
|
-
}
|
|
78
|
+
};
|
|
79
|
+
__name(_BaseSessionService, "BaseSessionService");
|
|
80
|
+
let BaseSessionService = _BaseSessionService;
|
|
73
81
|
function trimTempDeltaState(event) {
|
|
74
82
|
if (!event.actions || !event.actions.stateDelta) {
|
|
75
83
|
return event;
|
|
@@ -81,9 +89,11 @@ function trimTempDeltaState(event) {
|
|
|
81
89
|
filteredStateDelta[key] = value;
|
|
82
90
|
}
|
|
83
91
|
}
|
|
92
|
+
carryDeltaStamps(stateDelta, filteredStateDelta);
|
|
84
93
|
event.actions.stateDelta = filteredStateDelta;
|
|
85
94
|
return event;
|
|
86
95
|
}
|
|
96
|
+
__name(trimTempDeltaState, "trimTempDeltaState");
|
|
87
97
|
function trimTempState(state) {
|
|
88
98
|
const filteredState = /* @__PURE__ */ Object.create(null);
|
|
89
99
|
for (const [key, value] of Object.entries(state)) {
|
|
@@ -93,6 +103,7 @@ function trimTempState(state) {
|
|
|
93
103
|
}
|
|
94
104
|
return filteredState;
|
|
95
105
|
}
|
|
106
|
+
__name(trimTempState, "trimTempState");
|
|
96
107
|
function mergeStates(appState = {}, userState = {}, sessionState = {}) {
|
|
97
108
|
const merged = cloneDeep(sessionState);
|
|
98
109
|
for (const [k, v] of Object.entries(appState)) {
|
|
@@ -103,6 +114,7 @@ function mergeStates(appState = {}, userState = {}, sessionState = {}) {
|
|
|
103
114
|
}
|
|
104
115
|
return merged;
|
|
105
116
|
}
|
|
117
|
+
__name(mergeStates, "mergeStates");
|
|
106
118
|
export {
|
|
107
119
|
BaseSessionService,
|
|
108
120
|
mergeStates,
|