@operator-labs/darwin 0.2.0 → 0.4.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 +1 -2
- package/dist/app.js +69 -11
- package/dist/app.js.map +1 -1
- package/dist/lib/collaboration-mode.d.ts +5 -0
- package/dist/lib/collaboration-mode.js +65 -0
- package/dist/lib/collaboration-mode.js.map +1 -0
- package/dist/lib/command-surface.d.ts +3 -0
- package/dist/lib/command-surface.js +9 -0
- package/dist/lib/command-surface.js.map +1 -1
- package/dist/lib/operator-harness.d.ts +6 -3
- package/dist/lib/operator-harness.js +97 -19
- package/dist/lib/operator-harness.js.map +1 -1
- package/dist/lib/package-version.d.ts +1 -0
- package/dist/lib/package-version.js +7 -0
- package/dist/lib/package-version.js.map +1 -0
- package/dist/lib/pi-tools.d.ts +2 -1
- package/dist/lib/pi-tools.js +27 -1
- package/dist/lib/pi-tools.js.map +1 -1
- package/dist/ui/components/answer-box.js +4 -5
- package/dist/ui/components/answer-box.js.map +1 -1
- package/dist/ui/components/footer.d.ts +2 -0
- package/dist/ui/components/footer.js +6 -2
- package/dist/ui/components/footer.js.map +1 -1
- package/dist/ui/components/intro.d.ts +2 -1
- package/dist/ui/components/intro.js +5 -2
- package/dist/ui/components/intro.js.map +1 -1
- package/dist/ui/components/note-box.js +1 -2
- package/dist/ui/components/note-box.js.map +1 -1
- package/dist/ui/components/response-content.d.ts +9 -0
- package/dist/ui/components/response-content.js +47 -0
- package/dist/ui/components/response-content.js.map +1 -0
- package/dist/ui/components/timeline-chart.d.ts +11 -0
- package/dist/ui/components/timeline-chart.js +181 -0
- package/dist/ui/components/timeline-chart.js.map +1 -0
- package/dist/utils/response-blocks.d.ts +24 -0
- package/dist/utils/response-blocks.js +147 -0
- package/dist/utils/response-blocks.js.map +1 -0
- package/package.json +2 -2
- package/dist/utils/markdown-table.d.ts +0 -8
- package/dist/utils/markdown-table.js +0 -123
- package/dist/utils/markdown-table.js.map +0 -1
package/README.md
CHANGED
package/dist/app.js
CHANGED
|
@@ -7,6 +7,7 @@ import { getStoredApiKey, getStoredBaseUrl, initDirs } from "./lib/config.js";
|
|
|
7
7
|
import { appendLocalSessionMessage, appendLocalSessionToolCall, appendLocalSessionToolResult, createLocalSession, listLocalSessions, loadLocalSession, } from "./lib/local-sessions.js";
|
|
8
8
|
import { buildHarnessPrompt, DARWIN_HARNESS_END, DARWIN_HARNESS_START, isToolCallPrefix, parseToolCall, } from "./lib/operator-harness.js";
|
|
9
9
|
import { createOperatorClient } from "./lib/operator.js";
|
|
10
|
+
import { getPackageVersion } from "./lib/package-version.js";
|
|
10
11
|
import { PiToolHarness } from "./lib/pi-tools.js";
|
|
11
12
|
import { editorTheme, theme } from "./theme.js";
|
|
12
13
|
import { ChatLogComponent } from "./ui/components/chat-log.js";
|
|
@@ -15,6 +16,7 @@ import { FooterComponent } from "./ui/components/footer.js";
|
|
|
15
16
|
import { IntroComponent } from "./ui/components/intro.js";
|
|
16
17
|
import { WorkingIndicatorComponent } from "./ui/components/working-indicator.js";
|
|
17
18
|
const workspaceRoot = process.cwd();
|
|
19
|
+
const MAX_CONSECUTIVE_IDENTICAL_TOOL_CALLS = 3;
|
|
18
20
|
const helpText = getTuiHelpText();
|
|
19
21
|
const commandSpecs = getTuiCommandSpecs();
|
|
20
22
|
function shortWorkspaceLabel(root) {
|
|
@@ -24,14 +26,24 @@ function shortWorkspaceLabel(root) {
|
|
|
24
26
|
function shortSessionId(sessionId) {
|
|
25
27
|
return sessionId.slice(0, 8);
|
|
26
28
|
}
|
|
27
|
-
function formatStatusSummary(sessionId, authSummary) {
|
|
28
|
-
|
|
29
|
+
function formatStatusSummary(sessionId, authSummary, collaborationMode) {
|
|
30
|
+
const parts = [
|
|
29
31
|
theme.muted(shortWorkspaceLabel(workspaceRoot)),
|
|
30
32
|
theme.border("·"),
|
|
31
33
|
theme.muted(shortSessionId(sessionId)),
|
|
32
34
|
theme.border("·"),
|
|
33
35
|
authSummary,
|
|
34
|
-
]
|
|
36
|
+
];
|
|
37
|
+
if (collaborationMode === "plan") {
|
|
38
|
+
parts.push(theme.border("·"), theme.warning("plan mode"));
|
|
39
|
+
}
|
|
40
|
+
return parts.join(" ");
|
|
41
|
+
}
|
|
42
|
+
function formatFooterHint(collaborationMode) {
|
|
43
|
+
if (collaborationMode === "plan") {
|
|
44
|
+
return `${theme.primary("?")} ${theme.muted("for help")} ${theme.border("·")} ${theme.primary("/plan")} ${theme.muted("to return to default mode")}`;
|
|
45
|
+
}
|
|
46
|
+
return `${theme.primary("?")} ${theme.muted("for help")} ${theme.border("·")} ${theme.primary("/plan")} ${theme.muted("for read-only planning")}`;
|
|
35
47
|
}
|
|
36
48
|
function formatAuthSummary(status) {
|
|
37
49
|
if (!getStoredApiKey()) {
|
|
@@ -77,6 +89,23 @@ function summarizeToolResult(event) {
|
|
|
77
89
|
}
|
|
78
90
|
return `${event.toolName} completed`;
|
|
79
91
|
}
|
|
92
|
+
function normalizeForComparison(value) {
|
|
93
|
+
if (Array.isArray(value)) {
|
|
94
|
+
return value.map((item) => normalizeForComparison(item));
|
|
95
|
+
}
|
|
96
|
+
if (isRecord(value)) {
|
|
97
|
+
return Object.fromEntries(Object.keys(value)
|
|
98
|
+
.sort((a, b) => a.localeCompare(b))
|
|
99
|
+
.map((key) => [key, normalizeForComparison(value[key])]));
|
|
100
|
+
}
|
|
101
|
+
return value;
|
|
102
|
+
}
|
|
103
|
+
function getToolCallSignature(call) {
|
|
104
|
+
return JSON.stringify({
|
|
105
|
+
tool: call.tool,
|
|
106
|
+
args: normalizeForComparison(call.args),
|
|
107
|
+
});
|
|
108
|
+
}
|
|
80
109
|
function isRecord(value) {
|
|
81
110
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
82
111
|
}
|
|
@@ -193,7 +222,7 @@ export async function runAppWithOptions(options = {}) {
|
|
|
193
222
|
initDirs();
|
|
194
223
|
const tui = new TUI(new ProcessTerminal(), true);
|
|
195
224
|
const root = new Container();
|
|
196
|
-
const intro = new IntroComponent(tui);
|
|
225
|
+
const intro = new IntroComponent(tui, getPackageVersion());
|
|
197
226
|
const chatLog = new ChatLogComponent(tui);
|
|
198
227
|
const footer = new FooterComponent();
|
|
199
228
|
const working = new WorkingIndicatorComponent(tui);
|
|
@@ -210,10 +239,12 @@ export async function runAppWithOptions(options = {}) {
|
|
|
210
239
|
: await createLocalSession(workspaceRoot),
|
|
211
240
|
authSummary: `${theme.warning("Unauthenticated")} ${theme.muted(`@ ${getStoredBaseUrl()}`)}`,
|
|
212
241
|
busy: false,
|
|
242
|
+
collaborationMode: "default",
|
|
213
243
|
};
|
|
214
244
|
const renderMain = () => {
|
|
215
245
|
root.clear();
|
|
216
|
-
footer.
|
|
246
|
+
footer.setHint(formatFooterHint(state.collaborationMode));
|
|
247
|
+
footer.setStatus(formatStatusSummary(state.session.id, state.authSummary, state.collaborationMode));
|
|
217
248
|
root.addChild(intro);
|
|
218
249
|
root.addChild(chatLog);
|
|
219
250
|
if (state.busy) {
|
|
@@ -227,7 +258,7 @@ export async function runAppWithOptions(options = {}) {
|
|
|
227
258
|
const refreshAuthSummary = async () => {
|
|
228
259
|
const status = await getAuthStatus();
|
|
229
260
|
state.authSummary = formatAuthSummary(status);
|
|
230
|
-
footer.setStatus(formatStatusSummary(state.session.id, state.authSummary));
|
|
261
|
+
footer.setStatus(formatStatusSummary(state.session.id, state.authSummary, state.collaborationMode));
|
|
231
262
|
tui.requestRender();
|
|
232
263
|
};
|
|
233
264
|
const setBusy = (busy, mode = "idle", message) => {
|
|
@@ -277,12 +308,15 @@ export async function runAppWithOptions(options = {}) {
|
|
|
277
308
|
setBusy(true, "thinking", "Darwin is working...");
|
|
278
309
|
try {
|
|
279
310
|
let nextPrompt = await buildHarnessPrompt({
|
|
311
|
+
collaborationMode: state.collaborationMode,
|
|
280
312
|
workspaceRoot,
|
|
281
313
|
session: state.session,
|
|
282
314
|
});
|
|
283
315
|
let finalAnswer = "";
|
|
284
316
|
let answerVisible = false;
|
|
285
|
-
|
|
317
|
+
let lastToolCallSignature = null;
|
|
318
|
+
let consecutiveIdenticalToolCalls = 0;
|
|
319
|
+
while (!finalAnswer) {
|
|
286
320
|
const stepAnswer = await runHarnessStep(nextPrompt, (text) => {
|
|
287
321
|
if (!answerVisible) {
|
|
288
322
|
chatLog.beginAnswer();
|
|
@@ -295,9 +329,20 @@ export async function runAppWithOptions(options = {}) {
|
|
|
295
329
|
finalAnswer = stepAnswer;
|
|
296
330
|
break;
|
|
297
331
|
}
|
|
332
|
+
const toolCallSignature = getToolCallSignature(toolCall);
|
|
333
|
+
if (toolCallSignature === lastToolCallSignature) {
|
|
334
|
+
consecutiveIdenticalToolCalls += 1;
|
|
335
|
+
}
|
|
336
|
+
else {
|
|
337
|
+
lastToolCallSignature = toolCallSignature;
|
|
338
|
+
consecutiveIdenticalToolCalls = 1;
|
|
339
|
+
}
|
|
340
|
+
if (consecutiveIdenticalToolCalls > MAX_CONSECUTIVE_IDENTICAL_TOOL_CALLS) {
|
|
341
|
+
throw new Error(`Darwin is stuck repeating the same local tool call (${toolCall.tool}). It should either use a different tool or answer directly.`);
|
|
342
|
+
}
|
|
298
343
|
chatLog.startTool(toolCall.tool, toolCall.args);
|
|
299
344
|
state.session = await appendLocalSessionToolCall(workspaceRoot, state.session, toolCall);
|
|
300
|
-
const toolResult = await piTools.execute(toolCall);
|
|
345
|
+
const toolResult = await piTools.execute(toolCall, state.collaborationMode);
|
|
301
346
|
if (toolResult.isError) {
|
|
302
347
|
chatLog.failTool(toolResult.summary);
|
|
303
348
|
}
|
|
@@ -306,13 +351,11 @@ export async function runAppWithOptions(options = {}) {
|
|
|
306
351
|
}
|
|
307
352
|
state.session = await appendLocalSessionToolResult(workspaceRoot, state.session, toolResult);
|
|
308
353
|
nextPrompt = await buildHarnessPrompt({
|
|
354
|
+
collaborationMode: state.collaborationMode,
|
|
309
355
|
workspaceRoot,
|
|
310
356
|
session: state.session,
|
|
311
357
|
});
|
|
312
358
|
}
|
|
313
|
-
if (!finalAnswer) {
|
|
314
|
-
throw new Error("Darwin reached the local tool limit without producing a final answer.");
|
|
315
|
-
}
|
|
316
359
|
if (!answerVisible) {
|
|
317
360
|
chatLog.addAssistant(finalAnswer);
|
|
318
361
|
}
|
|
@@ -355,6 +398,21 @@ export async function runAppWithOptions(options = {}) {
|
|
|
355
398
|
tui.requestRender();
|
|
356
399
|
return;
|
|
357
400
|
}
|
|
401
|
+
if (command.type === "plan") {
|
|
402
|
+
const nextMode = command.enabled === undefined
|
|
403
|
+
? state.collaborationMode === "plan"
|
|
404
|
+
? "default"
|
|
405
|
+
: "plan"
|
|
406
|
+
: command.enabled
|
|
407
|
+
? "plan"
|
|
408
|
+
: "default";
|
|
409
|
+
state.collaborationMode = nextMode;
|
|
410
|
+
chatLog.addNote(nextMode === "plan"
|
|
411
|
+
? "Plan mode enabled. Darwin will stay read-only, explore with non-mutating tools, and return a `<proposed_plan>` block."
|
|
412
|
+
: "Plan mode disabled. Darwin can implement changes again.");
|
|
413
|
+
renderMain();
|
|
414
|
+
return;
|
|
415
|
+
}
|
|
358
416
|
if (command.type === "login") {
|
|
359
417
|
if (command.apiKey) {
|
|
360
418
|
setApiKey(command.apiKey);
|
package/dist/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC9F,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,eAAe,GAGhB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,4BAA4B,EAC5B,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,GAEjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,aAAa,GACd,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AAEjF,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAEpC,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;AAClC,MAAM,YAAY,GAAkB,kBAAkB,EAAE,CAAC;AAEzD,SAAS,mBAAmB,CAAC,IAAY;IACvC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;IAC1C,OAAO,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AAChE,CAAC;AAED,SAAS,cAAc,CAAC,SAAiB;IACvC,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,mBAAmB,CAAC,SAAiB,EAAE,WAAmB;IACjE,OAAO;QACL,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;QAC/C,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;QACjB,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACtC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;QACjB,WAAW;KACZ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAiD;IAC1E,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,IAAI,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAC1F,CAAC;AAED,SAAS,eAAe,CAAC,SAAqB,EAAE,IAAsB;IACpE,MAAM,gBAAgB,GACpB,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;IAE5F,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,4BAA4B,CAAC;IAC/E,CAAC;IAED,OAAO,gBAAgB;SACpB,GAAG,CACF,CAAC,QAAQ,EAAE,EAAE,CACX,OAAO,QAAQ,CAAC,IAAI,SAAS,QAAQ,CAAC,EAAE,OAAO,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACzH;SACA,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CAAC,OAAoB;IAC1C,OAAO,OAAO,CAAC,KAAK;SACjB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;SAC/E,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY;IACvC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC7C,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,KAAK,EAAE,CAAC;QAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAC5F,OAAO,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACzC,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,CAAC,4BAA4B,CAAC,EAAE,CAAC;QAChD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAoD;IAC/E,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACrC,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,OAAO,GAAG,KAAK,CAAC,QAAQ,aAAa,KAAK,CAAC,MAAM,CAAC,MAAM,UAAU,CAAC;IACrE,CAAC;IACD,OAAO,GAAG,KAAK,CAAC,QAAQ,YAAY,CAAC;AACvC,CAAC;AASD,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,oBAAoB,CAC3B,KAAkB,EAClB,iBAAsC;IAEtC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,YAAY;YACf,OAAO,KAAK,CAAC;QACf,KAAK,WAAW;YACd,OAAO,KAAK,CAAC;QACf,KAAK,aAAa;YAChB,OAAO,KAAK,CAAC;QACf,KAAK,OAAO;YACV,OAAO,KAAK,CAAC;QACf,KAAK,aAAa,CAAC;QACnB,KAAK,QAAQ;YACX,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC5B,KAAK,SAAS;YACZ,OAAO,uBAAuB,CAAC,KAAK,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAC9B,GAAW,EACX,iBAAsC;IAEtC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IACrD,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACrC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC5B,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAC;QAC5D,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEvE,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,YAAY;gBACf,OAAO;oBACL,IAAI,EAAE,YAAY;oBAClB,IAAI,EACF,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,QAAQ;wBAC/B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;wBACf,CAAC,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,QAAQ;4BAChC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;4BACd,CAAC,CAAC,EAAE;iBACX,CAAC;YACJ,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBACxB,MAAM,UAAU,GAAG,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpF,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBAClF,IAAI,UAAU,EAAE,CAAC;oBACf,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;gBAC9C,CAAC;gBACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC5B,CAAC;YACD,KAAK,sBAAsB,CAAC,CAAC,CAAC;gBAC5B,MAAM,UAAU,GAAG,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpF,MAAM,QAAQ,GACZ,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,QAAQ;oBAClC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;oBAClB,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC;gBAClD,IAAI,UAAU,EAAE,CAAC;oBACf,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;gBAC9C,CAAC;gBACD,OAAO;oBACL,IAAI,EAAE,WAAW;oBACjB,QAAQ;oBACR,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;iBACnD,CAAC;YACJ,CAAC;YACD,KAAK,uBAAuB,CAAC,CAAC,CAAC;gBAC7B,MAAM,UAAU,GAAG,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpF,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC;gBAC7D,OAAO;oBACL,IAAI,EAAE,aAAa;oBACnB,QAAQ;oBACR,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC;iBACvB,CAAC;YACJ,CAAC;YACD,KAAK,OAAO;gBACV,OAAO;oBACL,IAAI,EAAE,OAAO;oBACb,KAAK,EACH,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,QAAQ;wBAC/B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;wBACf,CAAC,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,QAAQ;4BACnC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;4BACjB,CAAC,CAAC,cAAc;iBACvB,CAAC;YACJ;gBACE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC5B,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa;IAIvC,MAAM,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChD,OAAO;QACL,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE;QACzB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;KAC7B,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAyB,EAAE,OAAsB;IAC3E,OAAO,CAAC,QAAQ,EAAE,CAAC;IACnB,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACjC,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM;IAC1B,MAAM,iBAAiB,EAAE,CAAC;AAC5B,CAAC;AAMD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,UAAyB,EAAE;IACjE,QAAQ,EAAE,CAAC;IAEX,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,eAAe,EAAE,EAAE,IAAI,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,IAAI,SAAS,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAG,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,yBAAyB,CAAC,GAAG,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,sBAAsB,EAAE,CAAC,EAAE,CAAC,CAAC;IAC9F,MAAM,CAAC,uBAAuB,CAC5B,IAAI,0BAA0B,CAC5B,YAAY,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC7B,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;QACvC,KAAK,EAAE,OAAO,CAAC,MAAM;QACrB,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,CAAC,CAAC,EACH,aAAa,CACd,CACF,CAAC;IACF,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,aAAa,CAAC,CAAC;IAEjD,MAAM,KAAK,GAIP;QACF,OAAO,EAAE,OAAO,CAAC,aAAa;YAC5B,CAAC,CAAC,MAAM,gBAAgB,CAAC,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC;YAC9D,CAAC,CAAC,MAAM,kBAAkB,CAAC,aAAa,CAAC;QAC3C,WAAW,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,gBAAgB,EAAE,EAAE,CAAC,EAAE;QAC5F,IAAI,EAAE,KAAK;KACZ,CAAC;IAEF,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACvB,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACtB,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,KAAK,IAAI,EAAE;QACpC,MAAM,MAAM,GAAG,MAAM,aAAa,EAAE,CAAC;QACrC,KAAK,CAAC,WAAW,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QAC3E,GAAG,CAAC,aAAa,EAAE,CAAC;IACtB,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,IAAa,EAAE,OAAqC,MAAM,EAAE,OAAgB,EAAE,EAAE;QAC/F,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAC5C,UAAU,EAAE,CAAC;QACb,GAAG,CAAC,aAAa,EAAE,CAAC;IACtB,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,KAAK,EAC1B,MAAc,EACd,aAAqC,EACpB,EAAE;QACnB,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;QAC1F,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,kBAAkB,GAAG,KAAK,CAAC;QAC/B,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAC;QAEpD,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACjC,MAAM,eAAe,GAAG,oBAAoB,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;YAEvE,QAAQ,eAAe,CAAC,IAAI,EAAE,CAAC;gBAC7B,KAAK,YAAY;oBACf,MAAM,IAAI,eAAe,CAAC,IAAI,CAAC;oBAC/B,IAAI,CAAC,kBAAkB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;wBACrD,kBAAkB,GAAG,IAAI,CAAC;oBAC5B,CAAC;oBACD,IAAI,kBAAkB,EAAE,CAAC;wBACvB,aAAa,CAAC,MAAM,CAAC,CAAC;oBACxB,CAAC;oBACD,MAAM;gBACR,KAAK,WAAW;oBACd,MAAM;gBACR,KAAK,aAAa;oBAChB,MAAM;gBACR,KAAK,OAAO;oBACV,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;gBACzC,KAAK,QAAQ;oBACX,MAAM;YACV,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,KAAK,EAAE,OAAe,EAAE,EAAE;QACzC,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;YACvB,OAAO,CAAC,QAAQ,CAAC,sCAAsC,CAAC,CAAC;YACzD,GAAG,CAAC,aAAa,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC1B,KAAK,CAAC,OAAO,GAAG,MAAM,yBAAyB,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/F,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,sBAAsB,CAAC,CAAC;QAElD,IAAI,CAAC;YACH,IAAI,UAAU,GAAG,MAAM,kBAAkB,CAAC;gBACxC,aAAa;gBACb,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC,CAAC;YACH,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,IAAI,aAAa,GAAG,KAAK,CAAC;YAE1B,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;gBACxC,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE;oBAC3D,IAAI,CAAC,aAAa,EAAE,CAAC;wBACnB,OAAO,CAAC,WAAW,EAAE,CAAC;wBACtB,aAAa,GAAG,IAAI,CAAC;oBACvB,CAAC;oBACD,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBAC7B,CAAC,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;gBAC3C,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,WAAW,GAAG,UAAU,CAAC;oBACzB,MAAM;gBACR,CAAC;gBAED,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAChD,KAAK,CAAC,OAAO,GAAG,MAAM,0BAA0B,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBACzF,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACnD,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;oBACvB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;gBACvC,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;gBAC3C,CAAC;gBACD,KAAK,CAAC,OAAO,GAAG,MAAM,4BAA4B,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;gBAC7F,UAAU,GAAG,MAAM,kBAAkB,CAAC;oBACpC,aAAa;oBACb,OAAO,EAAE,KAAK,CAAC,OAAO;iBACvB,CAAC,CAAC;YACL,CAAC;YAED,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;YAC3F,CAAC;YAED,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;gBAClC,OAAO,CAAC,cAAc,EAAE,CAAC;YAC3B,CAAC;YACD,KAAK,CAAC,OAAO,GAAG,MAAM,yBAAyB,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;YACxG,OAAO,CAAC,cAAc,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,WAAW,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC3E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC9B,KAAK,CAAC,OAAO,GAAG,MAAM,yBAAyB,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;QAC1G,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,0BAA0B,GAAG,KAAK,EAAE,KAAa,EAAE,EAAE;QACzD,MAAM,EAAE,MAAM,EAAE,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;YACtB,OAAO;QACT,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC5B,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC1B,GAAG,CAAC,aAAa,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC5B,KAAK,CAAC,OAAO,EAAE,CAAC;YAChB,OAAO,CAAC,OAAO,EAAE,CAAC;YAClB,GAAG,CAAC,IAAI,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC7B,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnB,GAAG,CAAC,aAAa,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC7B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC1B,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;gBACnC,MAAM,kBAAkB,EAAE,CAAC;gBAC3B,UAAU,EAAE,CAAC;gBACb,OAAO;YACT,CAAC;YACD,OAAO,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;YAC5C,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,8BAA8B,CAAC,CAAC;YACtD,MAAM,OAAO,GAAG,MAAM,eAAe,EAAE,CAAC;YACxC,OAAO,CAAC,KAAK,CAAC,CAAC;YACf,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;YAClE,MAAM,kBAAkB,EAAE,CAAC;YAC3B,UAAU,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,EAAE,CAAC;YACT,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC/B,MAAM,kBAAkB,EAAE,CAAC;YAC3B,UAAU,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,MAAM,aAAa,EAAE,CAAC;YACrC,OAAO,CAAC,OAAO,CACb;gBACE,wBAAwB,MAAM,CAAC,aAAa,EAAE;gBAC9C,kBAAkB,gBAAgB,EAAE,EAAE;gBACtC,iBAAiB,UAAU,CAAC,eAAe,EAAE,CAAC,IAAI,MAAM,EAAE;gBAC1D,gBAAgB,MAAM,CAAC,KAAK,IAAI,KAAK,EAAE;gBACvC,eAAe,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,IAAI,KAAK,EAAE;gBAC5D,qBAAqB,MAAM,CAAC,UAAU,IAAI,KAAK,EAAE;gBACjD,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;aACnD;iBACE,MAAM,CAAC,OAAO,CAAC;iBACf,IAAI,CAAC,IAAI,CAAC,CACd,CAAC;YACF,MAAM,kBAAkB,EAAE,CAAC;YAC3B,UAAU,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC3B,KAAK,CAAC,OAAO,GAAG,MAAM,kBAAkB,CAAC,aAAa,CAAC,CAAC;YACxD,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO,CAAC,OAAO,CAAC,kCAAkC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YACpF,UAAU,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,aAAa,CAAC,CAAC;YACxD,OAAO,CAAC,OAAO,CACb,QAAQ,CAAC,MAAM,KAAK,CAAC;gBACnB,CAAC,CAAC,iCAAiC;gBACnC,CAAC,CAAC,QAAQ;qBACL,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;qBACZ,GAAG,CACF,CAAC,OAAO,EAAE,EAAE,CACV,OAAO,OAAO,CAAC,KAAK,IAAI,UAAU,SAAS,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,OAAO,CAAC,SAAS,MAAM,KAAK,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,YAAY,YAAY,CAAC,EAAE,CACtJ;qBACA,IAAI,CAAC,IAAI,CAAC,CAClB,CAAC;YACF,GAAG,CAAC,aAAa,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC5B,KAAK,CAAC,OAAO,GAAG,MAAM,gBAAgB,CAAC,aAAa,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YACzE,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAC3C,UAAU,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;YACtC,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YAChD,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1D,GAAG,CAAC,aAAa,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,CAAC,QAAQ,GAAG,CAAC,IAAI,EAAE,EAAE;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACnB,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC3B,KAAK,0BAA0B,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACrD,OAAO,CAAC,QAAQ,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACzE,GAAG,CAAC,aAAa,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,CAAC,QAAQ,GAAG,GAAG,EAAE;QACrB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACnC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACnB,GAAG,CAAC,aAAa,EAAE,CAAC;QACtB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE;QACpB,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,OAAO,CAAC,OAAO,EAAE,CAAC;QAClB,GAAG,CAAC,IAAI,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IAEF,UAAU,EAAE,CAAC;IACb,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,kBAAkB,EAAE,CAAC;IAC3B,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACnB,GAAG,CAAC,KAAK,EAAE,CAAC;IAEZ,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAClC,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,OAAO,EAAE,CAAC;IAChB,OAAO,CAAC,OAAO,EAAE,CAAC;AACpB,CAAC"}
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const darwinCollaborationModes: readonly ["default", "plan"];
|
|
2
|
+
export type DarwinCollaborationMode = (typeof darwinCollaborationModes)[number];
|
|
3
|
+
export declare const darwinPlanModeToolNames: readonly ["read", "bash", "grep", "find", "ls"];
|
|
4
|
+
export declare function isPlanModeToolAllowed(toolName: string): boolean;
|
|
5
|
+
export declare function isSafePlanModeBashCommand(command: string): boolean;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
export const darwinCollaborationModes = ["default", "plan"];
|
|
2
|
+
export const darwinPlanModeToolNames = ["read", "bash", "grep", "find", "ls"];
|
|
3
|
+
const planModeSafeBashPatterns = [
|
|
4
|
+
/^\s*pwd(?:\s+.*)?$/i,
|
|
5
|
+
/^\s*ls(?:\s+.*)?$/i,
|
|
6
|
+
/^\s*find(?:\s+.*)?$/i,
|
|
7
|
+
/^\s*grep(?:\s+.*)?$/i,
|
|
8
|
+
/^\s*rg(?:\s+.*)?$/i,
|
|
9
|
+
/^\s*fd(?:\s+.*)?$/i,
|
|
10
|
+
/^\s*cat(?:\s+.*)?$/i,
|
|
11
|
+
/^\s*head(?:\s+.*)?$/i,
|
|
12
|
+
/^\s*tail(?:\s+.*)?$/i,
|
|
13
|
+
/^\s*sed\s+-n(?:\s+.*)?$/i,
|
|
14
|
+
/^\s*awk(?:\s+.*)?$/i,
|
|
15
|
+
/^\s*wc(?:\s+.*)?$/i,
|
|
16
|
+
/^\s*sort(?:\s+.*)?$/i,
|
|
17
|
+
/^\s*uniq(?:\s+.*)?$/i,
|
|
18
|
+
/^\s*diff(?:\s+.*)?$/i,
|
|
19
|
+
/^\s*file(?:\s+.*)?$/i,
|
|
20
|
+
/^\s*stat(?:\s+.*)?$/i,
|
|
21
|
+
/^\s*du(?:\s+.*)?$/i,
|
|
22
|
+
/^\s*df(?:\s+.*)?$/i,
|
|
23
|
+
/^\s*tree(?:\s+.*)?$/i,
|
|
24
|
+
/^\s*which(?:\s+.*)?$/i,
|
|
25
|
+
/^\s*whereis(?:\s+.*)?$/i,
|
|
26
|
+
/^\s*type(?:\s+.*)?$/i,
|
|
27
|
+
/^\s*env(?:\s+.*)?$/i,
|
|
28
|
+
/^\s*printenv(?:\s+.*)?$/i,
|
|
29
|
+
/^\s*uname(?:\s+.*)?$/i,
|
|
30
|
+
/^\s*whoami(?:\s+.*)?$/i,
|
|
31
|
+
/^\s*id(?:\s+.*)?$/i,
|
|
32
|
+
/^\s*date(?:\s+.*)?$/i,
|
|
33
|
+
/^\s*uptime(?:\s+.*)?$/i,
|
|
34
|
+
/^\s*ps(?:\s+.*)?$/i,
|
|
35
|
+
/^\s*git\s+(status|log|diff|show|branch|remote|config\s+--get)(?:\s+.*)?$/i,
|
|
36
|
+
/^\s*npm\s+(list|ls|view|info|search|outdated|audit)(?:\s+.*)?$/i,
|
|
37
|
+
/^\s*yarn\s+(list|info|why|audit)(?:\s+.*)?$/i,
|
|
38
|
+
/^\s*bun\s+(pm|why|outdated)(?:\s+.*)?$/i,
|
|
39
|
+
/^\s*node\s+--version(?:\s+.*)?$/i,
|
|
40
|
+
/^\s*python(?:3)?\s+--version(?:\s+.*)?$/i,
|
|
41
|
+
];
|
|
42
|
+
const planModeUnsafeBashPatterns = [
|
|
43
|
+
/&&/,
|
|
44
|
+
/\|\|/,
|
|
45
|
+
/;/,
|
|
46
|
+
/>/,
|
|
47
|
+
/</,
|
|
48
|
+
/`/,
|
|
49
|
+
/\$\(/,
|
|
50
|
+
/\r|\n/,
|
|
51
|
+
];
|
|
52
|
+
export function isPlanModeToolAllowed(toolName) {
|
|
53
|
+
return darwinPlanModeToolNames.includes(toolName);
|
|
54
|
+
}
|
|
55
|
+
export function isSafePlanModeBashCommand(command) {
|
|
56
|
+
const trimmed = command.trim();
|
|
57
|
+
if (trimmed.length === 0) {
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
if (planModeUnsafeBashPatterns.some((pattern) => pattern.test(trimmed))) {
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
return planModeSafeBashPatterns.some((pattern) => pattern.test(trimmed));
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=collaboration-mode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collaboration-mode.js","sourceRoot":"","sources":["../../src/lib/collaboration-mode.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,SAAS,EAAE,MAAM,CAAU,CAAC;AAIrE,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAU,CAAC;AAEvF,MAAM,wBAAwB,GAAG;IAC/B,qBAAqB;IACrB,oBAAoB;IACpB,sBAAsB;IACtB,sBAAsB;IACtB,oBAAoB;IACpB,oBAAoB;IACpB,qBAAqB;IACrB,sBAAsB;IACtB,sBAAsB;IACtB,0BAA0B;IAC1B,qBAAqB;IACrB,oBAAoB;IACpB,sBAAsB;IACtB,sBAAsB;IACtB,sBAAsB;IACtB,sBAAsB;IACtB,sBAAsB;IACtB,oBAAoB;IACpB,oBAAoB;IACpB,sBAAsB;IACtB,uBAAuB;IACvB,yBAAyB;IACzB,sBAAsB;IACtB,qBAAqB;IACrB,0BAA0B;IAC1B,uBAAuB;IACvB,wBAAwB;IACxB,oBAAoB;IACpB,sBAAsB;IACtB,wBAAwB;IACxB,oBAAoB;IACpB,2EAA2E;IAC3E,iEAAiE;IACjE,8CAA8C;IAC9C,yCAAyC;IACzC,kCAAkC;IAClC,0CAA0C;CAC3C,CAAC;AAEF,MAAM,0BAA0B,GAAG;IACjC,IAAI;IACJ,MAAM;IACN,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,MAAM;IACN,OAAO;CACR,CAAC;AAEF,MAAM,UAAU,qBAAqB,CAAC,QAAgB;IACpD,OAAO,uBAAuB,CAAC,QAAQ,CAAC,QAAoD,CAAC,CAAC;AAChG,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,OAAe;IACvD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,0BAA0B,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QACxE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,wBAAwB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAC3E,CAAC"}
|
|
@@ -3,6 +3,7 @@ const tuiCommandSpecs = [
|
|
|
3
3
|
{ phrase: "/help", description: "Show usage" },
|
|
4
4
|
{ phrase: "/quit", description: "Exit the app" },
|
|
5
5
|
{ phrase: "/clear", description: "Clear the timeline" },
|
|
6
|
+
{ phrase: "/plan", description: "Toggle read-only plan mode" },
|
|
6
7
|
{ phrase: "/login", description: "Authenticate with Operator" },
|
|
7
8
|
{ phrase: "/logout", description: "Clear stored API key" },
|
|
8
9
|
{ phrase: "/status", description: "Show current auth status" },
|
|
@@ -42,6 +43,7 @@ const tuiHelpLines = [
|
|
|
42
43
|
"`/new` Start a fresh Darwin chat thread",
|
|
43
44
|
"`/chats` List local Darwin sessions",
|
|
44
45
|
"`/open <id>` Reopen a local session by id or prefix",
|
|
46
|
+
"`/plan [on|off]` Toggle read-only plan mode",
|
|
45
47
|
"`/clear` Clear the current timeline view",
|
|
46
48
|
"",
|
|
47
49
|
"**Auth**",
|
|
@@ -165,6 +167,13 @@ export function parseTuiCommand(header) {
|
|
|
165
167
|
if (/^clear$/i.test(raw)) {
|
|
166
168
|
return { type: "clear" };
|
|
167
169
|
}
|
|
170
|
+
const planMatch = raw.match(/^plan(?:\s+(on|off))?$/i);
|
|
171
|
+
if (planMatch) {
|
|
172
|
+
return {
|
|
173
|
+
type: "plan",
|
|
174
|
+
enabled: planMatch[1] === undefined ? undefined : planMatch[1].toLowerCase() === "on",
|
|
175
|
+
};
|
|
176
|
+
}
|
|
168
177
|
if (/^new(?:\s+chat)?$/i.test(raw)) {
|
|
169
178
|
return { type: "new" };
|
|
170
179
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-surface.js","sourceRoot":"","sources":["../../src/lib/command-surface.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"command-surface.js","sourceRoot":"","sources":["../../src/lib/command-surface.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
+
import { type DarwinCollaborationMode } from "./collaboration-mode.js";
|
|
1
2
|
import type { DarwinSession } from "./local-sessions.js";
|
|
2
3
|
import { type DarwinLocalToolCall } from "./pi-tools.js";
|
|
3
4
|
export declare const DARWIN_HARNESS_START = "<darwin_harness>";
|
|
4
5
|
export declare const DARWIN_HARNESS_END = "</darwin_harness>";
|
|
5
6
|
export declare const DARWIN_TOOL_CALL_START = "<darwin_local_tool_call>";
|
|
6
7
|
export declare const DARWIN_TOOL_CALL_END = "</darwin_local_tool_call>";
|
|
7
|
-
export
|
|
8
|
-
|
|
8
|
+
export interface BuildHarnessPromptParams {
|
|
9
|
+
collaborationMode?: DarwinCollaborationMode;
|
|
9
10
|
workspaceRoot: string;
|
|
10
11
|
session: DarwinSession;
|
|
11
|
-
}
|
|
12
|
+
}
|
|
13
|
+
export declare function getWorkspaceSnapshot(root: string): Promise<string>;
|
|
14
|
+
export declare function buildHarnessPrompt(params: BuildHarnessPromptParams): Promise<string>;
|
|
12
15
|
export declare function isToolCallPrefix(text: string): boolean;
|
|
13
16
|
export declare function parseToolCall(text: string): DarwinLocalToolCall | null;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as fs from "node:fs/promises";
|
|
2
|
+
import { darwinPlanModeToolNames } from "./collaboration-mode.js";
|
|
2
3
|
import { darwinLocalToolNames } from "./pi-tools.js";
|
|
3
4
|
export const DARWIN_HARNESS_START = "<darwin_harness>";
|
|
4
5
|
export const DARWIN_HARNESS_END = "</darwin_harness>";
|
|
@@ -99,54 +100,131 @@ async function readAgentsInstructions(root) {
|
|
|
99
100
|
return null;
|
|
100
101
|
}
|
|
101
102
|
}
|
|
103
|
+
function getToolInstructions(collaborationMode) {
|
|
104
|
+
if (collaborationMode === "plan") {
|
|
105
|
+
return [
|
|
106
|
+
"Current collaboration mode: plan",
|
|
107
|
+
"You are in Plan mode until the user explicitly switches out of it.",
|
|
108
|
+
"Plan mode is for discovery and decision-complete planning, not implementation.",
|
|
109
|
+
"If the user asks you to execute work while still in Plan mode, treat that as a request to plan the execution.",
|
|
110
|
+
"",
|
|
111
|
+
"Plan mode rules:",
|
|
112
|
+
"1. You may perform non-mutating exploration with local tools to reduce ambiguity.",
|
|
113
|
+
"2. You must not edit files, write files, or perform other mutating local actions.",
|
|
114
|
+
"3. Before asking the user clarifying questions, do at least one targeted exploration pass when local context can answer the question.",
|
|
115
|
+
"4. Ask only the questions that materially change the plan or resolve an important tradeoff.",
|
|
116
|
+
"5. When the plan is ready, answer with exactly one complete `<proposed_plan>` block and keep the rest of the answer minimal.",
|
|
117
|
+
"6. When the plan is ready, close the response immediately after the completed `<proposed_plan>` block.",
|
|
118
|
+
"",
|
|
119
|
+
"Plan mode output contract:",
|
|
120
|
+
"1. Put `<proposed_plan>` on its own line.",
|
|
121
|
+
"2. Put the full markdown plan on the next line(s).",
|
|
122
|
+
"3. Put `</proposed_plan>` on its own line.",
|
|
123
|
+
"4. The plan must be implementation-ready and leave no important decisions unresolved.",
|
|
124
|
+
"",
|
|
125
|
+
"Available local Pi tools in Plan mode and exact argument names:",
|
|
126
|
+
'- `read` with `{"path":"src/app.ts","offset":0,"limit":200}`',
|
|
127
|
+
'- `bash` with `{"command":"pwd","timeout":120000}`',
|
|
128
|
+
'- `ls` with `{"path":".","limit":200}`',
|
|
129
|
+
'- `grep` with `{"pattern":"foo","path":"src","glob":"*.ts","ignoreCase":true,"literal":false,"context":2,"limit":200}`',
|
|
130
|
+
'- `find` with `{"pattern":"*.ts","path":"src","limit":200}`',
|
|
131
|
+
"",
|
|
132
|
+
"Plan mode bash restrictions:",
|
|
133
|
+
"Use only a single read-only inspection command.",
|
|
134
|
+
"Do not use shell chaining, redirects, or commands that modify files or external state.",
|
|
135
|
+
];
|
|
136
|
+
}
|
|
137
|
+
return [
|
|
138
|
+
"Current collaboration mode: default",
|
|
139
|
+
"",
|
|
140
|
+
"Available local Pi tools and exact argument names:",
|
|
141
|
+
'- `read` with `{"path":"src/app.ts","offset":0,"limit":200}`',
|
|
142
|
+
'- `write` with `{"path":"notes.txt","content":"..."}`',
|
|
143
|
+
'- `edit` with `{"path":"src/app.ts","oldText":"before","newText":"after"}`',
|
|
144
|
+
'- `bash` with `{"command":"npm test","timeout":120000}`',
|
|
145
|
+
'- `ls` with `{"path":".","limit":200}`',
|
|
146
|
+
'- `grep` with `{"pattern":"foo","path":"src","glob":"*.ts","ignoreCase":true,"literal":false,"context":2,"limit":200}`',
|
|
147
|
+
'- `find` with `{"pattern":"*.ts","path":"src","limit":200}`',
|
|
148
|
+
];
|
|
149
|
+
}
|
|
102
150
|
export async function buildHarnessPrompt(params) {
|
|
151
|
+
const collaborationMode = params.collaborationMode ?? "default";
|
|
103
152
|
const snapshot = await getWorkspaceSnapshot(params.workspaceRoot);
|
|
104
153
|
const agentsInstructions = await readAgentsInstructions(params.workspaceRoot);
|
|
105
154
|
const sessionHistory = formatStructuredHistory(params.session);
|
|
106
155
|
const currentObjective = getCurrentObjective(params.session);
|
|
107
156
|
return [
|
|
108
157
|
DARWIN_HARNESS_START,
|
|
109
|
-
"You are Darwin
|
|
158
|
+
"You are Darwin, a local coding agent running through Operator chat.",
|
|
110
159
|
"Operator chat is the user-visible source of truth for this session.",
|
|
160
|
+
"Your primary goal is to develop agents that get incrementally better at the task they are given. Each mutation and skill download should aim for general capability improvement by default, while still optimizing for a benchmark when the user wants that.",
|
|
111
161
|
"This Darwin session maps 1:1 to the current Operator chat thread.",
|
|
112
162
|
"Use the structured Darwin session state below to maintain continuity across user turns and tool steps.",
|
|
113
|
-
"Darwin's purpose is to build and improve a Darwin Godel-machine system that automates OpenClaw deployment, experiment design, evaluation, and iteration.",
|
|
114
|
-
"
|
|
163
|
+
"Darwin's purpose is to build and improve a Darwin Godel-machine system that automates OpenClaw deployment, experiment design, evaluation, and iteration. To do this, your local file system should be used primarily as a research journal, and Operator API and tools as your agent laboratory.",
|
|
164
|
+
"Operator-hosted resources are reachable through Operator's hosted tools when the task is remote, and likely the chat tool will be the most frequent tool to use.",
|
|
115
165
|
"You have native access to web search through the Operator API.",
|
|
116
166
|
"You can inspect files, edit code, run commands, and verify results end-to-end with local Pi tools when the task is local.",
|
|
117
|
-
"Operator-hosted resources are reachable through Operator's hosted tools when the task is remote, and likely the chat tool will be the most frequent tool to use.",
|
|
118
167
|
"Be precise about the boundary: local Pi tools can access the local workspace, while hosted instance access happens through Operator rather than the local filesystem.",
|
|
119
168
|
`Workspace root: ${params.workspaceRoot}`,
|
|
120
169
|
`Top-level entries: ${snapshot}`,
|
|
121
170
|
"Scratch pad directory: .darwin/",
|
|
122
171
|
"",
|
|
123
172
|
"Default behavior:",
|
|
124
|
-
"1.
|
|
125
|
-
"2.
|
|
126
|
-
"3.
|
|
127
|
-
"4.
|
|
128
|
-
"5.
|
|
173
|
+
"1. Darwin works best on tasks and evaluations with verifiable, relatively objective answers.",
|
|
174
|
+
"2. Prefer fast feedback loops, short run times, and cheap evaluations before longer or fuzzier experiments.",
|
|
175
|
+
"3. Treat any named benchmark or domain as the same general loop: define the task, run the agents, measure outcomes, compare variants, and iterate.",
|
|
176
|
+
"4. When the user asks to improve an agent, do the full loop: define the target, create or mutate one or more agents, run the evaluation, compare outcomes, extract lessons, and propose the next iteration.",
|
|
177
|
+
"5. When the user asks for multiple variants, create a small set of meaningfully different agents or skill bundles, run all of them, and compare them on the same task.",
|
|
178
|
+
"6. Prefer improvements that transfer across tasks: decomposition, verification, evidence gathering, tool selection, error recovery, concise reporting, and calibrated confidence.",
|
|
179
|
+
"7. For forecasting tasks like weather, AQI, BTC, or virality, prefer retrospective evaluation on archived data before any live deployment.",
|
|
180
|
+
"8. When archived outcomes exist, use masked backtesting: give each agent only the information available up to the prediction timestamp, hide the realized outcome, then score the prediction after reveal.",
|
|
181
|
+
"9. Guard against leakage. Do not let agents see future labels, edited repost counts, or metadata that was only available after the event resolved.",
|
|
182
|
+
"10. Prefer rolling or walk-forward splits over a single static split when the domain changes over time.",
|
|
183
|
+
"11. For agent improvement loops on forecasting tasks, treat selection as an evolutionary search: keep the variants that score best on held-out periods and mutate from those winners.",
|
|
184
|
+
"",
|
|
185
|
+
"Darwin example loop:",
|
|
186
|
+
"1. If the user asks for an agent that is really good at some task, treat that as a request to optimize an agent through repeated evaluation, not as a one-shot instance creation task.",
|
|
187
|
+
"2. Use Operator chat and hosted tools to create the baseline agent, install skills, create additional variants, and run the evaluations.",
|
|
188
|
+
"2a. Use Operator chat to install, update, or remove skills on hosted agents whenever the user asks for skill lifecycle changes.",
|
|
189
|
+
"2b. Use Operator chat to inspect and edit Operator-managed agent files such as `agents.md`, `soul.md`, and similar hosted configuration or memory files when relevant.",
|
|
190
|
+
"3. If the user does not provide a benchmark or test suite, guide them toward one or choose a small benchmark with objective scoring and fast feedback, then say what benchmark you chose and why.",
|
|
191
|
+
"4. Start with a baseline plus a few variants with clearly different traits, prompts, or skill bundles. Keep the mutation surface legible so results are interpretable. Keep in mind your instance and token budget.",
|
|
192
|
+
"5. Run every variant on the same evaluation set. Record structured results so the runs can be compared directly.",
|
|
193
|
+
"6. After each round, report how each agent did, what failed, what appears to generalize, and which general skills or behaviors the next agent should gain.",
|
|
194
|
+
"7. Prefer general skills over benchmark-specific tricks. Good examples include planning, hypothesis testing, verification, evidence collection, command and tool discipline, persistence, recovery from dead ends, and concise result reporting.",
|
|
195
|
+
"8. Continue iterating when the budget allows, so the last-stage agent is meaningfully better than the initial agent on the measured task.",
|
|
196
|
+
"9. Guide the user through the loop in plain language. Make the workflow visible: baseline, variants, evaluation, analysis, mutation, rerun.",
|
|
197
|
+
"10. Use the local filesystem as a scratch pad for experiment logs, hypotheses, benchmark definitions, run results, failure notes, and iteration summaries.",
|
|
198
|
+
"11. Minimal forecasting protocol: define `prediction_time`, `observation_window`, and `target_window`. Build masked examples from the archive using only information available at `prediction_time`.",
|
|
199
|
+
"12. Run walk-forward evaluation across successive time slices.",
|
|
200
|
+
"13. Score each variant with domain metrics appropriate to the task.",
|
|
129
201
|
"",
|
|
130
202
|
"Rules:",
|
|
131
203
|
"- Do not ask the user for permission to inspect or modify local files. Use the tools.",
|
|
132
|
-
"-
|
|
133
|
-
"- Operator-hosted context is accessed through Operator, not through the local filesystem.",
|
|
204
|
+
"- Access OpenClaw agents and their state through Operator chat, not through the local filesystem.",
|
|
134
205
|
"- You should view the Operator chat and tools as a kind of agent cloud laboratory.",
|
|
206
|
+
"- If the user asks you to create an agent, install skills, create multiple variants, or run a benchmark, prefer doing that through Operator chat and hosted tools instead of treating it as a local coding task.",
|
|
207
|
+
"- When benchmarking agents, record enough structure to compare runs clearly: agent identity, variant traits or skills, task, metric, score, failures, and notable observations.",
|
|
208
|
+
"- When the user asks how an agent did or what to improve, focus on measurable results first, then general lessons, then the next mutation plan.",
|
|
209
|
+
"- Use `.darwin/` for local scratch files that track what is working, what is not working, open questions, benchmark outputs, and iteration history.",
|
|
210
|
+
"- For benchmark runs, evaluation rounds, leaderboard updates, and other structured result summaries, emit a fenced code block with language `chart` by default whenever the data can support it. Use prose-only summaries only when the data is too sparse or unstructured for a meaningful chart.",
|
|
211
|
+
"- Pair charts with a compact textual summary so the user gets both the visual trend and the key conclusion.",
|
|
212
|
+
"- When you mention a chart or visualization, prefer using the structured benchmark data you already stored in `.darwin/` so the chart can be regenerated or refined later.",
|
|
213
|
+
"- When the answer is complete, finish on the last substantive sentence.",
|
|
135
214
|
"",
|
|
136
|
-
|
|
137
|
-
'- `read` with `{"path":"src/app.ts","offset":0,"limit":200}`',
|
|
138
|
-
'- `write` with `{"path":"notes.txt","content":"..."}`',
|
|
139
|
-
'- `edit` with `{"path":"src/app.ts","oldText":"before","newText":"after"}`',
|
|
140
|
-
'- `bash` with `{"command":"npm test","timeout":120000}`',
|
|
141
|
-
'- `ls` with `{"path":".","limit":200}`',
|
|
142
|
-
'- `grep` with `{"pattern":"foo","path":"src","glob":"*.ts","ignoreCase":true,"literal":false,"context":2,"limit":200}`',
|
|
143
|
-
'- `find` with `{"pattern":"*.ts","path":"src","limit":200}`',
|
|
215
|
+
...getToolInstructions(collaborationMode),
|
|
144
216
|
"",
|
|
145
217
|
"Tool protocol:",
|
|
146
218
|
"If you need a local tool, respond with exactly one block and nothing else:",
|
|
147
219
|
`${DARWIN_TOOL_CALL_START}{"tool":"read","args":{"path":"AGENTS.md"}}${DARWIN_TOOL_CALL_END}`,
|
|
148
220
|
"No markdown fences. No prose before or after the block.",
|
|
149
221
|
"After Darwin sends you a tool result, either request another local tool with the same format or answer the user directly in normal prose.",
|
|
222
|
+
"Work until the task is actually complete.",
|
|
223
|
+
"Do not stop early because of an assumed tool limit.",
|
|
224
|
+
"Repeat a local tool call only when something materially changed and you need fresh results.",
|
|
225
|
+
collaborationMode === "plan"
|
|
226
|
+
? `Only use these tools in Plan mode: ${darwinPlanModeToolNames.join(", ")}.`
|
|
227
|
+
: `You may use any of these tools in Default mode: ${darwinLocalToolNames.join(", ")}.`,
|
|
150
228
|
"",
|
|
151
229
|
`Current Darwin objective: ${currentObjective}`,
|
|
152
230
|
"",
|