@google/adk 0.6.1 → 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/dist/cjs/agents/base_agent.js +11 -2
- package/dist/cjs/agents/context.js +1 -0
- package/dist/cjs/agents/functions.js +1 -0
- package/dist/cjs/agents/invocation_context.js +1 -0
- package/dist/cjs/agents/llm_agent.js +70 -13
- package/dist/cjs/agents/loop_agent.js +4 -0
- package/dist/cjs/agents/parallel_agent.js +4 -0
- package/dist/cjs/agents/processors/code_execution_request_processor.js +2 -0
- package/dist/cjs/agents/processors/context_compactor_request_processor.js +9 -0
- package/dist/cjs/agents/processors/tool_filter_request_processor.js +73 -0
- package/dist/cjs/agents/routed_agent.js +97 -0
- package/dist/cjs/auth/auth_handler.js +66 -1
- package/dist/cjs/auth/auth_preprocessor.js +178 -0
- package/dist/cjs/auth/auth_provider_registry.js +61 -0
- package/dist/cjs/auth/base_auth_provider.js +27 -0
- package/dist/cjs/auth/credential_service/session_state_credential_service.js +51 -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 +9 -5
- package/dist/cjs/code_executors/code_execution_utils.js +19 -0
- package/dist/cjs/code_executors/unsafe_local_code_executor.js +241 -0
- package/dist/cjs/common.js +69 -0
- package/dist/cjs/features/feature_registry.js +141 -0
- package/dist/cjs/index.js +83 -113
- package/dist/cjs/models/apigee_llm.js +2 -2
- package/dist/cjs/models/google_llm.js +18 -53
- package/dist/cjs/models/routed_llm.js +99 -0
- package/dist/cjs/plugins/base_plugin.js +39 -2
- package/dist/cjs/plugins/plugin_manager.js +39 -0
- package/dist/cjs/runner/runner.js +31 -3
- package/dist/cjs/sessions/db/operations.js +3 -10
- 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/tools/agent_tool.js +11 -4
- package/dist/cjs/tools/mcp/mcp_tool.js +7 -3
- package/dist/cjs/tools/mcp/mcp_toolset.js +1 -1
- 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/url_context_tool.js +73 -0
- package/dist/cjs/tools/vertex_ai_search_tool.js +127 -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/model_name.js +8 -2
- package/dist/cjs/utils/streaming_utils.js +333 -0
- package/dist/cjs/version.js +1 -1
- package/dist/esm/a2a/a2a_event.js +2 -0
- package/dist/esm/a2a/a2a_remote_agent.js +2 -0
- package/dist/esm/a2a/a2a_remote_agent_run_processor.js +2 -0
- package/dist/esm/a2a/a2a_remote_agent_utils.js +2 -0
- package/dist/esm/a2a/agent_card.js +2 -0
- package/dist/esm/a2a/agent_executor.js +2 -0
- package/dist/esm/a2a/agent_to_a2a.js +2 -0
- package/dist/esm/a2a/event_converter_utils.js +2 -0
- package/dist/esm/a2a/event_processor_utils.js +2 -0
- package/dist/esm/a2a/executor_context.js +2 -0
- package/dist/esm/a2a/metadata_converter_utils.js +2 -0
- package/dist/esm/a2a/part_converter_utils.js +2 -0
- package/dist/esm/agents/active_streaming_tool.js +2 -0
- package/dist/esm/agents/base_agent.js +13 -2
- package/dist/esm/agents/context.js +3 -0
- package/dist/esm/agents/functions.js +3 -0
- package/dist/esm/agents/instructions.js +2 -0
- package/dist/esm/agents/invocation_context.js +3 -0
- package/dist/esm/agents/live_request_queue.js +2 -0
- package/dist/esm/agents/llm_agent.js +72 -13
- package/dist/esm/agents/loop_agent.js +6 -0
- package/dist/esm/agents/parallel_agent.js +6 -0
- package/dist/esm/agents/processors/agent_transfer_llm_request_processor.js +2 -0
- package/dist/esm/agents/processors/base_llm_processor.js +2 -0
- package/dist/esm/agents/processors/basic_llm_request_processor.js +2 -0
- package/dist/esm/agents/processors/code_execution_request_processor.js +5 -0
- package/dist/esm/agents/processors/content_processor_utils.js +2 -0
- package/dist/esm/agents/processors/content_request_processor.js +2 -0
- package/dist/esm/agents/processors/context_compactor_request_processor.js +11 -0
- package/dist/esm/agents/processors/identity_llm_request_processor.js +2 -0
- package/dist/esm/agents/processors/instructions_llm_request_processor.js +2 -0
- package/dist/esm/agents/processors/request_confirmation_llm_request_processor.js +2 -0
- package/dist/esm/agents/processors/tool_filter_request_processor.js +44 -0
- package/dist/esm/agents/readonly_context.js +2 -0
- package/dist/esm/agents/routed_agent.js +70 -0
- package/dist/esm/agents/run_config.js +2 -0
- package/dist/esm/agents/sequential_agent.js +2 -0
- package/dist/esm/agents/transcription_entry.js +2 -0
- package/dist/esm/artifacts/base_artifact_service.js +2 -0
- package/dist/esm/artifacts/file_artifact_service.js +2 -0
- package/dist/esm/artifacts/gcs_artifact_service.js +2 -0
- package/dist/esm/artifacts/in_memory_artifact_service.js +2 -0
- package/dist/esm/artifacts/registry.js +2 -0
- package/dist/esm/auth/auth_credential.js +2 -0
- package/dist/esm/auth/auth_handler.js +68 -1
- 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 +2 -0
- package/dist/esm/auth/auth_tool.js +2 -0
- package/dist/esm/auth/base_auth_provider.js +7 -0
- package/dist/esm/auth/credential_service/base_credential_service.js +2 -0
- package/dist/esm/auth/credential_service/in_memory_credential_service.js +2 -0
- package/dist/esm/auth/credential_service/session_state_credential_service.js +23 -0
- package/dist/esm/auth/exchanger/base_credential_exchanger.js +2 -0
- package/dist/esm/auth/exchanger/credential_exchanger_registry.js +2 -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 +11 -5
- package/dist/esm/code_executors/built_in_code_executor.js +2 -0
- package/dist/esm/code_executors/code_execution_utils.js +19 -0
- package/dist/esm/code_executors/code_executor_context.js +2 -0
- package/dist/esm/code_executors/unsafe_local_code_executor.js +205 -0
- package/dist/esm/common.js +52 -3
- package/dist/esm/context/base_context_compactor.js +2 -0
- package/dist/esm/context/summarizers/base_summarizer.js +2 -0
- package/dist/esm/context/summarizers/llm_summarizer.js +2 -0
- package/dist/esm/context/token_based_context_compactor.js +2 -0
- package/dist/esm/context/truncating_context_compactor.js +2 -0
- package/dist/esm/events/compacted_event.js +2 -0
- package/dist/esm/events/event.js +2 -0
- package/dist/esm/events/event_actions.js +2 -0
- package/dist/esm/events/structured_events.js +2 -0
- package/dist/esm/examples/base_example_provider.js +2 -0
- package/dist/esm/examples/example.js +2 -0
- package/dist/esm/examples/example_util.js +2 -0
- package/dist/esm/features/feature_registry.js +107 -0
- package/dist/esm/index.js +45 -119
- package/dist/esm/index_web.js +2 -0
- package/dist/esm/memory/base_memory_service.js +2 -0
- package/dist/esm/memory/in_memory_memory_service.js +2 -0
- package/dist/esm/memory/memory_entry.js +2 -0
- package/dist/esm/models/apigee_llm.js +4 -2
- package/dist/esm/models/base_llm.js +2 -0
- package/dist/esm/models/base_llm_connection.js +2 -0
- package/dist/esm/models/gemini_llm_connection.js +2 -0
- package/dist/esm/models/google_llm.js +20 -54
- package/dist/esm/models/llm_request.js +2 -0
- package/dist/esm/models/llm_response.js +2 -0
- package/dist/esm/models/registry.js +2 -0
- package/dist/esm/models/routed_llm.js +73 -0
- package/dist/esm/plugins/base_plugin.js +41 -1
- package/dist/esm/plugins/logging_plugin.js +2 -0
- package/dist/esm/plugins/plugin_manager.js +41 -0
- package/dist/esm/plugins/security_plugin.js +2 -0
- package/dist/esm/runner/in_memory_runner.js +2 -0
- package/dist/esm/runner/runner.js +33 -3
- package/dist/esm/sessions/base_session_service.js +2 -0
- package/dist/esm/sessions/database_session_service.js +2 -0
- package/dist/esm/sessions/db/operations.js +5 -10
- package/dist/esm/sessions/db/schema.js +2 -0
- package/dist/esm/sessions/in_memory_session_service.js +2 -0
- package/dist/esm/sessions/registry.js +2 -0
- package/dist/esm/sessions/session.js +2 -0
- package/dist/esm/sessions/state.js +2 -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 +2 -0
- package/dist/esm/telemetry/setup.js +2 -0
- package/dist/esm/telemetry/tracing.js +2 -0
- package/dist/esm/tools/agent_tool.js +13 -4
- package/dist/esm/tools/base_tool.js +2 -0
- package/dist/esm/tools/base_toolset.js +2 -0
- package/dist/esm/tools/exit_loop_tool.js +2 -0
- package/dist/esm/tools/forwarding_artifact_service.js +2 -0
- package/dist/esm/tools/function_tool.js +2 -0
- package/dist/esm/tools/google_search_tool.js +2 -0
- package/dist/esm/tools/load_artifacts_tool.js +2 -0
- package/dist/esm/tools/load_memory_tool.js +2 -0
- package/dist/esm/tools/long_running_tool.js +2 -0
- package/dist/esm/tools/mcp/mcp_session_manager.js +2 -0
- package/dist/esm/tools/mcp/mcp_tool.js +9 -3
- package/dist/esm/tools/mcp/mcp_toolset.js +3 -1
- package/dist/esm/tools/preload_memory_tool.js +2 -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 +2 -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/utils/client_labels.js +2 -0
- package/dist/esm/utils/env_aware_utils.js +2 -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 +2 -0
- package/dist/esm/utils/logger.js +2 -0
- package/dist/esm/utils/model_name.js +8 -1
- package/dist/esm/utils/object_notation_utils.js +2 -0
- package/dist/esm/utils/simple_zod_to_json.js +2 -0
- package/dist/esm/utils/streaming_utils.js +307 -0
- package/dist/esm/utils/variant_utils.js +2 -0
- package/dist/esm/version.js +3 -1
- package/dist/types/agents/context.d.ts +1 -0
- package/dist/types/agents/invocation_context.d.ts +5 -0
- package/dist/types/agents/processors/tool_filter_request_processor.d.ts +14 -0
- package/dist/types/agents/routed_agent.d.ts +59 -0
- package/dist/types/auth/auth_credential.d.ts +17 -0
- package/dist/types/auth/auth_handler.d.ts +1 -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/base_auth_provider.d.ts +20 -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 +12 -5
- 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 +4 -4
- package/dist/types/code_executors/code_execution_utils.d.ts +29 -1
- package/dist/types/code_executors/unsafe_local_code_executor.d.ts +48 -0
- package/dist/types/common.d.ts +29 -3
- package/dist/types/features/feature_registry.d.ts +66 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/memory/base_memory_service.d.ts +6 -0
- package/dist/types/memory/memory_entry.d.ts +11 -5
- package/dist/types/models/apigee_llm.d.ts +1 -1
- package/dist/types/models/base_llm.d.ts +1 -1
- package/dist/types/models/google_llm.d.ts +1 -1
- package/dist/types/models/llm_request.d.ts +4 -0
- package/dist/types/models/routed_llm.d.ts +38 -0
- package/dist/types/plugins/base_plugin.d.ts +49 -0
- package/dist/types/plugins/plugin_manager.d.ts +22 -1
- package/dist/types/runner/runner.d.ts +1 -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/tools/mcp/mcp_tool.d.ts +7 -1
- package/dist/types/tools/mcp/mcp_toolset.d.ts +5 -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/url_context_tool.d.ts +17 -0
- package/dist/types/tools/vertex_ai_search_tool.d.ts +55 -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/model_name.d.ts +4 -0
- package/dist/types/utils/streaming_utils.d.ts +40 -0
- package/dist/types/version.d.ts +1 -1
- package/dist/web/a2a/a2a_event.js +2 -0
- package/dist/web/a2a/a2a_remote_agent.js +2 -0
- package/dist/web/a2a/a2a_remote_agent_run_processor.js +2 -0
- package/dist/web/a2a/a2a_remote_agent_utils.js +2 -0
- package/dist/web/a2a/agent_card.js +2 -0
- package/dist/web/a2a/agent_executor.js +2 -0
- package/dist/web/a2a/agent_to_a2a.js +2 -0
- package/dist/web/a2a/event_converter_utils.js +2 -0
- package/dist/web/a2a/event_processor_utils.js +2 -0
- package/dist/web/a2a/executor_context.js +2 -0
- package/dist/web/a2a/metadata_converter_utils.js +2 -0
- package/dist/web/a2a/part_converter_utils.js +2 -0
- package/dist/web/agents/active_streaming_tool.js +2 -0
- package/dist/web/agents/base_agent.js +13 -2
- package/dist/web/agents/context.js +3 -0
- package/dist/web/agents/functions.js +3 -0
- package/dist/web/agents/instructions.js +2 -0
- package/dist/web/agents/invocation_context.js +3 -0
- package/dist/web/agents/live_request_queue.js +2 -0
- package/dist/web/agents/llm_agent.js +72 -13
- package/dist/web/agents/loop_agent.js +6 -0
- package/dist/web/agents/parallel_agent.js +6 -0
- package/dist/web/agents/processors/agent_transfer_llm_request_processor.js +2 -0
- package/dist/web/agents/processors/base_llm_processor.js +2 -0
- package/dist/web/agents/processors/basic_llm_request_processor.js +2 -0
- package/dist/web/agents/processors/code_execution_request_processor.js +5 -0
- package/dist/web/agents/processors/content_processor_utils.js +2 -0
- package/dist/web/agents/processors/content_request_processor.js +2 -0
- package/dist/web/agents/processors/context_compactor_request_processor.js +11 -0
- package/dist/web/agents/processors/identity_llm_request_processor.js +2 -0
- package/dist/web/agents/processors/instructions_llm_request_processor.js +2 -0
- package/dist/web/agents/processors/request_confirmation_llm_request_processor.js +2 -0
- package/dist/web/agents/processors/tool_filter_request_processor.js +62 -0
- package/dist/web/agents/readonly_context.js +2 -0
- package/dist/web/agents/routed_agent.js +138 -0
- package/dist/web/agents/run_config.js +2 -0
- package/dist/web/agents/sequential_agent.js +2 -0
- package/dist/web/agents/transcription_entry.js +2 -0
- package/dist/web/artifacts/base_artifact_service.js +2 -0
- package/dist/web/artifacts/file_artifact_service.js +2 -0
- package/dist/web/artifacts/gcs_artifact_service.js +2 -0
- package/dist/web/artifacts/in_memory_artifact_service.js +2 -0
- package/dist/web/artifacts/registry.js +2 -0
- package/dist/web/auth/auth_credential.js +2 -0
- package/dist/web/auth/auth_handler.js +85 -1
- 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 +2 -0
- package/dist/web/auth/auth_tool.js +2 -0
- package/dist/web/auth/base_auth_provider.js +7 -0
- package/dist/web/auth/credential_service/base_credential_service.js +2 -0
- package/dist/web/auth/credential_service/in_memory_credential_service.js +2 -0
- package/dist/web/auth/credential_service/session_state_credential_service.js +23 -0
- package/dist/web/auth/exchanger/base_credential_exchanger.js +2 -0
- package/dist/web/auth/exchanger/credential_exchanger_registry.js +2 -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 +11 -5
- package/dist/web/code_executors/built_in_code_executor.js +2 -0
- package/dist/web/code_executors/code_execution_utils.js +19 -0
- package/dist/web/code_executors/code_executor_context.js +2 -0
- package/dist/web/code_executors/unsafe_local_code_executor.js +203 -0
- package/dist/web/common.js +52 -3
- package/dist/web/context/base_context_compactor.js +2 -0
- package/dist/web/context/summarizers/base_summarizer.js +2 -0
- package/dist/web/context/summarizers/llm_summarizer.js +2 -0
- package/dist/web/context/token_based_context_compactor.js +2 -0
- package/dist/web/context/truncating_context_compactor.js +2 -0
- package/dist/web/events/compacted_event.js +2 -0
- package/dist/web/events/event.js +2 -0
- package/dist/web/events/event_actions.js +2 -0
- package/dist/web/events/structured_events.js +2 -0
- package/dist/web/examples/base_example_provider.js +2 -0
- package/dist/web/examples/example.js +2 -0
- package/dist/web/examples/example_util.js +2 -0
- package/dist/web/features/feature_registry.js +107 -0
- package/dist/web/index.js +45 -13
- package/dist/web/index_web.js +2 -0
- package/dist/web/memory/base_memory_service.js +2 -0
- package/dist/web/memory/in_memory_memory_service.js +2 -0
- package/dist/web/memory/memory_entry.js +2 -0
- package/dist/web/models/apigee_llm.js +4 -2
- package/dist/web/models/base_llm.js +2 -0
- package/dist/web/models/base_llm_connection.js +2 -0
- package/dist/web/models/gemini_llm_connection.js +2 -0
- package/dist/web/models/google_llm.js +37 -59
- package/dist/web/models/llm_request.js +2 -0
- package/dist/web/models/llm_response.js +2 -0
- package/dist/web/models/registry.js +2 -0
- package/dist/web/models/routed_llm.js +122 -0
- package/dist/web/plugins/base_plugin.js +41 -1
- package/dist/web/plugins/logging_plugin.js +2 -0
- package/dist/web/plugins/plugin_manager.js +41 -0
- package/dist/web/plugins/security_plugin.js +2 -0
- package/dist/web/runner/in_memory_runner.js +2 -0
- package/dist/web/runner/runner.js +33 -3
- package/dist/web/sessions/base_session_service.js +2 -0
- package/dist/web/sessions/database_session_service.js +2 -0
- package/dist/web/sessions/db/operations.js +5 -10
- package/dist/web/sessions/db/schema.js +2 -0
- package/dist/web/sessions/in_memory_session_service.js +2 -0
- package/dist/web/sessions/registry.js +2 -0
- package/dist/web/sessions/session.js +2 -0
- package/dist/web/sessions/state.js +2 -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 +2 -0
- package/dist/web/telemetry/setup.js +2 -0
- package/dist/web/telemetry/tracing.js +2 -0
- package/dist/web/tools/agent_tool.js +13 -4
- package/dist/web/tools/base_tool.js +2 -0
- package/dist/web/tools/base_toolset.js +2 -0
- package/dist/web/tools/exit_loop_tool.js +2 -0
- package/dist/web/tools/forwarding_artifact_service.js +2 -0
- package/dist/web/tools/function_tool.js +2 -0
- package/dist/web/tools/google_search_tool.js +2 -0
- package/dist/web/tools/load_artifacts_tool.js +2 -0
- package/dist/web/tools/load_memory_tool.js +2 -0
- package/dist/web/tools/long_running_tool.js +2 -0
- package/dist/web/tools/mcp/mcp_session_manager.js +2 -0
- package/dist/web/tools/mcp/mcp_tool.js +9 -3
- package/dist/web/tools/mcp/mcp_toolset.js +3 -1
- package/dist/web/tools/preload_memory_tool.js +2 -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 +2 -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/utils/client_labels.js +2 -0
- package/dist/web/utils/env_aware_utils.js +2 -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 +2 -0
- package/dist/web/utils/logger.js +2 -0
- package/dist/web/utils/model_name.js +8 -1
- package/dist/web/utils/object_notation_utils.js +2 -0
- package/dist/web/utils/simple_zod_to_json.js +2 -0
- package/dist/web/utils/streaming_utils.js +325 -0
- package/dist/web/utils/variant_utils.js +2 -0
- package/dist/web/version.js +3 -1
- package/package.json +20 -18
- package/dist/cjs/index.js.map +0 -7
- package/dist/esm/index.js.map +0 -7
- package/dist/web/index.js.map +0 -7
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
"use strict";
|
|
8
|
+
var __create = Object.create;
|
|
9
|
+
var __defProp = Object.defineProperty;
|
|
10
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
11
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
12
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
13
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
14
|
+
var __export = (target, all) => {
|
|
15
|
+
for (var name in all)
|
|
16
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
17
|
+
};
|
|
18
|
+
var __copyProps = (to, from, except, desc) => {
|
|
19
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
20
|
+
for (let key of __getOwnPropNames(from))
|
|
21
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
22
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
23
|
+
}
|
|
24
|
+
return to;
|
|
25
|
+
};
|
|
26
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
27
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
28
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
29
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
30
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
31
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
32
|
+
mod
|
|
33
|
+
));
|
|
34
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
35
|
+
var loader_exports = {};
|
|
36
|
+
__export(loader_exports, {
|
|
37
|
+
loadAllSkillsInDir: () => loadAllSkillsInDir,
|
|
38
|
+
loadSkillFromDir: () => loadSkillFromDir,
|
|
39
|
+
parseSkillMdContent: () => parseSkillMdContent,
|
|
40
|
+
validateSkillDir: () => validateSkillDir
|
|
41
|
+
});
|
|
42
|
+
module.exports = __toCommonJS(loader_exports);
|
|
43
|
+
var import_js_yaml = __toESM(require("js-yaml"), 1);
|
|
44
|
+
var fs = __toESM(require("node:fs/promises"), 1);
|
|
45
|
+
var path = __toESM(require("node:path"), 1);
|
|
46
|
+
var import_logger = require("../utils/logger.js");
|
|
47
|
+
var import_skill = require("./skill.js");
|
|
48
|
+
/**
|
|
49
|
+
* @license
|
|
50
|
+
* Copyright 2026 Google LLC
|
|
51
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
52
|
+
*/
|
|
53
|
+
const ALLOWED_FRONTMATTER_KEYS = /* @__PURE__ */ new Set([
|
|
54
|
+
"name",
|
|
55
|
+
"description",
|
|
56
|
+
"license",
|
|
57
|
+
"allowed-tools",
|
|
58
|
+
"metadata",
|
|
59
|
+
"compatibility"
|
|
60
|
+
]);
|
|
61
|
+
const IGNORED_DIRECTORIES = /* @__PURE__ */ new Set([
|
|
62
|
+
"__pycache__",
|
|
63
|
+
".pytest_cache",
|
|
64
|
+
".mypy_cache",
|
|
65
|
+
".ruff_cache",
|
|
66
|
+
"node_modules",
|
|
67
|
+
"coverage",
|
|
68
|
+
"venv",
|
|
69
|
+
".venv",
|
|
70
|
+
"env",
|
|
71
|
+
".env",
|
|
72
|
+
".git",
|
|
73
|
+
".vscode",
|
|
74
|
+
".idea"
|
|
75
|
+
]);
|
|
76
|
+
const IGNORED_EXTENSIONS = /* @__PURE__ */ new Set([
|
|
77
|
+
".pyc",
|
|
78
|
+
".pyo",
|
|
79
|
+
".pyd",
|
|
80
|
+
".tsbuildinfo",
|
|
81
|
+
".DS_Store"
|
|
82
|
+
]);
|
|
83
|
+
async function loadDir(directoryPath) {
|
|
84
|
+
const files = {};
|
|
85
|
+
async function walk(dir) {
|
|
86
|
+
const entries = await fs.readdir(dir, { withFileTypes: true });
|
|
87
|
+
for (const entry of entries) {
|
|
88
|
+
const fullPath = path.join(dir, entry.name);
|
|
89
|
+
if (entry.isDirectory()) {
|
|
90
|
+
if (IGNORED_DIRECTORIES.has(entry.name)) {
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
93
|
+
await walk(fullPath);
|
|
94
|
+
} else if (entry.isFile()) {
|
|
95
|
+
const relativePath = path.relative(directoryPath, fullPath);
|
|
96
|
+
if (IGNORED_EXTENSIONS.has(path.extname(entry.name))) {
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
99
|
+
const fileData = await fs.readFile(fullPath);
|
|
100
|
+
try {
|
|
101
|
+
files[relativePath] = fileData.toString("utf-8");
|
|
102
|
+
} catch (_e) {
|
|
103
|
+
files[relativePath] = fileData;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
try {
|
|
109
|
+
const stats = await fs.stat(directoryPath);
|
|
110
|
+
if (stats.isDirectory()) {
|
|
111
|
+
await walk(directoryPath);
|
|
112
|
+
}
|
|
113
|
+
} catch (e) {
|
|
114
|
+
import_logger.logger.warn(
|
|
115
|
+
`Failed to load directory '${directoryPath}': ${e.message}`
|
|
116
|
+
);
|
|
117
|
+
}
|
|
118
|
+
return files;
|
|
119
|
+
}
|
|
120
|
+
function parseSkillMdContent(content) {
|
|
121
|
+
if (!content.startsWith("---")) {
|
|
122
|
+
throw new Error("SKILL.md must start with YAML frontmatter (---)");
|
|
123
|
+
}
|
|
124
|
+
const parts = content.split("---", 3);
|
|
125
|
+
if (parts.length < 3) {
|
|
126
|
+
throw new Error("SKILL.md frontmatter not properly closed with ---");
|
|
127
|
+
}
|
|
128
|
+
const frontmatterStr = parts[1];
|
|
129
|
+
const body = parts[2].trim();
|
|
130
|
+
try {
|
|
131
|
+
const parsed = import_js_yaml.default.load(frontmatterStr);
|
|
132
|
+
if (typeof parsed !== "object" || parsed === null) {
|
|
133
|
+
throw new Error("SKILL.md frontmatter must be a YAML mapping");
|
|
134
|
+
}
|
|
135
|
+
const frontmatter = import_skill.FrontmatterSchema.parse(parsed);
|
|
136
|
+
return { frontmatter, body };
|
|
137
|
+
} catch (e) {
|
|
138
|
+
throw new Error(`Invalid YAML in frontmatter: ${e.message}`);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
async function loadSkillFromDir(skillDir) {
|
|
142
|
+
const resolvedDir = path.resolve(skillDir);
|
|
143
|
+
const skill = await loadSkillFile(skillDir);
|
|
144
|
+
const referencesDir = path.join(resolvedDir, "references");
|
|
145
|
+
const assetsDir = path.join(resolvedDir, "assets");
|
|
146
|
+
const scriptsDir = path.join(resolvedDir, "scripts");
|
|
147
|
+
const [references, assets, rawScripts] = await Promise.all([
|
|
148
|
+
loadDir(referencesDir),
|
|
149
|
+
loadDir(assetsDir),
|
|
150
|
+
loadDir(scriptsDir)
|
|
151
|
+
]);
|
|
152
|
+
const scripts = {};
|
|
153
|
+
for (const [name, src] of Object.entries(rawScripts)) {
|
|
154
|
+
if (typeof src === "string") {
|
|
155
|
+
scripts[name] = { src };
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
const resources = { references, assets, scripts };
|
|
159
|
+
return {
|
|
160
|
+
...skill,
|
|
161
|
+
resources
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
async function validateSkillDir(skillDir) {
|
|
165
|
+
const problems = [];
|
|
166
|
+
const resolvedDir = path.resolve(skillDir);
|
|
167
|
+
let skill;
|
|
168
|
+
try {
|
|
169
|
+
skill = await loadSkillFile(resolvedDir);
|
|
170
|
+
} catch (e) {
|
|
171
|
+
return [e.message];
|
|
172
|
+
}
|
|
173
|
+
try {
|
|
174
|
+
const keys = Object.keys(skill.frontmatter);
|
|
175
|
+
const unknown = keys.filter((k) => !ALLOWED_FRONTMATTER_KEYS.has(k));
|
|
176
|
+
if (unknown.length > 0) {
|
|
177
|
+
problems.push(
|
|
178
|
+
`Unknown frontmatter fields: [${unknown.sort().join(", ")}]`
|
|
179
|
+
);
|
|
180
|
+
}
|
|
181
|
+
const dirName = path.basename(resolvedDir);
|
|
182
|
+
if (dirName !== skill.frontmatter.name) {
|
|
183
|
+
problems.push(
|
|
184
|
+
`Skill name '${skill.frontmatter.name}' does not match directory name '${dirName}'.`
|
|
185
|
+
);
|
|
186
|
+
}
|
|
187
|
+
} catch (e) {
|
|
188
|
+
problems.push(e.message);
|
|
189
|
+
}
|
|
190
|
+
return problems;
|
|
191
|
+
}
|
|
192
|
+
async function loadSkillFile(skillDir) {
|
|
193
|
+
const resolvedDir = path.resolve(skillDir);
|
|
194
|
+
let skillMdPath = "";
|
|
195
|
+
let content = "";
|
|
196
|
+
try {
|
|
197
|
+
const entries = await fs.readdir(resolvedDir, { withFileTypes: true });
|
|
198
|
+
for (const entry of entries) {
|
|
199
|
+
if (entry.isFile() && entry.name.toLowerCase() === "skill.md") {
|
|
200
|
+
const p = path.join(resolvedDir, entry.name);
|
|
201
|
+
try {
|
|
202
|
+
content = await fs.readFile(p, "utf-8");
|
|
203
|
+
skillMdPath = p;
|
|
204
|
+
break;
|
|
205
|
+
} catch (_e) {
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
} catch (e) {
|
|
210
|
+
import_logger.logger.warn(
|
|
211
|
+
`Failed to load directory '${skillDir}': ${e.message}`
|
|
212
|
+
);
|
|
213
|
+
}
|
|
214
|
+
if (!skillMdPath) {
|
|
215
|
+
throw new Error(
|
|
216
|
+
`SKILL.md (or any case variation like skill.md) not found in '${skillDir}'.`
|
|
217
|
+
);
|
|
218
|
+
}
|
|
219
|
+
const { frontmatter: parsed, body } = parseSkillMdContent(content);
|
|
220
|
+
const frontmatter = import_skill.FrontmatterSchema.parse(parsed);
|
|
221
|
+
const dirName = path.basename(resolvedDir);
|
|
222
|
+
if (dirName !== frontmatter.name) {
|
|
223
|
+
throw new Error(
|
|
224
|
+
`Skill name '${frontmatter.name}' does not match directory name '${dirName}'.`
|
|
225
|
+
);
|
|
226
|
+
}
|
|
227
|
+
return {
|
|
228
|
+
frontmatter,
|
|
229
|
+
instructions: body
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
async function loadAllSkillsInDir(skillsBasePath) {
|
|
233
|
+
const resolvedPath = path.resolve(skillsBasePath);
|
|
234
|
+
const skills = {};
|
|
235
|
+
async function scanDir(currentDir) {
|
|
236
|
+
let entries;
|
|
237
|
+
try {
|
|
238
|
+
entries = await fs.readdir(currentDir, { withFileTypes: true });
|
|
239
|
+
} catch (_e) {
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
let isSkillDir = false;
|
|
243
|
+
if (currentDir !== resolvedPath) {
|
|
244
|
+
for (const entry of entries) {
|
|
245
|
+
if (entry.isFile() && entry.name.toLowerCase() === "skill.md") {
|
|
246
|
+
isSkillDir = true;
|
|
247
|
+
break;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
if (isSkillDir) {
|
|
252
|
+
try {
|
|
253
|
+
const skill = await loadSkillFromDir(currentDir);
|
|
254
|
+
skills[skill.frontmatter.name] = skill;
|
|
255
|
+
} catch (e) {
|
|
256
|
+
import_logger.logger.warn(`Skipping invalid skill in '${currentDir}':`, e);
|
|
257
|
+
}
|
|
258
|
+
} else {
|
|
259
|
+
for (const entry of entries) {
|
|
260
|
+
if (entry.isDirectory()) {
|
|
261
|
+
if (IGNORED_DIRECTORIES.has(entry.name)) {
|
|
262
|
+
continue;
|
|
263
|
+
}
|
|
264
|
+
await scanDir(path.join(currentDir, entry.name));
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
try {
|
|
270
|
+
await fs.readdir(resolvedPath);
|
|
271
|
+
await scanDir(resolvedPath);
|
|
272
|
+
} catch (e) {
|
|
273
|
+
import_logger.logger.warn(`Skills base path '${skillsBasePath}' is not a directory.`, e);
|
|
274
|
+
}
|
|
275
|
+
return skills;
|
|
276
|
+
}
|
|
277
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
278
|
+
0 && (module.exports = {
|
|
279
|
+
loadAllSkillsInDir,
|
|
280
|
+
loadSkillFromDir,
|
|
281
|
+
parseSkillMdContent,
|
|
282
|
+
validateSkillDir
|
|
283
|
+
});
|
|
@@ -0,0 +1,58 @@
|
|
|
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 prompt_exports = {};
|
|
26
|
+
__export(prompt_exports, {
|
|
27
|
+
formatSkillsAsXml: () => formatSkillsAsXml
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(prompt_exports);
|
|
30
|
+
/**
|
|
31
|
+
* @license
|
|
32
|
+
* Copyright 2026 Google LLC
|
|
33
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
34
|
+
*/
|
|
35
|
+
function escapeHtml(unsafe) {
|
|
36
|
+
return unsafe.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
|
|
37
|
+
}
|
|
38
|
+
function formatSkillsAsXml(skills) {
|
|
39
|
+
if (!skills || skills.length === 0) {
|
|
40
|
+
return "<available_skills>\n</available_skills>";
|
|
41
|
+
}
|
|
42
|
+
const lines = ["<available_skills>"];
|
|
43
|
+
for (const item of skills) {
|
|
44
|
+
const frontmatter = "frontmatter" in item ? item.frontmatter : item;
|
|
45
|
+
lines.push(" <skill>");
|
|
46
|
+
lines.push(` <name>${escapeHtml(frontmatter.name)}</name>`);
|
|
47
|
+
lines.push(
|
|
48
|
+
` <description>${escapeHtml(frontmatter.description)}</description>`
|
|
49
|
+
);
|
|
50
|
+
lines.push(" </skill>");
|
|
51
|
+
}
|
|
52
|
+
lines.push("</available_skills>");
|
|
53
|
+
return lines.join("\n");
|
|
54
|
+
}
|
|
55
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
56
|
+
0 && (module.exports = {
|
|
57
|
+
formatSkillsAsXml
|
|
58
|
+
});
|
|
@@ -0,0 +1,78 @@
|
|
|
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 skill_exports = {};
|
|
26
|
+
__export(skill_exports, {
|
|
27
|
+
FrontmatterSchema: () => FrontmatterSchema,
|
|
28
|
+
SNAKE_OR_KEBAB_NAME_PATTERN: () => SNAKE_OR_KEBAB_NAME_PATTERN
|
|
29
|
+
});
|
|
30
|
+
module.exports = __toCommonJS(skill_exports);
|
|
31
|
+
var import_zod = require("zod");
|
|
32
|
+
/**
|
|
33
|
+
* @license
|
|
34
|
+
* Copyright 2026 Google LLC
|
|
35
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
36
|
+
*/
|
|
37
|
+
const SNAKE_OR_KEBAB_NAME_PATTERN = /^([a-z0-9]+(-[a-z0-9]+)*|[a-z0-9]+(_[a-z0-9]+)*)$/;
|
|
38
|
+
const FrontmatterSchema = import_zod.z.preprocess(
|
|
39
|
+
(data) => {
|
|
40
|
+
if (typeof data === "object" && data !== null) {
|
|
41
|
+
const obj = data;
|
|
42
|
+
if ("allowed-tools" in obj && !("allowedTools" in obj)) {
|
|
43
|
+
return {
|
|
44
|
+
...obj,
|
|
45
|
+
allowedTools: obj["allowed-tools"]
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return data;
|
|
50
|
+
},
|
|
51
|
+
import_zod.z.object({
|
|
52
|
+
name: import_zod.z.string().regex(SNAKE_OR_KEBAB_NAME_PATTERN, {
|
|
53
|
+
message: "name must be lowercase kebab-case (a-z, 0-9, hyphens) or snake_case (a-z, 0-9, underscores), with no leading, trailing, or consecutive delimiters. Mixing hyphens and underscores is not allowed."
|
|
54
|
+
}).max(64),
|
|
55
|
+
description: import_zod.z.string().min(1).max(1024),
|
|
56
|
+
license: import_zod.z.string().optional(),
|
|
57
|
+
compatibility: import_zod.z.string().max(500).optional(),
|
|
58
|
+
"allowed-tools": import_zod.z.string().optional(),
|
|
59
|
+
metadata: import_zod.z.record(import_zod.z.string(), import_zod.z.any()).default({}).refine(
|
|
60
|
+
(data) => {
|
|
61
|
+
if ("adk_additional_tools" in data) {
|
|
62
|
+
return Array.isArray(data.adk_additional_tools) && data.adk_additional_tools.every(
|
|
63
|
+
(item) => typeof item === "string"
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
return true;
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
message: "adk_additional_tools must be a list of strings"
|
|
70
|
+
}
|
|
71
|
+
)
|
|
72
|
+
}).loose()
|
|
73
|
+
);
|
|
74
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
75
|
+
0 && (module.exports = {
|
|
76
|
+
FrontmatterSchema,
|
|
77
|
+
SNAKE_OR_KEBAB_NAME_PATTERN
|
|
78
|
+
});
|
|
@@ -93,7 +93,7 @@ class AgentTool extends (_b = import_base_tool.BaseTool, _a = AGENT_TOOL_SIGNATU
|
|
|
93
93
|
args,
|
|
94
94
|
toolContext
|
|
95
95
|
}) {
|
|
96
|
-
var _a2, _b2, _c, _d;
|
|
96
|
+
var _a2, _b2, _c, _d, _e, _f;
|
|
97
97
|
if (this.skipSummarization) {
|
|
98
98
|
toolContext.actions.skipSummarization = true;
|
|
99
99
|
}
|
|
@@ -116,24 +116,31 @@ class AgentTool extends (_b = import_base_tool.BaseTool, _a = AGENT_TOOL_SIGNATU
|
|
|
116
116
|
memoryService: (_b2 = toolContext.invocationContext.memoryService) != null ? _b2 : new import_in_memory_memory_service.InMemoryMemoryService(),
|
|
117
117
|
credentialService: toolContext.invocationContext.credentialService
|
|
118
118
|
});
|
|
119
|
-
const session = await runner.sessionService.
|
|
119
|
+
const session = await runner.sessionService.getOrCreateSession({
|
|
120
120
|
appName: this.agent.name,
|
|
121
121
|
userId: toolContext.invocationContext.userId,
|
|
122
122
|
sessionId: toolContext.invocationContext.session.id,
|
|
123
123
|
state: toolContext.state.toRecord()
|
|
124
124
|
});
|
|
125
|
+
if ((_c = toolContext.abortSignal) == null ? void 0 : _c.aborted) {
|
|
126
|
+
return "";
|
|
127
|
+
}
|
|
125
128
|
let lastEvent;
|
|
126
129
|
for await (const event of runner.runAsync({
|
|
127
130
|
userId: session.userId,
|
|
128
131
|
sessionId: session.id,
|
|
129
|
-
newMessage: content
|
|
132
|
+
newMessage: content,
|
|
133
|
+
abortSignal: toolContext.abortSignal
|
|
130
134
|
})) {
|
|
135
|
+
if ((_d = toolContext.abortSignal) == null ? void 0 : _d.aborted) {
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
131
138
|
if (event.actions.stateDelta) {
|
|
132
139
|
toolContext.state.update(event.actions.stateDelta);
|
|
133
140
|
}
|
|
134
141
|
lastEvent = event;
|
|
135
142
|
}
|
|
136
|
-
if (!((
|
|
143
|
+
if (!((_f = (_e = lastEvent == null ? void 0 : lastEvent.content) == null ? void 0 : _e.parts) == null ? void 0 : _f.length)) {
|
|
137
144
|
return "";
|
|
138
145
|
}
|
|
139
146
|
const hasOutputSchema = (0, import_llm_agent.isLlmAgent)(this.agent) && this.agent.outputSchema;
|
|
@@ -35,10 +35,11 @@ var import_base_tool = require("../base_tool.js");
|
|
|
35
35
|
* SPDX-License-Identifier: Apache-2.0
|
|
36
36
|
*/
|
|
37
37
|
class MCPTool extends import_base_tool.BaseTool {
|
|
38
|
-
constructor(mcpTool, mcpSessionManager) {
|
|
38
|
+
constructor(mcpTool, mcpSessionManager, originalName) {
|
|
39
39
|
super({ name: mcpTool.name, description: mcpTool.description || "" });
|
|
40
40
|
this.mcpTool = mcpTool;
|
|
41
41
|
this.mcpSessionManager = mcpSessionManager;
|
|
42
|
+
this.originalName = originalName || mcpTool.name;
|
|
42
43
|
}
|
|
43
44
|
_getDeclaration() {
|
|
44
45
|
return {
|
|
@@ -53,8 +54,11 @@ class MCPTool extends import_base_tool.BaseTool {
|
|
|
53
54
|
async runAsync(request) {
|
|
54
55
|
const session = await this.mcpSessionManager.createSession();
|
|
55
56
|
const callRequest = {};
|
|
56
|
-
callRequest.params = { name: this.
|
|
57
|
-
|
|
57
|
+
callRequest.params = { name: this.originalName, arguments: request.args };
|
|
58
|
+
const result = await session.callTool(callRequest.params, void 0, {
|
|
59
|
+
signal: request.toolContext.abortSignal
|
|
60
|
+
});
|
|
61
|
+
return result;
|
|
58
62
|
}
|
|
59
63
|
}
|
|
60
64
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -53,7 +53,7 @@ class MCPToolset extends import_base_toolset.BaseToolset {
|
|
|
53
53
|
...tool,
|
|
54
54
|
name: this.prefix ? `${this.prefix}_${tool.name}` : tool.name
|
|
55
55
|
};
|
|
56
|
-
return new import_mcp_tool.MCPTool(toolWithPrefix, this.mcpSessionManager);
|
|
56
|
+
return new import_mcp_tool.MCPTool(toolWithPrefix, this.mcpSessionManager, tool.name);
|
|
57
57
|
});
|
|
58
58
|
}
|
|
59
59
|
async close() {
|
|
@@ -0,0 +1,76 @@
|
|
|
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 __decorateClass = (decorators, target, key, kind) => {
|
|
26
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
27
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
28
|
+
if (decorator = decorators[i])
|
|
29
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
30
|
+
if (kind && result) __defProp(target, key, result);
|
|
31
|
+
return result;
|
|
32
|
+
};
|
|
33
|
+
var list_skills_tool_exports = {};
|
|
34
|
+
__export(list_skills_tool_exports, {
|
|
35
|
+
ListSkillsTool: () => ListSkillsTool
|
|
36
|
+
});
|
|
37
|
+
module.exports = __toCommonJS(list_skills_tool_exports);
|
|
38
|
+
var import_genai = require("@google/genai");
|
|
39
|
+
var import_prompt = require("../../skills/prompt.js");
|
|
40
|
+
var import_experimental = require("../../utils/experimental.js");
|
|
41
|
+
var import_base_tool = require("../base_tool.js");
|
|
42
|
+
/**
|
|
43
|
+
* @license
|
|
44
|
+
* Copyright 2026 Google LLC
|
|
45
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
46
|
+
*/
|
|
47
|
+
let ListSkillsTool = class extends import_base_tool.BaseTool {
|
|
48
|
+
constructor(toolset) {
|
|
49
|
+
super({
|
|
50
|
+
name: "list_skills",
|
|
51
|
+
description: "Lists all available skills with their names and descriptions."
|
|
52
|
+
});
|
|
53
|
+
this.toolset = toolset;
|
|
54
|
+
}
|
|
55
|
+
_getDeclaration() {
|
|
56
|
+
return {
|
|
57
|
+
name: this.name,
|
|
58
|
+
description: this.description,
|
|
59
|
+
parameters: {
|
|
60
|
+
type: import_genai.Type.OBJECT,
|
|
61
|
+
properties: {}
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
async runAsync(_request) {
|
|
66
|
+
const skills = Object.values(this.toolset.skills);
|
|
67
|
+
return (0, import_prompt.formatSkillsAsXml)(skills);
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
ListSkillsTool = __decorateClass([
|
|
71
|
+
import_experimental.experimental
|
|
72
|
+
], ListSkillsTool);
|
|
73
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
74
|
+
0 && (module.exports = {
|
|
75
|
+
ListSkillsTool
|
|
76
|
+
});
|