@easynet/agent-tool 1.0.39 → 1.0.40

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.
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkJGQVKMRY_cjs = require('./chunk-JGQVKMRY.cjs');
3
+ var chunkJ5VQMYUV_cjs = require('./chunk-J5VQMYUV.cjs');
4
4
  var chunkUUNG3GL3_cjs = require('./chunk-UUNG3GL3.cjs');
5
5
  var tools = require('@langchain/core/tools');
6
6
 
@@ -73,7 +73,7 @@ var LangChainToolsHub = class {
73
73
  const intent = {
74
74
  tool: spec.name,
75
75
  args: hasArgsWrapper(enriched.inputSchema) ? { args: flat } : flat,
76
- purpose: chunkJGQVKMRY_cjs.LANGCHAIN_KIND
76
+ purpose: chunkJ5VQMYUV_cjs.LANGCHAIN_KIND
77
77
  };
78
78
  const ctx = ctxFactory();
79
79
  const result = await runtime.invoke(intent, ctx);
@@ -108,10 +108,10 @@ function mergeHostLists(a, b) {
108
108
  function runtimeOptionsFromConfig(opts) {
109
109
  const coreTools = opts.coreTools ?? { sandboxRoot: process.cwd(), allowedHosts: [], enableSandboxValidation: false };
110
110
  if (opts.configFilePath) {
111
- const toolConfig = chunkJGQVKMRY_cjs.loadToolConfig(opts.configFilePath);
111
+ const toolConfig = chunkJ5VQMYUV_cjs.loadToolConfig(opts.configFilePath);
112
112
  const updates = {};
113
113
  if (toolConfig.sandboxedPath && typeof toolConfig.sandboxedPath === "string") {
114
- updates.sandboxRoot = chunkJGQVKMRY_cjs.resolveSandboxedPath2(opts.configFilePath, toolConfig.sandboxedPath);
114
+ updates.sandboxRoot = chunkJ5VQMYUV_cjs.resolveSandboxedPath2(opts.configFilePath, toolConfig.sandboxedPath);
115
115
  }
116
116
  if (typeof toolConfig.enableSandboxValidation === "boolean") {
117
117
  updates.enableSandboxValidation = toolConfig.enableSandboxValidation;
@@ -134,7 +134,7 @@ function runtimeOptionsFromConfig(opts) {
134
134
  const packageDefaults = { ...coreTools.packageDefaults };
135
135
  if (toolConfig.packageToolDefaults != null && Object.keys(toolConfig.packageToolDefaults).length > 0) {
136
136
  for (const [descriptor, pkgConfig] of Object.entries(toolConfig.packageToolDefaults)) {
137
- const prefix = descriptor.startsWith("file:") ? chunkJGQVKMRY_cjs.fileDescriptorToPackagePrefix(descriptor) : chunkJGQVKMRY_cjs.npmDescriptorToPackagePrefixWithVersion(descriptor);
137
+ const prefix = descriptor.startsWith("file:") ? chunkJ5VQMYUV_cjs.fileDescriptorToPackagePrefix(descriptor) : chunkJ5VQMYUV_cjs.npmDescriptorToPackagePrefixWithVersion(descriptor);
138
138
  if (!prefix) continue;
139
139
  const pkgDefaults = pkgConfig?.defaults != null && typeof pkgConfig.defaults === "object" && !Array.isArray(pkgConfig.defaults) ? pkgConfig.defaults : {};
140
140
  if (Object.keys(pkgDefaults).length > 0) {
@@ -164,18 +164,18 @@ function runtimeOptionsFromConfig(opts) {
164
164
  function createAgentTools(options) {
165
165
  const opts = typeof options === "string" ? { configFilePath: options } : options ?? {};
166
166
  const runtimeOpts = runtimeOptionsFromConfig(opts);
167
- const { runtime } = chunkJGQVKMRY_cjs.createRuntimeFromConfigSync(runtimeOpts);
167
+ const { runtime } = chunkJ5VQMYUV_cjs.createRuntimeFromConfigSync(runtimeOpts);
168
168
  const hub = new LangChainToolsHub(runtime);
169
169
  if (opts.configFilePath) {
170
- const toolConfig = chunkJGQVKMRY_cjs.loadToolConfig(opts.configFilePath);
170
+ const toolConfig = chunkJ5VQMYUV_cjs.loadToolConfig(opts.configFilePath);
171
171
  const names = Array.isArray(toolConfig.tools) ? toolConfig.tools : [];
172
172
  if (names.length > 0) {
173
173
  const registryNames = runtime.getRegistry().snapshot().map((s) => s.name);
174
- const allBarePackages = names.every((n) => chunkJGQVKMRY_cjs.isBarePackageDescriptor(String(n)));
174
+ const allBarePackages = names.every((n) => chunkJ5VQMYUV_cjs.isBarePackageDescriptor(String(n)));
175
175
  if (allBarePackages) {
176
176
  return hub.getLangChainTools();
177
177
  }
178
- const expanded = chunkJGQVKMRY_cjs.expandToolDescriptorsToRegistryNames(names, registryNames);
178
+ const expanded = chunkJ5VQMYUV_cjs.expandToolDescriptorsToRegistryNames(names, registryNames);
179
179
  return hub.getLangChainToolsForNames(expanded);
180
180
  }
181
181
  }
@@ -183,18 +183,18 @@ function createAgentTools(options) {
183
183
  }
184
184
  async function createLangChainToolsAsync(options = {}) {
185
185
  const runtimeOpts = runtimeOptionsFromConfig(options);
186
- const { runtime } = await chunkJGQVKMRY_cjs.createRuntimeFromConfig(runtimeOpts);
186
+ const { runtime } = await chunkJ5VQMYUV_cjs.createRuntimeFromConfig(runtimeOpts);
187
187
  const hub = new LangChainToolsHub(runtime);
188
188
  if (options.configFilePath) {
189
- const toolConfig = chunkJGQVKMRY_cjs.loadToolConfig(options.configFilePath);
189
+ const toolConfig = chunkJ5VQMYUV_cjs.loadToolConfig(options.configFilePath);
190
190
  const names = Array.isArray(toolConfig.tools) ? toolConfig.tools : [];
191
191
  if (names.length > 0) {
192
192
  const registryNames = runtime.getRegistry().snapshot().map((s) => s.name);
193
- const allBarePackages = names.every((n) => chunkJGQVKMRY_cjs.isBarePackageDescriptor(String(n)));
193
+ const allBarePackages = names.every((n) => chunkJ5VQMYUV_cjs.isBarePackageDescriptor(String(n)));
194
194
  if (allBarePackages) {
195
195
  return hub.getLangChainTools();
196
196
  }
197
- const expanded = chunkJGQVKMRY_cjs.expandToolDescriptorsToRegistryNames(names, registryNames);
197
+ const expanded = chunkJ5VQMYUV_cjs.expandToolDescriptorsToRegistryNames(names, registryNames);
198
198
  return hub.getLangChainToolsForNames(expanded);
199
199
  }
200
200
  }
@@ -204,5 +204,5 @@ async function createLangChainToolsAsync(options = {}) {
204
204
  exports.LangChainToolsHub = LangChainToolsHub;
205
205
  exports.createAgentTools = createAgentTools;
206
206
  exports.createLangChainToolsAsync = createLangChainToolsAsync;
207
- //# sourceMappingURL=chunk-HUUG5MZ7.cjs.map
208
- //# sourceMappingURL=chunk-HUUG5MZ7.cjs.map
207
+ //# sourceMappingURL=chunk-ZPXO5IOW.cjs.map
208
+ //# sourceMappingURL=chunk-ZPXO5IOW.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/api/adapters/LangChainToolsHub.ts","../src/api/createAgentTools.ts"],"names":["enrichSpecWithCanonicalSchema","DynamicStructuredTool","LANGCHAIN_KIND","loadToolConfig","resolveSandboxedPath","fileDescriptorToPackagePrefix","npmDescriptorToPackagePrefixWithVersion","createRuntimeFromConfigSync","isBarePackageDescriptor","expandToolDescriptorsToRegistryNames","createRuntimeFromConfig"],"mappings":"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","file":"chunk-HUUG5MZ7.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 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 = args ?? {};\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"]}
1
+ {"version":3,"sources":["../src/api/adapters/LangChainToolsHub.ts","../src/api/createAgentTools.ts"],"names":["enrichSpecWithCanonicalSchema","DynamicStructuredTool","LANGCHAIN_KIND","loadToolConfig","resolveSandboxedPath","fileDescriptorToPackagePrefix","npmDescriptorToPackagePrefixWithVersion","createRuntimeFromConfigSync","isBarePackageDescriptor","expandToolDescriptorsToRegistryNames","createRuntimeFromConfig"],"mappings":"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","file":"chunk-ZPXO5IOW.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 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 = args ?? {};\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"]}
package/dist/index.cjs CHANGED
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var chunkHUUG5MZ7_cjs = require('./chunk-HUUG5MZ7.cjs');
4
- var chunk23KQ6MPJ_cjs = require('./chunk-23KQ6MPJ.cjs');
5
- var chunkJGQVKMRY_cjs = require('./chunk-JGQVKMRY.cjs');
3
+ var chunkZPXO5IOW_cjs = require('./chunk-ZPXO5IOW.cjs');
4
+ var chunk4NNTCCJ6_cjs = require('./chunk-4NNTCCJ6.cjs');
5
+ var chunkJ5VQMYUV_cjs = require('./chunk-J5VQMYUV.cjs');
6
6
  var chunkTOSPHMYU_cjs = require('./chunk-TOSPHMYU.cjs');
7
7
  var chunkDYDNPIV2_cjs = require('./chunk-DYDNPIV2.cjs');
8
8
  require('./chunk-UUNG3GL3.cjs');
@@ -443,7 +443,7 @@ function generateExtensionManifest(projectRoot = process.cwd(), options = {}) {
443
443
  const root = path6__default.default.resolve(projectRoot);
444
444
  const outDir = path6__default.default.resolve(options.outDir ?? path6__default.default.join(root, "dist"));
445
445
  const kind = options.kind ?? "core";
446
- const { specs, errors } = chunk23KQ6MPJ_cjs.scanForTools({
446
+ const { specs, errors } = chunk4NNTCCJ6_cjs.scanForTools({
447
447
  projectPath: root,
448
448
  include: options.include ?? ["**/*.ts"],
449
449
  tsconfigPath: options.tsconfigPath
@@ -533,7 +533,7 @@ var MCPClientAdapter = class {
533
533
  constructor(client) {
534
534
  this.client = client;
535
535
  }
536
- kind = chunkJGQVKMRY_cjs.MCP_KIND;
536
+ kind = chunkJ5VQMYUV_cjs.MCP_KIND;
537
537
  async invoke(spec, args, _ctx) {
538
538
  const params = args != null && typeof args === "object" && !Array.isArray(args) ? args : {};
539
539
  const result = await this.client.callTool({ name: spec.name, arguments: params });
@@ -574,7 +574,7 @@ function mcpToolsToSpecs(tools) {
574
574
  return tools.map((t) => ({
575
575
  name: t.name,
576
576
  version: "1.0.0",
577
- kind: chunkJGQVKMRY_cjs.MCP_KIND,
577
+ kind: chunkJ5VQMYUV_cjs.MCP_KIND,
578
578
  description: t.description ?? `MCP tool: ${t.name}`,
579
579
  inputSchema: t.inputSchema ?? chunkDYDNPIV2_cjs.DEFAULT_INPUT_SCHEMA,
580
580
  outputSchema: chunkDYDNPIV2_cjs.DEFAULT_OUTPUT_SCHEMA,
@@ -614,8 +614,8 @@ async function registerMCPToolsFromConfig(runtime, registry, options = {}) {
614
614
  const configPath = options.configPath ?? process.env.MCP_CONFIG_PATH ?? path6.join(process.cwd(), "mcp.json");
615
615
  const dirPath = path6.dirname(configPath);
616
616
  const entryPoint = path6.basename(configPath);
617
- const toolName = options.toolName ?? chunkJGQVKMRY_cjs.MCP_KIND;
618
- const loaded = await chunk23KQ6MPJ_cjs.loadMCPTool(dirPath, { kind: chunkJGQVKMRY_cjs.MCP_KIND, name: toolName, entryPoint });
617
+ const toolName = options.toolName ?? chunkJ5VQMYUV_cjs.MCP_KIND;
618
+ const loaded = await chunk4NNTCCJ6_cjs.loadMCPTool(dirPath, { kind: chunkJ5VQMYUV_cjs.MCP_KIND, name: toolName, entryPoint });
619
619
  if (!loaded.mcpConfig) {
620
620
  throw new Error("mcp.json must have command or url");
621
621
  }
@@ -631,179 +631,179 @@ async function registerMCPToolsFromConfig(runtime, registry, options = {}) {
631
631
 
632
632
  Object.defineProperty(exports, "LangChainToolsHub", {
633
633
  enumerable: true,
634
- get: function () { return chunkHUUG5MZ7_cjs.LangChainToolsHub; }
634
+ get: function () { return chunkZPXO5IOW_cjs.LangChainToolsHub; }
635
635
  });
636
636
  Object.defineProperty(exports, "createAgentTools", {
637
637
  enumerable: true,
638
- get: function () { return chunkHUUG5MZ7_cjs.createAgentTools; }
638
+ get: function () { return chunkZPXO5IOW_cjs.createAgentTools; }
639
639
  });
640
640
  Object.defineProperty(exports, "DirectoryScanner", {
641
641
  enumerable: true,
642
- get: function () { return chunk23KQ6MPJ_cjs.DirectoryScanner; }
642
+ get: function () { return chunk4NNTCCJ6_cjs.DirectoryScanner; }
643
643
  });
644
644
  Object.defineProperty(exports, "DiscoveryError", {
645
645
  enumerable: true,
646
- get: function () { return chunk23KQ6MPJ_cjs.DiscoveryError; }
646
+ get: function () { return chunk4NNTCCJ6_cjs.DiscoveryError; }
647
647
  });
648
648
  Object.defineProperty(exports, "SkillManifestError", {
649
649
  enumerable: true,
650
- get: function () { return chunk23KQ6MPJ_cjs.SkillManifestError; }
650
+ get: function () { return chunk4NNTCCJ6_cjs.SkillManifestError; }
651
651
  });
652
652
  Object.defineProperty(exports, "buildFunctionToTool", {
653
653
  enumerable: true,
654
- get: function () { return chunk23KQ6MPJ_cjs.buildFunctionToTool; }
654
+ get: function () { return chunk4NNTCCJ6_cjs.buildFunctionToTool; }
655
655
  });
656
656
  Object.defineProperty(exports, "buildMcpPackage", {
657
657
  enumerable: true,
658
- get: function () { return chunk23KQ6MPJ_cjs.buildMcpPackage; }
658
+ get: function () { return chunk4NNTCCJ6_cjs.buildMcpPackage; }
659
659
  });
660
660
  Object.defineProperty(exports, "initProject", {
661
661
  enumerable: true,
662
- get: function () { return chunk23KQ6MPJ_cjs.initProject; }
662
+ get: function () { return chunk4NNTCCJ6_cjs.initProject; }
663
663
  });
664
664
  Object.defineProperty(exports, "loadMCPTool", {
665
665
  enumerable: true,
666
- get: function () { return chunk23KQ6MPJ_cjs.loadMCPTool; }
666
+ get: function () { return chunk4NNTCCJ6_cjs.loadMCPTool; }
667
667
  });
668
668
  Object.defineProperty(exports, "loadSkillDefinition", {
669
669
  enumerable: true,
670
- get: function () { return chunk23KQ6MPJ_cjs.loadSkillDefinition; }
670
+ get: function () { return chunk4NNTCCJ6_cjs.loadSkillDefinition; }
671
671
  });
672
672
  Object.defineProperty(exports, "parseSkillMd", {
673
673
  enumerable: true,
674
- get: function () { return chunk23KQ6MPJ_cjs.parseSkillMd; }
674
+ get: function () { return chunk4NNTCCJ6_cjs.parseSkillMd; }
675
675
  });
676
676
  Object.defineProperty(exports, "runGeneratedMCP", {
677
677
  enumerable: true,
678
- get: function () { return chunk23KQ6MPJ_cjs.runGeneratedMCP; }
678
+ get: function () { return chunk4NNTCCJ6_cjs.runGeneratedMCP; }
679
679
  });
680
680
  Object.defineProperty(exports, "runMcpServer", {
681
681
  enumerable: true,
682
- get: function () { return chunk23KQ6MPJ_cjs.runMcpServer; }
682
+ get: function () { return chunk4NNTCCJ6_cjs.runMcpServer; }
683
683
  });
684
684
  Object.defineProperty(exports, "scan", {
685
685
  enumerable: true,
686
- get: function () { return chunk23KQ6MPJ_cjs.scan; }
686
+ get: function () { return chunk4NNTCCJ6_cjs.scan; }
687
687
  });
688
688
  Object.defineProperty(exports, "scanForTools", {
689
689
  enumerable: true,
690
- get: function () { return chunk23KQ6MPJ_cjs.scanForTools; }
690
+ get: function () { return chunk4NNTCCJ6_cjs.scanForTools; }
691
691
  });
692
692
  Object.defineProperty(exports, "scanSkillResources", {
693
693
  enumerable: true,
694
- get: function () { return chunk23KQ6MPJ_cjs.scanSkillResources; }
694
+ get: function () { return chunk4NNTCCJ6_cjs.scanSkillResources; }
695
695
  });
696
696
  Object.defineProperty(exports, "validateFrontmatter", {
697
697
  enumerable: true,
698
- get: function () { return chunk23KQ6MPJ_cjs.validateFrontmatter; }
698
+ get: function () { return chunk4NNTCCJ6_cjs.validateFrontmatter; }
699
699
  });
700
700
  Object.defineProperty(exports, "BudgetManager", {
701
701
  enumerable: true,
702
- get: function () { return chunkJGQVKMRY_cjs.BudgetManager; }
702
+ get: function () { return chunkJ5VQMYUV_cjs.BudgetManager; }
703
703
  });
704
704
  Object.defineProperty(exports, "EventLog", {
705
705
  enumerable: true,
706
- get: function () { return chunkJGQVKMRY_cjs.EventLog; }
706
+ get: function () { return chunkJ5VQMYUV_cjs.EventLog; }
707
707
  });
708
708
  Object.defineProperty(exports, "Metrics", {
709
709
  enumerable: true,
710
- get: function () { return chunkJGQVKMRY_cjs.Metrics; }
710
+ get: function () { return chunkJ5VQMYUV_cjs.Metrics; }
711
711
  });
712
712
  Object.defineProperty(exports, "PTCRuntime", {
713
713
  enumerable: true,
714
- get: function () { return chunkJGQVKMRY_cjs.PTCRuntime; }
714
+ get: function () { return chunkJ5VQMYUV_cjs.PTCRuntime; }
715
715
  });
716
716
  Object.defineProperty(exports, "PolicyDeniedError", {
717
717
  enumerable: true,
718
- get: function () { return chunkJGQVKMRY_cjs.PolicyDeniedError; }
718
+ get: function () { return chunkJ5VQMYUV_cjs.PolicyDeniedError; }
719
719
  });
720
720
  Object.defineProperty(exports, "PolicyEngine", {
721
721
  enumerable: true,
722
- get: function () { return chunkJGQVKMRY_cjs.PolicyEngine; }
722
+ get: function () { return chunkJ5VQMYUV_cjs.PolicyEngine; }
723
723
  });
724
724
  Object.defineProperty(exports, "SchemaValidationError", {
725
725
  enumerable: true,
726
- get: function () { return chunkJGQVKMRY_cjs.SchemaValidationError; }
726
+ get: function () { return chunkJ5VQMYUV_cjs.SchemaValidationError; }
727
727
  });
728
728
  Object.defineProperty(exports, "SchemaValidator", {
729
729
  enumerable: true,
730
- get: function () { return chunkJGQVKMRY_cjs.SchemaValidator; }
730
+ get: function () { return chunkJ5VQMYUV_cjs.SchemaValidator; }
731
731
  });
732
732
  Object.defineProperty(exports, "Tracing", {
733
733
  enumerable: true,
734
- get: function () { return chunkJGQVKMRY_cjs.Tracing; }
734
+ get: function () { return chunkJ5VQMYUV_cjs.Tracing; }
735
735
  });
736
736
  Object.defineProperty(exports, "buildEvidence", {
737
737
  enumerable: true,
738
- get: function () { return chunkJGQVKMRY_cjs.buildEvidence; }
738
+ get: function () { return chunkJ5VQMYUV_cjs.buildEvidence; }
739
739
  });
740
740
  Object.defineProperty(exports, "createLogger", {
741
741
  enumerable: true,
742
- get: function () { return chunkJGQVKMRY_cjs.createLogger; }
742
+ get: function () { return chunkJ5VQMYUV_cjs.createLogger; }
743
743
  });
744
744
  Object.defineProperty(exports, "ensurePackageInCache", {
745
745
  enumerable: true,
746
- get: function () { return chunkJGQVKMRY_cjs.ensurePackageInCache; }
746
+ get: function () { return chunkJ5VQMYUV_cjs.ensurePackageInCache; }
747
747
  });
748
748
  Object.defineProperty(exports, "expandToolDescriptorsToRegistryNames", {
749
749
  enumerable: true,
750
- get: function () { return chunkJGQVKMRY_cjs.expandToolDescriptorsToRegistryNames; }
750
+ get: function () { return chunkJ5VQMYUV_cjs.expandToolDescriptorsToRegistryNames; }
751
751
  });
752
752
  Object.defineProperty(exports, "getPackageEntryPath", {
753
753
  enumerable: true,
754
- get: function () { return chunkJGQVKMRY_cjs.getPackageEntryPath; }
754
+ get: function () { return chunkJ5VQMYUV_cjs.getPackageEntryPath; }
755
755
  });
756
756
  Object.defineProperty(exports, "importFromCache", {
757
757
  enumerable: true,
758
- get: function () { return chunkJGQVKMRY_cjs.importFromCache; }
758
+ get: function () { return chunkJ5VQMYUV_cjs.importFromCache; }
759
759
  });
760
760
  Object.defineProperty(exports, "isNpmToolDescriptor", {
761
761
  enumerable: true,
762
- get: function () { return chunkJGQVKMRY_cjs.isNpmToolDescriptor; }
762
+ get: function () { return chunkJ5VQMYUV_cjs.isNpmToolDescriptor; }
763
763
  });
764
764
  Object.defineProperty(exports, "loadToolConfig", {
765
765
  enumerable: true,
766
- get: function () { return chunkJGQVKMRY_cjs.loadToolConfig; }
766
+ get: function () { return chunkJ5VQMYUV_cjs.loadToolConfig; }
767
767
  });
768
768
  Object.defineProperty(exports, "normalizeToolList", {
769
769
  enumerable: true,
770
- get: function () { return chunkJGQVKMRY_cjs.normalizeToolList; }
770
+ get: function () { return chunkJ5VQMYUV_cjs.normalizeToolList; }
771
771
  });
772
772
  Object.defineProperty(exports, "npmDescriptorToRegistryPrefix", {
773
773
  enumerable: true,
774
- get: function () { return chunkJGQVKMRY_cjs.npmDescriptorToRegistryPrefix; }
774
+ get: function () { return chunkJ5VQMYUV_cjs.npmDescriptorToRegistryPrefix; }
775
775
  });
776
776
  Object.defineProperty(exports, "parseNpmToolDescriptor", {
777
777
  enumerable: true,
778
- get: function () { return chunkJGQVKMRY_cjs.parseNpmToolDescriptor; }
778
+ get: function () { return chunkJ5VQMYUV_cjs.parseNpmToolDescriptor; }
779
779
  });
780
780
  Object.defineProperty(exports, "resolveLatestVersionFromRegistry", {
781
781
  enumerable: true,
782
- get: function () { return chunkJGQVKMRY_cjs.resolveLatestVersionFromRegistry; }
782
+ get: function () { return chunkJ5VQMYUV_cjs.resolveLatestVersionFromRegistry; }
783
783
  });
784
784
  Object.defineProperty(exports, "resolveNpmToolDescriptor", {
785
785
  enumerable: true,
786
- get: function () { return chunkJGQVKMRY_cjs.resolveNpmToolDescriptor; }
786
+ get: function () { return chunkJ5VQMYUV_cjs.resolveNpmToolDescriptor; }
787
787
  });
788
788
  Object.defineProperty(exports, "resolveSandboxedPath", {
789
789
  enumerable: true,
790
- get: function () { return chunkJGQVKMRY_cjs.resolveSandboxedPath; }
790
+ get: function () { return chunkJ5VQMYUV_cjs.resolveSandboxedPath; }
791
791
  });
792
792
  Object.defineProperty(exports, "resolveToolDescriptor", {
793
793
  enumerable: true,
794
- get: function () { return chunkJGQVKMRY_cjs.resolveToolDescriptor; }
794
+ get: function () { return chunkJ5VQMYUV_cjs.resolveToolDescriptor; }
795
795
  });
796
796
  Object.defineProperty(exports, "sanitizeForLog", {
797
797
  enumerable: true,
798
- get: function () { return chunkJGQVKMRY_cjs.sanitizeForLog; }
798
+ get: function () { return chunkJ5VQMYUV_cjs.sanitizeForLog; }
799
799
  });
800
800
  Object.defineProperty(exports, "setSandboxValidationEnabled", {
801
801
  enumerable: true,
802
- get: function () { return chunkJGQVKMRY_cjs.setSandboxValidationEnabled; }
802
+ get: function () { return chunkJ5VQMYUV_cjs.setSandboxValidationEnabled; }
803
803
  });
804
804
  Object.defineProperty(exports, "summarizeForLog", {
805
805
  enumerable: true,
806
- get: function () { return chunkJGQVKMRY_cjs.summarizeForLog; }
806
+ get: function () { return chunkJ5VQMYUV_cjs.summarizeForLog; }
807
807
  });
808
808
  Object.defineProperty(exports, "ToolRegistry", {
809
809
  enumerable: true,
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
- export { LangChainToolsHub, createAgentTools } from './chunk-TRJL2ZIH.js';
2
- import { scanForTools, loadMCPTool } from './chunk-JRT4FEQB.js';
3
- export { DirectoryScanner, DiscoveryError, SkillManifestError, buildFunctionToTool, buildMcpPackage, initProject, loadMCPTool, loadSkillDefinition, parseSkillMd, runGeneratedMCP, runMcpServer, scan, scanForTools, scanSkillResources, validateFrontmatter } from './chunk-JRT4FEQB.js';
4
- import { MCP_KIND } from './chunk-YZLDVSS4.js';
5
- export { BudgetManager, EventLog, Metrics, PTCRuntime, PolicyDeniedError, PolicyEngine, SchemaValidationError, SchemaValidator, Tracing, buildEvidence, createLogger, ensurePackageInCache, expandToolDescriptorsToRegistryNames, getPackageEntryPath, importFromCache, isNpmToolDescriptor, loadToolConfig, normalizeToolList, npmDescriptorToRegistryPrefix, parseNpmToolDescriptor, resolveLatestVersionFromRegistry, resolveNpmToolDescriptor, resolveSandboxedPath, resolveToolDescriptor, sanitizeForLog, setSandboxValidationEnabled, summarizeForLog } from './chunk-YZLDVSS4.js';
1
+ export { LangChainToolsHub, createAgentTools } from './chunk-QRI34I5Z.js';
2
+ import { scanForTools, loadMCPTool } from './chunk-GWUMQRCN.js';
3
+ export { DirectoryScanner, DiscoveryError, SkillManifestError, buildFunctionToTool, buildMcpPackage, initProject, loadMCPTool, loadSkillDefinition, parseSkillMd, runGeneratedMCP, runMcpServer, scan, scanForTools, scanSkillResources, validateFrontmatter } from './chunk-GWUMQRCN.js';
4
+ import { MCP_KIND } from './chunk-3AEYVD7K.js';
5
+ export { BudgetManager, EventLog, Metrics, PTCRuntime, PolicyDeniedError, PolicyEngine, SchemaValidationError, SchemaValidator, Tracing, buildEvidence, createLogger, ensurePackageInCache, expandToolDescriptorsToRegistryNames, getPackageEntryPath, importFromCache, isNpmToolDescriptor, loadToolConfig, normalizeToolList, npmDescriptorToRegistryPrefix, parseNpmToolDescriptor, resolveLatestVersionFromRegistry, resolveNpmToolDescriptor, resolveSandboxedPath, resolveToolDescriptor, sanitizeForLog, setSandboxValidationEnabled, summarizeForLog } from './chunk-3AEYVD7K.js';
6
6
  import { createTaggedError } from './chunk-ZRHPGW7W.js';
7
7
  export { ToolRegistry, createTaggedError, isRetryable, withRetry } from './chunk-ZRHPGW7W.js';
8
8
  import { createToolSpec, DEFAULT_OUTPUT_SCHEMA, DEFAULT_INPUT_SCHEMA } from './chunk-KDB3MY2H.js';
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  'use strict';
3
3
 
4
- var chunk23KQ6MPJ_cjs = require('../../chunk-23KQ6MPJ.cjs');
5
- var chunk5BYLYZ22_cjs = require('../../chunk-5BYLYZ22.cjs');
6
- var chunkJGQVKMRY_cjs = require('../../chunk-JGQVKMRY.cjs');
4
+ var chunk4NNTCCJ6_cjs = require('../../chunk-4NNTCCJ6.cjs');
5
+ var chunkTSJRMNOB_cjs = require('../../chunk-TSJRMNOB.cjs');
6
+ var chunkJ5VQMYUV_cjs = require('../../chunk-J5VQMYUV.cjs');
7
7
  require('../../chunk-TOSPHMYU.cjs');
8
8
  require('../../chunk-DYDNPIV2.cjs');
9
9
  var chunkUUNG3GL3_cjs = require('../../chunk-UUNG3GL3.cjs');
@@ -204,10 +204,10 @@ async function getRuntimeWithTools(pathOpt, verbose = false) {
204
204
  const stepLog = verbose ? (msg) => process.stderr.write(`[agent-tool] ${msg}
205
205
  `) : void 0;
206
206
  if (stepLog) stepLog(`Loading tool config from ${searchDir}`);
207
- const config = chunkJGQVKMRY_cjs.findAndLoadToolConfig(searchDir);
207
+ const config = chunkJ5VQMYUV_cjs.findAndLoadToolConfig(searchDir);
208
208
  let sandboxRoot = cwd;
209
209
  if (config.sandboxedPath && typeof config.sandboxedPath === "string" && config.configPath) {
210
- sandboxRoot = chunkJGQVKMRY_cjs.resolveSandboxedPath2(config.configPath, config.sandboxedPath);
210
+ sandboxRoot = chunkJ5VQMYUV_cjs.resolveSandboxedPath2(config.configPath, config.sandboxedPath);
211
211
  }
212
212
  if (stepLog) {
213
213
  if (config.configPath) {
@@ -222,7 +222,7 @@ async function getRuntimeWithTools(pathOpt, verbose = false) {
222
222
  enableSandboxValidation: config.enableSandboxValidation ?? DEFAULT_CORE_CONFIG.enableSandboxValidation,
223
223
  allowedHosts: []
224
224
  };
225
- const result = await chunkJGQVKMRY_cjs.createRuntimeFromConfig({
225
+ const result = await chunkJ5VQMYUV_cjs.createRuntimeFromConfig({
226
226
  coreTools: coreConfig,
227
227
  configFilePath: config.configPath,
228
228
  stepLog
@@ -378,7 +378,7 @@ Next: cd ${path2__namespace.default.basename(targetPath)} && npm install && npm
378
378
  }
379
379
  async function cmdInit(pathOpt) {
380
380
  try {
381
- const { targetPath, filesCreated } = await chunk23KQ6MPJ_cjs.initProject({ targetPath: pathOpt || void 0 });
381
+ const { targetPath, filesCreated } = await chunk4NNTCCJ6_cjs.initProject({ targetPath: pathOpt || void 0 });
382
382
  process.stdout.write(`Initialized project at ${targetPath}
383
383
  Created: ${filesCreated.join(", ")}
384
384
  Next: npm install && npm run build
@@ -392,7 +392,7 @@ Next: npm install && npm run build
392
392
  }
393
393
  async function cmdBuild(pathOpt, outDir, include, includeN8n) {
394
394
  try {
395
- const result = await chunk23KQ6MPJ_cjs.buildMcpPackage({
395
+ const result = await chunk4NNTCCJ6_cjs.buildMcpPackage({
396
396
  projectPath: pathOpt || void 0,
397
397
  outDir: outDir || void 0,
398
398
  include: include.length > 0 ? include : void 0,
@@ -413,7 +413,7 @@ mcp.json: ${result.mcpJsonPath}
413
413
  }
414
414
  async function cmdServe(pathOpt) {
415
415
  try {
416
- const { process: child } = await chunk23KQ6MPJ_cjs.runMcpServer({ path: pathOpt || void 0 });
416
+ const { process: child } = await chunk4NNTCCJ6_cjs.runMcpServer({ path: pathOpt || void 0 });
417
417
  child.stdin?.pipe(process.stdin);
418
418
  child.stdout?.pipe(process.stdout);
419
419
  process.stdin?.unref();
@@ -431,7 +431,7 @@ var LS_DESC_MAX = 72;
431
431
  function formatLsOutput(specs) {
432
432
  const rows = specs.map((spec) => {
433
433
  const { name } = parseToolName(spec.name);
434
- const scope = chunkJGQVKMRY_cjs.getDisplayScope(spec.name, spec.kind, spec.version);
434
+ const scope = chunkJ5VQMYUV_cjs.getDisplayScope(spec.name, spec.kind, spec.version);
435
435
  const desc = (spec.description ?? "").replace(/\n/g, " ").trim().slice(0, LS_DESC_MAX);
436
436
  return { scope, name, description: desc || "(no description)" };
437
437
  });
@@ -458,7 +458,7 @@ function formatLsOutput(specs) {
458
458
  }
459
459
  function formatDescribeOutput(spec) {
460
460
  const { name: localName } = parseToolName(spec.name);
461
- const scope = chunkJGQVKMRY_cjs.getDisplayScope(spec.name, spec.kind, spec.version);
461
+ const scope = chunkJ5VQMYUV_cjs.getDisplayScope(spec.name, spec.kind, spec.version);
462
462
  const sections = [];
463
463
  sections.push("\u250C\u2500 Tool");
464
464
  sections.push(`\u2502 name: ${spec.name}`);
@@ -494,7 +494,7 @@ async function cmdLs(pathOpt, verbose = false) {
494
494
  process.stdout.write("No tools registered.\n");
495
495
  const cwd = process.cwd();
496
496
  const searchDir = path2__namespace.default.resolve(cwd, pathOpt ?? ".");
497
- const config = chunkJGQVKMRY_cjs.findAndLoadToolConfig(searchDir);
497
+ const config = chunkJ5VQMYUV_cjs.findAndLoadToolConfig(searchDir);
498
498
  const hasNpmTools = Array.isArray(config.tools) && config.tools.some((t) => typeof t === "string" && t.startsWith("npm:"));
499
499
  if (hasNpmTools) {
500
500
  process.stdout.write(
@@ -519,7 +519,7 @@ async function cmdDescribe(toolName, pathOpt, verbose = false) {
519
519
  }
520
520
  try {
521
521
  const { registry } = await getRuntimeWithTools(pathOpt, verbose);
522
- const registryName = chunkJGQVKMRY_cjs.resolveToolDescriptor(toolName.trim());
522
+ const registryName = chunkJ5VQMYUV_cjs.resolveToolDescriptor(toolName.trim());
523
523
  const spec = registry.get(registryName);
524
524
  if (!spec) {
525
525
  process.stderr.write(`Tool not found: ${toolName}
@@ -568,7 +568,7 @@ async function cmdRun(toolName, toolArgsJson, pathOpt, verbose = false) {
568
568
  }
569
569
  try {
570
570
  const { runtime, registry } = await getRuntimeWithTools(pathOpt, verbose);
571
- const registryName = chunkJGQVKMRY_cjs.resolveToolDescriptor(toolName.trim());
571
+ const registryName = chunkJ5VQMYUV_cjs.resolveToolDescriptor(toolName.trim());
572
572
  if (!registry.get(registryName)) {
573
573
  process.stderr.write(`Tool not found: ${toolName}
574
574
  `);
@@ -596,10 +596,10 @@ async function cmdStartMcp(pathOpt, verbose = false, stdio = false, port = 3e3,
596
596
  try {
597
597
  const { runtime } = await getRuntimeWithTools(pathOpt, verbose);
598
598
  if (stdio) {
599
- await chunk5BYLYZ22_cjs.runMCPServerOverStdio(runtime);
599
+ await chunkTSJRMNOB_cjs.runMCPServerOverStdio(runtime);
600
600
  return 0;
601
601
  }
602
- const streamable = await chunk5BYLYZ22_cjs.createMCPServerStreamableHttp(runtime, { port, host, path: "/mcp" });
602
+ const streamable = await chunkTSJRMNOB_cjs.createMCPServerStreamableHttp(runtime, { port, host, path: "/mcp" });
603
603
  const { url, port: actualPort } = await streamable.listen(port, host);
604
604
  process.stdout.write(`MCP Streamable HTTP: ${url}
605
605
  `);
@@ -615,7 +615,7 @@ async function cmdStartMcp(pathOpt, verbose = false, stdio = false, port = 3e3,
615
615
  async function cmdStartHttp(port, host, pathOpt, verbose = false) {
616
616
  try {
617
617
  const { runtime } = await getRuntimeWithTools(pathOpt, verbose);
618
- const http = await chunk5BYLYZ22_cjs.createHttpService(runtime);
618
+ const http = await chunkTSJRMNOB_cjs.createHttpService(runtime);
619
619
  const { port: actualPort, host: actualHost } = await http.listen({ port, host });
620
620
  const base = `http://${actualHost}:${actualPort}`;
621
621
  process.stdout.write(`API: ${base}/invoke (POST), ${base}/tools (GET)
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
- import { initProject, buildMcpPackage, runMcpServer } from '../../chunk-JRT4FEQB.js';
3
- import { runMCPServerOverStdio, createMCPServerStreamableHttp, createHttpService } from '../../chunk-OAZPWIHV.js';
4
- import { findAndLoadToolConfig, resolveToolDescriptor, resolveSandboxedPath2, createRuntimeFromConfig, getDisplayScope } from '../../chunk-YZLDVSS4.js';
2
+ import { initProject, buildMcpPackage, runMcpServer } from '../../chunk-GWUMQRCN.js';
3
+ import { runMCPServerOverStdio, createMCPServerStreamableHttp, createHttpService } from '../../chunk-OSENBU42.js';
4
+ import { findAndLoadToolConfig, resolveToolDescriptor, resolveSandboxedPath2, createRuntimeFromConfig, getDisplayScope } from '../../chunk-3AEYVD7K.js';
5
5
  import '../../chunk-ZRHPGW7W.js';
6
6
  import '../../chunk-KDB3MY2H.js';
7
7
  import { enrichSpecWithCanonicalSchema } from '../../chunk-NTWOVFEY.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@easynet/agent-tool",
3
- "version": "1.0.39",
3
+ "version": "1.0.40",
4
4
  "description": "MCP build: init → build → run. Turn your project (@tool, SKILL, n8n) into a standalone MCP npm server (no framework embedding, no package conflict).",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",