@easynet/agent-tool 1.0.85 → 1.0.87
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/README.md +1 -0
- package/dist/api/register-tools.d.ts +2 -1
- package/dist/api/register-tools.d.ts.map +1 -1
- package/dist/build.cjs +8 -9
- package/dist/build.js +3 -4
- package/dist/{chunk-6ORA3MNX.js → chunk-2YP4Q4BW.js} +4 -4
- package/dist/{chunk-6ORA3MNX.js.map → chunk-2YP4Q4BW.js.map} +1 -1
- package/dist/{chunk-PYCCJF7C.cjs → chunk-AGLGFQUW.cjs} +118 -7
- package/dist/chunk-AGLGFQUW.cjs.map +1 -0
- package/dist/{chunk-W2WJOS5Z.js → chunk-BBNQ6AWK.js} +6 -8
- package/dist/chunk-BBNQ6AWK.js.map +1 -0
- package/dist/{chunk-HEVWKBBQ.js → chunk-BDUSB6GT.js} +36 -6
- package/dist/chunk-BDUSB6GT.js.map +1 -0
- package/dist/{chunk-NEMGE573.js → chunk-IJVVH4JN.js} +3 -3
- package/dist/{chunk-NEMGE573.js.map → chunk-IJVVH4JN.js.map} +1 -1
- package/dist/{chunk-WUMLZERG.js → chunk-IVL4TBFB.js} +106 -4
- package/dist/chunk-IVL4TBFB.js.map +1 -0
- package/dist/{chunk-LHKEJNKL.cjs → chunk-JW4EMVTE.cjs} +38 -6
- package/dist/chunk-JW4EMVTE.cjs.map +1 -0
- package/dist/{chunk-V2RD4BHT.cjs → chunk-LKE7PMRB.cjs} +13 -13
- package/dist/{chunk-V2RD4BHT.cjs.map → chunk-LKE7PMRB.cjs.map} +1 -1
- package/dist/{chunk-5HSGVA6S.cjs → chunk-PJDINB7G.cjs} +35 -37
- package/dist/chunk-PJDINB7G.cjs.map +1 -0
- package/dist/{chunk-F4HS7H7K.cjs → chunk-QYY6PNIB.cjs} +4 -4
- package/dist/{chunk-F4HS7H7K.cjs.map → chunk-QYY6PNIB.cjs.map} +1 -1
- package/dist/{chunk-3D7XYAZO.js → chunk-SNN4QJ5Z.js} +3 -3
- package/dist/{chunk-3D7XYAZO.js.map → chunk-SNN4QJ5Z.js.map} +1 -1
- package/dist/{chunk-QCHMXVWZ.cjs → chunk-ZDEQREVL.cjs} +14 -14
- package/dist/{chunk-QCHMXVWZ.cjs.map → chunk-ZDEQREVL.cjs.map} +1 -1
- package/dist/index.cjs +256 -14
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +258 -10
- package/dist/index.js.map +1 -1
- package/dist/{extension.cjs → sdk.cjs} +212 -11
- package/dist/sdk.cjs.map +1 -0
- package/dist/sdk.d.ts +17 -0
- package/dist/sdk.d.ts.map +1 -0
- package/dist/{extension.js → sdk.js} +183 -7
- package/dist/sdk.js.map +1 -0
- package/dist/tools/discoveryFactory.d.ts.map +1 -1
- package/dist/tools/function/scanner.d.ts.map +1 -1
- package/dist/tools/util/toolDescriptor.d.ts +1 -1
- package/dist/tools/util/toolDescriptor.d.ts.map +1 -1
- package/dist/utils/cli/index.cjs +23 -26
- package/dist/utils/cli/index.cjs.map +1 -1
- package/dist/utils/cli/index.js +9 -12
- package/dist/utils/cli/index.js.map +1 -1
- package/package.json +6 -20
- package/dist/api/main.cjs +0 -21
- package/dist/api/main.cjs.map +0 -1
- package/dist/api/main.d.ts +0 -6
- package/dist/api/main.d.ts.map +0 -1
- package/dist/api/main.js +0 -12
- package/dist/api/main.js.map +0 -1
- package/dist/chunk-5HSGVA6S.cjs.map +0 -1
- package/dist/chunk-ACSGEQAY.js +0 -258
- package/dist/chunk-ACSGEQAY.js.map +0 -1
- package/dist/chunk-HEVWKBBQ.js.map +0 -1
- package/dist/chunk-LHKEJNKL.cjs.map +0 -1
- package/dist/chunk-ODEHUAR4.js +0 -33
- package/dist/chunk-ODEHUAR4.js.map +0 -1
- package/dist/chunk-PYCCJF7C.cjs.map +0 -1
- package/dist/chunk-QEJF3KDV.cjs +0 -38
- package/dist/chunk-QEJF3KDV.cjs.map +0 -1
- package/dist/chunk-QXQ4477T.js +0 -49
- package/dist/chunk-QXQ4477T.js.map +0 -1
- package/dist/chunk-RZTTO5MQ.js +0 -65
- package/dist/chunk-RZTTO5MQ.js.map +0 -1
- package/dist/chunk-W2WJOS5Z.js.map +0 -1
- package/dist/chunk-WUMLZERG.js.map +0 -1
- package/dist/chunk-XPGHS4W7.cjs +0 -73
- package/dist/chunk-XPGHS4W7.cjs.map +0 -1
- package/dist/chunk-XW52LOLP.cjs +0 -261
- package/dist/chunk-XW52LOLP.cjs.map +0 -1
- package/dist/chunk-ZDSZHEQU.cjs +0 -52
- package/dist/chunk-ZDSZHEQU.cjs.map +0 -1
- package/dist/config/index.d.ts +0 -12
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/ref.d.ts +0 -9
- package/dist/config/ref.d.ts.map +0 -1
- package/dist/core/index.cjs +0 -20
- package/dist/core/index.cjs.map +0 -1
- package/dist/core/index.d.ts +0 -7
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -3
- package/dist/core/index.js.map +0 -1
- package/dist/core/runtime.cjs +0 -26
- package/dist/core/runtime.cjs.map +0 -1
- package/dist/core/runtime.d.ts +0 -12
- package/dist/core/runtime.d.ts.map +0 -1
- package/dist/core/runtime.js +0 -5
- package/dist/core/runtime.js.map +0 -1
- package/dist/extension.cjs.map +0 -1
- package/dist/extension.d.ts +0 -6
- package/dist/extension.d.ts.map +0 -1
- package/dist/extension.js.map +0 -1
- package/dist/security.cjs +0 -193
- package/dist/security.cjs.map +0 -1
- package/dist/security.d.ts +0 -6
- package/dist/security.d.ts.map +0 -1
- package/dist/security.js +0 -182
- package/dist/security.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/registry/ToolRegistry.ts"],"names":[],"mappings":"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","file":"chunk-WUMLZERG.js","sourcesContent":["import type { Capability, ToolKind, ToolSpec } from \"../types/ToolSpec.js\";\nimport { normalizeToolName } from \"../types/ToolSpec.js\";\n\n/**\n * Search query for tools.\n */\nexport interface ToolSearchQuery {\n /** Text search in name/description/tags */\n text?: string;\n /** Filter by tool kind */\n kind?: ToolKind;\n /** Filter by required capabilities */\n capabilities?: Capability[];\n /** Filter by tags */\n tags?: string[];\n}\n\n/**\n * Tool Registry: manages tool registration, lookup, and search.\n * Supports both static registration and dynamic discovery via adapters.\n */\nexport class ToolRegistry {\n private readonly tools = new Map<string, ToolSpec>();\n private readonly tagIndex = new Map<string, Set<string>>(); // tag → tool names\n private readonly kindIndex = new Map<ToolKind, Set<string>>(); // kind → tool names\n\n /**\n * Register a single tool spec.\n * Overwrites if same name already exists.\n */\n register(spec: ToolSpec): void {\n this.validateSpec(spec);\n const name = normalizeToolName(spec.name);\n const normalized = { ...spec, name };\n this.tools.set(name, normalized);\n this.indexTool(normalized);\n }\n\n /**\n * Register multiple tool specs at once.\n */\n bulkRegister(specs: ToolSpec[]): void {\n for (const spec of specs) {\n this.register(spec);\n }\n }\n\n /**\n * Unregister a tool by name.\n */\n unregister(name: string): boolean {\n const key = normalizeToolName(name);\n const spec = this.tools.get(key);\n if (!spec) return false;\n this.tools.delete(key);\n this.deindexTool(spec);\n return true;\n }\n\n /**\n * Get a tool spec by name (name is normalized before lookup).\n */\n get(name: string): ToolSpec | undefined {\n return this.tools.get(normalizeToolName(name));\n }\n\n /**\n * Check if a tool exists (name is normalized before lookup).\n */\n has(name: string): boolean {\n return this.tools.has(normalizeToolName(name));\n }\n\n /**\n * Search tools by query.\n */\n search(query: ToolSearchQuery): ToolSpec[] {\n let candidates: ToolSpec[];\n\n // Start with kind filter if specified (uses index)\n if (query.kind) {\n const names = this.kindIndex.get(query.kind);\n if (!names || names.size === 0) return [];\n candidates = [...names]\n .map((n) => this.tools.get(n))\n .filter((s): s is ToolSpec => s !== undefined);\n } else {\n candidates = [...this.tools.values()];\n }\n\n // Filter by tags (uses index for initial candidates if no kind filter)\n if (query.tags && query.tags.length > 0) {\n candidates = candidates.filter((spec) =>\n query.tags!.some((tag) => spec.tags?.includes(tag)),\n );\n }\n\n // Filter by capabilities\n if (query.capabilities && query.capabilities.length > 0) {\n candidates = candidates.filter((spec) =>\n query.capabilities!.every((cap) => spec.capabilities.includes(cap)),\n );\n }\n\n // Filter by text (name, description, tags)\n if (query.text) {\n const lower = query.text.toLowerCase();\n candidates = candidates.filter(\n (spec) =>\n spec.name.toLowerCase().includes(lower) ||\n spec.description?.toLowerCase().includes(lower) ||\n spec.tags?.some((t) => t.toLowerCase().includes(lower)),\n );\n }\n\n return candidates;\n }\n\n /**\n * List all registered tool names.\n */\n list(): string[] {\n return [...this.tools.keys()];\n }\n\n /**\n * Get count of registered tools.\n */\n get size(): number {\n return this.tools.size;\n }\n\n /**\n * Export a snapshot of all registered tools (for debugging/routing).\n */\n snapshot(): ToolSpec[] {\n return [...this.tools.values()];\n }\n\n /**\n * Clear all registered tools.\n */\n clear(): void {\n this.tools.clear();\n this.tagIndex.clear();\n this.kindIndex.clear();\n }\n\n private validateSpec(spec: ToolSpec): void {\n if (!spec.name) throw new Error(\"ToolSpec.name is required\");\n if (!spec.version) throw new Error(\"ToolSpec.version is required\");\n if (!spec.kind) throw new Error(\"ToolSpec.kind is required\");\n if (!spec.inputSchema) throw new Error(\"ToolSpec.inputSchema is required\");\n if (!spec.outputSchema) throw new Error(\"ToolSpec.outputSchema is required\");\n if (!spec.capabilities) throw new Error(\"ToolSpec.capabilities is required\");\n }\n\n private indexTool(spec: ToolSpec): void {\n // Kind index\n let kindSet = this.kindIndex.get(spec.kind);\n if (!kindSet) {\n kindSet = new Set();\n this.kindIndex.set(spec.kind, kindSet);\n }\n kindSet.add(spec.name);\n\n // Tag index\n if (spec.tags) {\n for (const tag of spec.tags) {\n let tagSet = this.tagIndex.get(tag);\n if (!tagSet) {\n tagSet = new Set();\n this.tagIndex.set(tag, tagSet);\n }\n tagSet.add(spec.name);\n }\n }\n }\n\n private deindexTool(spec: ToolSpec): void {\n this.kindIndex.get(spec.kind)?.delete(spec.name);\n if (spec.tags) {\n for (const tag of spec.tags) {\n this.tagIndex.get(tag)?.delete(spec.name);\n }\n }\n }\n}\n"]}
|
package/dist/chunk-XPGHS4W7.cjs
DELETED
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var pRetry = require('p-retry');
|
|
4
|
-
|
|
5
|
-
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
6
|
-
|
|
7
|
-
var pRetry__default = /*#__PURE__*/_interopDefault(pRetry);
|
|
8
|
-
|
|
9
|
-
// src/core/runtime/Retry.ts
|
|
10
|
-
var NON_RETRYABLE_ERRORS = /* @__PURE__ */ new Set([
|
|
11
|
-
"TOOL_NOT_FOUND",
|
|
12
|
-
"INPUT_SCHEMA_INVALID",
|
|
13
|
-
"POLICY_DENIED",
|
|
14
|
-
"HITL_DENIED",
|
|
15
|
-
"OUTPUT_SCHEMA_INVALID",
|
|
16
|
-
"PATH_OUTSIDE_SANDBOX",
|
|
17
|
-
"FILE_TOO_LARGE",
|
|
18
|
-
"HTTP_DISALLOWED_HOST",
|
|
19
|
-
"HTTP_TOO_LARGE",
|
|
20
|
-
"EXEC_INVALID",
|
|
21
|
-
"EXEC_SPAWN_ERROR",
|
|
22
|
-
"DUCKDUCKGO_INVALID"
|
|
23
|
-
]);
|
|
24
|
-
function isRetryable(error) {
|
|
25
|
-
if (error instanceof Error) {
|
|
26
|
-
const kind = error.kind;
|
|
27
|
-
if (kind && NON_RETRYABLE_ERRORS.has(kind)) return false;
|
|
28
|
-
}
|
|
29
|
-
return true;
|
|
30
|
-
}
|
|
31
|
-
async function withRetry(fn, options = {}) {
|
|
32
|
-
const {
|
|
33
|
-
maxRetries = 2,
|
|
34
|
-
baseDelayMs = 1e3,
|
|
35
|
-
maxDelayMs = 1e4,
|
|
36
|
-
jitter = 0.1,
|
|
37
|
-
shouldRetry,
|
|
38
|
-
onRetry
|
|
39
|
-
} = options;
|
|
40
|
-
if (maxRetries <= 0) {
|
|
41
|
-
return fn();
|
|
42
|
-
}
|
|
43
|
-
const pRetryOptions = {
|
|
44
|
-
retries: maxRetries,
|
|
45
|
-
minTimeout: baseDelayMs,
|
|
46
|
-
maxTimeout: maxDelayMs,
|
|
47
|
-
randomize: true,
|
|
48
|
-
factor: 2,
|
|
49
|
-
onFailedAttempt: (error) => {
|
|
50
|
-
if (jitter > 0 && error.retriesLeft > 0) ;
|
|
51
|
-
if (shouldRetry && !shouldRetry(error)) {
|
|
52
|
-
throw error;
|
|
53
|
-
}
|
|
54
|
-
if (!isRetryable(error)) {
|
|
55
|
-
throw error;
|
|
56
|
-
}
|
|
57
|
-
onRetry?.(error, maxRetries - error.retriesLeft);
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
return pRetry__default.default(fn, pRetryOptions);
|
|
61
|
-
}
|
|
62
|
-
function createTaggedError(kind, message, details) {
|
|
63
|
-
const error = new Error(message);
|
|
64
|
-
error.kind = kind;
|
|
65
|
-
error.details = details;
|
|
66
|
-
return error;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
exports.createTaggedError = createTaggedError;
|
|
70
|
-
exports.isRetryable = isRetryable;
|
|
71
|
-
exports.withRetry = withRetry;
|
|
72
|
-
//# sourceMappingURL=chunk-XPGHS4W7.cjs.map
|
|
73
|
-
//# sourceMappingURL=chunk-XPGHS4W7.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/runtime/Retry.ts"],"names":["pRetry"],"mappings":";;;;;;;;;AAuBA,IAAM,oBAAA,uBAA2B,GAAA,CAAI;AAAA,EACnC,gBAAA;AAAA,EACA,sBAAA;AAAA,EACA,eAAA;AAAA,EACA,aAAA;AAAA,EACA,uBAAA;AAAA,EACA,sBAAA;AAAA,EACA,gBAAA;AAAA,EACA,sBAAA;AAAA,EACA,gBAAA;AAAA,EACA,cAAA;AAAA,EACA,kBAAA;AAAA,EACA;AACF,CAAC,CAAA;AAKM,SAAS,YAAY,KAAA,EAAyB;AACnD,EAAA,IAAI,iBAAiB,KAAA,EAAO;AAC1B,IAAA,MAAM,OAAQ,KAAA,CAAoC,IAAA;AAClD,IAAA,IAAI,IAAA,IAAQ,oBAAA,CAAqB,GAAA,CAAI,IAAI,GAAG,OAAO,KAAA;AAAA,EACrD;AACA,EAAA,OAAO,IAAA;AACT;AAKA,eAAsB,SAAA,CACpB,EAAA,EACA,OAAA,GAAwB,EAAC,EACb;AACZ,EAAA,MAAM;AAAA,IACJ,UAAA,GAAa,CAAA;AAAA,IACb,WAAA,GAAc,GAAA;AAAA,IACd,UAAA,GAAa,GAAA;AAAA,IACb,MAAA,GAAS,GAAA;AAAA,IACT,WAAA;AAAA,IACA;AAAA,GACF,GAAI,OAAA;AAEJ,EAAA,IAAI,cAAc,CAAA,EAAG;AACnB,IAAA,OAAO,EAAA,EAAG;AAAA,EACZ;AAEA,EAAA,MAAM,aAAA,GAA+B;AAAA,IACnC,OAAA,EAAS,UAAA;AAAA,IACT,UAAA,EAAY,WAAA;AAAA,IACZ,UAAA,EAAY,UAAA;AAAA,IACZ,SAAA,EAAW,IAAA;AAAA,IACX,MAAA,EAAQ,CAAA;AAAA,IACR,eAAA,EAAiB,CAAC,KAAA,KAAU;AAE1B,MAAA,IAAI,MAAA,GAAS,CAAA,IAAK,KAAA,CAAM,WAAA,GAAc,CAAA,EAAG;AAMzC,MAAA,IAAI,WAAA,IAAe,CAAC,WAAA,CAAY,KAAK,CAAA,EAAG;AACtC,QAAA,MAAM,KAAA;AAAA,MACR;AAEA,MAAA,IAAI,CAAC,WAAA,CAAY,KAAK,CAAA,EAAG;AACvB,QAAA,MAAM,KAAA;AAAA,MACR;AAEA,MAAA,OAAA,GAAU,KAAA,EAAO,UAAA,GAAa,KAAA,CAAM,WAAW,CAAA;AAAA,IACjD;AAAA,GACF;AAEA,EAAA,OAAOA,uBAAA,CAAO,IAAI,aAAa,CAAA;AACjC;AAKO,SAAS,iBAAA,CACd,IAAA,EACA,OAAA,EACA,OAAA,EAC6C;AAC7C,EAAA,MAAM,KAAA,GAAQ,IAAI,KAAA,CAAM,OAAO,CAAA;AAI/B,EAAA,KAAA,CAAM,IAAA,GAAO,IAAA;AACb,EAAA,KAAA,CAAM,OAAA,GAAU,OAAA;AAChB,EAAA,OAAO,KAAA;AACT","file":"chunk-XPGHS4W7.cjs","sourcesContent":["import pRetry, { type Options as PRetryOptions } from \"p-retry\";\n\n/**\n * Retry configuration.\n */\nexport interface RetryOptions {\n /** Maximum number of retries (default: 2) */\n maxRetries?: number;\n /** Base delay in ms for exponential backoff (default: 1000) */\n baseDelayMs?: number;\n /** Maximum delay in ms (default: 10000) */\n maxDelayMs?: number;\n /** Jitter factor 0-1 (default: 0.1) */\n jitter?: number;\n /** Error filter: return true to retry, false to abort */\n shouldRetry?: (error: Error) => boolean;\n /** Callback on each retry attempt */\n onRetry?: (error: Error, attempt: number) => void;\n}\n\n/**\n * Default errors that should NOT be retried (deterministic failures).\n */\nconst NON_RETRYABLE_ERRORS = new Set([\n \"TOOL_NOT_FOUND\",\n \"INPUT_SCHEMA_INVALID\",\n \"POLICY_DENIED\",\n \"HITL_DENIED\",\n \"OUTPUT_SCHEMA_INVALID\",\n \"PATH_OUTSIDE_SANDBOX\",\n \"FILE_TOO_LARGE\",\n \"HTTP_DISALLOWED_HOST\",\n \"HTTP_TOO_LARGE\",\n \"EXEC_INVALID\",\n \"EXEC_SPAWN_ERROR\",\n \"DUCKDUCKGO_INVALID\",\n]);\n\n/**\n * Determine if an error is retryable.\n */\nexport function isRetryable(error: unknown): boolean {\n if (error instanceof Error) {\n const kind = (error as Error & { kind?: string }).kind;\n if (kind && NON_RETRYABLE_ERRORS.has(kind)) return false;\n }\n return true;\n}\n\n/**\n * Execute a function with retry logic using exponential backoff.\n */\nexport async function withRetry<T>(\n fn: () => Promise<T>,\n options: RetryOptions = {},\n): Promise<T> {\n const {\n maxRetries = 2,\n baseDelayMs = 1000,\n maxDelayMs = 10_000,\n jitter = 0.1,\n shouldRetry,\n onRetry,\n } = options;\n\n if (maxRetries <= 0) {\n return fn();\n }\n\n const pRetryOptions: PRetryOptions = {\n retries: maxRetries,\n minTimeout: baseDelayMs,\n maxTimeout: maxDelayMs,\n randomize: true,\n factor: 2,\n onFailedAttempt: (error) => {\n // Apply jitter\n if (jitter > 0 && error.retriesLeft > 0) {\n // jitterMs calculated but p-retry handles backoff internally\n void (Math.random() * jitter * baseDelayMs);\n }\n\n // Check if should retry\n if (shouldRetry && !shouldRetry(error)) {\n throw error; // Abort retry\n }\n\n if (!isRetryable(error)) {\n throw error; // Non-retryable error kind\n }\n\n onRetry?.(error, maxRetries - error.retriesLeft);\n },\n };\n\n return pRetry(fn, pRetryOptions);\n}\n\n/**\n * Create a tagged error with a kind field for retry classification.\n */\nexport function createTaggedError(\n kind: string,\n message: string,\n details?: unknown,\n): Error & { kind: string; details?: unknown } {\n const error = new Error(message) as Error & {\n kind: string;\n details?: unknown;\n };\n error.kind = kind;\n error.details = details;\n return error;\n}\n"]}
|
package/dist/chunk-XW52LOLP.cjs
DELETED
|
@@ -1,261 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var chunkF4HS7H7K_cjs = require('./chunk-F4HS7H7K.cjs');
|
|
4
|
-
var chunk5HSGVA6S_cjs = require('./chunk-5HSGVA6S.cjs');
|
|
5
|
-
var chunkUUNG3GL3_cjs = require('./chunk-UUNG3GL3.cjs');
|
|
6
|
-
var chunkV2RD4BHT_cjs = require('./chunk-V2RD4BHT.cjs');
|
|
7
|
-
var agentCommon = require('@easynet/agent-common');
|
|
8
|
-
var tools = require('@langchain/core/tools');
|
|
9
|
-
var url = require('url');
|
|
10
|
-
var path = require('path');
|
|
11
|
-
var fs = require('fs');
|
|
12
|
-
|
|
13
|
-
var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
|
|
14
|
-
function getArgsSchemaIfWrapped(inputSchema) {
|
|
15
|
-
const s = inputSchema;
|
|
16
|
-
if (s?.type !== "object" || !s.properties || typeof s.properties !== "object") return null;
|
|
17
|
-
const args = s.properties.args;
|
|
18
|
-
if (args != null && typeof args === "object" && args.type === "object" && args.properties != null) {
|
|
19
|
-
return args;
|
|
20
|
-
}
|
|
21
|
-
return null;
|
|
22
|
-
}
|
|
23
|
-
function hasArgsWrapper(inputSchema) {
|
|
24
|
-
return getArgsSchemaIfWrapped(inputSchema) !== null;
|
|
25
|
-
}
|
|
26
|
-
function schemaForLangChain(inputSchema) {
|
|
27
|
-
const wrapped = getArgsSchemaIfWrapped(inputSchema);
|
|
28
|
-
if (wrapped !== null) return wrapped;
|
|
29
|
-
return inputSchema;
|
|
30
|
-
}
|
|
31
|
-
function buildIntent(toolName, inputSchema, args) {
|
|
32
|
-
return {
|
|
33
|
-
tool: toolName,
|
|
34
|
-
args: hasArgsWrapper(inputSchema) ? { args } : args,
|
|
35
|
-
purpose: chunkV2RD4BHT_cjs.LANGCHAIN_KIND
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
function normalizeArgs(args) {
|
|
39
|
-
return agentCommon.stripNullishObjectFields(args ?? {});
|
|
40
|
-
}
|
|
41
|
-
function serializeToolResult(result) {
|
|
42
|
-
if (result.ok) {
|
|
43
|
-
return typeof result.result === "string" ? result.result : JSON.stringify(result.result);
|
|
44
|
-
}
|
|
45
|
-
const err = result.error;
|
|
46
|
-
const message = err?.message ?? "Tool failed";
|
|
47
|
-
const details = err?.details;
|
|
48
|
-
return JSON.stringify(
|
|
49
|
-
details != null ? { error: message, details } : { error: message }
|
|
50
|
-
);
|
|
51
|
-
}
|
|
52
|
-
var DEFAULT_CTX_FACTORY = () => ({
|
|
53
|
-
requestId: `lc-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`,
|
|
54
|
-
taskId: `task-${Date.now()}`,
|
|
55
|
-
permissions: [
|
|
56
|
-
"read:web",
|
|
57
|
-
"read:fs",
|
|
58
|
-
"write:fs",
|
|
59
|
-
"read:db",
|
|
60
|
-
"write:db",
|
|
61
|
-
"network",
|
|
62
|
-
"workflow",
|
|
63
|
-
"danger:destructive"
|
|
64
|
-
]
|
|
65
|
-
});
|
|
66
|
-
var LangChainToolsHub = class {
|
|
67
|
-
constructor(runtime, ctxFactory = DEFAULT_CTX_FACTORY) {
|
|
68
|
-
this.runtime = runtime;
|
|
69
|
-
this.ctxFactory = ctxFactory;
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Returns all registered tools as LangChain StructuredTool[].
|
|
73
|
-
* Each tool invokes the runtime through the full pipeline (policy, HITL, etc.).
|
|
74
|
-
*/
|
|
75
|
-
getLangChainTools() {
|
|
76
|
-
const registry = this.runtime.getRegistry();
|
|
77
|
-
const specs = registry.snapshot();
|
|
78
|
-
return specs.map((spec) => this.specToLangChainTool(spec));
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Returns LangChain tools for a subset of tools (by name or query).
|
|
82
|
-
*/
|
|
83
|
-
getLangChainToolsForNames(toolNames) {
|
|
84
|
-
const registry = this.runtime.getRegistry();
|
|
85
|
-
const set = new Set(toolNames);
|
|
86
|
-
const specs = registry.snapshot().filter((s) => set.has(s.name));
|
|
87
|
-
return specs.map((spec) => this.specToLangChainTool(spec));
|
|
88
|
-
}
|
|
89
|
-
specToLangChainTool(spec) {
|
|
90
|
-
const runtime = this.runtime;
|
|
91
|
-
const ctxFactory = this.ctxFactory;
|
|
92
|
-
const enriched = chunkUUNG3GL3_cjs.enrichSpecWithCanonicalSchema(spec);
|
|
93
|
-
const schema = schemaForLangChain(enriched.inputSchema);
|
|
94
|
-
return new tools.DynamicStructuredTool({
|
|
95
|
-
name: spec.name,
|
|
96
|
-
description: spec.description ?? `Tool: ${spec.name}`,
|
|
97
|
-
schema,
|
|
98
|
-
func: async (args) => {
|
|
99
|
-
const normalizedArgs = normalizeArgs(args);
|
|
100
|
-
const intent = buildIntent(spec.name, enriched.inputSchema, normalizedArgs);
|
|
101
|
-
const ctx = ctxFactory();
|
|
102
|
-
const result = await runtime.invoke(intent, ctx);
|
|
103
|
-
return serializeToolResult(result);
|
|
104
|
-
}
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
};
|
|
108
|
-
function mergeHostLists(a, b) {
|
|
109
|
-
const seen = /* @__PURE__ */ new Set();
|
|
110
|
-
const out = [];
|
|
111
|
-
for (const list of [a ?? [], b ?? []]) {
|
|
112
|
-
for (const h of list) {
|
|
113
|
-
if (!seen.has(h)) {
|
|
114
|
-
seen.add(h);
|
|
115
|
-
out.push(h);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
return out;
|
|
120
|
-
}
|
|
121
|
-
function resolveEmbeddedToolConfigPath() {
|
|
122
|
-
const moduleDir = path.dirname(url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('chunk-XW52LOLP.cjs', document.baseURI).href))));
|
|
123
|
-
const candidates = [
|
|
124
|
-
path.resolve(moduleDir, "../../config/tool.yaml"),
|
|
125
|
-
// src/api -> config
|
|
126
|
-
path.resolve(moduleDir, "../config/tool.yaml"),
|
|
127
|
-
// dist/* -> config
|
|
128
|
-
path.resolve(process.cwd(), "config/tool.yaml")
|
|
129
|
-
// fallback for local app runtime
|
|
130
|
-
];
|
|
131
|
-
for (const candidate of candidates) {
|
|
132
|
-
if (fs.existsSync(candidate)) return candidate;
|
|
133
|
-
}
|
|
134
|
-
return candidates[0];
|
|
135
|
-
}
|
|
136
|
-
var EMBEDDED_TOOL_CONFIG_PATH = resolveEmbeddedToolConfigPath();
|
|
137
|
-
function collectExtensionEmbeddedDefaults(exts) {
|
|
138
|
-
const merged = {};
|
|
139
|
-
for (const ext of exts) {
|
|
140
|
-
const configPath = [path.resolve(ext.packageRoot, "dist/config/tool.yaml"), path.resolve(ext.packageRoot, "config/tool.yaml")].find(
|
|
141
|
-
fs.existsSync
|
|
142
|
-
) ?? "";
|
|
143
|
-
if (!configPath) continue;
|
|
144
|
-
try {
|
|
145
|
-
const toolDefaults = chunk5HSGVA6S_cjs.loadToolConfig(configPath).toolDefaults ?? {};
|
|
146
|
-
if (Object.keys(toolDefaults).length === 0) continue;
|
|
147
|
-
const manifest = chunkF4HS7H7K_cjs.loadExtensionManifest(ext.packageRoot);
|
|
148
|
-
const ownToolNames = /* @__PURE__ */ new Set();
|
|
149
|
-
for (const e of manifest.entries) {
|
|
150
|
-
if (e.name) ownToolNames.add(e.name);
|
|
151
|
-
if (e.sourcePath) {
|
|
152
|
-
ownToolNames.add(e.sourcePath.replace(/^src\//, "").replace(/\//g, "."));
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
for (const [k, v] of Object.entries(toolDefaults)) {
|
|
156
|
-
if (ownToolNames.has(k)) {
|
|
157
|
-
merged[k] = v;
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
} catch {
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
return merged;
|
|
164
|
-
}
|
|
165
|
-
function loadMergedToolConfig(overridePath) {
|
|
166
|
-
const baseConfig = chunk5HSGVA6S_cjs.loadToolConfig(EMBEDDED_TOOL_CONFIG_PATH);
|
|
167
|
-
if (!overridePath) return baseConfig;
|
|
168
|
-
const overrideConfig = chunk5HSGVA6S_cjs.loadToolConfig(overridePath);
|
|
169
|
-
return agentCommon.deepMerge({}, baseConfig, overrideConfig);
|
|
170
|
-
}
|
|
171
|
-
function runtimeOptionsFromConfig(opts, toolConfig, configPathForResolve, extensionEmbeddedDefaults) {
|
|
172
|
-
const coreTools = opts.coreTools ?? { sandboxRoot: process.cwd(), allowedHosts: [], enableSandboxValidation: false };
|
|
173
|
-
{
|
|
174
|
-
const updates = {};
|
|
175
|
-
if (toolConfig.sandboxedPath && typeof toolConfig.sandboxedPath === "string") {
|
|
176
|
-
updates.sandboxRoot = chunk5HSGVA6S_cjs.resolveSandboxedPath(configPathForResolve, toolConfig.sandboxedPath);
|
|
177
|
-
}
|
|
178
|
-
if (typeof toolConfig.enableSandboxValidation === "boolean") {
|
|
179
|
-
updates.enableSandboxValidation = toolConfig.enableSandboxValidation;
|
|
180
|
-
} else if (coreTools.enableSandboxValidation == null) {
|
|
181
|
-
updates.enableSandboxValidation = false;
|
|
182
|
-
}
|
|
183
|
-
updates.allowedHosts = mergeHostLists(coreTools.allowedHosts, toolConfig.allowedHosts);
|
|
184
|
-
updates.blockedHosts = mergeHostLists(coreTools.blockedHosts, toolConfig.blockedHosts);
|
|
185
|
-
if (Array.isArray(toolConfig.blockedCidrs) && toolConfig.blockedCidrs.length > 0) {
|
|
186
|
-
updates.blockedCidrs = toolConfig.blockedCidrs;
|
|
187
|
-
} else if (coreTools.blockedCidrs?.length) {
|
|
188
|
-
updates.blockedCidrs = coreTools.blockedCidrs;
|
|
189
|
-
}
|
|
190
|
-
let hasToolDefaults = false;
|
|
191
|
-
const flatOverrides = {
|
|
192
|
-
...extensionEmbeddedDefaults,
|
|
193
|
-
...coreTools.toolOverrides
|
|
194
|
-
};
|
|
195
|
-
if (Object.keys(extensionEmbeddedDefaults).length > 0) hasToolDefaults = true;
|
|
196
|
-
if (toolConfig.toolDefaults != null && Object.keys(toolConfig.toolDefaults).length > 0) {
|
|
197
|
-
Object.assign(flatOverrides, toolConfig.toolDefaults);
|
|
198
|
-
hasToolDefaults = true;
|
|
199
|
-
}
|
|
200
|
-
const packageDefaults = { ...coreTools.packageDefaults };
|
|
201
|
-
if (toolConfig.packageToolDefaults != null && Object.keys(toolConfig.packageToolDefaults).length > 0) {
|
|
202
|
-
for (const [descriptor, pkgConfig] of Object.entries(toolConfig.packageToolDefaults)) {
|
|
203
|
-
const prefix = descriptor.startsWith("file:") ? chunk5HSGVA6S_cjs.fileDescriptorToPackagePrefix(descriptor) : chunk5HSGVA6S_cjs.npmDescriptorToPackagePrefixWithVersion(descriptor);
|
|
204
|
-
if (!prefix) continue;
|
|
205
|
-
const pkgDefaults = pkgConfig?.defaults != null && typeof pkgConfig.defaults === "object" && !Array.isArray(pkgConfig.defaults) ? pkgConfig.defaults : {};
|
|
206
|
-
if (Object.keys(pkgDefaults).length > 0) {
|
|
207
|
-
packageDefaults[prefix] = pkgDefaults;
|
|
208
|
-
}
|
|
209
|
-
const toolConfigs = pkgConfig?.tools != null && typeof pkgConfig.tools === "object" && !Array.isArray(pkgConfig.tools) ? pkgConfig.tools : {};
|
|
210
|
-
for (const [toolName, config] of Object.entries(toolConfigs)) {
|
|
211
|
-
if (config != null && typeof config === "object") {
|
|
212
|
-
hasToolDefaults = true;
|
|
213
|
-
flatOverrides[`${prefix}::${toolName}`] = { ...pkgDefaults, ...config };
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
if (Object.keys(packageDefaults).length > 0) {
|
|
218
|
-
updates.packageDefaults = packageDefaults;
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
if (hasToolDefaults) {
|
|
222
|
-
updates.toolOverrides = flatOverrides;
|
|
223
|
-
}
|
|
224
|
-
if (Object.keys(updates).length > 0) return { ...opts, coreTools: { ...coreTools, ...updates } };
|
|
225
|
-
}
|
|
226
|
-
return { ...opts, coreTools };
|
|
227
|
-
}
|
|
228
|
-
function buildRuntimeAndHub(options = {}) {
|
|
229
|
-
const configPathForResolve = options.configFilePath ?? EMBEDDED_TOOL_CONFIG_PATH;
|
|
230
|
-
const mergedToolConfig = loadMergedToolConfig(options.configFilePath);
|
|
231
|
-
const extensionEmbeddedDefaults = collectExtensionEmbeddedDefaults(
|
|
232
|
-
chunk5HSGVA6S_cjs.loadAllExtensionsFromToolYamlSync(configPathForResolve)
|
|
233
|
-
);
|
|
234
|
-
const runtimeOpts = runtimeOptionsFromConfig(options, mergedToolConfig, configPathForResolve, extensionEmbeddedDefaults);
|
|
235
|
-
const { runtime } = chunk5HSGVA6S_cjs.createRuntimeFromConfigSync(runtimeOpts);
|
|
236
|
-
const hub = new LangChainToolsHub(runtime);
|
|
237
|
-
return { runtime, hub, mergedToolConfig };
|
|
238
|
-
}
|
|
239
|
-
function createLangChainAgentTools(options) {
|
|
240
|
-
const opts = typeof options === "string" ? { configFilePath: options } : options ?? {};
|
|
241
|
-
const { runtime, hub, mergedToolConfig } = buildRuntimeAndHub(opts);
|
|
242
|
-
const names = Array.isArray(mergedToolConfig.tools) ? mergedToolConfig.tools : [];
|
|
243
|
-
if (names.length > 0) {
|
|
244
|
-
const registryNames = runtime.getRegistry().snapshot().map((s) => s.name);
|
|
245
|
-
const allBarePackages = names.every((n) => chunk5HSGVA6S_cjs.isBarePackageDescriptor(String(n)));
|
|
246
|
-
if (allBarePackages) return hub.getLangChainTools();
|
|
247
|
-
return hub.getLangChainToolsForNames(chunk5HSGVA6S_cjs.expandToolDescriptorsToRegistryNames(names, registryNames));
|
|
248
|
-
}
|
|
249
|
-
return hub.getLangChainTools();
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
// src/api/register-tools.ts
|
|
253
|
-
function createAgentTools(options) {
|
|
254
|
-
const tools = createLangChainAgentTools(options);
|
|
255
|
-
agentCommon.getDefaultAgentContext().set(agentCommon.AgentContextTokens.Tools, tools);
|
|
256
|
-
return tools;
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
exports.createAgentTools = createAgentTools;
|
|
260
|
-
//# sourceMappingURL=chunk-XW52LOLP.cjs.map
|
|
261
|
-
//# sourceMappingURL=chunk-XW52LOLP.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/api/adapters/LangChainToolsHub.ts","../src/api/createAgentTools.ts","../src/api/register-tools.ts"],"names":["LANGCHAIN_KIND","stripNullishObjectFields","enrichSpecWithCanonicalSchema","DynamicStructuredTool","dirname","fileURLToPath","resolve","existsSync","loadToolConfig","loadExtensionManifest","deepMerge","resolveSandboxedPath","fileDescriptorToPackagePrefix","npmDescriptorToPackagePrefixWithVersion","loadAllExtensionsFromToolYamlSync","createRuntimeFromConfigSync","isBarePackageDescriptor","expandToolDescriptorsToRegistryNames","getDefaultAgentContext","AgentContextTokens"],"mappings":"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","file":"chunk-XW52LOLP.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() from @easynet/agent-tool, which loads from tool.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 * Standalone tool creation functions. Each function:\n * - Uses the embedded config/tool.yaml as the default base.\n * - If a configFilePath is provided, merges it on top of the default.\n * - If no options are provided at all, behaves as if only the embedded default is used.\n *\n * Public module API uses createAgentTools() in register-tools.ts.\n * This file keeps internal builders for LangChain / MCP / OpenAPI outputs.\n */\n\nimport { loadToolConfig, resolveSandboxedPath } from \"../tools/util/toolConfig.js\";\nimport type { ToolYamlShape } from \"../tools/util/toolConfig.js\";\nimport { loadExtensionManifest } from \"./extension/registerFromManifest.js\";\nimport {\n expandToolDescriptorsToRegistryNames,\n isBarePackageDescriptor,\n npmDescriptorToPackagePrefixWithVersion,\n fileDescriptorToPackagePrefix,\n} from \"../tools/util/toolDescriptor.js\";\nimport { deepMerge } from \"@easynet/agent-common\";\nimport { createRuntimeFromConfigSync, loadAllExtensionsFromToolYamlSync } from \"./runtimeFromConfig.js\";\nimport type { CreateRuntimeOptions, LoadedExtension } from \"./runtimeFromConfig.js\";\nimport { LangChainToolsHub } from \"./adapters/LangChainToolsHub.js\";\nimport { createMCPServer, type MCPServerOptions, type McpServer } from \"./expose/mcpServer.js\";\nimport {\n createOpenAPIHttpServer,\n type OpenAPIExpressApp,\n type OpenAPIHttpServerOptions,\n} from \"./expose/openapiHttp.js\";\nimport type { StructuredToolInterface } from \"@langchain/core/tools\";\nimport { fileURLToPath } from \"node:url\";\nimport { dirname, resolve } from \"node:path\";\nimport { existsSync } from \"node:fs\";\n\nexport interface CreateAgentToolsOptions extends CreateRuntimeOptions {\n /** Path to an override tool.yaml; its values are merged on top of the embedded default config/tool.yaml */\n configFilePath?: 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 resolveEmbeddedToolConfigPath(): string {\n const moduleDir = dirname(fileURLToPath(import.meta.url));\n const candidates = [\n resolve(moduleDir, \"../../config/tool.yaml\"), // src/api -> config\n resolve(moduleDir, \"../config/tool.yaml\"), // dist/* -> config\n resolve(process.cwd(), \"config/tool.yaml\"), // fallback for local app runtime\n ];\n for (const candidate of candidates) {\n if (existsSync(candidate)) return candidate;\n }\n return candidates[0]!;\n}\n\nconst EMBEDDED_TOOL_CONFIG_PATH = resolveEmbeddedToolConfigPath();\n\n/**\n * For each loaded extension, load its embedded config/tool.yaml (layer 2) and collect\n * the toolDefaults into a flat map. Later entries in the list win over earlier ones.\n *\n * Security constraint: each extension's embedded config may only set defaults for tools\n * that belong to that extension (verified against its own manifest). Keys that reference\n * tools from other extensions or global config fields are silently ignored.\n */\nfunction collectExtensionEmbeddedDefaults(\n exts: LoadedExtension[],\n): Record<string, Record<string, unknown>> {\n const merged: Record<string, Record<string, unknown>> = {};\n for (const ext of exts) {\n // Prefer dist/config/tool.yaml (published package); fall back to config/tool.yaml (local dev).\n const configPath =\n [resolve(ext.packageRoot, \"dist/config/tool.yaml\"), resolve(ext.packageRoot, \"config/tool.yaml\")].find(\n existsSync,\n ) ?? \"\";\n if (!configPath) continue;\n try {\n const toolDefaults = loadToolConfig(configPath).toolDefaults ?? {};\n if (Object.keys(toolDefaults).length === 0) continue;\n\n // Build the set of short names this extension owns from its manifest.\n // Include both the explicit name field and the dot-path derived from sourcePath\n // (e.g. \"listDir\" and \"fs.listDir\" for src/fs/listDir) so that config keys in\n // either format are accepted.\n const manifest = loadExtensionManifest(ext.packageRoot);\n const ownToolNames = new Set<string>();\n for (const e of manifest.entries) {\n if (e.name) ownToolNames.add(e.name);\n if (e.sourcePath) {\n ownToolNames.add(e.sourcePath.replace(/^src\\//, \"\").replace(/\\//g, \".\"));\n }\n }\n\n for (const [k, v] of Object.entries(toolDefaults)) {\n // Only allow keys that are short names of tools this extension registers.\n if (ownToolNames.has(k)) {\n merged[k] = v;\n }\n }\n } catch {\n // skip malformed extension config or missing manifest\n }\n }\n return merged;\n}\n\nfunction loadMergedToolConfig(overridePath?: string): ToolYamlShape {\n const baseConfig = loadToolConfig(EMBEDDED_TOOL_CONFIG_PATH);\n if (!overridePath) return baseConfig;\n const overrideConfig = loadToolConfig(overridePath);\n return deepMerge({} as ToolYamlShape, baseConfig, overrideConfig);\n}\n\nfunction runtimeOptionsFromConfig(\n opts: CreateAgentToolsOptions,\n toolConfig: ToolYamlShape,\n configPathForResolve: string,\n extensionEmbeddedDefaults: Record<string, Record<string, unknown>>,\n): CreateRuntimeOptions {\n const coreTools = opts.coreTools ?? { sandboxRoot: process.cwd(), allowedHosts: [], enableSandboxValidation: false };\n {\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(configPathForResolve, 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 // Priority (low → high): extension embedded (layer 2) < programmatic coreTools < layer 1+3 toolDefaults\n const flatOverrides: Record<string, Record<string, unknown>> = {\n ...extensionEmbeddedDefaults,\n ...coreTools.toolOverrides,\n };\n if (Object.keys(extensionEmbeddedDefaults).length > 0) hasToolDefaults = true;\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) return { ...opts, coreTools: { ...coreTools, ...updates } };\n }\n return { ...opts, coreTools };\n}\n\n/**\n * Build a ready-to-use runtime + hub from options.\n * - No options → embedded default config/tool.yaml only.\n * - options.configFilePath → override merged on top of embedded default.\n */\nfunction buildRuntimeAndHub(options: CreateAgentToolsOptions = {}): {\n runtime: ReturnType<typeof createRuntimeFromConfigSync>[\"runtime\"];\n hub: LangChainToolsHub;\n mergedToolConfig: ToolYamlShape;\n} {\n const configPathForResolve = options.configFilePath ?? EMBEDDED_TOOL_CONFIG_PATH;\n const mergedToolConfig = loadMergedToolConfig(options.configFilePath);\n // Collect layer-2 defaults from each extension's embedded config/tool.yaml.\n // loadAllExtensionsFromToolYamlSync is cheap here (require() is cached by Node.js).\n const extensionEmbeddedDefaults = collectExtensionEmbeddedDefaults(\n loadAllExtensionsFromToolYamlSync(configPathForResolve),\n );\n const runtimeOpts = runtimeOptionsFromConfig(options, mergedToolConfig, configPathForResolve, extensionEmbeddedDefaults);\n const { runtime } = createRuntimeFromConfigSync(runtimeOpts);\n const hub = new LangChainToolsHub(runtime);\n return { runtime, hub, mergedToolConfig };\n}\n\n/**\n * Internal: create LangChain tools from config/runtime.\n *\n * - No argument → uses embedded default config/tool.yaml.\n * - options.configFilePath → merged on top of embedded default.\n * - All other CreateAgentToolsOptions (coreTools, etc.) are applied as programmatic overrides.\n *\n * @example\n * Internal helper consumed by createAgentTools().\n */\nexport function createLangChainAgentTools(\n options?: CreateAgentToolsOptions | string,\n): StructuredToolInterface[] {\n const opts: CreateAgentToolsOptions =\n typeof options === \"string\" ? { configFilePath: options } : options ?? {};\n const { runtime, hub, mergedToolConfig } = buildRuntimeAndHub(opts);\n\n const names = Array.isArray(mergedToolConfig.tools) ? mergedToolConfig.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) return hub.getLangChainTools();\n return hub.getLangChainToolsForNames(expandToolDescriptorsToRegistryNames(names, registryNames));\n }\n return hub.getLangChainTools();\n}\n\n/**\n * Internal: create an MCP server from tool config.\n *\n * - No argument → uses embedded default config/tool.yaml.\n * - options.configFilePath → merged on top of embedded default.\n * - options.mcp → passed to the MCP server (name, version, execContextFactory).\n *\n * @example\n * Internal helper consumed by createAgentTools() expose flows.\n */\nexport async function createMcpServer(\n options?: (CreateAgentToolsOptions & MCPServerOptions) | string,\n): Promise<McpServer> {\n const opts: CreateAgentToolsOptions & MCPServerOptions =\n typeof options === \"string\" ? { configFilePath: options } : options ?? {};\n const { runtime, mergedToolConfig } = buildRuntimeAndHub(opts);\n const serverOpts: MCPServerOptions = {\n name: opts.name ?? mergedToolConfig.mcp?.name,\n version: opts.version ?? mergedToolConfig.mcp?.version,\n execContextFactory: opts.execContextFactory,\n };\n const { server } = await createMCPServer(runtime, serverOpts);\n return server;\n}\n\n/**\n * Internal: create an OpenAPI / Swagger HTTP server from tool config.\n *\n * - No argument → uses embedded default config/tool.yaml.\n * - options.configFilePath → merged on top of embedded default.\n * - options.port, host, basePath → passed to the HTTP server; tool.yaml openapi: section provides defaults.\n *\n * @example\n * Internal helper consumed by createAgentTools() expose flows.\n */\nexport async function createOpenAPIServer(\n options?: (CreateAgentToolsOptions & OpenAPIHttpServerOptions) | string,\n): Promise<OpenAPIExpressApp> {\n const opts: CreateAgentToolsOptions & OpenAPIHttpServerOptions =\n typeof options === \"string\" ? { configFilePath: options } : options ?? {};\n const { runtime, mergedToolConfig } = buildRuntimeAndHub(opts);\n const serverOpts: OpenAPIHttpServerOptions = {\n host: opts.host ?? mergedToolConfig.openapi?.host,\n port: opts.port ?? mergedToolConfig.openapi?.port,\n basePath: opts.basePath ?? mergedToolConfig.openapi?.basePath,\n execContextFactory: opts.execContextFactory,\n };\n return createOpenAPIHttpServer(runtime, serverOpts);\n}\n","import { AgentContextTokens, getDefaultAgentContext } from \"@easynet/agent-common\";\nimport { createLangChainAgentTools, type CreateAgentToolsOptions } from \"./createAgentTools.js\";\n\nexport interface CreateAgentToolsModuleOptions extends CreateAgentToolsOptions {}\n\n/**\n * Initialize LangChain agent tools and register them into the process-level singleton AgentContext.\n *\n * Sets:\n * - AgentContextTokens.Tools → StructuredToolInterface[]\n *\n * @example\n * ```ts\n * createAgentTools({ configFilePath: \"config/tool.yaml\" });\n * ```\n */\nexport function createAgentTools(options?: CreateAgentToolsModuleOptions): unknown[] {\n const tools = createLangChainAgentTools(options);\n getDefaultAgentContext().set(AgentContextTokens.Tools, tools);\n return tools;\n}\n"]}
|
package/dist/chunk-ZDSZHEQU.cjs
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var chunkXPGHS4W7_cjs = require('./chunk-XPGHS4W7.cjs');
|
|
4
|
-
var path = require('path');
|
|
5
|
-
var promises = require('fs/promises');
|
|
6
|
-
|
|
7
|
-
var sandboxValidationEnabled = false;
|
|
8
|
-
function setSandboxValidationEnabled(enabled) {
|
|
9
|
-
sandboxValidationEnabled = enabled;
|
|
10
|
-
}
|
|
11
|
-
async function resolveSandboxedPath(inputPath, sandboxRoot) {
|
|
12
|
-
let normalizedRoot;
|
|
13
|
-
try {
|
|
14
|
-
normalizedRoot = await promises.realpath(path.resolve(sandboxRoot));
|
|
15
|
-
} catch {
|
|
16
|
-
normalizedRoot = path.normalize(path.resolve(sandboxRoot));
|
|
17
|
-
}
|
|
18
|
-
const resolved = path.resolve(normalizedRoot, inputPath);
|
|
19
|
-
let real;
|
|
20
|
-
try {
|
|
21
|
-
await promises.access(resolved);
|
|
22
|
-
real = await promises.realpath(resolved);
|
|
23
|
-
} catch {
|
|
24
|
-
const parentDir = path.dirname(resolved);
|
|
25
|
-
let realParent;
|
|
26
|
-
try {
|
|
27
|
-
await promises.access(parentDir);
|
|
28
|
-
realParent = await promises.realpath(parentDir);
|
|
29
|
-
} catch {
|
|
30
|
-
realParent = path.normalize(parentDir);
|
|
31
|
-
}
|
|
32
|
-
real = path.resolve(realParent, path.basename(resolved));
|
|
33
|
-
}
|
|
34
|
-
if (sandboxValidationEnabled && !isWithinRoot(real, normalizedRoot)) {
|
|
35
|
-
throw chunkXPGHS4W7_cjs.createTaggedError(
|
|
36
|
-
"PATH_OUTSIDE_SANDBOX",
|
|
37
|
-
`Path "${inputPath}" resolves to "${real}" which is outside sandbox "${normalizedRoot}"`,
|
|
38
|
-
{ inputPath, resolvedPath: real, sandboxRoot: normalizedRoot }
|
|
39
|
-
);
|
|
40
|
-
}
|
|
41
|
-
return real;
|
|
42
|
-
}
|
|
43
|
-
function isWithinRoot(path$1, root) {
|
|
44
|
-
const normalizedPath = path.normalize(path$1);
|
|
45
|
-
const normalizedRoot = path.normalize(root);
|
|
46
|
-
return normalizedPath === normalizedRoot || normalizedPath.startsWith(normalizedRoot + "/");
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
exports.resolveSandboxedPath = resolveSandboxedPath;
|
|
50
|
-
exports.setSandboxValidationEnabled = setSandboxValidationEnabled;
|
|
51
|
-
//# sourceMappingURL=chunk-ZDSZHEQU.cjs.map
|
|
52
|
-
//# sourceMappingURL=chunk-ZDSZHEQU.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/security/sandbox.ts"],"names":["realpath","resolve","normalize","access","dirname","basename","createTaggedError","path"],"mappings":";;;;;;AAIA,IAAI,wBAAA,GAA2B,KAAA;AAExB,SAAS,4BAA4B,OAAA,EAAwB;AAClE,EAAA,wBAAA,GAA2B,OAAA;AAC7B;AASA,eAAsB,oBAAA,CACpB,WACA,WAAA,EACiB;AAGjB,EAAA,IAAI,cAAA;AACJ,EAAA,IAAI;AACF,IAAA,cAAA,GAAiB,MAAMA,iBAAA,CAASC,YAAA,CAAQ,WAAW,CAAC,CAAA;AAAA,EACtD,CAAA,CAAA,MAAQ;AACN,IAAA,cAAA,GAAiBC,cAAA,CAAUD,YAAA,CAAQ,WAAW,CAAC,CAAA;AAAA,EACjD;AAGA,EAAA,MAAM,QAAA,GAAWA,YAAA,CAAQ,cAAA,EAAgB,SAAS,CAAA;AAElD,EAAA,IAAI,IAAA;AACJ,EAAA,IAAI;AAEF,IAAA,MAAME,gBAAO,QAAQ,CAAA;AACrB,IAAA,IAAA,GAAO,MAAMH,kBAAS,QAAQ,CAAA;AAAA,EAChC,CAAA,CAAA,MAAQ;AAEN,IAAA,MAAM,SAAA,GAAYI,aAAQ,QAAQ,CAAA;AAClC,IAAA,IAAI,UAAA;AACJ,IAAA,IAAI;AACF,MAAA,MAAMD,gBAAO,SAAS,CAAA;AACtB,MAAA,UAAA,GAAa,MAAMH,kBAAS,SAAS,CAAA;AAAA,IACvC,CAAA,CAAA,MAAQ;AAGN,MAAA,UAAA,GAAaE,eAAU,SAAS,CAAA;AAAA,IAClC;AACA,IAAA,IAAA,GAAOD,YAAA,CAAQ,UAAA,EAAYI,aAAA,CAAS,QAAQ,CAAC,CAAA;AAAA,EAC/C;AAEA,EAAA,IAAI,wBAAA,IAA4B,CAAC,YAAA,CAAa,IAAA,EAAM,cAAc,CAAA,EAAG;AACnE,IAAA,MAAMC,mCAAA;AAAA,MACJ,sBAAA;AAAA,MACA,CAAA,MAAA,EAAS,SAAS,CAAA,eAAA,EAAkB,IAAI,+BAA+B,cAAc,CAAA,CAAA,CAAA;AAAA,MACrF,EAAE,SAAA,EAAW,YAAA,EAAc,IAAA,EAAM,aAAa,cAAA;AAAe,KAC/D;AAAA,EACF;AAEA,EAAA,OAAO,IAAA;AACT;AAEA,SAAS,YAAA,CAAaC,QAAc,IAAA,EAAuB;AACzD,EAAA,MAAM,cAAA,GAAiBL,eAAUK,MAAI,CAAA;AACrC,EAAA,MAAM,cAAA,GAAiBL,eAAU,IAAI,CAAA;AACrC,EAAA,OAAO,cAAA,KAAmB,cAAA,IAAkB,cAAA,CAAe,UAAA,CAAW,iBAAiB,GAAG,CAAA;AAC5F","file":"chunk-ZDSZHEQU.cjs","sourcesContent":["import { resolve, normalize, dirname, basename } from \"node:path\";\nimport { realpath, access } from \"node:fs/promises\";\nimport { createTaggedError } from \"../core/runtime/Retry.js\";\n\nlet sandboxValidationEnabled = false;\n\nexport function setSandboxValidationEnabled(enabled: boolean): void {\n sandboxValidationEnabled = enabled;\n}\n\n/**\n * Resolve an input path to an absolute path within the sandbox.\n * Throws PATH_OUTSIDE_SANDBOX if the resolved path escapes the sandbox root.\n *\n * For existing files: uses realpath to resolve symlinks.\n * For non-existing files (write targets): resolves the parent directory.\n */\nexport async function resolveSandboxedPath(\n inputPath: string,\n sandboxRoot: string,\n): Promise<string> {\n // Resolve the sandbox root itself with realpath to handle platform symlinks\n // (e.g. macOS /var -> /private/var)\n let normalizedRoot: string;\n try {\n normalizedRoot = await realpath(resolve(sandboxRoot));\n } catch {\n normalizedRoot = normalize(resolve(sandboxRoot));\n }\n\n // Resolve against sandbox root\n const resolved = resolve(normalizedRoot, inputPath);\n\n let real: string;\n try {\n // Try to resolve symlinks for existing paths\n await access(resolved);\n real = await realpath(resolved);\n } catch {\n // Path does not exist — resolve parent to check containment\n const parentDir = dirname(resolved);\n let realParent: string;\n try {\n await access(parentDir);\n realParent = await realpath(parentDir);\n } catch {\n // Parent also doesn't exist — use normalized resolved path\n // (will fail at actual FS operation if truly invalid)\n realParent = normalize(parentDir);\n }\n real = resolve(realParent, basename(resolved));\n }\n\n if (sandboxValidationEnabled && !isWithinRoot(real, normalizedRoot)) {\n throw createTaggedError(\n \"PATH_OUTSIDE_SANDBOX\",\n `Path \"${inputPath}\" resolves to \"${real}\" which is outside sandbox \"${normalizedRoot}\"`,\n { inputPath, resolvedPath: real, sandboxRoot: normalizedRoot },\n );\n }\n\n return real;\n}\n\nfunction isWithinRoot(path: string, root: string): boolean {\n const normalizedPath = normalize(path);\n const normalizedRoot = normalize(root);\n return normalizedPath === normalizedRoot || normalizedPath.startsWith(normalizedRoot + \"/\");\n}\n"]}
|
package/dist/config/index.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { type ToolYamlShape } from "../tools/util/toolConfig.js";
|
|
2
|
-
export { normalizeAgentToolConfigRef } from "./ref.js";
|
|
3
|
-
export type { AgentToolConfigRef } from "./ref.js";
|
|
4
|
-
export interface LoadToolConfigOptions {
|
|
5
|
-
configPath?: string;
|
|
6
|
-
}
|
|
7
|
-
export interface CreateToolConfigOptions extends LoadToolConfigOptions {
|
|
8
|
-
overrides?: Partial<ToolYamlShape>;
|
|
9
|
-
}
|
|
10
|
-
export declare function loadToolRuntimeConfig(options?: LoadToolConfigOptions): ToolYamlShape;
|
|
11
|
-
export declare function createToolConfig(options?: CreateToolConfigOptions): ToolYamlShape;
|
|
12
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjF,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AACvD,YAAY,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEnD,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,uBAAwB,SAAQ,qBAAqB;IACpE,SAAS,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CACpC;AAED,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,qBAA0B,GAAG,aAAa,CAGxF;AAED,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,uBAA4B,GAAG,aAAa,CAIrF"}
|
package/dist/config/ref.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/** Agent-level reference to tool config files by environment. */
|
|
2
|
-
export interface AgentToolConfigRef {
|
|
3
|
-
ref?: string;
|
|
4
|
-
development?: string;
|
|
5
|
-
production?: string;
|
|
6
|
-
}
|
|
7
|
-
/** Normalize unknown value to AgentToolConfigRef. */
|
|
8
|
-
export declare function normalizeAgentToolConfigRef(raw: unknown): Partial<AgentToolConfigRef>;
|
|
9
|
-
//# sourceMappingURL=ref.d.ts.map
|
package/dist/config/ref.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ref.d.ts","sourceRoot":"","sources":["../../src/config/ref.ts"],"names":[],"mappings":"AAEA,iEAAiE;AACjE,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qDAAqD;AACrD,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAUrF"}
|
package/dist/core/index.cjs
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var chunkQEJF3KDV_cjs = require('../chunk-QEJF3KDV.cjs');
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
Object.defineProperty(exports, "DEFAULT_INPUT_SCHEMA", {
|
|
8
|
-
enumerable: true,
|
|
9
|
-
get: function () { return chunkQEJF3KDV_cjs.DEFAULT_INPUT_SCHEMA; }
|
|
10
|
-
});
|
|
11
|
-
Object.defineProperty(exports, "DEFAULT_OUTPUT_SCHEMA", {
|
|
12
|
-
enumerable: true,
|
|
13
|
-
get: function () { return chunkQEJF3KDV_cjs.DEFAULT_OUTPUT_SCHEMA; }
|
|
14
|
-
});
|
|
15
|
-
Object.defineProperty(exports, "createToolSpec", {
|
|
16
|
-
enumerable: true,
|
|
17
|
-
get: function () { return chunkQEJF3KDV_cjs.createToolSpec; }
|
|
18
|
-
});
|
|
19
|
-
//# sourceMappingURL=index.cjs.map
|
|
20
|
-
//# sourceMappingURL=index.cjs.map
|
package/dist/core/index.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.cjs"}
|
package/dist/core/index.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Core types and createToolSpec only.
|
|
3
|
-
* Use this entry point from extensions to avoid circular dependency with the main index.
|
|
4
|
-
*/
|
|
5
|
-
export type { ToolKind, Capability, HitlSideEffect, CostHints, ToolSpec, CreateToolSpecOptions, } from "./types/ToolSpec.js";
|
|
6
|
-
export { createToolSpec, DEFAULT_INPUT_SCHEMA, DEFAULT_OUTPUT_SCHEMA, } from "./types/ToolSpec.js";
|
|
7
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/core/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,YAAY,EACV,QAAQ,EACR,UAAU,EACV,cAAc,EACd,SAAS,EACT,QAAQ,EACR,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC"}
|
package/dist/core/index.js
DELETED
package/dist/core/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
|
package/dist/core/runtime.cjs
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var chunkPYCCJF7C_cjs = require('../chunk-PYCCJF7C.cjs');
|
|
4
|
-
var chunkXPGHS4W7_cjs = require('../chunk-XPGHS4W7.cjs');
|
|
5
|
-
require('../chunk-QEJF3KDV.cjs');
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
Object.defineProperty(exports, "ToolRegistry", {
|
|
10
|
-
enumerable: true,
|
|
11
|
-
get: function () { return chunkPYCCJF7C_cjs.ToolRegistry; }
|
|
12
|
-
});
|
|
13
|
-
Object.defineProperty(exports, "createTaggedError", {
|
|
14
|
-
enumerable: true,
|
|
15
|
-
get: function () { return chunkXPGHS4W7_cjs.createTaggedError; }
|
|
16
|
-
});
|
|
17
|
-
Object.defineProperty(exports, "isRetryable", {
|
|
18
|
-
enumerable: true,
|
|
19
|
-
get: function () { return chunkXPGHS4W7_cjs.isRetryable; }
|
|
20
|
-
});
|
|
21
|
-
Object.defineProperty(exports, "withRetry", {
|
|
22
|
-
enumerable: true,
|
|
23
|
-
get: function () { return chunkXPGHS4W7_cjs.withRetry; }
|
|
24
|
-
});
|
|
25
|
-
//# sourceMappingURL=runtime.cjs.map
|
|
26
|
-
//# sourceMappingURL=runtime.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"runtime.cjs"}
|
package/dist/core/runtime.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Runtime subpath export for extensions (e.g. @easynet/agent-tool-builtin-tools).
|
|
3
|
-
* Re-exports createTaggedError, ToolRegistry, ToolSpec, ExecContext, Evidence, etc.
|
|
4
|
-
*/
|
|
5
|
-
export { createTaggedError, withRetry, isRetryable } from "./runtime/Retry.js";
|
|
6
|
-
export type { RetryOptions } from "./runtime/Retry.js";
|
|
7
|
-
export { ToolRegistry } from "./registry/ToolRegistry.js";
|
|
8
|
-
export type { ToolSearchQuery } from "./registry/ToolRegistry.js";
|
|
9
|
-
export type { ToolSpec, ToolAdapter, ToolKind, Capability } from "./types/ToolSpec.js";
|
|
10
|
-
export type { ExecContext, ToolIntent, BudgetConfig } from "./types/ToolIntent.js";
|
|
11
|
-
export type { Evidence, ToolError, ToolResult } from "./types/ToolResult.js";
|
|
12
|
-
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/core/runtime.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC/E,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACvF,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACnF,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC"}
|
package/dist/core/runtime.js
DELETED
package/dist/core/runtime.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"runtime.js"}
|