@google/adk 1.4.0 → 1.5.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.
Files changed (122) hide show
  1. package/dist/cjs/a2a/agent_to_a2a.js +18 -2
  2. package/dist/cjs/a2a/event_converter_utils.js +8 -4
  3. package/dist/cjs/a2a/metadata_converter_utils.js +1 -1
  4. package/dist/cjs/agents/base_agent.js +39 -0
  5. package/dist/cjs/agents/functions.js +6 -21
  6. package/dist/cjs/agents/llm_agent.js +2 -1
  7. package/dist/cjs/agents/loop_agent.js +15 -3
  8. package/dist/cjs/agents/processors/content_processor_utils.js +2 -1
  9. package/dist/cjs/agents/routed_agent.js +31 -0
  10. package/dist/cjs/agents/run_config.js +3 -2
  11. package/dist/cjs/artifacts/in_memory_artifact_service.js +7 -0
  12. package/dist/cjs/common.js +29 -0
  13. package/dist/cjs/context/anchored_context_compactor.js +127 -0
  14. package/dist/cjs/context/compaction_utils.js +52 -0
  15. package/dist/cjs/context/token_based_context_compactor.js +11 -24
  16. package/dist/cjs/events/compacted_event.js +9 -3
  17. package/dist/cjs/events/event.js +28 -0
  18. package/dist/cjs/index.js +4 -0
  19. package/dist/cjs/integrations/agent_registry/agent_registry_mcp_toolset.js +9 -1
  20. package/dist/cjs/plugins/global_instruction_plugin.js +97 -0
  21. package/dist/cjs/runner/runner.js +51 -12
  22. package/dist/cjs/tools/enterprise_web_search_tool.js +81 -0
  23. package/dist/cjs/tools/example_tool.js +68 -0
  24. package/dist/cjs/tools/load_web_page.js +250 -0
  25. package/dist/cjs/tools/mcp/load_mcp_resource_tool.js +140 -0
  26. package/dist/cjs/tools/mcp/mcp_toolset.js +63 -0
  27. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +13 -10
  28. package/dist/cjs/tools/skill/run_skill_inline_script_tool.js +54 -4
  29. package/dist/cjs/tools/skill/skill_toolset.js +4 -2
  30. package/dist/cjs/utils/branch_trie.js +41 -0
  31. package/dist/cjs/utils/streaming_utils.js +5 -5
  32. package/dist/cjs/version.js +1 -1
  33. package/dist/esm/a2a/agent_to_a2a.js +18 -2
  34. package/dist/esm/a2a/event_converter_utils.js +8 -4
  35. package/dist/esm/a2a/metadata_converter_utils.js +1 -1
  36. package/dist/esm/agents/base_agent.js +39 -0
  37. package/dist/esm/agents/functions.js +7 -17
  38. package/dist/esm/agents/llm_agent.js +4 -3
  39. package/dist/esm/agents/loop_agent.js +15 -3
  40. package/dist/esm/agents/processors/content_processor_utils.js +2 -1
  41. package/dist/esm/agents/routed_agent.js +31 -0
  42. package/dist/esm/agents/run_config.js +3 -2
  43. package/dist/esm/artifacts/in_memory_artifact_service.js +7 -0
  44. package/dist/esm/common.js +25 -1
  45. package/dist/esm/context/anchored_context_compactor.js +99 -0
  46. package/dist/esm/context/compaction_utils.js +27 -0
  47. package/dist/esm/context/token_based_context_compactor.js +11 -24
  48. package/dist/esm/events/compacted_event.js +7 -2
  49. package/dist/esm/events/event.js +24 -0
  50. package/dist/esm/index.js +6 -1
  51. package/dist/esm/integrations/agent_registry/agent_registry_mcp_toolset.js +9 -1
  52. package/dist/esm/plugins/global_instruction_plugin.js +69 -0
  53. package/dist/esm/runner/runner.js +51 -12
  54. package/dist/esm/tools/enterprise_web_search_tool.js +55 -0
  55. package/dist/esm/tools/example_tool.js +42 -0
  56. package/dist/esm/tools/load_web_page.js +221 -0
  57. package/dist/esm/tools/mcp/load_mcp_resource_tool.js +114 -0
  58. package/dist/esm/tools/mcp/mcp_toolset.js +63 -0
  59. package/dist/esm/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +13 -10
  60. package/dist/esm/tools/skill/run_skill_inline_script_tool.js +53 -4
  61. package/dist/esm/tools/skill/skill_toolset.js +4 -2
  62. package/dist/esm/utils/branch_trie.js +13 -0
  63. package/dist/esm/utils/streaming_utils.js +1 -1
  64. package/dist/esm/version.js +1 -1
  65. package/dist/types/a2a/a2a_remote_agent.d.ts +5 -1
  66. package/dist/types/a2a/agent_to_a2a.d.ts +38 -0
  67. package/dist/types/agents/base_agent.d.ts +29 -1
  68. package/dist/types/agents/functions.d.ts +1 -9
  69. package/dist/types/agents/llm_agent.d.ts +5 -1
  70. package/dist/types/agents/loop_agent.d.ts +2 -2
  71. package/dist/types/agents/routed_agent.d.ts +24 -1
  72. package/dist/types/agents/run_config.d.ts +1 -1
  73. package/dist/types/common.d.ts +9 -2
  74. package/dist/types/context/anchored_context_compactor.d.ts +35 -0
  75. package/dist/types/context/compaction_utils.d.ts +15 -0
  76. package/dist/types/events/compacted_event.d.ts +10 -0
  77. package/dist/types/events/event.d.ts +13 -0
  78. package/dist/types/index.d.ts +3 -2
  79. package/dist/types/plugins/global_instruction_plugin.d.ts +38 -0
  80. package/dist/types/runner/runner.d.ts +1 -1
  81. package/dist/types/tools/enterprise_web_search_tool.d.ts +26 -0
  82. package/dist/types/tools/example_tool.d.ts +21 -0
  83. package/dist/types/tools/load_web_page.d.ts +33 -0
  84. package/dist/types/tools/mcp/load_mcp_resource_tool.d.ts +26 -0
  85. package/dist/types/tools/mcp/mcp_toolset.d.ts +27 -0
  86. package/dist/types/tools/skill/run_skill_inline_script_tool.d.ts +25 -0
  87. package/dist/types/tools/skill/skill_toolset.d.ts +9 -0
  88. package/dist/types/utils/branch_trie.d.ts +14 -0
  89. package/dist/types/version.d.ts +1 -1
  90. package/dist/web/a2a/agent_to_a2a.js +18 -2
  91. package/dist/web/a2a/event_converter_utils.js +8 -4
  92. package/dist/web/a2a/metadata_converter_utils.js +1 -1
  93. package/dist/web/agents/base_agent.js +39 -0
  94. package/dist/web/agents/functions.js +7 -17
  95. package/dist/web/agents/llm_agent.js +4 -3
  96. package/dist/web/agents/loop_agent.js +27 -3
  97. package/dist/web/agents/processors/content_processor_utils.js +2 -1
  98. package/dist/web/agents/routed_agent.js +31 -0
  99. package/dist/web/agents/run_config.js +8 -3
  100. package/dist/web/artifacts/in_memory_artifact_service.js +7 -0
  101. package/dist/web/common.js +25 -1
  102. package/dist/web/context/anchored_context_compactor.js +117 -0
  103. package/dist/web/context/compaction_utils.js +27 -0
  104. package/dist/web/context/token_based_context_compactor.js +11 -24
  105. package/dist/web/events/compacted_event.js +7 -2
  106. package/dist/web/events/event.js +24 -0
  107. package/dist/web/index.js +6 -1
  108. package/dist/web/integrations/agent_registry/agent_registry_mcp_toolset.js +9 -1
  109. package/dist/web/plugins/global_instruction_plugin.js +67 -0
  110. package/dist/web/runner/runner.js +48 -11
  111. package/dist/web/tools/enterprise_web_search_tool.js +55 -0
  112. package/dist/web/tools/example_tool.js +42 -0
  113. package/dist/web/tools/load_web_page.js +221 -0
  114. package/dist/web/tools/mcp/load_mcp_resource_tool.js +107 -0
  115. package/dist/web/tools/mcp/mcp_toolset.js +63 -0
  116. package/dist/web/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +13 -10
  117. package/dist/web/tools/skill/run_skill_inline_script_tool.js +51 -4
  118. package/dist/web/tools/skill/skill_toolset.js +4 -2
  119. package/dist/web/utils/branch_trie.js +13 -0
  120. package/dist/web/utils/streaming_utils.js +1 -1
  121. package/dist/web/version.js +1 -1
  122. package/package.json +1 -1
@@ -21,6 +21,15 @@ import { CodeExecutionLanguage } from "../../code_executors/code_execution_utils
21
21
  import { experimental } from "../../utils/experimental.js";
22
22
  import { materializeFiles } from "../../utils/file_utils.js";
23
23
  import { BaseTool } from "../base_tool.js";
24
+ var RunSkillInlineScriptErrorCode = /* @__PURE__ */ ((RunSkillInlineScriptErrorCode2) => {
25
+ RunSkillInlineScriptErrorCode2["MISSING_SCRIPT_CONTENT"] = "MISSING_SCRIPT_CONTENT";
26
+ RunSkillInlineScriptErrorCode2["MISSING_LANGUAGE"] = "MISSING_LANGUAGE";
27
+ RunSkillInlineScriptErrorCode2["NO_CODE_EXECUTOR"] = "NO_CODE_EXECUTOR";
28
+ RunSkillInlineScriptErrorCode2["EXECUTION_ERROR"] = "EXECUTION_ERROR";
29
+ RunSkillInlineScriptErrorCode2["CONFIRMATION_REJECTED"] = "CONFIRMATION_REJECTED";
30
+ return RunSkillInlineScriptErrorCode2;
31
+ })(RunSkillInlineScriptErrorCode || {});
32
+ const REQUIRE_CONFIRMATION_MESSAGE = "This tool call needs external confirmation before completion.";
24
33
  let RunSkillInlineScriptTool = class extends BaseTool {
25
34
  constructor(toolset) {
26
35
  super({
@@ -70,13 +79,13 @@ let RunSkillInlineScriptTool = class extends BaseTool {
70
79
  if (!inlineScriptContent) {
71
80
  return {
72
81
  error: "Script content is required.",
73
- errorCode: "MISSING_SCRIPT_CONTENT"
82
+ errorCode: "MISSING_SCRIPT_CONTENT" /* MISSING_SCRIPT_CONTENT */
74
83
  };
75
84
  }
76
85
  if (!language) {
77
86
  return {
78
87
  error: "Language is required.",
79
- errorCode: "MISSING_LANGUAGE"
88
+ errorCode: "MISSING_LANGUAGE" /* MISSING_LANGUAGE */
80
89
  };
81
90
  }
82
91
  let codeExecutor = (_a = this.toolset) == null ? void 0 : _a.codeExecutor;
@@ -89,9 +98,17 @@ let RunSkillInlineScriptTool = class extends BaseTool {
89
98
  if (!codeExecutor) {
90
99
  return {
91
100
  error: "No code executor configured.",
92
- errorCode: "NO_CODE_EXECUTOR"
101
+ errorCode: "NO_CODE_EXECUTOR" /* NO_CODE_EXECUTOR */
93
102
  };
94
103
  }
104
+ const confirmationResult = this.enforceConfirmation(
105
+ toolContext,
106
+ inlineScriptContent,
107
+ language
108
+ );
109
+ if (confirmationResult) {
110
+ return confirmationResult;
111
+ }
95
112
  try {
96
113
  const result = await codeExecutor.executeCode({
97
114
  invocationContext: toolContext.invocationContext,
@@ -107,14 +124,44 @@ let RunSkillInlineScriptTool = class extends BaseTool {
107
124
  } catch (e) {
108
125
  return {
109
126
  error: "Failed to execute inline script: ".concat(e.message),
110
- errorCode: "EXECUTION_ERROR"
127
+ errorCode: "EXECUTION_ERROR" /* EXECUTION_ERROR */
128
+ };
129
+ }
130
+ }
131
+ /**
132
+ * Enforces a human-in-the-loop confirmation gate before executing an inline
133
+ * script, using the repo's standard tool-confirmation mechanism.
134
+ *
135
+ * - When no confirmation has been provided yet, a confirmation is requested
136
+ * (surfacing the language and script that would run) and an intermediate
137
+ * result is returned so the tool call pauses until the client responds.
138
+ * - When a confirmation exists but was not confirmed, a rejection error is
139
+ * returned and execution is refused.
140
+ * - When the confirmation is confirmed, `undefined` is returned to allow the
141
+ * caller to proceed with execution.
142
+ */
143
+ enforceConfirmation(toolContext, scriptContent, language) {
144
+ const confirmation = toolContext.toolConfirmation;
145
+ if (!confirmation) {
146
+ toolContext.requestConfirmation({
147
+ hint: "Confirmation is required before executing an inline skill script. " + "The agent requested to run the following ".concat(language, " script in the ") + "code executor. Only approve if you trust its contents:\n\n" + scriptContent,
148
+ payload: { language, scriptContent }
149
+ });
150
+ return { partial: REQUIRE_CONFIRMATION_MESSAGE };
151
+ }
152
+ if (!confirmation.confirmed) {
153
+ return {
154
+ error: "Inline script execution was not confirmed and was rejected.",
155
+ errorCode: "CONFIRMATION_REJECTED" /* CONFIRMATION_REJECTED */
111
156
  };
112
157
  }
158
+ return void 0;
113
159
  }
114
160
  };
115
161
  RunSkillInlineScriptTool = __decorateClass([
116
162
  experimental
117
163
  ], RunSkillInlineScriptTool);
118
164
  export {
165
+ RunSkillInlineScriptErrorCode,
119
166
  RunSkillInlineScriptTool
120
167
  };
@@ -41,9 +41,11 @@ let SkillToolset = class extends BaseToolset {
41
41
  new ListSkillsTool(this),
42
42
  new LoadSkillTool(this),
43
43
  new LoadSkillResourceTool(this),
44
- new RunSkillScriptTool(this),
45
- new RunSkillInlineScriptTool(this)
44
+ new RunSkillScriptTool(this)
46
45
  ];
46
+ if (options.allowInlineScripts) {
47
+ this.tools.push(new RunSkillInlineScriptTool(this));
48
+ }
47
49
  if (this.registry) {
48
50
  this.tools.push(new SearchSkillsTool(this));
49
51
  }
@@ -0,0 +1,13 @@
1
+ import {createRequire as topLevelCreateRequire} from 'module';
2
+ const require = topLevelCreateRequire(import.meta.url);
3
+ /**
4
+ * @license
5
+ * Copyright 2026 Google LLC
6
+ * SPDX-License-Identifier: Apache-2.0
7
+ */
8
+ function isSegmentPrefix(currentBranch, targetBranch) {
9
+ return !targetBranch || targetBranch === currentBranch || !!currentBranch && currentBranch.startsWith("".concat(targetBranch, "."));
10
+ }
11
+ export {
12
+ isSegmentPrefix
13
+ };
@@ -75,7 +75,7 @@ import {
75
75
  FinishReason
76
76
  } from "@google/genai";
77
77
  import { JSONPath } from "jsonpath-plus";
78
- import { generateClientFunctionCallId } from "../agents/functions.js";
78
+ import { generateClientFunctionCallId } from "../events/event.js";
79
79
  import { FeatureName, isFeatureEnabled } from "../features/feature_registry.js";
80
80
  import { createLlmResponse } from "../models/llm_response.js";
81
81
  const UNSAFE_PROPERTY_KEYS = /* @__PURE__ */ new Set(["__proto__", "constructor", "prototype"]);
@@ -5,7 +5,7 @@ const require = topLevelCreateRequire(import.meta.url);
5
5
  * Copyright 2025 Google LLC
6
6
  * SPDX-License-Identifier: Apache-2.0
7
7
  */
8
- const version = "1.4.0";
8
+ const version = "1.5.0";
9
9
  export {
10
10
  version
11
11
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@google/adk",
3
- "version": "1.4.0",
3
+ "version": "1.5.0",
4
4
  "description": "Google ADK JS",
5
5
  "author": "Google",
6
6
  "license": "Apache-2.0",