@easynet/agent-tool 1.0.18 → 1.0.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/expose/mcpServer.d.ts.map +1 -1
- package/dist/api/expose/openapi.d.ts +2 -2
- package/dist/api/expose/openapi.d.ts.map +1 -1
- package/dist/api/main.cjs +17 -16
- package/dist/api/main.js +6 -5
- package/dist/api/runtimeFromConfig.d.ts.map +1 -1
- package/dist/canonicalCoreSchemas-JPTOIQKR.js +4 -0
- package/dist/{canonicalCoreSchemas-YLHVHYJZ.js.map → canonicalCoreSchemas-JPTOIQKR.js.map} +1 -1
- package/dist/canonicalCoreSchemas-K57HKGZJ.cjs +21 -0
- package/dist/{canonicalCoreSchemas-CTW6CCFY.cjs.map → canonicalCoreSchemas-K57HKGZJ.cjs.map} +1 -1
- package/dist/{chunk-6F5JHLZ7.cjs → chunk-6JWQVVL2.cjs} +24 -20
- package/dist/chunk-6JWQVVL2.cjs.map +1 -0
- package/dist/{chunk-EMI67SPN.cjs → chunk-6WQYJLVU.cjs} +151 -45
- package/dist/chunk-6WQYJLVU.cjs.map +1 -0
- package/dist/{chunk-SOFUWEZ6.cjs → chunk-FGGTT32N.cjs} +9 -3
- package/dist/chunk-FGGTT32N.cjs.map +1 -0
- package/dist/{chunk-5SWSNVMI.js → chunk-GWBJEGS7.js} +9 -4
- package/dist/chunk-GWBJEGS7.js.map +1 -0
- package/dist/{chunk-RKN4PT7P.js → chunk-IGMDLCV7.js} +138 -33
- package/dist/chunk-IGMDLCV7.js.map +1 -0
- package/dist/{chunk-OXTQULXH.cjs → chunk-INYWD3OJ.cjs} +14 -13
- package/dist/chunk-INYWD3OJ.cjs.map +1 -0
- package/dist/{chunk-AE6FSNGY.js → chunk-IU35EFPK.js} +14 -10
- package/dist/chunk-IU35EFPK.js.map +1 -0
- package/dist/{chunk-7WI5VK5G.js → chunk-NNMMUG2X.js} +3 -3
- package/dist/{chunk-7WI5VK5G.js.map → chunk-NNMMUG2X.js.map} +1 -1
- package/dist/{chunk-7MRBWT2T.js → chunk-OHDIMQ22.js} +4 -4
- package/dist/{chunk-7MRBWT2T.js.map → chunk-OHDIMQ22.js.map} +1 -1
- package/dist/{chunk-ZNJBRLKN.cjs → chunk-ONIBCU2Y.cjs} +14 -10
- package/dist/chunk-ONIBCU2Y.cjs.map +1 -0
- package/dist/{chunk-FR2CXERF.js → chunk-P5UPHQ7N.js} +24 -20
- package/dist/chunk-P5UPHQ7N.js.map +1 -0
- package/dist/{chunk-YK2MQDNJ.cjs → chunk-QP6JJF76.cjs} +11 -11
- package/dist/{chunk-YK2MQDNJ.cjs.map → chunk-QP6JJF76.cjs.map} +1 -1
- package/dist/{chunk-ZIFQWIN3.cjs → chunk-TAW4FP3A.cjs} +18 -18
- package/dist/{chunk-ZIFQWIN3.cjs.map → chunk-TAW4FP3A.cjs.map} +1 -1
- package/dist/{chunk-ETWGKCOP.js → chunk-WKWSXCS4.js} +9 -8
- package/dist/chunk-WKWSXCS4.js.map +1 -0
- package/dist/core/index.cjs +4 -4
- package/dist/core/index.js +1 -1
- package/dist/core/registry/ToolRegistry.d.ts +2 -2
- package/dist/core/registry/ToolRegistry.d.ts.map +1 -1
- package/dist/core/runtime/PTCRuntimePipeline.d.ts +1 -1
- package/dist/core/runtime/PTCRuntimePipeline.d.ts.map +1 -1
- package/dist/core/runtime.cjs +6 -5
- package/dist/core/runtime.js +2 -1
- package/dist/core/types/ToolSpec.d.ts +5 -0
- package/dist/core/types/ToolSpec.d.ts.map +1 -1
- package/dist/index.cjs +81 -73
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -10
- package/dist/tools/util/canonicalCoreSchemas.d.ts.map +1 -1
- package/dist/tools/util/index.d.ts +1 -1
- package/dist/tools/util/index.d.ts.map +1 -1
- package/dist/tools/util/toolDescriptor.d.ts +11 -13
- package/dist/tools/util/toolDescriptor.d.ts.map +1 -1
- package/dist/utils/cli/index.cjs +23 -23
- package/dist/utils/cli/index.cjs.map +1 -1
- package/dist/utils/cli/index.js +8 -8
- package/dist/utils/cli/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/canonicalCoreSchemas-CTW6CCFY.cjs +0 -20
- package/dist/canonicalCoreSchemas-YLHVHYJZ.js +0 -3
- package/dist/chunk-5SWSNVMI.js.map +0 -1
- package/dist/chunk-6F5JHLZ7.cjs.map +0 -1
- package/dist/chunk-AE6FSNGY.js.map +0 -1
- package/dist/chunk-EMI67SPN.cjs.map +0 -1
- package/dist/chunk-ETWGKCOP.js.map +0 -1
- package/dist/chunk-FR2CXERF.js.map +0 -1
- package/dist/chunk-OXTQULXH.cjs.map +0 -1
- package/dist/chunk-RKN4PT7P.js.map +0 -1
- package/dist/chunk-SOFUWEZ6.cjs.map +0 -1
- package/dist/chunk-ZNJBRLKN.cjs.map +0 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var chunkFGGTT32N_cjs = require('./chunk-FGGTT32N.cjs');
|
|
3
4
|
var pRetry = require('p-retry');
|
|
4
5
|
|
|
5
6
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
@@ -19,8 +20,10 @@ var ToolRegistry = class {
|
|
|
19
20
|
*/
|
|
20
21
|
register(spec) {
|
|
21
22
|
this.validateSpec(spec);
|
|
22
|
-
|
|
23
|
-
|
|
23
|
+
const name = chunkFGGTT32N_cjs.normalizeToolName(spec.name);
|
|
24
|
+
const normalized = { ...spec, name };
|
|
25
|
+
this.tools.set(name, normalized);
|
|
26
|
+
this.indexTool(normalized);
|
|
24
27
|
}
|
|
25
28
|
/**
|
|
26
29
|
* Register multiple tool specs at once.
|
|
@@ -34,23 +37,24 @@ var ToolRegistry = class {
|
|
|
34
37
|
* Unregister a tool by name.
|
|
35
38
|
*/
|
|
36
39
|
unregister(name) {
|
|
37
|
-
const
|
|
40
|
+
const key = chunkFGGTT32N_cjs.normalizeToolName(name);
|
|
41
|
+
const spec = this.tools.get(key);
|
|
38
42
|
if (!spec) return false;
|
|
39
|
-
this.tools.delete(
|
|
43
|
+
this.tools.delete(key);
|
|
40
44
|
this.deindexTool(spec);
|
|
41
45
|
return true;
|
|
42
46
|
}
|
|
43
47
|
/**
|
|
44
|
-
* Get a tool spec by name.
|
|
48
|
+
* Get a tool spec by name (name is normalized before lookup).
|
|
45
49
|
*/
|
|
46
50
|
get(name) {
|
|
47
|
-
return this.tools.get(name);
|
|
51
|
+
return this.tools.get(chunkFGGTT32N_cjs.normalizeToolName(name));
|
|
48
52
|
}
|
|
49
53
|
/**
|
|
50
|
-
* Check if a tool exists.
|
|
54
|
+
* Check if a tool exists (name is normalized before lookup).
|
|
51
55
|
*/
|
|
52
56
|
has(name) {
|
|
53
|
-
return this.tools.has(name);
|
|
57
|
+
return this.tools.has(chunkFGGTT32N_cjs.normalizeToolName(name));
|
|
54
58
|
}
|
|
55
59
|
/**
|
|
56
60
|
* Search tools by query.
|
|
@@ -206,5 +210,5 @@ exports.ToolRegistry = ToolRegistry;
|
|
|
206
210
|
exports.createTaggedError = createTaggedError;
|
|
207
211
|
exports.isRetryable = isRetryable;
|
|
208
212
|
exports.withRetry = withRetry;
|
|
209
|
-
//# sourceMappingURL=chunk-
|
|
210
|
-
//# sourceMappingURL=chunk-
|
|
213
|
+
//# sourceMappingURL=chunk-ONIBCU2Y.cjs.map
|
|
214
|
+
//# sourceMappingURL=chunk-ONIBCU2Y.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/core/registry/ToolRegistry.ts","../src/core/runtime/Retry.ts"],"names":["normalizeToolName","pRetry"],"mappings":";;;;;;;;;;AAqBO,IAAM,eAAN,MAAmB;AAAA,EACP,KAAA,uBAAY,GAAA,EAAsB;AAAA,EAClC,QAAA,uBAAe,GAAA,EAAyB;AAAA;AAAA,EACxC,SAAA,uBAAgB,GAAA,EAA2B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM5D,SAAS,IAAA,EAAsB;AAC7B,IAAA,IAAA,CAAK,aAAa,IAAI,CAAA;AACtB,IAAA,MAAM,IAAA,GAAOA,mCAAA,CAAkB,IAAA,CAAK,IAAI,CAAA;AACxC,IAAA,MAAM,UAAA,GAAa,EAAE,GAAG,IAAA,EAAM,IAAA,EAAK;AACnC,IAAA,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,IAAA,EAAM,UAAU,CAAA;AAC/B,IAAA,IAAA,CAAK,UAAU,UAAU,CAAA;AAAA,EAC3B;AAAA;AAAA;AAAA;AAAA,EAKA,aAAa,KAAA,EAAyB;AACpC,IAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACxB,MAAA,IAAA,CAAK,SAAS,IAAI,CAAA;AAAA,IACpB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,WAAW,IAAA,EAAuB;AAChC,IAAA,MAAM,GAAA,GAAMA,oCAAkB,IAAI,CAAA;AAClC,IAAA,MAAM,IAAA,GAAO,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,GAAG,CAAA;AAC/B,IAAA,IAAI,CAAC,MAAM,OAAO,KAAA;AAClB,IAAA,IAAA,CAAK,KAAA,CAAM,OAAO,GAAG,CAAA;AACrB,IAAA,IAAA,CAAK,YAAY,IAAI,CAAA;AACrB,IAAA,OAAO,IAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,IAAA,EAAoC;AACtC,IAAA,OAAO,IAAA,CAAK,KAAA,CAAM,GAAA,CAAIA,mCAAA,CAAkB,IAAI,CAAC,CAAA;AAAA,EAC/C;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,IAAA,EAAuB;AACzB,IAAA,OAAO,IAAA,CAAK,KAAA,CAAM,GAAA,CAAIA,mCAAA,CAAkB,IAAI,CAAC,CAAA;AAAA,EAC/C;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,KAAA,EAAoC;AACzC,IAAA,IAAI,UAAA;AAGJ,IAAA,IAAI,MAAM,IAAA,EAAM;AACd,MAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,SAAA,CAAU,GAAA,CAAI,MAAM,IAAI,CAAA;AAC3C,MAAA,IAAI,CAAC,KAAA,IAAS,KAAA,CAAM,IAAA,KAAS,CAAA,SAAU,EAAC;AACxC,MAAA,UAAA,GAAa,CAAC,GAAG,KAAK,CAAA,CACnB,GAAA,CAAI,CAAC,CAAA,KAAM,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,CAAC,CAAC,CAAA,CAC5B,OAAO,CAAC,CAAA,KAAqB,MAAM,MAAS,CAAA;AAAA,IACjD,CAAA,MAAO;AACL,MAAA,UAAA,GAAa,CAAC,GAAG,IAAA,CAAK,KAAA,CAAM,QAAQ,CAAA;AAAA,IACtC;AAGA,IAAA,IAAI,KAAA,CAAM,IAAA,IAAQ,KAAA,CAAM,IAAA,CAAK,SAAS,CAAA,EAAG;AACvC,MAAA,UAAA,GAAa,UAAA,CAAW,MAAA;AAAA,QAAO,CAAC,IAAA,KAC9B,KAAA,CAAM,IAAA,CAAM,IAAA,CAAK,CAAC,GAAA,KAAQ,IAAA,CAAK,IAAA,EAAM,QAAA,CAAS,GAAG,CAAC;AAAA,OACpD;AAAA,IACF;AAGA,IAAA,IAAI,KAAA,CAAM,YAAA,IAAgB,KAAA,CAAM,YAAA,CAAa,SAAS,CAAA,EAAG;AACvD,MAAA,UAAA,GAAa,UAAA,CAAW,MAAA;AAAA,QAAO,CAAC,IAAA,KAC9B,KAAA,CAAM,YAAA,CAAc,KAAA,CAAM,CAAC,GAAA,KAAQ,IAAA,CAAK,YAAA,CAAa,QAAA,CAAS,GAAG,CAAC;AAAA,OACpE;AAAA,IACF;AAGA,IAAA,IAAI,MAAM,IAAA,EAAM;AACd,MAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,IAAA,CAAK,WAAA,EAAY;AACrC,MAAA,UAAA,GAAa,UAAA,CAAW,MAAA;AAAA,QACtB,CAAC,IAAA,KACC,IAAA,CAAK,IAAA,CAAK,WAAA,EAAY,CAAE,QAAA,CAAS,KAAK,CAAA,IACtC,IAAA,CAAK,WAAA,EAAa,WAAA,EAAY,CAAE,SAAS,KAAK,CAAA,IAC9C,IAAA,CAAK,IAAA,EAAM,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,WAAA,EAAY,CAAE,QAAA,CAAS,KAAK,CAAC;AAAA,OAC1D;AAAA,IACF;AAEA,IAAA,OAAO,UAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,IAAA,GAAiB;AACf,IAAA,OAAO,CAAC,GAAG,IAAA,CAAK,KAAA,CAAM,MAAM,CAAA;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,IAAA,GAAe;AACjB,IAAA,OAAO,KAAK,KAAA,CAAM,IAAA;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA,EAKA,QAAA,GAAuB;AACrB,IAAA,OAAO,CAAC,GAAG,IAAA,CAAK,KAAA,CAAM,QAAQ,CAAA;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA,EAKA,KAAA,GAAc;AACZ,IAAA,IAAA,CAAK,MAAM,KAAA,EAAM;AACjB,IAAA,IAAA,CAAK,SAAS,KAAA,EAAM;AACpB,IAAA,IAAA,CAAK,UAAU,KAAA,EAAM;AAAA,EACvB;AAAA,EAEQ,aAAa,IAAA,EAAsB;AACzC,IAAA,IAAI,CAAC,IAAA,CAAK,IAAA,EAAM,MAAM,IAAI,MAAM,2BAA2B,CAAA;AAC3D,IAAA,IAAI,CAAC,IAAA,CAAK,OAAA,EAAS,MAAM,IAAI,MAAM,8BAA8B,CAAA;AACjE,IAAA,IAAI,CAAC,IAAA,CAAK,IAAA,EAAM,MAAM,IAAI,MAAM,2BAA2B,CAAA;AAC3D,IAAA,IAAI,CAAC,IAAA,CAAK,WAAA,EAAa,MAAM,IAAI,MAAM,kCAAkC,CAAA;AACzE,IAAA,IAAI,CAAC,IAAA,CAAK,YAAA,EAAc,MAAM,IAAI,MAAM,mCAAmC,CAAA;AAC3E,IAAA,IAAI,CAAC,IAAA,CAAK,YAAA,EAAc,MAAM,IAAI,MAAM,mCAAmC,CAAA;AAAA,EAC7E;AAAA,EAEQ,UAAU,IAAA,EAAsB;AAEtC,IAAA,IAAI,OAAA,GAAU,IAAA,CAAK,SAAA,CAAU,GAAA,CAAI,KAAK,IAAI,CAAA;AAC1C,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,OAAA,uBAAc,GAAA,EAAI;AAClB,MAAA,IAAA,CAAK,SAAA,CAAU,GAAA,CAAI,IAAA,CAAK,IAAA,EAAM,OAAO,CAAA;AAAA,IACvC;AACA,IAAA,OAAA,CAAQ,GAAA,CAAI,KAAK,IAAI,CAAA;AAGrB,IAAA,IAAI,KAAK,IAAA,EAAM;AACb,MAAA,KAAA,MAAW,GAAA,IAAO,KAAK,IAAA,EAAM;AAC3B,QAAA,IAAI,MAAA,GAAS,IAAA,CAAK,QAAA,CAAS,GAAA,CAAI,GAAG,CAAA;AAClC,QAAA,IAAI,CAAC,MAAA,EAAQ;AACX,UAAA,MAAA,uBAAa,GAAA,EAAI;AACjB,UAAA,IAAA,CAAK,QAAA,CAAS,GAAA,CAAI,GAAA,EAAK,MAAM,CAAA;AAAA,QAC/B;AACA,QAAA,MAAA,CAAO,GAAA,CAAI,KAAK,IAAI,CAAA;AAAA,MACtB;AAAA,IACF;AAAA,EACF;AAAA,EAEQ,YAAY,IAAA,EAAsB;AACxC,IAAA,IAAA,CAAK,UAAU,GAAA,CAAI,IAAA,CAAK,IAAI,CAAA,EAAG,MAAA,CAAO,KAAK,IAAI,CAAA;AAC/C,IAAA,IAAI,KAAK,IAAA,EAAM;AACb,MAAA,KAAA,MAAW,GAAA,IAAO,KAAK,IAAA,EAAM;AAC3B,QAAA,IAAA,CAAK,SAAS,GAAA,CAAI,GAAG,CAAA,EAAG,MAAA,CAAO,KAAK,IAAI,CAAA;AAAA,MAC1C;AAAA,IACF;AAAA,EACF;AACF;ACpKA,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,OAAOC,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-ONIBCU2Y.cjs","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","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"]}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { normalizeToolName } from './chunk-GWBJEGS7.js';
|
|
2
|
+
|
|
1
3
|
// src/tools/util/canonicalCoreSchemas.ts
|
|
2
4
|
var S = (o) => o;
|
|
3
5
|
var CORE_TOOL_SCHEMAS = {
|
|
@@ -25,7 +27,7 @@ var CORE_TOOL_SCHEMAS = {
|
|
|
25
27
|
}
|
|
26
28
|
})
|
|
27
29
|
},
|
|
28
|
-
"core
|
|
30
|
+
"core.fs.writeText": {
|
|
29
31
|
inputSchema: S({
|
|
30
32
|
type: "object",
|
|
31
33
|
properties: {
|
|
@@ -36,7 +38,7 @@ var CORE_TOOL_SCHEMAS = {
|
|
|
36
38
|
additionalProperties: false
|
|
37
39
|
})
|
|
38
40
|
},
|
|
39
|
-
"core
|
|
41
|
+
"core.fs.listDir": {
|
|
40
42
|
inputSchema: S({
|
|
41
43
|
type: "object",
|
|
42
44
|
properties: {
|
|
@@ -47,7 +49,7 @@ var CORE_TOOL_SCHEMAS = {
|
|
|
47
49
|
additionalProperties: false
|
|
48
50
|
})
|
|
49
51
|
},
|
|
50
|
-
"core
|
|
52
|
+
"core.fs.searchText": {
|
|
51
53
|
inputSchema: S({
|
|
52
54
|
type: "object",
|
|
53
55
|
properties: {
|
|
@@ -59,7 +61,7 @@ var CORE_TOOL_SCHEMAS = {
|
|
|
59
61
|
additionalProperties: false
|
|
60
62
|
})
|
|
61
63
|
},
|
|
62
|
-
"core
|
|
64
|
+
"core.fs.sha256": {
|
|
63
65
|
inputSchema: S({
|
|
64
66
|
type: "object",
|
|
65
67
|
properties: {
|
|
@@ -69,7 +71,7 @@ var CORE_TOOL_SCHEMAS = {
|
|
|
69
71
|
additionalProperties: false
|
|
70
72
|
})
|
|
71
73
|
},
|
|
72
|
-
"core
|
|
74
|
+
"core.fs.deletePath": {
|
|
73
75
|
inputSchema: S({
|
|
74
76
|
type: "object",
|
|
75
77
|
properties: {
|
|
@@ -79,7 +81,7 @@ var CORE_TOOL_SCHEMAS = {
|
|
|
79
81
|
additionalProperties: false
|
|
80
82
|
})
|
|
81
83
|
},
|
|
82
|
-
"core
|
|
84
|
+
"core.http.fetchText": {
|
|
83
85
|
inputSchema: S({
|
|
84
86
|
type: "object",
|
|
85
87
|
properties: {
|
|
@@ -91,7 +93,7 @@ var CORE_TOOL_SCHEMAS = {
|
|
|
91
93
|
additionalProperties: false
|
|
92
94
|
})
|
|
93
95
|
},
|
|
94
|
-
"core
|
|
96
|
+
"core.http.fetchJson": {
|
|
95
97
|
inputSchema: S({
|
|
96
98
|
type: "object",
|
|
97
99
|
properties: {
|
|
@@ -102,7 +104,7 @@ var CORE_TOOL_SCHEMAS = {
|
|
|
102
104
|
additionalProperties: false
|
|
103
105
|
})
|
|
104
106
|
},
|
|
105
|
-
"core
|
|
107
|
+
"core.http.downloadFile": {
|
|
106
108
|
inputSchema: S({
|
|
107
109
|
type: "object",
|
|
108
110
|
properties: {
|
|
@@ -114,7 +116,7 @@ var CORE_TOOL_SCHEMAS = {
|
|
|
114
116
|
additionalProperties: false
|
|
115
117
|
})
|
|
116
118
|
},
|
|
117
|
-
"core
|
|
119
|
+
"core.http.head": {
|
|
118
120
|
inputSchema: S({
|
|
119
121
|
type: "object",
|
|
120
122
|
properties: {
|
|
@@ -124,7 +126,7 @@ var CORE_TOOL_SCHEMAS = {
|
|
|
124
126
|
additionalProperties: false
|
|
125
127
|
})
|
|
126
128
|
},
|
|
127
|
-
"core
|
|
129
|
+
"core.http.duckduckgoSearch": {
|
|
128
130
|
inputSchema: S({
|
|
129
131
|
type: "object",
|
|
130
132
|
properties: {
|
|
@@ -135,7 +137,7 @@ var CORE_TOOL_SCHEMAS = {
|
|
|
135
137
|
additionalProperties: false
|
|
136
138
|
})
|
|
137
139
|
},
|
|
138
|
-
"core
|
|
140
|
+
"core.http.fetchPageMainContent": {
|
|
139
141
|
inputSchema: S({
|
|
140
142
|
type: "object",
|
|
141
143
|
properties: {
|
|
@@ -146,7 +148,7 @@ var CORE_TOOL_SCHEMAS = {
|
|
|
146
148
|
additionalProperties: false
|
|
147
149
|
})
|
|
148
150
|
},
|
|
149
|
-
"core
|
|
151
|
+
"core.util.json.select": {
|
|
150
152
|
inputSchema: S({
|
|
151
153
|
type: "object",
|
|
152
154
|
properties: {
|
|
@@ -157,7 +159,7 @@ var CORE_TOOL_SCHEMAS = {
|
|
|
157
159
|
additionalProperties: false
|
|
158
160
|
})
|
|
159
161
|
},
|
|
160
|
-
"core
|
|
162
|
+
"core.util.text.truncate": {
|
|
161
163
|
inputSchema: S({
|
|
162
164
|
type: "object",
|
|
163
165
|
properties: {
|
|
@@ -168,7 +170,7 @@ var CORE_TOOL_SCHEMAS = {
|
|
|
168
170
|
additionalProperties: false
|
|
169
171
|
})
|
|
170
172
|
},
|
|
171
|
-
"core
|
|
173
|
+
"core.util.hash.sha256Text": {
|
|
172
174
|
inputSchema: S({
|
|
173
175
|
type: "object",
|
|
174
176
|
properties: {
|
|
@@ -178,7 +180,7 @@ var CORE_TOOL_SCHEMAS = {
|
|
|
178
180
|
additionalProperties: false
|
|
179
181
|
})
|
|
180
182
|
},
|
|
181
|
-
"core
|
|
183
|
+
"core.util.time.now": {
|
|
182
184
|
inputSchema: S({
|
|
183
185
|
type: "object",
|
|
184
186
|
properties: {
|
|
@@ -187,7 +189,7 @@ var CORE_TOOL_SCHEMAS = {
|
|
|
187
189
|
additionalProperties: false
|
|
188
190
|
})
|
|
189
191
|
},
|
|
190
|
-
"core
|
|
192
|
+
"core.util.template.render": {
|
|
191
193
|
inputSchema: S({
|
|
192
194
|
type: "object",
|
|
193
195
|
properties: {
|
|
@@ -198,7 +200,7 @@ var CORE_TOOL_SCHEMAS = {
|
|
|
198
200
|
additionalProperties: false
|
|
199
201
|
})
|
|
200
202
|
},
|
|
201
|
-
"core
|
|
203
|
+
"core.exec.runCommand": {
|
|
202
204
|
inputSchema: S({
|
|
203
205
|
type: "object",
|
|
204
206
|
properties: {
|
|
@@ -222,7 +224,9 @@ function isGenericSchema(schema) {
|
|
|
222
224
|
}
|
|
223
225
|
function enrichSpecWithCanonicalSchema(spec) {
|
|
224
226
|
if (spec.kind !== "core") return spec;
|
|
225
|
-
const
|
|
227
|
+
const coreSuffix = spec.name.includes(".core.") ? spec.name.slice(spec.name.indexOf(".core.") + 1) : spec.name;
|
|
228
|
+
const key = normalizeToolName(coreSuffix);
|
|
229
|
+
const canonical = CORE_TOOL_SCHEMAS[key];
|
|
226
230
|
if (!canonical) return spec;
|
|
227
231
|
const useInput = isGenericSchema(spec.inputSchema) ? canonical.inputSchema : spec.inputSchema;
|
|
228
232
|
const useOutput = canonical.outputSchema && isGenericSchema(spec.outputSchema) ? canonical.outputSchema : spec.outputSchema;
|
|
@@ -235,5 +239,5 @@ function enrichSpecWithCanonicalSchema(spec) {
|
|
|
235
239
|
}
|
|
236
240
|
|
|
237
241
|
export { CORE_TOOL_SCHEMAS, enrichSpecWithCanonicalSchema, isGenericSchema };
|
|
238
|
-
//# sourceMappingURL=chunk-
|
|
239
|
-
//# sourceMappingURL=chunk-
|
|
242
|
+
//# sourceMappingURL=chunk-P5UPHQ7N.js.map
|
|
243
|
+
//# sourceMappingURL=chunk-P5UPHQ7N.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/tools/util/canonicalCoreSchemas.ts"],"names":[],"mappings":"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","file":"chunk-P5UPHQ7N.js","sourcesContent":["/**\n * Canonical input/output schemas for core (builtin) tools.\n * Used when the builtin package registers specs with generic schema\n * (type: object, additionalProperties: true) so CLI describe and OpenAPI show real schemas.\n */\n\nimport type { ToolSpec } from \"../../core/types/ToolSpec.js\";\nimport { normalizeToolName } from \"../../core/types/ToolSpec.js\";\n\nconst S = (o: object) => o as Record<string, unknown>;\n\n/** Canonical inputSchema (and optional outputSchema) by tool name (e.g. core/fs.readText). */\nexport const CORE_TOOL_SCHEMAS: Record<\n string,\n { inputSchema: object; outputSchema?: object }\n> = {\n \"core/fs.readText\": {\n inputSchema: S({\n type: \"object\",\n properties: {\n path: { type: \"string\", description: \"Path to the file (within sandbox)\" },\n maxBytes: { type: \"number\", description: \"Max bytes to read (optional)\" },\n },\n required: [\"path\"],\n additionalProperties: false,\n }),\n outputSchema: S({\n type: \"object\",\n properties: {\n result: {\n type: \"object\",\n properties: {\n path: { type: \"string\" },\n text: { type: \"string\" },\n bytes: { type: \"number\" },\n },\n },\n },\n }),\n },\n \"core.fs.writeText\": {\n inputSchema: S({\n type: \"object\",\n properties: {\n path: { type: \"string\", description: \"Path to write (within sandbox)\" },\n content: { type: \"string\", description: \"UTF-8 content to write\" },\n },\n required: [\"path\", \"content\"],\n additionalProperties: false,\n }),\n },\n \"core.fs.listDir\": {\n inputSchema: S({\n type: \"object\",\n properties: {\n path: { type: \"string\", description: \"Directory path (within sandbox)\" },\n maxEntries: { type: \"number\", description: \"Max entries to return (optional)\" },\n },\n required: [\"path\"],\n additionalProperties: false,\n }),\n },\n \"core.fs.searchText\": {\n inputSchema: S({\n type: \"object\",\n properties: {\n path: { type: \"string\", description: \"Path to file or directory\" },\n pattern: { type: \"string\", description: \"Search pattern (regex or literal)\" },\n maxMatches: { type: \"number\", description: \"Max matches (optional)\" },\n },\n required: [\"path\", \"pattern\"],\n additionalProperties: false,\n }),\n },\n \"core.fs.sha256\": {\n inputSchema: S({\n type: \"object\",\n properties: {\n path: { type: \"string\", description: \"Path to file (within sandbox)\" },\n },\n required: [\"path\"],\n additionalProperties: false,\n }),\n },\n \"core.fs.deletePath\": {\n inputSchema: S({\n type: \"object\",\n properties: {\n path: { type: \"string\", description: \"Path to delete (within sandbox)\" },\n },\n required: [\"path\"],\n additionalProperties: false,\n }),\n },\n \"core.http.fetchText\": {\n inputSchema: S({\n type: \"object\",\n properties: {\n url: { type: \"string\", description: \"URL to fetch\" },\n headers: { type: \"object\", additionalProperties: { type: \"string\" }, description: \"Optional request headers\" },\n timeoutMs: { type: \"number\", description: \"Request timeout in ms (optional)\" },\n },\n required: [\"url\"],\n additionalProperties: false,\n }),\n },\n \"core.http.fetchJson\": {\n inputSchema: S({\n type: \"object\",\n properties: {\n url: { type: \"string\", description: \"URL to fetch\" },\n headers: { type: \"object\", additionalProperties: { type: \"string\" } },\n },\n required: [\"url\"],\n additionalProperties: false,\n }),\n },\n \"core.http.downloadFile\": {\n inputSchema: S({\n type: \"object\",\n properties: {\n url: { type: \"string\", description: \"URL to download\" },\n destPath: { type: \"string\", description: \"Destination path (within sandbox)\" },\n headers: { type: \"object\", additionalProperties: { type: \"string\" } },\n },\n required: [\"url\", \"destPath\"],\n additionalProperties: false,\n }),\n },\n \"core.http.head\": {\n inputSchema: S({\n type: \"object\",\n properties: {\n url: { type: \"string\", description: \"URL for HEAD request\" },\n },\n required: [\"url\"],\n additionalProperties: false,\n }),\n },\n \"core.http.duckduckgoSearch\": {\n inputSchema: S({\n type: \"object\",\n properties: {\n query: { type: \"string\", description: \"Search query\" },\n maxResults: { type: \"number\", description: \"Max results (optional)\" },\n },\n required: [\"query\"],\n additionalProperties: false,\n }),\n },\n \"core.http.fetchPageMainContent\": {\n inputSchema: S({\n type: \"object\",\n properties: {\n url: { type: \"string\", description: \"Page URL\" },\n maxLength: { type: \"number\", description: \"Max content length (optional)\" },\n },\n required: [\"url\"],\n additionalProperties: false,\n }),\n },\n \"core.util.json.select\": {\n inputSchema: S({\n type: \"object\",\n properties: {\n json: { description: \"JSON value (object or string)\" },\n selector: { type: \"string\", description: \"JSONPath or selector\" },\n },\n required: [\"json\", \"selector\"],\n additionalProperties: false,\n }),\n },\n \"core.util.text.truncate\": {\n inputSchema: S({\n type: \"object\",\n properties: {\n text: { type: \"string\", description: \"Text to truncate\" },\n maxLength: { type: \"number\", description: \"Max length\" },\n },\n required: [\"text\", \"maxLength\"],\n additionalProperties: false,\n }),\n },\n \"core.util.hash.sha256Text\": {\n inputSchema: S({\n type: \"object\",\n properties: {\n text: { type: \"string\", description: \"Text to hash\" },\n },\n required: [\"text\"],\n additionalProperties: false,\n }),\n },\n \"core.util.time.now\": {\n inputSchema: S({\n type: \"object\",\n properties: {\n timezone: { type: \"string\", description: \"IANA timezone (optional)\" },\n },\n additionalProperties: false,\n }),\n },\n \"core.util.template.render\": {\n inputSchema: S({\n type: \"object\",\n properties: {\n template: { type: \"string\", description: \"Template string (e.g. Mustache)\" },\n data: { type: \"object\", description: \"Data object for template\" },\n },\n required: [\"template\", \"data\"],\n additionalProperties: false,\n }),\n },\n \"core.exec.runCommand\": {\n inputSchema: S({\n type: \"object\",\n properties: {\n command: { type: \"string\", description: \"Command to run\" },\n args: { type: \"array\", items: { type: \"string\" }, description: \"Arguments (optional)\" },\n cwd: { type: \"string\", description: \"Working directory (optional)\" },\n timeoutMs: { type: \"number\", description: \"Timeout in ms (optional)\" },\n },\n required: [\"command\"],\n additionalProperties: false,\n }),\n },\n};\n\n/** True if schema looks like the generic permissive one. */\nexport function isGenericSchema(schema: unknown): boolean {\n if (schema === null || typeof schema !== \"object\") return false;\n const s = schema as Record<string, unknown>;\n if (s.type !== \"object\") return false;\n if (s.additionalProperties === true && !s.properties) return true;\n if (s.properties === undefined && s.required === undefined) return true;\n return false;\n}\n\n/**\n * If spec is a core tool with generic input/output schema, return spec with canonical schema.\n * Otherwise return spec unchanged.\n */\nexport function enrichSpecWithCanonicalSchema(spec: ToolSpec): ToolSpec {\n if (spec.kind !== \"core\") return spec;\n // Support prefixed names (e.g. npm.easynet.agent.tool.buildin.latest.core.fs.readText) by matching core.* suffix\n const coreSuffix = spec.name.includes(\".core.\") ? spec.name.slice(spec.name.indexOf(\".core.\") + 1) : spec.name;\n const key = normalizeToolName(coreSuffix);\n const canonical = CORE_TOOL_SCHEMAS[key];\n if (!canonical) return spec;\n const useInput = isGenericSchema(spec.inputSchema) ? canonical.inputSchema : spec.inputSchema;\n const useOutput =\n canonical.outputSchema && isGenericSchema(spec.outputSchema)\n ? canonical.outputSchema\n : spec.outputSchema;\n if (useInput === spec.inputSchema && useOutput === spec.outputSchema) return spec;\n return {\n ...spec,\n inputSchema: useInput,\n outputSchema: useOutput,\n };\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var chunk6WQYJLVU_cjs = require('./chunk-6WQYJLVU.cjs');
|
|
4
|
+
var chunkFGGTT32N_cjs = require('./chunk-FGGTT32N.cjs');
|
|
5
5
|
var fs3 = require('fs/promises');
|
|
6
6
|
var path9 = require('path');
|
|
7
7
|
var fs2 = require('fs');
|
|
@@ -276,7 +276,7 @@ function mcpSpecToToolSpec(spec, projectPath) {
|
|
|
276
276
|
kind: spec.kind,
|
|
277
277
|
description: spec.description,
|
|
278
278
|
inputSchema: spec.inputSchema ?? DEFAULT_OUTPUT,
|
|
279
|
-
outputSchema: "outputSchema" in spec && spec.outputSchema ? spec.outputSchema :
|
|
279
|
+
outputSchema: "outputSchema" in spec && spec.outputSchema ? spec.outputSchema : chunkFGGTT32N_cjs.DEFAULT_OUTPUT_SCHEMA,
|
|
280
280
|
capabilities: [],
|
|
281
281
|
_meta: spec._meta,
|
|
282
282
|
...spec.kind === N8N_KIND && "webhookUrl" in spec && spec.webhookUrl ? { endpoint: spec.webhookUrl } : {}
|
|
@@ -969,7 +969,7 @@ async function scan4(projectPath, options = {}) {
|
|
|
969
969
|
});
|
|
970
970
|
return { specs: [], errors };
|
|
971
971
|
}
|
|
972
|
-
const filtered = specs.filter((s) => s.kind ===
|
|
972
|
+
const filtered = specs.filter((s) => s.kind === chunk6WQYJLVU_cjs.MCP_KIND);
|
|
973
973
|
return { specs: filtered, errors };
|
|
974
974
|
}
|
|
975
975
|
async function scan5(projectPath, options = {}) {
|
|
@@ -995,7 +995,7 @@ async function scan5(projectPath, options = {}) {
|
|
|
995
995
|
});
|
|
996
996
|
return { specs: [], errors };
|
|
997
997
|
}
|
|
998
|
-
const filtered = specs.filter((s) => s.kind ===
|
|
998
|
+
const filtered = specs.filter((s) => s.kind === chunk6WQYJLVU_cjs.LANGCHAIN_KIND);
|
|
999
999
|
return { specs: filtered, errors };
|
|
1000
1000
|
}
|
|
1001
1001
|
async function loadLangChainTool(dirPath, manifest, extensions) {
|
|
@@ -1412,7 +1412,7 @@ var DirectoryScanner = class {
|
|
|
1412
1412
|
false,
|
|
1413
1413
|
namespace,
|
|
1414
1414
|
this.extensions,
|
|
1415
|
-
|
|
1415
|
+
chunk6WQYJLVU_cjs.LANGCHAIN_DIR_NAME,
|
|
1416
1416
|
(loaded3, nameHint, dp, ns) => this.toToolSpec(loaded3, nameHint, dp, ns),
|
|
1417
1417
|
this.onError
|
|
1418
1418
|
);
|
|
@@ -1448,7 +1448,7 @@ var DirectoryScanner = class {
|
|
|
1448
1448
|
true,
|
|
1449
1449
|
namespace,
|
|
1450
1450
|
this.extensions,
|
|
1451
|
-
|
|
1451
|
+
chunk6WQYJLVU_cjs.LANGCHAIN_DIR_NAME,
|
|
1452
1452
|
(loaded2, nameHint, dp, ns) => this.toToolSpec(loaded2, nameHint, dp, ns),
|
|
1453
1453
|
this.onError
|
|
1454
1454
|
);
|
|
@@ -1467,7 +1467,7 @@ var DirectoryScanner = class {
|
|
|
1467
1467
|
for (const m of DIRECTORY_KIND_MARKERS) {
|
|
1468
1468
|
if (await this.fileExists(path9.join(dirPath, m.markerFile))) kinds.push(m.kind);
|
|
1469
1469
|
}
|
|
1470
|
-
const isLangchainDir = dirName ===
|
|
1470
|
+
const isLangchainDir = dirName === chunk6WQYJLVU_cjs.LANGCHAIN_DIR_NAME;
|
|
1471
1471
|
const hasLangchain = isLangchainDir ? (await listLangchainEntryFiles(dirPath, this.extensions)).length > 0 : dirName !== SKILL_DIR_NAME && await this.hasEntryPoint(dirPath, "index");
|
|
1472
1472
|
if (hasLangchain) kinds.push("langchain");
|
|
1473
1473
|
if (kinds.length === 0) return null;
|
|
@@ -1606,7 +1606,7 @@ async function scanForAllTools(projectPath, options = {}) {
|
|
|
1606
1606
|
const warnings = results.flatMap((r) => r.warnings ?? []);
|
|
1607
1607
|
return { specs, errors, warnings };
|
|
1608
1608
|
}
|
|
1609
|
-
var __dirname$1 = path9__namespace.dirname(url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('chunk-
|
|
1609
|
+
var __dirname$1 = path9__namespace.dirname(url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('chunk-QP6JJF76.cjs', document.baseURI).href))));
|
|
1610
1610
|
async function loadTemplate(name) {
|
|
1611
1611
|
for (const dir of [
|
|
1612
1612
|
path9__namespace.join(__dirname$1, "templates"),
|
|
@@ -1820,5 +1820,5 @@ exports.scan = scan;
|
|
|
1820
1820
|
exports.scanForTools = scanForTools;
|
|
1821
1821
|
exports.scanSkillResources = scanSkillResources;
|
|
1822
1822
|
exports.validateFrontmatter = validateFrontmatter;
|
|
1823
|
-
//# sourceMappingURL=chunk-
|
|
1824
|
-
//# sourceMappingURL=chunk-
|
|
1823
|
+
//# sourceMappingURL=chunk-QP6JJF76.cjs.map
|
|
1824
|
+
//# sourceMappingURL=chunk-QP6JJF76.cjs.map
|