@softactivate/adk 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/README.md +3 -0
- package/dist/cjs/a2a/a2a_event.js +317 -0
- package/dist/cjs/a2a/a2a_remote_agent.js +179 -0
- package/dist/cjs/a2a/a2a_remote_agent_run_processor.js +205 -0
- package/dist/cjs/a2a/a2a_remote_agent_utils.js +165 -0
- package/dist/cjs/a2a/agent_card.js +380 -0
- package/dist/cjs/a2a/agent_executor.js +221 -0
- package/dist/cjs/a2a/agent_to_a2a.js +115 -0
- package/dist/cjs/a2a/event_converter_utils.js +201 -0
- package/dist/cjs/a2a/event_processor_utils.js +180 -0
- package/dist/cjs/a2a/executor_context.js +53 -0
- package/dist/cjs/a2a/metadata_converter_utils.js +126 -0
- package/dist/cjs/a2a/part_converter_utils.js +223 -0
- package/dist/cjs/agents/active_streaming_tool.js +44 -0
- package/dist/cjs/agents/base_agent.js +294 -0
- package/dist/cjs/agents/context.js +180 -0
- package/dist/cjs/agents/functions.js +525 -0
- package/dist/cjs/agents/instructions.js +110 -0
- package/dist/cjs/agents/invocation_context.js +110 -0
- package/dist/cjs/agents/live_request_queue.js +136 -0
- package/dist/cjs/agents/llm_agent.js +722 -0
- package/dist/cjs/agents/loop_agent.js +84 -0
- package/dist/cjs/agents/parallel_agent.js +95 -0
- package/dist/cjs/agents/processors/agent_transfer_llm_request_processor.js +132 -0
- package/dist/cjs/agents/processors/base_llm_processor.js +44 -0
- package/dist/cjs/agents/processors/basic_llm_request_processor.js +68 -0
- package/dist/cjs/agents/processors/code_execution_request_processor.js +391 -0
- package/dist/cjs/agents/processors/content_processor_utils.js +338 -0
- package/dist/cjs/agents/processors/content_request_processor.js +87 -0
- package/dist/cjs/agents/processors/context_compactor_request_processor.js +70 -0
- package/dist/cjs/agents/processors/identity_llm_request_processor.js +54 -0
- package/dist/cjs/agents/processors/instructions_llm_request_processor.js +85 -0
- package/dist/cjs/agents/processors/request_confirmation_llm_request_processor.js +165 -0
- package/dist/cjs/agents/processors/tool_filter_request_processor.js +73 -0
- package/dist/cjs/agents/readonly_context.js +83 -0
- package/dist/cjs/agents/routed_agent.js +97 -0
- package/dist/cjs/agents/run_config.js +71 -0
- package/dist/cjs/agents/sequential_agent.js +106 -0
- package/dist/cjs/agents/transcription_entry.js +27 -0
- package/dist/cjs/artifacts/base_artifact_service.js +27 -0
- package/dist/cjs/artifacts/file_artifact_service.js +522 -0
- package/dist/cjs/artifacts/gcs_artifact_service.js +227 -0
- package/dist/cjs/artifacts/in_memory_artifact_service.js +181 -0
- package/dist/cjs/artifacts/registry.js +55 -0
- package/dist/cjs/auth/auth_credential.js +46 -0
- package/dist/cjs/auth/auth_handler.js +159 -0
- package/dist/cjs/auth/auth_preprocessor.js +178 -0
- package/dist/cjs/auth/auth_provider_registry.js +61 -0
- package/dist/cjs/auth/auth_schemes.js +62 -0
- package/dist/cjs/auth/auth_tool.js +27 -0
- package/dist/cjs/auth/base_auth_provider.js +27 -0
- package/dist/cjs/auth/credential_service/base_credential_service.js +27 -0
- package/dist/cjs/auth/credential_service/in_memory_credential_service.js +63 -0
- package/dist/cjs/auth/credential_service/session_state_credential_service.js +51 -0
- package/dist/cjs/auth/exchanger/base_credential_exchanger.js +40 -0
- package/dist/cjs/auth/exchanger/credential_exchanger_registry.js +59 -0
- package/dist/cjs/auth/oauth2/oauth2_credential_exchanger.js +198 -0
- package/dist/cjs/auth/oauth2/oauth2_credential_refresher.js +109 -0
- package/dist/cjs/auth/oauth2/oauth2_discovery.js +186 -0
- package/dist/cjs/auth/oauth2/oauth2_utils.js +119 -0
- package/dist/cjs/auth/refresher/base_credential_refresher.js +44 -0
- package/dist/cjs/auth/refresher/credential_refresher_registry.js +68 -0
- package/dist/cjs/code_executors/base_code_executor.js +92 -0
- package/dist/cjs/code_executors/built_in_code_executor.js +74 -0
- package/dist/cjs/code_executors/code_execution_utils.js +161 -0
- package/dist/cjs/code_executors/code_executor_context.js +198 -0
- package/dist/cjs/code_executors/unsafe_local_code_executor.js +241 -0
- package/dist/cjs/common.js +362 -0
- package/dist/cjs/context/base_context_compactor.js +27 -0
- package/dist/cjs/context/summarizers/base_summarizer.js +27 -0
- package/dist/cjs/context/summarizers/llm_summarizer.js +93 -0
- package/dist/cjs/context/token_based_context_compactor.js +135 -0
- package/dist/cjs/context/truncating_context_compactor.js +58 -0
- package/dist/cjs/events/compacted_event.js +53 -0
- package/dist/cjs/events/event.js +146 -0
- package/dist/cjs/events/event_actions.js +83 -0
- package/dist/cjs/events/structured_events.js +105 -0
- package/dist/cjs/examples/base_example_provider.js +56 -0
- package/dist/cjs/examples/example.js +27 -0
- package/dist/cjs/examples/example_util.js +107 -0
- package/dist/cjs/features/feature_registry.js +141 -0
- package/dist/cjs/index.js +94 -0
- package/dist/cjs/index_web.js +33 -0
- package/dist/cjs/memory/base_memory_service.js +27 -0
- package/dist/cjs/memory/in_memory_memory_service.js +99 -0
- package/dist/cjs/memory/memory_entry.js +27 -0
- package/dist/cjs/models/apigee_llm.js +182 -0
- package/dist/cjs/models/base_llm.js +102 -0
- package/dist/cjs/models/base_llm_connection.js +27 -0
- package/dist/cjs/models/gemini_llm_connection.js +133 -0
- package/dist/cjs/models/google_llm.js +291 -0
- package/dist/cjs/models/llm_request.js +82 -0
- package/dist/cjs/models/llm_response.js +73 -0
- package/dist/cjs/models/registry.js +123 -0
- package/dist/cjs/models/routed_llm.js +99 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/plugins/base_plugin.js +295 -0
- package/dist/cjs/plugins/logging_plugin.js +259 -0
- package/dist/cjs/plugins/plugin_manager.js +310 -0
- package/dist/cjs/plugins/security_plugin.js +156 -0
- package/dist/cjs/runner/in_memory_runner.js +58 -0
- package/dist/cjs/runner/runner.js +380 -0
- package/dist/cjs/sessions/base_session_service.js +121 -0
- package/dist/cjs/sessions/database_session_service.js +367 -0
- package/dist/cjs/sessions/db/operations.js +109 -0
- package/dist/cjs/sessions/db/schema.js +204 -0
- package/dist/cjs/sessions/in_memory_session_service.js +210 -0
- package/dist/cjs/sessions/registry.js +49 -0
- package/dist/cjs/sessions/session.js +48 -0
- package/dist/cjs/sessions/state.js +101 -0
- package/dist/cjs/skills/loader.js +283 -0
- package/dist/cjs/skills/prompt.js +58 -0
- package/dist/cjs/skills/skill.js +78 -0
- package/dist/cjs/telemetry/google_cloud.js +83 -0
- package/dist/cjs/telemetry/setup.js +105 -0
- package/dist/cjs/telemetry/tracing.js +253 -0
- package/dist/cjs/tools/agent_tool.js +219 -0
- package/dist/cjs/tools/base_tool.js +122 -0
- package/dist/cjs/tools/base_toolset.js +86 -0
- package/dist/cjs/tools/exit_loop_tool.js +63 -0
- package/dist/cjs/tools/forwarding_artifact_service.js +87 -0
- package/dist/cjs/tools/function_tool.js +109 -0
- package/dist/cjs/tools/google_maps_grounding_tool.js +80 -0
- package/dist/cjs/tools/google_search_tool.js +80 -0
- package/dist/cjs/tools/load_artifacts_tool.js +188 -0
- package/dist/cjs/tools/load_memory_tool.js +107 -0
- package/dist/cjs/tools/long_running_tool.js +63 -0
- package/dist/cjs/tools/mcp/mcp_session_manager.js +77 -0
- package/dist/cjs/tools/mcp/mcp_tool.js +68 -0
- package/dist/cjs/tools/mcp/mcp_toolset.js +80 -0
- package/dist/cjs/tools/preload_memory_tool.js +109 -0
- package/dist/cjs/tools/skill/list_skills_tool.js +76 -0
- package/dist/cjs/tools/skill/load_skill_resource_tool.js +225 -0
- package/dist/cjs/tools/skill/load_skill_tool.js +108 -0
- package/dist/cjs/tools/skill/run_skill_inline_script_tool.js +146 -0
- package/dist/cjs/tools/skill/run_skill_script_tool.js +224 -0
- package/dist/cjs/tools/skill/skill_toolset.js +163 -0
- package/dist/cjs/tools/tool_confirmation.js +49 -0
- package/dist/cjs/tools/url_context_tool.js +73 -0
- package/dist/cjs/tools/vertex_ai_search_tool.js +127 -0
- package/dist/cjs/tools/vertex_rag_retrieval_tool.js +64 -0
- package/dist/cjs/utils/client_labels.js +56 -0
- package/dist/cjs/utils/env_aware_utils.js +92 -0
- package/dist/cjs/utils/experimental.js +74 -0
- package/dist/cjs/utils/failover_utils.js +93 -0
- package/dist/cjs/utils/file_extension_utils.js +77 -0
- package/dist/cjs/utils/file_utils.js +94 -0
- package/dist/cjs/utils/gemini_schema_util.js +152 -0
- package/dist/cjs/utils/logger.js +173 -0
- package/dist/cjs/utils/model_name.js +90 -0
- package/dist/cjs/utils/object_notation_utils.js +78 -0
- package/dist/cjs/utils/simple_zod_to_json.js +150 -0
- package/dist/cjs/utils/streaming_utils.js +330 -0
- package/dist/cjs/utils/variant_utils.js +49 -0
- package/dist/cjs/version.js +39 -0
- package/dist/esm/a2a/a2a_event.js +271 -0
- package/dist/esm/a2a/a2a_remote_agent.js +155 -0
- package/dist/esm/a2a/a2a_remote_agent_run_processor.js +184 -0
- package/dist/esm/a2a/a2a_remote_agent_utils.js +133 -0
- package/dist/esm/a2a/agent_card.js +342 -0
- package/dist/esm/a2a/agent_executor.js +204 -0
- package/dist/esm/a2a/agent_to_a2a.js +82 -0
- package/dist/esm/a2a/event_converter_utils.js +189 -0
- package/dist/esm/a2a/event_processor_utils.js +161 -0
- package/dist/esm/a2a/executor_context.js +25 -0
- package/dist/esm/a2a/metadata_converter_utils.js +93 -0
- package/dist/esm/a2a/part_converter_utils.js +188 -0
- package/dist/esm/agents/active_streaming_tool.js +16 -0
- package/dist/esm/agents/base_agent.js +268 -0
- package/dist/esm/agents/context.js +152 -0
- package/dist/esm/agents/functions.js +489 -0
- package/dist/esm/agents/instructions.js +82 -0
- package/dist/esm/agents/invocation_context.js +81 -0
- package/dist/esm/agents/live_request_queue.js +108 -0
- package/dist/esm/agents/llm_agent.js +708 -0
- package/dist/esm/agents/loop_agent.js +55 -0
- package/dist/esm/agents/parallel_agent.js +66 -0
- package/dist/esm/agents/processors/agent_transfer_llm_request_processor.js +103 -0
- package/dist/esm/agents/processors/base_llm_processor.js +15 -0
- package/dist/esm/agents/processors/basic_llm_request_processor.js +39 -0
- package/dist/esm/agents/processors/code_execution_request_processor.js +368 -0
- package/dist/esm/agents/processors/content_processor_utils.js +319 -0
- package/dist/esm/agents/processors/content_request_processor.js +61 -0
- package/dist/esm/agents/processors/context_compactor_request_processor.js +42 -0
- package/dist/esm/agents/processors/identity_llm_request_processor.js +25 -0
- package/dist/esm/agents/processors/instructions_llm_request_processor.js +56 -0
- package/dist/esm/agents/processors/request_confirmation_llm_request_processor.js +142 -0
- package/dist/esm/agents/processors/tool_filter_request_processor.js +44 -0
- package/dist/esm/agents/readonly_context.js +55 -0
- package/dist/esm/agents/routed_agent.js +70 -0
- package/dist/esm/agents/run_config.js +42 -0
- package/dist/esm/agents/sequential_agent.js +77 -0
- package/dist/esm/agents/transcription_entry.js +7 -0
- package/dist/esm/artifacts/base_artifact_service.js +7 -0
- package/dist/esm/artifacts/file_artifact_service.js +480 -0
- package/dist/esm/artifacts/gcs_artifact_service.js +199 -0
- package/dist/esm/artifacts/in_memory_artifact_service.js +152 -0
- package/dist/esm/artifacts/registry.js +30 -0
- package/dist/esm/auth/auth_credential.js +18 -0
- package/dist/esm/auth/auth_handler.js +131 -0
- package/dist/esm/auth/auth_preprocessor.js +155 -0
- package/dist/esm/auth/auth_provider_registry.js +33 -0
- package/dist/esm/auth/auth_schemes.js +33 -0
- package/dist/esm/auth/auth_tool.js +7 -0
- package/dist/esm/auth/base_auth_provider.js +7 -0
- package/dist/esm/auth/credential_service/base_credential_service.js +7 -0
- package/dist/esm/auth/credential_service/in_memory_credential_service.js +35 -0
- package/dist/esm/auth/credential_service/session_state_credential_service.js +23 -0
- package/dist/esm/auth/exchanger/base_credential_exchanger.js +12 -0
- package/dist/esm/auth/exchanger/credential_exchanger_registry.js +31 -0
- package/dist/esm/auth/oauth2/oauth2_credential_exchanger.js +177 -0
- package/dist/esm/auth/oauth2/oauth2_credential_refresher.js +85 -0
- package/dist/esm/auth/oauth2/oauth2_discovery.js +156 -0
- package/dist/esm/auth/oauth2/oauth2_utils.js +87 -0
- package/dist/esm/auth/refresher/base_credential_refresher.js +16 -0
- package/dist/esm/auth/refresher/credential_refresher_registry.js +40 -0
- package/dist/esm/code_executors/base_code_executor.js +63 -0
- package/dist/esm/code_executors/built_in_code_executor.js +45 -0
- package/dist/esm/code_executors/code_execution_utils.js +127 -0
- package/dist/esm/code_executors/code_executor_context.js +170 -0
- package/dist/esm/code_executors/unsafe_local_code_executor.js +205 -0
- package/dist/esm/common.js +245 -0
- package/dist/esm/context/base_context_compactor.js +7 -0
- package/dist/esm/context/summarizers/base_summarizer.js +7 -0
- package/dist/esm/context/summarizers/llm_summarizer.js +67 -0
- package/dist/esm/context/token_based_context_compactor.js +107 -0
- package/dist/esm/context/truncating_context_compactor.js +30 -0
- package/dist/esm/events/compacted_event.js +24 -0
- package/dist/esm/events/event.js +110 -0
- package/dist/esm/events/event_actions.js +54 -0
- package/dist/esm/events/structured_events.js +76 -0
- package/dist/esm/examples/base_example_provider.js +27 -0
- package/dist/esm/examples/example.js +7 -0
- package/dist/esm/examples/example_util.js +80 -0
- package/dist/esm/features/feature_registry.js +107 -0
- package/dist/esm/index.js +50 -0
- package/dist/esm/index_web.js +8 -0
- package/dist/esm/memory/base_memory_service.js +7 -0
- package/dist/esm/memory/in_memory_memory_service.js +71 -0
- package/dist/esm/memory/memory_entry.js +7 -0
- package/dist/esm/models/apigee_llm.js +154 -0
- package/dist/esm/models/base_llm.js +73 -0
- package/dist/esm/models/base_llm_connection.js +7 -0
- package/dist/esm/models/gemini_llm_connection.js +105 -0
- package/dist/esm/models/google_llm.js +265 -0
- package/dist/esm/models/llm_request.js +52 -0
- package/dist/esm/models/llm_response.js +45 -0
- package/dist/esm/models/registry.js +95 -0
- package/dist/esm/models/routed_llm.js +73 -0
- package/dist/esm/plugins/base_plugin.js +268 -0
- package/dist/esm/plugins/logging_plugin.js +235 -0
- package/dist/esm/plugins/plugin_manager.js +282 -0
- package/dist/esm/plugins/security_plugin.js +124 -0
- package/dist/esm/runner/in_memory_runner.js +30 -0
- package/dist/esm/runner/runner.js +360 -0
- package/dist/esm/sessions/base_session_service.js +91 -0
- package/dist/esm/sessions/database_session_service.js +355 -0
- package/dist/esm/sessions/db/operations.js +96 -0
- package/dist/esm/sessions/db/schema.js +174 -0
- package/dist/esm/sessions/in_memory_session_service.js +184 -0
- package/dist/esm/sessions/registry.js +27 -0
- package/dist/esm/sessions/session.js +20 -0
- package/dist/esm/sessions/state.js +73 -0
- package/dist/esm/skills/loader.js +244 -0
- package/dist/esm/skills/prompt.js +30 -0
- package/dist/esm/skills/skill.js +49 -0
- package/dist/esm/telemetry/google_cloud.js +54 -0
- package/dist/esm/telemetry/setup.js +83 -0
- package/dist/esm/telemetry/tracing.js +219 -0
- package/dist/esm/tools/agent_tool.js +190 -0
- package/dist/esm/tools/base_tool.js +93 -0
- package/dist/esm/tools/base_toolset.js +57 -0
- package/dist/esm/tools/exit_loop_tool.js +34 -0
- package/dist/esm/tools/forwarding_artifact_service.js +59 -0
- package/dist/esm/tools/function_tool.js +80 -0
- package/dist/esm/tools/google_maps_grounding_tool.js +54 -0
- package/dist/esm/tools/google_search_tool.js +51 -0
- package/dist/esm/tools/load_artifacts_tool.js +161 -0
- package/dist/esm/tools/load_memory_tool.js +80 -0
- package/dist/esm/tools/long_running_tool.js +37 -0
- package/dist/esm/tools/mcp/mcp_session_manager.js +53 -0
- package/dist/esm/tools/mcp/mcp_tool.js +40 -0
- package/dist/esm/tools/mcp/mcp_toolset.js +52 -0
- package/dist/esm/tools/preload_memory_tool.js +82 -0
- package/dist/esm/tools/skill/list_skills_tool.js +50 -0
- package/dist/esm/tools/skill/load_skill_resource_tool.js +191 -0
- package/dist/esm/tools/skill/load_skill_tool.js +82 -0
- package/dist/esm/tools/skill/run_skill_inline_script_tool.js +120 -0
- package/dist/esm/tools/skill/run_skill_script_tool.js +192 -0
- package/dist/esm/tools/skill/skill_toolset.js +137 -0
- package/dist/esm/tools/tool_confirmation.js +21 -0
- package/dist/esm/tools/url_context_tool.js +44 -0
- package/dist/esm/tools/vertex_ai_search_tool.js +103 -0
- package/dist/esm/tools/vertex_rag_retrieval_tool.js +36 -0
- package/dist/esm/utils/client_labels.js +28 -0
- package/dist/esm/utils/env_aware_utils.js +59 -0
- package/dist/esm/utils/experimental.js +46 -0
- package/dist/esm/utils/failover_utils.js +65 -0
- package/dist/esm/utils/file_extension_utils.js +51 -0
- package/dist/esm/utils/file_utils.js +56 -0
- package/dist/esm/utils/gemini_schema_util.js +124 -0
- package/dist/esm/utils/logger.js +130 -0
- package/dist/esm/utils/model_name.js +58 -0
- package/dist/esm/utils/object_notation_utils.js +49 -0
- package/dist/esm/utils/simple_zod_to_json.js +123 -0
- package/dist/esm/utils/streaming_utils.js +304 -0
- package/dist/esm/utils/variant_utils.js +20 -0
- package/dist/esm/version.js +11 -0
- package/dist/types/a2a/a2a_event.d.ts +139 -0
- package/dist/types/a2a/a2a_remote_agent.d.ts +67 -0
- package/dist/types/a2a/a2a_remote_agent_run_processor.d.ts +31 -0
- package/dist/types/a2a/a2a_remote_agent_utils.d.ts +38 -0
- package/dist/types/a2a/agent_card.d.ts +23 -0
- package/dist/types/a2a/agent_executor.d.ts +52 -0
- package/dist/types/a2a/agent_to_a2a.d.ts +45 -0
- package/dist/types/a2a/event_converter_utils.d.ts +20 -0
- package/dist/types/a2a/event_processor_utils.d.ts +24 -0
- package/dist/types/a2a/executor_context.d.ts +33 -0
- package/dist/types/a2a/metadata_converter_utils.d.ts +63 -0
- package/dist/types/a2a/part_converter_utils.d.ts +48 -0
- package/dist/types/agents/active_streaming_tool.d.ts +29 -0
- package/dist/types/agents/base_agent.d.ts +194 -0
- package/dist/types/agents/context.d.ts +99 -0
- package/dist/types/agents/functions.d.ts +112 -0
- package/dist/types/agents/instructions.d.ts +32 -0
- package/dist/types/agents/invocation_context.d.ts +162 -0
- package/dist/types/agents/live_request_queue.d.ts +67 -0
- package/dist/types/agents/llm_agent.d.ts +351 -0
- package/dist/types/agents/loop_agent.d.ts +47 -0
- package/dist/types/agents/parallel_agent.d.ts +37 -0
- package/dist/types/agents/processors/agent_transfer_llm_request_processor.d.ts +18 -0
- package/dist/types/agents/processors/base_llm_processor.d.ts +27 -0
- package/dist/types/agents/processors/basic_llm_request_processor.d.ts +13 -0
- package/dist/types/agents/processors/code_execution_request_processor.d.ts +34 -0
- package/dist/types/agents/processors/content_processor_utils.d.ts +36 -0
- package/dist/types/agents/processors/content_request_processor.d.ts +13 -0
- package/dist/types/agents/processors/context_compactor_request_processor.d.ts +22 -0
- package/dist/types/agents/processors/identity_llm_request_processor.d.ts +13 -0
- package/dist/types/agents/processors/instructions_llm_request_processor.d.ts +16 -0
- package/dist/types/agents/processors/request_confirmation_llm_request_processor.d.ts +13 -0
- package/dist/types/agents/processors/tool_filter_request_processor.d.ts +14 -0
- package/dist/types/agents/readonly_context.d.ts +39 -0
- package/dist/types/agents/routed_agent.d.ts +59 -0
- package/dist/types/agents/run_config.d.ts +94 -0
- package/dist/types/agents/sequential_agent.d.ts +42 -0
- package/dist/types/agents/transcription_entry.d.ts +17 -0
- package/dist/types/artifacts/base_artifact_service.d.ts +158 -0
- package/dist/types/artifacts/file_artifact_service.d.ts +47 -0
- package/dist/types/artifacts/gcs_artifact_service.d.ts +18 -0
- package/dist/types/artifacts/in_memory_artifact_service.d.ts +21 -0
- package/dist/types/artifacts/registry.d.ts +7 -0
- package/dist/types/auth/auth_credential.d.ts +244 -0
- package/dist/types/auth/auth_handler.d.ts +28 -0
- package/dist/types/auth/auth_preprocessor.d.ts +12 -0
- package/dist/types/auth/auth_provider_registry.d.ts +27 -0
- package/dist/types/auth/auth_schemes.d.ts +39 -0
- package/dist/types/auth/auth_tool.d.ts +51 -0
- package/dist/types/auth/base_auth_provider.d.ts +20 -0
- package/dist/types/auth/credential_service/base_credential_service.d.ts +27 -0
- package/dist/types/auth/credential_service/in_memory_credential_service.d.ts +19 -0
- package/dist/types/auth/credential_service/session_state_credential_service.d.ts +20 -0
- package/dist/types/auth/exchanger/base_credential_exchanger.d.ts +39 -0
- package/dist/types/auth/exchanger/credential_exchanger_registry.d.ts +28 -0
- package/dist/types/auth/oauth2/oauth2_credential_exchanger.d.ts +26 -0
- package/dist/types/auth/oauth2/oauth2_credential_refresher.d.ts +29 -0
- package/dist/types/auth/oauth2/oauth2_discovery.d.ts +38 -0
- package/dist/types/auth/oauth2/oauth2_utils.d.ts +56 -0
- package/dist/types/auth/refresher/base_credential_refresher.d.ts +38 -0
- package/dist/types/auth/refresher/credential_refresher_registry.d.ts +27 -0
- package/dist/types/code_executors/base_code_executor.d.ts +74 -0
- package/dist/types/code_executors/built_in_code_executor.d.ts +32 -0
- package/dist/types/code_executors/code_execution_utils.d.ts +127 -0
- package/dist/types/code_executors/code_executor_context.d.ts +85 -0
- package/dist/types/code_executors/unsafe_local_code_executor.d.ts +48 -0
- package/dist/types/common.d.ts +137 -0
- package/dist/types/context/base_context_compactor.d.ts +24 -0
- package/dist/types/context/summarizers/base_summarizer.d.ts +19 -0
- package/dist/types/context/summarizers/llm_summarizer.d.ts +23 -0
- package/dist/types/context/token_based_context_compactor.d.ts +33 -0
- package/dist/types/context/truncating_context_compactor.d.ts +24 -0
- package/dist/types/events/compacted_event.d.ts +33 -0
- package/dist/types/events/event.d.ts +102 -0
- package/dist/types/events/event_actions.d.ts +74 -0
- package/dist/types/events/structured_events.d.ts +106 -0
- package/dist/types/examples/base_example_provider.d.ts +36 -0
- package/dist/types/examples/example.d.ts +19 -0
- package/dist/types/examples/example_util.d.ts +13 -0
- package/dist/types/features/feature_registry.d.ts +66 -0
- package/dist/types/index.d.ts +28 -0
- package/dist/types/index_web.d.ts +6 -0
- package/dist/types/memory/base_memory_service.d.ts +53 -0
- package/dist/types/memory/in_memory_memory_service.d.ts +18 -0
- package/dist/types/memory/memory_entry.d.ts +30 -0
- package/dist/types/models/apigee_llm.d.ts +59 -0
- package/dist/types/models/base_llm.d.ts +66 -0
- package/dist/types/models/base_llm_connection.d.ts +51 -0
- package/dist/types/models/gemini_llm_connection.d.ts +54 -0
- package/dist/types/models/google_llm.d.ts +90 -0
- package/dist/types/models/llm_request.d.ts +53 -0
- package/dist/types/models/llm_response.d.ts +83 -0
- package/dist/types/models/registry.d.ts +49 -0
- package/dist/types/models/routed_llm.d.ts +38 -0
- package/dist/types/plugins/base_plugin.d.ts +368 -0
- package/dist/types/plugins/logging_plugin.d.ts +103 -0
- package/dist/types/plugins/plugin_manager.d.ts +175 -0
- package/dist/types/plugins/security_plugin.d.ts +60 -0
- package/dist/types/runner/in_memory_runner.d.ts +15 -0
- package/dist/types/runner/runner.d.ts +117 -0
- package/dist/types/sessions/base_session_service.d.ts +149 -0
- package/dist/types/sessions/database_session_service.d.ts +32 -0
- package/dist/types/sessions/db/operations.d.ts +28 -0
- package/dist/types/sessions/db/schema.d.ts +45 -0
- package/dist/types/sessions/in_memory_session_service.d.ts +30 -0
- package/dist/types/sessions/registry.d.ts +7 -0
- package/dist/types/sessions/session.d.ts +46 -0
- package/dist/types/sessions/state.d.ts +57 -0
- package/dist/types/skills/loader.d.ts +38 -0
- package/dist/types/skills/prompt.d.ts +13 -0
- package/dist/types/skills/skill.d.ts +48 -0
- package/dist/types/telemetry/google_cloud.d.ts +9 -0
- package/dist/types/telemetry/setup.d.ts +48 -0
- package/dist/types/telemetry/tracing.d.ts +112 -0
- package/dist/types/tools/agent_tool.d.ts +73 -0
- package/dist/types/tools/base_tool.d.ts +98 -0
- package/dist/types/tools/base_toolset.d.ts +74 -0
- package/dist/types/tools/exit_loop_tool.d.ts +24 -0
- package/dist/types/tools/forwarding_artifact_service.d.ts +23 -0
- package/dist/types/tools/function_tool.d.ts +62 -0
- package/dist/types/tools/google_maps_grounding_tool.d.ts +22 -0
- package/dist/types/tools/google_search_tool.d.ts +17 -0
- package/dist/types/tools/load_artifacts_tool.d.ts +21 -0
- package/dist/types/tools/load_memory_tool.d.ts +22 -0
- package/dist/types/tools/long_running_tool.d.ts +18 -0
- package/dist/types/tools/mcp/mcp_session_manager.d.ts +64 -0
- package/dist/types/tools/mcp/mcp_tool.d.ts +36 -0
- package/dist/types/tools/mcp/mcp_toolset.d.ts +44 -0
- package/dist/types/tools/preload_memory_tool.d.ts +23 -0
- package/dist/types/tools/skill/list_skills_tool.d.ts +14 -0
- package/dist/types/tools/skill/load_skill_resource_tool.d.ts +15 -0
- package/dist/types/tools/skill/load_skill_tool.d.ts +14 -0
- package/dist/types/tools/skill/run_skill_inline_script_tool.d.ts +14 -0
- package/dist/types/tools/skill/run_skill_script_tool.d.ts +17 -0
- package/dist/types/tools/skill/skill_toolset.d.ts +28 -0
- package/dist/types/tools/tool_confirmation.d.ts +25 -0
- package/dist/types/tools/url_context_tool.d.ts +17 -0
- package/dist/types/tools/vertex_ai_search_tool.d.ts +55 -0
- package/dist/types/tools/vertex_rag_retrieval_tool.d.ts +42 -0
- package/dist/types/utils/client_labels.d.ts +9 -0
- package/dist/types/utils/env_aware_utils.d.ts +38 -0
- package/dist/types/utils/experimental.d.ts +11 -0
- package/dist/types/utils/failover_utils.d.ts +17 -0
- package/dist/types/utils/file_extension_utils.d.ts +21 -0
- package/dist/types/utils/file_utils.d.ts +11 -0
- package/dist/types/utils/gemini_schema_util.d.ts +15 -0
- package/dist/types/utils/logger.d.ts +38 -0
- package/dist/types/utils/model_name.d.ts +38 -0
- package/dist/types/utils/object_notation_utils.d.ts +21 -0
- package/dist/types/utils/simple_zod_to_json.d.ts +13 -0
- package/dist/types/utils/streaming_utils.d.ts +40 -0
- package/dist/types/utils/variant_utils.d.ts +24 -0
- package/dist/types/version.d.ts +6 -0
- package/dist/web/a2a/a2a_event.js +271 -0
- package/dist/web/a2a/a2a_remote_agent.js +186 -0
- package/dist/web/a2a/a2a_remote_agent_run_processor.js +184 -0
- package/dist/web/a2a/a2a_remote_agent_utils.js +133 -0
- package/dist/web/a2a/agent_card.js +342 -0
- package/dist/web/a2a/agent_executor.js +218 -0
- package/dist/web/a2a/agent_to_a2a.js +82 -0
- package/dist/web/a2a/event_converter_utils.js +203 -0
- package/dist/web/a2a/event_processor_utils.js +170 -0
- package/dist/web/a2a/executor_context.js +25 -0
- package/dist/web/a2a/metadata_converter_utils.js +110 -0
- package/dist/web/a2a/part_converter_utils.js +188 -0
- package/dist/web/agents/active_streaming_tool.js +16 -0
- package/dist/web/agents/base_agent.js +354 -0
- package/dist/web/agents/context.js +152 -0
- package/dist/web/agents/functions.js +520 -0
- package/dist/web/agents/instructions.js +82 -0
- package/dist/web/agents/invocation_context.js +81 -0
- package/dist/web/agents/live_request_queue.js +126 -0
- package/dist/web/agents/llm_agent.js +907 -0
- package/dist/web/agents/loop_agent.js +88 -0
- package/dist/web/agents/parallel_agent.js +101 -0
- package/dist/web/agents/processors/agent_transfer_llm_request_processor.js +102 -0
- package/dist/web/agents/processors/base_llm_processor.js +15 -0
- package/dist/web/agents/processors/basic_llm_request_processor.js +73 -0
- package/dist/web/agents/processors/code_execution_request_processor.js +370 -0
- package/dist/web/agents/processors/content_processor_utils.js +318 -0
- package/dist/web/agents/processors/content_request_processor.js +79 -0
- package/dist/web/agents/processors/context_compactor_request_processor.js +60 -0
- package/dist/web/agents/processors/identity_llm_request_processor.js +43 -0
- package/dist/web/agents/processors/instructions_llm_request_processor.js +74 -0
- package/dist/web/agents/processors/request_confirmation_llm_request_processor.js +160 -0
- package/dist/web/agents/processors/tool_filter_request_processor.js +62 -0
- package/dist/web/agents/readonly_context.js +55 -0
- package/dist/web/agents/routed_agent.js +138 -0
- package/dist/web/agents/run_config.js +57 -0
- package/dist/web/agents/sequential_agent.js +122 -0
- package/dist/web/agents/transcription_entry.js +7 -0
- package/dist/web/artifacts/base_artifact_service.js +7 -0
- package/dist/web/artifacts/file_artifact_service.js +535 -0
- package/dist/web/artifacts/gcs_artifact_service.js +213 -0
- package/dist/web/artifacts/in_memory_artifact_service.js +152 -0
- package/dist/web/artifacts/registry.js +30 -0
- package/dist/web/auth/auth_credential.js +18 -0
- package/dist/web/auth/auth_handler.js +148 -0
- package/dist/web/auth/auth_preprocessor.js +173 -0
- package/dist/web/auth/auth_provider_registry.js +33 -0
- package/dist/web/auth/auth_schemes.js +33 -0
- package/dist/web/auth/auth_tool.js +7 -0
- package/dist/web/auth/base_auth_provider.js +7 -0
- package/dist/web/auth/credential_service/base_credential_service.js +7 -0
- package/dist/web/auth/credential_service/in_memory_credential_service.js +35 -0
- package/dist/web/auth/credential_service/session_state_credential_service.js +23 -0
- package/dist/web/auth/exchanger/base_credential_exchanger.js +12 -0
- package/dist/web/auth/exchanger/credential_exchanger_registry.js +31 -0
- package/dist/web/auth/oauth2/oauth2_credential_exchanger.js +188 -0
- package/dist/web/auth/oauth2/oauth2_credential_refresher.js +102 -0
- package/dist/web/auth/oauth2/oauth2_discovery.js +156 -0
- package/dist/web/auth/oauth2/oauth2_utils.js +87 -0
- package/dist/web/auth/refresher/base_credential_refresher.js +16 -0
- package/dist/web/auth/refresher/credential_refresher_registry.js +40 -0
- package/dist/web/code_executors/base_code_executor.js +63 -0
- package/dist/web/code_executors/built_in_code_executor.js +45 -0
- package/dist/web/code_executors/code_execution_utils.js +124 -0
- package/dist/web/code_executors/code_executor_context.js +170 -0
- package/dist/web/code_executors/unsafe_local_code_executor.js +203 -0
- package/dist/web/common.js +245 -0
- package/dist/web/context/base_context_compactor.js +7 -0
- package/dist/web/context/summarizers/base_summarizer.js +7 -0
- package/dist/web/context/summarizers/llm_summarizer.js +76 -0
- package/dist/web/context/token_based_context_compactor.js +107 -0
- package/dist/web/context/truncating_context_compactor.js +30 -0
- package/dist/web/events/compacted_event.js +42 -0
- package/dist/web/events/event.js +128 -0
- package/dist/web/events/event_actions.js +69 -0
- package/dist/web/events/structured_events.js +76 -0
- package/dist/web/examples/base_example_provider.js +27 -0
- package/dist/web/examples/example.js +7 -0
- package/dist/web/examples/example_util.js +79 -0
- package/dist/web/features/feature_registry.js +107 -0
- package/dist/web/index.js +50 -0
- package/dist/web/index_web.js +8 -0
- package/dist/web/memory/base_memory_service.js +7 -0
- package/dist/web/memory/in_memory_memory_service.js +71 -0
- package/dist/web/memory/memory_entry.js +7 -0
- package/dist/web/models/apigee_llm.js +221 -0
- package/dist/web/models/base_llm.js +73 -0
- package/dist/web/models/base_llm_connection.js +7 -0
- package/dist/web/models/gemini_llm_connection.js +123 -0
- package/dist/web/models/google_llm.js +321 -0
- package/dist/web/models/llm_request.js +52 -0
- package/dist/web/models/llm_response.js +45 -0
- package/dist/web/models/registry.js +95 -0
- package/dist/web/models/routed_llm.js +122 -0
- package/dist/web/plugins/base_plugin.js +268 -0
- package/dist/web/plugins/logging_plugin.js +235 -0
- package/dist/web/plugins/plugin_manager.js +282 -0
- package/dist/web/plugins/security_plugin.js +124 -0
- package/dist/web/runner/in_memory_runner.js +30 -0
- package/dist/web/runner/runner.js +426 -0
- package/dist/web/sessions/base_session_service.js +91 -0
- package/dist/web/sessions/database_session_service.js +373 -0
- package/dist/web/sessions/db/operations.js +96 -0
- package/dist/web/sessions/db/schema.js +174 -0
- package/dist/web/sessions/in_memory_session_service.js +184 -0
- package/dist/web/sessions/registry.js +27 -0
- package/dist/web/sessions/session.js +20 -0
- package/dist/web/sessions/state.js +89 -0
- package/dist/web/skills/loader.js +262 -0
- package/dist/web/skills/prompt.js +30 -0
- package/dist/web/skills/skill.js +67 -0
- package/dist/web/telemetry/google_cloud.js +54 -0
- package/dist/web/telemetry/setup.js +83 -0
- package/dist/web/telemetry/tracing.js +234 -0
- package/dist/web/tools/agent_tool.js +233 -0
- package/dist/web/tools/base_tool.js +93 -0
- package/dist/web/tools/base_toolset.js +57 -0
- package/dist/web/tools/exit_loop_tool.js +34 -0
- package/dist/web/tools/forwarding_artifact_service.js +59 -0
- package/dist/web/tools/function_tool.js +80 -0
- package/dist/web/tools/google_maps_grounding_tool.js +54 -0
- package/dist/web/tools/google_search_tool.js +51 -0
- package/dist/web/tools/load_artifacts_tool.js +152 -0
- package/dist/web/tools/load_memory_tool.js +79 -0
- package/dist/web/tools/long_running_tool.js +54 -0
- package/dist/web/tools/mcp/mcp_session_manager.js +53 -0
- package/dist/web/tools/mcp/mcp_tool.js +40 -0
- package/dist/web/tools/mcp/mcp_toolset.js +70 -0
- package/dist/web/tools/preload_memory_tool.js +77 -0
- package/dist/web/tools/skill/list_skills_tool.js +50 -0
- package/dist/web/tools/skill/load_skill_resource_tool.js +191 -0
- package/dist/web/tools/skill/load_skill_tool.js +82 -0
- package/dist/web/tools/skill/run_skill_inline_script_tool.js +120 -0
- package/dist/web/tools/skill/run_skill_script_tool.js +190 -0
- package/dist/web/tools/skill/skill_toolset.js +123 -0
- package/dist/web/tools/tool_confirmation.js +21 -0
- package/dist/web/tools/url_context_tool.js +44 -0
- package/dist/web/tools/vertex_ai_search_tool.js +103 -0
- package/dist/web/tools/vertex_rag_retrieval_tool.js +36 -0
- package/dist/web/utils/client_labels.js +28 -0
- package/dist/web/utils/env_aware_utils.js +59 -0
- package/dist/web/utils/experimental.js +46 -0
- package/dist/web/utils/failover_utils.js +96 -0
- package/dist/web/utils/file_extension_utils.js +51 -0
- package/dist/web/utils/file_utils.js +74 -0
- package/dist/web/utils/gemini_schema_util.js +155 -0
- package/dist/web/utils/logger.js +130 -0
- package/dist/web/utils/model_name.js +58 -0
- package/dist/web/utils/object_notation_utils.js +49 -0
- package/dist/web/utils/simple_zod_to_json.js +123 -0
- package/dist/web/utils/streaming_utils.js +322 -0
- package/dist/web/utils/variant_utils.js +20 -0
- package/dist/web/version.js +11 -0
- package/package.json +84 -0
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
"use strict";
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
10
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
11
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
12
|
+
var __export = (target, all) => {
|
|
13
|
+
for (var name in all)
|
|
14
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
15
|
+
};
|
|
16
|
+
var __copyProps = (to, from, except, desc) => {
|
|
17
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
18
|
+
for (let key of __getOwnPropNames(from))
|
|
19
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
20
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
21
|
+
}
|
|
22
|
+
return to;
|
|
23
|
+
};
|
|
24
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
25
|
+
var agent_tool_exports = {};
|
|
26
|
+
__export(agent_tool_exports, {
|
|
27
|
+
AgentTool: () => AgentTool,
|
|
28
|
+
isAgentTool: () => isAgentTool
|
|
29
|
+
});
|
|
30
|
+
module.exports = __toCommonJS(agent_tool_exports);
|
|
31
|
+
var import_genai = require("@google/genai");
|
|
32
|
+
var import_llm_agent = require("../agents/llm_agent.js");
|
|
33
|
+
var import_in_memory_memory_service = require("../memory/in_memory_memory_service.js");
|
|
34
|
+
var import_runner = require("../runner/runner.js");
|
|
35
|
+
var import_in_memory_session_service = require("../sessions/in_memory_session_service.js");
|
|
36
|
+
var import_variant_utils = require("../utils/variant_utils.js");
|
|
37
|
+
var import_base_tool = require("./base_tool.js");
|
|
38
|
+
var import_forwarding_artifact_service = require("./forwarding_artifact_service.js");
|
|
39
|
+
/**
|
|
40
|
+
* @license
|
|
41
|
+
* Copyright 2025 Google LLC
|
|
42
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
43
|
+
*/
|
|
44
|
+
var _a, _b;
|
|
45
|
+
const AGENT_TOOL_SIGNATURE_SYMBOL = Symbol.for("google.adk.agentTool");
|
|
46
|
+
function isAgentTool(obj) {
|
|
47
|
+
return typeof obj === "object" && obj !== null && AGENT_TOOL_SIGNATURE_SYMBOL in obj && obj[AGENT_TOOL_SIGNATURE_SYMBOL] === true;
|
|
48
|
+
}
|
|
49
|
+
class AgentTool extends (_b = import_base_tool.BaseTool, _a = AGENT_TOOL_SIGNATURE_SYMBOL, _b) {
|
|
50
|
+
constructor(config) {
|
|
51
|
+
super({
|
|
52
|
+
name: config.agent.name,
|
|
53
|
+
description: config.agent.description || ""
|
|
54
|
+
});
|
|
55
|
+
/** A unique symbol to identify ADK agent tool class. */
|
|
56
|
+
this[_a] = true;
|
|
57
|
+
this.agent = config.agent;
|
|
58
|
+
this.skipSummarization = config.skipSummarization || false;
|
|
59
|
+
}
|
|
60
|
+
_getDeclaration() {
|
|
61
|
+
let declaration;
|
|
62
|
+
if ((0, import_llm_agent.isLlmAgent)(this.agent) && this.agent.inputSchema) {
|
|
63
|
+
declaration = {
|
|
64
|
+
name: this.name,
|
|
65
|
+
description: this.description,
|
|
66
|
+
// TODO(b/425992518): We should not use the agent's input schema as is.
|
|
67
|
+
// It should be validated and possibly transformed. Consider similar
|
|
68
|
+
// logic to one we have in Python ADK.
|
|
69
|
+
parameters: this.agent.inputSchema
|
|
70
|
+
};
|
|
71
|
+
} else {
|
|
72
|
+
declaration = {
|
|
73
|
+
name: this.name,
|
|
74
|
+
description: this.description,
|
|
75
|
+
parameters: {
|
|
76
|
+
type: import_genai.Type.OBJECT,
|
|
77
|
+
properties: {
|
|
78
|
+
"request": {
|
|
79
|
+
type: import_genai.Type.STRING
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
required: ["request"]
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
if (this.apiVariant !== import_variant_utils.GoogleLLMVariant.GEMINI_API) {
|
|
87
|
+
const hasOutputSchema = (0, import_llm_agent.isLlmAgent)(this.agent) && this.agent.outputSchema;
|
|
88
|
+
declaration.response = hasOutputSchema ? { type: import_genai.Type.OBJECT } : { type: import_genai.Type.STRING };
|
|
89
|
+
}
|
|
90
|
+
return declaration;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Sets up the Runner and Session for sub-agent execution.
|
|
94
|
+
*
|
|
95
|
+
* Shared by {@link runAsync} and {@link runAsyncWithEvents}.
|
|
96
|
+
*/
|
|
97
|
+
async setupRunnerAndSession({
|
|
98
|
+
args,
|
|
99
|
+
toolContext
|
|
100
|
+
}) {
|
|
101
|
+
var _a2, _b2;
|
|
102
|
+
const hasInputSchema = (0, import_llm_agent.isLlmAgent)(this.agent) && this.agent.inputSchema;
|
|
103
|
+
const content = {
|
|
104
|
+
role: "user",
|
|
105
|
+
parts: [
|
|
106
|
+
{
|
|
107
|
+
// TODO(b/425992518): Should be validated. Consider similar
|
|
108
|
+
// logic to one we have in Python ADK.
|
|
109
|
+
text: hasInputSchema ? JSON.stringify(args) : args["request"]
|
|
110
|
+
}
|
|
111
|
+
]
|
|
112
|
+
};
|
|
113
|
+
const runner = new import_runner.Runner({
|
|
114
|
+
appName: this.agent.name,
|
|
115
|
+
agent: this.agent,
|
|
116
|
+
artifactService: new import_forwarding_artifact_service.ForwardingArtifactService(toolContext),
|
|
117
|
+
sessionService: (_a2 = toolContext.invocationContext.sessionService) != null ? _a2 : new import_in_memory_session_service.InMemorySessionService(),
|
|
118
|
+
memoryService: (_b2 = toolContext.invocationContext.memoryService) != null ? _b2 : new import_in_memory_memory_service.InMemoryMemoryService(),
|
|
119
|
+
credentialService: toolContext.invocationContext.credentialService
|
|
120
|
+
});
|
|
121
|
+
const session = await runner.sessionService.getOrCreateSession({
|
|
122
|
+
appName: this.agent.name,
|
|
123
|
+
userId: toolContext.invocationContext.userId,
|
|
124
|
+
sessionId: toolContext.invocationContext.session.id,
|
|
125
|
+
state: toolContext.state.toRecord()
|
|
126
|
+
});
|
|
127
|
+
return {
|
|
128
|
+
runner,
|
|
129
|
+
content,
|
|
130
|
+
sessionUserId: session.userId,
|
|
131
|
+
sessionId: session.id
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Builds the tool result from the last content event of the sub-agent.
|
|
136
|
+
*
|
|
137
|
+
* Excludes thought parts and applies the output schema (if any).
|
|
138
|
+
*/
|
|
139
|
+
buildToolResultFromContent(lastContent) {
|
|
140
|
+
var _a2;
|
|
141
|
+
if (!((_a2 = lastContent == null ? void 0 : lastContent.parts) == null ? void 0 : _a2.length)) {
|
|
142
|
+
return "";
|
|
143
|
+
}
|
|
144
|
+
const hasOutputSchema = (0, import_llm_agent.isLlmAgent)(this.agent) && this.agent.outputSchema;
|
|
145
|
+
const mergedText = lastContent.parts.filter((part) => !part.thought).map((part) => part.text).filter((text) => text).join("\n");
|
|
146
|
+
return hasOutputSchema ? JSON.parse(mergedText) : mergedText;
|
|
147
|
+
}
|
|
148
|
+
async runAsync({
|
|
149
|
+
args,
|
|
150
|
+
toolContext
|
|
151
|
+
}) {
|
|
152
|
+
var _a2, _b2;
|
|
153
|
+
if (this.skipSummarization) {
|
|
154
|
+
toolContext.actions.skipSummarization = true;
|
|
155
|
+
}
|
|
156
|
+
const { runner, content, sessionUserId, sessionId } = await this.setupRunnerAndSession({ args, toolContext });
|
|
157
|
+
if ((_a2 = toolContext.abortSignal) == null ? void 0 : _a2.aborted) {
|
|
158
|
+
return "";
|
|
159
|
+
}
|
|
160
|
+
let lastEvent;
|
|
161
|
+
for await (const event of runner.runAsync({
|
|
162
|
+
userId: sessionUserId,
|
|
163
|
+
sessionId,
|
|
164
|
+
newMessage: content,
|
|
165
|
+
runConfig: toolContext.invocationContext.runConfig,
|
|
166
|
+
abortSignal: toolContext.abortSignal
|
|
167
|
+
})) {
|
|
168
|
+
if ((_b2 = toolContext.abortSignal) == null ? void 0 : _b2.aborted) {
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
if (event.actions.stateDelta) {
|
|
172
|
+
toolContext.state.update(event.actions.stateDelta);
|
|
173
|
+
}
|
|
174
|
+
lastEvent = event;
|
|
175
|
+
}
|
|
176
|
+
return this.buildToolResultFromContent(lastEvent == null ? void 0 : lastEvent.content);
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Runs the wrapped agent and yields the sub-agent's events as they are
|
|
180
|
+
* produced, providing real-time visibility into sub-agent progress.
|
|
181
|
+
*
|
|
182
|
+
* Counterpart to {@link runAsync}; the caller is responsible for tracking
|
|
183
|
+
* the last content event and building the final tool result via
|
|
184
|
+
* {@link buildToolResultFromContent}.
|
|
185
|
+
*/
|
|
186
|
+
async *runAsyncWithEvents({
|
|
187
|
+
args,
|
|
188
|
+
toolContext
|
|
189
|
+
}) {
|
|
190
|
+
var _a2, _b2;
|
|
191
|
+
if (this.skipSummarization) {
|
|
192
|
+
toolContext.actions.skipSummarization = true;
|
|
193
|
+
}
|
|
194
|
+
const { runner, content, sessionUserId, sessionId } = await this.setupRunnerAndSession({ args, toolContext });
|
|
195
|
+
if ((_a2 = toolContext.abortSignal) == null ? void 0 : _a2.aborted) {
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
for await (const event of runner.runAsync({
|
|
199
|
+
userId: sessionUserId,
|
|
200
|
+
sessionId,
|
|
201
|
+
newMessage: content,
|
|
202
|
+
runConfig: toolContext.invocationContext.runConfig,
|
|
203
|
+
abortSignal: toolContext.abortSignal
|
|
204
|
+
})) {
|
|
205
|
+
if ((_b2 = toolContext.abortSignal) == null ? void 0 : _b2.aborted) {
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
if (event.actions.stateDelta) {
|
|
209
|
+
toolContext.state.update(event.actions.stateDelta);
|
|
210
|
+
}
|
|
211
|
+
yield event;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
216
|
+
0 && (module.exports = {
|
|
217
|
+
AgentTool,
|
|
218
|
+
isAgentTool
|
|
219
|
+
});
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
"use strict";
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
10
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
11
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
12
|
+
var __export = (target, all) => {
|
|
13
|
+
for (var name in all)
|
|
14
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
15
|
+
};
|
|
16
|
+
var __copyProps = (to, from, except, desc) => {
|
|
17
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
18
|
+
for (let key of __getOwnPropNames(from))
|
|
19
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
20
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
21
|
+
}
|
|
22
|
+
return to;
|
|
23
|
+
};
|
|
24
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
25
|
+
var base_tool_exports = {};
|
|
26
|
+
__export(base_tool_exports, {
|
|
27
|
+
BaseTool: () => BaseTool,
|
|
28
|
+
isBaseTool: () => isBaseTool
|
|
29
|
+
});
|
|
30
|
+
module.exports = __toCommonJS(base_tool_exports);
|
|
31
|
+
var import_variant_utils = require("../utils/variant_utils.js");
|
|
32
|
+
/**
|
|
33
|
+
* @license
|
|
34
|
+
* Copyright 2025 Google LLC
|
|
35
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
36
|
+
*/
|
|
37
|
+
var _a;
|
|
38
|
+
const BASE_TOOL_SIGNATURE_SYMBOL = Symbol.for("google.adk.baseTool");
|
|
39
|
+
function isBaseTool(obj) {
|
|
40
|
+
return typeof obj === "object" && obj !== null && BASE_TOOL_SIGNATURE_SYMBOL in obj && obj[BASE_TOOL_SIGNATURE_SYMBOL] === true;
|
|
41
|
+
}
|
|
42
|
+
_a = BASE_TOOL_SIGNATURE_SYMBOL;
|
|
43
|
+
class BaseTool {
|
|
44
|
+
/**
|
|
45
|
+
* Base constructor for a tool.
|
|
46
|
+
*
|
|
47
|
+
* @param params The parameters for `BaseTool`.
|
|
48
|
+
*/
|
|
49
|
+
constructor(params) {
|
|
50
|
+
/** A unique symbol to identify ADK base tool class. */
|
|
51
|
+
this[_a] = true;
|
|
52
|
+
var _a2;
|
|
53
|
+
this.name = params.name;
|
|
54
|
+
this.description = params.description;
|
|
55
|
+
this.isLongRunning = (_a2 = params.isLongRunning) != null ? _a2 : false;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Gets the OpenAPI specification of this tool in the form of a
|
|
59
|
+
* FunctionDeclaration.
|
|
60
|
+
*
|
|
61
|
+
* NOTE
|
|
62
|
+
* - Required if subclass uses the default implementation of
|
|
63
|
+
* `processLlmRequest` to add function declaration to LLM request.
|
|
64
|
+
* - Otherwise, can be skipped, e.g. for a built-in GoogleSearch tool for
|
|
65
|
+
* Gemini.
|
|
66
|
+
*
|
|
67
|
+
* @return The FunctionDeclaration of this tool, or undefined if it doesn't
|
|
68
|
+
* need to be added to LlmRequest.config.
|
|
69
|
+
*/
|
|
70
|
+
_getDeclaration() {
|
|
71
|
+
return void 0;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Processes the outgoing LLM request for this tool.
|
|
75
|
+
*
|
|
76
|
+
* Use cases:
|
|
77
|
+
* - Most common use case is adding this tool to the LLM request.
|
|
78
|
+
* - Some tools may just preprocess the LLM request before it's sent out.
|
|
79
|
+
*
|
|
80
|
+
* @param request The request to process the LLM request.
|
|
81
|
+
*/
|
|
82
|
+
async processLlmRequest({ llmRequest }) {
|
|
83
|
+
const functionDeclaration = this._getDeclaration();
|
|
84
|
+
if (!functionDeclaration) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
if (this.name in llmRequest.toolsDict) {
|
|
88
|
+
throw new Error(`Duplicate tool name: ${this.name}`);
|
|
89
|
+
}
|
|
90
|
+
llmRequest.toolsDict[this.name] = this;
|
|
91
|
+
const tool = findToolWithFunctionDeclarations(llmRequest);
|
|
92
|
+
if (tool) {
|
|
93
|
+
if (!tool.functionDeclarations) {
|
|
94
|
+
tool.functionDeclarations = [];
|
|
95
|
+
}
|
|
96
|
+
tool.functionDeclarations.push(functionDeclaration);
|
|
97
|
+
} else {
|
|
98
|
+
llmRequest.config = llmRequest.config || {};
|
|
99
|
+
llmRequest.config.tools = llmRequest.config.tools || [];
|
|
100
|
+
llmRequest.config.tools.push({
|
|
101
|
+
functionDeclarations: [functionDeclaration]
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* The Google API LLM variant to use.
|
|
107
|
+
*/
|
|
108
|
+
get apiVariant() {
|
|
109
|
+
return (0, import_variant_utils.getGoogleLlmVariant)();
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
function findToolWithFunctionDeclarations(llmRequest) {
|
|
113
|
+
var _a2;
|
|
114
|
+
return (((_a2 = llmRequest.config) == null ? void 0 : _a2.tools) || []).find(
|
|
115
|
+
(tool) => "functionDeclarations" in tool
|
|
116
|
+
);
|
|
117
|
+
}
|
|
118
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
119
|
+
0 && (module.exports = {
|
|
120
|
+
BaseTool,
|
|
121
|
+
isBaseTool
|
|
122
|
+
});
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
"use strict";
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
10
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
11
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
12
|
+
var __export = (target, all) => {
|
|
13
|
+
for (var name in all)
|
|
14
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
15
|
+
};
|
|
16
|
+
var __copyProps = (to, from, except, desc) => {
|
|
17
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
18
|
+
for (let key of __getOwnPropNames(from))
|
|
19
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
20
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
21
|
+
}
|
|
22
|
+
return to;
|
|
23
|
+
};
|
|
24
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
25
|
+
var base_toolset_exports = {};
|
|
26
|
+
__export(base_toolset_exports, {
|
|
27
|
+
BaseToolset: () => BaseToolset,
|
|
28
|
+
isBaseToolset: () => isBaseToolset
|
|
29
|
+
});
|
|
30
|
+
module.exports = __toCommonJS(base_toolset_exports);
|
|
31
|
+
/**
|
|
32
|
+
* @license
|
|
33
|
+
* Copyright 2025 Google LLC
|
|
34
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
35
|
+
*/
|
|
36
|
+
var _a;
|
|
37
|
+
const BASE_TOOLSET_SIGNATURE_SYMBOL = Symbol.for("google.adk.baseToolset");
|
|
38
|
+
function isBaseToolset(obj) {
|
|
39
|
+
return typeof obj === "object" && obj !== null && BASE_TOOLSET_SIGNATURE_SYMBOL in obj && obj[BASE_TOOLSET_SIGNATURE_SYMBOL] === true;
|
|
40
|
+
}
|
|
41
|
+
_a = BASE_TOOLSET_SIGNATURE_SYMBOL;
|
|
42
|
+
class BaseToolset {
|
|
43
|
+
constructor(toolFilter, prefix) {
|
|
44
|
+
this.toolFilter = toolFilter;
|
|
45
|
+
this.prefix = prefix;
|
|
46
|
+
this[_a] = true;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Returns whether the tool should be exposed to LLM.
|
|
50
|
+
*
|
|
51
|
+
* @param tool The tool to check.
|
|
52
|
+
* @param context Context used to filter tools available to the agent.
|
|
53
|
+
* @return Whether the tool should be exposed to LLM.
|
|
54
|
+
*/
|
|
55
|
+
isToolSelected(tool, context) {
|
|
56
|
+
if (!this.toolFilter) {
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
if (typeof this.toolFilter === "function") {
|
|
60
|
+
return this.toolFilter(tool, context);
|
|
61
|
+
}
|
|
62
|
+
if (Array.isArray(this.toolFilter)) {
|
|
63
|
+
return this.toolFilter.includes(tool.name);
|
|
64
|
+
}
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Processes the outgoing LLM request for this toolset. This method will be
|
|
69
|
+
* called before each tool processes the llm request.
|
|
70
|
+
*
|
|
71
|
+
* Use cases:
|
|
72
|
+
* - Instead of let each tool process the llm request, we can let the toolset
|
|
73
|
+
* process the llm request. e.g. ComputerUseToolset can add computer use
|
|
74
|
+
* tool to the llm request.
|
|
75
|
+
*
|
|
76
|
+
* @param toolContext The context of the tool.
|
|
77
|
+
* @param llmRequest The outgoing LLM request, mutable this method.
|
|
78
|
+
*/
|
|
79
|
+
async processLlmRequest(toolContext, llmRequest) {
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
83
|
+
0 && (module.exports = {
|
|
84
|
+
BaseToolset,
|
|
85
|
+
isBaseToolset
|
|
86
|
+
});
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
"use strict";
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
10
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
11
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
12
|
+
var __export = (target, all) => {
|
|
13
|
+
for (var name in all)
|
|
14
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
15
|
+
};
|
|
16
|
+
var __copyProps = (to, from, except, desc) => {
|
|
17
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
18
|
+
for (let key of __getOwnPropNames(from))
|
|
19
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
20
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
21
|
+
}
|
|
22
|
+
return to;
|
|
23
|
+
};
|
|
24
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
25
|
+
var exit_loop_tool_exports = {};
|
|
26
|
+
__export(exit_loop_tool_exports, {
|
|
27
|
+
EXIT_LOOP: () => EXIT_LOOP,
|
|
28
|
+
ExitLoopTool: () => ExitLoopTool
|
|
29
|
+
});
|
|
30
|
+
module.exports = __toCommonJS(exit_loop_tool_exports);
|
|
31
|
+
var import_base_tool = require("./base_tool.js");
|
|
32
|
+
/**
|
|
33
|
+
* @license
|
|
34
|
+
* Copyright 2026 Google LLC
|
|
35
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
36
|
+
*/
|
|
37
|
+
class ExitLoopTool extends import_base_tool.BaseTool {
|
|
38
|
+
constructor() {
|
|
39
|
+
super({
|
|
40
|
+
name: "exit_loop",
|
|
41
|
+
description: "Exits the loop.\n\nCall this function only when you are instructed to do so."
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
_getDeclaration() {
|
|
45
|
+
return {
|
|
46
|
+
name: this.name,
|
|
47
|
+
description: this.description
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
async runAsync({
|
|
51
|
+
toolContext
|
|
52
|
+
}) {
|
|
53
|
+
toolContext.actions.escalate = true;
|
|
54
|
+
toolContext.actions.skipSummarization = true;
|
|
55
|
+
return "";
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
const EXIT_LOOP = new ExitLoopTool();
|
|
59
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
60
|
+
0 && (module.exports = {
|
|
61
|
+
EXIT_LOOP,
|
|
62
|
+
ExitLoopTool
|
|
63
|
+
});
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
"use strict";
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
10
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
11
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
12
|
+
var __export = (target, all) => {
|
|
13
|
+
for (var name in all)
|
|
14
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
15
|
+
};
|
|
16
|
+
var __copyProps = (to, from, except, desc) => {
|
|
17
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
18
|
+
for (let key of __getOwnPropNames(from))
|
|
19
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
20
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
21
|
+
}
|
|
22
|
+
return to;
|
|
23
|
+
};
|
|
24
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
25
|
+
var forwarding_artifact_service_exports = {};
|
|
26
|
+
__export(forwarding_artifact_service_exports, {
|
|
27
|
+
ForwardingArtifactService: () => ForwardingArtifactService
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(forwarding_artifact_service_exports);
|
|
30
|
+
/**
|
|
31
|
+
* @license
|
|
32
|
+
* Copyright 2025 Google LLC
|
|
33
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
34
|
+
*/
|
|
35
|
+
class ForwardingArtifactService {
|
|
36
|
+
constructor(toolContext) {
|
|
37
|
+
this.toolContext = toolContext;
|
|
38
|
+
this.invocationContext = toolContext.invocationContext;
|
|
39
|
+
}
|
|
40
|
+
// TODO - b/425992518: Remove unnecessary parameters. We should rethink the
|
|
41
|
+
// abstraction layer to make it more clear.
|
|
42
|
+
async saveArtifact(request) {
|
|
43
|
+
return this.toolContext.saveArtifact(request.filename, request.artifact);
|
|
44
|
+
}
|
|
45
|
+
async loadArtifact(request) {
|
|
46
|
+
return this.toolContext.loadArtifact(request.filename, request.version);
|
|
47
|
+
}
|
|
48
|
+
async listArtifactKeys() {
|
|
49
|
+
return this.toolContext.listArtifacts();
|
|
50
|
+
}
|
|
51
|
+
async deleteArtifact(request) {
|
|
52
|
+
if (!this.toolContext.invocationContext.artifactService) {
|
|
53
|
+
throw new Error("Artifact service is not initialized.");
|
|
54
|
+
}
|
|
55
|
+
return this.toolContext.invocationContext.artifactService.deleteArtifact(
|
|
56
|
+
request
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
async listVersions(request) {
|
|
60
|
+
if (!this.toolContext.invocationContext.artifactService) {
|
|
61
|
+
throw new Error("Artifact service is not initialized.");
|
|
62
|
+
}
|
|
63
|
+
return this.toolContext.invocationContext.artifactService.listVersions(
|
|
64
|
+
request
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
listArtifactVersions(request) {
|
|
68
|
+
if (!this.toolContext.invocationContext.artifactService) {
|
|
69
|
+
throw new Error("Artifact service is not initialized.");
|
|
70
|
+
}
|
|
71
|
+
return this.toolContext.invocationContext.artifactService.listArtifactVersions(
|
|
72
|
+
request
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
getArtifactVersion(request) {
|
|
76
|
+
if (!this.toolContext.invocationContext.artifactService) {
|
|
77
|
+
throw new Error("Artifact service is not initialized.");
|
|
78
|
+
}
|
|
79
|
+
return this.toolContext.invocationContext.artifactService.getArtifactVersion(
|
|
80
|
+
request
|
|
81
|
+
);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
85
|
+
0 && (module.exports = {
|
|
86
|
+
ForwardingArtifactService
|
|
87
|
+
});
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
"use strict";
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
10
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
11
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
12
|
+
var __export = (target, all) => {
|
|
13
|
+
for (var name in all)
|
|
14
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
15
|
+
};
|
|
16
|
+
var __copyProps = (to, from, except, desc) => {
|
|
17
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
18
|
+
for (let key of __getOwnPropNames(from))
|
|
19
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
20
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
21
|
+
}
|
|
22
|
+
return to;
|
|
23
|
+
};
|
|
24
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
25
|
+
var function_tool_exports = {};
|
|
26
|
+
__export(function_tool_exports, {
|
|
27
|
+
FunctionTool: () => FunctionTool,
|
|
28
|
+
isFunctionTool: () => isFunctionTool
|
|
29
|
+
});
|
|
30
|
+
module.exports = __toCommonJS(function_tool_exports);
|
|
31
|
+
var import_genai = require("@google/genai");
|
|
32
|
+
var import_simple_zod_to_json = require("../utils/simple_zod_to_json.js");
|
|
33
|
+
var import_base_tool = require("./base_tool.js");
|
|
34
|
+
/**
|
|
35
|
+
* @license
|
|
36
|
+
* Copyright 2025 Google LLC
|
|
37
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
38
|
+
*/
|
|
39
|
+
var _a, _b;
|
|
40
|
+
function toSchema(parameters) {
|
|
41
|
+
if (parameters === void 0) {
|
|
42
|
+
return { type: import_genai.Type.OBJECT, properties: {} };
|
|
43
|
+
}
|
|
44
|
+
if ((0, import_simple_zod_to_json.isZodObject)(parameters)) {
|
|
45
|
+
return (0, import_simple_zod_to_json.zodObjectToSchema)(parameters);
|
|
46
|
+
}
|
|
47
|
+
return parameters;
|
|
48
|
+
}
|
|
49
|
+
const FUNCTION_TOOL_SIGNATURE_SYMBOL = Symbol.for("google.adk.functionTool");
|
|
50
|
+
function isFunctionTool(obj) {
|
|
51
|
+
return typeof obj === "object" && obj !== null && FUNCTION_TOOL_SIGNATURE_SYMBOL in obj && obj[FUNCTION_TOOL_SIGNATURE_SYMBOL] === true;
|
|
52
|
+
}
|
|
53
|
+
class FunctionTool extends (_b = import_base_tool.BaseTool, _a = FUNCTION_TOOL_SIGNATURE_SYMBOL, _b) {
|
|
54
|
+
/**
|
|
55
|
+
* The constructor acts as the user-friendly factory.
|
|
56
|
+
* @param options The configuration for the tool.
|
|
57
|
+
*/
|
|
58
|
+
constructor(options) {
|
|
59
|
+
var _a2;
|
|
60
|
+
const name = (_a2 = options.name) != null ? _a2 : options.execute.name;
|
|
61
|
+
if (!name) {
|
|
62
|
+
throw new Error(
|
|
63
|
+
"Tool name cannot be empty. Either name the `execute` function or provide a `name`."
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
super({
|
|
67
|
+
name,
|
|
68
|
+
description: options.description,
|
|
69
|
+
isLongRunning: options.isLongRunning
|
|
70
|
+
});
|
|
71
|
+
/** A unique symbol to identify ADK function tool class. */
|
|
72
|
+
this[_a] = true;
|
|
73
|
+
this.execute = options.execute;
|
|
74
|
+
this.parameters = options.parameters;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Provide a schema for the function.
|
|
78
|
+
*/
|
|
79
|
+
_getDeclaration() {
|
|
80
|
+
return {
|
|
81
|
+
name: this.name,
|
|
82
|
+
description: this.description,
|
|
83
|
+
parameters: toSchema(this.parameters)
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Logic for running the tool.
|
|
88
|
+
*/
|
|
89
|
+
async runAsync(req) {
|
|
90
|
+
try {
|
|
91
|
+
let validatedArgs = req.args;
|
|
92
|
+
if ((0, import_simple_zod_to_json.isZodObject)(this.parameters)) {
|
|
93
|
+
validatedArgs = this.parameters.parse(req.args);
|
|
94
|
+
}
|
|
95
|
+
return await this.execute(
|
|
96
|
+
validatedArgs,
|
|
97
|
+
req.toolContext
|
|
98
|
+
);
|
|
99
|
+
} catch (error) {
|
|
100
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
101
|
+
throw new Error(`Error in tool '${this.name}': ${errorMessage}`);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
106
|
+
0 && (module.exports = {
|
|
107
|
+
FunctionTool,
|
|
108
|
+
isFunctionTool
|
|
109
|
+
});
|