@google/adk 1.6.0 → 2.1.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 +17 -28
- package/dist/cjs/a2a/a2a_remote_agent.js +13 -7
- package/dist/cjs/a2a/a2a_remote_agent_run_processor.js +7 -3
- package/dist/cjs/a2a/a2a_remote_agent_utils.js +111 -2
- package/dist/cjs/a2a/agent_card.js +90 -8
- package/dist/cjs/a2a/agent_executor.js +34 -18
- package/dist/cjs/a2a/agent_to_a2a.js +28 -11
- package/dist/cjs/a2a/auth.js +3 -0
- package/dist/cjs/a2a/event_converter_utils.js +10 -0
- package/dist/cjs/a2a/event_processor_utils.js +71 -35
- package/dist/cjs/a2a/executor_context.js +6 -2
- package/dist/cjs/a2a/index.js +57 -0
- package/dist/cjs/a2a/metadata_converter_utils.js +5 -0
- package/dist/cjs/a2a/part_converter_utils.js +12 -0
- package/dist/cjs/a2a/request_metadata.js +94 -0
- package/dist/cjs/agents/active_streaming_tool.js +5 -2
- package/dist/cjs/agents/base_agent.js +55 -17
- package/dist/cjs/agents/context.js +12 -2
- package/dist/cjs/agents/framework_function_calls.js +64 -0
- package/dist/cjs/agents/functions.js +185 -60
- package/dist/cjs/agents/instructions.js +51 -12
- package/dist/cjs/agents/invocation_context.js +43 -8
- package/dist/cjs/agents/live_request_queue.js +29 -5
- package/dist/cjs/agents/llm_agent.js +541 -50
- package/dist/cjs/agents/loop_agent.js +20 -3
- package/dist/cjs/agents/parallel_agent.js +22 -3
- package/dist/cjs/agents/processors/agent_transfer_llm_request_processor.js +32 -8
- package/dist/cjs/agents/processors/base_llm_processor.js +9 -4
- package/dist/cjs/agents/processors/basic_llm_request_processor.js +6 -3
- package/dist/cjs/agents/processors/code_execution_request_processor.js +20 -7
- package/dist/cjs/agents/processors/content_processor_utils.js +85 -15
- package/dist/cjs/agents/processors/content_request_processor.js +13 -5
- package/dist/cjs/agents/processors/context_compactor_request_processor.js +5 -2
- package/dist/cjs/agents/processors/identity_llm_request_processor.js +12 -4
- package/dist/cjs/agents/processors/instructions_llm_request_processor.js +5 -2
- package/dist/cjs/agents/processors/interactions_request_processor.js +5 -2
- package/dist/cjs/agents/processors/request_confirmation_llm_request_processor.js +320 -92
- package/dist/cjs/agents/processors/request_input_llm_request_processor.js +214 -0
- package/dist/cjs/agents/processors/tool_filter_request_processor.js +5 -2
- package/dist/cjs/agents/readonly_context.js +13 -3
- package/dist/cjs/agents/routed_agent.js +7 -14
- package/dist/cjs/agents/run_config.js +12 -0
- package/dist/cjs/agents/sequential_agent.js +21 -4
- package/dist/cjs/agents/user_input_request.js +145 -0
- package/dist/cjs/apps/app.js +12 -12
- package/dist/cjs/apps/resumability_config.js +2 -0
- package/dist/cjs/artifacts/file_artifact_service.js +22 -4
- package/dist/cjs/artifacts/gcs_artifact_service.js +46 -11
- package/dist/cjs/artifacts/in_memory_artifact_service.js +9 -2
- package/dist/cjs/artifacts/registry.js +6 -1
- package/dist/cjs/artifacts/scoped_artifact_service.js +14 -2
- package/dist/cjs/artifacts/session_artifact_service.js +19 -0
- package/dist/cjs/auth/auth_handler.js +49 -10
- package/dist/cjs/auth/auth_preprocessor.js +48 -40
- package/dist/cjs/auth/auth_provider_registry.js +5 -2
- package/dist/cjs/auth/auth_schemes.js +2 -0
- package/dist/cjs/auth/credential_response_binding.js +101 -0
- package/dist/cjs/auth/credential_service/in_memory_credential_service.js +5 -2
- package/dist/cjs/auth/credential_service/session_state_credential_service.js +5 -2
- package/dist/cjs/auth/exchanger/base_credential_exchanger.js +5 -2
- package/dist/cjs/auth/exchanger/credential_exchanger_registry.js +5 -2
- package/dist/cjs/auth/oauth2/oauth2_credential_exchanger.js +8 -2
- package/dist/cjs/auth/oauth2/oauth2_credential_refresher.js +6 -3
- package/dist/cjs/auth/oauth2/oauth2_discovery.js +7 -2
- package/dist/cjs/auth/oauth2/oauth2_utils.js +23 -2
- 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 +7 -3
- package/dist/cjs/code_executors/built_in_code_executor.js +7 -3
- package/dist/cjs/code_executors/code_execution_utils.js +8 -2
- package/dist/cjs/code_executors/code_executor_context.js +5 -2
- package/dist/cjs/code_executors/container_code_executor.js +186 -0
- package/dist/cjs/code_executors/docker_container.js +282 -0
- package/dist/cjs/code_executors/unsafe_local_code_executor.js +19 -8
- package/dist/cjs/common.js +180 -46
- package/dist/cjs/context/agent_controlled_context_compactor.js +15 -7
- package/dist/cjs/context/anchored_context_compactor.js +46 -20
- package/dist/cjs/context/compaction_utils.js +18 -6
- package/dist/cjs/context/summarizers/llm_summarizer.js +5 -2
- package/dist/cjs/context/token_based_context_compactor.js +19 -5
- package/dist/cjs/context/trajectory_thought_pruning_compactor.js +22 -12
- package/dist/cjs/context/truncating_context_compactor.js +22 -7
- package/dist/cjs/environment/base_environment.js +97 -0
- package/dist/cjs/environment/local_environment.js +186 -0
- package/dist/cjs/errors/already_exists_error.js +50 -0
- package/dist/cjs/errors/input_validation_error.js +50 -0
- package/dist/cjs/errors/not_found_error.js +50 -0
- package/dist/cjs/errors/session_not_found_error.js +50 -0
- package/dist/cjs/errors/tool_execution_error.js +68 -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 +12 -0
- package/dist/cjs/events/structured_events.js +2 -0
- package/dist/cjs/examples/base_example_provider.js +7 -3
- package/dist/cjs/examples/example_util.js +3 -0
- package/dist/cjs/features/feature_registry.js +7 -0
- package/dist/cjs/index.js +54 -25
- package/dist/cjs/index_web.js +2 -0
- package/dist/cjs/integrations/agent_registry/agent_registry.js +10 -6
- package/dist/cjs/integrations/agent_registry/agent_registry_mcp_toolset.js +7 -4
- package/dist/cjs/integrations/agent_registry/helpers.js +3 -0
- package/dist/cjs/memory/in_memory_memory_service.js +8 -2
- package/dist/cjs/memory/rag_memory_transcript.js +136 -0
- package/dist/cjs/memory/vertex_ai_memory_bank_service.js +19 -4
- package/dist/cjs/memory/vertex_ai_rag_api.js +120 -0
- package/dist/cjs/memory/vertex_ai_rag_memory_service.js +228 -0
- package/dist/cjs/models/apigee_llm.js +10 -4
- package/dist/cjs/models/base_llm.js +8 -4
- package/dist/cjs/models/chrome_prompt_llm.js +304 -0
- package/dist/cjs/models/chrome_prompt_utils.js +229 -0
- package/dist/cjs/models/gemini_llm_connection.js +5 -2
- package/dist/cjs/models/google_llm.js +33 -16
- package/dist/cjs/models/interactions_utils.js +18 -3
- package/dist/cjs/models/llm_request.js +4 -0
- package/dist/cjs/models/llm_response.js +2 -0
- package/dist/cjs/models/registry.js +8 -2
- package/dist/cjs/models/routed_llm.js +4 -13
- package/dist/cjs/plugins/_reflect_retry_utils.js +142 -0
- package/dist/cjs/plugins/base_plugin.js +39 -5
- package/dist/cjs/plugins/global_instruction_plugin.js +5 -2
- package/dist/cjs/plugins/logging_plugin.js +13 -8
- package/dist/cjs/plugins/plugin_manager.js +37 -2
- package/dist/cjs/plugins/reflect_retry_model_plugin.js +274 -0
- package/dist/cjs/plugins/reflect_retry_tool_plugin.js +276 -0
- 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 +236 -43
- package/dist/cjs/sessions/base_session_service.js +13 -2
- package/dist/cjs/sessions/database_session_service.js +84 -45
- package/dist/cjs/sessions/db/operations.js +259 -24
- package/dist/cjs/sessions/db/schema.js +118 -156
- package/dist/cjs/sessions/in_memory_session_service.js +22 -14
- package/dist/cjs/sessions/registry.js +9 -2
- 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 +112 -17
- package/dist/cjs/skills/gcp_skill_registry.js +2 -0
- package/dist/cjs/skills/loader.js +22 -10
- package/dist/cjs/skills/prompt.js +3 -0
- package/dist/cjs/telemetry/google_cloud.js +42 -9
- package/dist/cjs/telemetry/setup.js +6 -1
- package/dist/cjs/telemetry/tracing.js +71 -5
- package/dist/cjs/tools/agent_tool.js +10 -7
- package/dist/cjs/tools/base_tool.js +38 -6
- package/dist/cjs/tools/base_toolset.js +10 -6
- package/dist/cjs/tools/built_in_tool.js +75 -0
- package/dist/cjs/tools/consolidate_context_tool.js +5 -2
- package/dist/cjs/tools/enterprise_web_search_tool.js +8 -7
- 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 +23 -15
- package/dist/cjs/tools/function_tool.js +79 -11
- package/dist/cjs/tools/get_user_choice_tool.js +3 -2
- package/dist/cjs/tools/google_maps_grounding_tool.js +8 -7
- package/dist/cjs/tools/google_search_tool.js +7 -7
- package/dist/cjs/tools/load_artifacts_tool.js +55 -25
- package/dist/cjs/tools/load_memory_tool.js +5 -2
- package/dist/cjs/tools/load_web_page.js +14 -160
- 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 +39 -7
- package/dist/cjs/tools/mcp/mcp_session_manager.js +36 -8
- package/dist/cjs/tools/mcp/mcp_tool.js +5 -2
- package/dist/cjs/tools/mcp/mcp_toolset.js +5 -2
- package/dist/cjs/tools/openapi_tool/auth/auth_helpers.js +15 -2
- 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 +3 -1
- 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 +39 -23
- package/dist/cjs/tools/preload_memory_tool.js +6 -3
- package/dist/cjs/tools/request_input_tool.js +6 -4
- package/dist/cjs/tools/resume_inputs.js +27 -0
- package/dist/cjs/tools/retrieval/base_retrieval_tool.js +60 -0
- package/dist/cjs/tools/retrieval/files_retrieval.js +95 -0
- package/dist/cjs/tools/retrieval/llama_index_retrieval.js +57 -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 +7 -7
- package/dist/cjs/tools/vertex_ai_search_tool.js +8 -9
- package/dist/cjs/tools/vertex_rag_retrieval_tool.js +7 -11
- 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 +18 -0
- package/dist/cjs/utils/deprecated.js +68 -0
- package/dist/cjs/utils/env_aware_utils.js +41 -0
- package/dist/cjs/utils/error_utils.js +8 -0
- package/dist/cjs/utils/experimental.js +9 -2
- package/dist/cjs/utils/failover_utils.js +3 -0
- package/dist/cjs/utils/file_extension_utils.js +3 -0
- package/dist/cjs/utils/file_utils.js +7 -2
- package/dist/cjs/utils/gemini_schema_util.js +6 -8
- 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 +28 -54
- package/dist/cjs/utils/logger_browser.js +86 -0
- package/dist/cjs/utils/logger_node.js +119 -0
- package/dist/cjs/utils/model_name.js +8 -0
- package/dist/cjs/utils/object_notation_utils.js +7 -3
- package/dist/cjs/utils/optional_peer.js +68 -0
- package/dist/cjs/utils/output_schema_utils.js +2 -0
- package/dist/cjs/utils/partial_copy.js +2 -0
- package/dist/cjs/utils/redact_inline_data.js +46 -0
- package/dist/cjs/utils/redact_uri.js +80 -0
- package/dist/cjs/utils/schema.js +178 -0
- package/dist/cjs/utils/simple_zod_to_json.js +17 -4
- package/dist/cjs/utils/ssrf_guard.js +262 -0
- package/dist/cjs/utils/streaming_utils.js +14 -6
- package/dist/cjs/utils/task.js +7 -4
- package/dist/cjs/utils/variant_utils.js +3 -1
- package/dist/cjs/utils/vertex_ai_utils.js +3 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/workflow/base_node.js +211 -0
- package/dist/cjs/workflow/branch_path.js +108 -0
- package/dist/cjs/workflow/dynamic_node_scheduler.js +220 -0
- package/dist/cjs/workflow/errors.js +178 -0
- package/dist/cjs/workflow/graph.js +158 -0
- package/dist/cjs/workflow/index.js +131 -0
- package/dist/cjs/workflow/node.js +65 -0
- package/dist/cjs/workflow/node_builders.js +68 -0
- package/dist/cjs/workflow/node_context.js +246 -0
- package/dist/cjs/workflow/node_error_event.js +86 -0
- package/dist/cjs/workflow/node_runner.js +459 -0
- package/dist/cjs/workflow/node_state.js +57 -0
- package/dist/cjs/workflow/node_status.js +48 -0
- package/dist/cjs/workflow/nodes/function_node.js +195 -0
- package/dist/cjs/workflow/nodes/join_node.js +56 -0
- package/dist/cjs/workflow/nodes/node_tool.js +147 -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 +18 -27
- package/dist/esm/a2a/a2a_remote_agent.js +16 -7
- package/dist/esm/a2a/a2a_remote_agent_run_processor.js +8 -3
- package/dist/esm/a2a/a2a_remote_agent_utils.js +110 -2
- package/dist/esm/a2a/agent_card.js +96 -8
- package/dist/esm/a2a/agent_executor.js +36 -19
- package/dist/esm/a2a/agent_to_a2a.js +52 -17
- package/dist/esm/a2a/auth.js +4 -0
- package/dist/esm/a2a/event_converter_utils.js +11 -0
- package/dist/esm/a2a/event_processor_utils.js +74 -35
- package/dist/esm/a2a/executor_context.js +7 -2
- package/dist/esm/a2a/index.js +26 -0
- package/dist/esm/a2a/metadata_converter_utils.js +6 -0
- package/dist/esm/a2a/part_converter_utils.js +13 -0
- package/dist/esm/a2a/request_metadata.js +68 -0
- package/dist/esm/agents/active_streaming_tool.js +6 -2
- package/dist/esm/agents/base_agent.js +56 -17
- package/dist/esm/agents/context.js +13 -2
- package/dist/esm/agents/framework_function_calls.js +34 -0
- package/dist/esm/agents/functions.js +191 -58
- package/dist/esm/agents/instructions.js +52 -12
- package/dist/esm/agents/invocation_context.js +42 -7
- package/dist/esm/agents/live_request_queue.js +30 -5
- package/dist/esm/agents/llm_agent.js +542 -50
- package/dist/esm/agents/loop_agent.js +22 -3
- package/dist/esm/agents/parallel_agent.js +24 -3
- package/dist/esm/agents/processors/agent_transfer_llm_request_processor.js +33 -8
- package/dist/esm/agents/processors/base_llm_processor.js +10 -4
- package/dist/esm/agents/processors/basic_llm_request_processor.js +7 -3
- package/dist/esm/agents/processors/code_execution_request_processor.js +21 -7
- package/dist/esm/agents/processors/content_processor_utils.js +88 -16
- package/dist/esm/agents/processors/content_request_processor.js +14 -5
- package/dist/esm/agents/processors/context_compactor_request_processor.js +6 -2
- package/dist/esm/agents/processors/identity_llm_request_processor.js +13 -4
- package/dist/esm/agents/processors/instructions_llm_request_processor.js +6 -2
- package/dist/esm/agents/processors/interactions_request_processor.js +6 -2
- package/dist/esm/agents/processors/request_confirmation_llm_request_processor.js +325 -93
- package/dist/esm/agents/processors/request_input_llm_request_processor.js +193 -0
- package/dist/esm/agents/processors/tool_filter_request_processor.js +6 -2
- package/dist/esm/agents/readonly_context.js +14 -3
- package/dist/esm/agents/routed_agent.js +7 -15
- package/dist/esm/agents/run_config.js +13 -0
- package/dist/esm/agents/sequential_agent.js +23 -4
- package/dist/esm/agents/user_input_request.js +120 -0
- package/dist/esm/apps/app.js +15 -12
- package/dist/esm/apps/resumability_config.js +3 -0
- package/dist/esm/artifacts/file_artifact_service.js +23 -4
- package/dist/esm/artifacts/gcs_artifact_service.js +58 -11
- package/dist/esm/artifacts/in_memory_artifact_service.js +10 -2
- package/dist/esm/artifacts/registry.js +7 -1
- package/dist/esm/artifacts/scoped_artifact_service.js +15 -2
- package/dist/esm/artifacts/session_artifact_service.js +12 -0
- package/dist/esm/auth/auth_handler.js +53 -10
- package/dist/esm/auth/auth_preprocessor.js +50 -41
- package/dist/esm/auth/auth_provider_registry.js +6 -2
- package/dist/esm/auth/auth_schemes.js +3 -0
- package/dist/esm/auth/credential_response_binding.js +74 -0
- package/dist/esm/auth/credential_service/in_memory_credential_service.js +6 -2
- package/dist/esm/auth/credential_service/session_state_credential_service.js +6 -2
- package/dist/esm/auth/exchanger/base_credential_exchanger.js +6 -2
- package/dist/esm/auth/exchanger/credential_exchanger_registry.js +6 -2
- package/dist/esm/auth/oauth2/oauth2_credential_exchanger.js +9 -2
- package/dist/esm/auth/oauth2/oauth2_credential_refresher.js +7 -3
- package/dist/esm/auth/oauth2/oauth2_discovery.js +8 -2
- package/dist/esm/auth/oauth2/oauth2_utils.js +22 -2
- 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 +8 -3
- package/dist/esm/code_executors/built_in_code_executor.js +8 -3
- package/dist/esm/code_executors/code_execution_utils.js +9 -2
- package/dist/esm/code_executors/code_executor_context.js +6 -2
- package/dist/esm/code_executors/container_code_executor.js +155 -0
- package/dist/esm/code_executors/docker_container.js +265 -0
- package/dist/esm/code_executors/unsafe_local_code_executor.js +20 -8
- package/dist/esm/common.js +181 -41
- package/dist/esm/context/agent_controlled_context_compactor.js +16 -7
- package/dist/esm/context/anchored_context_compactor.js +51 -21
- package/dist/esm/context/compaction_utils.js +17 -5
- package/dist/esm/context/summarizers/llm_summarizer.js +6 -2
- package/dist/esm/context/token_based_context_compactor.js +20 -5
- package/dist/esm/context/trajectory_thought_pruning_compactor.js +23 -12
- package/dist/esm/context/truncating_context_compactor.js +23 -7
- package/dist/esm/environment/base_environment.js +71 -0
- package/dist/esm/environment/local_environment.js +150 -0
- package/dist/esm/errors/already_exists_error.js +23 -0
- package/dist/esm/errors/input_validation_error.js +23 -0
- package/dist/esm/errors/not_found_error.js +23 -0
- package/dist/esm/errors/session_not_found_error.js +23 -0
- package/dist/esm/errors/tool_execution_error.js +40 -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 +12 -0
- package/dist/esm/events/structured_events.js +3 -0
- package/dist/esm/examples/base_example_provider.js +8 -3
- package/dist/esm/examples/example_util.js +4 -0
- package/dist/esm/features/feature_registry.js +8 -0
- package/dist/esm/index.js +41 -15
- package/dist/esm/index_web.js +2 -0
- package/dist/esm/integrations/agent_registry/agent_registry.js +11 -6
- package/dist/esm/integrations/agent_registry/agent_registry_mcp_toolset.js +6 -2
- package/dist/esm/integrations/agent_registry/helpers.js +4 -0
- package/dist/esm/memory/in_memory_memory_service.js +9 -2
- package/dist/esm/memory/rag_memory_transcript.js +106 -0
- package/dist/esm/memory/vertex_ai_memory_bank_service.js +20 -4
- package/dist/esm/memory/vertex_ai_rag_api.js +93 -0
- package/dist/esm/memory/vertex_ai_rag_memory_service.js +208 -0
- package/dist/esm/models/apigee_llm.js +11 -4
- package/dist/esm/models/base_llm.js +9 -4
- package/dist/esm/models/chrome_prompt_llm.js +285 -0
- package/dist/esm/models/chrome_prompt_utils.js +192 -0
- package/dist/esm/models/gemini_llm_connection.js +6 -2
- package/dist/esm/models/google_llm.js +35 -17
- package/dist/esm/models/interactions_utils.js +19 -3
- package/dist/esm/models/llm_request.js +5 -0
- package/dist/esm/models/llm_response.js +3 -0
- package/dist/esm/models/registry.js +9 -2
- package/dist/esm/models/routed_llm.js +4 -14
- package/dist/esm/plugins/_reflect_retry_utils.js +111 -0
- package/dist/esm/plugins/base_plugin.js +39 -5
- package/dist/esm/plugins/global_instruction_plugin.js +6 -2
- package/dist/esm/plugins/logging_plugin.js +14 -8
- package/dist/esm/plugins/plugin_manager.js +38 -2
- package/dist/esm/plugins/reflect_retry_model_plugin.js +250 -0
- package/dist/esm/plugins/reflect_retry_tool_plugin.js +254 -0
- 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 +249 -46
- package/dist/esm/sessions/base_session_service.js +14 -2
- package/dist/esm/sessions/database_session_service.js +65 -27
- package/dist/esm/sessions/db/operations.js +259 -24
- package/dist/esm/sessions/db/schema.js +116 -157
- package/dist/esm/sessions/in_memory_session_service.js +23 -14
- package/dist/esm/sessions/registry.js +10 -2
- 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 +111 -16
- package/dist/esm/skills/gcp_skill_registry.js +2 -0
- package/dist/esm/skills/loader.js +23 -10
- package/dist/esm/skills/prompt.js +4 -0
- package/dist/esm/telemetry/google_cloud.js +54 -9
- package/dist/esm/telemetry/setup.js +7 -1
- package/dist/esm/telemetry/tracing.js +70 -5
- package/dist/esm/tools/agent_tool.js +11 -7
- package/dist/esm/tools/base_tool.js +36 -5
- package/dist/esm/tools/base_toolset.js +11 -6
- package/dist/esm/tools/built_in_tool.js +51 -0
- package/dist/esm/tools/consolidate_context_tool.js +6 -2
- package/dist/esm/tools/enterprise_web_search_tool.js +9 -7
- 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 +24 -15
- package/dist/esm/tools/function_tool.js +80 -11
- package/dist/esm/tools/get_user_choice_tool.js +4 -2
- package/dist/esm/tools/google_maps_grounding_tool.js +9 -7
- package/dist/esm/tools/google_search_tool.js +8 -7
- package/dist/esm/tools/load_artifacts_tool.js +57 -26
- package/dist/esm/tools/load_memory_tool.js +6 -2
- package/dist/esm/tools/load_web_page.js +19 -158
- package/dist/esm/tools/long_running_tool.js +6 -2
- package/dist/{web/context/summarizers/base_summarizer.js → esm/tools/mcp/index.js} +4 -0
- package/dist/esm/tools/mcp/load_mcp_resource_tool.js +40 -7
- package/dist/esm/tools/mcp/mcp_session_manager.js +45 -9
- package/dist/esm/tools/mcp/mcp_tool.js +6 -2
- package/dist/esm/tools/mcp/mcp_toolset.js +6 -2
- package/dist/esm/tools/openapi_tool/auth/auth_helpers.js +18 -2
- 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 +3 -1
- 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 +39 -23
- package/dist/esm/tools/preload_memory_tool.js +7 -3
- package/dist/esm/tools/request_input_tool.js +7 -4
- package/dist/esm/tools/retrieval/base_retrieval_tool.js +33 -0
- package/dist/esm/tools/retrieval/files_retrieval.js +81 -0
- package/dist/esm/tools/retrieval/llama_index_retrieval.js +30 -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 +8 -7
- package/dist/esm/tools/vertex_ai_search_tool.js +9 -9
- package/dist/esm/tools/vertex_rag_retrieval_tool.js +8 -11
- 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 +17 -0
- package/dist/esm/utils/deprecated.js +40 -0
- package/dist/esm/utils/env_aware_utils.js +41 -0
- package/dist/esm/utils/error_utils.js +9 -0
- package/dist/esm/utils/experimental.js +10 -2
- package/dist/esm/utils/failover_utils.js +4 -0
- package/dist/esm/utils/file_extension_utils.js +4 -0
- package/dist/esm/utils/file_utils.js +8 -2
- package/dist/esm/utils/gemini_schema_util.js +7 -8
- 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 +28 -44
- package/dist/esm/utils/logger_browser.js +58 -0
- package/dist/esm/utils/logger_node.js +81 -0
- package/dist/esm/utils/model_name.js +9 -0
- package/dist/esm/utils/object_notation_utils.js +8 -3
- package/dist/esm/utils/optional_peer.js +41 -0
- package/dist/esm/utils/output_schema_utils.js +3 -0
- package/dist/esm/utils/partial_copy.js +3 -0
- package/dist/esm/utils/redact_inline_data.js +19 -0
- package/dist/esm/utils/redact_uri.js +53 -0
- package/dist/esm/utils/schema.js +152 -0
- package/dist/esm/utils/simple_zod_to_json.js +15 -4
- package/dist/esm/utils/ssrf_guard.js +230 -0
- package/dist/esm/utils/streaming_utils.js +15 -6
- package/dist/esm/utils/task.js +8 -4
- package/dist/esm/utils/variant_utils.js +5 -2
- package/dist/esm/utils/vertex_ai_utils.js +5 -2
- package/dist/esm/version.js +1 -1
- package/dist/esm/workflow/base_node.js +182 -0
- package/dist/esm/workflow/branch_path.js +77 -0
- package/dist/esm/workflow/dynamic_node_scheduler.js +202 -0
- package/dist/esm/workflow/errors.js +140 -0
- package/dist/esm/workflow/graph.js +127 -0
- package/dist/esm/workflow/index.js +80 -0
- package/dist/esm/workflow/node.js +38 -0
- package/dist/esm/workflow/node_builders.js +40 -0
- package/dist/esm/workflow/node_context.js +219 -0
- package/dist/esm/workflow/node_error_event.js +57 -0
- package/dist/esm/workflow/node_runner.js +439 -0
- package/dist/esm/workflow/node_state.js +29 -0
- package/dist/esm/workflow/node_status.js +20 -0
- package/dist/esm/workflow/nodes/function_node.js +172 -0
- package/dist/esm/workflow/nodes/join_node.js +29 -0
- package/dist/esm/workflow/nodes/node_tool.js +122 -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/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/a2a_event.d.ts +7 -10
- package/dist/types/a2a/a2a_remote_agent.d.ts +5 -0
- package/dist/types/a2a/a2a_remote_agent_utils.d.ts +25 -0
- package/dist/types/a2a/agent_card.d.ts +12 -3
- package/dist/types/a2a/agent_executor.d.ts +1 -1
- package/dist/types/a2a/agent_to_a2a.d.ts +6 -4
- package/dist/types/a2a/auth.d.ts +5 -1
- package/dist/types/a2a/event_processor_utils.d.ts +17 -2
- package/dist/types/a2a/executor_context.d.ts +7 -1
- package/dist/types/a2a/index.d.ts +18 -0
- package/dist/types/a2a/request_metadata.d.ts +22 -0
- package/dist/types/agents/base_agent.d.ts +56 -25
- package/dist/types/agents/context.d.ts +8 -0
- package/dist/types/agents/framework_function_calls.d.ts +26 -0
- package/dist/types/agents/functions.d.ts +73 -8
- package/dist/types/agents/invocation_context.d.ts +106 -6
- package/dist/types/agents/live_request_queue.d.ts +7 -1
- package/dist/types/agents/llm_agent.d.ts +86 -8
- 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/agent_transfer_llm_request_processor.d.ts +16 -1
- 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/readonly_context.d.ts +4 -0
- package/dist/types/agents/run_config.d.ts +72 -4
- 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/artifacts/scoped_artifact_service.d.ts +13 -0
- package/dist/types/artifacts/session_artifact_service.d.ts +8 -1
- package/dist/types/auth/auth_credential.d.ts +13 -8
- package/dist/types/auth/auth_handler.d.ts +12 -1
- package/dist/types/auth/credential_response_binding.d.ts +24 -0
- package/dist/types/auth/oauth2/oauth2_credential_refresher.d.ts +1 -1
- package/dist/types/auth/oauth2/oauth2_utils.d.ts +9 -0
- package/dist/types/auth/refresher/base_credential_refresher.d.ts +1 -1
- package/dist/types/code_executors/code_execution_utils.d.ts +1 -1
- package/dist/types/code_executors/container_code_executor.d.ts +89 -0
- package/dist/types/code_executors/docker_container.d.ts +79 -0
- package/dist/types/common.d.ts +39 -27
- package/dist/types/context/compaction_utils.d.ts +9 -1
- package/dist/types/environment/base_environment.d.ts +101 -0
- package/dist/types/environment/local_environment.d.ts +72 -0
- package/dist/types/errors/already_exists_error.d.ts +14 -0
- package/dist/types/errors/input_validation_error.d.ts +14 -0
- package/dist/types/errors/not_found_error.d.ts +14 -0
- package/dist/types/errors/session_not_found_error.d.ts +14 -0
- package/dist/types/errors/tool_execution_error.d.ts +36 -0
- package/dist/types/events/event.d.ts +94 -1
- package/dist/types/events/event_actions.d.ts +23 -0
- package/dist/types/index.d.ts +27 -14
- package/dist/types/memory/rag_memory_transcript.d.ts +55 -0
- package/dist/types/memory/vertex_ai_rag_api.d.ts +89 -0
- package/dist/types/memory/vertex_ai_rag_memory_service.d.ts +68 -0
- package/dist/types/models/apigee_llm.d.ts +4 -4
- package/dist/types/models/chrome_prompt_llm.d.ts +210 -0
- package/dist/types/models/chrome_prompt_utils.d.ts +68 -0
- package/dist/types/models/google_llm.d.ts +10 -4
- package/dist/types/models/registry.d.ts +3 -2
- package/dist/types/plugins/_reflect_retry_utils.d.ts +72 -0
- package/dist/types/plugins/base_plugin.d.ts +47 -10
- package/dist/types/plugins/logging_plugin.d.ts +3 -2
- package/dist/types/plugins/plugin_manager.d.ts +20 -0
- package/dist/types/plugins/reflect_retry_model_plugin.d.ts +132 -0
- package/dist/types/plugins/reflect_retry_tool_plugin.d.ts +187 -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 +64 -9
- package/dist/types/sessions/base_session_service.d.ts +2 -2
- package/dist/types/sessions/database_session_service.d.ts +1 -1
- package/dist/types/sessions/db/operations.d.ts +13 -1
- package/dist/types/sessions/db/schema.d.ts +23 -9
- package/dist/types/sessions/state.d.ts +34 -1
- package/dist/types/sessions/state_write_order.d.ts +39 -0
- package/dist/types/telemetry/tracing.d.ts +15 -0
- package/dist/types/tools/base_tool.d.ts +26 -0
- package/dist/types/tools/base_toolset.d.ts +3 -4
- package/dist/types/tools/built_in_tool.d.ts +41 -0
- package/dist/types/tools/enterprise_web_search_tool.d.ts +4 -4
- package/dist/types/tools/finish_task_tool.d.ts +47 -0
- package/dist/types/tools/forwarding_artifact_service.d.ts +23 -10
- package/dist/types/tools/function_tool.d.ts +88 -10
- package/dist/types/tools/google_maps_grounding_tool.d.ts +4 -4
- package/dist/types/tools/google_search_tool.d.ts +4 -4
- package/dist/types/tools/long_running_tool.d.ts +1 -1
- package/dist/types/tools/mcp/index.d.ts +13 -0
- package/dist/types/tools/mcp/mcp_session_manager.d.ts +3 -3
- package/dist/types/tools/mcp/mcp_tool.d.ts +1 -1
- package/dist/types/tools/mcp/mcp_toolset.d.ts +12 -11
- package/dist/types/tools/openapi_tool/auth/auth_helpers.d.ts +5 -0
- package/dist/types/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.d.ts +0 -1
- package/dist/types/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.d.ts +0 -1
- package/dist/types/tools/preload_memory_tool.d.ts +1 -1
- package/dist/types/tools/request_input_tool.d.ts +6 -1
- package/dist/types/tools/resume_inputs.d.ts +25 -0
- package/dist/types/tools/retrieval/base_retrieval_tool.d.ts +21 -0
- package/dist/types/tools/retrieval/files_retrieval.d.ts +50 -0
- package/dist/types/tools/retrieval/llama_index_retrieval.d.ts +62 -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/tools/url_context_tool.d.ts +4 -4
- package/dist/types/tools/vertex_ai_search_tool.d.ts +4 -4
- package/dist/types/tools/vertex_rag_retrieval_tool.d.ts +13 -12
- 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 +16 -0
- package/dist/types/utils/file_utils.d.ts +10 -2
- package/dist/types/utils/gemini_schema_util.d.ts +5 -7
- package/dist/types/utils/genai_schema_to_json.d.ts +25 -0
- package/dist/types/utils/logger.d.ts +23 -1
- package/dist/types/utils/logger_browser.d.ts +28 -0
- package/dist/types/utils/logger_node.d.ts +20 -0
- package/dist/types/utils/optional_peer.d.ts +36 -0
- package/dist/types/utils/output_schema_utils.d.ts +3 -3
- package/dist/types/utils/redact_inline_data.d.ts +16 -0
- package/dist/types/utils/redact_uri.d.ts +32 -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/ssrf_guard.d.ts +32 -0
- package/dist/types/utils/vertex_ai_utils.d.ts +4 -0
- package/dist/types/version.d.ts +1 -1
- package/dist/types/workflow/base_node.d.ts +142 -0
- package/dist/types/workflow/branch_path.d.ts +40 -0
- package/dist/types/workflow/dynamic_node_scheduler.d.ts +64 -0
- package/dist/types/workflow/errors.d.ts +132 -0
- package/dist/types/workflow/graph.d.ts +127 -0
- package/dist/types/workflow/index.d.ts +46 -0
- package/dist/types/workflow/node.d.ts +48 -0
- package/dist/types/workflow/node_builders.d.ts +25 -0
- package/dist/types/workflow/node_context.d.ts +208 -0
- package/dist/types/workflow/node_error_event.d.ts +18 -0
- package/dist/types/workflow/node_runner.d.ts +82 -0
- package/dist/types/workflow/node_state.d.ts +47 -0
- package/dist/types/workflow/node_status.d.ts +28 -0
- package/dist/types/workflow/nodes/function_node.d.ts +78 -0
- package/dist/types/workflow/nodes/join_node.d.ts +24 -0
- package/dist/types/workflow/nodes/node_tool.d.ts +53 -0
- package/dist/types/workflow/nodes/parallel_worker.d.ts +55 -0
- package/dist/types/workflow/nodes/tool_node.d.ts +34 -0
- package/dist/types/workflow/request_input.d.ts +73 -0
- package/dist/types/workflow/retry_config.d.ts +84 -0
- package/dist/types/workflow/run_llm_agent_as_node.d.ts +28 -0
- package/dist/types/workflow/run_node_as_invocation.d.ts +72 -0
- package/dist/types/workflow/schedule_dynamic_node.d.ts +66 -0
- package/dist/types/workflow/trigger.d.ts +22 -0
- package/dist/types/workflow/utils/graph_parser.d.ts +8 -0
- package/dist/types/workflow/utils/graph_validation.d.ts +18 -0
- package/dist/types/workflow/utils/hitl_utils.d.ts +92 -0
- package/dist/types/workflow/utils/rehydration_utils.d.ts +132 -0
- package/dist/types/workflow/utils/retry_utils.d.ts +54 -0
- package/dist/types/workflow/utils/workflow_graph_utils.d.ts +76 -0
- package/dist/types/workflow/workflow.d.ts +115 -0
- package/dist/web/index_web.js +304 -3
- package/dist/web/index_web.js.map +7 -0
- package/package.json +97 -20
- package/dist/web/a2a/a2a_event.js +0 -271
- package/dist/web/a2a/a2a_remote_agent.js +0 -196
- package/dist/web/a2a/a2a_remote_agent_run_processor.js +0 -184
- package/dist/web/a2a/a2a_remote_agent_utils.js +0 -133
- package/dist/web/a2a/agent_card.js +0 -342
- package/dist/web/a2a/agent_executor.js +0 -218
- package/dist/web/a2a/agent_to_a2a.js +0 -97
- package/dist/web/a2a/auth.js +0 -37
- package/dist/web/a2a/event_converter_utils.js +0 -232
- package/dist/web/a2a/event_processor_utils.js +0 -170
- package/dist/web/a2a/executor_context.js +0 -25
- package/dist/web/a2a/metadata_converter_utils.js +0 -110
- package/dist/web/a2a/part_converter_utils.js +0 -188
- package/dist/web/agents/active_streaming_tool.js +0 -21
- package/dist/web/agents/base_agent.js +0 -423
- package/dist/web/agents/context.js +0 -142
- package/dist/web/agents/functions.js +0 -433
- package/dist/web/agents/instructions.js +0 -148
- package/dist/web/agents/invocation_context.js +0 -77
- package/dist/web/agents/live_request_queue.js +0 -126
- package/dist/web/agents/llm_agent.js +0 -936
- package/dist/web/agents/loop_agent.js +0 -112
- package/dist/web/agents/parallel_agent.js +0 -101
- package/dist/web/agents/processors/agent_transfer_llm_request_processor.js +0 -109
- package/dist/web/agents/processors/base_llm_processor.js +0 -15
- package/dist/web/agents/processors/basic_llm_request_processor.js +0 -81
- package/dist/web/agents/processors/code_execution_request_processor.js +0 -367
- package/dist/web/agents/processors/content_processor_utils.js +0 -361
- package/dist/web/agents/processors/content_request_processor.js +0 -67
- package/dist/web/agents/processors/context_compactor_request_processor.js +0 -74
- package/dist/web/agents/processors/identity_llm_request_processor.js +0 -50
- package/dist/web/agents/processors/instructions_llm_request_processor.js +0 -81
- package/dist/web/agents/processors/interactions_request_processor.js +0 -52
- package/dist/web/agents/processors/request_confirmation_llm_request_processor.js +0 -168
- package/dist/web/agents/processors/tool_filter_request_processor.js +0 -68
- package/dist/web/agents/readonly_context.js +0 -55
- package/dist/web/agents/routed_agent.js +0 -169
- package/dist/web/agents/run_config.js +0 -62
- package/dist/web/agents/sequential_agent.js +0 -122
- package/dist/web/agents/transcription_entry.js +0 -7
- package/dist/web/apps/app.js +0 -49
- package/dist/web/apps/resumability_config.js +0 -31
- package/dist/web/artifacts/base_artifact_service.js +0 -7
- package/dist/web/artifacts/file_artifact_service.js +0 -548
- package/dist/web/artifacts/gcs_artifact_service.js +0 -253
- package/dist/web/artifacts/in_memory_artifact_service.js +0 -164
- package/dist/web/artifacts/registry.js +0 -30
- package/dist/web/artifacts/scoped_artifact_service.js +0 -86
- package/dist/web/auth/auth_credential.js +0 -18
- package/dist/web/auth/auth_handler.js +0 -148
- package/dist/web/auth/auth_preprocessor.js +0 -175
- package/dist/web/auth/auth_provider_registry.js +0 -33
- package/dist/web/auth/auth_schemes.js +0 -33
- package/dist/web/auth/auth_tool.js +0 -7
- package/dist/web/auth/credential_service/base_credential_service.js +0 -7
- package/dist/web/auth/credential_service/in_memory_credential_service.js +0 -46
- package/dist/web/auth/credential_service/session_state_credential_service.js +0 -23
- package/dist/web/auth/exchanger/base_credential_exchanger.js +0 -12
- package/dist/web/auth/exchanger/credential_exchanger_registry.js +0 -31
- package/dist/web/auth/oauth2/oauth2_credential_exchanger.js +0 -188
- package/dist/web/auth/oauth2/oauth2_credential_refresher.js +0 -102
- package/dist/web/auth/oauth2/oauth2_discovery.js +0 -190
- package/dist/web/auth/oauth2/oauth2_utils.js +0 -98
- package/dist/web/auth/refresher/base_credential_refresher.js +0 -16
- package/dist/web/auth/refresher/credential_refresher_registry.js +0 -40
- package/dist/web/code_executors/agent_engine_sandbox_code_executor.js +0 -281
- package/dist/web/code_executors/base_code_executor.js +0 -63
- package/dist/web/code_executors/built_in_code_executor.js +0 -45
- package/dist/web/code_executors/code_execution_utils.js +0 -124
- package/dist/web/code_executors/code_executor_context.js +0 -170
- package/dist/web/code_executors/unsafe_local_code_executor.js +0 -214
- package/dist/web/common.js +0 -347
- package/dist/web/context/agent_controlled_context_compactor.js +0 -72
- package/dist/web/context/anchored_context_compactor.js +0 -117
- package/dist/web/context/base_context_compactor.js +0 -7
- package/dist/web/context/compaction_utils.js +0 -38
- package/dist/web/context/summarizers/llm_summarizer.js +0 -87
- package/dist/web/context/token_based_context_compactor.js +0 -111
- package/dist/web/context/trajectory_thought_pruning_compactor.js +0 -43
- package/dist/web/context/truncating_context_compactor.js +0 -30
- package/dist/web/events/compacted_event.js +0 -47
- package/dist/web/events/event.js +0 -174
- package/dist/web/events/event_actions.js +0 -69
- package/dist/web/events/structured_events.js +0 -76
- package/dist/web/examples/base_example_provider.js +0 -27
- package/dist/web/examples/example.js +0 -7
- package/dist/web/examples/example_util.js +0 -79
- package/dist/web/features/feature_registry.js +0 -107
- package/dist/web/index.js +0 -68
- package/dist/web/integrations/agent_registry/agent_registry.js +0 -333
- package/dist/web/integrations/agent_registry/agent_registry_mcp_toolset.js +0 -117
- package/dist/web/integrations/agent_registry/helpers.js +0 -28
- package/dist/web/integrations/agent_registry/types.js +0 -20
- package/dist/web/memory/base_memory_service.js +0 -7
- package/dist/web/memory/in_memory_memory_service.js +0 -82
- package/dist/web/memory/memory_entry.js +0 -7
- package/dist/web/memory/vertex_ai_memory_bank_service.js +0 -481
- package/dist/web/models/apigee_llm.js +0 -221
- package/dist/web/models/base_llm.js +0 -73
- package/dist/web/models/base_llm_connection.js +0 -7
- package/dist/web/models/gemini_llm_connection.js +0 -179
- package/dist/web/models/google_llm.js +0 -384
- package/dist/web/models/interactions_utils.js +0 -728
- package/dist/web/models/llm_request.js +0 -52
- package/dist/web/models/llm_response.js +0 -45
- package/dist/web/models/registry.js +0 -95
- package/dist/web/models/routed_llm.js +0 -122
- package/dist/web/plugins/base_plugin.js +0 -271
- package/dist/web/plugins/global_instruction_plugin.js +0 -67
- package/dist/web/plugins/logging_plugin.js +0 -235
- package/dist/web/plugins/plugin_manager.js +0 -282
- package/dist/web/plugins/security_plugin.js +0 -140
- package/dist/web/runner/in_memory_runner.js +0 -46
- package/dist/web/runner/runner.js +0 -535
- package/dist/web/sessions/base_session_service.js +0 -111
- package/dist/web/sessions/database_session_service.js +0 -436
- package/dist/web/sessions/db/operations.js +0 -96
- package/dist/web/sessions/db/schema.js +0 -208
- package/dist/web/sessions/in_memory_session_service.js +0 -242
- package/dist/web/sessions/registry.js +0 -34
- package/dist/web/sessions/session.js +0 -20
- package/dist/web/sessions/state.js +0 -89
- package/dist/web/sessions/vertex_ai_session_service.js +0 -443
- package/dist/web/skills/gcp_skill_registry.js +0 -78
- package/dist/web/skills/loader.js +0 -360
- package/dist/web/skills/prompt.js +0 -30
- package/dist/web/skills/skill.js +0 -67
- package/dist/web/skills/skill_registry.js +0 -7
- package/dist/web/telemetry/google_cloud.js +0 -54
- package/dist/web/telemetry/setup.js +0 -83
- package/dist/web/telemetry/tracing.js +0 -234
- package/dist/web/tools/agent_tool.js +0 -145
- package/dist/web/tools/base_tool.js +0 -93
- package/dist/web/tools/base_toolset.js +0 -57
- package/dist/web/tools/consolidate_context_tool.js +0 -51
- package/dist/web/tools/enterprise_web_search_tool.js +0 -55
- package/dist/web/tools/example_tool.js +0 -42
- package/dist/web/tools/exit_loop_tool.js +0 -43
- package/dist/web/tools/forwarding_artifact_service.js +0 -47
- package/dist/web/tools/function_tool.js +0 -85
- package/dist/web/tools/get_user_choice_tool.js +0 -25
- package/dist/web/tools/google_maps_grounding_tool.js +0 -54
- package/dist/web/tools/google_search_tool.js +0 -51
- package/dist/web/tools/load_artifacts_tool.js +0 -152
- package/dist/web/tools/load_memory_tool.js +0 -79
- package/dist/web/tools/load_web_page.js +0 -221
- package/dist/web/tools/long_running_tool.js +0 -55
- package/dist/web/tools/mcp/load_mcp_resource_tool.js +0 -107
- package/dist/web/tools/mcp/mcp_session_manager.js +0 -78
- package/dist/web/tools/mcp/mcp_tool.js +0 -43
- package/dist/web/tools/mcp/mcp_toolset.js +0 -141
- package/dist/web/tools/openapi_tool/auth/auth_helpers.js +0 -48
- package/dist/web/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +0 -60
- package/dist/web/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +0 -111
- package/dist/web/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +0 -221
- package/dist/web/tools/openapi_tool/openapi_spec_parser/operation_parser.js +0 -198
- package/dist/web/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +0 -94
- package/dist/web/tools/openapi_tool/openapi_toolset.js +0 -97
- package/dist/web/tools/openapi_tool/rest_api_tool.js +0 -229
- package/dist/web/tools/preload_memory_tool.js +0 -77
- package/dist/web/tools/request_input_tool.js +0 -26
- package/dist/web/tools/skill/list_skills_tool.js +0 -50
- package/dist/web/tools/skill/load_skill_resource_tool.js +0 -190
- package/dist/web/tools/skill/load_skill_tool.js +0 -93
- package/dist/web/tools/skill/run_skill_inline_script_tool.js +0 -167
- package/dist/web/tools/skill/run_skill_script_tool.js +0 -201
- package/dist/web/tools/skill/search_skills_tool.js +0 -82
- package/dist/web/tools/skill/skill_toolset.js +0 -160
- package/dist/web/tools/tool_confirmation.js +0 -21
- package/dist/web/tools/url_context_tool.js +0 -44
- package/dist/web/tools/vertex_ai_search_tool.js +0 -103
- package/dist/web/tools/vertex_rag_retrieval_tool.js +0 -36
- package/dist/web/utils/async_hooks_shim.js +0 -24
- package/dist/web/utils/async_queue.js +0 -60
- package/dist/web/utils/branch_trie.js +0 -13
- package/dist/web/utils/case_utils.js +0 -25
- package/dist/web/utils/client_labels.js +0 -64
- package/dist/web/utils/crypto_shim.js +0 -15
- package/dist/web/utils/env_aware_utils.js +0 -74
- package/dist/web/utils/error_utils.js +0 -92
- package/dist/web/utils/experimental.js +0 -46
- package/dist/web/utils/failover_utils.js +0 -96
- package/dist/web/utils/file_extension_utils.js +0 -51
- package/dist/web/utils/file_utils.js +0 -103
- package/dist/web/utils/gemini_schema_util.js +0 -173
- package/dist/web/utils/live_connection_utils.js +0 -254
- package/dist/web/utils/logger.js +0 -130
- package/dist/web/utils/model_name.js +0 -66
- package/dist/web/utils/object_notation_utils.js +0 -49
- package/dist/web/utils/output_schema_utils.js +0 -15
- package/dist/web/utils/partial_copy.js +0 -23
- package/dist/web/utils/simple_zod_to_json.js +0 -123
- package/dist/web/utils/streaming_utils.js +0 -430
- package/dist/web/utils/task.js +0 -34
- package/dist/web/utils/variant_utils.js +0 -20
- package/dist/web/utils/vertex_ai_utils.js +0 -24
- package/dist/web/version.js +0 -11
- /package/dist/{web/artifacts/session_artifact_service.js → esm/tools/resume_inputs.js} +0 -0
- /package/dist/{web/auth/base_auth_provider.js → esm/workflow/trigger.js} +0 -0
|
@@ -0,0 +1,250 @@
|
|
|
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 { FinishReason } from "@google/genai";
|
|
11
|
+
import { v4 as uuidv4 } from "uuid";
|
|
12
|
+
import { FunctionTool } from "../tools/function_tool.js";
|
|
13
|
+
import {
|
|
14
|
+
REFLECT_AND_RETRY_RESPONSE_TYPE,
|
|
15
|
+
resolveScopeKey,
|
|
16
|
+
ScopedFailureTracker,
|
|
17
|
+
TrackingScope
|
|
18
|
+
} from "./_reflect_retry_utils.js";
|
|
19
|
+
import { BasePlugin } from "./base_plugin.js";
|
|
20
|
+
const RESERVED_TOOL_CALL_ERROR_TYPE = "RESERVED_TOOL_CALL";
|
|
21
|
+
const ADK_HANDLE_MODEL_ERROR_TOOL_NAME = "adk_handle_model_error";
|
|
22
|
+
const _ReflectAndRetryModelPlugin = class _ReflectAndRetryModelPlugin extends BasePlugin {
|
|
23
|
+
/**
|
|
24
|
+
* Initializes the {@link ReflectAndRetryModelPlugin}.
|
|
25
|
+
*
|
|
26
|
+
* @param options - Configuration options for the plugin.
|
|
27
|
+
*/
|
|
28
|
+
constructor(options = {}) {
|
|
29
|
+
var _a, _b, _c, _d, _e;
|
|
30
|
+
super((_a = options.name) != null ? _a : "reflect_retry_model_plugin");
|
|
31
|
+
const retries = (_b = options.maxRetries) != null ? _b : 3;
|
|
32
|
+
if (retries < 0) {
|
|
33
|
+
throw new Error("maxRetries must be a non-negative integer.");
|
|
34
|
+
}
|
|
35
|
+
this.maxRetries = retries;
|
|
36
|
+
this.throwExceptionIfRetryExceeded = (_c = options.throwExceptionIfRetryExceeded) != null ? _c : true;
|
|
37
|
+
this.scope = (_d = options.trackingScope) != null ? _d : TrackingScope.INVOCATION;
|
|
38
|
+
this.onModelErrors = (_e = options.onModelErrors) != null ? _e : [
|
|
39
|
+
FinishReason.MALFORMED_FUNCTION_CALL
|
|
40
|
+
];
|
|
41
|
+
this.tracker = new ScopedFailureTracker();
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Internal framework reflection tool handler.
|
|
45
|
+
*/
|
|
46
|
+
adkHandleModelError({
|
|
47
|
+
retryCount
|
|
48
|
+
}) {
|
|
49
|
+
const attempt = retryCount != null ? retryCount : 1;
|
|
50
|
+
return {
|
|
51
|
+
reflection_guidance: `
|
|
52
|
+
The call to the model failed.
|
|
53
|
+
|
|
54
|
+
**Reflection Guidance:**
|
|
55
|
+
- This is retry attempt **${attempt}** of **${this.maxRetries}**
|
|
56
|
+
- Analyze the error and the arguments you provided. Do not repeat the exact same call.
|
|
57
|
+
|
|
58
|
+
Formulate a new plan based on your analysis and try a corrected or different approach.
|
|
59
|
+
`.trim()
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Checks if the model response contains an error matching `onModelErrors`.
|
|
64
|
+
*/
|
|
65
|
+
checkForModelError(llmResponse) {
|
|
66
|
+
if (!llmResponse.errorCode && !llmResponse.finishReason) {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
if (llmResponse.finishReason && this.onModelErrors.includes(llmResponse.finishReason)) {
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Retrieves the model name from context.
|
|
76
|
+
*/
|
|
77
|
+
getModelNameFromContext(callbackContext) {
|
|
78
|
+
return callbackContext.agentName || "default_model";
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Prepares the LLM request by attaching the reflection tool.
|
|
82
|
+
*/
|
|
83
|
+
async beforeModelCallback({
|
|
84
|
+
llmRequest
|
|
85
|
+
}) {
|
|
86
|
+
this.provideReflectionTool(llmRequest);
|
|
87
|
+
return void 0;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Inspects LLM responses, intercepts model errors or reserved tool calls, and handles retries.
|
|
91
|
+
*/
|
|
92
|
+
async afterModelCallback({
|
|
93
|
+
callbackContext,
|
|
94
|
+
llmResponse
|
|
95
|
+
}) {
|
|
96
|
+
if (this.hasReservedToolCall(llmResponse)) {
|
|
97
|
+
return await this.handleReservedToolCall(callbackContext, llmResponse);
|
|
98
|
+
}
|
|
99
|
+
if (this.checkForModelError(llmResponse)) {
|
|
100
|
+
return await this.handleModelError(callbackContext, llmResponse);
|
|
101
|
+
}
|
|
102
|
+
const scopeKey = this.getModelScopeKey(callbackContext);
|
|
103
|
+
const modelName = this.getModelNameFromContext(callbackContext);
|
|
104
|
+
await this.resetModelFailureCount(scopeKey, modelName);
|
|
105
|
+
return void 0;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Provides the adk_handle_model_error tool for reflection and retries.
|
|
109
|
+
*/
|
|
110
|
+
provideReflectionTool(llmRequest) {
|
|
111
|
+
if (!llmRequest.toolsDict) {
|
|
112
|
+
llmRequest.toolsDict = {};
|
|
113
|
+
}
|
|
114
|
+
llmRequest.toolsDict[ADK_HANDLE_MODEL_ERROR_TOOL_NAME] = new FunctionTool({
|
|
115
|
+
name: ADK_HANDLE_MODEL_ERROR_TOOL_NAME,
|
|
116
|
+
description: "A tool that triggers reflection. Reserved for internal framework use only. Do not call directly.",
|
|
117
|
+
execute: /* @__PURE__ */ __name((args) => this.adkHandleModelError(
|
|
118
|
+
args
|
|
119
|
+
), "execute")
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Checks if the model response calls the reserved reflection tool.
|
|
124
|
+
*/
|
|
125
|
+
hasReservedToolCall(llmResponse) {
|
|
126
|
+
var _a;
|
|
127
|
+
if (!((_a = llmResponse.content) == null ? void 0 : _a.parts)) return false;
|
|
128
|
+
for (const part of llmResponse.content.parts) {
|
|
129
|
+
if (part.functionCall && part.functionCall.name === ADK_HANDLE_MODEL_ERROR_TOOL_NAME) {
|
|
130
|
+
return true;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return false;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Handles direct calls to the reserved reflection tool.
|
|
137
|
+
*/
|
|
138
|
+
async handleReservedToolCall(callbackContext, _llmResponse) {
|
|
139
|
+
const retryResponse = await this.handleModelRetry(
|
|
140
|
+
callbackContext,
|
|
141
|
+
RESERVED_TOOL_CALL_ERROR_TYPE,
|
|
142
|
+
`Model attempted to call reserved tool ${ADK_HANDLE_MODEL_ERROR_TOOL_NAME} directly. This tool is reserved for framework use only. Do not call it.`,
|
|
143
|
+
FinishReason.OTHER
|
|
144
|
+
);
|
|
145
|
+
if (retryResponse !== void 0) {
|
|
146
|
+
return retryResponse;
|
|
147
|
+
}
|
|
148
|
+
return {
|
|
149
|
+
errorCode: RESERVED_TOOL_CALL_ERROR_TYPE,
|
|
150
|
+
errorMessage: "Model attempted to call reserved tool and retry limit was exceeded."
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Handles detected model errors by initiating retry logic.
|
|
155
|
+
*/
|
|
156
|
+
async handleModelError(callbackContext, llmResponse) {
|
|
157
|
+
var _a, _b, _c;
|
|
158
|
+
const retryResponse = await this.handleModelRetry(
|
|
159
|
+
callbackContext,
|
|
160
|
+
(_a = llmResponse.errorCode) != null ? _a : "MODEL_ERROR",
|
|
161
|
+
(_b = llmResponse.errorMessage) != null ? _b : "Model error encountered.",
|
|
162
|
+
(_c = llmResponse.finishReason) != null ? _c : FinishReason.OTHER
|
|
163
|
+
);
|
|
164
|
+
if (retryResponse !== void 0) {
|
|
165
|
+
return retryResponse;
|
|
166
|
+
}
|
|
167
|
+
return llmResponse;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Tracks retry count, generates retry response, and checks against limits.
|
|
171
|
+
*/
|
|
172
|
+
async handleModelRetry(callbackContext, errorType, errorDetails, finishReason) {
|
|
173
|
+
const scopeKey = this.getModelScopeKey(callbackContext);
|
|
174
|
+
const modelName = this.getModelNameFromContext(callbackContext);
|
|
175
|
+
const currentRetries = await this.incrementModelFailureCount(
|
|
176
|
+
scopeKey,
|
|
177
|
+
modelName
|
|
178
|
+
);
|
|
179
|
+
if (currentRetries <= this.maxRetries) {
|
|
180
|
+
return {
|
|
181
|
+
content: {
|
|
182
|
+
role: "model",
|
|
183
|
+
parts: [
|
|
184
|
+
this.generateModelRetryPart(
|
|
185
|
+
currentRetries,
|
|
186
|
+
errorType,
|
|
187
|
+
errorDetails,
|
|
188
|
+
finishReason
|
|
189
|
+
)
|
|
190
|
+
]
|
|
191
|
+
}
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
if (this.throwExceptionIfRetryExceeded) {
|
|
195
|
+
throw new Error(
|
|
196
|
+
`The model has failed consecutively ${this.maxRetries} times and the retry limit has been exceeded.`
|
|
197
|
+
);
|
|
198
|
+
}
|
|
199
|
+
return void 0;
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Generates a function call part for the model retry tool.
|
|
203
|
+
*/
|
|
204
|
+
generateModelRetryPart(retryCount, errorType, errorDetails, finishReason) {
|
|
205
|
+
return {
|
|
206
|
+
functionCall: {
|
|
207
|
+
id: this.getModelRetryUuid(),
|
|
208
|
+
name: ADK_HANDLE_MODEL_ERROR_TOOL_NAME,
|
|
209
|
+
args: {
|
|
210
|
+
response_type: REFLECT_AND_RETRY_RESPONSE_TYPE,
|
|
211
|
+
error_type: errorType,
|
|
212
|
+
error_details: errorDetails,
|
|
213
|
+
finish_reason: finishReason,
|
|
214
|
+
retry_count: retryCount
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Generates a unique ID for the model retry tool call.
|
|
221
|
+
*/
|
|
222
|
+
getModelRetryUuid() {
|
|
223
|
+
return `${ADK_HANDLE_MODEL_ERROR_TOOL_NAME}_${uuidv4()}`;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Returns the scope key for model failure tracking.
|
|
227
|
+
*/
|
|
228
|
+
getModelScopeKey(callbackContext) {
|
|
229
|
+
return resolveScopeKey(this.scope, callbackContext.invocationId);
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Increment the failure count for a model within a scope.
|
|
233
|
+
*/
|
|
234
|
+
async incrementModelFailureCount(scopeKey, itemName) {
|
|
235
|
+
return await this.tracker.increment(scopeKey, itemName);
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Reset the failure count for a model within a scope.
|
|
239
|
+
*/
|
|
240
|
+
async resetModelFailureCount(scopeKey, itemName) {
|
|
241
|
+
await this.tracker.reset(scopeKey, itemName);
|
|
242
|
+
}
|
|
243
|
+
};
|
|
244
|
+
__name(_ReflectAndRetryModelPlugin, "ReflectAndRetryModelPlugin");
|
|
245
|
+
let ReflectAndRetryModelPlugin = _ReflectAndRetryModelPlugin;
|
|
246
|
+
export {
|
|
247
|
+
ADK_HANDLE_MODEL_ERROR_TOOL_NAME,
|
|
248
|
+
RESERVED_TOOL_CALL_ERROR_TYPE,
|
|
249
|
+
ReflectAndRetryModelPlugin
|
|
250
|
+
};
|
|
@@ -0,0 +1,254 @@
|
|
|
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 {
|
|
11
|
+
REFLECT_AND_RETRY_RESPONSE_TYPE,
|
|
12
|
+
resolveScopeKey,
|
|
13
|
+
ScopedFailureTracker,
|
|
14
|
+
TrackingScope
|
|
15
|
+
} from "./_reflect_retry_utils.js";
|
|
16
|
+
import { BasePlugin } from "./base_plugin.js";
|
|
17
|
+
const _ReflectAndRetryToolPlugin = class _ReflectAndRetryToolPlugin extends BasePlugin {
|
|
18
|
+
/**
|
|
19
|
+
* Initializes the {@link ReflectAndRetryToolPlugin}.
|
|
20
|
+
*
|
|
21
|
+
* @param options - Configuration options for the plugin.
|
|
22
|
+
*/
|
|
23
|
+
constructor(options = {}) {
|
|
24
|
+
var _a, _b, _c, _d;
|
|
25
|
+
super((_a = options.name) != null ? _a : "reflect_retry_tool_plugin");
|
|
26
|
+
const retries = (_b = options.maxRetries) != null ? _b : 3;
|
|
27
|
+
if (retries < 0) {
|
|
28
|
+
throw new Error("maxRetries must be a non-negative integer.");
|
|
29
|
+
}
|
|
30
|
+
this.maxRetries = retries;
|
|
31
|
+
this.throwExceptionIfRetryExceeded = (_c = options.throwExceptionIfRetryExceeded) != null ? _c : true;
|
|
32
|
+
this.scope = (_d = options.trackingScope) != null ? _d : TrackingScope.INVOCATION;
|
|
33
|
+
this.tracker = new ScopedFailureTracker();
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Handles successful tool calls or extracts and processes errors.
|
|
37
|
+
*
|
|
38
|
+
* @param params - The tool callback parameters.
|
|
39
|
+
* @returns An optional record containing reflection guidance if an error is
|
|
40
|
+
* detected, or undefined if the tool call was successful or the response is
|
|
41
|
+
* already a reflection message.
|
|
42
|
+
*/
|
|
43
|
+
async afterToolCallback({
|
|
44
|
+
tool,
|
|
45
|
+
toolArgs,
|
|
46
|
+
toolContext,
|
|
47
|
+
result
|
|
48
|
+
}) {
|
|
49
|
+
if (result && typeof result === "object" && result["response_type"] === REFLECT_AND_RETRY_RESPONSE_TYPE) {
|
|
50
|
+
return void 0;
|
|
51
|
+
}
|
|
52
|
+
const error = await this.extractErrorFromResult({
|
|
53
|
+
tool,
|
|
54
|
+
toolArgs,
|
|
55
|
+
toolContext,
|
|
56
|
+
result
|
|
57
|
+
});
|
|
58
|
+
if (error != null) {
|
|
59
|
+
return await this.handleToolError(tool, toolArgs, toolContext, error);
|
|
60
|
+
}
|
|
61
|
+
await this.resetFailuresForTool(toolContext, tool.name);
|
|
62
|
+
return void 0;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Extracts an error from a successful tool result and triggers retry logic.
|
|
66
|
+
*
|
|
67
|
+
* This is useful when a tool call finishes without throwing an exception but
|
|
68
|
+
* the result contains an error payload like `{status: 'error', message: '...'}`
|
|
69
|
+
* that should be handled by the plugin.
|
|
70
|
+
*
|
|
71
|
+
* @param params - Tool execution context and result.
|
|
72
|
+
* @returns The extracted error if any, or undefined if no error was detected.
|
|
73
|
+
*/
|
|
74
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
75
|
+
async extractErrorFromResult(params) {
|
|
76
|
+
return void 0;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Handles tool exceptions by providing reflection guidance.
|
|
80
|
+
*
|
|
81
|
+
* @param params - The error callback parameters.
|
|
82
|
+
* @returns An optional record containing reflection guidance for the error.
|
|
83
|
+
*/
|
|
84
|
+
async onToolErrorCallback({
|
|
85
|
+
tool,
|
|
86
|
+
toolArgs,
|
|
87
|
+
toolContext,
|
|
88
|
+
error
|
|
89
|
+
}) {
|
|
90
|
+
return await this.handleToolError(tool, toolArgs, toolContext, error);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Central, thread-safe logic for processing tool errors.
|
|
94
|
+
*
|
|
95
|
+
* @param tool - The tool that was called.
|
|
96
|
+
* @param toolArgs - The arguments passed to the tool.
|
|
97
|
+
* @param toolContext - The context of the tool call.
|
|
98
|
+
* @param error - The error to be handled.
|
|
99
|
+
* @returns An optional record containing reflection guidance for the error.
|
|
100
|
+
*/
|
|
101
|
+
async handleToolError(tool, toolArgs, toolContext, error) {
|
|
102
|
+
if (this.maxRetries === 0) {
|
|
103
|
+
if (this.throwExceptionIfRetryExceeded) {
|
|
104
|
+
throw this.ensureException(error);
|
|
105
|
+
}
|
|
106
|
+
return this.getToolRetryExceedMsg(tool, toolArgs, error);
|
|
107
|
+
}
|
|
108
|
+
const scopeKey = this.getScopeKey(toolContext);
|
|
109
|
+
const currentRetries = await this.tracker.increment(scopeKey, tool.name);
|
|
110
|
+
if (currentRetries <= this.maxRetries) {
|
|
111
|
+
return this.createToolReflectionResponse(
|
|
112
|
+
tool,
|
|
113
|
+
toolArgs,
|
|
114
|
+
error,
|
|
115
|
+
currentRetries
|
|
116
|
+
);
|
|
117
|
+
}
|
|
118
|
+
if (this.throwExceptionIfRetryExceeded) {
|
|
119
|
+
throw this.ensureException(error);
|
|
120
|
+
} else {
|
|
121
|
+
return this.getToolRetryExceedMsg(tool, toolArgs, error);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Returns a unique key for the state tracker based on the configured scope.
|
|
126
|
+
*
|
|
127
|
+
* This method can be overridden in a subclass to implement custom scoping
|
|
128
|
+
* logic, for example tracking failures on a per-user or per-session basis.
|
|
129
|
+
*
|
|
130
|
+
* @param toolContext - The tool context.
|
|
131
|
+
* @returns The resolved scope key.
|
|
132
|
+
*/
|
|
133
|
+
getScopeKey(toolContext) {
|
|
134
|
+
return resolveScopeKey(this.scope, toolContext.invocationId);
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Atomically resets the failure count for a tool and cleans up state.
|
|
138
|
+
*
|
|
139
|
+
* @param toolContext - The tool context.
|
|
140
|
+
* @param toolName - The name of the tool.
|
|
141
|
+
*/
|
|
142
|
+
async resetFailuresForTool(toolContext, toolName) {
|
|
143
|
+
const scopeKey = this.getScopeKey(toolContext);
|
|
144
|
+
await this.tracker.reset(scopeKey, toolName);
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Ensures the given error is an Error instance, wrapping if not.
|
|
148
|
+
*
|
|
149
|
+
* @param error - The error object.
|
|
150
|
+
* @returns An Error instance.
|
|
151
|
+
*/
|
|
152
|
+
ensureException(error) {
|
|
153
|
+
return error instanceof Error ? error : new Error(String(error));
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Formats error details for inclusion in the reflection message.
|
|
157
|
+
*
|
|
158
|
+
* @param error - The error object.
|
|
159
|
+
* @returns Formatted error string.
|
|
160
|
+
*/
|
|
161
|
+
formatErrorDetails(error) {
|
|
162
|
+
if (error instanceof Error) {
|
|
163
|
+
const name = error.name || "Error";
|
|
164
|
+
return `${name}: ${error.message}`;
|
|
165
|
+
}
|
|
166
|
+
return String(error);
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Generates structured reflection guidance for tool failures.
|
|
170
|
+
*
|
|
171
|
+
* @param tool - The tool that failed.
|
|
172
|
+
* @param toolArgs - The arguments supplied to the tool.
|
|
173
|
+
* @param error - The error encountered.
|
|
174
|
+
* @param retryCount - The current retry count.
|
|
175
|
+
* @returns The structured tool failure response record.
|
|
176
|
+
*/
|
|
177
|
+
createToolReflectionResponse(tool, toolArgs, error, retryCount) {
|
|
178
|
+
const argsSummary = JSON.stringify(toolArgs != null ? toolArgs : {}, null, 2);
|
|
179
|
+
const errorDetails = this.formatErrorDetails(error);
|
|
180
|
+
const reflectionMessage = `
|
|
181
|
+
The call to tool \`${tool.name}\` failed.
|
|
182
|
+
|
|
183
|
+
**Error Details:**
|
|
184
|
+
\`\`\`
|
|
185
|
+
${errorDetails}
|
|
186
|
+
\`\`\`
|
|
187
|
+
|
|
188
|
+
**Tool Arguments Used:**
|
|
189
|
+
\`\`\`json
|
|
190
|
+
${argsSummary}
|
|
191
|
+
\`\`\`
|
|
192
|
+
|
|
193
|
+
**Reflection Guidance:**
|
|
194
|
+
This is retry attempt **${retryCount} of ${this.maxRetries}**. Analyze the error and the arguments you provided. Do not repeat the exact same call. Consider the following before your next attempt:
|
|
195
|
+
|
|
196
|
+
1. **Invalid Parameters**: Does the error suggest that one or more arguments are incorrect, badly formatted, or missing? Review the tool's schema and your arguments.
|
|
197
|
+
2. **State or Preconditions**: Did a previous step fail or not produce the necessary state/resource for this tool to succeed?
|
|
198
|
+
3. **Alternative Approach**: Is this the right tool for the job? Could another tool or a different sequence of steps achieve the goal?
|
|
199
|
+
4. **Simplify the Task**: Can you break the problem down into smaller, simpler steps?
|
|
200
|
+
5. **Wrong Function Name**: Does the error indicates the tool is not found? Please check again and only use available tools.
|
|
201
|
+
|
|
202
|
+
Formulate a new plan based on your analysis and try a corrected or different approach.
|
|
203
|
+
`.trim();
|
|
204
|
+
const response = {
|
|
205
|
+
response_type: REFLECT_AND_RETRY_RESPONSE_TYPE,
|
|
206
|
+
error_type: error instanceof Error ? error.name || "Error" : "ToolError",
|
|
207
|
+
error_details: error instanceof Error ? error.message : String(error),
|
|
208
|
+
retry_count: retryCount,
|
|
209
|
+
reflection_guidance: reflectionMessage
|
|
210
|
+
};
|
|
211
|
+
return response;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Generates guidance when the maximum retry limit is exceeded.
|
|
215
|
+
*
|
|
216
|
+
* @param tool - The tool that failed.
|
|
217
|
+
* @param toolArgs - The arguments supplied to the tool.
|
|
218
|
+
* @param error - The error encountered.
|
|
219
|
+
* @returns The structured retry-exceeded failure response record.
|
|
220
|
+
*/
|
|
221
|
+
getToolRetryExceedMsg(tool, toolArgs, error) {
|
|
222
|
+
const errorDetails = this.formatErrorDetails(error);
|
|
223
|
+
const argsSummary = JSON.stringify(toolArgs != null ? toolArgs : {}, null, 2);
|
|
224
|
+
const reflectionMessage = `
|
|
225
|
+
The tool \`${tool.name}\` has failed consecutively ${this.maxRetries} times and the retry limit has been exceeded.
|
|
226
|
+
|
|
227
|
+
**Last Error:**
|
|
228
|
+
\`\`\`
|
|
229
|
+
${errorDetails}
|
|
230
|
+
\`\`\`
|
|
231
|
+
|
|
232
|
+
**Last Arguments Used:**
|
|
233
|
+
\`\`\`json
|
|
234
|
+
${argsSummary}
|
|
235
|
+
\`\`\`
|
|
236
|
+
|
|
237
|
+
**Final Instruction:**
|
|
238
|
+
**Do not attempt to use the \`${tool.name}\` tool again for this task.** You must now try a different approach. Acknowledge the failure and devise a new strategy, potentially using other available tools or informing the user that the task cannot be completed.
|
|
239
|
+
`.trim();
|
|
240
|
+
const response = {
|
|
241
|
+
response_type: REFLECT_AND_RETRY_RESPONSE_TYPE,
|
|
242
|
+
error_type: error instanceof Error ? error.name || "Error" : "ToolError",
|
|
243
|
+
error_details: error instanceof Error ? error.message : String(error),
|
|
244
|
+
retry_count: this.maxRetries,
|
|
245
|
+
reflection_guidance: reflectionMessage
|
|
246
|
+
};
|
|
247
|
+
return response;
|
|
248
|
+
}
|
|
249
|
+
};
|
|
250
|
+
__name(_ReflectAndRetryToolPlugin, "ReflectAndRetryToolPlugin");
|
|
251
|
+
let ReflectAndRetryToolPlugin = _ReflectAndRetryToolPlugin;
|
|
252
|
+
export {
|
|
253
|
+
ReflectAndRetryToolPlugin
|
|
254
|
+
};
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import {createRequire as topLevelCreateRequire} from 'module';
|
|
2
2
|
const require = topLevelCreateRequire(import.meta.url);
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
5
|
/**
|
|
4
6
|
* @license
|
|
5
7
|
* Copyright 2025 Google LLC
|
|
6
8
|
* SPDX-License-Identifier: Apache-2.0
|
|
7
9
|
*/
|
|
10
|
+
import { REQUEST_CONFIRMATION_FUNCTION_CALL_NAME } from "../agents/functions.js";
|
|
8
11
|
import { BasePlugin } from "../plugins/base_plugin.js";
|
|
9
|
-
const REQUEST_CONFIRMATION_FUNCTION_CALL_NAME = "adk_request_confirmation";
|
|
10
12
|
const TOOL_CALL_SECURITY_CHECK_STATES = "orcas_tool_call_security_check_states";
|
|
11
13
|
const INTERMEDIATE_REQUIRE_TOOL_CALL_CONFIRMATION_ERROR = "This tool call needs external confirmation before completion.";
|
|
12
14
|
var PolicyOutcome = /* @__PURE__ */ ((PolicyOutcome2) => {
|
|
@@ -15,20 +17,23 @@ var PolicyOutcome = /* @__PURE__ */ ((PolicyOutcome2) => {
|
|
|
15
17
|
PolicyOutcome2["ALLOW"] = "ALLOW";
|
|
16
18
|
return PolicyOutcome2;
|
|
17
19
|
})(PolicyOutcome || {});
|
|
18
|
-
class
|
|
20
|
+
const _InMemoryPolicyEngine = class _InMemoryPolicyEngine {
|
|
19
21
|
/**
|
|
20
22
|
* Always returns {@link PolicyOutcome.ALLOW} for every tool call.
|
|
21
23
|
*
|
|
24
|
+
* @param _context - The tool and its arguments; ignored.
|
|
22
25
|
* @returns A promise resolving to an ALLOW result.
|
|
23
26
|
*/
|
|
24
|
-
async evaluate() {
|
|
27
|
+
async evaluate(_context) {
|
|
25
28
|
return Promise.resolve({
|
|
26
29
|
outcome: "ALLOW" /* ALLOW */,
|
|
27
30
|
reason: "For prototyping purpose, all tool calls are allowed."
|
|
28
31
|
});
|
|
29
32
|
}
|
|
30
|
-
}
|
|
31
|
-
|
|
33
|
+
};
|
|
34
|
+
__name(_InMemoryPolicyEngine, "InMemoryPolicyEngine");
|
|
35
|
+
let InMemoryPolicyEngine = _InMemoryPolicyEngine;
|
|
36
|
+
const _SecurityPlugin = class _SecurityPlugin extends BasePlugin {
|
|
32
37
|
/**
|
|
33
38
|
* @param params - Optional configuration. Defaults to {@link InMemoryPolicyEngine}
|
|
34
39
|
* when no policy engine is provided.
|
|
@@ -118,7 +123,9 @@ class SecurityPlugin extends BasePlugin {
|
|
|
118
123
|
return;
|
|
119
124
|
}
|
|
120
125
|
}
|
|
121
|
-
}
|
|
126
|
+
};
|
|
127
|
+
__name(_SecurityPlugin, "SecurityPlugin");
|
|
128
|
+
let SecurityPlugin = _SecurityPlugin;
|
|
122
129
|
function getAskUserConfirmationFunctionCalls(event) {
|
|
123
130
|
if (!event.content || !event.content.parts) {
|
|
124
131
|
return [];
|
|
@@ -131,6 +138,7 @@ function getAskUserConfirmationFunctionCalls(event) {
|
|
|
131
138
|
}
|
|
132
139
|
return results;
|
|
133
140
|
}
|
|
141
|
+
__name(getAskUserConfirmationFunctionCalls, "getAskUserConfirmationFunctionCalls");
|
|
134
142
|
export {
|
|
135
143
|
InMemoryPolicyEngine,
|
|
136
144
|
PolicyOutcome,
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import {createRequire as topLevelCreateRequire} from 'module';
|
|
2
2
|
const require = topLevelCreateRequire(import.meta.url);
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
5
|
/**
|
|
4
6
|
* @license
|
|
5
7
|
* Copyright 2025 Google LLC
|
|
@@ -9,7 +11,7 @@ import { InMemoryArtifactService } from "../artifacts/in_memory_artifact_service
|
|
|
9
11
|
import { InMemoryMemoryService } from "../memory/in_memory_memory_service.js";
|
|
10
12
|
import { InMemorySessionService } from "../sessions/in_memory_session_service.js";
|
|
11
13
|
import { Runner } from "./runner.js";
|
|
12
|
-
class
|
|
14
|
+
const _InMemoryRunner = class _InMemoryRunner extends Runner {
|
|
13
15
|
/**
|
|
14
16
|
* Creates a new InMemoryRunner instance.
|
|
15
17
|
*
|
|
@@ -40,7 +42,9 @@ class InMemoryRunner extends Runner {
|
|
|
40
42
|
resumabilityConfig: (_a = app == null ? void 0 : app.resumabilityConfig) != null ? _a : resumabilityConfig
|
|
41
43
|
});
|
|
42
44
|
}
|
|
43
|
-
}
|
|
45
|
+
};
|
|
46
|
+
__name(_InMemoryRunner, "InMemoryRunner");
|
|
47
|
+
let InMemoryRunner = _InMemoryRunner;
|
|
44
48
|
export {
|
|
45
49
|
InMemoryRunner
|
|
46
50
|
};
|