@zhixuan92/multi-model-agent-core 4.5.3 → 4.6.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/README.md +8 -3
- package/dist/escalation/delegate-with-escalation.d.ts +2 -2
- package/dist/escalation/delegate-with-escalation.d.ts.map +1 -1
- package/dist/escalation/delegate-with-escalation.js +11 -17
- package/dist/escalation/delegate-with-escalation.js.map +1 -1
- package/dist/escalation/fallback-helpers.d.ts +5 -5
- package/dist/escalation/fallback-helpers.d.ts.map +1 -1
- package/dist/escalation/fallback-helpers.js +5 -3
- package/dist/escalation/fallback-helpers.js.map +1 -1
- package/dist/events/event-builder.d.ts +36 -5
- package/dist/events/event-builder.d.ts.map +1 -1
- package/dist/events/event-builder.js +175 -33
- package/dist/events/event-builder.js.map +1 -1
- package/dist/events/observability-events.d.ts +6 -0
- package/dist/events/observability-events.d.ts.map +1 -1
- package/dist/events/observability-events.js +5 -0
- package/dist/events/observability-events.js.map +1 -1
- package/dist/events/telemetry-types.d.ts +10 -0
- package/dist/events/telemetry-types.d.ts.map +1 -1
- package/dist/events/verbose-log-channel.d.ts +7 -7
- package/dist/events/verbose-log-channel.js +10 -10
- package/dist/index.d.ts +9 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -2
- package/dist/index.js.map +1 -1
- package/dist/lifecycle/annotate-parser.d.ts +9 -0
- package/dist/lifecycle/annotate-parser.d.ts.map +1 -0
- package/dist/lifecycle/annotate-parser.js +83 -0
- package/dist/lifecycle/annotate-parser.js.map +1 -0
- package/dist/lifecycle/annotate-prompts.d.ts +9 -0
- package/dist/lifecycle/annotate-prompts.d.ts.map +1 -0
- package/dist/lifecycle/annotate-prompts.js +86 -0
- package/dist/lifecycle/annotate-prompts.js.map +1 -0
- package/dist/lifecycle/auto-register-context-block.d.ts +2 -2
- package/dist/lifecycle/auto-register-context-block.d.ts.map +1 -1
- package/dist/lifecycle/auto-register-context-block.js.map +1 -1
- package/dist/lifecycle/build-cancelled-result.d.ts +11 -0
- package/dist/lifecycle/build-cancelled-result.d.ts.map +1 -0
- package/dist/lifecycle/build-cancelled-result.js +27 -0
- package/dist/lifecycle/build-cancelled-result.js.map +1 -0
- package/dist/lifecycle/executor-output-types.d.ts +2 -2
- package/dist/lifecycle/executor-output-types.d.ts.map +1 -1
- package/dist/lifecycle/fallback-report.d.ts +2 -2
- package/dist/lifecycle/fallback-report.d.ts.map +1 -1
- package/dist/lifecycle/fallback-report.js.map +1 -1
- package/dist/lifecycle/findings-parser.d.ts +2 -0
- package/dist/lifecycle/findings-parser.d.ts.map +1 -1
- package/dist/lifecycle/findings-parser.js +9 -4
- package/dist/lifecycle/findings-parser.js.map +1 -1
- package/dist/lifecycle/git-toplevel.d.ts +12 -0
- package/dist/lifecycle/git-toplevel.d.ts.map +1 -0
- package/dist/lifecycle/git-toplevel.js +49 -0
- package/dist/lifecycle/git-toplevel.js.map +1 -0
- package/dist/lifecycle/handlers/annotator.d.ts +2 -1
- package/dist/lifecycle/handlers/annotator.d.ts.map +1 -1
- package/dist/lifecycle/handlers/annotator.js +225 -7
- package/dist/lifecycle/handlers/annotator.js.map +1 -1
- package/dist/lifecycle/handlers/baseline-handlers.d.ts +10 -5
- package/dist/lifecycle/handlers/baseline-handlers.d.ts.map +1 -1
- package/dist/lifecycle/handlers/baseline-handlers.js +206 -316
- package/dist/lifecycle/handlers/baseline-handlers.js.map +1 -1
- package/dist/lifecycle/handlers/enrich-runtime-result.d.ts +3 -0
- package/dist/lifecycle/handlers/enrich-runtime-result.d.ts.map +1 -0
- package/dist/lifecycle/handlers/enrich-runtime-result.js +191 -0
- package/dist/lifecycle/handlers/enrich-runtime-result.js.map +1 -0
- package/dist/lifecycle/handlers/git-commit-handler.d.ts +3 -2
- package/dist/lifecycle/handlers/git-commit-handler.d.ts.map +1 -1
- package/dist/lifecycle/handlers/git-commit-handler.js +139 -110
- package/dist/lifecycle/handlers/git-commit-handler.js.map +1 -1
- package/dist/lifecycle/handlers/prepare-execution-context-handler.d.ts +7 -13
- package/dist/lifecycle/handlers/prepare-execution-context-handler.d.ts.map +1 -1
- package/dist/lifecycle/handlers/prepare-execution-context-handler.js +72 -49
- package/dist/lifecycle/handlers/prepare-execution-context-handler.js.map +1 -1
- package/dist/lifecycle/handlers/register-context-block-handlers.d.ts +2 -1
- package/dist/lifecycle/handlers/register-context-block-handlers.d.ts.map +1 -1
- package/dist/lifecycle/handlers/register-context-block-handlers.js +35 -14
- package/dist/lifecycle/handlers/register-context-block-handlers.js.map +1 -1
- package/dist/lifecycle/handlers/review-handler.d.ts +2 -1
- package/dist/lifecycle/handlers/review-handler.d.ts.map +1 -1
- package/dist/lifecycle/handlers/review-handler.js +152 -154
- package/dist/lifecycle/handlers/review-handler.js.map +1 -1
- package/dist/lifecycle/handlers/rework-handler.d.ts +2 -1
- package/dist/lifecycle/handlers/rework-handler.d.ts.map +1 -1
- package/dist/lifecycle/handlers/rework-handler.js +62 -14
- package/dist/lifecycle/handlers/rework-handler.js.map +1 -1
- package/dist/lifecycle/handlers/task-executor.d.ts +5 -4
- package/dist/lifecycle/handlers/task-executor.d.ts.map +1 -1
- package/dist/lifecycle/handlers/task-executor.js +153 -74
- package/dist/lifecycle/handlers/task-executor.js.map +1 -1
- package/dist/lifecycle/handlers/terminal-handlers.d.ts +22 -0
- package/dist/lifecycle/handlers/terminal-handlers.d.ts.map +1 -1
- package/dist/lifecycle/handlers/terminal-handlers.js +86 -5
- package/dist/lifecycle/handlers/terminal-handlers.js.map +1 -1
- package/dist/lifecycle/lifecycle-context.d.ts +31 -3
- package/dist/lifecycle/lifecycle-context.d.ts.map +1 -1
- package/dist/lifecycle/lifecycle-dispatcher.d.ts +18 -19
- package/dist/lifecycle/lifecycle-dispatcher.d.ts.map +1 -1
- package/dist/lifecycle/lifecycle-dispatcher.js +38 -22
- package/dist/lifecycle/lifecycle-dispatcher.js.map +1 -1
- package/dist/lifecycle/lifecycle-driver.d.ts +15 -8
- package/dist/lifecycle/lifecycle-driver.d.ts.map +1 -1
- package/dist/lifecycle/lifecycle-driver.js +110 -29
- package/dist/lifecycle/lifecycle-driver.js.map +1 -1
- package/dist/lifecycle/merge-stage-stats.d.ts +3 -3
- package/dist/lifecycle/merge-stage-stats.d.ts.map +1 -1
- package/dist/lifecycle/merge-stage-stats.js +2 -2
- package/dist/lifecycle/merge-stage-stats.js.map +1 -1
- package/dist/lifecycle/perform-implementation.d.ts +3 -0
- package/dist/lifecycle/perform-implementation.d.ts.map +1 -0
- package/dist/lifecycle/perform-implementation.js +264 -0
- package/dist/lifecycle/perform-implementation.js.map +1 -0
- package/dist/lifecycle/repo-hygiene.d.ts +14 -0
- package/dist/lifecycle/repo-hygiene.d.ts.map +1 -0
- package/dist/lifecycle/repo-hygiene.js +71 -0
- package/dist/lifecycle/repo-hygiene.js.map +1 -0
- package/dist/lifecycle/shared-compute.d.ts +4 -4
- package/dist/lifecycle/shared-compute.d.ts.map +1 -1
- package/dist/lifecycle/shared-compute.js +1 -1
- package/dist/lifecycle/shared-compute.js.map +1 -1
- package/dist/lifecycle/stage-io.d.ts +139 -0
- package/dist/lifecycle/stage-io.d.ts.map +1 -0
- package/dist/lifecycle/stage-io.js +20 -0
- package/dist/lifecycle/stage-io.js.map +1 -0
- package/dist/lifecycle/stage-plan-builder.d.ts +3 -3
- package/dist/lifecycle/stage-plan-builder.d.ts.map +1 -1
- package/dist/lifecycle/stage-plan-builder.js +157 -128
- package/dist/lifecycle/stage-plan-builder.js.map +1 -1
- package/dist/lifecycle/stage-plan-types.d.ts +5 -21
- package/dist/lifecycle/stage-plan-types.d.ts.map +1 -1
- package/dist/lifecycle/stage-progression.d.ts +3 -15
- package/dist/lifecycle/stage-progression.d.ts.map +1 -1
- package/dist/lifecycle/stage-progression.js +48 -91
- package/dist/lifecycle/stage-progression.js.map +1 -1
- package/dist/lifecycle/task-completion-summary.d.ts +2 -2
- package/dist/lifecycle/task-completion-summary.d.ts.map +1 -1
- package/dist/lifecycle/task-completion-summary.js +0 -6
- package/dist/lifecycle/task-completion-summary.js.map +1 -1
- package/dist/lifecycle/task-executor.d.ts +23 -0
- package/dist/lifecycle/task-executor.d.ts.map +1 -1
- package/dist/lifecycle/task-executor.js +77 -5
- package/dist/lifecycle/task-executor.js.map +1 -1
- package/dist/lifecycle/task-grouping.d.ts +19 -0
- package/dist/lifecycle/task-grouping.d.ts.map +1 -0
- package/dist/lifecycle/task-grouping.js +48 -0
- package/dist/lifecycle/task-grouping.js.map +1 -0
- package/dist/lifecycle/task-runner.d.ts +20 -7
- package/dist/lifecycle/task-runner.d.ts.map +1 -1
- package/dist/lifecycle/task-runner.js +42 -278
- package/dist/lifecycle/task-runner.js.map +1 -1
- package/dist/lifecycle/tool-config-types.d.ts +9 -0
- package/dist/lifecycle/tool-config-types.d.ts.map +1 -1
- package/dist/lifecycle/worker-output-contract.d.ts +9 -15
- package/dist/lifecycle/worker-output-contract.d.ts.map +1 -1
- package/dist/lifecycle/worker-output-contract.js +45 -30
- package/dist/lifecycle/worker-output-contract.js.map +1 -1
- package/dist/providers/assemble-run-result.d.ts +3 -3
- package/dist/providers/assemble-run-result.d.ts.map +1 -1
- package/dist/providers/assemble-run-result.js +20 -9
- package/dist/providers/assemble-run-result.js.map +1 -1
- package/dist/providers/claude-session.d.ts.map +1 -1
- package/dist/providers/claude-session.js +1 -0
- package/dist/providers/claude-session.js.map +1 -1
- package/dist/providers/claude.js.map +1 -1
- package/dist/providers/codex-cli-launch.js +1 -1
- package/dist/providers/codex-cli-launch.js.map +1 -1
- package/dist/providers/codex-cli-session.d.ts +4 -1
- package/dist/providers/codex-cli-session.d.ts.map +1 -1
- package/dist/providers/codex-cli-session.js +73 -46
- package/dist/providers/codex-cli-session.js.map +1 -1
- package/dist/providers/codex.js.map +1 -1
- package/dist/providers/index.d.ts +1 -0
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +1 -0
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/normalize-claude.d.ts +2 -0
- package/dist/providers/normalize-claude.d.ts.map +1 -1
- package/dist/providers/normalize-claude.js +1 -0
- package/dist/providers/normalize-claude.js.map +1 -1
- package/dist/providers/run-annotator-turn.d.ts +24 -0
- package/dist/providers/run-annotator-turn.d.ts.map +1 -0
- package/dist/providers/run-annotator-turn.js +43 -0
- package/dist/providers/run-annotator-turn.js.map +1 -0
- package/dist/providers/run-worker-turn.d.ts +26 -0
- package/dist/providers/run-worker-turn.d.ts.map +1 -0
- package/dist/providers/run-worker-turn.js +58 -0
- package/dist/providers/run-worker-turn.js.map +1 -0
- package/dist/providers/runner-types.d.ts +1 -1
- package/dist/providers/runner-types.d.ts.map +1 -1
- package/dist/reporting/headline-composer.d.ts +3 -3
- package/dist/reporting/headline-composer.d.ts.map +1 -1
- package/dist/review/index.d.ts +4 -3
- package/dist/review/index.d.ts.map +1 -1
- package/dist/review/index.js +7 -4
- package/dist/review/index.js.map +1 -1
- package/dist/review/parse-review-report.d.ts +7 -1
- package/dist/review/parse-review-report.d.ts.map +1 -1
- package/dist/review/parse-review-report.js +13 -21
- package/dist/review/parse-review-report.js.map +1 -1
- package/dist/review/review-verdict-mapping.d.ts +3 -3
- package/dist/review/review-verdict-mapping.d.ts.map +1 -1
- package/dist/review/review-verdict-mapping.js +1 -1
- package/dist/review/review-verdict-mapping.js.map +1 -1
- package/dist/review/run-reviewer.d.ts +40 -0
- package/dist/review/run-reviewer.d.ts.map +1 -0
- package/dist/review/run-reviewer.js +54 -0
- package/dist/review/run-reviewer.js.map +1 -0
- package/dist/review/templates/quality-review.d.ts +5 -0
- package/dist/review/templates/quality-review.d.ts.map +1 -1
- package/dist/review/templates/quality-review.js +35 -25
- package/dist/review/templates/quality-review.js.map +1 -1
- package/dist/review/templates/spec-review.d.ts +6 -0
- package/dist/review/templates/spec-review.d.ts.map +1 -1
- package/dist/review/templates/spec-review.js +36 -8
- package/dist/review/templates/spec-review.js.map +1 -1
- package/dist/stores/batch-cache.d.ts +3 -3
- package/dist/stores/batch-cache.d.ts.map +1 -1
- package/dist/stores/batch-cache.js.map +1 -1
- package/dist/stores/batch-registry.d.ts +31 -0
- package/dist/stores/batch-registry.d.ts.map +1 -1
- package/dist/stores/batch-registry.js +12 -0
- package/dist/stores/batch-registry.js.map +1 -1
- package/dist/tools/debug/tool-config.js +1 -1
- package/dist/tools/debug/tool-config.js.map +1 -1
- package/dist/tools/delegate/tool-config.d.ts.map +1 -1
- package/dist/tools/delegate/tool-config.js +3 -1
- package/dist/tools/delegate/tool-config.js.map +1 -1
- package/dist/tools/execute-plan/tool-config.d.ts.map +1 -1
- package/dist/tools/execute-plan/tool-config.js +3 -1
- package/dist/tools/execute-plan/tool-config.js.map +1 -1
- package/dist/tools/investigate/tool-config.js +1 -1
- package/dist/tools/investigate/tool-config.js.map +1 -1
- package/dist/tools/retry/tool-config.js.map +1 -1
- package/dist/types/run-result.d.ts +164 -213
- package/dist/types/run-result.d.ts.map +1 -1
- package/dist/types/run-result.js +17 -0
- package/dist/types/run-result.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/lifecycle/handlers/derive-terminal-status.d.ts +0 -10
- package/dist/lifecycle/handlers/derive-terminal-status.d.ts.map +0 -1
- package/dist/lifecycle/handlers/derive-terminal-status.js +0 -35
- package/dist/lifecycle/handlers/derive-terminal-status.js.map +0 -1
- package/dist/lifecycle/handlers/files-written-cross-check.d.ts +0 -27
- package/dist/lifecycle/handlers/files-written-cross-check.d.ts.map +0 -1
- package/dist/lifecycle/handlers/files-written-cross-check.js +0 -91
- package/dist/lifecycle/handlers/files-written-cross-check.js.map +0 -1
- package/dist/lifecycle/handlers/verify-stage.d.ts +0 -37
- package/dist/lifecycle/handlers/verify-stage.d.ts.map +0 -1
- package/dist/lifecycle/handlers/verify-stage.js +0 -208
- package/dist/lifecycle/handlers/verify-stage.js.map +0 -1
- package/dist/review/default-engines.d.ts +0 -3
- package/dist/review/default-engines.d.ts.map +0 -1
- package/dist/review/default-engines.js +0 -22
- package/dist/review/default-engines.js.map +0 -1
- package/dist/review/reviewer-engine.d.ts +0 -53
- package/dist/review/reviewer-engine.d.ts.map +0 -1
- package/dist/review/reviewer-engine.js +0 -47
- package/dist/review/reviewer-engine.js.map +0 -1
- package/dist/review/reviewer-output-parser.d.ts +0 -12
- package/dist/review/reviewer-output-parser.d.ts.map +0 -1
- package/dist/review/reviewer-output-parser.js +0 -213
- package/dist/review/reviewer-output-parser.js.map +0 -1
- package/dist/review/reviewer-prompt-builder.d.ts +0 -21
- package/dist/review/reviewer-prompt-builder.d.ts.map +0 -1
- package/dist/review/reviewer-prompt-builder.js +0 -22
- package/dist/review/reviewer-prompt-builder.js.map +0 -1
- package/dist/review/templates/annotate-completion.d.ts +0 -12
- package/dist/review/templates/annotate-completion.d.ts.map +0 -1
- package/dist/review/templates/annotate-completion.js +0 -72
- package/dist/review/templates/annotate-completion.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review-handler.js","sourceRoot":"","sources":["../../../src/lifecycle/handlers/review-handler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"review-handler.js","sourceRoot":"","sources":["../../../src/lifecycle/handlers/review-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import type { LifecycleState } from '../stage-plan-types.js';
|
|
2
|
-
|
|
2
|
+
import type { StageGate, ReworkPayload } from '../stage-io.js';
|
|
3
|
+
export declare function reworkHandler(state: LifecycleState): Promise<StageGate<ReworkPayload | null>>;
|
|
3
4
|
//# sourceMappingURL=rework-handler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rework-handler.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/handlers/rework-handler.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"rework-handler.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/handlers/rework-handler.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAI7D,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AA2B/D,wBAAsB,aAAa,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,CA2KnG"}
|
|
@@ -16,22 +16,41 @@ import { assembleRunResult } from '../../providers/assemble-run-result.js';
|
|
|
16
16
|
import { parseWorkerOutput } from '../worker-output-contract.js';
|
|
17
17
|
import { HUMAN_LABEL } from '../stage-labels.js';
|
|
18
18
|
import { startProgressWatchdog, recordPostHocSignals } from '../../bounded-execution/progress-watchdog.js';
|
|
19
|
+
function reworkSkip(comment, t0) {
|
|
20
|
+
return {
|
|
21
|
+
outcome: 'skip',
|
|
22
|
+
comment,
|
|
23
|
+
payload: null,
|
|
24
|
+
telemetry: { stageLabel: 'rework', durationMs: Date.now() - t0, costUSD: 0, turnsUsed: 0, stopReason: 'normal' },
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
function reworkHalt(comment, t0) {
|
|
28
|
+
return {
|
|
29
|
+
outcome: 'halt',
|
|
30
|
+
comment,
|
|
31
|
+
payload: null,
|
|
32
|
+
telemetry: { stageLabel: 'rework', durationMs: Date.now() - t0, costUSD: 0, turnsUsed: 0, stopReason: 'transport_error' },
|
|
33
|
+
};
|
|
34
|
+
}
|
|
19
35
|
export async function reworkHandler(state) {
|
|
36
|
+
const t0 = Date.now();
|
|
20
37
|
if (state.terminal)
|
|
21
|
-
return;
|
|
22
|
-
if (state.reworkApplied !== undefined || state.reworkError !== undefined)
|
|
23
|
-
return;
|
|
24
|
-
|
|
25
|
-
|
|
38
|
+
return reworkSkip('rework skipped: terminal', t0);
|
|
39
|
+
if (state.reworkApplied !== undefined || state.reworkError !== undefined) {
|
|
40
|
+
return reworkSkip('rework already applied', t0);
|
|
41
|
+
}
|
|
42
|
+
if (state.reviewVerdict !== 'changes_required') {
|
|
43
|
+
return reworkSkip('rework skipped: review verdict is not changes_required', t0);
|
|
44
|
+
}
|
|
26
45
|
const ctx = state.executionContext;
|
|
27
46
|
const task = state.task;
|
|
28
47
|
const last = state.lastRunResult;
|
|
29
48
|
if (!ctx || !task || !last)
|
|
30
|
-
return;
|
|
49
|
+
return reworkSkip('rework skipped: missing context', t0);
|
|
31
50
|
const findings = state.reviewFindings ?? [];
|
|
32
51
|
if (findings.length === 0) {
|
|
33
52
|
state.reworkApplied = false;
|
|
34
|
-
return;
|
|
53
|
+
return reworkSkip('rework skipped: review produced no findings', t0);
|
|
35
54
|
}
|
|
36
55
|
let cumulativeDiff = '';
|
|
37
56
|
if (state.diffTracker) {
|
|
@@ -40,11 +59,22 @@ export async function reworkHandler(state) {
|
|
|
40
59
|
}
|
|
41
60
|
catch { /* tolerated */ }
|
|
42
61
|
}
|
|
43
|
-
|
|
62
|
+
// Rework matches the implementer's tier — rework's job is to FIX the
|
|
63
|
+
// implementer's work, so it needs the same capability. Read implementer
|
|
64
|
+
// tier from executionContext.assignedTier; fall back to the implementing
|
|
65
|
+
// stage's gate payload, then 'standard' as a defensive last resort.
|
|
66
|
+
// Final fallback: if the matched tier has no provider configured, use
|
|
67
|
+
// whichever tier does (parity with reviewer's fallback behavior).
|
|
68
|
+
const desiredReworkTier = ctx.assignedTier
|
|
69
|
+
?? (state.gates?.['implement']?.payload?.agentTier)
|
|
70
|
+
?? 'standard';
|
|
71
|
+
const reworkTier = ctx.providers[desiredReworkTier]
|
|
72
|
+
? desiredReworkTier
|
|
73
|
+
: (ctx.providers['standard'] ? 'standard' : 'complex');
|
|
44
74
|
const provider = ctx.providers[reworkTier];
|
|
45
75
|
if (!provider) {
|
|
46
76
|
state.reworkError = `no provider available for tier ${reworkTier}`;
|
|
47
|
-
return;
|
|
77
|
+
return reworkHalt(`no provider available for tier ${reworkTier}`, t0);
|
|
48
78
|
}
|
|
49
79
|
const concerns = findings.map((f) => `[${f.source}] ${f.text}`);
|
|
50
80
|
const promptCtx = {
|
|
@@ -91,7 +121,7 @@ export async function reworkHandler(state) {
|
|
|
91
121
|
catch (err) {
|
|
92
122
|
state.reworkError = err instanceof Error ? err.message : String(err);
|
|
93
123
|
disposeWd?.();
|
|
94
|
-
return;
|
|
124
|
+
return reworkHalt(`rework session.send failed: ${state.reworkError}`, t0);
|
|
95
125
|
}
|
|
96
126
|
finally {
|
|
97
127
|
disposeWd?.();
|
|
@@ -101,7 +131,7 @@ export async function reworkHandler(state) {
|
|
|
101
131
|
}
|
|
102
132
|
if (result.status !== 'ok') {
|
|
103
133
|
state.reworkError = `rework returned status: ${result.status}`;
|
|
104
|
-
return;
|
|
134
|
+
return reworkHalt(state.reworkError, t0);
|
|
105
135
|
}
|
|
106
136
|
// Parse the Rework worker's WorkerOutput JSON block.
|
|
107
137
|
const reworked = parseWorkerOutput(result.output ?? '');
|
|
@@ -115,10 +145,11 @@ export async function reworkHandler(state) {
|
|
|
115
145
|
if (merged) {
|
|
116
146
|
const priorFilesChanged = (last.filesChanged) ?? [];
|
|
117
147
|
merged.summary = reworked.summary;
|
|
118
|
-
merged.workerStatus = reworked.
|
|
148
|
+
merged.workerStatus = reworked.workerSelfAssessment;
|
|
119
149
|
merged.filesChanged = Array.from(new Set([...priorFilesChanged, ...reworked.filesChanged]));
|
|
120
|
-
|
|
121
|
-
merged.
|
|
150
|
+
// v5: validationsRun, unresolved, commitMessage removed from worker output schema
|
|
151
|
+
merged.validationsRun = reworked.validationsRun ?? [];
|
|
152
|
+
merged.unresolved = reworked.unresolved ?? [];
|
|
122
153
|
if (reworked.commitMessage)
|
|
123
154
|
merged.commitMessage = reworked.commitMessage;
|
|
124
155
|
}
|
|
@@ -142,5 +173,22 @@ export async function reworkHandler(state) {
|
|
|
142
173
|
tier: reworkTier,
|
|
143
174
|
model: ctx.providers[reworkTier]?.config?.model ?? null,
|
|
144
175
|
});
|
|
176
|
+
const payload = {
|
|
177
|
+
workerSelfAssessment: reworked.workerSelfAssessment === 'done' ? 'done' : 'failed',
|
|
178
|
+
summary: reworked.summary ?? '',
|
|
179
|
+
filesChanged: state.lastRunResult?.filesChanged ?? [],
|
|
180
|
+
unaddressedFindingIds: [],
|
|
181
|
+
};
|
|
182
|
+
return {
|
|
183
|
+
outcome: 'advance',
|
|
184
|
+
payload,
|
|
185
|
+
telemetry: {
|
|
186
|
+
stageLabel: 'rework',
|
|
187
|
+
durationMs: Date.now() - t0,
|
|
188
|
+
costUSD: result.actualCostUSD ?? null,
|
|
189
|
+
turnsUsed: result.turns ?? 1,
|
|
190
|
+
stopReason: 'normal',
|
|
191
|
+
},
|
|
192
|
+
};
|
|
145
193
|
}
|
|
146
194
|
//# sourceMappingURL=rework-handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rework-handler.js","sourceRoot":"","sources":["../../../src/lifecycle/handlers/rework-handler.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,EAAE;AACF,oEAAoE;AACpE,iEAAiE;AACjE,sEAAsE;AACtE,8DAA8D;AAC9D,mEAAmE;AACnE,sEAAsE;AACtE,sEAAsE;AACtE,qEAAqE;AACrE,eAAe;
|
|
1
|
+
{"version":3,"file":"rework-handler.js","sourceRoot":"","sources":["../../../src/lifecycle/handlers/rework-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { LifecycleState } from '../stage-plan-types.js';
|
|
2
|
-
import type {
|
|
3
|
-
export declare function capturePreTaskState(state: LifecycleState):
|
|
2
|
+
import type { StageGate, ImplementPayload } from '../stage-io.js';
|
|
3
|
+
export declare function capturePreTaskState(state: LifecycleState): void;
|
|
4
|
+
export declare function implementHandler(state: LifecycleState): Promise<StageGate<ImplementPayload>>;
|
|
4
5
|
export declare class TaskExecutor {
|
|
5
|
-
private
|
|
6
|
-
constructor(
|
|
6
|
+
private _emitter?;
|
|
7
|
+
constructor(_emitter?: unknown | undefined);
|
|
7
8
|
handler: (state: LifecycleState) => Promise<void>;
|
|
8
9
|
}
|
|
9
10
|
//# sourceMappingURL=task-executor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-executor.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/handlers/task-executor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"task-executor.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/handlers/task-executor.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAa,MAAM,gBAAgB,CAAC;AAU7E,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAiB/D;AAwED,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CA+EtC;AAKD,qBAAa,YAAY;IACX,OAAO,CAAC,QAAQ,CAAC;gBAAT,QAAQ,CAAC,EAAE,OAAO,YAAA;IACtC,OAAO,GAAU,OAAO,cAAc,KAAG,OAAO,CAAC,IAAI,CAAC,CAEpD;CACH"}
|
|
@@ -1,98 +1,177 @@
|
|
|
1
|
-
// v4.
|
|
2
|
-
//
|
|
1
|
+
// v4.5 — Implementing stage handler.
|
|
3
2
|
// Sends the brief to the route's implementer tier via session.send,
|
|
4
|
-
// captures the pre-task HEAD SHA
|
|
5
|
-
// worker
|
|
6
|
-
// WorkerOutput JSON block onto state.lastRunResult so downstream
|
|
7
|
-
// stages (Review / Rework / Committing / Annotating) consume a
|
|
8
|
-
// uniform structured shape.
|
|
9
|
-
import { assembleRunResult } from '../../providers/assemble-run-result.js';
|
|
3
|
+
// captures the pre-task HEAD SHA, and returns a StageGate<ImplementPayload>
|
|
4
|
+
// containing the worker's structured output plus prose-extracted findings.
|
|
10
5
|
import { parseWorkerOutput } from '../worker-output-contract.js';
|
|
11
|
-
import {
|
|
6
|
+
import { performImplementation } from '../perform-implementation.js';
|
|
12
7
|
import { spawnSync } from 'node:child_process';
|
|
13
8
|
import { join } from 'node:path';
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
'Do NOT run any git subcommand that mutates history',
|
|
17
|
-
'(commit, add, push, reset, rebase, merge, cherry-pick, etc.).',
|
|
18
|
-
'The Committing stage handles persistence at the end.',
|
|
19
|
-
'',
|
|
20
|
-
'IMPORTANT — Structured output:',
|
|
21
|
-
'End your response with a JSON-fenced block describing what you did:',
|
|
22
|
-
'```json',
|
|
23
|
-
'{',
|
|
24
|
-
' "summary": "one-line description",',
|
|
25
|
-
' "workerStatus": "done" | "done_with_concerns" | "blocked" | "failed",',
|
|
26
|
-
' "filesChanged": ["path/to/file.ts", ...],',
|
|
27
|
-
' "validationsRun": [{ "name": "npm test", "passed": true, "output": "..." }],',
|
|
28
|
-
' "unresolved": ["any items you could not finish"],',
|
|
29
|
-
' "commitMessage": "feat: optional Conventional Commits message"',
|
|
30
|
-
'}',
|
|
31
|
-
'```',
|
|
32
|
-
].join('\n');
|
|
33
|
-
export async function capturePreTaskState(state) {
|
|
9
|
+
const READ_ROUTES = ['audit', 'review', 'debug', 'investigate', 'explore'];
|
|
10
|
+
export function capturePreTaskState(state) {
|
|
34
11
|
const cwd = state.cwd;
|
|
35
12
|
if (!cwd)
|
|
36
13
|
return;
|
|
37
14
|
const headResult = spawnSync('git', ['rev-parse', 'HEAD'], { cwd, encoding: 'utf8' });
|
|
38
15
|
if (headResult.status !== 0)
|
|
39
|
-
return;
|
|
16
|
+
return;
|
|
40
17
|
state.preTaskHeadSha = headResult.stdout.trim();
|
|
41
18
|
const lsResult = spawnSync('git', ['ls-files', '--others', '--exclude-standard'], { cwd, encoding: 'utf8' });
|
|
42
19
|
if (lsResult.status !== 0) {
|
|
43
|
-
// Defensive: head succeeded but ls-files failed (unusual). Treat as no untracked files.
|
|
44
20
|
state.preTaskUntrackedFiles = new Set();
|
|
45
21
|
return;
|
|
46
22
|
}
|
|
47
23
|
const relativeFiles = lsResult.stdout.split('\n').filter(line => line.length > 0);
|
|
48
|
-
state.preTaskUntrackedFiles = new Set(relativeFiles.map(rel => join(cwd, rel))
|
|
49
|
-
);
|
|
24
|
+
state.preTaskUntrackedFiles = new Set(relativeFiles.map((rel) => join(cwd, rel)));
|
|
50
25
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
26
|
+
// Forward declaration — the actual parser lives in findings-parser.ts.
|
|
27
|
+
// We parse inline to keep the dependency lightweight and avoid importing
|
|
28
|
+
// the full findings-parser which may have criteria-specific logic.
|
|
29
|
+
function parseFindingsFromProse(text) {
|
|
30
|
+
if (!text || text.trim().length === 0)
|
|
31
|
+
return [];
|
|
32
|
+
const blocks = [];
|
|
33
|
+
const lines = text.split('\n');
|
|
34
|
+
let current = [];
|
|
35
|
+
for (const line of lines) {
|
|
36
|
+
if (/^## Finding \d+:/.test(line)) {
|
|
37
|
+
if (current.length > 0)
|
|
38
|
+
blocks.push(current.join('\n'));
|
|
39
|
+
current = [line];
|
|
40
|
+
}
|
|
41
|
+
else if (current.length > 0) {
|
|
42
|
+
current.push(line);
|
|
43
|
+
}
|
|
55
44
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
const
|
|
45
|
+
if (current.length > 0)
|
|
46
|
+
blocks.push(current.join('\n'));
|
|
47
|
+
const findings = [];
|
|
48
|
+
const SEVERITY_VALUES = new Set(['critical', 'high', 'medium', 'low']);
|
|
49
|
+
for (const block of blocks) {
|
|
50
|
+
const claimLine = block.match(/^\s*- Claim:\s*(.+)$/im)?.[1]?.trim() ?? '';
|
|
51
|
+
if (claimLine.startsWith('[N/A]'))
|
|
52
|
+
continue;
|
|
53
|
+
const sevRaw = block.match(/^\s*- Severity:\s*(\w+)/im)?.[1]?.toLowerCase();
|
|
54
|
+
const severity = sevRaw && SEVERITY_VALUES.has(sevRaw)
|
|
55
|
+
? sevRaw
|
|
56
|
+
: 'medium';
|
|
57
|
+
const category = block.match(/^\s*- Category:\s*(\S+)/im)?.[1] ?? 'general';
|
|
58
|
+
const evidence = block.match(/^\s*- (?:Issue|Evidence):\s*(.+)$/im)?.[1]?.trim();
|
|
59
|
+
const suggestion = block.match(/^\s*- (?:Suggestion|Fix):\s*(.+)$/im)?.[1]?.trim();
|
|
60
|
+
const f = { severity, category, claim: claimLine, source: 'implementer' };
|
|
61
|
+
if (evidence)
|
|
62
|
+
f.evidence = evidence;
|
|
63
|
+
if (suggestion)
|
|
64
|
+
f.suggestion = suggestion;
|
|
65
|
+
findings.push(f);
|
|
66
|
+
}
|
|
67
|
+
return findings;
|
|
68
|
+
}
|
|
69
|
+
function defaultImplementPayload(self) {
|
|
70
|
+
return {
|
|
71
|
+
workerSelfAssessment: self,
|
|
72
|
+
summary: '',
|
|
73
|
+
filesChanged: [],
|
|
74
|
+
findings: [],
|
|
75
|
+
citations: [],
|
|
76
|
+
criteriaSucceeded: [],
|
|
77
|
+
criteriaErrors: [],
|
|
78
|
+
sourcesUsed: [],
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
function tel(t0, turn, stop) {
|
|
82
|
+
return {
|
|
83
|
+
stageLabel: 'implement',
|
|
84
|
+
durationMs: Date.now() - t0,
|
|
85
|
+
costUSD: turn.costUSD ?? null,
|
|
86
|
+
turnsUsed: turn.turnsUsed ?? 0,
|
|
87
|
+
stopReason: stop,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
export async function implementHandler(state) {
|
|
91
|
+
const t0 = Date.now();
|
|
92
|
+
try {
|
|
66
93
|
// Snapshot HEAD + untracked files before the worker runs — Committing reads
|
|
67
94
|
// this to detect a worker-authored commit (HEAD moved between snapshots).
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
95
|
+
capturePreTaskState(state);
|
|
96
|
+
const ctx = state.executionContext;
|
|
97
|
+
if (!ctx) {
|
|
98
|
+
return {
|
|
99
|
+
outcome: 'halt',
|
|
100
|
+
comment: 'implement halted: state.executionContext not set',
|
|
101
|
+
payload: defaultImplementPayload('failed'),
|
|
102
|
+
telemetry: tel(t0, {}, 'transport_error'),
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
// v5: Call performImplementation to orchestrate read or write routes
|
|
106
|
+
// and populate state.lastRunResult.
|
|
107
|
+
await performImplementation(state);
|
|
108
|
+
const result = state.lastRunResult;
|
|
109
|
+
if (!result) {
|
|
110
|
+
return {
|
|
111
|
+
outcome: 'halt',
|
|
112
|
+
comment: 'implement halted: no result from performImplementation',
|
|
113
|
+
payload: defaultImplementPayload('failed'),
|
|
114
|
+
telemetry: tel(t0, {}, 'transport_error'),
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
// Transform lastRunResult into ImplementPayload for the stage gate.
|
|
118
|
+
// Note: parseWorkerOutput extracts filesChanged from the structured output JSON.
|
|
119
|
+
const parsed = parseWorkerOutput(result.output ?? '');
|
|
120
|
+
const payload = {
|
|
121
|
+
workerSelfAssessment: result.workerStatus ?? 'failed',
|
|
122
|
+
summary: parsed.summary ?? result.summary ?? '',
|
|
123
|
+
filesChanged: parsed.filesChanged ?? result.filesWritten ?? result.filesChanged ?? [],
|
|
124
|
+
findings: result.findings ?? [],
|
|
125
|
+
citations: (result.citations ?? parsed.citations ?? []),
|
|
126
|
+
criteriaSucceeded: result.criteriaSucceeded ?? parsed.criteriaSucceeded ?? [],
|
|
127
|
+
criteriaErrors: result.criteriaErrors ?? parsed.criteriaErrors ?? [],
|
|
128
|
+
sourcesUsed: result.sourcesUsed ?? parsed.sourcesUsed ?? [],
|
|
129
|
+
};
|
|
130
|
+
// Halt ONLY on hard worker error. 'incomplete' (worker hit a cap but
|
|
131
|
+
// still produced output) flows through to subsequent stages so the
|
|
132
|
+
// compose envelope reports the truthful incomplete state — same as
|
|
133
|
+
// the legacy executor's behavior.
|
|
134
|
+
if (result.status === 'error') {
|
|
135
|
+
return {
|
|
136
|
+
outcome: 'halt',
|
|
137
|
+
comment: `implement status: ${result.status}`,
|
|
138
|
+
payload,
|
|
139
|
+
telemetry: tel(t0, result, 'normal'),
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
return {
|
|
143
|
+
outcome: 'advance',
|
|
144
|
+
payload,
|
|
145
|
+
telemetry: tel(t0, result, 'normal'),
|
|
87
146
|
};
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
147
|
+
}
|
|
148
|
+
catch (err) {
|
|
149
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
150
|
+
return {
|
|
151
|
+
outcome: 'halt',
|
|
152
|
+
comment: `implement crashed: ${msg}`,
|
|
153
|
+
payload: defaultImplementPayload('failed'),
|
|
154
|
+
telemetry: {
|
|
155
|
+
stageLabel: 'implement',
|
|
156
|
+
durationMs: Date.now() - t0,
|
|
157
|
+
costUSD: null,
|
|
158
|
+
turnsUsed: 0,
|
|
159
|
+
stopReason: 'transport_error',
|
|
160
|
+
},
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
// v4-compat shim: tests/helpers/bootstrap.ts and a few other call sites use
|
|
165
|
+
// `new TaskExecutor(emitter)` and `executor.handler.bind(executor)`. The v5
|
|
166
|
+
// stage handler is the bare `implementHandler` function above. This class
|
|
167
|
+
// preserves the test-fixture contract while delegating to the v5 handler.
|
|
168
|
+
export class TaskExecutor {
|
|
169
|
+
_emitter;
|
|
170
|
+
constructor(_emitter) {
|
|
171
|
+
this._emitter = _emitter;
|
|
172
|
+
}
|
|
173
|
+
handler = async (state) => {
|
|
174
|
+
await implementHandler(state);
|
|
96
175
|
};
|
|
97
176
|
}
|
|
98
177
|
//# sourceMappingURL=task-executor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-executor.js","sourceRoot":"","sources":["../../../src/lifecycle/handlers/task-executor.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"task-executor.js","sourceRoot":"","sources":["../../../src/lifecycle/handlers/task-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { LifecycleState } from '../stage-plan-types.js';
|
|
2
|
+
import type { StageGate, TerminalPayload } from '../stage-io.js';
|
|
2
3
|
export declare function registerTerminalBlockHandler(state: LifecycleState): void;
|
|
3
4
|
export declare function emitTaskTerminalHandler(state: LifecycleState): void;
|
|
4
5
|
export declare function persistToBatchRegistryHandler(state: LifecycleState): void;
|
|
@@ -11,4 +12,25 @@ export declare function persistToBatchRegistryHandler(state: LifecycleState): vo
|
|
|
11
12
|
*/
|
|
12
13
|
export declare function recordTaskCompletedHandler(state: LifecycleState): Promise<void>;
|
|
13
14
|
export declare function flushTelemetryHandler(state: LifecycleState): Promise<void>;
|
|
15
|
+
/**
|
|
16
|
+
* v5 unified `terminalHandler` — single entry point that runs the five
|
|
17
|
+
* terminal side effects in idempotency-safe order and returns the
|
|
18
|
+
* `StageGate<TerminalPayload>` the v5 driver expects.
|
|
19
|
+
*
|
|
20
|
+
* The five sub-handlers above are this function's building blocks: one per
|
|
21
|
+
* side effect, kept individually exported so each can be unit-tested in
|
|
22
|
+
* isolation (tests/lifecycle/handlers/terminal-handlers.test.ts) and so
|
|
23
|
+
* observability AC tests can exercise per-side-effect failures
|
|
24
|
+
* (tests/acceptance/stage-io-observability.test.ts). The unified
|
|
25
|
+
* `terminalHandler` is what STAGE_PLAN's `terminal` stage actually invokes;
|
|
26
|
+
* it sequences the five sub-handlers in idempotency-safe order and folds
|
|
27
|
+
* their state-slot guards into the TerminalPayload shape. Per spec §4.7 the side-effect map carries one
|
|
28
|
+
* boolean per side effect — true = succeeded at least once for this state
|
|
29
|
+
* instance; false = attempted-and-failed or never-attempted-because-context-
|
|
30
|
+
* missing.
|
|
31
|
+
*
|
|
32
|
+
* Idempotency: re-invocation MUST be safe and return the same payload (each
|
|
33
|
+
* sub-handler short-circuits on its state-slot guard, e.g. `state.terminalBlockId`).
|
|
34
|
+
*/
|
|
35
|
+
export declare function terminalHandler(state: LifecycleState): Promise<StageGate<TerminalPayload>>;
|
|
14
36
|
//# sourceMappingURL=terminal-handlers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal-handlers.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/handlers/terminal-handlers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"terminal-handlers.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/handlers/terminal-handlers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG7D,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAiCjE,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAqBxE;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAyHnE;AAMD,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAkBzE;AAED;;;;;;GAMG;AACH,wBAAsB,0BAA0B,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA0CrF;AAsED,wBAAsB,qBAAqB,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBhF;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAwDhG"}
|