@herbcaudill/ralph 0.6.5 → 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/README.md +13 -100
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +21 -7
- package/dist/cli.js.map +1 -1
- package/dist/components/App.d.ts +2 -1
- package/dist/components/App.d.ts.map +1 -1
- package/dist/components/App.js +5 -1
- package/dist/components/App.js.map +1 -1
- package/dist/components/InitRalph.js +5 -5
- package/dist/components/InitRalph.js.map +1 -1
- package/dist/components/IterationRunner.d.ts +1 -1
- package/dist/components/IterationRunner.d.ts.map +1 -1
- package/dist/components/IterationRunner.js +212 -56
- package/dist/components/IterationRunner.js.map +1 -1
- package/dist/components/IterationRunner.test.js +2 -2
- package/dist/components/IterationRunner.test.js.map +1 -1
- package/dist/components/JsonOutput.d.ts +14 -0
- package/dist/components/JsonOutput.d.ts.map +1 -0
- package/dist/components/JsonOutput.js +246 -0
- package/dist/components/JsonOutput.js.map +1 -0
- package/dist/components/ProgressBar.d.ts +7 -5
- package/dist/components/ProgressBar.d.ts.map +1 -1
- package/dist/components/ProgressBar.js +7 -5
- package/dist/components/ProgressBar.js.map +1 -1
- package/dist/components/ProgressBar.test.js +24 -11
- package/dist/components/ProgressBar.test.js.map +1 -1
- package/dist/lib/MessageQueue.d.ts +2 -0
- package/dist/lib/MessageQueue.d.ts.map +1 -1
- package/dist/lib/MessageQueue.js +35 -2
- package/dist/lib/MessageQueue.js.map +1 -1
- package/dist/lib/MessageQueue.test.js +146 -0
- package/dist/lib/MessageQueue.test.js.map +1 -1
- package/dist/lib/StdinCommandHandler.d.ts +42 -0
- package/dist/lib/StdinCommandHandler.d.ts.map +1 -0
- package/dist/lib/StdinCommandHandler.js +102 -0
- package/dist/lib/StdinCommandHandler.js.map +1 -0
- package/dist/lib/StdinCommandHandler.test.d.ts +2 -0
- package/dist/lib/StdinCommandHandler.test.d.ts.map +1 -0
- package/dist/lib/StdinCommandHandler.test.js +93 -0
- package/dist/lib/StdinCommandHandler.test.js.map +1 -0
- package/dist/lib/debug.d.ts +18 -0
- package/dist/lib/debug.d.ts.map +1 -0
- package/dist/lib/debug.js +44 -0
- package/dist/lib/debug.js.map +1 -0
- package/dist/lib/formatContentBlock.js +1 -1
- package/dist/lib/formatContentBlock.js.map +1 -1
- package/dist/lib/getNextLogFile.d.ts +12 -0
- package/dist/lib/getNextLogFile.d.ts.map +1 -0
- package/dist/lib/getNextLogFile.js +52 -0
- package/dist/lib/getNextLogFile.js.map +1 -0
- package/dist/lib/getNextLogFile.test.d.ts +2 -0
- package/dist/lib/getNextLogFile.test.d.ts.map +1 -0
- package/dist/lib/getNextLogFile.test.js +65 -0
- package/dist/lib/getNextLogFile.test.js.map +1 -0
- package/dist/lib/getOpenIssueCount.d.ts +11 -0
- package/dist/lib/getOpenIssueCount.d.ts.map +1 -0
- package/dist/lib/getOpenIssueCount.js +31 -0
- package/dist/lib/getOpenIssueCount.js.map +1 -0
- package/dist/lib/getOpenIssueCount.test.d.ts +2 -0
- package/dist/lib/getOpenIssueCount.test.d.ts.map +1 -0
- package/dist/lib/getOpenIssueCount.test.js +65 -0
- package/dist/lib/getOpenIssueCount.test.js.map +1 -0
- package/dist/lib/getProgress.d.ts +22 -6
- package/dist/lib/getProgress.d.ts.map +1 -1
- package/dist/lib/getProgress.js +69 -23
- package/dist/lib/getProgress.js.map +1 -1
- package/dist/lib/getProgress.test.js +68 -34
- package/dist/lib/getProgress.test.js.map +1 -1
- package/package.json +1 -1
- package/templates/prompt-beads.md +5 -5
- package/dist/lib/cleanupAllWorktrees.d.ts +0 -5
- package/dist/lib/cleanupAllWorktrees.d.ts.map +0 -1
- package/dist/lib/cleanupAllWorktrees.js +0 -23
- package/dist/lib/cleanupAllWorktrees.js.map +0 -1
- package/dist/lib/cleanupWorktree.d.ts +0 -6
- package/dist/lib/cleanupWorktree.d.ts.map +0 -1
- package/dist/lib/cleanupWorktree.js +0 -33
- package/dist/lib/cleanupWorktree.js.map +0 -1
- package/dist/lib/copyRalphFilesFromWorktree.d.ts +0 -5
- package/dist/lib/copyRalphFilesFromWorktree.d.ts.map +0 -1
- package/dist/lib/copyRalphFilesFromWorktree.js +0 -19
- package/dist/lib/copyRalphFilesFromWorktree.js.map +0 -1
- package/dist/lib/copyRalphFilesToWorktree.d.ts +0 -5
- package/dist/lib/copyRalphFilesToWorktree.d.ts.map +0 -1
- package/dist/lib/copyRalphFilesToWorktree.js +0 -21
- package/dist/lib/copyRalphFilesToWorktree.js.map +0 -1
- package/dist/lib/createWorktree.d.ts +0 -6
- package/dist/lib/createWorktree.d.ts.map +0 -1
- package/dist/lib/createWorktree.js +0 -33
- package/dist/lib/createWorktree.js.map +0 -1
- package/dist/lib/getGitRoot.d.ts +0 -5
- package/dist/lib/getGitRoot.d.ts.map +0 -1
- package/dist/lib/getGitRoot.js +0 -18
- package/dist/lib/getGitRoot.js.map +0 -1
- package/dist/lib/installDependencies.d.ts +0 -5
- package/dist/lib/installDependencies.d.ts.map +0 -1
- package/dist/lib/installDependencies.js +0 -23
- package/dist/lib/installDependencies.js.map +0 -1
- package/dist/lib/installDependencies.test.d.ts +0 -2
- package/dist/lib/installDependencies.test.d.ts.map +0 -1
- package/dist/lib/installDependencies.test.js +0 -37
- package/dist/lib/installDependencies.test.js.map +0 -1
- package/dist/lib/mergeWorktreeToMain.d.ts +0 -6
- package/dist/lib/mergeWorktreeToMain.d.ts.map +0 -1
- package/dist/lib/mergeWorktreeToMain.js +0 -54
- package/dist/lib/mergeWorktreeToMain.js.map +0 -1
- package/dist/lib/outputState.d.ts +0 -5
- package/dist/lib/outputState.d.ts.map +0 -1
- package/dist/lib/outputState.js +0 -6
- package/dist/lib/outputState.js.map +0 -1
- package/dist/lib/popStash.d.ts +0 -5
- package/dist/lib/popStash.d.ts.map +0 -1
- package/dist/lib/popStash.js +0 -17
- package/dist/lib/popStash.js.map +0 -1
- package/dist/lib/processEvent.d.ts +0 -2
- package/dist/lib/processEvent.d.ts.map +0 -1
- package/dist/lib/processEvent.js +0 -100
- package/dist/lib/processEvent.js.map +0 -1
- package/dist/lib/replayLog.d.ts +0 -2
- package/dist/lib/replayLog.d.ts.map +0 -1
- package/dist/lib/replayLog.js +0 -35
- package/dist/lib/replayLog.js.map +0 -1
- package/dist/lib/resolveConflicts.d.ts +0 -6
- package/dist/lib/resolveConflicts.d.ts.map +0 -1
- package/dist/lib/resolveConflicts.js +0 -76
- package/dist/lib/resolveConflicts.js.map +0 -1
- package/dist/lib/runIteration.d.ts +0 -2
- package/dist/lib/runIteration.d.ts.map +0 -1
- package/dist/lib/runIteration.js +0 -91
- package/dist/lib/runIteration.js.map +0 -1
- package/dist/lib/showToolUse.d.ts +0 -2
- package/dist/lib/showToolUse.d.ts.map +0 -1
- package/dist/lib/showToolUse.js +0 -17
- package/dist/lib/showToolUse.js.map +0 -1
- package/dist/lib/signalHandler.d.ts +0 -3
- package/dist/lib/signalHandler.d.ts.map +0 -1
- package/dist/lib/signalHandler.js +0 -23
- package/dist/lib/signalHandler.js.map +0 -1
- package/dist/lib/stashChanges.d.ts +0 -6
- package/dist/lib/stashChanges.d.ts.map +0 -1
- package/dist/lib/stashChanges.js +0 -27
- package/dist/lib/stashChanges.js.map +0 -1
- package/dist/lib/textFormatting.d.ts +0 -4
- package/dist/lib/textFormatting.d.ts.map +0 -1
- package/dist/lib/textFormatting.js +0 -94
- package/dist/lib/textFormatting.js.map +0 -1
- package/dist/lib/types.d.ts +0 -13
- package/dist/lib/types.d.ts.map +0 -1
- package/dist/lib/types.js +0 -15
- package/dist/lib/types.js.map +0 -1
- package/dist/lib/worktree.d.ts +0 -43
- package/dist/lib/worktree.d.ts.map +0 -1
- package/dist/lib/worktree.js +0 -210
- package/dist/lib/worktree.js.map +0 -1
- package/dist/ui/EventProcessor.d.ts +0 -11
- package/dist/ui/EventProcessor.d.ts.map +0 -1
- package/dist/ui/EventProcessor.js +0 -95
- package/dist/ui/EventProcessor.js.map +0 -1
- package/dist/ui/IterationApp.d.ts +0 -10
- package/dist/ui/IterationApp.d.ts.map +0 -1
- package/dist/ui/IterationApp.js +0 -21
- package/dist/ui/IterationApp.js.map +0 -1
- package/dist/ui/IterationUI.d.ts +0 -13
- package/dist/ui/IterationUI.d.ts.map +0 -1
- package/dist/ui/IterationUI.js +0 -19
- package/dist/ui/IterationUI.js.map +0 -1
- package/dist/ui/TextDisplay.d.ts +0 -7
- package/dist/ui/TextDisplay.d.ts.map +0 -1
- package/dist/ui/TextDisplay.js +0 -41
- package/dist/ui/TextDisplay.js.map +0 -1
- package/dist/ui/ToolUseDisplay.d.ts +0 -10
- package/dist/ui/ToolUseDisplay.d.ts.map +0 -1
- package/dist/ui/ToolUseDisplay.js +0 -10
- package/dist/ui/ToolUseDisplay.js.map +0 -1
- /package/templates/{prompt.md → prompt-todos.md} +0 -0
|
@@ -4,8 +4,8 @@ import Spinner from "ink-spinner";
|
|
|
4
4
|
import BigText from "ink-big-text";
|
|
5
5
|
import Gradient from "ink-gradient";
|
|
6
6
|
import { EnhancedTextInput } from "./EnhancedTextInput.js";
|
|
7
|
-
import { appendFileSync, writeFileSync, readFileSync,
|
|
8
|
-
import { join, dirname } from "path";
|
|
7
|
+
import { appendFileSync, writeFileSync, readFileSync, existsSync } from "fs";
|
|
8
|
+
import { join, dirname, basename } from "path";
|
|
9
9
|
import { fileURLToPath } from "url";
|
|
10
10
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
11
11
|
import { query } from "@anthropic-ai/claude-agent-sdk";
|
|
@@ -13,21 +13,25 @@ import { Header } from "./Header.js";
|
|
|
13
13
|
import { eventToBlocks } from "./eventToBlocks.js";
|
|
14
14
|
import { formatContentBlock } from "../lib/formatContentBlock.js";
|
|
15
15
|
import { addTodo } from "../lib/addTodo.js";
|
|
16
|
-
import { getProgress,
|
|
16
|
+
import { getProgress, captureStartupSnapshot, } from "../lib/getProgress.js";
|
|
17
17
|
import { ProgressBar } from "./ProgressBar.js";
|
|
18
18
|
import { watchForNewIssues } from "../lib/beadsClient.js";
|
|
19
19
|
import { MessageQueue, createUserMessage } from "../lib/MessageQueue.js";
|
|
20
|
-
|
|
20
|
+
import { createDebugLogger } from "../lib/debug.js";
|
|
21
|
+
import { useTerminalSize } from "../lib/useTerminalSize.js";
|
|
22
|
+
import { getNextLogFile } from "../lib/getNextLogFile.js";
|
|
23
|
+
const log = createDebugLogger("iteration");
|
|
21
24
|
const ralphDir = join(process.cwd(), ".ralph");
|
|
22
25
|
const promptFile = join(ralphDir, "prompt.md");
|
|
23
26
|
const todoFile = join(ralphDir, "todo.md");
|
|
24
27
|
const beadsDir = join(process.cwd(), ".beads");
|
|
25
28
|
const templatesDir = join(__dirname, "..", "..", "templates");
|
|
29
|
+
const repoName = basename(process.cwd());
|
|
26
30
|
/**
|
|
27
31
|
* Get the prompt content, falling back to templates if .ralph/prompt.md doesn't exist.
|
|
28
32
|
* Uses the appropriate template based on the project setup:
|
|
29
33
|
* - If .beads directory exists OR no .ralph/todo.md: use prompt-beads.md
|
|
30
|
-
* - If .ralph/todo.md exists: use prompt.md (todo-based workflow)
|
|
34
|
+
* - If .ralph/todo.md exists: use prompt-todos.md (todo-based workflow)
|
|
31
35
|
*/
|
|
32
36
|
export const getPromptContent = () => {
|
|
33
37
|
// First, try to read from .ralph/prompt.md
|
|
@@ -36,7 +40,7 @@ export const getPromptContent = () => {
|
|
|
36
40
|
}
|
|
37
41
|
// Fall back to templates based on project setup
|
|
38
42
|
const useBeadsTemplate = existsSync(beadsDir) || !existsSync(todoFile);
|
|
39
|
-
const templateFile = useBeadsTemplate ? "prompt-beads.md" : "prompt.md";
|
|
43
|
+
const templateFile = useBeadsTemplate ? "prompt-beads.md" : "prompt-todos.md";
|
|
40
44
|
const templatePath = join(templatesDir, templateFile);
|
|
41
45
|
if (existsSync(templatePath)) {
|
|
42
46
|
return readFileSync(templatePath, "utf-8");
|
|
@@ -58,6 +62,8 @@ const sdkMessageToEvent = (message) => {
|
|
|
58
62
|
// as it builds up. Each snapshot may contain different parts of the message content,
|
|
59
63
|
// so we need to merge them and deduplicate.
|
|
60
64
|
const processEvents = (events) => {
|
|
65
|
+
const blocks = [];
|
|
66
|
+
// First pass: collect all assistant message content and track message order
|
|
61
67
|
const assistantEvents = events.filter(event => event.type === "assistant");
|
|
62
68
|
// Collect all content blocks from all snapshots of the same message
|
|
63
69
|
const messageMap = new Map();
|
|
@@ -130,10 +136,36 @@ const processEvents = (events) => {
|
|
|
130
136
|
},
|
|
131
137
|
};
|
|
132
138
|
});
|
|
133
|
-
|
|
139
|
+
const assistantBlocks = mergedEvents.flatMap(event => eventToBlocks(event));
|
|
140
|
+
// Second pass: process events in order, including user messages
|
|
141
|
+
// Track which user messages and assistant messages we've already seen
|
|
142
|
+
const processedUserIds = new Set();
|
|
143
|
+
const processedAssistantIds = new Set();
|
|
144
|
+
for (const event of events) {
|
|
145
|
+
if (event.type === "user") {
|
|
146
|
+
const message = event.message;
|
|
147
|
+
const messageId = message?.id ?? `user-${Date.now()}`;
|
|
148
|
+
if (!processedUserIds.has(messageId)) {
|
|
149
|
+
processedUserIds.add(messageId);
|
|
150
|
+
blocks.push(...eventToBlocks(event));
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
else if (event.type === "assistant") {
|
|
154
|
+
const message = event.message;
|
|
155
|
+
const messageId = message?.id;
|
|
156
|
+
if (messageId && !processedAssistantIds.has(messageId)) {
|
|
157
|
+
processedAssistantIds.add(messageId);
|
|
158
|
+
// Find the merged version of this message
|
|
159
|
+
const merged = assistantBlocks.filter(b => b.id.startsWith(messageId));
|
|
160
|
+
blocks.push(...merged);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
return blocks;
|
|
134
165
|
};
|
|
135
166
|
export const IterationRunner = ({ totalIterations, claudeVersion, ralphVersion, watch }) => {
|
|
136
167
|
const { exit } = useApp();
|
|
168
|
+
const { columns } = useTerminalSize();
|
|
137
169
|
const [currentIteration, setCurrentIteration] = useState(1);
|
|
138
170
|
const [events, setEvents] = useState([]);
|
|
139
171
|
const eventsRef = useRef([]);
|
|
@@ -142,16 +174,24 @@ export const IterationRunner = ({ totalIterations, claudeVersion, ralphVersion,
|
|
|
142
174
|
const [isAddingTodo, setIsAddingTodo] = useState(false);
|
|
143
175
|
const [todoText, setTodoText] = useState("");
|
|
144
176
|
const [todoMessage, setTodoMessage] = useState(null);
|
|
145
|
-
const [isAddingUserMessage, setIsAddingUserMessage] = useState(false);
|
|
146
177
|
const [userMessageText, setUserMessageText] = useState("");
|
|
147
178
|
const [userMessageStatus, setUserMessageStatus] = useState(null);
|
|
148
179
|
const [hasTodoFile, setHasTodoFile] = useState(false);
|
|
149
|
-
const [
|
|
150
|
-
const [progressData, setProgressData] = useState(() =>
|
|
180
|
+
const [startupSnapshot] = useState(() => captureStartupSnapshot());
|
|
181
|
+
const [progressData, setProgressData] = useState(() => {
|
|
182
|
+
const snapshot = captureStartupSnapshot();
|
|
183
|
+
if (!snapshot)
|
|
184
|
+
return { type: "none", completed: 0, total: 0 };
|
|
185
|
+
return { type: snapshot.type, completed: 0, total: snapshot.initialCount };
|
|
186
|
+
});
|
|
151
187
|
const [isWatching, setIsWatching] = useState(false);
|
|
152
188
|
const [detectedIssue, setDetectedIssue] = useState(null);
|
|
153
189
|
const watchCleanupRef = useRef(null);
|
|
154
190
|
const [watchCycle, setWatchCycle] = useState(0); // Increments to force useEffect re-run
|
|
191
|
+
const [stopAfterCurrent, setStopAfterCurrent] = useState(false); // Stop gracefully after current iteration
|
|
192
|
+
const stopAfterCurrentRef = useRef(false); // Ref to access in async callbacks
|
|
193
|
+
const [isPaused, setIsPaused] = useState(false); // Pause after current iteration completes
|
|
194
|
+
const isPausedRef = useRef(false); // Ref to access in async callbacks
|
|
155
195
|
// Track static items that have been rendered (for Ink's Static component)
|
|
156
196
|
const [staticItems, setStaticItems] = useState([
|
|
157
197
|
{ type: "header", claudeVersion, ralphVersion, key: "header" },
|
|
@@ -160,6 +200,8 @@ export const IterationRunner = ({ totalIterations, claudeVersion, ralphVersion,
|
|
|
160
200
|
const lastIterationRef = useRef(0);
|
|
161
201
|
// Message queue for sending user messages to Claude while running
|
|
162
202
|
const messageQueueRef = useRef(null);
|
|
203
|
+
// Log file path for this run (set once at startup, persisted across iterations)
|
|
204
|
+
const logFileRef = useRef(null);
|
|
163
205
|
// Only use input handling if stdin supports raw mode
|
|
164
206
|
const stdinSupportsRawMode = process.stdin.isTTY === true;
|
|
165
207
|
// Handle Ctrl-T to add a new todo
|
|
@@ -189,11 +231,10 @@ export const IterationRunner = ({ totalIterations, claudeVersion, ralphVersion,
|
|
|
189
231
|
setTimeout(() => setTodoMessage(null), 5000);
|
|
190
232
|
}
|
|
191
233
|
};
|
|
192
|
-
// Handle
|
|
234
|
+
// Handle submitting a user message to Claude
|
|
193
235
|
const handleUserMessageSubmit = (text) => {
|
|
194
236
|
const trimmed = text.trim();
|
|
195
237
|
if (!trimmed) {
|
|
196
|
-
setIsAddingUserMessage(false);
|
|
197
238
|
setUserMessageText("");
|
|
198
239
|
return;
|
|
199
240
|
}
|
|
@@ -211,7 +252,7 @@ export const IterationRunner = ({ totalIterations, claudeVersion, ralphVersion,
|
|
|
211
252
|
},
|
|
212
253
|
};
|
|
213
254
|
setEvents(prev => [...prev, displayEvent]);
|
|
214
|
-
|
|
255
|
+
// No confirmation message - the user message appears directly in the stream
|
|
215
256
|
}
|
|
216
257
|
else {
|
|
217
258
|
setUserMessageStatus({
|
|
@@ -220,44 +261,71 @@ export const IterationRunner = ({ totalIterations, claudeVersion, ralphVersion,
|
|
|
220
261
|
});
|
|
221
262
|
}
|
|
222
263
|
setUserMessageText("");
|
|
223
|
-
setIsAddingUserMessage(false);
|
|
224
264
|
// Clear status message after 3 seconds
|
|
225
265
|
setTimeout(() => setUserMessageStatus(null), 3000);
|
|
226
266
|
};
|
|
227
|
-
// Handle keyboard input for Ctrl-T (todo)
|
|
267
|
+
// Handle keyboard input for Ctrl-T (todo), Ctrl-S (stop), and Escape (cancel todo input)
|
|
228
268
|
useInput((input, key) => {
|
|
229
269
|
// Ctrl-T to start adding a todo (only if todo.md exists)
|
|
230
|
-
if (key.ctrl && input === "t" && hasTodoFile
|
|
270
|
+
if (key.ctrl && input === "t" && hasTodoFile) {
|
|
231
271
|
setIsAddingTodo(true);
|
|
232
272
|
setTodoText("");
|
|
233
273
|
setTodoMessage(null);
|
|
234
274
|
}
|
|
235
|
-
// Ctrl-
|
|
236
|
-
if (key.ctrl && input === "
|
|
237
|
-
|
|
238
|
-
setUserMessageText("");
|
|
239
|
-
setUserMessageStatus(null);
|
|
275
|
+
// Ctrl-S to request stop after current iteration
|
|
276
|
+
if (key.ctrl && input === "s" && isRunning && !stopAfterCurrent) {
|
|
277
|
+
setStopAfterCurrent(true);
|
|
240
278
|
}
|
|
241
|
-
//
|
|
242
|
-
if (key.
|
|
243
|
-
|
|
244
|
-
|
|
279
|
+
// Ctrl-P to toggle pause state
|
|
280
|
+
if (key.ctrl && input === "p") {
|
|
281
|
+
if (isPaused) {
|
|
282
|
+
// Resume - if we were paused between iterations, trigger next iteration
|
|
283
|
+
setIsPaused(false);
|
|
284
|
+
if (!isRunning) {
|
|
285
|
+
setTimeout(() => setCurrentIteration(i => i + 1), 100);
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
else if (isRunning) {
|
|
289
|
+
// Request pause after current iteration
|
|
290
|
+
setIsPaused(true);
|
|
291
|
+
}
|
|
245
292
|
}
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
293
|
+
// Escape to cancel todo input
|
|
294
|
+
if (key.escape) {
|
|
295
|
+
if (isAddingTodo) {
|
|
296
|
+
// Cancel todo input
|
|
297
|
+
setIsAddingTodo(false);
|
|
298
|
+
setTodoText("");
|
|
299
|
+
}
|
|
249
300
|
}
|
|
250
301
|
}, { isActive: stdinSupportsRawMode });
|
|
251
302
|
// Keep ref in sync with events state for access in callbacks
|
|
252
303
|
useEffect(() => {
|
|
253
304
|
eventsRef.current = events;
|
|
254
305
|
}, [events]);
|
|
306
|
+
// Keep stopAfterCurrent ref in sync with state for access in async callbacks
|
|
307
|
+
useEffect(() => {
|
|
308
|
+
stopAfterCurrentRef.current = stopAfterCurrent;
|
|
309
|
+
}, [stopAfterCurrent]);
|
|
310
|
+
// Keep isPaused ref in sync with state for access in async callbacks
|
|
311
|
+
useEffect(() => {
|
|
312
|
+
isPausedRef.current = isPaused;
|
|
313
|
+
}, [isPaused]);
|
|
255
314
|
// Update progress data when iteration changes or running stops
|
|
256
315
|
useEffect(() => {
|
|
257
|
-
if (!isRunning) {
|
|
258
|
-
setProgressData(getProgress(
|
|
316
|
+
if (!isRunning && startupSnapshot) {
|
|
317
|
+
setProgressData(getProgress(startupSnapshot.initialCount, startupSnapshot.timestamp));
|
|
259
318
|
}
|
|
260
|
-
}, [currentIteration, isRunning,
|
|
319
|
+
}, [currentIteration, isRunning, startupSnapshot]);
|
|
320
|
+
// Poll progress data periodically while running to catch newly created/closed issues
|
|
321
|
+
useEffect(() => {
|
|
322
|
+
if (!isRunning || !startupSnapshot)
|
|
323
|
+
return;
|
|
324
|
+
const pollInterval = setInterval(() => {
|
|
325
|
+
setProgressData(getProgress(startupSnapshot.initialCount, startupSnapshot.timestamp));
|
|
326
|
+
}, 5000); // Poll every 5 seconds
|
|
327
|
+
return () => clearInterval(pollInterval);
|
|
328
|
+
}, [isRunning, startupSnapshot]);
|
|
261
329
|
// Watch for new issues when in watch mode
|
|
262
330
|
useEffect(() => {
|
|
263
331
|
if (!isWatching)
|
|
@@ -265,6 +333,11 @@ export const IterationRunner = ({ totalIterations, claudeVersion, ralphVersion,
|
|
|
265
333
|
// Start watching for new issues
|
|
266
334
|
const cleanup = watchForNewIssues(issue => {
|
|
267
335
|
setDetectedIssue(issue);
|
|
336
|
+
// Refresh progress data to pick up the new issue
|
|
337
|
+
// The timestamp-based counting will automatically include it
|
|
338
|
+
if (startupSnapshot) {
|
|
339
|
+
setProgressData(getProgress(startupSnapshot.initialCount, startupSnapshot.timestamp));
|
|
340
|
+
}
|
|
268
341
|
// Brief pause to show the detected issue, then resume
|
|
269
342
|
setTimeout(() => {
|
|
270
343
|
setIsWatching(false);
|
|
@@ -281,7 +354,7 @@ export const IterationRunner = ({ totalIterations, claudeVersion, ralphVersion,
|
|
|
281
354
|
cleanup();
|
|
282
355
|
watchCleanupRef.current = null;
|
|
283
356
|
};
|
|
284
|
-
}, [isWatching]);
|
|
357
|
+
}, [isWatching, startupSnapshot]);
|
|
285
358
|
// Convert events to static items as they arrive
|
|
286
359
|
useEffect(() => {
|
|
287
360
|
const newItems = [];
|
|
@@ -315,16 +388,40 @@ export const IterationRunner = ({ totalIterations, claudeVersion, ralphVersion,
|
|
|
315
388
|
exit();
|
|
316
389
|
return;
|
|
317
390
|
}
|
|
318
|
-
//
|
|
319
|
-
|
|
320
|
-
|
|
391
|
+
// Check if there are any tasks available before starting a round
|
|
392
|
+
// This avoids running Claude unnecessarily when there's no work to do
|
|
393
|
+
const currentProgress = startupSnapshot ?
|
|
394
|
+
getProgress(startupSnapshot.initialCount, startupSnapshot.timestamp)
|
|
395
|
+
: { type: "none", completed: 0, total: 0 };
|
|
396
|
+
// All tasks are complete when completed equals total
|
|
397
|
+
if (currentProgress.completed >= currentProgress.total && currentProgress.type !== "none") {
|
|
398
|
+
// No tasks available - go straight to watching if enabled
|
|
399
|
+
if (watch) {
|
|
400
|
+
setIsWatching(true);
|
|
401
|
+
}
|
|
402
|
+
else {
|
|
403
|
+
exit();
|
|
404
|
+
process.exit(0);
|
|
405
|
+
}
|
|
406
|
+
return;
|
|
407
|
+
}
|
|
408
|
+
// Get or create the log file path for this run
|
|
409
|
+
// Only create a new sequential log file on the first iteration
|
|
410
|
+
if (!logFileRef.current) {
|
|
411
|
+
logFileRef.current = getNextLogFile();
|
|
412
|
+
writeFileSync(logFileRef.current, "");
|
|
413
|
+
}
|
|
414
|
+
const logFile = logFileRef.current;
|
|
321
415
|
setEvents([]);
|
|
322
416
|
// Read prompt (from .ralph/prompt.md or falling back to templates)
|
|
323
417
|
const promptContent = getPromptContent();
|
|
324
418
|
const todoExists = existsSync(todoFile);
|
|
325
419
|
setHasTodoFile(todoExists);
|
|
326
420
|
const todoContent = todoExists ? readFileSync(todoFile, "utf-8") : "";
|
|
327
|
-
const
|
|
421
|
+
const roundHeader = `# Ralph, round ${currentIteration}\n\n`;
|
|
422
|
+
const fullPrompt = todoContent ?
|
|
423
|
+
`${roundHeader}${promptContent}\n\n## Current Todo List\n\n${todoContent}`
|
|
424
|
+
: `${roundHeader}${promptContent}`;
|
|
328
425
|
const abortController = new AbortController();
|
|
329
426
|
setIsRunning(true);
|
|
330
427
|
// Create a message queue for this iteration
|
|
@@ -335,7 +432,9 @@ export const IterationRunner = ({ totalIterations, claudeVersion, ralphVersion,
|
|
|
335
432
|
messageQueue.push(createUserMessage(fullPrompt));
|
|
336
433
|
const runQuery = async () => {
|
|
337
434
|
let finalResult = "";
|
|
435
|
+
log(`Starting iteration ${currentIteration}`);
|
|
338
436
|
try {
|
|
437
|
+
log(`Beginning query() loop`);
|
|
339
438
|
for await (const message of query({
|
|
340
439
|
prompt: messageQueue,
|
|
341
440
|
options: {
|
|
@@ -350,8 +449,9 @@ export const IterationRunner = ({ totalIterations, claudeVersion, ralphVersion,
|
|
|
350
449
|
},
|
|
351
450
|
},
|
|
352
451
|
})) {
|
|
353
|
-
|
|
354
|
-
|
|
452
|
+
log(`Received message type: ${message.type}`);
|
|
453
|
+
// Log raw message to file (JSONL format - one JSON object per line)
|
|
454
|
+
appendFileSync(logFile, JSON.stringify(message) + "\n");
|
|
355
455
|
// Convert to event format for display
|
|
356
456
|
const event = sdkMessageToEvent(message);
|
|
357
457
|
if (event) {
|
|
@@ -361,12 +461,31 @@ export const IterationRunner = ({ totalIterations, claudeVersion, ralphVersion,
|
|
|
361
461
|
if (message.type === "result" &&
|
|
362
462
|
"result" in message &&
|
|
363
463
|
typeof message.result === "string") {
|
|
464
|
+
log(`Received result message`);
|
|
364
465
|
finalResult = message.result;
|
|
466
|
+
// Close the message queue immediately when we get the result.
|
|
467
|
+
// This is critical to prevent hangs: the SDK's streamInput() needs
|
|
468
|
+
// to complete iterating our queue before it can call endInput(),
|
|
469
|
+
// which signals EOF to the CLI. If we wait until after the for-await
|
|
470
|
+
// loop exits, we create a circular dependency that can cause hangs.
|
|
471
|
+
log(`Closing message queue on result`);
|
|
472
|
+
messageQueue.close();
|
|
365
473
|
}
|
|
366
474
|
}
|
|
475
|
+
log(`query() loop completed normally`);
|
|
367
476
|
setIsRunning(false);
|
|
477
|
+
// MessageQueue should already be closed when we received the result message.
|
|
478
|
+
// We ensure it's closed here as a safety measure (close() is idempotent).
|
|
479
|
+
log(`Ensuring message queue is closed`);
|
|
368
480
|
messageQueue.close();
|
|
369
481
|
messageQueueRef.current = null;
|
|
482
|
+
// Check for stop-after-current request
|
|
483
|
+
if (stopAfterCurrentRef.current) {
|
|
484
|
+
log(`Stop after current requested - exiting gracefully`);
|
|
485
|
+
exit();
|
|
486
|
+
process.exit(0);
|
|
487
|
+
return;
|
|
488
|
+
}
|
|
370
489
|
// Check for completion
|
|
371
490
|
if (finalResult.includes("<promise>COMPLETE</promise>")) {
|
|
372
491
|
if (watch) {
|
|
@@ -379,14 +498,23 @@ export const IterationRunner = ({ totalIterations, claudeVersion, ralphVersion,
|
|
|
379
498
|
}
|
|
380
499
|
return;
|
|
381
500
|
}
|
|
501
|
+
// Check for pause request - if paused, we wait for resume via Ctrl-P
|
|
502
|
+
if (isPausedRef.current) {
|
|
503
|
+
log(`Paused after iteration ${currentIteration}`);
|
|
504
|
+
// Don't move to next iteration - the resume handler (Ctrl-P) will trigger it
|
|
505
|
+
return;
|
|
506
|
+
}
|
|
382
507
|
// Move to next iteration
|
|
383
508
|
setTimeout(() => setCurrentIteration(i => i + 1), 500);
|
|
384
509
|
}
|
|
385
510
|
catch (err) {
|
|
511
|
+
log(`query() loop error: ${err instanceof Error ? err.message : String(err)}`);
|
|
386
512
|
setIsRunning(false);
|
|
513
|
+
log(`Closing message queue after error`);
|
|
387
514
|
messageQueue.close();
|
|
388
515
|
messageQueueRef.current = null;
|
|
389
516
|
if (abortController.signal.aborted) {
|
|
517
|
+
log(`Abort signal detected`);
|
|
390
518
|
return; // Intentionally aborted
|
|
391
519
|
}
|
|
392
520
|
setError(`Error running Claude: ${err instanceof Error ? err.message : String(err)}`);
|
|
@@ -398,6 +526,7 @@ export const IterationRunner = ({ totalIterations, claudeVersion, ralphVersion,
|
|
|
398
526
|
};
|
|
399
527
|
runQuery();
|
|
400
528
|
return () => {
|
|
529
|
+
log(`Cleanup: aborting and closing queue for iteration ${currentIteration}`);
|
|
401
530
|
abortController.abort();
|
|
402
531
|
messageQueue.close();
|
|
403
532
|
messageQueueRef.current = null;
|
|
@@ -429,15 +558,16 @@ export const IterationRunner = ({ totalIterations, claudeVersion, ralphVersion,
|
|
|
429
558
|
React.createElement(Text, { dimColor: true }, "(Enter to add, Esc to cancel)"))),
|
|
430
559
|
todoMessage && (React.createElement(Box, { marginTop: 1 },
|
|
431
560
|
React.createElement(Text, { color: todoMessage.type === "success" ? "green" : "red" }, todoMessage.text))),
|
|
432
|
-
|
|
433
|
-
React.createElement(Text, {
|
|
434
|
-
React.createElement(
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
React.createElement(Text, { color: userMessageStatus.type === "success" ? "green"
|
|
561
|
+
!isWatching && (React.createElement(Box, { flexDirection: "column", marginTop: 1 },
|
|
562
|
+
React.createElement(Text, { dimColor: true }, "─".repeat(columns)),
|
|
563
|
+
React.createElement(Box, null,
|
|
564
|
+
React.createElement(Text, { color: isRunning ? "yellow" : "gray" }, "\u276F "),
|
|
565
|
+
React.createElement(EnhancedTextInput, { value: userMessageText, placeholder: isRunning ? "Type a message for Ralph..." : "Waiting for Ralph to start...", onChange: setUserMessageText, onSubmit: handleUserMessageSubmit, focus: isRunning && !isAddingTodo })),
|
|
566
|
+
userMessageStatus && (React.createElement(Text, { color: userMessageStatus.type === "success" ? "green"
|
|
438
567
|
: userMessageStatus.type === "error" ?
|
|
439
568
|
"red"
|
|
440
|
-
: "yellow" }, userMessageStatus.text))
|
|
569
|
+
: "yellow" }, userMessageStatus.text)),
|
|
570
|
+
React.createElement(Text, { dimColor: true }, "─".repeat(columns)))),
|
|
441
571
|
React.createElement(Box, { marginTop: 1, justifyContent: "space-between" },
|
|
442
572
|
isWatching ?
|
|
443
573
|
detectedIssue ?
|
|
@@ -447,18 +577,44 @@ export const IterationRunner = ({ totalIterations, claudeVersion, ralphVersion,
|
|
|
447
577
|
React.createElement(Text, { color: "yellow" }, detectedIssue.IssueID),
|
|
448
578
|
detectedIssue.Title ? ` - ${detectedIssue.Title}` : "")
|
|
449
579
|
: React.createElement(Text, { color: "cyan" },
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
: isRunning ?
|
|
453
|
-
React.createElement(Text, { color: "
|
|
454
|
-
|
|
455
|
-
" Running round ",
|
|
580
|
+
"Waiting for new issues ",
|
|
581
|
+
React.createElement(Spinner, { type: "simpleDotsScrolling" }))
|
|
582
|
+
: isPaused && !isRunning ?
|
|
583
|
+
React.createElement(Text, { color: "magenta" },
|
|
584
|
+
"\u23F8 Paused after round ",
|
|
456
585
|
React.createElement(Text, { color: "yellow" }, currentIteration),
|
|
457
586
|
" ",
|
|
458
|
-
"(
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
587
|
+
React.createElement(Text, { dimColor: true }, "(Ctrl-P to resume)"))
|
|
588
|
+
: isRunning ?
|
|
589
|
+
stopAfterCurrent ?
|
|
590
|
+
React.createElement(Text, { color: "yellow" },
|
|
591
|
+
React.createElement(Spinner, { type: "dots" }),
|
|
592
|
+
" Stopping after round",
|
|
593
|
+
" ",
|
|
594
|
+
React.createElement(Text, { color: "yellow" }, currentIteration),
|
|
595
|
+
" completes...",
|
|
596
|
+
" ",
|
|
597
|
+
React.createElement(Text, { dimColor: true }, "(Ctrl-S pressed)"))
|
|
598
|
+
: isPaused ?
|
|
599
|
+
React.createElement(Text, { color: "magenta" },
|
|
600
|
+
React.createElement(Spinner, { type: "dots" }),
|
|
601
|
+
" Pausing after round",
|
|
602
|
+
" ",
|
|
603
|
+
React.createElement(Text, { color: "yellow" }, currentIteration),
|
|
604
|
+
" completes...",
|
|
605
|
+
" ",
|
|
606
|
+
React.createElement(Text, { dimColor: true }, "(Ctrl-P pressed)"))
|
|
607
|
+
: React.createElement(Text, { color: "cyan" },
|
|
608
|
+
React.createElement(Spinner, { type: "dots" }),
|
|
609
|
+
" Running round ",
|
|
610
|
+
React.createElement(Text, { color: "yellow" }, currentIteration),
|
|
611
|
+
" ",
|
|
612
|
+
"(max ",
|
|
613
|
+
totalIterations,
|
|
614
|
+
")")
|
|
615
|
+
: React.createElement(Text, { color: "cyan" },
|
|
616
|
+
React.createElement(Spinner, { type: "simpleDotsScrolling" }),
|
|
617
|
+
" Waiting for Ralph to start..."),
|
|
618
|
+
progressData.type !== "none" && progressData.total > 0 && (React.createElement(ProgressBar, { completed: progressData.completed, total: progressData.total, repoName: repoName })))));
|
|
463
619
|
};
|
|
464
620
|
//# sourceMappingURL=IterationRunner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IterationRunner.js","sourceRoot":"","sources":["../../src/components/IterationRunner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAC1D,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AACzD,OAAO,OAAO,MAAM,aAAa,CAAA;AACjC,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,QAAQ,MAAM,cAAc,CAAA;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,IAAI,CAAA;AACvF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AAEnC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AACzD,OAAO,EAAE,KAAK,EAAmB,MAAM,gCAAgC,CAAA;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,aAAa,EAAqB,MAAM,oBAAoB,CAAA;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAqB,MAAM,uBAAuB,CAAA;AAC5F,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAmC,MAAM,uBAAuB,CAAA;AAC1F,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAExE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAA;AAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAA;AAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;AAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;AAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAA;AAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,CAAA;AAE7D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAW,EAAE;IAC3C,2CAA2C;IAC3C,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,OAAO,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IAC1C,CAAC;IAED,gDAAgD;IAChD,MAAM,gBAAgB,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;IACtE,MAAM,YAAY,GAAG,gBAAgB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,WAAW,CAAA;IACvE,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAA;IAErD,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7B,OAAO,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IAC5C,CAAC;IAED,uCAAuC;IACvC,OAAO,oCAAoC,CAAA;AAC7C,CAAC,CAAA;AAED,kDAAkD;AAClD,MAAM,iBAAiB,GAAG,CAAC,OAAmB,EAAkC,EAAE;IAChF,0DAA0D;IAC1D,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACzF,OAAO,OAA6C,CAAA;IACtD,CAAC;IACD,oDAAoD;IACpD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAOD,mEAAmE;AACnE,uFAAuF;AACvF,qFAAqF;AACrF,4CAA4C;AAC5C,MAAM,aAAa,GAAG,CAAC,MAAsC,EAAkB,EAAE;IAC/E,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,CAAA;IAE1E,oEAAoE;IACpE,MAAM,UAAU,GAAG,IAAI,GAAG,EAA0C,CAAA;IACpE,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,KAAK,CAAC,OAA8C,CAAA;QACpE,MAAM,SAAS,GAAG,OAAO,EAAE,EAAwB,CAAA;QACnD,MAAM,OAAO,GAAG,OAAO,EAAE,OAAqD,CAAA;QAE9E,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/B,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;YAC/B,CAAC;YACD,UAAU,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAA;QAC7C,CAAC;IACH,CAAC;IAED,iDAAiD;IACjD,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,EAAE;QACpF,kFAAkF;QAClF,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAA;QACpC,MAAM,aAAa,GAAmC,EAAE,CAAA;QAExD,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC/B,MAAM,SAAS,GAAG,KAAK,CAAC,IAAc,CAAA;YACtC,IAAI,QAAgB,CAAA;YAEpB,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;gBAC7B,yCAAyC;gBACzC,QAAQ,GAAG,QAAQ,KAAK,CAAC,EAAE,EAAE,CAAA;YAC/B,CAAC;iBAAM,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;gBAChC,6EAA6E;gBAC7E,6EAA6E;gBAC7E,MAAM,IAAI,GAAG,KAAK,CAAC,IAAc,CAAA;gBACjC,IAAI,WAAW,GAAG,KAAK,CAAA;gBAEvB,KAAK,MAAM,OAAO,IAAI,UAAU,EAAE,CAAC;oBACjC,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;wBAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;wBACrC,6EAA6E;wBAC7E,2BAA2B;wBAC3B,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;4BAC9B,0CAA0C;4BAC1C,WAAW,GAAG,IAAI,CAAA;4BAClB,MAAK;wBACP,CAAC;6BAAM,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;4BACrC,kDAAkD;4BAClD,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;4BAC1B,iCAAiC;4BACjC,MAAM,GAAG,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAA;4BAClF,IAAI,GAAG,IAAI,CAAC;gCAAE,aAAa,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;4BAC1C,MAAK;wBACP,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,IAAI,WAAW;oBAAE,SAAQ;gBACzB,QAAQ,GAAG,QAAQ,IAAI,EAAE,CAAA;YAC3B,CAAC;iBAAM,CAAC;gBACN,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;YAClC,CAAC;YAED,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC9B,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;gBACxB,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC3B,CAAC;QACH,CAAC;QAED,OAAO;YACL,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE;gBACP,EAAE,EAAE,SAAS;gBACb,OAAO,EAAE,aAAa;aACvB;SACF,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;AAC5D,CAAC,CAAA;AAQD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,KAAK,EAAS,EAAE,EAAE;IAChG,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAA;IACzB,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IAC3D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAiC,EAAE,CAAC,CAAA;IACxE,MAAM,SAAS,GAAG,MAAM,CAAiC,EAAE,CAAC,CAAA;IAC5D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAU,CAAA;IAC5C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACjD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACvD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IAC5C,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAGpC,IAAI,CAAC,CAAA;IACf,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACrE,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IAC1D,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAGhD,IAAI,CAAC,CAAA;IACf,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACrD,MAAM,CAAC,iBAAiB,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,oBAAoB,EAAE,CAAC,CAAA;IAClE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAe,GAAG,EAAE,CAClE,WAAW,CAAC,oBAAoB,EAAE,CAAC,CACpC,CAAA;IACD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACnD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAuB,IAAI,CAAC,CAAA;IAC9E,MAAM,eAAe,GAAG,MAAM,CAAsB,IAAI,CAAC,CAAA;IACzD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA,CAAC,uCAAuC;IAEvF,0EAA0E;IAC1E,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAe;QAC3D,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE;KAC/D,CAAC,CAAA;IACF,MAAM,iBAAiB,GAAG,MAAM,CAAc,IAAI,GAAG,EAAE,CAAC,CAAA;IACxD,MAAM,gBAAgB,GAAG,MAAM,CAAS,CAAC,CAAC,CAAA;IAC1C,kEAAkE;IAClE,MAAM,eAAe,GAAG,MAAM,CAAsB,IAAI,CAAC,CAAA;IAEzD,qDAAqD;IACrD,MAAM,oBAAoB,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAAA;IAEzD,kCAAkC;IAClC,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAE,EAAE;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,eAAe,CAAC,KAAK,CAAC,CAAA;YACtB,WAAW,CAAC,EAAE,CAAC,CAAA;YACf,OAAM;QACR,CAAC;QAED,IAAI,CAAC;YACH,OAAO,CAAC,OAAO,CAAC,CAAA;YAChB,cAAc,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;YACpD,WAAW,CAAC,EAAE,CAAC,CAAA;YACf,eAAe,CAAC,KAAK,CAAC,CAAA;YACtB,wCAAwC;YACxC,UAAU,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;QAC9C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,cAAc,CAAC;gBACb,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,uBAAuB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;aAChF,CAAC,CAAA;YACF,WAAW,CAAC,EAAE,CAAC,CAAA;YACf,eAAe,CAAC,KAAK,CAAC,CAAA;YACtB,sCAAsC;YACtC,UAAU,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;QAC9C,CAAC;IACH,CAAC,CAAA;IAED,4CAA4C;IAC5C,MAAM,uBAAuB,GAAG,CAAC,IAAY,EAAE,EAAE;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,sBAAsB,CAAC,KAAK,CAAC,CAAA;YAC7B,kBAAkB,CAAC,EAAE,CAAC,CAAA;YACtB,OAAM;QACR,CAAC;QAED,uDAAuD;QACvD,IAAI,eAAe,CAAC,OAAO,IAAI,SAAS,EAAE,CAAC;YACzC,MAAM,WAAW,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;YAC9C,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;YAEzC,kDAAkD;YAClD,MAAM,YAAY,GAAG;gBACnB,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,EAAE,EAAE,iBAAiB,IAAI,CAAC,GAAG,EAAE,EAAE;oBACjC,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;iBAC3C;aACF,CAAA;YACD,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,YAAY,CAAC,CAAC,CAAA;YAE1C,oBAAoB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,OAAO,GAAG,EAAE,CAAC,CAAA;QAC1E,CAAC;aAAM,CAAC;YACN,oBAAoB,CAAC;gBACnB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,gDAAgD;aACvD,CAAC,CAAA;QACJ,CAAC;QAED,kBAAkB,CAAC,EAAE,CAAC,CAAA;QACtB,sBAAsB,CAAC,KAAK,CAAC,CAAA;QAC7B,uCAAuC;QACvC,UAAU,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;IACpD,CAAC,CAAA;IAED,+DAA+D;IAC/D,QAAQ,CACN,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACb,yDAAyD;QACzD,IAAI,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,WAAW,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACrE,eAAe,CAAC,IAAI,CAAC,CAAA;YACrB,WAAW,CAAC,EAAE,CAAC,CAAA;YACf,cAAc,CAAC,IAAI,CAAC,CAAA;QACtB,CAAC;QACD,kEAAkE;QAClE,IAAI,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,SAAS,IAAI,CAAC,YAAY,EAAE,CAAC;YAC5D,sBAAsB,CAAC,IAAI,CAAC,CAAA;YAC5B,kBAAkB,CAAC,EAAE,CAAC,CAAA;YACtB,oBAAoB,CAAC,IAAI,CAAC,CAAA;QAC5B,CAAC;QACD,4CAA4C;QAC5C,IAAI,GAAG,CAAC,MAAM,IAAI,YAAY,EAAE,CAAC;YAC/B,eAAe,CAAC,KAAK,CAAC,CAAA;YACtB,WAAW,CAAC,EAAE,CAAC,CAAA;QACjB,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,IAAI,mBAAmB,EAAE,CAAC;YACtC,sBAAsB,CAAC,KAAK,CAAC,CAAA;YAC7B,kBAAkB,CAAC,EAAE,CAAC,CAAA;QACxB,CAAC;IACH,CAAC,EACD,EAAE,QAAQ,EAAE,oBAAoB,EAAE,CACnC,CAAA;IAED,6DAA6D;IAC7D,SAAS,CAAC,GAAG,EAAE;QACb,SAAS,CAAC,OAAO,GAAG,MAAM,CAAA;IAC5B,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IAEZ,+DAA+D;IAC/D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,eAAe,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAA;QACjD,CAAC;IACH,CAAC,EAAE,CAAC,gBAAgB,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAA;IAEpD,0CAA0C;IAC1C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,UAAU;YAAE,OAAM;QAEvB,gCAAgC;QAChC,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,EAAE;YACxC,gBAAgB,CAAC,KAAK,CAAC,CAAA;YACvB,sDAAsD;YACtD,UAAU,CAAC,GAAG,EAAE;gBACd,aAAa,CAAC,KAAK,CAAC,CAAA;gBACpB,gBAAgB,CAAC,IAAI,CAAC,CAAA;gBACtB,sCAAsC;gBACtC,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;gBACjC,mDAAmD;gBACnD,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;gBAC/B,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;YAC3B,CAAC,EAAE,IAAI,CAAC,CAAA;QACV,CAAC,CAAC,CAAA;QAEF,eAAe,CAAC,OAAO,GAAG,OAAO,CAAA;QAEjC,OAAO,GAAG,EAAE;YACV,OAAO,EAAE,CAAA;YACT,eAAe,CAAC,OAAO,GAAG,IAAI,CAAA;QAChC,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAA;IAEhB,gDAAgD;IAChD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,QAAQ,GAAiB,EAAE,CAAA;QAEjC,kDAAkD;QAClD,IAAI,gBAAgB,GAAG,gBAAgB,CAAC,OAAO,EAAE,CAAC;YAChD,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,WAAW;gBACjB,SAAS,EAAE,gBAAgB;gBAC3B,GAAG,EAAE,aAAa,gBAAgB,EAAE;aACrC,CAAC,CAAA;YACF,gBAAgB,CAAC,OAAO,GAAG,gBAAgB,CAAA;QAC7C,CAAC;QAED,qCAAqC;QACrC,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;QAEpC,oDAAoD;QACpD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,sEAAsE;YACtE,8DAA8D;YAC9D,MAAM,QAAQ,GAAG,KAAK,CAAC,EAAE,CAAA;YAEzB,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7C,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;gBACvC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAA;YACxD,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAA;QAChD,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAA;IAE9B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,gBAAgB,GAAG,eAAe,EAAE,CAAC;YACvC,IAAI,EAAE,CAAA;YACN,OAAM;QACR,CAAC;QAED,+EAA+E;QAC/E,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAChD,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;QAC1B,SAAS,CAAC,EAAE,CAAC,CAAA;QAEb,mEAAmE;QACnE,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAA;QACxC,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA;QACvC,cAAc,CAAC,UAAU,CAAC,CAAA;QAC1B,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACrE,MAAM,UAAU,GACd,WAAW,CAAC,CAAC,CAAC,GAAG,aAAa,+BAA+B,WAAW,EAAE,CAAC,CAAC,CAAC,aAAa,CAAA;QAE5F,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;QAC7C,YAAY,CAAC,IAAI,CAAC,CAAA;QAElB,4CAA4C;QAC5C,oEAAoE;QACpE,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAA;QACvC,eAAe,CAAC,OAAO,GAAG,YAAY,CAAA;QAEtC,+CAA+C;QAC/C,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAA;QAEhD,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;YAC1B,IAAI,WAAW,GAAG,EAAE,CAAA;YAEpB,IAAI,CAAC;gBACH,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,KAAK,CAAC;oBAChC,MAAM,EAAE,YAAY;oBACpB,OAAO,EAAE;wBACP,eAAe;wBACf,cAAc,EAAE,mBAAmB;wBACnC,+BAA+B,EAAE,IAAI;wBACrC,sBAAsB,EAAE,IAAI;wBAC5B,GAAG,EAAE;4BACH,GAAG,OAAO,CAAC,GAAG;4BACd,yEAAyE;4BACzE,eAAe,EAAE,GAAG;yBACrB;qBACF;iBACF,CAAC,EAAE,CAAC;oBACH,0BAA0B;oBAC1B,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAA;oBAElE,sCAAsC;oBACtC,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;oBACxC,IAAI,KAAK,EAAE,CAAC;wBACV,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;oBACrC,CAAC;oBAED,mCAAmC;oBACnC,IACE,OAAO,CAAC,IAAI,KAAK,QAAQ;wBACzB,QAAQ,IAAI,OAAO;wBACnB,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,EAClC,CAAC;wBACD,WAAW,GAAG,OAAO,CAAC,MAAM,CAAA;oBAC9B,CAAC;gBACH,CAAC;gBAED,YAAY,CAAC,KAAK,CAAC,CAAA;gBACnB,YAAY,CAAC,KAAK,EAAE,CAAA;gBACpB,eAAe,CAAC,OAAO,GAAG,IAAI,CAAA;gBAE9B,uBAAuB;gBACvB,IAAI,WAAW,CAAC,QAAQ,CAAC,6BAA6B,CAAC,EAAE,CAAC;oBACxD,IAAI,KAAK,EAAE,CAAC;wBACV,sCAAsC;wBACtC,aAAa,CAAC,IAAI,CAAC,CAAA;oBACrB,CAAC;yBAAM,CAAC;wBACN,IAAI,EAAE,CAAA;wBACN,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;oBACjB,CAAC;oBACD,OAAM;gBACR,CAAC;gBAED,yBAAyB;gBACzB,UAAU,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;YACxD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,YAAY,CAAC,KAAK,CAAC,CAAA;gBACnB,YAAY,CAAC,KAAK,EAAE,CAAA;gBACpB,eAAe,CAAC,OAAO,GAAG,IAAI,CAAA;gBAC9B,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnC,OAAM,CAAC,wBAAwB;gBACjC,CAAC;gBACD,QAAQ,CAAC,yBAAyB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;gBACrF,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,EAAE,CAAA;oBACN,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBACjB,CAAC,EAAE,GAAG,CAAC,CAAA;YACT,CAAC;QACH,CAAC,CAAA;QAED,QAAQ,EAAE,CAAA;QAEV,OAAO,GAAG,EAAE;YACV,eAAe,CAAC,KAAK,EAAE,CAAA;YACvB,YAAY,CAAC,KAAK,EAAE,CAAA;YACpB,eAAe,CAAC,OAAO,GAAG,IAAI,CAAA;QAChC,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,gBAAgB,EAAE,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAA;IAEhE,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ;YACzB,oBAAC,IAAI,IAAC,KAAK,EAAC,KAAK,IAAE,KAAK,CAAQ,CAC5B,CACP,CAAA;IACH,CAAC;IAED,oEAAoE;IACpE,MAAM,gBAAgB,GAAG,CAAC,IAAgB,EAAE,EAAE;QAC5C,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3B,OAAO,oBAAC,MAAM,IAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,GAAI,CAAA;QACvF,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC9B,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC;gBACtC,oBAAC,QAAQ,IAAC,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;oBACtC,oBAAC,OAAO,IAAC,IAAI,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,EAAC,MAAM,GAAG,CAC1C,CACP,CACP,CAAA;QACH,CAAC;QACD,gBAAgB;QAChB,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC5C,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,IACxC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACtB,oBAAC,IAAI,IAAC,GAAG,EAAE,CAAC,IAAG,IAAI,IAAI,GAAG,CAAQ,CACnC,CAAC,CACE,CACP,CAAA;IACH,CAAC,CAAA;IAED,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ;QAEzB,oBAAC,MAAM,IAAC,KAAK,EAAE,WAAW,IACvB,IAAI,CAAC,EAAE,CAAC,CACP,oBAAC,GAAG,IAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,aAAa,EAAC,QAAQ,IACvC,gBAAgB,CAAC,IAAI,CAAC,CACnB,CACP,CACM;QAGR,YAAY,IAAI,CACf,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC;YACtC,oBAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,YAAa;YACjC,oBAAC,iBAAiB,IAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,gBAAgB,GAAI;YACzF,oBAAC,IAAI,IAAC,QAAQ,0CAAqC,CAC/C,CACP;QAGA,WAAW,IAAI,CACd,oBAAC,GAAG,IAAC,SAAS,EAAE,CAAC;YACf,oBAAC,IAAI,IAAC,KAAK,EAAE,WAAW,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAG,WAAW,CAAC,IAAI,CAAQ,CACpF,CACP;QAGA,mBAAmB,IAAI,CACtB,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC;YACtC,oBAAC,IAAI,IAAC,KAAK,EAAC,MAAM,yBAA0B;YAC5C,oBAAC,iBAAiB,IAChB,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,kBAAkB,EAC5B,QAAQ,EAAE,uBAAuB,GACjC;YACF,oBAAC,IAAI,IAAC,QAAQ,2CAAsC,CAChD,CACP;QAGA,iBAAiB,IAAI,CACpB,oBAAC,GAAG,IAAC,SAAS,EAAE,CAAC;YACf,oBAAC,IAAI,IACH,KAAK,EACH,iBAAiB,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO;oBAC9C,CAAC,CAAC,iBAAiB,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;wBACpC,KAAK;wBACP,CAAC,CAAC,QAAQ,IAGX,iBAAiB,CAAC,IAAI,CAClB,CACH,CACP;QAGD,oBAAC,GAAG,IAAC,SAAS,EAAE,CAAC,EAAE,cAAc,EAAC,eAAe;YAC9C,UAAU,CAAC,CAAC;gBACX,aAAa,CAAC,CAAC;oBACb,oBAAC,IAAI,IAAC,KAAK,EAAC,OAAO;wBACjB,oBAAC,OAAO,IAAC,IAAI,EAAC,MAAM,GAAG;;wBAAY,oBAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,IAAE,aAAa,CAAC,OAAO,CAAQ;wBACrF,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAClD;oBACT,CAAC,CAAC,oBAAC,IAAI,IAAC,KAAK,EAAC,MAAM;wBAChB,oBAAC,OAAO,IAAC,IAAI,EAAC,qBAAqB,GAAG;qDACjC;gBAEX,CAAC,CAAC,SAAS,CAAC,CAAC;oBACX,oBAAC,IAAI,IAAC,KAAK,EAAC,MAAM;wBAChB,oBAAC,OAAO,IAAC,IAAI,EAAC,MAAM,GAAG;;wBAAe,oBAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,IAAE,gBAAgB,CAAQ;wBAAC,GAAG;;wBAClF,eAAe;4BAChB;oBACT,CAAC,CAAC,oBAAC,IAAI,IAAC,QAAQ,kBAAa;YAC5B,YAAY,CAAC,IAAI,KAAK,MAAM,IAAI,YAAY,CAAC,KAAK,GAAG,CAAC,IAAI,CACzD,oBAAC,WAAW,IAAC,SAAS,EAAE,YAAY,CAAC,SAAS,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,GAAI,CAC9E,CACG,CACF,CACP,CAAA;AACH,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"IterationRunner.js","sourceRoot":"","sources":["../../src/components/IterationRunner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAC1D,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AACzD,OAAO,OAAO,MAAM,aAAa,CAAA;AACjC,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,QAAQ,MAAM,cAAc,CAAA;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAA;AAC5E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AAEnC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AACzD,OAAO,EAAE,KAAK,EAAmB,MAAM,gCAAgC,CAAA;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,aAAa,EAAqB,MAAM,oBAAoB,CAAA;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC3C,OAAO,EACL,WAAW,EACX,sBAAsB,GAGvB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAmC,MAAM,uBAAuB,CAAA;AAC1F,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAEzD,MAAM,GAAG,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAA;AAE1C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAA;AAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;AAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;AAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAA;AAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,CAAA;AAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;AAExC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAW,EAAE;IAC3C,2CAA2C;IAC3C,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,OAAO,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IAC1C,CAAC;IAED,gDAAgD;IAChD,MAAM,gBAAgB,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;IACtE,MAAM,YAAY,GAAG,gBAAgB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAA;IAC7E,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAA;IAErD,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7B,OAAO,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IAC5C,CAAC;IAED,uCAAuC;IACvC,OAAO,oCAAoC,CAAA;AAC7C,CAAC,CAAA;AAED,kDAAkD;AAClD,MAAM,iBAAiB,GAAG,CAAC,OAAmB,EAAkC,EAAE;IAChF,0DAA0D;IAC1D,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACzF,OAAO,OAA6C,CAAA;IACtD,CAAC;IACD,oDAAoD;IACpD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAOD,mEAAmE;AACnE,uFAAuF;AACvF,qFAAqF;AACrF,4CAA4C;AAC5C,MAAM,aAAa,GAAG,CAAC,MAAsC,EAAkB,EAAE;IAC/E,MAAM,MAAM,GAAmB,EAAE,CAAA;IAEjC,4EAA4E;IAC5E,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,CAAA;IAE1E,oEAAoE;IACpE,MAAM,UAAU,GAAG,IAAI,GAAG,EAA0C,CAAA;IACpE,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,KAAK,CAAC,OAA8C,CAAA;QACpE,MAAM,SAAS,GAAG,OAAO,EAAE,EAAwB,CAAA;QACnD,MAAM,OAAO,GAAG,OAAO,EAAE,OAAqD,CAAA;QAE9E,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/B,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;YAC/B,CAAC;YACD,UAAU,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAA;QAC7C,CAAC;IACH,CAAC;IAED,iDAAiD;IACjD,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,EAAE;QACpF,kFAAkF;QAClF,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAA;QACpC,MAAM,aAAa,GAAmC,EAAE,CAAA;QAExD,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC/B,MAAM,SAAS,GAAG,KAAK,CAAC,IAAc,CAAA;YACtC,IAAI,QAAgB,CAAA;YAEpB,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;gBAC7B,yCAAyC;gBACzC,QAAQ,GAAG,QAAQ,KAAK,CAAC,EAAE,EAAE,CAAA;YAC/B,CAAC;iBAAM,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;gBAChC,6EAA6E;gBAC7E,6EAA6E;gBAC7E,MAAM,IAAI,GAAG,KAAK,CAAC,IAAc,CAAA;gBACjC,IAAI,WAAW,GAAG,KAAK,CAAA;gBAEvB,KAAK,MAAM,OAAO,IAAI,UAAU,EAAE,CAAC;oBACjC,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;wBAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;wBACrC,6EAA6E;wBAC7E,2BAA2B;wBAC3B,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;4BAC9B,0CAA0C;4BAC1C,WAAW,GAAG,IAAI,CAAA;4BAClB,MAAK;wBACP,CAAC;6BAAM,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;4BACrC,kDAAkD;4BAClD,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;4BAC1B,iCAAiC;4BACjC,MAAM,GAAG,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAA;4BAClF,IAAI,GAAG,IAAI,CAAC;gCAAE,aAAa,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;4BAC1C,MAAK;wBACP,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,IAAI,WAAW;oBAAE,SAAQ;gBACzB,QAAQ,GAAG,QAAQ,IAAI,EAAE,CAAA;YAC3B,CAAC;iBAAM,CAAC;gBACN,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;YAClC,CAAC;YAED,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC9B,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;gBACxB,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC3B,CAAC;QACH,CAAC;QAED,OAAO;YACL,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE;gBACP,EAAE,EAAE,SAAS;gBACb,OAAO,EAAE,aAAa;aACvB;SACF,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,eAAe,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;IAE3E,gEAAgE;IAChE,sEAAsE;IACtE,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAA;IAC1C,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAU,CAAA;IAE/C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,KAAK,CAAC,OAA8C,CAAA;YACpE,MAAM,SAAS,GAAI,OAAO,EAAE,EAAyB,IAAI,QAAQ,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;YAC7E,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;gBAC/B,MAAM,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;YACtC,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,KAAK,CAAC,OAA8C,CAAA;YACpE,MAAM,SAAS,GAAG,OAAO,EAAE,EAAwB,CAAA;YACnD,IAAI,SAAS,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBACvD,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;gBACpC,0CAA0C;gBAC1C,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAA;gBACtE,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAA;YACxB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAQD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,KAAK,EAAS,EAAE,EAAE;IAChG,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAA;IACzB,MAAM,EAAE,OAAO,EAAE,GAAG,eAAe,EAAE,CAAA;IACrC,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IAC3D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAiC,EAAE,CAAC,CAAA;IACxE,MAAM,SAAS,GAAG,MAAM,CAAiC,EAAE,CAAC,CAAA;IAC5D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAU,CAAA;IAC5C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACjD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACvD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IAC5C,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAGpC,IAAI,CAAC,CAAA;IACf,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IAC1D,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAGhD,IAAI,CAAC,CAAA;IACf,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACrD,MAAM,CAAC,eAAe,CAAC,GAAG,QAAQ,CAA8B,GAAG,EAAE,CAAC,sBAAsB,EAAE,CAAC,CAAA;IAC/F,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAe,GAAG,EAAE;QAClE,MAAM,QAAQ,GAAG,sBAAsB,EAAE,CAAA;QACzC,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;QAC9D,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,YAAY,EAAE,CAAA;IAC5E,CAAC,CAAC,CAAA;IACF,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACnD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAuB,IAAI,CAAC,CAAA;IAC9E,MAAM,eAAe,GAAG,MAAM,CAAsB,IAAI,CAAC,CAAA;IACzD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA,CAAC,uCAAuC;IACvF,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA,CAAC,0CAA0C;IAC1G,MAAM,mBAAmB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA,CAAC,mCAAmC;IAC7E,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA,CAAC,0CAA0C;IAC1F,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA,CAAC,mCAAmC;IAErE,0EAA0E;IAC1E,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAe;QAC3D,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE;KAC/D,CAAC,CAAA;IACF,MAAM,iBAAiB,GAAG,MAAM,CAAc,IAAI,GAAG,EAAE,CAAC,CAAA;IACxD,MAAM,gBAAgB,GAAG,MAAM,CAAS,CAAC,CAAC,CAAA;IAC1C,kEAAkE;IAClE,MAAM,eAAe,GAAG,MAAM,CAAsB,IAAI,CAAC,CAAA;IACzD,gFAAgF;IAChF,MAAM,UAAU,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAA;IAE9C,qDAAqD;IACrD,MAAM,oBAAoB,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAAA;IAEzD,kCAAkC;IAClC,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAE,EAAE;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,eAAe,CAAC,KAAK,CAAC,CAAA;YACtB,WAAW,CAAC,EAAE,CAAC,CAAA;YACf,OAAM;QACR,CAAC;QAED,IAAI,CAAC;YACH,OAAO,CAAC,OAAO,CAAC,CAAA;YAChB,cAAc,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;YACpD,WAAW,CAAC,EAAE,CAAC,CAAA;YACf,eAAe,CAAC,KAAK,CAAC,CAAA;YACtB,wCAAwC;YACxC,UAAU,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;QAC9C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,cAAc,CAAC;gBACb,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,uBAAuB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;aAChF,CAAC,CAAA;YACF,WAAW,CAAC,EAAE,CAAC,CAAA;YACf,eAAe,CAAC,KAAK,CAAC,CAAA;YACtB,sCAAsC;YACtC,UAAU,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;QAC9C,CAAC;IACH,CAAC,CAAA;IAED,6CAA6C;IAC7C,MAAM,uBAAuB,GAAG,CAAC,IAAY,EAAE,EAAE;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,kBAAkB,CAAC,EAAE,CAAC,CAAA;YACtB,OAAM;QACR,CAAC;QAED,uDAAuD;QACvD,IAAI,eAAe,CAAC,OAAO,IAAI,SAAS,EAAE,CAAC;YACzC,MAAM,WAAW,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;YAC9C,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;YAEzC,kDAAkD;YAClD,MAAM,YAAY,GAAG;gBACnB,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,EAAE,EAAE,iBAAiB,IAAI,CAAC,GAAG,EAAE,EAAE;oBACjC,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;iBAC3C;aACF,CAAA;YACD,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,YAAY,CAAC,CAAC,CAAA;YAE1C,4EAA4E;QAC9E,CAAC;aAAM,CAAC;YACN,oBAAoB,CAAC;gBACnB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,gDAAgD;aACvD,CAAC,CAAA;QACJ,CAAC;QAED,kBAAkB,CAAC,EAAE,CAAC,CAAA;QACtB,uCAAuC;QACvC,UAAU,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;IACpD,CAAC,CAAA;IAED,yFAAyF;IACzF,QAAQ,CACN,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACb,yDAAyD;QACzD,IAAI,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC;YAC7C,eAAe,CAAC,IAAI,CAAC,CAAA;YACrB,WAAW,CAAC,EAAE,CAAC,CAAA;YACf,cAAc,CAAC,IAAI,CAAC,CAAA;QACtB,CAAC;QACD,iDAAiD;QACjD,IAAI,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,SAAS,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAChE,mBAAmB,CAAC,IAAI,CAAC,CAAA;QAC3B,CAAC;QACD,+BAA+B;QAC/B,IAAI,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YAC9B,IAAI,QAAQ,EAAE,CAAC;gBACb,wEAAwE;gBACxE,WAAW,CAAC,KAAK,CAAC,CAAA;gBAClB,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,UAAU,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;gBACxD,CAAC;YACH,CAAC;iBAAM,IAAI,SAAS,EAAE,CAAC;gBACrB,wCAAwC;gBACxC,WAAW,CAAC,IAAI,CAAC,CAAA;YACnB,CAAC;QACH,CAAC;QACD,8BAA8B;QAC9B,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,IAAI,YAAY,EAAE,CAAC;gBACjB,oBAAoB;gBACpB,eAAe,CAAC,KAAK,CAAC,CAAA;gBACtB,WAAW,CAAC,EAAE,CAAC,CAAA;YACjB,CAAC;QACH,CAAC;IACH,CAAC,EACD,EAAE,QAAQ,EAAE,oBAAoB,EAAE,CACnC,CAAA;IAED,6DAA6D;IAC7D,SAAS,CAAC,GAAG,EAAE;QACb,SAAS,CAAC,OAAO,GAAG,MAAM,CAAA;IAC5B,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IAEZ,6EAA6E;IAC7E,SAAS,CAAC,GAAG,EAAE;QACb,mBAAmB,CAAC,OAAO,GAAG,gBAAgB,CAAA;IAChD,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAEtB,qEAAqE;IACrE,SAAS,CAAC,GAAG,EAAE;QACb,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAA;IAChC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEd,+DAA+D;IAC/D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,SAAS,IAAI,eAAe,EAAE,CAAC;YAClC,eAAe,CAAC,WAAW,CAAC,eAAe,CAAC,YAAY,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC,CAAA;QACvF,CAAC;IACH,CAAC,EAAE,CAAC,gBAAgB,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC,CAAA;IAElD,qFAAqF;IACrF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,SAAS,IAAI,CAAC,eAAe;YAAE,OAAM;QAE1C,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;YACpC,eAAe,CAAC,WAAW,CAAC,eAAe,CAAC,YAAY,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC,CAAA;QACvF,CAAC,EAAE,IAAI,CAAC,CAAA,CAAC,uBAAuB;QAEhC,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,CAAA;IAC1C,CAAC,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,CAAA;IAEhC,0CAA0C;IAC1C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,UAAU;YAAE,OAAM;QAEvB,gCAAgC;QAChC,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,EAAE;YACxC,gBAAgB,CAAC,KAAK,CAAC,CAAA;YACvB,iDAAiD;YACjD,6DAA6D;YAC7D,IAAI,eAAe,EAAE,CAAC;gBACpB,eAAe,CAAC,WAAW,CAAC,eAAe,CAAC,YAAY,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC,CAAA;YACvF,CAAC;YACD,sDAAsD;YACtD,UAAU,CAAC,GAAG,EAAE;gBACd,aAAa,CAAC,KAAK,CAAC,CAAA;gBACpB,gBAAgB,CAAC,IAAI,CAAC,CAAA;gBACtB,sCAAsC;gBACtC,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;gBACjC,mDAAmD;gBACnD,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;gBAC/B,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;YAC3B,CAAC,EAAE,IAAI,CAAC,CAAA;QACV,CAAC,CAAC,CAAA;QAEF,eAAe,CAAC,OAAO,GAAG,OAAO,CAAA;QAEjC,OAAO,GAAG,EAAE;YACV,OAAO,EAAE,CAAA;YACT,eAAe,CAAC,OAAO,GAAG,IAAI,CAAA;QAChC,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,CAAA;IAEjC,gDAAgD;IAChD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,QAAQ,GAAiB,EAAE,CAAA;QAEjC,kDAAkD;QAClD,IAAI,gBAAgB,GAAG,gBAAgB,CAAC,OAAO,EAAE,CAAC;YAChD,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,WAAW;gBACjB,SAAS,EAAE,gBAAgB;gBAC3B,GAAG,EAAE,aAAa,gBAAgB,EAAE;aACrC,CAAC,CAAA;YACF,gBAAgB,CAAC,OAAO,GAAG,gBAAgB,CAAA;QAC7C,CAAC;QAED,qCAAqC;QACrC,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;QAEpC,oDAAoD;QACpD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,sEAAsE;YACtE,8DAA8D;YAC9D,MAAM,QAAQ,GAAG,KAAK,CAAC,EAAE,CAAA;YAEzB,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7C,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;gBACvC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAA;YACxD,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAA;QAChD,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAA;IAE9B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,gBAAgB,GAAG,eAAe,EAAE,CAAC;YACvC,IAAI,EAAE,CAAA;YACN,OAAM;QACR,CAAC;QAED,iEAAiE;QACjE,sEAAsE;QACtE,MAAM,eAAe,GACnB,eAAe,CAAC,CAAC;YACf,WAAW,CAAC,eAAe,CAAC,YAAY,EAAE,eAAe,CAAC,SAAS,CAAC;YACtE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;QACrD,qDAAqD;QACrD,IAAI,eAAe,CAAC,SAAS,IAAI,eAAe,CAAC,KAAK,IAAI,eAAe,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC1F,0DAA0D;YAC1D,IAAI,KAAK,EAAE,CAAC;gBACV,aAAa,CAAC,IAAI,CAAC,CAAA;YACrB,CAAC;iBAAM,CAAC;gBACN,IAAI,EAAE,CAAA;gBACN,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;YACD,OAAM;QACR,CAAC;QAED,+CAA+C;QAC/C,+DAA+D;QAC/D,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YACxB,UAAU,CAAC,OAAO,GAAG,cAAc,EAAE,CAAA;YACrC,aAAa,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;QACvC,CAAC;QACD,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAA;QAClC,SAAS,CAAC,EAAE,CAAC,CAAA;QAEb,mEAAmE;QACnE,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAA;QACxC,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA;QACvC,cAAc,CAAC,UAAU,CAAC,CAAA;QAC1B,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACrE,MAAM,WAAW,GAAG,kBAAkB,gBAAgB,MAAM,CAAA;QAC5D,MAAM,UAAU,GACd,WAAW,CAAC,CAAC;YACX,GAAG,WAAW,GAAG,aAAa,+BAA+B,WAAW,EAAE;YAC5E,CAAC,CAAC,GAAG,WAAW,GAAG,aAAa,EAAE,CAAA;QAEpC,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;QAC7C,YAAY,CAAC,IAAI,CAAC,CAAA;QAElB,4CAA4C;QAC5C,oEAAoE;QACpE,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAA;QACvC,eAAe,CAAC,OAAO,GAAG,YAAY,CAAA;QAEtC,+CAA+C;QAC/C,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAA;QAEhD,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;YAC1B,IAAI,WAAW,GAAG,EAAE,CAAA;YACpB,GAAG,CAAC,sBAAsB,gBAAgB,EAAE,CAAC,CAAA;YAE7C,IAAI,CAAC;gBACH,GAAG,CAAC,wBAAwB,CAAC,CAAA;gBAC7B,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,KAAK,CAAC;oBAChC,MAAM,EAAE,YAAY;oBACpB,OAAO,EAAE;wBACP,eAAe;wBACf,cAAc,EAAE,mBAAmB;wBACnC,+BAA+B,EAAE,IAAI;wBACrC,sBAAsB,EAAE,IAAI;wBAC5B,GAAG,EAAE;4BACH,GAAG,OAAO,CAAC,GAAG;4BACd,yEAAyE;4BACzE,eAAe,EAAE,GAAG;yBACrB;qBACF;iBACF,CAAC,EAAE,CAAC;oBACH,GAAG,CAAC,0BAA0B,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;oBAC7C,oEAAoE;oBACpE,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAA;oBAEvD,sCAAsC;oBACtC,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;oBACxC,IAAI,KAAK,EAAE,CAAC;wBACV,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;oBACrC,CAAC;oBAED,mCAAmC;oBACnC,IACE,OAAO,CAAC,IAAI,KAAK,QAAQ;wBACzB,QAAQ,IAAI,OAAO;wBACnB,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,EAClC,CAAC;wBACD,GAAG,CAAC,yBAAyB,CAAC,CAAA;wBAC9B,WAAW,GAAG,OAAO,CAAC,MAAM,CAAA;wBAC5B,8DAA8D;wBAC9D,mEAAmE;wBACnE,iEAAiE;wBACjE,qEAAqE;wBACrE,oEAAoE;wBACpE,GAAG,CAAC,iCAAiC,CAAC,CAAA;wBACtC,YAAY,CAAC,KAAK,EAAE,CAAA;oBACtB,CAAC;gBACH,CAAC;gBAED,GAAG,CAAC,iCAAiC,CAAC,CAAA;gBACtC,YAAY,CAAC,KAAK,CAAC,CAAA;gBACnB,6EAA6E;gBAC7E,0EAA0E;gBAC1E,GAAG,CAAC,kCAAkC,CAAC,CAAA;gBACvC,YAAY,CAAC,KAAK,EAAE,CAAA;gBACpB,eAAe,CAAC,OAAO,GAAG,IAAI,CAAA;gBAE9B,uCAAuC;gBACvC,IAAI,mBAAmB,CAAC,OAAO,EAAE,CAAC;oBAChC,GAAG,CAAC,mDAAmD,CAAC,CAAA;oBACxD,IAAI,EAAE,CAAA;oBACN,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;oBACf,OAAM;gBACR,CAAC;gBAED,uBAAuB;gBACvB,IAAI,WAAW,CAAC,QAAQ,CAAC,6BAA6B,CAAC,EAAE,CAAC;oBACxD,IAAI,KAAK,EAAE,CAAC;wBACV,sCAAsC;wBACtC,aAAa,CAAC,IAAI,CAAC,CAAA;oBACrB,CAAC;yBAAM,CAAC;wBACN,IAAI,EAAE,CAAA;wBACN,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;oBACjB,CAAC;oBACD,OAAM;gBACR,CAAC;gBAED,qEAAqE;gBACrE,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;oBACxB,GAAG,CAAC,0BAA0B,gBAAgB,EAAE,CAAC,CAAA;oBACjD,6EAA6E;oBAC7E,OAAM;gBACR,CAAC;gBAED,yBAAyB;gBACzB,UAAU,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;YACxD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,uBAAuB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;gBAC9E,YAAY,CAAC,KAAK,CAAC,CAAA;gBACnB,GAAG,CAAC,mCAAmC,CAAC,CAAA;gBACxC,YAAY,CAAC,KAAK,EAAE,CAAA;gBACpB,eAAe,CAAC,OAAO,GAAG,IAAI,CAAA;gBAC9B,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnC,GAAG,CAAC,uBAAuB,CAAC,CAAA;oBAC5B,OAAM,CAAC,wBAAwB;gBACjC,CAAC;gBACD,QAAQ,CAAC,yBAAyB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;gBACrF,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,EAAE,CAAA;oBACN,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBACjB,CAAC,EAAE,GAAG,CAAC,CAAA;YACT,CAAC;QACH,CAAC,CAAA;QAED,QAAQ,EAAE,CAAA;QAEV,OAAO,GAAG,EAAE;YACV,GAAG,CAAC,qDAAqD,gBAAgB,EAAE,CAAC,CAAA;YAC5E,eAAe,CAAC,KAAK,EAAE,CAAA;YACvB,YAAY,CAAC,KAAK,EAAE,CAAA;YACpB,eAAe,CAAC,OAAO,GAAG,IAAI,CAAA;QAChC,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,gBAAgB,EAAE,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAA;IAEhE,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ;YACzB,oBAAC,IAAI,IAAC,KAAK,EAAC,KAAK,IAAE,KAAK,CAAQ,CAC5B,CACP,CAAA;IACH,CAAC;IAED,oEAAoE;IACpE,MAAM,gBAAgB,GAAG,CAAC,IAAgB,EAAE,EAAE;QAC5C,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3B,OAAO,oBAAC,MAAM,IAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,GAAI,CAAA;QACvF,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC9B,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC;gBACtC,oBAAC,QAAQ,IAAC,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;oBACtC,oBAAC,OAAO,IAAC,IAAI,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,EAAC,MAAM,GAAG,CAC1C,CACP,CACP,CAAA;QACH,CAAC;QACD,gBAAgB;QAChB,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC5C,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,IACxC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACtB,oBAAC,IAAI,IAAC,GAAG,EAAE,CAAC,IAAG,IAAI,IAAI,GAAG,CAAQ,CACnC,CAAC,CACE,CACP,CAAA;IACH,CAAC,CAAA;IAED,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ;QAEzB,oBAAC,MAAM,IAAC,KAAK,EAAE,WAAW,IACvB,IAAI,CAAC,EAAE,CAAC,CACP,oBAAC,GAAG,IAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,aAAa,EAAC,QAAQ,IACvC,gBAAgB,CAAC,IAAI,CAAC,CACnB,CACP,CACM;QAGR,YAAY,IAAI,CACf,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC;YACtC,oBAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,YAAa;YACjC,oBAAC,iBAAiB,IAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,gBAAgB,GAAI;YACzF,oBAAC,IAAI,IAAC,QAAQ,0CAAqC,CAC/C,CACP;QAGA,WAAW,IAAI,CACd,oBAAC,GAAG,IAAC,SAAS,EAAE,CAAC;YACf,oBAAC,IAAI,IAAC,KAAK,EAAE,WAAW,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAG,WAAW,CAAC,IAAI,CAAQ,CACpF,CACP;QAGA,CAAC,UAAU,IAAI,CACd,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC;YACtC,oBAAC,IAAI,IAAC,QAAQ,UAAE,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAQ;YAC3C,oBAAC,GAAG;gBACF,oBAAC,IAAI,IAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,cAAW;gBACrD,oBAAC,iBAAiB,IAChB,KAAK,EAAE,eAAe,EACtB,WAAW,EACT,SAAS,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,+BAA+B,EAE7E,QAAQ,EAAE,kBAAkB,EAC5B,QAAQ,EAAE,uBAAuB,EACjC,KAAK,EAAE,SAAS,IAAI,CAAC,YAAY,GACjC,CACE;YACL,iBAAiB,IAAI,CACpB,oBAAC,IAAI,IACH,KAAK,EACH,iBAAiB,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO;oBAC9C,CAAC,CAAC,iBAAiB,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;wBACpC,KAAK;wBACP,CAAC,CAAC,QAAQ,IAGX,iBAAiB,CAAC,IAAI,CAClB,CACR;YACD,oBAAC,IAAI,IAAC,QAAQ,UAAE,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAQ,CACvC,CACP;QAGD,oBAAC,GAAG,IAAC,SAAS,EAAE,CAAC,EAAE,cAAc,EAAC,eAAe;YAC9C,UAAU,CAAC,CAAC;gBACX,aAAa,CAAC,CAAC;oBACb,oBAAC,IAAI,IAAC,KAAK,EAAC,OAAO;wBACjB,oBAAC,OAAO,IAAC,IAAI,EAAC,MAAM,GAAG;;wBAAY,oBAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,IAAE,aAAa,CAAC,OAAO,CAAQ;wBACrF,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAClD;oBACT,CAAC,CAAC,oBAAC,IAAI,IAAC,KAAK,EAAC,MAAM;;wBACO,oBAAC,OAAO,IAAC,IAAI,EAAC,qBAAqB,GAAG,CACxD;gBAEX,CAAC,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,CAAC;oBACxB,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS;;wBACE,oBAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,IAAE,gBAAgB,CAAQ;wBAAC,GAAG;wBACvE,oBAAC,IAAI,IAAC,QAAQ,+BAA0B,CACnC;oBACT,CAAC,CAAC,SAAS,CAAC,CAAC;wBACX,gBAAgB,CAAC,CAAC;4BAChB,oBAAC,IAAI,IAAC,KAAK,EAAC,QAAQ;gCAClB,oBAAC,OAAO,IAAC,IAAI,EAAC,MAAM,GAAG;;gCAAsB,GAAG;gCAChD,oBAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,IAAE,gBAAgB,CAAQ;;gCAAc,GAAG;gCAC/D,oBAAC,IAAI,IAAC,QAAQ,6BAAwB,CACjC;4BACT,CAAC,CAAC,QAAQ,CAAC,CAAC;gCACV,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS;oCACnB,oBAAC,OAAO,IAAC,IAAI,EAAC,MAAM,GAAG;;oCAAqB,GAAG;oCAC/C,oBAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,IAAE,gBAAgB,CAAQ;;oCAAc,GAAG;oCAC/D,oBAAC,IAAI,IAAC,QAAQ,6BAAwB,CACjC;gCACT,CAAC,CAAC,oBAAC,IAAI,IAAC,KAAK,EAAC,MAAM;oCAChB,oBAAC,OAAO,IAAC,IAAI,EAAC,MAAM,GAAG;;oCAAe,oBAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,IAAE,gBAAgB,CAAQ;oCAAC,GAAG;;oCAClF,eAAe;wCAChB;wBAEX,CAAC,CAAC,oBAAC,IAAI,IAAC,KAAK,EAAC,MAAM;4BAChB,oBAAC,OAAO,IAAC,IAAI,EAAC,qBAAqB,GAAG;6DACjC;YAER,YAAY,CAAC,IAAI,KAAK,MAAM,IAAI,YAAY,CAAC,KAAK,GAAG,CAAC,IAAI,CACzD,oBAAC,WAAW,IACV,SAAS,EAAE,YAAY,CAAC,SAAS,EACjC,KAAK,EAAE,YAAY,CAAC,KAAK,EACzB,QAAQ,EAAE,QAAQ,GAClB,CACH,CACG,CACF,CACP,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -60,7 +60,7 @@ describe("IterationRunner prompt content", () => {
|
|
|
60
60
|
const content = getPromptContent();
|
|
61
61
|
expect(content).toBe("Beads template content");
|
|
62
62
|
});
|
|
63
|
-
it("falls back to prompt.md template when .ralph/todo.md exists", async () => {
|
|
63
|
+
it("falls back to prompt-todos.md template when .ralph/todo.md exists", async () => {
|
|
64
64
|
const mockExistsSync = existsSync;
|
|
65
65
|
const mockReadFileSync = readFileSync;
|
|
66
66
|
mockExistsSync.mockImplementation((path) => {
|
|
@@ -74,7 +74,7 @@ describe("IterationRunner prompt content", () => {
|
|
|
74
74
|
if (path.includes("todo.md") && path.includes(".ralph"))
|
|
75
75
|
return true;
|
|
76
76
|
// Template files exist
|
|
77
|
-
if (path.includes("templates") && path.includes("prompt.md"))
|
|
77
|
+
if (path.includes("templates") && path.includes("prompt-todos.md"))
|
|
78
78
|
return true;
|
|
79
79
|
return false;
|
|
80
80
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IterationRunner.test.js","sourceRoot":"","sources":["../../src/components/IterationRunner.test.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"IterationRunner.test.js","sourceRoot":"","sources":["../../src/components/IterationRunner.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Get the prompt content, falling back to templates if .ralph/prompt.md doesn't exist.
|
|
4
|
+
* Uses the appropriate template based on the project setup:
|
|
5
|
+
* - If .beads directory exists OR no .ralph/todo.md: use prompt-beads.md
|
|
6
|
+
* - If .ralph/todo.md exists: use prompt-todos.md (todo-based workflow)
|
|
7
|
+
*/
|
|
8
|
+
export declare const getPromptContent: () => string;
|
|
9
|
+
export declare const JsonOutput: ({ totalIterations }: Props) => React.JSX.Element;
|
|
10
|
+
type Props = {
|
|
11
|
+
totalIterations: number;
|
|
12
|
+
};
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=JsonOutput.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JsonOutput.d.ts","sourceRoot":"","sources":["../../src/components/JsonOutput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAA;AAsB1D;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,QAAO,MAiBnC,CAAA;AAOD,eAAO,MAAM,UAAU,GAAI,qBAAqB,KAAK,sBAsOpD,CAAA;AAED,KAAK,KAAK,GAAG;IACX,eAAe,EAAE,MAAM,CAAA;CACxB,CAAA"}
|