@google/adk 2.2.1 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/a2a/a2a_remote_agent.js +4 -1
- package/dist/cjs/a2a/agent_card.js +102 -26
- package/dist/cjs/a2a/agent_to_a2a.js +1 -1
- package/dist/cjs/agents/agent_engine_client.js +172 -0
- package/dist/cjs/agents/base_agent.js +20 -4
- package/dist/cjs/agents/functions.js +227 -25
- package/dist/cjs/agents/instructions.js +6 -2
- package/dist/cjs/agents/invocation_context.js +26 -4
- package/dist/cjs/agents/langgraph_agent.js +152 -0
- package/dist/cjs/agents/llm_agent.js +194 -107
- package/dist/cjs/agents/processors/basic_llm_request_processor.js +1 -1
- package/dist/cjs/agents/processors/code_execution_request_processor.js +18 -6
- package/dist/cjs/agents/processors/content_processor_utils.js +38 -10
- package/dist/cjs/agents/processors/content_request_processor.js +34 -2
- package/dist/cjs/agents/processors/instructions_llm_request_processor.js +1 -1
- package/dist/cjs/agents/processors/nl_planning_processor.js +12 -3
- package/dist/cjs/artifacts/in_memory_artifact_service.js +14 -0
- package/dist/cjs/auth/auth_handler.js +37 -5
- package/dist/cjs/auth/auth_schemes.js +9 -0
- package/dist/cjs/cli/cli_eval.js +532 -0
- package/dist/cjs/cli/utils/envs.js +116 -0
- package/dist/cjs/cli/utils/evals.js +137 -0
- package/dist/cjs/cli/utils/logs.js +150 -0
- package/dist/cjs/code_executors/agent_engine_sandbox_code_executor.js +7 -2
- package/dist/cjs/code_executors/code_execution_utils.js +48 -16
- package/dist/cjs/code_executors/code_executor_context.js +6 -2
- package/dist/cjs/code_executors/container_code_executor.js +27 -16
- package/dist/cjs/code_executors/unsafe_local_code_executor.js +6 -1
- package/dist/cjs/common.js +61 -0
- package/dist/cjs/context/summarizers/llm_summarizer.js +12 -10
- package/dist/cjs/context/token_based_context_compactor.js +2 -1
- package/dist/cjs/errors/input_validation_error.js +3 -2
- package/dist/cjs/events/event.js +4 -2
- package/dist/cjs/examples/example_util.js +23 -2
- package/dist/cjs/flows/llm_flows/audio_transcriber.js +170 -0
- package/dist/cjs/index.js +104 -1
- package/dist/cjs/integrations/agent_registry/helpers.js +1 -1
- package/dist/cjs/models/gemini_llm_connection.js +16 -8
- package/dist/cjs/models/google_llm.js +13 -16
- package/dist/cjs/models/llm_response.js +9 -1
- package/dist/cjs/models/registry.js +1 -1
- package/dist/cjs/models/routed_llm.js +9 -8
- package/dist/cjs/planners/plan_re_act_planner.js +1 -1
- package/dist/cjs/plugins/base_plugin.js +13 -23
- package/dist/cjs/runner/in_memory_runner.js +6 -11
- package/dist/cjs/runner/runner.js +105 -33
- package/dist/cjs/sessions/base_session_service.js +14 -8
- package/dist/cjs/sessions/database_session_service.js +50 -28
- package/dist/cjs/sessions/db/operations.js +1 -1
- package/dist/cjs/sessions/in_memory_session_service.js +3 -1
- package/dist/cjs/sessions/stale_session_error.js +59 -0
- package/dist/cjs/sessions/state.js +8 -4
- package/dist/cjs/sessions/vertex_ai_session_service.js +34 -15
- package/dist/cjs/skills/loader.js +52 -18
- package/dist/cjs/telemetry/setup.js +0 -1
- package/dist/cjs/telemetry/tracing.js +147 -73
- package/dist/cjs/tools/agent_tool.js +44 -0
- package/dist/cjs/tools/apihub_tool/apihub_toolset.js +137 -0
- package/dist/cjs/tools/apihub_tool/clients/apihub_client.js +272 -0
- package/dist/cjs/tools/apihub_tool/clients/secret_client.js +148 -0
- package/dist/cjs/tools/apihub_tool/clients/service_account.js +48 -0
- package/dist/cjs/tools/application_integration_tool/application_integration_toolset.js +263 -0
- package/dist/cjs/tools/application_integration_tool/clients/cloud_request.js +133 -0
- package/dist/cjs/tools/application_integration_tool/clients/connections_client.js +671 -0
- package/dist/cjs/tools/application_integration_tool/clients/integration_client.js +223 -0
- package/dist/cjs/tools/application_integration_tool/integration_connector_tool.js +184 -0
- package/dist/cjs/tools/example_tool.js +10 -0
- package/dist/cjs/tools/function_tool.js +319 -0
- package/dist/cjs/tools/google_api_tool/google_api_tool.js +100 -0
- package/dist/cjs/tools/google_api_tool/google_api_toolset.js +173 -0
- package/dist/cjs/tools/google_api_tool/google_api_toolsets.js +124 -0
- package/dist/cjs/tools/google_api_tool/googleapi_to_openapi_converter.js +440 -0
- package/dist/cjs/tools/google_api_tool/index.js +61 -0
- package/dist/cjs/tools/load_artifacts_tool.js +12 -6
- package/dist/cjs/tools/load_memory_tool.js +12 -10
- package/dist/cjs/tools/mcp/index.js +12 -0
- package/dist/cjs/tools/mcp/mcp_session_manager.js +25 -0
- package/dist/cjs/tools/mcp/mcp_toolset.js +1 -14
- package/dist/cjs/tools/openapi_tool/auth/auth_helpers.js +1 -2
- package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +46 -2
- package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +4 -3
- package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +94 -10
- package/dist/cjs/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +20 -6
- package/dist/cjs/tools/openapi_tool/openapi_spec_parser/operation_parser.js +17 -6
- package/dist/cjs/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +14 -2
- package/dist/cjs/tools/openapi_tool/openapi_toolset.js +7 -13
- package/dist/cjs/tools/openapi_tool/rest_api_tool.js +17 -1
- package/dist/cjs/tools/retrieval/base_retrieval_tool.js +18 -3
- package/dist/cjs/tools/toolbox_toolset.js +174 -0
- package/dist/cjs/tools/webmcp/webmcp_toolset.js +1 -14
- package/dist/cjs/utils/client_labels.js +19 -2
- package/dist/cjs/utils/env_aware_utils.js +6 -8
- package/dist/cjs/utils/error_utils.js +11 -11
- package/dist/cjs/utils/failover_utils.js +1 -1
- package/dist/cjs/utils/file_extension_utils.js +11 -0
- package/dist/cjs/utils/file_utils.js +2 -24
- package/dist/cjs/utils/gemini_schema_util.js +28 -7
- package/dist/cjs/utils/json_utils.js +49 -0
- package/dist/cjs/utils/live_connection_utils.js +4 -5
- package/dist/cjs/utils/logger_node.js +11 -1
- package/dist/cjs/utils/object_notation_utils.js +6 -3
- package/dist/cjs/utils/output_schema_utils.js +5 -2
- package/dist/cjs/utils/streaming_utils.js +12 -12
- package/dist/cjs/utils/task.js +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/a2a/a2a_remote_agent.js +4 -1
- package/dist/esm/a2a/agent_card.js +103 -27
- package/dist/esm/a2a/agent_to_a2a.js +5 -2
- package/dist/esm/agents/agent_engine_client.js +144 -0
- package/dist/esm/agents/base_agent.js +20 -4
- package/dist/esm/agents/functions.js +226 -25
- package/dist/esm/agents/instructions.js +6 -2
- package/dist/esm/agents/invocation_context.js +24 -4
- package/dist/esm/agents/langgraph_agent.js +123 -0
- package/dist/esm/agents/llm_agent.js +204 -110
- package/dist/esm/agents/processors/basic_llm_request_processor.js +1 -1
- package/dist/esm/agents/processors/code_execution_request_processor.js +21 -8
- package/dist/esm/agents/processors/content_processor_utils.js +38 -10
- package/dist/esm/agents/processors/content_request_processor.js +34 -2
- package/dist/esm/agents/processors/instructions_llm_request_processor.js +1 -1
- package/dist/esm/agents/processors/nl_planning_processor.js +12 -3
- package/dist/esm/artifacts/in_memory_artifact_service.js +14 -0
- package/dist/esm/auth/auth_handler.js +37 -5
- package/dist/esm/auth/auth_schemes.js +8 -0
- package/dist/esm/cli/cli_eval.js +510 -0
- package/dist/esm/cli/utils/envs.js +78 -0
- package/dist/esm/cli/utils/evals.js +109 -0
- package/dist/esm/cli/utils/logs.js +111 -0
- package/dist/esm/code_executors/agent_engine_sandbox_code_executor.js +7 -2
- package/dist/esm/code_executors/code_execution_utils.js +46 -16
- package/dist/esm/code_executors/code_executor_context.js +5 -2
- package/dist/esm/code_executors/container_code_executor.js +27 -16
- package/dist/esm/code_executors/unsafe_local_code_executor.js +6 -1
- package/dist/esm/common.js +65 -4
- package/dist/esm/context/summarizers/llm_summarizer.js +12 -10
- package/dist/esm/context/token_based_context_compactor.js +2 -1
- package/dist/esm/errors/input_validation_error.js +3 -2
- package/dist/esm/events/event.js +4 -2
- package/dist/esm/examples/example_util.js +21 -1
- package/dist/esm/flows/llm_flows/audio_transcriber.js +142 -0
- package/dist/esm/index.js +114 -2
- package/dist/esm/integrations/agent_registry/helpers.js +1 -1
- package/dist/esm/models/gemini_llm_connection.js +16 -8
- package/dist/esm/models/google_llm.js +14 -17
- package/dist/esm/models/llm_response.js +9 -1
- package/dist/esm/models/registry.js +1 -1
- package/dist/esm/models/routed_llm.js +9 -8
- package/dist/esm/planners/plan_re_act_planner.js +1 -1
- package/dist/esm/plugins/base_plugin.js +13 -23
- package/dist/esm/runner/in_memory_runner.js +6 -11
- package/dist/esm/runner/runner.js +105 -33
- package/dist/esm/sessions/base_session_service.js +12 -7
- package/dist/esm/sessions/database_session_service.js +49 -28
- package/dist/esm/sessions/db/operations.js +1 -1
- package/dist/esm/sessions/in_memory_session_service.js +3 -1
- package/dist/esm/sessions/stale_session_error.js +31 -0
- package/dist/esm/sessions/state.js +8 -4
- package/dist/esm/sessions/vertex_ai_session_service.js +34 -15
- package/dist/esm/skills/loader.js +51 -17
- package/dist/esm/telemetry/setup.js +1 -2
- package/dist/esm/telemetry/tracing.js +151 -74
- package/dist/esm/tools/agent_tool.js +44 -0
- package/dist/esm/tools/apihub_tool/apihub_toolset.js +101 -0
- package/dist/esm/tools/apihub_tool/clients/apihub_client.js +244 -0
- package/dist/esm/tools/apihub_tool/clients/secret_client.js +132 -0
- package/dist/esm/tools/apihub_tool/clients/service_account.js +21 -0
- package/dist/esm/tools/application_integration_tool/application_integration_toolset.js +245 -0
- package/dist/esm/tools/application_integration_tool/clients/cloud_request.js +103 -0
- package/dist/esm/tools/application_integration_tool/clients/connections_client.js +629 -0
- package/dist/esm/tools/application_integration_tool/clients/integration_client.js +219 -0
- package/dist/esm/tools/application_integration_tool/integration_connector_tool.js +158 -0
- package/dist/esm/tools/example_tool.js +13 -1
- package/dist/esm/tools/function_tool.js +316 -0
- package/dist/esm/tools/google_api_tool/google_api_tool.js +73 -0
- package/dist/esm/tools/google_api_tool/google_api_toolset.js +146 -0
- package/dist/esm/tools/google_api_tool/google_api_toolsets.js +94 -0
- package/dist/esm/tools/google_api_tool/googleapi_to_openapi_converter.js +393 -0
- package/dist/esm/tools/google_api_tool/index.js +31 -0
- package/dist/esm/tools/load_artifacts_tool.js +10 -5
- package/dist/esm/tools/load_memory_tool.js +12 -10
- package/dist/esm/tools/mcp/index.js +6 -0
- package/dist/esm/tools/mcp/mcp_session_manager.js +25 -0
- package/dist/esm/tools/mcp/mcp_toolset.js +1 -14
- package/dist/esm/tools/openapi_tool/auth/auth_helpers.js +1 -2
- package/dist/esm/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +50 -3
- package/dist/esm/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +4 -3
- package/dist/esm/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +94 -10
- package/dist/esm/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +20 -6
- package/dist/esm/tools/openapi_tool/openapi_spec_parser/operation_parser.js +17 -6
- package/dist/esm/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +15 -2
- package/dist/esm/tools/openapi_tool/openapi_toolset.js +6 -12
- package/dist/esm/tools/openapi_tool/rest_api_tool.js +17 -1
- package/dist/esm/tools/retrieval/base_retrieval_tool.js +16 -2
- package/dist/esm/tools/toolbox_toolset.js +148 -0
- package/dist/esm/tools/webmcp/webmcp_toolset.js +1 -14
- package/dist/esm/utils/client_labels.js +19 -2
- package/dist/esm/utils/env_aware_utils.js +6 -8
- package/dist/esm/utils/error_utils.js +9 -10
- package/dist/esm/utils/failover_utils.js +1 -1
- package/dist/esm/utils/file_extension_utils.js +11 -0
- package/dist/esm/utils/file_utils.js +2 -23
- package/dist/esm/utils/gemini_schema_util.js +27 -7
- package/dist/esm/utils/json_utils.js +21 -0
- package/dist/esm/utils/live_connection_utils.js +4 -5
- package/dist/esm/utils/logger_node.js +11 -1
- package/dist/esm/utils/object_notation_utils.js +4 -2
- package/dist/esm/utils/output_schema_utils.js +5 -2
- package/dist/esm/utils/streaming_utils.js +11 -11
- package/dist/esm/utils/task.js +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/types/a2a/a2a_remote_agent.d.ts +9 -0
- package/dist/types/a2a/agent_card.d.ts +44 -1
- package/dist/types/a2a/agent_to_a2a.d.ts +9 -0
- package/dist/types/a2a/index.d.ts +1 -0
- package/dist/types/agents/agent_engine_client.d.ts +37 -0
- package/dist/types/agents/base_agent.d.ts +12 -0
- package/dist/types/agents/functions.d.ts +33 -1
- package/dist/types/agents/invocation_context.d.ts +20 -1
- package/dist/types/agents/langgraph_agent.d.ts +153 -0
- package/dist/types/agents/llm_agent.d.ts +5 -1
- package/dist/types/agents/processors/content_processor_utils.d.ts +4 -2
- package/dist/types/agents/processors/nl_planning_processor.d.ts +2 -1
- package/dist/types/auth/auth_handler.d.ts +28 -1
- package/dist/types/auth/auth_schemes.d.ts +13 -0
- package/dist/types/cli/cli_eval.d.ts +173 -0
- package/dist/types/cli/utils/envs.d.ts +23 -0
- package/dist/types/cli/utils/evals.d.ts +47 -0
- package/dist/types/cli/utils/logs.d.ts +38 -0
- package/dist/types/code_executors/code_execution_utils.d.ts +39 -0
- package/dist/types/code_executors/code_executor_context.d.ts +1 -0
- package/dist/types/code_executors/container_code_executor.d.ts +17 -5
- package/dist/types/common.d.ts +24 -5
- package/dist/types/errors/input_validation_error.d.ts +2 -1
- package/dist/types/events/event.d.ts +4 -0
- package/dist/types/examples/example_util.d.ts +17 -0
- package/dist/types/flows/llm_flows/audio_transcriber.d.ts +85 -0
- package/dist/types/index.d.ts +19 -2
- package/dist/types/models/gemini_llm_connection.d.ts +6 -7
- package/dist/types/models/routed_llm.d.ts +1 -1
- package/dist/types/plugins/base_plugin.d.ts +0 -10
- package/dist/types/runner/in_memory_runner.d.ts +2 -1
- package/dist/types/runner/runner.d.ts +34 -0
- package/dist/types/sessions/base_session_service.d.ts +5 -0
- package/dist/types/sessions/database_session_service.d.ts +17 -1
- package/dist/types/sessions/stale_session_error.d.ts +21 -0
- package/dist/types/sessions/state.d.ts +5 -1
- package/dist/types/sessions/vertex_ai_session_service.d.ts +8 -0
- package/dist/types/skills/loader.d.ts +3 -2
- package/dist/types/skills/skill.d.ts +1 -1
- package/dist/types/telemetry/tracing.d.ts +20 -4
- package/dist/types/tools/apihub_tool/apihub_toolset.d.ts +115 -0
- package/dist/types/tools/apihub_tool/clients/apihub_client.d.ts +142 -0
- package/dist/types/tools/apihub_tool/clients/secret_client.d.ts +55 -0
- package/dist/types/tools/apihub_tool/clients/service_account.d.ts +11 -0
- package/dist/types/tools/application_integration_tool/application_integration_toolset.d.ts +109 -0
- package/dist/types/tools/application_integration_tool/clients/cloud_request.d.ts +53 -0
- package/dist/types/tools/application_integration_tool/clients/connections_client.d.ts +229 -0
- package/dist/types/tools/application_integration_tool/clients/integration_client.d.ts +72 -0
- package/dist/types/tools/application_integration_tool/integration_connector_tool.d.ts +70 -0
- package/dist/types/tools/base_toolset.d.ts +6 -5
- package/dist/types/tools/example_tool.d.ts +10 -0
- package/dist/types/tools/function_tool.d.ts +32 -0
- package/dist/types/tools/google_api_tool/google_api_tool.d.ts +37 -0
- package/dist/types/tools/google_api_tool/google_api_toolset.d.ts +55 -0
- package/dist/types/tools/google_api_tool/google_api_toolsets.d.ts +48 -0
- package/dist/types/tools/google_api_tool/googleapi_to_openapi_converter.d.ts +165 -0
- package/dist/types/tools/google_api_tool/index.d.ts +10 -0
- package/dist/types/tools/load_artifacts_tool.d.ts +14 -1
- package/dist/types/tools/load_memory_tool.d.ts +23 -1
- package/dist/types/tools/mcp/index.d.ts +3 -0
- package/dist/types/tools/mcp/mcp_session_manager.d.ts +34 -1
- package/dist/types/tools/mcp/mcp_toolset.d.ts +15 -0
- package/dist/types/tools/openapi_tool/auth/auth_helpers.d.ts +19 -0
- package/dist/types/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.d.ts +18 -1
- package/dist/types/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.d.ts +12 -0
- package/dist/types/tools/openapi_tool/openapi_spec_parser/operation_parser.d.ts +8 -0
- package/dist/types/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.d.ts +2 -1
- package/dist/types/tools/openapi_tool/openapi_toolset.d.ts +5 -0
- package/dist/types/tools/openapi_tool/rest_api_tool.d.ts +10 -0
- package/dist/types/tools/retrieval/base_retrieval_tool.d.ts +15 -0
- package/dist/types/tools/toolbox_toolset.d.ts +159 -0
- package/dist/types/utils/client_labels.d.ts +2 -1
- package/dist/types/utils/env_aware_utils.d.ts +18 -2
- package/dist/types/utils/error_utils.d.ts +7 -0
- package/dist/types/utils/file_utils.d.ts +6 -1
- package/dist/types/utils/gemini_schema_util.d.ts +9 -2
- package/dist/types/utils/json_utils.d.ts +11 -0
- package/dist/types/utils/object_notation_utils.d.ts +7 -0
- package/dist/types/utils/output_schema_utils.d.ts +3 -2
- package/dist/types/utils/simple_zod_to_json.d.ts +1 -2
- package/dist/types/utils/streaming_utils.d.ts +11 -4
- package/dist/types/version.d.ts +1 -1
- package/dist/web/index_web.js +117 -110
- package/dist/web/index_web.js.map +4 -4
- package/package.json +38 -26
- package/dist/cjs/models/gemini_continuation.js +0 -232
- package/dist/esm/models/gemini_continuation.js +0 -205
- package/dist/types/models/gemini_continuation.d.ts +0 -59
|
@@ -56,7 +56,7 @@ function removeClientFunctionCallId(content) {
|
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
__name(removeClientFunctionCallId, "removeClientFunctionCallId");
|
|
59
|
-
function getContents(events, agentName, currentBranch, currentIsolationScope) {
|
|
59
|
+
function getContents(events, agentName, currentBranch, currentIsolationScope, preserveFunctionCallIds = false) {
|
|
60
60
|
const filteredEvents = [];
|
|
61
61
|
for (const event of events) {
|
|
62
62
|
if (!(0, import_compaction_utils.isEventVisibleInIsolationScope)(event, currentIsolationScope)) {
|
|
@@ -69,16 +69,23 @@ function getContents(events, agentName, currentBranch, currentIsolationScope) {
|
|
|
69
69
|
if (!shouldIncludeEventInContext(event, currentBranch, currentIsolationScope)) {
|
|
70
70
|
continue;
|
|
71
71
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
72
|
+
if (isEventFromAnotherAgent(agentName, event)) {
|
|
73
|
+
const converted = convertForeignEvent(event);
|
|
74
|
+
if (converted) {
|
|
75
|
+
filteredEvents.push(converted);
|
|
76
|
+
}
|
|
77
|
+
} else {
|
|
78
|
+
filteredEvents.push(event);
|
|
79
|
+
}
|
|
75
80
|
}
|
|
76
81
|
let resultEvents = rearrangeEventsForLatestFunctionResponse(filteredEvents);
|
|
77
82
|
resultEvents = rearrangeEventsForAsyncFunctionResponsesInHistory(resultEvents);
|
|
78
83
|
const contents = [];
|
|
79
84
|
for (const event of resultEvents) {
|
|
80
85
|
const content = (0, import_lodash_es.cloneDeep)(event.content);
|
|
81
|
-
|
|
86
|
+
if (!preserveFunctionCallIds) {
|
|
87
|
+
removeClientFunctionCallId(content);
|
|
88
|
+
}
|
|
82
89
|
contents.push(content);
|
|
83
90
|
}
|
|
84
91
|
return contents;
|
|
@@ -111,18 +118,20 @@ function isRequestInputEvent(event) {
|
|
|
111
118
|
return false;
|
|
112
119
|
}
|
|
113
120
|
__name(isRequestInputEvent, "isRequestInputEvent");
|
|
114
|
-
function getCurrentTurnContents(events, agentName, currentBranch, currentIsolationScope) {
|
|
121
|
+
function getCurrentTurnContents(events, agentName, currentBranch, currentIsolationScope, preserveFunctionCallIds = false) {
|
|
122
|
+
var _a;
|
|
115
123
|
for (let i = events.length - 1; i >= 0; i--) {
|
|
116
124
|
const event = events[i];
|
|
117
125
|
if (!shouldIncludeEventInContext(event, currentBranch, currentIsolationScope)) {
|
|
118
126
|
continue;
|
|
119
127
|
}
|
|
120
|
-
if (event.author === "user" || isEventFromAnotherAgent(agentName, event)) {
|
|
128
|
+
if (event.author === "user" || isEventFromAnotherAgent(agentName, event) && ((_a = event.content.parts) == null ? void 0 : _a.some(isVisibleForeignPart))) {
|
|
121
129
|
return getContents(
|
|
122
130
|
events.slice(turnStart(events, i)),
|
|
123
131
|
agentName,
|
|
124
132
|
currentBranch,
|
|
125
|
-
currentIsolationScope
|
|
133
|
+
currentIsolationScope,
|
|
134
|
+
preserveFunctionCallIds
|
|
126
135
|
);
|
|
127
136
|
}
|
|
128
137
|
}
|
|
@@ -187,6 +196,13 @@ function isEventFromAnotherAgent(agentName, event) {
|
|
|
187
196
|
return !!agentName && event.author !== agentName && event.author !== "user";
|
|
188
197
|
}
|
|
189
198
|
__name(isEventFromAnotherAgent, "isEventFromAnotherAgent");
|
|
199
|
+
function isVisibleForeignPart(part) {
|
|
200
|
+
if (part.functionCall || part.functionResponse) {
|
|
201
|
+
return true;
|
|
202
|
+
}
|
|
203
|
+
return !part.thought && part.text !== "";
|
|
204
|
+
}
|
|
205
|
+
__name(isVisibleForeignPart, "isVisibleForeignPart");
|
|
190
206
|
function convertForeignEvent(event) {
|
|
191
207
|
var _a, _b, _c, _d, _e, _f;
|
|
192
208
|
if (!((_b = (_a = event.content) == null ? void 0 : _a.parts) == null ? void 0 : _b.length)) {
|
|
@@ -201,7 +217,10 @@ function convertForeignEvent(event) {
|
|
|
201
217
|
]
|
|
202
218
|
};
|
|
203
219
|
for (const part of event.content.parts) {
|
|
204
|
-
if (
|
|
220
|
+
if (!isVisibleForeignPart(part)) {
|
|
221
|
+
continue;
|
|
222
|
+
}
|
|
223
|
+
if (part.text) {
|
|
205
224
|
(_c = content.parts) == null ? void 0 : _c.push({
|
|
206
225
|
text: `[${event.author}] said: ${part.text}`
|
|
207
226
|
});
|
|
@@ -218,9 +237,18 @@ function convertForeignEvent(event) {
|
|
|
218
237
|
)}`
|
|
219
238
|
});
|
|
220
239
|
} else {
|
|
221
|
-
|
|
240
|
+
const {
|
|
241
|
+
thought: _thought,
|
|
242
|
+
thoughtSignature: _thoughtSignature,
|
|
243
|
+
...rest
|
|
244
|
+
} = part;
|
|
245
|
+
(_f = content.parts) == null ? void 0 : _f.push((0, import_lodash_es.cloneDeep)(rest));
|
|
222
246
|
}
|
|
223
247
|
}
|
|
248
|
+
const preambleOnly = content.parts.length === 1;
|
|
249
|
+
if (preambleOnly) {
|
|
250
|
+
return void 0;
|
|
251
|
+
}
|
|
224
252
|
return (0, import_event.createEvent)({
|
|
225
253
|
invocationId: event.invocationId,
|
|
226
254
|
author: "user",
|
|
@@ -30,6 +30,7 @@ __export(content_request_processor_exports, {
|
|
|
30
30
|
});
|
|
31
31
|
module.exports = __toCommonJS(content_request_processor_exports);
|
|
32
32
|
var import_compaction_utils = require("../../context/compaction_utils.js");
|
|
33
|
+
var import_base_llm = require("../../models/base_llm.js");
|
|
33
34
|
var import_llm_agent = require("../llm_agent.js");
|
|
34
35
|
var import_content_processor_utils = require("./content_processor_utils.js");
|
|
35
36
|
/**
|
|
@@ -37,6 +38,31 @@ var import_content_processor_utils = require("./content_processor_utils.js");
|
|
|
37
38
|
* Copyright 2025 Google LLC
|
|
38
39
|
* SPDX-License-Identifier: Apache-2.0
|
|
39
40
|
*/
|
|
41
|
+
const CLAUDE_MODEL_SYMBOL = /* @__PURE__ */ Symbol.for("google.adk.claudeModel");
|
|
42
|
+
const CLAUDE_MODEL_NAME_PATTERN = /^claude-/i;
|
|
43
|
+
function isClaudeModelInstance(model) {
|
|
44
|
+
return CLAUDE_MODEL_SYMBOL in model && model[CLAUDE_MODEL_SYMBOL] === true || CLAUDE_MODEL_NAME_PATTERN.test(model.model);
|
|
45
|
+
}
|
|
46
|
+
__name(isClaudeModelInstance, "isClaudeModelInstance");
|
|
47
|
+
function shouldPreserveFunctionCallIds(agent, llmRequest) {
|
|
48
|
+
if (llmRequest.model && CLAUDE_MODEL_NAME_PATTERN.test(llmRequest.model)) {
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
let current = agent;
|
|
52
|
+
while (current) {
|
|
53
|
+
if ((0, import_llm_agent.isLlmAgent)(current)) {
|
|
54
|
+
if ((0, import_base_llm.isBaseLlm)(current.model)) {
|
|
55
|
+
return isClaudeModelInstance(current.model);
|
|
56
|
+
}
|
|
57
|
+
if (typeof current.model === "string" && current.model.length > 0) {
|
|
58
|
+
return CLAUDE_MODEL_NAME_PATTERN.test(current.model);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
current = current.parentAgent;
|
|
62
|
+
}
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
__name(shouldPreserveFunctionCallIds, "shouldPreserveFunctionCallIds");
|
|
40
66
|
const _ContentRequestProcessor = class _ContentRequestProcessor {
|
|
41
67
|
/**
|
|
42
68
|
* Fills {@link LlmRequest.contents} based on the session event history and
|
|
@@ -55,19 +81,25 @@ const _ContentRequestProcessor = class _ContentRequestProcessor {
|
|
|
55
81
|
invocationContext.session.events,
|
|
56
82
|
invocationContext.isolationScope
|
|
57
83
|
);
|
|
84
|
+
const preserveFunctionCallIds = shouldPreserveFunctionCallIds(
|
|
85
|
+
agent,
|
|
86
|
+
llmRequest
|
|
87
|
+
);
|
|
58
88
|
if (agent.includeContents === "default") {
|
|
59
89
|
llmRequest.contents = (0, import_content_processor_utils.getContents)(
|
|
60
90
|
events,
|
|
61
91
|
agent.name,
|
|
62
92
|
invocationContext.branch,
|
|
63
|
-
invocationContext.isolationScope
|
|
93
|
+
invocationContext.isolationScope,
|
|
94
|
+
preserveFunctionCallIds
|
|
64
95
|
);
|
|
65
96
|
} else {
|
|
66
97
|
llmRequest.contents = (0, import_content_processor_utils.getCurrentTurnContents)(
|
|
67
98
|
events,
|
|
68
99
|
agent.name,
|
|
69
100
|
invocationContext.branch,
|
|
70
|
-
invocationContext.isolationScope
|
|
101
|
+
invocationContext.isolationScope,
|
|
102
|
+
preserveFunctionCallIds
|
|
71
103
|
);
|
|
72
104
|
}
|
|
73
105
|
return;
|
|
@@ -78,7 +78,7 @@ const _InstructionsLlmRequestProcessor = class _InstructionsLlmRequestProcessor
|
|
|
78
78
|
}
|
|
79
79
|
(0, import_llm_request.appendInstructions)(llmRequest, [instructionWithState]);
|
|
80
80
|
}
|
|
81
|
-
if (agent.outputSchema && ((_a = agent.tools) == null ? void 0 : _a.length) && !(0, import_output_schema_utils.canUseOutputSchemaWithTools)(agent.canonicalModel
|
|
81
|
+
if (agent.outputSchema && ((_a = agent.tools) == null ? void 0 : _a.length) && !(0, import_output_schema_utils.canUseOutputSchemaWithTools)(agent.canonicalModel)) {
|
|
82
82
|
(0, import_llm_request.appendInstructions)(llmRequest, [
|
|
83
83
|
'To output the final result, you must call the "set_model_response" function with the appropriate values. Do not output anything else.'
|
|
84
84
|
]);
|
|
@@ -31,6 +31,7 @@ __export(nl_planning_processor_exports, {
|
|
|
31
31
|
NlPlanningResponseProcessor: () => NlPlanningResponseProcessor
|
|
32
32
|
});
|
|
33
33
|
module.exports = __toCommonJS(nl_planning_processor_exports);
|
|
34
|
+
var import_event = require("../../events/event.js");
|
|
34
35
|
var import_llm_request = require("../../models/llm_request.js");
|
|
35
36
|
var import_base_planner = require("../../planners/base_planner.js");
|
|
36
37
|
var import_built_in_planner = require("../../planners/built_in_planner.js");
|
|
@@ -85,20 +86,28 @@ const _NlPlanningRequestProcessor = class _NlPlanningRequestProcessor extends im
|
|
|
85
86
|
__name(_NlPlanningRequestProcessor, "NlPlanningRequestProcessor");
|
|
86
87
|
let NlPlanningRequestProcessor = _NlPlanningRequestProcessor;
|
|
87
88
|
const _NlPlanningResponseProcessor = class _NlPlanningResponseProcessor extends import_base_llm_processor.BaseLlmResponseProcessor {
|
|
88
|
-
// eslint-disable-next-line require-yield -- this processor only rewrites the response and has no event to emit
|
|
89
89
|
async *runAsync(invocationContext, llmResponse) {
|
|
90
|
-
var _a, _b;
|
|
90
|
+
var _a, _b, _c;
|
|
91
91
|
const planner = getPlanner(invocationContext);
|
|
92
92
|
if (!planner || !((_b = (_a = llmResponse.content) == null ? void 0 : _a.parts) == null ? void 0 : _b.length)) {
|
|
93
93
|
return;
|
|
94
94
|
}
|
|
95
|
+
const callbackContext = new import_context.Context({ invocationContext });
|
|
95
96
|
const processedParts = planner.processPlanningResponse(
|
|
96
|
-
|
|
97
|
+
callbackContext,
|
|
97
98
|
llmResponse.content.parts
|
|
98
99
|
);
|
|
99
100
|
if (processedParts !== void 0) {
|
|
100
101
|
llmResponse.content = { ...llmResponse.content, parts: processedParts };
|
|
101
102
|
}
|
|
103
|
+
if (callbackContext.state.hasDelta()) {
|
|
104
|
+
yield (0, import_event.createEvent)({
|
|
105
|
+
invocationId: invocationContext.invocationId,
|
|
106
|
+
author: (_c = invocationContext.agent) == null ? void 0 : _c.name,
|
|
107
|
+
branch: invocationContext.branch,
|
|
108
|
+
actions: callbackContext.eventActions
|
|
109
|
+
});
|
|
110
|
+
}
|
|
102
111
|
}
|
|
103
112
|
};
|
|
104
113
|
__name(_NlPlanningResponseProcessor, "NlPlanningResponseProcessor");
|
|
@@ -63,6 +63,13 @@ const _InMemoryArtifactService = class _InMemoryArtifactService {
|
|
|
63
63
|
const version = this.artifacts[path].length;
|
|
64
64
|
const metadata = {
|
|
65
65
|
version,
|
|
66
|
+
canonicalUri: getCanonicalUri(
|
|
67
|
+
appName,
|
|
68
|
+
userId,
|
|
69
|
+
sessionId,
|
|
70
|
+
filename,
|
|
71
|
+
version
|
|
72
|
+
),
|
|
66
73
|
customMetadata
|
|
67
74
|
};
|
|
68
75
|
if (!artifact.inlineData && artifact.text === void 0) {
|
|
@@ -189,6 +196,13 @@ function artifactPrefix(scope, ...parts) {
|
|
|
189
196
|
return `${[scope, ...parts].map(encodeURIComponent).join("/")}/`;
|
|
190
197
|
}
|
|
191
198
|
__name(artifactPrefix, "artifactPrefix");
|
|
199
|
+
function getCanonicalUri(appName, userId, sessionId, filename, version) {
|
|
200
|
+
if (fileHasUserNamespace(filename)) {
|
|
201
|
+
return `memory://apps/${appName}/users/${userId}/artifacts/${filename}/versions/${version}`;
|
|
202
|
+
}
|
|
203
|
+
return `memory://apps/${appName}/users/${userId}/sessions/${sessionId}/artifacts/${filename}/versions/${version}`;
|
|
204
|
+
}
|
|
205
|
+
__name(getCanonicalUri, "getCanonicalUri");
|
|
192
206
|
function fileHasUserNamespace(filename) {
|
|
193
207
|
return filename.startsWith("user:");
|
|
194
208
|
}
|
|
@@ -28,6 +28,7 @@ __export(auth_handler_exports, {
|
|
|
28
28
|
AuthHandler: () => AuthHandler
|
|
29
29
|
});
|
|
30
30
|
module.exports = __toCommonJS(auth_handler_exports);
|
|
31
|
+
var import_lodash_es = require("lodash-es");
|
|
31
32
|
var import_env_aware_utils = require("../utils/env_aware_utils.js");
|
|
32
33
|
var import_oauth2_credential_exchanger = require("./oauth2/oauth2_credential_exchanger.js");
|
|
33
34
|
var import_oauth2_utils = require("./oauth2/oauth2_utils.js");
|
|
@@ -38,6 +39,11 @@ var import_oauth2_utils = require("./oauth2/oauth2_utils.js");
|
|
|
38
39
|
*/
|
|
39
40
|
const S256_CODE_CHALLENGE_METHOD = "S256";
|
|
40
41
|
const _AuthHandler = class _AuthHandler {
|
|
42
|
+
/**
|
|
43
|
+
* @param authConfig The auth config this handler reads. It stays readable
|
|
44
|
+
* and replaceable after construction; each method reads the current
|
|
45
|
+
* value.
|
|
46
|
+
*/
|
|
41
47
|
constructor(authConfig) {
|
|
42
48
|
this.authConfig = authConfig;
|
|
43
49
|
}
|
|
@@ -70,14 +76,32 @@ const _AuthHandler = class _AuthHandler {
|
|
|
70
76
|
state.set(credentialKey, exchangedCredential.credential);
|
|
71
77
|
}
|
|
72
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* Builds the auth request to send to the client.
|
|
81
|
+
*
|
|
82
|
+
* The result is always a new object, and its `exchangedAuthCredential` is
|
|
83
|
+
* never an object held by {@link authConfig}. A caller that fills in the
|
|
84
|
+
* response, for example `exchangedAuthCredential.oauth2.authResponseUri`,
|
|
85
|
+
* therefore leaves the handler's credentials unchanged.
|
|
86
|
+
*
|
|
87
|
+
* When the config is returned as is, because the scheme is not OAuth2 or
|
|
88
|
+
* OpenID Connect or the exchanged credential already has an auth URI, the
|
|
89
|
+
* result is a deep copy of the whole config. In the other branches only the
|
|
90
|
+
* exchanged credential is guaranteed independent: `authScheme` and
|
|
91
|
+
* `rawAuthCredential` are the handler's own objects.
|
|
92
|
+
*
|
|
93
|
+
* @return The auth config to request from the client.
|
|
94
|
+
* @throws Error: If an OAuth2 or OpenID Connect scheme has no raw
|
|
95
|
+
* credential, no `oauth2` on it, or no client ID and secret.
|
|
96
|
+
*/
|
|
73
97
|
generateAuthRequest() {
|
|
74
98
|
var _a, _b;
|
|
75
99
|
const authSchemeType = this.authConfig.authScheme.type;
|
|
76
100
|
if (!["oauth2", "openIdConnect"].includes(authSchemeType)) {
|
|
77
|
-
return this.authConfig;
|
|
101
|
+
return (0, import_lodash_es.cloneDeep)(this.authConfig);
|
|
78
102
|
}
|
|
79
103
|
if ((_b = (_a = this.authConfig.exchangedAuthCredential) == null ? void 0 : _a.oauth2) == null ? void 0 : _b.authUri) {
|
|
80
|
-
return this.authConfig;
|
|
104
|
+
return (0, import_lodash_es.cloneDeep)(this.authConfig);
|
|
81
105
|
}
|
|
82
106
|
if (!this.authConfig.rawAuthCredential) {
|
|
83
107
|
throw new Error(`Auth Scheme ${authSchemeType} requires authCredential.`);
|
|
@@ -92,7 +116,7 @@ const _AuthHandler = class _AuthHandler {
|
|
|
92
116
|
credentialKey: this.authConfig.credentialKey,
|
|
93
117
|
authScheme: this.authConfig.authScheme,
|
|
94
118
|
rawAuthCredential: this.authConfig.rawAuthCredential,
|
|
95
|
-
exchangedAuthCredential: this.authConfig.rawAuthCredential
|
|
119
|
+
exchangedAuthCredential: (0, import_lodash_es.cloneDeep)(this.authConfig.rawAuthCredential)
|
|
96
120
|
};
|
|
97
121
|
}
|
|
98
122
|
if (!this.authConfig.rawAuthCredential.oauth2.clientId || !this.authConfig.rawAuthCredential.oauth2.clientSecret) {
|
|
@@ -114,6 +138,10 @@ const _AuthHandler = class _AuthHandler {
|
|
|
114
138
|
* challenge derived from the credential's code verifier, and the returned
|
|
115
139
|
* credential carries the verifier the later token exchange must send.
|
|
116
140
|
*
|
|
141
|
+
* The URI leaves out `redirect_uri` when the credential has no
|
|
142
|
+
* `redirectUri`, so the provider uses the redirect registered for the
|
|
143
|
+
* client, and leaves out `scope` when the scheme lists no scopes.
|
|
144
|
+
*
|
|
117
145
|
* @return An AuthCredential object containing the auth URI and state.
|
|
118
146
|
* @throws Error: If the authorization endpoint is not configured in the
|
|
119
147
|
* auth scheme, or the credential requests a code challenge method other
|
|
@@ -157,9 +185,13 @@ const _AuthHandler = class _AuthHandler {
|
|
|
157
185
|
const state = (0, import_env_aware_utils.randomUUID)();
|
|
158
186
|
const url = new URL(authorizationEndpoint);
|
|
159
187
|
url.searchParams.set("client_id", oauth2.clientId || "");
|
|
160
|
-
|
|
188
|
+
if (oauth2.redirectUri) {
|
|
189
|
+
url.searchParams.set("redirect_uri", oauth2.redirectUri);
|
|
190
|
+
}
|
|
161
191
|
url.searchParams.set("response_type", "code");
|
|
162
|
-
|
|
192
|
+
if (scopes.length > 0) {
|
|
193
|
+
url.searchParams.set("scope", scopes.join(" "));
|
|
194
|
+
}
|
|
163
195
|
url.searchParams.set("state", state);
|
|
164
196
|
url.searchParams.set("access_type", "offline");
|
|
165
197
|
url.searchParams.set("prompt", "consent");
|
|
@@ -25,6 +25,7 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
25
25
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
26
26
|
var auth_schemes_exports = {};
|
|
27
27
|
__export(auth_schemes_exports, {
|
|
28
|
+
AuthSchemeType: () => AuthSchemeType,
|
|
28
29
|
OAuthGrantType: () => OAuthGrantType,
|
|
29
30
|
getOAuthGrantTypeFromFlow: () => getOAuthGrantTypeFromFlow
|
|
30
31
|
});
|
|
@@ -34,6 +35,13 @@ module.exports = __toCommonJS(auth_schemes_exports);
|
|
|
34
35
|
* Copyright 2025 Google LLC
|
|
35
36
|
* SPDX-License-Identifier: Apache-2.0
|
|
36
37
|
*/
|
|
38
|
+
var AuthSchemeType = /* @__PURE__ */ ((AuthSchemeType2) => {
|
|
39
|
+
AuthSchemeType2["API_KEY"] = "apiKey";
|
|
40
|
+
AuthSchemeType2["HTTP"] = "http";
|
|
41
|
+
AuthSchemeType2["OAUTH2"] = "oauth2";
|
|
42
|
+
AuthSchemeType2["OPEN_ID_CONNECT"] = "openIdConnect";
|
|
43
|
+
return AuthSchemeType2;
|
|
44
|
+
})(AuthSchemeType || {});
|
|
37
45
|
var OAuthGrantType = /* @__PURE__ */ ((OAuthGrantType2) => {
|
|
38
46
|
OAuthGrantType2["CLIENT_CREDENTIALS"] = "client_credentials";
|
|
39
47
|
OAuthGrantType2["AUTHORIZATION_CODE"] = "authorization_code";
|
|
@@ -59,6 +67,7 @@ function getOAuthGrantTypeFromFlow(flow) {
|
|
|
59
67
|
__name(getOAuthGrantTypeFromFlow, "getOAuthGrantTypeFromFlow");
|
|
60
68
|
// Annotate the CommonJS export names for ESM import in node:
|
|
61
69
|
0 && (module.exports = {
|
|
70
|
+
AuthSchemeType,
|
|
62
71
|
OAuthGrantType,
|
|
63
72
|
getOAuthGrantTypeFromFlow
|
|
64
73
|
});
|