@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
|
@@ -29,11 +29,31 @@ export type ToolExecuteFunction<TParameters extends ToolInputParameters> = (inpu
|
|
|
29
29
|
export type RequireConfirmation<TParameters extends ToolInputParameters> = boolean | ((input: ToolExecuteArgument<TParameters>, toolContext?: Context) => boolean | Promise<boolean>);
|
|
30
30
|
/**
|
|
31
31
|
* The configuration options for creating a function-based tool.
|
|
32
|
-
* The `name`, `description` and `parameters` fields are used to generate the
|
|
33
|
-
* tool definition that is passed to the LLM prompt.
|
|
34
32
|
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
33
|
+
* What the model is shown about the tool is built from these options: `name`,
|
|
34
|
+
* `description` and the `parameters` schema become its function declaration.
|
|
35
|
+
* TypeScript types and JSDoc are erased at runtime and cannot be read back, so
|
|
36
|
+
* `description` is required and per-argument descriptions have to live in the
|
|
37
|
+
* schema — typically as Zod `.describe()` calls.
|
|
38
|
+
*
|
|
39
|
+
* ```ts
|
|
40
|
+
* new FunctionTool({
|
|
41
|
+
* name: 'get_weather',
|
|
42
|
+
* description: 'Returns the current weather for a city.',
|
|
43
|
+
* parameters: z.object({
|
|
44
|
+
* city: z.string().describe('City name, e.g. "San Francisco".'),
|
|
45
|
+
* }),
|
|
46
|
+
* execute: async ({city}) => fetchWeather(city),
|
|
47
|
+
* });
|
|
48
|
+
* ```
|
|
49
|
+
*
|
|
50
|
+
* A subclass may add to the declaration it derives from these options: given
|
|
51
|
+
* the identical options, {@link LongRunningFunctionTool} appends a sentence to
|
|
52
|
+
* `description` telling the model not to re-invoke a call that is still in
|
|
53
|
+
* flight.
|
|
54
|
+
*
|
|
55
|
+
* `parameters` is a description for the model, and only a Zod object schema is
|
|
56
|
+
* additionally enforced at call time — see {@link FunctionTool.runAsync}.
|
|
37
57
|
*/
|
|
38
58
|
export type ToolOptions<TParameters extends ToolInputParameters> = {
|
|
39
59
|
name?: string;
|
|
@@ -74,10 +94,20 @@ export declare function isFunctionTool(obj: unknown): obj is FunctionTool;
|
|
|
74
94
|
/**
|
|
75
95
|
* A tool that wraps a user-defined function, making it callable by an LLM.
|
|
76
96
|
*
|
|
77
|
-
* The
|
|
97
|
+
* The tool's name, description, and parameter schema are exposed to the
|
|
78
98
|
* model as a function declaration. When the model requests a call, the
|
|
79
|
-
* framework
|
|
80
|
-
*
|
|
99
|
+
* framework invokes the user-provided `execute` callback with the arguments
|
|
100
|
+
* the model produced.
|
|
101
|
+
*
|
|
102
|
+
* Those arguments are checked only when `parameters` is a Zod object schema:
|
|
103
|
+
* it is applied with `parse()`, so a call that does not match is rejected and
|
|
104
|
+
* `execute` receives the parsed value. Keys the schema does not declare are
|
|
105
|
+
* handled however that schema says: a plain `z.object()` drops them,
|
|
106
|
+
* `.passthrough()` forwards them, `.strict()` rejects the call. A plain
|
|
107
|
+
* genai `Schema`, or no `parameters` at all, is shown to the model but is not
|
|
108
|
+
* a runtime guard — the arguments reach `execute` exactly as the model
|
|
109
|
+
* produced them, wrong types and extra keys included. Validate them inside
|
|
110
|
+
* `execute` on that path.
|
|
81
111
|
*/
|
|
82
112
|
export declare class FunctionTool<TParameters extends ToolInputParameters = undefined> extends BaseTool {
|
|
83
113
|
/** A unique symbol to identify ADK function tool class. */
|
|
@@ -96,11 +126,14 @@ export declare class FunctionTool<TParameters extends ToolInputParameters = unde
|
|
|
96
126
|
*/
|
|
97
127
|
_getDeclaration(): FunctionDeclaration;
|
|
98
128
|
/**
|
|
99
|
-
*
|
|
100
|
-
*
|
|
129
|
+
* Invokes the user-defined `execute` function with the model-provided
|
|
130
|
+
* arguments, after parsing them when `parameters` is a Zod object schema.
|
|
131
|
+
* Any other `parameters` value is passed through unchecked.
|
|
101
132
|
*
|
|
102
133
|
* @param req The tool request containing arguments and tool context.
|
|
103
134
|
* @returns A promise resolving to the function's return value.
|
|
135
|
+
* @throws {Error} Wrapped as `Error in tool '<name>': …` when a Zod
|
|
136
|
+
* `parameters` schema rejects the arguments or `execute` throws.
|
|
104
137
|
*/
|
|
105
138
|
runAsync(req: RunAsyncToolRequest): Promise<unknown>;
|
|
106
139
|
/**
|
|
@@ -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
|
* Applies Google Maps grounding to the LLM request if supported.
|
|
5
6
|
*/
|
|
@@ -11,10 +12,9 @@ export declare function applyGoogleMapsGrounding(llmRequest: LlmRequest): void;
|
|
|
11
12
|
* This tool operates internally within the model and does not require or
|
|
12
13
|
* perform local code execution.
|
|
13
14
|
*/
|
|
14
|
-
export declare class GoogleMapsGroundingTool extends
|
|
15
|
+
export declare class GoogleMapsGroundingTool extends BuiltInTool {
|
|
15
16
|
constructor();
|
|
16
|
-
|
|
17
|
-
processLlmRequest({ llmRequest, }: ToolProcessLlmRequest): Promise<void>;
|
|
17
|
+
protected applyBuiltInConfig({ llmRequest, }: ToolProcessLlmRequest): Promise<void>;
|
|
18
18
|
}
|
|
19
19
|
/**
|
|
20
20
|
* A global instance of {@link GoogleMapsGroundingTool}.
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ToolProcessLlmRequest } from './base_tool.js';
|
|
2
|
+
import { BuiltInTool } from './built_in_tool.js';
|
|
2
3
|
/**
|
|
3
4
|
* A built-in tool that is automatically invoked by Gemini 2 models to retrieve
|
|
4
5
|
* search results from Google Search.
|
|
@@ -6,10 +7,9 @@ import { BaseTool, ToolProcessLlmRequest } from './base_tool.js';
|
|
|
6
7
|
* This tool operates internally within the model and does not require or
|
|
7
8
|
* perform local code execution.
|
|
8
9
|
*/
|
|
9
|
-
export declare class GoogleSearchTool extends
|
|
10
|
+
export declare class GoogleSearchTool extends BuiltInTool {
|
|
10
11
|
constructor();
|
|
11
|
-
|
|
12
|
-
processLlmRequest({ llmRequest, }: ToolProcessLlmRequest): Promise<void>;
|
|
12
|
+
protected applyBuiltInConfig({ llmRequest, }: ToolProcessLlmRequest): Promise<void>;
|
|
13
13
|
}
|
|
14
14
|
/**
|
|
15
15
|
* A global instance of {@link GoogleSearchTool}.
|
|
@@ -10,7 +10,7 @@ import { FunctionTool, ToolInputParameters, ToolOptions } from './function_tool.
|
|
|
10
10
|
* asynchronously.
|
|
11
11
|
*
|
|
12
12
|
* The framework invokes the user-provided function and delivers the response
|
|
13
|
-
* back to the model once it completes,
|
|
13
|
+
* back to the model once it completes, matched up by the function call's `id`.
|
|
14
14
|
* The model is also instructed not to re-invoke the tool while a call is
|
|
15
15
|
* already in flight.
|
|
16
16
|
*/
|
|
@@ -24,18 +24,19 @@ import { MCPConnectionParams } from './mcp_session_manager.js';
|
|
|
24
24
|
* LLM invokes the prefixed tool, this toolset transparently strips the prefix
|
|
25
25
|
* before sending the request to the underlying MCP server.
|
|
26
26
|
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```ts
|
|
29
|
+
* import {MCPToolset} from '@google/adk';
|
|
30
|
+
* import type {StreamableHTTPConnectionParams} from '@google/adk';
|
|
30
31
|
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
* const mcpToolset = new MCPToolset(connectionParams);
|
|
37
|
-
* const tools = await mcpToolset.getTools();
|
|
32
|
+
* const connectionParams: StreamableHTTPConnectionParams = {
|
|
33
|
+
* type: 'StreamableHTTPConnectionParams',
|
|
34
|
+
* url: 'http://localhost:8788/mcp',
|
|
35
|
+
* };
|
|
38
36
|
*
|
|
37
|
+
* const mcpToolset = new MCPToolset(connectionParams);
|
|
38
|
+
* const tools = await mcpToolset.getTools();
|
|
39
|
+
* ```
|
|
39
40
|
*/
|
|
40
41
|
export declare class MCPToolset extends BaseToolset {
|
|
41
42
|
private readonly mcpSessionManager;
|
|
@@ -4,15 +4,27 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { OpenAPIV3 } from 'openapi-types';
|
|
7
|
-
import { AuthCredential } from '../../../auth/auth_credential.js';
|
|
7
|
+
import { AuthCredential, ServiceAccount } from '../../../auth/auth_credential.js';
|
|
8
|
+
import { AuthScheme, OpenIdConnectWithConfig } from '../../../auth/auth_schemes.js';
|
|
9
|
+
import { ApiParameter } from '../openapi_spec_parser/operation_parser.js';
|
|
10
|
+
/**
|
|
11
|
+
* Prefix that marks a tool parameter as auth-injected rather than
|
|
12
|
+
* model-supplied.
|
|
13
|
+
*/
|
|
14
|
+
export declare const INTERNAL_AUTH_PREFIX = "_auth_prefix_vaf_";
|
|
8
15
|
/**
|
|
9
16
|
* Applies the given credential to the request headers and URL.
|
|
10
17
|
*
|
|
18
|
+
* An HTTP credential that carries no usable token throws, so the caller never
|
|
19
|
+
* sends an unauthenticated request in place of an authenticated one.
|
|
20
|
+
*
|
|
11
21
|
* @param url The target URL.
|
|
12
22
|
* @param headers The request headers.
|
|
13
23
|
* @param credential The auth credential.
|
|
14
24
|
* @param authScheme The auth scheme from OpenAPI spec.
|
|
15
25
|
* @returns The updated URL (if modified by query params).
|
|
26
|
+
* @throws {Error} If an HTTP credential holds basic credentials, or holds no
|
|
27
|
+
* credentials at all.
|
|
16
28
|
*/
|
|
17
29
|
export declare function applyCredential(url: string, headers: Record<string, string>, credential?: AuthCredential, authScheme?: OpenAPIV3.SecuritySchemeObject): string;
|
|
18
30
|
/**
|
|
@@ -23,3 +35,105 @@ export declare function createApiKeyScheme(name: string, inLocation: 'header' |
|
|
|
23
35
|
* Helper to create a simple Bearer Token auth scheme.
|
|
24
36
|
*/
|
|
25
37
|
export declare function createBearerScheme(): OpenAPIV3.SecuritySchemeObject;
|
|
38
|
+
/**
|
|
39
|
+
* Creates an AuthScheme and AuthCredential for an API key or a bearer token.
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* // API key in a header.
|
|
43
|
+
* const [scheme, credential] = tokenToSchemeCredential(
|
|
44
|
+
* 'apikey', 'header', 'X-API-Key', 'your_api_key_value');
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* // OAuth2 bearer token in the Authorization header.
|
|
48
|
+
* const [scheme, credential] = tokenToSchemeCredential(
|
|
49
|
+
* 'oauth2Token', 'header', 'Authorization', 'your_bearer_token_value');
|
|
50
|
+
*
|
|
51
|
+
* @param tokenType `'apikey'` or `'oauth2Token'`.
|
|
52
|
+
* @param location Where the API key travels. Ignored for `'oauth2Token'`,
|
|
53
|
+
* because a bearer token always travels in the Authorization header.
|
|
54
|
+
* @param name The name of the header, query parameter, or cookie.
|
|
55
|
+
* @param credentialValue The API key or token value. Omit it to build the
|
|
56
|
+
* scheme alone.
|
|
57
|
+
* @returns A `[scheme, credential]` pair. The credential is `undefined` when
|
|
58
|
+
* `credentialValue` is omitted.
|
|
59
|
+
* @throws Error For an unsupported token type or API key location.
|
|
60
|
+
*/
|
|
61
|
+
export declare function tokenToSchemeCredential(tokenType: 'apikey' | 'oauth2Token', location?: 'header' | 'query' | 'cookie', name?: string, credentialValue?: string): [AuthScheme, AuthCredential | undefined];
|
|
62
|
+
/**
|
|
63
|
+
* Creates a bearer scheme and a service-account credential from a raw Google
|
|
64
|
+
* service-account JSON object.
|
|
65
|
+
*
|
|
66
|
+
* @param config The parsed service-account key file.
|
|
67
|
+
* @param scopes The scopes to request.
|
|
68
|
+
* @returns A `[scheme, credential]` pair.
|
|
69
|
+
*/
|
|
70
|
+
export declare function serviceAccountDictToSchemeCredential(config: Record<string, unknown>, scopes: string[]): [AuthScheme, AuthCredential];
|
|
71
|
+
/**
|
|
72
|
+
* Creates a bearer scheme and a service-account credential from an already
|
|
73
|
+
* built `ServiceAccount`.
|
|
74
|
+
*
|
|
75
|
+
* @param config The service-account configuration.
|
|
76
|
+
* @returns A `[scheme, credential]` pair.
|
|
77
|
+
*/
|
|
78
|
+
export declare function serviceAccountSchemeCredential(config: ServiceAccount): [AuthScheme, AuthCredential];
|
|
79
|
+
/**
|
|
80
|
+
* Builds an OpenID Connect scheme and credential from a configuration object
|
|
81
|
+
* and a client-secret object.
|
|
82
|
+
*
|
|
83
|
+
* @param configDict An OpenID Connect configuration. Snake_case keys, as a
|
|
84
|
+
* discovery document delivers them, are accepted and normalized.
|
|
85
|
+
* @param scopes The scopes to request.
|
|
86
|
+
* @param credentialDict The Google OAuth client secret. Its keys stay
|
|
87
|
+
* snake_case, because it is an on-disk wire format. A `{web: {…}}` or
|
|
88
|
+
* `{installed: {…}}` wrapper is unwrapped.
|
|
89
|
+
* @returns A `[scheme, credential]` pair.
|
|
90
|
+
* @throws Error When the configuration or the client secret is incomplete.
|
|
91
|
+
*/
|
|
92
|
+
export declare function openidDictToSchemeCredential(configDict: Record<string, unknown>, scopes: string[], credentialDict: Record<string, unknown>): [OpenIdConnectWithConfig, AuthCredential];
|
|
93
|
+
/**
|
|
94
|
+
* Fetches an OpenID Connect discovery document and pairs it with a client
|
|
95
|
+
* secret.
|
|
96
|
+
*
|
|
97
|
+
* The URL is used as given. A caller that accepts it from an untrusted source
|
|
98
|
+
* has to validate it first, because this function performs the request.
|
|
99
|
+
*
|
|
100
|
+
* @param openidUrl The OpenID Connect discovery URL.
|
|
101
|
+
* @param scopes The scopes to request.
|
|
102
|
+
* @param credentialDict The Google OAuth client secret, keyed snake_case.
|
|
103
|
+
* @returns A `[scheme, credential]` pair.
|
|
104
|
+
* @throws Error When the request fails, the body is not a JSON object, or the
|
|
105
|
+
* configuration is incomplete.
|
|
106
|
+
*/
|
|
107
|
+
export declare function openidUrlToSchemeCredential(openidUrl: string, scopes: string[], credentialDict: Record<string, unknown>): Promise<[OpenIdConnectWithConfig, AuthCredential]>;
|
|
108
|
+
/**
|
|
109
|
+
* Converts a scheme and credential into the tool parameter that carries the
|
|
110
|
+
* credential, plus the value to send for it.
|
|
111
|
+
*
|
|
112
|
+
* Service-account, OAuth2, and OpenID Connect credentials reach this function
|
|
113
|
+
* already exchanged for a bearer token, so they take the HTTP branch.
|
|
114
|
+
*
|
|
115
|
+
* @param authScheme The auth scheme.
|
|
116
|
+
* @param authCredential The auth credential.
|
|
117
|
+
* @returns A `[parameter, values]` pair, both `undefined` when the credential
|
|
118
|
+
* carries nothing to send.
|
|
119
|
+
* @throws Error For basic authentication, which is not supported, and for a
|
|
120
|
+
* scheme and credential combination that cannot be expressed as a parameter.
|
|
121
|
+
*/
|
|
122
|
+
export declare function credentialToParam(authScheme: AuthScheme, authCredential?: AuthCredential): [ApiParameter | undefined, Record<string, string> | undefined];
|
|
123
|
+
/**
|
|
124
|
+
* Converts a security scheme object out of an OpenAPI document into an
|
|
125
|
+
* `AuthScheme`.
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* const scheme = dictToAuthScheme({
|
|
129
|
+
* type: 'apiKey',
|
|
130
|
+
* in: 'header',
|
|
131
|
+
* name: 'X-API-Key',
|
|
132
|
+
* });
|
|
133
|
+
*
|
|
134
|
+
* @param data The security scheme object.
|
|
135
|
+
* @returns The validated auth scheme.
|
|
136
|
+
* @throws Error When `type` is missing or unrecognised, or the rest of the
|
|
137
|
+
* object does not match the shape that type requires.
|
|
138
|
+
*/
|
|
139
|
+
export declare function dictToAuthScheme(data: Record<string, unknown>): AuthScheme;
|
package/dist/types/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.d.ts
CHANGED
|
@@ -3,18 +3,47 @@
|
|
|
3
3
|
* Copyright 2026 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { AuthCredential } from '../../../../auth/auth_credential.js';
|
|
6
|
+
import { AuthCredential, AuthCredentialTypes } from '../../../../auth/auth_credential.js';
|
|
7
7
|
import { AuthScheme } from '../../../../auth/auth_schemes.js';
|
|
8
8
|
import { BaseCredentialExchanger, ExchangeResult } from '../../../../auth/exchanger/base_credential_exchanger.js';
|
|
9
|
+
/**
|
|
10
|
+
* A map from auth credential type to the exchanger that handles it, merged
|
|
11
|
+
* over the built-in defaults.
|
|
12
|
+
*/
|
|
13
|
+
export type CustomCredentialExchangers = Partial<Record<AuthCredentialTypes, BaseCredentialExchanger>>;
|
|
9
14
|
/**
|
|
10
15
|
* Automatically selects the appropriate credential exchanger based on the auth scheme.
|
|
11
16
|
* Ported from Python implementation.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* // Common case: a built-in exchanger handles the credential.
|
|
20
|
+
* const exchanger = new AutoAuthCredentialExchanger();
|
|
21
|
+
* const result = await exchanger.exchange({
|
|
22
|
+
* authScheme: serviceAccountScheme,
|
|
23
|
+
* authCredential: serviceAccountCredential,
|
|
24
|
+
* });
|
|
25
|
+
* // result.credential carries an OAuth token as a bearer token.
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* // Use CustomAuthExchanger for OAuth2 instead of the built-in exchanger.
|
|
29
|
+
* const exchanger = new AutoAuthCredentialExchanger({
|
|
30
|
+
* [AuthCredentialTypes.OAUTH2]: new CustomAuthExchanger(),
|
|
31
|
+
* });
|
|
12
32
|
*/
|
|
13
33
|
export declare class AutoAuthCredentialExchanger implements BaseCredentialExchanger {
|
|
14
34
|
private exchangers;
|
|
15
|
-
|
|
35
|
+
/**
|
|
36
|
+
* @param customExchangers - Optional exchangers that add to or override the
|
|
37
|
+
* built-in ones. The key is the auth credential type; the value is the
|
|
38
|
+
* exchanger instance to use for that type.
|
|
39
|
+
*/
|
|
40
|
+
constructor(customExchangers?: CustomCredentialExchangers);
|
|
16
41
|
exchange(params: {
|
|
17
42
|
authScheme?: AuthScheme;
|
|
18
43
|
authCredential: AuthCredential;
|
|
19
44
|
}): Promise<ExchangeResult>;
|
|
45
|
+
exchange(params: {
|
|
46
|
+
authScheme?: AuthScheme;
|
|
47
|
+
authCredential?: AuthCredential;
|
|
48
|
+
}): Promise<ExchangeResult | null>;
|
|
20
49
|
}
|
package/dist/types/tools/openapi_tool/auth/credential_exchangers/base_auth_credential_exchanger.d.ts
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { AuthCredential } from '../../../../auth/auth_credential.js';
|
|
7
|
+
import { AuthScheme } from '../../../../auth/auth_schemes.js';
|
|
8
|
+
/**
|
|
9
|
+
* Error raised when a required authentication credential is missing.
|
|
10
|
+
*/
|
|
11
|
+
export declare class AuthCredentialMissingError extends Error {
|
|
12
|
+
constructor(message: string);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Base class for authentication credential exchangers.
|
|
16
|
+
*
|
|
17
|
+
* A subclass exchanges the credential an OpenAPI tool was configured with for
|
|
18
|
+
* one that can be sent to the API. The base implementation always throws, so a
|
|
19
|
+
* subclass that forgets to override the method fails on the first call rather
|
|
20
|
+
* than silently returning nothing.
|
|
21
|
+
*/
|
|
22
|
+
export declare class BaseAuthCredentialExchanger {
|
|
23
|
+
/**
|
|
24
|
+
* Exchanges the provided authentication credential for a usable
|
|
25
|
+
* token or credential.
|
|
26
|
+
*
|
|
27
|
+
* @param _authScheme The security scheme.
|
|
28
|
+
* @param _authCredential The authentication credential.
|
|
29
|
+
* @returns An updated AuthCredential object containing the fetched
|
|
30
|
+
* credential. For simple schemes like API key, it may return the original
|
|
31
|
+
* credential if no exchange is needed.
|
|
32
|
+
* @throws {Error} If the method is not implemented by a subclass.
|
|
33
|
+
*/
|
|
34
|
+
exchangeCredential(_authScheme: AuthScheme, _authCredential?: AuthCredential): AuthCredential;
|
|
35
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { AuthCredential } from '../../../../auth/auth_credential.js';
|
|
7
|
+
import { AuthScheme } from '../../../../auth/auth_schemes.js';
|
|
8
|
+
import { BaseCredentialExchanger, ExchangeResult } from '../../../../auth/exchanger/base_credential_exchanger.js';
|
|
9
|
+
/**
|
|
10
|
+
* Validates that the scheme and the credential can produce a bearer token.
|
|
11
|
+
*
|
|
12
|
+
* @param authScheme - The OpenID Connect or OAuth2 auth scheme.
|
|
13
|
+
* @param authCredential - The auth credential to validate.
|
|
14
|
+
* @throws Error - If the credential is absent, the scheme is
|
|
15
|
+
* not OpenID Connect or OAuth2, or the credential carries neither `oauth2`
|
|
16
|
+
* nor `http`.
|
|
17
|
+
*/
|
|
18
|
+
export declare function checkSchemeCredentialType(authScheme: AuthScheme, authCredential?: AuthCredential): asserts authCredential is AuthCredential;
|
|
19
|
+
/**
|
|
20
|
+
* Converts an OAuth2 access token into an HTTP bearer credential.
|
|
21
|
+
*
|
|
22
|
+
* @param authCredential - The auth credential holding the access token.
|
|
23
|
+
* @returns A new credential holding the access token as an HTTP bearer token,
|
|
24
|
+
* or the original credential when there is no access token to convert. The
|
|
25
|
+
* input credential is never modified.
|
|
26
|
+
*/
|
|
27
|
+
export declare function generateAuthToken(authCredential: AuthCredential): AuthCredential;
|
|
28
|
+
/**
|
|
29
|
+
* Exchanges an OAuth2 or OpenID Connect credential for an HTTP bearer one.
|
|
30
|
+
*
|
|
31
|
+
* @param authScheme - The auth scheme.
|
|
32
|
+
* @param authCredential - The auth credential.
|
|
33
|
+
* @returns The credential unchanged when it already carries `http`, a new HTTP
|
|
34
|
+
* bearer credential when it carries an access token, or `null` when there
|
|
35
|
+
* is no token to convert.
|
|
36
|
+
* @throws Error - If the scheme or the credential is invalid.
|
|
37
|
+
*/
|
|
38
|
+
export declare function exchangeCredential(authScheme: AuthScheme, authCredential?: AuthCredential): AuthCredential | null;
|
|
39
|
+
/**
|
|
40
|
+
* Converts OAuth2 and OpenID Connect credentials into HTTP bearer credentials.
|
|
41
|
+
*
|
|
42
|
+
* Ports `OAuth2CredentialExchanger` from adk-python
|
|
43
|
+
* `src/google/adk/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.py`
|
|
44
|
+
* at tag `v0.1.0`. The adk-js class carries a different name because
|
|
45
|
+
* `OAuth2CredentialExchanger` in `core/src/auth/oauth2/` already owns that one,
|
|
46
|
+
* and it solves a different problem: it fetches tokens from the token endpoint,
|
|
47
|
+
* where this class converts a token it is given.
|
|
48
|
+
*/
|
|
49
|
+
export declare class OAuth2BearerExchanger implements BaseCredentialExchanger {
|
|
50
|
+
exchange(params: {
|
|
51
|
+
authScheme?: AuthScheme;
|
|
52
|
+
authCredential: AuthCredential;
|
|
53
|
+
}): Promise<ExchangeResult>;
|
|
54
|
+
}
|
package/dist/types/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.d.ts
CHANGED
|
@@ -8,7 +8,6 @@ import { AuthScheme } from '../../../../auth/auth_schemes.js';
|
|
|
8
8
|
import { BaseCredentialExchanger, ExchangeResult } from '../../../../auth/exchanger/base_credential_exchanger.js';
|
|
9
9
|
/**
|
|
10
10
|
* Fetches credentials for Google Service Account.
|
|
11
|
-
* Ported from Python implementation.
|
|
12
11
|
*/
|
|
13
12
|
export declare class ServiceAccountCredentialExchanger implements BaseCredentialExchanger {
|
|
14
13
|
exchange(params: {
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { OpenAPIV3 } from 'openapi-types';
|
|
7
|
+
import { ApiParameter } from '../openapi_spec_parser/operation_parser.js';
|
|
8
|
+
/**
|
|
9
|
+
* The type hints these helpers emit are Python tokens, in a TypeScript SDK,
|
|
10
|
+
* on purpose. They are assembled into a tool description that reaches the
|
|
11
|
+
* model, so the same OpenAPI operation has to describe itself identically in
|
|
12
|
+
* adk-js and in adk-python. The reference is adk-python
|
|
13
|
+
* `src/google/adk/tools/openapi_tool/common/common.py`.
|
|
14
|
+
*/
|
|
15
|
+
/** Input to {@link createApiParameter}; `name` is derived when omitted. */
|
|
16
|
+
export interface ApiParameterInit {
|
|
17
|
+
originalName: string;
|
|
18
|
+
paramLocation: string;
|
|
19
|
+
paramSchema: OpenAPIV3.SchemaObject;
|
|
20
|
+
description?: string;
|
|
21
|
+
name?: string;
|
|
22
|
+
required?: boolean;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Returns the Python type hint for an OpenAPI schema.
|
|
26
|
+
*
|
|
27
|
+
* @param schema The schema to describe, if any.
|
|
28
|
+
* @returns A Python type name such as `str`, `List[int]` or `Dict[str, Any]`.
|
|
29
|
+
* A missing or unrecognised type gives `Any`.
|
|
30
|
+
*/
|
|
31
|
+
export declare function getTypeHint(schema: OpenAPIV3.SchemaObject | undefined): string;
|
|
32
|
+
/**
|
|
33
|
+
* Generates the docstring line documenting one parameter.
|
|
34
|
+
*
|
|
35
|
+
* @param param The parameter to document.
|
|
36
|
+
* @returns A line of the form `name (type): description`, followed by an
|
|
37
|
+
* indented property list when the schema is an object with properties.
|
|
38
|
+
*/
|
|
39
|
+
export declare function generateParamDoc(param: ApiParameter): string;
|
|
40
|
+
/**
|
|
41
|
+
* Generates the docstring block documenting the return value.
|
|
42
|
+
*
|
|
43
|
+
* Uses the 2xx response with the smallest status code that has content.
|
|
44
|
+
*
|
|
45
|
+
* @param responses The responses of an OpenAPI operation.
|
|
46
|
+
* @returns A line of the form `Returns (type): description`, or `''` when no
|
|
47
|
+
* 2xx response has content.
|
|
48
|
+
*/
|
|
49
|
+
export declare function generateReturnDoc(responses: OpenAPIV3.ResponsesObject): string;
|
|
50
|
+
/**
|
|
51
|
+
* Builds an {@link ApiParameter}, deriving the fields adk-python derives in
|
|
52
|
+
* `ApiParameter.model_post_init`.
|
|
53
|
+
*
|
|
54
|
+
* `name` falls back to the reserved-word-safe snake_case form of
|
|
55
|
+
* `originalName`, and `description` falls back to the schema description.
|
|
56
|
+
*
|
|
57
|
+
* @param init The parameter fields.
|
|
58
|
+
* @returns The parameter with its derived fields filled in.
|
|
59
|
+
*/
|
|
60
|
+
export declare function createApiParameter(init: ApiParameterInit): ApiParameter;
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { OpenAPIV3 } from 'openapi-types';
|
|
7
|
+
import { AuthCredential } from '../../../auth/auth_credential.js';
|
|
7
8
|
import { ApiParameter } from './operation_parser.js';
|
|
8
9
|
export interface OperationEndpoint {
|
|
9
10
|
baseUrl: string;
|
|
@@ -18,6 +19,12 @@ export interface ParsedOperation {
|
|
|
18
19
|
parameters: ApiParameter[];
|
|
19
20
|
returnValue?: ApiParameter;
|
|
20
21
|
authScheme?: OpenAPIV3.SecuritySchemeObject;
|
|
22
|
+
/**
|
|
23
|
+
* Credential for the operation. The parser leaves this undefined; a caller
|
|
24
|
+
* that builds a `ParsedOperation` by hand can set it, and `OpenAPIToolset`
|
|
25
|
+
* passes it to the tool it creates.
|
|
26
|
+
*/
|
|
27
|
+
authCredential?: AuthCredential;
|
|
21
28
|
}
|
|
22
29
|
export declare class OpenApiSpecParser {
|
|
23
30
|
private preservePropertyNames;
|
|
@@ -19,13 +19,32 @@ export interface ApiParameter {
|
|
|
19
19
|
* that are compatible with Gemini's tool function declarations.
|
|
20
20
|
*/
|
|
21
21
|
export declare class OperationParser {
|
|
22
|
-
private readonly operation;
|
|
23
22
|
private params;
|
|
24
23
|
private returnValue?;
|
|
25
24
|
private preservePropertyNames;
|
|
26
|
-
|
|
25
|
+
private readonly operation;
|
|
26
|
+
/**
|
|
27
|
+
* @param operation The operation to parse. A string is parsed as JSON, and a
|
|
28
|
+
* plain object is used as given.
|
|
29
|
+
* @param options.preservePropertyNames Keeps the original parameter and
|
|
30
|
+
* function names instead of converting them to snake_case.
|
|
31
|
+
* @param options.shouldParse Whether to parse the operation during
|
|
32
|
+
* construction. Defaults to `true`.
|
|
33
|
+
*/
|
|
34
|
+
constructor(operation: OpenAPIV3.OperationObject | Record<string, unknown> | string, options?: {
|
|
27
35
|
preservePropertyNames?: boolean;
|
|
36
|
+
shouldParse?: boolean;
|
|
28
37
|
});
|
|
38
|
+
/**
|
|
39
|
+
* Builds a parser from parameters that were already parsed, without walking
|
|
40
|
+
* the operation again.
|
|
41
|
+
*
|
|
42
|
+
* @param operation The operation the parameters came from.
|
|
43
|
+
* @param params The parsed parameters.
|
|
44
|
+
* @param returnValue The parsed return value, if any.
|
|
45
|
+
* @returns A parser holding the given parameters.
|
|
46
|
+
*/
|
|
47
|
+
static load(operation: OpenAPIV3.OperationObject | Record<string, unknown> | string, params: ApiParameter[], returnValue?: ApiParameter): OperationParser;
|
|
29
48
|
private getParamName;
|
|
30
49
|
private processOperationParameters;
|
|
31
50
|
private processRequestBody;
|
|
@@ -56,4 +75,39 @@ export declare class OperationParser {
|
|
|
56
75
|
* @returns A string representing the description.
|
|
57
76
|
*/
|
|
58
77
|
getDescription(): string;
|
|
78
|
+
/**
|
|
79
|
+
* Gets the name of the security scheme this operation declares.
|
|
80
|
+
*
|
|
81
|
+
* Only operation-level security is considered. Document-level security is
|
|
82
|
+
* not visible from here, so a caller that needs the fallback uses
|
|
83
|
+
* `OpenApiSpecParser` instead.
|
|
84
|
+
*
|
|
85
|
+
* @returns The first declared scheme name, or `''` when the operation
|
|
86
|
+
* declares none.
|
|
87
|
+
*/
|
|
88
|
+
getAuthSchemeName(): string;
|
|
89
|
+
/**
|
|
90
|
+
* Gets the parsed return value of the operation.
|
|
91
|
+
*
|
|
92
|
+
* @returns The return value, or `undefined` when the parser was constructed
|
|
93
|
+
* with `shouldParse: false` and nothing was loaded.
|
|
94
|
+
*/
|
|
95
|
+
getReturnValue(): ApiParameter | undefined;
|
|
96
|
+
/**
|
|
97
|
+
* Gets the Python-style type hint of the return value.
|
|
98
|
+
*
|
|
99
|
+
* @returns A type name such as `str`, or `Any` when the operation declares
|
|
100
|
+
* no typed 2xx response.
|
|
101
|
+
*/
|
|
102
|
+
getReturnTypeHint(): string;
|
|
103
|
+
/**
|
|
104
|
+
* Generates a Python-style docstring describing the operation, every
|
|
105
|
+
* parameter and the return value.
|
|
106
|
+
*
|
|
107
|
+
* The type names inside it are Python's, because the artifact is a docstring
|
|
108
|
+
* in adk-python's format and the same text reaches the model in both SDKs.
|
|
109
|
+
*
|
|
110
|
+
* @returns The generated docstring.
|
|
111
|
+
*/
|
|
112
|
+
getPydocString(): string;
|
|
59
113
|
}
|