@google/adk 2.0.0 → 2.2.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 +0 -29
- package/dist/cjs/a2a/a2a_remote_agent.js +8 -5
- package/dist/cjs/a2a/a2a_remote_agent_utils.js +104 -2
- package/dist/cjs/a2a/agent_card.js +66 -6
- package/dist/cjs/a2a/agent_executor.js +18 -6
- package/dist/cjs/a2a/agent_to_a2a.js +6 -1
- package/dist/cjs/a2a/event_processor_utils.js +1 -1
- package/dist/cjs/a2a/executor_context.js +4 -2
- package/dist/cjs/a2a/index.js +4 -0
- package/dist/cjs/a2a/request_metadata.js +94 -0
- package/dist/cjs/agents/base_agent.js +9 -8
- package/dist/cjs/agents/context.js +7 -0
- package/dist/cjs/agents/functions.js +150 -47
- package/dist/cjs/agents/invocation_context.js +1 -0
- package/dist/cjs/agents/llm_agent.js +21 -6
- package/dist/cjs/agents/loop_agent.js +1 -1
- package/dist/cjs/agents/parallel_agent.js +1 -1
- package/dist/cjs/agents/processors/agent_transfer_llm_request_processor.js +26 -5
- package/dist/cjs/agents/processors/code_execution_request_processor.js +2 -2
- package/dist/cjs/agents/processors/content_processor_utils.js +15 -7
- package/dist/cjs/agents/processors/content_request_processor.js +4 -1
- package/dist/cjs/agents/processors/nl_planning_processor.js +114 -0
- package/dist/cjs/agents/processors/request_confirmation_llm_request_processor.js +19 -12
- package/dist/cjs/agents/processors/request_input_llm_request_processor.js +3 -7
- package/dist/cjs/agents/readonly_context.js +6 -0
- package/dist/cjs/agents/routed_agent.js +1 -1
- package/dist/cjs/agents/sequential_agent.js +1 -1
- package/dist/cjs/apps/app.js +1 -1
- package/dist/cjs/artifacts/file_artifact_service.js +1 -2
- package/dist/cjs/artifacts/gcs_artifact_service.js +13 -7
- package/dist/cjs/artifacts/scoped_artifact_service.js +9 -0
- package/dist/cjs/artifacts/session_artifact_service.js +19 -0
- package/dist/cjs/auth/auth_credential.js +12 -2
- package/dist/cjs/auth/auth_handler.js +44 -8
- package/dist/cjs/auth/oauth2/oauth2_credential_refresher.js +1 -1
- package/dist/cjs/auth/oauth2/oauth2_utils.js +17 -2
- package/dist/cjs/code_executors/base_code_executor.js +1 -1
- package/dist/cjs/code_executors/built_in_code_executor.js +1 -1
- package/dist/cjs/code_executors/code_execution_utils.js +5 -5
- 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 +11 -6
- package/dist/cjs/common.js +119 -45
- package/dist/cjs/context/agent_controlled_context_compactor.js +10 -5
- package/dist/cjs/context/anchored_context_compactor.js +41 -18
- package/dist/cjs/context/compaction_utils.js +15 -6
- package/dist/cjs/context/token_based_context_compactor.js +10 -2
- package/dist/cjs/context/trajectory_thought_pruning_compactor.js +17 -10
- package/dist/cjs/context/truncating_context_compactor.js +17 -5
- 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/event.js +1 -1
- package/dist/cjs/events/event_actions.js +7 -0
- package/dist/cjs/examples/base_example_provider.js +1 -1
- package/dist/cjs/examples/example.js +92 -0
- package/dist/cjs/examples/example_util.js +28 -4
- package/dist/cjs/examples/index.js +39 -0
- package/dist/cjs/examples/vertex_ai_example_store.js +39 -0
- package/dist/cjs/index.js +93 -0
- package/dist/cjs/index_web.js +2 -0
- package/dist/cjs/integrations/agent_registry/agent_registry.js +3 -2
- package/dist/cjs/memory/rag_memory_transcript.js +136 -0
- package/dist/cjs/memory/vertex_ai_memory_bank_service.js +19 -7
- 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 +1 -1
- package/dist/cjs/models/base_llm.js +2 -7
- package/dist/cjs/models/chrome_prompt_llm.js +318 -0
- package/dist/cjs/models/chrome_prompt_utils.js +281 -0
- package/dist/cjs/models/gemini_llm_connection.js +5 -4
- package/dist/cjs/models/google_llm.js +9 -4
- package/dist/cjs/models/interactions_utils.js +2 -3
- package/dist/cjs/models/registry.js +2 -0
- package/dist/cjs/planners/base_planner.js +56 -0
- package/dist/cjs/planners/built_in_planner.js +85 -0
- package/dist/cjs/planners/plan_re_act_planner.js +172 -0
- package/dist/cjs/plugins/_reflect_retry_utils.js +142 -0
- package/dist/cjs/plugins/base_plugin.js +46 -61
- 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/runner/runner.js +29 -26
- package/dist/cjs/sessions/database_session_service.js +78 -43
- package/dist/cjs/sessions/db/operations.js +229 -22
- package/dist/cjs/sessions/db/schema.js +113 -159
- package/dist/cjs/sessions/registry.js +5 -1
- package/dist/cjs/sessions/vertex_ai_session_service.js +2 -2
- package/dist/cjs/telemetry/setup.js +1 -1
- package/dist/cjs/telemetry/tracing.js +11 -1
- package/dist/cjs/tools/agent_tool.js +4 -5
- package/dist/cjs/tools/base_tool.js +14 -4
- package/dist/cjs/tools/base_toolset.js +4 -4
- package/dist/cjs/tools/built_in_tool.js +75 -0
- package/dist/cjs/tools/enterprise_web_search_tool.js +3 -6
- package/dist/cjs/tools/example_tool.js +1 -1
- package/dist/cjs/tools/forwarding_artifact_service.js +18 -13
- package/dist/cjs/tools/function_tool.js +6 -3
- package/dist/cjs/tools/google_maps_grounding_tool.js +3 -6
- package/dist/cjs/tools/google_search_tool.js +3 -6
- package/dist/cjs/tools/load_artifacts_tool.js +47 -23
- package/dist/cjs/tools/load_web_page.js +6 -172
- package/dist/cjs/tools/mcp/load_mcp_resource_tool.js +34 -5
- package/dist/cjs/tools/mcp/mcp_session_manager.js +14 -8
- package/dist/cjs/tools/openapi_tool/auth/auth_helpers.js +292 -4
- package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +15 -1
- package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/base_auth_credential_exchanger.js +70 -0
- package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +120 -0
- package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +10 -10
- package/dist/cjs/tools/openapi_tool/common/common.js +139 -0
- package/dist/cjs/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +11 -6
- package/dist/cjs/tools/openapi_tool/openapi_spec_parser/operation_parser.js +74 -14
- package/dist/cjs/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +146 -34
- package/dist/cjs/tools/openapi_tool/openapi_toolset.js +14 -2
- package/dist/cjs/tools/openapi_tool/rest_api_tool.js +106 -46
- package/dist/cjs/tools/preload_memory_tool.js +1 -1
- 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/skill_toolset.js +2 -0
- package/dist/cjs/tools/tool_context.js +41 -0
- package/dist/cjs/tools/url_context_tool.js +3 -6
- package/dist/cjs/tools/vertex_ai_search_tool.js +4 -8
- package/dist/cjs/tools/vertex_rag_retrieval_tool.js +3 -10
- package/dist/cjs/tools/webmcp/index.js +37 -0
- package/dist/cjs/tools/webmcp/webmcp_tool.js +156 -0
- package/dist/cjs/tools/webmcp/webmcp_toolset.js +116 -0
- package/dist/cjs/tools/webmcp/webmcp_types.js +50 -0
- package/dist/cjs/utils/case_utils.js +52 -2
- package/dist/cjs/utils/client_labels.js +67 -0
- package/dist/cjs/utils/crypto_shim.js +16 -0
- package/dist/cjs/utils/gemini_schema_util.js +103 -9
- package/dist/cjs/utils/hash_utils.js +73 -0
- package/dist/cjs/utils/live_connection_utils.js +10 -9
- package/dist/cjs/utils/logger.js +15 -50
- 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 +17 -2
- package/dist/cjs/utils/redact_inline_data.js +46 -0
- package/dist/cjs/utils/redact_uri.js +15 -1
- package/dist/cjs/utils/schema.js +1 -1
- package/dist/cjs/utils/simple_zod_to_json.js +5 -0
- package/dist/cjs/utils/ssrf_guard.js +262 -0
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/workflow/base_node.js +1 -1
- package/dist/cjs/workflow/graph.js +1 -1
- package/dist/cjs/workflow/nodes/node_tool.js +2 -11
- package/dist/cjs/workflow/request_input.js +1 -1
- package/dist/cjs/workflow/run_llm_agent_as_node.js +1 -1
- package/dist/cjs/workflow/workflow.js +1 -1
- package/dist/esm/a2a/a2a_event.js +0 -28
- package/dist/esm/a2a/a2a_remote_agent.js +10 -5
- package/dist/esm/a2a/a2a_remote_agent_utils.js +102 -2
- package/dist/esm/a2a/agent_card.js +71 -6
- package/dist/esm/a2a/agent_executor.js +18 -6
- package/dist/esm/a2a/agent_to_a2a.js +8 -2
- package/dist/esm/a2a/event_processor_utils.js +1 -2
- package/dist/esm/a2a/executor_context.js +4 -2
- package/dist/esm/a2a/index.js +7 -1
- package/dist/esm/a2a/request_metadata.js +68 -0
- package/dist/esm/agents/base_agent.js +9 -8
- package/dist/esm/agents/context.js +7 -0
- package/dist/esm/agents/functions.js +152 -48
- package/dist/esm/agents/invocation_context.js +1 -0
- package/dist/esm/agents/llm_agent.js +24 -6
- package/dist/esm/agents/loop_agent.js +1 -1
- package/dist/esm/agents/parallel_agent.js +1 -1
- package/dist/esm/agents/processors/agent_transfer_llm_request_processor.js +26 -5
- package/dist/esm/agents/processors/code_execution_request_processor.js +2 -2
- package/dist/esm/agents/processors/content_processor_utils.js +15 -7
- package/dist/esm/agents/processors/content_request_processor.js +4 -1
- package/dist/esm/agents/processors/nl_planning_processor.js +87 -0
- package/dist/esm/agents/processors/request_confirmation_llm_request_processor.js +19 -12
- package/dist/esm/agents/processors/request_input_llm_request_processor.js +3 -7
- package/dist/esm/agents/readonly_context.js +6 -0
- package/dist/esm/agents/routed_agent.js +1 -1
- package/dist/esm/agents/sequential_agent.js +1 -1
- package/dist/esm/apps/app.js +1 -1
- package/dist/esm/artifacts/file_artifact_service.js +1 -2
- package/dist/esm/artifacts/gcs_artifact_service.js +13 -7
- package/dist/esm/artifacts/scoped_artifact_service.js +9 -0
- package/dist/esm/artifacts/session_artifact_service.js +12 -0
- package/dist/esm/auth/auth_credential.js +11 -1
- package/dist/esm/auth/auth_handler.js +47 -8
- package/dist/esm/auth/oauth2/oauth2_credential_refresher.js +1 -1
- package/dist/esm/auth/oauth2/oauth2_utils.js +15 -2
- package/dist/esm/code_executors/base_code_executor.js +1 -1
- package/dist/esm/code_executors/built_in_code_executor.js +1 -1
- package/dist/esm/code_executors/code_execution_utils.js +5 -5
- 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 +11 -6
- package/dist/esm/common.js +111 -40
- package/dist/esm/context/agent_controlled_context_compactor.js +10 -5
- package/dist/esm/context/anchored_context_compactor.js +45 -19
- package/dist/esm/context/compaction_utils.js +13 -5
- package/dist/esm/context/token_based_context_compactor.js +10 -2
- package/dist/esm/context/trajectory_thought_pruning_compactor.js +17 -10
- package/dist/esm/context/truncating_context_compactor.js +17 -5
- package/dist/esm/errors/already_exists_error.js +23 -0
- package/dist/esm/errors/input_validation_error.js +23 -0
- package/dist/{web/auth/refresher/base_credential_refresher.js → esm/errors/not_found_error.js} +9 -6
- 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/event.js +1 -1
- package/dist/esm/events/event_actions.js +6 -0
- package/dist/esm/examples/base_example_provider.js +1 -1
- package/dist/esm/examples/example.js +85 -0
- package/dist/esm/examples/example_util.js +25 -3
- package/dist/{web/auth/credential_service/base_credential_service.js → esm/examples/index.js} +4 -0
- package/dist/{web/version.js → esm/examples/vertex_ai_example_store.js} +2 -2
- package/dist/esm/index.js +87 -0
- package/dist/esm/index_web.js +2 -0
- package/dist/esm/integrations/agent_registry/agent_registry.js +3 -2
- package/dist/esm/memory/rag_memory_transcript.js +106 -0
- package/dist/esm/memory/vertex_ai_memory_bank_service.js +19 -7
- 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 +1 -1
- package/dist/esm/models/base_llm.js +3 -8
- package/dist/esm/models/chrome_prompt_llm.js +302 -0
- package/dist/esm/models/chrome_prompt_utils.js +241 -0
- package/dist/esm/models/gemini_llm_connection.js +6 -5
- package/dist/esm/models/google_llm.js +9 -4
- package/dist/esm/models/interactions_utils.js +2 -3
- package/dist/esm/models/registry.js +2 -0
- package/dist/esm/planners/base_planner.js +28 -0
- package/dist/esm/planners/built_in_planner.js +57 -0
- package/dist/esm/planners/plan_re_act_planner.js +145 -0
- package/dist/esm/plugins/_reflect_retry_utils.js +111 -0
- package/dist/esm/plugins/base_plugin.js +46 -61
- 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/runner/runner.js +35 -27
- package/dist/esm/sessions/database_session_service.js +58 -25
- package/dist/esm/sessions/db/operations.js +229 -22
- package/dist/esm/sessions/db/schema.js +111 -160
- package/dist/esm/sessions/registry.js +5 -1
- package/dist/esm/sessions/vertex_ai_session_service.js +1 -1
- package/dist/esm/telemetry/setup.js +1 -1
- package/dist/esm/telemetry/tracing.js +11 -1
- package/dist/esm/tools/agent_tool.js +4 -5
- package/dist/esm/tools/base_tool.js +11 -3
- package/dist/esm/tools/base_toolset.js +4 -4
- package/dist/esm/tools/built_in_tool.js +51 -0
- package/dist/esm/tools/enterprise_web_search_tool.js +3 -6
- package/dist/esm/tools/example_tool.js +1 -1
- package/dist/esm/tools/forwarding_artifact_service.js +18 -13
- package/dist/esm/tools/function_tool.js +6 -3
- package/dist/esm/tools/google_maps_grounding_tool.js +3 -6
- package/dist/esm/tools/google_search_tool.js +3 -6
- package/dist/esm/tools/load_artifacts_tool.js +48 -24
- package/dist/esm/tools/load_web_page.js +10 -170
- package/dist/esm/tools/mcp/load_mcp_resource_tool.js +34 -5
- package/dist/esm/tools/mcp/mcp_session_manager.js +14 -8
- package/dist/esm/tools/openapi_tool/auth/auth_helpers.js +285 -3
- package/dist/esm/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +15 -1
- package/dist/esm/tools/openapi_tool/auth/credential_exchangers/base_auth_credential_exchanger.js +43 -0
- package/dist/esm/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +93 -0
- package/dist/esm/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +10 -12
- package/dist/esm/tools/openapi_tool/common/common.js +112 -0
- package/dist/esm/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +11 -6
- package/dist/esm/tools/openapi_tool/openapi_spec_parser/operation_parser.js +81 -14
- package/dist/esm/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +146 -33
- package/dist/esm/tools/openapi_tool/openapi_toolset.js +14 -2
- package/dist/esm/tools/openapi_tool/rest_api_tool.js +105 -46
- package/dist/esm/tools/preload_memory_tool.js +1 -1
- 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/skill_toolset.js +2 -0
- package/dist/{web/context/base_context_compactor.js → esm/tools/tool_context.js} +8 -0
- package/dist/esm/tools/url_context_tool.js +3 -6
- package/dist/esm/tools/vertex_ai_search_tool.js +4 -8
- package/dist/esm/tools/vertex_rag_retrieval_tool.js +3 -10
- package/dist/{web/auth/base_auth_provider.js → esm/tools/webmcp/index.js} +3 -0
- package/dist/esm/tools/webmcp/webmcp_tool.js +131 -0
- package/dist/esm/tools/webmcp/webmcp_toolset.js +89 -0
- package/dist/{web/utils/crypto_shim.js → esm/tools/webmcp/webmcp_types.js} +10 -6
- package/dist/esm/utils/case_utils.js +49 -1
- package/dist/esm/utils/client_labels.js +65 -0
- package/dist/esm/utils/crypto_shim.js +14 -0
- package/dist/esm/utils/gemini_schema_util.js +102 -9
- package/dist/esm/utils/hash_utils.js +45 -0
- package/dist/esm/utils/live_connection_utils.js +11 -10
- package/dist/esm/utils/logger.js +14 -40
- 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 +15 -2
- package/dist/esm/utils/redact_inline_data.js +19 -0
- package/dist/esm/utils/redact_uri.js +15 -1
- package/dist/esm/utils/schema.js +1 -1
- package/dist/esm/utils/simple_zod_to_json.js +5 -0
- package/dist/{web/tools/load_web_page.js → esm/utils/ssrf_guard.js} +95 -107
- package/dist/esm/version.js +1 -1
- package/dist/esm/workflow/base_node.js +1 -1
- package/dist/esm/workflow/graph.js +1 -1
- package/dist/esm/workflow/nodes/node_tool.js +2 -11
- package/dist/esm/workflow/request_input.js +1 -1
- package/dist/esm/workflow/run_llm_agent_as_node.js +1 -1
- package/dist/esm/workflow/workflow.js +1 -1
- 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 +9 -0
- package/dist/types/a2a/agent_executor.d.ts +1 -1
- package/dist/types/a2a/agent_to_a2a.d.ts +2 -0
- package/dist/types/a2a/auth.d.ts +5 -1
- package/dist/types/a2a/executor_context.d.ts +7 -1
- package/dist/types/a2a/index.d.ts +1 -1
- package/dist/types/a2a/request_metadata.d.ts +22 -0
- package/dist/types/agents/base_agent.d.ts +19 -16
- package/dist/types/agents/context.d.ts +8 -0
- package/dist/types/agents/functions.d.ts +72 -6
- package/dist/types/agents/invocation_context.d.ts +11 -3
- package/dist/types/agents/llm_agent.d.ts +20 -7
- package/dist/types/agents/processors/agent_transfer_llm_request_processor.d.ts +16 -1
- package/dist/types/agents/processors/nl_planning_processor.d.ts +30 -0
- package/dist/types/agents/readonly_context.d.ts +4 -0
- package/dist/types/agents/run_config.d.ts +21 -8
- 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 +22 -8
- package/dist/types/auth/auth_handler.d.ts +12 -1
- 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 +37 -23
- package/dist/types/context/compaction_utils.d.ts +9 -1
- 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_actions.d.ts +13 -0
- package/dist/types/examples/base_example_provider.d.ts +2 -2
- package/dist/types/examples/example.d.ts +75 -0
- package/dist/types/examples/example_util.d.ts +13 -2
- package/dist/types/examples/index.d.ts +18 -0
- package/dist/types/examples/vertex_ai_example_store.d.ts +7 -0
- package/dist/types/index.d.ts +31 -1
- package/dist/types/memory/memory_entry.d.ts +15 -0
- package/dist/types/memory/rag_memory_transcript.d.ts +55 -0
- package/dist/types/memory/vertex_ai_memory_bank_service.d.ts +9 -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/chrome_prompt_llm.d.ts +210 -0
- package/dist/types/models/chrome_prompt_utils.d.ts +97 -0
- package/dist/types/models/google_llm.d.ts +8 -3
- package/dist/types/models/registry.d.ts +3 -2
- package/dist/types/planners/base_planner.d.ts +50 -0
- package/dist/types/planners/built_in_planner.d.ts +53 -0
- package/dist/types/planners/plan_re_act_planner.d.ts +21 -0
- package/dist/types/plugins/_reflect_retry_utils.d.ts +72 -0
- package/dist/types/plugins/base_plugin.d.ts +64 -62
- package/dist/types/plugins/logging_plugin.d.ts +3 -2
- 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/runner/runner.d.ts +7 -8
- 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/skills/skill_registry.d.ts +8 -0
- package/dist/types/tools/base_tool.d.ts +11 -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/forwarding_artifact_service.d.ts +23 -10
- package/dist/types/tools/function_tool.d.ts +42 -9
- 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/mcp_toolset.d.ts +11 -10
- package/dist/types/tools/openapi_tool/auth/auth_helpers.d.ts +115 -1
- package/dist/types/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.d.ts +31 -2
- package/dist/types/tools/openapi_tool/auth/credential_exchangers/base_auth_credential_exchanger.d.ts +35 -0
- package/dist/types/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.d.ts +54 -0
- package/dist/types/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.d.ts +0 -1
- package/dist/types/tools/openapi_tool/common/common.d.ts +60 -0
- package/dist/types/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.d.ts +7 -0
- package/dist/types/tools/openapi_tool/openapi_spec_parser/operation_parser.d.ts +56 -2
- package/dist/types/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.d.ts +73 -5
- package/dist/types/tools/openapi_tool/openapi_toolset.d.ts +11 -0
- package/dist/types/tools/openapi_tool/rest_api_tool.d.ts +42 -8
- package/dist/types/tools/preload_memory_tool.d.ts +1 -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/tool_context.d.ts +19 -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/tools/webmcp/index.d.ts +12 -0
- package/dist/types/tools/webmcp/webmcp_tool.d.ts +47 -0
- package/dist/types/tools/webmcp/webmcp_toolset.d.ts +67 -0
- package/dist/types/tools/webmcp/webmcp_types.d.ts +69 -0
- package/dist/types/utils/case_utils.d.ts +36 -0
- package/dist/types/utils/client_labels.d.ts +33 -0
- package/dist/types/utils/crypto_shim.d.ts +16 -0
- package/dist/types/utils/gemini_schema_util.d.ts +18 -7
- package/dist/types/utils/hash_utils.d.ts +25 -0
- package/dist/types/utils/logger.d.ts +33 -3
- package/dist/types/utils/logger_browser.d.ts +28 -0
- package/dist/types/utils/logger_node.d.ts +20 -0
- package/dist/types/utils/model_name.d.ts +30 -2
- 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 +12 -8
- package/dist/types/utils/ssrf_guard.d.ts +32 -0
- package/dist/types/version.d.ts +1 -1
- package/dist/web/index_web.js +337 -3
- package/dist/web/index_web.js.map +7 -0
- package/package.json +24 -15
- package/dist/web/a2a/a2a_event.js +0 -290
- package/dist/web/a2a/a2a_remote_agent.js +0 -200
- package/dist/web/a2a/a2a_remote_agent_run_processor.js +0 -189
- package/dist/web/a2a/a2a_remote_agent_utils.js +0 -141
- package/dist/web/a2a/agent_card.js +0 -373
- package/dist/web/a2a/agent_executor.js +0 -246
- package/dist/web/a2a/agent_to_a2a.js +0 -126
- package/dist/web/a2a/auth.js +0 -41
- package/dist/web/a2a/event_converter_utils.js +0 -242
- package/dist/web/a2a/event_processor_utils.js +0 -209
- package/dist/web/a2a/executor_context.js +0 -28
- package/dist/web/a2a/index.js +0 -20
- package/dist/web/a2a/metadata_converter_utils.js +0 -115
- package/dist/web/a2a/part_converter_utils.js +0 -201
- package/dist/web/agents/active_streaming_tool.js +0 -25
- package/dist/web/agents/base_agent.js +0 -462
- package/dist/web/agents/context.js +0 -146
- package/dist/web/agents/framework_function_calls.js +0 -34
- package/dist/web/agents/functions.js +0 -462
- package/dist/web/agents/instructions.js +0 -188
- package/dist/web/agents/invocation_context.js +0 -126
- package/dist/web/agents/live_request_queue.js +0 -151
- package/dist/web/agents/llm_agent.js +0 -1514
- package/dist/web/agents/loop_agent.js +0 -131
- package/dist/web/agents/parallel_agent.js +0 -122
- package/dist/web/agents/processors/agent_transfer_llm_request_processor.js +0 -113
- package/dist/web/agents/processors/base_llm_processor.js +0 -21
- package/dist/web/agents/processors/basic_llm_request_processor.js +0 -84
- package/dist/web/agents/processors/code_execution_request_processor.js +0 -381
- package/dist/web/agents/processors/content_processor_utils.js +0 -432
- package/dist/web/agents/processors/content_request_processor.js +0 -73
- package/dist/web/agents/processors/context_compactor_request_processor.js +0 -78
- package/dist/web/agents/processors/identity_llm_request_processor.js +0 -59
- package/dist/web/agents/processors/instructions_llm_request_processor.js +0 -85
- package/dist/web/agents/processors/interactions_request_processor.js +0 -56
- package/dist/web/agents/processors/request_confirmation_llm_request_processor.js +0 -393
- package/dist/web/agents/processors/request_input_llm_request_processor.js +0 -228
- package/dist/web/agents/processors/tool_filter_request_processor.js +0 -72
- package/dist/web/agents/readonly_context.js +0 -60
- package/dist/web/agents/routed_agent.js +0 -161
- package/dist/web/agents/run_config.js +0 -74
- package/dist/web/agents/sequential_agent.js +0 -141
- package/dist/web/agents/transcription_entry.js +0 -7
- package/dist/web/agents/user_input_request.js +0 -135
- package/dist/web/apps/app.js +0 -52
- package/dist/web/apps/resumability_config.js +0 -33
- package/dist/web/artifacts/base_artifact_service.js +0 -7
- package/dist/web/artifacts/file_artifact_service.js +0 -568
- package/dist/web/artifacts/gcs_artifact_service.js +0 -298
- package/dist/web/artifacts/in_memory_artifact_service.js +0 -172
- package/dist/web/artifacts/registry.js +0 -36
- package/dist/web/artifacts/scoped_artifact_service.js +0 -89
- package/dist/web/auth/auth_credential.js +0 -18
- package/dist/web/auth/auth_handler.js +0 -151
- package/dist/web/auth/auth_preprocessor.js +0 -184
- package/dist/web/auth/auth_provider_registry.js +0 -37
- package/dist/web/auth/auth_schemes.js +0 -36
- package/dist/web/auth/auth_tool.js +0 -7
- package/dist/web/auth/credential_response_binding.js +0 -91
- package/dist/web/auth/credential_service/in_memory_credential_service.js +0 -50
- package/dist/web/auth/credential_service/session_state_credential_service.js +0 -27
- package/dist/web/auth/exchanger/base_credential_exchanger.js +0 -16
- package/dist/web/auth/exchanger/credential_exchanger_registry.js +0 -35
- package/dist/web/auth/oauth2/oauth2_credential_exchanger.js +0 -194
- package/dist/web/auth/oauth2/oauth2_credential_refresher.js +0 -105
- package/dist/web/auth/oauth2/oauth2_discovery.js +0 -196
- package/dist/web/auth/oauth2/oauth2_utils.js +0 -105
- package/dist/web/auth/refresher/credential_refresher_registry.js +0 -44
- package/dist/web/code_executors/agent_engine_sandbox_code_executor.js +0 -284
- package/dist/web/code_executors/base_code_executor.js +0 -68
- package/dist/web/code_executors/built_in_code_executor.js +0 -50
- package/dist/web/code_executors/code_execution_utils.js +0 -131
- package/dist/web/code_executors/code_executor_context.js +0 -174
- package/dist/web/code_executors/unsafe_local_code_executor.js +0 -221
- package/dist/web/common.js +0 -452
- package/dist/web/context/agent_controlled_context_compactor.js +0 -76
- package/dist/web/context/anchored_context_compactor.js +0 -120
- package/dist/web/context/compaction_utils.js +0 -42
- package/dist/web/context/summarizers/base_summarizer.js +0 -7
- package/dist/web/context/summarizers/llm_summarizer.js +0 -91
- package/dist/web/context/token_based_context_compactor.js +0 -118
- package/dist/web/context/trajectory_thought_pruning_compactor.js +0 -47
- package/dist/web/context/truncating_context_compactor.js +0 -34
- package/dist/web/environment/base_environment.js +0 -71
- package/dist/web/environment/local_environment.js +0 -165
- package/dist/web/events/compacted_event.js +0 -51
- package/dist/web/events/event.js +0 -208
- package/dist/web/events/event_actions.js +0 -74
- package/dist/web/events/structured_events.js +0 -79
- package/dist/web/examples/base_example_provider.js +0 -32
- package/dist/web/examples/example.js +0 -7
- package/dist/web/examples/example_util.js +0 -83
- package/dist/web/features/feature_registry.js +0 -115
- package/dist/web/index.js +0 -57
- package/dist/web/integrations/agent_registry/agent_registry.js +0 -337
- package/dist/web/integrations/agent_registry/agent_registry_mcp_toolset.js +0 -120
- package/dist/web/integrations/agent_registry/helpers.js +0 -32
- 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 -89
- package/dist/web/memory/memory_entry.js +0 -7
- package/dist/web/memory/vertex_ai_memory_bank_service.js +0 -496
- package/dist/web/models/apigee_llm.js +0 -227
- package/dist/web/models/base_llm.js +0 -78
- package/dist/web/models/base_llm_connection.js +0 -7
- package/dist/web/models/gemini_llm_connection.js +0 -183
- package/dist/web/models/google_llm.js +0 -396
- package/dist/web/models/interactions_utils.js +0 -745
- package/dist/web/models/llm_request.js +0 -57
- package/dist/web/models/llm_response.js +0 -48
- package/dist/web/models/registry.js +0 -100
- package/dist/web/models/routed_llm.js +0 -112
- package/dist/web/plugins/base_plugin.js +0 -305
- package/dist/web/plugins/global_instruction_plugin.js +0 -71
- package/dist/web/plugins/logging_plugin.js +0 -241
- package/dist/web/plugins/plugin_manager.js +0 -318
- package/dist/web/plugins/security_plugin.js +0 -148
- package/dist/web/runner/in_memory_runner.js +0 -50
- package/dist/web/runner/runner.js +0 -747
- package/dist/web/sessions/base_session_service.js +0 -123
- package/dist/web/sessions/database_session_service.js +0 -440
- package/dist/web/sessions/db/operations.js +0 -124
- package/dist/web/sessions/db/schema.js +0 -216
- package/dist/web/sessions/in_memory_session_service.js +0 -251
- package/dist/web/sessions/registry.js +0 -38
- package/dist/web/sessions/session.js +0 -23
- package/dist/web/sessions/state.js +0 -159
- package/dist/web/sessions/state_write_order.js +0 -74
- package/dist/web/sessions/vertex_ai_session_service.js +0 -546
- package/dist/web/skills/gcp_skill_registry.js +0 -80
- package/dist/web/skills/loader.js +0 -372
- package/dist/web/skills/prompt.js +0 -34
- 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 -99
- package/dist/web/telemetry/setup.js +0 -89
- package/dist/web/telemetry/tracing.js +0 -304
- package/dist/web/tools/agent_tool.js +0 -150
- package/dist/web/tools/base_tool.js +0 -116
- package/dist/web/tools/base_toolset.js +0 -62
- package/dist/web/tools/consolidate_context_tool.js +0 -55
- package/dist/web/tools/enterprise_web_search_tool.js +0 -60
- package/dist/web/tools/example_tool.js +0 -46
- package/dist/web/tools/exit_loop_tool.js +0 -47
- package/dist/web/tools/finish_task_tool.js +0 -92
- package/dist/web/tools/forwarding_artifact_service.js +0 -51
- package/dist/web/tools/function_tool.js +0 -151
- package/dist/web/tools/get_user_choice_tool.js +0 -27
- package/dist/web/tools/google_maps_grounding_tool.js +0 -59
- package/dist/web/tools/google_search_tool.js +0 -55
- package/dist/web/tools/load_artifacts_tool.js +0 -159
- package/dist/web/tools/load_memory_tool.js +0 -83
- package/dist/web/tools/long_running_tool.js +0 -58
- package/dist/web/tools/mcp/index.js +0 -11
- package/dist/web/tools/mcp/load_mcp_resource_tool.js +0 -111
- package/dist/web/tools/mcp/mcp_session_manager.js +0 -114
- package/dist/web/tools/mcp/mcp_tool.js +0 -47
- package/dist/web/tools/mcp/mcp_toolset.js +0 -144
- package/dist/web/tools/openapi_tool/auth/auth_helpers.js +0 -53
- package/dist/web/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +0 -62
- package/dist/web/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +0 -113
- package/dist/web/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +0 -242
- package/dist/web/tools/openapi_tool/openapi_spec_parser/operation_parser.js +0 -200
- package/dist/web/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +0 -98
- package/dist/web/tools/openapi_tool/openapi_toolset.js +0 -99
- package/dist/web/tools/openapi_tool/rest_api_tool.js +0 -247
- package/dist/web/tools/preload_memory_tool.js +0 -81
- package/dist/web/tools/request_input_tool.js +0 -29
- package/dist/web/tools/skill/list_skills_tool.js +0 -52
- package/dist/web/tools/skill/load_skill_resource_tool.js +0 -192
- package/dist/web/tools/skill/load_skill_tool.js +0 -96
- package/dist/web/tools/skill/run_skill_inline_script_tool.js +0 -191
- package/dist/web/tools/skill/run_skill_script_tool.js +0 -227
- package/dist/web/tools/skill/search_skills_tool.js +0 -84
- package/dist/web/tools/skill/skill_toolset.js +0 -185
- package/dist/web/tools/tool_confirmation.js +0 -43
- package/dist/web/tools/url_context_tool.js +0 -48
- package/dist/web/tools/vertex_ai_search_tool.js +0 -107
- package/dist/web/tools/vertex_rag_retrieval_tool.js +0 -40
- package/dist/web/utils/async_hooks_shim.js +0 -28
- package/dist/web/utils/async_queue.js +0 -88
- package/dist/web/utils/branch_trie.js +0 -16
- package/dist/web/utils/case_utils.js +0 -28
- package/dist/web/utils/client_labels.js +0 -70
- package/dist/web/utils/deprecated.js +0 -40
- package/dist/web/utils/env_aware_utils.js +0 -115
- package/dist/web/utils/error_utils.js +0 -101
- package/dist/web/utils/experimental.js +0 -54
- package/dist/web/utils/failover_utils.js +0 -100
- package/dist/web/utils/file_extension_utils.js +0 -55
- package/dist/web/utils/file_utils.js +0 -108
- package/dist/web/utils/gemini_schema_util.js +0 -177
- package/dist/web/utils/genai_schema_to_json.js +0 -80
- package/dist/web/utils/live_connection_utils.js +0 -257
- package/dist/web/utils/logger.js +0 -140
- package/dist/web/utils/model_name.js +0 -75
- package/dist/web/utils/object_notation_utils.js +0 -54
- package/dist/web/utils/optional_peer.js +0 -38
- package/dist/web/utils/output_schema_utils.js +0 -18
- package/dist/web/utils/partial_copy.js +0 -26
- package/dist/web/utils/redact_uri.js +0 -39
- package/dist/web/utils/schema.js +0 -167
- package/dist/web/utils/simple_zod_to_json.js +0 -134
- package/dist/web/utils/streaming_utils.js +0 -438
- package/dist/web/utils/task.js +0 -38
- package/dist/web/utils/variant_utils.js +0 -23
- package/dist/web/utils/vertex_ai_utils.js +0 -27
- package/dist/web/workflow/base_node.js +0 -215
- package/dist/web/workflow/branch_path.js +0 -77
- package/dist/web/workflow/dynamic_node_scheduler.js +0 -202
- package/dist/web/workflow/errors.js +0 -140
- package/dist/web/workflow/graph.js +0 -127
- package/dist/web/workflow/index.js +0 -80
- package/dist/web/workflow/node.js +0 -87
- package/dist/web/workflow/node_builders.js +0 -40
- package/dist/web/workflow/node_context.js +0 -236
- package/dist/web/workflow/node_error_event.js +0 -86
- package/dist/web/workflow/node_runner.js +0 -481
- package/dist/web/workflow/node_state.js +0 -43
- package/dist/web/workflow/node_status.js +0 -20
- package/dist/web/workflow/nodes/function_node.js +0 -221
- package/dist/web/workflow/nodes/join_node.js +0 -47
- package/dist/web/workflow/nodes/node_tool.js +0 -131
- package/dist/web/workflow/nodes/parallel_worker.js +0 -120
- package/dist/web/workflow/nodes/tool_node.js +0 -126
- package/dist/web/workflow/request_input.js +0 -36
- package/dist/web/workflow/retry_config.js +0 -43
- package/dist/web/workflow/run_llm_agent_as_node.js +0 -266
- package/dist/web/workflow/run_node_as_invocation.js +0 -170
- package/dist/web/workflow/schedule_dynamic_node.js +0 -26
- package/dist/web/workflow/trigger.js +0 -7
- package/dist/web/workflow/utils/graph_parser.js +0 -188
- package/dist/web/workflow/utils/graph_validation.js +0 -189
- package/dist/web/workflow/utils/hitl_utils.js +0 -239
- package/dist/web/workflow/utils/rehydration_utils.js +0 -342
- package/dist/web/workflow/utils/retry_utils.js +0 -82
- package/dist/web/workflow/utils/workflow_graph_utils.js +0 -115
- package/dist/web/workflow/workflow.js +0 -529
- /package/dist/{web/artifacts/session_artifact_service.js → esm/tools/resume_inputs.js} +0 -0
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
"use strict";
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
10
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
11
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
12
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
13
|
+
var __export = (target, all) => {
|
|
14
|
+
for (var name in all)
|
|
15
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
16
|
+
};
|
|
17
|
+
var __copyProps = (to, from, except, desc) => {
|
|
18
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
19
|
+
for (let key of __getOwnPropNames(from))
|
|
20
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
21
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
22
|
+
}
|
|
23
|
+
return to;
|
|
24
|
+
};
|
|
25
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
26
|
+
var reflect_retry_utils_exports = {};
|
|
27
|
+
__export(reflect_retry_utils_exports, {
|
|
28
|
+
GLOBAL_SCOPE_KEY: () => GLOBAL_SCOPE_KEY,
|
|
29
|
+
REFLECT_AND_RETRY_RESPONSE_TYPE: () => REFLECT_AND_RETRY_RESPONSE_TYPE,
|
|
30
|
+
ScopedFailureTracker: () => ScopedFailureTracker,
|
|
31
|
+
TrackingScope: () => TrackingScope,
|
|
32
|
+
resolveScopeKey: () => resolveScopeKey
|
|
33
|
+
});
|
|
34
|
+
module.exports = __toCommonJS(reflect_retry_utils_exports);
|
|
35
|
+
/**
|
|
36
|
+
* @license
|
|
37
|
+
* Copyright 2026 Google LLC
|
|
38
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
39
|
+
*/
|
|
40
|
+
const REFLECT_AND_RETRY_RESPONSE_TYPE = "ERROR_HANDLED_BY_REFLECT_AND_RETRY_PLUGIN";
|
|
41
|
+
const GLOBAL_SCOPE_KEY = "__global_reflect_and_retry_scope__";
|
|
42
|
+
var TrackingScope = /* @__PURE__ */ ((TrackingScope2) => {
|
|
43
|
+
TrackingScope2["INVOCATION"] = "invocation";
|
|
44
|
+
TrackingScope2["GLOBAL"] = "global";
|
|
45
|
+
return TrackingScope2;
|
|
46
|
+
})(TrackingScope || {});
|
|
47
|
+
function resolveScopeKey(scope, invocationId) {
|
|
48
|
+
if (scope === "invocation" /* INVOCATION */) {
|
|
49
|
+
if (!invocationId) {
|
|
50
|
+
throw new Error("invocation_id must be provided for INVOCATION scope");
|
|
51
|
+
}
|
|
52
|
+
return invocationId;
|
|
53
|
+
} else if (scope === "global" /* GLOBAL */) {
|
|
54
|
+
return GLOBAL_SCOPE_KEY;
|
|
55
|
+
}
|
|
56
|
+
throw new Error(`Unknown scope: ${scope}`);
|
|
57
|
+
}
|
|
58
|
+
__name(resolveScopeKey, "resolveScopeKey");
|
|
59
|
+
const _ScopedFailureTracker = class _ScopedFailureTracker {
|
|
60
|
+
constructor() {
|
|
61
|
+
this.scopedFailureCounters = /* @__PURE__ */ new Map();
|
|
62
|
+
this.lockPromise = Promise.resolve();
|
|
63
|
+
}
|
|
64
|
+
async acquireLock() {
|
|
65
|
+
let release;
|
|
66
|
+
const nextLock = new Promise((resolve) => {
|
|
67
|
+
release = resolve;
|
|
68
|
+
});
|
|
69
|
+
const currentLock = this.lockPromise;
|
|
70
|
+
this.lockPromise = this.lockPromise.then(() => nextLock);
|
|
71
|
+
await currentLock;
|
|
72
|
+
return release;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Atomically increments and returns the failure count for an item.
|
|
76
|
+
*
|
|
77
|
+
* @param scopeKey - The scope identifier (e.g. invocation ID or global key).
|
|
78
|
+
* @param itemName - The name of the tool or model.
|
|
79
|
+
* @returns The updated failure count.
|
|
80
|
+
*/
|
|
81
|
+
async increment(scopeKey, itemName) {
|
|
82
|
+
var _a;
|
|
83
|
+
const release = await this.acquireLock();
|
|
84
|
+
try {
|
|
85
|
+
let counter = this.scopedFailureCounters.get(scopeKey);
|
|
86
|
+
if (!counter) {
|
|
87
|
+
counter = /* @__PURE__ */ new Map();
|
|
88
|
+
this.scopedFailureCounters.set(scopeKey, counter);
|
|
89
|
+
}
|
|
90
|
+
const current = ((_a = counter.get(itemName)) != null ? _a : 0) + 1;
|
|
91
|
+
counter.set(itemName, current);
|
|
92
|
+
return current;
|
|
93
|
+
} finally {
|
|
94
|
+
release();
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Atomically resets the failure count for an item and cleans up state.
|
|
99
|
+
*
|
|
100
|
+
* @param scopeKey - The scope identifier.
|
|
101
|
+
* @param itemName - The name of the tool or model.
|
|
102
|
+
*/
|
|
103
|
+
async reset(scopeKey, itemName) {
|
|
104
|
+
const release = await this.acquireLock();
|
|
105
|
+
try {
|
|
106
|
+
const counter = this.scopedFailureCounters.get(scopeKey);
|
|
107
|
+
if (counter) {
|
|
108
|
+
counter.delete(itemName);
|
|
109
|
+
if (counter.size === 0) {
|
|
110
|
+
this.scopedFailureCounters.delete(scopeKey);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
} finally {
|
|
114
|
+
release();
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Gets the current failure count for an item.
|
|
119
|
+
*
|
|
120
|
+
* @param scopeKey - The scope identifier.
|
|
121
|
+
* @param itemName - The name of the tool or model.
|
|
122
|
+
*/
|
|
123
|
+
async getCount(scopeKey, itemName) {
|
|
124
|
+
var _a, _b;
|
|
125
|
+
const release = await this.acquireLock();
|
|
126
|
+
try {
|
|
127
|
+
return (_b = (_a = this.scopedFailureCounters.get(scopeKey)) == null ? void 0 : _a.get(itemName)) != null ? _b : 0;
|
|
128
|
+
} finally {
|
|
129
|
+
release();
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
__name(_ScopedFailureTracker, "ScopedFailureTracker");
|
|
134
|
+
let ScopedFailureTracker = _ScopedFailureTracker;
|
|
135
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
136
|
+
0 && (module.exports = {
|
|
137
|
+
GLOBAL_SCOPE_KEY,
|
|
138
|
+
REFLECT_AND_RETRY_RESPONSE_TYPE,
|
|
139
|
+
ScopedFailureTracker,
|
|
140
|
+
TrackingScope,
|
|
141
|
+
resolveScopeKey
|
|
142
|
+
});
|
|
@@ -65,14 +65,13 @@ const _BasePlugin = class _BasePlugin {
|
|
|
65
65
|
* This callback helps logging and modifying the user message before the
|
|
66
66
|
* runner starts the invocation.
|
|
67
67
|
*
|
|
68
|
-
* @param
|
|
69
|
-
* @param
|
|
68
|
+
* @param _params.invocationContext The context for the entire invocation.
|
|
69
|
+
* @param _params.userMessage The message content input by user.
|
|
70
70
|
* @returns An optional `Content` to be returned to the ADK. Returning a
|
|
71
71
|
* value to replace the user message. Returning `undefined` to proceed
|
|
72
72
|
* normally.
|
|
73
73
|
*/
|
|
74
|
-
|
|
75
|
-
async onUserMessageCallback(params) {
|
|
74
|
+
async onUserMessageCallback(_params) {
|
|
76
75
|
return;
|
|
77
76
|
}
|
|
78
77
|
/**
|
|
@@ -81,14 +80,13 @@ const _BasePlugin = class _BasePlugin {
|
|
|
81
80
|
* This is the first callback to be called in the lifecycle, ideal for global
|
|
82
81
|
* setup or initialization tasks.
|
|
83
82
|
*
|
|
84
|
-
* @param
|
|
83
|
+
* @param _params.invocationContext The context for the entire invocation, containing
|
|
85
84
|
* session information, the root agent, etc.
|
|
86
85
|
* @returns An optional `Event` to be returned to the ADK. Returning a value
|
|
87
86
|
* to halt execution of the runner and ends the runner with that event.
|
|
88
87
|
* Return `undefined` to proceed normally.
|
|
89
88
|
*/
|
|
90
|
-
|
|
91
|
-
async beforeRunCallback(params) {
|
|
89
|
+
async beforeRunCallback(_params) {
|
|
92
90
|
return;
|
|
93
91
|
}
|
|
94
92
|
/**
|
|
@@ -97,16 +95,15 @@ const _BasePlugin = class _BasePlugin {
|
|
|
97
95
|
* This is the ideal place to make modification to the event before the event
|
|
98
96
|
* is handled by the underlying agent app.
|
|
99
97
|
*
|
|
100
|
-
* @param
|
|
101
|
-
* @param
|
|
98
|
+
* @param _params.invocationContext The context for the entire invocation.
|
|
99
|
+
* @param _params.event The event raised by the runner.
|
|
102
100
|
* @returns An optional value. A non-`undefined` return may be used by the
|
|
103
|
-
* framework to modify or replace the response. Copy
|
|
104
|
-
* constructing a replacement to preserve fields that are not
|
|
105
|
-
* modified, such as event actions. Returning `undefined` allows the
|
|
101
|
+
* framework to modify or replace the response. Copy the incoming
|
|
102
|
+
* `event` when constructing a replacement to preserve fields that are not
|
|
103
|
+
* being modified, such as event actions. Returning `undefined` allows the
|
|
106
104
|
* original response to be used.
|
|
107
105
|
*/
|
|
108
|
-
|
|
109
|
-
async onEventCallback(params) {
|
|
106
|
+
async onEventCallback(_params) {
|
|
110
107
|
return;
|
|
111
108
|
}
|
|
112
109
|
/**
|
|
@@ -115,11 +112,10 @@ const _BasePlugin = class _BasePlugin {
|
|
|
115
112
|
* This is the final callback in the ADK lifecycle, suitable for cleanup,
|
|
116
113
|
* final logging, or reporting tasks.
|
|
117
114
|
*
|
|
118
|
-
* @param
|
|
115
|
+
* @param _params.invocationContext The context for the entire invocation.
|
|
119
116
|
* @returns undefined
|
|
120
117
|
*/
|
|
121
|
-
|
|
122
|
-
async afterRunCallback(params) {
|
|
118
|
+
async afterRunCallback(_params) {
|
|
123
119
|
return;
|
|
124
120
|
}
|
|
125
121
|
/**
|
|
@@ -128,14 +124,13 @@ const _BasePlugin = class _BasePlugin {
|
|
|
128
124
|
* This callback can be used for logging, setup, or to short-circuit the
|
|
129
125
|
* agent's execution by returning a value.
|
|
130
126
|
*
|
|
131
|
-
* @param
|
|
132
|
-
* @param
|
|
127
|
+
* @param _params.agent The agent that is about to run.
|
|
128
|
+
* @param _params.callbackContext The context for the agent invocation.
|
|
133
129
|
* @returns An optional `Content` object. If a value is returned, it will
|
|
134
130
|
* bypass the agent's callbacks and its execution, and return this value
|
|
135
131
|
* directly. Returning `undefined` allows the agent to proceed normally.
|
|
136
132
|
*/
|
|
137
|
-
|
|
138
|
-
async beforeAgentCallback(params) {
|
|
133
|
+
async beforeAgentCallback(_params) {
|
|
139
134
|
return;
|
|
140
135
|
}
|
|
141
136
|
/**
|
|
@@ -144,14 +139,13 @@ const _BasePlugin = class _BasePlugin {
|
|
|
144
139
|
* This callback can be used to inspect, log, or modify the agent's final
|
|
145
140
|
* result before it is returned.
|
|
146
141
|
*
|
|
147
|
-
* @param
|
|
148
|
-
* @param
|
|
142
|
+
* @param _params.agent The agent that has just run.
|
|
143
|
+
* @param _params.callbackContext The context for the agent invocation.
|
|
149
144
|
* @returns An optional `Content` object. If a value is returned, it will
|
|
150
145
|
* replace the agent's original result. Returning `undefined` uses the
|
|
151
146
|
* original, unmodified result.
|
|
152
147
|
*/
|
|
153
|
-
|
|
154
|
-
async afterAgentCallback(params) {
|
|
148
|
+
async afterAgentCallback(_params) {
|
|
155
149
|
return;
|
|
156
150
|
}
|
|
157
151
|
/**
|
|
@@ -192,14 +186,13 @@ const _BasePlugin = class _BasePlugin {
|
|
|
192
186
|
* object. It can also be used to implement caching by returning a cached
|
|
193
187
|
* `LlmResponse`, which would skip the actual model call.
|
|
194
188
|
*
|
|
195
|
-
* @param
|
|
196
|
-
* @param
|
|
189
|
+
* @param _params.callbackContext The context for the current agent call.
|
|
190
|
+
* @param _params.llmRequest The prepared request object to be sent to the model.
|
|
197
191
|
* @returns An optional value. The interpretation of a non-`undefined`
|
|
198
192
|
* trigger an early exit and returns the response immediately. Returning
|
|
199
193
|
* `undefined` allows the LLM request to proceed normally.
|
|
200
194
|
*/
|
|
201
|
-
|
|
202
|
-
async beforeModelCallback(params) {
|
|
195
|
+
async beforeModelCallback(_params) {
|
|
203
196
|
return;
|
|
204
197
|
}
|
|
205
198
|
/**
|
|
@@ -208,14 +201,13 @@ const _BasePlugin = class _BasePlugin {
|
|
|
208
201
|
* This is the ideal place to log model responses, collect metrics on token
|
|
209
202
|
* usage, or perform post-processing on the raw `LlmResponse`.
|
|
210
203
|
*
|
|
211
|
-
* @param
|
|
212
|
-
* @param
|
|
204
|
+
* @param _params.callbackContext The context for the current agent call.
|
|
205
|
+
* @param _params.llmResponse The response object received from the model.
|
|
213
206
|
* @returns An optional value. A non-`undefined` return may be used by the
|
|
214
207
|
* framework to modify or replace the response. Returning `undefined`
|
|
215
208
|
* allows the original response to be used.
|
|
216
209
|
*/
|
|
217
|
-
|
|
218
|
-
async afterModelCallback(params) {
|
|
210
|
+
async afterModelCallback(_params) {
|
|
219
211
|
return;
|
|
220
212
|
}
|
|
221
213
|
/**
|
|
@@ -224,28 +216,24 @@ const _BasePlugin = class _BasePlugin {
|
|
|
224
216
|
* This callback provides an opportunity to handle model errors gracefully,
|
|
225
217
|
* potentially providing alternative responses or recovery mechanisms.
|
|
226
218
|
*
|
|
227
|
-
* @param
|
|
228
|
-
* @param
|
|
219
|
+
* @param _params.callbackContext The context for the current agent call.
|
|
220
|
+
* @param _params.llmRequest The request that was sent to the model when the error
|
|
229
221
|
* occurred.
|
|
230
|
-
* @param
|
|
222
|
+
* @param _params.error The exception that was raised during model execution.
|
|
231
223
|
* @returns An optional LlmResponse. If an LlmResponse is returned, it will be
|
|
232
224
|
* used instead of propagating the error. Returning `undefined` allows
|
|
233
225
|
* the original error to be raised.
|
|
234
226
|
*/
|
|
235
|
-
|
|
236
|
-
async onModelErrorCallback(params) {
|
|
227
|
+
async onModelErrorCallback(_params) {
|
|
237
228
|
return;
|
|
238
229
|
}
|
|
239
|
-
|
|
240
|
-
async beforeToolSelection(params) {
|
|
230
|
+
async beforeToolSelection(_params) {
|
|
241
231
|
return;
|
|
242
232
|
}
|
|
243
|
-
|
|
244
|
-
async beforeContextCompaction(params) {
|
|
233
|
+
async beforeContextCompaction(_params) {
|
|
245
234
|
return;
|
|
246
235
|
}
|
|
247
|
-
|
|
248
|
-
async afterContextCompaction(params) {
|
|
236
|
+
async afterContextCompaction(_params) {
|
|
249
237
|
return;
|
|
250
238
|
}
|
|
251
239
|
/**
|
|
@@ -254,16 +242,15 @@ const _BasePlugin = class _BasePlugin {
|
|
|
254
242
|
* This callback is useful for logging tool usage, input validation, or
|
|
255
243
|
* modifying the arguments before they are passed to the tool.
|
|
256
244
|
*
|
|
257
|
-
* @param
|
|
258
|
-
* @param
|
|
245
|
+
* @param _params.tool The tool instance that is about to be executed.
|
|
246
|
+
* @param _params.toolArgs The dictionary of arguments to be used for invoking the
|
|
259
247
|
* tool.
|
|
260
|
-
* @param
|
|
248
|
+
* @param _params.toolContext The context specific to the tool execution.
|
|
261
249
|
* @returns An optional dictionary. If a dictionary is returned, it will stop
|
|
262
250
|
* the tool execution and return this response immediately. Returning
|
|
263
251
|
* `undefined` uses the original, unmodified arguments.
|
|
264
252
|
*/
|
|
265
|
-
|
|
266
|
-
async beforeToolCallback(params) {
|
|
253
|
+
async beforeToolCallback(_params) {
|
|
267
254
|
return;
|
|
268
255
|
}
|
|
269
256
|
/**
|
|
@@ -272,17 +259,16 @@ const _BasePlugin = class _BasePlugin {
|
|
|
272
259
|
* This callback allows for inspecting, logging, or modifying the result
|
|
273
260
|
* returned by a tool.
|
|
274
261
|
*
|
|
275
|
-
* @param
|
|
276
|
-
* @param
|
|
277
|
-
* @param
|
|
278
|
-
* @param
|
|
262
|
+
* @param _params.tool The tool instance that has just been executed.
|
|
263
|
+
* @param _params.toolArgs The original arguments that were passed to the tool.
|
|
264
|
+
* @param _params.toolContext The context specific to the tool execution.
|
|
265
|
+
* @param _params.result The dictionary returned by the tool invocation.
|
|
279
266
|
* @returns An optional dictionary. If a dictionary is returned, it will
|
|
280
267
|
* **replace** the original result from the tool. This allows for
|
|
281
268
|
* post-processing or altering tool outputs. Returning `undefined` uses
|
|
282
269
|
* the original, unmodified result.
|
|
283
270
|
*/
|
|
284
|
-
|
|
285
|
-
async afterToolCallback(params) {
|
|
271
|
+
async afterToolCallback(_params) {
|
|
286
272
|
return;
|
|
287
273
|
}
|
|
288
274
|
/**
|
|
@@ -301,16 +287,15 @@ const _BasePlugin = class _BasePlugin {
|
|
|
301
287
|
* This callback provides an opportunity to handle tool errors gracefully,
|
|
302
288
|
* potentially providing alternative responses or recovery mechanisms.
|
|
303
289
|
*
|
|
304
|
-
* @param
|
|
305
|
-
* @param
|
|
306
|
-
* @param
|
|
307
|
-
* @param
|
|
290
|
+
* @param _params.tool The tool instance that encountered an error.
|
|
291
|
+
* @param _params.toolArgs The arguments that were passed to the tool.
|
|
292
|
+
* @param _params.toolContext The context specific to the tool execution.
|
|
293
|
+
* @param _params.error The exception that was raised during tool execution.
|
|
308
294
|
* @returns An optional dictionary. If a dictionary is returned, it will be
|
|
309
295
|
* used as the tool response instead of propagating the error. Returning
|
|
310
296
|
* `undefined` allows the original error to be raised.
|
|
311
297
|
*/
|
|
312
|
-
|
|
313
|
-
async onToolErrorCallback(params) {
|
|
298
|
+
async onToolErrorCallback(_params) {
|
|
314
299
|
return;
|
|
315
300
|
}
|
|
316
301
|
};
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
"use strict";
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
10
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
11
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
12
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
13
|
+
var __export = (target, all) => {
|
|
14
|
+
for (var name in all)
|
|
15
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
16
|
+
};
|
|
17
|
+
var __copyProps = (to, from, except, desc) => {
|
|
18
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
19
|
+
for (let key of __getOwnPropNames(from))
|
|
20
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
21
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
22
|
+
}
|
|
23
|
+
return to;
|
|
24
|
+
};
|
|
25
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
26
|
+
var reflect_retry_model_plugin_exports = {};
|
|
27
|
+
__export(reflect_retry_model_plugin_exports, {
|
|
28
|
+
ADK_HANDLE_MODEL_ERROR_TOOL_NAME: () => ADK_HANDLE_MODEL_ERROR_TOOL_NAME,
|
|
29
|
+
RESERVED_TOOL_CALL_ERROR_TYPE: () => RESERVED_TOOL_CALL_ERROR_TYPE,
|
|
30
|
+
ReflectAndRetryModelPlugin: () => ReflectAndRetryModelPlugin
|
|
31
|
+
});
|
|
32
|
+
module.exports = __toCommonJS(reflect_retry_model_plugin_exports);
|
|
33
|
+
var import_genai = require("@google/genai");
|
|
34
|
+
var import_uuid = require("uuid");
|
|
35
|
+
var import_function_tool = require("../tools/function_tool.js");
|
|
36
|
+
var import_reflect_retry_utils = require("./_reflect_retry_utils.js");
|
|
37
|
+
var import_base_plugin = require("./base_plugin.js");
|
|
38
|
+
/**
|
|
39
|
+
* @license
|
|
40
|
+
* Copyright 2026 Google LLC
|
|
41
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
42
|
+
*/
|
|
43
|
+
const RESERVED_TOOL_CALL_ERROR_TYPE = "RESERVED_TOOL_CALL";
|
|
44
|
+
const ADK_HANDLE_MODEL_ERROR_TOOL_NAME = "adk_handle_model_error";
|
|
45
|
+
const _ReflectAndRetryModelPlugin = class _ReflectAndRetryModelPlugin extends import_base_plugin.BasePlugin {
|
|
46
|
+
/**
|
|
47
|
+
* Initializes the {@link ReflectAndRetryModelPlugin}.
|
|
48
|
+
*
|
|
49
|
+
* @param options - Configuration options for the plugin.
|
|
50
|
+
*/
|
|
51
|
+
constructor(options = {}) {
|
|
52
|
+
var _a, _b, _c, _d, _e;
|
|
53
|
+
super((_a = options.name) != null ? _a : "reflect_retry_model_plugin");
|
|
54
|
+
const retries = (_b = options.maxRetries) != null ? _b : 3;
|
|
55
|
+
if (retries < 0) {
|
|
56
|
+
throw new Error("maxRetries must be a non-negative integer.");
|
|
57
|
+
}
|
|
58
|
+
this.maxRetries = retries;
|
|
59
|
+
this.throwExceptionIfRetryExceeded = (_c = options.throwExceptionIfRetryExceeded) != null ? _c : true;
|
|
60
|
+
this.scope = (_d = options.trackingScope) != null ? _d : import_reflect_retry_utils.TrackingScope.INVOCATION;
|
|
61
|
+
this.onModelErrors = (_e = options.onModelErrors) != null ? _e : [
|
|
62
|
+
import_genai.FinishReason.MALFORMED_FUNCTION_CALL
|
|
63
|
+
];
|
|
64
|
+
this.tracker = new import_reflect_retry_utils.ScopedFailureTracker();
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Internal framework reflection tool handler.
|
|
68
|
+
*/
|
|
69
|
+
adkHandleModelError({
|
|
70
|
+
retryCount
|
|
71
|
+
}) {
|
|
72
|
+
const attempt = retryCount != null ? retryCount : 1;
|
|
73
|
+
return {
|
|
74
|
+
reflection_guidance: `
|
|
75
|
+
The call to the model failed.
|
|
76
|
+
|
|
77
|
+
**Reflection Guidance:**
|
|
78
|
+
- This is retry attempt **${attempt}** of **${this.maxRetries}**
|
|
79
|
+
- Analyze the error and the arguments you provided. Do not repeat the exact same call.
|
|
80
|
+
|
|
81
|
+
Formulate a new plan based on your analysis and try a corrected or different approach.
|
|
82
|
+
`.trim()
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Checks if the model response contains an error matching `onModelErrors`.
|
|
87
|
+
*/
|
|
88
|
+
checkForModelError(llmResponse) {
|
|
89
|
+
if (!llmResponse.errorCode && !llmResponse.finishReason) {
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
if (llmResponse.finishReason && this.onModelErrors.includes(llmResponse.finishReason)) {
|
|
93
|
+
return true;
|
|
94
|
+
}
|
|
95
|
+
return false;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Retrieves the model name from context.
|
|
99
|
+
*/
|
|
100
|
+
getModelNameFromContext(callbackContext) {
|
|
101
|
+
return callbackContext.agentName || "default_model";
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Prepares the LLM request by attaching the reflection tool.
|
|
105
|
+
*/
|
|
106
|
+
async beforeModelCallback({
|
|
107
|
+
llmRequest
|
|
108
|
+
}) {
|
|
109
|
+
this.provideReflectionTool(llmRequest);
|
|
110
|
+
return void 0;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Inspects LLM responses, intercepts model errors or reserved tool calls, and handles retries.
|
|
114
|
+
*/
|
|
115
|
+
async afterModelCallback({
|
|
116
|
+
callbackContext,
|
|
117
|
+
llmResponse
|
|
118
|
+
}) {
|
|
119
|
+
if (this.hasReservedToolCall(llmResponse)) {
|
|
120
|
+
return await this.handleReservedToolCall(callbackContext, llmResponse);
|
|
121
|
+
}
|
|
122
|
+
if (this.checkForModelError(llmResponse)) {
|
|
123
|
+
return await this.handleModelError(callbackContext, llmResponse);
|
|
124
|
+
}
|
|
125
|
+
const scopeKey = this.getModelScopeKey(callbackContext);
|
|
126
|
+
const modelName = this.getModelNameFromContext(callbackContext);
|
|
127
|
+
await this.resetModelFailureCount(scopeKey, modelName);
|
|
128
|
+
return void 0;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Provides the adk_handle_model_error tool for reflection and retries.
|
|
132
|
+
*/
|
|
133
|
+
provideReflectionTool(llmRequest) {
|
|
134
|
+
if (!llmRequest.toolsDict) {
|
|
135
|
+
llmRequest.toolsDict = {};
|
|
136
|
+
}
|
|
137
|
+
llmRequest.toolsDict[ADK_HANDLE_MODEL_ERROR_TOOL_NAME] = new import_function_tool.FunctionTool({
|
|
138
|
+
name: ADK_HANDLE_MODEL_ERROR_TOOL_NAME,
|
|
139
|
+
description: "A tool that triggers reflection. Reserved for internal framework use only. Do not call directly.",
|
|
140
|
+
execute: /* @__PURE__ */ __name((args) => this.adkHandleModelError(
|
|
141
|
+
args
|
|
142
|
+
), "execute")
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Checks if the model response calls the reserved reflection tool.
|
|
147
|
+
*/
|
|
148
|
+
hasReservedToolCall(llmResponse) {
|
|
149
|
+
var _a;
|
|
150
|
+
if (!((_a = llmResponse.content) == null ? void 0 : _a.parts)) return false;
|
|
151
|
+
for (const part of llmResponse.content.parts) {
|
|
152
|
+
if (part.functionCall && part.functionCall.name === ADK_HANDLE_MODEL_ERROR_TOOL_NAME) {
|
|
153
|
+
return true;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
return false;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Handles direct calls to the reserved reflection tool.
|
|
160
|
+
*/
|
|
161
|
+
async handleReservedToolCall(callbackContext, _llmResponse) {
|
|
162
|
+
const retryResponse = await this.handleModelRetry(
|
|
163
|
+
callbackContext,
|
|
164
|
+
RESERVED_TOOL_CALL_ERROR_TYPE,
|
|
165
|
+
`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.`,
|
|
166
|
+
import_genai.FinishReason.OTHER
|
|
167
|
+
);
|
|
168
|
+
if (retryResponse !== void 0) {
|
|
169
|
+
return retryResponse;
|
|
170
|
+
}
|
|
171
|
+
return {
|
|
172
|
+
errorCode: RESERVED_TOOL_CALL_ERROR_TYPE,
|
|
173
|
+
errorMessage: "Model attempted to call reserved tool and retry limit was exceeded."
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Handles detected model errors by initiating retry logic.
|
|
178
|
+
*/
|
|
179
|
+
async handleModelError(callbackContext, llmResponse) {
|
|
180
|
+
var _a, _b, _c;
|
|
181
|
+
const retryResponse = await this.handleModelRetry(
|
|
182
|
+
callbackContext,
|
|
183
|
+
(_a = llmResponse.errorCode) != null ? _a : "MODEL_ERROR",
|
|
184
|
+
(_b = llmResponse.errorMessage) != null ? _b : "Model error encountered.",
|
|
185
|
+
(_c = llmResponse.finishReason) != null ? _c : import_genai.FinishReason.OTHER
|
|
186
|
+
);
|
|
187
|
+
if (retryResponse !== void 0) {
|
|
188
|
+
return retryResponse;
|
|
189
|
+
}
|
|
190
|
+
return llmResponse;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Tracks retry count, generates retry response, and checks against limits.
|
|
194
|
+
*/
|
|
195
|
+
async handleModelRetry(callbackContext, errorType, errorDetails, finishReason) {
|
|
196
|
+
const scopeKey = this.getModelScopeKey(callbackContext);
|
|
197
|
+
const modelName = this.getModelNameFromContext(callbackContext);
|
|
198
|
+
const currentRetries = await this.incrementModelFailureCount(
|
|
199
|
+
scopeKey,
|
|
200
|
+
modelName
|
|
201
|
+
);
|
|
202
|
+
if (currentRetries <= this.maxRetries) {
|
|
203
|
+
return {
|
|
204
|
+
content: {
|
|
205
|
+
role: "model",
|
|
206
|
+
parts: [
|
|
207
|
+
this.generateModelRetryPart(
|
|
208
|
+
currentRetries,
|
|
209
|
+
errorType,
|
|
210
|
+
errorDetails,
|
|
211
|
+
finishReason
|
|
212
|
+
)
|
|
213
|
+
]
|
|
214
|
+
}
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
if (this.throwExceptionIfRetryExceeded) {
|
|
218
|
+
throw new Error(
|
|
219
|
+
`The model has failed consecutively ${this.maxRetries} times and the retry limit has been exceeded.`
|
|
220
|
+
);
|
|
221
|
+
}
|
|
222
|
+
return void 0;
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Generates a function call part for the model retry tool.
|
|
226
|
+
*/
|
|
227
|
+
generateModelRetryPart(retryCount, errorType, errorDetails, finishReason) {
|
|
228
|
+
return {
|
|
229
|
+
functionCall: {
|
|
230
|
+
id: this.getModelRetryUuid(),
|
|
231
|
+
name: ADK_HANDLE_MODEL_ERROR_TOOL_NAME,
|
|
232
|
+
args: {
|
|
233
|
+
response_type: import_reflect_retry_utils.REFLECT_AND_RETRY_RESPONSE_TYPE,
|
|
234
|
+
error_type: errorType,
|
|
235
|
+
error_details: errorDetails,
|
|
236
|
+
finish_reason: finishReason,
|
|
237
|
+
retry_count: retryCount
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Generates a unique ID for the model retry tool call.
|
|
244
|
+
*/
|
|
245
|
+
getModelRetryUuid() {
|
|
246
|
+
return `${ADK_HANDLE_MODEL_ERROR_TOOL_NAME}_${(0, import_uuid.v4)()}`;
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Returns the scope key for model failure tracking.
|
|
250
|
+
*/
|
|
251
|
+
getModelScopeKey(callbackContext) {
|
|
252
|
+
return (0, import_reflect_retry_utils.resolveScopeKey)(this.scope, callbackContext.invocationId);
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Increment the failure count for a model within a scope.
|
|
256
|
+
*/
|
|
257
|
+
async incrementModelFailureCount(scopeKey, itemName) {
|
|
258
|
+
return await this.tracker.increment(scopeKey, itemName);
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Reset the failure count for a model within a scope.
|
|
262
|
+
*/
|
|
263
|
+
async resetModelFailureCount(scopeKey, itemName) {
|
|
264
|
+
await this.tracker.reset(scopeKey, itemName);
|
|
265
|
+
}
|
|
266
|
+
};
|
|
267
|
+
__name(_ReflectAndRetryModelPlugin, "ReflectAndRetryModelPlugin");
|
|
268
|
+
let ReflectAndRetryModelPlugin = _ReflectAndRetryModelPlugin;
|
|
269
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
270
|
+
0 && (module.exports = {
|
|
271
|
+
ADK_HANDLE_MODEL_ERROR_TOOL_NAME,
|
|
272
|
+
RESERVED_TOOL_CALL_ERROR_TYPE,
|
|
273
|
+
ReflectAndRetryModelPlugin
|
|
274
|
+
});
|