freeturtle 0.1.28 → 0.1.30

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.
Files changed (45) hide show
  1. package/dist/bin/freeturtle.js +26 -2
  2. package/dist/bin/freeturtle.js.map +1 -1
  3. package/dist/src/cli/daemon-utils.d.ts +3 -0
  4. package/dist/src/cli/daemon-utils.js +49 -0
  5. package/dist/src/cli/daemon-utils.js.map +1 -0
  6. package/dist/src/cli/restart.d.ts +1 -0
  7. package/dist/src/cli/restart.js +23 -0
  8. package/dist/src/cli/restart.js.map +1 -0
  9. package/dist/src/cli/skills.d.ts +1 -0
  10. package/dist/src/cli/skills.js +28 -0
  11. package/dist/src/cli/skills.js.map +1 -0
  12. package/dist/src/cli/stop.d.ts +1 -0
  13. package/dist/src/cli/stop.js +11 -0
  14. package/dist/src/cli/stop.js.map +1 -0
  15. package/dist/src/cli/update.js +12 -56
  16. package/dist/src/cli/update.js.map +1 -1
  17. package/dist/src/config.d.ts +2 -0
  18. package/dist/src/config.js +9 -0
  19. package/dist/src/config.js.map +1 -1
  20. package/dist/src/daemon.d.ts +1 -0
  21. package/dist/src/daemon.js +37 -6
  22. package/dist/src/daemon.js.map +1 -1
  23. package/dist/src/modules/loader.js +2 -0
  24. package/dist/src/modules/loader.js.map +1 -1
  25. package/dist/src/modules/shell/index.d.ts +10 -0
  26. package/dist/src/modules/shell/index.js +298 -0
  27. package/dist/src/modules/shell/index.js.map +1 -0
  28. package/dist/src/policy.js +2 -0
  29. package/dist/src/policy.js.map +1 -1
  30. package/dist/src/runner.d.ts +3 -0
  31. package/dist/src/runner.js +12 -0
  32. package/dist/src/runner.js.map +1 -1
  33. package/dist/src/skills/index.d.ts +3 -0
  34. package/dist/src/skills/index.js +3 -0
  35. package/dist/src/skills/index.js.map +1 -0
  36. package/dist/src/skills/loader.d.ts +33 -0
  37. package/dist/src/skills/loader.js +211 -0
  38. package/dist/src/skills/loader.js.map +1 -0
  39. package/dist/src/skills/parser.d.ts +13 -0
  40. package/dist/src/skills/parser.js +84 -0
  41. package/dist/src/skills/parser.js.map +1 -0
  42. package/dist/src/skills/types.d.ts +52 -0
  43. package/dist/src/skills/types.js +7 -0
  44. package/dist/src/skills/types.js.map +1 -0
  45. package/package.json +8 -3
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/modules/loader.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,UAAU,GAA+C;IAC7D,SAAS,EAAE,eAAe;IAC1B,QAAQ,EAAE,cAAc;IACxB,MAAM,EAAE,YAAY;IACpB,KAAK,EAAE,WAAW;IAClB,OAAO,EAAE,aAAa;IACtB,IAAI,EAAE,UAAU;CACjB,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAwB,EACxB,GAA2B,EAC3B,MAAe,EACf,MAAqB,EACrB,GAAY;IAEZ,MAAM,OAAO,GAAuB,EAAE,CAAC;IAEvC,qFAAqF;IACrF,IAAI,GAAG,EAAE,CAAC;QACR,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,eAAe,EAAE,CAAC;YACxC,MAAM,SAAS,CAAC,UAAU,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACpE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACjE,MAAM,EAAE,KAAK,CAAC,0CAA0C,GAAG,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAClE,IAAI,CAAC,YAAY,CAAC,OAAO;YAAE,SAAS;QAEpC,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,EAAE,IAAI,CAAC,mBAAmB,IAAI,aAAa,CAAC,CAAC;YACnD,SAAS;QACX,CAAC;QAED,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC;YAC9B,MAAM,GAAG,GAAG,EAAE,GAAI,YAAmD,EAAE,CAAC;YACxE,IAAI,GAAG;gBAAE,GAAG,CAAC,aAAa,GAAG,GAAG,CAAC;YACjC,MAAM,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACjE,MAAM,EAAE,KAAK,CAAC,WAAW,IAAI,2BAA2B,GAAG,aAAa,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/modules/loader.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,UAAU,GAA+C;IAC7D,SAAS,EAAE,eAAe;IAC1B,QAAQ,EAAE,cAAc;IACxB,MAAM,EAAE,YAAY;IACpB,KAAK,EAAE,WAAW;IAClB,OAAO,EAAE,aAAa;IACtB,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,WAAW;CACnB,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAwB,EACxB,GAA2B,EAC3B,MAAe,EACf,MAAqB,EACrB,GAAY;IAEZ,MAAM,OAAO,GAAuB,EAAE,CAAC;IAEvC,qFAAqF;IACrF,IAAI,GAAG,EAAE,CAAC;QACR,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,eAAe,EAAE,CAAC;YACxC,MAAM,SAAS,CAAC,UAAU,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACpE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACjE,MAAM,EAAE,KAAK,CAAC,0CAA0C,GAAG,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAClE,IAAI,CAAC,YAAY,CAAC,OAAO;YAAE,SAAS;QAEpC,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,EAAE,IAAI,CAAC,mBAAmB,IAAI,aAAa,CAAC,CAAC;YACnD,SAAS;QACX,CAAC;QAED,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC;YAC9B,MAAM,GAAG,GAAG,EAAE,GAAI,YAAmD,EAAE,CAAC;YACxE,IAAI,GAAG;gBAAE,GAAG,CAAC,aAAa,GAAG,GAAG,CAAC;YACjC,MAAM,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACjE,MAAM,EAAE,KAAK,CAAC,WAAW,IAAI,2BAA2B,GAAG,aAAa,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { FreeTurtleModule, ToolDefinition } from "../types.js";
2
+ export declare class ShellModule implements FreeTurtleModule {
3
+ name: string;
4
+ description: string;
5
+ initialize(): Promise<void>;
6
+ getTools(): ToolDefinition[];
7
+ executeTool(name: string, input: Record<string, unknown>): Promise<string>;
8
+ private runCommand;
9
+ private manageProcess;
10
+ }
@@ -0,0 +1,298 @@
1
+ import { spawn } from "node:child_process";
2
+ import { randomUUID } from "node:crypto";
3
+ // --- Constants (aligned with OpenClaw defaults) ---
4
+ const DEFAULT_TIMEOUT_MS = 300_000; // 5 minutes
5
+ const MAX_TIMEOUT_MS = 1_800_000; // 30 minutes
6
+ const MAX_OUTPUT_CHARS = 200_000;
7
+ const TAIL_CHARS = 2_000;
8
+ const JOB_TTL_MS = 1_800_000; // 30 min — prune finished sessions
9
+ const SWEEPER_INTERVAL_MS = 300_000; // 5 min
10
+ const sessions = new Map();
11
+ // Sweeper to prune old finished sessions
12
+ let sweeperStarted = false;
13
+ function ensureSweeper() {
14
+ if (sweeperStarted)
15
+ return;
16
+ sweeperStarted = true;
17
+ setInterval(() => {
18
+ const now = Date.now();
19
+ for (const [id, s] of sessions) {
20
+ if (s.finishedAt && now - s.finishedAt > JOB_TTL_MS) {
21
+ sessions.delete(id);
22
+ }
23
+ }
24
+ }, SWEEPER_INTERVAL_MS).unref();
25
+ }
26
+ function truncateOutput(text) {
27
+ if (text.length <= MAX_OUTPUT_CHARS)
28
+ return text;
29
+ const head = text.slice(0, MAX_OUTPUT_CHARS - TAIL_CHARS - 50);
30
+ const tail = text.slice(-TAIL_CHARS);
31
+ return `${head}\n\n... (truncated ${text.length - MAX_OUTPUT_CHARS + 50} chars) ...\n\n${tail}`;
32
+ }
33
+ // --- Tool definitions ---
34
+ const TOOLS = [
35
+ {
36
+ name: "run_command",
37
+ description: "Execute a shell command on the server. Use for installing packages, running scripts, checking system status, or any CLI operation. Set background=true for long-running commands, then use manage_process to check on them.",
38
+ input_schema: {
39
+ type: "object",
40
+ properties: {
41
+ command: {
42
+ type: "string",
43
+ description: "The shell command to execute",
44
+ },
45
+ working_directory: {
46
+ type: "string",
47
+ description: "Working directory. Defaults to home directory.",
48
+ },
49
+ timeout: {
50
+ type: "number",
51
+ description: "Timeout in seconds. Default 300 (5 min), max 1800 (30 min).",
52
+ },
53
+ background: {
54
+ type: "boolean",
55
+ description: "Run in background and return immediately with a session ID. Use manage_process to check output later.",
56
+ },
57
+ env: {
58
+ type: "object",
59
+ description: "Environment variable overrides (key-value pairs merged with system env).",
60
+ },
61
+ },
62
+ required: ["command"],
63
+ },
64
+ },
65
+ {
66
+ name: "manage_process",
67
+ description: "Manage background command sessions. Actions: list (show all sessions), poll (get new output from a session), write (send stdin to a session), kill (terminate a session).",
68
+ input_schema: {
69
+ type: "object",
70
+ properties: {
71
+ action: {
72
+ type: "string",
73
+ enum: ["list", "poll", "write", "kill"],
74
+ description: "Action to perform",
75
+ },
76
+ session_id: {
77
+ type: "string",
78
+ description: "Session ID (required for poll, write, kill)",
79
+ },
80
+ data: {
81
+ type: "string",
82
+ description: "Data to write to stdin (for write action)",
83
+ },
84
+ },
85
+ required: ["action"],
86
+ },
87
+ },
88
+ ];
89
+ // --- Blocked env vars (security) ---
90
+ const BLOCKED_ENV_KEYS = new Set([
91
+ "NODE_OPTIONS",
92
+ "NODE_PATH",
93
+ "PYTHONHOME",
94
+ "PYTHONPATH",
95
+ "BASH_ENV",
96
+ "ENV",
97
+ "SHELL",
98
+ "SHELLOPTS",
99
+ "IFS",
100
+ "HOME",
101
+ "PATH",
102
+ ]);
103
+ const BLOCKED_ENV_PREFIXES = ["DYLD_", "LD_", "BASH_FUNC_"];
104
+ function sanitizeEnv(overrides) {
105
+ if (!overrides)
106
+ return undefined;
107
+ const clean = {};
108
+ for (const [key, val] of Object.entries(overrides)) {
109
+ if (BLOCKED_ENV_KEYS.has(key))
110
+ continue;
111
+ if (BLOCKED_ENV_PREFIXES.some((p) => key.startsWith(p)))
112
+ continue;
113
+ clean[key] = val;
114
+ }
115
+ return Object.keys(clean).length > 0 ? clean : undefined;
116
+ }
117
+ // --- Module ---
118
+ export class ShellModule {
119
+ name = "shell";
120
+ description = "Execute shell commands and manage background processes";
121
+ async initialize() {
122
+ ensureSweeper();
123
+ }
124
+ getTools() {
125
+ return TOOLS;
126
+ }
127
+ async executeTool(name, input) {
128
+ if (name === "run_command")
129
+ return this.runCommand(input);
130
+ if (name === "manage_process")
131
+ return this.manageProcess(input);
132
+ throw new Error(`Unknown tool: ${name}`);
133
+ }
134
+ async runCommand(input) {
135
+ const command = input.command;
136
+ if (!command)
137
+ return "Error: command is required";
138
+ const cwd = input.working_directory || undefined;
139
+ const background = input.background ?? false;
140
+ const timeoutSec = Math.min(Math.max(input.timeout ?? 300, 1), MAX_TIMEOUT_MS / 1000);
141
+ const timeoutMs = timeoutSec * 1000;
142
+ const envOverrides = sanitizeEnv(input.env);
143
+ const sessionId = randomUUID().slice(0, 8);
144
+ const session = {
145
+ id: sessionId,
146
+ command,
147
+ cwd,
148
+ startedAt: Date.now(),
149
+ stdout: "",
150
+ stderr: "",
151
+ };
152
+ sessions.set(sessionId, session);
153
+ const env = envOverrides
154
+ ? { ...process.env, ...envOverrides }
155
+ : process.env;
156
+ const child = spawn(command, {
157
+ cwd,
158
+ shell: "/bin/bash",
159
+ env: env,
160
+ stdio: ["pipe", "pipe", "pipe"],
161
+ });
162
+ session.process = child;
163
+ session.pid = child.pid;
164
+ child.stdout?.on("data", (chunk) => {
165
+ session.stdout += chunk.toString();
166
+ });
167
+ child.stderr?.on("data", (chunk) => {
168
+ session.stderr += chunk.toString();
169
+ });
170
+ const onExit = new Promise((resolve) => {
171
+ child.on("close", (code) => {
172
+ session.exitCode = code;
173
+ session.finishedAt = Date.now();
174
+ session.process = undefined;
175
+ resolve();
176
+ });
177
+ child.on("error", (err) => {
178
+ session.stderr += `\nSpawn error: ${err.message}`;
179
+ session.exitCode = 1;
180
+ session.finishedAt = Date.now();
181
+ session.process = undefined;
182
+ resolve();
183
+ });
184
+ });
185
+ // Background mode — return immediately
186
+ if (background) {
187
+ // Set up timeout kill
188
+ setTimeout(() => {
189
+ if (!session.finishedAt) {
190
+ child.kill("SIGTERM");
191
+ setTimeout(() => {
192
+ if (!session.finishedAt)
193
+ child.kill("SIGKILL");
194
+ }, 5000);
195
+ }
196
+ }, timeoutMs).unref();
197
+ return JSON.stringify({
198
+ status: "running",
199
+ session_id: sessionId,
200
+ pid: child.pid,
201
+ command: command.slice(0, 200),
202
+ message: `Command running in background. Use manage_process with action "poll" and session_id "${sessionId}" to check output.`,
203
+ });
204
+ }
205
+ // Foreground mode — wait for completion or timeout
206
+ const timer = setTimeout(() => {
207
+ if (!session.finishedAt) {
208
+ child.kill("SIGTERM");
209
+ setTimeout(() => {
210
+ if (!session.finishedAt)
211
+ child.kill("SIGKILL");
212
+ }, 5000);
213
+ }
214
+ }, timeoutMs);
215
+ await onExit;
216
+ clearTimeout(timer);
217
+ const durationMs = (session.finishedAt ?? Date.now()) - session.startedAt;
218
+ const timedOut = session.exitCode === null && durationMs >= timeoutMs - 100;
219
+ const parts = [];
220
+ if (session.stdout.trim()) {
221
+ parts.push(truncateOutput(session.stdout.trim()));
222
+ }
223
+ if (session.stderr.trim()) {
224
+ parts.push(`STDERR:\n${truncateOutput(session.stderr.trim())}`);
225
+ }
226
+ if (timedOut) {
227
+ parts.push(`Command timed out after ${timeoutSec}s`);
228
+ }
229
+ else if (session.exitCode !== 0) {
230
+ parts.push(`Exit code: ${session.exitCode}`);
231
+ }
232
+ // Clean up foreground sessions that completed quickly
233
+ if (!background) {
234
+ sessions.delete(sessionId);
235
+ }
236
+ return parts.join("\n\n") || "(no output)";
237
+ }
238
+ async manageProcess(input) {
239
+ const action = input.action;
240
+ const sessionId = input.session_id;
241
+ if (action === "list") {
242
+ const list = [...sessions.values()].map((s) => ({
243
+ session_id: s.id,
244
+ command: s.command.slice(0, 200),
245
+ pid: s.pid,
246
+ running: !s.finishedAt,
247
+ exit_code: s.exitCode,
248
+ duration_ms: (s.finishedAt ?? Date.now()) - s.startedAt,
249
+ stdout_tail: s.stdout.slice(-TAIL_CHARS),
250
+ stderr_tail: s.stderr.slice(-TAIL_CHARS),
251
+ }));
252
+ if (list.length === 0)
253
+ return "No active sessions.";
254
+ return JSON.stringify(list, null, 2);
255
+ }
256
+ if (!sessionId)
257
+ return "Error: session_id is required";
258
+ const session = sessions.get(sessionId);
259
+ if (!session)
260
+ return `Error: session "${sessionId}" not found`;
261
+ if (action === "poll") {
262
+ const running = !session.finishedAt;
263
+ return JSON.stringify({
264
+ session_id: session.id,
265
+ running,
266
+ exit_code: session.exitCode,
267
+ duration_ms: (session.finishedAt ?? Date.now()) - session.startedAt,
268
+ stdout: truncateOutput(session.stdout),
269
+ stderr: truncateOutput(session.stderr),
270
+ });
271
+ }
272
+ if (action === "write") {
273
+ const data = input.data;
274
+ if (!data)
275
+ return "Error: data is required for write action";
276
+ if (!session.process?.stdin?.writable) {
277
+ return "Error: session stdin is not writable (process may have exited)";
278
+ }
279
+ session.process.stdin.write(data);
280
+ return `Wrote ${data.length} chars to session ${sessionId}`;
281
+ }
282
+ if (action === "kill") {
283
+ if (session.finishedAt) {
284
+ sessions.delete(sessionId);
285
+ return `Session ${sessionId} was already finished (exit code ${session.exitCode}). Removed.`;
286
+ }
287
+ session.process?.kill("SIGTERM");
288
+ // Force kill after 5s if needed
289
+ setTimeout(() => {
290
+ if (!session.finishedAt)
291
+ session.process?.kill("SIGKILL");
292
+ }, 5000);
293
+ return `Sent SIGTERM to session ${sessionId} (PID ${session.pid})`;
294
+ }
295
+ return `Error: unknown action "${action}". Use: list, poll, write, kill`;
296
+ }
297
+ }
298
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/shell/index.ts"],"names":[],"mappings":"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"}
@@ -72,6 +72,8 @@ const PROTECTED_WORKSPACE_FILES = ["soul.md", "config.md", ".env"];
72
72
  export function requiresApproval(policy, toolName, input) {
73
73
  if (toolName === "delete_cast")
74
74
  return true;
75
+ if (toolName === "run_command")
76
+ return true;
75
77
  if (toolName === "commit_file") {
76
78
  const branch = input.branch ?? "main";
77
79
  const approvalBranches = policy?.github?.approval_required_branches ?? ["main"];
@@ -1 +1 @@
1
- {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/policy.ts"],"names":[],"mappings":"AAwBA,6CAA6C;AAC7C,iDAAiD;AAEjD,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC1C,IAAI,CAAS;IACb,YAAY,IAAY,EAAE,OAAe;QACvC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED;;;;;GAKG;AACH,SAAS,aAAa,CACpB,SAA+B,EAC/B,KAAa,EACb,IAAY,EACZ,KAAa;IAEb,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,CAAC,6BAA6B;IAClE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,iBAAiB,CAAC,IAAI,EAAE,GAAG,KAAK,mDAAmD,CAAC,CAAC;IACjG,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAC;IACrE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,iBAAiB,CACzB,IAAI,EACJ,GAAG,KAAK,aAAa,KAAK,8BAA8B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAChF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,MAAgC,EAChC,IAAY;IAEZ,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,oBAAoB,EAAE,aAAa,CAAC,CAAC;AACzF,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,MAAgC,EAChC,IAAY;IAEZ,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,oBAAoB,EAAE,aAAa,CAAC,CAAC;AACzF,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,MAAgC,EAChC,MAAc;IAEd,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,aAAa,CACX,MAAM,CAAC,MAAM,EAAE,0BAA0B,EACzC,MAAM,EACN,sBAAsB,EACtB,eAAe,CAChB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,MAAgC,EAChC,OAAe;IAEf,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,aAAa,CACX,MAAM,CAAC,SAAS,EAAE,gBAAgB,EAClC,OAAO,EACP,0BAA0B,EAC1B,mBAAmB,CACpB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,MAAgC,EAChC,MAAc,EACd,KAAa;IAEb,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,aAAa,CACX,MAAM,CAAC,QAAQ,EAAE,eAAe,EAChC,MAAM,EACN,wBAAwB,EACxB,iBAAiB,CAClB,CAAC;IACF,aAAa,CACX,MAAM,CAAC,QAAQ,EAAE,cAAc,EAC/B,KAAK,EACL,uBAAuB,EACvB,gBAAgB,CACjB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,MAAgC,EAChC,QAAgB,EAChB,EAAW;IAEX,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,aAAa,CACX,MAAM,CAAC,OAAO,EAAE,iBAAiB,EACjC,QAAQ,EACR,yBAAyB,EACzB,kBAAkB,CACnB,CAAC;IACF,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QACrB,aAAa,CACX,MAAM,CAAC,OAAO,EAAE,sBAAsB,EACtC,EAAE,EACF,yBAAyB,EACzB,kBAAkB,CACnB,CAAC;IACJ,CAAC;AACH,CAAC;AAED,oDAAoD;AACpD,MAAM,yBAAyB,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;AAEnE;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAgC,EAChC,QAAgB,EAChB,KAA8B;IAE9B,IAAI,QAAQ,KAAK,aAAa;QAAE,OAAO,IAAI,CAAC;IAC5C,IAAI,QAAQ,KAAK,aAAa;QAAE,OAAO,IAAI,CAAC;IAE5C,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAI,KAAK,CAAC,MAAiB,IAAI,MAAM,CAAC;QAClD,MAAM,gBAAgB,GACpB,MAAM,EAAE,MAAM,EAAE,0BAA0B,IAAI,CAAC,MAAM,CAAC,CAAC;QACzD,OAAO,gBAAgB,CAAC,IAAI,CAC1B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,WAAW,EAAE,CAChD,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,KAAK,YAAY,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;QAC1D,MAAM,IAAI,GAAI,KAAK,CAAC,IAAe,IAAI,EAAE,CAAC;QAC1C,OAAO,yBAAyB,CAAC,IAAI,CACnC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAC5C,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO;QACL,MAAM,EAAE;YACN,aAAa,EAAE,EAAE;YACjB,aAAa,EAAE,EAAE;YACjB,0BAA0B,EAAE,CAAC,MAAM,CAAC;SACrC;QACD,SAAS,EAAE;YACT,gBAAgB,EAAE,EAAE;SACrB;QACD,QAAQ,EAAE;YACR,eAAe,EAAE,EAAE;YACnB,cAAc,EAAE,EAAE;SACnB;QACD,OAAO,EAAE;YACP,iBAAiB,EAAE,EAAE;YACrB,sBAAsB,EAAE,EAAE;SAC3B;QACD,SAAS,EAAE;YACT,eAAe,EAAE,GAAG;YACpB,SAAS,EAAE,MAAM;SAClB;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CACzB,GAAqD;IAErD,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IAEpC,SAAS,SAAS,CAAC,KAAmC;QACpD,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC1C,IAAI,OAAO,KAAK,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,OAAO,KAAK,EAAE;YAAE,OAAO,EAAE,CAAC;QAC9B,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED,SAAS,WAAW,CAClB,KAAmC,EACnC,QAAgB;QAEhB,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAC;QACvE,OAAO,KAAK,CAAC,IAAI,EAAE,IAAI,QAAQ,CAAC;IAClC,CAAC;IAED,SAAS,WAAW,CAClB,KAAmC,EACnC,QAAgB;QAEhB,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAC;QACvE,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QACxB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;IAChC,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;IAClC,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC;IAEtC,OAAO;QACL,MAAM,EAAE;YACN,aAAa,EACX,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,aAAa;YAClE,aAAa,EACX,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,aAAa;YAClE,0BAA0B,EACxB,SAAS,CAAC,MAAM,CAAC,0BAA0B,CAAC;gBAC5C,QAAQ,CAAC,MAAM,CAAC,0BAA0B;SAC7C;QACD,SAAS,EAAE;YACT,gBAAgB,EACd,SAAS,CAAC,SAAS,CAAC,gBAAgB,CAAC;gBACrC,QAAQ,CAAC,SAAS,CAAC,gBAAgB;SACtC;QACD,QAAQ,EAAE;YACR,eAAe,EACb,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC;gBACnC,QAAQ,CAAC,QAAQ,CAAC,eAAe;YACnC,cAAc,EACZ,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAClC,QAAQ,CAAC,QAAQ,CAAC,cAAc;SACnC;QACD,OAAO,EAAE;YACP,iBAAiB,EACf,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAC;gBACpC,QAAQ,CAAC,OAAO,CAAC,iBAAiB;YACpC,sBAAsB,EACpB,SAAS,CAAC,OAAO,CAAC,sBAAsB,CAAC;gBACzC,QAAQ,CAAC,OAAO,CAAC,sBAAsB;SAC1C;QACD,SAAS,EAAE;YACT,eAAe,EAAE,WAAW,CAC1B,SAAS,CAAC,eAAe,EACzB,QAAQ,CAAC,SAAS,CAAC,eAAe,CACnC;YACD,SAAS,EACN,WAAW,CAAC,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,SAAS,CAElD;SACf;KACF,CAAC;AACJ,CAAC"}
@@ -3,6 +3,7 @@ import type { FreeTurtleModule } from "./modules/types.js";
3
3
  import type { Logger } from "./logger.js";
4
4
  import type { PolicyConfig } from "./policy.js";
5
5
  import { ApprovalManager } from "./approval.js";
6
+ import type { LoadedSkill } from "./skills/types.js";
6
7
  export interface TaskConfig {
7
8
  name: string;
8
9
  prompt: string;
@@ -19,6 +20,7 @@ export declare class TaskRunner {
19
20
  private dir;
20
21
  private llm;
21
22
  private modules;
23
+ private skills;
22
24
  private logger;
23
25
  private policy?;
24
26
  private approvalManager;
@@ -29,6 +31,7 @@ export declare class TaskRunner {
29
31
  constructor(dir: string, llm: LLMClient, modules: FreeTurtleModule[], logger: Logger, options?: {
30
32
  policy?: PolicyConfig;
31
33
  onApprovalNeeded?: ApprovalNotifier;
34
+ skills?: LoadedSkill[];
32
35
  });
33
36
  runTask(task: TaskConfig): Promise<TaskResult>;
34
37
  runMessage(message: string, channel: string, images?: import("./channels/types.js").MessageImage[]): Promise<string>;
@@ -7,10 +7,12 @@ import { PolicyDeniedError, requiresApproval } from "./policy.js";
7
7
  import { ApprovalManager } from "./approval.js";
8
8
  import { AuditLogger } from "./audit.js";
9
9
  import { redact } from "./redaction.js";
10
+ import { buildSkillsPrompt } from "./skills/index.js";
10
11
  export class TaskRunner {
11
12
  dir;
12
13
  llm;
13
14
  modules;
15
+ skills;
14
16
  logger;
15
17
  policy;
16
18
  approvalManager;
@@ -22,6 +24,7 @@ export class TaskRunner {
22
24
  this.dir = dir;
23
25
  this.llm = llm;
24
26
  this.modules = modules;
27
+ this.skills = options?.skills ?? [];
25
28
  this.logger = logger;
26
29
  this.policy = options?.policy;
27
30
  this.approvalManager = new ApprovalManager(dir);
@@ -162,6 +165,15 @@ export class TaskRunner {
162
165
  if (heartbeatChecklist) {
163
166
  parts.push("### Heartbeat Checklist\n" + heartbeatChecklist + "\n");
164
167
  }
168
+ // Inject Agent Skills index (OpenClaw / ClawHub / Claude Code compatible)
169
+ // Progressive disclosure: only name/description/location go into the prompt.
170
+ // The LLM reads the full SKILL.md via read_file when a skill matches.
171
+ if (this.skills.length > 0) {
172
+ const skillsPrompt = buildSkillsPrompt(this.skills);
173
+ if (skillsPrompt) {
174
+ parts.push(skillsPrompt + "\n");
175
+ }
176
+ }
165
177
  parts.push("---\n", "## Instructions\n", "- You are an autonomous AI CEO. You act on behalf of the project described in your identity.", "- When you post, match the voice and style described in your identity.", "- Log important actions and observations.", "- If you are unsure about something, say so rather than guessing.", `- The current date and time is: ${new Date().toISOString()}`, "", "## Self-Modification", "- You can read and modify your own files using read_file, write_file, edit_file, and list_files.", "- Your identity is in soul.md — you can update your voice, goals, knowledge, and values.", "- Your configuration is in config.md — you can change cron schedules, enable/disable modules and channels.", "- Your memory is in workspace/memory/ — you can write persistent notes, logs, and data.", "- Changes to soul.md, config.md, and .env require founder approval. Memory writes do not.", "- When the founder asks you to change your behavior, update the relevant file so the change persists.", "- Config changes (cron, modules, channels) take effect on next restart.", "", "## Task Workflow", "- To create a task: call create_task with the details the founder provides. If a required parameter is missing, ask the founder before calling.", "- After a task is created, tell the founder the submission instructions: contributors email with the keyword in the subject and their ETH wallet address in the body.", "- Contributors submit via EMAIL only — they do NOT interact with the blockchain.", "- To review and pay out a task: call review_task_submissions, then search Gmail for the keyword, evaluate submissions, then YOU call submit_on_behalf_of(task_id, winner_wallet_address) to record the submission onchain, then YOU call approve_task_submission(task_id, submission_index) to release payment.", "- NEVER tell contributors to submit onchain or call any contract function. You handle ALL onchain operations on their behalf.");
166
178
  return parts.join("\n");
167
179
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { loadSkills, buildSkillsPrompt, buildSkillIndex, getSkillPrompt } from "./loader.js";
2
+ export type { LoadedSkill, SkillFrontmatter, SkillsConfig } from "./types.js";
3
+ export { parseSkillMd } from "./parser.js";
@@ -0,0 +1,3 @@
1
+ export { loadSkills, buildSkillsPrompt, buildSkillIndex, getSkillPrompt } from "./loader.js";
2
+ export { parseSkillMd } from "./parser.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/skills/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7F,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Skill loader — discovers and loads Agent Skills from the filesystem.
3
+ *
4
+ * Follows the same progressive disclosure model as OpenClaw:
5
+ * - Only name/description/location are injected into the system prompt
6
+ * - Full SKILL.md body is loaded on-demand via the read_file tool
7
+ * - XML format for the available_skills block
8
+ *
9
+ * Scan order (highest to lowest precedence):
10
+ * 1. Workspace skills: <workspace>/skills/
11
+ * 2. Managed skills: ~/.freeturtle/skills/ (shared across agents)
12
+ * 3. Extra dirs: Configured via skills.extra_dirs in config.md
13
+ *
14
+ * Compatible with OpenClaw, Claude Code, and ClawHub-installed skills.
15
+ * Skills installed via `clawhub install` into <workspace>/skills/ are picked up automatically.
16
+ */
17
+ import type { LoadedSkill, SkillsConfig } from "./types.js";
18
+ import type { Logger } from "../logger.js";
19
+ export declare function loadSkills(workspaceDir: string, config?: SkillsConfig, logger?: Logger): Promise<LoadedSkill[]>;
20
+ /**
21
+ * Build the skills section for the system prompt.
22
+ *
23
+ * Uses the same progressive disclosure model as OpenClaw:
24
+ * - Only name/description/location are injected (not the full body)
25
+ * - The LLM reads the full SKILL.md via read_file when a skill matches
26
+ * - XML format for the available_skills block
27
+ * - Token budget enforcement via character limits
28
+ */
29
+ export declare function buildSkillsPrompt(skills: LoadedSkill[]): string;
30
+ /** @deprecated Use buildSkillsPrompt instead */
31
+ export declare function buildSkillIndex(skills: LoadedSkill[]): string;
32
+ /** @deprecated Skills are now loaded on-demand via read_file */
33
+ export declare function getSkillPrompt(skill: LoadedSkill): string;