@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
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* HTTP error types conforming to OpenTelemetry semantics.
|
|
8
|
+
*
|
|
9
|
+
* The string values populate the `error.type` span attribute, so they are
|
|
10
|
+
* observable outside the process and must stay identical to the adk-python
|
|
11
|
+
* `ToolErrorType` members.
|
|
12
|
+
*/
|
|
13
|
+
export declare enum ToolErrorType {
|
|
14
|
+
BAD_REQUEST = "BAD_REQUEST",
|
|
15
|
+
UNAUTHORIZED = "UNAUTHORIZED",
|
|
16
|
+
FORBIDDEN = "FORBIDDEN",
|
|
17
|
+
NOT_FOUND = "NOT_FOUND",
|
|
18
|
+
REQUEST_TIMEOUT = "REQUEST_TIMEOUT",
|
|
19
|
+
INTERNAL_SERVER_ERROR = "INTERNAL_SERVER_ERROR",
|
|
20
|
+
BAD_GATEWAY = "BAD_GATEWAY",
|
|
21
|
+
SERVICE_UNAVAILABLE = "SERVICE_UNAVAILABLE",
|
|
22
|
+
GATEWAY_TIMEOUT = "GATEWAY_TIMEOUT"
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Represents an error that occurs during the execution of a tool.
|
|
26
|
+
*/
|
|
27
|
+
export declare class ToolExecutionError extends Error {
|
|
28
|
+
readonly errorType?: (ToolErrorType | string) | undefined;
|
|
29
|
+
/**
|
|
30
|
+
* @param message A message describing the error.
|
|
31
|
+
* @param errorType The semantic error type (e.g.
|
|
32
|
+
* {@link ToolErrorType.REQUEST_TIMEOUT} or `'500'`). Used to populate the
|
|
33
|
+
* `error.type` span attribute in OpenTelemetry traces.
|
|
34
|
+
*/
|
|
35
|
+
constructor(message: string, errorType?: (ToolErrorType | string) | undefined);
|
|
36
|
+
}
|
|
@@ -79,6 +79,19 @@ export interface EventActions {
|
|
|
79
79
|
* @returns A fully populated {@link EventActions} object.
|
|
80
80
|
*/
|
|
81
81
|
export declare function createEventActions(state?: Partial<EventActions>): EventActions;
|
|
82
|
+
/**
|
|
83
|
+
* Returns whether the given {@link EventActions} still holds only its default
|
|
84
|
+
* values, i.e. the event carries no state, artifact, auth, confirmation,
|
|
85
|
+
* transfer, escalation or summarization signal.
|
|
86
|
+
*
|
|
87
|
+
* An actions object is considered non-default when any dictionary field has at
|
|
88
|
+
* least one entry, or when any scalar field has been explicitly set (including
|
|
89
|
+
* being set to `false`).
|
|
90
|
+
*
|
|
91
|
+
* @param actions - The actions to inspect.
|
|
92
|
+
* @returns `true` when every field is at its default value.
|
|
93
|
+
*/
|
|
94
|
+
export declare function isDefaultEventActions(actions: EventActions): boolean;
|
|
82
95
|
/**
|
|
83
96
|
* Merges a list of {@link EventActions} objects into a single
|
|
84
97
|
* {@link EventActions} object.
|
package/dist/types/index.d.ts
CHANGED
|
@@ -11,17 +11,38 @@ export { GcsArtifactService } from './artifacts/gcs_artifact_service.js';
|
|
|
11
11
|
export { getArtifactServiceFromUri } from './artifacts/registry.js';
|
|
12
12
|
export { AgentEngineSandboxCodeExecutor, type AgentEngineSandboxCodeExecutorOptions, } from './code_executors/agent_engine_sandbox_code_executor.js';
|
|
13
13
|
export { CodeExecutionLanguage } from './code_executors/code_execution_utils.js';
|
|
14
|
+
export { ContainerCodeExecutor, type ContainerCodeExecutorOptions, } from './code_executors/container_code_executor.js';
|
|
14
15
|
export { UnsafeLocalCodeExecutor, type UnsafeLocalCodeExecutorOptions, } from './code_executors/unsafe_local_code_executor.js';
|
|
15
16
|
export * from './common.js';
|
|
16
17
|
export { LocalEnvironment } from './environment/local_environment.js';
|
|
17
18
|
export type { LocalEnvironmentOptions } from './environment/local_environment.js';
|
|
19
|
+
export { VertexAiMemoryBankService } from './memory/vertex_ai_memory_bank_service.js';
|
|
20
|
+
export type { VertexAiMemoryBankServiceOptions } from './memory/vertex_ai_memory_bank_service.js';
|
|
21
|
+
export { VertexAiRagMemoryService } from './memory/vertex_ai_rag_memory_service.js';
|
|
22
|
+
export type { VertexAiRagMemoryServiceOptions } from './memory/vertex_ai_rag_memory_service.js';
|
|
18
23
|
export { DatabaseSessionService } from './sessions/database_session_service.js';
|
|
19
24
|
export { getSessionServiceFromUri } from './sessions/registry.js';
|
|
20
25
|
export { VertexAiSessionService } from './sessions/vertex_ai_session_service.js';
|
|
21
26
|
export type { VertexAiCreateSessionRequest, VertexAiSessionServiceOptions, } from './sessions/vertex_ai_session_service.js';
|
|
22
|
-
export {
|
|
27
|
+
export { GCPSkillRegistry } from './skills/gcp_skill_registry.js';
|
|
28
|
+
export type { GCPSkillRegistryOptions } from './skills/gcp_skill_registry.js';
|
|
29
|
+
export { loadAllSkillsInDir, loadSkillFromDir, loadSkillFromZipBuffer, validateSkillDir, } from './skills/loader.js';
|
|
30
|
+
export { LOAD_WEB_PAGE, loadWebPage } from './tools/load_web_page.js';
|
|
31
|
+
export type { LoadWebPageOptions } from './tools/load_web_page.js';
|
|
32
|
+
export { OpenApiSpecParser } from './tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js';
|
|
33
|
+
export type { OperationEndpoint, ParsedOperation, } from './tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js';
|
|
34
|
+
export { OperationParser } from './tools/openapi_tool/openapi_spec_parser/operation_parser.js';
|
|
35
|
+
export type { ApiParameter } from './tools/openapi_tool/openapi_spec_parser/operation_parser.js';
|
|
36
|
+
export { ToolAuthHandler } from './tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js';
|
|
37
|
+
export type { AuthPreparationResult } from './tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js';
|
|
38
|
+
export { OpenAPIToolset } from './tools/openapi_tool/openapi_toolset.js';
|
|
39
|
+
export { createRestApiTool, RestApiTool, } from './tools/openapi_tool/rest_api_tool.js';
|
|
40
|
+
export { FilesRetrieval } from './tools/retrieval/files_retrieval.js';
|
|
41
|
+
export type { FilesRetrievalConstructorParams, FilesRetrievalParams, } from './tools/retrieval/files_retrieval.js';
|
|
42
|
+
export { LoadSkillResourceTool } from './tools/skill/load_skill_resource_tool.js';
|
|
23
43
|
export { RunSkillInlineScriptErrorCode, RunSkillInlineScriptTool, } from './tools/skill/run_skill_inline_script_tool.js';
|
|
24
44
|
export { RunSkillScriptTool } from './tools/skill/run_skill_script_tool.js';
|
|
45
|
+
export { SkillToolset } from './tools/skill/skill_toolset.js';
|
|
25
46
|
export * from './integrations/agent_registry/agent_registry.js';
|
|
26
47
|
export * from './telemetry/google_cloud.js';
|
|
27
48
|
export * from './telemetry/setup.js';
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Session } from '../sessions/session.js';
|
|
7
|
+
/** The RAG file a chunk came from, identified by its display name. */
|
|
8
|
+
export interface SourceIdentity {
|
|
9
|
+
appName: string;
|
|
10
|
+
userId: string;
|
|
11
|
+
sessionId: string;
|
|
12
|
+
}
|
|
13
|
+
/** One line of a stored transcript. */
|
|
14
|
+
export interface TranscriptEvent {
|
|
15
|
+
author: string;
|
|
16
|
+
/** Epoch milliseconds. The transcript itself stores seconds. */
|
|
17
|
+
timestamp: number;
|
|
18
|
+
text: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Builds the `displayName` under which a session's transcript is stored.
|
|
22
|
+
*
|
|
23
|
+
* The identifiers are encoded because they may contain dots, which the legacy
|
|
24
|
+
* dot-delimited form cannot represent unambiguously.
|
|
25
|
+
*/
|
|
26
|
+
export declare function buildSourceDisplayName(appName: string, userId: string, sessionId: string): string;
|
|
27
|
+
/**
|
|
28
|
+
* Recovers the identifiers from a `displayName`, or returns `undefined` when
|
|
29
|
+
* the name is malformed or ambiguous.
|
|
30
|
+
*
|
|
31
|
+
* Two forms are read. The prefixed form is the one both this service and
|
|
32
|
+
* adk-python write, so a corpus either writes stays readable by the other. The
|
|
33
|
+
* unprefixed `{app}.{user}.{session}` form is read only: adk-python wrote it
|
|
34
|
+
* before it adopted the prefix, and no writer here emits it.
|
|
35
|
+
*
|
|
36
|
+
* A dot-delimited name with four or more parts is ambiguous:
|
|
37
|
+
* `demo.alice.smith.s1` names either user `alice` or user `alice.smith`.
|
|
38
|
+
* Accepting it would hand one user another user's memories, so it is rejected.
|
|
39
|
+
*/
|
|
40
|
+
export declare function parseSourceDisplayName(displayName: string): SourceIdentity | undefined;
|
|
41
|
+
/**
|
|
42
|
+
* Renders a session as the newline-delimited JSON transcript that both ADK
|
|
43
|
+
* implementations read, one object per text-bearing event.
|
|
44
|
+
*
|
|
45
|
+
* The timestamp is written in seconds because adk-python writes seconds; a
|
|
46
|
+
* corpus is shared between the two.
|
|
47
|
+
*/
|
|
48
|
+
export declare function serializeSessionTranscript(session: Session): string;
|
|
49
|
+
/**
|
|
50
|
+
* Reads the events out of a retrieved transcript chunk.
|
|
51
|
+
*
|
|
52
|
+
* A line that is not JSON is skipped: a corpus may hold files this service
|
|
53
|
+
* never wrote.
|
|
54
|
+
*/
|
|
55
|
+
export declare function parseTranscriptEvents(text: string): TranscriptEvent[];
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { RagRetrievalConfig, VertexRagStore } from '@google/genai';
|
|
7
|
+
/** One file in a RAG corpus. */
|
|
8
|
+
export interface RagFile {
|
|
9
|
+
/**
|
|
10
|
+
* Full resource name,
|
|
11
|
+
* `projects/{project}/locations/{location}/ragCorpora/{corpus}/ragFiles/{file}`.
|
|
12
|
+
*/
|
|
13
|
+
name?: string;
|
|
14
|
+
/** Caller-supplied label for the file. */
|
|
15
|
+
displayName?: string;
|
|
16
|
+
}
|
|
17
|
+
/** One page of a `ragFiles` listing. */
|
|
18
|
+
export interface ListRagFilesResponse {
|
|
19
|
+
ragFiles?: RagFile[];
|
|
20
|
+
nextPageToken?: string;
|
|
21
|
+
}
|
|
22
|
+
/** One chunk returned by a retrieval query. */
|
|
23
|
+
export interface RagContext {
|
|
24
|
+
/** The `displayName` of the RAG file this chunk came from. */
|
|
25
|
+
sourceDisplayName?: string;
|
|
26
|
+
text?: string;
|
|
27
|
+
}
|
|
28
|
+
/** The response of a retrieval query. */
|
|
29
|
+
export interface RetrieveContextsResponse {
|
|
30
|
+
contexts?: {
|
|
31
|
+
contexts?: RagContext[];
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
/** Parameters of {@link RagApiClient.listRagFiles}. */
|
|
35
|
+
export interface ListRagFilesParams {
|
|
36
|
+
ragCorpus: string;
|
|
37
|
+
pageSize: number;
|
|
38
|
+
pageToken?: string;
|
|
39
|
+
}
|
|
40
|
+
/** Parameters of {@link RagApiClient.uploadRagFile}. */
|
|
41
|
+
export interface UploadRagFileParams {
|
|
42
|
+
ragCorpus: string;
|
|
43
|
+
displayName: string;
|
|
44
|
+
content: string;
|
|
45
|
+
}
|
|
46
|
+
/** Parameters of {@link RagApiClient.retrieveContexts}. */
|
|
47
|
+
export interface RetrieveContextsParams {
|
|
48
|
+
/** `projects/{project}/locations/{location}`. */
|
|
49
|
+
parent: string;
|
|
50
|
+
vertexRagStore: VertexRagStore;
|
|
51
|
+
/** `@google/genai` models the store and the config, but not the query. */
|
|
52
|
+
query: {
|
|
53
|
+
text: string;
|
|
54
|
+
ragRetrievalConfig?: RagRetrievalConfig;
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* The file and retrieval calls of the Vertex AI RAG Engine.
|
|
59
|
+
*
|
|
60
|
+
* `VertexRagApiClient` is the implementation; the interface is the seam
|
|
61
|
+
* a test substitutes.
|
|
62
|
+
*/
|
|
63
|
+
export interface RagApiClient {
|
|
64
|
+
listRagFiles(params: ListRagFilesParams): Promise<ListRagFilesResponse>;
|
|
65
|
+
uploadRagFile(params: UploadRagFileParams): Promise<void>;
|
|
66
|
+
retrieveContexts(params: RetrieveContextsParams): Promise<RetrieveContextsResponse>;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* A {@link RagApiClient} over the Vertex AI RAG Engine REST API.
|
|
70
|
+
*
|
|
71
|
+
* The calls go to the REST API directly because neither
|
|
72
|
+
* `@google-cloud/vertexai` nor `@google/genai` ships a RAG client. Requests
|
|
73
|
+
* carry Application Default Credentials.
|
|
74
|
+
*/
|
|
75
|
+
export declare class VertexRagApiClient implements RagApiClient {
|
|
76
|
+
private readonly host;
|
|
77
|
+
private readonly auth;
|
|
78
|
+
constructor(options: {
|
|
79
|
+
location: string;
|
|
80
|
+
});
|
|
81
|
+
/** Lists one page of the files in a corpus. */
|
|
82
|
+
listRagFiles(params: ListRagFilesParams): Promise<ListRagFilesResponse>;
|
|
83
|
+
/** Uploads `content` into a corpus as one RAG file. */
|
|
84
|
+
uploadRagFile(params: UploadRagFileParams): Promise<void>;
|
|
85
|
+
/** Runs a retrieval query over a corpus. */
|
|
86
|
+
retrieveContexts(params: RetrieveContextsParams): Promise<RetrieveContextsResponse>;
|
|
87
|
+
private authHeaders;
|
|
88
|
+
private send;
|
|
89
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Session } from '../sessions/session.js';
|
|
7
|
+
import { BaseMemoryService, SearchMemoryRequest, SearchMemoryResponse } from './base_memory_service.js';
|
|
8
|
+
import { RagApiClient } from './vertex_ai_rag_api.js';
|
|
9
|
+
/** Options for {@link VertexAiRagMemoryService}. */
|
|
10
|
+
export interface VertexAiRagMemoryServiceOptions {
|
|
11
|
+
/**
|
|
12
|
+
* `projects/{project}/locations/{location}/ragCorpora/{ragCorpusId}`, or a
|
|
13
|
+
* bare `{ragCorpusId}` when the project and the location are resolvable.
|
|
14
|
+
*/
|
|
15
|
+
ragCorpus: string;
|
|
16
|
+
/** Number of contexts to retrieve. Sent as `ragRetrievalConfig.topK`. */
|
|
17
|
+
similarityTopK?: number;
|
|
18
|
+
/** Only return contexts below this vector distance. Defaults to 10. */
|
|
19
|
+
vectorDistanceThreshold?: number;
|
|
20
|
+
/** Defaults to `process.env.GOOGLE_CLOUD_PROJECT`. */
|
|
21
|
+
projectId?: string;
|
|
22
|
+
/** Defaults to `process.env.GOOGLE_CLOUD_LOCATION`. */
|
|
23
|
+
location?: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* A {@link BaseMemoryService} backed by a Vertex AI RAG Engine corpus.
|
|
27
|
+
*
|
|
28
|
+
* A finished session is uploaded as one RAG file holding its transcript, and a
|
|
29
|
+
* search retrieves the chunks of those transcripts that match the query. Only
|
|
30
|
+
* `addSessionToMemory` and `searchMemory` are supported, matching adk-python.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```ts
|
|
34
|
+
* const memoryService = new VertexAiRagMemoryService({
|
|
35
|
+
* ragCorpus: 'projects/my-project/locations/us-central1/ragCorpora/12345',
|
|
36
|
+
* similarityTopK: 5,
|
|
37
|
+
* });
|
|
38
|
+
* await memoryService.addSessionToMemory(session);
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export declare class VertexAiRagMemoryService implements BaseMemoryService {
|
|
42
|
+
private readonly ragCorpus;
|
|
43
|
+
private readonly projectId;
|
|
44
|
+
private readonly location;
|
|
45
|
+
private readonly similarityTopK?;
|
|
46
|
+
private readonly vectorDistanceThreshold;
|
|
47
|
+
private readonly ragApiClient;
|
|
48
|
+
/**
|
|
49
|
+
* @param ragApiClient An internal seam for tests to substitute a fake REST
|
|
50
|
+
* client. Production callers omit it and get a client for the resolved
|
|
51
|
+
* location.
|
|
52
|
+
* @internal
|
|
53
|
+
*/
|
|
54
|
+
constructor(options: VertexAiRagMemoryServiceOptions, ragApiClient?: RagApiClient);
|
|
55
|
+
/** Uploads the session's transcript into the corpus as one RAG file. */
|
|
56
|
+
addSessionToMemory(session: Session): Promise<void>;
|
|
57
|
+
searchMemory(request: SearchMemoryRequest): Promise<SearchMemoryResponse>;
|
|
58
|
+
/**
|
|
59
|
+
* Returns the ids of the corpus files owned by the requesting app and user,
|
|
60
|
+
* or `undefined` when the corpus could not be listed within the page budget.
|
|
61
|
+
*
|
|
62
|
+
* An `undefined` result retrieves over the whole corpus. Narrowing only
|
|
63
|
+
* improves ranking and transfer size, and every returned context is filtered
|
|
64
|
+
* by tenant anyway. Scoping to a partial listing would instead hide the
|
|
65
|
+
* caller's own memories.
|
|
66
|
+
*/
|
|
67
|
+
private listTenantRagFileIds;
|
|
68
|
+
}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { BaseLlm } from './base_llm.js';
|
|
7
|
+
import type { BaseLlmConnection } from './base_llm_connection.js';
|
|
8
|
+
import type { LlmRequest } from './llm_request.js';
|
|
9
|
+
import type { LlmResponse } from './llm_response.js';
|
|
10
|
+
export { stripAdkIdentityPreamble } from './chrome_prompt_utils.js';
|
|
11
|
+
/**
|
|
12
|
+
* An ADK `BaseLlm` backed by Chrome's built-in on-device model, reached through
|
|
13
|
+
* the Prompt API (`globalThis.LanguageModel`).
|
|
14
|
+
*
|
|
15
|
+
* ## What this adapter is for
|
|
16
|
+
*
|
|
17
|
+
* ADK's agent loop is built around a model that emits *function calls*: the
|
|
18
|
+
* Runner inspects them, applies before/after-tool callbacks, executes the tool,
|
|
19
|
+
* appends a function response and loops. Chrome's Prompt API offers `prompt()`
|
|
20
|
+
* and `promptStreaming()`, which return a plain string.
|
|
21
|
+
*
|
|
22
|
+
* Chrome does expose a `tools` option on `LanguageModel.create()`, but its
|
|
23
|
+
* contract differs in a way that matters here: each tool carries an `execute()`
|
|
24
|
+
* callback and *the browser runs the tool itself*, feeding the result back into
|
|
25
|
+
* the model internally. The caller receives only the final text. That takes ADK
|
|
26
|
+
* out of its own loop — no tool callbacks, no per-call events, no confirmation
|
|
27
|
+
* hooks, no session state updates and nothing to trace.
|
|
28
|
+
*
|
|
29
|
+
* So this adapter synthesises function calling out of constrained decoding
|
|
30
|
+
* instead. Tools are described in the system prompt, and the reply is forced to
|
|
31
|
+
* match a JSON Schema whose branches are "final answer" or "call this exact
|
|
32
|
+
* tool with these exact arguments" (via `responseConstraint`). The reply is
|
|
33
|
+
* parsed back into genai `functionCall` parts, and ADK stays in control.
|
|
34
|
+
*
|
|
35
|
+
* ## Session strategy
|
|
36
|
+
*
|
|
37
|
+
* ADK is stateless per request: it re-sends the whole conversation every time.
|
|
38
|
+
* Chrome sessions are stateful, and `create()` is far more expensive than
|
|
39
|
+
* `prompt()`. This adapter therefore keeps one warm "base" session holding only
|
|
40
|
+
* the system prompt and `clone()`s it per request, destroying the clone after
|
|
41
|
+
* the turn. The conversation history rides in the prompt input.
|
|
42
|
+
*
|
|
43
|
+
* ## Availability
|
|
44
|
+
*
|
|
45
|
+
* The Prompt API is exposed to documents, not to workers, and it is desktop
|
|
46
|
+
* only with a substantial hardware floor. Call {@link availability} before
|
|
47
|
+
* relying on it. `create()` also requires a user gesture while the model is
|
|
48
|
+
* still downloading, so build the session in response to a user action.
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```ts
|
|
52
|
+
* const llm = new ChromeBuiltInLlm();
|
|
53
|
+
* if ((await llm.availability()) === 'unavailable') {
|
|
54
|
+
* // Fall back to a hosted model.
|
|
55
|
+
* }
|
|
56
|
+
* const agent = new LlmAgent({name: 'search', model: llm, tools: [...]});
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
/** Whether the on-device model can serve a request right now. */
|
|
60
|
+
export type ChromeModelAvailability = 'unavailable' | 'downloadable' | 'downloading' | 'available';
|
|
61
|
+
/** A modality declared at session creation. */
|
|
62
|
+
export interface ChromeExpectedModality {
|
|
63
|
+
type: 'text' | 'image' | 'audio';
|
|
64
|
+
languages?: string[];
|
|
65
|
+
}
|
|
66
|
+
/** One piece of a multimodal message. */
|
|
67
|
+
export interface ChromeMessageContent {
|
|
68
|
+
type: 'text' | 'image' | 'audio';
|
|
69
|
+
value: string;
|
|
70
|
+
}
|
|
71
|
+
/** A single turn handed to `prompt()`. */
|
|
72
|
+
export interface ChromeMessage {
|
|
73
|
+
role: 'system' | 'user' | 'assistant';
|
|
74
|
+
content: string | ChromeMessageContent[];
|
|
75
|
+
}
|
|
76
|
+
/** Emits `downloadprogress` while the model is fetched on first use. */
|
|
77
|
+
export interface ChromeCreateMonitor {
|
|
78
|
+
addEventListener(type: 'downloadprogress', listener: (event: {
|
|
79
|
+
loaded: number;
|
|
80
|
+
}) => void): void;
|
|
81
|
+
}
|
|
82
|
+
/** Options accepted by `LanguageModel.availability()`. */
|
|
83
|
+
export interface ChromeCreateCoreOptions {
|
|
84
|
+
expectedInputs?: ChromeExpectedModality[];
|
|
85
|
+
expectedOutputs?: ChromeExpectedModality[];
|
|
86
|
+
}
|
|
87
|
+
/** Options accepted by `LanguageModel.create()`. */
|
|
88
|
+
export interface ChromeCreateOptions extends ChromeCreateCoreOptions {
|
|
89
|
+
signal?: AbortSignal;
|
|
90
|
+
initialPrompts?: ChromeMessage[];
|
|
91
|
+
monitor?: (monitor: ChromeCreateMonitor) => void;
|
|
92
|
+
temperature?: number;
|
|
93
|
+
topK?: number;
|
|
94
|
+
}
|
|
95
|
+
/** Options accepted by `prompt()` and `promptStreaming()`. */
|
|
96
|
+
export interface ChromePromptOptions {
|
|
97
|
+
signal?: AbortSignal;
|
|
98
|
+
responseConstraint?: Record<string, unknown>;
|
|
99
|
+
omitResponseConstraintInput?: boolean;
|
|
100
|
+
}
|
|
101
|
+
/** A live Prompt API session. */
|
|
102
|
+
export interface ChromeLanguageModelSession {
|
|
103
|
+
prompt(input: string | ChromeMessage[], options?: ChromePromptOptions): Promise<string>;
|
|
104
|
+
promptStreaming(input: string | ChromeMessage[], options?: ChromePromptOptions): ReadableStream<string>;
|
|
105
|
+
clone(options?: {
|
|
106
|
+
signal?: AbortSignal;
|
|
107
|
+
}): Promise<ChromeLanguageModelSession>;
|
|
108
|
+
destroy?(): void;
|
|
109
|
+
addEventListener?(type: 'contextoverflow', listener: () => void): void;
|
|
110
|
+
readonly contextUsage?: number;
|
|
111
|
+
readonly contextWindow?: number;
|
|
112
|
+
}
|
|
113
|
+
/** The `LanguageModel` global itself. */
|
|
114
|
+
export interface ChromeLanguageModelFactory {
|
|
115
|
+
availability(options?: ChromeCreateCoreOptions): Promise<ChromeModelAvailability>;
|
|
116
|
+
create(options?: ChromeCreateOptions): Promise<ChromeLanguageModelSession>;
|
|
117
|
+
}
|
|
118
|
+
/** Timing and context signals emitted while the adapter runs. */
|
|
119
|
+
export interface ChromeBuiltInDiagnostic {
|
|
120
|
+
phase: 'create' | 'prompt' | 'parse-fallback' | 'context-overflow';
|
|
121
|
+
ms?: number;
|
|
122
|
+
contextUsage?: number;
|
|
123
|
+
contextWindow?: number;
|
|
124
|
+
note?: string;
|
|
125
|
+
}
|
|
126
|
+
/** Constructor options for {@link ChromeBuiltInLlm}. */
|
|
127
|
+
export interface ChromeBuiltInLlmParams {
|
|
128
|
+
/** Model id used for registry matching. Defaults to `chrome-on-device`. */
|
|
129
|
+
model?: string;
|
|
130
|
+
/**
|
|
131
|
+
* Injects an alternative implementation of the `LanguageModel` global, for
|
|
132
|
+
* tests and for embedding a stand-in. Defaults to
|
|
133
|
+
* `globalThis.LanguageModel`.
|
|
134
|
+
*/
|
|
135
|
+
languageModel?: ChromeLanguageModelFactory;
|
|
136
|
+
/**
|
|
137
|
+
* Sampling temperature. Accepted only in extension contexts; on a plain web
|
|
138
|
+
* page `create()` rejects it and the adapter retries without it.
|
|
139
|
+
*/
|
|
140
|
+
temperature?: number;
|
|
141
|
+
/** Sampling top-K. Subject to the same restriction as `temperature`. */
|
|
142
|
+
topK?: number;
|
|
143
|
+
/** Modalities to declare at session creation. */
|
|
144
|
+
expectedInputs?: ChromeExpectedModality[];
|
|
145
|
+
expectedOutputs?: ChromeExpectedModality[];
|
|
146
|
+
/** Receives bytes-loaded progress while the model downloads on first use. */
|
|
147
|
+
onDownloadProgress?: (loaded: number) => void;
|
|
148
|
+
/**
|
|
149
|
+
* Rewrites the system prompt before a session is created.
|
|
150
|
+
*
|
|
151
|
+
* This exists because of a specific and costly interaction with ADK. Every
|
|
152
|
+
* request is prefixed by ADK's identity processor with:
|
|
153
|
+
*
|
|
154
|
+
* You are an agent. Your internal name is "<agent name>".
|
|
155
|
+
*
|
|
156
|
+
* Under a `ParallelAgent` fan-out each child has a different name, so every
|
|
157
|
+
* child produces a *different* system prompt, so the warm base session never
|
|
158
|
+
* hits and each child pays a full `create()` — the most expensive call
|
|
159
|
+
* available — precisely when the most calls are in flight.
|
|
160
|
+
*
|
|
161
|
+
* Pass {@link stripAdkIdentityPreamble} to drop it. That is safe whenever
|
|
162
|
+
* agent transfer is disabled, because the identity line exists to support
|
|
163
|
+
* transfer. Leave it unset for multi-agent setups that route by name.
|
|
164
|
+
*/
|
|
165
|
+
normalizeSystemPrompt?: (systemPrompt: string) => string;
|
|
166
|
+
/** Receives timing and context diagnostics. */
|
|
167
|
+
onDiagnostic?: (diagnostic: ChromeBuiltInDiagnostic) => void;
|
|
168
|
+
}
|
|
169
|
+
/** Thrown when the browser has no usable on-device model. */
|
|
170
|
+
export declare class ChromeModelUnavailableError extends Error {
|
|
171
|
+
readonly availability: ChromeModelAvailability | 'missing-api';
|
|
172
|
+
constructor(availability: ChromeModelAvailability | 'missing-api');
|
|
173
|
+
}
|
|
174
|
+
/** See the file overview for the design rationale. */
|
|
175
|
+
export declare class ChromeBuiltInLlm extends BaseLlm {
|
|
176
|
+
static readonly supportedModels: Array<string | RegExp>;
|
|
177
|
+
private readonly params;
|
|
178
|
+
/**
|
|
179
|
+
* A warm session holding only the system prompt, cloned per request.
|
|
180
|
+
*
|
|
181
|
+
* The *promise* is memoised, not the resolved session. Under a
|
|
182
|
+
* `ParallelAgent` fan-out every child reaches this at the same instant, and
|
|
183
|
+
* caching only the resolved value means they all observe an empty cache and
|
|
184
|
+
* each create their own session — turning the optimisation into a no-op
|
|
185
|
+
* precisely when it matters most. Sharing the in-flight promise collapses
|
|
186
|
+
* them onto one `create()`.
|
|
187
|
+
*/
|
|
188
|
+
private baseSessionPromise?;
|
|
189
|
+
private baseSession?;
|
|
190
|
+
private baseSessionKey?;
|
|
191
|
+
constructor(params?: ChromeBuiltInLlmParams);
|
|
192
|
+
private get api();
|
|
193
|
+
/** Reports whether this browser can actually run the model. */
|
|
194
|
+
availability(): Promise<ChromeModelAvailability>;
|
|
195
|
+
private diagnostic;
|
|
196
|
+
/**
|
|
197
|
+
* Returns a session cloned from a warm base carrying `systemPrompt`, and
|
|
198
|
+
* rebuilds that base only when the system prompt or sampling changes.
|
|
199
|
+
*/
|
|
200
|
+
private acquireSession;
|
|
201
|
+
private createBaseSession;
|
|
202
|
+
generateContentAsync(llmRequest: LlmRequest, stream?: boolean, abortSignal?: AbortSignal): AsyncGenerator<LlmResponse, void>;
|
|
203
|
+
private promptOnce;
|
|
204
|
+
private streamText;
|
|
205
|
+
/** Turns the constrained JSON reply into an ADK response. */
|
|
206
|
+
private parseToolChoice;
|
|
207
|
+
connect(_llmRequest: LlmRequest): Promise<BaseLlmConnection>;
|
|
208
|
+
/** Releases the warm base session. */
|
|
209
|
+
destroy(): void;
|
|
210
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import type { Content, FunctionDeclaration } from '@google/genai';
|
|
7
|
+
import type { ChromeMessage } from './chrome_prompt_llm.js';
|
|
8
|
+
import type { LlmRequest } from './llm_request.js';
|
|
9
|
+
import type { LlmResponse } from './llm_response.js';
|
|
10
|
+
export declare function isRecord(value: unknown): value is Record<string, unknown>;
|
|
11
|
+
/** Pulls function declarations out of a request's tool config. */
|
|
12
|
+
export declare function collectFunctionDeclarations(llmRequest: LlmRequest): FunctionDeclaration[];
|
|
13
|
+
/**
|
|
14
|
+
* Builds the constrained-decoding schema: a union of "final answer" and one
|
|
15
|
+
* branch per available tool, each carrying that tool's exact argument schema.
|
|
16
|
+
*
|
|
17
|
+
* A single-value `enum` is used rather than `const`, because it is semantically
|
|
18
|
+
* identical and more widely supported across constraint engines.
|
|
19
|
+
*/
|
|
20
|
+
export declare function buildToolChoiceSchema(declarations: FunctionDeclaration[]): Record<string, unknown>;
|
|
21
|
+
/** Renders tool declarations into instructions the model can act on. */
|
|
22
|
+
export declare function renderToolInstructions(declarations: FunctionDeclaration[]): string;
|
|
23
|
+
/**
|
|
24
|
+
* Renders a tool result as text the model can actually read.
|
|
25
|
+
*
|
|
26
|
+
* ADK wraps a tool's string return value as `{result: "<the string>"}`. Naively
|
|
27
|
+
* JSON-stringifying that produces double-encoded output, in which every quote
|
|
28
|
+
* is escaped twice:
|
|
29
|
+
*
|
|
30
|
+
* [tool_result] search -> {"result":"{\"matches\":[{\"id\":8, ...
|
|
31
|
+
*
|
|
32
|
+
* A large model shrugs at this. A small one has to spend attention unpicking
|
|
33
|
+
* the encoding before it can read the payload, and often just fails. Unwrapping
|
|
34
|
+
* the single `result` key and re-emitting plain JSON costs nothing and gives
|
|
35
|
+
* the model something legible:
|
|
36
|
+
*
|
|
37
|
+
* [tool_result] search -> {"matches":[{"id":8, ...
|
|
38
|
+
*/
|
|
39
|
+
export declare function renderToolResult(response: unknown): string;
|
|
40
|
+
/**
|
|
41
|
+
* Maps genai `Content[]` onto Prompt API messages.
|
|
42
|
+
*
|
|
43
|
+
* Function calls and responses have no native representation in a Prompt API
|
|
44
|
+
* message, so they are serialised to text. Without this the model loses the
|
|
45
|
+
* thread of a multi-step tool interaction.
|
|
46
|
+
*/
|
|
47
|
+
export declare function contentsToMessages(contents: Content[]): ChromeMessage[];
|
|
48
|
+
/** Extracts the system instruction from a request as plain text. */
|
|
49
|
+
export declare function extractSystemInstruction(llmRequest: LlmRequest): string;
|
|
50
|
+
/**
|
|
51
|
+
* Removes ADK's per-agent identity preamble from a system prompt.
|
|
52
|
+
*
|
|
53
|
+
* Turns:
|
|
54
|
+
*
|
|
55
|
+
* You are an agent. Your internal name is "rerank_11".
|
|
56
|
+
* The description about you is "..."
|
|
57
|
+
*
|
|
58
|
+
* <the actual instruction>
|
|
59
|
+
*
|
|
60
|
+
* into just the instruction, so that sibling agents sharing one instruction
|
|
61
|
+
* also share one cached session. See
|
|
62
|
+
* {@link ChromeBuiltInLlmParams.normalizeSystemPrompt}.
|
|
63
|
+
*/
|
|
64
|
+
export declare function stripAdkIdentityPreamble(systemPrompt: string): string;
|
|
65
|
+
/** Whether an error is an aborted-operation error from a cancelled signal. */
|
|
66
|
+
export declare function isAbortError(error: unknown): boolean;
|
|
67
|
+
export declare function finalText(text: string): LlmResponse;
|
|
68
|
+
export declare function errorResponse(error: unknown): LlmResponse;
|
|
@@ -81,9 +81,14 @@ export declare class Gemini extends BaseLlm {
|
|
|
81
81
|
/**
|
|
82
82
|
* Sends a request to the Gemini model.
|
|
83
83
|
*
|
|
84
|
-
* @param llmRequest
|
|
85
|
-
* @param stream
|
|
86
|
-
* @yields LlmResponse
|
|
84
|
+
* @param llmRequest The request to send to the Gemini model.
|
|
85
|
+
* @param stream Whether to make a streaming call. Defaults to `false`.
|
|
86
|
+
* @yields Each {@link LlmResponse} produced by the model. A non-streaming
|
|
87
|
+
* call yields exactly one; a streaming call yields the partial responses
|
|
88
|
+
* as they arrive, then a final aggregated response whenever the stream
|
|
89
|
+
* carried either content or usage/grounding/citation metadata. A
|
|
90
|
+
* metadata-only stream therefore still ends with one, holding the
|
|
91
|
+
* metadata and no `content`; only a stream with neither ends silently.
|
|
87
92
|
*/
|
|
88
93
|
generateContentAsync(llmRequest: LlmRequest, stream?: boolean, abortSignal?: AbortSignal): AsyncGenerator<LlmResponse, void>;
|
|
89
94
|
protected getHttpOptions(): HttpOptions;
|
|
@@ -5,8 +5,9 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { BaseLlm } from './base_llm.js';
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
9
|
-
*
|
|
8
|
+
* The constructor of a {@link BaseLlm} subclass, rather than an instance of
|
|
9
|
+
* one: a class that can be `new`-ed with a model name, and that also exposes
|
|
10
|
+
* the static `supportedModels` patterns the registry matches against.
|
|
10
11
|
*/
|
|
11
12
|
export type BaseLlmType = (new (params: {
|
|
12
13
|
model: string;
|