@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.
- package/dist/cjs/a2a/a2a_event.js +18 -0
- package/dist/cjs/a2a/a2a_remote_agent.js +17 -4
- 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 -11
- package/dist/cjs/a2a/auth.js +68 -0
- package/dist/cjs/a2a/event_converter_utils.js +50 -15
- 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 +58 -23
- 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 +536 -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 +8 -4
- 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 +11 -25
- 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 +8 -3
- 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 +19 -11
- 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 +19 -5
- 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 +31 -14
- package/dist/cjs/common.js +112 -1
- package/dist/cjs/context/agent_controlled_context_compactor.js +7 -13
- package/dist/cjs/context/anchored_context_compactor.js +5 -2
- package/dist/cjs/context/compaction_utils.js +17 -2
- package/dist/cjs/context/summarizers/llm_summarizer.js +5 -2
- package/dist/cjs/context/token_based_context_compactor.js +11 -23
- 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 -22
- 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 +21 -4
- package/dist/cjs/memory/vertex_ai_memory_bank_service.js +20 -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 +43 -7
- 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 +226 -29
- package/dist/cjs/sessions/base_session_service.js +21 -5
- 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 +30 -22
- 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 +132 -25
- package/dist/cjs/skills/gcp_skill_registry.js +2 -0
- package/dist/cjs/skills/loader.js +62 -16
- 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 +54 -0
- 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 +69 -27
- 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 +56 -0
- 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 +45 -0
- package/dist/cjs/utils/deprecated.js +68 -0
- package/dist/cjs/utils/env_aware_utils.js +56 -13
- package/dist/cjs/utils/error_utils.js +128 -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 +12 -4
- 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 +45 -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 +6 -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 +18 -4
- 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 -16
- package/dist/esm/a2a/auth.js +41 -0
- package/dist/esm/a2a/event_converter_utils.js +51 -15
- 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 +62 -20
- 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 +537 -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 +9 -4
- 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 +12 -25
- 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 +9 -3
- 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 +20 -11
- 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 +20 -5
- 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 +31 -13
- package/dist/esm/common.js +113 -4
- package/dist/esm/context/agent_controlled_context_compactor.js +8 -13
- package/dist/esm/context/anchored_context_compactor.js +6 -2
- package/dist/esm/context/compaction_utils.js +16 -1
- package/dist/esm/context/summarizers/llm_summarizer.js +6 -2
- package/dist/esm/context/token_based_context_compactor.js +16 -24
- 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 -13
- 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 +22 -4
- package/dist/esm/memory/vertex_ai_memory_bank_service.js +25 -3
- 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 +43 -7
- 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 +233 -31
- package/dist/esm/sessions/base_session_service.js +22 -5
- 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 +31 -22
- 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 +136 -26
- package/dist/esm/skills/gcp_skill_registry.js +2 -0
- package/dist/esm/skills/loader.js +63 -16
- 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 +27 -0
- 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 +80 -30
- 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 +29 -0
- 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 +18 -0
- package/dist/esm/utils/deprecated.js +40 -0
- package/dist/esm/utils/env_aware_utils.js +56 -13
- package/dist/esm/utils/error_utils.js +101 -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 +13 -4
- 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 +18 -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 +7 -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/auth.d.ts +30 -0
- package/dist/types/a2a/event_converter_utils.d.ts +4 -1
- 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/auth/credential_service/in_memory_credential_service.d.ts +11 -0
- package/dist/types/code_executors/unsafe_local_code_executor.d.ts +5 -1
- package/dist/types/common.d.ts +20 -8
- package/dist/types/context/agent_controlled_context_compactor.d.ts +0 -1
- package/dist/types/context/compaction_utils.d.ts +8 -0
- package/dist/types/context/token_based_context_compactor.d.ts +0 -1
- 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 +6 -13
- package/dist/types/memory/in_memory_memory_service.d.ts +11 -0
- 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 +39 -2
- 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 +10 -2
- package/dist/types/sessions/in_memory_session_service.d.ts +9 -0
- package/dist/types/sessions/state.d.ts +34 -1
- package/dist/types/sessions/state_write_order.d.ts +39 -0
- package/dist/types/sessions/vertex_ai_session_service.d.ts +19 -1
- package/dist/types/skills/loader.d.ts +5 -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/get_user_choice_tool.d.ts +14 -0
- 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 +20 -0
- 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/crypto_shim.d.ts +16 -0
- package/dist/types/utils/deprecated.d.ts +21 -0
- package/dist/types/utils/env_aware_utils.d.ts +39 -0
- package/dist/types/utils/error_utils.d.ts +18 -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/output_schema_utils.d.ts +18 -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 +5 -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 +18 -4
- 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 -16
- package/dist/web/a2a/auth.js +41 -0
- package/dist/web/a2a/event_converter_utils.js +50 -15
- 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 +62 -20
- 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 +631 -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 +8 -4
- 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 +12 -25
- 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 +9 -3
- 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 +20 -11
- 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 +20 -5
- 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 +31 -13
- package/dist/web/common.js +113 -4
- package/dist/web/context/agent_controlled_context_compactor.js +8 -13
- package/dist/web/context/anchored_context_compactor.js +5 -2
- package/dist/web/context/compaction_utils.js +16 -1
- package/dist/web/context/summarizers/llm_summarizer.js +6 -2
- package/dist/web/context/token_based_context_compactor.js +16 -24
- 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 -13
- 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 +22 -4
- package/dist/web/memory/vertex_ai_memory_bank_service.js +24 -3
- 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 +43 -7
- 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 +249 -31
- package/dist/web/sessions/base_session_service.js +22 -5
- 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 +31 -22
- 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 +142 -26
- package/dist/web/skills/gcp_skill_registry.js +2 -0
- package/dist/web/skills/loader.js +62 -16
- 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 +27 -0
- 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 +80 -30
- 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 +29 -0
- 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 +18 -0
- package/dist/web/utils/deprecated.js +40 -0
- package/dist/web/utils/env_aware_utils.js +56 -13
- package/dist/web/utils/error_utils.js +101 -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 +12 -4
- 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 +18 -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 +7 -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
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import {createRequire as topLevelCreateRequire} from 'module';
|
|
2
|
+
const require = topLevelCreateRequire(import.meta.url);
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
5
|
+
/**
|
|
6
|
+
* @license
|
|
7
|
+
* Copyright 2026 Google LLC
|
|
8
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
9
|
+
*/
|
|
10
|
+
const _NodeInterruptedError = class _NodeInterruptedError extends Error {
|
|
11
|
+
constructor(message = "Node interrupted (awaiting resume input).") {
|
|
12
|
+
super(message);
|
|
13
|
+
this.name = "NodeInterruptedError";
|
|
14
|
+
Object.setPrototypeOf(this, _NodeInterruptedError.prototype);
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
__name(_NodeInterruptedError, "NodeInterruptedError");
|
|
18
|
+
let NodeInterruptedError = _NodeInterruptedError;
|
|
19
|
+
function isNodeInterruptedError(e) {
|
|
20
|
+
return e instanceof Error && e.name === "NodeInterruptedError";
|
|
21
|
+
}
|
|
22
|
+
__name(isNodeInterruptedError, "isNodeInterruptedError");
|
|
23
|
+
const _NodeTimeoutError = class _NodeTimeoutError extends Error {
|
|
24
|
+
/**
|
|
25
|
+
* @param options.nodeName The name of the node that timed out.
|
|
26
|
+
* @param options.timeout The timeout, in seconds, that was exceeded.
|
|
27
|
+
*/
|
|
28
|
+
constructor(options) {
|
|
29
|
+
super(
|
|
30
|
+
`Node '${options.nodeName}' timed out after ${options.timeout} seconds.`
|
|
31
|
+
);
|
|
32
|
+
this.name = "NodeTimeoutError";
|
|
33
|
+
this.nodeName = options.nodeName;
|
|
34
|
+
this.timeout = options.timeout;
|
|
35
|
+
Object.setPrototypeOf(this, _NodeTimeoutError.prototype);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
__name(_NodeTimeoutError, "NodeTimeoutError");
|
|
39
|
+
let NodeTimeoutError = _NodeTimeoutError;
|
|
40
|
+
function isNodeTimeoutError(e) {
|
|
41
|
+
return e instanceof Error && e.name === "NodeTimeoutError";
|
|
42
|
+
}
|
|
43
|
+
__name(isNodeTimeoutError, "isNodeTimeoutError");
|
|
44
|
+
const _DynamicNodeFailError = class _DynamicNodeFailError extends Error {
|
|
45
|
+
/**
|
|
46
|
+
* @param options.message Human-readable failure message.
|
|
47
|
+
* @param options.error The underlying error thrown by the dynamic node.
|
|
48
|
+
* @param options.errorNodePath The node path where the failure occurred.
|
|
49
|
+
*/
|
|
50
|
+
constructor(options) {
|
|
51
|
+
super(options.message);
|
|
52
|
+
this.name = "DynamicNodeFailError";
|
|
53
|
+
this.error = options.error;
|
|
54
|
+
this.errorNodePath = options.errorNodePath;
|
|
55
|
+
Object.setPrototypeOf(this, _DynamicNodeFailError.prototype);
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
__name(_DynamicNodeFailError, "DynamicNodeFailError");
|
|
59
|
+
let DynamicNodeFailError = _DynamicNodeFailError;
|
|
60
|
+
function isDynamicNodeFailError(e) {
|
|
61
|
+
return e instanceof Error && e.name === "DynamicNodeFailError";
|
|
62
|
+
}
|
|
63
|
+
__name(isDynamicNodeFailError, "isDynamicNodeFailError");
|
|
64
|
+
const _NodeReportedError = class _NodeReportedError extends Error {
|
|
65
|
+
/**
|
|
66
|
+
* @param options.nodeName The node that reported the error.
|
|
67
|
+
* @param options.errorCode The code carried on the reported event.
|
|
68
|
+
* @param options.errorMessage The message carried on the reported event.
|
|
69
|
+
*/
|
|
70
|
+
constructor(options) {
|
|
71
|
+
var _a, _b;
|
|
72
|
+
const code = (_a = options.errorCode) != null ? _a : "UNKNOWN_ERROR";
|
|
73
|
+
const detail = (_b = options.errorMessage) != null ? _b : code;
|
|
74
|
+
super(
|
|
75
|
+
`Node '${options.nodeName}' failed: ${code === "UNKNOWN_ERROR" ? detail : `${code}: ${detail}`}`
|
|
76
|
+
);
|
|
77
|
+
this.name = "NodeReportedError";
|
|
78
|
+
this.code = code;
|
|
79
|
+
this.nodeName = options.nodeName;
|
|
80
|
+
Object.setPrototypeOf(this, _NodeReportedError.prototype);
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
__name(_NodeReportedError, "NodeReportedError");
|
|
84
|
+
let NodeReportedError = _NodeReportedError;
|
|
85
|
+
function isNodeReportedError(e) {
|
|
86
|
+
return e instanceof Error && e.name === "NodeReportedError";
|
|
87
|
+
}
|
|
88
|
+
__name(isNodeReportedError, "isNodeReportedError");
|
|
89
|
+
const _InvocationAbortedError = class _InvocationAbortedError extends Error {
|
|
90
|
+
constructor(message = "Invocation aborted.") {
|
|
91
|
+
super(message);
|
|
92
|
+
this.name = "InvocationAbortedError";
|
|
93
|
+
Object.setPrototypeOf(this, _InvocationAbortedError.prototype);
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
__name(_InvocationAbortedError, "InvocationAbortedError");
|
|
97
|
+
let InvocationAbortedError = _InvocationAbortedError;
|
|
98
|
+
function isInvocationAbortedError(e) {
|
|
99
|
+
return e instanceof Error && e.name === "InvocationAbortedError";
|
|
100
|
+
}
|
|
101
|
+
__name(isInvocationAbortedError, "isInvocationAbortedError");
|
|
102
|
+
const _NodeSchemaValidationError = class _NodeSchemaValidationError extends Error {
|
|
103
|
+
/**
|
|
104
|
+
* @param options.nodeName The name of the node that failed validation.
|
|
105
|
+
* @param options.direction Whether the input or the output failed.
|
|
106
|
+
* @param options.cause The underlying validation error.
|
|
107
|
+
*/
|
|
108
|
+
constructor(options) {
|
|
109
|
+
const schemaName = options.direction === "input" ? "inputSchema" : "outputSchema";
|
|
110
|
+
const detail = options.cause instanceof Error ? options.cause.message : String(options.cause);
|
|
111
|
+
super(
|
|
112
|
+
`Node '${options.nodeName}' ${options.direction} does not match its ${schemaName}: ${detail}`,
|
|
113
|
+
{ cause: options.cause }
|
|
114
|
+
);
|
|
115
|
+
this.name = "NodeSchemaValidationError";
|
|
116
|
+
this.nodeName = options.nodeName;
|
|
117
|
+
this.direction = options.direction;
|
|
118
|
+
Object.setPrototypeOf(this, _NodeSchemaValidationError.prototype);
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
__name(_NodeSchemaValidationError, "NodeSchemaValidationError");
|
|
122
|
+
let NodeSchemaValidationError = _NodeSchemaValidationError;
|
|
123
|
+
function isNodeSchemaValidationError(e) {
|
|
124
|
+
return e instanceof Error && e.name === "NodeSchemaValidationError";
|
|
125
|
+
}
|
|
126
|
+
__name(isNodeSchemaValidationError, "isNodeSchemaValidationError");
|
|
127
|
+
export {
|
|
128
|
+
DynamicNodeFailError,
|
|
129
|
+
InvocationAbortedError,
|
|
130
|
+
NodeInterruptedError,
|
|
131
|
+
NodeReportedError,
|
|
132
|
+
NodeSchemaValidationError,
|
|
133
|
+
NodeTimeoutError,
|
|
134
|
+
isDynamicNodeFailError,
|
|
135
|
+
isInvocationAbortedError,
|
|
136
|
+
isNodeInterruptedError,
|
|
137
|
+
isNodeReportedError,
|
|
138
|
+
isNodeSchemaValidationError,
|
|
139
|
+
isNodeTimeoutError
|
|
140
|
+
};
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import {createRequire as topLevelCreateRequire} from 'module';
|
|
2
|
+
const require = topLevelCreateRequire(import.meta.url);
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
5
|
+
/**
|
|
6
|
+
* @license
|
|
7
|
+
* Copyright 2026 Google LLC
|
|
8
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
9
|
+
*/
|
|
10
|
+
var _a;
|
|
11
|
+
import { logger } from "../utils/logger.js";
|
|
12
|
+
import { parseEdgeItems } from "./utils/graph_parser.js";
|
|
13
|
+
import { validateGraph } from "./utils/graph_validation.js";
|
|
14
|
+
const EDGE_SIGNATURE_SYMBOL = Symbol.for("google.adk.workflow.edge");
|
|
15
|
+
const DEFAULT_ROUTE = "__DEFAULT__";
|
|
16
|
+
_a = EDGE_SIGNATURE_SYMBOL;
|
|
17
|
+
const _Edge = class _Edge {
|
|
18
|
+
constructor(fromNode, toNode, route = null) {
|
|
19
|
+
this.fromNode = fromNode;
|
|
20
|
+
this.toNode = toNode;
|
|
21
|
+
this.route = route;
|
|
22
|
+
/** Brand identifying this object as an {@link Edge} (see `isEdge`). */
|
|
23
|
+
this[_a] = true;
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
__name(_Edge, "Edge");
|
|
27
|
+
let Edge = _Edge;
|
|
28
|
+
function isEdge(value) {
|
|
29
|
+
return typeof value === "object" && value !== null && EDGE_SIGNATURE_SYMBOL in value && value[EDGE_SIGNATURE_SYMBOL] === true;
|
|
30
|
+
}
|
|
31
|
+
__name(isEdge, "isEdge");
|
|
32
|
+
const _Graph = class _Graph {
|
|
33
|
+
constructor(edges) {
|
|
34
|
+
this._terminalNodeNames = /* @__PURE__ */ new Set();
|
|
35
|
+
this.edges = edges;
|
|
36
|
+
const seen = /* @__PURE__ */ new Set();
|
|
37
|
+
const nodes = [];
|
|
38
|
+
for (const edge of edges) {
|
|
39
|
+
for (const node of [edge.fromNode, edge.toNode]) {
|
|
40
|
+
if (!seen.has(node)) {
|
|
41
|
+
seen.add(node);
|
|
42
|
+
nodes.push(node);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
this.nodes = nodes;
|
|
47
|
+
}
|
|
48
|
+
/** Terminal node names (no outgoing edges); populated by {@link validate}. */
|
|
49
|
+
get terminalNodeNames() {
|
|
50
|
+
return this._terminalNodeNames;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Determines the next nodes to transition to PENDING based on the route(s)
|
|
54
|
+
* emitted by a completed node. Ported from Python `get_next_pending_nodes`.
|
|
55
|
+
*
|
|
56
|
+
* Logs at debug when the node emitted a route, has conditional outgoing
|
|
57
|
+
* edges, and none of them (nor a `DEFAULT_ROUTE` edge) matched — the branch
|
|
58
|
+
* stops there, which is easy to mistake for a bug. Behaviour is unchanged.
|
|
59
|
+
*/
|
|
60
|
+
getNextPendingNodes(nodeName, routesToMatch) {
|
|
61
|
+
const nextPending = [];
|
|
62
|
+
let matchedSpecificRoute = false;
|
|
63
|
+
let defaultRouteNode;
|
|
64
|
+
const availableRoutes = [];
|
|
65
|
+
for (const edge of this.edges) {
|
|
66
|
+
if (edge.fromNode.name !== nodeName) {
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
if (edge.route === null || edge.route === void 0) {
|
|
70
|
+
nextPending.push(edge.toNode.name);
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
if (edge.route === DEFAULT_ROUTE) {
|
|
74
|
+
defaultRouteNode = edge.toNode.name;
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
const edgeRoutes = new Set(
|
|
78
|
+
(Array.isArray(edge.route) ? edge.route : [edge.route]).map(String)
|
|
79
|
+
);
|
|
80
|
+
availableRoutes.push(...edgeRoutes);
|
|
81
|
+
let edgeMatched = false;
|
|
82
|
+
if (Array.isArray(routesToMatch)) {
|
|
83
|
+
edgeMatched = routesToMatch.some((r) => edgeRoutes.has(String(r)));
|
|
84
|
+
} else if (routesToMatch !== null && routesToMatch !== void 0) {
|
|
85
|
+
edgeMatched = edgeRoutes.has(String(routesToMatch));
|
|
86
|
+
}
|
|
87
|
+
if (edgeMatched) {
|
|
88
|
+
nextPending.push(edge.toNode.name);
|
|
89
|
+
matchedSpecificRoute = true;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
if (!matchedSpecificRoute && defaultRouteNode) {
|
|
93
|
+
nextPending.push(defaultRouteNode);
|
|
94
|
+
}
|
|
95
|
+
if (nextPending.length === 0 && availableRoutes.length > 0) {
|
|
96
|
+
const emitted = routesToMatch === null || routesToMatch === void 0 ? [] : Array.isArray(routesToMatch) ? routesToMatch : [routesToMatch];
|
|
97
|
+
const isConditionalContinue = availableRoutes.includes("true") && emitted.length > 0 && emitted.every((r) => String(r) === "false");
|
|
98
|
+
if (emitted.length > 0 && !isConditionalContinue) {
|
|
99
|
+
const shown = emitted.map((r) => JSON.stringify(r)).join(", ");
|
|
100
|
+
const known = [...new Set(availableRoutes)].map((r) => JSON.stringify(r)).join(", ");
|
|
101
|
+
logger.debug(
|
|
102
|
+
`Node '${nodeName}' emitted route ${shown}, which matches no outgoing edge, so this branch stops here. Edges from this node are keyed to: ${known}.`
|
|
103
|
+
);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return nextPending;
|
|
107
|
+
}
|
|
108
|
+
/** Validates the graph and computes terminal node names. */
|
|
109
|
+
validate() {
|
|
110
|
+
this._terminalNodeNames = validateGraph(this.nodes, this.edges);
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
__name(_Graph, "Graph");
|
|
114
|
+
let Graph = _Graph;
|
|
115
|
+
function createGraphFromEdgeItems(edgeItems) {
|
|
116
|
+
const graph = new Graph(parseEdgeItems(edgeItems));
|
|
117
|
+
graph.validate();
|
|
118
|
+
return graph;
|
|
119
|
+
}
|
|
120
|
+
__name(createGraphFromEdgeItems, "createGraphFromEdgeItems");
|
|
121
|
+
export {
|
|
122
|
+
DEFAULT_ROUTE,
|
|
123
|
+
Edge,
|
|
124
|
+
Graph,
|
|
125
|
+
createGraphFromEdgeItems,
|
|
126
|
+
isEdge
|
|
127
|
+
};
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import {createRequire as topLevelCreateRequire} from 'module';
|
|
2
|
+
const require = topLevelCreateRequire(import.meta.url);
|
|
3
|
+
/**
|
|
4
|
+
* @license
|
|
5
|
+
* Copyright 2026 Google LLC
|
|
6
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
7
|
+
*/
|
|
8
|
+
import {
|
|
9
|
+
asRunnableRoot,
|
|
10
|
+
isRunnableRoot,
|
|
11
|
+
runNodeAsInvocation
|
|
12
|
+
} from "./run_node_as_invocation.js";
|
|
13
|
+
import { Workflow, isWorkflow } from "./workflow.js";
|
|
14
|
+
import { BaseNode, START } from "./base_node.js";
|
|
15
|
+
import { WorkflowNode, node } from "./node.js";
|
|
16
|
+
import { FunctionNode } from "./nodes/function_node.js";
|
|
17
|
+
import { JoinNode } from "./nodes/join_node.js";
|
|
18
|
+
import { NodeTool } from "./nodes/node_tool.js";
|
|
19
|
+
import { ParallelWorker } from "./nodes/parallel_worker.js";
|
|
20
|
+
import { ToolNode } from "./nodes/tool_node.js";
|
|
21
|
+
import { DEFAULT_ROUTE, Edge, Graph } from "./graph.js";
|
|
22
|
+
import { BranchPath, commonPrefixOf, createSubBranch } from "./branch_path.js";
|
|
23
|
+
import { NodeContext } from "./node_context.js";
|
|
24
|
+
import { createNodeState, isNodeState } from "./node_state.js";
|
|
25
|
+
import { NodeStatus } from "./node_status.js";
|
|
26
|
+
import { RequestInput, isRequestInput } from "./request_input.js";
|
|
27
|
+
import {
|
|
28
|
+
REQUEST_CREDENTIAL_FUNCTION_CALL_NAME,
|
|
29
|
+
REQUEST_INPUT_FUNCTION_CALL_NAME
|
|
30
|
+
} from "./utils/hitl_utils.js";
|
|
31
|
+
import { normalizeRetryExceptions, prepareRetryConfig } from "./retry_config.js";
|
|
32
|
+
import {
|
|
33
|
+
NodeReportedError,
|
|
34
|
+
NodeSchemaValidationError,
|
|
35
|
+
NodeTimeoutError,
|
|
36
|
+
isNodeReportedError,
|
|
37
|
+
isNodeSchemaValidationError,
|
|
38
|
+
isNodeTimeoutError
|
|
39
|
+
} from "./errors.js";
|
|
40
|
+
import { createNodeErrorEvent, isNodeErrorEvent } from "./node_error_event.js";
|
|
41
|
+
export {
|
|
42
|
+
BaseNode,
|
|
43
|
+
BranchPath,
|
|
44
|
+
DEFAULT_ROUTE,
|
|
45
|
+
Edge,
|
|
46
|
+
FunctionNode,
|
|
47
|
+
Graph,
|
|
48
|
+
JoinNode,
|
|
49
|
+
NodeContext,
|
|
50
|
+
NodeReportedError,
|
|
51
|
+
NodeSchemaValidationError,
|
|
52
|
+
NodeStatus,
|
|
53
|
+
NodeTimeoutError,
|
|
54
|
+
NodeTool,
|
|
55
|
+
ParallelWorker,
|
|
56
|
+
REQUEST_CREDENTIAL_FUNCTION_CALL_NAME,
|
|
57
|
+
REQUEST_INPUT_FUNCTION_CALL_NAME,
|
|
58
|
+
RequestInput,
|
|
59
|
+
START,
|
|
60
|
+
ToolNode,
|
|
61
|
+
Workflow,
|
|
62
|
+
WorkflowNode,
|
|
63
|
+
asRunnableRoot,
|
|
64
|
+
commonPrefixOf,
|
|
65
|
+
createNodeErrorEvent,
|
|
66
|
+
createNodeState,
|
|
67
|
+
createSubBranch,
|
|
68
|
+
isNodeErrorEvent,
|
|
69
|
+
isNodeReportedError,
|
|
70
|
+
isNodeSchemaValidationError,
|
|
71
|
+
isNodeState,
|
|
72
|
+
isNodeTimeoutError,
|
|
73
|
+
isRequestInput,
|
|
74
|
+
isRunnableRoot,
|
|
75
|
+
isWorkflow,
|
|
76
|
+
node,
|
|
77
|
+
normalizeRetryExceptions,
|
|
78
|
+
prepareRetryConfig,
|
|
79
|
+
runNodeAsInvocation
|
|
80
|
+
};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import {createRequire as topLevelCreateRequire} from 'module';
|
|
2
|
+
const require = topLevelCreateRequire(import.meta.url);
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
6
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
7
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
8
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
9
|
+
if (decorator = decorators[i])
|
|
10
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
11
|
+
if (kind && result) __defProp(target, key, result);
|
|
12
|
+
return result;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* @license
|
|
16
|
+
* Copyright 2026 Google LLC
|
|
17
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
18
|
+
*/
|
|
19
|
+
import { experimental } from "../utils/experimental.js";
|
|
20
|
+
import { BaseNode } from "./base_node.js";
|
|
21
|
+
import { buildNode } from "./utils/workflow_graph_utils.js";
|
|
22
|
+
function node(nodeLike, options = {}) {
|
|
23
|
+
return buildNode(nodeLike, options);
|
|
24
|
+
}
|
|
25
|
+
__name(node, "node");
|
|
26
|
+
let WorkflowNode = class extends BaseNode {
|
|
27
|
+
async *runImpl(ctx, input) {
|
|
28
|
+
yield* this.runNodeImpl(ctx, input);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
__name(WorkflowNode, "WorkflowNode");
|
|
32
|
+
WorkflowNode = __decorateClass([
|
|
33
|
+
experimental
|
|
34
|
+
], WorkflowNode);
|
|
35
|
+
export {
|
|
36
|
+
WorkflowNode,
|
|
37
|
+
node
|
|
38
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import {createRequire as topLevelCreateRequire} from 'module';
|
|
2
|
+
const require = topLevelCreateRequire(import.meta.url);
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
5
|
+
/**
|
|
6
|
+
* @license
|
|
7
|
+
* Copyright 2026 Google LLC
|
|
8
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
9
|
+
*/
|
|
10
|
+
import { isBaseTool } from "../tools/base_tool.js";
|
|
11
|
+
import { FunctionNode } from "./nodes/function_node.js";
|
|
12
|
+
import { ParallelWorker } from "./nodes/parallel_worker.js";
|
|
13
|
+
import { ToolNode } from "./nodes/tool_node.js";
|
|
14
|
+
const FUNCTION_BUILDER = {
|
|
15
|
+
match: /* @__PURE__ */ __name((value) => typeof value === "function", "match"),
|
|
16
|
+
build: /* @__PURE__ */ __name((value, options) => {
|
|
17
|
+
var _a;
|
|
18
|
+
const handler = value;
|
|
19
|
+
const name = (_a = options.name) != null ? _a : handler.name;
|
|
20
|
+
if (!name) {
|
|
21
|
+
throw new Error(
|
|
22
|
+
"node(): the wrapped function has no name; pass {name} explicitly."
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
return new FunctionNode(name, handler, options);
|
|
26
|
+
}, "build")
|
|
27
|
+
};
|
|
28
|
+
const TOOL_BUILDER = {
|
|
29
|
+
match: /* @__PURE__ */ __name((value) => isBaseTool(value), "match"),
|
|
30
|
+
build: /* @__PURE__ */ __name((value, options) => new ToolNode(value, options), "build")
|
|
31
|
+
};
|
|
32
|
+
const NODE_BUILDERS = [
|
|
33
|
+
FUNCTION_BUILDER,
|
|
34
|
+
TOOL_BUILDER
|
|
35
|
+
];
|
|
36
|
+
const PARALLEL_WORKER_FACTORY = /* @__PURE__ */ __name((inner, options) => new ParallelWorker(inner, options), "PARALLEL_WORKER_FACTORY");
|
|
37
|
+
export {
|
|
38
|
+
NODE_BUILDERS,
|
|
39
|
+
PARALLEL_WORKER_FACTORY
|
|
40
|
+
};
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
import {createRequire as topLevelCreateRequire} from 'module';
|
|
2
|
+
const require = topLevelCreateRequire(import.meta.url);
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
5
|
+
/**
|
|
6
|
+
* @license
|
|
7
|
+
* Copyright 2026 Google LLC
|
|
8
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
9
|
+
*/
|
|
10
|
+
import { createEventActions } from "../events/event_actions.js";
|
|
11
|
+
import { State } from "../sessions/state.js";
|
|
12
|
+
import { NodeInterruptedError } from "./errors.js";
|
|
13
|
+
import { executeChildNode } from "./node_runner.js";
|
|
14
|
+
import { buildNode } from "./utils/workflow_graph_utils.js";
|
|
15
|
+
const _NodeContext = class _NodeContext {
|
|
16
|
+
constructor(opts) {
|
|
17
|
+
/**
|
|
18
|
+
* Node paths whose output this node's output also becomes: its parent's if
|
|
19
|
+
* the parent ran it with `useAsOutput`, plus whatever the parent was standing
|
|
20
|
+
* in for. Stamped onto every output event as `nodeInfo.outputFor`, so a
|
|
21
|
+
* resumed run can tell that an ancestor already has a result.
|
|
22
|
+
*/
|
|
23
|
+
this.outputForAncestors = [];
|
|
24
|
+
/**
|
|
25
|
+
* Whether this node handed its output to a child run with `useAsOutput`.
|
|
26
|
+
*
|
|
27
|
+
* The child already emitted that value as its own result, so an event from
|
|
28
|
+
* this node repeating it would put the same text in the stream twice. The
|
|
29
|
+
* node still reports the output — only the duplicate event is suppressed.
|
|
30
|
+
*/
|
|
31
|
+
this.outputDelegated = false;
|
|
32
|
+
/** The structured output produced by the node during its run. */
|
|
33
|
+
this.output = void 0;
|
|
34
|
+
/** Interrupt ids the node is currently blocked on (HITL). */
|
|
35
|
+
this.interruptIds = [];
|
|
36
|
+
/** The current attempt number (1-based) for the running node (see retry). */
|
|
37
|
+
this.attemptCount = 1;
|
|
38
|
+
this.dynamicRunCounters = /* @__PURE__ */ new Map();
|
|
39
|
+
/** Run ids this context handed out automatically, per node name. */
|
|
40
|
+
this.autoRunIds = /* @__PURE__ */ new Map();
|
|
41
|
+
/**
|
|
42
|
+
* Caller-supplied run ids shaped like an automatic one (all digits), per node
|
|
43
|
+
* name — the set {@link assertNoNumericCustomRunIds} refuses to auto-number
|
|
44
|
+
* around.
|
|
45
|
+
*/
|
|
46
|
+
this.numericCustomRunIds = /* @__PURE__ */ new Map();
|
|
47
|
+
var _a, _b;
|
|
48
|
+
this.invocationContext = opts.invocationContext;
|
|
49
|
+
this.channel = opts.channel;
|
|
50
|
+
this.nodePath = opts.nodePath;
|
|
51
|
+
this.runId = opts.runId;
|
|
52
|
+
this.resumeInputs = (_a = opts.resumeInputs) != null ? _a : {};
|
|
53
|
+
this.isolationScope = opts.isolationScope;
|
|
54
|
+
this.actions = (_b = opts.actions) != null ? _b : createEventActions();
|
|
55
|
+
this.stateSchema = opts.stateSchema;
|
|
56
|
+
this._state = new State(
|
|
57
|
+
opts.invocationContext.session.state,
|
|
58
|
+
this.actions.stateDelta,
|
|
59
|
+
opts.stateSchema
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
/** Delta-aware session state; writes accumulate in `actions.stateDelta`. */
|
|
63
|
+
get state() {
|
|
64
|
+
return this._state;
|
|
65
|
+
}
|
|
66
|
+
/** The branch of the owning invocation context. */
|
|
67
|
+
get branch() {
|
|
68
|
+
return this.invocationContext.branch;
|
|
69
|
+
}
|
|
70
|
+
/** The current invocation id. */
|
|
71
|
+
get invocationId() {
|
|
72
|
+
return this.invocationContext.invocationId;
|
|
73
|
+
}
|
|
74
|
+
/** The current session. */
|
|
75
|
+
get session() {
|
|
76
|
+
return this.invocationContext.session;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* The invocation context to run a nested agent against.
|
|
80
|
+
*
|
|
81
|
+
* The single place where "what a node sees" is translated into "what an
|
|
82
|
+
* agent sees", so an agent run as a node (`BaseAgent.runImpl`) and one run
|
|
83
|
+
* directly go through the same seam.
|
|
84
|
+
*
|
|
85
|
+
* It hands back the node's own invocation context unchanged, and that is the
|
|
86
|
+
* intended behaviour rather than a placeholder.
|
|
87
|
+
*
|
|
88
|
+
* adk-python's counterpart (`agents/context.py` `get_invocation_context`) is
|
|
89
|
+
* documented as returning "a copy with the proxy session", which reads as
|
|
90
|
+
* though the agent is handed a different view of state. It is not: that
|
|
91
|
+
* `Context.session` returns `self._invocation_context.session`, so the copy
|
|
92
|
+
* substitutes the same object, and `Context._state` is built directly over
|
|
93
|
+
* `session.state`. A Python agent run as a node reads session state exactly
|
|
94
|
+
* as a TypeScript one does.
|
|
95
|
+
*
|
|
96
|
+
* The other thing that copy carries — the isolation scope — is already
|
|
97
|
+
* applied by the time this runs: the node runner builds the child invocation
|
|
98
|
+
* context with the node's scope, so it is present on the object returned.
|
|
99
|
+
*
|
|
100
|
+
* That leaves the node's own `state`, which is this node's pending delta over
|
|
101
|
+
* `session.state` — the same thing an agent reads, so the two cannot
|
|
102
|
+
* disagree. The agent-node cases in
|
|
103
|
+
* `core/test/workflow/state_consistency_test.ts` pin that.
|
|
104
|
+
*/
|
|
105
|
+
getInvocationContext() {
|
|
106
|
+
return this.invocationContext;
|
|
107
|
+
}
|
|
108
|
+
/** Streams a single event out through the workflow's event channel. */
|
|
109
|
+
emit(event) {
|
|
110
|
+
this.channel.push(event);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Runs a child node programmatically, streaming its events through the same
|
|
114
|
+
* channel and resolving to the child's result — a full {@link NodeContext}
|
|
115
|
+
* for a node that actually ran, or a bare {@link NodeResult} for one that was
|
|
116
|
+
* fast-forwarded from cached output on resume. Either way the caller can read
|
|
117
|
+
* `output`, `route`, `branch`, and `interruptIds`; only a `NodeContext`
|
|
118
|
+
* offers live behaviour (`emit`, `state`, nested `runNode`).
|
|
119
|
+
*
|
|
120
|
+
* When a dynamic-node {@link scheduler} is set (inside a Workflow subtree),
|
|
121
|
+
* the call routes through it for dedup/resume; otherwise the child runs
|
|
122
|
+
* directly.
|
|
123
|
+
*
|
|
124
|
+
* Takes anything an edge takes — an agent, a tool, a plain function, or an
|
|
125
|
+
* already-built node — and wraps it the same way the graph does, so
|
|
126
|
+
* `ctx.runNode(myAgent, input)` works without `node(myAgent)`. Wrap it
|
|
127
|
+
* yourself when you need the options `node()` carries, such as a schema or a
|
|
128
|
+
* name that differs from the value's own.
|
|
129
|
+
*/
|
|
130
|
+
runNode(nodeLike, input, options) {
|
|
131
|
+
var _a, _b;
|
|
132
|
+
const node = buildNode(nodeLike);
|
|
133
|
+
if (this.scheduler) {
|
|
134
|
+
const nodeName = (_a = options == null ? void 0 : options.nodeName) != null ? _a : node.name;
|
|
135
|
+
let runId = options == null ? void 0 : options.runId;
|
|
136
|
+
if (runId !== void 0) {
|
|
137
|
+
assertCustomRunId(runId, nodeName, mapSet(this.autoRunIds, nodeName));
|
|
138
|
+
if (isAutoNumberShaped(runId)) {
|
|
139
|
+
mapSet(this.numericCustomRunIds, nodeName).add(runId);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
if (!runId) {
|
|
143
|
+
assertNoNumericCustomRunIds(
|
|
144
|
+
nodeName,
|
|
145
|
+
mapSet(this.numericCustomRunIds, nodeName)
|
|
146
|
+
);
|
|
147
|
+
const next = ((_b = this.dynamicRunCounters.get(nodeName)) != null ? _b : 0) + 1;
|
|
148
|
+
this.dynamicRunCounters.set(nodeName, next);
|
|
149
|
+
runId = String(next);
|
|
150
|
+
mapSet(this.autoRunIds, nodeName).add(runId);
|
|
151
|
+
}
|
|
152
|
+
return this.scheduleAndUnwind(node, input, {
|
|
153
|
+
...options,
|
|
154
|
+
nodeName,
|
|
155
|
+
runId
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
return executeChildNode({ parent: this, node, input, options });
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Runs a child through the scheduler, raising {@link NodeInterruptedError}
|
|
162
|
+
* when it comes back waiting on an unanswered interrupt.
|
|
163
|
+
*
|
|
164
|
+
* The caller's body must not continue past a child that stopped to ask the
|
|
165
|
+
* user: everything after the call would run on a missing answer, and would
|
|
166
|
+
* run again when the turn resumes. The scheduler has already copied the
|
|
167
|
+
* child's interrupt ids onto this context by the time it returns, so the
|
|
168
|
+
* runner that catches the throw records this node as waiting.
|
|
169
|
+
*/
|
|
170
|
+
async scheduleAndUnwind(node, input, options) {
|
|
171
|
+
const child = await this.scheduler.schedule(this, node, input, options);
|
|
172
|
+
if (child.interruptIds.length > 0) {
|
|
173
|
+
throw new NodeInterruptedError();
|
|
174
|
+
}
|
|
175
|
+
return child;
|
|
176
|
+
}
|
|
177
|
+
};
|
|
178
|
+
__name(_NodeContext, "NodeContext");
|
|
179
|
+
let NodeContext = _NodeContext;
|
|
180
|
+
function mapSet(map, key) {
|
|
181
|
+
let set = map.get(key);
|
|
182
|
+
if (!set) {
|
|
183
|
+
set = /* @__PURE__ */ new Set();
|
|
184
|
+
map.set(key, set);
|
|
185
|
+
}
|
|
186
|
+
return set;
|
|
187
|
+
}
|
|
188
|
+
__name(mapSet, "mapSet");
|
|
189
|
+
function isAutoNumberShaped(runId) {
|
|
190
|
+
return /^\d+$/.test(runId);
|
|
191
|
+
}
|
|
192
|
+
__name(isAutoNumberShaped, "isAutoNumberShaped");
|
|
193
|
+
function numericRunIdMixError(nodeName, runId) {
|
|
194
|
+
return new Error(
|
|
195
|
+
`Invalid runId '${runId}' for node '${nodeName}': ADK numbers automatic runs of a node "1", "2", "3", \u2026 per context, so an all-digit custom id draws from that same namespace. A later turn that issues a different set of custom ids shifts the automatic sequence onto a checkpoint path an earlier call already wrote, and the call is fast-forwarded to that run's cached output with its own input silently discarded. Give the custom id a non-numeric part, e.g. '${nodeName}-${runId}', or supply an explicit id for every run of this node so ADK never numbers one.`
|
|
196
|
+
);
|
|
197
|
+
}
|
|
198
|
+
__name(numericRunIdMixError, "numericRunIdMixError");
|
|
199
|
+
function assertCustomRunId(runId, nodeName, autoRunIds) {
|
|
200
|
+
if (runId.trim() === "") {
|
|
201
|
+
throw new Error(
|
|
202
|
+
`Invalid runId for node '${nodeName}': a custom run id cannot be empty. Omit runId to let ADK number the run automatically.`
|
|
203
|
+
);
|
|
204
|
+
}
|
|
205
|
+
if (autoRunIds.size > 0 && isAutoNumberShaped(runId)) {
|
|
206
|
+
throw numericRunIdMixError(nodeName, runId);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
__name(assertCustomRunId, "assertCustomRunId");
|
|
210
|
+
function assertNoNumericCustomRunIds(nodeName, numericCustomRunIds) {
|
|
211
|
+
const first = numericCustomRunIds.values().next();
|
|
212
|
+
if (!first.done) {
|
|
213
|
+
throw numericRunIdMixError(nodeName, first.value);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
__name(assertNoNumericCustomRunIds, "assertNoNumericCustomRunIds");
|
|
217
|
+
export {
|
|
218
|
+
NodeContext
|
|
219
|
+
};
|