harness-mcp-v2 3.2.3 → 3.2.5
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 +62 -3
- package/build/config.d.ts +22 -3
- package/build/config.d.ts.map +1 -1
- package/build/config.js +10 -0
- package/build/config.js.map +1 -1
- package/build/data/examples/index.d.ts +2 -0
- package/build/data/examples/index.d.ts.map +1 -1
- package/build/data/examples/index.js +4 -0
- package/build/data/examples/index.js.map +1 -1
- package/build/data/schemas/v0/pipeline.d.ts.map +1 -1
- package/build/data/schemas/v0/pipeline.js +31 -10
- package/build/data/schemas/v0/pipeline.js.map +1 -1
- package/build/data/schemas/v0/template.d.ts.map +1 -1
- package/build/data/schemas/v0/template.js +28 -10
- package/build/data/schemas/v0/template.js.map +1 -1
- package/build/index.js +67 -11
- package/build/index.js.map +1 -1
- package/build/prompts/build-deploy-app.d.ts.map +1 -1
- package/build/prompts/build-deploy-app.js +4 -3
- package/build/prompts/build-deploy-app.js.map +1 -1
- package/build/prompts/create-agent.d.ts.map +1 -1
- package/build/prompts/create-agent.js +21 -1
- package/build/prompts/create-agent.js.map +1 -1
- package/build/prompts/create-pipeline.d.ts.map +1 -1
- package/build/prompts/create-pipeline.js +1 -0
- package/build/prompts/create-pipeline.js.map +1 -1
- package/build/registry/extractors.d.ts +10 -3
- package/build/registry/extractors.d.ts.map +1 -1
- package/build/registry/extractors.js +27 -9
- package/build/registry/extractors.js.map +1 -1
- package/build/registry/toolsets/chaos-descriptions.d.ts +23 -19
- package/build/registry/toolsets/chaos-descriptions.d.ts.map +1 -1
- package/build/registry/toolsets/chaos-descriptions.js +134 -48
- package/build/registry/toolsets/chaos-descriptions.js.map +1 -1
- package/build/registry/toolsets/chaos.d.ts.map +1 -1
- package/build/registry/toolsets/chaos.js +323 -56
- package/build/registry/toolsets/chaos.js.map +1 -1
- package/build/registry/toolsets/dbops.js +2 -2
- package/build/registry/toolsets/dbops.js.map +1 -1
- package/build/registry/toolsets/idp.d.ts.map +1 -1
- package/build/registry/toolsets/idp.js +0 -6
- package/build/registry/toolsets/idp.js.map +1 -1
- package/build/registry/toolsets/pipelines.d.ts.map +1 -1
- package/build/registry/toolsets/pipelines.js +7 -5
- package/build/registry/toolsets/pipelines.js.map +1 -1
- package/build/registry/toolsets/pull-requests.d.ts.map +1 -1
- package/build/registry/toolsets/pull-requests.js +47 -2
- package/build/registry/toolsets/pull-requests.js.map +1 -1
- package/build/registry/toolsets/templates.d.ts.map +1 -1
- package/build/registry/toolsets/templates.js +28 -4
- package/build/registry/toolsets/templates.js.map +1 -1
- package/build/search/embedding-content.d.ts +5 -0
- package/build/search/embedding-content.d.ts.map +1 -0
- package/build/search/embedding-content.js +31 -0
- package/build/search/embedding-content.js.map +1 -0
- package/build/search/index.d.ts +8 -0
- package/build/search/index.d.ts.map +1 -0
- package/build/search/index.js +6 -0
- package/build/search/index.js.map +1 -0
- package/build/search/local-provider.d.ts +37 -0
- package/build/search/local-provider.d.ts.map +1 -0
- package/build/search/local-provider.js +269 -0
- package/build/search/local-provider.js.map +1 -0
- package/build/search/manager.d.ts +39 -0
- package/build/search/manager.d.ts.map +1 -0
- package/build/search/manager.js +283 -0
- package/build/search/manager.js.map +1 -0
- package/build/search/null-provider.d.ts +9 -0
- package/build/search/null-provider.d.ts.map +1 -0
- package/build/search/null-provider.js +8 -0
- package/build/search/null-provider.js.map +1 -0
- package/build/search/remote-provider.d.ts +28 -0
- package/build/search/remote-provider.d.ts.map +1 -0
- package/build/search/remote-provider.js +139 -0
- package/build/search/remote-provider.js.map +1 -0
- package/build/search/routing-eval.d.ts +49 -0
- package/build/search/routing-eval.d.ts.map +1 -0
- package/build/search/routing-eval.js +80 -0
- package/build/search/routing-eval.js.map +1 -0
- package/build/search/types.d.ts +58 -0
- package/build/search/types.d.ts.map +1 -0
- package/build/search/types.js +7 -0
- package/build/search/types.js.map +1 -0
- package/build/tools/harness-execute.d.ts.map +1 -1
- package/build/tools/harness-execute.js +19 -7
- package/build/tools/harness-execute.js.map +1 -1
- package/build/tools/harness-get.d.ts +2 -1
- package/build/tools/harness-get.d.ts.map +1 -1
- package/build/tools/harness-get.js +21 -1
- package/build/tools/harness-get.js.map +1 -1
- package/build/tools/harness-list.d.ts +2 -1
- package/build/tools/harness-list.d.ts.map +1 -1
- package/build/tools/harness-list.js +22 -1
- package/build/tools/harness-list.js.map +1 -1
- package/build/tools/harness-search.d.ts +20 -1
- package/build/tools/harness-search.d.ts.map +1 -1
- package/build/tools/harness-search.js +124 -14
- package/build/tools/harness-search.js.map +1 -1
- package/build/tools/index.d.ts +2 -1
- package/build/tools/index.d.ts.map +1 -1
- package/build/tools/index.js +4 -4
- package/build/tools/index.js.map +1 -1
- package/build/utils/http-health.d.ts +11 -0
- package/build/utils/http-health.d.ts.map +1 -0
- package/build/utils/http-health.js +11 -0
- package/build/utils/http-health.js.map +1 -0
- package/build/utils/http-sessions.d.ts +8 -0
- package/build/utils/http-sessions.d.ts.map +1 -0
- package/build/utils/http-sessions.js +12 -0
- package/build/utils/http-sessions.js.map +1 -0
- package/package.json +5 -1
|
@@ -13,10 +13,8 @@ const RELEVANCE_TIERS = {
|
|
|
13
13
|
pipeline: 1, service: 1, environment: 1, connector: 1, execution: 1,
|
|
14
14
|
template: 2, trigger: 2, input_set: 2, secret: 2, fme_feature_flag: 2,
|
|
15
15
|
repository: 2, infrastructure: 2,
|
|
16
|
-
// SCS types at tier 2 — same priority as other domain-specific resources
|
|
17
16
|
scs_artifact_source: 2, artifact_security: 2, code_repo_security: 2,
|
|
18
17
|
scs_artifact_component: 2, scs_compliance_result: 2,
|
|
19
|
-
// Everything else defaults to tier 3
|
|
20
18
|
};
|
|
21
19
|
function getTier(resourceType) {
|
|
22
20
|
return RELEVANCE_TIERS[resourceType] ?? 3;
|
|
@@ -26,7 +24,56 @@ function asResourceScope(value) {
|
|
|
26
24
|
? value
|
|
27
25
|
: undefined;
|
|
28
26
|
}
|
|
29
|
-
|
|
27
|
+
/**
|
|
28
|
+
* Tier-1 types always included in semantic routing even when embeddings miss them.
|
|
29
|
+
* Prevents confident-but-wrong routing from silently skipping core CI/CD entities.
|
|
30
|
+
*/
|
|
31
|
+
export const SEMANTIC_ROUTING_SAFETY_FLOOR = ["pipeline", "service", "environment", "connector"];
|
|
32
|
+
/**
|
|
33
|
+
* Routing threshold — semantic hits above this score are used to predict which
|
|
34
|
+
* resource types scatter-gather should target. Higher = more conservative routing
|
|
35
|
+
* (fewer types skipped, safer). Lower = more aggressive (more savings, higher miss risk).
|
|
36
|
+
*/
|
|
37
|
+
const SEMANTIC_ROUTING_THRESHOLD = 0.5;
|
|
38
|
+
/**
|
|
39
|
+
* Display threshold — semantic hits above this (but below routing threshold) are still
|
|
40
|
+
* shown as tier-0 results even if they didn't influence routing.
|
|
41
|
+
*/
|
|
42
|
+
const SEMANTIC_DISPLAY_THRESHOLD = 0.35;
|
|
43
|
+
/**
|
|
44
|
+
* Extract unique resource types from semantic results that meet the routing threshold.
|
|
45
|
+
* Uses both:
|
|
46
|
+
* - `resources` corpus hits: live Harness data already indexed for this account
|
|
47
|
+
* - `mcp_resources` corpus hits: resource_definition and entity_schema entries whose
|
|
48
|
+
* resource_type field maps directly to a listable API type (e.g. resource-def:connector
|
|
49
|
+
* → "connector"). These are the primary routing signal since mcp_resources is always
|
|
50
|
+
* indexed at startup whereas resources may be sparse.
|
|
51
|
+
*/
|
|
52
|
+
export function extractRoutingTypes(semanticResults, allTargetTypes) {
|
|
53
|
+
const targetSet = new Set(allTargetTypes);
|
|
54
|
+
const predicted = new Set();
|
|
55
|
+
for (const sr of semanticResults) {
|
|
56
|
+
if (sr.score < SEMANTIC_ROUTING_THRESHOLD)
|
|
57
|
+
continue;
|
|
58
|
+
const rt = sr.metadata["resource_type"];
|
|
59
|
+
if (rt && targetSet.has(rt)) {
|
|
60
|
+
predicted.add(rt);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return predicted.size > 0 ? Array.from(predicted) : null;
|
|
64
|
+
}
|
|
65
|
+
/** Union predicted types with tier-1 safety floor types present in the candidate set. */
|
|
66
|
+
export function applyRoutingSafetyFloor(predicted, candidateTypes) {
|
|
67
|
+
const candidateSet = new Set(candidateTypes);
|
|
68
|
+
const routed = new Set(predicted);
|
|
69
|
+
for (const rt of SEMANTIC_ROUTING_SAFETY_FLOOR) {
|
|
70
|
+
if (candidateSet.has(rt)) {
|
|
71
|
+
routed.add(rt);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return Array.from(routed);
|
|
75
|
+
}
|
|
76
|
+
export function registerSearchTool(server, registry, client, searchManager) {
|
|
30
77
|
const listableTypes = registry.getTypesForOperation("list");
|
|
31
78
|
server.registerTool("harness_search", {
|
|
32
79
|
description: "Search across multiple Harness resource types. Returns results ranked by relevance. Accepts a Harness URL for scope.",
|
|
@@ -53,26 +100,62 @@ export function registerSearchTool(server, registry, client) {
|
|
|
53
100
|
const mergedArgs = applyUrlDefaults(args, args.url, { includeResourceScope: true });
|
|
54
101
|
const requestedScope = asResourceScope(mergedArgs.resource_scope);
|
|
55
102
|
const hasExplicitResourceTypes = (args.resource_types?.length ?? 0) > 0;
|
|
56
|
-
// Determine
|
|
57
|
-
let
|
|
58
|
-
if (
|
|
59
|
-
|
|
60
|
-
targetTypes = registry.getAllResourceTypes().filter((rt) => registry.supportsOperation(rt, "list"));
|
|
103
|
+
// Determine the full candidate type list (before semantic narrowing)
|
|
104
|
+
let candidateTypes = args.resource_types ?? [];
|
|
105
|
+
if (candidateTypes.length === 0) {
|
|
106
|
+
candidateTypes = registry.getAllResourceTypes().filter((rt) => registry.supportsOperation(rt, "list"));
|
|
61
107
|
}
|
|
62
108
|
if (requestedScope && !hasExplicitResourceTypes) {
|
|
63
|
-
|
|
109
|
+
candidateTypes = candidateTypes.filter((rt) => registry.getSupportedScopes(rt).includes(requestedScope));
|
|
64
110
|
}
|
|
111
|
+
// --- Semantic routing ---
|
|
112
|
+
// Run semantic search first. If it returns high-confidence hits for specific
|
|
113
|
+
// resource types, narrow scatter-gather to only those types.
|
|
114
|
+
const provider = searchManager?.getProvider();
|
|
115
|
+
let semanticResults = [];
|
|
116
|
+
let routedTypes = null;
|
|
117
|
+
let semanticRouted = false;
|
|
118
|
+
if (provider?.isAvailable() && !hasExplicitResourceTypes) {
|
|
119
|
+
semanticResults = await provider.search(args.query, {
|
|
120
|
+
corpus: "all",
|
|
121
|
+
accountId: client.account,
|
|
122
|
+
k: 30,
|
|
123
|
+
});
|
|
124
|
+
if (semanticResults.length > 0) {
|
|
125
|
+
const predictedTypes = extractRoutingTypes(semanticResults, candidateTypes);
|
|
126
|
+
if (predictedTypes) {
|
|
127
|
+
routedTypes = applyRoutingSafetyFloor(predictedTypes, candidateTypes);
|
|
128
|
+
semanticRouted = true;
|
|
129
|
+
const floorAdded = routedTypes.filter((rt) => !predictedTypes.includes(rt));
|
|
130
|
+
log.info(`Semantic routing: narrowed from ${candidateTypes.length} → ${routedTypes.length} types`, {
|
|
131
|
+
query: args.query,
|
|
132
|
+
routed_types: routedTypes,
|
|
133
|
+
predicted_types: predictedTypes,
|
|
134
|
+
safety_floor_added: floorAdded,
|
|
135
|
+
top_score: semanticResults[0]?.score,
|
|
136
|
+
skipped: candidateTypes.length - routedTypes.length,
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
log.info(`Semantic search: no high-confidence routing hits, falling back to full scatter-gather`, {
|
|
141
|
+
query: args.query,
|
|
142
|
+
results: semanticResults.length,
|
|
143
|
+
top_score: semanticResults[0]?.score ?? 0,
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
const targetTypes = routedTypes ?? candidateTypes;
|
|
149
|
+
// --- Scatter-gather over targetTypes ---
|
|
65
150
|
const entries = [];
|
|
66
151
|
const errors = {};
|
|
67
|
-
// Run searches with concurrency limit to avoid overwhelming the API
|
|
68
152
|
const MAX_CONCURRENCY = 5;
|
|
69
153
|
const settled = [];
|
|
70
154
|
let searched = 0;
|
|
71
155
|
for (let i = 0; i < targetTypes.length; i += MAX_CONCURRENCY) {
|
|
72
|
-
// Check for cancellation between batches
|
|
73
156
|
signal.throwIfAborted();
|
|
74
157
|
const batch = targetTypes.slice(i, i + MAX_CONCURRENCY);
|
|
75
|
-
await sendProgress(extra, searched, targetTypes.length, `Searching batch ${Math.floor(i / MAX_CONCURRENCY) + 1}...`);
|
|
158
|
+
await sendProgress(extra, searched, targetTypes.length, `Searching batch ${Math.floor(i / MAX_CONCURRENCY) + 1} of ${Math.ceil(targetTypes.length / MAX_CONCURRENCY)}${semanticRouted ? " (semantic-routed)" : ""}...`);
|
|
76
159
|
const batchResults = await Promise.all(batch.map(async (rt) => {
|
|
77
160
|
try {
|
|
78
161
|
const result = await registry.dispatch(client, rt, "list", {
|
|
@@ -118,16 +201,43 @@ export function registerSearchTool(server, registry, client) {
|
|
|
118
201
|
errors[rt] = error;
|
|
119
202
|
}
|
|
120
203
|
}
|
|
121
|
-
//
|
|
204
|
+
// --- Merge semantic results ---
|
|
205
|
+
// Tier-0: semantic hits (schemas, examples, resource defs, and any live resources
|
|
206
|
+
// not already in keyword results) above display threshold
|
|
207
|
+
const keywordIds = new Set(entries.flatMap(e => e.items.map(i => String(i["identifier"] ?? i["id"] ?? ""))));
|
|
208
|
+
const seenSemanticIds = new Set();
|
|
209
|
+
let semanticMatchCount = 0;
|
|
210
|
+
for (const sr of semanticResults) {
|
|
211
|
+
if (sr.score < SEMANTIC_DISPLAY_THRESHOLD)
|
|
212
|
+
continue;
|
|
213
|
+
const dedupeId = sr.metadata["identifier"] || sr.id;
|
|
214
|
+
if (seenSemanticIds.has(dedupeId))
|
|
215
|
+
continue;
|
|
216
|
+
seenSemanticIds.add(dedupeId);
|
|
217
|
+
if (sr.metadata["identifier"] && keywordIds.has(sr.metadata["identifier"]))
|
|
218
|
+
continue;
|
|
219
|
+
semanticMatchCount++;
|
|
220
|
+
entries.push({
|
|
221
|
+
resource_type: sr.metadata["resource_type"] ?? sr.corpus,
|
|
222
|
+
tier: 0,
|
|
223
|
+
match_count: 1,
|
|
224
|
+
items: [{ ...sr.metadata, _id: sr.id, _semantic_score: sr.score, _corpus: sr.corpus }],
|
|
225
|
+
total: 1,
|
|
226
|
+
});
|
|
227
|
+
}
|
|
122
228
|
entries.sort((a, b) => {
|
|
123
229
|
if (a.tier !== b.tier)
|
|
124
230
|
return a.tier - b.tier;
|
|
125
231
|
return b.match_count - a.match_count;
|
|
126
232
|
});
|
|
233
|
+
const skippedTypes = semanticRouted
|
|
234
|
+
? candidateTypes.filter((rt) => !targetTypes.includes(rt))
|
|
235
|
+
: [];
|
|
127
236
|
return jsonResult({
|
|
128
237
|
query: args.query,
|
|
129
|
-
total_matches: totalMatches,
|
|
238
|
+
total_matches: totalMatches + semanticMatchCount,
|
|
130
239
|
searched_types: targetTypes.length,
|
|
240
|
+
...(semanticRouted ? { semantic_routed: true, types_skipped: skippedTypes } : {}),
|
|
131
241
|
results: entries,
|
|
132
242
|
...(Object.keys(errors).length > 0 ? { errors } : {}),
|
|
133
243
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness-search.js","sourceRoot":"","sources":["../../src/tools/harness-search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAI5B,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAW,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;AACnC,MAAM,eAAe,GAA6B,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;AAEhF,sDAAsD;AACtD,MAAM,eAAe,GAA2B;IAC9C,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC;IACnE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACrE,UAAU,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC;IAChC,yEAAyE;IACzE,mBAAmB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACnE,sBAAsB,EAAE,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACnD,qCAAqC;CACtC,CAAC;AAEF,SAAS,OAAO,CAAC,YAAoB;IACnC,OAAO,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,eAAe,CAAC,QAAQ,CAAC,KAAsB,CAAC;QAClF,CAAC,CAAC,KAAsB;QACxB,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAWD,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,QAAkB,EAAE,MAAqB;IAC7F,MAAM,aAAa,GAAG,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAA0B,CAAC;IAErF,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EAAE,sHAAsH;QACnI,WAAW,EAAE;YACX,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;YACzC,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;YAChH,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;YACrF,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uKAAuK,CAAC;YAClP,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;YACrF,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;YACpF,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YAC/E,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;SAChG;QACD,YAAY,EAAE,kBAAkB;QAChC,WAAW,EAAE;YACX,KAAK,EAAE,0BAA0B;YACjC,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,aAAa,EAAE,IAAI;SACpB;KACF,EACD,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QACpB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAC5B,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAA+B,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/G,MAAM,cAAc,GAAG,eAAe,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;YAClE,MAAM,wBAAwB,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACxE,2CAA2C;YAC3C,IAAI,WAAW,GAAG,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC;YAC5C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7B,qCAAqC;gBACrC,WAAW,GAAG,QAAQ,CAAC,mBAAmB,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;YACtG,CAAC;YACD,IAAI,cAAc,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAChD,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;YACrG,CAAC;YAED,MAAM,OAAO,GAAwB,EAAE,CAAC;YACxC,MAAM,MAAM,GAA2B,EAAE,CAAC;YAE1C,oEAAoE;YACpE,MAAM,eAAe,GAAG,CAAC,CAAC;YAC1B,MAAM,OAAO,GAA4D,EAAE,CAAC;YAC5E,IAAI,QAAQ,GAAG,CAAC,CAAC;YAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,IAAI,eAAe,EAAE,CAAC;gBAC7D,yCAAyC;gBACzC,MAAM,CAAC,cAAc,EAAE,CAAC;gBACxB,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC;gBACxD,MAAM,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,mBAAmB,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACrH,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CACpC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;oBACrB,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE;4BACzD,GAAG,UAAU;4BACb,WAAW,EAAE,IAAI,CAAC,KAAK;4BACvB,IAAI,EAAE,IAAI,CAAC,KAAK;4BAChB,KAAK,EAAE,IAAI,CAAC,KAAK;4BACjB,MAAM,EAAE,IAAI,CAAC,KAAK;4BAClB,IAAI,EAAE,IAAI,CAAC,YAAY,IAAI,CAAC;4BAC5B,KAAK,EAAE,IAAI,CAAC,YAAY,IAAI,CAAC;4BAC7B,IAAI,EAAE,CAAC;yBACR,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,MAAM,CAAC,CAAC;wBACvC,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;oBACrC,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,GAAG,CAAC,KAAK,CAAC,qBAAqB,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBAC7D,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;oBAClD,CAAC;gBACH,CAAC,CAAC,CACH,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;gBAC9B,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC;YAC3B,CAAC;YACD,MAAM,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;YAC3F,IAAI,YAAY,GAAG,CAAC,CAAC;YAErB,KAAK,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,OAAO,EAAE,CAAC;gBAC5C,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,CAAC,GAAG,MAAuE,CAAC;oBAClF,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAClC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;wBAC7G,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;wBAClC,YAAY,IAAI,UAAU,CAAC;wBAC3B,OAAO,CAAC,IAAI,CAAC;4BACX,aAAa,EAAE,EAAE;4BACjB,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;4BACjB,WAAW,EAAE,UAAU;4BACvB,KAAK;4BACL,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,UAAU;4BAC5B,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;yBAC/D,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBACD,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;gBACrB,CAAC;YACH,CAAC;YAED,qEAAqE;YACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACpB,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI;oBAAE,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC9C,OAAO,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;YACvC,CAAC,CAAC,CAAC;YAEH,OAAO,UAAU,CAAC;gBAChB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,aAAa,EAAE,YAAY;gBAC3B,cAAc,EAAE,WAAW,CAAC,MAAM;gBAClC,OAAO,EAAE,OAAO;gBAChB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACtD,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,WAAW,CAAC,GAAG,CAAC;gBAAE,OAAO,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACtD,IAAI,qBAAqB,CAAC,GAAG,CAAC;gBAAE,OAAO,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAChE,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"harness-search.js","sourceRoot":"","sources":["../../src/tools/harness-search.ts"],"names":[],"mappings":"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"}
|
package/build/tools/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import type { Registry } from "../registry/index.js";
|
|
|
3
3
|
import type { HarnessClient } from "../client/harness-client.js";
|
|
4
4
|
import type { Config } from "../config.js";
|
|
5
5
|
import type { SchemaEntry } from "../data/schemas/types.js";
|
|
6
|
+
import type { SearchManager } from "../search/index.js";
|
|
6
7
|
import "../data/examples/load-all.js";
|
|
7
|
-
export declare function registerAllTools(server: McpServer, registry: Registry, client: HarnessClient, config: Config, additionalSchemas?: Record<string, SchemaEntry
|
|
8
|
+
export declare function registerAllTools(server: McpServer, registry: Registry, client: HarnessClient, config: Config, additionalSchemas?: Record<string, SchemaEntry>, searchManager?: SearchManager): void;
|
|
8
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAa3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,8BAA8B,CAAC;AAGtC,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAa3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,8BAA8B,CAAC;AAGtC,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAYnM"}
|
package/build/tools/index.js
CHANGED
|
@@ -10,15 +10,15 @@ import { registerDescribeTool } from "./harness-describe.js";
|
|
|
10
10
|
import { registerStatusTool } from "./harness-status.js";
|
|
11
11
|
import { registerSchemaTool } from "./harness-schema.js";
|
|
12
12
|
import "../data/examples/load-all.js";
|
|
13
|
-
export function registerAllTools(server, registry, client, config, additionalSchemas) {
|
|
14
|
-
registerListTool(server, registry, client);
|
|
15
|
-
registerGetTool(server, registry, client);
|
|
13
|
+
export function registerAllTools(server, registry, client, config, additionalSchemas, searchManager) {
|
|
14
|
+
registerListTool(server, registry, client, searchManager);
|
|
15
|
+
registerGetTool(server, registry, client, searchManager);
|
|
16
16
|
registerCreateTool(server, registry, client, config);
|
|
17
17
|
registerUpdateTool(server, registry, client, config);
|
|
18
18
|
registerDeleteTool(server, registry, client, config);
|
|
19
19
|
registerExecuteTool(server, registry, client, config);
|
|
20
20
|
registerDiagnoseTool(server, registry, client, config);
|
|
21
|
-
registerSearchTool(server, registry, client);
|
|
21
|
+
registerSearchTool(server, registry, client, searchManager);
|
|
22
22
|
registerDescribeTool(server, registry);
|
|
23
23
|
registerStatusTool(server, registry, client, config);
|
|
24
24
|
registerSchemaTool(server, registry, client, additionalSchemas);
|
package/build/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGzD,OAAO,8BAA8B,CAAC;AAGtC,MAAM,UAAU,gBAAgB,CAAC,MAAiB,EAAE,QAAkB,EAAE,MAAqB,EAAE,MAAc,EAAE,iBAA+C,EAAE,aAA6B;IAC3L,gBAAgB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IAC1D,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IACzD,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,mBAAmB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACtD,oBAAoB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACvD,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IAC5D,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACvC,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;AAClE,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { SearchReadiness } from "../search/types.js";
|
|
2
|
+
export interface HttpHealthResponse {
|
|
3
|
+
statusCode: 200;
|
|
4
|
+
body: {
|
|
5
|
+
status: "ok";
|
|
6
|
+
sessions: number;
|
|
7
|
+
search: SearchReadiness;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
export declare function buildHttpHealthResponse(search: SearchReadiness, sessions: number): HttpHealthResponse;
|
|
11
|
+
//# sourceMappingURL=http-health.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-health.d.ts","sourceRoot":"","sources":["../../src/utils/http-health.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,GAAG,CAAC;IAChB,IAAI,EAAE;QACJ,MAAM,EAAE,IAAI,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,eAAe,CAAC;KACzB,CAAC;CACH;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,kBAAkB,CASrG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-health.js","sourceRoot":"","sources":["../../src/utils/http-health.ts"],"names":[],"mappings":"AAWA,MAAM,UAAU,uBAAuB,CAAC,MAAuB,EAAE,QAAgB;IAC/E,OAAO;QACL,UAAU,EAAE,GAAG;QACf,IAAI,EAAE;YACJ,MAAM,EAAE,IAAI;YACZ,QAAQ;YACR,MAAM;SACP;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface HttpSessionActivity {
|
|
2
|
+
lastActivity: number;
|
|
3
|
+
activeRequests: number;
|
|
4
|
+
}
|
|
5
|
+
export declare function beginSessionRequest(session: HttpSessionActivity, now?: number): void;
|
|
6
|
+
export declare function endSessionRequest(session: HttpSessionActivity, now?: number): void;
|
|
7
|
+
export declare function isSessionExpired(session: HttpSessionActivity, ttlMs: number, now?: number): boolean;
|
|
8
|
+
//# sourceMappingURL=http-sessions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-sessions.d.ts","sourceRoot":"","sources":["../../src/utils/http-sessions.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,EAAE,GAAG,SAAa,GAAG,IAAI,CAGxF;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,EAAE,GAAG,SAAa,GAAG,IAAI,CAGtF;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,SAAa,GAAG,OAAO,CAEvG"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export function beginSessionRequest(session, now = Date.now()) {
|
|
2
|
+
session.activeRequests += 1;
|
|
3
|
+
session.lastActivity = now;
|
|
4
|
+
}
|
|
5
|
+
export function endSessionRequest(session, now = Date.now()) {
|
|
6
|
+
session.activeRequests = Math.max(0, session.activeRequests - 1);
|
|
7
|
+
session.lastActivity = now;
|
|
8
|
+
}
|
|
9
|
+
export function isSessionExpired(session, ttlMs, now = Date.now()) {
|
|
10
|
+
return session.activeRequests === 0 && now - session.lastActivity > ttlMs;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=http-sessions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-sessions.js","sourceRoot":"","sources":["../../src/utils/http-sessions.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,mBAAmB,CAAC,OAA4B,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IAChF,OAAO,CAAC,cAAc,IAAI,CAAC,CAAC;IAC5B,OAAO,CAAC,YAAY,GAAG,GAAG,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAA4B,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IAC9E,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;IACjE,OAAO,CAAC,YAAY,GAAG,GAAG,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAA4B,EAAE,KAAa,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IAC5F,OAAO,OAAO,CAAC,cAAc,KAAK,CAAC,IAAI,GAAG,GAAG,OAAO,CAAC,YAAY,GAAG,KAAK,CAAC;AAC5E,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "harness-mcp-v2",
|
|
3
|
-
"version": "3.2.
|
|
3
|
+
"version": "3.2.5",
|
|
4
4
|
"description": "Give AI agents full access to the Harness.io platform — manage pipelines, deployments, cloud costs, chaos engineering, feature flags, SEI, and 125+ resource types through 11 MCP tools",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "build/index.js",
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
"sync-schemas": "node scripts/sync-schemas.js",
|
|
22
22
|
"sync-entity-schemas": "node scripts/sync-entity-schemas.js",
|
|
23
23
|
"check-schema-coverage": "node scripts/check-schema-coverage.js",
|
|
24
|
+
"search:benchmark": "node scripts/benchmark-search-routing.mjs",
|
|
24
25
|
"docs:generate": "node scripts/generate-docs.js",
|
|
25
26
|
"docs:check": "node scripts/generate-docs.js --check",
|
|
26
27
|
"standards:check": "vitest run tests/coding-standards tests/registry/structural-validation.test.ts",
|
|
@@ -110,5 +111,8 @@
|
|
|
110
111
|
"packageManager": "pnpm@10.18.2",
|
|
111
112
|
"engines": {
|
|
112
113
|
"node": ">=20.0.0"
|
|
114
|
+
},
|
|
115
|
+
"optionalDependencies": {
|
|
116
|
+
"@huggingface/transformers": "^4.2.0"
|
|
113
117
|
}
|
|
114
118
|
}
|