@easynet/agent-tool 1.0.52 → 1.0.54
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/api/adapters/LangChainToolsHub.d.ts.map +1 -1
- package/dist/api/main.cjs +13 -13
- package/dist/api/main.js +2 -2
- package/dist/api/runtimeFromConfig.d.ts.map +1 -1
- package/dist/{chunk-ZWYRMANX.js → chunk-6VU6PRO3.js} +30 -7
- package/dist/chunk-6VU6PRO3.js.map +1 -0
- package/dist/{chunk-H4RZJVNS.js → chunk-CRYLF2CC.js} +5 -4
- package/dist/chunk-CRYLF2CC.js.map +1 -0
- package/dist/{chunk-QEZLUBAL.cjs → chunk-K45PQLZI.cjs} +9 -9
- package/dist/{chunk-QEZLUBAL.cjs.map → chunk-K45PQLZI.cjs.map} +1 -1
- package/dist/{chunk-E3JK57SR.cjs → chunk-VXEQDRMQ.cjs} +17 -16
- package/dist/chunk-VXEQDRMQ.cjs.map +1 -0
- package/dist/{chunk-3GK6IK3N.cjs → chunk-WFPHIYB6.cjs} +31 -8
- package/dist/chunk-WFPHIYB6.cjs.map +1 -0
- package/dist/{chunk-NYUSA2YV.js → chunk-Z5RKNQQB.js} +3 -3
- package/dist/{chunk-NYUSA2YV.js.map → chunk-Z5RKNQQB.js.map} +1 -1
- package/dist/core/runtime/PTCRuntime.d.ts +6 -0
- package/dist/core/runtime/PTCRuntime.d.ts.map +1 -1
- package/dist/core/runtime/PTCRuntimePipeline.d.ts +1 -0
- package/dist/core/runtime/PTCRuntimePipeline.d.ts.map +1 -1
- package/dist/index.cjs +24 -24
- package/dist/index.js +4 -4
- package/dist/utils/cli/index.cjs +16 -16
- package/dist/utils/cli/index.js +2 -2
- package/package.json +2 -2
- package/dist/chunk-3GK6IK3N.cjs.map +0 -1
- package/dist/chunk-E3JK57SR.cjs.map +0 -1
- package/dist/chunk-H4RZJVNS.js.map +0 -1
- package/dist/chunk-ZWYRMANX.js.map +0 -1
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkWFPHIYB6_cjs = require('./chunk-WFPHIYB6.cjs');
|
|
4
4
|
var chunkUUNG3GL3_cjs = require('./chunk-UUNG3GL3.cjs');
|
|
5
5
|
var tools = require('@langchain/core/tools');
|
|
6
|
+
var agentCommon = require('@easynet/agent-common');
|
|
6
7
|
|
|
7
8
|
function hasArgsWrapper(inputSchema) {
|
|
8
9
|
const s = inputSchema;
|
|
@@ -69,11 +70,11 @@ var LangChainToolsHub = class {
|
|
|
69
70
|
description: spec.description ?? `Tool: ${spec.name}`,
|
|
70
71
|
schema,
|
|
71
72
|
func: async (args) => {
|
|
72
|
-
const flat = args ?? {};
|
|
73
|
+
const flat = agentCommon.stripNullishObjectFields(args ?? {});
|
|
73
74
|
const intent = {
|
|
74
75
|
tool: spec.name,
|
|
75
76
|
args: hasArgsWrapper(enriched.inputSchema) ? { args: flat } : flat,
|
|
76
|
-
purpose:
|
|
77
|
+
purpose: chunkWFPHIYB6_cjs.LANGCHAIN_KIND
|
|
77
78
|
};
|
|
78
79
|
const ctx = ctxFactory();
|
|
79
80
|
const result = await runtime.invoke(intent, ctx);
|
|
@@ -108,10 +109,10 @@ function mergeHostLists(a, b) {
|
|
|
108
109
|
function runtimeOptionsFromConfig(opts) {
|
|
109
110
|
const coreTools = opts.coreTools ?? { sandboxRoot: process.cwd(), allowedHosts: [], enableSandboxValidation: false };
|
|
110
111
|
if (opts.configFilePath) {
|
|
111
|
-
const toolConfig =
|
|
112
|
+
const toolConfig = chunkWFPHIYB6_cjs.loadToolConfig(opts.configFilePath);
|
|
112
113
|
const updates = {};
|
|
113
114
|
if (toolConfig.sandboxedPath && typeof toolConfig.sandboxedPath === "string") {
|
|
114
|
-
updates.sandboxRoot =
|
|
115
|
+
updates.sandboxRoot = chunkWFPHIYB6_cjs.resolveSandboxedPath(opts.configFilePath, toolConfig.sandboxedPath);
|
|
115
116
|
}
|
|
116
117
|
if (typeof toolConfig.enableSandboxValidation === "boolean") {
|
|
117
118
|
updates.enableSandboxValidation = toolConfig.enableSandboxValidation;
|
|
@@ -134,7 +135,7 @@ function runtimeOptionsFromConfig(opts) {
|
|
|
134
135
|
const packageDefaults = { ...coreTools.packageDefaults };
|
|
135
136
|
if (toolConfig.packageToolDefaults != null && Object.keys(toolConfig.packageToolDefaults).length > 0) {
|
|
136
137
|
for (const [descriptor, pkgConfig] of Object.entries(toolConfig.packageToolDefaults)) {
|
|
137
|
-
const prefix = descriptor.startsWith("file:") ?
|
|
138
|
+
const prefix = descriptor.startsWith("file:") ? chunkWFPHIYB6_cjs.fileDescriptorToPackagePrefix(descriptor) : chunkWFPHIYB6_cjs.npmDescriptorToPackagePrefixWithVersion(descriptor);
|
|
138
139
|
if (!prefix) continue;
|
|
139
140
|
const pkgDefaults = pkgConfig?.defaults != null && typeof pkgConfig.defaults === "object" && !Array.isArray(pkgConfig.defaults) ? pkgConfig.defaults : {};
|
|
140
141
|
if (Object.keys(pkgDefaults).length > 0) {
|
|
@@ -164,18 +165,18 @@ function runtimeOptionsFromConfig(opts) {
|
|
|
164
165
|
function createAgentTools(options) {
|
|
165
166
|
const opts = typeof options === "string" ? { configFilePath: options } : options ?? {};
|
|
166
167
|
const runtimeOpts = runtimeOptionsFromConfig(opts);
|
|
167
|
-
const { runtime } =
|
|
168
|
+
const { runtime } = chunkWFPHIYB6_cjs.createRuntimeFromConfigSync(runtimeOpts);
|
|
168
169
|
const hub = new LangChainToolsHub(runtime);
|
|
169
170
|
if (opts.configFilePath) {
|
|
170
|
-
const toolConfig =
|
|
171
|
+
const toolConfig = chunkWFPHIYB6_cjs.loadToolConfig(opts.configFilePath);
|
|
171
172
|
const names = Array.isArray(toolConfig.tools) ? toolConfig.tools : [];
|
|
172
173
|
if (names.length > 0) {
|
|
173
174
|
const registryNames = runtime.getRegistry().snapshot().map((s) => s.name);
|
|
174
|
-
const allBarePackages = names.every((n) =>
|
|
175
|
+
const allBarePackages = names.every((n) => chunkWFPHIYB6_cjs.isBarePackageDescriptor(String(n)));
|
|
175
176
|
if (allBarePackages) {
|
|
176
177
|
return hub.getLangChainTools();
|
|
177
178
|
}
|
|
178
|
-
const expanded =
|
|
179
|
+
const expanded = chunkWFPHIYB6_cjs.expandToolDescriptorsToRegistryNames(names, registryNames);
|
|
179
180
|
return hub.getLangChainToolsForNames(expanded);
|
|
180
181
|
}
|
|
181
182
|
}
|
|
@@ -183,18 +184,18 @@ function createAgentTools(options) {
|
|
|
183
184
|
}
|
|
184
185
|
async function createLangChainToolsAsync(options = {}) {
|
|
185
186
|
const runtimeOpts = runtimeOptionsFromConfig(options);
|
|
186
|
-
const { runtime } = await
|
|
187
|
+
const { runtime } = await chunkWFPHIYB6_cjs.createRuntimeFromConfig(runtimeOpts);
|
|
187
188
|
const hub = new LangChainToolsHub(runtime);
|
|
188
189
|
if (options.configFilePath) {
|
|
189
|
-
const toolConfig =
|
|
190
|
+
const toolConfig = chunkWFPHIYB6_cjs.loadToolConfig(options.configFilePath);
|
|
190
191
|
const names = Array.isArray(toolConfig.tools) ? toolConfig.tools : [];
|
|
191
192
|
if (names.length > 0) {
|
|
192
193
|
const registryNames = runtime.getRegistry().snapshot().map((s) => s.name);
|
|
193
|
-
const allBarePackages = names.every((n) =>
|
|
194
|
+
const allBarePackages = names.every((n) => chunkWFPHIYB6_cjs.isBarePackageDescriptor(String(n)));
|
|
194
195
|
if (allBarePackages) {
|
|
195
196
|
return hub.getLangChainTools();
|
|
196
197
|
}
|
|
197
|
-
const expanded =
|
|
198
|
+
const expanded = chunkWFPHIYB6_cjs.expandToolDescriptorsToRegistryNames(names, registryNames);
|
|
198
199
|
return hub.getLangChainToolsForNames(expanded);
|
|
199
200
|
}
|
|
200
201
|
}
|
|
@@ -203,5 +204,5 @@ async function createLangChainToolsAsync(options = {}) {
|
|
|
203
204
|
|
|
204
205
|
exports.createAgentTools = createAgentTools;
|
|
205
206
|
exports.createLangChainToolsAsync = createLangChainToolsAsync;
|
|
206
|
-
//# sourceMappingURL=chunk-
|
|
207
|
-
//# sourceMappingURL=chunk-
|
|
207
|
+
//# sourceMappingURL=chunk-VXEQDRMQ.cjs.map
|
|
208
|
+
//# sourceMappingURL=chunk-VXEQDRMQ.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/api/adapters/LangChainToolsHub.ts","../src/api/createAgentTools.ts"],"names":["enrichSpecWithCanonicalSchema","DynamicStructuredTool","stripNullishObjectFields","LANGCHAIN_KIND","loadToolConfig","resolveSandboxedPath","fileDescriptorToPackagePrefix","npmDescriptorToPackagePrefixWithVersion","createRuntimeFromConfigSync","isBarePackageDescriptor","expandToolDescriptorsToRegistryNames","createRuntimeFromConfig"],"mappings":"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","file":"chunk-VXEQDRMQ.cjs","sourcesContent":["/**\n * Exposes all tools from a ToolRegistry + PTCRuntime as LangChain tools\n * for local agent use (e.g. with createReactAgent, AgentExecutor).\n *\n * For most users, use createAgentTools() which loads from tools.yaml and returns\n * StructuredTool[]. Use LangChainToolsHub when you need a custom runtime or ctxFactory.\n *\n * Use: new LangChainToolsHub(runtime, ctxFactory).getLangChainTools()\n */\n\nimport { DynamicStructuredTool, type StructuredToolInterface } from \"@langchain/core/tools\";\nimport { stripNullishObjectFields } from \"@easynet/agent-common\";\nimport type { PTCRuntime } from \"../../core/runtime/PTCRuntime.js\";\nimport type { ToolSpec } from \"../../core/types/ToolSpec.js\";\nimport type { ExecContext } from \"../../core/types/ToolIntent.js\";\nimport type { ToolIntent } from \"../../core/types/ToolIntent.js\";\nimport { enrichSpecWithCanonicalSchema } from \"../../tools/util/canonicalCoreSchemas.js\";\nimport { LANGCHAIN_KIND } from \"../../tools/langchain/types.js\";\n\n/**\n * True when inputSchema wraps all params in a single \"args\" object (manifest convention).\n */\nfunction hasArgsWrapper(inputSchema: object): boolean {\n const s = inputSchema as Record<string, unknown>;\n if (s?.type !== \"object\" || !s.properties || typeof s.properties !== \"object\") return false;\n const args = (s.properties as Record<string, unknown>).args;\n return (\n args != null &&\n typeof args === \"object\" &&\n (args as Record<string, unknown>).type === \"object\" &&\n (args as Record<string, unknown>).properties != null\n );\n}\n\n/**\n * If inputSchema is { type: \"object\", properties: { args: { type: \"object\", properties: {...} } } },\n * return the inner args schema so the LLM can pass { path: \".\" } instead of { args: { path: \".\" } }.\n */\nfunction schemaForLangChain(inputSchema: object): Record<string, unknown> {\n const s = inputSchema as Record<string, unknown>;\n if (s?.type !== \"object\" || !s.properties || typeof s.properties !== \"object\") {\n return s;\n }\n const props = s.properties as Record<string, unknown>;\n const args = props.args;\n if (hasArgsWrapper(inputSchema)) {\n return args as Record<string, unknown>;\n }\n return s;\n}\n\nexport type ExecContextFactory = () => ExecContext;\n\nconst DEFAULT_CTX_FACTORY: ExecContextFactory = () => ({\n requestId: `lc-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`,\n taskId: `task-${Date.now()}`,\n permissions: [\n \"read:web\",\n \"read:fs\",\n \"write:fs\",\n \"read:db\",\n \"write:db\",\n \"network\",\n \"workflow\",\n \"danger:destructive\",\n ],\n});\n\n/**\n * Hub that wraps PTCRuntime and exposes every registered tool as a LangChain\n * StructuredTool (DynamicStructuredTool), so local agents (LangChain AgentExecutor,\n * createReactAgent, etc.) can use the same tools as MCP and OpenAPI.\n */\nexport class LangChainToolsHub {\n constructor(\n private readonly runtime: PTCRuntime,\n private readonly ctxFactory: ExecContextFactory = DEFAULT_CTX_FACTORY,\n ) {}\n\n /**\n * Returns all registered tools as LangChain StructuredTool[].\n * Each tool invokes the runtime through the full pipeline (policy, HITL, etc.).\n */\n getLangChainTools(): StructuredToolInterface[] {\n const registry = this.runtime.getRegistry();\n const specs = registry.snapshot();\n\n return specs.map((spec) => this.specToLangChainTool(spec));\n }\n\n /**\n * Returns LangChain tools for a subset of tools (by name or query).\n */\n getLangChainToolsForNames(toolNames: string[]): StructuredToolInterface[] {\n const registry = this.runtime.getRegistry();\n const set = new Set(toolNames);\n const specs = registry.snapshot().filter((s) => set.has(s.name));\n return specs.map((spec) => this.specToLangChainTool(spec));\n }\n\n private specToLangChainTool(spec: ToolSpec): DynamicStructuredTool {\n const runtime = this.runtime;\n const ctxFactory = this.ctxFactory;\n const enriched = enrichSpecWithCanonicalSchema(spec);\n\n const schema = schemaForLangChain(enriched.inputSchema);\n return new DynamicStructuredTool({\n name: spec.name,\n description: spec.description ?? `Tool: ${spec.name}`,\n schema,\n func: async (args: Record<string, unknown>): Promise<string> => {\n const flat = stripNullishObjectFields(args ?? {}) as Record<string, unknown>;\n const intent: ToolIntent = {\n tool: spec.name,\n args: hasArgsWrapper(enriched.inputSchema) ? { args: flat } : flat,\n purpose: LANGCHAIN_KIND,\n };\n const ctx = ctxFactory();\n const result = await runtime.invoke(intent, ctx);\n\n if (result.ok) {\n return typeof result.result === \"string\"\n ? result.result\n : JSON.stringify(result.result);\n }\n\n const err = result.error;\n const message = err?.message ?? \"Tool failed\";\n const details = err?.details;\n return JSON.stringify(\n details != null ? { error: message, details } : { error: message },\n );\n },\n });\n }\n}\n","/**\n * Create LangChain tools from config (sync or async). Uses PTCRuntime + registry\n * and exposes tools via LangChainToolsHub. All invokes go through PTC Intent.\n */\n\nimport { loadToolConfig, resolveSandboxedPath } from \"../tools/util/toolConfig.js\";\nimport {\n expandToolDescriptorsToRegistryNames,\n isBarePackageDescriptor,\n npmDescriptorToPackagePrefixWithVersion,\n fileDescriptorToPackagePrefix,\n} from \"../tools/util/toolDescriptor.js\";\nimport { createRuntimeFromConfigSync, createRuntimeFromConfig } from \"./runtimeFromConfig.js\";\nimport type { CreateRuntimeOptions } from \"./runtimeFromConfig.js\";\nimport { LangChainToolsHub } from \"./adapters/LangChainToolsHub.js\";\nimport type { StructuredToolInterface } from \"@langchain/core/tools\";\n\nexport interface CreateAgentToolsOptions extends CreateRuntimeOptions {\n /** Path to tool.yaml; when set, only tools listed there are returned; sandboxedPath from it is used as sandboxRoot */\n configFilePath?: string;\n /** Project path for async loading (use createLangChainToolsAsync) */\n projectPath?: string;\n}\n\n/** Merge host lists from multiple sources (e.g. tool.yaml + programmatic). Union, dedup, preserves order. */\nfunction mergeHostLists(a?: string[], b?: string[]): string[] {\n const seen = new Set<string>();\n const out: string[] = [];\n for (const list of [a ?? [], b ?? []]) {\n for (const h of list) {\n if (!seen.has(h)) {\n seen.add(h);\n out.push(h);\n }\n }\n }\n return out;\n}\n\nfunction runtimeOptionsFromConfig(opts: CreateAgentToolsOptions): CreateRuntimeOptions {\n const coreTools = opts.coreTools ?? { sandboxRoot: process.cwd(), allowedHosts: [], enableSandboxValidation: false };\n if (opts.configFilePath) {\n const toolConfig = loadToolConfig(opts.configFilePath);\n const updates: {\n sandboxRoot?: string;\n enableSandboxValidation?: boolean;\n allowedHosts?: string[];\n blockedHosts?: string[];\n blockedCidrs?: string[];\n toolOverrides?: Record<string, Record<string, unknown>>;\n packageDefaults?: Record<string, Record<string, unknown>>;\n } = {};\n if (toolConfig.sandboxedPath && typeof toolConfig.sandboxedPath === \"string\") {\n updates.sandboxRoot = resolveSandboxedPath(opts.configFilePath, toolConfig.sandboxedPath);\n }\n if (typeof toolConfig.enableSandboxValidation === \"boolean\") {\n updates.enableSandboxValidation = toolConfig.enableSandboxValidation;\n } else if (coreTools.enableSandboxValidation == null) {\n updates.enableSandboxValidation = false;\n }\n // Smart merge: union of allowedHosts and blockedHosts from yaml + programmatic (both lists always applied)\n updates.allowedHosts = mergeHostLists(coreTools.allowedHosts, toolConfig.allowedHosts);\n updates.blockedHosts = mergeHostLists(coreTools.blockedHosts, toolConfig.blockedHosts);\n if (Array.isArray(toolConfig.blockedCidrs) && toolConfig.blockedCidrs.length > 0) {\n updates.blockedCidrs = toolConfig.blockedCidrs;\n } else if (coreTools.blockedCidrs?.length) {\n updates.blockedCidrs = coreTools.blockedCidrs;\n }\n let hasToolDefaults = false;\n const flatOverrides: Record<string, Record<string, unknown>> = { ...coreTools.toolOverrides };\n if (toolConfig.toolDefaults != null && Object.keys(toolConfig.toolDefaults).length > 0) {\n Object.assign(flatOverrides, toolConfig.toolDefaults);\n hasToolDefaults = true;\n }\n const packageDefaults: Record<string, Record<string, unknown>> = { ...coreTools.packageDefaults };\n if (toolConfig.packageToolDefaults != null && Object.keys(toolConfig.packageToolDefaults).length > 0) {\n for (const [descriptor, pkgConfig] of Object.entries(toolConfig.packageToolDefaults)) {\n const prefix = descriptor.startsWith(\"file:\")\n ? fileDescriptorToPackagePrefix(descriptor)\n : npmDescriptorToPackagePrefixWithVersion(descriptor);\n if (!prefix) continue;\n const pkgDefaults =\n pkgConfig?.defaults != null && typeof pkgConfig.defaults === \"object\" && !Array.isArray(pkgConfig.defaults)\n ? (pkgConfig.defaults as Record<string, unknown>)\n : {};\n if (Object.keys(pkgDefaults).length > 0) {\n packageDefaults[prefix] = pkgDefaults;\n }\n const toolConfigs = pkgConfig?.tools != null && typeof pkgConfig.tools === \"object\" && !Array.isArray(pkgConfig.tools) ? pkgConfig.tools : {};\n for (const [toolName, config] of Object.entries(toolConfigs)) {\n if (config != null && typeof config === \"object\") {\n hasToolDefaults = true;\n flatOverrides[`${prefix}::${toolName}`] = { ...pkgDefaults, ...(config as Record<string, unknown>) };\n }\n }\n }\n if (Object.keys(packageDefaults).length > 0) {\n updates.packageDefaults = packageDefaults;\n }\n }\n if (hasToolDefaults) {\n updates.toolOverrides = flatOverrides;\n }\n if (Object.keys(updates).length > 0) {\n return { ...opts, coreTools: { ...coreTools, ...updates } };\n }\n }\n return { ...opts, coreTools };\n}\n\n/**\n * Create LangChain tools synchronously. When configFilePath is set, returns only\n * tools listed in that file (and that exist in the registry). If tool.yaml has\n * sandboxedPath, fs tools can only access that directory.\n */\nexport function createAgentTools(\n options?: CreateAgentToolsOptions | string\n): StructuredToolInterface[] {\n const opts: CreateAgentToolsOptions =\n typeof options === \"string\" ? { configFilePath: options } : options ?? {};\n const runtimeOpts = runtimeOptionsFromConfig(opts);\n const { runtime } = createRuntimeFromConfigSync(runtimeOpts);\n const hub = new LangChainToolsHub(runtime);\n\n if (opts.configFilePath) {\n const toolConfig = loadToolConfig(opts.configFilePath);\n const names = Array.isArray(toolConfig.tools) ? toolConfig.tools : [];\n if (names.length > 0) {\n const registryNames = runtime.getRegistry().snapshot().map((s) => s.name);\n const allBarePackages = names.every((n) => isBarePackageDescriptor(String(n)));\n if (allBarePackages) {\n return hub.getLangChainTools();\n }\n const expanded = expandToolDescriptorsToRegistryNames(names, registryNames);\n return hub.getLangChainToolsForNames(expanded);\n }\n }\n\n return hub.getLangChainTools();\n}\n\n/**\n * Create LangChain tools asynchronously. Use when projectPath is set to load\n * tools from the project before building the tool list.\n */\nexport async function createLangChainToolsAsync(\n options: CreateAgentToolsOptions = {}\n): Promise<StructuredToolInterface[]> {\n const runtimeOpts = runtimeOptionsFromConfig(options);\n const { runtime } = await createRuntimeFromConfig(runtimeOpts);\n const hub = new LangChainToolsHub(runtime);\n\n if (options.configFilePath) {\n const toolConfig = loadToolConfig(options.configFilePath);\n const names = Array.isArray(toolConfig.tools) ? toolConfig.tools : [];\n if (names.length > 0) {\n const registryNames = runtime.getRegistry().snapshot().map((s) => s.name);\n const allBarePackages = names.every((n) => isBarePackageDescriptor(String(n)));\n if (allBarePackages) {\n return hub.getLangChainTools();\n }\n const expanded = expandToolDescriptorsToRegistryNames(names, registryNames);\n return hub.getLangChainToolsForNames(expanded);\n }\n }\n\n return hub.getLangChainTools();\n}\n"]}
|
|
@@ -1302,7 +1302,7 @@ async function requireHumanApproval(spec, args, ctx, deps) {
|
|
|
1302
1302
|
deps.logger.trace("hitl.granted", { tool: spec.name, sideEffect, requestId: ctx.requestId });
|
|
1303
1303
|
}
|
|
1304
1304
|
async function executeWithBudget(spec, args, ctx, spanId, deps) {
|
|
1305
|
-
const adapter = deps.adapters.get(spec.kind);
|
|
1305
|
+
const adapter = deps.adaptersByToolName.get(spec.name) ?? deps.adapters.get(spec.kind);
|
|
1306
1306
|
if (!adapter) {
|
|
1307
1307
|
throw chunkWQMHMPNC_cjs.createTaggedError(
|
|
1308
1308
|
"TOOL_NOT_FOUND",
|
|
@@ -1456,6 +1456,7 @@ function sanitizeArgs(args) {
|
|
|
1456
1456
|
var PTCRuntime = class {
|
|
1457
1457
|
registry;
|
|
1458
1458
|
adapters = /* @__PURE__ */ new Map();
|
|
1459
|
+
adaptersByToolName = /* @__PURE__ */ new Map();
|
|
1459
1460
|
validator;
|
|
1460
1461
|
policy;
|
|
1461
1462
|
budget;
|
|
@@ -1494,6 +1495,15 @@ var PTCRuntime = class {
|
|
|
1494
1495
|
registerAdapter(adapter) {
|
|
1495
1496
|
this.adapters.set(adapter.kind, adapter);
|
|
1496
1497
|
}
|
|
1498
|
+
/**
|
|
1499
|
+
* Bind an adapter to exact tool keys (full package path + tool path).
|
|
1500
|
+
* This avoids collisions when multiple extensions share the same kind.
|
|
1501
|
+
*/
|
|
1502
|
+
registerAdapterForTools(toolNames, adapter) {
|
|
1503
|
+
for (const name of toolNames) {
|
|
1504
|
+
this.adaptersByToolName.set(name, adapter);
|
|
1505
|
+
}
|
|
1506
|
+
}
|
|
1497
1507
|
/**
|
|
1498
1508
|
* Get an adapter by kind (e.g. "mcp"). Use to set MCP client via adapter.setClient().
|
|
1499
1509
|
*/
|
|
@@ -1651,6 +1661,7 @@ var PTCRuntime = class {
|
|
|
1651
1661
|
return {
|
|
1652
1662
|
registry: this.registry,
|
|
1653
1663
|
adapters: this.adapters,
|
|
1664
|
+
adaptersByToolName: this.adaptersByToolName,
|
|
1654
1665
|
validator: this.validator,
|
|
1655
1666
|
policy: this.policy,
|
|
1656
1667
|
budget: this.budget,
|
|
@@ -1756,7 +1767,7 @@ function isWithinRoot(path$1, root) {
|
|
|
1756
1767
|
}
|
|
1757
1768
|
|
|
1758
1769
|
// src/api/runtimeFromConfig.ts
|
|
1759
|
-
var requireFromPackage = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('chunk-
|
|
1770
|
+
var requireFromPackage = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('chunk-WFPHIYB6.cjs', document.baseURI).href)));
|
|
1760
1771
|
function getProjectRequire() {
|
|
1761
1772
|
const cwd = process.cwd();
|
|
1762
1773
|
if (fs.existsSync(path.join(cwd, "package.json"))) return module$1.createRequire(path.join(cwd, "package.json"));
|
|
@@ -1813,7 +1824,10 @@ function loadExtensionFromNodeModules() {
|
|
|
1813
1824
|
function createPrefixingRegistry(registry, prefix) {
|
|
1814
1825
|
return {
|
|
1815
1826
|
register(spec) {
|
|
1816
|
-
registry.register({
|
|
1827
|
+
registry.register({
|
|
1828
|
+
...spec,
|
|
1829
|
+
name: prefix + chunkQEJF3KDV_cjs.normalizeToolName(spec.name)
|
|
1830
|
+
});
|
|
1817
1831
|
},
|
|
1818
1832
|
bulkRegister(specs) {
|
|
1819
1833
|
specs.forEach((s) => this.register(s));
|
|
@@ -2033,10 +2047,13 @@ function createRuntimeFromConfigSync(options = {}) {
|
|
|
2033
2047
|
if (stepLog) stepLog(`Registered ${all.length} extension(s) from tool.yaml`);
|
|
2034
2048
|
const runtime3 = new PTCRuntime({ registry });
|
|
2035
2049
|
for (const ext of all) {
|
|
2050
|
+
const before = new Set(registry.snapshot().map((s) => s.name));
|
|
2036
2051
|
const prefix = ext.descriptor.startsWith("file:") ? fileDescriptorToRegistryPrefix(ext.descriptor) : npmDescriptorToRegistryPrefix(ext.descriptor, ext.resolvedVersion);
|
|
2037
|
-
const reg =
|
|
2052
|
+
const reg = createPrefixingRegistry(registry, prefix ?? "");
|
|
2038
2053
|
const adapter = ext.register(reg, options.coreTools);
|
|
2039
2054
|
runtime3.registerAdapter(adapter);
|
|
2055
|
+
const registeredNow = registry.snapshot().map((s) => s.name).filter((name) => !before.has(name));
|
|
2056
|
+
runtime3.registerAdapterForTools(registeredNow, adapter);
|
|
2040
2057
|
}
|
|
2041
2058
|
return { runtime: runtime3, registry };
|
|
2042
2059
|
}
|
|
@@ -2047,11 +2064,14 @@ function createRuntimeFromConfigSync(options = {}) {
|
|
|
2047
2064
|
if (stepLog) stepLog("Registered extension from node_modules");
|
|
2048
2065
|
const descriptor = `npm:${extensionNode.packageName}`;
|
|
2049
2066
|
const resolvedVersion = getInstalledPackageVersion(extensionNode.packageName) ?? npm.resolveLatestVersionFromRegistry(extensionNode.packageName);
|
|
2067
|
+
const before = new Set(registry.snapshot().map((s) => s.name));
|
|
2050
2068
|
const prefix = npmDescriptorToRegistryPrefix(descriptor, resolvedVersion);
|
|
2051
|
-
const reg =
|
|
2069
|
+
const reg = createPrefixingRegistry(registry, prefix ?? "");
|
|
2052
2070
|
const coreAdapter = extensionNode.register(reg, options.coreTools);
|
|
2053
2071
|
const runtime3 = new PTCRuntime({ registry });
|
|
2054
2072
|
runtime3.registerAdapter(coreAdapter);
|
|
2073
|
+
const registeredNow = registry.snapshot().map((s) => s.name).filter((name) => !before.has(name));
|
|
2074
|
+
runtime3.registerAdapterForTools(registeredNow, coreAdapter);
|
|
2055
2075
|
return { runtime: runtime3, registry };
|
|
2056
2076
|
}
|
|
2057
2077
|
const runtime2 = new PTCRuntime({ registry });
|
|
@@ -2069,10 +2089,13 @@ async function createRuntimeFromConfig(options = {}) {
|
|
|
2069
2089
|
const registry = new chunkWQMHMPNC_cjs.ToolRegistry();
|
|
2070
2090
|
const runtime = new PTCRuntime({ registry });
|
|
2071
2091
|
for (const ext of all) {
|
|
2092
|
+
const before = new Set(registry.snapshot().map((s) => s.name));
|
|
2072
2093
|
const prefix = ext.descriptor.startsWith("file:") ? fileDescriptorToRegistryPrefix(ext.descriptor) : npmDescriptorToRegistryPrefix(ext.descriptor, ext.resolvedVersion);
|
|
2073
|
-
const reg =
|
|
2094
|
+
const reg = createPrefixingRegistry(registry, prefix ?? "");
|
|
2074
2095
|
const adapter = ext.register(reg, options.coreTools);
|
|
2075
2096
|
runtime.registerAdapter(adapter);
|
|
2097
|
+
const registeredNow = registry.snapshot().map((s) => s.name).filter((name) => !before.has(name));
|
|
2098
|
+
runtime.registerAdapterForTools(registeredNow, adapter);
|
|
2076
2099
|
}
|
|
2077
2100
|
return { runtime, registry };
|
|
2078
2101
|
}
|
|
@@ -2575,5 +2598,5 @@ exports.resolveSandboxedPath2 = resolveSandboxedPath2;
|
|
|
2575
2598
|
exports.resolveToolDescriptor = resolveToolDescriptor;
|
|
2576
2599
|
exports.runMCPServerOverStdio = runMCPServerOverStdio;
|
|
2577
2600
|
exports.setSandboxValidationEnabled = setSandboxValidationEnabled;
|
|
2578
|
-
//# sourceMappingURL=chunk-
|
|
2579
|
-
//# sourceMappingURL=chunk-
|
|
2601
|
+
//# sourceMappingURL=chunk-WFPHIYB6.cjs.map
|
|
2602
|
+
//# sourceMappingURL=chunk-WFPHIYB6.cjs.map
|