@easynet/agent-tool 1.0.73 → 1.0.74

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/index.cjs CHANGED
@@ -3,11 +3,11 @@
3
3
  require('./chunk-YL6RC7HQ.cjs');
4
4
  var chunkOKKBKZWK_cjs = require('./chunk-OKKBKZWK.cjs');
5
5
  var chunkR55NXJIH_cjs = require('./chunk-R55NXJIH.cjs');
6
- var chunkZZHS55OM_cjs = require('./chunk-ZZHS55OM.cjs');
6
+ var chunkKTQTDKWU_cjs = require('./chunk-KTQTDKWU.cjs');
7
7
  require('./chunk-ICHSEIZN.cjs');
8
8
  require('./chunk-NOGGIM7B.cjs');
9
9
  var chunkTBDSFXNG_cjs = require('./chunk-TBDSFXNG.cjs');
10
- var chunkQVXWW657_cjs = require('./chunk-QVXWW657.cjs');
10
+ var chunkSE6IMOIE_cjs = require('./chunk-SE6IMOIE.cjs');
11
11
  require('./chunk-UUNG3GL3.cjs');
12
12
  require('./chunk-33N4Y6IS.cjs');
13
13
  var chunkLHKEJNKL_cjs = require('./chunk-LHKEJNKL.cjs');
@@ -36,7 +36,7 @@ function normalizeAgentToolConfigRef(raw) {
36
36
  // src/config/index.ts
37
37
  function loadToolRuntimeConfig(options = {}) {
38
38
  const configPath = path.resolve(options.configPath ?? "config/tool.yaml");
39
- return chunkQVXWW657_cjs.loadToolConfig(configPath);
39
+ return chunkSE6IMOIE_cjs.loadToolConfig(configPath);
40
40
  }
41
41
  function createToolConfig(options = {}) {
42
42
  const base = loadToolRuntimeConfig(options);
@@ -88,55 +88,59 @@ var platformApi = {
88
88
 
89
89
  Object.defineProperty(exports, "createAgentTools", {
90
90
  enumerable: true,
91
- get: function () { return chunkZZHS55OM_cjs.createAgentTools; }
91
+ get: function () { return chunkKTQTDKWU_cjs.createAgentTools; }
92
+ });
93
+ Object.defineProperty(exports, "createAgentToolsRegistry", {
94
+ enumerable: true,
95
+ get: function () { return chunkKTQTDKWU_cjs.createAgentToolsRegistry; }
92
96
  });
93
97
  Object.defineProperty(exports, "createLangChainToolsAsync", {
94
98
  enumerable: true,
95
- get: function () { return chunkZZHS55OM_cjs.createLangChainToolsAsync; }
99
+ get: function () { return chunkKTQTDKWU_cjs.createLangChainToolsAsync; }
96
100
  });
97
101
  Object.defineProperty(exports, "langchainApi", {
98
102
  enumerable: true,
99
- get: function () { return chunkZZHS55OM_cjs.langchainApi; }
103
+ get: function () { return chunkKTQTDKWU_cjs.langchainApi; }
100
104
  });
101
105
  Object.defineProperty(exports, "mcpApi", {
102
106
  enumerable: true,
103
- get: function () { return chunkZZHS55OM_cjs.mcpApi; }
107
+ get: function () { return chunkKTQTDKWU_cjs.mcpApi; }
104
108
  });
105
109
  Object.defineProperty(exports, "openApi", {
106
110
  enumerable: true,
107
- get: function () { return chunkZZHS55OM_cjs.openApi; }
111
+ get: function () { return chunkKTQTDKWU_cjs.openApi; }
108
112
  });
109
113
  Object.defineProperty(exports, "runtimeApi", {
110
114
  enumerable: true,
111
- get: function () { return chunkZZHS55OM_cjs.runtimeApi; }
115
+ get: function () { return chunkKTQTDKWU_cjs.runtimeApi; }
112
116
  });
113
117
  Object.defineProperty(exports, "createMCPServer", {
114
118
  enumerable: true,
115
- get: function () { return chunkQVXWW657_cjs.createMCPServer; }
119
+ get: function () { return chunkSE6IMOIE_cjs.createMCPServer; }
116
120
  });
117
121
  Object.defineProperty(exports, "createMCPServerStreamableHttp", {
118
122
  enumerable: true,
119
- get: function () { return chunkQVXWW657_cjs.createMCPServerStreamableHttp; }
123
+ get: function () { return chunkSE6IMOIE_cjs.createMCPServerStreamableHttp; }
120
124
  });
121
125
  Object.defineProperty(exports, "createMCPStreamableHttpHandler", {
122
126
  enumerable: true,
123
- get: function () { return chunkQVXWW657_cjs.createMCPStreamableHttpHandler; }
127
+ get: function () { return chunkSE6IMOIE_cjs.createMCPStreamableHttpHandler; }
124
128
  });
125
129
  Object.defineProperty(exports, "createOpenAPIServer", {
126
130
  enumerable: true,
127
- get: function () { return chunkQVXWW657_cjs.createHttpService; }
131
+ get: function () { return chunkSE6IMOIE_cjs.createHttpService; }
128
132
  });
129
133
  Object.defineProperty(exports, "createRuntimeFromConfig", {
130
134
  enumerable: true,
131
- get: function () { return chunkQVXWW657_cjs.createRuntimeFromConfig; }
135
+ get: function () { return chunkSE6IMOIE_cjs.createRuntimeFromConfig; }
132
136
  });
133
137
  Object.defineProperty(exports, "createRuntimeFromConfigSync", {
134
138
  enumerable: true,
135
- get: function () { return chunkQVXWW657_cjs.createRuntimeFromConfigSync; }
139
+ get: function () { return chunkSE6IMOIE_cjs.createRuntimeFromConfigSync; }
136
140
  });
137
141
  Object.defineProperty(exports, "runMCPServerOverStdio", {
138
142
  enumerable: true,
139
- get: function () { return chunkQVXWW657_cjs.runMCPServerOverStdio; }
143
+ get: function () { return chunkSE6IMOIE_cjs.runMCPServerOverStdio; }
140
144
  });
141
145
  Object.defineProperty(exports, "ToolRegistry", {
142
146
  enumerable: true,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/config/ref.ts","../src/config/index.ts","../src/index.ts"],"names":["resolve","loadToolConfig","deepMerge","initProject","buildMCPPackage","runMCPServer","scanForTools","scan","createExtension","generateManifest","generateExtensionManifest","registerExtension","registerToolsFromManifest","loadExtensionManifest","loadToolYaml","resolveExtensionPackageRoot","overrideWithConfig","getGroupNamePrefixes","createDynamicImportAdapter","createContextRunner","resolveSandboxedPath","setSandboxValidationEnabled","validateUrl","isIpInBlockedCidrs","createToolSpec","DEFAULT_INPUT_SCHEMA","DEFAULT_OUTPUT_SCHEMA","createTaggedError","withRetry","isRetryable","ToolRegistry"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAOA,SAAS,SAAS,KAAA,EAAqD;AACrE,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,KAAU,OAAQ,KAAA,GAAoC,MAAA;AAC5F;AAGO,SAAS,4BAA4B,GAAA,EAA2C;AACrF,EAAA,IAAI,OAAO,GAAA,KAAQ,QAAA,IAAY,GAAA,CAAI,IAAA,EAAK,CAAE,MAAA,GAAS,CAAA,EAAG,OAAO,EAAE,GAAA,EAAK,GAAA,CAAI,MAAK,EAAE;AAC/E,EAAA,MAAM,GAAA,GAAM,SAAS,GAAG,CAAA;AACxB,EAAA,IAAI,CAAC,GAAA,EAAK,OAAO,EAAC;AAElB,EAAA,MAAM,MAAmC,EAAC;AAC1C,EAAA,IAAI,OAAO,GAAA,CAAI,GAAA,KAAQ,QAAA,IAAY,IAAI,GAAA,CAAI,IAAA,EAAK,CAAE,MAAA,GAAS,CAAA,EAAG,GAAA,CAAI,GAAA,GAAM,GAAA,CAAI,IAAI,IAAA,EAAK;AACrF,EAAA,IAAI,OAAO,GAAA,CAAI,WAAA,KAAgB,QAAA,IAAY,IAAI,WAAA,CAAY,IAAA,EAAK,CAAE,MAAA,GAAS,CAAA,EAAG,GAAA,CAAI,WAAA,GAAc,GAAA,CAAI,YAAY,IAAA,EAAK;AACrH,EAAA,IAAI,OAAO,GAAA,CAAI,UAAA,KAAe,QAAA,IAAY,IAAI,UAAA,CAAW,IAAA,EAAK,CAAE,MAAA,GAAS,CAAA,EAAG,GAAA,CAAI,UAAA,GAAa,GAAA,CAAI,WAAW,IAAA,EAAK;AACjH,EAAA,OAAO,GAAA;AACT;;;ACPO,SAAS,qBAAA,CAAsB,OAAA,GAAiC,EAAC,EAAkB;AACxF,EAAA,MAAM,UAAA,GAAaA,YAAA,CAAQ,OAAA,CAAQ,UAAA,IAAc,kBAAkB,CAAA;AACnE,EAAA,OAAOC,iCAAe,UAAU,CAAA;AAClC;AAEO,SAAS,gBAAA,CAAiB,OAAA,GAAmC,EAAC,EAAkB;AACrF,EAAA,MAAM,IAAA,GAAO,sBAAsB,OAAO,CAAA;AAC1C,EAAA,IAAI,CAAC,OAAA,CAAQ,SAAA,EAAW,OAAO,IAAA;AAC/B,EAAA,OAAOC,qBAAA,CAAU,EAAC,EAAoB,IAAA,EAAM,QAAQ,SAAS,CAAA;AAC/D;;;AC8DO,IAAM,WAAA,GAAc;AAAA,EACzB,KAAA,EAAO;AAAA,iBACLC,6BAAA;AAAA,qBACAC,iCAAA;AAAA,kBACAC,8BAAA;AAAA,kBACAC,8BAAA;AAAA,UACAC;AAAA,GACF;AAAA,EACA,SAAA,EAAW;AAAA,qBACTC,iCAAA;AAAA,sBACAC,kCAAA;AAAA,+BACAC,2CAAA;AAAA,uBACAC,mCAAA;AAAA,+BACAC,2CAAA;AAAA,2BACAC,uCAAA;AAAA,kBACAC,8BAAA;AAAA,iCACAC,6CAAA;AAAA,wBACAC,oCAAA;AAAA,0BACAC,sCAAA;AAAA,gCACAC,4CAAA;AAAA,yBACAC;AAAA,GACF;AAAA,EACA,QAAA,EAAU;AAAA,0BACRC,sCAAA;AAAA,iCACAC,6CAAA;AAAA,iBACAC,6BAAA;AAAA,wBACAC;AAAA,GACF;AAAA,EACA,IAAA,EAAM;AAAA,oBACJC,gCAAA;AAAA,0BACAC,sCAAA;AAAA,2BACAC;AAAA,GACF;AAAA,EACA,OAAA,EAAS;AAAA,uBACPC,mCAAA;AAAA,eACAC,2BAAA;AAAA,iBACAC,6BAAA;AAAA,kBACAC;AAAA;AAEJ","file":"index.cjs","sourcesContent":["/** Agent-level reference to tool config files by environment. */\nexport interface AgentToolConfigRef {\n ref?: string;\n development?: string;\n production?: string;\n}\n\nfunction asObject(input: unknown): Record<string, unknown> | undefined {\n return typeof input === \"object\" && input !== null ? (input as Record<string, unknown>) : undefined;\n}\n\n/** Normalize unknown value to AgentToolConfigRef. */\nexport function normalizeAgentToolConfigRef(raw: unknown): Partial<AgentToolConfigRef> {\n if (typeof raw === \"string\" && raw.trim().length > 0) return { ref: raw.trim() };\n const obj = asObject(raw);\n if (!obj) return {};\n\n const out: Partial<AgentToolConfigRef> = {};\n if (typeof obj.ref === \"string\" && obj.ref.trim().length > 0) out.ref = obj.ref.trim();\n if (typeof obj.development === \"string\" && obj.development.trim().length > 0) out.development = obj.development.trim();\n if (typeof obj.production === \"string\" && obj.production.trim().length > 0) out.production = obj.production.trim();\n return out;\n}\n","import { resolve } from \"node:path\";\nimport { deepMerge } from \"@easynet/agent-common\";\nimport { loadToolConfig, type ToolYamlShape } from \"../tools/util/toolConfig.js\";\n\nexport { normalizeAgentToolConfigRef } from \"./ref.js\";\nexport type { AgentToolConfigRef } from \"./ref.js\";\n\nexport interface LoadToolConfigOptions {\n configPath?: string;\n}\n\nexport interface CreateToolConfigOptions extends LoadToolConfigOptions {\n overrides?: Partial<ToolYamlShape>;\n}\n\nexport function loadToolRuntimeConfig(options: LoadToolConfigOptions = {}): ToolYamlShape {\n const configPath = resolve(options.configPath ?? \"config/tool.yaml\");\n return loadToolConfig(configPath);\n}\n\nexport function createToolConfig(options: CreateToolConfigOptions = {}): ToolYamlShape {\n const base = loadToolRuntimeConfig(options);\n if (!options.overrides) return base;\n return deepMerge({} as ToolYamlShape, base, options.overrides);\n}\n","/**\n * Minimal public API for @easynet/agent-tool.\n * Keep root exports focused on high-level runtime/server creation.\n */\n\n// High-level API (most users should import from @easynet/agent-tool/api)\nexport {\n createAgentTools,\n createLangChainToolsAsync,\n createOpenAPIServer,\n createMCPServer,\n runMCPServerOverStdio,\n createMCPStreamableHttpHandler,\n createMCPServerStreamableHttp,\n createRuntimeFromConfig,\n createRuntimeFromConfigSync,\n langchainApi,\n runtimeApi,\n mcpApi,\n openApi,\n} from \"./api/main.js\";\nexport type {\n CreateAgentToolsOptions,\n CreateRuntimeOptions,\n CreateRuntimeResult,\n MCPServerOptions,\n MCPServerResult,\n CreateMCPServerStreamableHttpOptions,\n MCPServerStreamableHttpResult,\n CreateHttpServiceOptions,\n HttpServiceResult,\n OpenAPIHttpServerOptions,\n} from \"./api/main.js\";\nexport type { AgentToolConfigRef } from \"./config/index.js\";\nexport {\n normalizeAgentToolConfigRef,\n loadToolRuntimeConfig,\n createToolConfig,\n} from \"./config/index.js\";\nexport type { LoadToolConfigOptions, CreateToolConfigOptions } from \"./config/index.js\";\n\n// Backward compatibility: older extensions import runtime helpers from package root.\nexport { createTaggedError, withRetry, isRetryable, ToolRegistry } from \"./core/runtime.js\";\n\nimport {\n initProject,\n buildMCPPackage,\n runMCPServer,\n scanForTools,\n scan,\n} from \"./build.js\";\nimport {\n createExtension,\n generateManifest,\n generateExtensionManifest,\n registerExtension,\n registerToolsFromManifest,\n loadExtensionManifest,\n loadToolYaml,\n resolveExtensionPackageRoot,\n overrideWithConfig,\n getGroupNamePrefixes,\n createDynamicImportAdapter,\n createContextRunner,\n} from \"./extension.js\";\nimport {\n resolveSandboxedPath,\n setSandboxValidationEnabled,\n validateUrl,\n isIpInBlockedCidrs,\n} from \"./security.js\";\nimport {\n createToolSpec,\n DEFAULT_INPUT_SCHEMA,\n DEFAULT_OUTPUT_SCHEMA,\n} from \"./core/index.js\";\nimport {\n createTaggedError,\n withRetry,\n isRetryable,\n ToolRegistry,\n} from \"./core/runtime.js\";\n\n/**\n * Facade: grouped utilities beyond runtime/server creation.\n */\nexport const platformApi = {\n build: {\n initProject,\n buildMCPPackage,\n runMCPServer,\n scanForTools,\n scan,\n },\n extension: {\n createExtension,\n generateManifest,\n generateExtensionManifest,\n registerExtension,\n registerToolsFromManifest,\n loadExtensionManifest,\n loadToolYaml,\n resolveExtensionPackageRoot,\n overrideWithConfig,\n getGroupNamePrefixes,\n createDynamicImportAdapter,\n createContextRunner,\n },\n security: {\n resolveSandboxedPath,\n setSandboxValidationEnabled,\n validateUrl,\n isIpInBlockedCidrs,\n },\n core: {\n createToolSpec,\n DEFAULT_INPUT_SCHEMA,\n DEFAULT_OUTPUT_SCHEMA,\n },\n runtime: {\n createTaggedError,\n withRetry,\n isRetryable,\n ToolRegistry,\n },\n} as const;\n"]}
1
+ {"version":3,"sources":["../src/config/ref.ts","../src/config/index.ts","../src/index.ts"],"names":["resolve","loadToolConfig","deepMerge","initProject","buildMCPPackage","runMCPServer","scanForTools","scan","createExtension","generateManifest","generateExtensionManifest","registerExtension","registerToolsFromManifest","loadExtensionManifest","loadToolYaml","resolveExtensionPackageRoot","overrideWithConfig","getGroupNamePrefixes","createDynamicImportAdapter","createContextRunner","resolveSandboxedPath","setSandboxValidationEnabled","validateUrl","isIpInBlockedCidrs","createToolSpec","DEFAULT_INPUT_SCHEMA","DEFAULT_OUTPUT_SCHEMA","createTaggedError","withRetry","isRetryable","ToolRegistry"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAOA,SAAS,SAAS,KAAA,EAAqD;AACrE,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,KAAU,OAAQ,KAAA,GAAoC,MAAA;AAC5F;AAGO,SAAS,4BAA4B,GAAA,EAA2C;AACrF,EAAA,IAAI,OAAO,GAAA,KAAQ,QAAA,IAAY,GAAA,CAAI,IAAA,EAAK,CAAE,MAAA,GAAS,CAAA,EAAG,OAAO,EAAE,GAAA,EAAK,GAAA,CAAI,MAAK,EAAE;AAC/E,EAAA,MAAM,GAAA,GAAM,SAAS,GAAG,CAAA;AACxB,EAAA,IAAI,CAAC,GAAA,EAAK,OAAO,EAAC;AAElB,EAAA,MAAM,MAAmC,EAAC;AAC1C,EAAA,IAAI,OAAO,GAAA,CAAI,GAAA,KAAQ,QAAA,IAAY,IAAI,GAAA,CAAI,IAAA,EAAK,CAAE,MAAA,GAAS,CAAA,EAAG,GAAA,CAAI,GAAA,GAAM,GAAA,CAAI,IAAI,IAAA,EAAK;AACrF,EAAA,IAAI,OAAO,GAAA,CAAI,WAAA,KAAgB,QAAA,IAAY,IAAI,WAAA,CAAY,IAAA,EAAK,CAAE,MAAA,GAAS,CAAA,EAAG,GAAA,CAAI,WAAA,GAAc,GAAA,CAAI,YAAY,IAAA,EAAK;AACrH,EAAA,IAAI,OAAO,GAAA,CAAI,UAAA,KAAe,QAAA,IAAY,IAAI,UAAA,CAAW,IAAA,EAAK,CAAE,MAAA,GAAS,CAAA,EAAG,GAAA,CAAI,UAAA,GAAa,GAAA,CAAI,WAAW,IAAA,EAAK;AACjH,EAAA,OAAO,GAAA;AACT;;;ACPO,SAAS,qBAAA,CAAsB,OAAA,GAAiC,EAAC,EAAkB;AACxF,EAAA,MAAM,UAAA,GAAaA,YAAA,CAAQ,OAAA,CAAQ,UAAA,IAAc,kBAAkB,CAAA;AACnE,EAAA,OAAOC,iCAAe,UAAU,CAAA;AAClC;AAEO,SAAS,gBAAA,CAAiB,OAAA,GAAmC,EAAC,EAAkB;AACrF,EAAA,MAAM,IAAA,GAAO,sBAAsB,OAAO,CAAA;AAC1C,EAAA,IAAI,CAAC,OAAA,CAAQ,SAAA,EAAW,OAAO,IAAA;AAC/B,EAAA,OAAOC,qBAAA,CAAU,EAAC,EAAoB,IAAA,EAAM,QAAQ,SAAS,CAAA;AAC/D;;;ACgEO,IAAM,WAAA,GAAc;AAAA,EACzB,KAAA,EAAO;AAAA,iBACLC,6BAAA;AAAA,qBACAC,iCAAA;AAAA,kBACAC,8BAAA;AAAA,kBACAC,8BAAA;AAAA,UACAC;AAAA,GACF;AAAA,EACA,SAAA,EAAW;AAAA,qBACTC,iCAAA;AAAA,sBACAC,kCAAA;AAAA,+BACAC,2CAAA;AAAA,uBACAC,mCAAA;AAAA,+BACAC,2CAAA;AAAA,2BACAC,uCAAA;AAAA,kBACAC,8BAAA;AAAA,iCACAC,6CAAA;AAAA,wBACAC,oCAAA;AAAA,0BACAC,sCAAA;AAAA,gCACAC,4CAAA;AAAA,yBACAC;AAAA,GACF;AAAA,EACA,QAAA,EAAU;AAAA,0BACRC,sCAAA;AAAA,iCACAC,6CAAA;AAAA,iBACAC,6BAAA;AAAA,wBACAC;AAAA,GACF;AAAA,EACA,IAAA,EAAM;AAAA,oBACJC,gCAAA;AAAA,0BACAC,sCAAA;AAAA,2BACAC;AAAA,GACF;AAAA,EACA,OAAA,EAAS;AAAA,uBACPC,mCAAA;AAAA,eACAC,2BAAA;AAAA,iBACAC,6BAAA;AAAA,kBACAC;AAAA;AAEJ","file":"index.cjs","sourcesContent":["/** Agent-level reference to tool config files by environment. */\nexport interface AgentToolConfigRef {\n ref?: string;\n development?: string;\n production?: string;\n}\n\nfunction asObject(input: unknown): Record<string, unknown> | undefined {\n return typeof input === \"object\" && input !== null ? (input as Record<string, unknown>) : undefined;\n}\n\n/** Normalize unknown value to AgentToolConfigRef. */\nexport function normalizeAgentToolConfigRef(raw: unknown): Partial<AgentToolConfigRef> {\n if (typeof raw === \"string\" && raw.trim().length > 0) return { ref: raw.trim() };\n const obj = asObject(raw);\n if (!obj) return {};\n\n const out: Partial<AgentToolConfigRef> = {};\n if (typeof obj.ref === \"string\" && obj.ref.trim().length > 0) out.ref = obj.ref.trim();\n if (typeof obj.development === \"string\" && obj.development.trim().length > 0) out.development = obj.development.trim();\n if (typeof obj.production === \"string\" && obj.production.trim().length > 0) out.production = obj.production.trim();\n return out;\n}\n","import { resolve } from \"node:path\";\nimport { deepMerge } from \"@easynet/agent-common\";\nimport { loadToolConfig, type ToolYamlShape } from \"../tools/util/toolConfig.js\";\n\nexport { normalizeAgentToolConfigRef } from \"./ref.js\";\nexport type { AgentToolConfigRef } from \"./ref.js\";\n\nexport interface LoadToolConfigOptions {\n configPath?: string;\n}\n\nexport interface CreateToolConfigOptions extends LoadToolConfigOptions {\n overrides?: Partial<ToolYamlShape>;\n}\n\nexport function loadToolRuntimeConfig(options: LoadToolConfigOptions = {}): ToolYamlShape {\n const configPath = resolve(options.configPath ?? \"config/tool.yaml\");\n return loadToolConfig(configPath);\n}\n\nexport function createToolConfig(options: CreateToolConfigOptions = {}): ToolYamlShape {\n const base = loadToolRuntimeConfig(options);\n if (!options.overrides) return base;\n return deepMerge({} as ToolYamlShape, base, options.overrides);\n}\n","/**\n * Minimal public API for @easynet/agent-tool.\n * Keep root exports focused on high-level runtime/server creation.\n */\n\n// High-level API (most users should import from @easynet/agent-tool/api)\nexport {\n createAgentTools,\n createAgentToolsRegistry,\n createLangChainToolsAsync,\n createOpenAPIServer,\n createMCPServer,\n runMCPServerOverStdio,\n createMCPStreamableHttpHandler,\n createMCPServerStreamableHttp,\n createRuntimeFromConfig,\n createRuntimeFromConfigSync,\n langchainApi,\n runtimeApi,\n mcpApi,\n openApi,\n} from \"./api/main.js\";\nexport type {\n CreateAgentToolsOptions,\n AgentToolsRegistry,\n CreateRuntimeOptions,\n CreateRuntimeResult,\n MCPServerOptions,\n MCPServerResult,\n CreateMCPServerStreamableHttpOptions,\n MCPServerStreamableHttpResult,\n CreateHttpServiceOptions,\n HttpServiceResult,\n OpenAPIHttpServerOptions,\n} from \"./api/main.js\";\nexport type { AgentToolConfigRef } from \"./config/index.js\";\nexport {\n normalizeAgentToolConfigRef,\n loadToolRuntimeConfig,\n createToolConfig,\n} from \"./config/index.js\";\nexport type { LoadToolConfigOptions, CreateToolConfigOptions } from \"./config/index.js\";\n\n// Backward compatibility: older extensions import runtime helpers from package root.\nexport { createTaggedError, withRetry, isRetryable, ToolRegistry } from \"./core/runtime.js\";\n\nimport {\n initProject,\n buildMCPPackage,\n runMCPServer,\n scanForTools,\n scan,\n} from \"./build.js\";\nimport {\n createExtension,\n generateManifest,\n generateExtensionManifest,\n registerExtension,\n registerToolsFromManifest,\n loadExtensionManifest,\n loadToolYaml,\n resolveExtensionPackageRoot,\n overrideWithConfig,\n getGroupNamePrefixes,\n createDynamicImportAdapter,\n createContextRunner,\n} from \"./extension.js\";\nimport {\n resolveSandboxedPath,\n setSandboxValidationEnabled,\n validateUrl,\n isIpInBlockedCidrs,\n} from \"./security.js\";\nimport {\n createToolSpec,\n DEFAULT_INPUT_SCHEMA,\n DEFAULT_OUTPUT_SCHEMA,\n} from \"./core/index.js\";\nimport {\n createTaggedError,\n withRetry,\n isRetryable,\n ToolRegistry,\n} from \"./core/runtime.js\";\n\n/**\n * Facade: grouped utilities beyond runtime/server creation.\n */\nexport const platformApi = {\n build: {\n initProject,\n buildMCPPackage,\n runMCPServer,\n scanForTools,\n scan,\n },\n extension: {\n createExtension,\n generateManifest,\n generateExtensionManifest,\n registerExtension,\n registerToolsFromManifest,\n loadExtensionManifest,\n loadToolYaml,\n resolveExtensionPackageRoot,\n overrideWithConfig,\n getGroupNamePrefixes,\n createDynamicImportAdapter,\n createContextRunner,\n },\n security: {\n resolveSandboxedPath,\n setSandboxValidationEnabled,\n validateUrl,\n isIpInBlockedCidrs,\n },\n core: {\n createToolSpec,\n DEFAULT_INPUT_SCHEMA,\n DEFAULT_OUTPUT_SCHEMA,\n },\n runtime: {\n createTaggedError,\n withRetry,\n isRetryable,\n ToolRegistry,\n },\n} as const;\n"]}
package/dist/index.d.ts CHANGED
@@ -2,8 +2,8 @@
2
2
  * Minimal public API for @easynet/agent-tool.
3
3
  * Keep root exports focused on high-level runtime/server creation.
4
4
  */
5
- export { createAgentTools, createLangChainToolsAsync, createOpenAPIServer, createMCPServer, runMCPServerOverStdio, createMCPStreamableHttpHandler, createMCPServerStreamableHttp, createRuntimeFromConfig, createRuntimeFromConfigSync, langchainApi, runtimeApi, mcpApi, openApi, } from "./api/main.js";
6
- export type { CreateAgentToolsOptions, CreateRuntimeOptions, CreateRuntimeResult, MCPServerOptions, MCPServerResult, CreateMCPServerStreamableHttpOptions, MCPServerStreamableHttpResult, CreateHttpServiceOptions, HttpServiceResult, OpenAPIHttpServerOptions, } from "./api/main.js";
5
+ export { createAgentTools, createAgentToolsRegistry, createLangChainToolsAsync, createOpenAPIServer, createMCPServer, runMCPServerOverStdio, createMCPStreamableHttpHandler, createMCPServerStreamableHttp, createRuntimeFromConfig, createRuntimeFromConfigSync, langchainApi, runtimeApi, mcpApi, openApi, } from "./api/main.js";
6
+ export type { CreateAgentToolsOptions, AgentToolsRegistry, CreateRuntimeOptions, CreateRuntimeResult, MCPServerOptions, MCPServerResult, CreateMCPServerStreamableHttpOptions, MCPServerStreamableHttpResult, CreateHttpServiceOptions, HttpServiceResult, OpenAPIHttpServerOptions, } from "./api/main.js";
7
7
  export type { AgentToolConfigRef } from "./config/index.js";
8
8
  export { normalizeAgentToolConfigRef, loadToolRuntimeConfig, createToolConfig, } from "./config/index.js";
9
9
  export type { LoadToolConfigOptions, CreateToolConfigOptions } from "./config/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,8BAA8B,EAC9B,6BAA6B,EAC7B,uBAAuB,EACvB,2BAA2B,EAC3B,YAAY,EACZ,UAAU,EACV,MAAM,EACN,OAAO,GACR,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,oCAAoC,EACpC,6BAA6B,EAC7B,wBAAwB,EACxB,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAGxF,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE5F,OAAO,EACL,WAAW,EACX,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,IAAI,EACL,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,yBAAyB,EACzB,iBAAiB,EACjB,yBAAyB,EACzB,qBAAqB,EACrB,YAAY,EACZ,2BAA2B,EAC3B,kBAAkB,EAClB,oBAAoB,EACpB,0BAA0B,EAC1B,mBAAmB,EACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,WAAW,EACX,kBAAkB,EACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,cAAc,EAGf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,YAAY,EACb,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuCd,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,yBAAyB,EACzB,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,8BAA8B,EAC9B,6BAA6B,EAC7B,uBAAuB,EACvB,2BAA2B,EAC3B,YAAY,EACZ,UAAU,EACV,MAAM,EACN,OAAO,GACR,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,uBAAuB,EACvB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,oCAAoC,EACpC,6BAA6B,EAC7B,wBAAwB,EACxB,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAGxF,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE5F,OAAO,EACL,WAAW,EACX,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,IAAI,EACL,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,yBAAyB,EACzB,iBAAiB,EACjB,yBAAyB,EACzB,qBAAqB,EACrB,YAAY,EACZ,2BAA2B,EAC3B,kBAAkB,EAClB,oBAAoB,EACpB,0BAA0B,EAC1B,mBAAmB,EACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,WAAW,EACX,kBAAkB,EACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,cAAc,EAGf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,YAAY,EACb,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuCd,CAAC"}
package/dist/index.js CHANGED
@@ -1,12 +1,12 @@
1
1
  import './chunk-FWWN4D2F.js';
2
2
  import { createContextRunner, createDynamicImportAdapter, getGroupNamePrefixes, overrideWithConfig, resolveExtensionPackageRoot, loadToolYaml, loadExtensionManifest, registerToolsFromManifest, registerExtension, generateExtensionManifest, generateManifest, createExtension } from './chunk-GSOJCOKN.js';
3
3
  import { isIpInBlockedCidrs, validateUrl } from './chunk-NKYFYALQ.js';
4
- export { createAgentTools, createLangChainToolsAsync, langchainApi, mcpApi, openApi, runtimeApi } from './chunk-4YLATI7J.js';
4
+ export { createAgentTools, createAgentToolsRegistry, createLangChainToolsAsync, langchainApi, mcpApi, openApi, runtimeApi } from './chunk-ECHW6AWF.js';
5
5
  import './chunk-YLWTSNTT.js';
6
6
  import './chunk-DEDDPMBU.js';
7
7
  import { runMCPServer, buildMCPPackage, initProject } from './chunk-VYULM6NC.js';
8
- import { loadToolConfig } from './chunk-EHXA64OA.js';
9
- export { createMCPServer, createMCPServerStreamableHttp, createMCPStreamableHttpHandler, createHttpService as createOpenAPIServer, createRuntimeFromConfig, createRuntimeFromConfigSync, runMCPServerOverStdio } from './chunk-EHXA64OA.js';
8
+ import { loadToolConfig } from './chunk-JYADGZQP.js';
9
+ export { createMCPServer, createMCPServerStreamableHttp, createMCPStreamableHttpHandler, createHttpService as createOpenAPIServer, createRuntimeFromConfig, createRuntimeFromConfigSync, runMCPServerOverStdio } from './chunk-JYADGZQP.js';
10
10
  import './chunk-NTWOVFEY.js';
11
11
  import './chunk-Q6W32HAP.js';
12
12
  import { scan, scanForTools } from './chunk-HEVWKBBQ.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/config/ref.ts","../src/config/index.ts","../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAOA,SAAS,SAAS,KAAA,EAAqD;AACrE,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,KAAU,OAAQ,KAAA,GAAoC,MAAA;AAC5F;AAGO,SAAS,4BAA4B,GAAA,EAA2C;AACrF,EAAA,IAAI,OAAO,GAAA,KAAQ,QAAA,IAAY,GAAA,CAAI,IAAA,EAAK,CAAE,MAAA,GAAS,CAAA,EAAG,OAAO,EAAE,GAAA,EAAK,GAAA,CAAI,MAAK,EAAE;AAC/E,EAAA,MAAM,GAAA,GAAM,SAAS,GAAG,CAAA;AACxB,EAAA,IAAI,CAAC,GAAA,EAAK,OAAO,EAAC;AAElB,EAAA,MAAM,MAAmC,EAAC;AAC1C,EAAA,IAAI,OAAO,GAAA,CAAI,GAAA,KAAQ,QAAA,IAAY,IAAI,GAAA,CAAI,IAAA,EAAK,CAAE,MAAA,GAAS,CAAA,EAAG,GAAA,CAAI,GAAA,GAAM,GAAA,CAAI,IAAI,IAAA,EAAK;AACrF,EAAA,IAAI,OAAO,GAAA,CAAI,WAAA,KAAgB,QAAA,IAAY,IAAI,WAAA,CAAY,IAAA,EAAK,CAAE,MAAA,GAAS,CAAA,EAAG,GAAA,CAAI,WAAA,GAAc,GAAA,CAAI,YAAY,IAAA,EAAK;AACrH,EAAA,IAAI,OAAO,GAAA,CAAI,UAAA,KAAe,QAAA,IAAY,IAAI,UAAA,CAAW,IAAA,EAAK,CAAE,MAAA,GAAS,CAAA,EAAG,GAAA,CAAI,UAAA,GAAa,GAAA,CAAI,WAAW,IAAA,EAAK;AACjH,EAAA,OAAO,GAAA;AACT;;;ACPO,SAAS,qBAAA,CAAsB,OAAA,GAAiC,EAAC,EAAkB;AACxF,EAAA,MAAM,UAAA,GAAa,OAAA,CAAQ,OAAA,CAAQ,UAAA,IAAc,kBAAkB,CAAA;AACnE,EAAA,OAAO,eAAe,UAAU,CAAA;AAClC;AAEO,SAAS,gBAAA,CAAiB,OAAA,GAAmC,EAAC,EAAkB;AACrF,EAAA,MAAM,IAAA,GAAO,sBAAsB,OAAO,CAAA;AAC1C,EAAA,IAAI,CAAC,OAAA,CAAQ,SAAA,EAAW,OAAO,IAAA;AAC/B,EAAA,OAAO,SAAA,CAAU,EAAC,EAAoB,IAAA,EAAM,QAAQ,SAAS,CAAA;AAC/D;;;AC8DO,IAAM,WAAA,GAAc;AAAA,EACzB,KAAA,EAAO;AAAA,IACL,WAAA;AAAA,IACA,eAAA;AAAA,IACA,YAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,SAAA,EAAW;AAAA,IACT,eAAA;AAAA,IACA,gBAAA;AAAA,IACA,yBAAA;AAAA,IACA,iBAAA;AAAA,IACA,yBAAA;AAAA,IACA,qBAAA;AAAA,IACA,YAAA;AAAA,IACA,2BAAA;AAAA,IACA,kBAAA;AAAA,IACA,oBAAA;AAAA,IACA,0BAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,QAAA,EAAU;AAAA,IACR,oBAAA;AAAA,IACA,2BAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,cAAA;AAAA,IACA,oBAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,OAAA,EAAS;AAAA,IACP,iBAAA;AAAA,IACA,SAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA;AAEJ","file":"index.js","sourcesContent":["/** Agent-level reference to tool config files by environment. */\nexport interface AgentToolConfigRef {\n ref?: string;\n development?: string;\n production?: string;\n}\n\nfunction asObject(input: unknown): Record<string, unknown> | undefined {\n return typeof input === \"object\" && input !== null ? (input as Record<string, unknown>) : undefined;\n}\n\n/** Normalize unknown value to AgentToolConfigRef. */\nexport function normalizeAgentToolConfigRef(raw: unknown): Partial<AgentToolConfigRef> {\n if (typeof raw === \"string\" && raw.trim().length > 0) return { ref: raw.trim() };\n const obj = asObject(raw);\n if (!obj) return {};\n\n const out: Partial<AgentToolConfigRef> = {};\n if (typeof obj.ref === \"string\" && obj.ref.trim().length > 0) out.ref = obj.ref.trim();\n if (typeof obj.development === \"string\" && obj.development.trim().length > 0) out.development = obj.development.trim();\n if (typeof obj.production === \"string\" && obj.production.trim().length > 0) out.production = obj.production.trim();\n return out;\n}\n","import { resolve } from \"node:path\";\nimport { deepMerge } from \"@easynet/agent-common\";\nimport { loadToolConfig, type ToolYamlShape } from \"../tools/util/toolConfig.js\";\n\nexport { normalizeAgentToolConfigRef } from \"./ref.js\";\nexport type { AgentToolConfigRef } from \"./ref.js\";\n\nexport interface LoadToolConfigOptions {\n configPath?: string;\n}\n\nexport interface CreateToolConfigOptions extends LoadToolConfigOptions {\n overrides?: Partial<ToolYamlShape>;\n}\n\nexport function loadToolRuntimeConfig(options: LoadToolConfigOptions = {}): ToolYamlShape {\n const configPath = resolve(options.configPath ?? \"config/tool.yaml\");\n return loadToolConfig(configPath);\n}\n\nexport function createToolConfig(options: CreateToolConfigOptions = {}): ToolYamlShape {\n const base = loadToolRuntimeConfig(options);\n if (!options.overrides) return base;\n return deepMerge({} as ToolYamlShape, base, options.overrides);\n}\n","/**\n * Minimal public API for @easynet/agent-tool.\n * Keep root exports focused on high-level runtime/server creation.\n */\n\n// High-level API (most users should import from @easynet/agent-tool/api)\nexport {\n createAgentTools,\n createLangChainToolsAsync,\n createOpenAPIServer,\n createMCPServer,\n runMCPServerOverStdio,\n createMCPStreamableHttpHandler,\n createMCPServerStreamableHttp,\n createRuntimeFromConfig,\n createRuntimeFromConfigSync,\n langchainApi,\n runtimeApi,\n mcpApi,\n openApi,\n} from \"./api/main.js\";\nexport type {\n CreateAgentToolsOptions,\n CreateRuntimeOptions,\n CreateRuntimeResult,\n MCPServerOptions,\n MCPServerResult,\n CreateMCPServerStreamableHttpOptions,\n MCPServerStreamableHttpResult,\n CreateHttpServiceOptions,\n HttpServiceResult,\n OpenAPIHttpServerOptions,\n} from \"./api/main.js\";\nexport type { AgentToolConfigRef } from \"./config/index.js\";\nexport {\n normalizeAgentToolConfigRef,\n loadToolRuntimeConfig,\n createToolConfig,\n} from \"./config/index.js\";\nexport type { LoadToolConfigOptions, CreateToolConfigOptions } from \"./config/index.js\";\n\n// Backward compatibility: older extensions import runtime helpers from package root.\nexport { createTaggedError, withRetry, isRetryable, ToolRegistry } from \"./core/runtime.js\";\n\nimport {\n initProject,\n buildMCPPackage,\n runMCPServer,\n scanForTools,\n scan,\n} from \"./build.js\";\nimport {\n createExtension,\n generateManifest,\n generateExtensionManifest,\n registerExtension,\n registerToolsFromManifest,\n loadExtensionManifest,\n loadToolYaml,\n resolveExtensionPackageRoot,\n overrideWithConfig,\n getGroupNamePrefixes,\n createDynamicImportAdapter,\n createContextRunner,\n} from \"./extension.js\";\nimport {\n resolveSandboxedPath,\n setSandboxValidationEnabled,\n validateUrl,\n isIpInBlockedCidrs,\n} from \"./security.js\";\nimport {\n createToolSpec,\n DEFAULT_INPUT_SCHEMA,\n DEFAULT_OUTPUT_SCHEMA,\n} from \"./core/index.js\";\nimport {\n createTaggedError,\n withRetry,\n isRetryable,\n ToolRegistry,\n} from \"./core/runtime.js\";\n\n/**\n * Facade: grouped utilities beyond runtime/server creation.\n */\nexport const platformApi = {\n build: {\n initProject,\n buildMCPPackage,\n runMCPServer,\n scanForTools,\n scan,\n },\n extension: {\n createExtension,\n generateManifest,\n generateExtensionManifest,\n registerExtension,\n registerToolsFromManifest,\n loadExtensionManifest,\n loadToolYaml,\n resolveExtensionPackageRoot,\n overrideWithConfig,\n getGroupNamePrefixes,\n createDynamicImportAdapter,\n createContextRunner,\n },\n security: {\n resolveSandboxedPath,\n setSandboxValidationEnabled,\n validateUrl,\n isIpInBlockedCidrs,\n },\n core: {\n createToolSpec,\n DEFAULT_INPUT_SCHEMA,\n DEFAULT_OUTPUT_SCHEMA,\n },\n runtime: {\n createTaggedError,\n withRetry,\n isRetryable,\n ToolRegistry,\n },\n} as const;\n"]}
1
+ {"version":3,"sources":["../src/config/ref.ts","../src/config/index.ts","../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAOA,SAAS,SAAS,KAAA,EAAqD;AACrE,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,KAAU,OAAQ,KAAA,GAAoC,MAAA;AAC5F;AAGO,SAAS,4BAA4B,GAAA,EAA2C;AACrF,EAAA,IAAI,OAAO,GAAA,KAAQ,QAAA,IAAY,GAAA,CAAI,IAAA,EAAK,CAAE,MAAA,GAAS,CAAA,EAAG,OAAO,EAAE,GAAA,EAAK,GAAA,CAAI,MAAK,EAAE;AAC/E,EAAA,MAAM,GAAA,GAAM,SAAS,GAAG,CAAA;AACxB,EAAA,IAAI,CAAC,GAAA,EAAK,OAAO,EAAC;AAElB,EAAA,MAAM,MAAmC,EAAC;AAC1C,EAAA,IAAI,OAAO,GAAA,CAAI,GAAA,KAAQ,QAAA,IAAY,IAAI,GAAA,CAAI,IAAA,EAAK,CAAE,MAAA,GAAS,CAAA,EAAG,GAAA,CAAI,GAAA,GAAM,GAAA,CAAI,IAAI,IAAA,EAAK;AACrF,EAAA,IAAI,OAAO,GAAA,CAAI,WAAA,KAAgB,QAAA,IAAY,IAAI,WAAA,CAAY,IAAA,EAAK,CAAE,MAAA,GAAS,CAAA,EAAG,GAAA,CAAI,WAAA,GAAc,GAAA,CAAI,YAAY,IAAA,EAAK;AACrH,EAAA,IAAI,OAAO,GAAA,CAAI,UAAA,KAAe,QAAA,IAAY,IAAI,UAAA,CAAW,IAAA,EAAK,CAAE,MAAA,GAAS,CAAA,EAAG,GAAA,CAAI,UAAA,GAAa,GAAA,CAAI,WAAW,IAAA,EAAK;AACjH,EAAA,OAAO,GAAA;AACT;;;ACPO,SAAS,qBAAA,CAAsB,OAAA,GAAiC,EAAC,EAAkB;AACxF,EAAA,MAAM,UAAA,GAAa,OAAA,CAAQ,OAAA,CAAQ,UAAA,IAAc,kBAAkB,CAAA;AACnE,EAAA,OAAO,eAAe,UAAU,CAAA;AAClC;AAEO,SAAS,gBAAA,CAAiB,OAAA,GAAmC,EAAC,EAAkB;AACrF,EAAA,MAAM,IAAA,GAAO,sBAAsB,OAAO,CAAA;AAC1C,EAAA,IAAI,CAAC,OAAA,CAAQ,SAAA,EAAW,OAAO,IAAA;AAC/B,EAAA,OAAO,SAAA,CAAU,EAAC,EAAoB,IAAA,EAAM,QAAQ,SAAS,CAAA;AAC/D;;;ACgEO,IAAM,WAAA,GAAc;AAAA,EACzB,KAAA,EAAO;AAAA,IACL,WAAA;AAAA,IACA,eAAA;AAAA,IACA,YAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,SAAA,EAAW;AAAA,IACT,eAAA;AAAA,IACA,gBAAA;AAAA,IACA,yBAAA;AAAA,IACA,iBAAA;AAAA,IACA,yBAAA;AAAA,IACA,qBAAA;AAAA,IACA,YAAA;AAAA,IACA,2BAAA;AAAA,IACA,kBAAA;AAAA,IACA,oBAAA;AAAA,IACA,0BAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,QAAA,EAAU;AAAA,IACR,oBAAA;AAAA,IACA,2BAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,cAAA;AAAA,IACA,oBAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,OAAA,EAAS;AAAA,IACP,iBAAA;AAAA,IACA,SAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA;AAEJ","file":"index.js","sourcesContent":["/** Agent-level reference to tool config files by environment. */\nexport interface AgentToolConfigRef {\n ref?: string;\n development?: string;\n production?: string;\n}\n\nfunction asObject(input: unknown): Record<string, unknown> | undefined {\n return typeof input === \"object\" && input !== null ? (input as Record<string, unknown>) : undefined;\n}\n\n/** Normalize unknown value to AgentToolConfigRef. */\nexport function normalizeAgentToolConfigRef(raw: unknown): Partial<AgentToolConfigRef> {\n if (typeof raw === \"string\" && raw.trim().length > 0) return { ref: raw.trim() };\n const obj = asObject(raw);\n if (!obj) return {};\n\n const out: Partial<AgentToolConfigRef> = {};\n if (typeof obj.ref === \"string\" && obj.ref.trim().length > 0) out.ref = obj.ref.trim();\n if (typeof obj.development === \"string\" && obj.development.trim().length > 0) out.development = obj.development.trim();\n if (typeof obj.production === \"string\" && obj.production.trim().length > 0) out.production = obj.production.trim();\n return out;\n}\n","import { resolve } from \"node:path\";\nimport { deepMerge } from \"@easynet/agent-common\";\nimport { loadToolConfig, type ToolYamlShape } from \"../tools/util/toolConfig.js\";\n\nexport { normalizeAgentToolConfigRef } from \"./ref.js\";\nexport type { AgentToolConfigRef } from \"./ref.js\";\n\nexport interface LoadToolConfigOptions {\n configPath?: string;\n}\n\nexport interface CreateToolConfigOptions extends LoadToolConfigOptions {\n overrides?: Partial<ToolYamlShape>;\n}\n\nexport function loadToolRuntimeConfig(options: LoadToolConfigOptions = {}): ToolYamlShape {\n const configPath = resolve(options.configPath ?? \"config/tool.yaml\");\n return loadToolConfig(configPath);\n}\n\nexport function createToolConfig(options: CreateToolConfigOptions = {}): ToolYamlShape {\n const base = loadToolRuntimeConfig(options);\n if (!options.overrides) return base;\n return deepMerge({} as ToolYamlShape, base, options.overrides);\n}\n","/**\n * Minimal public API for @easynet/agent-tool.\n * Keep root exports focused on high-level runtime/server creation.\n */\n\n// High-level API (most users should import from @easynet/agent-tool/api)\nexport {\n createAgentTools,\n createAgentToolsRegistry,\n createLangChainToolsAsync,\n createOpenAPIServer,\n createMCPServer,\n runMCPServerOverStdio,\n createMCPStreamableHttpHandler,\n createMCPServerStreamableHttp,\n createRuntimeFromConfig,\n createRuntimeFromConfigSync,\n langchainApi,\n runtimeApi,\n mcpApi,\n openApi,\n} from \"./api/main.js\";\nexport type {\n CreateAgentToolsOptions,\n AgentToolsRegistry,\n CreateRuntimeOptions,\n CreateRuntimeResult,\n MCPServerOptions,\n MCPServerResult,\n CreateMCPServerStreamableHttpOptions,\n MCPServerStreamableHttpResult,\n CreateHttpServiceOptions,\n HttpServiceResult,\n OpenAPIHttpServerOptions,\n} from \"./api/main.js\";\nexport type { AgentToolConfigRef } from \"./config/index.js\";\nexport {\n normalizeAgentToolConfigRef,\n loadToolRuntimeConfig,\n createToolConfig,\n} from \"./config/index.js\";\nexport type { LoadToolConfigOptions, CreateToolConfigOptions } from \"./config/index.js\";\n\n// Backward compatibility: older extensions import runtime helpers from package root.\nexport { createTaggedError, withRetry, isRetryable, ToolRegistry } from \"./core/runtime.js\";\n\nimport {\n initProject,\n buildMCPPackage,\n runMCPServer,\n scanForTools,\n scan,\n} from \"./build.js\";\nimport {\n createExtension,\n generateManifest,\n generateExtensionManifest,\n registerExtension,\n registerToolsFromManifest,\n loadExtensionManifest,\n loadToolYaml,\n resolveExtensionPackageRoot,\n overrideWithConfig,\n getGroupNamePrefixes,\n createDynamicImportAdapter,\n createContextRunner,\n} from \"./extension.js\";\nimport {\n resolveSandboxedPath,\n setSandboxValidationEnabled,\n validateUrl,\n isIpInBlockedCidrs,\n} from \"./security.js\";\nimport {\n createToolSpec,\n DEFAULT_INPUT_SCHEMA,\n DEFAULT_OUTPUT_SCHEMA,\n} from \"./core/index.js\";\nimport {\n createTaggedError,\n withRetry,\n isRetryable,\n ToolRegistry,\n} from \"./core/runtime.js\";\n\n/**\n * Facade: grouped utilities beyond runtime/server creation.\n */\nexport const platformApi = {\n build: {\n initProject,\n buildMCPPackage,\n runMCPServer,\n scanForTools,\n scan,\n },\n extension: {\n createExtension,\n generateManifest,\n generateExtensionManifest,\n registerExtension,\n registerToolsFromManifest,\n loadExtensionManifest,\n loadToolYaml,\n resolveExtensionPackageRoot,\n overrideWithConfig,\n getGroupNamePrefixes,\n createDynamicImportAdapter,\n createContextRunner,\n },\n security: {\n resolveSandboxedPath,\n setSandboxValidationEnabled,\n validateUrl,\n isIpInBlockedCidrs,\n },\n core: {\n createToolSpec,\n DEFAULT_INPUT_SCHEMA,\n DEFAULT_OUTPUT_SCHEMA,\n },\n runtime: {\n createTaggedError,\n withRetry,\n isRetryable,\n ToolRegistry,\n },\n} as const;\n"]}
@@ -2,7 +2,7 @@
2
2
  'use strict';
3
3
 
4
4
  var chunkTBDSFXNG_cjs = require('../../chunk-TBDSFXNG.cjs');
5
- var chunkQVXWW657_cjs = require('../../chunk-QVXWW657.cjs');
5
+ var chunkSE6IMOIE_cjs = require('../../chunk-SE6IMOIE.cjs');
6
6
  var chunkUUNG3GL3_cjs = require('../../chunk-UUNG3GL3.cjs');
7
7
  require('../../chunk-33N4Y6IS.cjs');
8
8
  require('../../chunk-LHKEJNKL.cjs');
@@ -274,10 +274,10 @@ async function getRuntimeWithTools(pathOpt, verbose = false) {
274
274
  const stepLog = verbose ? (msg) => process.stderr.write(`[agent-tool] ${msg}
275
275
  `) : void 0;
276
276
  if (stepLog) stepLog(`Loading tool config from ${searchDir}`);
277
- const config = chunkQVXWW657_cjs.findAndLoadToolConfig(searchDir);
277
+ const config = chunkSE6IMOIE_cjs.findAndLoadToolConfig(searchDir);
278
278
  let sandboxRoot = cwd;
279
279
  if (config.sandboxedPath && typeof config.sandboxedPath === "string" && config.configPath) {
280
- sandboxRoot = chunkQVXWW657_cjs.resolveSandboxedPath(config.configPath, config.sandboxedPath);
280
+ sandboxRoot = chunkSE6IMOIE_cjs.resolveSandboxedPath(config.configPath, config.sandboxedPath);
281
281
  }
282
282
  if (stepLog) {
283
283
  if (config.configPath) {
@@ -292,7 +292,7 @@ async function getRuntimeWithTools(pathOpt, verbose = false) {
292
292
  enableSandboxValidation: config.enableSandboxValidation ?? DEFAULT_CORE_CONFIG.enableSandboxValidation,
293
293
  allowedHosts: []
294
294
  };
295
- const result = await chunkQVXWW657_cjs.createRuntimeFromConfig({
295
+ const result = await chunkSE6IMOIE_cjs.createRuntimeFromConfig({
296
296
  coreTools: coreConfig,
297
297
  configFilePath: config.configPath,
298
298
  stepLog
@@ -456,7 +456,7 @@ var LS_DESC_MAX = 72;
456
456
  function formatLsOutput(specs) {
457
457
  const rows = specs.map((spec) => {
458
458
  const { name } = parseToolName(spec.name);
459
- const scope = chunkQVXWW657_cjs.getDisplayScope(spec.name, spec.kind, spec.version);
459
+ const scope = chunkSE6IMOIE_cjs.getDisplayScope(spec.name, spec.kind, spec.version);
460
460
  const desc = (spec.description ?? "").replace(/\n/g, " ").trim().slice(0, LS_DESC_MAX);
461
461
  return { scope, name, description: desc || "(no description)" };
462
462
  });
@@ -483,7 +483,7 @@ function formatLsOutput(specs) {
483
483
  }
484
484
  function formatDescribeOutput(spec) {
485
485
  const { name: localName } = parseToolName(spec.name);
486
- const scope = chunkQVXWW657_cjs.getDisplayScope(spec.name, spec.kind, spec.version);
486
+ const scope = chunkSE6IMOIE_cjs.getDisplayScope(spec.name, spec.kind, spec.version);
487
487
  const sections = [];
488
488
  sections.push("\u250C\u2500 Tool");
489
489
  sections.push(`\u2502 name: ${spec.name}`);
@@ -519,7 +519,7 @@ async function cmdLs(pathOpt, verbose = false) {
519
519
  process.stdout.write("No tools registered.\n");
520
520
  const cwd = process.cwd();
521
521
  const searchDir = path2__namespace.default.resolve(cwd, pathOpt ?? ".");
522
- const config = chunkQVXWW657_cjs.findAndLoadToolConfig(searchDir);
522
+ const config = chunkSE6IMOIE_cjs.findAndLoadToolConfig(searchDir);
523
523
  const hasNpmTools = Array.isArray(config.tools) && config.tools.some((t) => typeof t === "string" && t.startsWith("npm:"));
524
524
  if (hasNpmTools) {
525
525
  process.stdout.write(
@@ -544,7 +544,7 @@ async function cmdDescribe(toolName, pathOpt, verbose = false) {
544
544
  }
545
545
  try {
546
546
  const { registry } = await getRuntimeWithTools(pathOpt, verbose);
547
- const registryName = chunkQVXWW657_cjs.resolveToolDescriptor(toolName.trim());
547
+ const registryName = chunkSE6IMOIE_cjs.resolveToolDescriptor(toolName.trim());
548
548
  const spec = registry.get(registryName);
549
549
  if (!spec) {
550
550
  process.stderr.write(`Tool not found: ${toolName}
@@ -593,7 +593,7 @@ async function cmdRun(toolName, toolArgsJson, pathOpt, verbose = false) {
593
593
  }
594
594
  try {
595
595
  const { runtime, registry } = await getRuntimeWithTools(pathOpt, verbose);
596
- const registryName = chunkQVXWW657_cjs.resolveToolDescriptor(toolName.trim());
596
+ const registryName = chunkSE6IMOIE_cjs.resolveToolDescriptor(toolName.trim());
597
597
  if (!registry.get(registryName)) {
598
598
  process.stderr.write(`Tool not found: ${toolName}
599
599
  `);
@@ -621,10 +621,10 @@ async function cmdStartMcp(pathOpt, verbose = false, stdio = false, port = 3e3,
621
621
  try {
622
622
  const { runtime } = await getRuntimeWithTools(pathOpt, verbose);
623
623
  if (stdio) {
624
- await chunkQVXWW657_cjs.runMCPServerOverStdio(runtime);
624
+ await chunkSE6IMOIE_cjs.runMCPServerOverStdio(runtime);
625
625
  return 0;
626
626
  }
627
- const streamable = await chunkQVXWW657_cjs.createMCPServerStreamableHttp(runtime, { port, host, path: "/mcp" });
627
+ const streamable = await chunkSE6IMOIE_cjs.createMCPServerStreamableHttp(runtime, { port, host, path: "/mcp" });
628
628
  const { url, port: actualPort } = await streamable.listen(port, host);
629
629
  process.stdout.write(`MCP Streamable HTTP: ${url}
630
630
  `);
@@ -640,7 +640,7 @@ async function cmdStartMcp(pathOpt, verbose = false, stdio = false, port = 3e3,
640
640
  async function cmdStartHttp(port, host, pathOpt, verbose = false) {
641
641
  try {
642
642
  const { runtime } = await getRuntimeWithTools(pathOpt, verbose);
643
- const http = await chunkQVXWW657_cjs.createHttpService(runtime);
643
+ const http = await chunkSE6IMOIE_cjs.createHttpService(runtime);
644
644
  const { port: actualPort, host: actualHost } = await http.listen({ port, host });
645
645
  const base = `http://${actualHost}:${actualPort}`;
646
646
  process.stdout.write(`API: ${base}/invoke (POST), ${base}/tools (GET)
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { initProject, buildMCPPackage, runMCPServer } from '../../chunk-VYULM6NC.js';
3
- import { findAndLoadToolConfig, resolveToolDescriptor, runMCPServerOverStdio, createMCPServerStreamableHttp, createHttpService, resolveSandboxedPath, createRuntimeFromConfig, getDisplayScope } from '../../chunk-EHXA64OA.js';
3
+ import { findAndLoadToolConfig, resolveToolDescriptor, runMCPServerOverStdio, createMCPServerStreamableHttp, createHttpService, resolveSandboxedPath, createRuntimeFromConfig, getDisplayScope } from '../../chunk-JYADGZQP.js';
4
4
  import { enrichSpecWithCanonicalSchema } from '../../chunk-NTWOVFEY.js';
5
5
  import '../../chunk-Q6W32HAP.js';
6
6
  import '../../chunk-HEVWKBBQ.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@easynet/agent-tool",
3
- "version": "1.0.73",
3
+ "version": "1.0.74",
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",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/api/adapters/LangChainToolsHub.ts","../src/api/createAgentTools.ts","../src/api/main.ts"],"names":[],"mappings":"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","file":"chunk-4YLATI7J.js","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 { ToolResult } from \"../../core/types/ToolResult.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 * If inputSchema wraps all params in a single \"args\" object (manifest convention),\n * returns that inner args schema; otherwise returns null.\n */\nfunction getArgsSchemaIfWrapped(inputSchema: object): Record<string, unknown> | null {\n const s = inputSchema as Record<string, unknown>;\n if (s?.type !== \"object\" || !s.properties || typeof s.properties !== \"object\") return null;\n const args = (s.properties as Record<string, unknown>).args;\n if (\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 return args as Record<string, unknown>;\n }\n return null;\n}\n\n/**\n * True when inputSchema wraps all params in a single \"args\" object (manifest convention).\n */\nfunction hasArgsWrapper(inputSchema: object): boolean {\n return getArgsSchemaIfWrapped(inputSchema) !== null;\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 wrapped = getArgsSchemaIfWrapped(inputSchema);\n if (wrapped !== null) return wrapped;\n return inputSchema as Record<string, unknown>;\n}\n\nfunction buildIntent(\n toolName: string,\n inputSchema: object,\n args: Record<string, unknown>,\n): ToolIntent {\n return {\n tool: toolName,\n args: hasArgsWrapper(inputSchema) ? { args } : args,\n purpose: LANGCHAIN_KIND,\n };\n}\n\nfunction normalizeArgs(args: Record<string, unknown> | undefined): Record<string, unknown> {\n return stripNullishObjectFields(args ?? {}) as Record<string, unknown>;\n}\n\nfunction serializeToolResult(result: ToolResult): string {\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\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 normalizedArgs = normalizeArgs(args);\n const intent = buildIntent(spec.name, enriched.inputSchema, normalizedArgs);\n const ctx = ctxFactory();\n const result = await runtime.invoke(intent, ctx);\n return serializeToolResult(result);\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","/**\n * Public API: three create functions (config-driven) + runtime.\n *\n * 1. createLangChainTools(config?) → LangChain tools (createReactAgent / AgentExecutor)\n * 2. createMCPServer(runtime | config, options?) → MCP server (stdio, Cursor / Claude)\n * 3. createOpenAPIServer(runtime | config, options?) → HTTP + OpenAPI/Swagger (GET /tools, POST /invoke)\n *\n * All tool invokes go through PTC Intent (runtime.invoke(intent, ctx)) for policy, budget, observability.\n * Use createRuntimeFromConfig(config) when you need the runtime for multiple servers.\n */\n\nexport { createAgentTools, createLangChainToolsAsync } from \"./createAgentTools.js\";\nexport type { CreateAgentToolsOptions } from \"./createAgentTools.js\";\n\nexport { createHttpService } from \"./expose/openapiHttp.js\";\nexport type {\n CreateHttpServiceOptions,\n HttpServiceResult,\n OpenAPIHttpServerOptions,\n} from \"./expose/openapiHttp.js\";\n/** Alias: OpenAPI server with Swagger support */\nexport { createHttpService as createOpenAPIServer } from \"./expose/openapiHttp.js\";\n\nexport {\n createMCPServer,\n runMCPServerOverStdio,\n createMCPStreamableHttpHandler,\n createMCPServerStreamableHttp,\n} from \"./expose/mcpServer.js\";\nexport type {\n MCPServerOptions,\n MCPServerResult,\n MCPStreamableHttpHandler,\n MCPServerStreamableHttpResult,\n CreateMCPServerStreamableHttpOptions,\n} from \"./expose/mcpServer.js\";\n\nexport { createRuntimeFromConfig, createRuntimeFromConfigSync } from \"./runtimeFromConfig.js\";\nexport type { CreateRuntimeOptions, CreateRuntimeResult } from \"./runtimeFromConfig.js\";\n\nexport { PTCRuntime } from \"../core/runtime/PTCRuntime.js\";\nexport type { PTCRuntimeConfig } from \"../core/runtime/PTCRuntime.js\";\n\nimport { createAgentTools, createLangChainToolsAsync } from \"./createAgentTools.js\";\nimport { createHttpService } from \"./expose/openapiHttp.js\";\nimport {\n createMCPServer,\n runMCPServerOverStdio,\n createMCPStreamableHttpHandler,\n createMCPServerStreamableHttp,\n} from \"./expose/mcpServer.js\";\nimport { createRuntimeFromConfig, createRuntimeFromConfigSync } from \"./runtimeFromConfig.js\";\n\n/**\n * Facade: grouped API for lower import complexity in callers.\n */\nexport const langchainApi = {\n createAgentTools,\n createLangChainToolsAsync,\n} as const;\n\n/**\n * Facade: grouped runtime creation helpers.\n */\nexport const runtimeApi = {\n createRuntimeFromConfig,\n createRuntimeFromConfigSync,\n} as const;\n\n/**\n * Facade: grouped MCP server helpers.\n */\nexport const mcpApi = {\n createMCPServer,\n runMCPServerOverStdio,\n createMCPStreamableHttpHandler,\n createMCPServerStreamableHttp,\n} as const;\n\n/**\n * Facade: grouped OpenAPI/HTTP helpers.\n */\nexport const openApi = {\n createOpenAPIServer: createHttpService,\n createHttpService,\n} as const;\n"]}