@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,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { FinishReason, Part } from '@google/genai';
|
|
7
|
+
import { Context } from '../agents/context.js';
|
|
8
|
+
import { LlmRequest } from '../models/llm_request.js';
|
|
9
|
+
import { LlmResponse } from '../models/llm_response.js';
|
|
10
|
+
import { TrackingScope } from './_reflect_retry_utils.js';
|
|
11
|
+
import { BasePlugin } from './base_plugin.js';
|
|
12
|
+
export declare const RESERVED_TOOL_CALL_ERROR_TYPE = "RESERVED_TOOL_CALL";
|
|
13
|
+
export declare const ADK_HANDLE_MODEL_ERROR_TOOL_NAME = "adk_handle_model_error";
|
|
14
|
+
/**
|
|
15
|
+
* Options for configuring {@link ReflectAndRetryModelPlugin}.
|
|
16
|
+
*/
|
|
17
|
+
export interface ReflectAndRetryModelPluginOptions {
|
|
18
|
+
/** Plugin instance identifier. Defaults to 'reflect_retry_model_plugin'. */
|
|
19
|
+
name?: string;
|
|
20
|
+
/** Maximum consecutive model failures before giving up (0 = no retries). Defaults to 3. */
|
|
21
|
+
maxRetries?: number;
|
|
22
|
+
/** If true, raises the exception when retry limit is reached. If false, returns response. Defaults to true. */
|
|
23
|
+
throwExceptionIfRetryExceeded?: boolean;
|
|
24
|
+
/** Determines the lifecycle of the error tracking state. Defaults to TrackingScope.INVOCATION. */
|
|
25
|
+
trackingScope?: TrackingScope;
|
|
26
|
+
/** A list of FinishReasons that should be treated as model errors. Defaults to [FinishReason.MALFORMED_FUNCTION_CALL]. */
|
|
27
|
+
onModelErrors?: FinishReason[];
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Provides self-healing, concurrent-safe error recovery for model failures.
|
|
31
|
+
*
|
|
32
|
+
* This plugin intercepts model failures (such as `MALFORMED_FUNCTION_CALL`),
|
|
33
|
+
* provides structured guidance to the LLM for reflection and correction, and
|
|
34
|
+
* retries the turn up to a configurable limit.
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```typescript
|
|
38
|
+
* import {ReflectAndRetryModelPlugin, TrackingScope} from '@google/adk';
|
|
39
|
+
*
|
|
40
|
+
* const modelRetryPlugin = new ReflectAndRetryModelPlugin({
|
|
41
|
+
* maxRetries: 3,
|
|
42
|
+
* trackingScope: TrackingScope.INVOCATION,
|
|
43
|
+
* });
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
export declare class ReflectAndRetryModelPlugin extends BasePlugin {
|
|
47
|
+
readonly maxRetries: number;
|
|
48
|
+
readonly throwExceptionIfRetryExceeded: boolean;
|
|
49
|
+
readonly scope: TrackingScope;
|
|
50
|
+
readonly onModelErrors: FinishReason[];
|
|
51
|
+
private readonly tracker;
|
|
52
|
+
/**
|
|
53
|
+
* Initializes the {@link ReflectAndRetryModelPlugin}.
|
|
54
|
+
*
|
|
55
|
+
* @param options - Configuration options for the plugin.
|
|
56
|
+
*/
|
|
57
|
+
constructor(options?: ReflectAndRetryModelPluginOptions);
|
|
58
|
+
/**
|
|
59
|
+
* Internal framework reflection tool handler.
|
|
60
|
+
*/
|
|
61
|
+
adkHandleModelError({ retryCount, }: {
|
|
62
|
+
responseType?: string;
|
|
63
|
+
errorType?: string;
|
|
64
|
+
errorDetails?: string;
|
|
65
|
+
finishReason?: string;
|
|
66
|
+
retryCount?: number;
|
|
67
|
+
}): {
|
|
68
|
+
reflection_guidance: string;
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Checks if the model response contains an error matching `onModelErrors`.
|
|
72
|
+
*/
|
|
73
|
+
protected checkForModelError(llmResponse: LlmResponse): boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Retrieves the model name from context.
|
|
76
|
+
*/
|
|
77
|
+
protected getModelNameFromContext(callbackContext: Context): string;
|
|
78
|
+
/**
|
|
79
|
+
* Prepares the LLM request by attaching the reflection tool.
|
|
80
|
+
*/
|
|
81
|
+
beforeModelCallback({ llmRequest, }: {
|
|
82
|
+
callbackContext: Context;
|
|
83
|
+
llmRequest: LlmRequest;
|
|
84
|
+
}): Promise<LlmResponse | undefined>;
|
|
85
|
+
/**
|
|
86
|
+
* Inspects LLM responses, intercepts model errors or reserved tool calls, and handles retries.
|
|
87
|
+
*/
|
|
88
|
+
afterModelCallback({ callbackContext, llmResponse, }: {
|
|
89
|
+
callbackContext: Context;
|
|
90
|
+
llmResponse: LlmResponse;
|
|
91
|
+
}): Promise<LlmResponse | undefined>;
|
|
92
|
+
/**
|
|
93
|
+
* Provides the adk_handle_model_error tool for reflection and retries.
|
|
94
|
+
*/
|
|
95
|
+
protected provideReflectionTool(llmRequest: LlmRequest): void;
|
|
96
|
+
/**
|
|
97
|
+
* Checks if the model response calls the reserved reflection tool.
|
|
98
|
+
*/
|
|
99
|
+
protected hasReservedToolCall(llmResponse: LlmResponse): boolean;
|
|
100
|
+
/**
|
|
101
|
+
* Handles direct calls to the reserved reflection tool.
|
|
102
|
+
*/
|
|
103
|
+
protected handleReservedToolCall(callbackContext: Context, _llmResponse: LlmResponse): Promise<LlmResponse | undefined>;
|
|
104
|
+
/**
|
|
105
|
+
* Handles detected model errors by initiating retry logic.
|
|
106
|
+
*/
|
|
107
|
+
protected handleModelError(callbackContext: Context, llmResponse: LlmResponse): Promise<LlmResponse | undefined>;
|
|
108
|
+
/**
|
|
109
|
+
* Tracks retry count, generates retry response, and checks against limits.
|
|
110
|
+
*/
|
|
111
|
+
protected handleModelRetry(callbackContext: Context, errorType?: string, errorDetails?: string, finishReason?: FinishReason): Promise<LlmResponse | undefined>;
|
|
112
|
+
/**
|
|
113
|
+
* Generates a function call part for the model retry tool.
|
|
114
|
+
*/
|
|
115
|
+
protected generateModelRetryPart(retryCount: number, errorType?: string, errorDetails?: string, finishReason?: FinishReason): Part;
|
|
116
|
+
/**
|
|
117
|
+
* Generates a unique ID for the model retry tool call.
|
|
118
|
+
*/
|
|
119
|
+
protected getModelRetryUuid(): string;
|
|
120
|
+
/**
|
|
121
|
+
* Returns the scope key for model failure tracking.
|
|
122
|
+
*/
|
|
123
|
+
protected getModelScopeKey(callbackContext: Context): string;
|
|
124
|
+
/**
|
|
125
|
+
* Increment the failure count for a model within a scope.
|
|
126
|
+
*/
|
|
127
|
+
protected incrementModelFailureCount(scopeKey: string, itemName: string): Promise<number>;
|
|
128
|
+
/**
|
|
129
|
+
* Reset the failure count for a model within a scope.
|
|
130
|
+
*/
|
|
131
|
+
protected resetModelFailureCount(scopeKey: string, itemName: string): Promise<void>;
|
|
132
|
+
}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Context } from '../agents/context.js';
|
|
7
|
+
import { BaseTool } from '../tools/base_tool.js';
|
|
8
|
+
import { TrackingScope } from './_reflect_retry_utils.js';
|
|
9
|
+
import { BasePlugin } from './base_plugin.js';
|
|
10
|
+
/**
|
|
11
|
+
* Options for configuring {@link ReflectAndRetryToolPlugin}.
|
|
12
|
+
*/
|
|
13
|
+
export interface ReflectAndRetryToolPluginOptions {
|
|
14
|
+
/**
|
|
15
|
+
* Plugin instance identifier.
|
|
16
|
+
* Defaults to 'reflect_retry_tool_plugin'.
|
|
17
|
+
*/
|
|
18
|
+
name?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Maximum consecutive failures before giving up (0 = no retries).
|
|
21
|
+
* Defaults to 3.
|
|
22
|
+
*/
|
|
23
|
+
maxRetries?: number;
|
|
24
|
+
/**
|
|
25
|
+
* If true, raises the final exception when the retry limit is reached.
|
|
26
|
+
* If false, returns structured retry-exceeded guidance instead.
|
|
27
|
+
* Defaults to true.
|
|
28
|
+
*/
|
|
29
|
+
throwExceptionIfRetryExceeded?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Determines the lifecycle of the error tracking state.
|
|
32
|
+
* Defaults to `TrackingScope.INVOCATION` (tracking per-invocation).
|
|
33
|
+
*/
|
|
34
|
+
trackingScope?: TrackingScope;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Provides self-healing, concurrent-safe error recovery for tool failures.
|
|
38
|
+
*
|
|
39
|
+
* This plugin intercepts tool failures, provides structured guidance to the LLM
|
|
40
|
+
* for reflection and correction, and retries the operation up to a configurable
|
|
41
|
+
* limit.
|
|
42
|
+
*
|
|
43
|
+
* **Key Features:**
|
|
44
|
+
* - **Concurrency Safe:** Uses locking to safely handle parallel tool executions.
|
|
45
|
+
* - **Configurable Scope:** Tracks failures per-invocation (default) or globally
|
|
46
|
+
* using the {@link TrackingScope} enum.
|
|
47
|
+
* - **Extensible Scoping:** The `getScopeKey` method can be overridden to
|
|
48
|
+
* implement custom tracking logic (e.g., per-user or per-session).
|
|
49
|
+
* - **Granular Tracking:** Failure counts are tracked per-tool within the defined
|
|
50
|
+
* scope. A success with one tool resets its counter without affecting others.
|
|
51
|
+
* - **Custom Error Extraction:** Supports detecting errors in normal tool responses
|
|
52
|
+
* that do not throw exceptions, by overriding `extractErrorFromResult`.
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```typescript
|
|
56
|
+
* import {ReflectAndRetryToolPlugin, TrackingScope} from '@google/adk';
|
|
57
|
+
*
|
|
58
|
+
* // Example 1: Track failures per invocation (default)
|
|
59
|
+
* const errorPlugin = new ReflectAndRetryToolPlugin({maxRetries: 3});
|
|
60
|
+
*
|
|
61
|
+
* // Example 2: Track failures globally across all turns
|
|
62
|
+
* const globalPlugin = new ReflectAndRetryToolPlugin({
|
|
63
|
+
* maxRetries: 5,
|
|
64
|
+
* trackingScope: TrackingScope.GLOBAL,
|
|
65
|
+
* });
|
|
66
|
+
*
|
|
67
|
+
* // Example 3: Do not throw exception when retry limit is exceeded
|
|
68
|
+
* const softFailPlugin = new ReflectAndRetryToolPlugin({
|
|
69
|
+
* maxRetries: 3,
|
|
70
|
+
* throwExceptionIfRetryExceeded: false,
|
|
71
|
+
* });
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
export declare class ReflectAndRetryToolPlugin extends BasePlugin {
|
|
75
|
+
readonly maxRetries: number;
|
|
76
|
+
readonly throwExceptionIfRetryExceeded: boolean;
|
|
77
|
+
readonly scope: TrackingScope;
|
|
78
|
+
private readonly tracker;
|
|
79
|
+
/**
|
|
80
|
+
* Initializes the {@link ReflectAndRetryToolPlugin}.
|
|
81
|
+
*
|
|
82
|
+
* @param options - Configuration options for the plugin.
|
|
83
|
+
*/
|
|
84
|
+
constructor(options?: ReflectAndRetryToolPluginOptions);
|
|
85
|
+
/**
|
|
86
|
+
* Handles successful tool calls or extracts and processes errors.
|
|
87
|
+
*
|
|
88
|
+
* @param params - The tool callback parameters.
|
|
89
|
+
* @returns An optional record containing reflection guidance if an error is
|
|
90
|
+
* detected, or undefined if the tool call was successful or the response is
|
|
91
|
+
* already a reflection message.
|
|
92
|
+
*/
|
|
93
|
+
afterToolCallback({ tool, toolArgs, toolContext, result, }: {
|
|
94
|
+
tool: BaseTool;
|
|
95
|
+
toolArgs: Record<string, unknown>;
|
|
96
|
+
toolContext: Context;
|
|
97
|
+
result: Record<string, unknown>;
|
|
98
|
+
}): Promise<Record<string, unknown> | undefined>;
|
|
99
|
+
/**
|
|
100
|
+
* Extracts an error from a successful tool result and triggers retry logic.
|
|
101
|
+
*
|
|
102
|
+
* This is useful when a tool call finishes without throwing an exception but
|
|
103
|
+
* the result contains an error payload like `{status: 'error', message: '...'}`
|
|
104
|
+
* that should be handled by the plugin.
|
|
105
|
+
*
|
|
106
|
+
* @param params - Tool execution context and result.
|
|
107
|
+
* @returns The extracted error if any, or undefined if no error was detected.
|
|
108
|
+
*/
|
|
109
|
+
extractErrorFromResult(params: {
|
|
110
|
+
tool: BaseTool;
|
|
111
|
+
toolArgs: Record<string, unknown>;
|
|
112
|
+
toolContext: Context;
|
|
113
|
+
result: unknown;
|
|
114
|
+
}): Promise<unknown | undefined>;
|
|
115
|
+
/**
|
|
116
|
+
* Handles tool exceptions by providing reflection guidance.
|
|
117
|
+
*
|
|
118
|
+
* @param params - The error callback parameters.
|
|
119
|
+
* @returns An optional record containing reflection guidance for the error.
|
|
120
|
+
*/
|
|
121
|
+
onToolErrorCallback({ tool, toolArgs, toolContext, error, }: {
|
|
122
|
+
tool: BaseTool;
|
|
123
|
+
toolArgs: Record<string, unknown>;
|
|
124
|
+
toolContext: Context;
|
|
125
|
+
error: Error;
|
|
126
|
+
}): Promise<Record<string, unknown> | undefined>;
|
|
127
|
+
/**
|
|
128
|
+
* Central, thread-safe logic for processing tool errors.
|
|
129
|
+
*
|
|
130
|
+
* @param tool - The tool that was called.
|
|
131
|
+
* @param toolArgs - The arguments passed to the tool.
|
|
132
|
+
* @param toolContext - The context of the tool call.
|
|
133
|
+
* @param error - The error to be handled.
|
|
134
|
+
* @returns An optional record containing reflection guidance for the error.
|
|
135
|
+
*/
|
|
136
|
+
protected handleToolError(tool: BaseTool, toolArgs: Record<string, unknown>, toolContext: Context, error: unknown): Promise<Record<string, unknown> | undefined>;
|
|
137
|
+
/**
|
|
138
|
+
* Returns a unique key for the state tracker based on the configured scope.
|
|
139
|
+
*
|
|
140
|
+
* This method can be overridden in a subclass to implement custom scoping
|
|
141
|
+
* logic, for example tracking failures on a per-user or per-session basis.
|
|
142
|
+
*
|
|
143
|
+
* @param toolContext - The tool context.
|
|
144
|
+
* @returns The resolved scope key.
|
|
145
|
+
*/
|
|
146
|
+
protected getScopeKey(toolContext: Context): string;
|
|
147
|
+
/**
|
|
148
|
+
* Atomically resets the failure count for a tool and cleans up state.
|
|
149
|
+
*
|
|
150
|
+
* @param toolContext - The tool context.
|
|
151
|
+
* @param toolName - The name of the tool.
|
|
152
|
+
*/
|
|
153
|
+
protected resetFailuresForTool(toolContext: Context, toolName: string): Promise<void>;
|
|
154
|
+
/**
|
|
155
|
+
* Ensures the given error is an Error instance, wrapping if not.
|
|
156
|
+
*
|
|
157
|
+
* @param error - The error object.
|
|
158
|
+
* @returns An Error instance.
|
|
159
|
+
*/
|
|
160
|
+
protected ensureException(error: unknown): Error;
|
|
161
|
+
/**
|
|
162
|
+
* Formats error details for inclusion in the reflection message.
|
|
163
|
+
*
|
|
164
|
+
* @param error - The error object.
|
|
165
|
+
* @returns Formatted error string.
|
|
166
|
+
*/
|
|
167
|
+
protected formatErrorDetails(error: unknown): string;
|
|
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
|
+
protected createToolReflectionResponse(tool: BaseTool, toolArgs: Record<string, unknown>, error: unknown, retryCount: number): Record<string, unknown>;
|
|
178
|
+
/**
|
|
179
|
+
* Generates guidance when the maximum retry limit is exceeded.
|
|
180
|
+
*
|
|
181
|
+
* @param tool - The tool that failed.
|
|
182
|
+
* @param toolArgs - The arguments supplied to the tool.
|
|
183
|
+
* @param error - The error encountered.
|
|
184
|
+
* @returns The structured retry-exceeded failure response record.
|
|
185
|
+
*/
|
|
186
|
+
protected getToolRetryExceedMsg(tool: BaseTool, toolArgs: Record<string, unknown>, error: unknown): Record<string, unknown>;
|
|
187
|
+
}
|
|
@@ -10,6 +10,7 @@ import { RunConfig } from '../agents/run_config.js';
|
|
|
10
10
|
import { App } from '../apps/app.js';
|
|
11
11
|
import { ResumabilityConfig } from '../apps/resumability_config.js';
|
|
12
12
|
import { BaseArtifactService } from '../artifacts/base_artifact_service.js';
|
|
13
|
+
import { SessionArtifactService } from '../artifacts/session_artifact_service.js';
|
|
13
14
|
import { BaseCredentialService } from '../auth/credential_service/base_credential_service.js';
|
|
14
15
|
import { Event } from '../events/event.js';
|
|
15
16
|
import { BaseMemoryService } from '../memory/base_memory_service.js';
|
|
@@ -37,8 +38,7 @@ export interface RunnerConfig {
|
|
|
37
38
|
* A bare node — a `Workflow`, most usefully — is accepted as the root and
|
|
38
39
|
* driven directly, so a graph does not have to be wrapped by hand to be run.
|
|
39
40
|
* The accepted set is the one an edge takes: any other node-like value
|
|
40
|
-
* becomes the single node of a one-node workflow.
|
|
41
|
-
* `Runner.agent` is typed `BaseNode`.
|
|
41
|
+
* becomes the single node of a one-node workflow.
|
|
42
42
|
*/
|
|
43
43
|
agent?: RunnableNode;
|
|
44
44
|
/**
|
|
@@ -48,7 +48,7 @@ export interface RunnerConfig {
|
|
|
48
48
|
/**
|
|
49
49
|
* An optional service for storing and retrieving artifacts.
|
|
50
50
|
*/
|
|
51
|
-
artifactService?: BaseArtifactService;
|
|
51
|
+
artifactService?: BaseArtifactService | SessionArtifactService;
|
|
52
52
|
/**
|
|
53
53
|
* The service for managing sessions.
|
|
54
54
|
*/
|
|
@@ -111,7 +111,7 @@ export declare class Runner {
|
|
|
111
111
|
*/
|
|
112
112
|
readonly agent: RunnableRoot;
|
|
113
113
|
readonly pluginManager: PluginManager;
|
|
114
|
-
readonly artifactService?: BaseArtifactService;
|
|
114
|
+
readonly artifactService?: BaseArtifactService | SessionArtifactService;
|
|
115
115
|
readonly sessionService: BaseSessionService;
|
|
116
116
|
readonly memoryService?: BaseMemoryService;
|
|
117
117
|
readonly credentialService?: BaseCredentialService;
|
|
@@ -175,9 +175,8 @@ export declare class Runner {
|
|
|
175
175
|
* Saves artifacts from the message parts and replaces the inline data with
|
|
176
176
|
* a file name placeholder and optional file reference.
|
|
177
177
|
*
|
|
178
|
+
* @param artifactService The session-scoped artifact service to save to.
|
|
178
179
|
* @param invocationId The current invocation ID.
|
|
179
|
-
* @param userId The user ID of the session.
|
|
180
|
-
* @param sessionId The session ID of the session.
|
|
181
180
|
* @param message The message containing parts to process.
|
|
182
181
|
*/
|
|
183
182
|
private saveArtifacts;
|
|
@@ -194,7 +193,7 @@ export declare class Runner {
|
|
|
194
193
|
* Whether the agent to run can transfer to any other agent in the agent tree.
|
|
195
194
|
*
|
|
196
195
|
* @param agentToRun The agent to check for transferability.
|
|
197
|
-
* @returns True if the agent can transfer,
|
|
196
|
+
* @returns True if the agent can transfer, false otherwise.
|
|
198
197
|
*/
|
|
199
198
|
private isRoutableLlmAgent;
|
|
200
199
|
/**
|
|
@@ -242,7 +241,7 @@ export declare function determineAgentForResumption(session: Session, rootAgent:
|
|
|
242
241
|
* `disallowTransferToParent` set to false).
|
|
243
242
|
*
|
|
244
243
|
* @param agentToRun The agent to check for transferability.
|
|
245
|
-
* @returns True if the agent can transfer,
|
|
244
|
+
* @returns True if the agent can transfer, false otherwise.
|
|
246
245
|
*/
|
|
247
246
|
export declare function isRoutableLlmAgent(agentToRun: BaseAgent): boolean;
|
|
248
247
|
/**
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Copyright 2026 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
6
|
+
import type { MikroORMOptions as MikroDBOptions } from './db/operations.js';
|
|
7
7
|
import { Event } from '../events/event.js';
|
|
8
8
|
import { AppendEventRequest, BaseSessionService, CreateSessionRequest, DeleteSessionRequest, GetSessionRequest, ListSessionsRequest, ListSessionsResponse } from './base_session_service.js';
|
|
9
9
|
import { Session } from './session.js';
|
|
@@ -3,10 +3,22 @@
|
|
|
3
3
|
* Copyright 2026 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { MikroORM, Options
|
|
6
|
+
import type { MikroORM, Options } from '@mikro-orm/core';
|
|
7
|
+
/**
|
|
8
|
+
* The user-facing MikroORM config shape. Since v7 `Options` marks every key
|
|
9
|
+
* that has a default as required, so a partial config has to be described as
|
|
10
|
+
* `Partial<Options>`.
|
|
11
|
+
*/
|
|
12
|
+
export type MikroORMOptions = Partial<Options>;
|
|
7
13
|
/**
|
|
8
14
|
* Parses a database connection URI and returns MikroORM Options.
|
|
9
15
|
*
|
|
16
|
+
* Dialect drivers are imported dynamically so that installing `@google/adk`
|
|
17
|
+
* does not pull in five database drivers. Adding a dialect here therefore also
|
|
18
|
+
* means adding it to core's `peerDependencies` and to dev's `dependencies` (see
|
|
19
|
+
* "Dependency declarations" in CONTRIBUTING.md);
|
|
20
|
+
* `tests/integration/lazy_load_db_drivers/driver_manifest_test.ts` enforces it.
|
|
21
|
+
*
|
|
10
22
|
* @param uri The database connection URI (e.g., "postgres://user:password@host:port/database")
|
|
11
23
|
* @returns MikroORM Options configured for the database
|
|
12
24
|
* @throws Error if the URI is invalid or unsupported
|
|
@@ -3,38 +3,50 @@
|
|
|
3
3
|
* Copyright 2026 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
6
|
+
import { EntitySchema, type Opt, PrimaryKeyProp } from '@mikro-orm/core';
|
|
7
7
|
import { Event } from '../../events/event.js';
|
|
8
8
|
export declare const SCHEMA_VERSION_KEY = "schema_version";
|
|
9
9
|
export declare const SCHEMA_VERSION_1_JSON = "1";
|
|
10
10
|
export declare const STORAGE_KEY_COLUMN_LENGTH = 191;
|
|
11
|
+
/**
|
|
12
|
+
* Fractional-second digits requested for the stored event timestamp.
|
|
13
|
+
*
|
|
14
|
+
* MySQL and MariaDB round a `datetime` column to whole seconds unless a
|
|
15
|
+
* precision is given. That collapses events written in the same second onto one
|
|
16
|
+
* value and leaves their order undefined. Other backends are unaffected:
|
|
17
|
+
* PostgreSQL already defaults to six digits and SQLite ignores the precision.
|
|
18
|
+
*/
|
|
19
|
+
export declare const EVENT_TIMESTAMP_PRECISION = 6;
|
|
11
20
|
export declare class StorageMetadata {
|
|
12
21
|
key: string;
|
|
13
22
|
value: string;
|
|
14
23
|
}
|
|
24
|
+
export declare const storageMetadataSchema: EntitySchema<StorageMetadata, never, import("@mikro-orm/core").EntityCtor<StorageMetadata>>;
|
|
15
25
|
export declare class StorageAppState {
|
|
16
26
|
appName: string;
|
|
17
27
|
state: Record<string, unknown>;
|
|
18
|
-
updateTime: Date
|
|
28
|
+
updateTime: Opt<Date>;
|
|
19
29
|
}
|
|
30
|
+
export declare const storageAppStateSchema: EntitySchema<StorageAppState, never, import("@mikro-orm/core").EntityCtor<StorageAppState>>;
|
|
20
31
|
export declare class StorageUserState {
|
|
21
|
-
[PrimaryKey.name]?: [string, string] | undefined;
|
|
22
32
|
appName: string;
|
|
23
33
|
userId: string;
|
|
24
34
|
state: Record<string, unknown>;
|
|
25
|
-
updateTime: Date
|
|
35
|
+
updateTime: Opt<Date>;
|
|
36
|
+
[PrimaryKeyProp]?: ['appName', 'userId'];
|
|
26
37
|
}
|
|
38
|
+
export declare const storageUserStateSchema: EntitySchema<StorageUserState, never, import("@mikro-orm/core").EntityCtor<StorageUserState>>;
|
|
27
39
|
export declare class StorageSession {
|
|
28
|
-
[PrimaryKey.name]?: [string, string, string] | undefined;
|
|
29
40
|
id: string;
|
|
30
41
|
appName: string;
|
|
31
42
|
userId: string;
|
|
32
43
|
state: Record<string, unknown>;
|
|
33
|
-
createTime: Date
|
|
34
|
-
updateTime: Date
|
|
44
|
+
createTime: Opt<Date>;
|
|
45
|
+
updateTime: Opt<Date>;
|
|
46
|
+
[PrimaryKeyProp]?: ['id', 'appName', 'userId'];
|
|
35
47
|
}
|
|
48
|
+
export declare const storageSessionSchema: EntitySchema<StorageSession, never, import("@mikro-orm/core").EntityCtor<StorageSession>>;
|
|
36
49
|
export declare class StorageEvent {
|
|
37
|
-
[PrimaryKey.name]?: [string, string, string, string] | undefined;
|
|
38
50
|
id: string;
|
|
39
51
|
appName: string;
|
|
40
52
|
userId: string;
|
|
@@ -42,5 +54,7 @@ export declare class StorageEvent {
|
|
|
42
54
|
invocationId: string;
|
|
43
55
|
timestamp: Date;
|
|
44
56
|
eventData: Event;
|
|
57
|
+
[PrimaryKeyProp]?: ['id', 'appName', 'userId', 'sessionId'];
|
|
45
58
|
}
|
|
46
|
-
export declare const
|
|
59
|
+
export declare const storageEventSchema: EntitySchema<StorageEvent, never, import("@mikro-orm/core").EntityCtor<StorageEvent>>;
|
|
60
|
+
export declare const ENTITIES: (EntitySchema<StorageMetadata, never, import("@mikro-orm/core").EntityCtor<StorageMetadata>> | EntitySchema<StorageAppState, never, import("@mikro-orm/core").EntityCtor<StorageAppState>> | EntitySchema<StorageUserState, never, import("@mikro-orm/core").EntityCtor<StorageUserState>> | EntitySchema<StorageSession, never, import("@mikro-orm/core").EntityCtor<StorageSession>> | EntitySchema<StorageEvent, never, import("@mikro-orm/core").EntityCtor<StorageEvent>>)[];
|
|
@@ -26,4 +26,12 @@ export interface SkillRegistry {
|
|
|
26
26
|
* Returns the description for the search_skills tool.
|
|
27
27
|
*/
|
|
28
28
|
searchToolDescription?(): string | undefined;
|
|
29
|
+
/**
|
|
30
|
+
* Releases resources held by the registry, such as network clients or
|
|
31
|
+
* temporary credentials.
|
|
32
|
+
*
|
|
33
|
+
* Optional: registries that hold no resources may omit it. `SkillToolset`
|
|
34
|
+
* invokes it, when present, from its own `close()`.
|
|
35
|
+
*/
|
|
36
|
+
close?(): Promise<void>;
|
|
29
37
|
}
|
|
@@ -33,6 +33,17 @@ export interface BaseToolParams {
|
|
|
33
33
|
* Defined once and shared by all BaseTool instances.
|
|
34
34
|
*/
|
|
35
35
|
declare const BASE_TOOL_SIGNATURE_SYMBOL: unique symbol;
|
|
36
|
+
/**
|
|
37
|
+
* Marks a tool the model runs itself rather than the framework — see
|
|
38
|
+
* `BuiltInTool`. Such a tool claims its name in the `toolsDict` only so a
|
|
39
|
+
* function call naming it can be routed, so a genuinely callable tool of the
|
|
40
|
+
* same name takes precedence over it.
|
|
41
|
+
*/
|
|
42
|
+
export declare const IN_MODEL_TOOL_SYMBOL: unique symbol;
|
|
43
|
+
/**
|
|
44
|
+
* Whether `tool` is one the model runs itself.
|
|
45
|
+
*/
|
|
46
|
+
export declare function isInModelTool(tool: unknown): boolean;
|
|
36
47
|
/**
|
|
37
48
|
* Type guard to check if an object is an instance of BaseTool.
|
|
38
49
|
* @param obj The object to check.
|
|
@@ -65,10 +65,9 @@ export declare abstract class BaseToolset {
|
|
|
65
65
|
* process the llm request. e.g. ComputerUseToolset can add computer use
|
|
66
66
|
* tool to the llm request.
|
|
67
67
|
*
|
|
68
|
-
* @param
|
|
69
|
-
* @param
|
|
68
|
+
* @param _toolContext The context of the tool.
|
|
69
|
+
* @param _llmRequest The outgoing LLM request, mutable this method.
|
|
70
70
|
*/
|
|
71
|
-
processLlmRequest(
|
|
72
|
-
llmRequest: LlmRequest): Promise<void>;
|
|
71
|
+
processLlmRequest(_toolContext: Context, _llmRequest: LlmRequest): Promise<void>;
|
|
73
72
|
}
|
|
74
73
|
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { BaseTool, IN_MODEL_TOOL_SYMBOL, ToolProcessLlmRequest } from './base_tool.js';
|
|
7
|
+
/**
|
|
8
|
+
* A tool the model runs itself. It is switched on through request parameters
|
|
9
|
+
* — Google Search, URL context, the grounding and retrieval tools — and never
|
|
10
|
+
* executes here.
|
|
11
|
+
*
|
|
12
|
+
* Such a tool has no function declaration, so `BaseTool.processLlmRequest`
|
|
13
|
+
* returns before the line that registers it in `llmRequest.toolsDict`. That
|
|
14
|
+
* left the model primed with a name the framework could not route: a model
|
|
15
|
+
* that returns one as an explicit function call, rather than running it,
|
|
16
|
+
* produced a call that failed to resolve even though the user had registered
|
|
17
|
+
* the tool. Registering the name here keeps the call resolvable, and
|
|
18
|
+
* `runAsync` answers it by telling the model the tool is not callable.
|
|
19
|
+
*
|
|
20
|
+
* A tool whose `applyBuiltInConfig` returns without configuring anything —
|
|
21
|
+
* every one of them does when the request carries no model — still claims its
|
|
22
|
+
* name. That request never reaches a model, so no function call can come back
|
|
23
|
+
* for it and the registration is inert.
|
|
24
|
+
*/
|
|
25
|
+
export declare abstract class BuiltInTool extends BaseTool {
|
|
26
|
+
/** Marks this tool as one the model runs itself. */
|
|
27
|
+
readonly [IN_MODEL_TOOL_SYMBOL] = true;
|
|
28
|
+
/**
|
|
29
|
+
* Adds this tool's configuration to the request.
|
|
30
|
+
*
|
|
31
|
+
* @param request The request to process the LLM request.
|
|
32
|
+
*/
|
|
33
|
+
protected abstract applyBuiltInConfig(request: ToolProcessLlmRequest): Promise<void>;
|
|
34
|
+
processLlmRequest(request: ToolProcessLlmRequest): Promise<void>;
|
|
35
|
+
/**
|
|
36
|
+
* Answers a function call the model should not have made. The tool is
|
|
37
|
+
* already configured on the request and its results arrive as grounding
|
|
38
|
+
* metadata, so the model is told to use those rather than call again.
|
|
39
|
+
*/
|
|
40
|
+
runAsync(): Promise<unknown>;
|
|
41
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { LlmRequest } from '../models/llm_request.js';
|
|
2
|
-
import {
|
|
2
|
+
import { ToolProcessLlmRequest } from './base_tool.js';
|
|
3
|
+
import { BuiltInTool } from './built_in_tool.js';
|
|
3
4
|
/**
|
|
4
5
|
* Appends the Enterprise Web Search built-in tool to the LLM request when the
|
|
5
6
|
* target model supports it.
|
|
@@ -15,10 +16,9 @@ export declare function applyEnterpriseWebSearch(llmRequest: LlmRequest): void;
|
|
|
15
16
|
* This tool operates internally within the model and does not require or
|
|
16
17
|
* perform local code execution.
|
|
17
18
|
*/
|
|
18
|
-
export declare class EnterpriseWebSearchTool extends
|
|
19
|
+
export declare class EnterpriseWebSearchTool extends BuiltInTool {
|
|
19
20
|
constructor();
|
|
20
|
-
|
|
21
|
-
processLlmRequest({ llmRequest, }: ToolProcessLlmRequest): Promise<void>;
|
|
21
|
+
protected applyBuiltInConfig({ llmRequest, }: ToolProcessLlmRequest): Promise<void>;
|
|
22
22
|
}
|
|
23
23
|
/**
|
|
24
24
|
* A global instance of {@link EnterpriseWebSearchTool}.
|
|
@@ -4,21 +4,34 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { Part } from '@google/genai';
|
|
7
|
-
import { ArtifactVersion
|
|
7
|
+
import { ArtifactVersion } from '../artifacts/base_artifact_service.js';
|
|
8
|
+
import { SessionArtifactService, SessionLoadArtifactRequest, SessionSaveArtifactRequest } from '../artifacts/session_artifact_service.js';
|
|
8
9
|
import { Context } from '../agents/context.js';
|
|
10
|
+
/**
|
|
11
|
+
* A unique symbol to identify session-scoped artifact services.
|
|
12
|
+
*
|
|
13
|
+
* Resolves to the same symbol as the one used by `isSessionArtifactService` in
|
|
14
|
+
* `session_artifact_service.ts` because `Symbol.for` looks up the global
|
|
15
|
+
* symbol registry.
|
|
16
|
+
*/
|
|
17
|
+
declare const SESSION_ARTIFACT_SERVICE_SIGNATURE_SYMBOL: unique symbol;
|
|
9
18
|
/**
|
|
10
19
|
* Artifact service that forwards to the parent tool context.
|
|
11
20
|
*/
|
|
12
|
-
export declare class ForwardingArtifactService implements
|
|
21
|
+
export declare class ForwardingArtifactService implements SessionArtifactService {
|
|
13
22
|
private readonly toolContext;
|
|
14
|
-
|
|
23
|
+
/**
|
|
24
|
+
* Brands this class as a session-scoped artifact service.
|
|
25
|
+
*/
|
|
26
|
+
readonly [SESSION_ARTIFACT_SERVICE_SIGNATURE_SYMBOL] = true;
|
|
15
27
|
constructor(toolContext: Context);
|
|
16
|
-
saveArtifact(request:
|
|
17
|
-
loadArtifact(request:
|
|
18
|
-
listArtifactKeys(
|
|
28
|
+
saveArtifact(request: SessionSaveArtifactRequest): Promise<number>;
|
|
29
|
+
loadArtifact(request: SessionLoadArtifactRequest): Promise<Part | undefined>;
|
|
30
|
+
listArtifactKeys(): Promise<string[]>;
|
|
19
31
|
private getArtifactService;
|
|
20
|
-
deleteArtifact(
|
|
21
|
-
listVersions(
|
|
22
|
-
listArtifactVersions(
|
|
23
|
-
getArtifactVersion(request:
|
|
32
|
+
deleteArtifact(filename: string): Promise<void>;
|
|
33
|
+
listVersions(filename: string): Promise<number[]>;
|
|
34
|
+
listArtifactVersions(filename: string): Promise<ArtifactVersion[]>;
|
|
35
|
+
getArtifactVersion(request: SessionLoadArtifactRequest): Promise<ArtifactVersion | undefined>;
|
|
24
36
|
}
|
|
37
|
+
export {};
|