@google/adk 1.2.0 → 1.4.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/agents/active_streaming_tool.js +6 -1
- package/dist/cjs/agents/base_agent.js +19 -1
- package/dist/cjs/agents/context.js +1 -11
- package/dist/cjs/agents/functions.js +35 -16
- package/dist/cjs/agents/instructions.js +99 -33
- package/dist/cjs/agents/invocation_context.js +2 -6
- package/dist/cjs/agents/llm_agent.js +60 -11
- package/dist/cjs/agents/processors/agent_transfer_llm_request_processor.js +7 -0
- package/dist/cjs/agents/processors/basic_llm_request_processor.js +8 -1
- package/dist/cjs/agents/processors/code_execution_request_processor.js +0 -3
- package/dist/cjs/agents/processors/content_processor_utils.js +51 -25
- package/dist/cjs/agents/processors/content_request_processor.js +7 -0
- package/dist/cjs/agents/processors/context_compactor_request_processor.js +16 -2
- package/dist/cjs/agents/processors/identity_llm_request_processor.js +7 -0
- package/dist/cjs/agents/processors/instructions_llm_request_processor.js +5 -0
- package/dist/cjs/agents/processors/interactions_request_processor.js +63 -0
- package/dist/cjs/agents/processors/request_confirmation_llm_request_processor.js +9 -1
- package/dist/cjs/agents/processors/tool_filter_request_processor.js +7 -1
- package/dist/cjs/apps/app.js +79 -0
- package/dist/cjs/apps/resumability_config.js +44 -0
- package/dist/cjs/artifacts/file_artifact_service.js +14 -1
- package/dist/cjs/artifacts/gcs_artifact_service.js +57 -15
- package/dist/cjs/artifacts/in_memory_artifact_service.js +5 -1
- package/dist/cjs/artifacts/scoped_artifact_service.js +101 -0
- package/dist/cjs/artifacts/session_artifact_service.js +27 -0
- package/dist/cjs/auth/auth_preprocessor.js +12 -10
- package/dist/cjs/auth/oauth2/oauth2_discovery.js +17 -5
- package/dist/cjs/auth/oauth2/oauth2_utils.js +12 -1
- package/dist/cjs/code_executors/code_executor_context.js +7 -7
- package/dist/cjs/common.js +86 -0
- package/dist/cjs/context/agent_controlled_context_compactor.js +109 -0
- package/dist/cjs/context/summarizers/llm_summarizer.js +11 -0
- package/dist/cjs/context/token_based_context_compactor.js +43 -11
- package/dist/cjs/context/trajectory_thought_pruning_compactor.js +71 -0
- package/dist/cjs/events/event.js +25 -1
- package/dist/cjs/integrations/agent_registry/agent_registry_mcp_toolset.js +21 -2
- package/dist/cjs/models/gemini_llm_connection.js +62 -19
- package/dist/cjs/models/google_llm.js +51 -18
- package/dist/cjs/models/interactions_utils.js +732 -0
- package/dist/cjs/plugins/base_plugin.js +1 -0
- package/dist/cjs/plugins/security_plugin.js +16 -0
- package/dist/cjs/runner/in_memory_runner.js +13 -2
- package/dist/cjs/runner/runner.js +93 -72
- package/dist/cjs/sessions/base_session_service.js +19 -3
- package/dist/cjs/sessions/database_session_service.js +26 -9
- package/dist/cjs/sessions/db/schema.js +45 -10
- package/dist/cjs/sessions/in_memory_session_service.js +2 -1
- package/dist/cjs/sessions/vertex_ai_session_service.js +21 -5
- package/dist/cjs/skills/gcp_skill_registry.js +104 -0
- package/dist/cjs/skills/loader.js +67 -2
- package/dist/cjs/skills/skill_registry.js +27 -0
- package/dist/cjs/tools/base_toolset.js +1 -1
- package/dist/cjs/tools/consolidate_context_tool.js +79 -0
- package/dist/cjs/tools/forwarding_artifact_service.js +16 -28
- package/dist/cjs/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +232 -0
- package/dist/cjs/tools/openapi_tool/openapi_spec_parser/operation_parser.js +224 -0
- package/dist/cjs/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +117 -0
- package/dist/cjs/tools/openapi_tool/openapi_toolset.js +133 -0
- package/dist/cjs/tools/openapi_tool/rest_api_tool.js +256 -0
- package/dist/cjs/tools/skill/load_skill_resource_tool.js +25 -3
- package/dist/cjs/tools/skill/load_skill_tool.js +12 -1
- package/dist/cjs/tools/skill/run_skill_script_tool.js +12 -1
- package/dist/cjs/tools/skill/search_skills_tool.js +108 -0
- package/dist/cjs/tools/skill/skill_toolset.js +40 -5
- package/dist/cjs/utils/async_hooks_shim.js +52 -0
- package/dist/cjs/utils/async_queue.js +88 -0
- package/dist/cjs/utils/case_utils.js +53 -0
- package/dist/cjs/utils/client_labels.js +41 -3
- package/dist/cjs/utils/env_aware_utils.js +14 -1
- package/dist/cjs/utils/live_connection_utils.js +284 -0
- package/dist/cjs/utils/model_name.js +9 -0
- package/dist/cjs/utils/streaming_utils.js +18 -11
- package/dist/cjs/utils/task.js +62 -0
- package/dist/cjs/version.js +1 -1
- package/dist/esm/agents/active_streaming_tool.js +6 -1
- package/dist/esm/agents/base_agent.js +19 -1
- package/dist/esm/agents/context.js +1 -11
- package/dist/esm/agents/functions.js +36 -15
- package/dist/esm/agents/instructions.js +99 -33
- package/dist/esm/agents/invocation_context.js +2 -6
- package/dist/esm/agents/llm_agent.js +61 -11
- package/dist/esm/agents/processors/agent_transfer_llm_request_processor.js +7 -0
- package/dist/esm/agents/processors/basic_llm_request_processor.js +8 -1
- package/dist/esm/agents/processors/code_execution_request_processor.js +0 -3
- package/dist/esm/agents/processors/content_processor_utils.js +48 -24
- package/dist/esm/agents/processors/content_request_processor.js +7 -0
- package/dist/esm/agents/processors/context_compactor_request_processor.js +16 -2
- package/dist/esm/agents/processors/identity_llm_request_processor.js +7 -0
- package/dist/esm/agents/processors/instructions_llm_request_processor.js +5 -0
- package/dist/esm/agents/processors/interactions_request_processor.js +34 -0
- package/dist/esm/agents/processors/request_confirmation_llm_request_processor.js +9 -1
- package/dist/esm/agents/processors/tool_filter_request_processor.js +7 -1
- package/dist/esm/apps/app.js +49 -0
- package/dist/esm/apps/resumability_config.js +16 -0
- package/dist/esm/artifacts/file_artifact_service.js +14 -1
- package/dist/esm/artifacts/gcs_artifact_service.js +57 -15
- package/dist/esm/artifacts/in_memory_artifact_service.js +5 -1
- package/dist/esm/artifacts/scoped_artifact_service.js +73 -0
- package/dist/esm/artifacts/session_artifact_service.js +7 -0
- package/dist/esm/auth/auth_preprocessor.js +12 -10
- package/dist/esm/auth/oauth2/oauth2_discovery.js +14 -4
- package/dist/esm/auth/oauth2/oauth2_utils.js +12 -1
- package/dist/esm/code_executors/code_executor_context.js +7 -7
- package/dist/esm/common.js +75 -3
- package/dist/esm/context/agent_controlled_context_compactor.js +81 -0
- package/dist/esm/context/summarizers/llm_summarizer.js +11 -0
- package/dist/esm/context/token_based_context_compactor.js +43 -11
- package/dist/esm/context/trajectory_thought_pruning_compactor.js +43 -0
- package/dist/esm/events/event.js +23 -1
- package/dist/esm/integrations/agent_registry/agent_registry_mcp_toolset.js +21 -2
- package/dist/esm/models/gemini_llm_connection.js +62 -19
- package/dist/esm/models/google_llm.js +49 -17
- package/dist/esm/models/interactions_utils.js +697 -0
- package/dist/esm/plugins/base_plugin.js +1 -0
- package/dist/esm/plugins/security_plugin.js +16 -0
- package/dist/esm/runner/in_memory_runner.js +13 -2
- package/dist/esm/runner/runner.js +91 -73
- package/dist/esm/sessions/base_session_service.js +17 -2
- package/dist/esm/sessions/database_session_service.js +26 -9
- package/dist/esm/sessions/db/schema.js +44 -10
- package/dist/esm/sessions/in_memory_session_service.js +4 -2
- package/dist/esm/sessions/vertex_ai_session_service.js +21 -5
- package/dist/esm/skills/gcp_skill_registry.js +78 -0
- package/dist/esm/skills/loader.js +66 -2
- package/dist/esm/skills/skill_registry.js +7 -0
- package/dist/esm/tools/base_toolset.js +1 -1
- package/dist/esm/tools/consolidate_context_tool.js +51 -0
- package/dist/esm/tools/forwarding_artifact_service.js +16 -28
- package/dist/esm/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +206 -0
- package/dist/esm/tools/openapi_tool/openapi_spec_parser/operation_parser.js +198 -0
- package/dist/esm/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +91 -0
- package/dist/esm/tools/openapi_tool/openapi_toolset.js +97 -0
- package/dist/esm/tools/openapi_tool/rest_api_tool.js +229 -0
- package/dist/esm/tools/skill/load_skill_resource_tool.js +25 -3
- package/dist/esm/tools/skill/load_skill_tool.js +12 -1
- package/dist/esm/tools/skill/run_skill_script_tool.js +12 -1
- package/dist/esm/tools/skill/search_skills_tool.js +82 -0
- package/dist/esm/tools/skill/skill_toolset.js +40 -5
- package/dist/esm/utils/async_hooks_shim.js +24 -0
- package/dist/esm/utils/async_queue.js +60 -0
- package/dist/esm/utils/case_utils.js +25 -0
- package/dist/esm/utils/client_labels.js +38 -2
- package/dist/esm/utils/env_aware_utils.js +14 -1
- package/dist/esm/utils/live_connection_utils.js +256 -0
- package/dist/esm/utils/model_name.js +8 -0
- package/dist/esm/utils/streaming_utils.js +18 -11
- package/dist/esm/utils/task.js +34 -0
- package/dist/esm/version.js +1 -1
- package/dist/types/a2a/a2a_remote_agent_utils.d.ts +29 -4
- package/dist/types/a2a/event_converter_utils.d.ts +14 -1
- package/dist/types/a2a/metadata_converter_utils.d.ts +18 -0
- package/dist/types/a2a/part_converter_utils.d.ts +51 -6
- package/dist/types/agents/active_streaming_tool.d.ts +3 -4
- package/dist/types/agents/functions.d.ts +12 -9
- package/dist/types/agents/invocation_context.d.ts +7 -12
- package/dist/types/agents/llm_agent.d.ts +14 -0
- package/dist/types/agents/processors/agent_transfer_llm_request_processor.d.ts +14 -0
- package/dist/types/agents/processors/basic_llm_request_processor.d.ts +7 -0
- package/dist/types/agents/processors/content_processor_utils.d.ts +34 -0
- package/dist/types/agents/processors/content_request_processor.d.ts +16 -0
- package/dist/types/agents/processors/context_compactor_request_processor.d.ts +12 -0
- package/dist/types/agents/processors/identity_llm_request_processor.d.ts +7 -0
- package/dist/types/agents/processors/interactions_request_processor.d.ts +17 -0
- package/dist/types/agents/processors/request_confirmation_llm_request_processor.d.ts +9 -1
- package/dist/types/agents/processors/tool_filter_request_processor.d.ts +12 -1
- package/dist/types/apps/app.d.ts +52 -0
- package/dist/types/apps/resumability_config.d.ts +27 -0
- package/dist/types/artifacts/base_artifact_service.d.ts +6 -36
- package/dist/types/artifacts/gcs_artifact_service.d.ts +2 -1
- package/dist/types/artifacts/scoped_artifact_service.d.ts +25 -0
- package/dist/types/artifacts/session_artifact_service.d.ts +25 -0
- package/dist/types/auth/oauth2/oauth2_discovery.d.ts +11 -0
- package/dist/types/common.d.ts +35 -4
- package/dist/types/context/agent_controlled_context_compactor.d.ts +24 -0
- package/dist/types/context/base_context_compactor.d.ts +3 -0
- package/dist/types/context/summarizers/llm_summarizer.d.ts +17 -0
- package/dist/types/context/token_based_context_compactor.d.ts +6 -1
- package/dist/types/context/trajectory_thought_pruning_compactor.d.ts +27 -0
- package/dist/types/events/event.d.ts +8 -0
- package/dist/types/events/event_actions.d.ts +1 -2
- package/dist/types/integrations/agent_registry/agent_registry_mcp_toolset.d.ts +21 -2
- package/dist/types/models/base_llm_connection.d.ts +10 -0
- package/dist/types/models/gemini_llm_connection.d.ts +15 -4
- package/dist/types/models/google_llm.d.ts +15 -1
- package/dist/types/models/interactions_utils.d.ts +92 -0
- package/dist/types/models/llm_request.d.ts +4 -0
- package/dist/types/models/llm_response.d.ts +14 -1
- package/dist/types/plugins/base_plugin.d.ts +2 -1
- package/dist/types/plugins/security_plugin.d.ts +30 -0
- package/dist/types/runner/in_memory_runner.d.ts +7 -1
- package/dist/types/runner/runner.d.ts +43 -9
- package/dist/types/sessions/base_session_service.d.ts +7 -16
- package/dist/types/sessions/db/schema.d.ts +1 -0
- package/dist/types/sessions/session.d.ts +11 -0
- package/dist/types/sessions/vertex_ai_session_service.d.ts +9 -1
- package/dist/types/skills/gcp_skill_registry.d.ts +24 -0
- package/dist/types/skills/loader.d.ts +7 -0
- package/dist/types/skills/skill.d.ts +1 -1
- package/dist/types/skills/skill_registry.d.ts +29 -0
- package/dist/types/tools/consolidate_context_tool.d.ts +19 -0
- package/dist/types/tools/forwarding_artifact_service.d.ts +3 -2
- package/dist/types/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.d.ts +34 -0
- package/dist/types/tools/openapi_tool/openapi_spec_parser/operation_parser.d.ts +59 -0
- package/dist/types/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.d.ts +23 -0
- package/dist/types/tools/openapi_tool/openapi_toolset.d.ts +27 -0
- package/dist/types/tools/openapi_tool/rest_api_tool.d.ts +50 -0
- package/dist/types/tools/skill/load_skill_resource_tool.d.ts +1 -1
- package/dist/types/tools/skill/search_skills_tool.d.ts +14 -0
- package/dist/types/tools/skill/skill_toolset.d.ts +5 -0
- package/dist/types/utils/async_hooks_shim.d.ts +10 -0
- package/dist/types/utils/async_queue.d.ts +18 -0
- package/dist/types/utils/case_utils.d.ts +12 -0
- package/dist/types/utils/client_labels.d.ts +10 -0
- package/dist/types/utils/env_aware_utils.d.ts +3 -3
- package/dist/types/utils/live_connection_utils.d.ts +30 -0
- package/dist/types/utils/model_name.d.ts +7 -0
- package/dist/types/utils/streaming_utils.d.ts +0 -1
- package/dist/types/utils/task.d.ts +24 -0
- package/dist/types/version.d.ts +1 -1
- package/dist/web/agents/active_streaming_tool.js +6 -1
- package/dist/web/agents/base_agent.js +31 -1
- package/dist/web/agents/context.js +1 -11
- package/dist/web/agents/functions.js +36 -15
- package/dist/web/agents/instructions.js +99 -33
- package/dist/web/agents/invocation_context.js +2 -6
- package/dist/web/agents/llm_agent.js +61 -11
- package/dist/web/agents/processors/agent_transfer_llm_request_processor.js +7 -0
- package/dist/web/agents/processors/basic_llm_request_processor.js +8 -1
- package/dist/web/agents/processors/code_execution_request_processor.js +0 -3
- package/dist/web/agents/processors/content_processor_utils.js +66 -24
- package/dist/web/agents/processors/content_request_processor.js +7 -0
- package/dist/web/agents/processors/context_compactor_request_processor.js +16 -2
- package/dist/web/agents/processors/identity_llm_request_processor.js +7 -0
- package/dist/web/agents/processors/instructions_llm_request_processor.js +5 -0
- package/dist/web/agents/processors/interactions_request_processor.js +52 -0
- package/dist/web/agents/processors/request_confirmation_llm_request_processor.js +9 -1
- package/dist/web/agents/processors/tool_filter_request_processor.js +7 -1
- package/dist/web/apps/app.js +49 -0
- package/dist/web/apps/resumability_config.js +31 -0
- package/dist/web/artifacts/file_artifact_service.js +14 -1
- package/dist/web/artifacts/gcs_artifact_service.js +55 -15
- package/dist/web/artifacts/in_memory_artifact_service.js +5 -1
- package/dist/web/artifacts/scoped_artifact_service.js +86 -0
- package/dist/web/artifacts/session_artifact_service.js +7 -0
- package/dist/web/auth/auth_preprocessor.js +12 -10
- package/dist/web/auth/oauth2/oauth2_discovery.js +14 -4
- package/dist/web/auth/oauth2/oauth2_utils.js +12 -1
- package/dist/web/code_executors/code_executor_context.js +7 -7
- package/dist/web/common.js +75 -3
- package/dist/web/context/agent_controlled_context_compactor.js +81 -0
- package/dist/web/context/summarizers/llm_summarizer.js +11 -0
- package/dist/web/context/token_based_context_compactor.js +43 -11
- package/dist/web/context/trajectory_thought_pruning_compactor.js +43 -0
- package/dist/web/events/event.js +21 -1
- package/dist/web/integrations/agent_registry/agent_registry_mcp_toolset.js +21 -2
- package/dist/web/models/gemini_llm_connection.js +75 -19
- package/dist/web/models/google_llm.js +80 -17
- package/dist/web/models/interactions_utils.js +728 -0
- package/dist/web/plugins/base_plugin.js +1 -0
- package/dist/web/plugins/security_plugin.js +16 -0
- package/dist/web/runner/in_memory_runner.js +13 -2
- package/dist/web/runner/runner.js +111 -75
- package/dist/web/sessions/base_session_service.js +17 -2
- package/dist/web/sessions/database_session_service.js +26 -9
- package/dist/web/sessions/db/schema.js +44 -10
- package/dist/web/sessions/in_memory_session_service.js +4 -2
- package/dist/web/sessions/vertex_ai_session_service.js +21 -5
- package/dist/web/skills/gcp_skill_registry.js +78 -0
- package/dist/web/skills/loader.js +66 -2
- package/dist/web/skills/skill_registry.js +7 -0
- package/dist/web/tools/base_toolset.js +1 -1
- package/dist/web/tools/consolidate_context_tool.js +51 -0
- package/dist/web/tools/forwarding_artifact_service.js +16 -28
- package/dist/web/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +221 -0
- package/dist/web/tools/openapi_tool/openapi_spec_parser/operation_parser.js +198 -0
- package/dist/web/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +91 -0
- package/dist/web/tools/openapi_tool/openapi_toolset.js +97 -0
- package/dist/web/tools/openapi_tool/rest_api_tool.js +229 -0
- package/dist/web/tools/skill/load_skill_resource_tool.js +25 -3
- package/dist/web/tools/skill/load_skill_tool.js +12 -1
- package/dist/web/tools/skill/run_skill_script_tool.js +12 -1
- package/dist/web/tools/skill/search_skills_tool.js +82 -0
- package/dist/web/tools/skill/skill_toolset.js +40 -5
- package/dist/web/utils/async_hooks_shim.js +24 -0
- package/dist/web/utils/async_queue.js +60 -0
- package/dist/web/utils/case_utils.js +25 -0
- package/dist/web/utils/client_labels.js +38 -2
- package/dist/web/utils/env_aware_utils.js +14 -1
- package/dist/web/utils/live_connection_utils.js +254 -0
- package/dist/web/utils/model_name.js +8 -0
- package/dist/web/utils/streaming_utils.js +18 -11
- package/dist/web/utils/task.js +34 -0
- package/dist/web/version.js +1 -1
- package/package.json +4 -2
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
"use strict";
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
10
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
11
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
12
|
+
var __export = (target, all) => {
|
|
13
|
+
for (var name in all)
|
|
14
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
15
|
+
};
|
|
16
|
+
var __copyProps = (to, from, except, desc) => {
|
|
17
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
18
|
+
for (let key of __getOwnPropNames(from))
|
|
19
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
20
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
21
|
+
}
|
|
22
|
+
return to;
|
|
23
|
+
};
|
|
24
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
25
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
26
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
27
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
28
|
+
if (decorator = decorators[i])
|
|
29
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
30
|
+
if (kind && result) __defProp(target, key, result);
|
|
31
|
+
return result;
|
|
32
|
+
};
|
|
33
|
+
var gcp_skill_registry_exports = {};
|
|
34
|
+
__export(gcp_skill_registry_exports, {
|
|
35
|
+
GCPSkillRegistry: () => GCPSkillRegistry
|
|
36
|
+
});
|
|
37
|
+
module.exports = __toCommonJS(gcp_skill_registry_exports);
|
|
38
|
+
var import_vertexai = require("@google-cloud/vertexai");
|
|
39
|
+
var import_experimental = require("../utils/experimental.js");
|
|
40
|
+
var import_loader = require("./loader.js");
|
|
41
|
+
/**
|
|
42
|
+
* @license
|
|
43
|
+
* Copyright 2026 Google LLC
|
|
44
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
45
|
+
*/
|
|
46
|
+
let GCPSkillRegistry = class {
|
|
47
|
+
constructor(options = {}) {
|
|
48
|
+
this.projectId = options.projectId || process.env.GOOGLE_CLOUD_PROJECT;
|
|
49
|
+
this.location = options.location || process.env.GOOGLE_CLOUD_LOCATION;
|
|
50
|
+
this.client = options.client || new import_vertexai.Client({
|
|
51
|
+
project: this.projectId,
|
|
52
|
+
location: this.location
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
async getSkill(name) {
|
|
56
|
+
const apiClient = this.client.apiClient;
|
|
57
|
+
const httpResponse = await apiClient.request({
|
|
58
|
+
path: `skills/${name}`,
|
|
59
|
+
httpMethod: "GET",
|
|
60
|
+
httpOptions: { apiVersion: "v1beta1" }
|
|
61
|
+
});
|
|
62
|
+
const response = await httpResponse.json();
|
|
63
|
+
const zippedFilesystem = response.zippedFilesystem || response.zipped_filesystem;
|
|
64
|
+
if (!zippedFilesystem) {
|
|
65
|
+
throw new Error(`Skill '${name}' does not contain zipped filesystem.`);
|
|
66
|
+
}
|
|
67
|
+
const zipBuffer = Buffer.from(zippedFilesystem, "base64");
|
|
68
|
+
return (0, import_loader.loadSkillFromZipBuffer)(zipBuffer);
|
|
69
|
+
}
|
|
70
|
+
async searchSkills(query) {
|
|
71
|
+
const apiClient = this.client.apiClient;
|
|
72
|
+
const trimmedQuery = query.trim();
|
|
73
|
+
const isSearch = trimmedQuery.length > 0;
|
|
74
|
+
const path = isSearch ? `skills:retrieve?query=${encodeURIComponent(trimmedQuery)}` : "skills";
|
|
75
|
+
const httpResponse = await apiClient.request({
|
|
76
|
+
path,
|
|
77
|
+
httpMethod: "GET",
|
|
78
|
+
httpOptions: { apiVersion: "v1beta1" }
|
|
79
|
+
});
|
|
80
|
+
const response = await httpResponse.json();
|
|
81
|
+
const skillsList = isSearch ? response.retrievedSkills || response.retrieved_skills : response.skills;
|
|
82
|
+
const results = [];
|
|
83
|
+
if (skillsList && Array.isArray(skillsList)) {
|
|
84
|
+
for (const s of skillsList) {
|
|
85
|
+
const skillNameStr = s.skillName || s.skill_name || s.name || "";
|
|
86
|
+
const descriptionStr = s.description || "";
|
|
87
|
+
const parts = skillNameStr.split("/");
|
|
88
|
+
const name = skillNameStr ? parts[parts.length - 1] : "";
|
|
89
|
+
results.push({
|
|
90
|
+
name,
|
|
91
|
+
description: descriptionStr
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return results;
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
GCPSkillRegistry = __decorateClass([
|
|
99
|
+
import_experimental.experimental
|
|
100
|
+
], GCPSkillRegistry);
|
|
101
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
102
|
+
0 && (module.exports = {
|
|
103
|
+
GCPSkillRegistry
|
|
104
|
+
});
|
|
@@ -36,10 +36,12 @@ var loader_exports = {};
|
|
|
36
36
|
__export(loader_exports, {
|
|
37
37
|
loadAllSkillsInDir: () => loadAllSkillsInDir,
|
|
38
38
|
loadSkillFromDir: () => loadSkillFromDir,
|
|
39
|
+
loadSkillFromZipBuffer: () => loadSkillFromZipBuffer,
|
|
39
40
|
parseSkillMdContent: () => parseSkillMdContent,
|
|
40
41
|
validateSkillDir: () => validateSkillDir
|
|
41
42
|
});
|
|
42
43
|
module.exports = __toCommonJS(loader_exports);
|
|
44
|
+
var import_adm_zip = __toESM(require("adm-zip"), 1);
|
|
43
45
|
var import_js_yaml = __toESM(require("js-yaml"), 1);
|
|
44
46
|
var fs = __toESM(require("node:fs/promises"), 1);
|
|
45
47
|
var path = __toESM(require("node:path"), 1);
|
|
@@ -121,12 +123,12 @@ function parseSkillMdContent(content) {
|
|
|
121
123
|
if (!content.startsWith("---")) {
|
|
122
124
|
throw new Error("SKILL.md must start with YAML frontmatter (---)");
|
|
123
125
|
}
|
|
124
|
-
const parts = content.split("---"
|
|
126
|
+
const parts = content.split("---");
|
|
125
127
|
if (parts.length < 3) {
|
|
126
128
|
throw new Error("SKILL.md frontmatter not properly closed with ---");
|
|
127
129
|
}
|
|
128
130
|
const frontmatterStr = parts[1];
|
|
129
|
-
const body = parts
|
|
131
|
+
const body = parts.filter((_, i) => i >= 2).join("---").trim();
|
|
130
132
|
try {
|
|
131
133
|
const parsed = import_js_yaml.default.load(frontmatterStr);
|
|
132
134
|
if (typeof parsed !== "object" || parsed === null) {
|
|
@@ -274,10 +276,73 @@ async function loadAllSkillsInDir(skillsBasePath) {
|
|
|
274
276
|
}
|
|
275
277
|
return skills;
|
|
276
278
|
}
|
|
279
|
+
function loadSkillFromZipBuffer(zipBuffer) {
|
|
280
|
+
const zip = new import_adm_zip.default(zipBuffer);
|
|
281
|
+
const entries = zip.getEntries();
|
|
282
|
+
let skillMdContent = "";
|
|
283
|
+
for (const entry of entries) {
|
|
284
|
+
if (entry.isDirectory) continue;
|
|
285
|
+
if (entry.entryName.toLowerCase() === "skill.md") {
|
|
286
|
+
skillMdContent = entry.getData().toString("utf-8");
|
|
287
|
+
break;
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
if (!skillMdContent) {
|
|
291
|
+
throw new Error("SKILL.md not found in zipped filesystem.");
|
|
292
|
+
}
|
|
293
|
+
const { frontmatter: parsed, body } = parseSkillMdContent(skillMdContent);
|
|
294
|
+
const frontmatter = import_skill.FrontmatterSchema.parse(parsed);
|
|
295
|
+
const references = {};
|
|
296
|
+
const assets = {};
|
|
297
|
+
const scripts = {};
|
|
298
|
+
function loadZipDir(prefix) {
|
|
299
|
+
const res = {};
|
|
300
|
+
const normPrefix = prefix.endsWith("/") ? prefix : `${prefix}/`;
|
|
301
|
+
for (const entry of entries) {
|
|
302
|
+
if (entry.isDirectory) continue;
|
|
303
|
+
if (entry.entryName.startsWith(normPrefix)) {
|
|
304
|
+
if (entry.entryName.includes("__pycache__")) continue;
|
|
305
|
+
const relativePath = entry.entryName.substring(normPrefix.length);
|
|
306
|
+
if (!relativePath) continue;
|
|
307
|
+
const data = entry.getData();
|
|
308
|
+
try {
|
|
309
|
+
res[relativePath] = data.toString("utf-8");
|
|
310
|
+
} catch (_e) {
|
|
311
|
+
res[relativePath] = data;
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
return res;
|
|
316
|
+
}
|
|
317
|
+
const refFiles = loadZipDir("references");
|
|
318
|
+
for (const [key, val] of Object.entries(refFiles)) {
|
|
319
|
+
references[key] = val;
|
|
320
|
+
}
|
|
321
|
+
const assetFiles = loadZipDir("assets");
|
|
322
|
+
for (const [key, val] of Object.entries(assetFiles)) {
|
|
323
|
+
assets[key] = val;
|
|
324
|
+
}
|
|
325
|
+
const rawScripts = loadZipDir("scripts");
|
|
326
|
+
for (const [key, val] of Object.entries(rawScripts)) {
|
|
327
|
+
if (typeof val === "string") {
|
|
328
|
+
scripts[key] = { src: val };
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
return {
|
|
332
|
+
frontmatter,
|
|
333
|
+
instructions: body,
|
|
334
|
+
resources: {
|
|
335
|
+
references,
|
|
336
|
+
assets,
|
|
337
|
+
scripts
|
|
338
|
+
}
|
|
339
|
+
};
|
|
340
|
+
}
|
|
277
341
|
// Annotate the CommonJS export names for ESM import in node:
|
|
278
342
|
0 && (module.exports = {
|
|
279
343
|
loadAllSkillsInDir,
|
|
280
344
|
loadSkillFromDir,
|
|
345
|
+
loadSkillFromZipBuffer,
|
|
281
346
|
parseSkillMdContent,
|
|
282
347
|
validateSkillDir
|
|
283
348
|
});
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
"use strict";
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
10
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
11
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
21
|
+
var skill_registry_exports = {};
|
|
22
|
+
module.exports = __toCommonJS(skill_registry_exports);
|
|
23
|
+
/**
|
|
24
|
+
* @license
|
|
25
|
+
* Copyright 2026 Google LLC
|
|
26
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
27
|
+
*/
|
|
@@ -53,7 +53,7 @@ class BaseToolset {
|
|
|
53
53
|
* @return Whether the tool should be exposed to LLM.
|
|
54
54
|
*/
|
|
55
55
|
isToolSelected(tool, context) {
|
|
56
|
-
if (!this.toolFilter) {
|
|
56
|
+
if (!this.toolFilter || Array.isArray(this.toolFilter) && this.toolFilter.length === 0) {
|
|
57
57
|
return true;
|
|
58
58
|
}
|
|
59
59
|
if (typeof this.toolFilter === "function") {
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
"use strict";
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
10
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
11
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
12
|
+
var __export = (target, all) => {
|
|
13
|
+
for (var name in all)
|
|
14
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
15
|
+
};
|
|
16
|
+
var __copyProps = (to, from, except, desc) => {
|
|
17
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
18
|
+
for (let key of __getOwnPropNames(from))
|
|
19
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
20
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
21
|
+
}
|
|
22
|
+
return to;
|
|
23
|
+
};
|
|
24
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
25
|
+
var consolidate_context_tool_exports = {};
|
|
26
|
+
__export(consolidate_context_tool_exports, {
|
|
27
|
+
ConsolidateContextTool: () => ConsolidateContextTool
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(consolidate_context_tool_exports);
|
|
30
|
+
var import_genai = require("@google/genai");
|
|
31
|
+
var import_base_tool = require("./base_tool.js");
|
|
32
|
+
/**
|
|
33
|
+
* @license
|
|
34
|
+
* Copyright 2026 Google LLC
|
|
35
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
36
|
+
*/
|
|
37
|
+
class ConsolidateContextTool extends import_base_tool.BaseTool {
|
|
38
|
+
constructor() {
|
|
39
|
+
super({
|
|
40
|
+
name: "consolidate_context",
|
|
41
|
+
description: "Requests context consolidation (compaction) to manage history size. Use this when a subtask is complete and you want to summarize progress and clear detailed history."
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
_getDeclaration() {
|
|
45
|
+
return {
|
|
46
|
+
name: this.name,
|
|
47
|
+
description: this.description,
|
|
48
|
+
parameters: {
|
|
49
|
+
type: import_genai.Type.OBJECT,
|
|
50
|
+
properties: {
|
|
51
|
+
detail: {
|
|
52
|
+
type: import_genai.Type.STRING,
|
|
53
|
+
description: "Optional description of what has been accomplished so far. This detail will be used to guide the summarization of the history."
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
async runAsync({
|
|
60
|
+
args,
|
|
61
|
+
toolContext
|
|
62
|
+
}) {
|
|
63
|
+
toolContext.state.set("temp:consolidate_context", true);
|
|
64
|
+
if (args["detail"] !== void 0) {
|
|
65
|
+
toolContext.state.set(
|
|
66
|
+
"temp:consolidate_context_detail",
|
|
67
|
+
args["detail"]
|
|
68
|
+
);
|
|
69
|
+
}
|
|
70
|
+
return {
|
|
71
|
+
status: "success",
|
|
72
|
+
message: "Context consolidation requested."
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
77
|
+
0 && (module.exports = {
|
|
78
|
+
ConsolidateContextTool
|
|
79
|
+
});
|
|
@@ -37,48 +37,36 @@ class ForwardingArtifactService {
|
|
|
37
37
|
this.toolContext = toolContext;
|
|
38
38
|
this.invocationContext = toolContext.invocationContext;
|
|
39
39
|
}
|
|
40
|
-
// TODO - b/425992518: Remove unnecessary parameters. We should rethink the
|
|
41
|
-
// abstraction layer to make it more clear.
|
|
42
40
|
async saveArtifact(request) {
|
|
43
41
|
return this.toolContext.saveArtifact(request.filename, request.artifact);
|
|
44
42
|
}
|
|
45
43
|
async loadArtifact(request) {
|
|
46
44
|
return this.toolContext.loadArtifact(request.filename, request.version);
|
|
47
45
|
}
|
|
48
|
-
async listArtifactKeys() {
|
|
46
|
+
async listArtifactKeys(_request) {
|
|
49
47
|
return this.toolContext.listArtifacts();
|
|
50
48
|
}
|
|
51
|
-
|
|
52
|
-
|
|
49
|
+
getArtifactService() {
|
|
50
|
+
const service = this.invocationContext.artifactService;
|
|
51
|
+
if (!service) {
|
|
53
52
|
throw new Error("Artifact service is not initialized.");
|
|
54
53
|
}
|
|
55
|
-
return
|
|
56
|
-
|
|
57
|
-
|
|
54
|
+
return service;
|
|
55
|
+
}
|
|
56
|
+
async deleteArtifact(request) {
|
|
57
|
+
return this.getArtifactService().deleteArtifact(request.filename);
|
|
58
58
|
}
|
|
59
59
|
async listVersions(request) {
|
|
60
|
-
|
|
61
|
-
throw new Error("Artifact service is not initialized.");
|
|
62
|
-
}
|
|
63
|
-
return this.toolContext.invocationContext.artifactService.listVersions(
|
|
64
|
-
request
|
|
65
|
-
);
|
|
60
|
+
return this.getArtifactService().listVersions(request.filename);
|
|
66
61
|
}
|
|
67
|
-
listArtifactVersions(request) {
|
|
68
|
-
|
|
69
|
-
throw new Error("Artifact service is not initialized.");
|
|
70
|
-
}
|
|
71
|
-
return this.toolContext.invocationContext.artifactService.listArtifactVersions(
|
|
72
|
-
request
|
|
73
|
-
);
|
|
62
|
+
async listArtifactVersions(request) {
|
|
63
|
+
return this.getArtifactService().listArtifactVersions(request.filename);
|
|
74
64
|
}
|
|
75
|
-
getArtifactVersion(request) {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
request
|
|
81
|
-
);
|
|
65
|
+
async getArtifactVersion(request) {
|
|
66
|
+
return this.getArtifactService().getArtifactVersion({
|
|
67
|
+
filename: request.filename,
|
|
68
|
+
version: request.version
|
|
69
|
+
});
|
|
82
70
|
}
|
|
83
71
|
}
|
|
84
72
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
"use strict";
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
10
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
11
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
12
|
+
var __export = (target, all) => {
|
|
13
|
+
for (var name in all)
|
|
14
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
15
|
+
};
|
|
16
|
+
var __copyProps = (to, from, except, desc) => {
|
|
17
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
18
|
+
for (let key of __getOwnPropNames(from))
|
|
19
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
20
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
21
|
+
}
|
|
22
|
+
return to;
|
|
23
|
+
};
|
|
24
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
25
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
26
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
27
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
28
|
+
if (decorator = decorators[i])
|
|
29
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
30
|
+
if (kind && result) __defProp(target, key, result);
|
|
31
|
+
return result;
|
|
32
|
+
};
|
|
33
|
+
var openapi_spec_parser_exports = {};
|
|
34
|
+
__export(openapi_spec_parser_exports, {
|
|
35
|
+
OpenApiSpecParser: () => OpenApiSpecParser
|
|
36
|
+
});
|
|
37
|
+
module.exports = __toCommonJS(openapi_spec_parser_exports);
|
|
38
|
+
var import_experimental = require("../../../utils/experimental.js");
|
|
39
|
+
var import_operation_parser = require("./operation_parser.js");
|
|
40
|
+
/**
|
|
41
|
+
* @license
|
|
42
|
+
* Copyright 2026 Google LLC
|
|
43
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
44
|
+
*/
|
|
45
|
+
const VALID_SCHEMA_TYPES = /* @__PURE__ */ new Set([
|
|
46
|
+
"array",
|
|
47
|
+
"boolean",
|
|
48
|
+
"integer",
|
|
49
|
+
"null",
|
|
50
|
+
"number",
|
|
51
|
+
"object",
|
|
52
|
+
"string"
|
|
53
|
+
]);
|
|
54
|
+
let OpenApiSpecParser = class {
|
|
55
|
+
constructor(options = {}) {
|
|
56
|
+
var _a;
|
|
57
|
+
this.preservePropertyNames = (_a = options.preservePropertyNames) != null ? _a : false;
|
|
58
|
+
}
|
|
59
|
+
parse(openapiSpec) {
|
|
60
|
+
const resolvedSpec = resolveReferences(openapiSpec);
|
|
61
|
+
const sanitizedSpec = sanitizeSchemaTypes(resolvedSpec);
|
|
62
|
+
return collectOperations(sanitizedSpec, {
|
|
63
|
+
preservePropertyNames: this.preservePropertyNames
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
__decorateClass([
|
|
68
|
+
import_experimental.experimental
|
|
69
|
+
], OpenApiSpecParser.prototype, "parse", 1);
|
|
70
|
+
OpenApiSpecParser = __decorateClass([
|
|
71
|
+
import_experimental.experimental
|
|
72
|
+
], OpenApiSpecParser);
|
|
73
|
+
function resolveReferences(spec) {
|
|
74
|
+
const resolvedCache = /* @__PURE__ */ new Map();
|
|
75
|
+
const specCopy = JSON.parse(JSON.stringify(spec));
|
|
76
|
+
const recursiveResolve = (obj, currentDoc, seenRefs = /* @__PURE__ */ new Set()) => {
|
|
77
|
+
if (typeof obj !== "object" || obj === null) {
|
|
78
|
+
return obj;
|
|
79
|
+
}
|
|
80
|
+
if (Array.isArray(obj)) {
|
|
81
|
+
return obj.map((item) => recursiveResolve(item, currentDoc, seenRefs));
|
|
82
|
+
}
|
|
83
|
+
const objRecord = obj;
|
|
84
|
+
if ("$ref" in objRecord && typeof objRecord["$ref"] === "string") {
|
|
85
|
+
const refString = objRecord["$ref"];
|
|
86
|
+
if (seenRefs.has(refString) && !resolvedCache.has(refString)) {
|
|
87
|
+
const copy = { ...objRecord };
|
|
88
|
+
delete copy["$ref"];
|
|
89
|
+
return copy;
|
|
90
|
+
}
|
|
91
|
+
seenRefs.add(refString);
|
|
92
|
+
if (resolvedCache.has(refString)) {
|
|
93
|
+
return resolvedCache.get(refString);
|
|
94
|
+
}
|
|
95
|
+
let resolvedValue = resolveRef(refString, currentDoc);
|
|
96
|
+
if (resolvedValue !== void 0) {
|
|
97
|
+
resolvedValue = recursiveResolve(resolvedValue, currentDoc, seenRefs);
|
|
98
|
+
resolvedCache.set(refString, resolvedValue);
|
|
99
|
+
return resolvedValue;
|
|
100
|
+
} else {
|
|
101
|
+
return obj;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
const newDict = {};
|
|
105
|
+
for (const [key, value] of Object.entries(objRecord)) {
|
|
106
|
+
newDict[key] = recursiveResolve(value, currentDoc, seenRefs);
|
|
107
|
+
}
|
|
108
|
+
return newDict;
|
|
109
|
+
};
|
|
110
|
+
return recursiveResolve(specCopy, specCopy);
|
|
111
|
+
}
|
|
112
|
+
function resolveRef(refString, currentDoc) {
|
|
113
|
+
const parts = refString.split("/");
|
|
114
|
+
if (parts[0] !== "#") {
|
|
115
|
+
throw new Error(`External references not supported: ${refString}`);
|
|
116
|
+
}
|
|
117
|
+
let current = currentDoc;
|
|
118
|
+
for (const part of parts.slice(1)) {
|
|
119
|
+
if (typeof current === "object" && current !== null && part in current) {
|
|
120
|
+
current = current[part];
|
|
121
|
+
} else {
|
|
122
|
+
return void 0;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return current;
|
|
126
|
+
}
|
|
127
|
+
function sanitizeSchemaTypes(openapiSpec) {
|
|
128
|
+
const specCopy = JSON.parse(JSON.stringify(openapiSpec));
|
|
129
|
+
const sanitizeTypeField = (schemaDict) => {
|
|
130
|
+
if (!("type" in schemaDict)) return;
|
|
131
|
+
const typeValue = schemaDict["type"];
|
|
132
|
+
if (typeof typeValue === "string") {
|
|
133
|
+
const normalizedType = typeValue.toLowerCase();
|
|
134
|
+
if (VALID_SCHEMA_TYPES.has(normalizedType)) {
|
|
135
|
+
schemaDict["type"] = normalizedType;
|
|
136
|
+
} else {
|
|
137
|
+
delete schemaDict["type"];
|
|
138
|
+
}
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
if (Array.isArray(typeValue)) {
|
|
142
|
+
const validTypes = [];
|
|
143
|
+
for (const entry of typeValue) {
|
|
144
|
+
if (typeof entry !== "string") continue;
|
|
145
|
+
const normalizedEntry = entry.toLowerCase();
|
|
146
|
+
if (VALID_SCHEMA_TYPES.has(normalizedEntry) && !validTypes.includes(normalizedEntry)) {
|
|
147
|
+
validTypes.push(normalizedEntry);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
if (validTypes.length > 0) {
|
|
151
|
+
schemaDict["type"] = validTypes;
|
|
152
|
+
} else {
|
|
153
|
+
delete schemaDict["type"];
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
};
|
|
157
|
+
const sanitizeRecursive = (obj, inSchema) => {
|
|
158
|
+
if (typeof obj !== "object" || obj === null) {
|
|
159
|
+
return obj;
|
|
160
|
+
}
|
|
161
|
+
if (Array.isArray(obj)) {
|
|
162
|
+
return obj.map((item) => sanitizeRecursive(item, inSchema));
|
|
163
|
+
}
|
|
164
|
+
const objRecord = obj;
|
|
165
|
+
if (inSchema) {
|
|
166
|
+
sanitizeTypeField(objRecord);
|
|
167
|
+
}
|
|
168
|
+
for (const [key, value] of Object.entries(objRecord)) {
|
|
169
|
+
const isSchemaContainer = key === "schema" || key === "schemas";
|
|
170
|
+
objRecord[key] = sanitizeRecursive(value, inSchema || isSchemaContainer);
|
|
171
|
+
}
|
|
172
|
+
return objRecord;
|
|
173
|
+
};
|
|
174
|
+
return sanitizeRecursive(specCopy, false);
|
|
175
|
+
}
|
|
176
|
+
function collectOperations(spec, options = {}) {
|
|
177
|
+
var _a, _b, _c, _d;
|
|
178
|
+
const preservePropertyNames = (_a = options.preservePropertyNames) != null ? _a : false;
|
|
179
|
+
const operations = [];
|
|
180
|
+
const baseUrl = ((_c = (_b = spec.servers) == null ? void 0 : _b[0]) == null ? void 0 : _c.url) || "";
|
|
181
|
+
const globalSecurity = spec.security || [];
|
|
182
|
+
let globalSchemeName;
|
|
183
|
+
if (globalSecurity.length > 0) {
|
|
184
|
+
globalSchemeName = Object.keys(globalSecurity[0])[0];
|
|
185
|
+
}
|
|
186
|
+
const authSchemes = ((_d = spec.components) == null ? void 0 : _d.securitySchemes) || {};
|
|
187
|
+
for (const [path, pathItem] of Object.entries(spec.paths || {})) {
|
|
188
|
+
if (!pathItem) continue;
|
|
189
|
+
const methods = [
|
|
190
|
+
"get",
|
|
191
|
+
"post",
|
|
192
|
+
"put",
|
|
193
|
+
"delete",
|
|
194
|
+
"patch",
|
|
195
|
+
"head",
|
|
196
|
+
"options",
|
|
197
|
+
"trace"
|
|
198
|
+
];
|
|
199
|
+
for (const method of methods) {
|
|
200
|
+
const operation = pathItem[method];
|
|
201
|
+
if (!operation) continue;
|
|
202
|
+
const pathParams = pathItem.parameters || [];
|
|
203
|
+
const opParams = operation.parameters || [];
|
|
204
|
+
operation.parameters = [...opParams, ...pathParams];
|
|
205
|
+
if (!operation.operationId) {
|
|
206
|
+
operation.operationId = `${method}_${path.replace(/[^a-zA-Z0-9]/g, "_")}`;
|
|
207
|
+
}
|
|
208
|
+
const parser = new import_operation_parser.OperationParser(operation, {
|
|
209
|
+
preservePropertyNames
|
|
210
|
+
});
|
|
211
|
+
let authSchemeName;
|
|
212
|
+
if (operation.security && operation.security.length > 0) {
|
|
213
|
+
authSchemeName = Object.keys(operation.security[0])[0];
|
|
214
|
+
}
|
|
215
|
+
authSchemeName = authSchemeName || globalSchemeName;
|
|
216
|
+
const authScheme = authSchemeName ? authSchemes[authSchemeName] : void 0;
|
|
217
|
+
operations.push({
|
|
218
|
+
name: parser.getFunctionName(),
|
|
219
|
+
description: parser.getDescription(),
|
|
220
|
+
endpoint: { baseUrl, path, method },
|
|
221
|
+
operation,
|
|
222
|
+
parameters: parser.getParameters(),
|
|
223
|
+
authScheme
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
return operations;
|
|
228
|
+
}
|
|
229
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
230
|
+
0 && (module.exports = {
|
|
231
|
+
OpenApiSpecParser
|
|
232
|
+
});
|