@generacy-ai/orchestrator 0.5.1 → 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.
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +25 -0
- package/dist/config/loader.js.map +1 -1
- package/dist/config/schema.d.ts +54 -7
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- 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/server.d.ts.map +1 -1
- package/dist/server.js +130 -26
- package/dist/server.js.map +1 -1
- package/dist/services/base-advance-monitor-service.d.ts +78 -0
- package/dist/services/base-advance-monitor-service.d.ts.map +1 -0
- package/dist/services/base-advance-monitor-service.js +233 -0
- package/dist/services/base-advance-monitor-service.js.map +1 -0
- package/dist/services/boot-resume-service.d.ts +19 -0
- package/dist/services/boot-resume-service.d.ts.map +1 -0
- package/dist/services/boot-resume-service.js +87 -0
- package/dist/services/boot-resume-service.js.map +1 -0
- package/dist/services/epic-completion-monitor-service.d.ts.map +1 -1
- package/dist/services/epic-completion-monitor-service.js +2 -0
- package/dist/services/epic-completion-monitor-service.js.map +1 -1
- package/dist/services/in-memory-queue-adapter.d.ts +4 -0
- package/dist/services/in-memory-queue-adapter.d.ts.map +1 -1
- package/dist/services/in-memory-queue-adapter.js +30 -3
- package/dist/services/in-memory-queue-adapter.js.map +1 -1
- package/dist/services/label-monitor-service.d.ts +3 -3
- package/dist/services/label-monitor-service.d.ts.map +1 -1
- package/dist/services/label-monitor-service.js +58 -41
- package/dist/services/label-monitor-service.js.map +1 -1
- package/dist/services/label-sync-service.d.ts.map +1 -1
- package/dist/services/label-sync-service.js +45 -10
- package/dist/services/label-sync-service.js.map +1 -1
- package/dist/services/merge-conflict-monitor-service.d.ts +73 -0
- package/dist/services/merge-conflict-monitor-service.d.ts.map +1 -0
- package/dist/services/merge-conflict-monitor-service.js +295 -0
- package/dist/services/merge-conflict-monitor-service.js.map +1 -0
- package/dist/services/orchestrator-version.d.ts +2 -0
- package/dist/services/orchestrator-version.d.ts.map +1 -0
- package/dist/services/orchestrator-version.js +23 -0
- package/dist/services/orchestrator-version.js.map +1 -0
- package/dist/services/phase-tracker-service.d.ts +10 -0
- package/dist/services/phase-tracker-service.d.ts.map +1 -1
- package/dist/services/phase-tracker-service.js +38 -0
- package/dist/services/phase-tracker-service.js.map +1 -1
- package/dist/services/post-activation-dispatch.d.ts +18 -0
- package/dist/services/post-activation-dispatch.d.ts.map +1 -0
- package/dist/services/post-activation-dispatch.js +30 -0
- package/dist/services/post-activation-dispatch.js.map +1 -0
- package/dist/services/pr-feedback-monitor-service.d.ts +13 -4
- package/dist/services/pr-feedback-monitor-service.d.ts.map +1 -1
- package/dist/services/pr-feedback-monitor-service.js +212 -26
- package/dist/services/pr-feedback-monitor-service.js.map +1 -1
- package/dist/services/redis-queue-adapter.d.ts +4 -0
- package/dist/services/redis-queue-adapter.d.ts.map +1 -1
- package/dist/services/redis-queue-adapter.js +90 -10
- package/dist/services/redis-queue-adapter.js.map +1 -1
- package/dist/services/worker-dispatcher.d.ts +14 -2
- package/dist/services/worker-dispatcher.d.ts.map +1 -1
- package/dist/services/worker-dispatcher.js +55 -2
- package/dist/services/worker-dispatcher.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/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/monitor.d.ts +72 -4
- package/dist/types/monitor.d.ts.map +1 -1
- package/dist/worker/base-merge.d.ts +54 -0
- package/dist/worker/base-merge.d.ts.map +1 -0
- package/dist/worker/base-merge.js +99 -0
- package/dist/worker/base-merge.js.map +1 -0
- package/dist/worker/clarification-markers.d.ts +29 -0
- package/dist/worker/clarification-markers.d.ts.map +1 -0
- package/dist/worker/clarification-markers.js +44 -0
- package/dist/worker/clarification-markers.js.map +1 -0
- package/dist/worker/clarification-poster.d.ts.map +1 -1
- package/dist/worker/clarification-poster.js +266 -25
- package/dist/worker/clarification-poster.js.map +1 -1
- package/dist/worker/claude-cli-worker.d.ts +21 -2
- package/dist/worker/claude-cli-worker.d.ts.map +1 -1
- package/dist/worker/claude-cli-worker.js +149 -4
- package/dist/worker/claude-cli-worker.js.map +1 -1
- package/dist/worker/cli-spawner.d.ts +4 -0
- package/dist/worker/cli-spawner.d.ts.map +1 -1
- package/dist/worker/cli-spawner.js +51 -7
- package/dist/worker/cli-spawner.js.map +1 -1
- package/dist/worker/config.d.ts +101 -9
- package/dist/worker/config.d.ts.map +1 -1
- package/dist/worker/config.js +75 -4
- package/dist/worker/config.js.map +1 -1
- package/dist/worker/evidence-hash.d.ts +32 -0
- package/dist/worker/evidence-hash.d.ts.map +1 -0
- package/dist/worker/evidence-hash.js +139 -0
- package/dist/worker/evidence-hash.js.map +1 -0
- package/dist/worker/handler-outcome-assertion.d.ts +38 -0
- package/dist/worker/handler-outcome-assertion.d.ts.map +1 -0
- package/dist/worker/handler-outcome-assertion.js +58 -0
- package/dist/worker/handler-outcome-assertion.js.map +1 -0
- package/dist/worker/handler-outcome.d.ts +50 -0
- package/dist/worker/handler-outcome.d.ts.map +1 -0
- package/dist/worker/handler-outcome.js +2 -0
- package/dist/worker/handler-outcome.js.map +1 -0
- package/dist/worker/label-manager.d.ts +58 -2
- package/dist/worker/label-manager.d.ts.map +1 -1
- package/dist/worker/label-manager.js +225 -27
- package/dist/worker/label-manager.js.map +1 -1
- package/dist/worker/merge-conflict-handler.d.ts +141 -0
- package/dist/worker/merge-conflict-handler.d.ts.map +1 -0
- package/dist/worker/merge-conflict-handler.js +642 -0
- package/dist/worker/merge-conflict-handler.js.map +1 -0
- package/dist/worker/merge-conflict-prompt.d.ts +35 -0
- package/dist/worker/merge-conflict-prompt.d.ts.map +1 -0
- package/dist/worker/merge-conflict-prompt.js +71 -0
- package/dist/worker/merge-conflict-prompt.js.map +1 -0
- package/dist/worker/merge-conflict-remedy.d.ts +42 -0
- package/dist/worker/merge-conflict-remedy.d.ts.map +1 -0
- package/dist/worker/merge-conflict-remedy.js +28 -0
- package/dist/worker/merge-conflict-remedy.js.map +1 -0
- package/dist/worker/output-tail-synthesis.d.ts +15 -0
- package/dist/worker/output-tail-synthesis.d.ts.map +1 -0
- package/dist/worker/output-tail-synthesis.js +25 -0
- package/dist/worker/output-tail-synthesis.js.map +1 -0
- package/dist/worker/output-tail.d.ts +13 -0
- package/dist/worker/output-tail.d.ts.map +1 -0
- package/dist/worker/output-tail.js +31 -0
- package/dist/worker/output-tail.js.map +1 -0
- package/dist/worker/pause-context.d.ts +30 -0
- package/dist/worker/pause-context.d.ts.map +1 -0
- package/dist/worker/pause-context.js +98 -0
- package/dist/worker/pause-context.js.map +1 -0
- package/dist/worker/phase-loop.d.ts +66 -0
- package/dist/worker/phase-loop.d.ts.map +1 -1
- package/dist/worker/phase-loop.js +299 -31
- package/dist/worker/phase-loop.js.map +1 -1
- package/dist/worker/pr-feedback-handler.d.ts +46 -46
- package/dist/worker/pr-feedback-handler.d.ts.map +1 -1
- package/dist/worker/pr-feedback-handler.js +276 -105
- package/dist/worker/pr-feedback-handler.js.map +1 -1
- package/dist/worker/pr-manager.d.ts +5 -0
- package/dist/worker/pr-manager.d.ts.map +1 -1
- package/dist/worker/pr-manager.js +7 -0
- package/dist/worker/pr-manager.js.map +1 -1
- package/dist/worker/product-diff.d.ts +39 -0
- package/dist/worker/product-diff.d.ts.map +1 -0
- package/dist/worker/product-diff.js +43 -0
- package/dist/worker/product-diff.js.map +1 -0
- package/dist/worker/provisioning-failure.d.ts +14 -0
- package/dist/worker/provisioning-failure.d.ts.map +1 -0
- package/dist/worker/provisioning-failure.js +2 -0
- package/dist/worker/provisioning-failure.js.map +1 -0
- package/dist/worker/repo-checkout.d.ts +14 -0
- package/dist/worker/repo-checkout.d.ts.map +1 -1
- package/dist/worker/repo-checkout.js +19 -1
- package/dist/worker/repo-checkout.js.map +1 -1
- package/dist/worker/stage-comment-manager.d.ts +42 -1
- package/dist/worker/stage-comment-manager.d.ts.map +1 -1
- package/dist/worker/stage-comment-manager.js +205 -1
- package/dist/worker/stage-comment-manager.js.map +1 -1
- package/dist/worker/terminal-label-op-error.d.ts +23 -0
- package/dist/worker/terminal-label-op-error.d.ts.map +1 -0
- package/dist/worker/terminal-label-op-error.js +27 -0
- package/dist/worker/terminal-label-op-error.js.map +1 -0
- package/dist/worker/types.d.ts +161 -2
- 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/dist/worker/validate-fix-handler.d.ts +79 -0
- package/dist/worker/validate-fix-handler.d.ts.map +1 -0
- package/dist/worker/validate-fix-handler.js +320 -0
- package/dist/worker/validate-fix-handler.js.map +1 -0
- package/dist/worker/worker-result.d.ts +39 -0
- package/dist/worker/worker-result.d.ts.map +1 -0
- package/dist/worker/worker-result.js +10 -0
- package/dist/worker/worker-result.js.map +1 -0
- package/package.json +7 -6
|
@@ -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":"
|
|
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
|
-
//
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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
|
-
|
|
256
|
-
//
|
|
257
|
-
//
|
|
258
|
-
|
|
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,
|
|
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
|
|
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
|
-
//
|
|
327
|
-
//
|
|
328
|
-
//
|
|
329
|
-
//
|
|
330
|
-
const
|
|
331
|
-
const
|
|
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,
|
|
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
|
-
|
|
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<
|
|
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;
|
|
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"}
|