@generacy-ai/orchestrator 0.8.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.
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +15 -0
- package/dist/config/loader.js.map +1 -1
- package/dist/config/schema.d.ts +30 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +13 -1
- package/dist/config/schema.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/routes/health.d.ts +7 -0
- package/dist/routes/health.d.ts.map +1 -1
- package/dist/routes/health.js +5 -0
- package/dist/routes/health.js.map +1 -1
- package/dist/routes/internal-relay-events.d.ts +2 -2
- package/dist/routes/internal-relay-events.d.ts.map +1 -1
- package/dist/routes/internal-relay-events.js +12 -0
- package/dist/routes/internal-relay-events.js.map +1 -1
- package/dist/routes/retained-tunnel-event.d.ts +20 -0
- package/dist/routes/retained-tunnel-event.d.ts.map +1 -0
- package/dist/routes/retained-tunnel-event.js +67 -0
- package/dist/routes/retained-tunnel-event.js.map +1 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +168 -27
- package/dist/server.js.map +1 -1
- package/dist/services/adaptive-poll-controller.d.ts +75 -0
- package/dist/services/adaptive-poll-controller.d.ts.map +1 -0
- package/dist/services/adaptive-poll-controller.js +96 -0
- package/dist/services/adaptive-poll-controller.js.map +1 -0
- package/dist/services/clarification-answer-monitor-service.d.ts +71 -0
- package/dist/services/clarification-answer-monitor-service.d.ts.map +1 -0
- package/dist/services/clarification-answer-monitor-service.js +366 -0
- package/dist/services/clarification-answer-monitor-service.js.map +1 -0
- package/dist/services/failure-fingerprint-tracker.d.ts +28 -0
- package/dist/services/failure-fingerprint-tracker.d.ts.map +1 -0
- package/dist/services/failure-fingerprint-tracker.js +38 -0
- package/dist/services/failure-fingerprint-tracker.js.map +1 -0
- package/dist/services/index.d.ts +1 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +3 -0
- package/dist/services/index.js.map +1 -1
- package/dist/services/label-monitor-service.d.ts +2 -2
- package/dist/services/label-monitor-service.d.ts.map +1 -1
- package/dist/services/label-monitor-service.js +33 -16
- package/dist/services/label-monitor-service.js.map +1 -1
- package/dist/services/merge-conflict-monitor-service.d.ts +1 -1
- package/dist/services/merge-conflict-monitor-service.d.ts.map +1 -1
- package/dist/services/merge-conflict-monitor-service.js +33 -13
- package/dist/services/merge-conflict-monitor-service.js.map +1 -1
- package/dist/services/pr-feedback-monitor-service.d.ts +1 -1
- package/dist/services/pr-feedback-monitor-service.d.ts.map +1 -1
- package/dist/services/pr-feedback-monitor-service.js +33 -16
- package/dist/services/pr-feedback-monitor-service.js.map +1 -1
- package/dist/services/relay-bridge.d.ts +1 -0
- package/dist/services/relay-bridge.d.ts.map +1 -1
- package/dist/services/relay-bridge.js +21 -0
- package/dist/services/relay-bridge.js.map +1 -1
- package/dist/services/smee-channel-resolver.d.ts +60 -0
- package/dist/services/smee-channel-resolver.d.ts.map +1 -0
- package/dist/services/smee-channel-resolver.js +177 -0
- package/dist/services/smee-channel-resolver.js.map +1 -0
- package/dist/services/webhook-setup-service.d.ts +115 -111
- package/dist/services/webhook-setup-service.d.ts.map +1 -1
- package/dist/services/webhook-setup-service.js +377 -209
- package/dist/services/webhook-setup-service.js.map +1 -1
- package/dist/types/api.d.ts +3 -0
- package/dist/types/api.d.ts.map +1 -1
- package/dist/types/api.js +1 -0
- package/dist/types/api.js.map +1 -1
- package/dist/types/monitor.d.ts +15 -2
- package/dist/types/monitor.d.ts.map +1 -1
- package/dist/worker/clarification-markers.d.ts +62 -0
- package/dist/worker/clarification-markers.d.ts.map +1 -1
- package/dist/worker/clarification-markers.js +101 -0
- package/dist/worker/clarification-markers.js.map +1 -1
- package/dist/worker/clarification-poster.d.ts +102 -6
- package/dist/worker/clarification-poster.d.ts.map +1 -1
- package/dist/worker/clarification-poster.js +299 -89
- package/dist/worker/clarification-poster.js.map +1 -1
- package/dist/worker/claude-cli-worker.d.ts +7 -0
- package/dist/worker/claude-cli-worker.d.ts.map +1 -1
- package/dist/worker/claude-cli-worker.js +3 -0
- package/dist/worker/claude-cli-worker.js.map +1 -1
- package/dist/worker/failure-fingerprint.d.ts +41 -0
- package/dist/worker/failure-fingerprint.d.ts.map +1 -0
- package/dist/worker/failure-fingerprint.js +75 -0
- package/dist/worker/failure-fingerprint.js.map +1 -0
- package/dist/worker/label-manager.d.ts +42 -0
- package/dist/worker/label-manager.d.ts.map +1 -1
- package/dist/worker/label-manager.js +108 -4
- package/dist/worker/label-manager.js.map +1 -1
- package/dist/worker/phase-loop.d.ts +30 -0
- package/dist/worker/phase-loop.d.ts.map +1 -1
- package/dist/worker/phase-loop.js +124 -26
- package/dist/worker/phase-loop.js.map +1 -1
- package/dist/worker/pr-feedback-handler.d.ts +13 -0
- package/dist/worker/pr-feedback-handler.d.ts.map +1 -1
- package/dist/worker/pr-feedback-handler.js +48 -0
- package/dist/worker/pr-feedback-handler.js.map +1 -1
- package/dist/worker/stage-comment-manager.d.ts +5 -0
- package/dist/worker/stage-comment-manager.d.ts.map +1 -1
- package/dist/worker/stage-comment-manager.js +8 -1
- package/dist/worker/stage-comment-manager.js.map +1 -1
- package/dist/worker/terminal-label-op-error.d.ts +1 -1
- package/dist/worker/terminal-label-op-error.d.ts.map +1 -1
- package/dist/worker/terminal-label-op-error.js.map +1 -1
- package/dist/worker/types.d.ts +31 -0
- package/dist/worker/types.d.ts.map +1 -1
- package/dist/worker/types.js +11 -0
- package/dist/worker/types.js.map +1 -1
- package/package.json +5 -5
|
@@ -8,8 +8,41 @@
|
|
|
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,
|
|
11
|
+
import { isTrustedCommentAuthor, tryLoadCommentTrustConfig, PENDING_ANSWER_LITERAL, isPendingAnswerValue, } from '@generacy-ai/workflow-engine';
|
|
12
|
+
import { commentCarriesQuestionMarker, matchMachineMarker, } from './clarification-markers.js';
|
|
13
|
+
/**
|
|
14
|
+
* #958 FR-005 / FR-006 — pre-parse pass over a comment body that drops every
|
|
15
|
+
* line whose first non-EOL character is `>` (the column-0 quote rule already
|
|
16
|
+
* codified for markers in `clarification-markers.ts`).
|
|
17
|
+
*
|
|
18
|
+
* Returns `stripped` — the body with all quoted lines filtered out — plus a
|
|
19
|
+
* `headBeforeFirstQuote` slice preserved for FR-006 diagnostics. The parser
|
|
20
|
+
* runs against `stripped` so:
|
|
21
|
+
* - a quoted `> ### Q2: …` cannot bleed into Q1's capture (FR-005), AND
|
|
22
|
+
* - a valid trailing `Q2: …` sitting after a quoted block still integrates
|
|
23
|
+
* (a naive "cut at first quote" would discard it — spec §Observed B row 2).
|
|
24
|
+
*
|
|
25
|
+
* The `> `-prefix predicate is the same one `clarification-markers.ts` uses
|
|
26
|
+
* for column-0 marker matching — a leading tab / space disqualifies. Blank
|
|
27
|
+
* lines (`>` followed by nothing) also drop.
|
|
28
|
+
*/
|
|
29
|
+
export function stripQuotedLines(body) {
|
|
30
|
+
const lines = body.split('\n');
|
|
31
|
+
const nonQuoted = lines.filter((line) => !line.startsWith('>'));
|
|
32
|
+
const firstQuotedIdx = lines.findIndex((line) => line.startsWith('>'));
|
|
33
|
+
const headBeforeFirstQuote = firstQuotedIdx === -1 ? body : lines.slice(0, firstQuotedIdx).join('\n');
|
|
34
|
+
return {
|
|
35
|
+
stripped: nonQuoted.join('\n'),
|
|
36
|
+
headBeforeFirstQuote,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Regex escape helper for building the write-back pattern with a shared
|
|
41
|
+
* literal — `PENDING_ANSWER_LITERAL` contains `*` metacharacters.
|
|
42
|
+
*/
|
|
43
|
+
function escapeRegExp(s) {
|
|
44
|
+
return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
45
|
+
}
|
|
13
46
|
/**
|
|
14
47
|
* Resolve cluster bot login from env vars (identity.ts chain). The
|
|
15
48
|
* `gh api /user` fallback is intentionally skipped here — it fails on
|
|
@@ -73,14 +106,71 @@ const UNTRUSTED_ANSWER_MARKER_PREFIX = '<!-- generacy-untrusted-answer:';
|
|
|
73
106
|
function untrustedAnswerMarker(commentId) {
|
|
74
107
|
return `${UNTRUSTED_ANSWER_MARKER_PREFIX}${commentId} -->`;
|
|
75
108
|
}
|
|
109
|
+
/**
|
|
110
|
+
* Shared opener fragment for a `Q<n>` clarification-answer block (#949).
|
|
111
|
+
*
|
|
112
|
+
* Composes into three sites, all in this file:
|
|
113
|
+
* 1. The outer regex opener in `parseAnswersFromComments`.
|
|
114
|
+
* 2. The outer regex terminator lookahead in `parseAnswersFromComments`
|
|
115
|
+
* (via `QN_TERMINATOR_LOOKAHEAD`) — MUST stay in lockstep with (1)
|
|
116
|
+
* or multi-question cockpit bodies open exactly one block (Q1's lazy
|
|
117
|
+
* `(.*?)` swallows Q2..Qn to EOF).
|
|
118
|
+
* 3. `commentMatchesAnswerPattern` (via `QN_OPENER_PATTERN_NONCAPTURING`)
|
|
119
|
+
* — used by the FR-013 untrusted-author explainer gate.
|
|
120
|
+
*
|
|
121
|
+
* DELIBERATELY NOT USED by `sourceHadQuestionHeadings` — that discriminator
|
|
122
|
+
* requires a colon after `Q<n>` because it separates engine-authored
|
|
123
|
+
* question comments from cockpit answer delimiters (see comment at that
|
|
124
|
+
* site).
|
|
125
|
+
*
|
|
126
|
+
* Grammar accepted (line-anchored via `(?:^|\n)`):
|
|
127
|
+
* [heading] [**]Q<n>[**] (colon-less — heading REQUIRED)
|
|
128
|
+
* [heading] [**]Q<n>[**]: (colon — heading optional; bare Q<n>: OK)
|
|
129
|
+
*
|
|
130
|
+
* Trailing captures use `[^\n]*` (not `.*`) so the opener does not devour
|
|
131
|
+
* body content across newlines under the outer regex's `s` flag.
|
|
132
|
+
*
|
|
133
|
+
* Two arms of the disjunction produce four capture groups:
|
|
134
|
+
* [1] Q number (colon-less arm)
|
|
135
|
+
* [2] topic/trailing (colon-less arm)
|
|
136
|
+
* [3] Q number (colon-bearing arm)
|
|
137
|
+
* [4] answer/trailing (colon-bearing arm)
|
|
138
|
+
* Consumers use `pickQnMatch()` to resolve to a single `{ qn, trailing }`.
|
|
139
|
+
*/
|
|
140
|
+
const QN_OPENER_PATTERN = '(?:^|\\n)(?:(?:#{1,6}\\s+(?:\\*\\*)?Q(\\d+)(?:\\*\\*)?(?::\\s*([^\\n]*))?)|(?:(?:\\*\\*)?Q(\\d+)(?:\\*\\*)?:\\s*([^\\n]*)))';
|
|
141
|
+
/**
|
|
142
|
+
* Non-capturing variant of `QN_OPENER_PATTERN` for boolean predicates.
|
|
143
|
+
* Every `(\d+)` numeric-capture replaced with `(?:\d+)` and every
|
|
144
|
+
* `([^\n]*)` trailing capture replaced with `(?:[^\n]*)`.
|
|
145
|
+
*/
|
|
146
|
+
const QN_OPENER_PATTERN_NONCAPTURING = '(?:^|\\n)(?:(?:#{1,6}\\s+(?:\\*\\*)?Q(?:\\d+)(?:\\*\\*)?(?::\\s*(?:[^\\n]*))?)|(?:(?:\\*\\*)?Q(?:\\d+)(?:\\*\\*)?:\\s*(?:[^\\n]*)))';
|
|
147
|
+
/**
|
|
148
|
+
* Block terminator lookahead used by the outer regex in
|
|
149
|
+
* `parseAnswersFromComments`. Requires a leading `\n` (no `^` alternation)
|
|
150
|
+
* so it cannot re-anchor mid-line inside a captured body.
|
|
151
|
+
*
|
|
152
|
+
* Coupling invariant: MUST accept the same set of next-opener shapes that
|
|
153
|
+
* `QN_OPENER_PATTERN` accepts as openers. Widen this in exact lockstep
|
|
154
|
+
* with the opener or multi-question bodies silently open one block.
|
|
155
|
+
*/
|
|
156
|
+
const QN_TERMINATOR_LOOKAHEAD = '(?=(?:\\n(?:(?:#{1,6}\\s+(?:\\*\\*)?Q\\d+(?:\\*\\*)?(?::[^\\n]*)?)|(?:(?:\\*\\*)?Q\\d+(?:\\*\\*)?:[^\\n]*)))|$)';
|
|
157
|
+
/**
|
|
158
|
+
* Resolve `{ qn, trailing }` from the two disjunction arms of
|
|
159
|
+
* `QN_OPENER_PATTERN`. Exactly one arm matches per opener occurrence.
|
|
160
|
+
*/
|
|
161
|
+
function pickQnMatch(m) {
|
|
162
|
+
const num = m[1] ?? m[3];
|
|
163
|
+
const trail = m[2] ?? m[4] ?? '';
|
|
164
|
+
return { qn: parseInt(num, 10), trailing: trail };
|
|
165
|
+
}
|
|
76
166
|
/**
|
|
77
167
|
* Detect whether a comment body matches the `Q<N>:` answer pattern that
|
|
78
168
|
* `parseAnswersFromComments` would attempt to consume. Used to decide
|
|
79
169
|
* whether an untrusted-comment skip warrants an explainer bot comment
|
|
80
170
|
* (matched) or log-only treatment (unmatched, generic drive-by).
|
|
81
171
|
*/
|
|
82
|
-
function commentMatchesAnswerPattern(body) {
|
|
83
|
-
return
|
|
172
|
+
export function commentMatchesAnswerPattern(body) {
|
|
173
|
+
return new RegExp(QN_OPENER_PATTERN_NONCAPTURING).test(body);
|
|
84
174
|
}
|
|
85
175
|
// ---------------------------------------------------------------------------
|
|
86
176
|
// Helpers
|
|
@@ -186,7 +276,7 @@ export function isQuestionComment(body) {
|
|
|
186
276
|
* **Question**: ...
|
|
187
277
|
* **Options**: (optional)
|
|
188
278
|
* - A) ...
|
|
189
|
-
* **Answer**:
|
|
279
|
+
* **Answer**: PENDING_ANSWER_LITERAL
|
|
190
280
|
* ```
|
|
191
281
|
*/
|
|
192
282
|
export function parseClarifications(content) {
|
|
@@ -207,25 +297,37 @@ export function parseClarifications(content) {
|
|
|
207
297
|
// Extract question
|
|
208
298
|
const questionMatch = section.match(/\*\*Question\*\*:\s*(.+?)(?=\n\*\*|\n###|$)/s);
|
|
209
299
|
const question = questionMatch ? questionMatch[1].trim() : '';
|
|
210
|
-
// Extract options
|
|
211
|
-
|
|
300
|
+
// Extract options. The block runs to the next `**Field**:` line, `###`
|
|
301
|
+
// heading, or EOF — the same delimiters Context and Question use above.
|
|
302
|
+
// An option's description may hard-wrap or carry indented sub-bullets;
|
|
303
|
+
// such continuation lines belong to the option above them. Matching only
|
|
304
|
+
// consecutive `- ` lines would end the block at the first continuation,
|
|
305
|
+
// truncating that option mid-sentence and dropping every option after it.
|
|
306
|
+
const optionsMatch = section.match(/\*\*Options\*\*:\s*\n([\s\S]+?)(?=\n\*\*|\n###|$)/);
|
|
212
307
|
let options;
|
|
213
308
|
if (optionsMatch) {
|
|
214
309
|
options = [];
|
|
215
|
-
const
|
|
216
|
-
|
|
217
|
-
const optMatch = line.match(/^- ([A-Z])[):]\s*(.+)$/);
|
|
310
|
+
for (const line of optionsMatch[1].trim().split('\n')) {
|
|
311
|
+
const optMatch = line.match(/^- ([A-Z])[):]\s*(.*)$/);
|
|
218
312
|
if (optMatch) {
|
|
219
|
-
options.push({ label: optMatch[1], description: optMatch[2]
|
|
313
|
+
options.push({ label: optMatch[1], description: optMatch[2] });
|
|
314
|
+
}
|
|
315
|
+
else if (options.length > 0) {
|
|
316
|
+
options[options.length - 1].description += `\n${line}`;
|
|
220
317
|
}
|
|
221
318
|
}
|
|
319
|
+
for (const opt of options)
|
|
320
|
+
opt.description = opt.description.trim();
|
|
321
|
+
options = options.filter((opt) => opt.description !== '');
|
|
222
322
|
if (options.length === 0)
|
|
223
323
|
options = undefined;
|
|
224
324
|
}
|
|
225
|
-
// Check answer status
|
|
325
|
+
// Check answer status. Empty / whitespace-only / any `[…]`-bracketed
|
|
326
|
+
// placeholder / literal PENDING_ANSWER_LITERAL all read as "not
|
|
327
|
+
// answered" (FR-012).
|
|
226
328
|
const answerMatch = section.match(/\*\*Answer\*\*:\s*(.+)/);
|
|
227
329
|
const answerText = answerMatch ? answerMatch[1].trim() : '';
|
|
228
|
-
const answered = !!answerText && answerText
|
|
330
|
+
const answered = !!answerText && !isPendingAnswerValue(answerText);
|
|
229
331
|
const q = {
|
|
230
332
|
number,
|
|
231
333
|
topic,
|
|
@@ -290,26 +392,40 @@ export function formatComment(questions, issueNumber) {
|
|
|
290
392
|
// hasPendingClarifications
|
|
291
393
|
// ---------------------------------------------------------------------------
|
|
292
394
|
/**
|
|
293
|
-
* Check whether the clarify phase produced pending questions.
|
|
395
|
+
* #958 FR-007 — Check whether the clarify phase produced pending questions.
|
|
396
|
+
*
|
|
397
|
+
* Fail-closed contract: unknown states pause on a human gate. The three
|
|
398
|
+
* unknown branches all return `true`:
|
|
399
|
+
* - missing spec directory
|
|
400
|
+
* - `readFileSync` throws (unreadable / permission / I/O)
|
|
401
|
+
* - non-empty file content with zero parsed questions (parse failure)
|
|
294
402
|
*
|
|
295
|
-
*
|
|
296
|
-
*
|
|
297
|
-
*
|
|
403
|
+
* Legit empty file (`content.trim() === ''`) is the ONE branch that returns
|
|
404
|
+
* `false`: a `clarifications.md` file with no questions at all is a valid
|
|
405
|
+
* post-clarify state.
|
|
406
|
+
*
|
|
407
|
+
* Returns `true` when at least one parsed question is unanswered.
|
|
298
408
|
*/
|
|
299
409
|
export function hasPendingClarifications(checkoutPath, issueNumber) {
|
|
300
410
|
const specsDir = join(checkoutPath, 'specs');
|
|
301
411
|
const specDir = findSpecDir(specsDir, issueNumber);
|
|
302
412
|
if (!specDir)
|
|
303
|
-
return
|
|
413
|
+
return true;
|
|
304
414
|
const clarificationsPath = join(specsDir, specDir, 'clarifications.md');
|
|
305
415
|
let content;
|
|
306
416
|
try {
|
|
307
417
|
content = readFileSync(clarificationsPath, 'utf-8');
|
|
308
418
|
}
|
|
309
419
|
catch {
|
|
310
|
-
return
|
|
420
|
+
return true;
|
|
311
421
|
}
|
|
422
|
+
// Legit empty file — no questions is a valid resolved state.
|
|
423
|
+
if (content.trim() === '')
|
|
424
|
+
return false;
|
|
312
425
|
const questions = parseClarifications(content);
|
|
426
|
+
// Non-empty content that parsed to zero questions ⇒ parse failure; pause.
|
|
427
|
+
if (questions.length === 0)
|
|
428
|
+
return true;
|
|
313
429
|
return questions.some((q) => !q.answered);
|
|
314
430
|
}
|
|
315
431
|
// ---------------------------------------------------------------------------
|
|
@@ -323,13 +439,26 @@ export function hasPendingClarifications(checkoutPath, issueNumber) {
|
|
|
323
439
|
* `**Answer: value**` or `**Answer**: value` line and returns the answer
|
|
324
440
|
* portion. Returns `undefined` if no embedded answer is found.
|
|
325
441
|
*/
|
|
326
|
-
function extractEmbeddedAnswer(text) {
|
|
327
|
-
// Format: **Answer
|
|
442
|
+
export function extractEmbeddedAnswer(text) {
|
|
443
|
+
// Format: **Answer:** value (#949 — cockpit dialect; colon INSIDE bold).
|
|
444
|
+
// Placed BEFORE m1/m2 because `**Answer:**` is strictly more specific
|
|
445
|
+
// than `**Answer: ...**` — the `\*\*` right after the colon disambiguates.
|
|
446
|
+
const m0 = text.match(/\*\*Answer:\*\*\s*(.+?)$/m);
|
|
447
|
+
if (m0) {
|
|
448
|
+
let answer = m0[1].trim();
|
|
449
|
+
// Q1→B: if a `**Rationale:** …` line follows inside the same captured
|
|
450
|
+
// block, join it onto the answer so clarifications.md preserves the *why*.
|
|
451
|
+
const r = text.match(/\n\*\*Rationale:\*\*\s*(.+?)$/m);
|
|
452
|
+
if (r)
|
|
453
|
+
answer = `${answer}\nRationale: ${r[1].trim()}`;
|
|
454
|
+
return answer;
|
|
455
|
+
}
|
|
456
|
+
// Format: **Answer: value** with optional trailing text (engine dialect)
|
|
328
457
|
const m1 = text.match(/\*\*Answer:\s*(.+?)\*\*(.*)$/m);
|
|
329
458
|
if (m1) {
|
|
330
459
|
return (m1[1] + m1[2]).trim();
|
|
331
460
|
}
|
|
332
|
-
// Format: **Answer**: value
|
|
461
|
+
// Format: **Answer**: value (engine dialect — colon OUTSIDE bold)
|
|
333
462
|
const m2 = text.match(/\*\*Answer\*\*:\s*(.+)$/m);
|
|
334
463
|
if (m2) {
|
|
335
464
|
return m2[1].trim();
|
|
@@ -337,60 +466,84 @@ function extractEmbeddedAnswer(text) {
|
|
|
337
466
|
return undefined;
|
|
338
467
|
}
|
|
339
468
|
/**
|
|
340
|
-
* Parse answers from GitHub issue comments.
|
|
469
|
+
* #958 — Parse answers from GitHub issue comments.
|
|
341
470
|
*
|
|
342
|
-
*
|
|
343
|
-
*
|
|
344
|
-
*
|
|
471
|
+
* Two properties this function guarantees over the pre-#958 version:
|
|
472
|
+
* 1. **FR-005 quote-stripping**: each comment body is split at the first
|
|
473
|
+
* `>`-prefixed line via `stripQuotedLines()`. Only the head (before the
|
|
474
|
+
* first quoted line) is parsed for `Q<n>:` answers. A quoted
|
|
475
|
+
* `> ### Q2: …` cannot bleed into Q1's capture, and a trailing quoted
|
|
476
|
+
* `> **Question**: …` cannot discard a valid leading answer (FR-006).
|
|
477
|
+
* 2. **Bounding on quoted headers**: the regex terminator also matches a
|
|
478
|
+
* `> `-quoted `Q<n>:` line so any residual quoted question in the head
|
|
479
|
+
* acts as a boundary (belt-and-suspenders after quote-stripping).
|
|
345
480
|
*
|
|
346
|
-
*
|
|
347
|
-
*
|
|
348
|
-
* - Heading: `### Q1: Topic\n**Answer: B** — explanation`
|
|
481
|
+
* Note: the L488 `.includes('**Question**:')` sniff is deleted. Authorship
|
|
482
|
+
* is decided by `viewerDidAuthor` in the caller (FR-001).
|
|
349
483
|
*
|
|
350
|
-
*
|
|
351
|
-
*
|
|
484
|
+
* Supports two answer formats:
|
|
485
|
+
* - Simple: `Q1: answer text`
|
|
486
|
+
* - Heading: `### Q1: Topic\n**Answer: B** — explanation`
|
|
352
487
|
*/
|
|
353
|
-
function parseAnswersFromComments(comments, questionNumbers,
|
|
488
|
+
export function parseAnswersFromComments(comments, questionNumbers, _logger) {
|
|
354
489
|
const answers = new Map();
|
|
355
490
|
for (const comment of comments) {
|
|
356
|
-
|
|
357
|
-
//
|
|
358
|
-
//
|
|
359
|
-
const
|
|
491
|
+
// FR-005/FR-006 (#958): drop every `> `-quoted line, then parse the
|
|
492
|
+
// surviving body. Quoted `> ### Q<n>:` cannot bleed into a prior capture;
|
|
493
|
+
// a valid `Q<n>:` sitting after a quoted block still integrates.
|
|
494
|
+
const { stripped } = stripQuotedLines(comment.body);
|
|
495
|
+
const body = stripped;
|
|
496
|
+
// FR-004 discriminator (#949 Q5→C): the colon here is DELIBERATE and
|
|
497
|
+
// load-bearing. It separates engine-authored question comments (which
|
|
498
|
+
// use `### Q1: Topic` shape, per `formatComment` above) from cockpit
|
|
499
|
+
// answer-block delimiters (which use `### Q1` — NO colon). Removing the
|
|
500
|
+
// colon or folding this pattern into `QN_OPENER_PATTERN` would cause the
|
|
501
|
+
// `TRANSITION_WITH_QUESTION_HEADINGS` warn (in the caller) to fire on
|
|
502
|
+
// every legitimate cockpit integration — a 100%-rate false positive.
|
|
503
|
+
// Keep colon-required. Computed on the quote-stripped body so a quoted
|
|
504
|
+
// `> ### Q1:` heading does not read as a live transition signal.
|
|
505
|
+
const sourceHadQuestionHeadings = /(?:^|\n)###\s+Q\d+:/.test(body);
|
|
506
|
+
// FR-005: opener is line-anchored via `(?:^|\n)` inside QN_OPENER_PATTERN
|
|
507
|
+
// so mid-prose references like "as per Q1: yes" do not capture as
|
|
508
|
+
// answers. Colon-less opener additionally requires a markdown heading
|
|
509
|
+
// (per #949 Q2→A) so a bare `Q1\n…` cannot open a block; this is what
|
|
510
|
+
// lets cockpit's `### Q1` answer blocks integrate.
|
|
511
|
+
//
|
|
512
|
+
// Capture-group layout (from QN_OPENER_PATTERN's two disjunction arms
|
|
513
|
+
// plus the outer body `(.*?)`):
|
|
514
|
+
// [1] Q number (colon-less arm)
|
|
515
|
+
// [2] topic/trailing (colon-less arm)
|
|
516
|
+
// [3] Q number (colon-bearing arm)
|
|
517
|
+
// [4] answer/trailing (colon-bearing arm)
|
|
518
|
+
// [5] block body between opener and terminator
|
|
519
|
+
const regex = new RegExp(`${QN_OPENER_PATTERN}(.*?)${QN_TERMINATOR_LOOKAHEAD}`, 'gs');
|
|
360
520
|
let match;
|
|
361
|
-
while ((match = regex.exec(
|
|
362
|
-
const
|
|
363
|
-
|
|
364
|
-
if (!numStr || answerStr === undefined)
|
|
521
|
+
while ((match = regex.exec(body)) !== null) {
|
|
522
|
+
const { qn, trailing } = pickQnMatch(match);
|
|
523
|
+
if (Number.isNaN(qn))
|
|
365
524
|
continue;
|
|
366
|
-
const
|
|
367
|
-
|
|
368
|
-
//
|
|
369
|
-
//
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
//
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
excerpt: answer.slice(0, 120),
|
|
385
|
-
}, 'Skipped suspicious clarification answer (contains question-side markup)');
|
|
386
|
-
continue;
|
|
387
|
-
}
|
|
388
|
-
// Skip placeholder text that is not a real answer
|
|
389
|
-
if (answer && answer !== '*Pending*' && questionNumbers.includes(questionNumber)) {
|
|
390
|
-
answers.set(questionNumber, {
|
|
525
|
+
const bodyText = match[5] ?? '';
|
|
526
|
+
// Combine the opener's trailing (topic/answer on the opener line) with
|
|
527
|
+
// the body (subsequent lines up to the terminator). This mirrors the
|
|
528
|
+
// old single `.*?` capture semantics for downstream extraction.
|
|
529
|
+
const combined = trailing + bodyText;
|
|
530
|
+
// #958 FR-001: the `**Question**:`/`**Context**:` content-sniff is
|
|
531
|
+
// deliberately NOT applied here. Authorship (viewerDidAuthor) is the
|
|
532
|
+
// gate, decided in the caller — not the content of the comment.
|
|
533
|
+
// Prefer an embedded `**Answer**` extraction (cockpit or engine
|
|
534
|
+
// dialect) over the raw trimmed block. For a bare `Q1: X` shape,
|
|
535
|
+
// extraction returns undefined and we fall through to `combined.trim()`.
|
|
536
|
+
const embedded = extractEmbeddedAnswer(combined);
|
|
537
|
+
const answer = embedded ?? combined.trim();
|
|
538
|
+
// FR-012 (#958): broadened pending tolerance — empty, whitespace-only,
|
|
539
|
+
// the canonical PENDING_ANSWER_LITERAL, and any `[…]`-bracketed
|
|
540
|
+
// placeholder are all treated as not-an-answer.
|
|
541
|
+
if (!isPendingAnswerValue(answer) && questionNumbers.includes(qn)) {
|
|
542
|
+
answers.set(qn, {
|
|
391
543
|
answer,
|
|
392
544
|
sourceCommentId: comment.id,
|
|
393
545
|
sourceHadQuestionHeadings,
|
|
546
|
+
sourceViewerDidAuthor: comment.viewerDidAuthor,
|
|
394
547
|
});
|
|
395
548
|
}
|
|
396
549
|
}
|
|
@@ -499,7 +652,7 @@ export async function integrateClarificationAnswers(context, logger) {
|
|
|
499
652
|
// would wave those through to the parser.
|
|
500
653
|
const scanCandidates = [];
|
|
501
654
|
for (const c of comments) {
|
|
502
|
-
const markerPrefix =
|
|
655
|
+
const markerPrefix = matchMachineMarker(c.body);
|
|
503
656
|
if (markerPrefix !== undefined) {
|
|
504
657
|
logger.debug({
|
|
505
658
|
event: 'clarification-answer-scanner-marker-excluded',
|
|
@@ -507,7 +660,7 @@ export async function integrateClarificationAnswers(context, logger) {
|
|
|
507
660
|
author: c.author,
|
|
508
661
|
markerPrefix,
|
|
509
662
|
issueNumber,
|
|
510
|
-
}, 'Excluded from answer-scanner via
|
|
663
|
+
}, 'Excluded from answer-scanner via machine marker');
|
|
511
664
|
continue;
|
|
512
665
|
}
|
|
513
666
|
scanCandidates.push(c);
|
|
@@ -538,10 +691,6 @@ export async function integrateClarificationAnswers(context, logger) {
|
|
|
538
691
|
}
|
|
539
692
|
}
|
|
540
693
|
}
|
|
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
694
|
// Post explainer comments for untrusted Q<N>: answers, before parsing.
|
|
546
695
|
// Fire-and-forget: failures are non-fatal.
|
|
547
696
|
await postUntrustedAnswerExplainers({
|
|
@@ -553,40 +702,101 @@ export async function integrateClarificationAnswers(context, logger) {
|
|
|
553
702
|
skipped: skippedForExplainer,
|
|
554
703
|
logger,
|
|
555
704
|
});
|
|
705
|
+
// #976 — every trusted, marker-free comment is a candidate answer,
|
|
706
|
+
// regardless of viewerDidAuthor. Same-account trust is delegated to
|
|
707
|
+
// `isTrustedCommentAuthor` (self-authored → trusted per comment-trust.ts).
|
|
708
|
+
// FR-004 asymmetric fail-close on `sourceHadQuestionHeadings` still keys
|
|
709
|
+
// off per-answer `sourceViewerDidAuthor` (a shape-check, not identity).
|
|
710
|
+
const answerComments = trustedComments;
|
|
556
711
|
const answers = parseAnswersFromComments(answerComments, pendingNumbers, logger);
|
|
557
712
|
if (answers.size === 0) {
|
|
558
713
|
return { integrated: 0, reason: 'no-answers' };
|
|
559
714
|
}
|
|
560
|
-
// 4. Update the file content — replace
|
|
561
|
-
// for each matched question
|
|
715
|
+
// 4. Update the file content — replace `PENDING_ANSWER_LITERAL` with actual
|
|
716
|
+
// answers for each matched question. FR-004 asymmetric fail-close: if a
|
|
717
|
+
// cluster-self answer trips `TRANSITION_WITH_QUESTION_HEADINGS`, abort
|
|
718
|
+
// the entire poll's integration; if a human comment trips it, skip only
|
|
719
|
+
// the offending question.
|
|
562
720
|
let updatedContent = content;
|
|
721
|
+
const integratedNumbers = new Set();
|
|
722
|
+
const parseFailures = [];
|
|
563
723
|
for (const [questionNum, parsed] of answers) {
|
|
564
|
-
//
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
724
|
+
// Detect FR-004 case: source comment carried `### Q<n>:` headings.
|
|
725
|
+
if (parsed.sourceHadQuestionHeadings) {
|
|
726
|
+
if (parsed.sourceViewerDidAuthor === true) {
|
|
727
|
+
// Cluster-self AND question-headings — unknown-extent malfunction.
|
|
728
|
+
// Abort the entire poll's integration; leave the gate armed.
|
|
729
|
+
logger.warn({
|
|
730
|
+
code: 'TRANSITION_WITH_QUESTION_HEADINGS',
|
|
731
|
+
commentId: parsed.sourceCommentId,
|
|
732
|
+
issueNumber,
|
|
733
|
+
questionNumber: questionNum,
|
|
734
|
+
excerpt: parsed.answer.slice(0, 120),
|
|
735
|
+
}, 'Cluster-self answer contains question headings — aborting integration (FR-004 fail-closed)');
|
|
736
|
+
return {
|
|
737
|
+
integrated: 0,
|
|
738
|
+
reason: 'aborted-cluster-self-detector',
|
|
739
|
+
pendingAfter: pendingQuestions.length,
|
|
740
|
+
};
|
|
741
|
+
}
|
|
742
|
+
// Human comment tripped it — skip only this question, keep others.
|
|
575
743
|
logger.warn({
|
|
576
744
|
code: 'TRANSITION_WITH_QUESTION_HEADINGS',
|
|
577
745
|
commentId: parsed.sourceCommentId,
|
|
578
746
|
issueNumber,
|
|
579
747
|
questionNumber: questionNum,
|
|
580
|
-
|
|
581
|
-
}, '
|
|
748
|
+
excerpt: parsed.answer.slice(0, 120),
|
|
749
|
+
}, 'Human answer contains question headings — skipping only this question (FR-004)');
|
|
750
|
+
parseFailures.push({
|
|
751
|
+
questionNumber: questionNum,
|
|
752
|
+
reason: 'transition-with-question-headings',
|
|
753
|
+
});
|
|
754
|
+
continue;
|
|
755
|
+
}
|
|
756
|
+
// Match the answer line within the correct question section. The pattern
|
|
757
|
+
// finds `### Q{N}: ... **Answer**: <PENDING_ANSWER_LITERAL>` and replaces
|
|
758
|
+
// the literal with the actual answer text. Escaped because
|
|
759
|
+
// `PENDING_ANSWER_LITERAL` contains regex metacharacters.
|
|
760
|
+
const pattern = new RegExp(`(### Q${questionNum}:[\\s\\S]*?\\*\\*Answer\\*\\*:\\s*)${escapeRegExp(PENDING_ANSWER_LITERAL)}`);
|
|
761
|
+
const previousContent = updatedContent;
|
|
762
|
+
updatedContent = updatedContent.replace(pattern, `$1${parsed.answer}`);
|
|
763
|
+
if (updatedContent !== previousContent) {
|
|
764
|
+
integratedNumbers.add(questionNum);
|
|
765
|
+
}
|
|
766
|
+
else {
|
|
767
|
+
parseFailures.push({
|
|
768
|
+
questionNumber: questionNum,
|
|
769
|
+
reason: 'no-source-comment',
|
|
770
|
+
});
|
|
771
|
+
}
|
|
772
|
+
}
|
|
773
|
+
// Any pending question with no attempted answer at all → parse-failure entry
|
|
774
|
+
// so FR-010 reporting can surface it.
|
|
775
|
+
for (const p of pendingQuestions) {
|
|
776
|
+
if (!answers.has(p.number)) {
|
|
777
|
+
parseFailures.push({ questionNumber: p.number, reason: 'no-source-comment' });
|
|
582
778
|
}
|
|
583
779
|
}
|
|
584
780
|
if (updatedContent === content) {
|
|
585
|
-
|
|
781
|
+
const result = {
|
|
782
|
+
integrated: 0,
|
|
783
|
+
reason: 'no-changes',
|
|
784
|
+
pendingAfter: pendingQuestions.length,
|
|
785
|
+
};
|
|
786
|
+
if (parseFailures.length > 0)
|
|
787
|
+
result.parseFailures = parseFailures;
|
|
788
|
+
return result;
|
|
586
789
|
}
|
|
587
790
|
writeFileSync(clarificationsPath, updatedContent);
|
|
588
|
-
logger.info({ count:
|
|
589
|
-
|
|
791
|
+
logger.info({ count: integratedNumbers.size, issueNumber }, 'Integrated GitHub answers into clarifications.md');
|
|
792
|
+
const pendingAfter = pendingQuestions.length - integratedNumbers.size;
|
|
793
|
+
const result = {
|
|
794
|
+
integrated: integratedNumbers.size,
|
|
795
|
+
pendingAfter,
|
|
796
|
+
};
|
|
797
|
+
if (parseFailures.length > 0)
|
|
798
|
+
result.parseFailures = parseFailures;
|
|
799
|
+
return result;
|
|
590
800
|
}
|
|
591
801
|
// ---------------------------------------------------------------------------
|
|
592
802
|
// postClarifications
|
|
@@ -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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"}
|