@vibe-validate/cli 0.17.4 → 0.17.5-rc.1

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 (112) hide show
  1. package/dist/bin/vibe-validate +1 -1
  2. package/dist/bin/vibe-validate.js +1 -1
  3. package/dist/bin/vibe-validate.js.map +1 -1
  4. package/dist/bin/vv +1 -1
  5. package/dist/bin.js +10 -10
  6. package/dist/bin.js.map +1 -1
  7. package/dist/commands/cleanup.d.ts.map +1 -1
  8. package/dist/commands/cleanup.js +1 -1
  9. package/dist/commands/cleanup.js.map +1 -1
  10. package/dist/commands/config.d.ts.map +1 -1
  11. package/dist/commands/config.js +2 -2
  12. package/dist/commands/config.js.map +1 -1
  13. package/dist/commands/create-extractor.d.ts.map +1 -1
  14. package/dist/commands/create-extractor.js +17 -15
  15. package/dist/commands/create-extractor.js.map +1 -1
  16. package/dist/commands/doctor.d.ts +1 -1
  17. package/dist/commands/doctor.d.ts.map +1 -1
  18. package/dist/commands/doctor.js +96 -29
  19. package/dist/commands/doctor.js.map +1 -1
  20. package/dist/commands/generate-workflow.d.ts +1 -1
  21. package/dist/commands/generate-workflow.d.ts.map +1 -1
  22. package/dist/commands/generate-workflow.js +12 -56
  23. package/dist/commands/generate-workflow.js.map +1 -1
  24. package/dist/commands/history.d.ts +1 -1
  25. package/dist/commands/history.d.ts.map +1 -1
  26. package/dist/commands/history.js +21 -10
  27. package/dist/commands/history.js.map +1 -1
  28. package/dist/commands/init.d.ts.map +1 -1
  29. package/dist/commands/init.js +1 -1
  30. package/dist/commands/init.js.map +1 -1
  31. package/dist/commands/pre-commit.d.ts.map +1 -1
  32. package/dist/commands/pre-commit.js +36 -20
  33. package/dist/commands/pre-commit.js.map +1 -1
  34. package/dist/commands/run.d.ts.map +1 -1
  35. package/dist/commands/run.js +4 -4
  36. package/dist/commands/run.js.map +1 -1
  37. package/dist/commands/snapshot.d.ts.map +1 -1
  38. package/dist/commands/snapshot.js +1 -1
  39. package/dist/commands/snapshot.js.map +1 -1
  40. package/dist/commands/state.d.ts.map +1 -1
  41. package/dist/commands/state.js +2 -2
  42. package/dist/commands/state.js.map +1 -1
  43. package/dist/commands/sync-check.d.ts.map +1 -1
  44. package/dist/commands/sync-check.js +2 -2
  45. package/dist/commands/sync-check.js.map +1 -1
  46. package/dist/commands/validate.d.ts.map +1 -1
  47. package/dist/commands/validate.js +4 -4
  48. package/dist/commands/validate.js.map +1 -1
  49. package/dist/commands/watch-pr.d.ts.map +1 -1
  50. package/dist/commands/watch-pr.js +8 -3
  51. package/dist/commands/watch-pr.js.map +1 -1
  52. package/dist/schemas/run-result-schema-export.d.ts.map +1 -1
  53. package/dist/schemas/run-result-schema-export.js.map +1 -1
  54. package/dist/schemas/run-result-schema.d.ts.map +1 -1
  55. package/dist/schemas/run-result-schema.js +1 -1
  56. package/dist/schemas/run-result-schema.js.map +1 -1
  57. package/dist/schemas/watch-pr-schema.d.ts +36 -36
  58. package/dist/schemas/watch-pr-schema.d.ts.map +1 -1
  59. package/dist/schemas/watch-pr-schema.js +1 -1
  60. package/dist/schemas/watch-pr-schema.js.map +1 -1
  61. package/dist/scripts/generate-run-result-schema.js +1 -1
  62. package/dist/scripts/generate-run-result-schema.js.map +1 -1
  63. package/dist/scripts/generate-watch-pr-schema.js.map +1 -1
  64. package/dist/services/ci-provider-registry.d.ts +1 -1
  65. package/dist/services/ci-provider-registry.d.ts.map +1 -1
  66. package/dist/services/ci-provider-registry.js.map +1 -1
  67. package/dist/services/ci-providers/github-actions.d.ts +7 -3
  68. package/dist/services/ci-providers/github-actions.d.ts.map +1 -1
  69. package/dist/services/ci-providers/github-actions.js +101 -56
  70. package/dist/services/ci-providers/github-actions.js.map +1 -1
  71. package/dist/utils/check-validation.d.ts.map +1 -1
  72. package/dist/utils/check-validation.js +8 -39
  73. package/dist/utils/check-validation.js.map +1 -1
  74. package/dist/utils/config-loader.d.ts.map +1 -1
  75. package/dist/utils/config-loader.js +1 -1
  76. package/dist/utils/config-loader.js.map +1 -1
  77. package/dist/utils/display-cached-result.d.ts +16 -0
  78. package/dist/utils/display-cached-result.d.ts.map +1 -0
  79. package/dist/utils/display-cached-result.js +27 -0
  80. package/dist/utils/display-cached-result.js.map +1 -0
  81. package/dist/utils/git-detection.d.ts.map +1 -1
  82. package/dist/utils/git-detection.js +1 -1
  83. package/dist/utils/git-detection.js.map +1 -1
  84. package/dist/utils/normalize-line-endings.js +1 -1
  85. package/dist/utils/normalize-line-endings.js.map +1 -1
  86. package/dist/utils/pid-lock.js +2 -2
  87. package/dist/utils/pid-lock.js.map +1 -1
  88. package/dist/utils/project-id.d.ts.map +1 -1
  89. package/dist/utils/project-id.js.map +1 -1
  90. package/dist/utils/runner-adapter.d.ts.map +1 -1
  91. package/dist/utils/runner-adapter.js.map +1 -1
  92. package/dist/utils/secret-scanning.d.ts +0 -4
  93. package/dist/utils/secret-scanning.d.ts.map +1 -1
  94. package/dist/utils/secret-scanning.js +5 -17
  95. package/dist/utils/secret-scanning.js.map +1 -1
  96. package/dist/utils/setup-checks/hooks-check.d.ts.map +1 -1
  97. package/dist/utils/setup-checks/hooks-check.js +1 -1
  98. package/dist/utils/setup-checks/hooks-check.js.map +1 -1
  99. package/dist/utils/setup-checks/workflow-check.d.ts.map +1 -1
  100. package/dist/utils/setup-checks/workflow-check.js +1 -1
  101. package/dist/utils/setup-checks/workflow-check.js.map +1 -1
  102. package/dist/utils/temp-files.d.ts.map +1 -1
  103. package/dist/utils/temp-files.js.map +1 -1
  104. package/dist/utils/template-discovery.d.ts.map +1 -1
  105. package/dist/utils/template-discovery.js.map +1 -1
  106. package/dist/utils/validate-workflow.d.ts.map +1 -1
  107. package/dist/utils/validate-workflow.js +15 -48
  108. package/dist/utils/validate-workflow.js.map +1 -1
  109. package/dist/utils/yaml-output.d.ts.map +1 -1
  110. package/dist/utils/yaml-output.js +7 -1
  111. package/dist/utils/yaml-output.js.map +1 -1
  112. package/package.json +14 -13
@@ -6,8 +6,8 @@
6
6
  *
7
7
  * @packageDocumentation
8
8
  */
9
- import { z } from 'zod';
10
9
  import { OperationMetadataSchema, CommandExecutionSchema, OutputFilesSchema, createSafeValidator, createStrictValidator } from '@vibe-validate/core';
10
+ import { z } from 'zod';
11
11
  /**
12
12
  * Run Result Schema
13
13
  *
@@ -1 +1 @@
1
- {"version":3,"file":"run-result-schema.js","sourceRoot":"","sources":["../../src/schemas/run-result-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,qBAAqB,CAAC;AAE7B;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,uBAAuB;KACnD,KAAK,CAAC,sBAAsB,CAAC;KAC7B,MAAM,CAAC;IACN,wCAAwC;IACxC,WAAW,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IAEzC,kFAAkF;IAClF,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAEtC;;;;;;;;;OASG;IACH,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACxC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,kEAAkE;AAQtF;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,mBAAmB,CAAC,eAAe,CAAC,CAAC;AAE1E;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,eAAe,CAAC,CAAC"}
1
+ {"version":3,"file":"run-result-schema.js","sourceRoot":"","sources":["../../src/schemas/run-result-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,uBAAuB;KACnD,KAAK,CAAC,sBAAsB,CAAC;KAC7B,MAAM,CAAC;IACN,wCAAwC;IACxC,WAAW,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IAEzC,kFAAkF;IAClF,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAEtC;;;;;;;;;OASG;IACH,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACxC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,kEAAkE;AAQtF;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,mBAAmB,CAAC,eAAe,CAAC,CAAC;AAE1E;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,eAAe,CAAC,CAAC"}
@@ -192,8 +192,8 @@ export declare const WatchPRResultSchema: z.ZodObject<{
192
192
  } | undefined;
193
193
  }>>;
194
194
  }, "strip", z.ZodTypeAny, {
195
- passed: boolean;
196
195
  name: string;
196
+ passed: boolean;
197
197
  durationSecs?: number | undefined;
198
198
  extraction?: {
199
199
  summary: string;
@@ -225,8 +225,8 @@ export declare const WatchPRResultSchema: z.ZodObject<{
225
225
  } | undefined;
226
226
  output?: string | undefined;
227
227
  }, {
228
- passed: boolean;
229
228
  name: string;
229
+ passed: boolean;
230
230
  durationSecs?: number | undefined;
231
231
  extraction?: {
232
232
  summary: string;
@@ -259,11 +259,11 @@ export declare const WatchPRResultSchema: z.ZodObject<{
259
259
  output?: string | undefined;
260
260
  }>, "many">>;
261
261
  }, "strip", z.ZodTypeAny, {
262
- passed: boolean;
263
262
  name: string;
263
+ passed: boolean;
264
264
  steps?: {
265
- passed: boolean;
266
265
  name: string;
266
+ passed: boolean;
267
267
  durationSecs?: number | undefined;
268
268
  extraction?: {
269
269
  summary: string;
@@ -296,11 +296,11 @@ export declare const WatchPRResultSchema: z.ZodObject<{
296
296
  output?: string | undefined;
297
297
  }[] | undefined;
298
298
  }, {
299
- passed: boolean;
300
299
  name: string;
300
+ passed: boolean;
301
301
  steps?: {
302
- passed: boolean;
303
302
  name: string;
303
+ passed: boolean;
304
304
  durationSecs?: number | undefined;
305
305
  extraction?: {
306
306
  summary: string;
@@ -335,12 +335,14 @@ export declare const WatchPRResultSchema: z.ZodObject<{
335
335
  }>, "many">>;
336
336
  }, "strip", z.ZodTypeAny, {
337
337
  passed: boolean;
338
+ treeHash?: string | undefined;
339
+ timestamp?: string | undefined;
338
340
  phases?: {
339
- passed: boolean;
340
341
  name: string;
342
+ passed: boolean;
341
343
  steps?: {
342
- passed: boolean;
343
344
  name: string;
345
+ passed: boolean;
344
346
  durationSecs?: number | undefined;
345
347
  extraction?: {
346
348
  summary: string;
@@ -373,17 +375,17 @@ export declare const WatchPRResultSchema: z.ZodObject<{
373
375
  output?: string | undefined;
374
376
  }[] | undefined;
375
377
  }[] | undefined;
376
- treeHash?: string | undefined;
377
- timestamp?: string | undefined;
378
378
  failedStep?: string | undefined;
379
379
  }, {
380
380
  passed: boolean;
381
+ treeHash?: string | undefined;
382
+ timestamp?: string | undefined;
381
383
  phases?: {
382
- passed: boolean;
383
384
  name: string;
385
+ passed: boolean;
384
386
  steps?: {
385
- passed: boolean;
386
387
  name: string;
388
+ passed: boolean;
387
389
  durationSecs?: number | undefined;
388
390
  extraction?: {
389
391
  summary: string;
@@ -416,8 +418,6 @@ export declare const WatchPRResultSchema: z.ZodObject<{
416
418
  output?: string | undefined;
417
419
  }[] | undefined;
418
420
  }[] | undefined;
419
- treeHash?: string | undefined;
420
- timestamp?: string | undefined;
421
421
  failedStep?: string | undefined;
422
422
  }>>;
423
423
  nextSteps: z.ZodArray<z.ZodString, "many">;
@@ -428,12 +428,14 @@ export declare const WatchPRResultSchema: z.ZodObject<{
428
428
  errorSummary?: string | undefined;
429
429
  validationResult?: {
430
430
  passed: boolean;
431
+ treeHash?: string | undefined;
432
+ timestamp?: string | undefined;
431
433
  phases?: {
432
- passed: boolean;
433
434
  name: string;
435
+ passed: boolean;
434
436
  steps?: {
435
- passed: boolean;
436
437
  name: string;
438
+ passed: boolean;
437
439
  durationSecs?: number | undefined;
438
440
  extraction?: {
439
441
  summary: string;
@@ -466,8 +468,6 @@ export declare const WatchPRResultSchema: z.ZodObject<{
466
468
  output?: string | undefined;
467
469
  }[] | undefined;
468
470
  }[] | undefined;
469
- treeHash?: string | undefined;
470
- timestamp?: string | undefined;
471
471
  failedStep?: string | undefined;
472
472
  } | undefined;
473
473
  }, {
@@ -477,12 +477,14 @@ export declare const WatchPRResultSchema: z.ZodObject<{
477
477
  errorSummary?: string | undefined;
478
478
  validationResult?: {
479
479
  passed: boolean;
480
+ treeHash?: string | undefined;
481
+ timestamp?: string | undefined;
480
482
  phases?: {
481
- passed: boolean;
482
483
  name: string;
484
+ passed: boolean;
483
485
  steps?: {
484
- passed: boolean;
485
486
  name: string;
487
+ passed: boolean;
486
488
  durationSecs?: number | undefined;
487
489
  extraction?: {
488
490
  summary: string;
@@ -515,14 +517,10 @@ export declare const WatchPRResultSchema: z.ZodObject<{
515
517
  output?: string | undefined;
516
518
  }[] | undefined;
517
519
  }[] | undefined;
518
- treeHash?: string | undefined;
519
- timestamp?: string | undefined;
520
520
  failedStep?: string | undefined;
521
521
  } | undefined;
522
522
  }>, "many">>;
523
523
  }, "strip", z.ZodTypeAny, {
524
- summary: string;
525
- result: "success" | "unknown" | "failure" | "cancelled";
526
524
  checks: {
527
525
  name: string;
528
526
  status: string;
@@ -530,12 +528,14 @@ export declare const WatchPRResultSchema: z.ZodObject<{
530
528
  url?: string | undefined;
531
529
  duration?: string | undefined;
532
530
  }[];
531
+ summary: string;
532
+ status: "in_progress" | "completed" | "pending" | "timeout";
533
+ result: "unknown" | "success" | "failure" | "cancelled";
533
534
  pr: {
534
535
  id: string | number;
535
536
  title: string;
536
537
  url: string;
537
538
  };
538
- status: "in_progress" | "completed" | "pending" | "timeout";
539
539
  duration: string;
540
540
  failures?: {
541
541
  name: string;
@@ -544,12 +544,14 @@ export declare const WatchPRResultSchema: z.ZodObject<{
544
544
  errorSummary?: string | undefined;
545
545
  validationResult?: {
546
546
  passed: boolean;
547
+ treeHash?: string | undefined;
548
+ timestamp?: string | undefined;
547
549
  phases?: {
548
- passed: boolean;
549
550
  name: string;
551
+ passed: boolean;
550
552
  steps?: {
551
- passed: boolean;
552
553
  name: string;
554
+ passed: boolean;
553
555
  durationSecs?: number | undefined;
554
556
  extraction?: {
555
557
  summary: string;
@@ -582,14 +584,10 @@ export declare const WatchPRResultSchema: z.ZodObject<{
582
584
  output?: string | undefined;
583
585
  }[] | undefined;
584
586
  }[] | undefined;
585
- treeHash?: string | undefined;
586
- timestamp?: string | undefined;
587
587
  failedStep?: string | undefined;
588
588
  } | undefined;
589
589
  }[] | undefined;
590
590
  }, {
591
- summary: string;
592
- result: "success" | "unknown" | "failure" | "cancelled";
593
591
  checks: {
594
592
  name: string;
595
593
  status: string;
@@ -597,12 +595,14 @@ export declare const WatchPRResultSchema: z.ZodObject<{
597
595
  url?: string | undefined;
598
596
  duration?: string | undefined;
599
597
  }[];
598
+ summary: string;
599
+ status: "in_progress" | "completed" | "pending" | "timeout";
600
+ result: "unknown" | "success" | "failure" | "cancelled";
600
601
  pr: {
601
602
  id: string | number;
602
603
  title: string;
603
604
  url: string;
604
605
  };
605
- status: "in_progress" | "completed" | "pending" | "timeout";
606
606
  duration: string;
607
607
  failures?: {
608
608
  name: string;
@@ -611,12 +611,14 @@ export declare const WatchPRResultSchema: z.ZodObject<{
611
611
  errorSummary?: string | undefined;
612
612
  validationResult?: {
613
613
  passed: boolean;
614
+ treeHash?: string | undefined;
615
+ timestamp?: string | undefined;
614
616
  phases?: {
615
- passed: boolean;
616
617
  name: string;
618
+ passed: boolean;
617
619
  steps?: {
618
- passed: boolean;
619
620
  name: string;
621
+ passed: boolean;
620
622
  durationSecs?: number | undefined;
621
623
  extraction?: {
622
624
  summary: string;
@@ -649,8 +651,6 @@ export declare const WatchPRResultSchema: z.ZodObject<{
649
651
  output?: string | undefined;
650
652
  }[] | undefined;
651
653
  }[] | undefined;
652
- treeHash?: string | undefined;
653
- timestamp?: string | undefined;
654
654
  failedStep?: string | undefined;
655
655
  } | undefined;
656
656
  }[] | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"watch-pr-schema.d.ts","sourceRoot":"","sources":["../../src/schemas/watch-pr-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"watch-pr-schema.d.ts","sourceRoot":"","sources":["../../src/schemas/watch-pr-schema.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { z } from 'zod';
2
1
  import { ErrorExtractorResultSchema } from '@vibe-validate/extractors';
2
+ import { z } from 'zod';
3
3
  /**
4
4
  * Zod schema for watch-pr command result
5
5
  *
@@ -1 +1 @@
1
- {"version":3,"file":"watch-pr-schema.js","sourceRoot":"","sources":["../../src/schemas/watch-pr-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAEvE;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;QACX,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QACrC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;KACtB,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAClE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAC9D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,MAAM,EAAE,CAAC,CAAC,KAAK,CACb,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACjC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;KACjC,CAAC,CACH;IACD,QAAQ,EAAE,CAAC;SACR,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACnC,gBAAgB,EAAE,CAAC;aAChB,MAAM,CAAC;YACN,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;YACnB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAChC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC/B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACjC,MAAM,EAAE,CAAC;iBACN,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;gBACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;gBAChB,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;gBACnB,KAAK,EAAE,CAAC;qBACL,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;oBACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;oBAChB,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;oBACnB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;oBACnC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;oBAC7B,UAAU,EAAE,0BAA0B,CAAC,QAAQ,EAAE;iBAClD,CAAC,CACH;qBACA,QAAQ,EAAE;aACd,CAAC,CACH;iBACA,QAAQ,EAAE;SACd,CAAC;aACD,QAAQ,EAAE;QACb,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;KAC/B,CAAC,CACH;SACA,QAAQ,EAAE;CACd,CAAC,CAAC"}
1
+ {"version":3,"file":"watch-pr-schema.js","sourceRoot":"","sources":["../../src/schemas/watch-pr-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;QACX,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QACrC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;KACtB,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAClE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAC9D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,MAAM,EAAE,CAAC,CAAC,KAAK,CACb,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACjC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;KACjC,CAAC,CACH;IACD,QAAQ,EAAE,CAAC;SACR,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACnC,gBAAgB,EAAE,CAAC;aAChB,MAAM,CAAC;YACN,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;YACnB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAChC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC/B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACjC,MAAM,EAAE,CAAC;iBACN,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;gBACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;gBAChB,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;gBACnB,KAAK,EAAE,CAAC;qBACL,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;oBACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;oBAChB,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;oBACnB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;oBACnC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;oBAC7B,UAAU,EAAE,0BAA0B,CAAC,QAAQ,EAAE;iBAClD,CAAC,CACH;qBACA,QAAQ,EAAE;aACd,CAAC,CACH;iBACA,QAAQ,EAAE;SACd,CAAC;aACD,QAAQ,EAAE;QACb,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;KAC/B,CAAC,CACH;SACA,QAAQ,EAAE;CACd,CAAC,CAAC"}
@@ -7,8 +7,8 @@
7
7
  * This script runs during the build process.
8
8
  */
9
9
  import { writeFileSync } from 'node:fs';
10
- import { fileURLToPath } from 'node:url';
11
10
  import { dirname, join } from 'node:path';
11
+ import { fileURLToPath } from 'node:url';
12
12
  import { runResultJsonSchema } from '../schemas/run-result-schema-export.js';
13
13
  const __filename = fileURLToPath(import.meta.url);
14
14
  const __dirname = dirname(__filename);
@@ -1 +1 @@
1
- {"version":3,"file":"generate-run-result-schema.js","sourceRoot":"","sources":["../../src/scripts/generate-run-result-schema.ts"],"names":[],"mappings":";AACA;;;;;;GAMG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAE7E,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAChD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,wBAAwB,CAAC,CAAC;AAE/D,iCAAiC;AACjC,aAAa,CACX,UAAU,EACV,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC,EAC5C,OAAO,CACR,CAAC;AAEF,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC"}
1
+ {"version":3,"file":"generate-run-result-schema.js","sourceRoot":"","sources":["../../src/scripts/generate-run-result-schema.ts"],"names":[],"mappings":";AACA;;;;;;GAMG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAE7E,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAChD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,wBAAwB,CAAC,CAAC;AAE/D,iCAAiC;AACjC,aAAa,CACX,UAAU,EACV,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC,EAC5C,OAAO,CACR,CAAC;AAEF,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"generate-watch-pr-schema.js","sourceRoot":"","sources":["../../src/scripts/generate-watch-pr-schema.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,uBAAuB;AACvB,MAAM,UAAU,GAAG,eAAe,CAAC,mBAAmB,EAAE;IACtD,IAAI,EAAE,eAAe;IACrB,YAAY,EAAE,MAAM,EAAE,4CAA4C;CACnE,CAAC,CAAC;AAEH,eAAe;AACf,MAAM,kBAAkB,GAAG;IACzB,OAAO,EAAE,yCAAyC;IAClD,GAAG,EAAE,6FAA6F;IAClG,KAAK,EAAE,sCAAsC;IAC7C,WAAW,EAAE,4DAA4D;IACzE,GAAG,UAAU;CACd,CAAC;AAEF,gBAAgB;AAChB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,mCAAmC,CAAC,CAAC;AACxE,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAEvE,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC"}
1
+ {"version":3,"file":"generate-watch-pr-schema.js","sourceRoot":"","sources":["../../src/scripts/generate-watch-pr-schema.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,uBAAuB;AACvB,MAAM,UAAU,GAAG,eAAe,CAAC,mBAAmB,EAAE;IACtD,IAAI,EAAE,eAAe;IACrB,YAAY,EAAE,MAAM,EAAE,4CAA4C;CACnE,CAAC,CAAC;AAEH,eAAe;AACf,MAAM,kBAAkB,GAAG;IACzB,OAAO,EAAE,yCAAyC;IAClD,GAAG,EAAE,6FAA6F;IAClG,KAAK,EAAE,sCAAsC;IAC7C,WAAW,EAAE,4DAA4D;IACzE,GAAG,UAAU;CACd,CAAC;AAEF,gBAAgB;AAChB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,mCAAmC,CAAC,CAAC;AACxE,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAEvE,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC"}
@@ -12,7 +12,7 @@ import type { CIProvider } from './ci-provider.js';
12
12
  * - etc.
13
13
  */
14
14
  export declare class CIProviderRegistry {
15
- private providers;
15
+ private readonly providers;
16
16
  /**
17
17
  * Auto-detect which CI provider is available in current context
18
18
  *
@@ -1 +1 @@
1
- {"version":3,"file":"ci-provider-registry.d.ts","sourceRoot":"","sources":["../../src/services/ci-provider-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGnD;;;;;;;;;;;GAWG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,SAAS,CAIf;IAEF;;;;;;OAMG;IACG,cAAc,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IASlD;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAIjD;;;;OAIG;IACH,gBAAgB,IAAI,MAAM,EAAE;CAG7B"}
1
+ {"version":3,"file":"ci-provider-registry.d.ts","sourceRoot":"","sources":["../../src/services/ci-provider-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGnD;;;;;;;;;;;GAWG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAIxB;IAEF;;;;;;OAMG;IACG,cAAc,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IASlD;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAIjD;;;;OAIG;IACH,gBAAgB,IAAI,MAAM,EAAE;CAG7B"}
@@ -1 +1 @@
1
- {"version":3,"file":"ci-provider-registry.js","sourceRoot":"","sources":["../../src/services/ci-provider-registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAEzE;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,kBAAkB;IACrB,SAAS,GAAiB;QAChC,IAAI,qBAAqB,EAAE;QAC3B,0BAA0B;QAC1B,0BAA0B;KAC3B,CAAC;IAEF;;;;;;OAMG;IACH,KAAK,CAAC,cAAc;QAClB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,IAAI,MAAM,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;gBACjC,OAAO,QAAQ,CAAC;YAClB,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,WAAW,CAAC,IAAY;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACrD,CAAC;IAED;;;;OAIG;IACH,gBAAgB;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;CACF"}
1
+ {"version":3,"file":"ci-provider-registry.js","sourceRoot":"","sources":["../../src/services/ci-provider-registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAEzE;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,kBAAkB;IACZ,SAAS,GAAiB;QACzC,IAAI,qBAAqB,EAAE;QAC3B,0BAA0B;QAC1B,0BAA0B;KAC3B,CAAC;IAEF;;;;;;OAMG;IACH,KAAK,CAAC,cAAc;QAClB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,IAAI,MAAM,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;gBACjC,OAAO,QAAQ,CAAC;YAClB,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,WAAW,CAAC,IAAY;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACrD,CAAC;IAED;;;;OAIG;IACH,gBAAgB;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;CACF"}
@@ -12,7 +12,7 @@ export declare class GitHubActionsProvider implements CIProvider {
12
12
  isAvailable(): Promise<boolean>;
13
13
  detectPullRequest(): Promise<PullRequest | null>;
14
14
  fetchCheckStatus(prId: number | string): Promise<CheckStatus>;
15
- fetchFailureLogs(runId: string): Promise<FailureLogs>;
15
+ fetchFailureLogs(jobId: string): Promise<FailureLogs>;
16
16
  extractValidationResult(logs: string): ValidationResultContents | null;
17
17
  /**
18
18
  * Create a function to extract content from GitHub Actions log lines
@@ -24,9 +24,13 @@ export declare class GitHubActionsProvider implements CIProvider {
24
24
  */
25
25
  private findValidationResultBoundaries;
26
26
  /**
27
- * Find the closing separator (====) after YAML content
27
+ * Check if lines starting at startIdx look like validation result YAML
28
28
  */
29
- private findClosingSeparator;
29
+ private looksLikeValidationResult;
30
+ /**
31
+ * Find the end of YAML content (next --- separator or end of document)
32
+ */
33
+ private findYamlEnd;
30
34
  /**
31
35
  * Extract YAML content between boundaries
32
36
  */
@@ -1 +1 @@
1
- {"version":3,"file":"github-actions.d.ts","sourceRoot":"","sources":["../../../src/services/ci-providers/github-actions.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,WAAW,EAEX,WAAW,EACX,wBAAwB,EACzB,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;GAOG;AACH,qBAAa,qBAAsB,YAAW,UAAU;IACtD,QAAQ,CAAC,IAAI,oBAAoB;IAE3B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAa/B,iBAAiB,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAoBhD,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAyB7D,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAkC3D,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,wBAAwB,GAAG,IAAI;IAatE;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAU9B;;OAEG;IACH,OAAO,CAAC,8BAA8B;IAsBtC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAwB5B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAgB1B;;OAEG;IACH,OAAO,CAAC,8BAA8B;IAUtC;;OAEG;IACH,OAAO,CAAC,cAAc;IAkEtB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAkB9B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAuB9B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAyBzB;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;CA2B5B"}
1
+ {"version":3,"file":"github-actions.d.ts","sourceRoot":"","sources":["../../../src/services/ci-providers/github-actions.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,WAAW,EAEX,WAAW,EACX,wBAAwB,EACzB,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;GAOG;AACH,qBAAa,qBAAsB,YAAW,UAAU;IACtD,QAAQ,CAAC,IAAI,oBAAoB;IAE3B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAe/B,iBAAiB,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAoBhD,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAyB7D,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAkC3D,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,wBAAwB,GAAG,IAAI;IAatE;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAe9B;;OAEG;IACH,OAAO,CAAC,8BAA8B;IA6BtC;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAkBjC;;OAEG;IACH,OAAO,CAAC,WAAW;IA8BnB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqB1B;;OAEG;IACH,OAAO,CAAC,8BAA8B;IAStC;;OAEG;IACH,OAAO,CAAC,cAAc;IAsEtB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAkB9B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAuB9B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAyBzB;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;CAyB5B"}
@@ -1,6 +1,6 @@
1
- import { execSync } from 'node:child_process';
2
- import { parse as parseYaml } from 'yaml';
3
1
  import { executeGitCommand } from '@vibe-validate/git';
2
+ import { isToolAvailable, safeExecSync } from '@vibe-validate/utils';
3
+ import { parse as parseYaml } from 'yaml';
4
4
  /**
5
5
  * GitHub Actions CI provider implementation
6
6
  *
@@ -14,7 +14,9 @@ export class GitHubActionsProvider {
14
14
  async isAvailable() {
15
15
  try {
16
16
  // Check if gh CLI is available
17
- execSync('gh --version', { stdio: 'ignore' });
17
+ if (!isToolAvailable('gh')) {
18
+ return false;
19
+ }
18
20
  // Check if we're in a GitHub repo
19
21
  const result = executeGitCommand(['remote', 'get-url', 'origin']);
20
22
  return result.success && result.stdout.includes('github.com');
@@ -25,10 +27,11 @@ export class GitHubActionsProvider {
25
27
  }
26
28
  async detectPullRequest() {
27
29
  try {
28
- const prData = JSON.parse(execSync('gh pr view --json number,title,url,headRefName', {
30
+ const output = safeExecSync('gh', ['pr', 'view', '--json', 'number,title,url,headRefName'], {
29
31
  encoding: 'utf8',
30
- stdio: ['pipe', 'pipe', 'pipe'],
31
- }));
32
+ stdio: 'pipe',
33
+ });
34
+ const prData = JSON.parse(output.toString());
32
35
  return {
33
36
  id: prData.number,
34
37
  title: prData.title,
@@ -41,10 +44,11 @@ export class GitHubActionsProvider {
41
44
  }
42
45
  }
43
46
  async fetchCheckStatus(prId) {
44
- const data = JSON.parse(execSync(`gh pr view ${prId} --json number,title,url,statusCheckRollup,headRefName`, {
47
+ const output = safeExecSync('gh', ['pr', 'view', String(prId), '--json', 'number,title,url,statusCheckRollup,headRefName'], {
45
48
  encoding: 'utf8',
46
- stdio: ['pipe', 'pipe', 'pipe'],
47
- }));
49
+ stdio: 'pipe',
50
+ });
51
+ const data = JSON.parse(output.toString());
48
52
  const checks = (data.statusCheckRollup ?? []).map((check) => this.transformCheck(check));
49
53
  return {
50
54
  pr: {
@@ -58,28 +62,30 @@ export class GitHubActionsProvider {
58
62
  checks,
59
63
  };
60
64
  }
61
- async fetchFailureLogs(runId) {
62
- // Get run details to find the check name
65
+ async fetchFailureLogs(jobId) {
66
+ // Get job details to find the check name
63
67
  let checkName = 'Unknown';
64
68
  try {
65
- const runData = JSON.parse(execSync(`gh run view ${runId} --json name`, {
69
+ const jobOutput = safeExecSync('gh', ['run', 'view', '--job', jobId, '--json', 'name'], {
66
70
  encoding: 'utf8',
67
- stdio: ['pipe', 'pipe', 'pipe'],
68
- }));
69
- checkName = runData.name ?? checkName;
71
+ stdio: 'pipe',
72
+ });
73
+ const jobData = JSON.parse(jobOutput.toString());
74
+ checkName = jobData.name ?? checkName;
70
75
  }
71
76
  catch {
72
77
  // Ignore error, use default name
73
78
  }
74
- // Fetch full logs (includes "Display validation state on failure" step)
75
- const logs = execSync(`gh run view ${runId} --log`, {
79
+ // Fetch logs for specific job (critical for matrix workflows)
80
+ // Using --job ensures we get logs for THIS job only, not all jobs in the workflow run
81
+ const logs = safeExecSync('gh', ['run', 'view', '--log', '--job', jobId], {
76
82
  encoding: 'utf8',
77
- stdio: ['pipe', 'pipe', 'pipe'],
83
+ stdio: 'pipe',
78
84
  maxBuffer: 50 * 1024 * 1024, // 50MB buffer to handle large logs
79
- });
85
+ }).toString();
80
86
  const validationResult = this.extractValidationResult(logs);
81
87
  return {
82
- checkId: runId,
88
+ checkId: jobId,
83
89
  checkName,
84
90
  rawLogs: logs,
85
91
  failedStep: this.extractFailedStep(logs),
@@ -108,54 +114,92 @@ export class GitHubActionsProvider {
108
114
  return '';
109
115
  const contentWithTimestamp = parts.slice(2).join('\t');
110
116
  // Strip timestamp (format: "2025-10-21T00:56:24.8654285Z <content>")
111
- return contentWithTimestamp.replace(/^[0-9T:.Z-]+ /, '').replace(/^[0-9T:.Z-]+$/, '');
117
+ const afterTimestampRemoval = contentWithTimestamp.replace(/^[0-9T:.Z-]+ /, '');
118
+ // Remove line if it's ONLY a timestamp (but keep "---" separator)
119
+ if (/^[0-9T:.Z-]+$/.test(afterTimestampRemoval) && afterTimestampRemoval !== '---') {
120
+ return '';
121
+ }
122
+ return afterTimestampRemoval;
112
123
  };
113
124
  }
114
125
  /**
115
126
  * Find the start and end indices of validation result YAML in logs
116
127
  */
117
128
  findValidationResultBoundaries(lines, extractContent) {
118
- // Find start: line containing "VALIDATION RESULT" (skip ANSI-coded lines)
119
- const startIdx = lines.findIndex(l => {
120
- return l.includes('VALIDATION RESULT') && !l.includes('[36;1m') && !l.includes('[0m');
121
- });
129
+ // Find start: line containing "---" (YAML document separator)
130
+ // Must be followed by validation result fields like "passed:", "timestamp:", etc.
131
+ let startIdx = -1;
132
+ for (let i = 0; i < lines.length; i++) {
133
+ const content = extractContent(lines[i]).trim();
134
+ // Check if this is YAML separator followed by validation result
135
+ if (content === '---' && this.looksLikeValidationResult(lines, i + 1, extractContent)) {
136
+ startIdx = i;
137
+ break;
138
+ }
139
+ }
122
140
  if (startIdx < 0) {
123
141
  return null;
124
142
  }
125
- // Find end: closing separator after YAML content
126
- const endIdx = this.findClosingSeparator(lines, startIdx, extractContent);
143
+ // Find end: next "---" separator or end of meaningful YAML content
144
+ const endIdx = this.findYamlEnd(lines, startIdx + 1, extractContent);
127
145
  if (endIdx < 0) {
128
146
  return null;
129
147
  }
130
148
  return { startIdx, endIdx };
131
149
  }
132
150
  /**
133
- * Find the closing separator (====) after YAML content
151
+ * Check if lines starting at startIdx look like validation result YAML
134
152
  */
135
- findClosingSeparator(lines, startIdx, extractContent) {
136
- let foundYamlContent = false;
137
- for (let i = startIdx + 1; i < lines.length; i++) {
153
+ looksLikeValidationResult(lines, startIdx, extractContent) {
154
+ // Check first 10 lines for validation result fields
155
+ for (let i = startIdx; i < Math.min(startIdx + 10, lines.length); i++) {
138
156
  const content = extractContent(lines[i]).trim();
139
- // Check if we've seen YAML content
140
- if (content.startsWith('passed:') || content.startsWith('timestamp:') || content.startsWith('treeHash:')) {
141
- foundYamlContent = true;
157
+ // Look for key validation result fields
158
+ if (content.startsWith('passed:') ||
159
+ content.startsWith('failedStep:') ||
160
+ (content.startsWith('treeHash:') && content.length > 20)) {
161
+ return true;
142
162
  }
143
- // Look for closing separator (40+ equals signs) after YAML content
144
- if (foundYamlContent && /^={40,}$/.exec(content)) {
163
+ }
164
+ return false;
165
+ }
166
+ /**
167
+ * Find the end of YAML content (next --- separator or end of document)
168
+ */
169
+ findYamlEnd(lines, startIdx, extractContent) {
170
+ let lastContentLine = startIdx;
171
+ for (let i = startIdx; i < lines.length; i++) {
172
+ const content = extractContent(lines[i]).trim();
173
+ // Stop at next YAML document separator
174
+ if (content === '---' || content === '...') {
145
175
  return i;
146
176
  }
177
+ // Track last non-empty line
178
+ if (content.length > 0) {
179
+ lastContentLine = i;
180
+ }
181
+ // If we see GitHub Actions markers after YAML content, we're done
182
+ if (content.startsWith('##[') && i > startIdx + 5) {
183
+ return lastContentLine + 1;
184
+ }
147
185
  }
148
- return -1;
186
+ // Return last content line + 1 if we hit end of logs
187
+ return lastContentLine + 1;
149
188
  }
150
189
  /**
151
190
  * Extract YAML content between boundaries
152
191
  */
153
192
  extractYamlContent(lines, boundaries, extractContent) {
154
- // YAML starts at startIdx + 2 (skip "VALIDATION RESULT" and separator)
155
- const yamlStartIdx = boundaries.startIdx + 2;
193
+ // YAML starts at startIdx + 1 (skip the "---" separator)
194
+ const yamlStartIdx = boundaries.startIdx + 1;
156
195
  const yamlLines = [];
157
196
  for (let i = yamlStartIdx; i < boundaries.endIdx; i++) {
158
- yamlLines.push(extractContent(lines[i]));
197
+ const content = extractContent(lines[i]);
198
+ // Include all lines (even empty ones) to preserve YAML structure
199
+ // Only skip GitHub Actions markers
200
+ if (!content.startsWith('##[')) {
201
+ yamlLines.push(content);
202
+ }
159
203
  }
160
204
  return yamlLines.join('\n').trim();
161
205
  }
@@ -164,8 +208,7 @@ export class GitHubActionsProvider {
164
208
  */
165
209
  parseAndEnrichValidationResult(yamlContent) {
166
210
  try {
167
- const result = parseYaml(yamlContent);
168
- return result;
211
+ return parseYaml(yamlContent);
169
212
  }
170
213
  catch {
171
214
  // Failed to parse validation YAML - return null
@@ -220,12 +263,16 @@ export class GitHubActionsProvider {
220
263
  break;
221
264
  }
222
265
  }
223
- // Extract run ID from details URL if available
266
+ // Extract run ID and job ID from details URL if available
267
+ // URL format: https://github.com/user/repo/actions/runs/<runId>/job/<jobId>
224
268
  let checkId = 'unknown';
225
269
  if (typeof check.detailsUrl === 'string') {
226
- const runIdMatch = /\/runs\/(\d+)/.exec(check.detailsUrl);
227
- if (runIdMatch) {
228
- checkId = runIdMatch[1];
270
+ // eslint-disable-next-line security/detect-unsafe-regex -- Safe: Simple pattern with no backtracking risk
271
+ const urlMatch = /\/runs\/(\d+)(?:\/job\/(\d+))?/.exec(check.detailsUrl);
272
+ if (urlMatch) {
273
+ const [, runId, jobId] = urlMatch;
274
+ // Use job ID if available (for matrix jobs), otherwise use run ID
275
+ checkId = jobId || runId;
229
276
  }
230
277
  }
231
278
  return {
@@ -307,23 +354,21 @@ export class GitHubActionsProvider {
307
354
  extractErrorSummary(logs) {
308
355
  // Use the validation result which already has parsed failures
309
356
  const validationResult = this.extractValidationResult(logs);
310
- if (validationResult && !validationResult.passed) {
357
+ if (validationResult && !validationResult.passed && validationResult.failedStep) {
311
358
  // Show concise summary: just the failed step and how to rerun
312
- if (validationResult.failedStep) {
313
- // Find the failed step's command (v0.15.0+: rerunCommand removed, use step.command)
314
- const failedStep = validationResult.phases
315
- ?.flatMap(phase => phase.steps ?? [])
316
- .find(step => step && step.name === validationResult.failedStep);
317
- const rerunCommand = failedStep?.command ?? 'see full logs';
318
- return `Failed step: ${validationResult.failedStep}\nRerun: ${rerunCommand}`;
319
- }
359
+ // Find the failed step's command (v0.15.0+: rerunCommand removed, use step.command)
360
+ const failedStep = validationResult.phases
361
+ ?.flatMap(phase => phase.steps ?? [])
362
+ .find(step => step && step.name === validationResult.failedStep);
363
+ const rerunCommand = failedStep?.command ?? 'see full logs';
364
+ return `Failed step: ${validationResult.failedStep}\nRerun: ${rerunCommand}`;
320
365
  }
321
366
  // Fallback: Look for ##[error] lines (for non-validation failures)
322
367
  const errorLines = logs
323
368
  .split('\n')
324
369
  .filter((line) => line.includes('##[error]'))
325
370
  .slice(0, 5) // First 5 error lines
326
- .map((line) => line.replace(/##\[error\]/g, '').trim())
371
+ .map((line) => line.replaceAll('##[error]', '').trim())
327
372
  .join('\n');
328
373
  return errorLines || undefined;
329
374
  }