@generacy-ai/orchestrator 0.6.0 → 0.7.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 (178) hide show
  1. package/dist/config/schema.d.ts +7 -7
  2. package/dist/index.d.ts +3 -1
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +4 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/routes/health.d.ts.map +1 -1
  7. package/dist/routes/health.js +5 -0
  8. package/dist/routes/health.js.map +1 -1
  9. package/dist/server.d.ts.map +1 -1
  10. package/dist/server.js +130 -26
  11. package/dist/server.js.map +1 -1
  12. package/dist/services/base-advance-monitor-service.d.ts +78 -0
  13. package/dist/services/base-advance-monitor-service.d.ts.map +1 -0
  14. package/dist/services/base-advance-monitor-service.js +233 -0
  15. package/dist/services/base-advance-monitor-service.js.map +1 -0
  16. package/dist/services/boot-resume-service.d.ts +19 -0
  17. package/dist/services/boot-resume-service.d.ts.map +1 -0
  18. package/dist/services/boot-resume-service.js +87 -0
  19. package/dist/services/boot-resume-service.js.map +1 -0
  20. package/dist/services/epic-completion-monitor-service.d.ts.map +1 -1
  21. package/dist/services/epic-completion-monitor-service.js +2 -0
  22. package/dist/services/epic-completion-monitor-service.js.map +1 -1
  23. package/dist/services/in-memory-queue-adapter.d.ts +4 -0
  24. package/dist/services/in-memory-queue-adapter.d.ts.map +1 -1
  25. package/dist/services/in-memory-queue-adapter.js +30 -3
  26. package/dist/services/in-memory-queue-adapter.js.map +1 -1
  27. package/dist/services/label-monitor-service.d.ts +3 -3
  28. package/dist/services/label-monitor-service.d.ts.map +1 -1
  29. package/dist/services/label-monitor-service.js +58 -41
  30. package/dist/services/label-monitor-service.js.map +1 -1
  31. package/dist/services/label-sync-service.d.ts.map +1 -1
  32. package/dist/services/label-sync-service.js +45 -10
  33. package/dist/services/label-sync-service.js.map +1 -1
  34. package/dist/services/merge-conflict-monitor-service.d.ts +73 -0
  35. package/dist/services/merge-conflict-monitor-service.d.ts.map +1 -0
  36. package/dist/services/merge-conflict-monitor-service.js +295 -0
  37. package/dist/services/merge-conflict-monitor-service.js.map +1 -0
  38. package/dist/services/orchestrator-version.d.ts +2 -0
  39. package/dist/services/orchestrator-version.d.ts.map +1 -0
  40. package/dist/services/orchestrator-version.js +23 -0
  41. package/dist/services/orchestrator-version.js.map +1 -0
  42. package/dist/services/phase-tracker-service.d.ts +10 -0
  43. package/dist/services/phase-tracker-service.d.ts.map +1 -1
  44. package/dist/services/phase-tracker-service.js +38 -0
  45. package/dist/services/phase-tracker-service.js.map +1 -1
  46. package/dist/services/post-activation-dispatch.d.ts +18 -0
  47. package/dist/services/post-activation-dispatch.d.ts.map +1 -0
  48. package/dist/services/post-activation-dispatch.js +30 -0
  49. package/dist/services/post-activation-dispatch.js.map +1 -0
  50. package/dist/services/pr-feedback-monitor-service.d.ts +13 -4
  51. package/dist/services/pr-feedback-monitor-service.d.ts.map +1 -1
  52. package/dist/services/pr-feedback-monitor-service.js +212 -26
  53. package/dist/services/pr-feedback-monitor-service.js.map +1 -1
  54. package/dist/services/redis-queue-adapter.d.ts +4 -0
  55. package/dist/services/redis-queue-adapter.d.ts.map +1 -1
  56. package/dist/services/redis-queue-adapter.js +90 -10
  57. package/dist/services/redis-queue-adapter.js.map +1 -1
  58. package/dist/services/worker-dispatcher.d.ts +14 -2
  59. package/dist/services/worker-dispatcher.d.ts.map +1 -1
  60. package/dist/services/worker-dispatcher.js +55 -2
  61. package/dist/services/worker-dispatcher.js.map +1 -1
  62. package/dist/types/api.d.ts +3 -0
  63. package/dist/types/api.d.ts.map +1 -1
  64. package/dist/types/api.js +1 -0
  65. package/dist/types/api.js.map +1 -1
  66. package/dist/types/index.d.ts +1 -1
  67. package/dist/types/index.d.ts.map +1 -1
  68. package/dist/types/index.js.map +1 -1
  69. package/dist/types/monitor.d.ts +72 -4
  70. package/dist/types/monitor.d.ts.map +1 -1
  71. package/dist/worker/base-merge.d.ts +54 -0
  72. package/dist/worker/base-merge.d.ts.map +1 -0
  73. package/dist/worker/base-merge.js +99 -0
  74. package/dist/worker/base-merge.js.map +1 -0
  75. package/dist/worker/clarification-markers.d.ts +29 -0
  76. package/dist/worker/clarification-markers.d.ts.map +1 -0
  77. package/dist/worker/clarification-markers.js +44 -0
  78. package/dist/worker/clarification-markers.js.map +1 -0
  79. package/dist/worker/clarification-poster.d.ts.map +1 -1
  80. package/dist/worker/clarification-poster.js +266 -25
  81. package/dist/worker/clarification-poster.js.map +1 -1
  82. package/dist/worker/claude-cli-worker.d.ts +21 -2
  83. package/dist/worker/claude-cli-worker.d.ts.map +1 -1
  84. package/dist/worker/claude-cli-worker.js +149 -4
  85. package/dist/worker/claude-cli-worker.js.map +1 -1
  86. package/dist/worker/cli-spawner.d.ts +4 -0
  87. package/dist/worker/cli-spawner.d.ts.map +1 -1
  88. package/dist/worker/cli-spawner.js +51 -7
  89. package/dist/worker/cli-spawner.js.map +1 -1
  90. package/dist/worker/config.d.ts +24 -8
  91. package/dist/worker/config.d.ts.map +1 -1
  92. package/dist/worker/config.js +37 -2
  93. package/dist/worker/config.js.map +1 -1
  94. package/dist/worker/evidence-hash.d.ts +32 -0
  95. package/dist/worker/evidence-hash.d.ts.map +1 -0
  96. package/dist/worker/evidence-hash.js +139 -0
  97. package/dist/worker/evidence-hash.js.map +1 -0
  98. package/dist/worker/handler-outcome-assertion.d.ts +38 -0
  99. package/dist/worker/handler-outcome-assertion.d.ts.map +1 -0
  100. package/dist/worker/handler-outcome-assertion.js +58 -0
  101. package/dist/worker/handler-outcome-assertion.js.map +1 -0
  102. package/dist/worker/handler-outcome.d.ts +50 -0
  103. package/dist/worker/handler-outcome.d.ts.map +1 -0
  104. package/dist/worker/handler-outcome.js +2 -0
  105. package/dist/worker/handler-outcome.js.map +1 -0
  106. package/dist/worker/label-manager.d.ts +58 -2
  107. package/dist/worker/label-manager.d.ts.map +1 -1
  108. package/dist/worker/label-manager.js +225 -27
  109. package/dist/worker/label-manager.js.map +1 -1
  110. package/dist/worker/merge-conflict-handler.d.ts +141 -0
  111. package/dist/worker/merge-conflict-handler.d.ts.map +1 -0
  112. package/dist/worker/merge-conflict-handler.js +642 -0
  113. package/dist/worker/merge-conflict-handler.js.map +1 -0
  114. package/dist/worker/merge-conflict-prompt.d.ts +35 -0
  115. package/dist/worker/merge-conflict-prompt.d.ts.map +1 -0
  116. package/dist/worker/merge-conflict-prompt.js +71 -0
  117. package/dist/worker/merge-conflict-prompt.js.map +1 -0
  118. package/dist/worker/merge-conflict-remedy.d.ts +42 -0
  119. package/dist/worker/merge-conflict-remedy.d.ts.map +1 -0
  120. package/dist/worker/merge-conflict-remedy.js +28 -0
  121. package/dist/worker/merge-conflict-remedy.js.map +1 -0
  122. package/dist/worker/output-tail-synthesis.d.ts +15 -0
  123. package/dist/worker/output-tail-synthesis.d.ts.map +1 -0
  124. package/dist/worker/output-tail-synthesis.js +25 -0
  125. package/dist/worker/output-tail-synthesis.js.map +1 -0
  126. package/dist/worker/output-tail.d.ts +13 -0
  127. package/dist/worker/output-tail.d.ts.map +1 -0
  128. package/dist/worker/output-tail.js +31 -0
  129. package/dist/worker/output-tail.js.map +1 -0
  130. package/dist/worker/pause-context.d.ts +30 -0
  131. package/dist/worker/pause-context.d.ts.map +1 -0
  132. package/dist/worker/pause-context.js +98 -0
  133. package/dist/worker/pause-context.js.map +1 -0
  134. package/dist/worker/phase-loop.d.ts +66 -0
  135. package/dist/worker/phase-loop.d.ts.map +1 -1
  136. package/dist/worker/phase-loop.js +295 -29
  137. package/dist/worker/phase-loop.js.map +1 -1
  138. package/dist/worker/pr-feedback-handler.d.ts +46 -46
  139. package/dist/worker/pr-feedback-handler.d.ts.map +1 -1
  140. package/dist/worker/pr-feedback-handler.js +276 -105
  141. package/dist/worker/pr-feedback-handler.js.map +1 -1
  142. package/dist/worker/pr-manager.d.ts +5 -0
  143. package/dist/worker/pr-manager.d.ts.map +1 -1
  144. package/dist/worker/pr-manager.js +7 -0
  145. package/dist/worker/pr-manager.js.map +1 -1
  146. package/dist/worker/product-diff.d.ts +39 -0
  147. package/dist/worker/product-diff.d.ts.map +1 -0
  148. package/dist/worker/product-diff.js +43 -0
  149. package/dist/worker/product-diff.js.map +1 -0
  150. package/dist/worker/provisioning-failure.d.ts +14 -0
  151. package/dist/worker/provisioning-failure.d.ts.map +1 -0
  152. package/dist/worker/provisioning-failure.js +2 -0
  153. package/dist/worker/provisioning-failure.js.map +1 -0
  154. package/dist/worker/repo-checkout.d.ts +14 -0
  155. package/dist/worker/repo-checkout.d.ts.map +1 -1
  156. package/dist/worker/repo-checkout.js +19 -1
  157. package/dist/worker/repo-checkout.js.map +1 -1
  158. package/dist/worker/stage-comment-manager.d.ts +42 -1
  159. package/dist/worker/stage-comment-manager.d.ts.map +1 -1
  160. package/dist/worker/stage-comment-manager.js +205 -1
  161. package/dist/worker/stage-comment-manager.js.map +1 -1
  162. package/dist/worker/terminal-label-op-error.d.ts +23 -0
  163. package/dist/worker/terminal-label-op-error.d.ts.map +1 -0
  164. package/dist/worker/terminal-label-op-error.js +27 -0
  165. package/dist/worker/terminal-label-op-error.js.map +1 -0
  166. package/dist/worker/types.d.ts +161 -2
  167. package/dist/worker/types.d.ts.map +1 -1
  168. package/dist/worker/types.js +11 -0
  169. package/dist/worker/types.js.map +1 -1
  170. package/dist/worker/validate-fix-handler.d.ts +79 -0
  171. package/dist/worker/validate-fix-handler.d.ts.map +1 -0
  172. package/dist/worker/validate-fix-handler.js +320 -0
  173. package/dist/worker/validate-fix-handler.js.map +1 -0
  174. package/dist/worker/worker-result.d.ts +39 -0
  175. package/dist/worker/worker-result.d.ts.map +1 -0
  176. package/dist/worker/worker-result.js +10 -0
  177. package/dist/worker/worker-result.js.map +1 -0
  178. package/package.json +6 -5
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Central marker set for engine-authored clarification-question comments.
3
+ *
4
+ * The answer-scanner in `clarification-poster.ts` uses
5
+ * `commentCarriesQuestionMarker` to skip these comments before parsing
6
+ * candidate `Q<n>:` answers. `isQuestionComment` delegates to the same
7
+ * predicate for its marker branch.
8
+ *
9
+ * Adding a new engine dialect: append its stable HTML-comment prefix to
10
+ * `CLARIFICATION_QUESTION_MARKERS`. No other file changes.
11
+ *
12
+ * Match rule:
13
+ * - Prefix substring, case-sensitive ASCII.
14
+ * - Line-anchored: only fires when the marker starts at column 0 of some line.
15
+ * - `> `-quoted markers therefore do NOT match — humans quoting the questions
16
+ * while answering still have their `Q<n>: <answer>` lines integrated.
17
+ */
18
+ export declare const CLARIFICATION_QUESTION_MARKERS: readonly string[];
19
+ /**
20
+ * True iff `body` contains one of the FR-101 markers at column 0 of some line.
21
+ */
22
+ export declare function commentCarriesQuestionMarker(body: string): boolean;
23
+ /**
24
+ * Same semantics as `commentCarriesQuestionMarker`; returns the specific
25
+ * prefix string that matched (identity from `CLARIFICATION_QUESTION_MARKERS`)
26
+ * or `undefined` if no match.
27
+ */
28
+ export declare function matchClarificationQuestionMarker(body: string): string | undefined;
29
+ //# sourceMappingURL=clarification-markers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clarification-markers.d.ts","sourceRoot":"","sources":["../../src/worker/clarification-markers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,8BAA8B,EAAE,SAAS,MAAM,EAKlD,CAAC;AAEX;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAElE;AAED;;;;GAIG;AACH,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAOjF"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Central marker set for engine-authored clarification-question comments.
3
+ *
4
+ * The answer-scanner in `clarification-poster.ts` uses
5
+ * `commentCarriesQuestionMarker` to skip these comments before parsing
6
+ * candidate `Q<n>:` answers. `isQuestionComment` delegates to the same
7
+ * predicate for its marker branch.
8
+ *
9
+ * Adding a new engine dialect: append its stable HTML-comment prefix to
10
+ * `CLARIFICATION_QUESTION_MARKERS`. No other file changes.
11
+ *
12
+ * Match rule:
13
+ * - Prefix substring, case-sensitive ASCII.
14
+ * - Line-anchored: only fires when the marker starts at column 0 of some line.
15
+ * - `> `-quoted markers therefore do NOT match — humans quoting the questions
16
+ * while answering still have their `Q<n>: <answer>` lines integrated.
17
+ */
18
+ export const CLARIFICATION_QUESTION_MARKERS = [
19
+ '<!-- generacy-stage:clarification',
20
+ '<!-- generacy-clarifications:',
21
+ '<!-- generacy-clarification:',
22
+ '<!-- generacy-cockpit:clarifications-batch:',
23
+ ];
24
+ /**
25
+ * True iff `body` contains one of the FR-101 markers at column 0 of some line.
26
+ */
27
+ export function commentCarriesQuestionMarker(body) {
28
+ return matchClarificationQuestionMarker(body) !== undefined;
29
+ }
30
+ /**
31
+ * Same semantics as `commentCarriesQuestionMarker`; returns the specific
32
+ * prefix string that matched (identity from `CLARIFICATION_QUESTION_MARKERS`)
33
+ * or `undefined` if no match.
34
+ */
35
+ export function matchClarificationQuestionMarker(body) {
36
+ for (const line of body.split('\n')) {
37
+ for (const prefix of CLARIFICATION_QUESTION_MARKERS) {
38
+ if (line.startsWith(prefix))
39
+ return prefix;
40
+ }
41
+ }
42
+ return undefined;
43
+ }
44
+ //# sourceMappingURL=clarification-markers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clarification-markers.js","sourceRoot":"","sources":["../../src/worker/clarification-markers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAsB;IAC/D,mCAAmC;IACnC,+BAA+B;IAC/B,8BAA8B;IAC9B,6CAA6C;CACrC,CAAC;AAEX;;GAEG;AACH,MAAM,UAAU,4BAA4B,CAAC,IAAY;IACvD,OAAO,gCAAgC,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC;AAC9D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gCAAgC,CAAC,IAAY;IAC3D,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,KAAK,MAAM,MAAM,IAAI,8BAA8B,EAAE,CAAC;YACpD,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;gBAAE,OAAO,MAAM,CAAC;QAC7C,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"clarification-poster.d.ts","sourceRoot":"","sources":["../../src/worker/clarification-poster.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AA+BxD,MAAM,WAAW,mBAAmB;IAClC,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,OAAO,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAChC,6CAA6C;IAC7C,QAAQ,EAAE,OAAO,CAAC;IAClB,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,mCAAmC;IACnC,MAAM,EAAE,OAAO,CAAC;IAChB,wCAAwC;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,2BAA2B;IAC3B,MAAM,CAAC,EAAE,sBAAsB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,aAAa,CAAC;CACvF;AAQD,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE/D;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAYvD;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,qBAAqB,EAAE,CAwD5E;AAMD;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,qBAAqB,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAyC7F;AAMD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,GAClB,OAAO,CAgBT;AAqFD,MAAM,WAAW,iBAAiB;IAChC,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,MAAM,CAAC,EAAE,aAAa,GAAG,SAAS,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,CAAC;CACjF;AAED;;;;;;;;GAQG;AACH,wBAAsB,6BAA6B,CACjD,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,iBAAiB,CAAC,CA4E5B;AAMD;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,uBAAuB,CAAC,CA8DlC"}
1
+ {"version":3,"file":"clarification-poster.d.ts","sourceRoot":"","sources":["../../src/worker/clarification-poster.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AA6GxD,MAAM,WAAW,mBAAmB;IAClC,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,OAAO,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAChC,6CAA6C;IAC7C,QAAQ,EAAE,OAAO,CAAC;IAClB,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,mCAAmC;IACnC,MAAM,EAAE,OAAO,CAAC;IAChB,wCAAwC;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,2BAA2B;IAC3B,MAAM,CAAC,EAAE,sBAAsB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,aAAa,CAAC;CACvF;AAQD,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE/D;AA8BD;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAqBvD;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,qBAAqB,EAAE,CAwD5E;AAMD;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,qBAAqB,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAyC7F;AAMD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,GAClB,OAAO,CAgBT;AAmHD,MAAM,WAAW,iBAAiB;IAChC,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,MAAM,CAAC,EAAE,aAAa,GAAG,SAAS,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,CAAC;CACjF;AAiFD;;;;;;;;GAQG;AACH,wBAAsB,6BAA6B,CACjD,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,iBAAiB,CAAC,CAgK5B;AAMD;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,uBAAuB,CAAC,CAgElC"}
@@ -8,6 +8,80 @@
8
8
  */
9
9
  import { readdirSync, readFileSync, writeFileSync } from 'node:fs';
10
10
  import { join } from 'node:path';
11
+ import { isTrustedCommentAuthor, tryLoadCommentTrustConfig, } from '@generacy-ai/workflow-engine';
12
+ import { commentCarriesQuestionMarker, matchClarificationQuestionMarker, } from './clarification-markers.js';
13
+ /**
14
+ * Resolve cluster bot login from env vars (identity.ts chain). The
15
+ * `gh api /user` fallback is intentionally skipped here — it fails on
16
+ * App-token clusters and env vars are the load-bearing tier in-cluster.
17
+ */
18
+ function resolveBotLoginFromEnv() {
19
+ return process.env['CLUSTER_GITHUB_USERNAME'] ?? process.env['GH_USERNAME'] ?? undefined;
20
+ }
21
+ /**
22
+ * Adapter: pino-style logger (WorkerContext.Logger) → workflow-engine Logger.
23
+ * The workflow-engine helper calls `logger.warn(message, obj)` (message first);
24
+ * pino-style loggers accept `warn(obj, message)`. Bridge the arg order.
25
+ */
26
+ function toEngineLogger(logger) {
27
+ return {
28
+ info: (msg, meta) => {
29
+ if (meta && typeof meta === 'object')
30
+ logger.info(meta, msg);
31
+ else
32
+ logger.info(msg);
33
+ },
34
+ warn: (msg, meta) => {
35
+ if (meta && typeof meta === 'object')
36
+ logger.warn(meta, msg);
37
+ else
38
+ logger.warn(msg);
39
+ },
40
+ error: (msg, meta) => {
41
+ if (meta && typeof meta === 'object')
42
+ logger.error(meta, msg);
43
+ else
44
+ logger.error(msg);
45
+ },
46
+ debug: (msg, meta) => {
47
+ if (meta && typeof meta === 'object')
48
+ logger.debug(meta, msg);
49
+ else
50
+ logger.debug(msg);
51
+ },
52
+ };
53
+ }
54
+ /**
55
+ * Emit a structured skip-log for FR-010. Body is deliberately absent
56
+ * (SC-003).
57
+ */
58
+ function logCommentSkipped(logger, surface, comment, reason) {
59
+ logger.info({
60
+ event: 'comment-skipped',
61
+ surface,
62
+ commentId: comment.id,
63
+ author: comment.author,
64
+ authorAssociation: comment.authorAssociation,
65
+ reason,
66
+ }, 'Skipped comment from untrusted author');
67
+ }
68
+ /**
69
+ * Marker for the bot's untrusted-answer explainer comment. Used to
70
+ * dedupe repeat postings for the same skipped comment (FR-013 idempotence).
71
+ */
72
+ const UNTRUSTED_ANSWER_MARKER_PREFIX = '<!-- generacy-untrusted-answer:';
73
+ function untrustedAnswerMarker(commentId) {
74
+ return `${UNTRUSTED_ANSWER_MARKER_PREFIX}${commentId} -->`;
75
+ }
76
+ /**
77
+ * Detect whether a comment body matches the `Q<N>:` answer pattern that
78
+ * `parseAnswersFromComments` would attempt to consume. Used to decide
79
+ * whether an untrusted-comment skip warrants an explainer bot comment
80
+ * (matched) or log-only treatment (unmatched, generic drive-by).
81
+ */
82
+ function commentMatchesAnswerPattern(body) {
83
+ return /(?:^|\n)(?:#{1,6}\s+)?(?:\*\*)?Q\d+(?:\*\*)?:\s*.+/.test(body);
84
+ }
11
85
  // ---------------------------------------------------------------------------
12
86
  // Helpers
13
87
  // ---------------------------------------------------------------------------
@@ -42,6 +116,28 @@ export function clarificationMarker(issueNumber) {
42
116
  // ---------------------------------------------------------------------------
43
117
  // isQuestionComment
44
118
  // ---------------------------------------------------------------------------
119
+ /**
120
+ * Split a comment body into sections keyed by `### Q<n>:` headings.
121
+ * Each section spans from a heading to the next `### ` heading (or EOF).
122
+ * Returns an empty array if no `### Q<n>:` heading is present.
123
+ */
124
+ function splitByQuestionHeading(body) {
125
+ const headingPattern = /^### Q\d+:.*$/gm;
126
+ const headings = [...body.matchAll(headingPattern)];
127
+ if (headings.length === 0)
128
+ return [];
129
+ const sections = [];
130
+ for (let i = 0; i < headings.length; i++) {
131
+ const start = headings[i].index;
132
+ const headingLen = headings[i][0].length;
133
+ const nextTopLevelHeading = body.slice(start + headingLen).search(/^### /m);
134
+ const end = nextTopLevelHeading === -1
135
+ ? body.length
136
+ : start + headingLen + nextTopLevelHeading;
137
+ sections.push(body.slice(start, end));
138
+ }
139
+ return sections;
140
+ }
45
141
  /**
46
142
  * Detect whether a comment body is a clarification *questions* comment
47
143
  * (posted by the bot) rather than a human *answers* comment.
@@ -56,20 +152,25 @@ export function clarificationMarker(issueNumber) {
56
152
  * these markers.
57
153
  */
58
154
  export function isQuestionComment(body) {
59
- // Orchestrator-posted clarification comment
60
- if (body.includes(MARKER_PREFIX))
61
- return true;
62
- // CLI-posted clarification comment
63
- if (body.includes('<!-- generacy-clarification:'))
64
- return true;
65
- // Stage tracking comment
66
- if (body.includes('<!-- generacy-stage:'))
155
+ // FR-101 / FR-108 / FR-109 — engine-authored questions markers.
156
+ // Delegated to the single-source predicate in clarification-markers.ts;
157
+ // adding a new dialect only touches that file.
158
+ if (commentCarriesQuestionMarker(body))
67
159
  return true;
68
160
  // Clarify operation's direct posting (with or without emoji).
69
161
  // Negative lookahead excludes answer headings like
70
162
  // "## Answers to Clarification Questions".
71
163
  if (/##\s+(?!Answers\b).*Clarification Questions/.test(body))
72
164
  return true;
165
+ // FR-001: variant question-comment shape — any `### Q<n>:` heading section
166
+ // containing question-side markup that never appears in human answers.
167
+ for (const section of splitByQuestionHeading(body)) {
168
+ if (section.includes('**Question**:') ||
169
+ section.includes('**Context**:') ||
170
+ section.includes('**Options**:')) {
171
+ return true;
172
+ }
173
+ }
73
174
  return false;
74
175
  }
75
176
  // ---------------------------------------------------------------------------
@@ -249,14 +350,13 @@ function extractEmbeddedAnswer(text) {
249
350
  * For heading format, the actual answer is extracted from the embedded
250
351
  * `**Answer**` line rather than the topic name after `Q1:`.
251
352
  */
252
- function parseAnswersFromComments(comments, questionNumbers) {
353
+ function parseAnswersFromComments(comments, questionNumbers, logger) {
253
354
  const answers = new Map();
254
355
  for (const comment of comments) {
255
- // Match Q patterns with optional heading markers (### Q1:) and bold (**Q1**:).
256
- // The lookahead also handles heading-prefixed Q patterns so that sections
257
- // like `### Q1: ...` and `### Q2: ...` are properly delimited instead of
258
- // Q1 consuming everything up to $ when headings are used.
259
- const regex = /(?:#{1,6}\s+)?(?:\*\*)?Q(\d+)(?:\*\*)?:\s*(.*?)(?=(?:\n(?:#{1,6}\s+)?(?:\*\*)?Q\d+(?:\*\*)?:)|$)/gs;
356
+ const sourceHadQuestionHeadings = /(?:^|\n)###\s+Q\d+:/.test(comment.body);
357
+ // FR-005: anchor the `Q<n>:` opener at line start (^ or newline) so that
358
+ // mid-prose references like "as per Q1: yes" do not capture as answers.
359
+ const regex = /(?:^|\n)(?:#{1,6}\s+)?(?:\*\*)?Q(\d+)(?:\*\*)?:\s*(.*?)(?=(?:\n(?:#{1,6}\s+)?(?:\*\*)?Q\d+(?:\*\*)?:)|$)/gs;
260
360
  let match;
261
361
  while ((match = regex.exec(comment.body)) !== null) {
262
362
  const numStr = match[1];
@@ -273,14 +373,79 @@ function parseAnswersFromComments(comments, questionNumbers) {
273
373
  answer = embedded;
274
374
  }
275
375
  }
376
+ // FR-002: defense-in-depth — if the captured answer contains
377
+ // question-side markup, treat it as a leaked bot question body, not an
378
+ // answer. Skip and warn so operators can spot near-misses.
379
+ if (answer.includes('**Question**:') || answer.includes('**Context**:')) {
380
+ logger.warn({
381
+ code: 'SKIPPED_SUSPICIOUS_ANSWER',
382
+ commentId: comment.id,
383
+ questionNumber,
384
+ excerpt: answer.slice(0, 120),
385
+ }, 'Skipped suspicious clarification answer (contains question-side markup)');
386
+ continue;
387
+ }
276
388
  // Skip placeholder text that is not a real answer
277
389
  if (answer && answer !== '*Pending*' && questionNumbers.includes(questionNumber)) {
278
- answers.set(questionNumber, answer);
390
+ answers.set(questionNumber, {
391
+ answer,
392
+ sourceCommentId: comment.id,
393
+ sourceHadQuestionHeadings,
394
+ });
279
395
  }
280
396
  }
281
397
  }
282
398
  return answers;
283
399
  }
400
+ /**
401
+ * Post explainer bot comments for skipped untrusted `Q<N>:` answers
402
+ * (FR-013 / D7). Metadata only — never comment body (SC-007). Idempotent
403
+ * via `<!-- generacy-untrusted-answer:<commentId> -->` markers.
404
+ */
405
+ async function postUntrustedAnswerExplainers(opts) {
406
+ const { github, owner, repo, issueNumber, existingComments, skipped, logger } = opts;
407
+ if (skipped.length === 0)
408
+ return;
409
+ for (const c of skipped) {
410
+ const marker = untrustedAnswerMarker(c.id);
411
+ const alreadyPosted = existingComments.some((existing) => existing.body.includes(marker));
412
+ if (alreadyPosted) {
413
+ logger.debug({ commentId: c.id, issueNumber }, 'Untrusted-answer explainer already posted — skipping (idempotence)');
414
+ continue;
415
+ }
416
+ const tier = c.authorAssociation ?? 'unknown';
417
+ const body = `${marker}
418
+ > Answers from @${c.author} were not applied (association tier: \`${tier}\`). A trusted member (OWNER/MEMBER/COLLABORATOR) must re-post the answers themselves in the \`Q1: <answer>\` format for the batch to integrate.`;
419
+ try {
420
+ await github.addIssueComment(owner, repo, issueNumber, body);
421
+ logger.info({ commentId: c.id, author: c.author, tier, issueNumber }, 'Posted untrusted-answer explainer comment');
422
+ }
423
+ catch (error) {
424
+ logger.warn({ commentId: c.id, error: error instanceof Error ? error.message : String(error) }, 'Failed to post untrusted-answer explainer comment');
425
+ }
426
+ }
427
+ }
428
+ /**
429
+ * Fetch issue comments via GraphQL, retrying once on transient failure and
430
+ * failing closed on the second failure (FR-010, #910). No REST fallback —
431
+ * falling back would silently reproduce the pre-fix defect where
432
+ * App-identity clusters cannot self-recognize their own answers.
433
+ */
434
+ async function getIssueCommentsWithRetry(github, owner, repo, issueNumber, logger) {
435
+ try {
436
+ return await github.getIssueCommentsWithViewerAuth(owner, repo, issueNumber);
437
+ }
438
+ catch (firstErr) {
439
+ logger.warn({ error: firstErr instanceof Error ? firstErr.message : String(firstErr) }, 'getIssueCommentsWithViewerAuth failed; retrying once');
440
+ try {
441
+ return await github.getIssueCommentsWithViewerAuth(owner, repo, issueNumber);
442
+ }
443
+ catch (secondErr) {
444
+ logger.warn({ error: secondErr instanceof Error ? secondErr.message : String(secondErr) }, 'getIssueCommentsWithViewerAuth failed twice; failing closed (no REST fallback)');
445
+ throw secondErr;
446
+ }
447
+ }
448
+ }
284
449
  /**
285
450
  * Integrate clarification answers from GitHub issue comments into the local
286
451
  * clarifications.md file.
@@ -314,33 +479,107 @@ export async function integrateClarificationAnswers(context, logger) {
314
479
  return { integrated: 0, reason: 'no-pending' };
315
480
  }
316
481
  const pendingNumbers = pendingQuestions.map((q) => q.number);
317
- // 3. Fetch GitHub issue comments and parse answers
482
+ // 3. Fetch GitHub issue comments and parse answers.
483
+ // #910: switched from REST getIssueComments() to GraphQL
484
+ // getIssueCommentsWithViewerAuth() so App-identity clusters can
485
+ // self-recognize their own answer posts via `viewerDidAuthor`. Retry
486
+ // once on transient failure; fail closed on second failure (no REST
487
+ // fallback — FR-010).
318
488
  let comments;
319
489
  try {
320
- comments = await github.getIssueComments(owner, repo, issueNumber);
490
+ comments = await getIssueCommentsWithRetry(github, owner, repo, issueNumber, logger);
321
491
  }
322
492
  catch (error) {
323
493
  logger.warn({ error: error instanceof Error ? error.message : String(error) }, 'Failed to fetch issue comments for answer integration');
324
494
  return { integrated: 0, reason: 'no-answers' };
325
495
  }
326
- // Filter out comments that contain the clarification questions themselves.
327
- // Without this, parseAnswersFromComments matches Q patterns from the bot's
328
- // own questions comment (e.g., "### Q1: Topic") and treats the topic text
329
- // as an answer, causing the gate to incorrectly see all questions as answered.
330
- const answerComments = comments.filter((c) => !isQuestionComment(c.body));
331
- const answers = parseAnswersFromComments(answerComments, pendingNumbers);
496
+ // FR-102 / FR-103: filter engine-authored questions BEFORE the trust check.
497
+ // The trust filter must never receive an engine questions comment as input —
498
+ // under #910 the cluster's own identity is trusted, and the trust check
499
+ // would wave those through to the parser.
500
+ const scanCandidates = [];
501
+ for (const c of comments) {
502
+ const markerPrefix = matchClarificationQuestionMarker(c.body);
503
+ if (markerPrefix !== undefined) {
504
+ logger.debug({
505
+ event: 'clarification-answer-scanner-marker-excluded',
506
+ commentId: c.id,
507
+ author: c.author,
508
+ markerPrefix,
509
+ issueNumber,
510
+ }, 'Excluded from answer-scanner via question marker');
511
+ continue;
512
+ }
513
+ scanCandidates.push(c);
514
+ }
515
+ // 3a. Author-trust gating (#842). Every marker-cleared comment goes through
516
+ // the shared helper before we treat it as an answer source. Answer-scanner
517
+ // surface ignores widen-config (FR-008).
518
+ const botLogin = resolveBotLoginFromEnv();
519
+ const trustConfig = tryLoadCommentTrustConfig(checkoutPath, toEngineLogger(logger));
520
+ const trustCtx = {
521
+ logger: toEngineLogger(logger),
522
+ ...(botLogin ? { botLogin } : {}),
523
+ ...(trustConfig ? { config: trustConfig } : {}),
524
+ };
525
+ const trustedComments = [];
526
+ const skippedForExplainer = [];
527
+ for (const c of scanCandidates) {
528
+ const decision = isTrustedCommentAuthor(c, 'answer-scanner', trustCtx);
529
+ if (decision.trusted) {
530
+ trustedComments.push(c);
531
+ }
532
+ else {
533
+ logCommentSkipped(logger, 'answer-scanner', c, decision.reason);
534
+ // Only comments that would have been consumed as answers get an
535
+ // explainer bot comment (FR-013 / D7). Generic drive-bys are log-only.
536
+ if (commentMatchesAnswerPattern(c.body)) {
537
+ skippedForExplainer.push(c);
538
+ }
539
+ }
540
+ }
541
+ // FR-102 pre-filter has already dropped engine-authored questions comments;
542
+ // parseAnswersFromComments's FR-002 content sniff still catches unmarked
543
+ // question-shaped text as a second line of defense (FR-106).
544
+ const answerComments = trustedComments;
545
+ // Post explainer comments for untrusted Q<N>: answers, before parsing.
546
+ // Fire-and-forget: failures are non-fatal.
547
+ await postUntrustedAnswerExplainers({
548
+ github,
549
+ owner,
550
+ repo,
551
+ issueNumber,
552
+ existingComments: comments,
553
+ skipped: skippedForExplainer,
554
+ logger,
555
+ });
556
+ const answers = parseAnswersFromComments(answerComments, pendingNumbers, logger);
332
557
  if (answers.size === 0) {
333
558
  return { integrated: 0, reason: 'no-answers' };
334
559
  }
335
560
  // 4. Update the file content — replace *Pending* with actual answers
336
561
  // for each matched question
337
562
  let updatedContent = content;
338
- for (const [questionNum, answer] of answers) {
563
+ for (const [questionNum, parsed] of answers) {
339
564
  // Match the answer line within the correct question section.
340
565
  // The pattern finds ### Q{N}: ... **Answer**: *Pending* and replaces
341
566
  // the *Pending* part with the actual answer text.
342
567
  const pattern = new RegExp(`(### Q${questionNum}:[\\s\\S]*?\\*\\*Answer\\*\\*:\\s*)\\*Pending\\*`);
343
- updatedContent = updatedContent.replace(pattern, `$1${answer}`);
568
+ const previousContent = updatedContent;
569
+ updatedContent = updatedContent.replace(pattern, `$1${parsed.answer}`);
570
+ // FR-004: residual-race detector — if the transition actually happened
571
+ // (updatedContent changed) AND the source comment had `### Q<n>:` headings,
572
+ // warn. Both FR-001 and FR-002 let this comment through, so a matching
573
+ // structure here is a signal of an uncovered failure vector.
574
+ if (updatedContent !== previousContent && parsed.sourceHadQuestionHeadings) {
575
+ logger.warn({
576
+ code: 'TRANSITION_WITH_QUESTION_HEADINGS',
577
+ commentId: parsed.sourceCommentId,
578
+ issueNumber,
579
+ questionNumber: questionNum,
580
+ answer: parsed.answer.slice(0, 120),
581
+ }, 'Integrated answer from a comment containing question headings — possible bot self-answer');
582
+ }
344
583
  }
345
584
  if (updatedContent === content) {
346
585
  return { integrated: 0, reason: 'no-changes' };
@@ -386,6 +625,8 @@ export async function postClarifications(context, logger) {
386
625
  }
387
626
  // 4. Check for existing clarification comment (dedup)
388
627
  // Check both our own marker and the Claude CLI clarify phase marker
628
+ // #842 audit: whitelist — reads only for own-marker dedup; body content is
629
+ // not surfaced to an agent.
389
630
  const marker = clarificationMarker(issueNumber);
390
631
  const cliMarkerPrefix = '<!-- generacy-clarification:';
391
632
  const comments = await github.getIssueComments(owner, repo, issueNumber);
@@ -1 +1 @@
1
- {"version":3,"file":"clarification-poster.js","sourceRoot":"","sources":["../../src/worker/clarification-poster.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clarification-poster.js","sourceRoot":"","sources":["../../src/worker/clarification-poster.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
- import type { QueueItem } from '../types/index.js';
1
+ import type { QueueItem, PhaseTracker } from '../types/index.js';
2
2
  import type { ProcessFactory, Logger, JobEventEmitter } from './types.js';
3
3
  import type { WorkerConfig } from './config.js';
4
4
  import type { SSEEventEmitter } from './output-capture.js';
5
+ import type { WorkerResult } from './worker-result.js';
5
6
  /**
6
7
  * Default ProcessFactory that uses Node's child_process.spawn.
7
8
  */
@@ -16,6 +17,13 @@ export interface ClaudeCliWorkerDeps {
16
17
  jobEventEmitter?: JobEventEmitter;
17
18
  /** Token provider for GitHub operations in the orchestrator process (e.g. sibling fan-out) */
18
19
  tokenProvider?: () => Promise<string | undefined>;
20
+ /**
21
+ * Optional PhaseTracker injected by the worker-mode wiring for #892's
22
+ * ValidateFixHandler dedupe. Also used by the #849 paired-clear callback.
23
+ * When absent, ValidateFixHandler is not constructed and the fix-cycle
24
+ * behavior degrades to "same as today" (base-advance re-runs still occur).
25
+ */
26
+ phaseTracker?: PhaseTracker;
19
27
  }
20
28
  /**
21
29
  * Top-level worker class that composes all sub-components to process
@@ -39,6 +47,7 @@ export declare class ClaudeCliWorker {
39
47
  private readonly sseEmitter?;
40
48
  private readonly jobEventEmitter?;
41
49
  private readonly tokenProvider?;
50
+ private readonly phaseTracker?;
42
51
  private readonly repoCheckout;
43
52
  private readonly phaseResolver;
44
53
  private readonly agentLauncher;
@@ -56,7 +65,17 @@ export declare class ClaudeCliWorker {
56
65
  * - Creates a WorkerContext
57
66
  * - Resolves the starting phase from issue labels
58
67
  * - Runs the phase loop to completion (or gate/error)
68
+ *
69
+ * Returns a `WorkerResult` discriminated union:
70
+ * - `{ status: 'completed' }` — happy path (incl. gate hits and phase failures
71
+ * that self-terminated cleanly).
72
+ * - `{ status: 'failed-terminal', failureMetadata }` — a `TerminalLabelOpError`
73
+ * was caught inside the phase loop or the outer catch. The dispatcher marks
74
+ * the item completed (not released) and emits the `stage: 'label-op'` alert.
75
+ *
76
+ * All other unhandled throws propagate; the dispatcher catches them and
77
+ * releases the item (unchanged behavior for generic errors).
59
78
  */
60
- handle(item: QueueItem): Promise<void>;
79
+ handle(item: QueueItem): Promise<WorkerResult>;
61
80
  }
62
81
  //# sourceMappingURL=claude-cli-worker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude-cli-worker.d.ts","sourceRoot":"","sources":["../../src/worker/claude-cli-worker.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAiB,cAAc,EAAsB,MAAM,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7G,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAOhD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AA8C3D;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,cAiCnC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,mEAAmE;IACnE,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,8FAA8F;IAC9F,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACnD;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,eAAe;IAUxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAVzB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAkB;IAC9C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAkB;IACnD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAoC;IACnE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;gBAG3B,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,MAAM,EAC/B,IAAI,GAAE,mBAAwB;IAwDhC;;;;;;;;;;;;;OAaG;IACG,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;CAoc7C"}
1
+ {"version":3,"file":"claude-cli-worker.d.ts","sourceRoot":"","sources":["../../src/worker/claude-cli-worker.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,EAAiB,cAAc,EAAsB,MAAM,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAG7G,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAQhD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAgB3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAmCvD;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,cAiCnC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,mEAAmE;IACnE,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,8FAA8F;IAC9F,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAClD;;;;;OAKG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,eAAe;IAWxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAXzB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAkB;IAC9C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAkB;IACnD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAoC;IACnE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;gBAG3B,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,MAAM,EAC/B,IAAI,GAAE,mBAAwB;IAyDhC;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC;CAinBrD"}