@softactivate/adk 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/README.md +3 -0
- package/dist/cjs/a2a/a2a_event.js +317 -0
- package/dist/cjs/a2a/a2a_remote_agent.js +179 -0
- package/dist/cjs/a2a/a2a_remote_agent_run_processor.js +205 -0
- package/dist/cjs/a2a/a2a_remote_agent_utils.js +165 -0
- package/dist/cjs/a2a/agent_card.js +380 -0
- package/dist/cjs/a2a/agent_executor.js +221 -0
- package/dist/cjs/a2a/agent_to_a2a.js +115 -0
- package/dist/cjs/a2a/event_converter_utils.js +201 -0
- package/dist/cjs/a2a/event_processor_utils.js +180 -0
- package/dist/cjs/a2a/executor_context.js +53 -0
- package/dist/cjs/a2a/metadata_converter_utils.js +126 -0
- package/dist/cjs/a2a/part_converter_utils.js +223 -0
- package/dist/cjs/agents/active_streaming_tool.js +44 -0
- package/dist/cjs/agents/base_agent.js +294 -0
- package/dist/cjs/agents/context.js +180 -0
- package/dist/cjs/agents/functions.js +525 -0
- package/dist/cjs/agents/instructions.js +110 -0
- package/dist/cjs/agents/invocation_context.js +110 -0
- package/dist/cjs/agents/live_request_queue.js +136 -0
- package/dist/cjs/agents/llm_agent.js +722 -0
- package/dist/cjs/agents/loop_agent.js +84 -0
- package/dist/cjs/agents/parallel_agent.js +95 -0
- package/dist/cjs/agents/processors/agent_transfer_llm_request_processor.js +132 -0
- package/dist/cjs/agents/processors/base_llm_processor.js +44 -0
- package/dist/cjs/agents/processors/basic_llm_request_processor.js +68 -0
- package/dist/cjs/agents/processors/code_execution_request_processor.js +391 -0
- package/dist/cjs/agents/processors/content_processor_utils.js +338 -0
- package/dist/cjs/agents/processors/content_request_processor.js +87 -0
- package/dist/cjs/agents/processors/context_compactor_request_processor.js +70 -0
- package/dist/cjs/agents/processors/identity_llm_request_processor.js +54 -0
- package/dist/cjs/agents/processors/instructions_llm_request_processor.js +85 -0
- package/dist/cjs/agents/processors/request_confirmation_llm_request_processor.js +165 -0
- package/dist/cjs/agents/processors/tool_filter_request_processor.js +73 -0
- package/dist/cjs/agents/readonly_context.js +83 -0
- package/dist/cjs/agents/routed_agent.js +97 -0
- package/dist/cjs/agents/run_config.js +71 -0
- package/dist/cjs/agents/sequential_agent.js +106 -0
- package/dist/cjs/agents/transcription_entry.js +27 -0
- package/dist/cjs/artifacts/base_artifact_service.js +27 -0
- package/dist/cjs/artifacts/file_artifact_service.js +522 -0
- package/dist/cjs/artifacts/gcs_artifact_service.js +227 -0
- package/dist/cjs/artifacts/in_memory_artifact_service.js +181 -0
- package/dist/cjs/artifacts/registry.js +55 -0
- package/dist/cjs/auth/auth_credential.js +46 -0
- package/dist/cjs/auth/auth_handler.js +159 -0
- package/dist/cjs/auth/auth_preprocessor.js +178 -0
- package/dist/cjs/auth/auth_provider_registry.js +61 -0
- package/dist/cjs/auth/auth_schemes.js +62 -0
- package/dist/cjs/auth/auth_tool.js +27 -0
- package/dist/cjs/auth/base_auth_provider.js +27 -0
- package/dist/cjs/auth/credential_service/base_credential_service.js +27 -0
- package/dist/cjs/auth/credential_service/in_memory_credential_service.js +63 -0
- package/dist/cjs/auth/credential_service/session_state_credential_service.js +51 -0
- package/dist/cjs/auth/exchanger/base_credential_exchanger.js +40 -0
- package/dist/cjs/auth/exchanger/credential_exchanger_registry.js +59 -0
- package/dist/cjs/auth/oauth2/oauth2_credential_exchanger.js +198 -0
- package/dist/cjs/auth/oauth2/oauth2_credential_refresher.js +109 -0
- package/dist/cjs/auth/oauth2/oauth2_discovery.js +186 -0
- package/dist/cjs/auth/oauth2/oauth2_utils.js +119 -0
- package/dist/cjs/auth/refresher/base_credential_refresher.js +44 -0
- package/dist/cjs/auth/refresher/credential_refresher_registry.js +68 -0
- package/dist/cjs/code_executors/base_code_executor.js +92 -0
- package/dist/cjs/code_executors/built_in_code_executor.js +74 -0
- package/dist/cjs/code_executors/code_execution_utils.js +161 -0
- package/dist/cjs/code_executors/code_executor_context.js +198 -0
- package/dist/cjs/code_executors/unsafe_local_code_executor.js +241 -0
- package/dist/cjs/common.js +362 -0
- package/dist/cjs/context/base_context_compactor.js +27 -0
- package/dist/cjs/context/summarizers/base_summarizer.js +27 -0
- package/dist/cjs/context/summarizers/llm_summarizer.js +93 -0
- package/dist/cjs/context/token_based_context_compactor.js +135 -0
- package/dist/cjs/context/truncating_context_compactor.js +58 -0
- package/dist/cjs/events/compacted_event.js +53 -0
- package/dist/cjs/events/event.js +146 -0
- package/dist/cjs/events/event_actions.js +83 -0
- package/dist/cjs/events/structured_events.js +105 -0
- package/dist/cjs/examples/base_example_provider.js +56 -0
- package/dist/cjs/examples/example.js +27 -0
- package/dist/cjs/examples/example_util.js +107 -0
- package/dist/cjs/features/feature_registry.js +141 -0
- package/dist/cjs/index.js +94 -0
- package/dist/cjs/index_web.js +33 -0
- package/dist/cjs/memory/base_memory_service.js +27 -0
- package/dist/cjs/memory/in_memory_memory_service.js +99 -0
- package/dist/cjs/memory/memory_entry.js +27 -0
- package/dist/cjs/models/apigee_llm.js +182 -0
- package/dist/cjs/models/base_llm.js +102 -0
- package/dist/cjs/models/base_llm_connection.js +27 -0
- package/dist/cjs/models/gemini_llm_connection.js +133 -0
- package/dist/cjs/models/google_llm.js +291 -0
- package/dist/cjs/models/llm_request.js +82 -0
- package/dist/cjs/models/llm_response.js +73 -0
- package/dist/cjs/models/registry.js +123 -0
- package/dist/cjs/models/routed_llm.js +99 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/plugins/base_plugin.js +295 -0
- package/dist/cjs/plugins/logging_plugin.js +259 -0
- package/dist/cjs/plugins/plugin_manager.js +310 -0
- package/dist/cjs/plugins/security_plugin.js +156 -0
- package/dist/cjs/runner/in_memory_runner.js +58 -0
- package/dist/cjs/runner/runner.js +380 -0
- package/dist/cjs/sessions/base_session_service.js +121 -0
- package/dist/cjs/sessions/database_session_service.js +367 -0
- package/dist/cjs/sessions/db/operations.js +109 -0
- package/dist/cjs/sessions/db/schema.js +204 -0
- package/dist/cjs/sessions/in_memory_session_service.js +210 -0
- package/dist/cjs/sessions/registry.js +49 -0
- package/dist/cjs/sessions/session.js +48 -0
- package/dist/cjs/sessions/state.js +101 -0
- package/dist/cjs/skills/loader.js +283 -0
- package/dist/cjs/skills/prompt.js +58 -0
- package/dist/cjs/skills/skill.js +78 -0
- package/dist/cjs/telemetry/google_cloud.js +83 -0
- package/dist/cjs/telemetry/setup.js +105 -0
- package/dist/cjs/telemetry/tracing.js +253 -0
- package/dist/cjs/tools/agent_tool.js +219 -0
- package/dist/cjs/tools/base_tool.js +122 -0
- package/dist/cjs/tools/base_toolset.js +86 -0
- package/dist/cjs/tools/exit_loop_tool.js +63 -0
- package/dist/cjs/tools/forwarding_artifact_service.js +87 -0
- package/dist/cjs/tools/function_tool.js +109 -0
- package/dist/cjs/tools/google_maps_grounding_tool.js +80 -0
- package/dist/cjs/tools/google_search_tool.js +80 -0
- package/dist/cjs/tools/load_artifacts_tool.js +188 -0
- package/dist/cjs/tools/load_memory_tool.js +107 -0
- package/dist/cjs/tools/long_running_tool.js +63 -0
- package/dist/cjs/tools/mcp/mcp_session_manager.js +77 -0
- package/dist/cjs/tools/mcp/mcp_tool.js +68 -0
- package/dist/cjs/tools/mcp/mcp_toolset.js +80 -0
- package/dist/cjs/tools/preload_memory_tool.js +109 -0
- package/dist/cjs/tools/skill/list_skills_tool.js +76 -0
- package/dist/cjs/tools/skill/load_skill_resource_tool.js +225 -0
- package/dist/cjs/tools/skill/load_skill_tool.js +108 -0
- package/dist/cjs/tools/skill/run_skill_inline_script_tool.js +146 -0
- package/dist/cjs/tools/skill/run_skill_script_tool.js +224 -0
- package/dist/cjs/tools/skill/skill_toolset.js +163 -0
- package/dist/cjs/tools/tool_confirmation.js +49 -0
- package/dist/cjs/tools/url_context_tool.js +73 -0
- package/dist/cjs/tools/vertex_ai_search_tool.js +127 -0
- package/dist/cjs/tools/vertex_rag_retrieval_tool.js +64 -0
- package/dist/cjs/utils/client_labels.js +56 -0
- package/dist/cjs/utils/env_aware_utils.js +92 -0
- package/dist/cjs/utils/experimental.js +74 -0
- package/dist/cjs/utils/failover_utils.js +93 -0
- package/dist/cjs/utils/file_extension_utils.js +77 -0
- package/dist/cjs/utils/file_utils.js +94 -0
- package/dist/cjs/utils/gemini_schema_util.js +152 -0
- package/dist/cjs/utils/logger.js +173 -0
- package/dist/cjs/utils/model_name.js +90 -0
- package/dist/cjs/utils/object_notation_utils.js +78 -0
- package/dist/cjs/utils/simple_zod_to_json.js +150 -0
- package/dist/cjs/utils/streaming_utils.js +330 -0
- package/dist/cjs/utils/variant_utils.js +49 -0
- package/dist/cjs/version.js +39 -0
- package/dist/esm/a2a/a2a_event.js +271 -0
- package/dist/esm/a2a/a2a_remote_agent.js +155 -0
- package/dist/esm/a2a/a2a_remote_agent_run_processor.js +184 -0
- package/dist/esm/a2a/a2a_remote_agent_utils.js +133 -0
- package/dist/esm/a2a/agent_card.js +342 -0
- package/dist/esm/a2a/agent_executor.js +204 -0
- package/dist/esm/a2a/agent_to_a2a.js +82 -0
- package/dist/esm/a2a/event_converter_utils.js +189 -0
- package/dist/esm/a2a/event_processor_utils.js +161 -0
- package/dist/esm/a2a/executor_context.js +25 -0
- package/dist/esm/a2a/metadata_converter_utils.js +93 -0
- package/dist/esm/a2a/part_converter_utils.js +188 -0
- package/dist/esm/agents/active_streaming_tool.js +16 -0
- package/dist/esm/agents/base_agent.js +268 -0
- package/dist/esm/agents/context.js +152 -0
- package/dist/esm/agents/functions.js +489 -0
- package/dist/esm/agents/instructions.js +82 -0
- package/dist/esm/agents/invocation_context.js +81 -0
- package/dist/esm/agents/live_request_queue.js +108 -0
- package/dist/esm/agents/llm_agent.js +708 -0
- package/dist/esm/agents/loop_agent.js +55 -0
- package/dist/esm/agents/parallel_agent.js +66 -0
- package/dist/esm/agents/processors/agent_transfer_llm_request_processor.js +103 -0
- package/dist/esm/agents/processors/base_llm_processor.js +15 -0
- package/dist/esm/agents/processors/basic_llm_request_processor.js +39 -0
- package/dist/esm/agents/processors/code_execution_request_processor.js +368 -0
- package/dist/esm/agents/processors/content_processor_utils.js +319 -0
- package/dist/esm/agents/processors/content_request_processor.js +61 -0
- package/dist/esm/agents/processors/context_compactor_request_processor.js +42 -0
- package/dist/esm/agents/processors/identity_llm_request_processor.js +25 -0
- package/dist/esm/agents/processors/instructions_llm_request_processor.js +56 -0
- package/dist/esm/agents/processors/request_confirmation_llm_request_processor.js +142 -0
- package/dist/esm/agents/processors/tool_filter_request_processor.js +44 -0
- package/dist/esm/agents/readonly_context.js +55 -0
- package/dist/esm/agents/routed_agent.js +70 -0
- package/dist/esm/agents/run_config.js +42 -0
- package/dist/esm/agents/sequential_agent.js +77 -0
- package/dist/esm/agents/transcription_entry.js +7 -0
- package/dist/esm/artifacts/base_artifact_service.js +7 -0
- package/dist/esm/artifacts/file_artifact_service.js +480 -0
- package/dist/esm/artifacts/gcs_artifact_service.js +199 -0
- package/dist/esm/artifacts/in_memory_artifact_service.js +152 -0
- package/dist/esm/artifacts/registry.js +30 -0
- package/dist/esm/auth/auth_credential.js +18 -0
- package/dist/esm/auth/auth_handler.js +131 -0
- package/dist/esm/auth/auth_preprocessor.js +155 -0
- package/dist/esm/auth/auth_provider_registry.js +33 -0
- package/dist/esm/auth/auth_schemes.js +33 -0
- package/dist/esm/auth/auth_tool.js +7 -0
- package/dist/esm/auth/base_auth_provider.js +7 -0
- package/dist/esm/auth/credential_service/base_credential_service.js +7 -0
- package/dist/esm/auth/credential_service/in_memory_credential_service.js +35 -0
- package/dist/esm/auth/credential_service/session_state_credential_service.js +23 -0
- package/dist/esm/auth/exchanger/base_credential_exchanger.js +12 -0
- package/dist/esm/auth/exchanger/credential_exchanger_registry.js +31 -0
- package/dist/esm/auth/oauth2/oauth2_credential_exchanger.js +177 -0
- package/dist/esm/auth/oauth2/oauth2_credential_refresher.js +85 -0
- package/dist/esm/auth/oauth2/oauth2_discovery.js +156 -0
- package/dist/esm/auth/oauth2/oauth2_utils.js +87 -0
- package/dist/esm/auth/refresher/base_credential_refresher.js +16 -0
- package/dist/esm/auth/refresher/credential_refresher_registry.js +40 -0
- package/dist/esm/code_executors/base_code_executor.js +63 -0
- package/dist/esm/code_executors/built_in_code_executor.js +45 -0
- package/dist/esm/code_executors/code_execution_utils.js +127 -0
- package/dist/esm/code_executors/code_executor_context.js +170 -0
- package/dist/esm/code_executors/unsafe_local_code_executor.js +205 -0
- package/dist/esm/common.js +245 -0
- package/dist/esm/context/base_context_compactor.js +7 -0
- package/dist/esm/context/summarizers/base_summarizer.js +7 -0
- package/dist/esm/context/summarizers/llm_summarizer.js +67 -0
- package/dist/esm/context/token_based_context_compactor.js +107 -0
- package/dist/esm/context/truncating_context_compactor.js +30 -0
- package/dist/esm/events/compacted_event.js +24 -0
- package/dist/esm/events/event.js +110 -0
- package/dist/esm/events/event_actions.js +54 -0
- package/dist/esm/events/structured_events.js +76 -0
- package/dist/esm/examples/base_example_provider.js +27 -0
- package/dist/esm/examples/example.js +7 -0
- package/dist/esm/examples/example_util.js +80 -0
- package/dist/esm/features/feature_registry.js +107 -0
- package/dist/esm/index.js +50 -0
- package/dist/esm/index_web.js +8 -0
- package/dist/esm/memory/base_memory_service.js +7 -0
- package/dist/esm/memory/in_memory_memory_service.js +71 -0
- package/dist/esm/memory/memory_entry.js +7 -0
- package/dist/esm/models/apigee_llm.js +154 -0
- package/dist/esm/models/base_llm.js +73 -0
- package/dist/esm/models/base_llm_connection.js +7 -0
- package/dist/esm/models/gemini_llm_connection.js +105 -0
- package/dist/esm/models/google_llm.js +265 -0
- package/dist/esm/models/llm_request.js +52 -0
- package/dist/esm/models/llm_response.js +45 -0
- package/dist/esm/models/registry.js +95 -0
- package/dist/esm/models/routed_llm.js +73 -0
- package/dist/esm/plugins/base_plugin.js +268 -0
- package/dist/esm/plugins/logging_plugin.js +235 -0
- package/dist/esm/plugins/plugin_manager.js +282 -0
- package/dist/esm/plugins/security_plugin.js +124 -0
- package/dist/esm/runner/in_memory_runner.js +30 -0
- package/dist/esm/runner/runner.js +360 -0
- package/dist/esm/sessions/base_session_service.js +91 -0
- package/dist/esm/sessions/database_session_service.js +355 -0
- package/dist/esm/sessions/db/operations.js +96 -0
- package/dist/esm/sessions/db/schema.js +174 -0
- package/dist/esm/sessions/in_memory_session_service.js +184 -0
- package/dist/esm/sessions/registry.js +27 -0
- package/dist/esm/sessions/session.js +20 -0
- package/dist/esm/sessions/state.js +73 -0
- package/dist/esm/skills/loader.js +244 -0
- package/dist/esm/skills/prompt.js +30 -0
- package/dist/esm/skills/skill.js +49 -0
- package/dist/esm/telemetry/google_cloud.js +54 -0
- package/dist/esm/telemetry/setup.js +83 -0
- package/dist/esm/telemetry/tracing.js +219 -0
- package/dist/esm/tools/agent_tool.js +190 -0
- package/dist/esm/tools/base_tool.js +93 -0
- package/dist/esm/tools/base_toolset.js +57 -0
- package/dist/esm/tools/exit_loop_tool.js +34 -0
- package/dist/esm/tools/forwarding_artifact_service.js +59 -0
- package/dist/esm/tools/function_tool.js +80 -0
- package/dist/esm/tools/google_maps_grounding_tool.js +54 -0
- package/dist/esm/tools/google_search_tool.js +51 -0
- package/dist/esm/tools/load_artifacts_tool.js +161 -0
- package/dist/esm/tools/load_memory_tool.js +80 -0
- package/dist/esm/tools/long_running_tool.js +37 -0
- package/dist/esm/tools/mcp/mcp_session_manager.js +53 -0
- package/dist/esm/tools/mcp/mcp_tool.js +40 -0
- package/dist/esm/tools/mcp/mcp_toolset.js +52 -0
- package/dist/esm/tools/preload_memory_tool.js +82 -0
- package/dist/esm/tools/skill/list_skills_tool.js +50 -0
- package/dist/esm/tools/skill/load_skill_resource_tool.js +191 -0
- package/dist/esm/tools/skill/load_skill_tool.js +82 -0
- package/dist/esm/tools/skill/run_skill_inline_script_tool.js +120 -0
- package/dist/esm/tools/skill/run_skill_script_tool.js +192 -0
- package/dist/esm/tools/skill/skill_toolset.js +137 -0
- package/dist/esm/tools/tool_confirmation.js +21 -0
- package/dist/esm/tools/url_context_tool.js +44 -0
- package/dist/esm/tools/vertex_ai_search_tool.js +103 -0
- package/dist/esm/tools/vertex_rag_retrieval_tool.js +36 -0
- package/dist/esm/utils/client_labels.js +28 -0
- package/dist/esm/utils/env_aware_utils.js +59 -0
- package/dist/esm/utils/experimental.js +46 -0
- package/dist/esm/utils/failover_utils.js +65 -0
- package/dist/esm/utils/file_extension_utils.js +51 -0
- package/dist/esm/utils/file_utils.js +56 -0
- package/dist/esm/utils/gemini_schema_util.js +124 -0
- package/dist/esm/utils/logger.js +130 -0
- package/dist/esm/utils/model_name.js +58 -0
- package/dist/esm/utils/object_notation_utils.js +49 -0
- package/dist/esm/utils/simple_zod_to_json.js +123 -0
- package/dist/esm/utils/streaming_utils.js +304 -0
- package/dist/esm/utils/variant_utils.js +20 -0
- package/dist/esm/version.js +11 -0
- package/dist/types/a2a/a2a_event.d.ts +139 -0
- package/dist/types/a2a/a2a_remote_agent.d.ts +67 -0
- package/dist/types/a2a/a2a_remote_agent_run_processor.d.ts +31 -0
- package/dist/types/a2a/a2a_remote_agent_utils.d.ts +38 -0
- package/dist/types/a2a/agent_card.d.ts +23 -0
- package/dist/types/a2a/agent_executor.d.ts +52 -0
- package/dist/types/a2a/agent_to_a2a.d.ts +45 -0
- package/dist/types/a2a/event_converter_utils.d.ts +20 -0
- package/dist/types/a2a/event_processor_utils.d.ts +24 -0
- package/dist/types/a2a/executor_context.d.ts +33 -0
- package/dist/types/a2a/metadata_converter_utils.d.ts +63 -0
- package/dist/types/a2a/part_converter_utils.d.ts +48 -0
- package/dist/types/agents/active_streaming_tool.d.ts +29 -0
- package/dist/types/agents/base_agent.d.ts +194 -0
- package/dist/types/agents/context.d.ts +99 -0
- package/dist/types/agents/functions.d.ts +112 -0
- package/dist/types/agents/instructions.d.ts +32 -0
- package/dist/types/agents/invocation_context.d.ts +162 -0
- package/dist/types/agents/live_request_queue.d.ts +67 -0
- package/dist/types/agents/llm_agent.d.ts +351 -0
- package/dist/types/agents/loop_agent.d.ts +47 -0
- package/dist/types/agents/parallel_agent.d.ts +37 -0
- package/dist/types/agents/processors/agent_transfer_llm_request_processor.d.ts +18 -0
- package/dist/types/agents/processors/base_llm_processor.d.ts +27 -0
- package/dist/types/agents/processors/basic_llm_request_processor.d.ts +13 -0
- package/dist/types/agents/processors/code_execution_request_processor.d.ts +34 -0
- package/dist/types/agents/processors/content_processor_utils.d.ts +36 -0
- package/dist/types/agents/processors/content_request_processor.d.ts +13 -0
- package/dist/types/agents/processors/context_compactor_request_processor.d.ts +22 -0
- package/dist/types/agents/processors/identity_llm_request_processor.d.ts +13 -0
- package/dist/types/agents/processors/instructions_llm_request_processor.d.ts +16 -0
- package/dist/types/agents/processors/request_confirmation_llm_request_processor.d.ts +13 -0
- package/dist/types/agents/processors/tool_filter_request_processor.d.ts +14 -0
- package/dist/types/agents/readonly_context.d.ts +39 -0
- package/dist/types/agents/routed_agent.d.ts +59 -0
- package/dist/types/agents/run_config.d.ts +94 -0
- package/dist/types/agents/sequential_agent.d.ts +42 -0
- package/dist/types/agents/transcription_entry.d.ts +17 -0
- package/dist/types/artifacts/base_artifact_service.d.ts +158 -0
- package/dist/types/artifacts/file_artifact_service.d.ts +47 -0
- package/dist/types/artifacts/gcs_artifact_service.d.ts +18 -0
- package/dist/types/artifacts/in_memory_artifact_service.d.ts +21 -0
- package/dist/types/artifacts/registry.d.ts +7 -0
- package/dist/types/auth/auth_credential.d.ts +244 -0
- package/dist/types/auth/auth_handler.d.ts +28 -0
- package/dist/types/auth/auth_preprocessor.d.ts +12 -0
- package/dist/types/auth/auth_provider_registry.d.ts +27 -0
- package/dist/types/auth/auth_schemes.d.ts +39 -0
- package/dist/types/auth/auth_tool.d.ts +51 -0
- package/dist/types/auth/base_auth_provider.d.ts +20 -0
- package/dist/types/auth/credential_service/base_credential_service.d.ts +27 -0
- package/dist/types/auth/credential_service/in_memory_credential_service.d.ts +19 -0
- package/dist/types/auth/credential_service/session_state_credential_service.d.ts +20 -0
- package/dist/types/auth/exchanger/base_credential_exchanger.d.ts +39 -0
- package/dist/types/auth/exchanger/credential_exchanger_registry.d.ts +28 -0
- package/dist/types/auth/oauth2/oauth2_credential_exchanger.d.ts +26 -0
- package/dist/types/auth/oauth2/oauth2_credential_refresher.d.ts +29 -0
- package/dist/types/auth/oauth2/oauth2_discovery.d.ts +38 -0
- package/dist/types/auth/oauth2/oauth2_utils.d.ts +56 -0
- package/dist/types/auth/refresher/base_credential_refresher.d.ts +38 -0
- package/dist/types/auth/refresher/credential_refresher_registry.d.ts +27 -0
- package/dist/types/code_executors/base_code_executor.d.ts +74 -0
- package/dist/types/code_executors/built_in_code_executor.d.ts +32 -0
- package/dist/types/code_executors/code_execution_utils.d.ts +127 -0
- package/dist/types/code_executors/code_executor_context.d.ts +85 -0
- package/dist/types/code_executors/unsafe_local_code_executor.d.ts +48 -0
- package/dist/types/common.d.ts +137 -0
- package/dist/types/context/base_context_compactor.d.ts +24 -0
- package/dist/types/context/summarizers/base_summarizer.d.ts +19 -0
- package/dist/types/context/summarizers/llm_summarizer.d.ts +23 -0
- package/dist/types/context/token_based_context_compactor.d.ts +33 -0
- package/dist/types/context/truncating_context_compactor.d.ts +24 -0
- package/dist/types/events/compacted_event.d.ts +33 -0
- package/dist/types/events/event.d.ts +102 -0
- package/dist/types/events/event_actions.d.ts +74 -0
- package/dist/types/events/structured_events.d.ts +106 -0
- package/dist/types/examples/base_example_provider.d.ts +36 -0
- package/dist/types/examples/example.d.ts +19 -0
- package/dist/types/examples/example_util.d.ts +13 -0
- package/dist/types/features/feature_registry.d.ts +66 -0
- package/dist/types/index.d.ts +28 -0
- package/dist/types/index_web.d.ts +6 -0
- package/dist/types/memory/base_memory_service.d.ts +53 -0
- package/dist/types/memory/in_memory_memory_service.d.ts +18 -0
- package/dist/types/memory/memory_entry.d.ts +30 -0
- package/dist/types/models/apigee_llm.d.ts +59 -0
- package/dist/types/models/base_llm.d.ts +66 -0
- package/dist/types/models/base_llm_connection.d.ts +51 -0
- package/dist/types/models/gemini_llm_connection.d.ts +54 -0
- package/dist/types/models/google_llm.d.ts +90 -0
- package/dist/types/models/llm_request.d.ts +53 -0
- package/dist/types/models/llm_response.d.ts +83 -0
- package/dist/types/models/registry.d.ts +49 -0
- package/dist/types/models/routed_llm.d.ts +38 -0
- package/dist/types/plugins/base_plugin.d.ts +368 -0
- package/dist/types/plugins/logging_plugin.d.ts +103 -0
- package/dist/types/plugins/plugin_manager.d.ts +175 -0
- package/dist/types/plugins/security_plugin.d.ts +60 -0
- package/dist/types/runner/in_memory_runner.d.ts +15 -0
- package/dist/types/runner/runner.d.ts +117 -0
- package/dist/types/sessions/base_session_service.d.ts +149 -0
- package/dist/types/sessions/database_session_service.d.ts +32 -0
- package/dist/types/sessions/db/operations.d.ts +28 -0
- package/dist/types/sessions/db/schema.d.ts +45 -0
- package/dist/types/sessions/in_memory_session_service.d.ts +30 -0
- package/dist/types/sessions/registry.d.ts +7 -0
- package/dist/types/sessions/session.d.ts +46 -0
- package/dist/types/sessions/state.d.ts +57 -0
- package/dist/types/skills/loader.d.ts +38 -0
- package/dist/types/skills/prompt.d.ts +13 -0
- package/dist/types/skills/skill.d.ts +48 -0
- package/dist/types/telemetry/google_cloud.d.ts +9 -0
- package/dist/types/telemetry/setup.d.ts +48 -0
- package/dist/types/telemetry/tracing.d.ts +112 -0
- package/dist/types/tools/agent_tool.d.ts +73 -0
- package/dist/types/tools/base_tool.d.ts +98 -0
- package/dist/types/tools/base_toolset.d.ts +74 -0
- package/dist/types/tools/exit_loop_tool.d.ts +24 -0
- package/dist/types/tools/forwarding_artifact_service.d.ts +23 -0
- package/dist/types/tools/function_tool.d.ts +62 -0
- package/dist/types/tools/google_maps_grounding_tool.d.ts +22 -0
- package/dist/types/tools/google_search_tool.d.ts +17 -0
- package/dist/types/tools/load_artifacts_tool.d.ts +21 -0
- package/dist/types/tools/load_memory_tool.d.ts +22 -0
- package/dist/types/tools/long_running_tool.d.ts +18 -0
- package/dist/types/tools/mcp/mcp_session_manager.d.ts +64 -0
- package/dist/types/tools/mcp/mcp_tool.d.ts +36 -0
- package/dist/types/tools/mcp/mcp_toolset.d.ts +44 -0
- package/dist/types/tools/preload_memory_tool.d.ts +23 -0
- package/dist/types/tools/skill/list_skills_tool.d.ts +14 -0
- package/dist/types/tools/skill/load_skill_resource_tool.d.ts +15 -0
- package/dist/types/tools/skill/load_skill_tool.d.ts +14 -0
- package/dist/types/tools/skill/run_skill_inline_script_tool.d.ts +14 -0
- package/dist/types/tools/skill/run_skill_script_tool.d.ts +17 -0
- package/dist/types/tools/skill/skill_toolset.d.ts +28 -0
- package/dist/types/tools/tool_confirmation.d.ts +25 -0
- package/dist/types/tools/url_context_tool.d.ts +17 -0
- package/dist/types/tools/vertex_ai_search_tool.d.ts +55 -0
- package/dist/types/tools/vertex_rag_retrieval_tool.d.ts +42 -0
- package/dist/types/utils/client_labels.d.ts +9 -0
- package/dist/types/utils/env_aware_utils.d.ts +38 -0
- package/dist/types/utils/experimental.d.ts +11 -0
- package/dist/types/utils/failover_utils.d.ts +17 -0
- package/dist/types/utils/file_extension_utils.d.ts +21 -0
- package/dist/types/utils/file_utils.d.ts +11 -0
- package/dist/types/utils/gemini_schema_util.d.ts +15 -0
- package/dist/types/utils/logger.d.ts +38 -0
- package/dist/types/utils/model_name.d.ts +38 -0
- package/dist/types/utils/object_notation_utils.d.ts +21 -0
- package/dist/types/utils/simple_zod_to_json.d.ts +13 -0
- package/dist/types/utils/streaming_utils.d.ts +40 -0
- package/dist/types/utils/variant_utils.d.ts +24 -0
- package/dist/types/version.d.ts +6 -0
- package/dist/web/a2a/a2a_event.js +271 -0
- package/dist/web/a2a/a2a_remote_agent.js +186 -0
- package/dist/web/a2a/a2a_remote_agent_run_processor.js +184 -0
- package/dist/web/a2a/a2a_remote_agent_utils.js +133 -0
- package/dist/web/a2a/agent_card.js +342 -0
- package/dist/web/a2a/agent_executor.js +218 -0
- package/dist/web/a2a/agent_to_a2a.js +82 -0
- package/dist/web/a2a/event_converter_utils.js +203 -0
- package/dist/web/a2a/event_processor_utils.js +170 -0
- package/dist/web/a2a/executor_context.js +25 -0
- package/dist/web/a2a/metadata_converter_utils.js +110 -0
- package/dist/web/a2a/part_converter_utils.js +188 -0
- package/dist/web/agents/active_streaming_tool.js +16 -0
- package/dist/web/agents/base_agent.js +354 -0
- package/dist/web/agents/context.js +152 -0
- package/dist/web/agents/functions.js +520 -0
- package/dist/web/agents/instructions.js +82 -0
- package/dist/web/agents/invocation_context.js +81 -0
- package/dist/web/agents/live_request_queue.js +126 -0
- package/dist/web/agents/llm_agent.js +907 -0
- package/dist/web/agents/loop_agent.js +88 -0
- package/dist/web/agents/parallel_agent.js +101 -0
- package/dist/web/agents/processors/agent_transfer_llm_request_processor.js +102 -0
- package/dist/web/agents/processors/base_llm_processor.js +15 -0
- package/dist/web/agents/processors/basic_llm_request_processor.js +73 -0
- package/dist/web/agents/processors/code_execution_request_processor.js +370 -0
- package/dist/web/agents/processors/content_processor_utils.js +318 -0
- package/dist/web/agents/processors/content_request_processor.js +79 -0
- package/dist/web/agents/processors/context_compactor_request_processor.js +60 -0
- package/dist/web/agents/processors/identity_llm_request_processor.js +43 -0
- package/dist/web/agents/processors/instructions_llm_request_processor.js +74 -0
- package/dist/web/agents/processors/request_confirmation_llm_request_processor.js +160 -0
- package/dist/web/agents/processors/tool_filter_request_processor.js +62 -0
- package/dist/web/agents/readonly_context.js +55 -0
- package/dist/web/agents/routed_agent.js +138 -0
- package/dist/web/agents/run_config.js +57 -0
- package/dist/web/agents/sequential_agent.js +122 -0
- package/dist/web/agents/transcription_entry.js +7 -0
- package/dist/web/artifacts/base_artifact_service.js +7 -0
- package/dist/web/artifacts/file_artifact_service.js +535 -0
- package/dist/web/artifacts/gcs_artifact_service.js +213 -0
- package/dist/web/artifacts/in_memory_artifact_service.js +152 -0
- package/dist/web/artifacts/registry.js +30 -0
- package/dist/web/auth/auth_credential.js +18 -0
- package/dist/web/auth/auth_handler.js +148 -0
- package/dist/web/auth/auth_preprocessor.js +173 -0
- package/dist/web/auth/auth_provider_registry.js +33 -0
- package/dist/web/auth/auth_schemes.js +33 -0
- package/dist/web/auth/auth_tool.js +7 -0
- package/dist/web/auth/base_auth_provider.js +7 -0
- package/dist/web/auth/credential_service/base_credential_service.js +7 -0
- package/dist/web/auth/credential_service/in_memory_credential_service.js +35 -0
- package/dist/web/auth/credential_service/session_state_credential_service.js +23 -0
- package/dist/web/auth/exchanger/base_credential_exchanger.js +12 -0
- package/dist/web/auth/exchanger/credential_exchanger_registry.js +31 -0
- package/dist/web/auth/oauth2/oauth2_credential_exchanger.js +188 -0
- package/dist/web/auth/oauth2/oauth2_credential_refresher.js +102 -0
- package/dist/web/auth/oauth2/oauth2_discovery.js +156 -0
- package/dist/web/auth/oauth2/oauth2_utils.js +87 -0
- package/dist/web/auth/refresher/base_credential_refresher.js +16 -0
- package/dist/web/auth/refresher/credential_refresher_registry.js +40 -0
- package/dist/web/code_executors/base_code_executor.js +63 -0
- package/dist/web/code_executors/built_in_code_executor.js +45 -0
- package/dist/web/code_executors/code_execution_utils.js +124 -0
- package/dist/web/code_executors/code_executor_context.js +170 -0
- package/dist/web/code_executors/unsafe_local_code_executor.js +203 -0
- package/dist/web/common.js +245 -0
- package/dist/web/context/base_context_compactor.js +7 -0
- package/dist/web/context/summarizers/base_summarizer.js +7 -0
- package/dist/web/context/summarizers/llm_summarizer.js +76 -0
- package/dist/web/context/token_based_context_compactor.js +107 -0
- package/dist/web/context/truncating_context_compactor.js +30 -0
- package/dist/web/events/compacted_event.js +42 -0
- package/dist/web/events/event.js +128 -0
- package/dist/web/events/event_actions.js +69 -0
- package/dist/web/events/structured_events.js +76 -0
- package/dist/web/examples/base_example_provider.js +27 -0
- package/dist/web/examples/example.js +7 -0
- package/dist/web/examples/example_util.js +79 -0
- package/dist/web/features/feature_registry.js +107 -0
- package/dist/web/index.js +50 -0
- package/dist/web/index_web.js +8 -0
- package/dist/web/memory/base_memory_service.js +7 -0
- package/dist/web/memory/in_memory_memory_service.js +71 -0
- package/dist/web/memory/memory_entry.js +7 -0
- package/dist/web/models/apigee_llm.js +221 -0
- package/dist/web/models/base_llm.js +73 -0
- package/dist/web/models/base_llm_connection.js +7 -0
- package/dist/web/models/gemini_llm_connection.js +123 -0
- package/dist/web/models/google_llm.js +321 -0
- package/dist/web/models/llm_request.js +52 -0
- package/dist/web/models/llm_response.js +45 -0
- package/dist/web/models/registry.js +95 -0
- package/dist/web/models/routed_llm.js +122 -0
- package/dist/web/plugins/base_plugin.js +268 -0
- package/dist/web/plugins/logging_plugin.js +235 -0
- package/dist/web/plugins/plugin_manager.js +282 -0
- package/dist/web/plugins/security_plugin.js +124 -0
- package/dist/web/runner/in_memory_runner.js +30 -0
- package/dist/web/runner/runner.js +426 -0
- package/dist/web/sessions/base_session_service.js +91 -0
- package/dist/web/sessions/database_session_service.js +373 -0
- package/dist/web/sessions/db/operations.js +96 -0
- package/dist/web/sessions/db/schema.js +174 -0
- package/dist/web/sessions/in_memory_session_service.js +184 -0
- package/dist/web/sessions/registry.js +27 -0
- package/dist/web/sessions/session.js +20 -0
- package/dist/web/sessions/state.js +89 -0
- package/dist/web/skills/loader.js +262 -0
- package/dist/web/skills/prompt.js +30 -0
- package/dist/web/skills/skill.js +67 -0
- package/dist/web/telemetry/google_cloud.js +54 -0
- package/dist/web/telemetry/setup.js +83 -0
- package/dist/web/telemetry/tracing.js +234 -0
- package/dist/web/tools/agent_tool.js +233 -0
- package/dist/web/tools/base_tool.js +93 -0
- package/dist/web/tools/base_toolset.js +57 -0
- package/dist/web/tools/exit_loop_tool.js +34 -0
- package/dist/web/tools/forwarding_artifact_service.js +59 -0
- package/dist/web/tools/function_tool.js +80 -0
- package/dist/web/tools/google_maps_grounding_tool.js +54 -0
- package/dist/web/tools/google_search_tool.js +51 -0
- package/dist/web/tools/load_artifacts_tool.js +152 -0
- package/dist/web/tools/load_memory_tool.js +79 -0
- package/dist/web/tools/long_running_tool.js +54 -0
- package/dist/web/tools/mcp/mcp_session_manager.js +53 -0
- package/dist/web/tools/mcp/mcp_tool.js +40 -0
- package/dist/web/tools/mcp/mcp_toolset.js +70 -0
- package/dist/web/tools/preload_memory_tool.js +77 -0
- package/dist/web/tools/skill/list_skills_tool.js +50 -0
- package/dist/web/tools/skill/load_skill_resource_tool.js +191 -0
- package/dist/web/tools/skill/load_skill_tool.js +82 -0
- package/dist/web/tools/skill/run_skill_inline_script_tool.js +120 -0
- package/dist/web/tools/skill/run_skill_script_tool.js +190 -0
- package/dist/web/tools/skill/skill_toolset.js +123 -0
- package/dist/web/tools/tool_confirmation.js +21 -0
- package/dist/web/tools/url_context_tool.js +44 -0
- package/dist/web/tools/vertex_ai_search_tool.js +103 -0
- package/dist/web/tools/vertex_rag_retrieval_tool.js +36 -0
- package/dist/web/utils/client_labels.js +28 -0
- package/dist/web/utils/env_aware_utils.js +59 -0
- package/dist/web/utils/experimental.js +46 -0
- package/dist/web/utils/failover_utils.js +96 -0
- package/dist/web/utils/file_extension_utils.js +51 -0
- package/dist/web/utils/file_utils.js +74 -0
- package/dist/web/utils/gemini_schema_util.js +155 -0
- package/dist/web/utils/logger.js +130 -0
- package/dist/web/utils/model_name.js +58 -0
- package/dist/web/utils/object_notation_utils.js +49 -0
- package/dist/web/utils/simple_zod_to_json.js +123 -0
- package/dist/web/utils/streaming_utils.js +322 -0
- package/dist/web/utils/variant_utils.js +20 -0
- package/dist/web/version.js +11 -0
- package/package.json +84 -0
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import {createRequire as topLevelCreateRequire} from 'module';
|
|
2
|
+
const require = topLevelCreateRequire(import.meta.url);
|
|
3
|
+
var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
|
|
4
|
+
var __await = function(promise, isYieldStar) {
|
|
5
|
+
this[0] = promise;
|
|
6
|
+
this[1] = isYieldStar;
|
|
7
|
+
};
|
|
8
|
+
var __asyncGenerator = (__this, __arguments, generator) => {
|
|
9
|
+
var resume = (k, v, yes, no) => {
|
|
10
|
+
try {
|
|
11
|
+
var x = generator[k](v), isAwait = (v = x.value) instanceof __await, done = x.done;
|
|
12
|
+
Promise.resolve(isAwait ? v[0] : v).then((y) => isAwait ? resume(k === "return" ? k : "next", v[1] ? { done: y.done, value: y.value } : y, yes, no) : yes({ value: y, done })).catch((e) => resume("throw", e, yes, no));
|
|
13
|
+
} catch (e) {
|
|
14
|
+
no(e);
|
|
15
|
+
}
|
|
16
|
+
}, method = (k) => it[k] = (x) => new Promise((yes, no) => resume(k, x, yes, no)), it = {};
|
|
17
|
+
return generator = generator.apply(__this, __arguments), it[__knownSymbol("asyncIterator")] = () => it, method("next"), method("throw"), method("return"), it;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* @license
|
|
21
|
+
* Copyright 2026 Google LLC
|
|
22
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
23
|
+
*/
|
|
24
|
+
import {
|
|
25
|
+
REQUEST_EUC_FUNCTION_CALL_NAME,
|
|
26
|
+
handleFunctionCallsAsync
|
|
27
|
+
} from "../agents/functions.js";
|
|
28
|
+
import { isLlmAgent } from "../agents/llm_agent.js";
|
|
29
|
+
import { BaseLlmRequestProcessor } from "../agents/processors/base_llm_processor.js";
|
|
30
|
+
import { ReadonlyContext } from "../agents/readonly_context.js";
|
|
31
|
+
import {
|
|
32
|
+
getFunctionCalls,
|
|
33
|
+
getFunctionResponses
|
|
34
|
+
} from "../events/event.js";
|
|
35
|
+
import { State } from "../sessions/state.js";
|
|
36
|
+
import { AuthHandler } from "./auth_handler.js";
|
|
37
|
+
const TOOLSET_AUTH_CREDENTIAL_ID_PREFIX = "_adk_toolset_auth_";
|
|
38
|
+
async function storeAuthAndCollectResumeTargets(events, authFcIds, authResponses, state) {
|
|
39
|
+
const requestedAuthConfigById = {};
|
|
40
|
+
for (const event of events) {
|
|
41
|
+
const eventFunctionCalls = getFunctionCalls(event);
|
|
42
|
+
for (const functionCall of eventFunctionCalls) {
|
|
43
|
+
if (functionCall.id && authFcIds.has(functionCall.id) && functionCall.name === REQUEST_EUC_FUNCTION_CALL_NAME) {
|
|
44
|
+
const args = functionCall.args;
|
|
45
|
+
if (args && args.authConfig) {
|
|
46
|
+
requestedAuthConfigById[functionCall.id] = args.authConfig;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
for (const fcId of authFcIds) {
|
|
52
|
+
if (!(fcId in authResponses)) {
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
const authConfig = authResponses[fcId];
|
|
56
|
+
const requestedAuthConfig = requestedAuthConfigById[fcId];
|
|
57
|
+
if (requestedAuthConfig && requestedAuthConfig.credentialKey) {
|
|
58
|
+
authConfig.credentialKey = requestedAuthConfig.credentialKey;
|
|
59
|
+
}
|
|
60
|
+
await new AuthHandler(authConfig).parseAndStoreAuthResponse(state);
|
|
61
|
+
}
|
|
62
|
+
const toolsToResume = /* @__PURE__ */ new Set();
|
|
63
|
+
for (const fcId of authFcIds) {
|
|
64
|
+
const requestedAuthConfig = requestedAuthConfigById[fcId];
|
|
65
|
+
if (!requestedAuthConfig) {
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
for (const event of events) {
|
|
69
|
+
const eventFunctionCalls = getFunctionCalls(event);
|
|
70
|
+
for (const functionCall of eventFunctionCalls) {
|
|
71
|
+
if (functionCall.id === fcId && functionCall.name === REQUEST_EUC_FUNCTION_CALL_NAME) {
|
|
72
|
+
const args = functionCall.args;
|
|
73
|
+
if (args && args.functionCallId) {
|
|
74
|
+
if (args.functionCallId.startsWith(TOOLSET_AUTH_CREDENTIAL_ID_PREFIX)) {
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
toolsToResume.add(args.functionCallId);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return toolsToResume;
|
|
84
|
+
}
|
|
85
|
+
class AuthPreprocessor extends BaseLlmRequestProcessor {
|
|
86
|
+
runAsync(invocationContext) {
|
|
87
|
+
return __asyncGenerator(this, null, function* () {
|
|
88
|
+
const agent = invocationContext.agent;
|
|
89
|
+
if (!isLlmAgent(agent)) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
const events = invocationContext.session.events;
|
|
93
|
+
if (!events || events.length === 0) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
let lastEventWithContent = null;
|
|
97
|
+
for (let i = events.length - 1; i >= 0; i--) {
|
|
98
|
+
const event = events[i];
|
|
99
|
+
if (event.content !== void 0) {
|
|
100
|
+
lastEventWithContent = event;
|
|
101
|
+
break;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
if (!lastEventWithContent || lastEventWithContent.author !== "user") {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
const responses = getFunctionResponses(lastEventWithContent);
|
|
108
|
+
if (!responses || responses.length === 0) {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
const authFcIds = /* @__PURE__ */ new Set();
|
|
112
|
+
const authResponses = {};
|
|
113
|
+
for (const functionCallResponse of responses) {
|
|
114
|
+
if (functionCallResponse.name !== REQUEST_EUC_FUNCTION_CALL_NAME) {
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
if (functionCallResponse.id) {
|
|
118
|
+
authFcIds.add(functionCallResponse.id);
|
|
119
|
+
authResponses[functionCallResponse.id] = functionCallResponse.response;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
if (authFcIds.size === 0) {
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
const state = new State(invocationContext.session.state);
|
|
126
|
+
const toolsToResume = yield new __await(storeAuthAndCollectResumeTargets(
|
|
127
|
+
events,
|
|
128
|
+
authFcIds,
|
|
129
|
+
authResponses,
|
|
130
|
+
state
|
|
131
|
+
));
|
|
132
|
+
if (toolsToResume.size === 0) {
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
for (let i = events.length - 2; i >= 0; i--) {
|
|
136
|
+
const event = events[i];
|
|
137
|
+
const functionCalls = getFunctionCalls(event);
|
|
138
|
+
if (!functionCalls || functionCalls.length === 0) {
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
const hasMatchingCall = functionCalls.some(
|
|
142
|
+
(call) => call.id ? toolsToResume.has(call.id) : false
|
|
143
|
+
);
|
|
144
|
+
if (hasMatchingCall) {
|
|
145
|
+
const canonicalTools = yield new __await(agent.canonicalTools(
|
|
146
|
+
new ReadonlyContext(invocationContext)
|
|
147
|
+
));
|
|
148
|
+
const toolsDict = {};
|
|
149
|
+
for (const tool of canonicalTools) {
|
|
150
|
+
toolsDict[tool.name] = tool;
|
|
151
|
+
}
|
|
152
|
+
const functionResponseEvent = yield new __await(handleFunctionCallsAsync({
|
|
153
|
+
invocationContext,
|
|
154
|
+
functionCallEvent: event,
|
|
155
|
+
toolsDict,
|
|
156
|
+
beforeToolCallbacks: agent.canonicalBeforeToolCallbacks,
|
|
157
|
+
afterToolCallbacks: agent.canonicalAfterToolCallbacks,
|
|
158
|
+
filters: toolsToResume
|
|
159
|
+
}));
|
|
160
|
+
if (functionResponseEvent) {
|
|
161
|
+
yield functionResponseEvent;
|
|
162
|
+
}
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
const AUTH_PREPROCESSOR = new AuthPreprocessor();
|
|
170
|
+
export {
|
|
171
|
+
AUTH_PREPROCESSOR,
|
|
172
|
+
AuthPreprocessor
|
|
173
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import {createRequire as topLevelCreateRequire} from 'module';
|
|
2
|
+
const require = topLevelCreateRequire(import.meta.url);
|
|
3
|
+
/**
|
|
4
|
+
* @license
|
|
5
|
+
* Copyright 2026 Google LLC
|
|
6
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
7
|
+
*/
|
|
8
|
+
class AuthProviderRegistry {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.providers = /* @__PURE__ */ new Map();
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Register a provider instance for an auth scheme type.
|
|
14
|
+
*
|
|
15
|
+
* @param authSchemeType The auth scheme type (e.g., 'oauth2', 'apiKey').
|
|
16
|
+
* @param providerInstance The provider instance to register.
|
|
17
|
+
*/
|
|
18
|
+
register(authSchemeType, providerInstance) {
|
|
19
|
+
this.providers.set(authSchemeType, providerInstance);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Get the provider instance for an auth scheme.
|
|
23
|
+
*
|
|
24
|
+
* @param authScheme The auth scheme to get provider for.
|
|
25
|
+
* @returns The provider instance if registered, undefined otherwise.
|
|
26
|
+
*/
|
|
27
|
+
getProvider(authScheme) {
|
|
28
|
+
return this.providers.get(authScheme.type);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export {
|
|
32
|
+
AuthProviderRegistry
|
|
33
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import {createRequire as topLevelCreateRequire} from 'module';
|
|
2
|
+
const require = topLevelCreateRequire(import.meta.url);
|
|
3
|
+
/**
|
|
4
|
+
* @license
|
|
5
|
+
* Copyright 2025 Google LLC
|
|
6
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
7
|
+
*/
|
|
8
|
+
var OAuthGrantType = /* @__PURE__ */ ((OAuthGrantType2) => {
|
|
9
|
+
OAuthGrantType2["CLIENT_CREDENTIALS"] = "client_credentials";
|
|
10
|
+
OAuthGrantType2["AUTHORIZATION_CODE"] = "authorization_code";
|
|
11
|
+
OAuthGrantType2["IMPLICIT"] = "implicit";
|
|
12
|
+
OAuthGrantType2["PASSWORD"] = "password";
|
|
13
|
+
return OAuthGrantType2;
|
|
14
|
+
})(OAuthGrantType || {});
|
|
15
|
+
function getOAuthGrantTypeFromFlow(flow) {
|
|
16
|
+
if (flow.clientCredentials) {
|
|
17
|
+
return "client_credentials" /* CLIENT_CREDENTIALS */;
|
|
18
|
+
}
|
|
19
|
+
if (flow.authorizationCode) {
|
|
20
|
+
return "authorization_code" /* AUTHORIZATION_CODE */;
|
|
21
|
+
}
|
|
22
|
+
if (flow.implicit) {
|
|
23
|
+
return "implicit" /* IMPLICIT */;
|
|
24
|
+
}
|
|
25
|
+
if (flow.password) {
|
|
26
|
+
return "password" /* PASSWORD */;
|
|
27
|
+
}
|
|
28
|
+
return void 0;
|
|
29
|
+
}
|
|
30
|
+
export {
|
|
31
|
+
OAuthGrantType,
|
|
32
|
+
getOAuthGrantTypeFromFlow
|
|
33
|
+
};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import {createRequire as topLevelCreateRequire} from 'module';
|
|
2
|
+
const require = topLevelCreateRequire(import.meta.url);
|
|
3
|
+
/**
|
|
4
|
+
* @license
|
|
5
|
+
* Copyright 2025 Google LLC
|
|
6
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
7
|
+
*/
|
|
8
|
+
class InMemoryCredentialService {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.credentials = {};
|
|
11
|
+
}
|
|
12
|
+
loadCredential(authConfig, toolContext) {
|
|
13
|
+
const credentialBucket = this.getBucketForCurrentContext(toolContext);
|
|
14
|
+
return Promise.resolve(credentialBucket[authConfig.credentialKey]);
|
|
15
|
+
}
|
|
16
|
+
async saveCredential(authConfig, toolContext) {
|
|
17
|
+
const credentialBucket = this.getBucketForCurrentContext(toolContext);
|
|
18
|
+
if (authConfig.exchangedAuthCredential) {
|
|
19
|
+
credentialBucket[authConfig.credentialKey] = authConfig.exchangedAuthCredential;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
getBucketForCurrentContext(toolContext) {
|
|
23
|
+
const { appName, userId } = toolContext.invocationContext.session;
|
|
24
|
+
if (!this.credentials[appName]) {
|
|
25
|
+
this.credentials[appName] = {};
|
|
26
|
+
}
|
|
27
|
+
if (!this.credentials[appName][userId]) {
|
|
28
|
+
this.credentials[appName][userId] = {};
|
|
29
|
+
}
|
|
30
|
+
return this.credentials[appName][userId];
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
export {
|
|
34
|
+
InMemoryCredentialService
|
|
35
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import {createRequire as topLevelCreateRequire} from 'module';
|
|
2
|
+
const require = topLevelCreateRequire(import.meta.url);
|
|
3
|
+
/**
|
|
4
|
+
* @license
|
|
5
|
+
* Copyright 2026 Google LLC
|
|
6
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
7
|
+
*/
|
|
8
|
+
class SessionStateCredentialService {
|
|
9
|
+
loadCredential(authConfig, toolContext) {
|
|
10
|
+
return Promise.resolve(toolContext.state.get(authConfig.credentialKey));
|
|
11
|
+
}
|
|
12
|
+
async saveCredential(authConfig, toolContext) {
|
|
13
|
+
if (authConfig.exchangedAuthCredential) {
|
|
14
|
+
toolContext.state.set(
|
|
15
|
+
authConfig.credentialKey,
|
|
16
|
+
authConfig.exchangedAuthCredential
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export {
|
|
22
|
+
SessionStateCredentialService
|
|
23
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import {createRequire as topLevelCreateRequire} from 'module';
|
|
2
|
+
const require = topLevelCreateRequire(import.meta.url);
|
|
3
|
+
/**
|
|
4
|
+
* @license
|
|
5
|
+
* Copyright 2025 Google LLC
|
|
6
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
7
|
+
*/
|
|
8
|
+
class CredentialExchangeError extends Error {
|
|
9
|
+
}
|
|
10
|
+
export {
|
|
11
|
+
CredentialExchangeError
|
|
12
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import {createRequire as topLevelCreateRequire} from 'module';
|
|
2
|
+
const require = topLevelCreateRequire(import.meta.url);
|
|
3
|
+
/**
|
|
4
|
+
* @license
|
|
5
|
+
* Copyright 2025 Google LLC
|
|
6
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
7
|
+
*/
|
|
8
|
+
class CredentialExchangerRegistry {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.exchangers = {};
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Register an exchanger instance for a credential type.
|
|
14
|
+
* @param credentialType - The credential type to register for.
|
|
15
|
+
* @param exchangerInstance - The exchanger instance to register.
|
|
16
|
+
*/
|
|
17
|
+
register(credentialType, exchangerInstance) {
|
|
18
|
+
this.exchangers[credentialType] = exchangerInstance;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Get the exchanger instance for a credential type.
|
|
22
|
+
* @param credentialType - The credential type to get exchanger for.
|
|
23
|
+
* @returns The exchanger instance if registered, undefined otherwise.
|
|
24
|
+
*/
|
|
25
|
+
getExchanger(credentialType) {
|
|
26
|
+
return this.exchangers[credentialType];
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export {
|
|
30
|
+
CredentialExchangerRegistry
|
|
31
|
+
};
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import {createRequire as topLevelCreateRequire} from 'module';
|
|
2
|
+
const require = topLevelCreateRequire(import.meta.url);
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __defProps = Object.defineProperties;
|
|
5
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
6
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
9
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
10
|
+
var __spreadValues = (a, b) => {
|
|
11
|
+
for (var prop in b || (b = {}))
|
|
12
|
+
if (__hasOwnProp.call(b, prop))
|
|
13
|
+
__defNormalProp(a, prop, b[prop]);
|
|
14
|
+
if (__getOwnPropSymbols)
|
|
15
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
16
|
+
if (__propIsEnum.call(b, prop))
|
|
17
|
+
__defNormalProp(a, prop, b[prop]);
|
|
18
|
+
}
|
|
19
|
+
return a;
|
|
20
|
+
};
|
|
21
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
22
|
+
/**
|
|
23
|
+
* @license
|
|
24
|
+
* Copyright 2026 Google LLC
|
|
25
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
26
|
+
*/
|
|
27
|
+
import { logger } from "../../utils/logger.js";
|
|
28
|
+
import {
|
|
29
|
+
getOAuthGrantTypeFromFlow,
|
|
30
|
+
OAuthGrantType
|
|
31
|
+
} from "../auth_schemes.js";
|
|
32
|
+
import {
|
|
33
|
+
CredentialExchangeError
|
|
34
|
+
} from "../exchanger/base_credential_exchanger.js";
|
|
35
|
+
import {
|
|
36
|
+
createOAuth2TokenRequestBody,
|
|
37
|
+
fetchOAuth2Tokens,
|
|
38
|
+
getTokenEndpoint,
|
|
39
|
+
parseAuthorizationCode
|
|
40
|
+
} from "./oauth2_utils.js";
|
|
41
|
+
class OAuth2CredentialExchanger {
|
|
42
|
+
async exchange({
|
|
43
|
+
authCredential,
|
|
44
|
+
authScheme
|
|
45
|
+
}) {
|
|
46
|
+
var _a;
|
|
47
|
+
if (!authScheme) {
|
|
48
|
+
throw new CredentialExchangeError(
|
|
49
|
+
"authScheme is required for OAuth2 credential exchange"
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
if ((_a = authCredential.oauth2) == null ? void 0 : _a.accessToken) {
|
|
53
|
+
return {
|
|
54
|
+
credential: authCredential,
|
|
55
|
+
wasExchanged: false
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
const grantType = determineGrantType(authScheme);
|
|
59
|
+
if (grantType === OAuthGrantType.CLIENT_CREDENTIALS) {
|
|
60
|
+
return exchangeClientCredentials({ authCredential, authScheme });
|
|
61
|
+
}
|
|
62
|
+
if (grantType === OAuthGrantType.AUTHORIZATION_CODE) {
|
|
63
|
+
return exchangeAuthorizationCode({ authCredential, authScheme });
|
|
64
|
+
}
|
|
65
|
+
logger.warn("Unsupported OAuth2 grant type: ".concat(grantType));
|
|
66
|
+
return {
|
|
67
|
+
credential: authCredential,
|
|
68
|
+
wasExchanged: false
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
function determineGrantType(authScheme) {
|
|
73
|
+
var _a;
|
|
74
|
+
if ("flows" in authScheme && authScheme.flows) {
|
|
75
|
+
return getOAuthGrantTypeFromFlow(authScheme.flows);
|
|
76
|
+
}
|
|
77
|
+
if (authScheme.grantTypesSupported) {
|
|
78
|
+
const oidcScheme = authScheme;
|
|
79
|
+
if ((_a = oidcScheme.grantTypesSupported) == null ? void 0 : _a.includes("client_credentials")) {
|
|
80
|
+
return OAuthGrantType.CLIENT_CREDENTIALS;
|
|
81
|
+
}
|
|
82
|
+
return OAuthGrantType.AUTHORIZATION_CODE;
|
|
83
|
+
}
|
|
84
|
+
return void 0;
|
|
85
|
+
}
|
|
86
|
+
async function exchangeClientCredentials({
|
|
87
|
+
authCredential,
|
|
88
|
+
authScheme
|
|
89
|
+
}) {
|
|
90
|
+
var _a, _b;
|
|
91
|
+
const tokenEndpoint = getTokenEndpoint(authScheme);
|
|
92
|
+
if (!tokenEndpoint) {
|
|
93
|
+
throw new CredentialExchangeError(
|
|
94
|
+
"Token endpoint not found in auth scheme."
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
if (!((_a = authCredential.oauth2) == null ? void 0 : _a.clientId) || !((_b = authCredential.oauth2) == null ? void 0 : _b.clientSecret)) {
|
|
98
|
+
throw new CredentialExchangeError(
|
|
99
|
+
"clientId and clientSecret are required for client credentials exchange."
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
const body = createOAuth2TokenRequestBody({
|
|
103
|
+
grantType: "client_credentials",
|
|
104
|
+
clientId: authCredential.oauth2.clientId,
|
|
105
|
+
clientSecret: authCredential.oauth2.clientSecret
|
|
106
|
+
});
|
|
107
|
+
try {
|
|
108
|
+
const oauth2Auth = await fetchOAuth2Tokens(tokenEndpoint, body);
|
|
109
|
+
return {
|
|
110
|
+
credential: __spreadProps(__spreadValues({}, authCredential), {
|
|
111
|
+
oauth2: __spreadValues(__spreadValues({}, authCredential.oauth2), oauth2Auth)
|
|
112
|
+
}),
|
|
113
|
+
wasExchanged: true
|
|
114
|
+
};
|
|
115
|
+
} catch (error) {
|
|
116
|
+
throw new CredentialExchangeError(
|
|
117
|
+
"Failed to exchange tokens: ".concat(error instanceof Error ? error.message : String(error))
|
|
118
|
+
);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
async function exchangeAuthorizationCode({
|
|
122
|
+
authCredential,
|
|
123
|
+
authScheme
|
|
124
|
+
}) {
|
|
125
|
+
var _a, _b, _c, _d;
|
|
126
|
+
const tokenEndpoint = getTokenEndpoint(authScheme);
|
|
127
|
+
if (!tokenEndpoint) {
|
|
128
|
+
throw new CredentialExchangeError(
|
|
129
|
+
"Token endpoint not found in auth scheme."
|
|
130
|
+
);
|
|
131
|
+
}
|
|
132
|
+
if (!((_a = authCredential.oauth2) == null ? void 0 : _a.clientId) || !((_b = authCredential.oauth2) == null ? void 0 : _b.clientSecret) || !((_c = authCredential.oauth2) == null ? void 0 : _c.authCode) && !((_d = authCredential.oauth2) == null ? void 0 : _d.authResponseUri)) {
|
|
133
|
+
throw new CredentialExchangeError(
|
|
134
|
+
"clientId, clientSecret, and either authCode or authResponseUri are required for authorization code exchange."
|
|
135
|
+
);
|
|
136
|
+
}
|
|
137
|
+
let code = authCredential.oauth2.authCode;
|
|
138
|
+
if (!code && authCredential.oauth2.authResponseUri) {
|
|
139
|
+
code = parseAuthorizationCode(authCredential.oauth2.authResponseUri);
|
|
140
|
+
}
|
|
141
|
+
if (authCredential.oauth2.authResponseUri && authCredential.oauth2.state) {
|
|
142
|
+
try {
|
|
143
|
+
const url = new URL(authCredential.oauth2.authResponseUri);
|
|
144
|
+
const receivedState = url.searchParams.get("state") || void 0;
|
|
145
|
+
if (authCredential.oauth2.state !== receivedState) {
|
|
146
|
+
throw new CredentialExchangeError(
|
|
147
|
+
"State mismatch detected. Potential CSRF attack."
|
|
148
|
+
);
|
|
149
|
+
}
|
|
150
|
+
} catch (e) {
|
|
151
|
+
throw new CredentialExchangeError(
|
|
152
|
+
"Failed to parse authResponseUri for state validation: ".concat(e instanceof Error ? e.message : String(e))
|
|
153
|
+
);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
if (!code) {
|
|
157
|
+
throw new CredentialExchangeError(
|
|
158
|
+
"Authorization code not found in auth response."
|
|
159
|
+
);
|
|
160
|
+
}
|
|
161
|
+
const body = createOAuth2TokenRequestBody({
|
|
162
|
+
grantType: "authorization_code",
|
|
163
|
+
clientId: authCredential.oauth2.clientId,
|
|
164
|
+
clientSecret: authCredential.oauth2.clientSecret,
|
|
165
|
+
code,
|
|
166
|
+
redirectUri: authCredential.oauth2.redirectUri,
|
|
167
|
+
codeVerifier: authCredential.oauth2.codeVerifier
|
|
168
|
+
});
|
|
169
|
+
try {
|
|
170
|
+
const oauth2Auth = await fetchOAuth2Tokens(tokenEndpoint, body);
|
|
171
|
+
return {
|
|
172
|
+
credential: __spreadProps(__spreadValues({}, authCredential), {
|
|
173
|
+
oauth2: __spreadValues(__spreadValues({}, authCredential.oauth2), oauth2Auth)
|
|
174
|
+
}),
|
|
175
|
+
wasExchanged: true
|
|
176
|
+
};
|
|
177
|
+
} catch (error) {
|
|
178
|
+
throw new CredentialExchangeError(
|
|
179
|
+
"Failed to exchange tokens: ".concat(error instanceof Error ? error.message : String(error))
|
|
180
|
+
);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
export {
|
|
184
|
+
OAuth2CredentialExchanger,
|
|
185
|
+
determineGrantType,
|
|
186
|
+
exchangeAuthorizationCode,
|
|
187
|
+
exchangeClientCredentials
|
|
188
|
+
};
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import {createRequire as topLevelCreateRequire} from 'module';
|
|
2
|
+
const require = topLevelCreateRequire(import.meta.url);
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __defProps = Object.defineProperties;
|
|
5
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
6
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
9
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
10
|
+
var __spreadValues = (a, b) => {
|
|
11
|
+
for (var prop in b || (b = {}))
|
|
12
|
+
if (__hasOwnProp.call(b, prop))
|
|
13
|
+
__defNormalProp(a, prop, b[prop]);
|
|
14
|
+
if (__getOwnPropSymbols)
|
|
15
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
16
|
+
if (__propIsEnum.call(b, prop))
|
|
17
|
+
__defNormalProp(a, prop, b[prop]);
|
|
18
|
+
}
|
|
19
|
+
return a;
|
|
20
|
+
};
|
|
21
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
22
|
+
/**
|
|
23
|
+
* @license
|
|
24
|
+
* Copyright 2026 Google LLC
|
|
25
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
26
|
+
*/
|
|
27
|
+
import { logger } from "../../utils/logger.js";
|
|
28
|
+
import {
|
|
29
|
+
fetchOAuth2Tokens,
|
|
30
|
+
getTokenEndpoint,
|
|
31
|
+
isTokenExpired
|
|
32
|
+
} from "./oauth2_utils.js";
|
|
33
|
+
class OAuth2CredentialRefresher {
|
|
34
|
+
/**
|
|
35
|
+
* Check if the OAuth2 credential needs to be refreshed.
|
|
36
|
+
*
|
|
37
|
+
* @param authCredential The OAuth2 credential to check.
|
|
38
|
+
* @param authScheme The OAuth2 authentication scheme (optional).
|
|
39
|
+
* @returns True if the credential needs to be refreshed, False otherwise.
|
|
40
|
+
*/
|
|
41
|
+
async isRefreshNeeded(authCredential) {
|
|
42
|
+
if (!authCredential.oauth2) {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
if (authCredential.oauth2 && authCredential.oauth2.expiresAt) {
|
|
46
|
+
return isTokenExpired(authCredential.oauth2);
|
|
47
|
+
}
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Refresh the OAuth2 credential.
|
|
52
|
+
*
|
|
53
|
+
* @param authCredential The OAuth2 credential to refresh.
|
|
54
|
+
* @param authScheme The OAuth2 authentication scheme.
|
|
55
|
+
* @returns The refreshed credential.
|
|
56
|
+
*/
|
|
57
|
+
async refresh(authCredential, authScheme) {
|
|
58
|
+
if (!authCredential.oauth2 || !authScheme) {
|
|
59
|
+
return authCredential;
|
|
60
|
+
}
|
|
61
|
+
if (!authCredential.oauth2.refreshToken) {
|
|
62
|
+
logger.warn("No refresh token available to refresh credential");
|
|
63
|
+
return authCredential;
|
|
64
|
+
}
|
|
65
|
+
const isNeeded = await this.isRefreshNeeded(authCredential);
|
|
66
|
+
if (!isNeeded) {
|
|
67
|
+
return authCredential;
|
|
68
|
+
}
|
|
69
|
+
const tokenEndpoint = getTokenEndpoint(authScheme);
|
|
70
|
+
if (!tokenEndpoint) {
|
|
71
|
+
logger.warn("Token endpoint not found in auth scheme.");
|
|
72
|
+
return authCredential;
|
|
73
|
+
}
|
|
74
|
+
if (!authCredential.oauth2.clientId || !authCredential.oauth2.clientSecret) {
|
|
75
|
+
logger.warn("clientId and clientSecret are required for token refresh.");
|
|
76
|
+
return authCredential;
|
|
77
|
+
}
|
|
78
|
+
const body = new URLSearchParams();
|
|
79
|
+
body.set("grant_type", "refresh_token");
|
|
80
|
+
body.set("refresh_token", authCredential.oauth2.refreshToken);
|
|
81
|
+
body.set("client_id", authCredential.oauth2.clientId);
|
|
82
|
+
body.set("client_secret", authCredential.oauth2.clientSecret);
|
|
83
|
+
try {
|
|
84
|
+
const data = await fetchOAuth2Tokens(tokenEndpoint, body);
|
|
85
|
+
const updatedOAuth2 = __spreadProps(__spreadValues({}, authCredential.oauth2), {
|
|
86
|
+
accessToken: data.accessToken || authCredential.oauth2.accessToken,
|
|
87
|
+
refreshToken: data.refreshToken || authCredential.oauth2.refreshToken,
|
|
88
|
+
expiresIn: data.expiresIn,
|
|
89
|
+
expiresAt: data.expiresAt || authCredential.oauth2.expiresAt
|
|
90
|
+
});
|
|
91
|
+
return __spreadProps(__spreadValues({}, authCredential), {
|
|
92
|
+
oauth2: updatedOAuth2
|
|
93
|
+
});
|
|
94
|
+
} catch (error) {
|
|
95
|
+
logger.error("Failed to refresh tokens:", error);
|
|
96
|
+
return authCredential;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
export {
|
|
101
|
+
OAuth2CredentialRefresher
|
|
102
|
+
};
|