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
package/README.md CHANGED
@@ -130,7 +130,7 @@ Operational constraints in HTTP mode:
130
130
  - `POST /mcp` without `mcp-session-id` must be an `initialize` request.
131
131
  - `POST /mcp`, `GET /mcp`, and `DELETE /mcp` for existing sessions require the `mcp-session-id` header.
132
132
  - `GET /mcp` is used for SSE notifications (progress updates and elicitation prompts).
133
- - Idle sessions are reaped after 30 minutes.
133
+ - Idle sessions are reaped after `MCP_SESSION_TTL_MS` milliseconds once no request or SSE stream is active (default `300000`, or 5 minutes).
134
134
  - `GET /health` is the only non-MCP endpoint.
135
135
  - Request body size is capped by `HARNESS_MAX_BODY_SIZE_MB` (default `10` MB).
136
136
  - Set `x-harness-pipeline-version: 0` or `1` on the `initialize` request to select V0 or V1 pipeline resources for that HTTP session.
@@ -560,8 +560,67 @@ The server automatically loads environment variables from a `.env` file in the p
560
560
  | `HARNESS_AUDIT_WEBHOOK_BATCH_SIZE` | No | `10` | Number of audit events to batch before webhook flush |
561
561
  | `HARNESS_AUDIT_WEBHOOK_FLUSH_MS` | No | `5000` | Max time to hold audit events before webhook flush |
562
562
  | `OTEL_EXPORTER_OTLP_ENDPOINT` | No | -- | Enables OpenTelemetry audit spans when the optional OpenTelemetry packages are installed |
563
+ | `HARNESS_SEARCH_PROVIDER` | No | `local` | Semantic search backend: `local` (in-process ONNX embeddings, default), `remote` (external search service via HTTP, required for multi-user mode), or `none` (disable semantic search, fall back to keyword scatter-gather only). Use `none` in air-gapped environments or when startup model loading is undesirable |
564
+ | `HARNESS_SEARCH_SERVICE_URL` | No | -- | Base URL of the remote search service when `HARNESS_SEARCH_PROVIDER=remote` (e.g. `http://search-svc:8080`). Required when using the `remote` provider |
565
+ | `HARNESS_SEARCH_SERVICE_HEADERS` | No | -- | JSON object of headers sent with every request to the remote search service. Supports any auth scheme: `{"Authorization":"Bearer tok"}`, `{"x-api-key":"key"}`, or multiple internal service-to-service headers |
566
+ | `HARNESS_HF_CACHE_DIR` | No | `/tmp/hf-cache` | Directory for the `@huggingface/transformers` model cache used by the `local` search provider. The Docker image pre-bakes the model into `/app/.cache/hf` to avoid runtime downloads. Set to a persistent volume path in production deployments |
563
567
 
564
568
 
569
+ ### Semantic Search
570
+
571
+ `harness_search` uses semantic routing to narrow scatter-gather API calls before fanning out to Harness. Three search providers are available:
572
+
573
+ | Provider | When to use |
574
+ |----------|-------------|
575
+ | `local` (default) | Single-user stdio mode. Runs `all-MiniLM-L6-v2` in-process via `@huggingface/transformers`. Downloads ~23 MB model on first use; subsequent starts use the cache. |
576
+ | `remote` | Multi-user HTTP mode (Harness-hosted). Delegates embedding and retrieval to an external search service. Tenant isolation is enforced via `tenant_id` — static knowledge/docs use `global`, per-account entity data uses the account ID. |
577
+ | `none` | Disable semantic search entirely; falls back to keyword scatter-gather across all resource types. |
578
+
579
+ **Remote provider configuration:**
580
+
581
+ ```bash
582
+ HARNESS_SEARCH_PROVIDER=remote
583
+ HARNESS_SEARCH_SERVICE_URL=http://search-svc:8080
584
+
585
+ # Auth — any scheme via HARNESS_SEARCH_SERVICE_HEADERS (JSON object):
586
+ HARNESS_SEARCH_SERVICE_HEADERS='{"Authorization":"Bearer <token>"}' # standard bearer
587
+ HARNESS_SEARCH_SERVICE_HEADERS='{"x-api-key":"<key>"}' # API key header
588
+ HARNESS_SEARCH_SERVICE_HEADERS='{"x-harness-token":"<svc-token>"}' # internal service-to-service
589
+ # Multiple headers (e.g. service mesh + tenant routing):
590
+ HARNESS_SEARCH_SERVICE_HEADERS='{"x-harness-token":"<tok>","x-tenant":"<id>"}'
591
+ # No auth (service mesh / mTLS handles it):
592
+ # omit HARNESS_SEARCH_SERVICE_HEADERS entirely
593
+ ```
594
+
595
+ **Testing the remote provider locally** with the included stub service (no external dependencies):
596
+
597
+ ```bash
598
+ # 1. Create a venv and install FastAPI
599
+ python3 -m venv .venv-stub
600
+ .venv-stub/bin/pip install fastapi uvicorn
601
+
602
+ # 2. Start the stub (in-memory, cosine similarity, corpus + tenant filtering)
603
+ .venv-stub/bin/uvicorn stub-search-service:app --port 8082
604
+
605
+ # 3. Build the MCP server
606
+ pnpm build
607
+
608
+ # 4. Run the integration smoke test
609
+ node test-remote-provider.mjs
610
+ # Expected output:
611
+ # available: true
612
+ # indexed 2 docs
613
+ # entity search results: pipeline:ts-test score=... corpus=entities
614
+ # knowledge search results: schema:trigger score=...
615
+ # all-corpus search results: (merged, sorted by score)
616
+ # isolation check (other-acct, should be empty): PASS
617
+
618
+ # 5. Tear down
619
+ kill $(lsof -ti :8082)
620
+ ```
621
+
622
+ The stub (`stub-search-service.py`) implements the same `/v1/health`, `/v1/ingest`, and `/v1/search` contract as the production search service. It uses a simple bag-of-chars embedding so no model download is required — results are semantically plausible but not production-quality.
623
+
565
624
  ### HTTPS Enforcement
566
625
 
567
626
  `HARNESS_BASE_URL` must use HTTPS by default. If you set a non-HTTPS URL (e.g. `http://localhost:8080`), the server will refuse to start with:
@@ -607,7 +666,7 @@ Current multi-scope resources include `connector`, `service`, `environment`, `in
607
666
  | `harness_update` | Update an existing resource. Supports inline and remote (Git-backed) pipelines. Prompts for user confirmation via [elicitation](#elicitation). |
608
667
  | `harness_delete` | Delete a resource. Prompts for user confirmation via [elicitation](#elicitation). Destructive. |
609
668
  | `harness_execute` | Execute an action on a resource (run/retry pipeline, import pipeline from Git, toggle flag, sync app). Prompts for user confirmation via [elicitation](#elicitation). For pipeline runs, use the runtime-input workflow below (supports `branch`/`tag`/`pr_number`/`commit_sha` shorthand expansion). |
610
- | `harness_search` | Search across multiple resource types in parallel with a single query. |
669
+ | `harness_search` | Search across Harness resource types with a single query. Uses semantic routing (local `all-MiniLM-L6-v2` ONNX embeddings, 384-dim) to predict relevant resource types from a `knowledge` corpus indexed at startup — typically narrowing from ~163 types to 1–8 before scatter-gather. Falls back to full keyword scatter-gather when semantic confidence is low. Response includes `semantic_routed` and `types_skipped` when routing fires. See `docs/search-guidelines.md` for how to make new resource types discoverable. |
611
670
  | `harness_diagnose` | Diagnose `pipeline`, `connector`, `delegate`, and `gitops_application` resources (aliases: `execution` -> `pipeline`, `gitops_app` -> `gitops_application`). For pipelines, returns stage/step timing and failure details; for connectors/delegates/GitOps apps, returns targeted health and troubleshooting signals. |
612
671
  | `harness_status` | Get a real-time project health dashboard — recent executions, failure rates, and deep links. |
613
672
 
@@ -2085,7 +2144,7 @@ The Harness MCP server pairs well with **[Harness Skills](https://github.com/har
2085
2144
  | `Unknown transport: "..."` on startup | Unsupported CLI transport arg | Use `stdio` or `http` only |
2086
2145
  | `Invalid HARNESS_TOOLSETS: ...` on startup | One or more toolset names are not recognized | Use only names from [Toolset Filtering](#toolset-filtering) (exact match) |
2087
2146
  | HTTP `mcp-session-id header is required...` | A session request was sent without session header | Send `initialize` first, then include `mcp-session-id` on `POST/GET/DELETE /mcp` |
2088
- | HTTP `Session not found...` | Session expired (30 min idle TTL) or already closed | Re-run `initialize` to create a new session, then retry with new header |
2147
+ | HTTP `Session not found...` | Session expired after `MCP_SESSION_TTL_MS` idle milliseconds or already closed | Re-run `initialize` to create a new session, then retry with new header |
2089
2148
  | HTTP `405 Method Not Allowed` on `/mcp` | Unsupported method for MCP endpoint | Use `POST`, `GET`, `DELETE`, or `OPTIONS` only |
2090
2149
  | HTTP `Invalid request` | Invalid JSON body or request body exceeded `HARNESS_MAX_BODY_SIZE_MB` | Validate JSON payload size/shape; increase `HARNESS_MAX_BODY_SIZE_MB` if needed |
2091
2150
  | `Unknown resource_type "..."` from tools | Resource type is misspelled or filtered out via `HARNESS_TOOLSETS` | Call `harness_describe` (with optional `search_term`) to discover valid types |
package/build/config.d.ts CHANGED
@@ -21,11 +21,12 @@ export declare const ConfigSchema: z.ZodPipe<z.ZodObject<{
21
21
  HARNESS_DEFAULT_PROJECT_ID: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>;
22
22
  HARNESS_API_TIMEOUT_MS: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
23
23
  HARNESS_MAX_RETRIES: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
24
+ MCP_SESSION_TTL_MS: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
24
25
  LOG_LEVEL: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDefault<z.ZodEnum<{
26
+ error: "error";
25
27
  debug: "debug";
26
28
  info: "info";
27
29
  warn: "warn";
28
- error: "error";
29
30
  }>>>;
30
31
  HARNESS_TOOLSETS: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>;
31
32
  HARNESS_MAX_BODY_SIZE_MB: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
@@ -56,6 +57,14 @@ export declare const ConfigSchema: z.ZodPipe<z.ZodObject<{
56
57
  HARNESS_AUDIT_WEBHOOK_BATCH_SIZE: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDefault<z.ZodCoercedNumber<unknown>>>;
57
58
  HARNESS_AUDIT_WEBHOOK_FLUSH_MS: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDefault<z.ZodCoercedNumber<unknown>>>;
58
59
  HARNESS_DIAGNOSE_LOG_FETCH_CONCURRENCY: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDefault<z.ZodCoercedNumber<unknown>>>;
60
+ HARNESS_SEARCH_PROVIDER: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDefault<z.ZodEnum<{
61
+ none: "none";
62
+ local: "local";
63
+ remote: "remote";
64
+ }>>>;
65
+ HARNESS_SEARCH_SERVICE_URL: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>;
66
+ HARNESS_SEARCH_SERVICE_HEADERS: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>;
67
+ HARNESS_HF_CACHE_DIR: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodDefault<z.ZodString>>;
59
68
  }, z.core.$strip>, z.ZodTransform<{
60
69
  HARNESS_API_KEY: string;
61
70
  HARNESS_ACCOUNT_ID: string;
@@ -66,7 +75,8 @@ export declare const ConfigSchema: z.ZodPipe<z.ZodObject<{
66
75
  HARNESS_BASE_URL: string;
67
76
  HARNESS_API_TIMEOUT_MS: number;
68
77
  HARNESS_MAX_RETRIES: number;
69
- LOG_LEVEL: "debug" | "info" | "warn" | "error";
78
+ MCP_SESSION_TTL_MS: number;
79
+ LOG_LEVEL: "error" | "debug" | "info" | "warn";
70
80
  HARNESS_MAX_BODY_SIZE_MB: number;
71
81
  HARNESS_RATE_LIMIT_RPS: number;
72
82
  HARNESS_READ_ONLY: boolean;
@@ -79,6 +89,8 @@ export declare const ConfigSchema: z.ZodPipe<z.ZodObject<{
79
89
  HARNESS_AUDIT_WEBHOOK_BATCH_SIZE: number;
80
90
  HARNESS_AUDIT_WEBHOOK_FLUSH_MS: number;
81
91
  HARNESS_DIAGNOSE_LOG_FETCH_CONCURRENCY: number;
92
+ HARNESS_SEARCH_PROVIDER: "none" | "local" | "remote";
93
+ HARNESS_HF_CACHE_DIR: string;
82
94
  HARNESS_TOOLSETS?: string | undefined;
83
95
  HARNESS_MCP_AUTH_TOKEN?: string | undefined;
84
96
  HARNESS_FME_API_KEY?: string | undefined;
@@ -86,12 +98,15 @@ export declare const ConfigSchema: z.ZodPipe<z.ZodObject<{
86
98
  HARNESS_AUDIT_FILE?: string | undefined;
87
99
  HARNESS_AUDIT_WEBHOOK_URL?: string | undefined;
88
100
  HARNESS_AUDIT_WEBHOOK_TOKEN?: string | undefined;
101
+ HARNESS_SEARCH_SERVICE_URL?: string | undefined;
102
+ HARNESS_SEARCH_SERVICE_HEADERS?: string | undefined;
89
103
  }, {
90
104
  HARNESS_MCP_MODE: "single-user" | "multi-user";
91
105
  HARNESS_BASE_URL: string;
92
106
  HARNESS_API_TIMEOUT_MS: number;
93
107
  HARNESS_MAX_RETRIES: number;
94
- LOG_LEVEL: "debug" | "info" | "warn" | "error";
108
+ MCP_SESSION_TTL_MS: number;
109
+ LOG_LEVEL: "error" | "debug" | "info" | "warn";
95
110
  HARNESS_MAX_BODY_SIZE_MB: number;
96
111
  HARNESS_RATE_LIMIT_RPS: number;
97
112
  HARNESS_READ_ONLY: boolean;
@@ -104,6 +119,8 @@ export declare const ConfigSchema: z.ZodPipe<z.ZodObject<{
104
119
  HARNESS_AUDIT_WEBHOOK_BATCH_SIZE: number;
105
120
  HARNESS_AUDIT_WEBHOOK_FLUSH_MS: number;
106
121
  HARNESS_DIAGNOSE_LOG_FETCH_CONCURRENCY: number;
122
+ HARNESS_SEARCH_PROVIDER: "none" | "local" | "remote";
123
+ HARNESS_HF_CACHE_DIR: string;
107
124
  HARNESS_API_KEY?: string | undefined;
108
125
  HARNESS_ACCOUNT_ID?: string | undefined;
109
126
  HARNESS_ORG?: string | undefined;
@@ -118,6 +135,8 @@ export declare const ConfigSchema: z.ZodPipe<z.ZodObject<{
118
135
  HARNESS_AUDIT_FILE?: string | undefined;
119
136
  HARNESS_AUDIT_WEBHOOK_URL?: string | undefined;
120
137
  HARNESS_AUDIT_WEBHOOK_TOKEN?: string | undefined;
138
+ HARNESS_SEARCH_SERVICE_URL?: string | undefined;
139
+ HARNESS_SEARCH_SERVICE_HEADERS?: string | undefined;
121
140
  }>>;
122
141
  export type Config = z.infer<typeof ConfigSchema>;
123
142
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAyC5B;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAc5E;AAuDD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgFvB,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAElD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAI1E;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,kBAAkB,GAAG,qBAAqB,GAAG,iBAAiB,CAAC,GACnF,MAAM,GAAG,SAAS,CAcpB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,CAGpG;AAED,wBAAgB,UAAU,IAAI,MAAM,CAQnC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAyC5B;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAc5E;AAuED,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgFvB,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAElD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAI1E;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,kBAAkB,GAAG,qBAAqB,GAAG,iBAAiB,CAAC,GACnF,MAAM,GAAG,SAAS,CAcpB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,CAGpG;AAED,wBAAgB,UAAU,IAAI,MAAM,CAQnC"}
package/build/config.js CHANGED
@@ -65,6 +65,7 @@ const RawConfigSchema = z.object({
65
65
  HARNESS_DEFAULT_PROJECT_ID: optionalStringFromEnv,
66
66
  HARNESS_API_TIMEOUT_MS: z.coerce.number().default(30000),
67
67
  HARNESS_MAX_RETRIES: z.coerce.number().default(3),
68
+ MCP_SESSION_TTL_MS: z.coerce.number().min(1).default(5 * 60_000),
68
69
  LOG_LEVEL: z.preprocess((val) => (val === "" ? undefined : val), z.enum(["debug", "info", "warn", "error"]).default("info")),
69
70
  HARNESS_TOOLSETS: optionalStringFromEnv,
70
71
  HARNESS_MAX_BODY_SIZE_MB: z.coerce.number().default(10),
@@ -91,6 +92,15 @@ const RawConfigSchema = z.object({
91
92
  // only if diagnose latency is dominated by log-fetch wall-clock and the
92
93
  // pod has memory headroom (AIDEVOPS-2200).
93
94
  HARNESS_DIAGNOSE_LOG_FETCH_CONCURRENCY: z.preprocess(emptyStringAsUndefined, z.coerce.number().min(1).max(20).default(3)),
95
+ HARNESS_SEARCH_PROVIDER: z.preprocess(emptyStringAsUndefined, z.enum(["none", "local", "remote"]).default("local")),
96
+ HARNESS_SEARCH_SERVICE_URL: optionalStringFromEnv,
97
+ // Extra headers sent with every request to the remote search service.
98
+ // JSON object, e.g.: {"Authorization":"Bearer tok"} or {"x-api-key":"key","x-harness-token":"svc"}
99
+ // Supports any auth scheme: Bearer tokens, API keys, internal service-to-service headers.
100
+ HARNESS_SEARCH_SERVICE_HEADERS: optionalStringFromEnv,
101
+ // Directory for @huggingface/transformers model cache (local search provider).
102
+ // Use a persistent volume in production; Docker image bakes models into /app/.cache/hf.
103
+ HARNESS_HF_CACHE_DIR: z.preprocess(emptyStringAsUndefined, z.string().default("/tmp/hf-cache")),
94
104
  });
95
105
  export const ConfigSchema = RawConfigSchema.transform((data) => {
96
106
  const isMultiUser = data.HARNESS_MCP_MODE === "multi-user";
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  import type { ResourceExample } from "./types.js";
2
2
  /** Register examples from a module. Called by each example file. Names must be globally unique. */
3
3
  export declare function registerExamples(examples: ResourceExample[]): void;
4
+ /** Get all registered examples. */
5
+ export declare function getAllExamples(): ResourceExample[];
4
6
  /** Fetch a single example by exact name. */
5
7
  export declare function getExample(name: string): ResourceExample | undefined;
6
8
  /** Search examples by keyword. Matches against name, description, tags, and resourceType. */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/data/examples/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAIlD,mGAAmG;AACnG,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,IAAI,CAOlE;AAED,4CAA4C;AAC5C,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAEpE;AAED,6FAA6F;AAC7F,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,eAAe,EAAE,CAWtF;AAED,0DAA0D;AAC1D,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,MAAM,GAAG,eAAe,EAAE,CAE9E;AAED,wDAAwD;AACxD,wBAAgB,4BAA4B,IAAI,MAAM,EAAE,CAEvD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/data/examples/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAIlD,mGAAmG;AACnG,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,IAAI,CAOlE;AAED,mCAAmC;AACnC,wBAAgB,cAAc,IAAI,eAAe,EAAE,CAElD;AAED,4CAA4C;AAC5C,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAEpE;AAED,6FAA6F;AAC7F,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,eAAe,EAAE,CAWtF;AAED,0DAA0D;AAC1D,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,MAAM,GAAG,eAAe,EAAE,CAE9E;AAED,wDAAwD;AACxD,wBAAgB,4BAA4B,IAAI,MAAM,EAAE,CAEvD"}
@@ -8,6 +8,10 @@ export function registerExamples(examples) {
8
8
  }
9
9
  ALL_EXAMPLES.push(...examples);
10
10
  }
11
+ /** Get all registered examples. */
12
+ export function getAllExamples() {
13
+ return [...ALL_EXAMPLES];
14
+ }
11
15
  /** Fetch a single example by exact name. */
12
16
  export function getExample(name) {
13
17
  return ALL_EXAMPLES.find((e) => e.name === name);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/data/examples/index.ts"],"names":[],"mappings":"AAEA,MAAM,YAAY,GAAsB,EAAE,CAAC;AAE3C,mGAAmG;AACnG,MAAM,UAAU,gBAAgB,CAAC,QAA2B;IAC1D,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;QAC1B,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,4BAA4B,EAAE,CAAC,IAAI,2CAA2C,CAAC,CAAC;QAClG,CAAC;IACH,CAAC;IACD,YAAY,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED,4CAA4C;AAC5C,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACnD,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,YAAqB;IACjE,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAC9B,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAC/B,IAAI,YAAY,IAAI,CAAC,CAAC,YAAY,KAAK,YAAY;YAAE,OAAO,KAAK,CAAC;QAClE,OAAO,CACL,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;YAChC,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;YACvC,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;YACxC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAChD,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,sBAAsB,CAAC,YAAoB;IACzD,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,YAAY,CAAC,CAAC;AACrE,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,4BAA4B;IAC1C,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/data/examples/index.ts"],"names":[],"mappings":"AAEA,MAAM,YAAY,GAAsB,EAAE,CAAC;AAE3C,mGAAmG;AACnG,MAAM,UAAU,gBAAgB,CAAC,QAA2B;IAC1D,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;QAC1B,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,4BAA4B,EAAE,CAAC,IAAI,2CAA2C,CAAC,CAAC;QAClG,CAAC;IACH,CAAC;IACD,YAAY,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED,mCAAmC;AACnC,MAAM,UAAU,cAAc;IAC5B,OAAO,CAAC,GAAG,YAAY,CAAC,CAAC;AAC3B,CAAC;AAED,4CAA4C;AAC5C,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACnD,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,YAAqB;IACjE,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAC9B,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAC/B,IAAI,YAAY,IAAI,CAAC,CAAC,YAAY,KAAK,YAAY;YAAE,OAAO,KAAK,CAAC;QAClE,OAAO,CACL,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;YAChC,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;YACvC,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;YACxC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAChD,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,sBAAsB,CAAC,YAAoB;IACzD,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,YAAY,CAAC,CAAC;AACrE,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,4BAA4B;IAC1C,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../../src/data/schemas/v0/pipeline.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAumoH/B,CAAC;AACF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../../src/data/schemas/v0/pipeline.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CA4noH/B,CAAC;AACF,eAAe,MAAM,CAAC"}
@@ -83687,11 +83687,20 @@ const schema = {
83687
83687
  ],
83688
83688
  "properties": {
83689
83689
  "healthSources": {
83690
- "type": "array",
83691
- "items": {
83692
- "$ref": "#/definitions/pipeline/steps/cd/AIVerifyNGHealthSource"
83693
- },
83694
- "minItems": 1
83690
+ "oneOf": [
83691
+ {
83692
+ "type": "array",
83693
+ "items": {
83694
+ "$ref": "#/definitions/pipeline/steps/cd/AIVerifyNGHealthSource"
83695
+ },
83696
+ "minItems": 1
83697
+ },
83698
+ {
83699
+ "type": "string",
83700
+ "pattern": "(<\\+.+>.*)",
83701
+ "minLength": 1
83702
+ }
83703
+ ]
83695
83704
  },
83696
83705
  "dataCollectionWindow": {
83697
83706
  "description": "Data collection window as a duration string '<n>m' (minutes) or '<n>h' (hours), e.g. '30m', '1h', '2h'; may also be a runtime expression.",
@@ -83807,11 +83816,20 @@ const schema = {
83807
83816
  ],
83808
83817
  "properties": {
83809
83818
  "healthSources": {
83810
- "type": "array",
83811
- "items": {
83812
- "$ref": "#/definitions/pipeline/steps/cd/AIVerifyNGHealthSource"
83813
- },
83814
- "minItems": 1
83819
+ "oneOf": [
83820
+ {
83821
+ "type": "array",
83822
+ "items": {
83823
+ "$ref": "#/definitions/pipeline/steps/cd/AIVerifyNGHealthSource"
83824
+ },
83825
+ "minItems": 1
83826
+ },
83827
+ {
83828
+ "type": "string",
83829
+ "pattern": "(<\\+.+>.*)",
83830
+ "minLength": 1
83831
+ }
83832
+ ]
83815
83833
  },
83816
83834
  "dataCollectionWindow": {
83817
83835
  "description": "Data collection window as a duration string '<n>m' (minutes) or '<n>h' (hours), e.g. '30m', '1h', '2h'; may also be a runtime expression.",
@@ -116967,6 +116985,9 @@ const schema = {
116967
116985
  },
116968
116986
  {
116969
116987
  "$ref": "#/definitions/pipeline/steps/common/IdpActionStepNode"
116988
+ },
116989
+ {
116990
+ "$ref": "#/definitions/pipeline/steps/cd/AIVerifyNGStepNode"
116970
116991
  }
116971
116992
  ]
116972
116993
  },