@google/adk 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/a2a/a2a_event.js +0 -29
- package/dist/cjs/a2a/a2a_remote_agent.js +8 -5
- package/dist/cjs/a2a/a2a_remote_agent_utils.js +104 -2
- package/dist/cjs/a2a/agent_card.js +58 -6
- package/dist/cjs/a2a/agent_executor.js +10 -3
- package/dist/cjs/a2a/agent_to_a2a.js +6 -1
- package/dist/cjs/a2a/event_processor_utils.js +1 -1
- package/dist/cjs/a2a/executor_context.js +4 -2
- package/dist/cjs/a2a/index.js +4 -0
- package/dist/cjs/a2a/request_metadata.js +94 -0
- package/dist/cjs/agents/base_agent.js +9 -8
- package/dist/cjs/agents/context.js +7 -0
- package/dist/cjs/agents/functions.js +150 -47
- package/dist/cjs/agents/invocation_context.js +1 -0
- package/dist/cjs/agents/llm_agent.js +6 -5
- package/dist/cjs/agents/loop_agent.js +1 -1
- package/dist/cjs/agents/parallel_agent.js +1 -1
- package/dist/cjs/agents/processors/agent_transfer_llm_request_processor.js +26 -5
- package/dist/cjs/agents/processors/code_execution_request_processor.js +2 -2
- package/dist/cjs/agents/processors/content_processor_utils.js +5 -5
- package/dist/cjs/agents/processors/content_request_processor.js +4 -1
- package/dist/cjs/agents/processors/request_confirmation_llm_request_processor.js +19 -12
- package/dist/cjs/agents/processors/request_input_llm_request_processor.js +3 -7
- package/dist/cjs/agents/readonly_context.js +6 -0
- package/dist/cjs/agents/routed_agent.js +1 -1
- package/dist/cjs/agents/sequential_agent.js +1 -1
- package/dist/cjs/apps/app.js +1 -1
- package/dist/cjs/artifacts/file_artifact_service.js +1 -2
- package/dist/cjs/artifacts/scoped_artifact_service.js +9 -0
- package/dist/cjs/artifacts/session_artifact_service.js +19 -0
- package/dist/cjs/auth/auth_handler.js +44 -8
- package/dist/cjs/auth/oauth2/oauth2_credential_refresher.js +1 -1
- package/dist/cjs/auth/oauth2/oauth2_utils.js +17 -2
- package/dist/cjs/code_executors/base_code_executor.js +1 -1
- package/dist/cjs/code_executors/built_in_code_executor.js +1 -1
- package/dist/cjs/code_executors/code_execution_utils.js +2 -2
- package/dist/cjs/code_executors/container_code_executor.js +186 -0
- package/dist/cjs/code_executors/docker_container.js +282 -0
- package/dist/cjs/code_executors/unsafe_local_code_executor.js +11 -6
- package/dist/cjs/common.js +74 -45
- package/dist/cjs/context/agent_controlled_context_compactor.js +10 -5
- package/dist/cjs/context/anchored_context_compactor.js +41 -18
- package/dist/cjs/context/compaction_utils.js +15 -6
- package/dist/cjs/context/token_based_context_compactor.js +10 -2
- package/dist/cjs/context/trajectory_thought_pruning_compactor.js +17 -10
- package/dist/cjs/context/truncating_context_compactor.js +17 -5
- package/dist/cjs/errors/already_exists_error.js +50 -0
- package/dist/cjs/errors/input_validation_error.js +50 -0
- package/dist/cjs/errors/not_found_error.js +50 -0
- package/dist/cjs/errors/session_not_found_error.js +50 -0
- package/dist/cjs/errors/tool_execution_error.js +68 -0
- package/dist/cjs/events/event.js +1 -1
- package/dist/cjs/events/event_actions.js +7 -0
- package/dist/cjs/examples/base_example_provider.js +1 -1
- package/dist/cjs/index.js +47 -0
- package/dist/cjs/index_web.js +2 -0
- package/dist/cjs/integrations/agent_registry/agent_registry.js +3 -2
- package/dist/cjs/memory/rag_memory_transcript.js +136 -0
- package/dist/cjs/memory/vertex_ai_memory_bank_service.js +2 -2
- package/dist/cjs/memory/vertex_ai_rag_api.js +120 -0
- package/dist/cjs/memory/vertex_ai_rag_memory_service.js +228 -0
- package/dist/cjs/models/apigee_llm.js +1 -1
- package/dist/cjs/models/base_llm.js +1 -1
- package/dist/cjs/models/chrome_prompt_llm.js +304 -0
- package/dist/cjs/models/chrome_prompt_utils.js +229 -0
- package/dist/cjs/models/google_llm.js +9 -4
- package/dist/cjs/models/interactions_utils.js +2 -3
- package/dist/cjs/models/registry.js +2 -0
- package/dist/cjs/plugins/_reflect_retry_utils.js +142 -0
- package/dist/cjs/plugins/reflect_retry_model_plugin.js +274 -0
- package/dist/cjs/plugins/reflect_retry_tool_plugin.js +276 -0
- package/dist/cjs/runner/runner.js +29 -26
- package/dist/cjs/sessions/database_session_service.js +78 -43
- package/dist/cjs/sessions/db/operations.js +229 -22
- package/dist/cjs/sessions/db/schema.js +113 -159
- package/dist/cjs/sessions/registry.js +5 -1
- package/dist/cjs/sessions/vertex_ai_session_service.js +2 -2
- package/dist/cjs/telemetry/setup.js +1 -1
- package/dist/cjs/telemetry/tracing.js +11 -1
- package/dist/cjs/tools/agent_tool.js +4 -5
- package/dist/cjs/tools/base_tool.js +14 -4
- package/dist/cjs/tools/base_toolset.js +4 -4
- package/dist/cjs/tools/built_in_tool.js +75 -0
- package/dist/cjs/tools/enterprise_web_search_tool.js +3 -6
- package/dist/cjs/tools/forwarding_artifact_service.js +18 -13
- package/dist/cjs/tools/function_tool.js +6 -3
- package/dist/cjs/tools/google_maps_grounding_tool.js +3 -6
- package/dist/cjs/tools/google_search_tool.js +3 -6
- package/dist/cjs/tools/load_artifacts_tool.js +47 -23
- package/dist/cjs/tools/load_web_page.js +6 -172
- package/dist/cjs/tools/mcp/load_mcp_resource_tool.js +34 -5
- package/dist/cjs/tools/openapi_tool/auth/auth_helpers.js +11 -2
- package/dist/cjs/tools/openapi_tool/openapi_spec_parser/operation_parser.js +1 -1
- package/dist/cjs/tools/openapi_tool/rest_api_tool.js +16 -18
- package/dist/cjs/tools/preload_memory_tool.js +1 -1
- package/dist/cjs/tools/resume_inputs.js +27 -0
- package/dist/cjs/tools/retrieval/base_retrieval_tool.js +60 -0
- package/dist/cjs/tools/retrieval/files_retrieval.js +95 -0
- package/dist/cjs/tools/retrieval/llama_index_retrieval.js +57 -0
- package/dist/cjs/tools/url_context_tool.js +3 -6
- package/dist/cjs/tools/vertex_ai_search_tool.js +4 -8
- package/dist/cjs/tools/vertex_rag_retrieval_tool.js +3 -10
- package/dist/cjs/utils/crypto_shim.js +16 -0
- package/dist/cjs/utils/gemini_schema_util.js +0 -6
- package/dist/cjs/utils/logger.js +15 -50
- package/dist/cjs/utils/logger_browser.js +86 -0
- package/dist/cjs/utils/logger_node.js +119 -0
- package/dist/cjs/utils/redact_inline_data.js +46 -0
- package/dist/cjs/utils/redact_uri.js +15 -1
- package/dist/cjs/utils/schema.js +1 -1
- package/dist/cjs/utils/ssrf_guard.js +262 -0
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/workflow/base_node.js +1 -1
- package/dist/cjs/workflow/graph.js +1 -1
- package/dist/cjs/workflow/nodes/node_tool.js +2 -11
- package/dist/cjs/workflow/request_input.js +1 -1
- package/dist/cjs/workflow/run_llm_agent_as_node.js +1 -1
- package/dist/cjs/workflow/workflow.js +1 -1
- package/dist/esm/a2a/a2a_event.js +0 -28
- package/dist/esm/a2a/a2a_remote_agent.js +10 -5
- package/dist/esm/a2a/a2a_remote_agent_utils.js +102 -2
- package/dist/esm/a2a/agent_card.js +63 -6
- package/dist/esm/a2a/agent_executor.js +10 -3
- package/dist/esm/a2a/agent_to_a2a.js +8 -2
- package/dist/esm/a2a/event_processor_utils.js +1 -2
- package/dist/esm/a2a/executor_context.js +4 -2
- package/dist/esm/a2a/index.js +7 -1
- package/dist/esm/a2a/request_metadata.js +68 -0
- package/dist/esm/agents/base_agent.js +9 -8
- package/dist/esm/agents/context.js +7 -0
- package/dist/esm/agents/functions.js +152 -48
- package/dist/esm/agents/invocation_context.js +1 -0
- package/dist/esm/agents/llm_agent.js +6 -5
- package/dist/esm/agents/loop_agent.js +1 -1
- package/dist/esm/agents/parallel_agent.js +1 -1
- package/dist/esm/agents/processors/agent_transfer_llm_request_processor.js +26 -5
- package/dist/esm/agents/processors/code_execution_request_processor.js +2 -2
- package/dist/esm/agents/processors/content_processor_utils.js +5 -5
- package/dist/esm/agents/processors/content_request_processor.js +4 -1
- package/dist/esm/agents/processors/request_confirmation_llm_request_processor.js +19 -12
- package/dist/esm/agents/processors/request_input_llm_request_processor.js +3 -7
- package/dist/esm/agents/readonly_context.js +6 -0
- package/dist/esm/agents/routed_agent.js +1 -1
- package/dist/esm/agents/sequential_agent.js +1 -1
- package/dist/esm/apps/app.js +1 -1
- package/dist/esm/artifacts/file_artifact_service.js +1 -2
- package/dist/esm/artifacts/scoped_artifact_service.js +9 -0
- package/dist/esm/artifacts/session_artifact_service.js +12 -0
- package/dist/esm/auth/auth_handler.js +47 -8
- package/dist/esm/auth/oauth2/oauth2_credential_refresher.js +1 -1
- package/dist/esm/auth/oauth2/oauth2_utils.js +15 -2
- package/dist/esm/code_executors/base_code_executor.js +1 -1
- package/dist/esm/code_executors/built_in_code_executor.js +1 -1
- package/dist/esm/code_executors/code_execution_utils.js +2 -2
- package/dist/esm/code_executors/container_code_executor.js +155 -0
- package/dist/esm/code_executors/docker_container.js +265 -0
- package/dist/esm/code_executors/unsafe_local_code_executor.js +11 -6
- package/dist/esm/common.js +73 -38
- package/dist/esm/context/agent_controlled_context_compactor.js +10 -5
- package/dist/esm/context/anchored_context_compactor.js +45 -19
- package/dist/esm/context/compaction_utils.js +13 -5
- package/dist/esm/context/token_based_context_compactor.js +10 -2
- package/dist/esm/context/trajectory_thought_pruning_compactor.js +17 -10
- package/dist/esm/context/truncating_context_compactor.js +17 -5
- package/dist/esm/errors/already_exists_error.js +23 -0
- package/dist/esm/errors/input_validation_error.js +23 -0
- package/dist/{web/auth/refresher/base_credential_refresher.js → esm/errors/not_found_error.js} +9 -6
- package/dist/esm/errors/session_not_found_error.js +23 -0
- package/dist/esm/errors/tool_execution_error.js +40 -0
- package/dist/esm/events/event.js +1 -1
- package/dist/esm/events/event_actions.js +6 -0
- package/dist/esm/examples/base_example_provider.js +1 -1
- package/dist/esm/index.js +37 -0
- package/dist/esm/index_web.js +2 -0
- package/dist/esm/integrations/agent_registry/agent_registry.js +3 -2
- package/dist/esm/memory/rag_memory_transcript.js +106 -0
- package/dist/esm/memory/vertex_ai_memory_bank_service.js +2 -2
- package/dist/esm/memory/vertex_ai_rag_api.js +93 -0
- package/dist/esm/memory/vertex_ai_rag_memory_service.js +208 -0
- package/dist/esm/models/apigee_llm.js +1 -1
- package/dist/esm/models/base_llm.js +1 -1
- package/dist/esm/models/chrome_prompt_llm.js +285 -0
- package/dist/esm/models/chrome_prompt_utils.js +192 -0
- package/dist/esm/models/google_llm.js +9 -4
- package/dist/esm/models/interactions_utils.js +2 -3
- package/dist/esm/models/registry.js +2 -0
- package/dist/esm/plugins/_reflect_retry_utils.js +111 -0
- package/dist/esm/plugins/reflect_retry_model_plugin.js +250 -0
- package/dist/esm/plugins/reflect_retry_tool_plugin.js +254 -0
- package/dist/esm/runner/runner.js +35 -27
- package/dist/esm/sessions/database_session_service.js +58 -25
- package/dist/esm/sessions/db/operations.js +229 -22
- package/dist/esm/sessions/db/schema.js +111 -160
- package/dist/esm/sessions/registry.js +5 -1
- package/dist/esm/sessions/vertex_ai_session_service.js +1 -1
- package/dist/esm/telemetry/setup.js +1 -1
- package/dist/esm/telemetry/tracing.js +11 -1
- package/dist/esm/tools/agent_tool.js +4 -5
- package/dist/esm/tools/base_tool.js +11 -3
- package/dist/esm/tools/base_toolset.js +4 -4
- package/dist/esm/tools/built_in_tool.js +51 -0
- package/dist/esm/tools/enterprise_web_search_tool.js +3 -6
- package/dist/esm/tools/forwarding_artifact_service.js +18 -13
- package/dist/esm/tools/function_tool.js +6 -3
- package/dist/esm/tools/google_maps_grounding_tool.js +3 -6
- package/dist/esm/tools/google_search_tool.js +3 -6
- package/dist/esm/tools/load_artifacts_tool.js +48 -24
- package/dist/esm/tools/load_web_page.js +10 -170
- package/dist/esm/tools/mcp/load_mcp_resource_tool.js +34 -5
- package/dist/esm/tools/openapi_tool/auth/auth_helpers.js +13 -2
- package/dist/esm/tools/openapi_tool/openapi_spec_parser/operation_parser.js +1 -1
- package/dist/esm/tools/openapi_tool/rest_api_tool.js +16 -18
- package/dist/esm/tools/preload_memory_tool.js +1 -1
- package/dist/esm/tools/retrieval/base_retrieval_tool.js +33 -0
- package/dist/esm/tools/retrieval/files_retrieval.js +81 -0
- package/dist/esm/tools/retrieval/llama_index_retrieval.js +30 -0
- package/dist/esm/tools/url_context_tool.js +3 -6
- package/dist/esm/tools/vertex_ai_search_tool.js +4 -8
- package/dist/esm/tools/vertex_rag_retrieval_tool.js +3 -10
- package/dist/esm/utils/crypto_shim.js +14 -0
- package/dist/esm/utils/gemini_schema_util.js +0 -6
- package/dist/esm/utils/logger.js +14 -40
- package/dist/esm/utils/logger_browser.js +58 -0
- package/dist/esm/utils/logger_node.js +81 -0
- package/dist/esm/utils/redact_inline_data.js +19 -0
- package/dist/esm/utils/redact_uri.js +15 -1
- package/dist/esm/utils/schema.js +1 -1
- package/dist/{web/tools/load_web_page.js → esm/utils/ssrf_guard.js} +95 -107
- package/dist/esm/version.js +1 -1
- package/dist/esm/workflow/base_node.js +1 -1
- package/dist/esm/workflow/graph.js +1 -1
- package/dist/esm/workflow/nodes/node_tool.js +2 -11
- package/dist/esm/workflow/request_input.js +1 -1
- package/dist/esm/workflow/run_llm_agent_as_node.js +1 -1
- package/dist/esm/workflow/workflow.js +1 -1
- package/dist/types/a2a/a2a_event.d.ts +7 -10
- package/dist/types/a2a/a2a_remote_agent.d.ts +5 -0
- package/dist/types/a2a/a2a_remote_agent_utils.d.ts +25 -0
- package/dist/types/a2a/agent_card.d.ts +9 -0
- package/dist/types/a2a/agent_executor.d.ts +1 -1
- package/dist/types/a2a/agent_to_a2a.d.ts +2 -0
- package/dist/types/a2a/auth.d.ts +5 -1
- package/dist/types/a2a/executor_context.d.ts +7 -1
- package/dist/types/a2a/index.d.ts +1 -1
- package/dist/types/a2a/request_metadata.d.ts +22 -0
- package/dist/types/agents/base_agent.d.ts +19 -16
- package/dist/types/agents/context.d.ts +8 -0
- package/dist/types/agents/functions.d.ts +72 -6
- package/dist/types/agents/invocation_context.d.ts +11 -3
- package/dist/types/agents/llm_agent.d.ts +9 -7
- package/dist/types/agents/processors/agent_transfer_llm_request_processor.d.ts +16 -1
- package/dist/types/agents/readonly_context.d.ts +4 -0
- package/dist/types/agents/run_config.d.ts +21 -8
- package/dist/types/artifacts/scoped_artifact_service.d.ts +13 -0
- package/dist/types/artifacts/session_artifact_service.d.ts +8 -1
- package/dist/types/auth/auth_credential.d.ts +13 -8
- package/dist/types/auth/auth_handler.d.ts +12 -1
- package/dist/types/auth/oauth2/oauth2_credential_refresher.d.ts +1 -1
- package/dist/types/auth/oauth2/oauth2_utils.d.ts +9 -0
- package/dist/types/auth/refresher/base_credential_refresher.d.ts +1 -1
- package/dist/types/code_executors/code_execution_utils.d.ts +1 -1
- package/dist/types/code_executors/container_code_executor.d.ts +89 -0
- package/dist/types/code_executors/docker_container.d.ts +79 -0
- package/dist/types/common.d.ts +22 -20
- package/dist/types/context/compaction_utils.d.ts +9 -1
- package/dist/types/errors/already_exists_error.d.ts +14 -0
- package/dist/types/errors/input_validation_error.d.ts +14 -0
- package/dist/types/errors/not_found_error.d.ts +14 -0
- package/dist/types/errors/session_not_found_error.d.ts +14 -0
- package/dist/types/errors/tool_execution_error.d.ts +36 -0
- package/dist/types/events/event_actions.d.ts +13 -0
- package/dist/types/index.d.ts +22 -1
- package/dist/types/memory/rag_memory_transcript.d.ts +55 -0
- package/dist/types/memory/vertex_ai_rag_api.d.ts +89 -0
- package/dist/types/memory/vertex_ai_rag_memory_service.d.ts +68 -0
- package/dist/types/models/chrome_prompt_llm.d.ts +210 -0
- package/dist/types/models/chrome_prompt_utils.d.ts +68 -0
- package/dist/types/models/google_llm.d.ts +8 -3
- package/dist/types/models/registry.d.ts +3 -2
- package/dist/types/plugins/_reflect_retry_utils.d.ts +72 -0
- package/dist/types/plugins/base_plugin.d.ts +12 -10
- package/dist/types/plugins/logging_plugin.d.ts +3 -2
- package/dist/types/plugins/reflect_retry_model_plugin.d.ts +132 -0
- package/dist/types/plugins/reflect_retry_tool_plugin.d.ts +187 -0
- package/dist/types/runner/runner.d.ts +7 -8
- package/dist/types/sessions/database_session_service.d.ts +1 -1
- package/dist/types/sessions/db/operations.d.ts +13 -1
- package/dist/types/sessions/db/schema.d.ts +23 -9
- package/dist/types/tools/base_tool.d.ts +11 -0
- package/dist/types/tools/base_toolset.d.ts +3 -4
- package/dist/types/tools/built_in_tool.d.ts +41 -0
- package/dist/types/tools/enterprise_web_search_tool.d.ts +4 -4
- package/dist/types/tools/forwarding_artifact_service.d.ts +23 -10
- package/dist/types/tools/function_tool.d.ts +42 -9
- package/dist/types/tools/google_maps_grounding_tool.d.ts +4 -4
- package/dist/types/tools/google_search_tool.d.ts +4 -4
- package/dist/types/tools/long_running_tool.d.ts +1 -1
- package/dist/types/tools/mcp/mcp_toolset.d.ts +11 -10
- package/dist/types/tools/openapi_tool/auth/auth_helpers.d.ts +5 -0
- package/dist/types/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.d.ts +0 -1
- package/dist/types/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.d.ts +0 -1
- package/dist/types/tools/preload_memory_tool.d.ts +1 -1
- package/dist/types/tools/resume_inputs.d.ts +25 -0
- package/dist/types/tools/retrieval/base_retrieval_tool.d.ts +21 -0
- package/dist/types/tools/retrieval/files_retrieval.d.ts +50 -0
- package/dist/types/tools/retrieval/llama_index_retrieval.d.ts +62 -0
- package/dist/types/tools/url_context_tool.d.ts +4 -4
- package/dist/types/tools/vertex_ai_search_tool.d.ts +4 -4
- package/dist/types/tools/vertex_rag_retrieval_tool.d.ts +13 -12
- package/dist/types/utils/crypto_shim.d.ts +16 -0
- package/dist/types/utils/gemini_schema_util.d.ts +5 -7
- package/dist/types/utils/logger.d.ts +23 -1
- package/dist/types/utils/logger_browser.d.ts +28 -0
- package/dist/types/utils/logger_node.d.ts +20 -0
- package/dist/types/utils/output_schema_utils.d.ts +3 -3
- package/dist/types/utils/redact_inline_data.d.ts +16 -0
- package/dist/types/utils/redact_uri.d.ts +12 -8
- package/dist/types/utils/ssrf_guard.d.ts +32 -0
- package/dist/types/version.d.ts +1 -1
- package/dist/web/index_web.js +304 -3
- package/dist/web/index_web.js.map +7 -0
- package/package.json +17 -14
- package/dist/web/a2a/a2a_event.js +0 -290
- package/dist/web/a2a/a2a_remote_agent.js +0 -200
- package/dist/web/a2a/a2a_remote_agent_run_processor.js +0 -189
- package/dist/web/a2a/a2a_remote_agent_utils.js +0 -141
- package/dist/web/a2a/agent_card.js +0 -373
- package/dist/web/a2a/agent_executor.js +0 -246
- package/dist/web/a2a/agent_to_a2a.js +0 -126
- package/dist/web/a2a/auth.js +0 -41
- package/dist/web/a2a/event_converter_utils.js +0 -242
- package/dist/web/a2a/event_processor_utils.js +0 -209
- package/dist/web/a2a/executor_context.js +0 -28
- package/dist/web/a2a/index.js +0 -20
- package/dist/web/a2a/metadata_converter_utils.js +0 -115
- package/dist/web/a2a/part_converter_utils.js +0 -201
- package/dist/web/agents/active_streaming_tool.js +0 -25
- package/dist/web/agents/base_agent.js +0 -462
- package/dist/web/agents/context.js +0 -146
- package/dist/web/agents/framework_function_calls.js +0 -34
- package/dist/web/agents/functions.js +0 -462
- package/dist/web/agents/instructions.js +0 -188
- package/dist/web/agents/invocation_context.js +0 -126
- package/dist/web/agents/live_request_queue.js +0 -151
- package/dist/web/agents/llm_agent.js +0 -1514
- package/dist/web/agents/loop_agent.js +0 -131
- package/dist/web/agents/parallel_agent.js +0 -122
- package/dist/web/agents/processors/agent_transfer_llm_request_processor.js +0 -113
- package/dist/web/agents/processors/base_llm_processor.js +0 -21
- package/dist/web/agents/processors/basic_llm_request_processor.js +0 -84
- package/dist/web/agents/processors/code_execution_request_processor.js +0 -381
- package/dist/web/agents/processors/content_processor_utils.js +0 -432
- package/dist/web/agents/processors/content_request_processor.js +0 -73
- package/dist/web/agents/processors/context_compactor_request_processor.js +0 -78
- package/dist/web/agents/processors/identity_llm_request_processor.js +0 -59
- package/dist/web/agents/processors/instructions_llm_request_processor.js +0 -85
- package/dist/web/agents/processors/interactions_request_processor.js +0 -56
- package/dist/web/agents/processors/request_confirmation_llm_request_processor.js +0 -393
- package/dist/web/agents/processors/request_input_llm_request_processor.js +0 -228
- package/dist/web/agents/processors/tool_filter_request_processor.js +0 -72
- package/dist/web/agents/readonly_context.js +0 -60
- package/dist/web/agents/routed_agent.js +0 -161
- package/dist/web/agents/run_config.js +0 -74
- package/dist/web/agents/sequential_agent.js +0 -141
- package/dist/web/agents/transcription_entry.js +0 -7
- package/dist/web/agents/user_input_request.js +0 -135
- package/dist/web/apps/app.js +0 -52
- package/dist/web/apps/resumability_config.js +0 -33
- package/dist/web/artifacts/base_artifact_service.js +0 -7
- package/dist/web/artifacts/file_artifact_service.js +0 -568
- package/dist/web/artifacts/gcs_artifact_service.js +0 -298
- package/dist/web/artifacts/in_memory_artifact_service.js +0 -172
- package/dist/web/artifacts/registry.js +0 -36
- package/dist/web/artifacts/scoped_artifact_service.js +0 -89
- package/dist/web/auth/auth_credential.js +0 -18
- package/dist/web/auth/auth_handler.js +0 -151
- package/dist/web/auth/auth_preprocessor.js +0 -184
- package/dist/web/auth/auth_provider_registry.js +0 -37
- package/dist/web/auth/auth_schemes.js +0 -36
- package/dist/web/auth/auth_tool.js +0 -7
- package/dist/web/auth/base_auth_provider.js +0 -7
- package/dist/web/auth/credential_response_binding.js +0 -91
- package/dist/web/auth/credential_service/base_credential_service.js +0 -7
- package/dist/web/auth/credential_service/in_memory_credential_service.js +0 -50
- package/dist/web/auth/credential_service/session_state_credential_service.js +0 -27
- package/dist/web/auth/exchanger/base_credential_exchanger.js +0 -16
- package/dist/web/auth/exchanger/credential_exchanger_registry.js +0 -35
- package/dist/web/auth/oauth2/oauth2_credential_exchanger.js +0 -194
- package/dist/web/auth/oauth2/oauth2_credential_refresher.js +0 -105
- package/dist/web/auth/oauth2/oauth2_discovery.js +0 -196
- package/dist/web/auth/oauth2/oauth2_utils.js +0 -105
- package/dist/web/auth/refresher/credential_refresher_registry.js +0 -44
- package/dist/web/code_executors/agent_engine_sandbox_code_executor.js +0 -284
- package/dist/web/code_executors/base_code_executor.js +0 -68
- package/dist/web/code_executors/built_in_code_executor.js +0 -50
- package/dist/web/code_executors/code_execution_utils.js +0 -131
- package/dist/web/code_executors/code_executor_context.js +0 -174
- package/dist/web/code_executors/unsafe_local_code_executor.js +0 -221
- package/dist/web/common.js +0 -452
- package/dist/web/context/agent_controlled_context_compactor.js +0 -76
- package/dist/web/context/anchored_context_compactor.js +0 -120
- package/dist/web/context/base_context_compactor.js +0 -7
- package/dist/web/context/compaction_utils.js +0 -42
- package/dist/web/context/summarizers/base_summarizer.js +0 -7
- package/dist/web/context/summarizers/llm_summarizer.js +0 -91
- package/dist/web/context/token_based_context_compactor.js +0 -118
- package/dist/web/context/trajectory_thought_pruning_compactor.js +0 -47
- package/dist/web/context/truncating_context_compactor.js +0 -34
- package/dist/web/environment/base_environment.js +0 -71
- package/dist/web/environment/local_environment.js +0 -165
- package/dist/web/events/compacted_event.js +0 -51
- package/dist/web/events/event.js +0 -208
- package/dist/web/events/event_actions.js +0 -74
- package/dist/web/events/structured_events.js +0 -79
- package/dist/web/examples/base_example_provider.js +0 -32
- package/dist/web/examples/example.js +0 -7
- package/dist/web/examples/example_util.js +0 -83
- package/dist/web/features/feature_registry.js +0 -115
- package/dist/web/index.js +0 -57
- package/dist/web/integrations/agent_registry/agent_registry.js +0 -337
- package/dist/web/integrations/agent_registry/agent_registry_mcp_toolset.js +0 -120
- package/dist/web/integrations/agent_registry/helpers.js +0 -32
- package/dist/web/integrations/agent_registry/types.js +0 -20
- package/dist/web/memory/base_memory_service.js +0 -7
- package/dist/web/memory/in_memory_memory_service.js +0 -89
- package/dist/web/memory/memory_entry.js +0 -7
- package/dist/web/memory/vertex_ai_memory_bank_service.js +0 -496
- package/dist/web/models/apigee_llm.js +0 -227
- package/dist/web/models/base_llm.js +0 -78
- package/dist/web/models/base_llm_connection.js +0 -7
- package/dist/web/models/gemini_llm_connection.js +0 -183
- package/dist/web/models/google_llm.js +0 -396
- package/dist/web/models/interactions_utils.js +0 -745
- package/dist/web/models/llm_request.js +0 -57
- package/dist/web/models/llm_response.js +0 -48
- package/dist/web/models/registry.js +0 -100
- package/dist/web/models/routed_llm.js +0 -112
- package/dist/web/plugins/base_plugin.js +0 -305
- package/dist/web/plugins/global_instruction_plugin.js +0 -71
- package/dist/web/plugins/logging_plugin.js +0 -241
- package/dist/web/plugins/plugin_manager.js +0 -318
- package/dist/web/plugins/security_plugin.js +0 -148
- package/dist/web/runner/in_memory_runner.js +0 -50
- package/dist/web/runner/runner.js +0 -747
- package/dist/web/sessions/base_session_service.js +0 -123
- package/dist/web/sessions/database_session_service.js +0 -440
- package/dist/web/sessions/db/operations.js +0 -124
- package/dist/web/sessions/db/schema.js +0 -216
- package/dist/web/sessions/in_memory_session_service.js +0 -251
- package/dist/web/sessions/registry.js +0 -38
- package/dist/web/sessions/session.js +0 -23
- package/dist/web/sessions/state.js +0 -159
- package/dist/web/sessions/state_write_order.js +0 -74
- package/dist/web/sessions/vertex_ai_session_service.js +0 -546
- package/dist/web/skills/gcp_skill_registry.js +0 -80
- package/dist/web/skills/loader.js +0 -372
- package/dist/web/skills/prompt.js +0 -34
- package/dist/web/skills/skill.js +0 -67
- package/dist/web/skills/skill_registry.js +0 -7
- package/dist/web/telemetry/google_cloud.js +0 -99
- package/dist/web/telemetry/setup.js +0 -89
- package/dist/web/telemetry/tracing.js +0 -304
- package/dist/web/tools/agent_tool.js +0 -150
- package/dist/web/tools/base_tool.js +0 -116
- package/dist/web/tools/base_toolset.js +0 -62
- package/dist/web/tools/consolidate_context_tool.js +0 -55
- package/dist/web/tools/enterprise_web_search_tool.js +0 -60
- package/dist/web/tools/example_tool.js +0 -46
- package/dist/web/tools/exit_loop_tool.js +0 -47
- package/dist/web/tools/finish_task_tool.js +0 -92
- package/dist/web/tools/forwarding_artifact_service.js +0 -51
- package/dist/web/tools/function_tool.js +0 -151
- package/dist/web/tools/get_user_choice_tool.js +0 -27
- package/dist/web/tools/google_maps_grounding_tool.js +0 -59
- package/dist/web/tools/google_search_tool.js +0 -55
- package/dist/web/tools/load_artifacts_tool.js +0 -159
- package/dist/web/tools/load_memory_tool.js +0 -83
- package/dist/web/tools/long_running_tool.js +0 -58
- package/dist/web/tools/mcp/index.js +0 -11
- package/dist/web/tools/mcp/load_mcp_resource_tool.js +0 -111
- package/dist/web/tools/mcp/mcp_session_manager.js +0 -114
- package/dist/web/tools/mcp/mcp_tool.js +0 -47
- package/dist/web/tools/mcp/mcp_toolset.js +0 -144
- package/dist/web/tools/openapi_tool/auth/auth_helpers.js +0 -53
- package/dist/web/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +0 -62
- package/dist/web/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +0 -113
- package/dist/web/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +0 -242
- package/dist/web/tools/openapi_tool/openapi_spec_parser/operation_parser.js +0 -200
- package/dist/web/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +0 -98
- package/dist/web/tools/openapi_tool/openapi_toolset.js +0 -99
- package/dist/web/tools/openapi_tool/rest_api_tool.js +0 -247
- package/dist/web/tools/preload_memory_tool.js +0 -81
- package/dist/web/tools/request_input_tool.js +0 -29
- package/dist/web/tools/skill/list_skills_tool.js +0 -52
- package/dist/web/tools/skill/load_skill_resource_tool.js +0 -192
- package/dist/web/tools/skill/load_skill_tool.js +0 -96
- package/dist/web/tools/skill/run_skill_inline_script_tool.js +0 -191
- package/dist/web/tools/skill/run_skill_script_tool.js +0 -227
- package/dist/web/tools/skill/search_skills_tool.js +0 -84
- package/dist/web/tools/skill/skill_toolset.js +0 -185
- package/dist/web/tools/tool_confirmation.js +0 -43
- package/dist/web/tools/url_context_tool.js +0 -48
- package/dist/web/tools/vertex_ai_search_tool.js +0 -107
- package/dist/web/tools/vertex_rag_retrieval_tool.js +0 -40
- package/dist/web/utils/async_hooks_shim.js +0 -28
- package/dist/web/utils/async_queue.js +0 -88
- package/dist/web/utils/branch_trie.js +0 -16
- package/dist/web/utils/case_utils.js +0 -28
- package/dist/web/utils/client_labels.js +0 -70
- package/dist/web/utils/crypto_shim.js +0 -18
- package/dist/web/utils/deprecated.js +0 -40
- package/dist/web/utils/env_aware_utils.js +0 -115
- package/dist/web/utils/error_utils.js +0 -101
- package/dist/web/utils/experimental.js +0 -54
- package/dist/web/utils/failover_utils.js +0 -100
- package/dist/web/utils/file_extension_utils.js +0 -55
- package/dist/web/utils/file_utils.js +0 -108
- package/dist/web/utils/gemini_schema_util.js +0 -177
- package/dist/web/utils/genai_schema_to_json.js +0 -80
- package/dist/web/utils/live_connection_utils.js +0 -257
- package/dist/web/utils/logger.js +0 -140
- package/dist/web/utils/model_name.js +0 -75
- package/dist/web/utils/object_notation_utils.js +0 -54
- package/dist/web/utils/optional_peer.js +0 -38
- package/dist/web/utils/output_schema_utils.js +0 -18
- package/dist/web/utils/partial_copy.js +0 -26
- package/dist/web/utils/redact_uri.js +0 -39
- package/dist/web/utils/schema.js +0 -167
- package/dist/web/utils/simple_zod_to_json.js +0 -134
- package/dist/web/utils/streaming_utils.js +0 -438
- package/dist/web/utils/task.js +0 -38
- package/dist/web/utils/variant_utils.js +0 -23
- package/dist/web/utils/vertex_ai_utils.js +0 -27
- package/dist/web/version.js +0 -11
- package/dist/web/workflow/base_node.js +0 -215
- package/dist/web/workflow/branch_path.js +0 -77
- package/dist/web/workflow/dynamic_node_scheduler.js +0 -202
- package/dist/web/workflow/errors.js +0 -140
- package/dist/web/workflow/graph.js +0 -127
- package/dist/web/workflow/index.js +0 -80
- package/dist/web/workflow/node.js +0 -87
- package/dist/web/workflow/node_builders.js +0 -40
- package/dist/web/workflow/node_context.js +0 -236
- package/dist/web/workflow/node_error_event.js +0 -86
- package/dist/web/workflow/node_runner.js +0 -481
- package/dist/web/workflow/node_state.js +0 -43
- package/dist/web/workflow/node_status.js +0 -20
- package/dist/web/workflow/nodes/function_node.js +0 -221
- package/dist/web/workflow/nodes/join_node.js +0 -47
- package/dist/web/workflow/nodes/node_tool.js +0 -131
- package/dist/web/workflow/nodes/parallel_worker.js +0 -120
- package/dist/web/workflow/nodes/tool_node.js +0 -126
- package/dist/web/workflow/request_input.js +0 -36
- package/dist/web/workflow/retry_config.js +0 -43
- package/dist/web/workflow/run_llm_agent_as_node.js +0 -266
- package/dist/web/workflow/run_node_as_invocation.js +0 -170
- package/dist/web/workflow/schedule_dynamic_node.js +0 -26
- package/dist/web/workflow/trigger.js +0 -7
- package/dist/web/workflow/utils/graph_parser.js +0 -188
- package/dist/web/workflow/utils/graph_validation.js +0 -189
- package/dist/web/workflow/utils/hitl_utils.js +0 -239
- package/dist/web/workflow/utils/rehydration_utils.js +0 -342
- package/dist/web/workflow/utils/retry_utils.js +0 -82
- package/dist/web/workflow/utils/workflow_graph_utils.js +0 -115
- package/dist/web/workflow/workflow.js +0 -529
- /package/dist/{web/artifacts/session_artifact_service.js → esm/tools/resume_inputs.js} +0 -0
|
@@ -12,7 +12,10 @@ import { createPartFromText, Modality } from "@google/genai";
|
|
|
12
12
|
import { context, trace } from "@opentelemetry/api";
|
|
13
13
|
import { isBaseAgent } from "../agents/base_agent.js";
|
|
14
14
|
import { reservedFunctionCallName } from "../agents/framework_function_calls.js";
|
|
15
|
-
import {
|
|
15
|
+
import {
|
|
16
|
+
findMatchingFunctionCall,
|
|
17
|
+
getConflictingFunctionResponseAuthors
|
|
18
|
+
} from "../agents/functions.js";
|
|
16
19
|
import {
|
|
17
20
|
InvocationContext,
|
|
18
21
|
newInvocationContextId,
|
|
@@ -21,6 +24,9 @@ import {
|
|
|
21
24
|
import { isLlmAgent } from "../agents/llm_agent.js";
|
|
22
25
|
import { createRunConfig } from "../agents/run_config.js";
|
|
23
26
|
import { ScopedArtifactService } from "../artifacts/scoped_artifact_service.js";
|
|
27
|
+
import {
|
|
28
|
+
isSessionArtifactService
|
|
29
|
+
} from "../artifacts/session_artifact_service.js";
|
|
24
30
|
import {
|
|
25
31
|
BuiltInCodeExecutor,
|
|
26
32
|
isBuiltInCodeExecutor
|
|
@@ -35,11 +41,12 @@ import {
|
|
|
35
41
|
import { isBaseToolset } from "../tools/base_toolset.js";
|
|
36
42
|
import { logger } from "../utils/logger.js";
|
|
37
43
|
import { isGemini2OrAbove } from "../utils/model_name.js";
|
|
44
|
+
import { stringifyWithRedactedInlineData } from "../utils/redact_inline_data.js";
|
|
38
45
|
import {
|
|
39
46
|
asRunnableRoot,
|
|
40
47
|
runNodeAsInvocation
|
|
41
48
|
} from "../workflow/run_node_as_invocation.js";
|
|
42
|
-
const RUNNER_SIGNATURE_SYMBOL = Symbol.for("google.adk.runner");
|
|
49
|
+
const RUNNER_SIGNATURE_SYMBOL = /* @__PURE__ */ Symbol.for("google.adk.runner");
|
|
43
50
|
function isRunner(obj) {
|
|
44
51
|
return typeof obj === "object" && obj !== null && RUNNER_SIGNATURE_SYMBOL in obj && obj[RUNNER_SIGNATURE_SYMBOL] === true;
|
|
45
52
|
}
|
|
@@ -146,7 +153,9 @@ const _Runner = class _Runner {
|
|
|
146
153
|
`Session lookup failed: appName must be provided in runner constructor (or via app.name)`
|
|
147
154
|
);
|
|
148
155
|
}
|
|
149
|
-
throw new Error(
|
|
156
|
+
throw new Error(
|
|
157
|
+
`Session not found: ${sessionId} (appName=${this.appName}, userId=${userId})`
|
|
158
|
+
);
|
|
150
159
|
}
|
|
151
160
|
if (runConfig.supportCfc && isLlmAgent(this.agent)) {
|
|
152
161
|
const modelName = this.agent.canonicalModel.model;
|
|
@@ -160,7 +169,7 @@ const _Runner = class _Runner {
|
|
|
160
169
|
}
|
|
161
170
|
}
|
|
162
171
|
const invocationContext = new InvocationContext({
|
|
163
|
-
artifactService: this.artifactService ? new ScopedArtifactService(
|
|
172
|
+
artifactService: this.artifactService ? isSessionArtifactService(this.artifactService) ? this.artifactService : new ScopedArtifactService(
|
|
164
173
|
this.artifactService,
|
|
165
174
|
this.appName,
|
|
166
175
|
userId,
|
|
@@ -174,6 +183,7 @@ const _Runner = class _Runner {
|
|
|
174
183
|
session,
|
|
175
184
|
userContent: newMessage,
|
|
176
185
|
runConfig,
|
|
186
|
+
a2aMetadata: runConfig.a2aMetadata,
|
|
177
187
|
pluginManager: this.pluginManager,
|
|
178
188
|
abortSignal: params.abortSignal
|
|
179
189
|
});
|
|
@@ -193,9 +203,8 @@ const _Runner = class _Runner {
|
|
|
193
203
|
}
|
|
194
204
|
if (runConfig.saveInputBlobsAsArtifacts) {
|
|
195
205
|
newMessage = await this.saveArtifacts(
|
|
206
|
+
invocationContext.artifactService,
|
|
196
207
|
invocationContext.invocationId,
|
|
197
|
-
session.userId,
|
|
198
|
-
session.id,
|
|
199
208
|
newMessage
|
|
200
209
|
);
|
|
201
210
|
if ((_d = params.abortSignal) == null ? void 0 : _d.aborted) {
|
|
@@ -308,21 +317,15 @@ const _Runner = class _Runner {
|
|
|
308
317
|
* Saves artifacts from the message parts and replaces the inline data with
|
|
309
318
|
* a file name placeholder and optional file reference.
|
|
310
319
|
*
|
|
320
|
+
* @param artifactService The session-scoped artifact service to save to.
|
|
311
321
|
* @param invocationId The current invocation ID.
|
|
312
|
-
* @param userId The user ID of the session.
|
|
313
|
-
* @param sessionId The session ID of the session.
|
|
314
322
|
* @param message The message containing parts to process.
|
|
315
323
|
*/
|
|
316
|
-
async saveArtifacts(
|
|
324
|
+
async saveArtifacts(artifactService, invocationId, message) {
|
|
317
325
|
var _a2;
|
|
318
|
-
if (!
|
|
326
|
+
if (!artifactService || !((_a2 = message.parts) == null ? void 0 : _a2.length)) {
|
|
319
327
|
return message;
|
|
320
328
|
}
|
|
321
|
-
const sessionKey = {
|
|
322
|
-
appName: this.appName,
|
|
323
|
-
userId,
|
|
324
|
-
sessionId
|
|
325
|
-
};
|
|
326
329
|
const newParts = [];
|
|
327
330
|
let modified = false;
|
|
328
331
|
for (let i = 0; i < message.parts.length; i++) {
|
|
@@ -334,20 +337,16 @@ const _Runner = class _Runner {
|
|
|
334
337
|
try {
|
|
335
338
|
const inlineData = part.inlineData;
|
|
336
339
|
const fileName = inlineData.displayName || `artifact_${invocationId}_${i}`;
|
|
337
|
-
const version = await
|
|
338
|
-
...sessionKey,
|
|
340
|
+
const version = await artifactService.saveArtifact({
|
|
339
341
|
filename: fileName,
|
|
340
342
|
artifact: part
|
|
341
343
|
});
|
|
342
344
|
newParts.push(createPartFromText(`[Uploaded Artifact: "${fileName}"]`));
|
|
343
345
|
try {
|
|
344
|
-
const artifactVersion = await
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
version
|
|
349
|
-
}
|
|
350
|
-
);
|
|
346
|
+
const artifactVersion = await artifactService.getArtifactVersion({
|
|
347
|
+
filename: fileName,
|
|
348
|
+
version
|
|
349
|
+
});
|
|
351
350
|
if ((artifactVersion == null ? void 0 : artifactVersion.canonicalUri) && /^(gs|https?):/i.test(artifactVersion.canonicalUri)) {
|
|
352
351
|
newParts.push({
|
|
353
352
|
fileData: {
|
|
@@ -397,7 +396,7 @@ const _Runner = class _Runner {
|
|
|
397
396
|
* Whether the agent to run can transfer to any other agent in the agent tree.
|
|
398
397
|
*
|
|
399
398
|
* @param agentToRun The agent to check for transferability.
|
|
400
|
-
* @returns True if the agent can transfer,
|
|
399
|
+
* @returns True if the agent can transfer, false otherwise.
|
|
401
400
|
*/
|
|
402
401
|
isRoutableLlmAgent(agentToRun) {
|
|
403
402
|
return isRoutableLlmAgent(agentToRun);
|
|
@@ -460,7 +459,7 @@ const _Runner = class _Runner {
|
|
|
460
459
|
return;
|
|
461
460
|
}
|
|
462
461
|
const invocationContext = new InvocationContext({
|
|
463
|
-
artifactService: this.artifactService ? new ScopedArtifactService(
|
|
462
|
+
artifactService: this.artifactService ? isSessionArtifactService(this.artifactService) ? this.artifactService : new ScopedArtifactService(
|
|
464
463
|
this.artifactService,
|
|
465
464
|
this.appName,
|
|
466
465
|
params.userId,
|
|
@@ -473,6 +472,7 @@ const _Runner = class _Runner {
|
|
|
473
472
|
agent,
|
|
474
473
|
session,
|
|
475
474
|
runConfig,
|
|
475
|
+
a2aMetadata: runConfig.a2aMetadata,
|
|
476
476
|
pluginManager: this.pluginManager,
|
|
477
477
|
liveRequestQueue: params.liveRequestQueue,
|
|
478
478
|
abortSignal: params.abortSignal,
|
|
@@ -550,6 +550,14 @@ function determineAgentForResumption(session, rootAgent, resumabilityConfig) {
|
|
|
550
550
|
const event = findEventByLastFunctionResponseId(session.events);
|
|
551
551
|
const isResumable = Boolean(resumabilityConfig == null ? void 0 : resumabilityConfig.isResumable);
|
|
552
552
|
if (event && event.author && isResumable) {
|
|
553
|
+
const conflictingAuthors = getConflictingFunctionResponseAuthors(
|
|
554
|
+
session.events
|
|
555
|
+
);
|
|
556
|
+
if (conflictingAuthors) {
|
|
557
|
+
throw new Error(
|
|
558
|
+
`Function responses in the last event resolve to function calls from more than one agent (at least "${conflictingAuthors[0]}" and "${conflictingAuthors[1]}"); cannot determine a single agent to resume.`
|
|
559
|
+
);
|
|
560
|
+
}
|
|
553
561
|
const resumedAgent = rootAgent.findAgent(event.author);
|
|
554
562
|
if (resumedAgent) {
|
|
555
563
|
return resumedAgent;
|
|
@@ -561,7 +569,7 @@ function determineAgentForResumption(session, rootAgent, resumabilityConfig) {
|
|
|
561
569
|
}
|
|
562
570
|
}
|
|
563
571
|
for (let i = session.events.length - 1; i >= 0; i--) {
|
|
564
|
-
logger.debug("event:",
|
|
572
|
+
logger.debug("event:", stringifyWithRedactedInlineData(session.events[i]));
|
|
565
573
|
const event2 = session.events[i];
|
|
566
574
|
if (event2.author === "user" || !event2.author) {
|
|
567
575
|
continue;
|
|
@@ -1,36 +1,72 @@
|
|
|
1
1
|
import {createRequire as topLevelCreateRequire} from 'module';
|
|
2
2
|
const require = topLevelCreateRequire(import.meta.url);
|
|
3
|
+
var __create = Object.create;
|
|
3
4
|
var __defProp = Object.defineProperty;
|
|
5
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
8
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
4
9
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
19
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
20
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
21
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
22
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
23
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
24
|
+
mod
|
|
25
|
+
));
|
|
5
26
|
/**
|
|
6
27
|
* @license
|
|
7
28
|
* Copyright 2026 Google LLC
|
|
8
29
|
* SPDX-License-Identifier: Apache-2.0
|
|
9
30
|
*/
|
|
10
|
-
import {
|
|
11
|
-
LockMode,
|
|
12
|
-
MikroORM
|
|
13
|
-
} from "@mikro-orm/core";
|
|
14
31
|
import { randomUUID } from "../utils/env_aware_utils.js";
|
|
15
32
|
import {
|
|
16
33
|
BaseSessionService,
|
|
17
34
|
mergeStates,
|
|
18
35
|
trimTempDeltaState
|
|
19
36
|
} from "./base_session_service.js";
|
|
20
|
-
import {
|
|
21
|
-
ensureDatabaseCreated,
|
|
22
|
-
getConnectionOptionsFromUri,
|
|
23
|
-
validateDatabaseSchemaVersion
|
|
24
|
-
} from "./db/operations.js";
|
|
25
|
-
import {
|
|
26
|
-
ENTITIES,
|
|
27
|
-
StorageAppState,
|
|
28
|
-
StorageEvent,
|
|
29
|
-
StorageSession,
|
|
30
|
-
StorageUserState
|
|
31
|
-
} from "./db/schema.js";
|
|
32
37
|
import { createSession } from "./session.js";
|
|
33
38
|
import { State } from "./state.js";
|
|
39
|
+
let MikroORM;
|
|
40
|
+
let LockMode;
|
|
41
|
+
let ENTITIES;
|
|
42
|
+
let StorageAppState;
|
|
43
|
+
let StorageEvent;
|
|
44
|
+
let StorageSession;
|
|
45
|
+
let StorageUserState;
|
|
46
|
+
let ensureDatabaseCreated;
|
|
47
|
+
let getConnectionOptionsFromUri;
|
|
48
|
+
let validateDatabaseSchemaVersion;
|
|
49
|
+
let mikroOrmLoad;
|
|
50
|
+
function loadMikroOrm() {
|
|
51
|
+
mikroOrmLoad != null ? mikroOrmLoad : mikroOrmLoad = importMikroOrm();
|
|
52
|
+
return mikroOrmLoad;
|
|
53
|
+
}
|
|
54
|
+
__name(loadMikroOrm, "loadMikroOrm");
|
|
55
|
+
async function importMikroOrm() {
|
|
56
|
+
const [core, schema, operations] = await Promise.all([
|
|
57
|
+
Promise.resolve().then(() => __toESM(require("@mikro-orm/core"), 1)),
|
|
58
|
+
Promise.resolve().then(() => __toESM(require("./db/schema.js"), 1)),
|
|
59
|
+
Promise.resolve().then(() => __toESM(require("./db/operations.js"), 1))
|
|
60
|
+
]);
|
|
61
|
+
({ MikroORM, LockMode } = core);
|
|
62
|
+
({ ENTITIES, StorageAppState, StorageEvent, StorageSession, StorageUserState } = schema);
|
|
63
|
+
({
|
|
64
|
+
ensureDatabaseCreated,
|
|
65
|
+
getConnectionOptionsFromUri,
|
|
66
|
+
validateDatabaseSchemaVersion
|
|
67
|
+
} = operations);
|
|
68
|
+
}
|
|
69
|
+
__name(importMikroOrm, "importMikroOrm");
|
|
34
70
|
function isDatabaseConnectionString(uri) {
|
|
35
71
|
if (!uri) {
|
|
36
72
|
return false;
|
|
@@ -48,20 +84,17 @@ const _DatabaseSessionService = class _DatabaseSessionService extends BaseSessio
|
|
|
48
84
|
if (!connectionStringOrOptions.driver) {
|
|
49
85
|
throw new Error("Driver is required when passing options object.");
|
|
50
86
|
}
|
|
51
|
-
this.options =
|
|
52
|
-
...connectionStringOrOptions,
|
|
53
|
-
entities: ENTITIES
|
|
54
|
-
};
|
|
87
|
+
this.options = connectionStringOrOptions;
|
|
55
88
|
}
|
|
56
89
|
}
|
|
57
90
|
async init() {
|
|
58
91
|
if (this.initialized) {
|
|
59
92
|
return;
|
|
60
93
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
this.orm = await MikroORM.init(
|
|
94
|
+
await loadMikroOrm();
|
|
95
|
+
const options = this.connectionString ? await getConnectionOptionsFromUri(this.connectionString) : { ...this.options, entities: ENTITIES };
|
|
96
|
+
this.options = options;
|
|
97
|
+
this.orm = await MikroORM.init(options);
|
|
65
98
|
await ensureDatabaseCreated(this.orm);
|
|
66
99
|
await validateDatabaseSchemaVersion(this.orm);
|
|
67
100
|
this.initialized = true;
|
|
@@ -396,8 +429,8 @@ const _DatabaseSessionService = class _DatabaseSessionService extends BaseSessio
|
|
|
396
429
|
});
|
|
397
430
|
txEm.persist(newStorageEvent);
|
|
398
431
|
}
|
|
399
|
-
await txEm.commit();
|
|
400
432
|
storageSession.updateTime = new Date(event.timestamp);
|
|
433
|
+
txEm.persist([appStateModel, userStateModel, storageSession]);
|
|
401
434
|
const newMergedState = mergeStates(
|
|
402
435
|
appStateModel.state,
|
|
403
436
|
userStateModel.state,
|
|
@@ -28,6 +28,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
28
28
|
* Copyright 2026 Google LLC
|
|
29
29
|
* SPDX-License-Identifier: Apache-2.0
|
|
30
30
|
*/
|
|
31
|
+
import { logger } from "../../utils/logger.js";
|
|
31
32
|
import { loadOptionalPeer } from "../../utils/optional_peer.js";
|
|
32
33
|
import { redactUriPassword } from "../../utils/redact_uri.js";
|
|
33
34
|
import {
|
|
@@ -43,58 +44,264 @@ function driverPeer(packageName, scheme) {
|
|
|
43
44
|
};
|
|
44
45
|
}
|
|
45
46
|
__name(driverPeer, "driverPeer");
|
|
47
|
+
function safeDecode(value) {
|
|
48
|
+
try {
|
|
49
|
+
return decodeURIComponent(value);
|
|
50
|
+
} catch {
|
|
51
|
+
return void 0;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
__name(safeDecode, "safeDecode");
|
|
55
|
+
function decodeOrRaw(raw) {
|
|
56
|
+
var _a;
|
|
57
|
+
return ((_a = safeDecode(raw)) != null ? _a : raw) || void 0;
|
|
58
|
+
}
|
|
59
|
+
__name(decodeOrRaw, "decodeOrRaw");
|
|
60
|
+
function remainingParams(params, exclude) {
|
|
61
|
+
const result = {};
|
|
62
|
+
for (const [key, value] of params.entries()) {
|
|
63
|
+
if (!exclude.includes(key)) {
|
|
64
|
+
result[key] = value;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return result;
|
|
68
|
+
}
|
|
69
|
+
__name(remainingParams, "remainingParams");
|
|
70
|
+
const RESERVED_OPTION_KEYS = [
|
|
71
|
+
"host",
|
|
72
|
+
"schema",
|
|
73
|
+
"socketPath",
|
|
74
|
+
"driver",
|
|
75
|
+
"entities",
|
|
76
|
+
"user",
|
|
77
|
+
"password",
|
|
78
|
+
"dbName",
|
|
79
|
+
"port",
|
|
80
|
+
"clientUrl",
|
|
81
|
+
"driverOptions"
|
|
82
|
+
];
|
|
83
|
+
function parseSocketUri(uri) {
|
|
84
|
+
var _a, _b;
|
|
85
|
+
const schemeEnd = uri.indexOf("://");
|
|
86
|
+
if (schemeEnd === -1) {
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
89
|
+
const afterScheme = uri.slice(schemeEnd + 3);
|
|
90
|
+
const authorityEnd = afterScheme.search(/[/?#]/);
|
|
91
|
+
const authorityRegion = authorityEnd === -1 ? afterScheme : afterScheme.slice(0, authorityEnd);
|
|
92
|
+
const rest = authorityEnd === -1 ? "" : afterScheme.slice(authorityEnd);
|
|
93
|
+
const atIndex = authorityRegion.lastIndexOf("@");
|
|
94
|
+
const rawUserinfo = atIndex === -1 ? void 0 : authorityRegion.slice(0, atIndex);
|
|
95
|
+
const rawAuthority = atIndex === -1 ? authorityRegion : authorityRegion.slice(atIndex + 1);
|
|
96
|
+
const restMatch = /^(\/[^?#]*)?(?:\?([^#]*))?/.exec(rest);
|
|
97
|
+
const rawPath = restMatch == null ? void 0 : restMatch[1];
|
|
98
|
+
const rawQuery = restMatch == null ? void 0 : restMatch[2];
|
|
99
|
+
const params = new URLSearchParams(rawQuery != null ? rawQuery : "");
|
|
100
|
+
const queryHost = params.get("host");
|
|
101
|
+
const decodedAuthority = (_a = safeDecode(rawAuthority)) != null ? _a : "";
|
|
102
|
+
let socketPath;
|
|
103
|
+
let dbNameOverride;
|
|
104
|
+
let matchedBareSocket = false;
|
|
105
|
+
if (queryHost == null ? void 0 : queryHost.startsWith("/")) {
|
|
106
|
+
socketPath = queryHost;
|
|
107
|
+
if (decodedAuthority && !decodedAuthority.startsWith("/")) {
|
|
108
|
+
logger.warn(
|
|
109
|
+
`Connection URI names host "${decodedAuthority}" but the ?host= parameter overrides it with the Unix socket "${queryHost}"; connecting to the socket instead. URI: ${redactUriPassword(uri)}`
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
} else if (decodedAuthority.startsWith("/")) {
|
|
113
|
+
socketPath = decodedAuthority;
|
|
114
|
+
} else if (!decodedAuthority && rawPath) {
|
|
115
|
+
const segments = rawPath.split("/");
|
|
116
|
+
const colonIndex = segments.findIndex((segment) => segment.includes(":"));
|
|
117
|
+
if (colonIndex !== -1) {
|
|
118
|
+
socketPath = segments.slice(0, colonIndex + 1).join("/");
|
|
119
|
+
dbNameOverride = segments[colonIndex + 1];
|
|
120
|
+
matchedBareSocket = true;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
if (!socketPath) {
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
126
|
+
let user;
|
|
127
|
+
let password;
|
|
128
|
+
if (rawUserinfo) {
|
|
129
|
+
const colonIndex = rawUserinfo.indexOf(":");
|
|
130
|
+
const rawUser = colonIndex === -1 ? rawUserinfo : rawUserinfo.slice(0, colonIndex);
|
|
131
|
+
const rawPassword = colonIndex === -1 ? void 0 : rawUserinfo.slice(colonIndex + 1);
|
|
132
|
+
user = rawUser ? decodeOrRaw(rawUser) : void 0;
|
|
133
|
+
password = rawPassword ? decodeOrRaw(rawPassword) : void 0;
|
|
134
|
+
}
|
|
135
|
+
return {
|
|
136
|
+
socketPath,
|
|
137
|
+
user,
|
|
138
|
+
password,
|
|
139
|
+
dbName: matchedBareSocket ? dbNameOverride ? decodeOrRaw(dbNameOverride) : void 0 : rawPath ? decodeOrRaw(rawPath.slice(1)) : void 0,
|
|
140
|
+
schema: (_b = params.get("schema")) != null ? _b : void 0,
|
|
141
|
+
extraParams: remainingParams(params, RESERVED_OPTION_KEYS)
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
__name(parseSocketUri, "parseSocketUri");
|
|
145
|
+
function buildPostgresOptions(uri, driver) {
|
|
146
|
+
let parsedUrl;
|
|
147
|
+
try {
|
|
148
|
+
parsedUrl = new URL(uri);
|
|
149
|
+
} catch {
|
|
150
|
+
parsedUrl = null;
|
|
151
|
+
}
|
|
152
|
+
if (parsedUrl) {
|
|
153
|
+
const queryHost = parsedUrl.searchParams.get("host");
|
|
154
|
+
const decodedHostname = parsedUrl.hostname ? safeDecode(parsedUrl.hostname) : void 0;
|
|
155
|
+
const socketPath = (queryHost == null ? void 0 : queryHost.startsWith("/")) ? queryHost : (decodedHostname == null ? void 0 : decodedHostname.startsWith("/")) ? decodedHostname : void 0;
|
|
156
|
+
if (socketPath) {
|
|
157
|
+
if ((queryHost == null ? void 0 : queryHost.startsWith("/")) && decodedHostname && !decodedHostname.startsWith("/")) {
|
|
158
|
+
logger.warn(
|
|
159
|
+
`Connection URI names host "${decodedHostname}" but the ?host= parameter overrides it with the Unix socket "${queryHost}"; connecting to the socket instead. URI: ${redactUriPassword(uri)}`
|
|
160
|
+
);
|
|
161
|
+
}
|
|
162
|
+
const schema = parsedUrl.searchParams.get("schema");
|
|
163
|
+
const extraParams = remainingParams(
|
|
164
|
+
parsedUrl.searchParams,
|
|
165
|
+
RESERVED_OPTION_KEYS
|
|
166
|
+
);
|
|
167
|
+
return {
|
|
168
|
+
entities: ENTITIES,
|
|
169
|
+
driver,
|
|
170
|
+
host: socketPath,
|
|
171
|
+
user: parsedUrl.username ? decodeOrRaw(parsedUrl.username) : void 0,
|
|
172
|
+
password: parsedUrl.password ? decodeOrRaw(parsedUrl.password) : void 0,
|
|
173
|
+
dbName: decodeOrRaw(parsedUrl.pathname.slice(1)),
|
|
174
|
+
...parsedUrl.port ? { port: Number(parsedUrl.port) } : {},
|
|
175
|
+
...schema ? { schema } : {},
|
|
176
|
+
driverOptions: extraParams
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
return { entities: ENTITIES, clientUrl: uri, driver };
|
|
180
|
+
}
|
|
181
|
+
const socket = parseSocketUri(uri);
|
|
182
|
+
if (socket) {
|
|
183
|
+
return {
|
|
184
|
+
entities: ENTITIES,
|
|
185
|
+
driver,
|
|
186
|
+
host: socket.socketPath,
|
|
187
|
+
user: socket.user,
|
|
188
|
+
password: socket.password,
|
|
189
|
+
dbName: socket.dbName,
|
|
190
|
+
...socket.schema ? { schema: socket.schema } : {},
|
|
191
|
+
driverOptions: socket.extraParams
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
throw new Error(
|
|
195
|
+
`Unrecognized postgres connection URI: ${redactUriPassword(uri)}`
|
|
196
|
+
);
|
|
197
|
+
}
|
|
198
|
+
__name(buildPostgresOptions, "buildPostgresOptions");
|
|
199
|
+
function buildMySqlFamilyOptions(uri, driver) {
|
|
200
|
+
let parsedUrl = null;
|
|
201
|
+
try {
|
|
202
|
+
parsedUrl = new URL(uri);
|
|
203
|
+
} catch {
|
|
204
|
+
}
|
|
205
|
+
if (parsedUrl) {
|
|
206
|
+
const queryHost = parsedUrl.searchParams.get("host");
|
|
207
|
+
const decodedHostname = parsedUrl.hostname ? safeDecode(parsedUrl.hostname) : void 0;
|
|
208
|
+
const socketPath = (queryHost == null ? void 0 : queryHost.startsWith("/")) ? queryHost : (decodedHostname == null ? void 0 : decodedHostname.startsWith("/")) ? decodedHostname : void 0;
|
|
209
|
+
if (socketPath) {
|
|
210
|
+
if ((queryHost == null ? void 0 : queryHost.startsWith("/")) && decodedHostname && !decodedHostname.startsWith("/")) {
|
|
211
|
+
logger.warn(
|
|
212
|
+
`Connection URI names host "${decodedHostname}" but the ?host= parameter overrides it with the Unix socket "${queryHost}"; connecting to the socket instead. URI: ${redactUriPassword(uri)}`
|
|
213
|
+
);
|
|
214
|
+
}
|
|
215
|
+
const schema = parsedUrl.searchParams.get("schema");
|
|
216
|
+
const extraParams = remainingParams(
|
|
217
|
+
parsedUrl.searchParams,
|
|
218
|
+
RESERVED_OPTION_KEYS
|
|
219
|
+
);
|
|
220
|
+
return {
|
|
221
|
+
entities: ENTITIES,
|
|
222
|
+
driver,
|
|
223
|
+
user: parsedUrl.username ? decodeOrRaw(parsedUrl.username) : void 0,
|
|
224
|
+
password: parsedUrl.password ? decodeOrRaw(parsedUrl.password) : void 0,
|
|
225
|
+
dbName: decodeOrRaw(parsedUrl.pathname.slice(1)),
|
|
226
|
+
driverOptions: {
|
|
227
|
+
socketPath,
|
|
228
|
+
...schema ? { schema } : {},
|
|
229
|
+
...extraParams
|
|
230
|
+
}
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
return { entities: ENTITIES, clientUrl: uri, driver };
|
|
234
|
+
}
|
|
235
|
+
const socket = parseSocketUri(uri);
|
|
236
|
+
if (socket) {
|
|
237
|
+
return {
|
|
238
|
+
entities: ENTITIES,
|
|
239
|
+
driver,
|
|
240
|
+
user: socket.user,
|
|
241
|
+
password: socket.password,
|
|
242
|
+
dbName: socket.dbName,
|
|
243
|
+
driverOptions: {
|
|
244
|
+
socketPath: socket.socketPath,
|
|
245
|
+
...socket.schema ? { schema: socket.schema } : {},
|
|
246
|
+
...socket.extraParams
|
|
247
|
+
}
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
throw new Error(
|
|
251
|
+
`Unrecognized MySQL/MariaDB connection URI: ${redactUriPassword(uri)}`
|
|
252
|
+
);
|
|
253
|
+
}
|
|
254
|
+
__name(buildMySqlFamilyOptions, "buildMySqlFamilyOptions");
|
|
46
255
|
async function getConnectionOptionsFromUri(uri) {
|
|
47
|
-
let driver;
|
|
48
256
|
if (uri.startsWith("postgres://") || uri.startsWith("postgresql://")) {
|
|
49
257
|
const { PostgreSqlDriver } = await loadOptionalPeer(
|
|
50
258
|
driverPeer("@mikro-orm/postgresql", "postgres"),
|
|
51
259
|
() => Promise.resolve().then(() => __toESM(require("@mikro-orm/postgresql"), 1))
|
|
52
260
|
);
|
|
53
|
-
|
|
54
|
-
}
|
|
261
|
+
return buildPostgresOptions(uri, PostgreSqlDriver);
|
|
262
|
+
}
|
|
263
|
+
if (uri.startsWith("mysql://")) {
|
|
55
264
|
const { MySqlDriver } = await loadOptionalPeer(
|
|
56
265
|
driverPeer("@mikro-orm/mysql", "mysql"),
|
|
57
266
|
() => Promise.resolve().then(() => __toESM(require("@mikro-orm/mysql"), 1))
|
|
58
267
|
);
|
|
59
|
-
|
|
60
|
-
}
|
|
268
|
+
return buildMySqlFamilyOptions(uri, MySqlDriver);
|
|
269
|
+
}
|
|
270
|
+
if (uri.startsWith("mariadb://")) {
|
|
61
271
|
const { MariaDbDriver } = await loadOptionalPeer(
|
|
62
272
|
driverPeer("@mikro-orm/mariadb", "mariadb"),
|
|
63
273
|
() => Promise.resolve().then(() => __toESM(require("@mikro-orm/mariadb"), 1))
|
|
64
274
|
);
|
|
65
|
-
|
|
66
|
-
}
|
|
275
|
+
return buildMySqlFamilyOptions(uri, MariaDbDriver);
|
|
276
|
+
}
|
|
277
|
+
if (uri.startsWith("sqlite://")) {
|
|
67
278
|
const { SqliteDriver } = await loadOptionalPeer(
|
|
68
279
|
driverPeer("@mikro-orm/sqlite", "sqlite"),
|
|
69
280
|
() => Promise.resolve().then(() => __toESM(require("@mikro-orm/sqlite"), 1))
|
|
70
281
|
);
|
|
71
|
-
|
|
72
|
-
|
|
282
|
+
return {
|
|
283
|
+
entities: ENTITIES,
|
|
284
|
+
dbName: uri === "sqlite://:memory:" ? ":memory:" : uri.substring("sqlite://".length),
|
|
285
|
+
driver: SqliteDriver
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
|
+
if (uri.startsWith("mssql://")) {
|
|
73
289
|
const { MsSqlDriver } = await loadOptionalPeer(
|
|
74
290
|
driverPeer("@mikro-orm/mssql", "mssql"),
|
|
75
291
|
() => Promise.resolve().then(() => __toESM(require("@mikro-orm/mssql"), 1))
|
|
76
292
|
);
|
|
77
|
-
driver = MsSqlDriver;
|
|
78
|
-
} else {
|
|
79
|
-
throw new Error(`Unsupported database URI: ${redactUriPassword(uri)}`);
|
|
80
|
-
}
|
|
81
|
-
if (uri.startsWith("sqlite://")) {
|
|
82
293
|
return {
|
|
83
294
|
entities: ENTITIES,
|
|
84
|
-
|
|
85
|
-
driver
|
|
295
|
+
clientUrl: uri,
|
|
296
|
+
driver: MsSqlDriver
|
|
86
297
|
};
|
|
87
298
|
}
|
|
88
|
-
|
|
89
|
-
entities: ENTITIES,
|
|
90
|
-
clientUrl: uri,
|
|
91
|
-
driver
|
|
92
|
-
};
|
|
299
|
+
throw new Error(`Unsupported database URI: ${redactUriPassword(uri)}`);
|
|
93
300
|
}
|
|
94
301
|
__name(getConnectionOptionsFromUri, "getConnectionOptionsFromUri");
|
|
95
302
|
async function ensureDatabaseCreated(orm) {
|
|
96
303
|
await orm.schema.ensureDatabase();
|
|
97
|
-
await orm.schema.
|
|
304
|
+
await orm.schema.update({ safe: true });
|
|
98
305
|
}
|
|
99
306
|
__name(ensureDatabaseCreated, "ensureDatabaseCreated");
|
|
100
307
|
async function validateDatabaseSchemaVersion(orm) {
|