harness-mcp-v2 3.2.4 → 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.
Files changed (102) hide show
  1. package/README.md +62 -3
  2. package/build/config.d.ts +22 -3
  3. package/build/config.d.ts.map +1 -1
  4. package/build/config.js +10 -0
  5. package/build/config.js.map +1 -1
  6. package/build/data/examples/index.d.ts +2 -0
  7. package/build/data/examples/index.d.ts.map +1 -1
  8. package/build/data/examples/index.js +4 -0
  9. package/build/data/examples/index.js.map +1 -1
  10. package/build/data/schemas/v0/pipeline.d.ts.map +1 -1
  11. package/build/data/schemas/v0/pipeline.js +31 -10
  12. package/build/data/schemas/v0/pipeline.js.map +1 -1
  13. package/build/data/schemas/v0/template.d.ts.map +1 -1
  14. package/build/data/schemas/v0/template.js +28 -10
  15. package/build/data/schemas/v0/template.js.map +1 -1
  16. package/build/index.js +67 -11
  17. package/build/index.js.map +1 -1
  18. package/build/prompts/create-agent.d.ts.map +1 -1
  19. package/build/prompts/create-agent.js +21 -1
  20. package/build/prompts/create-agent.js.map +1 -1
  21. package/build/registry/extractors.d.ts +10 -3
  22. package/build/registry/extractors.d.ts.map +1 -1
  23. package/build/registry/extractors.js +27 -9
  24. package/build/registry/extractors.js.map +1 -1
  25. package/build/registry/toolsets/chaos-descriptions.d.ts +23 -19
  26. package/build/registry/toolsets/chaos-descriptions.d.ts.map +1 -1
  27. package/build/registry/toolsets/chaos-descriptions.js +134 -48
  28. package/build/registry/toolsets/chaos-descriptions.js.map +1 -1
  29. package/build/registry/toolsets/chaos.d.ts.map +1 -1
  30. package/build/registry/toolsets/chaos.js +323 -56
  31. package/build/registry/toolsets/chaos.js.map +1 -1
  32. package/build/registry/toolsets/dbops.js +2 -2
  33. package/build/registry/toolsets/dbops.js.map +1 -1
  34. package/build/registry/toolsets/idp.d.ts.map +1 -1
  35. package/build/registry/toolsets/idp.js +0 -6
  36. package/build/registry/toolsets/idp.js.map +1 -1
  37. package/build/registry/toolsets/pipelines.d.ts.map +1 -1
  38. package/build/registry/toolsets/pipelines.js +6 -4
  39. package/build/registry/toolsets/pipelines.js.map +1 -1
  40. package/build/registry/toolsets/pull-requests.d.ts.map +1 -1
  41. package/build/registry/toolsets/pull-requests.js +47 -2
  42. package/build/registry/toolsets/pull-requests.js.map +1 -1
  43. package/build/search/embedding-content.d.ts +5 -0
  44. package/build/search/embedding-content.d.ts.map +1 -0
  45. package/build/search/embedding-content.js +31 -0
  46. package/build/search/embedding-content.js.map +1 -0
  47. package/build/search/index.d.ts +8 -0
  48. package/build/search/index.d.ts.map +1 -0
  49. package/build/search/index.js +6 -0
  50. package/build/search/index.js.map +1 -0
  51. package/build/search/local-provider.d.ts +37 -0
  52. package/build/search/local-provider.d.ts.map +1 -0
  53. package/build/search/local-provider.js +269 -0
  54. package/build/search/local-provider.js.map +1 -0
  55. package/build/search/manager.d.ts +39 -0
  56. package/build/search/manager.d.ts.map +1 -0
  57. package/build/search/manager.js +283 -0
  58. package/build/search/manager.js.map +1 -0
  59. package/build/search/null-provider.d.ts +9 -0
  60. package/build/search/null-provider.d.ts.map +1 -0
  61. package/build/search/null-provider.js +8 -0
  62. package/build/search/null-provider.js.map +1 -0
  63. package/build/search/remote-provider.d.ts +28 -0
  64. package/build/search/remote-provider.d.ts.map +1 -0
  65. package/build/search/remote-provider.js +139 -0
  66. package/build/search/remote-provider.js.map +1 -0
  67. package/build/search/routing-eval.d.ts +49 -0
  68. package/build/search/routing-eval.d.ts.map +1 -0
  69. package/build/search/routing-eval.js +80 -0
  70. package/build/search/routing-eval.js.map +1 -0
  71. package/build/search/types.d.ts +58 -0
  72. package/build/search/types.d.ts.map +1 -0
  73. package/build/search/types.js +7 -0
  74. package/build/search/types.js.map +1 -0
  75. package/build/tools/harness-execute.d.ts.map +1 -1
  76. package/build/tools/harness-execute.js +19 -7
  77. package/build/tools/harness-execute.js.map +1 -1
  78. package/build/tools/harness-get.d.ts +2 -1
  79. package/build/tools/harness-get.d.ts.map +1 -1
  80. package/build/tools/harness-get.js +21 -1
  81. package/build/tools/harness-get.js.map +1 -1
  82. package/build/tools/harness-list.d.ts +2 -1
  83. package/build/tools/harness-list.d.ts.map +1 -1
  84. package/build/tools/harness-list.js +22 -1
  85. package/build/tools/harness-list.js.map +1 -1
  86. package/build/tools/harness-search.d.ts +20 -1
  87. package/build/tools/harness-search.d.ts.map +1 -1
  88. package/build/tools/harness-search.js +124 -14
  89. package/build/tools/harness-search.js.map +1 -1
  90. package/build/tools/index.d.ts +2 -1
  91. package/build/tools/index.d.ts.map +1 -1
  92. package/build/tools/index.js +4 -4
  93. package/build/tools/index.js.map +1 -1
  94. package/build/utils/http-health.d.ts +11 -0
  95. package/build/utils/http-health.d.ts.map +1 -0
  96. package/build/utils/http-health.js +11 -0
  97. package/build/utils/http-health.js.map +1 -0
  98. package/build/utils/http-sessions.d.ts +8 -0
  99. package/build/utils/http-sessions.d.ts.map +1 -0
  100. package/build/utils/http-sessions.js +12 -0
  101. package/build/utils/http-sessions.js.map +1 -0
  102. package/package.json +5 -1
@@ -5,12 +5,13 @@ import { applyUrlDefaults } from "../utils/url-parser.js";
5
5
  import { asString, coerceRecord } from "../utils/type-guards.js";
6
6
  import { resolveLogContent, resolveLogDownloadUrl } from "../utils/log-resolver.js";
7
7
  import { buildLogPrefixFromExecution } from "../utils/log-prefix.js";
8
+ import { buildResourceIndexContent } from "../search/embedding-content.js";
8
9
  import { resourceTypeSchema } from "./input-schemas.js";
9
10
  import { getOutputSchema } from "./output-schemas.js";
10
11
  function isTrue(value) {
11
12
  return value === true || value === "true";
12
13
  }
13
- export function registerGetTool(server, registry, client) {
14
+ export function registerGetTool(server, registry, client, searchManager) {
14
15
  const gettableTypes = registry.getTypesForOperation("get");
15
16
  server.registerTool("harness_get", {
16
17
  description: "Get a Harness resource by ID. Accepts a Harness URL to auto-extract identifiers. For failure analysis, prefer harness_diagnose.",
@@ -95,6 +96,25 @@ export function registerGetTool(server, registry, client) {
95
96
  }
96
97
  }
97
98
  const result = await registry.dispatch(client, resourceType, "get", input);
99
+ // Fire-and-forget: index item for semantic search (skipped in multi-user + local)
100
+ if (searchManager && result && typeof result === "object") {
101
+ const item = result;
102
+ const identifier = asString(item["identifier"]) ?? asString(item["id"]);
103
+ const accountId = client.account;
104
+ if (identifier) {
105
+ void searchManager.indexItem({
106
+ id: `${resourceType}:${identifier}`,
107
+ content: buildResourceIndexContent(resourceType, item),
108
+ corpus: "entities",
109
+ accountId,
110
+ metadata: {
111
+ resource_type: resourceType,
112
+ identifier,
113
+ name: String(item["name"] ?? ""),
114
+ },
115
+ }).catch(() => { });
116
+ }
117
+ }
98
118
  return jsonResult(result);
99
119
  }
100
120
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"harness-get.js","sourceRoot":"","sources":["../../src/tools/harness-get.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"harness-get.js","sourceRoot":"","sources":["../../src/tools/harness-get.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
2
  import type { Registry } from "../registry/index.js";
3
3
  import type { HarnessClient } from "../client/harness-client.js";
4
- export declare function registerListTool(server: McpServer, registry: Registry, client: HarnessClient): void;
4
+ import type { SearchManager } from "../search/index.js";
5
+ export declare function registerListTool(server: McpServer, registry: Registry, client: HarnessClient, searchManager?: SearchManager): void;
5
6
  //# sourceMappingURL=harness-list.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"harness-list.d.ts","sourceRoot":"","sources":["../../src/tools/harness-list.ts"],"names":[],"mappings":"AACA,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,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CAqGnG"}
1
+ {"version":3,"file":"harness-list.d.ts","sourceRoot":"","sources":["../../src/tools/harness-list.ts"],"names":[],"mappings":"AACA,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;AAOjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AASxD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CA2HlI"}
@@ -5,11 +5,12 @@ import { compactItems } from "../utils/compact.js";
5
5
  import { applyUrlDefaults } from "../utils/url-parser.js";
6
6
  import { asString, isRecord, coerceRecord } from "../utils/type-guards.js";
7
7
  import { renderListVisual } from "../utils/svg/list-visuals.js";
8
+ import { buildResourceIndexContent } from "../search/embedding-content.js";
8
9
  import { createLogger } from "../utils/logger.js";
9
10
  import { resourceTypeSchema } from "./input-schemas.js";
10
11
  import { listOutputSchema } from "./output-schemas.js";
11
12
  const log = createLogger("list");
12
- export function registerListTool(server, registry, client) {
13
+ export function registerListTool(server, registry, client, searchManager) {
13
14
  // Build a dynamic description for the filters param from all enabled resource definitions
14
15
  const allFilterNames = registry.getAllFilterFields().map((f) => f.name);
15
16
  const filtersDesc = allFilterNames.length > 0
@@ -90,6 +91,26 @@ export function registerListTool(server, registry, client) {
90
91
  }
91
92
  }
92
93
  }
94
+ // Fire-and-forget: index items for semantic search (skipped in multi-user + local)
95
+ if (searchManager && isRecord(result) && Array.isArray(result.items)) {
96
+ const accountId = client.account;
97
+ void Promise.all(result.items.map(item => {
98
+ const identifier = asString(item["identifier"]) ?? asString(item["id"]);
99
+ if (!identifier)
100
+ return Promise.resolve();
101
+ return searchManager.indexItem({
102
+ id: `${resourceType}:${identifier}`,
103
+ content: buildResourceIndexContent(resourceType, item),
104
+ corpus: "entities",
105
+ accountId,
106
+ metadata: {
107
+ resource_type: resourceType,
108
+ identifier,
109
+ name: String(item["name"] ?? ""),
110
+ },
111
+ });
112
+ })).catch(() => { });
113
+ }
93
114
  return jsonResult(result);
94
115
  }
95
116
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"harness-list.js","sourceRoot":"","sources":["../../src/tools/harness-list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"harness-list.js","sourceRoot":"","sources":["../../src/tools/harness-list.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,24 @@
1
1
  import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
2
  import type { Registry } from "../registry/index.js";
3
3
  import type { HarnessClient } from "../client/harness-client.js";
4
- export declare function registerSearchTool(server: McpServer, registry: Registry, client: HarnessClient): void;
4
+ import type { SearchManager } from "../search/index.js";
5
+ import type { SearchResult } from "../search/types.js";
6
+ /**
7
+ * Tier-1 types always included in semantic routing even when embeddings miss them.
8
+ * Prevents confident-but-wrong routing from silently skipping core CI/CD entities.
9
+ */
10
+ export declare const SEMANTIC_ROUTING_SAFETY_FLOOR: readonly ["pipeline", "service", "environment", "connector"];
11
+ /**
12
+ * Extract unique resource types from semantic results that meet the routing threshold.
13
+ * Uses both:
14
+ * - `resources` corpus hits: live Harness data already indexed for this account
15
+ * - `mcp_resources` corpus hits: resource_definition and entity_schema entries whose
16
+ * resource_type field maps directly to a listable API type (e.g. resource-def:connector
17
+ * → "connector"). These are the primary routing signal since mcp_resources is always
18
+ * indexed at startup whereas resources may be sparse.
19
+ */
20
+ export declare function extractRoutingTypes(semanticResults: SearchResult[], allTargetTypes: string[]): string[] | null;
21
+ /** Union predicted types with tier-1 safety floor types present in the candidate set. */
22
+ export declare function applyRoutingSafetyFloor(predicted: string[], candidateTypes: string[]): string[];
23
+ export declare function registerSearchTool(server: McpServer, registry: Registry, client: HarnessClient, searchManager?: SearchManager): void;
5
24
  //# sourceMappingURL=harness-search.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"harness-search.d.ts","sourceRoot":"","sources":["../../src/tools/harness-search.ts"],"names":[],"mappings":"AACA,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;AA2CjE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CA0HrG"}
1
+ {"version":3,"file":"harness-search.d.ts","sourceRoot":"","sources":["../../src/tools/harness-search.ts"],"names":[],"mappings":"AACA,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;AASjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAiCvD;;;GAGG;AACH,eAAO,MAAM,6BAA6B,8DAA+D,CAAC;AAe1G;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,eAAe,EAAE,YAAY,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,IAAI,CAW9G;AAED,yFAAyF;AACzF,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAS/F;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CA6LpI"}
@@ -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
- export function registerSearchTool(server, registry, client) {
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 which resource types to search
57
- let targetTypes = args.resource_types ?? [];
58
- if (targetTypes.length === 0) {
59
- // Search all types that support list
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
- targetTypes = targetTypes.filter((rt) => registry.getSupportedScopes(rt).includes(requestedScope));
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
- // Sort by tier ascending, then by match_count descending within tier
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":"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"}
1
+ {"version":3,"file":"harness-search.js","sourceRoot":"","sources":["../../src/tools/harness-search.ts"],"names":[],"mappings":"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"}
@@ -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>): void;
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,CAYpK"}
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"}
@@ -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);
@@ -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;AAEzD,OAAO,8BAA8B,CAAC;AAGtC,MAAM,UAAU,gBAAgB,CAAC,MAAiB,EAAE,QAAkB,EAAE,MAAqB,EAAE,MAAc,EAAE,iBAA+C;IAC5J,gBAAgB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC3C,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC1C,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,CAAC,CAAC;IAC7C,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"}
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,11 @@
1
+ export function buildHttpHealthResponse(search, sessions) {
2
+ return {
3
+ statusCode: 200,
4
+ body: {
5
+ status: "ok",
6
+ sessions,
7
+ search,
8
+ },
9
+ };
10
+ }
11
+ //# sourceMappingURL=http-health.js.map
@@ -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.4",
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
  }