@google/adk 1.5.0 → 2.0.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 +18 -0
- package/dist/cjs/a2a/a2a_remote_agent.js +17 -4
- package/dist/cjs/a2a/a2a_remote_agent_run_processor.js +7 -3
- package/dist/cjs/a2a/a2a_remote_agent_utils.js +9 -2
- package/dist/cjs/a2a/agent_card.js +33 -3
- package/dist/cjs/a2a/agent_executor.js +25 -16
- package/dist/cjs/a2a/agent_to_a2a.js +22 -11
- package/dist/cjs/a2a/auth.js +68 -0
- package/dist/cjs/a2a/event_converter_utils.js +50 -15
- package/dist/cjs/a2a/event_processor_utils.js +71 -35
- package/dist/cjs/a2a/executor_context.js +2 -0
- package/dist/cjs/a2a/index.js +53 -0
- package/dist/cjs/a2a/metadata_converter_utils.js +5 -0
- package/dist/cjs/a2a/part_converter_utils.js +12 -0
- package/dist/cjs/agents/active_streaming_tool.js +5 -2
- package/dist/cjs/agents/base_agent.js +46 -9
- package/dist/cjs/agents/context.js +5 -2
- package/dist/cjs/agents/framework_function_calls.js +64 -0
- package/dist/cjs/agents/functions.js +58 -23
- package/dist/cjs/agents/instructions.js +51 -12
- package/dist/cjs/agents/invocation_context.js +42 -8
- package/dist/cjs/agents/live_request_queue.js +29 -5
- package/dist/cjs/agents/llm_agent.js +536 -45
- package/dist/cjs/agents/loop_agent.js +19 -2
- package/dist/cjs/agents/parallel_agent.js +21 -2
- package/dist/cjs/agents/processors/agent_transfer_llm_request_processor.js +7 -4
- package/dist/cjs/agents/processors/base_llm_processor.js +9 -4
- package/dist/cjs/agents/processors/basic_llm_request_processor.js +8 -4
- package/dist/cjs/agents/processors/code_execution_request_processor.js +18 -5
- package/dist/cjs/agents/processors/content_processor_utils.js +85 -15
- package/dist/cjs/agents/processors/content_request_processor.js +11 -25
- package/dist/cjs/agents/processors/context_compactor_request_processor.js +5 -2
- package/dist/cjs/agents/processors/identity_llm_request_processor.js +12 -4
- package/dist/cjs/agents/processors/instructions_llm_request_processor.js +8 -3
- package/dist/cjs/agents/processors/interactions_request_processor.js +5 -2
- package/dist/cjs/agents/processors/request_confirmation_llm_request_processor.js +313 -92
- package/dist/cjs/agents/processors/request_input_llm_request_processor.js +218 -0
- package/dist/cjs/agents/processors/tool_filter_request_processor.js +5 -2
- package/dist/cjs/agents/readonly_context.js +7 -3
- package/dist/cjs/agents/routed_agent.js +6 -13
- package/dist/cjs/agents/run_config.js +12 -0
- package/dist/cjs/agents/sequential_agent.js +20 -3
- package/dist/cjs/agents/user_input_request.js +145 -0
- package/dist/cjs/apps/app.js +11 -11
- package/dist/cjs/apps/resumability_config.js +2 -0
- package/dist/cjs/artifacts/file_artifact_service.js +21 -2
- package/dist/cjs/artifacts/gcs_artifact_service.js +46 -11
- package/dist/cjs/artifacts/in_memory_artifact_service.js +19 -11
- package/dist/cjs/artifacts/registry.js +6 -1
- package/dist/cjs/artifacts/scoped_artifact_service.js +5 -2
- package/dist/cjs/auth/auth_handler.js +5 -2
- package/dist/cjs/auth/auth_preprocessor.js +48 -40
- package/dist/cjs/auth/auth_provider_registry.js +5 -2
- package/dist/cjs/auth/auth_schemes.js +2 -0
- package/dist/cjs/auth/credential_response_binding.js +101 -0
- package/dist/cjs/auth/credential_service/in_memory_credential_service.js +19 -5
- package/dist/cjs/auth/credential_service/session_state_credential_service.js +5 -2
- package/dist/cjs/auth/exchanger/base_credential_exchanger.js +5 -2
- package/dist/cjs/auth/exchanger/credential_exchanger_registry.js +5 -2
- package/dist/cjs/auth/oauth2/oauth2_credential_exchanger.js +8 -2
- package/dist/cjs/auth/oauth2/oauth2_credential_refresher.js +5 -2
- package/dist/cjs/auth/oauth2/oauth2_discovery.js +7 -2
- package/dist/cjs/auth/oauth2/oauth2_utils.js +6 -0
- package/dist/cjs/auth/refresher/base_credential_refresher.js +5 -2
- package/dist/cjs/auth/refresher/credential_refresher_registry.js +5 -2
- package/dist/cjs/code_executors/agent_engine_sandbox_code_executor.js +3 -0
- package/dist/cjs/code_executors/base_code_executor.js +6 -2
- package/dist/cjs/code_executors/built_in_code_executor.js +6 -2
- package/dist/cjs/code_executors/code_execution_utils.js +6 -0
- package/dist/cjs/code_executors/code_executor_context.js +5 -2
- package/dist/cjs/code_executors/unsafe_local_code_executor.js +31 -14
- package/dist/cjs/common.js +112 -1
- package/dist/cjs/context/agent_controlled_context_compactor.js +7 -13
- package/dist/cjs/context/anchored_context_compactor.js +5 -2
- package/dist/cjs/context/compaction_utils.js +17 -2
- package/dist/cjs/context/summarizers/llm_summarizer.js +5 -2
- package/dist/cjs/context/token_based_context_compactor.js +11 -23
- package/dist/cjs/context/trajectory_thought_pruning_compactor.js +5 -2
- package/dist/cjs/context/truncating_context_compactor.js +5 -2
- package/dist/cjs/environment/base_environment.js +97 -0
- package/dist/cjs/environment/local_environment.js +186 -0
- package/dist/cjs/events/compacted_event.js +4 -0
- package/dist/cjs/events/event.js +38 -3
- package/dist/cjs/events/event_actions.js +5 -0
- package/dist/cjs/events/structured_events.js +2 -0
- package/dist/cjs/examples/base_example_provider.js +6 -2
- package/dist/cjs/examples/example_util.js +3 -0
- package/dist/cjs/features/feature_registry.js +7 -0
- package/dist/cjs/index.js +7 -22
- package/dist/cjs/integrations/agent_registry/agent_registry.js +7 -4
- package/dist/cjs/integrations/agent_registry/agent_registry_mcp_toolset.js +7 -4
- package/dist/cjs/integrations/agent_registry/helpers.js +3 -0
- package/dist/cjs/memory/in_memory_memory_service.js +21 -4
- package/dist/cjs/memory/vertex_ai_memory_bank_service.js +20 -2
- package/dist/cjs/models/apigee_llm.js +9 -3
- package/dist/cjs/models/base_llm.js +7 -3
- package/dist/cjs/models/gemini_llm_connection.js +5 -2
- package/dist/cjs/models/google_llm.js +24 -12
- package/dist/cjs/models/interactions_utils.js +16 -0
- package/dist/cjs/models/llm_request.js +4 -0
- package/dist/cjs/models/llm_response.js +2 -0
- package/dist/cjs/models/registry.js +6 -2
- package/dist/cjs/models/routed_llm.js +4 -13
- package/dist/cjs/plugins/base_plugin.js +43 -7
- package/dist/cjs/plugins/global_instruction_plugin.js +5 -2
- package/dist/cjs/plugins/logging_plugin.js +13 -8
- package/dist/cjs/plugins/plugin_manager.js +37 -2
- package/dist/cjs/plugins/security_plugin.js +15 -8
- package/dist/cjs/runner/in_memory_runner.js +5 -2
- package/dist/cjs/runner/runner.js +226 -29
- package/dist/cjs/sessions/base_session_service.js +21 -5
- package/dist/cjs/sessions/database_session_service.js +6 -2
- package/dist/cjs/sessions/db/operations.js +34 -6
- package/dist/cjs/sessions/db/schema.js +16 -8
- package/dist/cjs/sessions/in_memory_session_service.js +30 -22
- package/dist/cjs/sessions/registry.js +4 -1
- package/dist/cjs/sessions/session.js +2 -0
- package/dist/cjs/sessions/state.js +80 -8
- package/dist/cjs/sessions/state_write_order.js +105 -0
- package/dist/cjs/sessions/vertex_ai_session_service.js +132 -25
- package/dist/cjs/skills/gcp_skill_registry.js +2 -0
- package/dist/cjs/skills/loader.js +62 -16
- package/dist/cjs/skills/prompt.js +3 -0
- package/dist/cjs/telemetry/google_cloud.js +42 -9
- package/dist/cjs/telemetry/setup.js +5 -0
- package/dist/cjs/telemetry/tracing.js +60 -4
- package/dist/cjs/tools/agent_tool.js +6 -2
- package/dist/cjs/tools/base_tool.js +24 -2
- package/dist/cjs/tools/base_toolset.js +6 -2
- package/dist/cjs/tools/consolidate_context_tool.js +5 -2
- package/dist/cjs/tools/enterprise_web_search_tool.js +6 -2
- package/dist/cjs/tools/example_tool.js +5 -2
- package/dist/cjs/tools/exit_loop_tool.js +5 -2
- package/dist/cjs/tools/finish_task_tool.js +119 -0
- package/dist/cjs/tools/forwarding_artifact_service.js +5 -2
- package/dist/cjs/tools/function_tool.js +73 -8
- package/dist/cjs/tools/get_user_choice_tool.js +54 -0
- package/dist/cjs/tools/google_maps_grounding_tool.js +6 -2
- package/dist/cjs/tools/google_search_tool.js +5 -2
- package/dist/cjs/tools/load_artifacts_tool.js +8 -2
- package/dist/cjs/tools/load_memory_tool.js +5 -2
- package/dist/cjs/tools/load_web_page.js +21 -1
- package/dist/cjs/tools/long_running_tool.js +5 -2
- package/dist/cjs/tools/mcp/index.js +39 -0
- package/dist/cjs/tools/mcp/load_mcp_resource_tool.js +5 -2
- package/dist/cjs/tools/mcp/mcp_session_manager.js +69 -27
- package/dist/cjs/tools/mcp/mcp_tool.js +5 -2
- package/dist/cjs/tools/mcp/mcp_toolset.js +5 -2
- package/dist/cjs/tools/openapi_tool/auth/auth_helpers.js +4 -0
- package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +2 -0
- package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +2 -0
- package/dist/cjs/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +30 -9
- package/dist/cjs/tools/openapi_tool/openapi_spec_parser/operation_parser.js +2 -0
- package/dist/cjs/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +6 -2
- package/dist/cjs/tools/openapi_tool/openapi_toolset.js +2 -0
- package/dist/cjs/tools/openapi_tool/rest_api_tool.js +23 -5
- package/dist/cjs/tools/preload_memory_tool.js +5 -2
- package/dist/cjs/tools/request_input_tool.js +56 -0
- package/dist/cjs/tools/skill/list_skills_tool.js +2 -0
- package/dist/cjs/tools/skill/load_skill_resource_tool.js +2 -0
- package/dist/cjs/tools/skill/load_skill_tool.js +4 -1
- package/dist/cjs/tools/skill/run_skill_inline_script_tool.js +8 -2
- package/dist/cjs/tools/skill/run_skill_script_tool.js +10 -2
- package/dist/cjs/tools/skill/search_skills_tool.js +2 -0
- package/dist/cjs/tools/skill/skill_toolset.js +35 -0
- package/dist/cjs/tools/tool_confirmation.js +26 -3
- package/dist/cjs/tools/url_context_tool.js +5 -2
- package/dist/cjs/tools/vertex_ai_search_tool.js +5 -2
- package/dist/cjs/tools/vertex_rag_retrieval_tool.js +5 -2
- package/dist/cjs/utils/async_hooks_shim.js +5 -2
- package/dist/cjs/utils/async_queue.js +45 -18
- package/dist/cjs/utils/branch_trie.js +2 -0
- package/dist/cjs/utils/case_utils.js +2 -0
- package/dist/cjs/utils/client_labels.js +5 -0
- package/dist/cjs/utils/crypto_shim.js +45 -0
- package/dist/cjs/utils/deprecated.js +68 -0
- package/dist/cjs/utils/env_aware_utils.js +56 -13
- package/dist/cjs/utils/error_utils.js +128 -0
- package/dist/cjs/utils/experimental.js +9 -2
- package/dist/cjs/utils/failover_utils.js +3 -0
- package/dist/cjs/utils/file_extension_utils.js +3 -0
- package/dist/cjs/utils/file_utils.js +12 -4
- package/dist/cjs/utils/gemini_schema_util.js +6 -2
- package/dist/cjs/utils/genai_schema_to_json.js +107 -0
- package/dist/cjs/utils/live_connection_utils.js +5 -2
- package/dist/cjs/utils/logger.js +13 -4
- package/dist/cjs/utils/model_name.js +8 -0
- package/dist/cjs/utils/object_notation_utils.js +7 -3
- package/dist/cjs/utils/optional_peer.js +68 -0
- package/dist/cjs/utils/output_schema_utils.js +45 -0
- package/dist/cjs/utils/partial_copy.js +2 -0
- package/dist/cjs/utils/redact_uri.js +66 -0
- package/dist/cjs/utils/schema.js +178 -0
- package/dist/cjs/utils/simple_zod_to_json.js +17 -4
- package/dist/cjs/utils/streaming_utils.js +14 -6
- package/dist/cjs/utils/task.js +7 -4
- package/dist/cjs/utils/variant_utils.js +3 -1
- package/dist/cjs/utils/vertex_ai_utils.js +6 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/workflow/base_node.js +211 -0
- package/dist/cjs/workflow/branch_path.js +108 -0
- package/dist/cjs/workflow/dynamic_node_scheduler.js +220 -0
- package/dist/cjs/workflow/errors.js +178 -0
- package/dist/cjs/workflow/graph.js +158 -0
- package/dist/cjs/workflow/index.js +131 -0
- package/dist/cjs/workflow/node.js +65 -0
- package/dist/cjs/workflow/node_builders.js +68 -0
- package/dist/cjs/workflow/node_context.js +246 -0
- package/dist/cjs/workflow/node_error_event.js +86 -0
- package/dist/cjs/workflow/node_runner.js +459 -0
- package/dist/cjs/workflow/node_state.js +57 -0
- package/dist/cjs/workflow/node_status.js +48 -0
- package/dist/cjs/workflow/nodes/function_node.js +195 -0
- package/dist/cjs/workflow/nodes/join_node.js +56 -0
- package/dist/cjs/workflow/nodes/node_tool.js +156 -0
- package/dist/cjs/workflow/nodes/parallel_worker.js +129 -0
- package/dist/cjs/workflow/nodes/tool_node.js +117 -0
- package/dist/cjs/workflow/request_input.js +64 -0
- package/dist/cjs/workflow/retry_config.js +71 -0
- package/dist/cjs/workflow/run_llm_agent_as_node.js +192 -0
- package/dist/cjs/workflow/run_node_as_invocation.js +165 -0
- package/dist/cjs/workflow/schedule_dynamic_node.js +53 -0
- package/dist/cjs/workflow/trigger.js +27 -0
- package/dist/cjs/workflow/utils/graph_parser.js +212 -0
- package/dist/cjs/workflow/utils/graph_validation.js +216 -0
- package/dist/cjs/workflow/utils/hitl_utils.js +252 -0
- package/dist/cjs/workflow/utils/rehydration_utils.js +373 -0
- package/dist/cjs/workflow/utils/retry_utils.js +112 -0
- package/dist/cjs/workflow/utils/workflow_graph_utils.js +144 -0
- package/dist/cjs/workflow/workflow.js +509 -0
- package/dist/esm/a2a/a2a_event.js +19 -0
- package/dist/esm/a2a/a2a_remote_agent.js +18 -4
- package/dist/esm/a2a/a2a_remote_agent_run_processor.js +8 -3
- package/dist/esm/a2a/a2a_remote_agent_utils.js +10 -2
- package/dist/esm/a2a/agent_card.js +34 -3
- package/dist/esm/a2a/agent_executor.js +27 -17
- package/dist/esm/a2a/agent_to_a2a.js +44 -16
- package/dist/esm/a2a/auth.js +41 -0
- package/dist/esm/a2a/event_converter_utils.js +51 -15
- package/dist/esm/a2a/event_processor_utils.js +74 -34
- package/dist/esm/a2a/executor_context.js +3 -0
- package/dist/esm/a2a/index.js +20 -0
- package/dist/esm/a2a/metadata_converter_utils.js +6 -0
- package/dist/esm/a2a/part_converter_utils.js +13 -0
- package/dist/esm/agents/active_streaming_tool.js +6 -2
- package/dist/esm/agents/base_agent.js +47 -9
- package/dist/esm/agents/context.js +6 -2
- package/dist/esm/agents/framework_function_calls.js +34 -0
- package/dist/esm/agents/functions.js +62 -20
- package/dist/esm/agents/instructions.js +52 -12
- package/dist/esm/agents/invocation_context.js +41 -7
- package/dist/esm/agents/live_request_queue.js +30 -5
- package/dist/esm/agents/llm_agent.js +537 -45
- package/dist/esm/agents/loop_agent.js +21 -2
- package/dist/esm/agents/parallel_agent.js +23 -2
- package/dist/esm/agents/processors/agent_transfer_llm_request_processor.js +8 -4
- package/dist/esm/agents/processors/base_llm_processor.js +10 -4
- package/dist/esm/agents/processors/basic_llm_request_processor.js +9 -4
- package/dist/esm/agents/processors/code_execution_request_processor.js +19 -5
- package/dist/esm/agents/processors/content_processor_utils.js +88 -16
- package/dist/esm/agents/processors/content_request_processor.js +12 -25
- package/dist/esm/agents/processors/context_compactor_request_processor.js +6 -2
- package/dist/esm/agents/processors/identity_llm_request_processor.js +13 -4
- package/dist/esm/agents/processors/instructions_llm_request_processor.js +9 -3
- package/dist/esm/agents/processors/interactions_request_processor.js +6 -2
- package/dist/esm/agents/processors/request_confirmation_llm_request_processor.js +318 -93
- package/dist/esm/agents/processors/request_input_llm_request_processor.js +197 -0
- package/dist/esm/agents/processors/tool_filter_request_processor.js +6 -2
- package/dist/esm/agents/readonly_context.js +8 -3
- package/dist/esm/agents/routed_agent.js +6 -14
- package/dist/esm/agents/run_config.js +13 -0
- package/dist/esm/agents/sequential_agent.js +22 -3
- package/dist/esm/agents/user_input_request.js +120 -0
- package/dist/esm/apps/app.js +14 -11
- package/dist/esm/apps/resumability_config.js +3 -0
- package/dist/esm/artifacts/file_artifact_service.js +22 -2
- package/dist/esm/artifacts/gcs_artifact_service.js +58 -11
- package/dist/esm/artifacts/in_memory_artifact_service.js +20 -11
- package/dist/esm/artifacts/registry.js +7 -1
- package/dist/esm/artifacts/scoped_artifact_service.js +6 -2
- package/dist/esm/auth/auth_handler.js +6 -2
- package/dist/esm/auth/auth_preprocessor.js +50 -41
- package/dist/esm/auth/auth_provider_registry.js +6 -2
- package/dist/esm/auth/auth_schemes.js +3 -0
- package/dist/esm/auth/credential_response_binding.js +74 -0
- package/dist/esm/auth/credential_service/in_memory_credential_service.js +20 -5
- package/dist/esm/auth/credential_service/session_state_credential_service.js +6 -2
- package/dist/esm/auth/exchanger/base_credential_exchanger.js +6 -2
- package/dist/esm/auth/exchanger/credential_exchanger_registry.js +6 -2
- package/dist/esm/auth/oauth2/oauth2_credential_exchanger.js +9 -2
- package/dist/esm/auth/oauth2/oauth2_credential_refresher.js +6 -2
- package/dist/esm/auth/oauth2/oauth2_discovery.js +8 -2
- package/dist/esm/auth/oauth2/oauth2_utils.js +7 -0
- package/dist/esm/auth/refresher/base_credential_refresher.js +6 -2
- package/dist/esm/auth/refresher/credential_refresher_registry.js +6 -2
- package/dist/esm/code_executors/agent_engine_sandbox_code_executor.js +3 -0
- package/dist/esm/code_executors/base_code_executor.js +7 -2
- package/dist/esm/code_executors/built_in_code_executor.js +7 -2
- package/dist/esm/code_executors/code_execution_utils.js +7 -0
- package/dist/esm/code_executors/code_executor_context.js +6 -2
- package/dist/esm/code_executors/unsafe_local_code_executor.js +31 -13
- package/dist/esm/common.js +113 -4
- package/dist/esm/context/agent_controlled_context_compactor.js +8 -13
- package/dist/esm/context/anchored_context_compactor.js +6 -2
- package/dist/esm/context/compaction_utils.js +16 -1
- package/dist/esm/context/summarizers/llm_summarizer.js +6 -2
- package/dist/esm/context/token_based_context_compactor.js +16 -24
- package/dist/esm/context/trajectory_thought_pruning_compactor.js +6 -2
- package/dist/esm/context/truncating_context_compactor.js +6 -2
- package/dist/esm/environment/base_environment.js +71 -0
- package/dist/esm/environment/local_environment.js +150 -0
- package/dist/esm/events/compacted_event.js +5 -0
- package/dist/esm/events/event.js +38 -3
- package/dist/esm/events/event_actions.js +6 -0
- package/dist/esm/events/structured_events.js +3 -0
- package/dist/esm/examples/base_example_provider.js +7 -2
- package/dist/esm/examples/example_util.js +4 -0
- package/dist/esm/features/feature_registry.js +8 -0
- package/dist/esm/index.js +4 -13
- package/dist/esm/integrations/agent_registry/agent_registry.js +8 -4
- package/dist/esm/integrations/agent_registry/agent_registry_mcp_toolset.js +6 -2
- package/dist/esm/integrations/agent_registry/helpers.js +4 -0
- package/dist/esm/memory/in_memory_memory_service.js +22 -4
- package/dist/esm/memory/vertex_ai_memory_bank_service.js +25 -3
- package/dist/esm/models/apigee_llm.js +10 -3
- package/dist/esm/models/base_llm.js +8 -3
- package/dist/esm/models/gemini_llm_connection.js +6 -2
- package/dist/esm/models/google_llm.js +26 -13
- package/dist/esm/models/interactions_utils.js +17 -0
- package/dist/esm/models/llm_request.js +5 -0
- package/dist/esm/models/llm_response.js +3 -0
- package/dist/esm/models/registry.js +7 -2
- package/dist/esm/models/routed_llm.js +4 -14
- package/dist/esm/plugins/base_plugin.js +43 -7
- package/dist/esm/plugins/global_instruction_plugin.js +6 -2
- package/dist/esm/plugins/logging_plugin.js +14 -8
- package/dist/esm/plugins/plugin_manager.js +38 -2
- package/dist/esm/plugins/security_plugin.js +14 -6
- package/dist/esm/runner/in_memory_runner.js +6 -2
- package/dist/esm/runner/runner.js +233 -31
- package/dist/esm/sessions/base_session_service.js +22 -5
- package/dist/esm/sessions/database_session_service.js +7 -2
- package/dist/esm/sessions/db/operations.js +34 -6
- package/dist/esm/sessions/db/schema.js +16 -8
- package/dist/esm/sessions/in_memory_session_service.js +31 -22
- package/dist/esm/sessions/registry.js +5 -1
- package/dist/esm/sessions/session.js +3 -0
- package/dist/esm/sessions/state.js +78 -7
- package/dist/esm/sessions/state_write_order.js +74 -0
- package/dist/esm/sessions/vertex_ai_session_service.js +136 -26
- package/dist/esm/skills/gcp_skill_registry.js +2 -0
- package/dist/esm/skills/loader.js +63 -16
- package/dist/esm/skills/prompt.js +4 -0
- package/dist/esm/telemetry/google_cloud.js +54 -9
- package/dist/esm/telemetry/setup.js +6 -0
- package/dist/esm/telemetry/tracing.js +59 -4
- package/dist/esm/tools/agent_tool.js +7 -2
- package/dist/esm/tools/base_tool.js +25 -2
- package/dist/esm/tools/base_toolset.js +7 -2
- package/dist/esm/tools/consolidate_context_tool.js +6 -2
- package/dist/esm/tools/enterprise_web_search_tool.js +7 -2
- package/dist/esm/tools/example_tool.js +6 -2
- package/dist/esm/tools/exit_loop_tool.js +6 -2
- package/dist/esm/tools/finish_task_tool.js +92 -0
- package/dist/esm/tools/forwarding_artifact_service.js +6 -2
- package/dist/esm/tools/function_tool.js +74 -8
- package/dist/esm/tools/get_user_choice_tool.js +27 -0
- package/dist/esm/tools/google_maps_grounding_tool.js +7 -2
- package/dist/esm/tools/google_search_tool.js +6 -2
- package/dist/esm/tools/load_artifacts_tool.js +9 -2
- package/dist/esm/tools/load_memory_tool.js +6 -2
- package/dist/esm/tools/load_web_page.js +22 -1
- package/dist/esm/tools/long_running_tool.js +6 -2
- package/dist/esm/tools/mcp/index.js +11 -0
- package/dist/esm/tools/mcp/load_mcp_resource_tool.js +6 -2
- package/dist/esm/tools/mcp/mcp_session_manager.js +80 -30
- package/dist/esm/tools/mcp/mcp_tool.js +6 -2
- package/dist/esm/tools/mcp/mcp_toolset.js +6 -2
- package/dist/esm/tools/openapi_tool/auth/auth_helpers.js +5 -0
- package/dist/esm/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +2 -0
- package/dist/esm/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +2 -0
- package/dist/esm/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +30 -9
- package/dist/esm/tools/openapi_tool/openapi_spec_parser/operation_parser.js +2 -0
- package/dist/esm/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +6 -2
- package/dist/esm/tools/openapi_tool/openapi_toolset.js +2 -0
- package/dist/esm/tools/openapi_tool/rest_api_tool.js +23 -5
- package/dist/esm/tools/preload_memory_tool.js +6 -2
- package/dist/esm/tools/request_input_tool.js +29 -0
- package/dist/esm/tools/skill/list_skills_tool.js +2 -0
- package/dist/esm/tools/skill/load_skill_resource_tool.js +2 -0
- package/dist/esm/tools/skill/load_skill_tool.js +4 -1
- package/dist/esm/tools/skill/run_skill_inline_script_tool.js +8 -2
- package/dist/esm/tools/skill/run_skill_script_tool.js +10 -2
- package/dist/esm/tools/skill/search_skills_tool.js +2 -0
- package/dist/esm/tools/skill/skill_toolset.js +25 -0
- package/dist/esm/tools/tool_confirmation.js +24 -2
- package/dist/esm/tools/url_context_tool.js +6 -2
- package/dist/esm/tools/vertex_ai_search_tool.js +6 -2
- package/dist/esm/tools/vertex_rag_retrieval_tool.js +6 -2
- package/dist/esm/utils/async_hooks_shim.js +6 -2
- package/dist/esm/utils/async_queue.js +46 -18
- package/dist/esm/utils/branch_trie.js +3 -0
- package/dist/esm/utils/case_utils.js +3 -0
- package/dist/esm/utils/client_labels.js +6 -0
- package/dist/esm/utils/crypto_shim.js +18 -0
- package/dist/esm/utils/deprecated.js +40 -0
- package/dist/esm/utils/env_aware_utils.js +56 -13
- package/dist/esm/utils/error_utils.js +101 -0
- package/dist/esm/utils/experimental.js +10 -2
- package/dist/esm/utils/failover_utils.js +4 -0
- package/dist/esm/utils/file_extension_utils.js +4 -0
- package/dist/esm/utils/file_utils.js +13 -4
- package/dist/esm/utils/gemini_schema_util.js +7 -2
- package/dist/esm/utils/genai_schema_to_json.js +80 -0
- package/dist/esm/utils/live_connection_utils.js +6 -2
- package/dist/esm/utils/logger.js +14 -4
- package/dist/esm/utils/model_name.js +9 -0
- package/dist/esm/utils/object_notation_utils.js +8 -3
- package/dist/esm/utils/optional_peer.js +41 -0
- package/dist/esm/utils/output_schema_utils.js +18 -0
- package/dist/esm/utils/partial_copy.js +3 -0
- package/dist/esm/utils/redact_uri.js +39 -0
- package/dist/esm/utils/schema.js +152 -0
- package/dist/esm/utils/simple_zod_to_json.js +15 -4
- package/dist/esm/utils/streaming_utils.js +15 -6
- package/dist/esm/utils/task.js +8 -4
- package/dist/esm/utils/variant_utils.js +5 -2
- package/dist/esm/utils/vertex_ai_utils.js +7 -2
- package/dist/esm/version.js +1 -1
- package/dist/esm/workflow/base_node.js +182 -0
- package/dist/esm/workflow/branch_path.js +77 -0
- package/dist/esm/workflow/dynamic_node_scheduler.js +202 -0
- package/dist/esm/workflow/errors.js +140 -0
- package/dist/esm/workflow/graph.js +127 -0
- package/dist/esm/workflow/index.js +80 -0
- package/dist/esm/workflow/node.js +38 -0
- package/dist/esm/workflow/node_builders.js +40 -0
- package/dist/esm/workflow/node_context.js +219 -0
- package/dist/esm/workflow/node_error_event.js +57 -0
- package/dist/esm/workflow/node_runner.js +439 -0
- package/dist/esm/workflow/node_state.js +29 -0
- package/dist/esm/workflow/node_status.js +20 -0
- package/dist/esm/workflow/nodes/function_node.js +172 -0
- package/dist/esm/workflow/nodes/join_node.js +29 -0
- package/dist/esm/workflow/nodes/node_tool.js +131 -0
- package/dist/esm/workflow/nodes/parallel_worker.js +102 -0
- package/dist/esm/workflow/nodes/tool_node.js +90 -0
- package/dist/esm/workflow/request_input.js +36 -0
- package/dist/esm/workflow/retry_config.js +43 -0
- package/dist/esm/workflow/run_llm_agent_as_node.js +172 -0
- package/dist/esm/workflow/run_node_as_invocation.js +139 -0
- package/dist/esm/workflow/schedule_dynamic_node.js +26 -0
- package/dist/esm/workflow/trigger.js +7 -0
- package/dist/esm/workflow/utils/graph_parser.js +188 -0
- package/dist/esm/workflow/utils/graph_validation.js +189 -0
- package/dist/esm/workflow/utils/hitl_utils.js +222 -0
- package/dist/esm/workflow/utils/rehydration_utils.js +342 -0
- package/dist/esm/workflow/utils/retry_utils.js +82 -0
- package/dist/esm/workflow/utils/workflow_graph_utils.js +115 -0
- package/dist/esm/workflow/workflow.js +493 -0
- package/dist/types/a2a/agent_card.d.ts +3 -3
- package/dist/types/a2a/agent_to_a2a.d.ts +4 -4
- package/dist/types/a2a/auth.d.ts +30 -0
- package/dist/types/a2a/event_converter_utils.d.ts +4 -1
- package/dist/types/a2a/event_processor_utils.d.ts +17 -2
- package/dist/types/a2a/index.d.ts +18 -0
- package/dist/types/agents/base_agent.d.ts +37 -9
- package/dist/types/agents/framework_function_calls.d.ts +26 -0
- package/dist/types/agents/functions.d.ts +1 -2
- package/dist/types/agents/invocation_context.d.ts +95 -3
- package/dist/types/agents/live_request_queue.d.ts +7 -1
- package/dist/types/agents/llm_agent.d.ts +77 -1
- package/dist/types/agents/loop_agent.d.ts +5 -0
- package/dist/types/agents/parallel_agent.d.ts +5 -0
- package/dist/types/agents/processors/content_processor_utils.d.ts +3 -2
- package/dist/types/agents/processors/identity_llm_request_processor.d.ts +4 -1
- package/dist/types/agents/processors/request_input_llm_request_processor.d.ts +21 -0
- package/dist/types/agents/run_config.d.ts +57 -2
- package/dist/types/agents/sequential_agent.d.ts +5 -0
- package/dist/types/agents/user_input_request.d.ts +71 -0
- package/dist/types/apps/app.d.ts +8 -3
- package/dist/types/artifacts/gcs_artifact_service.d.ts +9 -2
- package/dist/types/auth/credential_response_binding.d.ts +24 -0
- package/dist/types/auth/credential_service/in_memory_credential_service.d.ts +11 -0
- package/dist/types/code_executors/unsafe_local_code_executor.d.ts +5 -1
- package/dist/types/common.d.ts +20 -8
- package/dist/types/context/agent_controlled_context_compactor.d.ts +0 -1
- package/dist/types/context/compaction_utils.d.ts +8 -0
- package/dist/types/context/token_based_context_compactor.d.ts +0 -1
- package/dist/types/environment/base_environment.d.ts +101 -0
- package/dist/types/environment/local_environment.d.ts +72 -0
- package/dist/types/events/event.d.ts +94 -1
- package/dist/types/events/event_actions.d.ts +10 -0
- package/dist/types/index.d.ts +6 -13
- package/dist/types/memory/in_memory_memory_service.d.ts +11 -0
- package/dist/types/models/apigee_llm.d.ts +4 -4
- package/dist/types/models/google_llm.d.ts +2 -1
- package/dist/types/plugins/base_plugin.d.ts +39 -2
- package/dist/types/plugins/plugin_manager.d.ts +20 -0
- package/dist/types/plugins/security_plugin.d.ts +4 -2
- package/dist/types/runner/in_memory_runner.d.ts +2 -2
- package/dist/types/runner/runner.d.ts +59 -3
- package/dist/types/sessions/base_session_service.d.ts +10 -2
- package/dist/types/sessions/in_memory_session_service.d.ts +9 -0
- package/dist/types/sessions/state.d.ts +34 -1
- package/dist/types/sessions/state_write_order.d.ts +39 -0
- package/dist/types/sessions/vertex_ai_session_service.d.ts +19 -1
- package/dist/types/skills/loader.d.ts +5 -0
- package/dist/types/telemetry/tracing.d.ts +15 -0
- package/dist/types/tools/base_tool.d.ts +15 -0
- package/dist/types/tools/finish_task_tool.d.ts +47 -0
- package/dist/types/tools/function_tool.d.ts +46 -1
- package/dist/types/tools/get_user_choice_tool.d.ts +14 -0
- package/dist/types/tools/mcp/index.d.ts +13 -0
- package/dist/types/tools/mcp/mcp_session_manager.d.ts +3 -3
- package/dist/types/tools/mcp/mcp_tool.d.ts +1 -1
- package/dist/types/tools/mcp/mcp_toolset.d.ts +1 -1
- package/dist/types/tools/request_input_tool.d.ts +20 -0
- package/dist/types/tools/skill/skill_toolset.d.ts +26 -0
- package/dist/types/tools/tool_confirmation.d.ts +47 -0
- package/dist/types/utils/async_queue.d.ts +34 -2
- package/dist/types/utils/crypto_shim.d.ts +16 -0
- package/dist/types/utils/deprecated.d.ts +21 -0
- package/dist/types/utils/env_aware_utils.d.ts +39 -0
- package/dist/types/utils/error_utils.d.ts +18 -0
- package/dist/types/utils/file_utils.d.ts +10 -2
- package/dist/types/utils/genai_schema_to_json.d.ts +25 -0
- package/dist/types/utils/optional_peer.d.ts +36 -0
- package/dist/types/utils/output_schema_utils.d.ts +18 -0
- package/dist/types/utils/redact_uri.d.ts +28 -0
- package/dist/types/utils/schema.d.ts +73 -0
- package/dist/types/utils/simple_zod_to_json.d.ts +8 -0
- package/dist/types/utils/vertex_ai_utils.d.ts +5 -0
- package/dist/types/version.d.ts +1 -1
- package/dist/types/workflow/base_node.d.ts +142 -0
- package/dist/types/workflow/branch_path.d.ts +40 -0
- package/dist/types/workflow/dynamic_node_scheduler.d.ts +64 -0
- package/dist/types/workflow/errors.d.ts +132 -0
- package/dist/types/workflow/graph.d.ts +127 -0
- package/dist/types/workflow/index.d.ts +46 -0
- package/dist/types/workflow/node.d.ts +48 -0
- package/dist/types/workflow/node_builders.d.ts +25 -0
- package/dist/types/workflow/node_context.d.ts +208 -0
- package/dist/types/workflow/node_error_event.d.ts +18 -0
- package/dist/types/workflow/node_runner.d.ts +82 -0
- package/dist/types/workflow/node_state.d.ts +47 -0
- package/dist/types/workflow/node_status.d.ts +28 -0
- package/dist/types/workflow/nodes/function_node.d.ts +78 -0
- package/dist/types/workflow/nodes/join_node.d.ts +24 -0
- package/dist/types/workflow/nodes/node_tool.d.ts +53 -0
- package/dist/types/workflow/nodes/parallel_worker.d.ts +55 -0
- package/dist/types/workflow/nodes/tool_node.d.ts +34 -0
- package/dist/types/workflow/request_input.d.ts +73 -0
- package/dist/types/workflow/retry_config.d.ts +84 -0
- package/dist/types/workflow/run_llm_agent_as_node.d.ts +28 -0
- package/dist/types/workflow/run_node_as_invocation.d.ts +72 -0
- package/dist/types/workflow/schedule_dynamic_node.d.ts +66 -0
- package/dist/types/workflow/trigger.d.ts +22 -0
- package/dist/types/workflow/utils/graph_parser.d.ts +8 -0
- package/dist/types/workflow/utils/graph_validation.d.ts +18 -0
- package/dist/types/workflow/utils/hitl_utils.d.ts +92 -0
- package/dist/types/workflow/utils/rehydration_utils.d.ts +132 -0
- package/dist/types/workflow/utils/retry_utils.d.ts +54 -0
- package/dist/types/workflow/utils/workflow_graph_utils.d.ts +76 -0
- package/dist/types/workflow/workflow.d.ts +115 -0
- package/dist/web/a2a/a2a_event.js +19 -0
- package/dist/web/a2a/a2a_remote_agent.js +18 -4
- package/dist/web/a2a/a2a_remote_agent_run_processor.js +8 -3
- package/dist/web/a2a/a2a_remote_agent_utils.js +10 -2
- package/dist/web/a2a/agent_card.js +34 -3
- package/dist/web/a2a/agent_executor.js +45 -17
- package/dist/web/a2a/agent_to_a2a.js +44 -16
- package/dist/web/a2a/auth.js +41 -0
- package/dist/web/a2a/event_converter_utils.js +50 -15
- package/dist/web/a2a/event_processor_utils.js +73 -34
- package/dist/web/a2a/executor_context.js +3 -0
- package/dist/web/a2a/index.js +20 -0
- package/dist/web/a2a/metadata_converter_utils.js +5 -0
- package/dist/web/a2a/part_converter_utils.js +13 -0
- package/dist/web/agents/active_streaming_tool.js +6 -2
- package/dist/web/agents/base_agent.js +48 -9
- package/dist/web/agents/context.js +6 -2
- package/dist/web/agents/framework_function_calls.js +34 -0
- package/dist/web/agents/functions.js +62 -20
- package/dist/web/agents/instructions.js +52 -12
- package/dist/web/agents/invocation_context.js +56 -7
- package/dist/web/agents/live_request_queue.js +30 -5
- package/dist/web/agents/llm_agent.js +631 -52
- package/dist/web/agents/loop_agent.js +21 -2
- package/dist/web/agents/parallel_agent.js +23 -2
- package/dist/web/agents/processors/agent_transfer_llm_request_processor.js +8 -4
- package/dist/web/agents/processors/base_llm_processor.js +10 -4
- package/dist/web/agents/processors/basic_llm_request_processor.js +8 -4
- package/dist/web/agents/processors/code_execution_request_processor.js +19 -5
- package/dist/web/agents/processors/content_processor_utils.js +87 -16
- package/dist/web/agents/processors/content_request_processor.js +12 -25
- package/dist/web/agents/processors/context_compactor_request_processor.js +6 -2
- package/dist/web/agents/processors/identity_llm_request_processor.js +13 -4
- package/dist/web/agents/processors/instructions_llm_request_processor.js +9 -3
- package/dist/web/agents/processors/interactions_request_processor.js +6 -2
- package/dist/web/agents/processors/request_confirmation_llm_request_processor.js +329 -104
- package/dist/web/agents/processors/request_input_llm_request_processor.js +228 -0
- package/dist/web/agents/processors/tool_filter_request_processor.js +6 -2
- package/dist/web/agents/readonly_context.js +8 -3
- package/dist/web/agents/routed_agent.js +6 -14
- package/dist/web/agents/run_config.js +12 -0
- package/dist/web/agents/sequential_agent.js +22 -3
- package/dist/web/agents/user_input_request.js +135 -0
- package/dist/web/apps/app.js +14 -11
- package/dist/web/apps/resumability_config.js +2 -0
- package/dist/web/artifacts/file_artifact_service.js +22 -2
- package/dist/web/artifacts/gcs_artifact_service.js +56 -11
- package/dist/web/artifacts/in_memory_artifact_service.js +20 -11
- package/dist/web/artifacts/registry.js +7 -1
- package/dist/web/artifacts/scoped_artifact_service.js +5 -2
- package/dist/web/auth/auth_handler.js +5 -2
- package/dist/web/auth/auth_preprocessor.js +50 -41
- package/dist/web/auth/auth_provider_registry.js +6 -2
- package/dist/web/auth/auth_schemes.js +3 -0
- package/dist/web/auth/credential_response_binding.js +91 -0
- package/dist/web/auth/credential_service/in_memory_credential_service.js +20 -5
- package/dist/web/auth/credential_service/session_state_credential_service.js +6 -2
- package/dist/web/auth/exchanger/base_credential_exchanger.js +6 -2
- package/dist/web/auth/exchanger/credential_exchanger_registry.js +6 -2
- package/dist/web/auth/oauth2/oauth2_credential_exchanger.js +8 -2
- package/dist/web/auth/oauth2/oauth2_credential_refresher.js +5 -2
- package/dist/web/auth/oauth2/oauth2_discovery.js +8 -2
- package/dist/web/auth/oauth2/oauth2_utils.js +7 -0
- package/dist/web/auth/refresher/base_credential_refresher.js +6 -2
- package/dist/web/auth/refresher/credential_refresher_registry.js +6 -2
- package/dist/web/code_executors/agent_engine_sandbox_code_executor.js +3 -0
- package/dist/web/code_executors/base_code_executor.js +7 -2
- package/dist/web/code_executors/built_in_code_executor.js +7 -2
- package/dist/web/code_executors/code_execution_utils.js +7 -0
- package/dist/web/code_executors/code_executor_context.js +6 -2
- package/dist/web/code_executors/unsafe_local_code_executor.js +31 -13
- package/dist/web/common.js +113 -4
- package/dist/web/context/agent_controlled_context_compactor.js +8 -13
- package/dist/web/context/anchored_context_compactor.js +5 -2
- package/dist/web/context/compaction_utils.js +16 -1
- package/dist/web/context/summarizers/llm_summarizer.js +6 -2
- package/dist/web/context/token_based_context_compactor.js +16 -24
- package/dist/web/context/trajectory_thought_pruning_compactor.js +6 -2
- package/dist/web/context/truncating_context_compactor.js +6 -2
- package/dist/web/environment/base_environment.js +71 -0
- package/dist/web/environment/local_environment.js +165 -0
- package/dist/web/events/compacted_event.js +4 -0
- package/dist/web/events/event.js +37 -3
- package/dist/web/events/event_actions.js +5 -0
- package/dist/web/events/structured_events.js +3 -0
- package/dist/web/examples/base_example_provider.js +7 -2
- package/dist/web/examples/example_util.js +4 -0
- package/dist/web/features/feature_registry.js +8 -0
- package/dist/web/index.js +4 -13
- package/dist/web/integrations/agent_registry/agent_registry.js +8 -4
- package/dist/web/integrations/agent_registry/agent_registry_mcp_toolset.js +5 -2
- package/dist/web/integrations/agent_registry/helpers.js +4 -0
- package/dist/web/memory/in_memory_memory_service.js +22 -4
- package/dist/web/memory/vertex_ai_memory_bank_service.js +24 -3
- package/dist/web/models/apigee_llm.js +9 -3
- package/dist/web/models/base_llm.js +8 -3
- package/dist/web/models/gemini_llm_connection.js +6 -2
- package/dist/web/models/google_llm.js +25 -13
- package/dist/web/models/interactions_utils.js +17 -0
- package/dist/web/models/llm_request.js +5 -0
- package/dist/web/models/llm_response.js +3 -0
- package/dist/web/models/registry.js +7 -2
- package/dist/web/models/routed_llm.js +4 -14
- package/dist/web/plugins/base_plugin.js +43 -7
- package/dist/web/plugins/global_instruction_plugin.js +6 -2
- package/dist/web/plugins/logging_plugin.js +14 -8
- package/dist/web/plugins/plugin_manager.js +38 -2
- package/dist/web/plugins/security_plugin.js +14 -6
- package/dist/web/runner/in_memory_runner.js +6 -2
- package/dist/web/runner/runner.js +249 -31
- package/dist/web/sessions/base_session_service.js +22 -5
- package/dist/web/sessions/database_session_service.js +6 -2
- package/dist/web/sessions/db/operations.js +34 -6
- package/dist/web/sessions/db/schema.js +16 -8
- package/dist/web/sessions/in_memory_session_service.js +31 -22
- package/dist/web/sessions/registry.js +5 -1
- package/dist/web/sessions/session.js +3 -0
- package/dist/web/sessions/state.js +77 -7
- package/dist/web/sessions/state_write_order.js +74 -0
- package/dist/web/sessions/vertex_ai_session_service.js +142 -26
- package/dist/web/skills/gcp_skill_registry.js +2 -0
- package/dist/web/skills/loader.js +62 -16
- package/dist/web/skills/prompt.js +4 -0
- package/dist/web/telemetry/google_cloud.js +54 -9
- package/dist/web/telemetry/setup.js +6 -0
- package/dist/web/telemetry/tracing.js +77 -7
- package/dist/web/tools/agent_tool.js +7 -2
- package/dist/web/tools/base_tool.js +25 -2
- package/dist/web/tools/base_toolset.js +7 -2
- package/dist/web/tools/consolidate_context_tool.js +6 -2
- package/dist/web/tools/enterprise_web_search_tool.js +7 -2
- package/dist/web/tools/example_tool.js +6 -2
- package/dist/web/tools/exit_loop_tool.js +6 -2
- package/dist/web/tools/finish_task_tool.js +92 -0
- package/dist/web/tools/forwarding_artifact_service.js +6 -2
- package/dist/web/tools/function_tool.js +74 -8
- package/dist/web/tools/get_user_choice_tool.js +27 -0
- package/dist/web/tools/google_maps_grounding_tool.js +7 -2
- package/dist/web/tools/google_search_tool.js +6 -2
- package/dist/web/tools/load_artifacts_tool.js +9 -2
- package/dist/web/tools/load_memory_tool.js +6 -2
- package/dist/web/tools/load_web_page.js +22 -1
- package/dist/web/tools/long_running_tool.js +5 -2
- package/dist/web/tools/mcp/index.js +11 -0
- package/dist/web/tools/mcp/load_mcp_resource_tool.js +6 -2
- package/dist/web/tools/mcp/mcp_session_manager.js +80 -30
- package/dist/web/tools/mcp/mcp_tool.js +6 -2
- package/dist/web/tools/mcp/mcp_toolset.js +5 -2
- package/dist/web/tools/openapi_tool/auth/auth_helpers.js +5 -0
- package/dist/web/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +2 -0
- package/dist/web/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +2 -0
- package/dist/web/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +30 -9
- package/dist/web/tools/openapi_tool/openapi_spec_parser/operation_parser.js +2 -0
- package/dist/web/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +6 -2
- package/dist/web/tools/openapi_tool/openapi_toolset.js +2 -0
- package/dist/web/tools/openapi_tool/rest_api_tool.js +23 -5
- package/dist/web/tools/preload_memory_tool.js +6 -2
- package/dist/web/tools/request_input_tool.js +29 -0
- package/dist/web/tools/skill/list_skills_tool.js +2 -0
- package/dist/web/tools/skill/load_skill_resource_tool.js +2 -0
- package/dist/web/tools/skill/load_skill_tool.js +4 -1
- package/dist/web/tools/skill/run_skill_inline_script_tool.js +26 -2
- package/dist/web/tools/skill/run_skill_script_tool.js +28 -2
- package/dist/web/tools/skill/search_skills_tool.js +2 -0
- package/dist/web/tools/skill/skill_toolset.js +25 -0
- package/dist/web/tools/tool_confirmation.js +24 -2
- package/dist/web/tools/url_context_tool.js +6 -2
- package/dist/web/tools/vertex_ai_search_tool.js +6 -2
- package/dist/web/tools/vertex_rag_retrieval_tool.js +6 -2
- package/dist/web/utils/async_hooks_shim.js +6 -2
- package/dist/web/utils/async_queue.js +46 -18
- package/dist/web/utils/branch_trie.js +3 -0
- package/dist/web/utils/case_utils.js +3 -0
- package/dist/web/utils/client_labels.js +6 -0
- package/dist/web/utils/crypto_shim.js +18 -0
- package/dist/web/utils/deprecated.js +40 -0
- package/dist/web/utils/env_aware_utils.js +56 -13
- package/dist/web/utils/error_utils.js +101 -0
- package/dist/web/utils/experimental.js +10 -2
- package/dist/web/utils/failover_utils.js +4 -0
- package/dist/web/utils/file_extension_utils.js +4 -0
- package/dist/web/utils/file_utils.js +12 -4
- package/dist/web/utils/gemini_schema_util.js +6 -2
- package/dist/web/utils/genai_schema_to_json.js +80 -0
- package/dist/web/utils/live_connection_utils.js +5 -2
- package/dist/web/utils/logger.js +14 -4
- package/dist/web/utils/model_name.js +9 -0
- package/dist/web/utils/object_notation_utils.js +8 -3
- package/dist/web/utils/optional_peer.js +38 -0
- package/dist/web/utils/output_schema_utils.js +18 -0
- package/dist/web/utils/partial_copy.js +3 -0
- package/dist/web/utils/redact_uri.js +39 -0
- package/dist/web/utils/schema.js +167 -0
- package/dist/web/utils/simple_zod_to_json.js +15 -4
- package/dist/web/utils/streaming_utils.js +14 -6
- package/dist/web/utils/task.js +8 -4
- package/dist/web/utils/variant_utils.js +5 -2
- package/dist/web/utils/vertex_ai_utils.js +7 -2
- package/dist/web/version.js +1 -1
- package/dist/web/workflow/base_node.js +215 -0
- package/dist/web/workflow/branch_path.js +77 -0
- package/dist/web/workflow/dynamic_node_scheduler.js +202 -0
- package/dist/web/workflow/errors.js +140 -0
- package/dist/web/workflow/graph.js +127 -0
- package/dist/web/workflow/index.js +80 -0
- package/dist/web/workflow/node.js +87 -0
- package/dist/web/workflow/node_builders.js +40 -0
- package/dist/web/workflow/node_context.js +236 -0
- package/dist/web/workflow/node_error_event.js +86 -0
- package/dist/web/workflow/node_runner.js +481 -0
- package/dist/web/workflow/node_state.js +43 -0
- package/dist/web/workflow/node_status.js +20 -0
- package/dist/web/workflow/nodes/function_node.js +221 -0
- package/dist/web/workflow/nodes/join_node.js +47 -0
- package/dist/web/workflow/nodes/node_tool.js +131 -0
- package/dist/web/workflow/nodes/parallel_worker.js +120 -0
- package/dist/web/workflow/nodes/tool_node.js +126 -0
- package/dist/web/workflow/request_input.js +36 -0
- package/dist/web/workflow/retry_config.js +43 -0
- package/dist/web/workflow/run_llm_agent_as_node.js +266 -0
- package/dist/web/workflow/run_node_as_invocation.js +170 -0
- package/dist/web/workflow/schedule_dynamic_node.js +26 -0
- package/dist/web/workflow/trigger.js +7 -0
- package/dist/web/workflow/utils/graph_parser.js +188 -0
- package/dist/web/workflow/utils/graph_validation.js +189 -0
- package/dist/web/workflow/utils/hitl_utils.js +239 -0
- package/dist/web/workflow/utils/rehydration_utils.js +342 -0
- package/dist/web/workflow/utils/retry_utils.js +82 -0
- package/dist/web/workflow/utils/workflow_graph_utils.js +115 -0
- package/dist/web/workflow/workflow.js +529 -0
- package/package.json +82 -8
|
@@ -2,6 +2,7 @@ import {createRequire as topLevelCreateRequire} from 'module';
|
|
|
2
2
|
const require = topLevelCreateRequire(import.meta.url);
|
|
3
3
|
var __defProp = Object.defineProperty;
|
|
4
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
5
6
|
var __decorateClass = (decorators, target, key, kind) => {
|
|
6
7
|
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
7
8
|
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
@@ -19,7 +20,10 @@ import { Client } from "@google-cloud/vertexai/build/src/genai/client.js";
|
|
|
19
20
|
import { isCompactedEvent } from "../events/compacted_event.js";
|
|
20
21
|
import { experimental } from "../utils/experimental.js";
|
|
21
22
|
import { logger } from "../utils/logger.js";
|
|
22
|
-
import {
|
|
23
|
+
import {
|
|
24
|
+
EXPRESS_MODE_UNSUPPORTED_MESSAGE,
|
|
25
|
+
getExpressModeApiKey
|
|
26
|
+
} from "../utils/vertex_ai_utils.js";
|
|
23
27
|
import { partialCopy } from "../utils/partial_copy.js";
|
|
24
28
|
import {
|
|
25
29
|
BaseSessionService,
|
|
@@ -29,13 +33,17 @@ import { createSession } from "./session.js";
|
|
|
29
33
|
const DEFAULT_MAX_ATTEMPTS = 30;
|
|
30
34
|
const GRPC_NOT_FOUND = 5;
|
|
31
35
|
const HTTP_NOT_FOUND = 404;
|
|
36
|
+
const HTTP_BAD_REQUEST = 400;
|
|
37
|
+
const WORKFLOW_CUSTOM_METADATA_KEY = "_workflow";
|
|
32
38
|
function isVertexAiConnectionString(uri) {
|
|
33
39
|
return (uri == null ? void 0 : uri.startsWith("vertexai://")) || false;
|
|
34
40
|
}
|
|
41
|
+
__name(isVertexAiConnectionString, "isVertexAiConnectionString");
|
|
35
42
|
function quoteFilterLiteral(value) {
|
|
36
43
|
const escaped = value.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
|
|
37
44
|
return `"${escaped}"`;
|
|
38
45
|
}
|
|
46
|
+
__name(quoteFilterLiteral, "quoteFilterLiteral");
|
|
39
47
|
let VertexAiSessionService = class extends BaseSessionService {
|
|
40
48
|
constructor(options) {
|
|
41
49
|
super();
|
|
@@ -47,16 +55,14 @@ let VertexAiSessionService = class extends BaseSessionService {
|
|
|
47
55
|
this.location,
|
|
48
56
|
options.expressModeApiKey
|
|
49
57
|
);
|
|
50
|
-
if (!options.sessions) {
|
|
51
|
-
if (!this.expressModeApiKey && (!this.projectId || !this.location)) {
|
|
52
|
-
throw new Error(
|
|
53
|
-
"Either (Project ID and Location) or an expressModeApiKey is required."
|
|
54
|
-
);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
58
|
if (options.sessions) {
|
|
58
59
|
this.sessions = options.sessions;
|
|
59
60
|
} else {
|
|
61
|
+
if (!this.projectId || !this.location) {
|
|
62
|
+
throw new Error(
|
|
63
|
+
this.expressModeApiKey ? EXPRESS_MODE_UNSUPPORTED_MESSAGE : "Project ID and Location are required."
|
|
64
|
+
);
|
|
65
|
+
}
|
|
60
66
|
const client = new Client({
|
|
61
67
|
project: this.projectId,
|
|
62
68
|
location: this.location
|
|
@@ -80,13 +86,25 @@ let VertexAiSessionService = class extends BaseSessionService {
|
|
|
80
86
|
}
|
|
81
87
|
return match[3];
|
|
82
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* Creates a session on Vertex AI Agent Engine.
|
|
91
|
+
*
|
|
92
|
+
* @throws if both `ttl` and `expireTime` are specified.
|
|
93
|
+
*/
|
|
83
94
|
async createSession({
|
|
84
95
|
appName,
|
|
85
96
|
userId,
|
|
86
97
|
state,
|
|
87
|
-
sessionId
|
|
98
|
+
sessionId,
|
|
99
|
+
ttl,
|
|
100
|
+
expireTime
|
|
88
101
|
}) {
|
|
89
102
|
var _a;
|
|
103
|
+
if (ttl != null && expireTime != null) {
|
|
104
|
+
throw new Error(
|
|
105
|
+
"Cannot specify both 'ttl' and 'expireTime' simultaneously."
|
|
106
|
+
);
|
|
107
|
+
}
|
|
90
108
|
const reasoningEngineId = this.getReasoningEngineId(appName);
|
|
91
109
|
const filteredState = state ? trimTempState(state) : void 0;
|
|
92
110
|
let apiResponse = await this.sessions.createInternal({
|
|
@@ -94,7 +112,9 @@ let VertexAiSessionService = class extends BaseSessionService {
|
|
|
94
112
|
userId,
|
|
95
113
|
config: {
|
|
96
114
|
...filteredState ? { sessionState: filteredState } : {},
|
|
97
|
-
...sessionId ? { sessionId } : {}
|
|
115
|
+
...sessionId ? { sessionId } : {},
|
|
116
|
+
...ttl != null ? { ttl } : {},
|
|
117
|
+
...expireTime != null ? { expireTime } : {}
|
|
98
118
|
}
|
|
99
119
|
});
|
|
100
120
|
const operationName = apiResponse.name;
|
|
@@ -180,7 +200,7 @@ let VertexAiSessionService = class extends BaseSessionService {
|
|
|
180
200
|
return session;
|
|
181
201
|
} catch (error) {
|
|
182
202
|
const err = error;
|
|
183
|
-
if (err.code === GRPC_NOT_FOUND || err.code === HTTP_NOT_FOUND) {
|
|
203
|
+
if (err.code === GRPC_NOT_FOUND || err.code === HTTP_NOT_FOUND || err.status === HTTP_NOT_FOUND) {
|
|
184
204
|
return void 0;
|
|
185
205
|
}
|
|
186
206
|
logger.error(`Error getting session from Vertex AI: ${err.message}`);
|
|
@@ -299,12 +319,17 @@ let VertexAiSessionService = class extends BaseSessionService {
|
|
|
299
319
|
if (event.usageMetadata) {
|
|
300
320
|
customMetadata._usage_metadata = event.usageMetadata;
|
|
301
321
|
}
|
|
322
|
+
const workflowMetadata = toWorkflowMetadata(event);
|
|
323
|
+
if (workflowMetadata) {
|
|
324
|
+
customMetadata[WORKFLOW_CUSTOM_METADATA_KEY] = workflowMetadata;
|
|
325
|
+
}
|
|
302
326
|
const config = partialCopy(event, [
|
|
303
|
-
"content",
|
|
304
|
-
"actions",
|
|
305
327
|
"errorCode",
|
|
306
328
|
"errorMessage"
|
|
307
329
|
]);
|
|
330
|
+
config.actions = toApiActions(event.actions);
|
|
331
|
+
const content = dropUnsupportedPartFields(event.content);
|
|
332
|
+
config.content = content;
|
|
308
333
|
config.eventMetadata = {
|
|
309
334
|
...partialCopy(event, [
|
|
310
335
|
"partial",
|
|
@@ -316,7 +341,7 @@ let VertexAiSessionService = class extends BaseSessionService {
|
|
|
316
341
|
]),
|
|
317
342
|
customMetadata: Object.keys(customMetadata).length > 0 ? customMetadata : void 0
|
|
318
343
|
};
|
|
319
|
-
config.rawEvent = JSON.parse(JSON.stringify(event));
|
|
344
|
+
config.rawEvent = JSON.parse(JSON.stringify({ ...event, content }));
|
|
320
345
|
const params = {
|
|
321
346
|
name: `reasoningEngines/${reasoningEngineId}/sessions/${session.id}`,
|
|
322
347
|
author: event.author || "user",
|
|
@@ -327,27 +352,99 @@ let VertexAiSessionService = class extends BaseSessionService {
|
|
|
327
352
|
try {
|
|
328
353
|
await this.sessions.events.append(params);
|
|
329
354
|
} catch (error) {
|
|
355
|
+
if (!isInvalidArgumentError(error)) {
|
|
356
|
+
throw error;
|
|
357
|
+
}
|
|
330
358
|
logger.warn(
|
|
331
|
-
"Failed to append event with rawEvent
|
|
359
|
+
"Failed to append event with rawEvent; retrying without it. The event will be reconstructed from its structured fields and customMetadata on read.",
|
|
332
360
|
error
|
|
333
361
|
);
|
|
334
362
|
delete config.rawEvent;
|
|
335
|
-
await this.sessions.events.append(
|
|
336
|
-
name: `reasoningEngines/${reasoningEngineId}/sessions/${session.id}`,
|
|
337
|
-
author: event.author || "user",
|
|
338
|
-
invocationId: event.invocationId || `inv-${Date.now()}`,
|
|
339
|
-
timestamp: new Date(event.timestamp).toISOString(),
|
|
340
|
-
config
|
|
341
|
-
});
|
|
363
|
+
await this.sessions.events.append(params);
|
|
342
364
|
}
|
|
343
365
|
return event;
|
|
344
366
|
}
|
|
345
367
|
};
|
|
368
|
+
__name(VertexAiSessionService, "VertexAiSessionService");
|
|
346
369
|
VertexAiSessionService = __decorateClass([
|
|
347
370
|
experimental
|
|
348
371
|
], VertexAiSessionService);
|
|
372
|
+
function toWorkflowMetadata(event) {
|
|
373
|
+
var _a, _b;
|
|
374
|
+
const metadata = {};
|
|
375
|
+
if (event.output !== void 0) {
|
|
376
|
+
metadata.output = event.output;
|
|
377
|
+
}
|
|
378
|
+
if (event.route !== void 0) {
|
|
379
|
+
metadata.route = event.route;
|
|
380
|
+
}
|
|
381
|
+
if (event.nodeInfo !== void 0) {
|
|
382
|
+
metadata.nodeInfo = event.nodeInfo;
|
|
383
|
+
}
|
|
384
|
+
if (event.isolationScope !== void 0) {
|
|
385
|
+
metadata.isolationScope = event.isolationScope;
|
|
386
|
+
}
|
|
387
|
+
if (((_a = event.actions) == null ? void 0 : _a.agentState) !== void 0) {
|
|
388
|
+
metadata.agentState = event.actions.agentState;
|
|
389
|
+
}
|
|
390
|
+
if (((_b = event.actions) == null ? void 0 : _b.endOfAgent) !== void 0) {
|
|
391
|
+
metadata.endOfAgent = event.actions.endOfAgent;
|
|
392
|
+
}
|
|
393
|
+
return Object.keys(metadata).length > 0 ? metadata : void 0;
|
|
394
|
+
}
|
|
395
|
+
__name(toWorkflowMetadata, "toWorkflowMetadata");
|
|
396
|
+
function applyWorkflowMetadata(event, metadata) {
|
|
397
|
+
if (metadata.output !== void 0) {
|
|
398
|
+
event.output = metadata.output;
|
|
399
|
+
}
|
|
400
|
+
if (metadata.route !== void 0) {
|
|
401
|
+
event.route = metadata.route;
|
|
402
|
+
}
|
|
403
|
+
if (metadata.nodeInfo !== void 0) {
|
|
404
|
+
event.nodeInfo = metadata.nodeInfo;
|
|
405
|
+
}
|
|
406
|
+
if (metadata.isolationScope !== void 0) {
|
|
407
|
+
event.isolationScope = metadata.isolationScope;
|
|
408
|
+
}
|
|
409
|
+
if (metadata.agentState !== void 0) {
|
|
410
|
+
event.actions.agentState = metadata.agentState;
|
|
411
|
+
}
|
|
412
|
+
if (metadata.endOfAgent !== void 0) {
|
|
413
|
+
event.actions.endOfAgent = metadata.endOfAgent;
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
__name(applyWorkflowMetadata, "applyWorkflowMetadata");
|
|
417
|
+
function toApiActions(actions) {
|
|
418
|
+
if (!actions) {
|
|
419
|
+
return void 0;
|
|
420
|
+
}
|
|
421
|
+
const { transferToAgent, ...rest } = actions;
|
|
422
|
+
return {
|
|
423
|
+
...rest,
|
|
424
|
+
...transferToAgent !== void 0 ? { transferAgent: transferToAgent } : {}
|
|
425
|
+
};
|
|
426
|
+
}
|
|
427
|
+
__name(toApiActions, "toApiActions");
|
|
428
|
+
function dropUnsupportedPartFields(content) {
|
|
429
|
+
if (!(content == null ? void 0 : content.parts)) {
|
|
430
|
+
return content;
|
|
431
|
+
}
|
|
432
|
+
return {
|
|
433
|
+
...content,
|
|
434
|
+
parts: content.parts.map((part) => {
|
|
435
|
+
const copy = { ...part };
|
|
436
|
+
delete copy.partMetadata;
|
|
437
|
+
return copy;
|
|
438
|
+
})
|
|
439
|
+
};
|
|
440
|
+
}
|
|
441
|
+
__name(dropUnsupportedPartFields, "dropUnsupportedPartFields");
|
|
442
|
+
function isInvalidArgumentError(error) {
|
|
443
|
+
return (error == null ? void 0 : error.status) === HTTP_BAD_REQUEST;
|
|
444
|
+
}
|
|
445
|
+
__name(isInvalidArgumentError, "isInvalidArgumentError");
|
|
349
446
|
function _fromApiEvent(apiEventObj) {
|
|
350
|
-
var _a, _b, _c;
|
|
447
|
+
var _a, _b, _c, _d;
|
|
351
448
|
const rawEvent = apiEventObj.rawEvent;
|
|
352
449
|
if (rawEvent) {
|
|
353
450
|
const event2 = JSON.parse(JSON.stringify(rawEvent));
|
|
@@ -364,7 +461,9 @@ function _fromApiEvent(apiEventObj) {
|
|
|
364
461
|
let customMetadata = eventMetadata.customMetadata;
|
|
365
462
|
let compactionData = null;
|
|
366
463
|
let usageMetadataData = null;
|
|
464
|
+
let workflowData;
|
|
367
465
|
if (customMetadata) {
|
|
466
|
+
customMetadata = { ...customMetadata };
|
|
368
467
|
if (customMetadata._compaction) {
|
|
369
468
|
compactionData = customMetadata._compaction;
|
|
370
469
|
delete customMetadata._compaction;
|
|
@@ -373,6 +472,10 @@ function _fromApiEvent(apiEventObj) {
|
|
|
373
472
|
usageMetadataData = customMetadata._usage_metadata;
|
|
374
473
|
delete customMetadata._usage_metadata;
|
|
375
474
|
}
|
|
475
|
+
if (customMetadata[WORKFLOW_CUSTOM_METADATA_KEY]) {
|
|
476
|
+
workflowData = customMetadata[WORKFLOW_CUSTOM_METADATA_KEY];
|
|
477
|
+
delete customMetadata[WORKFLOW_CUSTOM_METADATA_KEY];
|
|
478
|
+
}
|
|
376
479
|
if (Object.keys(customMetadata).length === 0) {
|
|
377
480
|
customMetadata = void 0;
|
|
378
481
|
}
|
|
@@ -383,18 +486,20 @@ function _fromApiEvent(apiEventObj) {
|
|
|
383
486
|
requestedAuthConfigs: actions.requestedAuthConfigs || {},
|
|
384
487
|
requestedToolConfirmations: actions["requestedToolConfirmations"] || {},
|
|
385
488
|
skipSummarization: actions["skipSummarization"],
|
|
386
|
-
|
|
489
|
+
// Earlier adk-js versions copied `event.actions` onto the request
|
|
490
|
+
// verbatim, so sessions they wrote store ADK's own `transferToAgent` key.
|
|
491
|
+
transferToAgent: (_b = actions["transferAgent"]) != null ? _b : actions["transferToAgent"],
|
|
387
492
|
escalate: actions["escalate"],
|
|
388
493
|
compaction: compactionData || void 0
|
|
389
494
|
};
|
|
390
495
|
const event = {
|
|
391
|
-
id: ((
|
|
496
|
+
id: ((_c = apiEventObj.name) == null ? void 0 : _c.split("/").pop()) || "",
|
|
392
497
|
invocationId: apiEventObj.invocationId || "",
|
|
393
498
|
author: apiEventObj.author,
|
|
394
499
|
actions: eventActions,
|
|
395
500
|
content: apiEventObj.content,
|
|
396
501
|
timestamp: apiEventObj.timestamp ? new Date(apiEventObj.timestamp).getTime() : Date.now(),
|
|
397
|
-
errorCode: (
|
|
502
|
+
errorCode: (_d = apiEventObj.errorCode) == null ? void 0 : _d.toString(),
|
|
398
503
|
errorMessage: apiEventObj.errorMessage,
|
|
399
504
|
partial: eventMetadata["partial"],
|
|
400
505
|
turnComplete: eventMetadata["turnComplete"],
|
|
@@ -402,6 +507,7 @@ function _fromApiEvent(apiEventObj) {
|
|
|
402
507
|
branch: eventMetadata["branch"],
|
|
403
508
|
customMetadata,
|
|
404
509
|
longRunningToolIds: eventMetadata["longRunningToolIds"],
|
|
510
|
+
groundingMetadata: eventMetadata["groundingMetadata"],
|
|
405
511
|
usageMetadata: usageMetadataData
|
|
406
512
|
};
|
|
407
513
|
if (compactionData) {
|
|
@@ -410,8 +516,12 @@ function _fromApiEvent(apiEventObj) {
|
|
|
410
516
|
event.endTime = compactionData.endTime;
|
|
411
517
|
event.compactedContent = compactionData.compactedContent;
|
|
412
518
|
}
|
|
519
|
+
if (workflowData) {
|
|
520
|
+
applyWorkflowMetadata(event, workflowData);
|
|
521
|
+
}
|
|
413
522
|
return event;
|
|
414
523
|
}
|
|
524
|
+
__name(_fromApiEvent, "_fromApiEvent");
|
|
415
525
|
export {
|
|
416
526
|
VertexAiSessionService,
|
|
417
527
|
isVertexAiConnectionString,
|
|
@@ -2,6 +2,7 @@ import {createRequire as topLevelCreateRequire} from 'module';
|
|
|
2
2
|
const require = topLevelCreateRequire(import.meta.url);
|
|
3
3
|
var __defProp = Object.defineProperty;
|
|
4
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
5
6
|
var __decorateClass = (decorators, target, key, kind) => {
|
|
6
7
|
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
7
8
|
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
@@ -70,6 +71,7 @@ let GCPSkillRegistry = class {
|
|
|
70
71
|
return results;
|
|
71
72
|
}
|
|
72
73
|
};
|
|
74
|
+
__name(GCPSkillRegistry, "GCPSkillRegistry");
|
|
73
75
|
GCPSkillRegistry = __decorateClass([
|
|
74
76
|
experimental
|
|
75
77
|
], GCPSkillRegistry);
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import {createRequire as topLevelCreateRequire} from 'module';
|
|
2
2
|
const require = topLevelCreateRequire(import.meta.url);
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
5
|
/**
|
|
4
6
|
* @license
|
|
5
7
|
* Copyright 2026 Google LLC
|
|
@@ -7,6 +9,7 @@ const require = topLevelCreateRequire(import.meta.url);
|
|
|
7
9
|
*/
|
|
8
10
|
import AdmZip from "adm-zip";
|
|
9
11
|
import yaml from "js-yaml";
|
|
12
|
+
import { isUtf8 } from "node:buffer";
|
|
10
13
|
import * as fs from "node:fs/promises";
|
|
11
14
|
import * as path from "node:path";
|
|
12
15
|
import { logger } from "../utils/logger.js";
|
|
@@ -18,6 +21,9 @@ const ALLOWED_FRONTMATTER_KEYS = /* @__PURE__ */ new Set([
|
|
|
18
21
|
"description",
|
|
19
22
|
"license",
|
|
20
23
|
"allowed-tools",
|
|
24
|
+
// Camel-case alias: FrontmatterSchema's preprocessor derives `allowedTools`
|
|
25
|
+
// from `allowed-tools`, and `.loose()` passes either spelling through.
|
|
26
|
+
"allowedTools",
|
|
21
27
|
"metadata",
|
|
22
28
|
"compatibility"
|
|
23
29
|
]);
|
|
@@ -43,6 +49,10 @@ const IGNORED_EXTENSIONS = /* @__PURE__ */ new Set([
|
|
|
43
49
|
".tsbuildinfo",
|
|
44
50
|
".DS_Store"
|
|
45
51
|
]);
|
|
52
|
+
function decodeSkillFileContent(data) {
|
|
53
|
+
return isUtf8(data) ? data.toString("utf-8") : data;
|
|
54
|
+
}
|
|
55
|
+
__name(decodeSkillFileContent, "decodeSkillFileContent");
|
|
46
56
|
async function loadDir(directoryPath) {
|
|
47
57
|
const files = {};
|
|
48
58
|
async function walk(dir) {
|
|
@@ -60,14 +70,11 @@ async function loadDir(directoryPath) {
|
|
|
60
70
|
continue;
|
|
61
71
|
}
|
|
62
72
|
const fileData = await fs.readFile(fullPath);
|
|
63
|
-
|
|
64
|
-
files[relativePath] = fileData.toString("utf-8");
|
|
65
|
-
} catch (_e) {
|
|
66
|
-
files[relativePath] = fileData;
|
|
67
|
-
}
|
|
73
|
+
files[relativePath] = decodeSkillFileContent(fileData);
|
|
68
74
|
}
|
|
69
75
|
}
|
|
70
76
|
}
|
|
77
|
+
__name(walk, "walk");
|
|
71
78
|
try {
|
|
72
79
|
const stats = await fs.stat(directoryPath);
|
|
73
80
|
if (stats.isDirectory()) {
|
|
@@ -80,7 +87,8 @@ async function loadDir(directoryPath) {
|
|
|
80
87
|
}
|
|
81
88
|
return files;
|
|
82
89
|
}
|
|
83
|
-
|
|
90
|
+
__name(loadDir, "loadDir");
|
|
91
|
+
function parseFrontmatterYaml(content) {
|
|
84
92
|
if (!content.startsWith("---")) {
|
|
85
93
|
throw new Error("SKILL.md must start with YAML frontmatter (---)");
|
|
86
94
|
}
|
|
@@ -92,15 +100,39 @@ function parseSkillMdContent(content) {
|
|
|
92
100
|
const body = parts.filter((_, i) => i >= 2).join("---").trim();
|
|
93
101
|
try {
|
|
94
102
|
const parsed = yaml.load(frontmatterStr);
|
|
95
|
-
if (typeof parsed !== "object" || parsed === null) {
|
|
103
|
+
if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
|
|
96
104
|
throw new Error("SKILL.md frontmatter must be a YAML mapping");
|
|
97
105
|
}
|
|
98
|
-
|
|
99
|
-
|
|
106
|
+
return { raw: parsed, body };
|
|
107
|
+
} catch (e) {
|
|
108
|
+
throw new Error(`Invalid YAML in frontmatter: ${e.message}`);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
__name(parseFrontmatterYaml, "parseFrontmatterYaml");
|
|
112
|
+
function validateFrontmatter(raw) {
|
|
113
|
+
try {
|
|
114
|
+
return FrontmatterSchema.parse(raw);
|
|
100
115
|
} catch (e) {
|
|
101
116
|
throw new Error(`Invalid YAML in frontmatter: ${e.message}`);
|
|
102
117
|
}
|
|
103
118
|
}
|
|
119
|
+
__name(validateFrontmatter, "validateFrontmatter");
|
|
120
|
+
function parseSkillMdContent(content) {
|
|
121
|
+
const { raw, body } = parseFrontmatterYaml(content);
|
|
122
|
+
return { frontmatter: validateFrontmatter(raw), body };
|
|
123
|
+
}
|
|
124
|
+
__name(parseSkillMdContent, "parseSkillMdContent");
|
|
125
|
+
function isDangerousZipEntryName(entryName) {
|
|
126
|
+
if (path.posix.isAbsolute(entryName) || path.win32.isAbsolute(entryName)) {
|
|
127
|
+
return true;
|
|
128
|
+
}
|
|
129
|
+
return entryName.split(/[/\\]/).some((segment) => segment === "..");
|
|
130
|
+
}
|
|
131
|
+
__name(isDangerousZipEntryName, "isDangerousZipEntryName");
|
|
132
|
+
function isBareSkillName(name) {
|
|
133
|
+
return name !== "." && name !== ".." && path.basename(name) === name;
|
|
134
|
+
}
|
|
135
|
+
__name(isBareSkillName, "isBareSkillName");
|
|
104
136
|
async function loadSkillFromDir(skillDir) {
|
|
105
137
|
const resolvedDir = path.resolve(skillDir);
|
|
106
138
|
const skill = await loadSkillFile(skillDir);
|
|
@@ -124,6 +156,7 @@ async function loadSkillFromDir(skillDir) {
|
|
|
124
156
|
resources
|
|
125
157
|
};
|
|
126
158
|
}
|
|
159
|
+
__name(loadSkillFromDir, "loadSkillFromDir");
|
|
127
160
|
async function validateSkillDir(skillDir) {
|
|
128
161
|
const problems = [];
|
|
129
162
|
const resolvedDir = path.resolve(skillDir);
|
|
@@ -152,6 +185,7 @@ async function validateSkillDir(skillDir) {
|
|
|
152
185
|
}
|
|
153
186
|
return problems;
|
|
154
187
|
}
|
|
188
|
+
__name(validateSkillDir, "validateSkillDir");
|
|
155
189
|
async function loadSkillFile(skillDir) {
|
|
156
190
|
const resolvedDir = path.resolve(skillDir);
|
|
157
191
|
let skillMdPath = "";
|
|
@@ -192,6 +226,7 @@ async function loadSkillFile(skillDir) {
|
|
|
192
226
|
instructions: body
|
|
193
227
|
};
|
|
194
228
|
}
|
|
229
|
+
__name(loadSkillFile, "loadSkillFile");
|
|
195
230
|
async function loadAllSkillsInDir(skillsBasePath) {
|
|
196
231
|
const resolvedPath = path.resolve(skillsBasePath);
|
|
197
232
|
const skills = {};
|
|
@@ -229,6 +264,7 @@ async function loadAllSkillsInDir(skillsBasePath) {
|
|
|
229
264
|
}
|
|
230
265
|
}
|
|
231
266
|
}
|
|
267
|
+
__name(scanDir, "scanDir");
|
|
232
268
|
try {
|
|
233
269
|
await fs.readdir(resolvedPath);
|
|
234
270
|
await scanDir(resolvedPath);
|
|
@@ -237,9 +273,15 @@ async function loadAllSkillsInDir(skillsBasePath) {
|
|
|
237
273
|
}
|
|
238
274
|
return skills;
|
|
239
275
|
}
|
|
276
|
+
__name(loadAllSkillsInDir, "loadAllSkillsInDir");
|
|
240
277
|
function loadSkillFromZipBuffer(zipBuffer) {
|
|
241
278
|
const zip = new AdmZip(zipBuffer);
|
|
242
279
|
const entries = zip.getEntries();
|
|
280
|
+
for (const entry of entries) {
|
|
281
|
+
if (isDangerousZipEntryName(entry.entryName)) {
|
|
282
|
+
throw new Error(`Dangerous zip entry ignored: ${entry.entryName}`);
|
|
283
|
+
}
|
|
284
|
+
}
|
|
243
285
|
let skillMdContent = "";
|
|
244
286
|
for (const entry of entries) {
|
|
245
287
|
if (entry.isDirectory) continue;
|
|
@@ -251,8 +293,15 @@ function loadSkillFromZipBuffer(zipBuffer) {
|
|
|
251
293
|
if (!skillMdContent) {
|
|
252
294
|
throw new Error("SKILL.md not found in zipped filesystem.");
|
|
253
295
|
}
|
|
254
|
-
const {
|
|
255
|
-
const
|
|
296
|
+
const { raw, body } = parseFrontmatterYaml(skillMdContent);
|
|
297
|
+
const skillName = raw["name"];
|
|
298
|
+
if (!skillName) {
|
|
299
|
+
throw new Error("SKILL.md frontmatter must contain 'name'");
|
|
300
|
+
}
|
|
301
|
+
if (typeof skillName !== "string" || !isBareSkillName(skillName)) {
|
|
302
|
+
throw new Error(`Invalid skill name in SKILL.md: ${String(skillName)}`);
|
|
303
|
+
}
|
|
304
|
+
const frontmatter = validateFrontmatter(raw);
|
|
256
305
|
const references = {};
|
|
257
306
|
const assets = {};
|
|
258
307
|
const scripts = {};
|
|
@@ -266,15 +315,12 @@ function loadSkillFromZipBuffer(zipBuffer) {
|
|
|
266
315
|
const relativePath = entry.entryName.substring(normPrefix.length);
|
|
267
316
|
if (!relativePath) continue;
|
|
268
317
|
const data = entry.getData();
|
|
269
|
-
|
|
270
|
-
res[relativePath] = data.toString("utf-8");
|
|
271
|
-
} catch (_e) {
|
|
272
|
-
res[relativePath] = data;
|
|
273
|
-
}
|
|
318
|
+
res[relativePath] = decodeSkillFileContent(data);
|
|
274
319
|
}
|
|
275
320
|
}
|
|
276
321
|
return res;
|
|
277
322
|
}
|
|
323
|
+
__name(loadZipDir, "loadZipDir");
|
|
278
324
|
const refFiles = loadZipDir("references");
|
|
279
325
|
for (const [key, val] of Object.entries(refFiles)) {
|
|
280
326
|
references[key] = val;
|
|
@@ -299,6 +345,7 @@ function loadSkillFromZipBuffer(zipBuffer) {
|
|
|
299
345
|
}
|
|
300
346
|
};
|
|
301
347
|
}
|
|
348
|
+
__name(loadSkillFromZipBuffer, "loadSkillFromZipBuffer");
|
|
302
349
|
export {
|
|
303
350
|
loadAllSkillsInDir,
|
|
304
351
|
loadSkillFromDir,
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import {createRequire as topLevelCreateRequire} from 'module';
|
|
2
2
|
const require = topLevelCreateRequire(import.meta.url);
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
5
|
/**
|
|
4
6
|
* @license
|
|
5
7
|
* Copyright 2026 Google LLC
|
|
@@ -8,6 +10,7 @@ const require = topLevelCreateRequire(import.meta.url);
|
|
|
8
10
|
function escapeHtml(unsafe) {
|
|
9
11
|
return unsafe.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
|
|
10
12
|
}
|
|
13
|
+
__name(escapeHtml, "escapeHtml");
|
|
11
14
|
function formatSkillsAsXml(skills) {
|
|
12
15
|
if (!skills || skills.length === 0) {
|
|
13
16
|
return "<available_skills>\n</available_skills>";
|
|
@@ -25,6 +28,7 @@ function formatSkillsAsXml(skills) {
|
|
|
25
28
|
lines.push("</available_skills>");
|
|
26
29
|
return lines.join("\n");
|
|
27
30
|
}
|
|
31
|
+
__name(formatSkillsAsXml, "formatSkillsAsXml");
|
|
28
32
|
export {
|
|
29
33
|
formatSkillsAsXml
|
|
30
34
|
};
|
|
@@ -1,18 +1,40 @@
|
|
|
1
1
|
import {createRequire as topLevelCreateRequire} from 'module';
|
|
2
2
|
const require = topLevelCreateRequire(import.meta.url);
|
|
3
|
+
var __create = Object.create;
|
|
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;
|
|
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
|
+
));
|
|
3
26
|
/**
|
|
4
27
|
* @license
|
|
5
28
|
* Copyright 2025 Google LLC
|
|
6
29
|
* SPDX-License-Identifier: Apache-2.0
|
|
7
30
|
*/
|
|
8
|
-
import { MetricExporter } from "@google-cloud/opentelemetry-cloud-monitoring-exporter";
|
|
9
|
-
import { TraceExporter } from "@google-cloud/opentelemetry-cloud-trace-exporter";
|
|
10
31
|
import { gcpDetector } from "@opentelemetry/resource-detector-gcp";
|
|
11
32
|
import { detectResources } from "@opentelemetry/resources";
|
|
12
33
|
import { PeriodicExportingMetricReader } from "@opentelemetry/sdk-metrics";
|
|
13
34
|
import { BatchSpanProcessor } from "@opentelemetry/sdk-trace-base";
|
|
14
35
|
import { GoogleAuth } from "google-auth-library";
|
|
15
36
|
import { logger } from "../utils/logger.js";
|
|
37
|
+
import { loadOptionalPeer } from "../utils/optional_peer.js";
|
|
16
38
|
const GCP_PROJECT_ERROR_MESSAGE = "Cannot determine GCP Project. OTel GCP Exporters cannot be set up. Please make sure to log into correct GCP Project.";
|
|
17
39
|
async function getGcpProjectId() {
|
|
18
40
|
try {
|
|
@@ -23,6 +45,32 @@ async function getGcpProjectId() {
|
|
|
23
45
|
return void 0;
|
|
24
46
|
}
|
|
25
47
|
}
|
|
48
|
+
__name(getGcpProjectId, "getGcpProjectId");
|
|
49
|
+
async function createCloudTraceProcessor(projectId) {
|
|
50
|
+
const { TraceExporter } = await loadOptionalPeer(
|
|
51
|
+
{
|
|
52
|
+
packageName: "@google-cloud/opentelemetry-cloud-trace-exporter",
|
|
53
|
+
feature: "getGcpExporters({enableTracing: true})"
|
|
54
|
+
},
|
|
55
|
+
() => Promise.resolve().then(() => __toESM(require("@google-cloud/opentelemetry-cloud-trace-exporter"), 1))
|
|
56
|
+
);
|
|
57
|
+
return new BatchSpanProcessor(new TraceExporter({ projectId }));
|
|
58
|
+
}
|
|
59
|
+
__name(createCloudTraceProcessor, "createCloudTraceProcessor");
|
|
60
|
+
async function createCloudMetricReader(projectId) {
|
|
61
|
+
const { MetricExporter } = await loadOptionalPeer(
|
|
62
|
+
{
|
|
63
|
+
packageName: "@google-cloud/opentelemetry-cloud-monitoring-exporter",
|
|
64
|
+
feature: "getGcpExporters({enableMetrics: true})"
|
|
65
|
+
},
|
|
66
|
+
() => Promise.resolve().then(() => __toESM(require("@google-cloud/opentelemetry-cloud-monitoring-exporter"), 1))
|
|
67
|
+
);
|
|
68
|
+
return new PeriodicExportingMetricReader({
|
|
69
|
+
exporter: new MetricExporter({ projectId }),
|
|
70
|
+
exportIntervalMillis: 5e3
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
__name(createCloudMetricReader, "createCloudMetricReader");
|
|
26
74
|
async function getGcpExporters(config = {}) {
|
|
27
75
|
const {
|
|
28
76
|
enableTracing = false,
|
|
@@ -35,19 +83,16 @@ async function getGcpExporters(config = {}) {
|
|
|
35
83
|
return {};
|
|
36
84
|
}
|
|
37
85
|
return {
|
|
38
|
-
spanProcessors: enableTracing ? [
|
|
39
|
-
metricReaders: enableMetrics ? [
|
|
40
|
-
new PeriodicExportingMetricReader({
|
|
41
|
-
exporter: new MetricExporter({ projectId }),
|
|
42
|
-
exportIntervalMillis: 5e3
|
|
43
|
-
})
|
|
44
|
-
] : [],
|
|
86
|
+
spanProcessors: enableTracing ? [await createCloudTraceProcessor(projectId)] : [],
|
|
87
|
+
metricReaders: enableMetrics ? [await createCloudMetricReader(projectId)] : [],
|
|
45
88
|
logRecordProcessors: []
|
|
46
89
|
};
|
|
47
90
|
}
|
|
91
|
+
__name(getGcpExporters, "getGcpExporters");
|
|
48
92
|
function getGcpResource() {
|
|
49
93
|
return detectResources({ detectors: [gcpDetector] });
|
|
50
94
|
}
|
|
95
|
+
__name(getGcpResource, "getGcpResource");
|
|
51
96
|
export {
|
|
52
97
|
getGcpExporters,
|
|
53
98
|
getGcpResource
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import {createRequire as topLevelCreateRequire} from 'module';
|
|
2
2
|
const require = topLevelCreateRequire(import.meta.url);
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
5
|
/**
|
|
4
6
|
* @license
|
|
5
7
|
* Copyright 2025 Google LLC
|
|
@@ -54,11 +56,13 @@ function maybeSetOtelProviders(otelHooksToSetup = [], otelResource) {
|
|
|
54
56
|
logs.setGlobalLoggerProvider(loggerProvider);
|
|
55
57
|
}
|
|
56
58
|
}
|
|
59
|
+
__name(maybeSetOtelProviders, "maybeSetOtelProviders");
|
|
57
60
|
function getOtelResource() {
|
|
58
61
|
return detectResources({
|
|
59
62
|
detectors: []
|
|
60
63
|
});
|
|
61
64
|
}
|
|
65
|
+
__name(getOtelResource, "getOtelResource");
|
|
62
66
|
function getOtelExportersConfig() {
|
|
63
67
|
return {
|
|
64
68
|
enableTracing: !!(process.env.OTEL_EXPORTER_OTLP_ENDPOINT || process.env.OTEL_EXPORTER_OTLP_TRACES_ENDPOINT),
|
|
@@ -66,6 +70,7 @@ function getOtelExportersConfig() {
|
|
|
66
70
|
enableLogging: !!(process.env.OTEL_EXPORTER_OTLP_ENDPOINT || process.env.OTEL_EXPORTER_OTLP_LOGS_ENDPOINT)
|
|
67
71
|
};
|
|
68
72
|
}
|
|
73
|
+
__name(getOtelExportersConfig, "getOtelExportersConfig");
|
|
69
74
|
function getOtelExporters(config = getOtelExportersConfig()) {
|
|
70
75
|
const { enableTracing, enableMetrics, enableLogging } = config;
|
|
71
76
|
return {
|
|
@@ -78,6 +83,7 @@ function getOtelExporters(config = getOtelExportersConfig()) {
|
|
|
78
83
|
logRecordProcessors: enableLogging ? [new BatchLogRecordProcessor(new OTLPLogExporter())] : []
|
|
79
84
|
};
|
|
80
85
|
}
|
|
86
|
+
__name(getOtelExporters, "getOtelExporters");
|
|
81
87
|
export {
|
|
82
88
|
maybeSetOtelProviders
|
|
83
89
|
};
|