@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
package/dist/types/version.d.ts
CHANGED
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Content } from '@google/genai';
|
|
7
|
+
import { Event } from '../events/event.js';
|
|
8
|
+
import { SchemaLike } from '../utils/schema.js';
|
|
9
|
+
import type { NodeContext } from './node_context.js';
|
|
10
|
+
import { PreparedRetryConfig, RetryConfig } from './retry_config.js';
|
|
11
|
+
/**
|
|
12
|
+
* A unique symbol branding {@link BaseNode} instances.
|
|
13
|
+
*
|
|
14
|
+
* Guards match on this brand rather than `instanceof` so a node stays
|
|
15
|
+
* recognisable when it crosses a package boundary (two copies of adk-js in one
|
|
16
|
+
* runtime would fail an `instanceof` check between them) — mirroring the
|
|
17
|
+
* `Symbol.for('google.adk.*')` brands used across ADK (`isBaseAgent`,
|
|
18
|
+
* `isBaseTool`, `isEvent`).
|
|
19
|
+
*/
|
|
20
|
+
declare const BASE_NODE_SIGNATURE_SYMBOL: unique symbol;
|
|
21
|
+
/**
|
|
22
|
+
* Configuration shared by all workflow nodes.
|
|
23
|
+
*
|
|
24
|
+
* Mirrors the fields of `google/adk-python` `workflow/_base_node.py::BaseNode`.
|
|
25
|
+
*/
|
|
26
|
+
export interface BaseNodeConfig {
|
|
27
|
+
/** Canonical, unique-within-a-graph node name. */
|
|
28
|
+
name: string;
|
|
29
|
+
/** Human-readable description (used when a node is exposed as a tool). */
|
|
30
|
+
description?: string;
|
|
31
|
+
/**
|
|
32
|
+
* If true, the node re-executes when a workflow resumes even if it already
|
|
33
|
+
* completed in a prior turn. Default false.
|
|
34
|
+
*/
|
|
35
|
+
rerunOnResume?: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* If true, the node only produces its output once all of its predecessors
|
|
38
|
+
* have triggered it (fan-in / join semantics). Default false.
|
|
39
|
+
*/
|
|
40
|
+
waitForOutput?: boolean;
|
|
41
|
+
/** Optional retry configuration for transient failures. */
|
|
42
|
+
retryConfig?: RetryConfig;
|
|
43
|
+
/** Maximum time, in seconds, for this node to complete. */
|
|
44
|
+
timeout?: number;
|
|
45
|
+
/** Optional schema validating the node input (Zod v3/v4 or genai `Schema`). */
|
|
46
|
+
inputSchema?: SchemaLike;
|
|
47
|
+
/** Optional schema validating the node output (Zod v3/v4 or genai `Schema`). */
|
|
48
|
+
outputSchema?: SchemaLike;
|
|
49
|
+
/** Optional schema validating relevant session state (Zod v3/v4 or genai `Schema`). */
|
|
50
|
+
stateSchema?: SchemaLike;
|
|
51
|
+
/**
|
|
52
|
+
* Runs this node's subtree in an isolated conversation scope: an agent inside
|
|
53
|
+
* it sees only session events carrying the same scope, plus untagged ones.
|
|
54
|
+
* `true` derives a scope per node run; a string is an explicit shared tag.
|
|
55
|
+
*/
|
|
56
|
+
isolationScope?: string | true;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Abstract base class for all nodes in an ADK workflow.
|
|
60
|
+
*
|
|
61
|
+
* A node is a discrete unit of execution. Subclasses implement {@link runImpl},
|
|
62
|
+
* which may yield {@link Event}s, raw values (boxed into an event), or
|
|
63
|
+
* `null`/`undefined` (skipped). {@link run} normalizes those into a stream of
|
|
64
|
+
* {@link Event}s consumed by the engine.
|
|
65
|
+
*/
|
|
66
|
+
export declare abstract class BaseNode<TInput = unknown, TOutput = unknown> {
|
|
67
|
+
/** Brand identifying this object as a {@link BaseNode} (see `isBaseNode`). */
|
|
68
|
+
readonly [BASE_NODE_SIGNATURE_SYMBOL] = true;
|
|
69
|
+
readonly name: string;
|
|
70
|
+
readonly description: string;
|
|
71
|
+
readonly rerunOnResume: boolean;
|
|
72
|
+
readonly waitForOutput: boolean;
|
|
73
|
+
readonly retryConfig?: RetryConfig;
|
|
74
|
+
/**
|
|
75
|
+
* The retry config with its exception filter normalized once, up front (see
|
|
76
|
+
* {@link prepareRetryConfig}). Used by the node runner so the retry hot path
|
|
77
|
+
* never re-normalizes or throws on a malformed config mid-retry.
|
|
78
|
+
*/
|
|
79
|
+
readonly preparedRetryConfig?: PreparedRetryConfig;
|
|
80
|
+
readonly timeout?: number;
|
|
81
|
+
readonly inputSchema?: SchemaLike;
|
|
82
|
+
readonly outputSchema?: SchemaLike;
|
|
83
|
+
readonly stateSchema?: SchemaLike;
|
|
84
|
+
readonly isolationScope?: string | true;
|
|
85
|
+
constructor(config: BaseNodeConfig);
|
|
86
|
+
/**
|
|
87
|
+
* Whether this node must wait for ALL of its predecessors to trigger before
|
|
88
|
+
* it runs (fan-in barrier). Overridden by `JoinNode`.
|
|
89
|
+
*/
|
|
90
|
+
get requiresAllPredecessors(): boolean;
|
|
91
|
+
/**
|
|
92
|
+
* Core execution contract. Subclasses yield one of:
|
|
93
|
+
* - an {@link Event} (emitted as-is),
|
|
94
|
+
* - a raw value (boxed into an event whose `output` is that value),
|
|
95
|
+
* - `null`/`undefined` (skipped).
|
|
96
|
+
*/
|
|
97
|
+
protected abstract runImpl(ctx: NodeContext, input: TInput): AsyncGenerator<Event | TOutput | unknown, void, void>;
|
|
98
|
+
/**
|
|
99
|
+
* Runs the node, normalizing every yielded item into an {@link Event}. This
|
|
100
|
+
* is what the engine (and `ctx.runNode()`) consumes. Validates the input
|
|
101
|
+
* against `inputSchema` once, up front (skipping genai `Content`, which nodes
|
|
102
|
+
* coerce themselves).
|
|
103
|
+
*/
|
|
104
|
+
run(ctx: NodeContext, input: TInput): AsyncGenerator<Event, void, void>;
|
|
105
|
+
/**
|
|
106
|
+
* Validates node input against `inputSchema` (Content passes through). Only
|
|
107
|
+
* enforced for Zod schemas; a genai `Schema` is left unvalidated (see
|
|
108
|
+
* `parseWithSchema`).
|
|
109
|
+
*/
|
|
110
|
+
protected validateInput(input: TInput): TInput;
|
|
111
|
+
/**
|
|
112
|
+
* Validates node output against `outputSchema` (Content passes through). Only
|
|
113
|
+
* enforced for Zod schemas; a genai `Schema` is left unvalidated (see
|
|
114
|
+
* `parseWithSchema`).
|
|
115
|
+
*/
|
|
116
|
+
protected validateOutput(output: unknown): unknown;
|
|
117
|
+
/**
|
|
118
|
+
* Normalizes a single yielded item into an {@link Event} (or `null` to skip).
|
|
119
|
+
* Subclasses may override for richer coercion (e.g. `FunctionNode`).
|
|
120
|
+
*/
|
|
121
|
+
protected toEvent(ctx: NodeContext, data: unknown): Event | null;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Type guard for {@link BaseNode}.
|
|
125
|
+
*
|
|
126
|
+
* Matches on the {@link BASE_NODE_SIGNATURE_SYMBOL} brand rather than
|
|
127
|
+
* `instanceof` so it stays correct across package copies (see the brand's doc).
|
|
128
|
+
*/
|
|
129
|
+
export declare function isBaseNode(value: unknown): value is BaseNode;
|
|
130
|
+
/** Returns whether a value looks like a genai `Content` object. */
|
|
131
|
+
export declare function isContent(value: unknown): value is Content;
|
|
132
|
+
/** The workflow entry-point sentinel node (name `__START__`). */
|
|
133
|
+
export declare const START: BaseNode;
|
|
134
|
+
/**
|
|
135
|
+
* Best-effort conversion of an arbitrary value to genai `Content` for display.
|
|
136
|
+
*
|
|
137
|
+
* Strings, `Part`s, and arrays of them are converted via `createModelContent`.
|
|
138
|
+
* Any other value (a plain object, number, boolean, …) is not a valid genai
|
|
139
|
+
* part list, so it is serialized to text rather than throwing.
|
|
140
|
+
*/
|
|
141
|
+
export declare function toContent(val: unknown): Content | undefined;
|
|
142
|
+
export {};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Hierarchical, dot-separated path for execution branches. Each segment is a
|
|
8
|
+
* node run, typically formatted as `name@runId` (or just `name`).
|
|
9
|
+
*
|
|
10
|
+
* Ported from `google/adk-python` `events/_branch_path.py::_BranchPath`.
|
|
11
|
+
*
|
|
12
|
+
* @example 'parent_agent@1.collect_tool@2.sub_workflow'
|
|
13
|
+
*/
|
|
14
|
+
export declare class BranchPath {
|
|
15
|
+
private readonly segments;
|
|
16
|
+
constructor(segments: string[]);
|
|
17
|
+
toString(): string;
|
|
18
|
+
/** Returns a copy of the path segments. */
|
|
19
|
+
getSegments(): string[];
|
|
20
|
+
/** Whether this path is a strict descendant of `ancestor`. */
|
|
21
|
+
isDescendantOf(ancestor: BranchPath): boolean;
|
|
22
|
+
/** Returns a new path with a `name@runId` (or `name`) segment appended. */
|
|
23
|
+
append(name: string, runId?: string): BranchPath;
|
|
24
|
+
}
|
|
25
|
+
/** Parses a dot-separated string into a {@link BranchPath}. */
|
|
26
|
+
export declare function branchPathFromString(path?: string | null): BranchPath;
|
|
27
|
+
/** Finds the common prefix across a list of {@link BranchPath}s. */
|
|
28
|
+
export declare function commonPrefixOfPaths(paths: BranchPath[]): BranchPath;
|
|
29
|
+
/**
|
|
30
|
+
* Creates a new dot-separated sub-branch string by appending a segment.
|
|
31
|
+
*
|
|
32
|
+
* @example createSubBranch('parent', {name: 'child', runId: '1'}) -> 'parent.child@1'
|
|
33
|
+
* @example createSubBranch(undefined, {name: 'agent'}) -> 'agent'
|
|
34
|
+
*/
|
|
35
|
+
export declare function createSubBranch(baseBranch: string | undefined | null, options: {
|
|
36
|
+
name: string;
|
|
37
|
+
runId?: string;
|
|
38
|
+
}): string;
|
|
39
|
+
/** Finds the common prefix of a list of dot-separated branch strings. */
|
|
40
|
+
export declare function commonPrefixOf(branches: string[]): string;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { BaseNode } from './base_node.js';
|
|
7
|
+
import { NodeContext, NodeResult } from './node_context.js';
|
|
8
|
+
import { DynamicNodeState, ScheduleDynamicNode, ScheduleDynamicNodeOptions } from './schedule_dynamic_node.js';
|
|
9
|
+
/**
|
|
10
|
+
* Handles `ctx.runNode()` calls for a {@link Workflow} subtree.
|
|
11
|
+
*
|
|
12
|
+
* Ported (Phase 4 subset) from `google/adk-python`
|
|
13
|
+
* `workflow/_dynamic_node_scheduler.py`. Implemented now: fresh execution and
|
|
14
|
+
* deduplication of concurrent calls to the same node path. Resumption from
|
|
15
|
+
* session events (rehydration + replay interception) is added in Phase 5 at the
|
|
16
|
+
* marked hook point.
|
|
17
|
+
*/
|
|
18
|
+
export declare class DynamicNodeScheduler implements ScheduleDynamicNode {
|
|
19
|
+
private readonly state;
|
|
20
|
+
private readonly abortSignal?;
|
|
21
|
+
/**
|
|
22
|
+
* @param state Shared dynamic-node bookkeeping for this workflow subtree.
|
|
23
|
+
* @param abortSignal Workflow-scoped cancellation signal, forwarded to each
|
|
24
|
+
* dynamic child so a workflow shutting down on error can cancel in-flight
|
|
25
|
+
* `ctx.runNode()` children too.
|
|
26
|
+
*/
|
|
27
|
+
constructor(state: DynamicNodeState, abortSignal?: AbortSignal | undefined);
|
|
28
|
+
/**
|
|
29
|
+
* Runs a `ctx.runNode()` call and reports any interrupt it is still waiting
|
|
30
|
+
* on to the caller's own context.
|
|
31
|
+
*
|
|
32
|
+
* A child's interrupt is the caller's problem: the caller cannot produce a
|
|
33
|
+
* trustworthy result until the human answers, and until the engine knows the
|
|
34
|
+
* caller is waiting it marks it COMPLETED and schedules its successor —
|
|
35
|
+
* which then runs on the `undefined` the caller returned when it bailed out.
|
|
36
|
+
* `ParallelWorker` has always copied its items' interrupt ids onto its own
|
|
37
|
+
* context for exactly this reason; doing it here extends that to every
|
|
38
|
+
* caller instead of only the one that remembered.
|
|
39
|
+
*
|
|
40
|
+
* Only unresolved interrupts arrive here. A child fast-forwarded from a
|
|
41
|
+
* checkpoint, or handed a resolved reply as its output, reports none.
|
|
42
|
+
*/
|
|
43
|
+
schedule(ctx: NodeContext, node: BaseNode, input: unknown, options: ScheduleDynamicNodeOptions): Promise<NodeContext | NodeResult>;
|
|
44
|
+
private scheduleRun;
|
|
45
|
+
/**
|
|
46
|
+
* Books a dynamic run that completed WITHOUT executing its body — either
|
|
47
|
+
* fast-forwarded from a cached output or handed the resolved resume value —
|
|
48
|
+
* and returns `result` for `ctx.runNode()` to give back to the caller.
|
|
49
|
+
*/
|
|
50
|
+
private completeWithoutRunning;
|
|
51
|
+
/**
|
|
52
|
+
* Applies a settled result to the caller's context and returns it, so a first
|
|
53
|
+
* call and a repeat call for the same path are indistinguishable.
|
|
54
|
+
*/
|
|
55
|
+
private handBack;
|
|
56
|
+
/**
|
|
57
|
+
* Builds the completion result for a child that interrupted in a prior turn
|
|
58
|
+
* and whose interrupts are now all resolved, or `undefined` when the child is
|
|
59
|
+
* not in that state (so the caller falls through to a fresh run).
|
|
60
|
+
*/
|
|
61
|
+
private resumeHandoff;
|
|
62
|
+
private runFresh;
|
|
63
|
+
private recordResult;
|
|
64
|
+
}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Errors raised by the workflow framework.
|
|
8
|
+
*
|
|
9
|
+
* Ported from `google/adk-python` `workflow/_errors.py`.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Internal: raised when a dynamic node interrupts (HITL).
|
|
13
|
+
*
|
|
14
|
+
* Used exclusively by `ctx.runNode()` to signal that the dynamic child has
|
|
15
|
+
* unresolved interrupt IDs. The parent's NodeRunner catches this and reads the
|
|
16
|
+
* interrupt IDs from the parent's ctx (set by `ctx.runNode()` before throwing).
|
|
17
|
+
*
|
|
18
|
+
* Internal to the framework — not part of the public API.
|
|
19
|
+
*/
|
|
20
|
+
export declare class NodeInterruptedError extends Error {
|
|
21
|
+
constructor(message?: string);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Type guard for {@link NodeInterruptedError}.
|
|
25
|
+
*
|
|
26
|
+
* Matches on `name` rather than `instanceof <subclass>` so it stays correct when
|
|
27
|
+
* errors cross a package boundary (two copies of adk-js in one runtime would
|
|
28
|
+
* fail an `instanceof` check between them).
|
|
29
|
+
*/
|
|
30
|
+
export declare function isNodeInterruptedError(e: unknown): e is NodeInterruptedError;
|
|
31
|
+
/**
|
|
32
|
+
* Raised when a node exceeds its configured timeout.
|
|
33
|
+
*
|
|
34
|
+
* This is a regular `Error` (retryable) so a timed-out node can be retried via
|
|
35
|
+
* `retryConfig`.
|
|
36
|
+
*/
|
|
37
|
+
export declare class NodeTimeoutError extends Error {
|
|
38
|
+
readonly nodeName: string;
|
|
39
|
+
readonly timeout: number;
|
|
40
|
+
/**
|
|
41
|
+
* @param options.nodeName The name of the node that timed out.
|
|
42
|
+
* @param options.timeout The timeout, in seconds, that was exceeded.
|
|
43
|
+
*/
|
|
44
|
+
constructor(options: {
|
|
45
|
+
nodeName: string;
|
|
46
|
+
timeout: number;
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
/** Type guard for {@link NodeTimeoutError} (name-based; see above). */
|
|
50
|
+
export declare function isNodeTimeoutError(e: unknown): e is NodeTimeoutError;
|
|
51
|
+
/**
|
|
52
|
+
* Raised when a dynamic node fails.
|
|
53
|
+
*
|
|
54
|
+
* Caught by the parent node's NodeRunner to propagate the error.
|
|
55
|
+
* Internal to the framework — not part of the public API.
|
|
56
|
+
*/
|
|
57
|
+
export declare class DynamicNodeFailError extends Error {
|
|
58
|
+
readonly error: Error;
|
|
59
|
+
readonly errorNodePath: string;
|
|
60
|
+
/**
|
|
61
|
+
* @param options.message Human-readable failure message.
|
|
62
|
+
* @param options.error The underlying error thrown by the dynamic node.
|
|
63
|
+
* @param options.errorNodePath The node path where the failure occurred.
|
|
64
|
+
*/
|
|
65
|
+
constructor(options: {
|
|
66
|
+
message: string;
|
|
67
|
+
error: Error;
|
|
68
|
+
errorNodePath: string;
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
/** Type guard for {@link DynamicNodeFailError} (name-based; see above). */
|
|
72
|
+
export declare function isDynamicNodeFailError(e: unknown): e is DynamicNodeFailError;
|
|
73
|
+
/**
|
|
74
|
+
* Raised when a node reported a failure by emitting an error event instead of
|
|
75
|
+
* throwing, and produced nothing.
|
|
76
|
+
*
|
|
77
|
+
* A regular `Error`, so `retryConfig` can retry it via
|
|
78
|
+
* `exceptions: ['NodeReportedError']`; `code` carries the reported error code.
|
|
79
|
+
*/
|
|
80
|
+
export declare class NodeReportedError extends Error {
|
|
81
|
+
readonly code: string;
|
|
82
|
+
readonly nodeName: string;
|
|
83
|
+
/**
|
|
84
|
+
* @param options.nodeName The node that reported the error.
|
|
85
|
+
* @param options.errorCode The code carried on the reported event.
|
|
86
|
+
* @param options.errorMessage The message carried on the reported event.
|
|
87
|
+
*/
|
|
88
|
+
constructor(options: {
|
|
89
|
+
nodeName: string;
|
|
90
|
+
errorCode?: string;
|
|
91
|
+
errorMessage?: string;
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
/** Type guard for {@link NodeReportedError} (name-based; see above). */
|
|
95
|
+
export declare function isNodeReportedError(e: unknown): e is NodeReportedError;
|
|
96
|
+
/**
|
|
97
|
+
* Raised when the invocation is aborted (e.g. its abort signal fires) while the
|
|
98
|
+
* engine is waiting — currently during a node's retry backoff delay.
|
|
99
|
+
*
|
|
100
|
+
* Distinct from a node's own failure so a caller can tell "the invocation was
|
|
101
|
+
* cancelled" apart from "the node threw".
|
|
102
|
+
*/
|
|
103
|
+
export declare class InvocationAbortedError extends Error {
|
|
104
|
+
constructor(message?: string);
|
|
105
|
+
}
|
|
106
|
+
/** Type guard for {@link InvocationAbortedError} (name-based; see above). */
|
|
107
|
+
export declare function isInvocationAbortedError(e: unknown): e is InvocationAbortedError;
|
|
108
|
+
/**
|
|
109
|
+
* Raised when a node's input or output fails its declared schema.
|
|
110
|
+
*
|
|
111
|
+
* The underlying validation error (a `ZodError`, typically) carries the field
|
|
112
|
+
* path but not the node it came from, which leaves a failure in a large graph
|
|
113
|
+
* effectively unattributed. This wrapper names the node and which side of it
|
|
114
|
+
* failed, and keeps the original error on `cause` for the full detail.
|
|
115
|
+
*/
|
|
116
|
+
export declare class NodeSchemaValidationError extends Error {
|
|
117
|
+
readonly nodeName: string;
|
|
118
|
+
/** Which side of the node failed: its `inputSchema` or its `outputSchema`. */
|
|
119
|
+
readonly direction: 'input' | 'output';
|
|
120
|
+
/**
|
|
121
|
+
* @param options.nodeName The name of the node that failed validation.
|
|
122
|
+
* @param options.direction Whether the input or the output failed.
|
|
123
|
+
* @param options.cause The underlying validation error.
|
|
124
|
+
*/
|
|
125
|
+
constructor(options: {
|
|
126
|
+
nodeName: string;
|
|
127
|
+
direction: 'input' | 'output';
|
|
128
|
+
cause: unknown;
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
/** Type guard for {@link NodeSchemaValidationError} (name-based; see above). */
|
|
132
|
+
export declare function isNodeSchemaValidationError(e: unknown): e is NodeSchemaValidationError;
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import type { BaseAgent } from '../agents/base_agent.js';
|
|
7
|
+
import { BaseTool } from '../tools/base_tool.js';
|
|
8
|
+
import { BaseNode } from './base_node.js';
|
|
9
|
+
/**
|
|
10
|
+
* A unique symbol branding {@link Edge} instances.
|
|
11
|
+
*
|
|
12
|
+
* `isEdge` matches on this brand rather than `instanceof` so an edge built
|
|
13
|
+
* by another copy of adk-js in the same runtime is still recognised (an
|
|
14
|
+
* `instanceof` check fails across package copies) — mirroring the
|
|
15
|
+
* `Symbol.for('google.adk.*')` brands used across ADK.
|
|
16
|
+
*/
|
|
17
|
+
declare const EDGE_SIGNATURE_SYMBOL: unique symbol;
|
|
18
|
+
/** Valid routing values used in conditional graph edges. */
|
|
19
|
+
export type RouteValue = boolean | number | string;
|
|
20
|
+
/** The fallback route key used when no specific route matches. */
|
|
21
|
+
export declare const DEFAULT_ROUTE = "__DEFAULT__";
|
|
22
|
+
/**
|
|
23
|
+
* Any value that can be converted to a workflow node: a node, a tool, a plain
|
|
24
|
+
* function, or the `'START'` sentinel literal. (Agent wrapping is added in
|
|
25
|
+
* Phase 3 via `build_node`.)
|
|
26
|
+
*/
|
|
27
|
+
export type NodeLike = BaseNode | BaseAgent | BaseTool | ((...args: never[]) => unknown) | 'START';
|
|
28
|
+
/**
|
|
29
|
+
* What `ctx.runNode()` accepts: everything an edge accepts except the `'START'`
|
|
30
|
+
* sentinel, which marks a graph entry point rather than something runnable.
|
|
31
|
+
*/
|
|
32
|
+
export type RunnableNode = Exclude<NodeLike, 'START'>;
|
|
33
|
+
/**
|
|
34
|
+
* A mapping from route values to destination node(s). A value may be a single
|
|
35
|
+
* node or an array of nodes (fan-out).
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* {question: answerNode, statement: commentNode}
|
|
39
|
+
* {retry: [nodeA, nodeB]} // fan-out: both triggered
|
|
40
|
+
*
|
|
41
|
+
* @remarks
|
|
42
|
+
* JavaScript object keys are always strings, so a numeric key (`{2: node}`) and
|
|
43
|
+
* a boolean key (`{true: node}`) are reconstructed to their typed
|
|
44
|
+
* {@link RouteValue} (`2`, `true`) when parsed — mirroring Python dict keys.
|
|
45
|
+
* Because of this, routes are matched **by string value**
|
|
46
|
+
* ({@link Graph.getNextPendingNodes} compares `String(route)` on both sides), so
|
|
47
|
+
* a node emitting `2` and one emitting `'2'` both fire a `{2: node}` edge. The
|
|
48
|
+
* flip side is that a numeric/boolean-looking route and its string spelling
|
|
49
|
+
* cannot be distinguished in a routing map; use distinct, non-ambiguous route
|
|
50
|
+
* keys when that matters.
|
|
51
|
+
*/
|
|
52
|
+
export type RoutingMap = Record<string | number, NodeLike | readonly NodeLike[]>;
|
|
53
|
+
/** An element within a workflow chain. */
|
|
54
|
+
export type ChainElement = NodeLike | readonly NodeLike[] | RoutingMap;
|
|
55
|
+
/**
|
|
56
|
+
* An item that can be parsed into workflow edges: an explicit {@link Edge}, or a
|
|
57
|
+
* chain expressed as an array of {@link ChainElement}s (e.g.
|
|
58
|
+
* `['START', nodeA, nodeB]`).
|
|
59
|
+
*/
|
|
60
|
+
export type EdgeItem = Edge | ChainElement[];
|
|
61
|
+
/**
|
|
62
|
+
* A directed edge in the workflow graph.
|
|
63
|
+
*
|
|
64
|
+
* Mirrors `google/adk-python` `workflow/_graph.py::Edge`.
|
|
65
|
+
*/
|
|
66
|
+
export declare class Edge {
|
|
67
|
+
readonly fromNode: BaseNode;
|
|
68
|
+
readonly toNode: BaseNode;
|
|
69
|
+
/**
|
|
70
|
+
* The route(s) this edge is associated with. `null` means unconditional
|
|
71
|
+
* (always triggered). A single value or a list; the edge fires when the
|
|
72
|
+
* emitted route matches any listed value.
|
|
73
|
+
*/
|
|
74
|
+
readonly route: RouteValue | RouteValue[] | null;
|
|
75
|
+
/** Brand identifying this object as an {@link Edge} (see `isEdge`). */
|
|
76
|
+
readonly [EDGE_SIGNATURE_SYMBOL] = true;
|
|
77
|
+
constructor(fromNode: BaseNode, toNode: BaseNode,
|
|
78
|
+
/**
|
|
79
|
+
* The route(s) this edge is associated with. `null` means unconditional
|
|
80
|
+
* (always triggered). A single value or a list; the edge fires when the
|
|
81
|
+
* emitted route matches any listed value.
|
|
82
|
+
*/
|
|
83
|
+
route?: RouteValue | RouteValue[] | null);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Type guard for {@link Edge}.
|
|
87
|
+
*
|
|
88
|
+
* Matches on the {@link EDGE_SIGNATURE_SYMBOL} brand rather than `instanceof` so
|
|
89
|
+
* it stays correct across package copies (see the brand's doc).
|
|
90
|
+
*/
|
|
91
|
+
export declare function isEdge(value: unknown): value is Edge;
|
|
92
|
+
/**
|
|
93
|
+
* A compiled workflow graph. Nodes are inferred (deduped by identity) from the
|
|
94
|
+
* edges.
|
|
95
|
+
*
|
|
96
|
+
* Mirrors `google/adk-python` `workflow/_graph.py::Graph`.
|
|
97
|
+
*/
|
|
98
|
+
export declare class Graph {
|
|
99
|
+
readonly nodes: BaseNode[];
|
|
100
|
+
readonly edges: Edge[];
|
|
101
|
+
private _terminalNodeNames;
|
|
102
|
+
constructor(edges: Edge[]);
|
|
103
|
+
/** Terminal node names (no outgoing edges); populated by {@link validate}. */
|
|
104
|
+
get terminalNodeNames(): ReadonlySet<string>;
|
|
105
|
+
/**
|
|
106
|
+
* Determines the next nodes to transition to PENDING based on the route(s)
|
|
107
|
+
* emitted by a completed node. Ported from Python `get_next_pending_nodes`.
|
|
108
|
+
*
|
|
109
|
+
* Logs at debug when the node emitted a route, has conditional outgoing
|
|
110
|
+
* edges, and none of them (nor a `DEFAULT_ROUTE` edge) matched — the branch
|
|
111
|
+
* stops there, which is easy to mistake for a bug. Behaviour is unchanged.
|
|
112
|
+
*/
|
|
113
|
+
getNextPendingNodes(nodeName: string, routesToMatch: RouteValue | RouteValue[] | null | undefined): string[];
|
|
114
|
+
/** Validates the graph and computes terminal node names. */
|
|
115
|
+
validate(): void;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Builds, validates, and returns a {@link Graph} from a list of edge items.
|
|
119
|
+
*
|
|
120
|
+
* Validation runs here (not opt-in) so structural problems a graph can only
|
|
121
|
+
* have at build time — unreachable nodes, duplicate names/edges, routed edges
|
|
122
|
+
* from START, unconditional cycles — fail loudly at construction rather than
|
|
123
|
+
* surfacing as silent mis-routing at run time. It also populates the graph's
|
|
124
|
+
* {@link Graph.terminalNodeNames}, which is otherwise empty.
|
|
125
|
+
*/
|
|
126
|
+
export declare function createGraphFromEdgeItems(edgeItems: EdgeItem[]): Graph;
|
|
127
|
+
export {};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* The new ADK workflow module (parity port of `google/adk-python`
|
|
8
|
+
* `google/adk/workflow`). Public surface mirrors Python's `__all__`, plus the
|
|
9
|
+
* TypeScript-specific helpers and the types needed to use the
|
|
10
|
+
* API from TypeScript.
|
|
11
|
+
*/
|
|
12
|
+
export { asRunnableRoot, isRunnableRoot, runNodeAsInvocation, } from './run_node_as_invocation.js';
|
|
13
|
+
export type { RunNodeAsInvocationOptions, RunnableRoot, } from './run_node_as_invocation.js';
|
|
14
|
+
export { Workflow, isWorkflow } from './workflow.js';
|
|
15
|
+
export type { DynamicEntry, WorkflowConfig } from './workflow.js';
|
|
16
|
+
export { BaseNode, START } from './base_node.js';
|
|
17
|
+
export type { BaseNodeConfig } from './base_node.js';
|
|
18
|
+
export { WorkflowNode, node } from './node.js';
|
|
19
|
+
export type { NodeOptions } from './node.js';
|
|
20
|
+
export { FunctionNode } from './nodes/function_node.js';
|
|
21
|
+
export type { FunctionNodeConfig, FunctionNodeHandler, FunctionNodeResult, } from './nodes/function_node.js';
|
|
22
|
+
export { JoinNode } from './nodes/join_node.js';
|
|
23
|
+
export { NodeTool } from './nodes/node_tool.js';
|
|
24
|
+
export { ParallelWorker } from './nodes/parallel_worker.js';
|
|
25
|
+
export type { ParallelWorkerConfig } from './nodes/parallel_worker.js';
|
|
26
|
+
export { ToolNode } from './nodes/tool_node.js';
|
|
27
|
+
export type { ToolNodeConfig } from './nodes/tool_node.js';
|
|
28
|
+
export type { BuildNodeOptions } from './utils/workflow_graph_utils.js';
|
|
29
|
+
export { DEFAULT_ROUTE, Edge, Graph } from './graph.js';
|
|
30
|
+
export type { ChainElement, EdgeItem, NodeLike, RouteValue, RoutingMap, RunnableNode, } from './graph.js';
|
|
31
|
+
export { BranchPath, commonPrefixOf, createSubBranch } from './branch_path.js';
|
|
32
|
+
export { NodeContext } from './node_context.js';
|
|
33
|
+
export type { NodeContextOptions, NodeResult } from './node_context.js';
|
|
34
|
+
export type { RunNodeOptions } from './node_runner.js';
|
|
35
|
+
export { createNodeState, isNodeState } from './node_state.js';
|
|
36
|
+
export type { NodeState } from './node_state.js';
|
|
37
|
+
export { NodeStatus } from './node_status.js';
|
|
38
|
+
export type { ScheduleDynamicNode, ScheduleDynamicNodeOptions, } from './schedule_dynamic_node.js';
|
|
39
|
+
export { RequestInput, isRequestInput } from './request_input.js';
|
|
40
|
+
export type { RequestInputParams } from './request_input.js';
|
|
41
|
+
export { REQUEST_CREDENTIAL_FUNCTION_CALL_NAME, REQUEST_INPUT_FUNCTION_CALL_NAME, } from './utils/hitl_utils.js';
|
|
42
|
+
export { normalizeRetryExceptions, prepareRetryConfig } from './retry_config.js';
|
|
43
|
+
export type { ErrorClass, PreparedRetryConfig, RetryConfig, } from './retry_config.js';
|
|
44
|
+
export { NodeReportedError, NodeSchemaValidationError, NodeTimeoutError, isNodeReportedError, isNodeSchemaValidationError, isNodeTimeoutError, } from './errors.js';
|
|
45
|
+
export { createNodeErrorEvent, isNodeErrorEvent } from './node_error_event.js';
|
|
46
|
+
export type { CreateNodeErrorEventParams, NodeErrorEvent, } from './node_error_event.js';
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Event } from '../events/event.js';
|
|
7
|
+
import { BaseNode } from './base_node.js';
|
|
8
|
+
import { NodeLike } from './graph.js';
|
|
9
|
+
import { NodeContext } from './node_context.js';
|
|
10
|
+
import { BuildNodeOptions } from './utils/workflow_graph_utils.js';
|
|
11
|
+
/** Options accepted by {@link node}. */
|
|
12
|
+
export type NodeOptions = BuildNodeOptions;
|
|
13
|
+
/**
|
|
14
|
+
* Wraps a {@link NodeLike} (function, tool, agent, or existing node) into a
|
|
15
|
+
* {@link BaseNode}, optionally overriding its properties.
|
|
16
|
+
*
|
|
17
|
+
* The TypeScript form is a plain function (there is no `@node` decorator form,
|
|
18
|
+
* unlike Python). Examples:
|
|
19
|
+
*
|
|
20
|
+
* ```ts
|
|
21
|
+
* const a = node(myFunction, {name: 'classify'});
|
|
22
|
+
* const b = node(myTool);
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* Ported from `google/adk-python` `workflow/_node.py::node`.
|
|
26
|
+
*/
|
|
27
|
+
export declare function node(nodeLike: NodeLike, options?: NodeOptions): BaseNode;
|
|
28
|
+
/**
|
|
29
|
+
* A base class designed for subclassing. Implement {@link runNodeImpl} to
|
|
30
|
+
* provide node logic; subclasses inherit the schema/retry/timeout machinery of
|
|
31
|
+
* {@link BaseNode}.
|
|
32
|
+
*
|
|
33
|
+
* Named `WorkflowNode` (not `Node`) to read consistently with `Workflow` and
|
|
34
|
+
* `WorkflowConfig`, and to avoid shadowing the DOM / `@types/node` `Node`
|
|
35
|
+
* global in the flat `@google/adk` namespace. The `node()` factory remains the
|
|
36
|
+
* ergonomic way to wrap a function/tool/agent.
|
|
37
|
+
*
|
|
38
|
+
* Mirrors `google/adk-python` `workflow/_node.py::Node`. The `parallel_worker`
|
|
39
|
+
* capability is added in Phase 6.
|
|
40
|
+
*/
|
|
41
|
+
export declare abstract class WorkflowNode<TInput = unknown, TOutput = unknown> extends BaseNode<TInput, TOutput> {
|
|
42
|
+
/**
|
|
43
|
+
* Implement node execution logic here. May yield `Event`s, raw values, or
|
|
44
|
+
* `null` (normalized by {@link BaseNode.run}).
|
|
45
|
+
*/
|
|
46
|
+
protected abstract runNodeImpl(ctx: NodeContext, input: TInput): AsyncGenerator<Event | TOutput | unknown, void, void>;
|
|
47
|
+
protected runImpl(ctx: NodeContext, input: TInput): AsyncGenerator<Event | TOutput | unknown, void, void>;
|
|
48
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import type { NodeBuilder, ParallelWorkerFactory } from './utils/workflow_graph_utils.js';
|
|
7
|
+
/**
|
|
8
|
+
* The built-in node builders, consulted in order by `buildNode` / `isNodeLike`
|
|
9
|
+
* to turn a bare function or tool into the right `BaseNode`.
|
|
10
|
+
*
|
|
11
|
+
* There is no agent builder: an agent is already a `BaseNode` and goes into a
|
|
12
|
+
* graph as itself. What used to be built here — an `LLMAgentWrapper` around it
|
|
13
|
+
* — now lives on the agent, as `LlmAgent.runImpl`.
|
|
14
|
+
*
|
|
15
|
+
* This is a single, explicit, statically-imported list — node-type modules are
|
|
16
|
+
* wired in here rather than self-registering at import time, so there is no
|
|
17
|
+
* global mutable registry and no import-order side effects. Order is the match
|
|
18
|
+
* precedence (first match wins). Each node-type part adds its builder here.
|
|
19
|
+
*/
|
|
20
|
+
export declare const NODE_BUILDERS: readonly NodeBuilder[];
|
|
21
|
+
/**
|
|
22
|
+
* Wraps an already-built node in a parallel worker, used by the engine for
|
|
23
|
+
* `buildNode(..., {parallelWorker: true})`.
|
|
24
|
+
*/
|
|
25
|
+
export declare const PARALLEL_WORKER_FACTORY: ParallelWorkerFactory | undefined;
|