harness-mcp-v2 0.8.7 → 0.8.8

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 (72) hide show
  1. package/README.md +52 -2
  2. package/build/client/harness-client.d.ts.map +1 -1
  3. package/build/client/harness-client.js +53 -12
  4. package/build/client/harness-client.js.map +1 -1
  5. package/build/client/types.d.ts +2 -1
  6. package/build/client/types.d.ts.map +1 -1
  7. package/build/config.d.ts +3 -3
  8. package/build/config.d.ts.map +1 -1
  9. package/build/config.js +11 -3
  10. package/build/config.js.map +1 -1
  11. package/build/prompts/build-deploy-app.d.ts.map +1 -1
  12. package/build/prompts/build-deploy-app.js +26 -2
  13. package/build/prompts/build-deploy-app.js.map +1 -1
  14. package/build/prompts/create-pipeline.d.ts.map +1 -1
  15. package/build/prompts/create-pipeline.js +25 -2
  16. package/build/prompts/create-pipeline.js.map +1 -1
  17. package/build/prompts/debug-pipeline.d.ts.map +1 -1
  18. package/build/prompts/debug-pipeline.js +4 -0
  19. package/build/prompts/debug-pipeline.js.map +1 -1
  20. package/build/prompts/migrate-to-template.d.ts.map +1 -1
  21. package/build/prompts/migrate-to-template.js +24 -6
  22. package/build/prompts/migrate-to-template.js.map +1 -1
  23. package/build/prompts/onboard-service.d.ts.map +1 -1
  24. package/build/prompts/onboard-service.js +30 -4
  25. package/build/prompts/onboard-service.js.map +1 -1
  26. package/build/registry/extractors.d.ts +29 -0
  27. package/build/registry/extractors.d.ts.map +1 -1
  28. package/build/registry/extractors.js +55 -0
  29. package/build/registry/extractors.js.map +1 -1
  30. package/build/registry/index.d.ts.map +1 -1
  31. package/build/registry/index.js +21 -3
  32. package/build/registry/index.js.map +1 -1
  33. package/build/registry/toolsets/chaos-descriptions.d.ts +68 -32
  34. package/build/registry/toolsets/chaos-descriptions.d.ts.map +1 -1
  35. package/build/registry/toolsets/chaos-descriptions.js +273 -34
  36. package/build/registry/toolsets/chaos-descriptions.js.map +1 -1
  37. package/build/registry/toolsets/chaos.d.ts.map +1 -1
  38. package/build/registry/toolsets/chaos.js +379 -83
  39. package/build/registry/toolsets/chaos.js.map +1 -1
  40. package/build/registry/toolsets/gitops.d.ts.map +1 -1
  41. package/build/registry/toolsets/gitops.js +38 -6
  42. package/build/registry/toolsets/gitops.js.map +1 -1
  43. package/build/registry/toolsets/pipelines.d.ts.map +1 -1
  44. package/build/registry/toolsets/pipelines.js +129 -25
  45. package/build/registry/toolsets/pipelines.js.map +1 -1
  46. package/build/registry/toolsets/platform.d.ts.map +1 -1
  47. package/build/registry/toolsets/platform.js +74 -53
  48. package/build/registry/toolsets/platform.js.map +1 -1
  49. package/build/registry/toolsets/scs.d.ts.map +1 -1
  50. package/build/registry/toolsets/scs.js +41 -1
  51. package/build/registry/toolsets/scs.js.map +1 -1
  52. package/build/registry/types.d.ts +6 -0
  53. package/build/registry/types.d.ts.map +1 -1
  54. package/build/tools/harness-create.d.ts.map +1 -1
  55. package/build/tools/harness-create.js +9 -3
  56. package/build/tools/harness-create.js.map +1 -1
  57. package/build/tools/harness-delete.d.ts.map +1 -1
  58. package/build/tools/harness-delete.js +5 -2
  59. package/build/tools/harness-delete.js.map +1 -1
  60. package/build/tools/harness-execute.d.ts.map +1 -1
  61. package/build/tools/harness-execute.js +38 -2
  62. package/build/tools/harness-execute.js.map +1 -1
  63. package/build/tools/harness-update.d.ts.map +1 -1
  64. package/build/tools/harness-update.js +14 -5
  65. package/build/tools/harness-update.js.map +1 -1
  66. package/build/utils/compact.js +2 -2
  67. package/build/utils/compact.js.map +1 -1
  68. package/build/utils/materialize-input-sets.d.ts +15 -0
  69. package/build/utils/materialize-input-sets.d.ts.map +1 -0
  70. package/build/utils/materialize-input-sets.js +125 -0
  71. package/build/utils/materialize-input-sets.js.map +1 -0
  72. package/package.json +1 -1
package/README.md CHANGED
@@ -64,7 +64,7 @@ harness-mcp-v2
64
64
  For development or customization:
65
65
 
66
66
  ```bash
67
- git clone https://github.com/thisrohangupta/harness-mcp-v2.git
67
+ git clone https://github.com/harness/mcp-server.git
68
68
  cd harness-mcp-v2
69
69
  pnpm install
70
70
  pnpm build
@@ -807,6 +807,56 @@ Harness pipelines can be stored in three ways:
807
807
  }
808
808
  ```
809
809
 
810
+ **List input sets for a pipeline:**
811
+
812
+ ```json
813
+ {
814
+ "resource_type": "input_set",
815
+ "pipeline_id": "my-pipeline"
816
+ }
817
+ ```
818
+
819
+ **Get a specific input set:**
820
+
821
+ ```json
822
+ {
823
+ "resource_type": "input_set",
824
+ "resource_id": "prod-inputs",
825
+ "pipeline_id": "my-pipeline"
826
+ }
827
+ ```
828
+
829
+ **Create an input set:**
830
+
831
+ ```json
832
+ {
833
+ "resource_type": "input_set",
834
+ "pipeline_id": "my-pipeline",
835
+ "body": "inputSet:\n name: Production Inputs\n identifier: prod_inputs\n pipeline:\n identifier: my-pipeline\n variables:\n - name: env\n type: String\n value: production"
836
+ }
837
+ ```
838
+
839
+ **Update an input set:**
840
+
841
+ ```json
842
+ {
843
+ "resource_type": "input_set",
844
+ "resource_id": "prod_inputs",
845
+ "pipeline_id": "my-pipeline",
846
+ "body": "inputSet:\n name: Production Inputs\n identifier: prod_inputs\n pipeline:\n identifier: my-pipeline\n variables:\n - name: env\n type: String\n value: production\n - name: replicas\n type: String\n value: \"3\""
847
+ }
848
+ ```
849
+
850
+ **Delete an input set:**
851
+
852
+ ```json
853
+ {
854
+ "resource_type": "input_set",
855
+ "resource_id": "prod_inputs",
856
+ "pipeline_id": "my-pipeline"
857
+ }
858
+ ```
859
+
810
860
  ## Resource Types
811
861
 
812
862
  139 resource types organized across 30 toolsets. Each resource type supports a subset of CRUD operations and optional execute actions.
@@ -826,7 +876,7 @@ Harness pipelines can be stored in three ways:
826
876
  | `execution` | x | x | | | | `interrupt` |
827
877
  | `trigger` | x | x | x | x | x | |
828
878
  | `pipeline_summary` | | x | | | | |
829
- | `input_set` | x | x | | | | |
879
+ | `input_set` | x | x | x | x | x | |
830
880
  | `runtime_input_template` | | x | | | | |
831
881
  | `approval_instance` | x | | | | | `approve`, `reject` |
832
882
 
@@ -1 +1 @@
1
- {"version":3,"file":"harness-client.d.ts","sourceRoot":"","sources":["../../src/client/harness-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAwDjD;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,MAAM,GAAG,SAAS,CAAC;AAEzD,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,iBAAiB,CAAC,CAAoB;gBAElC,MAAM,EAAE,MAAM;IAS1B;;;OAGG;IACH,oBAAoB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAIvD,6EAA6E;IAC7E,OAAO,CAAC,gBAAgB;IAIxB,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;IAEK,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IA2JrD;;;;OAIG;IACG,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;IA6F/D,OAAO,CAAC,QAAQ;CAoCjB"}
1
+ {"version":3,"file":"harness-client.d.ts","sourceRoot":"","sources":["../../src/client/harness-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAkGjD;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,MAAM,GAAG,SAAS,CAAC;AAEzD,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,iBAAiB,CAAC,CAAoB;gBAElC,MAAM,EAAE,MAAM;IAS1B;;;OAGG;IACH,oBAAoB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAIvD,6EAA6E;IAC7E,OAAO,CAAC,gBAAgB;IAIxB,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,OAAO,IAAI,MAAM,CAEpB;IAEK,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IA0JrD;;;;OAIG;IACG,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;IA4F/D,OAAO,CAAC,QAAQ;CA2CjB"}
@@ -3,6 +3,20 @@ import { RateLimiter } from "../utils/rate-limiter.js";
3
3
  import { createLogger } from "../utils/logger.js";
4
4
  const log = createLogger("harness-client");
5
5
  const RETRYABLE_STATUS_CODES = new Set([429, 500, 502, 503, 504]);
6
+ /**
7
+ * Whether the caller explicitly set a body (including empty string).
8
+ * `""` must be preserved: `if (options.body)` treats it as absent, which drops the
9
+ * YAML body on pipeline execute — Harness then ignores `inputSetIdentifiers` and
10
+ * fails with "Value not provided for required variable".
11
+ */
12
+ function hasExplicitBody(body) {
13
+ return body !== undefined && body !== null;
14
+ }
15
+ function serializeRequestBody(body) {
16
+ if (!hasExplicitBody(body))
17
+ return undefined;
18
+ return typeof body === "string" ? body : JSON.stringify(body);
19
+ }
6
20
  const BASE_BACKOFF_MS = 1000;
7
21
  /** Strip HTML tags, script/style contents, and collapse whitespace. */
8
22
  function stripHtml(html) {
@@ -50,6 +64,26 @@ function isGarbageMessage(message) {
50
64
  return true;
51
65
  return false;
52
66
  }
67
+ /**
68
+ * Per-path-prefix error field enrichments.
69
+ * When an API error response contains the named field AND the request path
70
+ * matches the prefix, the field value is appended to the error message.
71
+ * Add entries here for endpoint groups that return extra context fields.
72
+ */
73
+ const ERROR_FIELD_ENRICHMENTS = [
74
+ { pathPrefix: "/chaos/", field: "description" },
75
+ { pathPrefix: "/loadTest/", field: "description" },
76
+ ];
77
+ function enrichErrorMessage(rawMessage, parsed, path) {
78
+ let message = rawMessage;
79
+ for (const { pathPrefix, field } of ERROR_FIELD_ENRICHMENTS) {
80
+ const value = parsed[field];
81
+ if (path.startsWith(pathPrefix) && typeof value === "string" && value) {
82
+ message += ` — ${value}`;
83
+ }
84
+ }
85
+ return message;
86
+ }
53
87
  export class HarnessClient {
54
88
  baseUrl;
55
89
  token;
@@ -99,7 +133,7 @@ export class HarnessClient {
99
133
  if (!headers["Authorization"] && !headers["x-api-key"]) {
100
134
  headers["x-api-key"] = this.token;
101
135
  }
102
- if (options.body) {
136
+ if (hasExplicitBody(options.body)) {
103
137
  if (typeof options.body === "string") {
104
138
  headers["Content-Type"] = headers["Content-Type"] ?? "application/yaml";
105
139
  }
@@ -126,11 +160,9 @@ export class HarnessClient {
126
160
  const signal = options.signal
127
161
  ? AbortSignal.any([options.signal, timeoutController.signal])
128
162
  : timeoutController.signal;
129
- const bodyString = options.body
130
- ? (typeof options.body === "string" ? options.body : JSON.stringify(options.body))
131
- : undefined;
163
+ const bodyString = serializeRequestBody(options.body);
132
164
  log.debug(`${method} ${url}`);
133
- if (bodyString) {
165
+ if (bodyString !== undefined) {
134
166
  log.debug("Request body", { body: bodyString.slice(0, 1000) });
135
167
  }
136
168
  const response = await fetch(url, {
@@ -150,9 +182,10 @@ export class HarnessClient {
150
182
  // Non-JSON error (HTML proxy page, WAF block, etc.)
151
183
  // Provide actionable messages instead of leaking raw HTML to the LLM
152
184
  }
153
- const message = isGarbageMessage(parsed.message)
185
+ const rawMessage = isGarbageMessage(parsed.message)
154
186
  ? humanizeHttpError(response.status, body)
155
187
  : parsed.message;
188
+ const message = enrichErrorMessage(rawMessage, parsed, options.path);
156
189
  log.debug(`HTTP ${response.status} error`, { body: body.slice(0, 1000) });
157
190
  const error = new HarnessApiError(message, response.status, parsed.code, parsed.correlationId);
158
191
  if (RETRYABLE_STATUS_CODES.has(response.status) && attempt < this.maxRetries) {
@@ -222,7 +255,7 @@ export class HarnessClient {
222
255
  if (!headers["Authorization"] && !headers["x-api-key"]) {
223
256
  headers["x-api-key"] = this.token;
224
257
  }
225
- if (options.body) {
258
+ if (hasExplicitBody(options.body)) {
226
259
  if (typeof options.body === "string") {
227
260
  headers["Content-Type"] = headers["Content-Type"] ?? "application/yaml";
228
261
  }
@@ -247,9 +280,7 @@ export class HarnessClient {
247
280
  const signal = options.signal
248
281
  ? AbortSignal.any([options.signal, timeoutController.signal])
249
282
  : timeoutController.signal;
250
- const bodyString = options.body
251
- ? (typeof options.body === "string" ? options.body : JSON.stringify(options.body))
252
- : undefined;
283
+ const bodyString = serializeRequestBody(options.body);
253
284
  log.debug(`STREAM ${method} ${url}`);
254
285
  const response = await fetch(url, { method, headers, body: bodyString, signal });
255
286
  clearTimeout(timer);
@@ -260,9 +291,10 @@ export class HarnessClient {
260
291
  parsed = JSON.parse(body);
261
292
  }
262
293
  catch { /* non-JSON */ }
263
- const message = isGarbageMessage(parsed.message)
294
+ const rawMessage = isGarbageMessage(parsed.message)
264
295
  ? humanizeHttpError(response.status, body)
265
296
  : parsed.message;
297
+ const message = enrichErrorMessage(rawMessage, parsed, options.path);
266
298
  const error = new HarnessApiError(message, response.status, parsed.code, parsed.correlationId);
267
299
  if (RETRYABLE_STATUS_CODES.has(response.status) && attempt < this.maxRetries) {
268
300
  lastError = error;
@@ -310,7 +342,16 @@ export class HarnessClient {
310
342
  }
311
343
  if (options.params) {
312
344
  for (const [key, value] of Object.entries(options.params)) {
313
- if (value !== undefined && value !== "") {
345
+ if (value === undefined || value === "")
346
+ continue;
347
+ if (Array.isArray(value)) {
348
+ for (const item of value) {
349
+ if (item !== undefined && item !== "") {
350
+ params.append(key, String(item));
351
+ }
352
+ }
353
+ }
354
+ else {
314
355
  params.set(key, String(value));
315
356
  }
316
357
  }
@@ -1 +1 @@
1
- {"version":3,"file":"harness-client.js","sourceRoot":"","sources":["../../src/client/harness-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"harness-client.js","sourceRoot":"","sources":["../../src/client/harness-client.ts"],"names":[],"mappings":"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"}
@@ -36,7 +36,8 @@ export interface HarnessV1ListResponse<T> {
36
36
  export interface RequestOptions {
37
37
  method?: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
38
38
  path: string;
39
- params?: Record<string, string | number | boolean | undefined>;
39
+ /** Scalar or string[] (repeated query keys, e.g. `inputSetIdentifiers=a&inputSetIdentifiers=b`). */
40
+ params?: Record<string, string | number | boolean | string[] | undefined>;
40
41
  body?: unknown;
41
42
  headers?: Record<string, string>;
42
43
  /** Override base URL for this request (e.g. FME/Split.io uses https://api.split.io) */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,+CAA+C;AAC/C,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IACxC,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,yDAAyD;AACzD,MAAM,WAAW,mBAAmB,CAAC,CAAC;IACpC,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IACxC,IAAI,CAAC,EAAE;QACL,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;QACd,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,mCAAmC;AACnC,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACtC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;IAC/D,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,uFAAuF;IACvF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oFAAoF;IACpF,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iGAAiG;IACjG,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IACjC,gFAAgF;IAChF,OAAO,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC;IAC5B;0FACsF;IACtF,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,+CAA+C;AAC/C,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IACxC,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,yDAAyD;AACzD,MAAM,WAAW,mBAAmB,CAAC,CAAC;IACpC,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IACxC,IAAI,CAAC,EAAE;QACL,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;QACd,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,mCAAmC;AACnC,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACtC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,oGAAoG;IACpG,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IAC1E,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,uFAAuF;IACvF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oFAAoF;IACpF,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iGAAiG;IACjG,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IACjC,gFAAgF;IAChF,OAAO,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC;IAC5B;0FACsF;IACtF,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B"}
package/build/config.d.ts CHANGED
@@ -24,9 +24,9 @@ export declare const ConfigSchema: z.ZodPipe<z.ZodObject<{
24
24
  HARNESS_TOOLSETS: z.ZodOptional<z.ZodString>;
25
25
  HARNESS_MAX_BODY_SIZE_MB: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
26
26
  HARNESS_RATE_LIMIT_RPS: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
27
- HARNESS_READ_ONLY: z.ZodDefault<z.ZodCoercedBoolean<unknown>>;
28
- HARNESS_SKIP_ELICITATION: z.ZodDefault<z.ZodCoercedBoolean<unknown>>;
29
- HARNESS_ALLOW_HTTP: z.ZodDefault<z.ZodCoercedBoolean<unknown>>;
27
+ HARNESS_READ_ONLY: z.ZodDefault<z.ZodPipe<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString, z.ZodUndefined]>, z.ZodTransform<boolean, string | boolean | undefined>>>;
28
+ HARNESS_SKIP_ELICITATION: z.ZodDefault<z.ZodPipe<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString, z.ZodUndefined]>, z.ZodTransform<boolean, string | boolean | undefined>>>;
29
+ HARNESS_ALLOW_HTTP: z.ZodDefault<z.ZodPipe<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString, z.ZodUndefined]>, z.ZodTransform<boolean, string | boolean | undefined>>>;
30
30
  HARNESS_FME_BASE_URL: z.ZodDefault<z.ZodString>;
31
31
  }, z.core.$strip>, z.ZodTransform<{
32
32
  HARNESS_ACCOUNT_ID: string;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAO5E;AA2BD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BvB,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAKlD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,CAGrG;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;AAW5B;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAO5E;AA2BD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BvB,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAKlD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,CAGrG;AAED,wBAAgB,UAAU,IAAI,MAAM,CAQnC"}
package/build/config.js CHANGED
@@ -1,4 +1,12 @@
1
1
  import * as z from "zod/v4";
2
+ /**
3
+ * Coerce a string env var to a boolean.
4
+ * "true" / "1" / "yes" → true; everything else (including "false") → false.
5
+ * This avoids the JS `Boolean("false") === true` footgun with z.coerce.boolean().
6
+ */
7
+ const booleanFromEnv = z
8
+ .union([z.boolean(), z.string(), z.undefined()])
9
+ .transform((val) => typeof val === "string" && ["true", "1", "yes"].includes(val.toLowerCase()));
2
10
  /**
3
11
  * Extract the account ID from a Harness PAT token.
4
12
  * PAT format: pat.<accountId>.<tokenId>.<secret>
@@ -28,9 +36,9 @@ const RawConfigSchema = z.object({
28
36
  HARNESS_TOOLSETS: z.string().optional(),
29
37
  HARNESS_MAX_BODY_SIZE_MB: z.coerce.number().default(10),
30
38
  HARNESS_RATE_LIMIT_RPS: z.coerce.number().default(10),
31
- HARNESS_READ_ONLY: z.coerce.boolean().default(false),
32
- HARNESS_SKIP_ELICITATION: z.coerce.boolean().default(false),
33
- HARNESS_ALLOW_HTTP: z.coerce.boolean().default(false),
39
+ HARNESS_READ_ONLY: booleanFromEnv.default(false),
40
+ HARNESS_SKIP_ELICITATION: booleanFromEnv.default(false),
41
+ HARNESS_ALLOW_HTTP: booleanFromEnv.default(false),
34
42
  HARNESS_FME_BASE_URL: z.string().url().default("https://api.split.io"),
35
43
  });
36
44
  export const ConfigSchema = RawConfigSchema.transform((data) => {
@@ -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 +1 @@
1
- {"version":3,"file":"build-deploy-app.d.ts","sourceRoot":"","sources":["../../src/prompts/build-deploy-app.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA8NpE"}
1
+ {"version":3,"file":"build-deploy-app.d.ts","sourceRoot":"","sources":["../../src/prompts/build-deploy-app.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAsPpE"}
@@ -106,7 +106,11 @@ Present the full pipeline YAML for review. Do NOT create it yet.
106
106
 
107
107
  ### Step 7 — Create & execute CI pipeline (with auto-retry)
108
108
  - After user confirms the YAML, create it using harness_create with resource_type="pipeline"
109
- - Execute it using harness_execute with resource_type="pipeline"
109
+ - **Discover runtime inputs**: Call harness_get with resource_type="runtime_input_template" and resource_id=<pipeline_id> to see which \`<+input>\` placeholders need values
110
+ - **Execute with shorthands**: Call harness_execute with resource_type="pipeline", action="run", resource_id=<pipeline_id>. For CI pipelines, pass the Git branch/tag directly as shorthand inputs:
111
+ - \`inputs: { branch: "main" }\` — auto-expands to the full codebase build structure
112
+ - Other shorthands: \`tag\`, \`pr_number\`, \`commit_sha\` (see harness_describe for details)
113
+ - For remaining \`<+input>\` values, pass them as flat key-value pairs in \`inputs\`
110
114
  - Monitor progress using harness_status — poll until the execution completes or fails
111
115
 
112
116
  **CI FAILURE RETRY LOOP (up to 5 attempts):**
@@ -166,7 +170,8 @@ Present the full pipeline YAML for review. Do NOT create it yet.
166
170
 
167
171
  ### Step 11 — Create & execute CD pipeline (with auto-retry)
168
172
  - After user confirms, create the CD pipeline using harness_create with resource_type="pipeline"
169
- - Execute it using harness_execute with resource_type="pipeline"
173
+ - **Discover runtime inputs**: Call harness_get with resource_type="runtime_input_template" and resource_id=<pipeline_id> to see which \`<+input>\` placeholders need values
174
+ - **Execute**: Call harness_execute with resource_type="pipeline", action="run", resource_id=<pipeline_id>, passing any required runtime inputs as flat key-value \`inputs\`
170
175
  - Monitor with harness_status — poll until the execution completes or fails
171
176
 
172
177
  **CD FAILURE RETRY LOOP (up to 3 attempts):**
@@ -204,6 +209,25 @@ If still failing after 3 attempts:
204
209
  - Links: Harness UI links to both pipelines, service, and environment
205
210
  - App URL: if determinable from the K8s service (LoadBalancer IP/hostname)
206
211
 
212
+ ### Step 13 — Optional: Create input sets for reusability
213
+ If the pipelines have \`<+input>\` runtime placeholders, offer to create saved input sets so future runs don't require manual input:
214
+ - Call harness_get with resource_type="runtime_input_template" and resource_id=<pipeline_id> for each pipeline to identify all placeholders
215
+ - Suggest creating input sets (e.g., "dev-inputs", "prod-inputs") that pre-fill common values
216
+ - Create using harness_create with resource_type="input_set", pipeline_id=<pipeline_id>, and a YAML body:
217
+ \`\`\`yaml
218
+ inputSet:
219
+ name: Dev Defaults
220
+ identifier: dev_defaults
221
+ pipeline:
222
+ identifier: <pipeline_id>
223
+ variables:
224
+ - name: env
225
+ type: String
226
+ value: dev
227
+ \`\`\`
228
+ - Future runs can use: harness_execute with input_set_ids=["dev_defaults"] instead of passing inputs manually
229
+ - This is optional — only create if the user wants reusable configurations
230
+
207
231
  ---
208
232
 
209
233
  CRITICAL RULES:
@@ -1 +1 @@
1
- {"version":3,"file":"build-deploy-app.js","sourceRoot":"","sources":["../../src/prompts/build-deploy-app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAG5B,MAAM,UAAU,4BAA4B,CAAC,MAAiB;IAC5D,MAAM,CAAC,cAAc,CACnB,kBAAkB,EAClB;QACE,WAAW,EAAE,iIAAiI;QAC9I,UAAU,EAAE;YACV,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;YACrF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mEAAmE,CAAC;YACnG,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAC,QAAQ,EAAE;YACvE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC,CAAC,QAAQ,EAAE;SACjF;KACF,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QACvD,QAAQ,EAAE,CAAC;gBACT,IAAI,EAAE,MAAe;gBACrB,OAAO,EAAE;oBACP,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,0CAA0C,OAAO;;gBAEjD,SAAS;EACvB,SAAS,CAAC,CAAC,CAAC,YAAY,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE;EACxC,SAAS,CAAC,CAAC,CAAC,kBAAkB,SAAS,EAAE,CAAC,CAAC,CAAC,wBAAwB;;;;;;;;;;WAU3D,OAAO;;;;;;;;;;;;;;;;;;;;;;;oDAuBkC,SAAS,CAAC,CAAC,CAAC,oBAAoB,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE;mDAClD,SAAS,CAAC,CAAC,CAAC,oBAAoB,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE;kDAClD,SAAS,CAAC,CAAC,CAAC,oBAAoB,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE;sDAC7C,SAAS,CAAC,CAAC,CAAC,oBAAoB,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE;;;;;;oCAMnE,OAAO;;;;;YAK/B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wEAsEqD,SAAS;;;;;kCAK/C,SAAS;;;;;;;;;;;;+DAYoB,SAAS,IAAI,SAAS;;;;;;;;qDAQhC,SAAS,IAAI,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8GAsDmC;iBACrG;aACF,CAAC;KACH,CAAC,CACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"build-deploy-app.js","sourceRoot":"","sources":["../../src/prompts/build-deploy-app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAG5B,MAAM,UAAU,4BAA4B,CAAC,MAAiB;IAC5D,MAAM,CAAC,cAAc,CACnB,kBAAkB,EAClB;QACE,WAAW,EAAE,iIAAiI;QAC9I,UAAU,EAAE;YACV,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;YACrF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mEAAmE,CAAC;YACnG,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAC,QAAQ,EAAE;YACvE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC,CAAC,QAAQ,EAAE;SACjF;KACF,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QACvD,QAAQ,EAAE,CAAC;gBACT,IAAI,EAAE,MAAe;gBACrB,OAAO,EAAE;oBACP,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,0CAA0C,OAAO;;gBAEjD,SAAS;EACvB,SAAS,CAAC,CAAC,CAAC,YAAY,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE;EACxC,SAAS,CAAC,CAAC,CAAC,kBAAkB,SAAS,EAAE,CAAC,CAAC,CAAC,wBAAwB;;;;;;;;;;WAU3D,OAAO;;;;;;;;;;;;;;;;;;;;;;;oDAuBkC,SAAS,CAAC,CAAC,CAAC,oBAAoB,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE;mDAClD,SAAS,CAAC,CAAC,CAAC,oBAAoB,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE;kDAClD,SAAS,CAAC,CAAC,CAAC,oBAAoB,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE;sDAC7C,SAAS,CAAC,CAAC,CAAC,oBAAoB,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE;;;;;;oCAMnE,OAAO;;;;;YAK/B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wEA0EqD,SAAS;;;;;kCAK/C,SAAS;;;;;;;;;;;;+DAYoB,SAAS,IAAI,SAAS;;;;;;;;qDAQhC,SAAS,IAAI,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8GA0EmC;iBACrG;aACF,CAAC;KACH,CAAC,CACH,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-pipeline.d.ts","sourceRoot":"","sources":["../../src/prompts/create-pipeline.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqEpE"}
1
+ {"version":3,"file":"create-pipeline.d.ts","sourceRoot":"","sources":["../../src/prompts/create-pipeline.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA4FpE"}
@@ -58,9 +58,32 @@ Steps:
58
58
  Key: uses \`connectorRef\`. Does NOT have \`registryRef\`.
59
59
 
60
60
  6. Generate the pipeline YAML conforming to the schema, using the correct template from step 5
61
- 7. Present the YAML for review before creating
61
+ 7. **Choose storage mode** — ask the user where to store the pipeline:
62
+ - **Inline (default)**: Stored in Harness. Simplest setup, no Git required. Just call harness_create with resource_type="pipeline" and the YAML body.
63
+ - **Remote (External Git)**: Stored in GitHub/GitLab/Bitbucket. Pass \`params: { store_type: "REMOTE", connector_ref: "<git_connector>", repo_name: "<repo>", branch: "main", file_path: ".harness/<pipeline_id>.yaml", commit_msg: "Add pipeline via MCP" }\`
64
+ - **Remote (Harness Code)**: Stored in a Harness Code repo. Pass \`params: { store_type: "REMOTE", is_harness_code_repo: true, repo_name: "<repo>", branch: "main", file_path: ".harness/<pipeline_id>.yaml", commit_msg: "Add pipeline via MCP" }\`
65
+ 8. Present the YAML for review before creating
62
66
 
63
- Do NOT create the pipeline until I confirm — just show me the YAML first.`,
67
+ Do NOT create the pipeline until I confirm — just show me the YAML first.
68
+
69
+ After the pipeline is created, if it contains \`<+input>\` runtime placeholders:
70
+ 9. **Suggest creating input sets** to save common configurations for future runs:
71
+ - Call harness_get with resource_type="runtime_input_template" and resource_id=<pipeline_id> to discover all \`<+input>\` placeholders
72
+ - Propose input sets for common scenarios (e.g., "dev-defaults", "prod-defaults") that pre-fill values
73
+ - Create using harness_create with resource_type="input_set", pipeline_id=<pipeline_id>, and a YAML body like:
74
+ \`\`\`yaml
75
+ inputSet:
76
+ name: Dev Defaults
77
+ identifier: dev_defaults
78
+ pipeline:
79
+ identifier: <pipeline_id>
80
+ variables:
81
+ - name: env
82
+ type: String
83
+ value: dev
84
+ \`\`\`
85
+ - This lets future runs use \`input_set_ids: ["dev_defaults"]\` instead of manual input each time
86
+ - This step is optional — only create if the user wants reusable run configurations`,
64
87
  },
65
88
  }],
66
89
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"create-pipeline.js","sourceRoot":"","sources":["../../src/prompts/create-pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAG5B,MAAM,UAAU,4BAA4B,CAAC,MAAiB;IAC5D,MAAM,CAAC,cAAc,CACnB,iBAAiB,EACjB;QACE,WAAW,EAAE,wDAAwD;QACrE,UAAU,EAAE;YACV,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;YACxE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC,QAAQ,EAAE;SACvE;KACF,EACD,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QACrC,QAAQ,EAAE,CAAC;gBACT,IAAI,EAAE,MAAe;gBACrB,OAAO,EAAE;oBACP,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE;;EAEd,WAAW;;;;;gEAKmD,SAAS,CAAC,CAAC,CAAC,oBAAoB,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE;;;;;sDAK3D,SAAS,CAAC,CAAC,CAAC,oBAAoB,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0EAqC7B;iBACjE;aACF,CAAC;KACH,CAAC,CACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"create-pipeline.js","sourceRoot":"","sources":["../../src/prompts/create-pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAG5B,MAAM,UAAU,4BAA4B,CAAC,MAAiB;IAC5D,MAAM,CAAC,cAAc,CACnB,iBAAiB,EACjB;QACE,WAAW,EAAE,wDAAwD;QACrE,UAAU,EAAE;YACV,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;YACxE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC,QAAQ,EAAE;SACvE;KACF,EACD,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QACrC,QAAQ,EAAE,CAAC;gBACT,IAAI,EAAE,MAAe;gBACrB,OAAO,EAAE;oBACP,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE;;EAEd,WAAW;;;;;gEAKmD,SAAS,CAAC,CAAC,CAAC,oBAAoB,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE;;;;;sDAK3D,SAAS,CAAC,CAAC,CAAC,oBAAoB,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uFA4DhB;iBAC9E;aACF,CAAC;KACH,CAAC,CACH,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"debug-pipeline.d.ts","sourceRoot":"","sources":["../../src/prompts/debug-pipeline.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA0CnE"}
1
+ {"version":3,"file":"debug-pipeline.d.ts","sourceRoot":"","sources":["../../src/prompts/debug-pipeline.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA8CnE"}
@@ -30,6 +30,10 @@ Then analyze the diagnostic payload:
30
30
  - **failure section**: failed stage, step, error message, and delegate
31
31
  - **child_pipeline section**: if present, the failure is in a chained pipeline — focus on the child's failure details
32
32
  - **failed_step_logs**: actual log output from the failed steps — look for error patterns, stack traces, and exit codes
33
+ - **runtime input issues**: if the error mentions unresolved \`<+input>\` expressions or missing variables, check:
34
+ - Call harness_get with resource_type="runtime_input_template" and resource_id=<pipeline_id> to see which inputs the pipeline expects
35
+ - Call harness_list with resource_type="input_set", pipeline_id=<pipeline_id> to see available input sets that could provide the missing values
36
+ - Suggest the user either pass the missing values as \`inputs\` or use \`input_set_ids\` referencing a saved input set
33
37
 
34
38
  Provide actionable recommendations based on the combined evidence.`,
35
39
  },
@@ -1 +1 @@
1
- {"version":3,"file":"debug-pipeline.js","sourceRoot":"","sources":["../../src/prompts/debug-pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAG5B,MAAM,UAAU,2BAA2B,CAAC,MAAiB;IAC3D,MAAM,CAAC,cAAc,CACnB,wBAAwB,EACxB;QACE,WAAW,EAAE,8GAA8G;QAC3H,UAAU,EAAE;YACV,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC,CAAC,QAAQ,EAAE;YACrG,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE;SAChE;KACF,EACD,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,EAAE;QACnC,uCAAuC;QACvC,MAAM,KAAK,GAAG,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,KAAK;YACnB,CAAC,CAAC,QAAQ,WAAW,GAAG;YACxB,CAAC,CAAC,iBAAiB,WAAW,GAAG,CAAC;QAEpC,OAAO;YACL,QAAQ,EAAE,CAAC;oBACT,IAAI,EAAE,MAAe;oBACrB,OAAO,EAAE;wBACP,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE;;;;;;;yCAOuB,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,iBAAiB,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE;;;;;;;mEAO9B;qBACxD;iBACF,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"debug-pipeline.js","sourceRoot":"","sources":["../../src/prompts/debug-pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAG5B,MAAM,UAAU,2BAA2B,CAAC,MAAiB;IAC3D,MAAM,CAAC,cAAc,CACnB,wBAAwB,EACxB;QACE,WAAW,EAAE,8GAA8G;QAC3H,UAAU,EAAE;YACV,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC,CAAC,QAAQ,EAAE;YACrG,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE;SAChE;KACF,EACD,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,EAAE;QACnC,uCAAuC;QACvC,MAAM,KAAK,GAAG,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,KAAK;YACnB,CAAC,CAAC,QAAQ,WAAW,GAAG;YACxB,CAAC,CAAC,iBAAiB,WAAW,GAAG,CAAC;QAEpC,OAAO;YACL,QAAQ,EAAE,CAAC;oBACT,IAAI,EAAE,MAAe;oBACrB,OAAO,EAAE;wBACP,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE;;;;;;;yCAOuB,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,iBAAiB,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;mEAW9B;qBACxD;iBACF,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"migrate-to-template.d.ts","sourceRoot":"","sources":["../../src/prompts/migrate-to-template.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAuCvE"}
1
+ {"version":3,"file":"migrate-to-template.d.ts","sourceRoot":"","sources":["../../src/prompts/migrate-to-template.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAyDvE"}
@@ -18,18 +18,36 @@ export function registerMigrateToTemplatePrompt(server) {
18
18
  Steps:
19
19
  1. **Get pipeline YAML**: Call harness_get with resource_type="pipeline", resource_id="${pipelineId}"${projectFilter} to fetch the full pipeline definition
20
20
  2. **List existing templates**: Call harness_list with resource_type="template"${projectFilter} to see what templates already exist (avoid duplicating)
21
- 3. **Identify reusable patterns**: Analyze the pipeline for:
21
+ 3. **List existing input sets**: Call harness_list with resource_type="input_set", pipeline_id="${pipelineId}"${projectFilter} to see if input sets already exist for this pipeline
22
+ 4. **Identify reusable patterns**: Analyze the pipeline for:
22
23
  - Stages that could become **Stage templates** (e.g., deployment stages, approval stages)
23
24
  - Steps or step groups that could become **Step templates** (e.g., common build steps, deploy steps, notification steps)
24
25
  - Patterns repeated across stages that indicate template opportunity
25
- 4. **Generate template YAML**: For each identified template:
26
+ - Hardcoded values that vary per environment or run (these become \`<+input>\` placeholders)
27
+ 5. **Generate template YAML**: For each identified template:
26
28
  - Extract the stage/step definition
27
- - Parameterize hardcoded values as runtime inputs (<+input>)
29
+ - Parameterize hardcoded values as runtime inputs (\`<+input>\`)
28
30
  - Add template metadata (name, identifier, versionLabel, type)
29
- 5. **Generate updated pipeline YAML**: Rewrite the pipeline to reference the new templates using templateRef and templateInputs
30
- 6. **Present for review**: Show all template YAMLs and the updated pipeline YAML
31
+ 6. **Generate updated pipeline YAML**: Rewrite the pipeline to reference the new templates using templateRef and templateInputs
32
+ 7. **Generate input sets for common configurations**: For each set of \`<+input>\` placeholders introduced:
33
+ - Identify which values were previously hardcoded and extract them into named input sets
34
+ - Create input sets for common scenarios (e.g., "dev-defaults", "prod-defaults"):
35
+ \`\`\`yaml
36
+ inputSet:
37
+ name: Dev Defaults
38
+ identifier: dev_defaults
39
+ pipeline:
40
+ identifier: ${pipelineId}
41
+ variables:
42
+ - name: env
43
+ type: String
44
+ value: dev
45
+ \`\`\`
46
+ - This preserves the original behavior: running with \`input_set_ids: ["dev_defaults"]\` produces the same result as the pre-template pipeline
47
+ - Multiple input sets can be combined: \`input_set_ids: ["base_defaults", "prod_overrides"]\` (later sets override earlier ones by variable name)
48
+ 8. **Present for review**: Show all template YAMLs, the updated pipeline YAML, and proposed input sets
31
49
 
32
- Do NOT create templates or update the pipeline until I confirm the plan.`,
50
+ Do NOT create templates, update the pipeline, or create input sets until I confirm the plan.`,
33
51
  },
34
52
  }],
35
53
  };
@@ -1 +1 @@
1
- {"version":3,"file":"migrate-to-template.js","sourceRoot":"","sources":["../../src/prompts/migrate-to-template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAG5B,MAAM,UAAU,+BAA+B,CAAC,MAAiB;IAC/D,MAAM,CAAC,cAAc,CACnB,8BAA8B,EAC9B;QACE,WAAW,EAAE,gFAAgF;QAC7F,UAAU,EAAE;YACV,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;YACjE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE;SAChE;KACF,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE;QAClC,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,iBAAiB,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,OAAO;YACL,QAAQ,EAAE,CAAC;oBACT,IAAI,EAAE,MAAe;oBACrB,OAAO,EAAE;wBACP,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,qBAAqB,UAAU;;;yFAGwC,UAAU,IAAI,aAAa;iFACnC,aAAa;;;;;;;;;;;;yEAYrB;qBAC9D;iBACF,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"migrate-to-template.js","sourceRoot":"","sources":["../../src/prompts/migrate-to-template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAG5B,MAAM,UAAU,+BAA+B,CAAC,MAAiB;IAC/D,MAAM,CAAC,cAAc,CACnB,8BAA8B,EAC9B;QACE,WAAW,EAAE,gFAAgF;QAC7F,UAAU,EAAE;YACV,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;YACjE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE;SAChE;KACF,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE;QAClC,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,iBAAiB,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,OAAO;YACL,QAAQ,EAAE,CAAC;oBACT,IAAI,EAAE,MAAe;oBACrB,OAAO,EAAE;wBACP,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,qBAAqB,UAAU;;;yFAGwC,UAAU,IAAI,aAAa;iFACnC,aAAa;kGACI,UAAU,IAAI,aAAa;;;;;;;;;;;;;;;;;;;uBAmBtG,UAAU;;;;;;;;;;6FAU4D;qBAClF;iBACF,CAAC;SACH,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"onboard-service.d.ts","sourceRoot":"","sources":["../../src/prompts/onboard-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAkCpE"}
1
+ {"version":3,"file":"onboard-service.d.ts","sourceRoot":"","sources":["../../src/prompts/onboard-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA4DpE"}
@@ -18,12 +18,38 @@ Steps:
18
18
  2. **Review patterns**: Call harness_list with resource_type="service"${projectId ? ` and project_id="${projectId}"` : ""} to see existing service patterns in the project
19
19
  3. **Environments**: Call harness_list with resource_type="environment"${projectId ? ` and project_id="${projectId}"` : ""} to see available environments
20
20
  4. **Connectors**: Call harness_list with resource_type="connector"${projectId ? ` and project_id="${projectId}"` : ""} to see available infrastructure connectors
21
- 5. **Create service**: Generate the service YAML definition following existing patterns
22
- 6. **Create pipeline**: Generate a deployment pipeline YAML for the service with:
21
+ 5. **Check existing input sets**: Call harness_list with resource_type="input_set"${projectId ? ` and project_id="${projectId}"` : ""} to see if the project already uses input sets for parameterized deployments
22
+ 6. **Create service**: Generate the service YAML definition following existing patterns
23
+ 7. **Create pipeline**: Generate a deployment pipeline YAML for the service with:
23
24
  - Build stage (if applicable)
24
- - Deploy to dev/staging/prod environments
25
+ - Deploy to dev/staging/prod environments using \`<+input>\` for environment-specific values (infrastructure, namespace, replicas, image tag)
25
26
  - Approval gates between staging and prod
26
- 7. **Present for review**: Show all generated YAML before creating anything
27
+ 8. **Choose storage mode** ask where to store the pipeline:
28
+ - **Inline (default)**: Stored in Harness — simplest setup
29
+ - **Remote (External Git)**: Stored in GitHub/GitLab/Bitbucket via a Git connector
30
+ - **Remote (Harness Code)**: Stored in a Harness Code repository
31
+ 9. **Create per-environment input sets**: Since the pipeline uses \`<+input>\` placeholders for multi-environment deployment, create input sets that pre-fill values for each target environment:
32
+ - \`${serviceName}-dev\` — dev infrastructure, namespace, lower replicas
33
+ - \`${serviceName}-staging\` — staging infrastructure, namespace
34
+ - \`${serviceName}-prod\` — prod infrastructure, namespace, higher replicas
35
+ - Example YAML for each:
36
+ \`\`\`yaml
37
+ inputSet:
38
+ name: ${serviceName} Dev
39
+ identifier: ${serviceName.replace(/[^a-zA-Z0-9]/g, "_")}_dev
40
+ pipeline:
41
+ identifier: <pipeline_id>
42
+ variables:
43
+ - name: env
44
+ type: String
45
+ value: dev
46
+ - name: namespace
47
+ type: String
48
+ value: dev
49
+ \`\`\`
50
+ - Create each using harness_create with resource_type="input_set" and pipeline_id=<pipeline_id>
51
+ - This lets future runs use: \`harness_execute(resource_type="pipeline", input_set_ids=["${serviceName.replace(/[^a-zA-Z0-9]/g, "_")}_dev"])\` instead of passing inputs manually
52
+ 10. **Present for review**: Show all generated YAML (service, pipeline, input sets) before creating anything
27
53
 
28
54
  Do NOT create any resources until I confirm — present the complete plan first with all YAML definitions.`,
29
55
  },