@easynet/agent-tool 1.0.19 → 1.0.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/api/createAgentTools.d.ts.map +1 -1
  2. package/dist/api/main.cjs +15 -15
  3. package/dist/api/main.js +4 -4
  4. package/dist/api/runtimeFromConfig.d.ts +15 -11
  5. package/dist/api/runtimeFromConfig.d.ts.map +1 -1
  6. package/dist/canonicalCoreSchemas-JPTOIQKR.js +4 -0
  7. package/dist/{canonicalCoreSchemas-DNBAHSUC.js.map → canonicalCoreSchemas-JPTOIQKR.js.map} +1 -1
  8. package/dist/canonicalCoreSchemas-K57HKGZJ.cjs +21 -0
  9. package/dist/{canonicalCoreSchemas-IBTSIPJV.cjs.map → canonicalCoreSchemas-K57HKGZJ.cjs.map} +1 -1
  10. package/dist/{chunk-EAI37B5W.cjs → chunk-6JWQVVL2.cjs} +4 -3
  11. package/dist/chunk-6JWQVVL2.cjs.map +1 -0
  12. package/dist/{chunk-H2UMNHDE.cjs → chunk-DB7WQWTF.cjs} +10 -10
  13. package/dist/{chunk-H2UMNHDE.cjs.map → chunk-DB7WQWTF.cjs.map} +1 -1
  14. package/dist/{chunk-HISF2FEL.cjs → chunk-DF5ETXKZ.cjs} +16 -22
  15. package/dist/chunk-DF5ETXKZ.cjs.map +1 -0
  16. package/dist/{chunk-QB5ALDM3.js → chunk-DUWEP2CH.js} +3 -3
  17. package/dist/{chunk-QB5ALDM3.js.map → chunk-DUWEP2CH.js.map} +1 -1
  18. package/dist/{chunk-Y33OLGAJ.js → chunk-K6AMVYFV.js} +7 -13
  19. package/dist/chunk-K6AMVYFV.js.map +1 -0
  20. package/dist/{chunk-NNOTTUB2.cjs → chunk-NJNQCEHG.cjs} +151 -47
  21. package/dist/chunk-NJNQCEHG.cjs.map +1 -0
  22. package/dist/{chunk-46XYOB3H.js → chunk-P5UPHQ7N.js} +4 -3
  23. package/dist/chunk-P5UPHQ7N.js.map +1 -0
  24. package/dist/{chunk-GGKQQR54.js → chunk-SAYJJNA7.js} +5 -5
  25. package/dist/{chunk-GGKQQR54.js.map → chunk-SAYJJNA7.js.map} +1 -1
  26. package/dist/{chunk-TPWEGGKQ.cjs → chunk-XDAMV3HZ.cjs} +9 -9
  27. package/dist/{chunk-TPWEGGKQ.cjs.map → chunk-XDAMV3HZ.cjs.map} +1 -1
  28. package/dist/{chunk-TTYAOTOR.js → chunk-XYJRKFWR.js} +151 -46
  29. package/dist/chunk-XYJRKFWR.js.map +1 -0
  30. package/dist/index.cjs +52 -48
  31. package/dist/index.d.ts +1 -1
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +6 -6
  34. package/dist/tools/util/canonicalCoreSchemas.d.ts.map +1 -1
  35. package/dist/tools/util/index.d.ts +1 -1
  36. package/dist/tools/util/index.d.ts.map +1 -1
  37. package/dist/tools/util/toolDescriptor.d.ts +9 -0
  38. package/dist/tools/util/toolDescriptor.d.ts.map +1 -1
  39. package/dist/utils/cli/index.cjs +19 -19
  40. package/dist/utils/cli/index.js +4 -4
  41. package/package.json +1 -1
  42. package/dist/canonicalCoreSchemas-DNBAHSUC.js +0 -4
  43. package/dist/canonicalCoreSchemas-IBTSIPJV.cjs +0 -21
  44. package/dist/chunk-46XYOB3H.js.map +0 -1
  45. package/dist/chunk-EAI37B5W.cjs.map +0 -1
  46. package/dist/chunk-HISF2FEL.cjs.map +0 -1
  47. package/dist/chunk-NNOTTUB2.cjs.map +0 -1
  48. package/dist/chunk-TTYAOTOR.js.map +0 -1
  49. package/dist/chunk-Y33OLGAJ.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkNNOTTUB2_cjs = require('./chunk-NNOTTUB2.cjs');
3
+ var chunkNJNQCEHG_cjs = require('./chunk-NJNQCEHG.cjs');
4
4
  var tools = require('@langchain/core/tools');
5
5
 
6
6
  var DEFAULT_CTX_FACTORY = () => ({
@@ -51,7 +51,7 @@ var LangChainToolsHub = class {
51
51
  const intent = {
52
52
  tool: spec.name,
53
53
  args: args ?? {},
54
- purpose: chunkNNOTTUB2_cjs.LANGCHAIN_KIND
54
+ purpose: chunkNJNQCEHG_cjs.LANGCHAIN_KIND
55
55
  };
56
56
  const ctx = ctxFactory();
57
57
  const result = await runtime.invoke(intent, ctx);
@@ -86,10 +86,10 @@ function mergeHostLists(a, b) {
86
86
  function runtimeOptionsFromConfig(opts) {
87
87
  const coreTools = opts.coreTools ?? { sandboxRoot: process.cwd(), allowedHosts: [] };
88
88
  if (opts.configFilePath) {
89
- const toolConfig = chunkNNOTTUB2_cjs.loadToolConfig(opts.configFilePath);
89
+ const toolConfig = chunkNJNQCEHG_cjs.loadToolConfig(opts.configFilePath);
90
90
  const updates = {};
91
91
  if (toolConfig.sandboxedPath && typeof toolConfig.sandboxedPath === "string") {
92
- updates.sandboxRoot = chunkNNOTTUB2_cjs.resolveSandboxedPath(opts.configFilePath, toolConfig.sandboxedPath);
92
+ updates.sandboxRoot = chunkNJNQCEHG_cjs.resolveSandboxedPath(opts.configFilePath, toolConfig.sandboxedPath);
93
93
  }
94
94
  updates.allowedHosts = mergeHostLists(coreTools.allowedHosts, toolConfig.allowedHosts);
95
95
  updates.blockedHosts = mergeHostLists(coreTools.blockedHosts, toolConfig.blockedHosts);
@@ -107,21 +107,18 @@ function runtimeOptionsFromConfig(opts) {
107
107
  function createAgentTools(options) {
108
108
  const opts = typeof options === "string" ? { configFilePath: options } : options ?? {};
109
109
  const runtimeOpts = runtimeOptionsFromConfig(opts);
110
- const { runtime } = chunkNNOTTUB2_cjs.createRuntimeFromConfigSync(runtimeOpts);
110
+ const { runtime } = chunkNJNQCEHG_cjs.createRuntimeFromConfigSync(runtimeOpts);
111
111
  const hub = new LangChainToolsHub(runtime);
112
112
  if (opts.configFilePath) {
113
- const toolConfig = chunkNNOTTUB2_cjs.loadToolConfig(opts.configFilePath);
113
+ const toolConfig = chunkNJNQCEHG_cjs.loadToolConfig(opts.configFilePath);
114
114
  const names = Array.isArray(toolConfig.tools) ? toolConfig.tools : [];
115
115
  if (names.length > 0) {
116
116
  const registryNames = runtime.getRegistry().snapshot().map((s) => s.name);
117
- const allBareBuiltin = names.every((n) => chunkNNOTTUB2_cjs.isBarePackageDescriptor(String(n))) && names.some((n) => {
118
- const p = chunkNNOTTUB2_cjs.parseNpmDescriptor(String(n));
119
- return p !== null && chunkNNOTTUB2_cjs.BUILTIN_PKG_NAMES.includes(p.packageName);
120
- });
121
- if (allBareBuiltin) {
117
+ const allBarePackages = names.every((n) => chunkNJNQCEHG_cjs.isBarePackageDescriptor(String(n)));
118
+ if (allBarePackages) {
122
119
  return hub.getLangChainTools();
123
120
  }
124
- const expanded = chunkNNOTTUB2_cjs.expandToolDescriptorsToRegistryNames(names, registryNames);
121
+ const expanded = chunkNJNQCEHG_cjs.expandToolDescriptorsToRegistryNames(names, registryNames);
125
122
  return hub.getLangChainToolsForNames(expanded);
126
123
  }
127
124
  }
@@ -129,21 +126,18 @@ function createAgentTools(options) {
129
126
  }
130
127
  async function createLangChainToolsAsync(options = {}) {
131
128
  const runtimeOpts = runtimeOptionsFromConfig(options);
132
- const { runtime } = await chunkNNOTTUB2_cjs.createRuntimeFromConfig(runtimeOpts);
129
+ const { runtime } = await chunkNJNQCEHG_cjs.createRuntimeFromConfig(runtimeOpts);
133
130
  const hub = new LangChainToolsHub(runtime);
134
131
  if (options.configFilePath) {
135
- const toolConfig = chunkNNOTTUB2_cjs.loadToolConfig(options.configFilePath);
132
+ const toolConfig = chunkNJNQCEHG_cjs.loadToolConfig(options.configFilePath);
136
133
  const names = Array.isArray(toolConfig.tools) ? toolConfig.tools : [];
137
134
  if (names.length > 0) {
138
135
  const registryNames = runtime.getRegistry().snapshot().map((s) => s.name);
139
- const allBareBuiltin = names.every((n) => chunkNNOTTUB2_cjs.isBarePackageDescriptor(String(n))) && names.some((n) => {
140
- const p = chunkNNOTTUB2_cjs.parseNpmDescriptor(String(n));
141
- return p !== null && chunkNNOTTUB2_cjs.BUILTIN_PKG_NAMES.includes(p.packageName);
142
- });
143
- if (allBareBuiltin) {
136
+ const allBarePackages = names.every((n) => chunkNJNQCEHG_cjs.isBarePackageDescriptor(String(n)));
137
+ if (allBarePackages) {
144
138
  return hub.getLangChainTools();
145
139
  }
146
- const expanded = chunkNNOTTUB2_cjs.expandToolDescriptorsToRegistryNames(names, registryNames);
140
+ const expanded = chunkNJNQCEHG_cjs.expandToolDescriptorsToRegistryNames(names, registryNames);
147
141
  return hub.getLangChainToolsForNames(expanded);
148
142
  }
149
143
  }
@@ -153,5 +147,5 @@ async function createLangChainToolsAsync(options = {}) {
153
147
  exports.LangChainToolsHub = LangChainToolsHub;
154
148
  exports.createAgentTools = createAgentTools;
155
149
  exports.createLangChainToolsAsync = createLangChainToolsAsync;
156
- //# sourceMappingURL=chunk-HISF2FEL.cjs.map
157
- //# sourceMappingURL=chunk-HISF2FEL.cjs.map
150
+ //# sourceMappingURL=chunk-DF5ETXKZ.cjs.map
151
+ //# sourceMappingURL=chunk-DF5ETXKZ.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/api/adapters/LangChainToolsHub.ts","../src/api/createAgentTools.ts"],"names":["DynamicStructuredTool","LANGCHAIN_KIND","loadToolConfig","resolveSandboxedPath","createRuntimeFromConfigSync","isBarePackageDescriptor","expandToolDescriptorsToRegistryNames","createRuntimeFromConfig"],"mappings":"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","file":"chunk-DF5ETXKZ.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 { LANGCHAIN_KIND } from \"../../tools/langchain/types.js\";\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\n return new DynamicStructuredTool({\n name: spec.name,\n description: spec.description ?? `Tool: ${spec.name}`,\n schema: spec.inputSchema as Record<string, unknown>,\n func: async (args: Record<string, unknown>): Promise<string> => {\n const intent: ToolIntent = {\n tool: spec.name,\n args: args ?? {},\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} 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: [] };\n if (opts.configFilePath) {\n const toolConfig = loadToolConfig(opts.configFilePath);\n const updates: {\n sandboxRoot?: string;\n allowedHosts?: string[];\n blockedHosts?: string[];\n blockedCidrs?: string[];\n } = {};\n if (toolConfig.sandboxedPath && typeof toolConfig.sandboxedPath === \"string\") {\n updates.sandboxRoot = resolveSandboxedPath(opts.configFilePath, toolConfig.sandboxedPath);\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 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,4 +1,4 @@
1
- import { LANGCHAIN_DIR_NAME, LANGCHAIN_KIND, MCP_KIND } from './chunk-TTYAOTOR.js';
1
+ import { LANGCHAIN_DIR_NAME, LANGCHAIN_KIND, MCP_KIND } from './chunk-XYJRKFWR.js';
2
2
  import { DEFAULT_OUTPUT_SCHEMA } from './chunk-GWBJEGS7.js';
3
3
  import * as fs3 from 'fs/promises';
4
4
  import { readdir, readFile, access, stat } from 'fs/promises';
@@ -1779,5 +1779,5 @@ async function runMcpServer(options = {}) {
1779
1779
  var runGeneratedMCP = runMcpServer;
1780
1780
 
1781
1781
  export { DirectoryScanner, DiscoveryError, SkillManifestError, buildFunctionToTool, buildMcpPackage, initProject, loadMCPTool, loadSkillDefinition, parseSkillMd, runGeneratedMCP, runMcpServer, scan, scanForTools, scanSkillResources, validateFrontmatter };
1782
- //# sourceMappingURL=chunk-QB5ALDM3.js.map
1783
- //# sourceMappingURL=chunk-QB5ALDM3.js.map
1782
+ //# sourceMappingURL=chunk-DUWEP2CH.js.map
1783
+ //# sourceMappingURL=chunk-DUWEP2CH.js.map