@generacy-ai/orchestrator 0.7.0 → 0.9.0

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 (145) hide show
  1. package/dist/config/loader.d.ts.map +1 -1
  2. package/dist/config/loader.js +47 -1
  3. package/dist/config/loader.js.map +1 -1
  4. package/dist/config/schema.d.ts +459 -0
  5. package/dist/config/schema.d.ts.map +1 -1
  6. package/dist/config/schema.js +13 -1
  7. package/dist/config/schema.js.map +1 -1
  8. package/dist/index.d.ts +1 -0
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +3 -0
  11. package/dist/index.js.map +1 -1
  12. package/dist/launcher/agent-launcher.d.ts +15 -16
  13. package/dist/launcher/agent-launcher.d.ts.map +1 -1
  14. package/dist/launcher/agent-launcher.js +54 -23
  15. package/dist/launcher/agent-launcher.js.map +1 -1
  16. package/dist/launcher/constants.d.ts +5 -0
  17. package/dist/launcher/constants.d.ts.map +1 -0
  18. package/dist/launcher/constants.js +5 -0
  19. package/dist/launcher/constants.js.map +1 -0
  20. package/dist/launcher/errors.d.ts +15 -0
  21. package/dist/launcher/errors.d.ts.map +1 -0
  22. package/dist/launcher/errors.js +25 -0
  23. package/dist/launcher/errors.js.map +1 -0
  24. package/dist/launcher/generic-subprocess-plugin.d.ts +1 -0
  25. package/dist/launcher/generic-subprocess-plugin.d.ts.map +1 -1
  26. package/dist/launcher/generic-subprocess-plugin.js +2 -0
  27. package/dist/launcher/generic-subprocess-plugin.js.map +1 -1
  28. package/dist/launcher/index.d.ts +2 -1
  29. package/dist/launcher/index.d.ts.map +1 -1
  30. package/dist/launcher/index.js +1 -0
  31. package/dist/launcher/index.js.map +1 -1
  32. package/dist/launcher/types.d.ts +81 -4
  33. package/dist/launcher/types.d.ts.map +1 -1
  34. package/dist/routes/health.d.ts +7 -0
  35. package/dist/routes/health.d.ts.map +1 -1
  36. package/dist/routes/health.js +5 -0
  37. package/dist/routes/health.js.map +1 -1
  38. package/dist/routes/internal-relay-events.d.ts +2 -2
  39. package/dist/routes/internal-relay-events.d.ts.map +1 -1
  40. package/dist/routes/internal-relay-events.js +12 -0
  41. package/dist/routes/internal-relay-events.js.map +1 -1
  42. package/dist/routes/retained-tunnel-event.d.ts +20 -0
  43. package/dist/routes/retained-tunnel-event.d.ts.map +1 -0
  44. package/dist/routes/retained-tunnel-event.js +67 -0
  45. package/dist/routes/retained-tunnel-event.js.map +1 -0
  46. package/dist/server.d.ts.map +1 -1
  47. package/dist/server.js +168 -27
  48. package/dist/server.js.map +1 -1
  49. package/dist/services/adaptive-poll-controller.d.ts +75 -0
  50. package/dist/services/adaptive-poll-controller.d.ts.map +1 -0
  51. package/dist/services/adaptive-poll-controller.js +96 -0
  52. package/dist/services/adaptive-poll-controller.js.map +1 -0
  53. package/dist/services/clarification-answer-monitor-service.d.ts +71 -0
  54. package/dist/services/clarification-answer-monitor-service.d.ts.map +1 -0
  55. package/dist/services/clarification-answer-monitor-service.js +366 -0
  56. package/dist/services/clarification-answer-monitor-service.js.map +1 -0
  57. package/dist/services/failure-fingerprint-tracker.d.ts +28 -0
  58. package/dist/services/failure-fingerprint-tracker.d.ts.map +1 -0
  59. package/dist/services/failure-fingerprint-tracker.js +38 -0
  60. package/dist/services/failure-fingerprint-tracker.js.map +1 -0
  61. package/dist/services/index.d.ts +1 -0
  62. package/dist/services/index.d.ts.map +1 -1
  63. package/dist/services/index.js +3 -0
  64. package/dist/services/index.js.map +1 -1
  65. package/dist/services/label-monitor-service.d.ts +2 -2
  66. package/dist/services/label-monitor-service.d.ts.map +1 -1
  67. package/dist/services/label-monitor-service.js +33 -16
  68. package/dist/services/label-monitor-service.js.map +1 -1
  69. package/dist/services/merge-conflict-monitor-service.d.ts +1 -1
  70. package/dist/services/merge-conflict-monitor-service.d.ts.map +1 -1
  71. package/dist/services/merge-conflict-monitor-service.js +33 -13
  72. package/dist/services/merge-conflict-monitor-service.js.map +1 -1
  73. package/dist/services/post-activation-retry.d.ts +3 -0
  74. package/dist/services/post-activation-retry.d.ts.map +1 -1
  75. package/dist/services/post-activation-retry.js +34 -2
  76. package/dist/services/post-activation-retry.js.map +1 -1
  77. package/dist/services/pr-feedback-monitor-service.d.ts +1 -1
  78. package/dist/services/pr-feedback-monitor-service.d.ts.map +1 -1
  79. package/dist/services/pr-feedback-monitor-service.js +33 -16
  80. package/dist/services/pr-feedback-monitor-service.js.map +1 -1
  81. package/dist/services/relay-bridge.d.ts +1 -0
  82. package/dist/services/relay-bridge.d.ts.map +1 -1
  83. package/dist/services/relay-bridge.js +21 -0
  84. package/dist/services/relay-bridge.js.map +1 -1
  85. package/dist/services/smee-channel-resolver.d.ts +60 -0
  86. package/dist/services/smee-channel-resolver.d.ts.map +1 -0
  87. package/dist/services/smee-channel-resolver.js +177 -0
  88. package/dist/services/smee-channel-resolver.js.map +1 -0
  89. package/dist/services/webhook-setup-service.d.ts +115 -111
  90. package/dist/services/webhook-setup-service.d.ts.map +1 -1
  91. package/dist/services/webhook-setup-service.js +377 -209
  92. package/dist/services/webhook-setup-service.js.map +1 -1
  93. package/dist/types/api.d.ts +3 -0
  94. package/dist/types/api.d.ts.map +1 -1
  95. package/dist/types/api.js +1 -0
  96. package/dist/types/api.js.map +1 -1
  97. package/dist/types/monitor.d.ts +15 -2
  98. package/dist/types/monitor.d.ts.map +1 -1
  99. package/dist/worker/clarification-markers.d.ts +62 -0
  100. package/dist/worker/clarification-markers.d.ts.map +1 -1
  101. package/dist/worker/clarification-markers.js +101 -0
  102. package/dist/worker/clarification-markers.js.map +1 -1
  103. package/dist/worker/clarification-poster.d.ts +102 -6
  104. package/dist/worker/clarification-poster.d.ts.map +1 -1
  105. package/dist/worker/clarification-poster.js +299 -89
  106. package/dist/worker/clarification-poster.js.map +1 -1
  107. package/dist/worker/claude-cli-worker.d.ts +7 -0
  108. package/dist/worker/claude-cli-worker.d.ts.map +1 -1
  109. package/dist/worker/claude-cli-worker.js +7 -3
  110. package/dist/worker/claude-cli-worker.js.map +1 -1
  111. package/dist/worker/cli-spawner.d.ts.map +1 -1
  112. package/dist/worker/cli-spawner.js +2 -0
  113. package/dist/worker/cli-spawner.js.map +1 -1
  114. package/dist/worker/config.d.ts +396 -0
  115. package/dist/worker/config.d.ts.map +1 -1
  116. package/dist/worker/config.js +142 -0
  117. package/dist/worker/config.js.map +1 -1
  118. package/dist/worker/failure-fingerprint.d.ts +41 -0
  119. package/dist/worker/failure-fingerprint.d.ts.map +1 -0
  120. package/dist/worker/failure-fingerprint.js +75 -0
  121. package/dist/worker/failure-fingerprint.js.map +1 -0
  122. package/dist/worker/label-manager.d.ts +42 -0
  123. package/dist/worker/label-manager.d.ts.map +1 -1
  124. package/dist/worker/label-manager.js +108 -4
  125. package/dist/worker/label-manager.js.map +1 -1
  126. package/dist/worker/phase-loop.d.ts +30 -0
  127. package/dist/worker/phase-loop.d.ts.map +1 -1
  128. package/dist/worker/phase-loop.js +158 -27
  129. package/dist/worker/phase-loop.js.map +1 -1
  130. package/dist/worker/pr-feedback-handler.d.ts +13 -0
  131. package/dist/worker/pr-feedback-handler.d.ts.map +1 -1
  132. package/dist/worker/pr-feedback-handler.js +58 -3
  133. package/dist/worker/pr-feedback-handler.js.map +1 -1
  134. package/dist/worker/stage-comment-manager.d.ts +5 -0
  135. package/dist/worker/stage-comment-manager.d.ts.map +1 -1
  136. package/dist/worker/stage-comment-manager.js +8 -1
  137. package/dist/worker/stage-comment-manager.js.map +1 -1
  138. package/dist/worker/terminal-label-op-error.d.ts +1 -1
  139. package/dist/worker/terminal-label-op-error.d.ts.map +1 -1
  140. package/dist/worker/terminal-label-op-error.js.map +1 -1
  141. package/dist/worker/types.d.ts +51 -0
  142. package/dist/worker/types.d.ts.map +1 -1
  143. package/dist/worker/types.js +11 -0
  144. package/dist/worker/types.js.map +1 -1
  145. package/package.json +11 -7
@@ -0,0 +1,75 @@
1
+ /**
2
+ * #942: Failure fingerprint primitive.
3
+ *
4
+ * `computeFailureFingerprint({ phase, evidence })` returns a stable
5
+ * 16-char lowercase hex sha256 prefix that is byte-identical across worker
6
+ * invocations for the same underlying defect (same phase + classifier +
7
+ * reason text). It is the load-bearing invariant for repeat-failure detection.
8
+ *
9
+ * `parseFailureAlertMarker(commentBody)` reads line 1 of a previously-posted
10
+ * failure-alert comment and returns the fingerprint + occurrence when the v2
11
+ * sibling marker (`<!-- fp:HEX:N -->`) is present, or `null` when it's absent
12
+ * (v1 / pre-#942 comments). Never throws.
13
+ */
14
+ import { createHash } from 'node:crypto';
15
+ import { FAILURE_ALERT_MARKER_V2_REGEX } from './types.js';
16
+ /** Q3→A: escalate on the 2nd same-fingerprint failure. */
17
+ export const REPEAT_FAILURE_THRESHOLD = 2;
18
+ /** Q1→B: hex prefix length. 16 chars = 64 bits — sufficient for per-issue scan. */
19
+ export const FINGERPRINT_HEX_LENGTH = 16;
20
+ /** Extraction patterns for the classifier substring inside `evidence.exitDescriptor`. */
21
+ const POST_EXIT_REGEX = /^failed post-exit: ([^ ]+) \(process exit \d+\)$/;
22
+ const KILLED_REGEX = /^killed \(SIGTERM\) after \d+ms$/;
23
+ const ABORTED_REGEX = /^aborted$/;
24
+ const EXIT_N_REGEX = /^exit (\d+)$/;
25
+ /**
26
+ * Extract the classifier substring per contract §Semantics step 1.
27
+ *
28
+ * Defensive fallback (F-1): if none of the four patterns match, return the
29
+ * literal `exitDescriptor` string so the fingerprint is still deterministic.
30
+ */
31
+ function extractClassifier(exitDescriptor) {
32
+ const postExitMatch = POST_EXIT_REGEX.exec(exitDescriptor);
33
+ if (postExitMatch)
34
+ return postExitMatch[1];
35
+ if (KILLED_REGEX.test(exitDescriptor))
36
+ return 'timeout';
37
+ if (ABORTED_REGEX.test(exitDescriptor))
38
+ return 'aborted';
39
+ const exitNMatch = EXIT_N_REGEX.exec(exitDescriptor);
40
+ if (exitNMatch)
41
+ return `exit-${exitNMatch[1]}`;
42
+ return exitDescriptor;
43
+ }
44
+ /**
45
+ * Compute the fingerprint per contract §Semantics.
46
+ *
47
+ * `sha256(phase + '\x00' + classifier + '\x00' + reasonText).slice(0, 16)`
48
+ * — hex, lowercase. Null-byte joiner prevents field-boundary collisions.
49
+ */
50
+ export function computeFailureFingerprint(input) {
51
+ const classifier = extractClassifier(input.evidence.exitDescriptor);
52
+ const reasonText = input.evidence.reason ?? input.evidence.outputTail;
53
+ const material = `${input.phase}\x00${classifier}\x00${reasonText}`;
54
+ return createHash('sha256')
55
+ .update(material)
56
+ .digest('hex')
57
+ .slice(0, FINGERPRINT_HEX_LENGTH);
58
+ }
59
+ /**
60
+ * Parse the v2 marker on line 1 of a failure-alert comment body.
61
+ *
62
+ * Returns `null` for v1 (pre-#942) comments, malformed markers, or bodies
63
+ * where line 1 does not contain the v2 sibling marker. Never throws.
64
+ */
65
+ export function parseFailureAlertMarker(commentBody) {
66
+ const firstLine = commentBody.split('\n', 1)[0] ?? '';
67
+ const match = FAILURE_ALERT_MARKER_V2_REGEX.exec(firstLine);
68
+ if (!match)
69
+ return null;
70
+ const occurrence = Number.parseInt(match[2], 10);
71
+ if (!Number.isFinite(occurrence))
72
+ return null;
73
+ return { fingerprint: match[1], occurrence };
74
+ }
75
+ //# sourceMappingURL=failure-fingerprint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"failure-fingerprint.js","sourceRoot":"","sources":["../../src/worker/failure-fingerprint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,6BAA6B,EAAE,MAAM,YAAY,CAAC;AAE3D,0DAA0D;AAC1D,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAE1C,mFAAmF;AACnF,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAEzC,yFAAyF;AACzF,MAAM,eAAe,GAAG,kDAAkD,CAAC;AAC3E,MAAM,YAAY,GAAG,kCAAkC,CAAC;AACxD,MAAM,aAAa,GAAG,WAAW,CAAC;AAClC,MAAM,YAAY,GAAG,cAAc,CAAC;AAEpC;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,cAAsB;IAC/C,MAAM,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC3D,IAAI,aAAa;QAAE,OAAO,aAAa,CAAC,CAAC,CAAE,CAAC;IAC5C,IAAI,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC;QAAE,OAAO,SAAS,CAAC;IACxD,IAAI,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC;QAAE,OAAO,SAAS,CAAC;IACzD,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACrD,IAAI,UAAU;QAAE,OAAO,QAAQ,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/C,OAAO,cAAc,CAAC;AACxB,CAAC;AAOD;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CACvC,KAA8B;IAE9B,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACpE,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC;IACtE,MAAM,QAAQ,GAAG,GAAG,KAAK,CAAC,KAAK,OAAO,UAAU,OAAO,UAAU,EAAE,CAAC;IACpE,OAAO,UAAU,CAAC,QAAQ,CAAC;SACxB,MAAM,CAAC,QAAQ,CAAC;SAChB,MAAM,CAAC,KAAK,CAAC;SACb,KAAK,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC;AACtC,CAAC;AAOD;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,WAAmB;IAEnB,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACtD,MAAM,KAAK,GAAG,6BAA6B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5D,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC;IAClD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9C,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,CAAE,EAAE,UAAU,EAAE,CAAC;AAChD,CAAC"}
@@ -1,5 +1,37 @@
1
1
  import type { GitHubClient } from '@generacy-ai/workflow-engine';
2
2
  import type { WorkflowPhase, Logger } from './types.js';
3
+ /**
4
+ * Closed union of legitimate writers of `completed:<human-gate>` labels.
5
+ *
6
+ * Currently a single member — `cockpit advance` (the CLI command that also
7
+ * posts the `<!-- generacy-cockpit:manual-advance -->` audit comment). The CLI
8
+ * writes labels over the wire via `gh addLabel` and does NOT invoke
9
+ * `LabelManager`, so this token has zero in-process call sites today; it exists
10
+ * as a public export for future in-process writers that will need to
11
+ * explicitly opt in through the seam guard.
12
+ *
13
+ * DO NOT extend without a corresponding audit-comment marker design — see
14
+ * #941 spec §Out-of-scope for the `ApproveReview` case (Q2 → B).
15
+ */
16
+ export declare const AllowGateComplete: Readonly<{
17
+ readonly CockpitAdvance: "cockpit-advance";
18
+ }>;
19
+ export type AllowGateComplete = (typeof AllowGateComplete)[keyof typeof AllowGateComplete];
20
+ /**
21
+ * Thrown by `LabelManager.applyLabels` when a `completed:<human-gate>` label
22
+ * is written without an `AllowGateComplete` token. See #941.
23
+ */
24
+ export declare class HumanGateCompletionUnauthorizedError extends Error {
25
+ readonly label: string;
26
+ readonly allowedTokens: readonly string[];
27
+ constructor(label: string);
28
+ }
29
+ /**
30
+ * Returns true when `label` is `completed:<X>` and X is a known human-gate
31
+ * suffix. Phase completions (`completed:implement`, `completed:validate`, …)
32
+ * return false because phase names are disjoint from gate suffixes.
33
+ */
34
+ export declare function isHumanGateCompletion(label: string): boolean;
3
35
  /**
4
36
  * Callback invoked from `onGateHit` after a pause label pair
5
37
  * (`waiting-for:<gate>` + `agent:paused`) has been successfully applied.
@@ -74,6 +106,16 @@ export declare class LabelManager {
74
106
  * Adds `agent:error` label and removes `phase:<current>`.
75
107
  */
76
108
  onError(phase: WorkflowPhase): Promise<void>;
109
+ /**
110
+ * #942: Called when a phase fails with the same fingerprint N or more times
111
+ * (N = REPEAT_FAILURE_THRESHOLD, currently 2). Applies `failed:<phase>-repeated`
112
+ * IN ADDITION to (not instead of) `failed:<phase>`. The regular `onError`
113
+ * still fires first so pre-#942 consumers of `failed:*` remain byte-compatible.
114
+ *
115
+ * Idempotent: `applyLabels` de-dupes when the label is already present.
116
+ * Never removes any label (Q3→A).
117
+ */
118
+ onRepeatedError(phase: WorkflowPhase): Promise<void>;
77
119
  /**
78
120
  * Called when the entire workflow completes (all phases finished).
79
121
  *
@@ -1 +1 @@
1
- {"version":3,"file":"label-manager.d.ts","sourceRoot":"","sources":["../../src/worker/label-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAEjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAMxD;;;;;GAKG;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAYxE;;;;;;;;;;GAUG;AACH,qBAAa,YAAY;IAkCrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAtCrC;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAEzD;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAoC;IAE1E;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAqD;IAEjG,2DAA2D;IAC3D,MAAM,CAAC,wBAAwB,IAAI,IAAI;gBAOpB,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,iBAAiB,CAAC,EAAE,yBAAyB,YAAA;IAGhE;;;;OAIG;IACG,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBvD;;;;OAIG;IACG,eAAe,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB1D;;;;OAIG;IACG,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4CvE;;;;OAIG;IACG,OAAO,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBlD;;;;OAIG;IACG,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAezC;;;;;;OAMG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IA0CpC;;;;;;;;;;;;OAYG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBpC;;;;;;;OAOG;YACW,qBAAqB;IAuGnC;;;;;;;;;;OAUG;YACW,WAAW;IAyBzB;;OAEG;YACW,qBAAqB;IAOnC;;;;;;;;OAQG;YACW,gBAAgB;IAsC9B;;OAEG;IACH,OAAO,CAAC,KAAK;CAGd"}
1
+ {"version":3,"file":"label-manager.d.ts","sourceRoot":"","sources":["../../src/worker/label-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAEjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAOxD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,iBAAiB;;EAEnB,CAAC;AAEZ,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC;AAE3F;;;GAGG;AACH,qBAAa,oCAAqC,SAAQ,KAAK;IAC7D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;gBAE9B,KAAK,EAAE,MAAM;CAW1B;AA8BD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAG5D;AAED;;;;;GAKG;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAYxE;;;;;;;;;;GAUG;AACH,qBAAa,YAAY;IAkCrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAtCrC;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAEzD;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAoC;IAE1E;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAqD;IAEjG,2DAA2D;IAC3D,MAAM,CAAC,wBAAwB,IAAI,IAAI;gBAOpB,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,iBAAiB,CAAC,EAAE,yBAAyB,YAAA;IAGhE;;;;OAIG;IACG,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBvD;;;;OAIG;IACG,eAAe,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB1D;;;;OAIG;IACG,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgDvE;;;;OAIG;IACG,OAAO,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBlD;;;;;;;;OAQG;IACG,eAAe,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAc1D;;;;OAIG;IACG,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAezC;;;;;;OAMG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IA0CpC;;;;;;;;;;;;OAYG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBpC;;;;;;;OAOG;YACW,qBAAqB;IAuGnC;;;;;;;;;;OAUG;YACW,WAAW;IAuCzB;;OAEG;YACW,qBAAqB;IAOnC;;;;;;;;OAQG;YACW,gBAAgB;IAsC9B;;OAEG;IACH,OAAO,CAAC,KAAK;CAGd"}
@@ -1,6 +1,78 @@
1
1
  import { WORKFLOW_LABELS, classifyLabelProvisioningError } from '@generacy-ai/workflow-engine';
2
2
  import { TerminalLabelOpError } from './terminal-label-op-error.js';
3
+ import { GATE_MAPPING, WORKFLOW_GATE_MAPPING } from './phase-resolver.js';
3
4
  const WORKFLOW_LABEL_NAMES = new Set(WORKFLOW_LABELS.map((l) => l.name));
5
+ /**
6
+ * Closed union of legitimate writers of `completed:<human-gate>` labels.
7
+ *
8
+ * Currently a single member — `cockpit advance` (the CLI command that also
9
+ * posts the `<!-- generacy-cockpit:manual-advance -->` audit comment). The CLI
10
+ * writes labels over the wire via `gh addLabel` and does NOT invoke
11
+ * `LabelManager`, so this token has zero in-process call sites today; it exists
12
+ * as a public export for future in-process writers that will need to
13
+ * explicitly opt in through the seam guard.
14
+ *
15
+ * DO NOT extend without a corresponding audit-comment marker design — see
16
+ * #941 spec §Out-of-scope for the `ApproveReview` case (Q2 → B).
17
+ */
18
+ export const AllowGateComplete = Object.freeze({
19
+ CockpitAdvance: 'cockpit-advance',
20
+ });
21
+ /**
22
+ * Thrown by `LabelManager.applyLabels` when a `completed:<human-gate>` label
23
+ * is written without an `AllowGateComplete` token. See #941.
24
+ */
25
+ export class HumanGateCompletionUnauthorizedError extends Error {
26
+ label;
27
+ allowedTokens;
28
+ constructor(label) {
29
+ super(`refused to add "${label}": ` +
30
+ `writing completed:<human-gate> requires an AllowGateComplete token ` +
31
+ `(none passed). Only the cockpit-advance path may complete a human ` +
32
+ `gate. See #941.`);
33
+ this.name = 'HumanGateCompletionUnauthorizedError';
34
+ this.label = label;
35
+ this.allowedTokens = Object.values(AllowGateComplete);
36
+ }
37
+ }
38
+ /**
39
+ * Human gates that live in `WorkerConfigSchema.gates` defaults but do not
40
+ * appear in the `phase-resolver.ts` `GATE_MAPPING` / `WORKFLOW_GATE_MAPPING`
41
+ * (they have no `resumeFrom` phase — they resume back to their own phase).
42
+ * Kept as a small static supplement so the guard reads a single deterministic
43
+ * source (not `WorkerConfigSchema.gates`, which is mutable per repo).
44
+ */
45
+ const SUPPLEMENTAL_HUMAN_GATE_SUFFIXES = [
46
+ 'sibling-review',
47
+ 'merge-conflicts',
48
+ ];
49
+ /**
50
+ * Set of gate suffixes — the "X" in `completed:X` / `waiting-for:X` — that
51
+ * denote a human review gate (not a workflow phase). Derived from
52
+ * `GATE_MAPPING` and every `WORKFLOW_GATE_MAPPING[*]` plus the supplemental
53
+ * static list so a repo-level workflow override cannot silently expand or
54
+ * shrink the guarded set.
55
+ */
56
+ const HUMAN_GATE_SUFFIXES = (() => {
57
+ const s = new Set(Object.keys(GATE_MAPPING));
58
+ for (const map of Object.values(WORKFLOW_GATE_MAPPING)) {
59
+ for (const gateName of Object.keys(map))
60
+ s.add(gateName);
61
+ }
62
+ for (const suffix of SUPPLEMENTAL_HUMAN_GATE_SUFFIXES)
63
+ s.add(suffix);
64
+ return s;
65
+ })();
66
+ /**
67
+ * Returns true when `label` is `completed:<X>` and X is a known human-gate
68
+ * suffix. Phase completions (`completed:implement`, `completed:validate`, …)
69
+ * return false because phase names are disjoint from gate suffixes.
70
+ */
71
+ export function isHumanGateCompletion(label) {
72
+ if (!label.startsWith('completed:'))
73
+ return false;
74
+ return HUMAN_GATE_SUFFIXES.has(label.slice('completed:'.length));
75
+ }
4
76
  function extractStderr(error) {
5
77
  if (error instanceof Error)
6
78
  return error.message;
@@ -103,13 +175,17 @@ export class LabelManager {
103
175
  */
104
176
  async onGateHit(phase, gateLabel) {
105
177
  const phaseLabel = `phase:${phase}`;
106
- const completedLabel = `completed:${phase}`;
178
+ // #958 FR-008 `completed:<phase>` is applied AFTER the gate check in
179
+ // phase-loop.ts, so it is never present when this handler runs. Do NOT
180
+ // add it back to `removeLabels` — the paired T011 reorder ensures the
181
+ // label was never granted; a retract call here would be dead code, and
182
+ // future readers seeing "why isn't it removing completed?" should read
183
+ // this comment before re-adding it.
107
184
  await this.retryWithBackoff(async () => {
108
185
  await this.ensureRepoLabelsExist();
109
- this.logger.info({ phase, gateLabel, issue: this.issueNumber }, `Gate hit: removing ${phaseLabel} and ${completedLabel}, adding ${gateLabel} and agent:paused`);
186
+ this.logger.info({ phase, gateLabel, issue: this.issueNumber }, `Gate hit: removing ${phaseLabel}, adding ${gateLabel} and agent:paused`);
110
187
  await this.github.removeLabels(this.owner, this.repo, this.issueNumber, [
111
188
  phaseLabel,
112
- completedLabel,
113
189
  ]);
114
190
  await this.applyLabels([gateLabel, 'agent:paused']);
115
191
  }, { site: 'gate-hit', labelOp: `addLabels([${gateLabel}, agent:paused])` });
@@ -151,6 +227,23 @@ export class LabelManager {
151
227
  await this.applyLabels([failedLabel, 'agent:error']);
152
228
  }, { site: 'error', labelOp: `addLabels([${failedLabel}, agent:error])` });
153
229
  }
230
+ /**
231
+ * #942: Called when a phase fails with the same fingerprint N or more times
232
+ * (N = REPEAT_FAILURE_THRESHOLD, currently 2). Applies `failed:<phase>-repeated`
233
+ * IN ADDITION to (not instead of) `failed:<phase>`. The regular `onError`
234
+ * still fires first so pre-#942 consumers of `failed:*` remain byte-compatible.
235
+ *
236
+ * Idempotent: `applyLabels` de-dupes when the label is already present.
237
+ * Never removes any label (Q3→A).
238
+ */
239
+ async onRepeatedError(phase) {
240
+ const escalationLabel = `failed:${phase}-repeated`;
241
+ await this.retryWithBackoff(async () => {
242
+ await this.ensureRepoLabelsExist();
243
+ this.logger.info({ phase, issue: this.issueNumber, escalationLabel }, `Repeat-identical failure escalation: adding ${escalationLabel}`);
244
+ await this.applyLabels([escalationLabel]);
245
+ }, { site: 'error-repeated', labelOp: `addLabels([${escalationLabel}])` });
246
+ }
154
247
  /**
155
248
  * Called when the entire workflow completes (all phases finished).
156
249
  *
@@ -331,7 +424,18 @@ export class LabelManager {
331
424
  *
332
425
  * All other error shapes rethrow unchanged.
333
426
  */
334
- async applyLabels(labels) {
427
+ async applyLabels(labels, allow) {
428
+ // #941 FR-003: reject unauthorized human-gate completion adds before any
429
+ // network call. Rejection is per-label and atomic — if any label in the
430
+ // batch is a `completed:<human-gate>` without an `AllowGateComplete`
431
+ // token, the whole call throws with no partial write.
432
+ if (allow == null) {
433
+ for (const label of labels) {
434
+ if (isHumanGateCompletion(label)) {
435
+ throw new HumanGateCompletionUnauthorizedError(label);
436
+ }
437
+ }
438
+ }
335
439
  try {
336
440
  await this.github.addLabels(this.owner, this.repo, this.issueNumber, labels);
337
441
  }
@@ -1 +1 @@
1
- {"version":3,"file":"label-manager.js","sourceRoot":"","sources":["../../src/worker/label-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"label-manager.js","sourceRoot":"","sources":["../../src/worker/label-manager.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ import type { PrManager } from './pr-manager.js';
10
10
  import type { ValidateFixHandler } from './validate-fix-handler.js';
11
11
  import type { ConversationLogger } from './conversation-logger.js';
12
12
  import { type BaseMergeRunner } from './base-merge.js';
13
+ import type { FailureFingerprintTracker } from '../services/failure-fingerprint-tracker.js';
13
14
  /**
14
15
  * Dependencies injected into the PhaseLoop.
15
16
  */
@@ -37,6 +38,12 @@ export interface PhaseLoopDeps {
37
38
  * continue to route through `LabelManager.onError('validate')` (D7).
38
39
  */
39
40
  validateFixHandler?: ValidateFixHandler;
41
+ /**
42
+ * #942: Optional repeat-failure history tracker. When absent, escalation
43
+ * degrades to a no-op (occurrence is always 1, `-repeated` never fires).
44
+ * Injected by the worker-mode wiring in server.ts.
45
+ */
46
+ failureFingerprintTracker?: FailureFingerprintTracker;
40
47
  }
41
48
  /**
42
49
  * Discriminator for `PhaseLoopResult` (#889 additive extension).
@@ -122,6 +129,29 @@ export declare class PhaseLoop {
122
129
  * #849's paired resume-dedupe clear applies symmetrically.
123
130
  */
124
131
  private runPrePhaseBaseMerge;
132
+ /**
133
+ * #942: Fingerprint the failure, look up prior identical failures on this
134
+ * issue, escalate labels + post the alert.
135
+ *
136
+ * Order (per contract):
137
+ * 1. Compute fingerprint (pure, non-throwing).
138
+ * 2. Fetch prior-occurrence count (fail-open — errors already suppressed
139
+ * inside the tracker, so this is always a number).
140
+ * 3. `labelManager.onError(phase)` — unchanged pre-#942 path.
141
+ * 4. If `occurrence >= REPEAT_FAILURE_THRESHOLD` (N=2), also apply the
142
+ * `-repeated` escalation label BEFORE the alert-post.
143
+ * 5. `stageCommentManager.postFailureAlert({ ..., fingerprint, occurrence })`
144
+ * — line-1 v2 marker carries the fingerprint hex + occurrence counter.
145
+ */
146
+ private escalateAndAlert;
147
+ /**
148
+ * #958 FR-010 — Surface parse failures on the issue + relay event so that
149
+ * "failed to pick up the answers" and "planned anyway" are no longer one
150
+ * event. Best-effort: failures posting the comment are logged and
151
+ * swallowed — the pause itself (via the on-questions gate check that
152
+ * follows) is the load-bearing behavior; this is diagnostic.
153
+ */
154
+ private reportClarificationParseFailures;
125
155
  /**
126
156
  * Build the `errorEvidence` payload rendered inside the stage comment on
127
157
  * `status: 'error'` transitions. See specs/847-found-during-cockpit-v1/
@@ -1 +1 @@
1
- {"version":3,"file":"phase-loop.d.ts","sourceRoot":"","sources":["../../src/worker/phase-loop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAkC,MAAM,YAAY,CAAC;AAExJ,OAAO,EAA0B,KAAK,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAChG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAOnE,OAAO,EAAuC,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAQ5F;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,YAAY,CAAC;IAC3B,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,aAAa,CAAC;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,0DAA0D;IAC1D,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,+EAA+E;IAC/E,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACzC;;;;OAIG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,UAAU,GAAG,cAAc,GAAG,iBAAiB,CAAC;AAE5F;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,sCAAsC;IACtC,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,qDAAqD;IACrD,SAAS,EAAE,OAAO,CAAC;IACnB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,OAAO,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB;;;OAGG;IACH,eAAe,CAAC,EAAE;QAChB,IAAI,EAAE,mBAAmB,CAAC;QAC1B,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,SAAS;IACR,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAE3C;;;;;OAKG;IACG,WAAW,CACf,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,aAAa,EACnB,aAAa,CAAC,EAAE,aAAa,EAAE,GAC9B,OAAO,CAAC,eAAe,CAAC;YAiCb,gBAAgB;IAkpB9B;;;;OAIG;YACW,wBAAwB;IAyBtC;;;;;OAKG;YACW,uBAAuB;IAyBrC;;;;;OAKG;YACW,oBAAoB;IAoHlC;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IA+B1B;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;CA0B3B"}
1
+ {"version":3,"file":"phase-loop.d.ts","sourceRoot":"","sources":["../../src/worker/phase-loop.ts"],"names":[],"mappings":"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"}