@google/adk 1.1.0 → 1.3.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 +19 -1
- package/dist/cjs/agents/functions.js +4 -0
- package/dist/cjs/agents/instructions.js +81 -33
- package/dist/cjs/agents/invocation_context.js +0 -1
- package/dist/cjs/agents/llm_agent.js +52 -5
- package/dist/cjs/agents/processors/agent_transfer_llm_request_processor.js +7 -0
- package/dist/cjs/agents/processors/basic_llm_request_processor.js +8 -1
- package/dist/cjs/agents/processors/content_processor_utils.js +37 -24
- package/dist/cjs/agents/processors/content_request_processor.js +7 -0
- package/dist/cjs/agents/processors/context_compactor_request_processor.js +12 -0
- package/dist/cjs/agents/processors/identity_llm_request_processor.js +7 -0
- package/dist/cjs/agents/processors/instructions_llm_request_processor.js +5 -0
- package/dist/cjs/agents/processors/request_confirmation_llm_request_processor.js +9 -1
- package/dist/cjs/agents/processors/tool_filter_request_processor.js +7 -1
- package/dist/cjs/auth/auth_preprocessor.js +12 -10
- package/dist/cjs/auth/oauth2/oauth2_discovery.js +26 -2
- package/dist/cjs/code_executors/agent_engine_sandbox_code_executor.js +305 -0
- package/dist/cjs/code_executors/code_execution_utils.js +1 -1
- package/dist/cjs/code_executors/code_executor_context.js +7 -7
- package/dist/cjs/common.js +50 -0
- package/dist/cjs/context/summarizers/llm_summarizer.js +11 -0
- package/dist/cjs/context/token_based_context_compactor.js +1 -1
- package/dist/cjs/events/event.js +4 -2
- package/dist/cjs/index.js +14 -0
- package/dist/cjs/integrations/agent_registry/agent_registry.js +362 -0
- package/dist/cjs/integrations/agent_registry/agent_registry_mcp_toolset.js +122 -0
- package/dist/cjs/integrations/agent_registry/helpers.js +57 -0
- package/dist/cjs/integrations/agent_registry/types.js +50 -0
- package/dist/cjs/memory/vertex_ai_memory_bank_service.js +496 -0
- package/dist/cjs/models/gemini_llm_connection.js +62 -19
- package/dist/cjs/models/google_llm.js +26 -8
- package/dist/cjs/plugins/security_plugin.js +16 -0
- package/dist/cjs/runner/in_memory_runner.js +10 -5
- package/dist/cjs/runner/runner.js +32 -2
- package/dist/cjs/sessions/base_session_service.js +13 -2
- package/dist/cjs/sessions/database_session_service.js +51 -5
- package/dist/cjs/sessions/db/schema.js +45 -10
- package/dist/cjs/sessions/in_memory_session_service.js +72 -15
- package/dist/cjs/sessions/registry.js +4 -0
- package/dist/cjs/sessions/vertex_ai_session_service.js +429 -0
- package/dist/cjs/skills/gcp_skill_registry.js +104 -0
- package/dist/cjs/skills/loader.js +65 -0
- package/dist/cjs/skills/skill_registry.js +27 -0
- package/dist/cjs/tools/agent_tool.js +10 -5
- package/dist/cjs/tools/exit_loop_tool.js +9 -0
- package/dist/cjs/tools/function_tool.js +7 -2
- package/dist/cjs/tools/google_maps_grounding_tool.js +80 -0
- package/dist/cjs/tools/long_running_tool.js +2 -1
- package/dist/cjs/tools/mcp/mcp_session_manager.js +11 -0
- package/dist/cjs/tools/mcp/mcp_tool.js +10 -6
- package/dist/cjs/tools/mcp/mcp_toolset.js +26 -3
- package/dist/cjs/tools/openapi_tool/auth/auth_helpers.js +78 -0
- package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +84 -0
- package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +133 -0
- package/dist/cjs/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +232 -0
- package/dist/cjs/tools/openapi_tool/openapi_spec_parser/operation_parser.js +224 -0
- package/dist/cjs/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +127 -0
- package/dist/cjs/tools/openapi_tool/openapi_toolset.js +133 -0
- package/dist/cjs/tools/openapi_tool/rest_api_tool.js +256 -0
- package/dist/cjs/tools/skill/load_skill_resource_tool.js +27 -28
- package/dist/cjs/tools/skill/load_skill_tool.js +12 -1
- package/dist/cjs/tools/skill/run_skill_script_tool.js +12 -1
- package/dist/cjs/tools/skill/search_skills_tool.js +108 -0
- package/dist/cjs/tools/skill/skill_toolset.js +40 -5
- package/dist/cjs/tools/vertex_rag_retrieval_tool.js +64 -0
- package/dist/cjs/utils/async_queue.js +88 -0
- package/dist/cjs/utils/case_utils.js +53 -0
- package/dist/cjs/utils/env_aware_utils.js +4 -0
- package/dist/cjs/utils/file_utils.js +28 -0
- package/dist/cjs/utils/gemini_schema_util.js +18 -0
- package/dist/cjs/utils/live_connection_utils.js +284 -0
- package/dist/cjs/utils/model_name.js +9 -0
- package/dist/cjs/utils/partial_copy.js +51 -0
- package/dist/cjs/utils/streaming_utils.js +169 -122
- package/dist/cjs/utils/vertex_ai_utils.js +50 -0
- package/dist/cjs/version.js +1 -1
- package/dist/esm/agents/base_agent.js +19 -1
- package/dist/esm/agents/functions.js +4 -0
- package/dist/esm/agents/instructions.js +81 -33
- package/dist/esm/agents/invocation_context.js +0 -1
- package/dist/esm/agents/llm_agent.js +53 -5
- package/dist/esm/agents/processors/agent_transfer_llm_request_processor.js +7 -0
- package/dist/esm/agents/processors/basic_llm_request_processor.js +8 -1
- package/dist/esm/agents/processors/content_processor_utils.js +35 -23
- package/dist/esm/agents/processors/content_request_processor.js +7 -0
- package/dist/esm/agents/processors/context_compactor_request_processor.js +12 -0
- package/dist/esm/agents/processors/identity_llm_request_processor.js +7 -0
- package/dist/esm/agents/processors/instructions_llm_request_processor.js +5 -0
- package/dist/esm/agents/processors/request_confirmation_llm_request_processor.js +9 -1
- package/dist/esm/agents/processors/tool_filter_request_processor.js +7 -1
- package/dist/esm/auth/auth_preprocessor.js +12 -10
- package/dist/esm/auth/oauth2/oauth2_discovery.js +26 -2
- package/dist/esm/code_executors/agent_engine_sandbox_code_executor.js +281 -0
- package/dist/esm/code_executors/code_execution_utils.js +1 -1
- package/dist/esm/code_executors/code_executor_context.js +7 -7
- package/dist/esm/common.js +43 -1
- package/dist/esm/context/summarizers/llm_summarizer.js +11 -0
- package/dist/esm/context/token_based_context_compactor.js +1 -1
- package/dist/esm/events/event.js +4 -2
- package/dist/esm/index.js +11 -0
- package/dist/esm/integrations/agent_registry/agent_registry.js +333 -0
- package/dist/esm/integrations/agent_registry/agent_registry_mcp_toolset.js +96 -0
- package/dist/esm/integrations/agent_registry/helpers.js +28 -0
- package/dist/esm/integrations/agent_registry/types.js +20 -0
- package/dist/esm/memory/vertex_ai_memory_bank_service.js +468 -0
- package/dist/esm/models/gemini_llm_connection.js +62 -19
- package/dist/esm/models/google_llm.js +26 -8
- package/dist/esm/plugins/security_plugin.js +16 -0
- package/dist/esm/runner/in_memory_runner.js +10 -5
- package/dist/esm/runner/runner.js +32 -2
- package/dist/esm/sessions/base_session_service.js +11 -1
- package/dist/esm/sessions/database_session_service.js +51 -5
- package/dist/esm/sessions/db/schema.js +44 -10
- package/dist/esm/sessions/in_memory_session_service.js +74 -16
- package/dist/esm/sessions/registry.js +7 -0
- package/dist/esm/sessions/vertex_ai_session_service.js +405 -0
- package/dist/esm/skills/gcp_skill_registry.js +78 -0
- package/dist/esm/skills/loader.js +64 -0
- package/dist/esm/skills/skill_registry.js +7 -0
- package/dist/esm/tools/agent_tool.js +10 -5
- package/dist/esm/tools/exit_loop_tool.js +9 -0
- package/dist/esm/tools/function_tool.js +7 -2
- package/dist/esm/tools/google_maps_grounding_tool.js +54 -0
- package/dist/esm/tools/long_running_tool.js +2 -1
- package/dist/esm/tools/mcp/mcp_session_manager.js +11 -0
- package/dist/esm/tools/mcp/mcp_tool.js +10 -6
- package/dist/esm/tools/mcp/mcp_toolset.js +26 -3
- package/dist/esm/tools/openapi_tool/auth/auth_helpers.js +48 -0
- package/dist/esm/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +60 -0
- package/dist/esm/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +111 -0
- package/dist/esm/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +206 -0
- package/dist/esm/tools/openapi_tool/openapi_spec_parser/operation_parser.js +198 -0
- package/dist/esm/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +101 -0
- package/dist/esm/tools/openapi_tool/openapi_toolset.js +97 -0
- package/dist/esm/tools/openapi_tool/rest_api_tool.js +229 -0
- package/dist/esm/tools/skill/load_skill_resource_tool.js +26 -27
- package/dist/esm/tools/skill/load_skill_tool.js +12 -1
- package/dist/esm/tools/skill/run_skill_script_tool.js +12 -1
- package/dist/esm/tools/skill/search_skills_tool.js +82 -0
- package/dist/esm/tools/skill/skill_toolset.js +40 -5
- package/dist/esm/tools/vertex_rag_retrieval_tool.js +36 -0
- package/dist/esm/utils/async_queue.js +60 -0
- package/dist/esm/utils/case_utils.js +25 -0
- package/dist/esm/utils/env_aware_utils.js +4 -0
- package/dist/esm/utils/file_utils.js +26 -0
- package/dist/esm/utils/gemini_schema_util.js +18 -0
- package/dist/esm/utils/live_connection_utils.js +256 -0
- package/dist/esm/utils/model_name.js +8 -0
- package/dist/esm/utils/partial_copy.js +23 -0
- package/dist/esm/utils/streaming_utils.js +167 -121
- package/dist/esm/utils/vertex_ai_utils.js +22 -0
- package/dist/esm/version.js +1 -1
- package/dist/types/a2a/a2a_remote_agent.d.ts +14 -0
- package/dist/types/a2a/a2a_remote_agent_utils.d.ts +29 -4
- package/dist/types/a2a/event_converter_utils.d.ts +14 -1
- package/dist/types/a2a/metadata_converter_utils.d.ts +18 -0
- package/dist/types/a2a/part_converter_utils.d.ts +51 -6
- package/dist/types/agents/invocation_context.d.ts +0 -9
- package/dist/types/agents/llm_agent.d.ts +14 -0
- package/dist/types/agents/processors/agent_transfer_llm_request_processor.d.ts +14 -0
- package/dist/types/agents/processors/base_llm_processor.d.ts +12 -4
- package/dist/types/agents/processors/basic_llm_request_processor.d.ts +12 -0
- package/dist/types/agents/processors/content_processor_utils.d.ts +26 -0
- package/dist/types/agents/processors/content_request_processor.d.ts +16 -0
- package/dist/types/agents/processors/context_compactor_request_processor.d.ts +12 -0
- package/dist/types/agents/processors/identity_llm_request_processor.d.ts +11 -0
- package/dist/types/agents/processors/request_confirmation_llm_request_processor.d.ts +14 -1
- package/dist/types/agents/processors/tool_filter_request_processor.d.ts +12 -1
- package/dist/types/agents/run_config.d.ts +15 -0
- package/dist/types/code_executors/agent_engine_sandbox_code_executor.d.ts +51 -0
- package/dist/types/common.d.ts +19 -1
- package/dist/types/context/summarizers/llm_summarizer.d.ts +17 -0
- package/dist/types/events/event_actions.d.ts +25 -8
- package/dist/types/events/structured_events.d.ts +13 -0
- package/dist/types/examples/example_util.d.ts +25 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/integrations/agent_registry/agent_registry.d.ts +94 -0
- package/dist/types/integrations/agent_registry/agent_registry_mcp_toolset.d.ts +62 -0
- package/dist/types/integrations/agent_registry/helpers.d.ts +7 -0
- package/dist/types/integrations/agent_registry/types.d.ts +101 -0
- package/dist/types/memory/vertex_ai_memory_bank_service.d.ts +52 -0
- package/dist/types/models/base_llm_connection.d.ts +10 -0
- package/dist/types/models/gemini_llm_connection.d.ts +15 -4
- package/dist/types/models/llm_response.d.ts +10 -1
- package/dist/types/plugins/security_plugin.d.ts +30 -0
- package/dist/types/runner/in_memory_runner.d.ts +28 -1
- package/dist/types/runner/runner.d.ts +47 -0
- package/dist/types/sessions/base_session_service.d.ts +22 -0
- package/dist/types/sessions/database_session_service.d.ts +1 -1
- package/dist/types/sessions/db/schema.d.ts +1 -0
- package/dist/types/sessions/in_memory_session_service.d.ts +1 -1
- package/dist/types/sessions/vertex_ai_session_service.d.ts +37 -0
- package/dist/types/skills/gcp_skill_registry.d.ts +24 -0
- package/dist/types/skills/loader.d.ts +7 -0
- package/dist/types/skills/skill.d.ts +1 -1
- package/dist/types/skills/skill_registry.d.ts +29 -0
- package/dist/types/tools/exit_loop_tool.d.ts +9 -0
- package/dist/types/tools/function_tool.d.ts +22 -2
- package/dist/types/tools/google_maps_grounding_tool.d.ts +22 -0
- package/dist/types/tools/long_running_tool.d.ts +11 -1
- package/dist/types/tools/mcp/mcp_session_manager.d.ts +3 -0
- package/dist/types/tools/mcp/mcp_toolset.d.ts +2 -1
- package/dist/types/tools/openapi_tool/auth/auth_helpers.d.ts +25 -0
- package/dist/types/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.d.ts +20 -0
- package/dist/types/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.d.ts +20 -0
- package/dist/types/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.d.ts +34 -0
- package/dist/types/tools/openapi_tool/openapi_spec_parser/operation_parser.d.ts +59 -0
- package/dist/types/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.d.ts +23 -0
- package/dist/types/tools/openapi_tool/openapi_toolset.d.ts +27 -0
- package/dist/types/tools/openapi_tool/rest_api_tool.d.ts +50 -0
- package/dist/types/tools/skill/load_skill_resource_tool.d.ts +1 -1
- package/dist/types/tools/skill/search_skills_tool.d.ts +14 -0
- package/dist/types/tools/skill/skill_toolset.d.ts +5 -0
- package/dist/types/tools/vertex_rag_retrieval_tool.d.ts +42 -0
- package/dist/types/utils/async_queue.d.ts +18 -0
- package/dist/types/utils/case_utils.d.ts +12 -0
- package/dist/types/utils/file_utils.d.ts +2 -0
- package/dist/types/utils/live_connection_utils.d.ts +30 -0
- package/dist/types/utils/model_name.d.ts +7 -0
- package/dist/types/utils/partial_copy.d.ts +13 -0
- package/dist/types/utils/streaming_utils.d.ts +7 -17
- package/dist/types/utils/vertex_ai_utils.d.ts +14 -0
- package/dist/types/version.d.ts +1 -1
- package/dist/web/agents/base_agent.js +31 -1
- package/dist/web/agents/functions.js +4 -0
- package/dist/web/agents/instructions.js +81 -33
- package/dist/web/agents/invocation_context.js +0 -1
- package/dist/web/agents/llm_agent.js +53 -5
- package/dist/web/agents/processors/agent_transfer_llm_request_processor.js +7 -0
- package/dist/web/agents/processors/basic_llm_request_processor.js +8 -1
- package/dist/web/agents/processors/content_processor_utils.js +53 -23
- package/dist/web/agents/processors/content_request_processor.js +7 -0
- package/dist/web/agents/processors/context_compactor_request_processor.js +12 -0
- package/dist/web/agents/processors/identity_llm_request_processor.js +7 -0
- package/dist/web/agents/processors/instructions_llm_request_processor.js +5 -0
- package/dist/web/agents/processors/request_confirmation_llm_request_processor.js +9 -1
- package/dist/web/agents/processors/tool_filter_request_processor.js +7 -1
- package/dist/web/auth/auth_preprocessor.js +12 -10
- package/dist/web/auth/oauth2/oauth2_discovery.js +26 -2
- package/dist/web/code_executors/agent_engine_sandbox_code_executor.js +281 -0
- package/dist/web/code_executors/code_execution_utils.js +1 -1
- package/dist/web/code_executors/code_executor_context.js +7 -7
- package/dist/web/common.js +43 -1
- package/dist/web/context/summarizers/llm_summarizer.js +11 -0
- package/dist/web/context/token_based_context_compactor.js +1 -1
- package/dist/web/events/event.js +4 -2
- package/dist/web/index.js +11 -0
- package/dist/web/integrations/agent_registry/agent_registry.js +333 -0
- package/dist/web/integrations/agent_registry/agent_registry_mcp_toolset.js +109 -0
- package/dist/web/integrations/agent_registry/helpers.js +28 -0
- package/dist/web/integrations/agent_registry/types.js +20 -0
- package/dist/web/memory/vertex_ai_memory_bank_service.js +475 -0
- package/dist/web/models/gemini_llm_connection.js +75 -19
- package/dist/web/models/google_llm.js +26 -8
- package/dist/web/plugins/security_plugin.js +16 -0
- package/dist/web/runner/in_memory_runner.js +10 -5
- package/dist/web/runner/runner.js +32 -2
- package/dist/web/sessions/base_session_service.js +11 -1
- package/dist/web/sessions/database_session_service.js +51 -5
- package/dist/web/sessions/db/schema.js +44 -10
- package/dist/web/sessions/in_memory_session_service.js +74 -16
- package/dist/web/sessions/registry.js +7 -0
- package/dist/web/sessions/vertex_ai_session_service.js +416 -0
- package/dist/web/skills/gcp_skill_registry.js +78 -0
- package/dist/web/skills/loader.js +64 -0
- package/dist/web/skills/skill_registry.js +7 -0
- package/dist/web/tools/agent_tool.js +10 -5
- package/dist/web/tools/exit_loop_tool.js +9 -0
- package/dist/web/tools/function_tool.js +7 -2
- package/dist/web/tools/google_maps_grounding_tool.js +54 -0
- package/dist/web/tools/long_running_tool.js +2 -1
- package/dist/web/tools/mcp/mcp_session_manager.js +11 -0
- package/dist/web/tools/mcp/mcp_tool.js +10 -6
- package/dist/web/tools/mcp/mcp_toolset.js +26 -3
- package/dist/web/tools/openapi_tool/auth/auth_helpers.js +48 -0
- package/dist/web/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +60 -0
- package/dist/web/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +111 -0
- package/dist/web/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +221 -0
- package/dist/web/tools/openapi_tool/openapi_spec_parser/operation_parser.js +198 -0
- package/dist/web/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +101 -0
- package/dist/web/tools/openapi_tool/openapi_toolset.js +97 -0
- package/dist/web/tools/openapi_tool/rest_api_tool.js +229 -0
- package/dist/web/tools/skill/load_skill_resource_tool.js +26 -27
- package/dist/web/tools/skill/load_skill_tool.js +12 -1
- package/dist/web/tools/skill/run_skill_script_tool.js +12 -1
- package/dist/web/tools/skill/search_skills_tool.js +82 -0
- package/dist/web/tools/skill/skill_toolset.js +40 -5
- package/dist/web/tools/vertex_rag_retrieval_tool.js +36 -0
- package/dist/web/utils/async_queue.js +60 -0
- package/dist/web/utils/case_utils.js +25 -0
- package/dist/web/utils/env_aware_utils.js +4 -0
- package/dist/web/utils/file_utils.js +26 -0
- package/dist/web/utils/gemini_schema_util.js +18 -0
- package/dist/web/utils/live_connection_utils.js +254 -0
- package/dist/web/utils/model_name.js +8 -0
- package/dist/web/utils/partial_copy.js +23 -0
- package/dist/web/utils/streaming_utils.js +221 -122
- package/dist/web/utils/vertex_ai_utils.js +22 -0
- package/dist/web/version.js +1 -1
- package/package.json +4 -1
|
@@ -152,6 +152,18 @@ class OAuth2DiscoveryManager {
|
|
|
152
152
|
return void 0;
|
|
153
153
|
}
|
|
154
154
|
}
|
|
155
|
+
function normaliseHostname(raw) {
|
|
156
|
+
const stripped = raw.replace(/^\[|\]$/g, "");
|
|
157
|
+
const m = stripped.match(/^::ffff:([0-9a-f]{1,4}):([0-9a-f]{1,4})$/i);
|
|
158
|
+
if (m) {
|
|
159
|
+
const hi = parseInt(m[1], 16);
|
|
160
|
+
const lo = parseInt(m[2], 16);
|
|
161
|
+
return [hi >> 8 & 255, hi & 255, lo >> 8 & 255, lo & 255].join(".");
|
|
162
|
+
}
|
|
163
|
+
const mDot = stripped.match(/^::ffff:(\d+\.\d+\.\d+\.\d+)$/i);
|
|
164
|
+
if (mDot) return mDot[1];
|
|
165
|
+
return raw;
|
|
166
|
+
}
|
|
155
167
|
function validateDiscoveryUrl(urlStr) {
|
|
156
168
|
try {
|
|
157
169
|
const url = new URL(urlStr);
|
|
@@ -159,8 +171,8 @@ function validateDiscoveryUrl(urlStr) {
|
|
|
159
171
|
import_logger.logger.warn(`Unsafe protocol for discovery URL: ${url.protocol}`);
|
|
160
172
|
return false;
|
|
161
173
|
}
|
|
162
|
-
const host = url.hostname.toLowerCase();
|
|
163
|
-
if (host === "localhost" || host === "
|
|
174
|
+
const host = normaliseHostname(url.hostname.toLowerCase());
|
|
175
|
+
if (host === "localhost" || host === "metadata.google.internal" || host === "metadata.goog" || host.startsWith("127.") || host === "[::1]" || host === "0.0.0.0" || host.startsWith("10.") || host.startsWith("192.168.") || host.startsWith("169.254.")) {
|
|
164
176
|
import_logger.logger.warn(`Unsafe host for discovery URL: ${host}`);
|
|
165
177
|
return false;
|
|
166
178
|
}
|
|
@@ -172,6 +184,18 @@ function validateDiscoveryUrl(urlStr) {
|
|
|
172
184
|
return false;
|
|
173
185
|
}
|
|
174
186
|
}
|
|
187
|
+
const cgnatMatch = host.match(/^100\.(\d+)\./);
|
|
188
|
+
if (cgnatMatch) {
|
|
189
|
+
const secondOctet = parseInt(cgnatMatch[1], 10);
|
|
190
|
+
if (secondOctet >= 64 && secondOctet <= 127) {
|
|
191
|
+
import_logger.logger.warn(`Unsafe host for discovery URL: ${host}`);
|
|
192
|
+
return false;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
if (/^\[(f[cd][0-9a-f]{2}|fe[89ab][0-9a-f]):/i.test(url.hostname)) {
|
|
196
|
+
import_logger.logger.warn(`Unsafe host for discovery URL: ${url.hostname}`);
|
|
197
|
+
return false;
|
|
198
|
+
}
|
|
175
199
|
return true;
|
|
176
200
|
} catch (e) {
|
|
177
201
|
import_logger.logger.warn(`Failed to parse URL for validation ${urlStr}: ${e}`);
|
|
@@ -0,0 +1,305 @@
|
|
|
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 agent_engine_sandbox_code_executor_exports = {};
|
|
34
|
+
__export(agent_engine_sandbox_code_executor_exports, {
|
|
35
|
+
AgentEngineSandboxCodeExecutor: () => AgentEngineSandboxCodeExecutor
|
|
36
|
+
});
|
|
37
|
+
module.exports = __toCommonJS(agent_engine_sandbox_code_executor_exports);
|
|
38
|
+
var import_vertexai = require("@google-cloud/vertexai");
|
|
39
|
+
var import_types = require("@google-cloud/vertexai/build/src/genai/types.js");
|
|
40
|
+
var import_experimental = require("../utils/experimental.js");
|
|
41
|
+
var import_file_utils = require("../utils/file_utils.js");
|
|
42
|
+
var import_logger = require("../utils/logger.js");
|
|
43
|
+
var import_base_code_executor = require("./base_code_executor.js");
|
|
44
|
+
var import_code_execution_utils = require("./code_execution_utils.js");
|
|
45
|
+
/**
|
|
46
|
+
* @license
|
|
47
|
+
* Copyright 2026 Google LLC
|
|
48
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
49
|
+
*/
|
|
50
|
+
const SANDBOX_PATTERN = /^projects\/([a-zA-Z0-9-_]+)\/locations\/([a-zA-Z0-9-_]+)\/reasoningEngines\/(\d+)\/sandboxEnvironments\/(\d+)$/;
|
|
51
|
+
const ENGINE_PATTERN = /^projects\/([a-zA-Z0-9-_]+)\/locations\/([a-zA-Z0-9-_]+)\/reasoningEngines\/(\d+)$/;
|
|
52
|
+
const DEFAULT_MAX_ATTEMPTS = 180;
|
|
53
|
+
const DEFAULT_SANDBOX_TTL = "31536000s";
|
|
54
|
+
const DEFAULT_SANDBOX_DISPLAY_NAME = "default_sandbox";
|
|
55
|
+
const DEFAULT_ENGINE_DISPLAY_NAME = "default_engine";
|
|
56
|
+
function mapLanguage(lang) {
|
|
57
|
+
switch (lang) {
|
|
58
|
+
case import_code_execution_utils.CodeExecutionLanguage.PYTHON:
|
|
59
|
+
return import_types.Language.LANGUAGE_PYTHON;
|
|
60
|
+
case import_code_execution_utils.CodeExecutionLanguage.JAVASCRIPT:
|
|
61
|
+
return import_types.Language.LANGUAGE_JAVASCRIPT;
|
|
62
|
+
default:
|
|
63
|
+
throw new Error(`Unsupported language for Agent Engine Sandbox: ${lang}`);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
let AgentEngineSandboxCodeExecutor = class extends import_base_code_executor.BaseCodeExecutor {
|
|
67
|
+
constructor(options = {}) {
|
|
68
|
+
super();
|
|
69
|
+
this.sandboxResourceName = options.sandboxResourceName;
|
|
70
|
+
this.agentEngineResourceName = options.agentEngineResourceName;
|
|
71
|
+
this.projectId = options.projectId || process.env.GOOGLE_CLOUD_PROJECT;
|
|
72
|
+
this.location = options.location || process.env.GOOGLE_CLOUD_LOCATION || "us-central1";
|
|
73
|
+
if (this.sandboxResourceName) {
|
|
74
|
+
const match = this.sandboxResourceName.match(SANDBOX_PATTERN);
|
|
75
|
+
if (match) {
|
|
76
|
+
this.projectId = match[1];
|
|
77
|
+
this.location = match[2];
|
|
78
|
+
} else {
|
|
79
|
+
throw new Error(
|
|
80
|
+
`Invalid sandbox resource name: ${this.sandboxResourceName}`
|
|
81
|
+
);
|
|
82
|
+
}
|
|
83
|
+
} else if (this.agentEngineResourceName) {
|
|
84
|
+
const match = this.agentEngineResourceName.match(ENGINE_PATTERN);
|
|
85
|
+
if (match) {
|
|
86
|
+
this.projectId = match[1];
|
|
87
|
+
this.location = match[2];
|
|
88
|
+
} else {
|
|
89
|
+
throw new Error(
|
|
90
|
+
`Invalid agent engine resource name: ${this.agentEngineResourceName}`
|
|
91
|
+
);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
if (options.client) {
|
|
95
|
+
this.client = options.client;
|
|
96
|
+
} else {
|
|
97
|
+
if (!this.projectId) {
|
|
98
|
+
throw new Error("Project ID is required.");
|
|
99
|
+
}
|
|
100
|
+
this.client = new import_vertexai.Client({
|
|
101
|
+
project: this.projectId,
|
|
102
|
+
location: this.location
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
async executeCode(params) {
|
|
107
|
+
var _a;
|
|
108
|
+
const { invocationContext, codeExecutionInput } = params;
|
|
109
|
+
const language = mapLanguage(codeExecutionInput.language);
|
|
110
|
+
const agentEngineName = await this.getOrCreateAgentEngine();
|
|
111
|
+
const sandboxName = await this.getOrCreateSandbox(
|
|
112
|
+
invocationContext,
|
|
113
|
+
agentEngineName,
|
|
114
|
+
language
|
|
115
|
+
);
|
|
116
|
+
const inputs = [
|
|
117
|
+
{
|
|
118
|
+
mimeType: "application/json",
|
|
119
|
+
data: Buffer.from(
|
|
120
|
+
JSON.stringify({ code: codeExecutionInput.code })
|
|
121
|
+
).toString("base64")
|
|
122
|
+
}
|
|
123
|
+
];
|
|
124
|
+
if (codeExecutionInput.inputFiles) {
|
|
125
|
+
for (const file of codeExecutionInput.inputFiles) {
|
|
126
|
+
inputs.push({
|
|
127
|
+
mimeType: file.mimeType,
|
|
128
|
+
data: file.content,
|
|
129
|
+
// Assumed to be already base64 encoded based on CodeExecutionInput definition
|
|
130
|
+
metadata: {
|
|
131
|
+
attributes: {
|
|
132
|
+
file_name: Buffer.from(file.name).toString("base64")
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
import_logger.logger.debug(`Executing code in sandbox ${sandboxName}...`);
|
|
139
|
+
const response = await this.client.agentEnginesInternal.sandboxes.executeCodeInternal({
|
|
140
|
+
name: sandboxName,
|
|
141
|
+
inputs
|
|
142
|
+
});
|
|
143
|
+
let stdout = "";
|
|
144
|
+
let stderr = "";
|
|
145
|
+
const outputFiles = [];
|
|
146
|
+
if (response.outputs) {
|
|
147
|
+
for (const output of response.outputs) {
|
|
148
|
+
const attributes = ((_a = output.metadata) == null ? void 0 : _a.attributes) || {};
|
|
149
|
+
const encodedFileName = attributes["file_name"];
|
|
150
|
+
const fileName = encodedFileName ? Buffer.from(encodedFileName, "base64").toString("utf-8") : void 0;
|
|
151
|
+
if (output.mimeType === "application/json" && !fileName) {
|
|
152
|
+
if (output.data) {
|
|
153
|
+
const jsonStr = Buffer.from(output.data, "base64").toString(
|
|
154
|
+
"utf-8"
|
|
155
|
+
);
|
|
156
|
+
try {
|
|
157
|
+
const jsonData = JSON.parse(jsonStr);
|
|
158
|
+
if (jsonData.msg_out !== void 0) {
|
|
159
|
+
stdout = jsonData.msg_out;
|
|
160
|
+
} else {
|
|
161
|
+
stdout = "";
|
|
162
|
+
}
|
|
163
|
+
if (jsonData.msg_err !== void 0) {
|
|
164
|
+
stderr = jsonData.msg_err;
|
|
165
|
+
} else {
|
|
166
|
+
stderr = "";
|
|
167
|
+
}
|
|
168
|
+
} catch (e) {
|
|
169
|
+
import_logger.logger.warn("Failed to parse JSON output from sandbox", e);
|
|
170
|
+
stdout = jsonStr;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
} else {
|
|
174
|
+
let mimeType = output.mimeType;
|
|
175
|
+
const name = fileName || "output_file";
|
|
176
|
+
if (!mimeType) {
|
|
177
|
+
mimeType = (0, import_file_utils.guessMimeType)(name);
|
|
178
|
+
}
|
|
179
|
+
outputFiles.push({
|
|
180
|
+
name,
|
|
181
|
+
content: output.data || "",
|
|
182
|
+
mimeType
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return {
|
|
188
|
+
stdout,
|
|
189
|
+
stderr,
|
|
190
|
+
outputFiles
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
async getOrCreateAgentEngine() {
|
|
194
|
+
if (this.agentEngineResourceName) {
|
|
195
|
+
return this.agentEngineResourceName;
|
|
196
|
+
}
|
|
197
|
+
if (!this.agentEngineCreationPromise) {
|
|
198
|
+
this.agentEngineCreationPromise = (async () => {
|
|
199
|
+
import_logger.logger.debug(
|
|
200
|
+
"No Agent Engine resource name provided. Creating a new one..."
|
|
201
|
+
);
|
|
202
|
+
const operation = await this.client.agentEnginesInternal.createInternal(
|
|
203
|
+
{
|
|
204
|
+
config: {
|
|
205
|
+
displayName: DEFAULT_ENGINE_DISPLAY_NAME
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
);
|
|
209
|
+
let apiResponse = operation;
|
|
210
|
+
let attempts = 0;
|
|
211
|
+
while (!apiResponse.done && attempts < DEFAULT_MAX_ATTEMPTS) {
|
|
212
|
+
await new Promise((resolve) => setTimeout(resolve, 1e3));
|
|
213
|
+
apiResponse = await this.client.agentEnginesInternal.getAgentOperationInternal({
|
|
214
|
+
operationName: operation.name
|
|
215
|
+
});
|
|
216
|
+
attempts++;
|
|
217
|
+
}
|
|
218
|
+
if (!apiResponse.done) {
|
|
219
|
+
throw new Error(
|
|
220
|
+
`Agent Engine creation operation ${operation.name} did not complete in time.`
|
|
221
|
+
);
|
|
222
|
+
}
|
|
223
|
+
const response = apiResponse.response;
|
|
224
|
+
this.agentEngineResourceName = response.name;
|
|
225
|
+
import_logger.logger.debug(`Created Agent Engine: ${this.agentEngineResourceName}`);
|
|
226
|
+
return this.agentEngineResourceName;
|
|
227
|
+
})();
|
|
228
|
+
}
|
|
229
|
+
return this.agentEngineCreationPromise;
|
|
230
|
+
}
|
|
231
|
+
async getOrCreateSandbox(invocationContext, agentEngineName, language) {
|
|
232
|
+
var _a, _b;
|
|
233
|
+
if (this.sandboxResourceName) {
|
|
234
|
+
return this.sandboxResourceName;
|
|
235
|
+
}
|
|
236
|
+
const stateKey = `sandbox_name_${language.toLowerCase()}`;
|
|
237
|
+
let sandboxName = (_b = (_a = invocationContext.session) == null ? void 0 : _a.state) == null ? void 0 : _b[stateKey];
|
|
238
|
+
let createNewSandbox = false;
|
|
239
|
+
if (!sandboxName) {
|
|
240
|
+
createNewSandbox = true;
|
|
241
|
+
} else {
|
|
242
|
+
try {
|
|
243
|
+
const sandbox = await this.client.agentEnginesInternal.sandboxes.getInternal({
|
|
244
|
+
name: sandboxName
|
|
245
|
+
});
|
|
246
|
+
if (!sandbox || sandbox.state !== "STATE_RUNNING") {
|
|
247
|
+
createNewSandbox = true;
|
|
248
|
+
}
|
|
249
|
+
} catch (error) {
|
|
250
|
+
import_logger.logger.debug(
|
|
251
|
+
`Failed to get sandbox ${sandboxName}, will create a new one`,
|
|
252
|
+
error
|
|
253
|
+
);
|
|
254
|
+
createNewSandbox = true;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
if (createNewSandbox) {
|
|
258
|
+
import_logger.logger.debug(`Creating a new ${language} code execution sandbox...`);
|
|
259
|
+
const operation = await this.client.agentEnginesInternal.sandboxes.createInternal({
|
|
260
|
+
name: agentEngineName,
|
|
261
|
+
spec: {
|
|
262
|
+
codeExecutionEnvironment: {
|
|
263
|
+
codeLanguage: language
|
|
264
|
+
}
|
|
265
|
+
},
|
|
266
|
+
config: {
|
|
267
|
+
displayName: DEFAULT_SANDBOX_DISPLAY_NAME,
|
|
268
|
+
ttl: DEFAULT_SANDBOX_TTL
|
|
269
|
+
}
|
|
270
|
+
});
|
|
271
|
+
let apiResponse = operation;
|
|
272
|
+
let attempts = 0;
|
|
273
|
+
while (!apiResponse.done && attempts < DEFAULT_MAX_ATTEMPTS) {
|
|
274
|
+
await new Promise((resolve) => setTimeout(resolve, 1e3));
|
|
275
|
+
apiResponse = await this.client.agentEnginesInternal.sandboxes.getSandboxOperationInternal(
|
|
276
|
+
{
|
|
277
|
+
operationName: operation.name
|
|
278
|
+
}
|
|
279
|
+
);
|
|
280
|
+
attempts++;
|
|
281
|
+
}
|
|
282
|
+
if (!apiResponse.done) {
|
|
283
|
+
throw new Error(
|
|
284
|
+
`Sandbox creation operation ${operation.name} did not complete in time.`
|
|
285
|
+
);
|
|
286
|
+
}
|
|
287
|
+
const response = apiResponse.response;
|
|
288
|
+
sandboxName = response.name;
|
|
289
|
+
if (invocationContext.session) {
|
|
290
|
+
if (!invocationContext.session.state) {
|
|
291
|
+
invocationContext.session.state = {};
|
|
292
|
+
}
|
|
293
|
+
invocationContext.session.state[stateKey] = sandboxName;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
return sandboxName;
|
|
297
|
+
}
|
|
298
|
+
};
|
|
299
|
+
AgentEngineSandboxCodeExecutor = __decorateClass([
|
|
300
|
+
import_experimental.experimental
|
|
301
|
+
], AgentEngineSandboxCodeExecutor);
|
|
302
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
303
|
+
0 && (module.exports = {
|
|
304
|
+
AgentEngineSandboxCodeExecutor
|
|
305
|
+
});
|
|
@@ -80,7 +80,7 @@ function extractCodeAndTruncateContent(content, codeBlockDelimiters) {
|
|
|
80
80
|
const leadingDelimiterPattern = codeBlockDelimiters.map((d) => d[0]).join("|");
|
|
81
81
|
const trailingDelimiterPattern = codeBlockDelimiters.map((d) => d[1]).join("|");
|
|
82
82
|
const match = new RegExp(
|
|
83
|
-
|
|
83
|
+
`(?<prefix>.*?)(${leadingDelimiterPattern})(?<codeStr>.*?)(${trailingDelimiterPattern})(?<suffix>.*?)$`,
|
|
84
84
|
"s"
|
|
85
85
|
).exec(responseText);
|
|
86
86
|
const { prefix, codeStr } = (match == null ? void 0 : match.groups) || {};
|
|
@@ -97,7 +97,7 @@ class CodeExecutorContext {
|
|
|
97
97
|
* @return A list of input files in the code executor context.
|
|
98
98
|
*/
|
|
99
99
|
getInputFiles() {
|
|
100
|
-
if (!
|
|
100
|
+
if (!this.sessionState.has(INPUT_FILE_KEY)) {
|
|
101
101
|
return [];
|
|
102
102
|
}
|
|
103
103
|
return this.sessionState.get(INPUT_FILE_KEY);
|
|
@@ -107,13 +107,13 @@ class CodeExecutorContext {
|
|
|
107
107
|
* @param inputFiles The input files to add to the session state.
|
|
108
108
|
*/
|
|
109
109
|
addInputFiles(inputFiles) {
|
|
110
|
-
if (!
|
|
110
|
+
if (!this.sessionState.has(INPUT_FILE_KEY)) {
|
|
111
111
|
this.sessionState.set(INPUT_FILE_KEY, []);
|
|
112
112
|
}
|
|
113
113
|
this.sessionState.get(INPUT_FILE_KEY).push(...inputFiles);
|
|
114
114
|
}
|
|
115
115
|
clearInputFiles() {
|
|
116
|
-
if (
|
|
116
|
+
if (this.sessionState.has(INPUT_FILE_KEY)) {
|
|
117
117
|
this.sessionState.set(INPUT_FILE_KEY, []);
|
|
118
118
|
}
|
|
119
119
|
if (PROCESSED_FILE_NAMES_KEY in this.context) {
|
|
@@ -126,7 +126,7 @@ class CodeExecutorContext {
|
|
|
126
126
|
* @return The error count for the given invocation ID.
|
|
127
127
|
*/
|
|
128
128
|
getErrorCount(invocationId) {
|
|
129
|
-
if (!
|
|
129
|
+
if (!this.sessionState.has(ERROR_COUNT_KEY)) {
|
|
130
130
|
return 0;
|
|
131
131
|
}
|
|
132
132
|
return this.sessionState.get(ERROR_COUNT_KEY)[invocationId] || 0;
|
|
@@ -136,7 +136,7 @@ class CodeExecutorContext {
|
|
|
136
136
|
* @param invocationId The invocation ID to increment the error count for.
|
|
137
137
|
*/
|
|
138
138
|
incrementErrorCount(invocationId) {
|
|
139
|
-
if (!
|
|
139
|
+
if (!this.sessionState.has(ERROR_COUNT_KEY)) {
|
|
140
140
|
this.sessionState.set(ERROR_COUNT_KEY, {});
|
|
141
141
|
}
|
|
142
142
|
this.sessionState.get(ERROR_COUNT_KEY)[invocationId] = this.getErrorCount(invocationId) + 1;
|
|
@@ -146,7 +146,7 @@ class CodeExecutorContext {
|
|
|
146
146
|
* @param invocationId The invocation ID to reset the error count for.
|
|
147
147
|
*/
|
|
148
148
|
resetErrorCount(invocationId) {
|
|
149
|
-
if (!
|
|
149
|
+
if (!this.sessionState.has(ERROR_COUNT_KEY)) {
|
|
150
150
|
return;
|
|
151
151
|
}
|
|
152
152
|
const errorCounts = this.sessionState.get(ERROR_COUNT_KEY);
|
|
@@ -168,7 +168,7 @@ class CodeExecutorContext {
|
|
|
168
168
|
resultStdout,
|
|
169
169
|
resultStderr
|
|
170
170
|
}) {
|
|
171
|
-
if (!
|
|
171
|
+
if (!this.sessionState.has(CODE_EXECUTION_RESULTS_KEY)) {
|
|
172
172
|
this.sessionState.set(CODE_EXECUTION_RESULTS_KEY, {});
|
|
173
173
|
}
|
|
174
174
|
const codeExecutionResults = this.sessionState.get(
|
package/dist/cjs/common.js
CHANGED
|
@@ -25,6 +25,7 @@ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "defau
|
|
|
25
25
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
26
26
|
var common_exports = {};
|
|
27
27
|
__export(common_exports, {
|
|
28
|
+
AUTH_PREPROCESSOR: () => import_auth_preprocessor.AUTH_PREPROCESSOR,
|
|
28
29
|
ActiveStreamingTool: () => import_active_streaming_tool.ActiveStreamingTool,
|
|
29
30
|
Agent: () => import_llm_agent.LlmAgent,
|
|
30
31
|
AgentTool: () => import_agent_tool.AgentTool,
|
|
@@ -32,6 +33,7 @@ __export(common_exports, {
|
|
|
32
33
|
ApigeeLlm: () => import_apigee_llm.ApigeeLlm,
|
|
33
34
|
AuthCredentialTypes: () => import_auth_credential.AuthCredentialTypes,
|
|
34
35
|
AuthHandler: () => import_auth_handler.AuthHandler,
|
|
36
|
+
AuthPreprocessor: () => import_auth_preprocessor.AuthPreprocessor,
|
|
35
37
|
AuthProviderRegistry: () => import_auth_provider_registry.AuthProviderRegistry,
|
|
36
38
|
BaseAgent: () => import_base_agent.BaseAgent,
|
|
37
39
|
BaseCodeExecutor: () => import_base_code_executor.BaseCodeExecutor,
|
|
@@ -57,9 +59,12 @@ __export(common_exports, {
|
|
|
57
59
|
ExitLoopTool: () => import_exit_loop_tool.ExitLoopTool,
|
|
58
60
|
FileContentEncoding: () => import_code_execution_utils.FileContentEncoding,
|
|
59
61
|
FunctionTool: () => import_function_tool.FunctionTool,
|
|
62
|
+
GCPSkillRegistry: () => import_gcp_skill_registry.GCPSkillRegistry,
|
|
63
|
+
GOOGLE_MAPS_GROUNDING: () => import_google_maps_grounding_tool.GOOGLE_MAPS_GROUNDING,
|
|
60
64
|
GOOGLE_SEARCH: () => import_google_search_tool.GOOGLE_SEARCH,
|
|
61
65
|
Gemini: () => import_google_llm.Gemini,
|
|
62
66
|
GoogleLLMVariant: () => import_variant_utils.GoogleLLMVariant,
|
|
67
|
+
GoogleMapsGroundingTool: () => import_google_maps_grounding_tool.GoogleMapsGroundingTool,
|
|
63
68
|
GoogleSearchTool: () => import_google_search_tool.GoogleSearchTool,
|
|
64
69
|
InMemoryArtifactService: () => import_in_memory_artifact_service.InMemoryArtifactService,
|
|
65
70
|
InMemoryCredentialService: () => import_in_memory_credential_service.InMemoryCredentialService,
|
|
@@ -86,6 +91,9 @@ __export(common_exports, {
|
|
|
86
91
|
OAuth2CredentialExchanger: () => import_oauth2_credential_exchanger.OAuth2CredentialExchanger,
|
|
87
92
|
OAuth2DiscoveryManager: () => import_oauth2_discovery.OAuth2DiscoveryManager,
|
|
88
93
|
OAuthGrantType: () => import_auth_schemes.OAuthGrantType,
|
|
94
|
+
OpenAPIToolset: () => import_openapi_toolset.OpenAPIToolset,
|
|
95
|
+
OpenApiSpecParser: () => import_openapi_spec_parser.OpenApiSpecParser,
|
|
96
|
+
OperationParser: () => import_operation_parser.OperationParser,
|
|
89
97
|
PRELOAD_MEMORY: () => import_preload_memory_tool.PRELOAD_MEMORY,
|
|
90
98
|
ParallelAgent: () => import_parallel_agent.ParallelAgent,
|
|
91
99
|
PluginManager: () => import_plugin_manager.PluginManager,
|
|
@@ -93,9 +101,11 @@ __export(common_exports, {
|
|
|
93
101
|
PreloadMemoryTool: () => import_preload_memory_tool.PreloadMemoryTool,
|
|
94
102
|
REQUEST_CONFIRMATION_FUNCTION_CALL_NAME: () => import_security_plugin.REQUEST_CONFIRMATION_FUNCTION_CALL_NAME,
|
|
95
103
|
ReadonlyContext: () => import_readonly_context.ReadonlyContext,
|
|
104
|
+
RestApiTool: () => import_rest_api_tool.RestApiTool,
|
|
96
105
|
RoutedAgent: () => import_routed_agent.RoutedAgent,
|
|
97
106
|
RoutedLlm: () => import_routed_llm.RoutedLlm,
|
|
98
107
|
Runner: () => import_runner.Runner,
|
|
108
|
+
SearchSkillsTool: () => import_search_skills_tool.SearchSkillsTool,
|
|
99
109
|
SecurityPlugin: () => import_security_plugin.SecurityPlugin,
|
|
100
110
|
SequentialAgent: () => import_sequential_agent.SequentialAgent,
|
|
101
111
|
SessionStateCredentialService: () => import_session_state_credential_service.SessionStateCredentialService,
|
|
@@ -103,13 +113,17 @@ __export(common_exports, {
|
|
|
103
113
|
State: () => import_state.State,
|
|
104
114
|
StreamingMode: () => import_run_config.StreamingMode,
|
|
105
115
|
TokenBasedContextCompactor: () => import_token_based_context_compactor.TokenBasedContextCompactor,
|
|
116
|
+
ToolAuthHandler: () => import_tool_auth_handler.ToolAuthHandler,
|
|
106
117
|
ToolConfirmation: () => import_tool_confirmation.ToolConfirmation,
|
|
107
118
|
TruncatingContextCompactor: () => import_truncating_context_compactor.TruncatingContextCompactor,
|
|
108
119
|
URL_CONTEXT: () => import_url_context_tool.URL_CONTEXT,
|
|
109
120
|
UrlContextTool: () => import_url_context_tool.UrlContextTool,
|
|
121
|
+
VertexAiMemoryBankService: () => import_vertex_ai_memory_bank_service.VertexAiMemoryBankService,
|
|
110
122
|
VertexAiSearchTool: () => import_vertex_ai_search_tool.VertexAiSearchTool,
|
|
123
|
+
VertexRagRetrievalTool: () => import_vertex_rag_retrieval_tool.VertexRagRetrievalTool,
|
|
111
124
|
createEvent: () => import_event.createEvent,
|
|
112
125
|
createEventActions: () => import_event_actions.createEventActions,
|
|
126
|
+
createRestApiTool: () => import_rest_api_tool.createRestApiTool,
|
|
113
127
|
createSession: () => import_session.createSession,
|
|
114
128
|
functionsExportedForTestingOnly: () => import_functions.functionsExportedForTestingOnly,
|
|
115
129
|
geminiInitParams: () => import_google_llm.geminiInitParams,
|
|
@@ -128,16 +142,21 @@ __export(common_exports, {
|
|
|
128
142
|
isFinalResponse: () => import_event.isFinalResponse,
|
|
129
143
|
isFunctionTool: () => import_function_tool.isFunctionTool,
|
|
130
144
|
isGemini2OrAbove: () => import_model_name.isGemini2OrAbove,
|
|
145
|
+
isGemini3xFlashLive: () => import_model_name.isGemini3xFlashLive,
|
|
131
146
|
isLlmAgent: () => import_llm_agent.isLlmAgent,
|
|
132
147
|
isLoopAgent: () => import_loop_agent.isLoopAgent,
|
|
133
148
|
isParallelAgent: () => import_parallel_agent.isParallelAgent,
|
|
134
149
|
isRoutedAgent: () => import_routed_agent.isRoutedAgent,
|
|
135
150
|
isRunner: () => import_runner.isRunner,
|
|
136
151
|
isSequentialAgent: () => import_sequential_agent.isSequentialAgent,
|
|
152
|
+
loadAllSkillsInDir: () => import_loader.loadAllSkillsInDir,
|
|
153
|
+
loadSkillFromDir: () => import_loader.loadSkillFromDir,
|
|
154
|
+
loadSkillFromZipBuffer: () => import_loader.loadSkillFromZipBuffer,
|
|
137
155
|
setLogLevel: () => import_logger.setLogLevel,
|
|
138
156
|
setLogger: () => import_logger.setLogger,
|
|
139
157
|
stringifyContent: () => import_event.stringifyContent,
|
|
140
158
|
toStructuredEvents: () => import_structured_events.toStructuredEvents,
|
|
159
|
+
validateSkillDir: () => import_loader.validateSkillDir,
|
|
141
160
|
version: () => import_version.version,
|
|
142
161
|
zodObjectToSchema: () => import_simple_zod_to_json.zodObjectToSchema
|
|
143
162
|
});
|
|
@@ -162,6 +181,7 @@ var import_sequential_agent = require("./agents/sequential_agent.js");
|
|
|
162
181
|
var import_in_memory_artifact_service = require("./artifacts/in_memory_artifact_service.js");
|
|
163
182
|
var import_auth_credential = require("./auth/auth_credential.js");
|
|
164
183
|
var import_auth_handler = require("./auth/auth_handler.js");
|
|
184
|
+
var import_auth_preprocessor = require("./auth/auth_preprocessor.js");
|
|
165
185
|
var import_auth_provider_registry = require("./auth/auth_provider_registry.js");
|
|
166
186
|
var import_auth_schemes = require("./auth/auth_schemes.js");
|
|
167
187
|
var import_in_memory_credential_service = require("./auth/credential_service/in_memory_credential_service.js");
|
|
@@ -182,6 +202,7 @@ var import_event_actions = require("./events/event_actions.js");
|
|
|
182
202
|
var import_structured_events = require("./events/structured_events.js");
|
|
183
203
|
var import_base_example_provider = require("./examples/base_example_provider.js");
|
|
184
204
|
var import_in_memory_memory_service = require("./memory/in_memory_memory_service.js");
|
|
205
|
+
var import_vertex_ai_memory_bank_service = require("./memory/vertex_ai_memory_bank_service.js");
|
|
185
206
|
var import_apigee_llm = require("./models/apigee_llm.js");
|
|
186
207
|
var import_base_llm = require("./models/base_llm.js");
|
|
187
208
|
var import_google_llm = require("./models/google_llm.js");
|
|
@@ -202,6 +223,7 @@ var import_base_tool = require("./tools/base_tool.js");
|
|
|
202
223
|
var import_base_toolset = require("./tools/base_toolset.js");
|
|
203
224
|
var import_exit_loop_tool = require("./tools/exit_loop_tool.js");
|
|
204
225
|
var import_function_tool = require("./tools/function_tool.js");
|
|
226
|
+
var import_google_maps_grounding_tool = require("./tools/google_maps_grounding_tool.js");
|
|
205
227
|
var import_google_search_tool = require("./tools/google_search_tool.js");
|
|
206
228
|
var import_load_artifacts_tool = require("./tools/load_artifacts_tool.js");
|
|
207
229
|
var import_load_memory_tool = require("./tools/load_memory_tool.js");
|
|
@@ -210,15 +232,24 @@ var import_preload_memory_tool = require("./tools/preload_memory_tool.js");
|
|
|
210
232
|
var import_tool_confirmation = require("./tools/tool_confirmation.js");
|
|
211
233
|
var import_url_context_tool = require("./tools/url_context_tool.js");
|
|
212
234
|
var import_vertex_ai_search_tool = require("./tools/vertex_ai_search_tool.js");
|
|
235
|
+
var import_vertex_rag_retrieval_tool = require("./tools/vertex_rag_retrieval_tool.js");
|
|
213
236
|
var import_logger = require("./utils/logger.js");
|
|
214
237
|
var import_model_name = require("./utils/model_name.js");
|
|
215
238
|
var import_simple_zod_to_json = require("./utils/simple_zod_to_json.js");
|
|
216
239
|
var import_variant_utils = require("./utils/variant_utils.js");
|
|
217
240
|
var import_version = require("./version.js");
|
|
241
|
+
var import_gcp_skill_registry = require("./skills/gcp_skill_registry.js");
|
|
242
|
+
var import_loader = require("./skills/loader.js");
|
|
218
243
|
var import_list_skills_tool = require("./tools/skill/list_skills_tool.js");
|
|
219
244
|
var import_load_skill_resource_tool = require("./tools/skill/load_skill_resource_tool.js");
|
|
220
245
|
var import_load_skill_tool = require("./tools/skill/load_skill_tool.js");
|
|
246
|
+
var import_search_skills_tool = require("./tools/skill/search_skills_tool.js");
|
|
221
247
|
var import_skill_toolset = require("./tools/skill/skill_toolset.js");
|
|
248
|
+
var import_openapi_spec_parser = require("./tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js");
|
|
249
|
+
var import_operation_parser = require("./tools/openapi_tool/openapi_spec_parser/operation_parser.js");
|
|
250
|
+
var import_tool_auth_handler = require("./tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js");
|
|
251
|
+
var import_openapi_toolset = require("./tools/openapi_tool/openapi_toolset.js");
|
|
252
|
+
var import_rest_api_tool = require("./tools/openapi_tool/rest_api_tool.js");
|
|
222
253
|
__reExport(common_exports, require("./artifacts/base_artifact_service.js"), module.exports);
|
|
223
254
|
__reExport(common_exports, require("./features/feature_registry.js"), module.exports);
|
|
224
255
|
__reExport(common_exports, require("./memory/base_memory_service.js"), module.exports);
|
|
@@ -231,6 +262,7 @@ __reExport(common_exports, require("./tools/base_tool.js"), module.exports);
|
|
|
231
262
|
*/
|
|
232
263
|
// Annotate the CommonJS export names for ESM import in node:
|
|
233
264
|
0 && (module.exports = {
|
|
265
|
+
AUTH_PREPROCESSOR,
|
|
234
266
|
ActiveStreamingTool,
|
|
235
267
|
Agent,
|
|
236
268
|
AgentTool,
|
|
@@ -238,6 +270,7 @@ __reExport(common_exports, require("./tools/base_tool.js"), module.exports);
|
|
|
238
270
|
ApigeeLlm,
|
|
239
271
|
AuthCredentialTypes,
|
|
240
272
|
AuthHandler,
|
|
273
|
+
AuthPreprocessor,
|
|
241
274
|
AuthProviderRegistry,
|
|
242
275
|
BaseAgent,
|
|
243
276
|
BaseCodeExecutor,
|
|
@@ -263,9 +296,12 @@ __reExport(common_exports, require("./tools/base_tool.js"), module.exports);
|
|
|
263
296
|
ExitLoopTool,
|
|
264
297
|
FileContentEncoding,
|
|
265
298
|
FunctionTool,
|
|
299
|
+
GCPSkillRegistry,
|
|
300
|
+
GOOGLE_MAPS_GROUNDING,
|
|
266
301
|
GOOGLE_SEARCH,
|
|
267
302
|
Gemini,
|
|
268
303
|
GoogleLLMVariant,
|
|
304
|
+
GoogleMapsGroundingTool,
|
|
269
305
|
GoogleSearchTool,
|
|
270
306
|
InMemoryArtifactService,
|
|
271
307
|
InMemoryCredentialService,
|
|
@@ -292,6 +328,9 @@ __reExport(common_exports, require("./tools/base_tool.js"), module.exports);
|
|
|
292
328
|
OAuth2CredentialExchanger,
|
|
293
329
|
OAuth2DiscoveryManager,
|
|
294
330
|
OAuthGrantType,
|
|
331
|
+
OpenAPIToolset,
|
|
332
|
+
OpenApiSpecParser,
|
|
333
|
+
OperationParser,
|
|
295
334
|
PRELOAD_MEMORY,
|
|
296
335
|
ParallelAgent,
|
|
297
336
|
PluginManager,
|
|
@@ -299,9 +338,11 @@ __reExport(common_exports, require("./tools/base_tool.js"), module.exports);
|
|
|
299
338
|
PreloadMemoryTool,
|
|
300
339
|
REQUEST_CONFIRMATION_FUNCTION_CALL_NAME,
|
|
301
340
|
ReadonlyContext,
|
|
341
|
+
RestApiTool,
|
|
302
342
|
RoutedAgent,
|
|
303
343
|
RoutedLlm,
|
|
304
344
|
Runner,
|
|
345
|
+
SearchSkillsTool,
|
|
305
346
|
SecurityPlugin,
|
|
306
347
|
SequentialAgent,
|
|
307
348
|
SessionStateCredentialService,
|
|
@@ -309,13 +350,17 @@ __reExport(common_exports, require("./tools/base_tool.js"), module.exports);
|
|
|
309
350
|
State,
|
|
310
351
|
StreamingMode,
|
|
311
352
|
TokenBasedContextCompactor,
|
|
353
|
+
ToolAuthHandler,
|
|
312
354
|
ToolConfirmation,
|
|
313
355
|
TruncatingContextCompactor,
|
|
314
356
|
URL_CONTEXT,
|
|
315
357
|
UrlContextTool,
|
|
358
|
+
VertexAiMemoryBankService,
|
|
316
359
|
VertexAiSearchTool,
|
|
360
|
+
VertexRagRetrievalTool,
|
|
317
361
|
createEvent,
|
|
318
362
|
createEventActions,
|
|
363
|
+
createRestApiTool,
|
|
319
364
|
createSession,
|
|
320
365
|
functionsExportedForTestingOnly,
|
|
321
366
|
geminiInitParams,
|
|
@@ -334,16 +379,21 @@ __reExport(common_exports, require("./tools/base_tool.js"), module.exports);
|
|
|
334
379
|
isFinalResponse,
|
|
335
380
|
isFunctionTool,
|
|
336
381
|
isGemini2OrAbove,
|
|
382
|
+
isGemini3xFlashLive,
|
|
337
383
|
isLlmAgent,
|
|
338
384
|
isLoopAgent,
|
|
339
385
|
isParallelAgent,
|
|
340
386
|
isRoutedAgent,
|
|
341
387
|
isRunner,
|
|
342
388
|
isSequentialAgent,
|
|
389
|
+
loadAllSkillsInDir,
|
|
390
|
+
loadSkillFromDir,
|
|
391
|
+
loadSkillFromZipBuffer,
|
|
343
392
|
setLogLevel,
|
|
344
393
|
setLogger,
|
|
345
394
|
stringifyContent,
|
|
346
395
|
toStructuredEvents,
|
|
396
|
+
validateSkillDir,
|
|
347
397
|
version,
|
|
348
398
|
zodObjectToSchema,
|
|
349
399
|
...require("./artifacts/base_artifact_service.js"),
|
|
@@ -36,10 +36,21 @@ var import_event = require("../../events/event.js");
|
|
|
36
36
|
*/
|
|
37
37
|
const DEFAULT_PROMPT = "The following is a conversation history between a user and an AI agent. Please summarize the conversation, focusing on key information and decisions made, as well as any unresolved questions or tasks. The summary should be concise and capture the essence of the interaction.";
|
|
38
38
|
class LlmSummarizer {
|
|
39
|
+
/**
|
|
40
|
+
* @param options - Configuration specifying the LLM and optional prompt.
|
|
41
|
+
*/
|
|
39
42
|
constructor(options) {
|
|
40
43
|
this.llm = options.llm;
|
|
41
44
|
this.prompt = options.prompt || DEFAULT_PROMPT;
|
|
42
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Summarizes a list of events into a single {@link CompactedEvent} using the
|
|
48
|
+
* configured LLM.
|
|
49
|
+
*
|
|
50
|
+
* @param events - The events to summarize. Must be non-empty.
|
|
51
|
+
* @returns A promise resolving to the compacted representation.
|
|
52
|
+
* @throws {Error} If `events` is empty or the LLM returns no content.
|
|
53
|
+
*/
|
|
43
54
|
async summarize(events) {
|
|
44
55
|
var _a, _b, _c, _d, _e, _f;
|
|
45
56
|
if (events.length === 0) {
|