@operator-labs/darwin 0.3.0 → 0.4.1

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 CHANGED
@@ -74,6 +74,7 @@ Inside the TUI:
74
74
 
75
75
  ```text
76
76
  /help
77
+ /plan [on|off]
77
78
  /login
78
79
  /status
79
80
  /new
@@ -84,5 +85,3 @@ Inside the TUI:
84
85
  /clear
85
86
  /quit
86
87
  ```
87
-
88
-
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";
@@ -25,14 +26,24 @@ function shortWorkspaceLabel(root) {
25
26
  function shortSessionId(sessionId) {
26
27
  return sessionId.slice(0, 8);
27
28
  }
28
- function formatStatusSummary(sessionId, authSummary) {
29
- return [
29
+ function formatStatusSummary(sessionId, authSummary, collaborationMode) {
30
+ const parts = [
30
31
  theme.muted(shortWorkspaceLabel(workspaceRoot)),
31
32
  theme.border("·"),
32
33
  theme.muted(shortSessionId(sessionId)),
33
34
  theme.border("·"),
34
35
  authSummary,
35
- ].join(" ");
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")}`;
36
47
  }
37
48
  function formatAuthSummary(status) {
38
49
  if (!getStoredApiKey()) {
@@ -211,7 +222,7 @@ export async function runAppWithOptions(options = {}) {
211
222
  initDirs();
212
223
  const tui = new TUI(new ProcessTerminal(), true);
213
224
  const root = new Container();
214
- const intro = new IntroComponent(tui);
225
+ const intro = new IntroComponent(tui, getPackageVersion());
215
226
  const chatLog = new ChatLogComponent(tui);
216
227
  const footer = new FooterComponent();
217
228
  const working = new WorkingIndicatorComponent(tui);
@@ -228,10 +239,13 @@ export async function runAppWithOptions(options = {}) {
228
239
  : await createLocalSession(workspaceRoot),
229
240
  authSummary: `${theme.warning("Unauthenticated")} ${theme.muted(`@ ${getStoredBaseUrl()}`)}`,
230
241
  busy: false,
242
+ collaborationMode: "default",
243
+ abortController: null,
231
244
  };
232
245
  const renderMain = () => {
233
246
  root.clear();
234
- footer.setStatus(formatStatusSummary(state.session.id, state.authSummary));
247
+ footer.setHint(formatFooterHint(state.collaborationMode));
248
+ footer.setStatus(formatStatusSummary(state.session.id, state.authSummary, state.collaborationMode));
235
249
  root.addChild(intro);
236
250
  root.addChild(chatLog);
237
251
  if (state.busy) {
@@ -245,7 +259,7 @@ export async function runAppWithOptions(options = {}) {
245
259
  const refreshAuthSummary = async () => {
246
260
  const status = await getAuthStatus();
247
261
  state.authSummary = formatAuthSummary(status);
248
- footer.setStatus(formatStatusSummary(state.session.id, state.authSummary));
262
+ footer.setStatus(formatStatusSummary(state.session.id, state.authSummary, state.collaborationMode));
249
263
  tui.requestRender();
250
264
  };
251
265
  const setBusy = (busy, mode = "idle", message) => {
@@ -254,13 +268,16 @@ export async function runAppWithOptions(options = {}) {
254
268
  renderMain();
255
269
  tui.requestRender();
256
270
  };
257
- const runHarnessStep = async (prompt, onAnswerDelta) => {
271
+ const runHarnessStep = async (prompt, onAnswerDelta, signal) => {
258
272
  const client = createOperatorClient();
259
273
  const stream = await client.chat.stream(prompt, { chatId: state.session.operatorChatId });
260
274
  let answer = "";
261
275
  let shouldRenderAnswer = false;
262
276
  const toolNamesByCallId = new Map();
263
277
  for await (const event of stream) {
278
+ if (signal?.aborted) {
279
+ throw new DOMException("Stopped", "AbortError");
280
+ }
264
281
  const normalizedEvent = normalizeStreamEvent(event, toolNamesByCallId);
265
282
  switch (normalizedEvent.type) {
266
283
  case "text-delta":
@@ -290,11 +307,14 @@ export async function runAppWithOptions(options = {}) {
290
307
  tui.requestRender();
291
308
  return;
292
309
  }
310
+ const abortController = new AbortController();
311
+ state.abortController = abortController;
293
312
  chatLog.addQuery(message);
294
313
  state.session = await appendLocalSessionMessage(workspaceRoot, state.session, "user", message);
295
314
  setBusy(true, "thinking", "Darwin is working...");
296
315
  try {
297
316
  let nextPrompt = await buildHarnessPrompt({
317
+ collaborationMode: state.collaborationMode,
298
318
  workspaceRoot,
299
319
  session: state.session,
300
320
  });
@@ -303,13 +323,16 @@ export async function runAppWithOptions(options = {}) {
303
323
  let lastToolCallSignature = null;
304
324
  let consecutiveIdenticalToolCalls = 0;
305
325
  while (!finalAnswer) {
326
+ if (abortController.signal.aborted) {
327
+ throw new DOMException("Stopped", "AbortError");
328
+ }
306
329
  const stepAnswer = await runHarnessStep(nextPrompt, (text) => {
307
330
  if (!answerVisible) {
308
331
  chatLog.beginAnswer();
309
332
  answerVisible = true;
310
333
  }
311
334
  chatLog.updateAnswer(text);
312
- });
335
+ }, abortController.signal);
313
336
  const toolCall = parseToolCall(stepAnswer);
314
337
  if (!toolCall) {
315
338
  finalAnswer = stepAnswer;
@@ -328,7 +351,7 @@ export async function runAppWithOptions(options = {}) {
328
351
  }
329
352
  chatLog.startTool(toolCall.tool, toolCall.args);
330
353
  state.session = await appendLocalSessionToolCall(workspaceRoot, state.session, toolCall);
331
- const toolResult = await piTools.execute(toolCall);
354
+ const toolResult = await piTools.execute(toolCall, state.collaborationMode);
332
355
  if (toolResult.isError) {
333
356
  chatLog.failTool(toolResult.summary);
334
357
  }
@@ -337,6 +360,7 @@ export async function runAppWithOptions(options = {}) {
337
360
  }
338
361
  state.session = await appendLocalSessionToolResult(workspaceRoot, state.session, toolResult);
339
362
  nextPrompt = await buildHarnessPrompt({
363
+ collaborationMode: state.collaborationMode,
340
364
  workspaceRoot,
341
365
  session: state.session,
342
366
  });
@@ -352,11 +376,17 @@ export async function runAppWithOptions(options = {}) {
352
376
  chatLog.finalizeAnswer();
353
377
  }
354
378
  catch (error) {
355
- const messageText = error instanceof Error ? error.message : String(error);
356
- chatLog.addError(messageText);
357
- state.session = await appendLocalSessionMessage(workspaceRoot, state.session, "assistant", messageText);
379
+ if (error instanceof DOMException && error.name === "AbortError") {
380
+ chatLog.addNote("Execution stopped.");
381
+ }
382
+ else {
383
+ const messageText = error instanceof Error ? error.message : String(error);
384
+ chatLog.addError(messageText);
385
+ state.session = await appendLocalSessionMessage(workspaceRoot, state.session, "assistant", messageText);
386
+ }
358
387
  }
359
388
  finally {
389
+ state.abortController = null;
360
390
  setBusy(false);
361
391
  }
362
392
  };
@@ -378,11 +408,31 @@ export async function runAppWithOptions(options = {}) {
378
408
  tui.stop();
379
409
  process.exit(0);
380
410
  }
411
+ if (command.type === "stop") {
412
+ chatLog.addNote("Nothing is running.");
413
+ tui.requestRender();
414
+ return;
415
+ }
381
416
  if (command.type === "clear") {
382
417
  chatLog.clearAll();
383
418
  tui.requestRender();
384
419
  return;
385
420
  }
421
+ if (command.type === "plan") {
422
+ const nextMode = command.enabled === undefined
423
+ ? state.collaborationMode === "plan"
424
+ ? "default"
425
+ : "plan"
426
+ : command.enabled
427
+ ? "plan"
428
+ : "default";
429
+ state.collaborationMode = nextMode;
430
+ chatLog.addNote(nextMode === "plan"
431
+ ? "Plan mode enabled. Darwin will stay read-only, explore with non-mutating tools, and return a `<proposed_plan>` block."
432
+ : "Plan mode disabled. Darwin can implement changes again.");
433
+ renderMain();
434
+ return;
435
+ }
386
436
  if (command.type === "login") {
387
437
  if (command.apiKey) {
388
438
  setApiKey(command.apiKey);
@@ -458,7 +508,19 @@ export async function runAppWithOptions(options = {}) {
458
508
  };
459
509
  editor.onSubmit = (text) => {
460
510
  const value = text.trim();
461
- if (!value || state.busy) {
511
+ if (!value) {
512
+ return;
513
+ }
514
+ if (state.busy) {
515
+ const command = parseTuiCommand(value);
516
+ if (command?.type === "stop") {
517
+ editor.setText("");
518
+ if (state.abortController) {
519
+ state.abortController.abort();
520
+ chatLog.addNote("Stopping...");
521
+ tui.requestRender();
522
+ }
523
+ }
462
524
  return;
463
525
  }
464
526
  editor.setText("");
package/dist/app.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
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"}
@@ -7,8 +7,13 @@ export type TuiCommandAction = {
7
7
  type: "help";
8
8
  } | {
9
9
  type: "quit";
10
+ } | {
11
+ type: "stop";
10
12
  } | {
11
13
  type: "clear";
14
+ } | {
15
+ type: "plan";
16
+ enabled?: boolean;
12
17
  } | {
13
18
  type: "login";
14
19
  apiKey?: string;
@@ -2,7 +2,9 @@ const tuiCommandSpecs = [
2
2
  { phrase: "?", description: "Show usage" },
3
3
  { phrase: "/help", description: "Show usage" },
4
4
  { phrase: "/quit", description: "Exit the app" },
5
+ { phrase: "/stop", description: "Stop current execution" },
5
6
  { phrase: "/clear", description: "Clear the timeline" },
7
+ { phrase: "/plan", description: "Toggle read-only plan mode" },
6
8
  { phrase: "/login", description: "Authenticate with Operator" },
7
9
  { phrase: "/logout", description: "Clear stored API key" },
8
10
  { phrase: "/status", description: "Show current auth status" },
@@ -42,6 +44,8 @@ const tuiHelpLines = [
42
44
  "`/new` Start a fresh Darwin chat thread",
43
45
  "`/chats` List local Darwin sessions",
44
46
  "`/open <id>` Reopen a local session by id or prefix",
47
+ "`/plan [on|off]` Toggle read-only plan mode",
48
+ "`/stop` Stop the current Darwin execution",
45
49
  "`/clear` Clear the current timeline view",
46
50
  "",
47
51
  "**Auth**",
@@ -162,9 +166,19 @@ export function parseTuiCommand(header) {
162
166
  if (/^(quit|exit)$/i.test(raw)) {
163
167
  return { type: "quit" };
164
168
  }
169
+ if (/^stop$/i.test(raw)) {
170
+ return { type: "stop" };
171
+ }
165
172
  if (/^clear$/i.test(raw)) {
166
173
  return { type: "clear" };
167
174
  }
175
+ const planMatch = raw.match(/^plan(?:\s+(on|off))?$/i);
176
+ if (planMatch) {
177
+ return {
178
+ type: "plan",
179
+ enabled: planMatch[1] === undefined ? undefined : planMatch[1].toLowerCase() === "on",
180
+ };
181
+ }
168
182
  if (/^new(?:\s+chat)?$/i.test(raw)) {
169
183
  return { type: "new" };
170
184
  }
@@ -1 +1 @@
1
- {"version":3,"file":"command-surface.js","sourceRoot":"","sources":["../../src/lib/command-surface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command-surface.js","sourceRoot":"","sources":["../../src/lib/command-surface.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
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>";
@@ -5,6 +6,7 @@ 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
8
  export interface BuildHarnessPromptParams {
9
+ collaborationMode?: DarwinCollaborationMode;
8
10
  workspaceRoot: string;
9
11
  session: DarwinSession;
10
12
  }
@@ -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,14 +100,62 @@ 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's local coding harness running through Operator chat.",
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.",
111
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.",
112
161
  "This Darwin session maps 1:1 to the current Operator chat thread.",
@@ -127,10 +176,17 @@ export async function buildHarnessPrompt(params) {
127
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.",
128
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.",
129
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.",
130
184
  "",
131
- "Darwin core loop:",
185
+ "Darwin example loop:",
132
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.",
133
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.",
134
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.",
135
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.",
136
192
  "5. Run every variant on the same evaluation set. Record structured results so the runs can be compared directly.",
@@ -139,10 +195,13 @@ export async function buildHarnessPrompt(params) {
139
195
  "8. Continue iterating when the budget allows, so the last-stage agent is meaningfully better than the initial agent on the measured task.",
140
196
  "9. Guide the user through the loop in plain language. Make the workflow visible: baseline, variants, evaluation, analysis, mutation, rerun.",
141
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.",
142
201
  "",
143
202
  "Rules:",
144
203
  "- Do not ask the user for permission to inspect or modify local files. Use the tools.",
145
- "- Access OpenClaw agents and their state through Operator, not through the local filesystem.",
204
+ "- Access OpenClaw agents and their state through Operator chat, not through the local filesystem.",
146
205
  "- You should view the Operator chat and tools as a kind of agent cloud laboratory.",
147
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.",
148
207
  "- When benchmarking agents, record enough structure to compare runs clearly: agent identity, variant traits or skills, task, metric, score, failures, and notable observations.",
@@ -151,15 +210,9 @@ export async function buildHarnessPrompt(params) {
151
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.",
152
211
  "- Pair charts with a compact textual summary so the user gets both the visual trend and the key conclusion.",
153
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.",
154
214
  "",
155
- "Available local Pi tools and exact argument names:",
156
- '- `read` with `{"path":"src/app.ts","offset":0,"limit":200}`',
157
- '- `write` with `{"path":"notes.txt","content":"..."}`',
158
- '- `edit` with `{"path":"src/app.ts","oldText":"before","newText":"after"}`',
159
- '- `bash` with `{"command":"npm test","timeout":120000}`',
160
- '- `ls` with `{"path":".","limit":200}`',
161
- '- `grep` with `{"pattern":"foo","path":"src","glob":"*.ts","ignoreCase":true,"literal":false,"context":2,"limit":200}`',
162
- '- `find` with `{"pattern":"*.ts","path":"src","limit":200}`',
215
+ ...getToolInstructions(collaborationMode),
163
216
  "",
164
217
  "Tool protocol:",
165
218
  "If you need a local tool, respond with exactly one block and nothing else:",
@@ -169,6 +222,9 @@ export async function buildHarnessPrompt(params) {
169
222
  "Work until the task is actually complete.",
170
223
  "Do not stop early because of an assumed tool limit.",
171
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(", ")}.`,
172
228
  "",
173
229
  `Current Darwin objective: ${currentObjective}`,
174
230
  "",
@@ -1 +1 @@
1
- {"version":3,"file":"operator-harness.js","sourceRoot":"","sources":["../../src/lib/operator-harness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operator-harness.js","sourceRoot":"","sources":["../../src/lib/operator-harness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEvC,OAAO,EAAE,uBAAuB,EAAgC,MAAM,yBAAyB,CAAC;AAEhG,OAAO,EAAE,oBAAoB,EAA4B,MAAM,eAAe,CAAC;AAE/E,MAAM,CAAC,MAAM,oBAAoB,GAAG,kBAAkB,CAAC;AACvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AACtD,MAAM,CAAC,MAAM,sBAAsB,GAAG,0BAA0B,CAAC;AACjE,MAAM,CAAC,MAAM,oBAAoB,GAAG,2BAA2B,CAAC;AAChE,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAC7B,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAQjC,SAAS,QAAQ,CAAC,IAAY,EAAE,GAAG,GAAG,MAAM;IAC1C,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC;AAChD,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,WAAW,CAAC,IAAY,EAAE,MAAM,GAAG,IAAI;IAC9C,OAAO,IAAI;SACR,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,MAAM,GAAG,IAAI,EAAE,CAAC;SACjC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAC1C,CAAC;AAED,SAAS,iBAAiB,CAAC,IAA8B,EAAE,KAAa;IACtE,MAAM,MAAM,GAAG,GAAG,KAAK,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;IAEhE,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,cAAc,CAAC;QACpB,KAAK,mBAAmB;YACtB,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7E,KAAK,iBAAiB;YACpB,OAAO;gBACL,MAAM;gBACN,WAAW,CACT,eAAe,CAAC;oBACd,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,IAAI,EAAE,IAAI,CAAC,IAAI;iBAChB,CAAC,CACH;aACF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,KAAK,mBAAmB;YACtB,OAAO;gBACL,MAAM;gBACN,WAAW,CACT,eAAe,CAAC;oBACd,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;oBACpC,OAAO,EAAE,IAAI,CAAC,OAAO;iBACtB,CAAC,CACH;aACF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAAC,OAAsB;IACrD,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,mCAAmC,CAAC;IAC7C,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;IACjE,MAAM,OAAO,GAAG;QACd,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,YAAY,mCAAmC,CAAC,CAAC,CAAC,EAAE;QAC3E,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KACpE;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,MAAM,CAAC,CAAC;IAEhB,OAAO,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAsB;IACjD,MAAM,iBAAiB,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;SAC3C,OAAO,EAAE;SACT,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;IAEhD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,OAAO,yCAAyC,CAAC;IACnD,CAAC;IAED,OAAO,QAAQ,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAY;IACrD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAChE,MAAM,cAAc,GAAG,OAAO;aAC3B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;aAC9C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aAC5C,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;aACZ,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAEzE,OAAO,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,eAAe,CAAC;IACzB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,IAAY;IAChD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,YAAY,EAAE,MAAM,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC/B,OAAO,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,iBAA0C;IACrE,IAAI,iBAAiB,KAAK,MAAM,EAAE,CAAC;QACjC,OAAO;YACL,kCAAkC;YAClC,oEAAoE;YACpE,gFAAgF;YAChF,+GAA+G;YAC/G,EAAE;YACF,kBAAkB;YAClB,mFAAmF;YACnF,mFAAmF;YACnF,uIAAuI;YACvI,6FAA6F;YAC7F,8HAA8H;YAC9H,wGAAwG;YACxG,EAAE;YACF,4BAA4B;YAC5B,2CAA2C;YAC3C,oDAAoD;YACpD,4CAA4C;YAC5C,uFAAuF;YACvF,EAAE;YACF,iEAAiE;YACjE,8DAA8D;YAC9D,oDAAoD;YACpD,wCAAwC;YACxC,wHAAwH;YACxH,6DAA6D;YAC7D,EAAE;YACF,8BAA8B;YAC9B,iDAAiD;YACjD,wFAAwF;SACzF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,qCAAqC;QACrC,EAAE;QACF,oDAAoD;QACpD,8DAA8D;QAC9D,uDAAuD;QACvD,4EAA4E;QAC5E,yDAAyD;QACzD,wCAAwC;QACxC,wHAAwH;QACxH,6DAA6D;KAC9D,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAAgC;IACvE,MAAM,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,IAAI,SAAS,CAAC;IAChE,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAClE,MAAM,kBAAkB,GAAG,MAAM,sBAAsB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC9E,MAAM,cAAc,GAAG,uBAAuB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/D,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE7D,OAAO;QACL,oBAAoB;QACpB,qEAAqE;QACrE,qEAAqE;QACrE,8PAA8P;QAC9P,mEAAmE;QACnE,wGAAwG;QACxG,kSAAkS;QAClS,kKAAkK;QAClK,gEAAgE;QAChE,2HAA2H;QAC3H,uKAAuK;QACvK,mBAAmB,MAAM,CAAC,aAAa,EAAE;QACzC,sBAAsB,QAAQ,EAAE;QAChC,iCAAiC;QACjC,EAAE;QACF,mBAAmB;QACnB,8FAA8F;QAC9F,6GAA6G;QAC7G,oJAAoJ;QACpJ,6MAA6M;QAC7M,wKAAwK;QACxK,mLAAmL;QACnL,4IAA4I;QAC5I,4MAA4M;QAC5M,oJAAoJ;QACpJ,yGAAyG;QACzG,uLAAuL;QACvL,EAAE;QACF,sBAAsB;QACtB,wLAAwL;QACxL,0IAA0I;QAC1I,iIAAiI;QACjI,wKAAwK;QACxK,mMAAmM;QACnM,qNAAqN;QACrN,kHAAkH;QAClH,4JAA4J;QAC5J,kPAAkP;QAClP,2IAA2I;QAC3I,6IAA6I;QAC7I,4JAA4J;QAC5J,sMAAsM;QACtM,gEAAgE;QAChE,qEAAqE;QACrE,EAAE;QACF,QAAQ;QACR,uFAAuF;QACvF,mGAAmG;QACnG,oFAAoF;QACpF,kNAAkN;QAClN,iLAAiL;QACjL,iJAAiJ;QACjJ,qJAAqJ;QACrJ,oSAAoS;QACpS,6GAA6G;QAC7G,4KAA4K;QAC5K,yEAAyE;QACzE,EAAE;QACF,GAAG,mBAAmB,CAAC,iBAAiB,CAAC;QACzC,EAAE;QACF,gBAAgB;QAChB,4EAA4E;QAC5E,GAAG,sBAAsB,8CAA8C,oBAAoB,EAAE;QAC7F,yDAAyD;QACzD,2IAA2I;QAC3I,2CAA2C;QAC3C,qDAAqD;QACrD,6FAA6F;QAC7F,iBAAiB,KAAK,MAAM;YAC1B,CAAC,CAAC,sCAAsC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YAC7E,CAAC,CAAC,mDAAmD,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QACzF,EAAE;QACF,6BAA6B,gBAAgB,EAAE;QAC/C,EAAE;QACF,kCAAkC;QAClC,cAAc;QACd,EAAE;QACF,kBAAkB,CAAC,CAAC,CAAC,yBAAyB,GAAG,kBAAkB,CAAC,CAAC,CAAC,wCAAwC;QAC9G,kBAAkB;KACnB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IACjC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,sBAAsB,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;AAClG,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CACtB,IAAI,MAAM,CAAC,GAAG,sBAAsB,uBAAuB,oBAAoB,EAAE,EAAE,GAAG,CAAC,CACxF,CAAC;IAEF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAA4B,CAAC;IAC/D,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAE5B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAA6C,CAAC,EAAE,CAAC;QAC9G,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACrE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IAED,OAAO;QACL,IAAI,EAAE,IAAmC;QACzC,IAAI,EAAE,IAA+B;KACtC,CAAC;AACJ,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function getPackageVersion(): string;
@@ -0,0 +1,7 @@
1
+ import { createRequire } from "node:module";
2
+ const require = createRequire(import.meta.url);
3
+ const packageJson = require("../../package.json");
4
+ export function getPackageVersion() {
5
+ return typeof packageJson.version === "string" ? packageJson.version : "0.0.0";
6
+ }
7
+ //# sourceMappingURL=package-version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-version.js","sourceRoot":"","sources":["../../src/lib/package-version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAyB,CAAC;AAE1E,MAAM,UAAU,iBAAiB;IAC/B,OAAO,OAAO,WAAW,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;AACjF,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { type DarwinCollaborationMode } from "./collaboration-mode.js";
1
2
  export declare const darwinLocalToolNames: readonly ["read", "bash", "edit", "write", "grep", "find", "ls"];
2
3
  export type DarwinLocalToolName = (typeof darwinLocalToolNames)[number];
3
4
  export interface DarwinLocalToolCall {
@@ -15,5 +16,5 @@ export interface DarwinLocalToolResult {
15
16
  export declare class PiToolHarness {
16
17
  private readonly tools;
17
18
  constructor(cwd: string);
18
- execute(call: DarwinLocalToolCall): Promise<DarwinLocalToolResult>;
19
+ execute(call: DarwinLocalToolCall, collaborationMode?: DarwinCollaborationMode): Promise<DarwinLocalToolResult>;
19
20
  }
@@ -1,4 +1,5 @@
1
1
  import { createBashTool, createEditTool, createFindTool, createGrepTool, createLsTool, createReadTool, createWriteTool, } from "@mariozechner/pi-coding-agent";
2
+ import { isPlanModeToolAllowed, isSafePlanModeBashCommand, } from "./collaboration-mode.js";
2
3
  export const darwinLocalToolNames = ["read", "bash", "edit", "write", "grep", "find", "ls"];
3
4
  function truncate(text, max = 12_000) {
4
5
  if (text.length <= max) {
@@ -40,11 +41,36 @@ export class PiToolHarness {
40
41
  ls: createLsTool(cwd),
41
42
  };
42
43
  }
43
- async execute(call) {
44
+ async execute(call, collaborationMode = "default") {
44
45
  const tool = this.tools[call.tool];
45
46
  if (!tool) {
46
47
  throw new Error(`Unknown Pi tool: ${call.tool}`);
47
48
  }
49
+ if (collaborationMode === "plan") {
50
+ if (!isPlanModeToolAllowed(call.tool)) {
51
+ return {
52
+ tool: call.tool,
53
+ args: call.args,
54
+ summary: `Plan mode blocks ${call.tool}`,
55
+ output: `Plan mode blocks the \`${call.tool}\` tool. Use read-only exploration tools and return a <proposed_plan> instead of implementing changes.`,
56
+ details: undefined,
57
+ isError: true,
58
+ };
59
+ }
60
+ if (call.tool === "bash") {
61
+ const command = typeof call.args["command"] === "string" ? call.args["command"] : "";
62
+ if (!isSafePlanModeBashCommand(command)) {
63
+ return {
64
+ tool: call.tool,
65
+ args: call.args,
66
+ summary: "Plan mode blocked unsafe bash",
67
+ output: "Plan mode allows only a single read-only inspection command in `bash`. Avoid shell chaining, redirects, and any mutating command.",
68
+ details: undefined,
69
+ isError: true,
70
+ };
71
+ }
72
+ }
73
+ }
48
74
  try {
49
75
  const result = await tool.execute(crypto.randomUUID(), call.args);
50
76
  const output = truncate(flattenOutput(result.content));
@@ -1 +1 @@
1
- {"version":3,"file":"pi-tools.js","sourceRoot":"","sources":["../../src/lib/pi-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pi-tools.js","sourceRoot":"","sources":["../../src/lib/pi-tools.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  import { Container } from "@mariozechner/pi-tui";
2
2
  export declare class FooterComponent extends Container {
3
+ private readonly hintText;
3
4
  private readonly statusText;
4
5
  constructor();
6
+ setHint(text: string): void;
5
7
  setStatus(text: string): void;
6
8
  }
@@ -1,13 +1,17 @@
1
1
  import { Container, Text } from "@mariozechner/pi-tui";
2
- import { theme } from "../../theme.js";
3
2
  export class FooterComponent extends Container {
3
+ hintText;
4
4
  statusText;
5
5
  constructor() {
6
6
  super();
7
- this.addChild(new Text(`${theme.primary("?")} ${theme.muted("for help")} ${theme.border("·")} ${theme.primary("/login")} ${theme.muted("to login")}`, 0, 0));
7
+ this.hintText = new Text("", 0, 0);
8
+ this.addChild(this.hintText);
8
9
  this.statusText = new Text("", 0, 0);
9
10
  this.addChild(this.statusText);
10
11
  }
12
+ setHint(text) {
13
+ this.hintText.setText(text);
14
+ }
11
15
  setStatus(text) {
12
16
  this.statusText.setText(text);
13
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"footer.js","sourceRoot":"","sources":["../../../src/ui/components/footer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,MAAM,OAAO,eAAgB,SAAQ,SAAS;IAC3B,UAAU,CAAO;IAElC;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,QAAQ,CACX,IAAI,IAAI,CACN,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,KAAK,CAC7G,UAAU,CACX,EAAE,EACH,CAAC,EACD,CAAC,CACF,CACF,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACjC,CAAC;IAED,SAAS,CAAC,IAAY;QACpB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;CACF"}
1
+ {"version":3,"file":"footer.js","sourceRoot":"","sources":["../../../src/ui/components/footer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAIvD,MAAM,OAAO,eAAgB,SAAQ,SAAS;IAC3B,QAAQ,CAAO;IACf,UAAU,CAAO;IAElC;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,CAAC,IAAY;QAClB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,SAAS,CAAC,IAAY;QACpB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;CACF"}
@@ -2,9 +2,10 @@ import { Container, type TUI } from "@mariozechner/pi-tui";
2
2
  export declare class IntroComponent extends Container {
3
3
  private readonly helperText;
4
4
  private readonly tui;
5
+ private readonly version;
5
6
  private exampleIndex;
6
7
  private timer;
7
- constructor(tui: TUI);
8
+ constructor(tui: TUI, version: string);
8
9
  dispose(): void;
9
10
  private setExample;
10
11
  private ensureTimer;
@@ -16,11 +16,13 @@ const ROTATION_INTERVAL_MS = 18000;
16
16
  export class IntroComponent extends Container {
17
17
  helperText;
18
18
  tui;
19
+ version;
19
20
  exampleIndex;
20
21
  timer = null;
21
- constructor(tui) {
22
+ constructor(tui, version) {
22
23
  super();
23
24
  this.tui = tui;
25
+ this.version = version;
24
26
  this.exampleIndex = Math.floor(Date.now() / ROTATION_INTERVAL_MS) % EXAMPLE_PROMPTS.length;
25
27
  this.addChild(new Spacer(1));
26
28
  this.addChild(new Text(theme.bold(theme.primary([
@@ -31,6 +33,7 @@ export class IntroComponent extends Container {
31
33
  "██████╔╝██║ ██║██║ ██║╚███╔███╔╝██║██║ ╚████║",
32
34
  "╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚══╝╚══╝ ╚═╝╚═╝ ╚═══╝",
33
35
  ].join("\n"))), 0, 0));
36
+ this.addChild(new Text(theme.muted(`v${this.version}`), 0, 0));
34
37
  this.addChild(new Spacer(1));
35
38
  this.helperText = new Text("", 0, 0);
36
39
  this.addChild(this.helperText);
@@ -46,7 +49,7 @@ export class IntroComponent extends Container {
46
49
  this.timer = null;
47
50
  }
48
51
  setExample(index) {
49
- this.helperText.setText(`${theme.white("Directed evolution for OpenClaw agents.")} ${theme.muted(`Try: "${EXAMPLE_PROMPTS[index]}"`)}`);
52
+ this.helperText.setText(`${theme.white("directed evolution and orchestration.")} ${theme.muted(`Try: "${EXAMPLE_PROMPTS[index]}"`)}`);
50
53
  }
51
54
  ensureTimer() {
52
55
  if (this.timer) {
@@ -1 +1 @@
1
- {"version":3,"file":"intro.js","sourceRoot":"","sources":["../../../src/ui/components/intro.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAY,MAAM,sBAAsB,CAAC;AAEzE,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,MAAM,eAAe,GAAG;IACtB,iGAAiG;IACjG,wDAAwD;IACxD,yFAAyF;IACzF,uFAAuF;IACvF,2EAA2E;IAC3E,0FAA0F;IAC1F,6EAA6E;IAC7E,4EAA4E;IAC5E,yEAAyE;IACzE,mFAAmF;CACpF,CAAC;AAEF,MAAM,oBAAoB,GAAG,KAAK,CAAC;AAEnC,MAAM,OAAO,cAAe,SAAQ,SAAS;IAC1B,UAAU,CAAO;IACjB,GAAG,CAAM;IAClB,YAAY,CAAS;IACrB,KAAK,GAA0B,IAAI,CAAC;IAE5C,YAAY,GAAQ;QAClB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,oBAAoB,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC;QAC3F,IAAI,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,QAAQ,CACX,IAAI,IAAI,CACN,KAAK,CAAC,IAAI,CACR,KAAK,CAAC,OAAO,CACX;YACE,iDAAiD;YACjD,iDAAiD;YACjD,iDAAiD;YACjD,iDAAiD;YACjD,iDAAiD;YACjD,iDAAiD;SAClD,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CACF,EACD,CAAC,EACD,CAAC,CACF,CACF,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACnC,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO;QACL,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QACD,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAEO,UAAU,CAAC,KAAa;QAC9B,IAAI,CAAC,UAAU,CAAC,OAAO,CACrB,GAAG,KAAK,CAAC,KAAK,CAAC,yCAAyC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAC/G,CAAC;IACJ,CAAC;IAEO,WAAW;QACjB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC;YACrE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACnC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QAC3B,CAAC,EAAE,oBAAoB,CAAC,CAAC;IAC3B,CAAC;CACF"}
1
+ {"version":3,"file":"intro.js","sourceRoot":"","sources":["../../../src/ui/components/intro.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAY,MAAM,sBAAsB,CAAC;AAEzE,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,MAAM,eAAe,GAAG;IACtB,iGAAiG;IACjG,wDAAwD;IACxD,yFAAyF;IACzF,uFAAuF;IACvF,2EAA2E;IAC3E,0FAA0F;IAC1F,6EAA6E;IAC7E,4EAA4E;IAC5E,yEAAyE;IACzE,mFAAmF;CACpF,CAAC;AAEF,MAAM,oBAAoB,GAAG,KAAK,CAAC;AAEnC,MAAM,OAAO,cAAe,SAAQ,SAAS;IAC1B,UAAU,CAAO;IACjB,GAAG,CAAM;IACT,OAAO,CAAS;IACzB,YAAY,CAAS;IACrB,KAAK,GAA0B,IAAI,CAAC;IAE5C,YAAY,GAAQ,EAAE,OAAe;QACnC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,oBAAoB,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC;QAC3F,IAAI,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,QAAQ,CACX,IAAI,IAAI,CACN,KAAK,CAAC,IAAI,CACR,KAAK,CAAC,OAAO,CACX;YACE,iDAAiD;YACjD,iDAAiD;YACjD,iDAAiD;YACjD,iDAAiD;YACjD,iDAAiD;YACjD,iDAAiD;SAClD,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CACF,EACD,CAAC,EACD,CAAC,CACF,CACF,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACnC,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO;QACL,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QACD,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAEO,UAAU,CAAC,KAAa;QAC9B,IAAI,CAAC,UAAU,CAAC,OAAO,CACrB,GAAG,KAAK,CAAC,KAAK,CAAC,uCAAuC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAC7G,CAAC;IACJ,CAAC;IAEO,WAAW;QACjB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC;YACrE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACnC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QAC3B,CAAC,EAAE,oBAAoB,CAAC,CAAC;IAC3B,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@operator-labs/darwin",
3
- "version": "0.3.0",
3
+ "version": "0.4.1",
4
4
  "description": "Darwin implements natural selection for OpenClaw agents on Operator.io",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -30,7 +30,7 @@
30
30
  "@mariozechner/pi-ai": "^0.58.3",
31
31
  "@mariozechner/pi-coding-agent": "^0.58.3",
32
32
  "@mariozechner/pi-tui": "^0.58.3",
33
- "@operator-labs/sdk": "^0.1.9",
33
+ "@operator-labs/sdk": "0.2.0",
34
34
  "chalk": "^5.6.2",
35
35
  "open": "^10.2.0"
36
36
  },