0xkobold 0.2.0 → 0.3.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.
Files changed (60) hide show
  1. package/HEARTBEAT.md +40 -58
  2. package/README.md +387 -337
  3. package/dist/package.json +4 -2
  4. package/dist/src/auth/device-auth.js +202 -0
  5. package/dist/src/auth/device-auth.js.map +1 -0
  6. package/dist/src/auth/index.js +3 -0
  7. package/dist/src/auth/index.js.map +1 -0
  8. package/dist/src/channels/index.js +8 -0
  9. package/dist/src/channels/index.js.map +1 -0
  10. package/dist/src/channels/slack/webhook.js +128 -0
  11. package/dist/src/channels/slack/webhook.js.map +1 -0
  12. package/dist/src/channels/telegram/bot.js +223 -0
  13. package/dist/src/channels/telegram/bot.js.map +1 -0
  14. package/dist/src/channels/whatsapp/integration.js +325 -0
  15. package/dist/src/channels/whatsapp/integration.js.map +1 -0
  16. package/dist/src/cli/commands/check.js +69 -0
  17. package/dist/src/cli/commands/check.js.map +1 -0
  18. package/dist/src/cli/commands/migrate.js +24 -0
  19. package/dist/src/cli/commands/migrate.js.map +1 -0
  20. package/dist/src/cli/commands/tailscale.js +81 -0
  21. package/dist/src/cli/commands/tailscale.js.map +1 -0
  22. package/dist/src/cli/commands/telegram.js +111 -0
  23. package/dist/src/cli/commands/telegram.js.map +1 -0
  24. package/dist/src/cli/commands/tui.js +40 -22
  25. package/dist/src/cli/commands/tui.js.map +1 -1
  26. package/dist/src/cli/commands/whatsapp.js +116 -0
  27. package/dist/src/cli/commands/whatsapp.js.map +1 -0
  28. package/dist/src/cli/program.js +20 -0
  29. package/dist/src/cli/program.js.map +1 -1
  30. package/dist/src/config/index.js +2 -9
  31. package/dist/src/config/index.js.map +1 -1
  32. package/dist/src/config/manager.js +222 -0
  33. package/dist/src/config/manager.js.map +1 -0
  34. package/dist/src/documents/index.js +3 -0
  35. package/dist/src/documents/index.js.map +1 -0
  36. package/dist/src/documents/pdf.js +168 -0
  37. package/dist/src/documents/pdf.js.map +1 -0
  38. package/dist/src/gateway/client.js +318 -0
  39. package/dist/src/gateway/client.js.map +1 -0
  40. package/dist/src/infra/index.js +3 -0
  41. package/dist/src/infra/index.js.map +1 -0
  42. package/dist/src/infra/tailscale.js +163 -0
  43. package/dist/src/infra/tailscale.js.map +1 -0
  44. package/dist/src/media/audio.js +130 -0
  45. package/dist/src/media/audio.js.map +1 -0
  46. package/dist/src/media/index.js +4 -0
  47. package/dist/src/media/index.js.map +1 -0
  48. package/dist/src/media/vision.js +131 -0
  49. package/dist/src/media/vision.js.map +1 -0
  50. package/dist/src/migration/openclaw.js +498 -0
  51. package/dist/src/migration/openclaw.js.map +1 -0
  52. package/dist/src/sandbox/docker-runner.js +228 -0
  53. package/dist/src/sandbox/docker-runner.js.map +1 -0
  54. package/dist/src/sandbox/index.js +3 -0
  55. package/dist/src/sandbox/index.js.map +1 -0
  56. package/dist/src/skills/builtin/duplicate-detector.js +469 -0
  57. package/dist/src/skills/builtin/duplicate-detector.js.map +1 -0
  58. package/dist/src/skills/index.js +2 -0
  59. package/dist/src/skills/index.js.map +1 -1
  60. package/package.json +4 -2
@@ -0,0 +1,228 @@
1
+ /**
2
+ * Docker Sandbox Runner - v0.3.0
3
+ *
4
+ * Containerized execution for security isolation.
5
+ * Docker sandboxing for tools and agent execution.
6
+ */
7
+ import { spawn } from "node:child_process";
8
+ const DEFAULT_CONFIG = {
9
+ image: "node:20-slim",
10
+ memoryLimit: "512m",
11
+ cpuLimit: "1.0",
12
+ timeout: 30000,
13
+ volumes: [],
14
+ network: "none",
15
+ user: "node",
16
+ workingDir: "/workspace",
17
+ };
18
+ class DockerRunner {
19
+ config;
20
+ available = null;
21
+ constructor(config = {}) {
22
+ this.config = { ...DEFAULT_CONFIG, ...config };
23
+ }
24
+ /**
25
+ * Check if Docker is available
26
+ */
27
+ async isAvailable() {
28
+ if (this.available !== null)
29
+ return this.available;
30
+ try {
31
+ const result = await this.execCommand("docker", ["version"]);
32
+ this.available = result.success;
33
+ return this.available;
34
+ }
35
+ catch {
36
+ this.available = false;
37
+ return false;
38
+ }
39
+ }
40
+ /**
41
+ * Run command in Docker container
42
+ */
43
+ async run(options) {
44
+ if (!(await this.isAvailable())) {
45
+ return {
46
+ success: false,
47
+ stdout: "",
48
+ stderr: "Docker not available. Install Docker or check permissions.",
49
+ exitCode: -1,
50
+ duration: 0,
51
+ };
52
+ }
53
+ const startTime = Date.now();
54
+ const timeout = options.timeout || this.config.timeout;
55
+ // Build docker run arguments
56
+ const args = [
57
+ "run",
58
+ "--rm",
59
+ "--memory", this.config.memoryLimit,
60
+ "--cpus", this.config.cpuLimit,
61
+ "--network", this.config.network,
62
+ "--user", this.config.user,
63
+ "--workdir", this.config.workingDir,
64
+ "-i", // Interactive for stdin
65
+ ];
66
+ // Add timeout
67
+ if (timeout > 0) {
68
+ args.push("--stop-timeout", String(Math.floor(timeout / 1000)));
69
+ }
70
+ // Add volumes
71
+ for (const vol of this.config.volumes) {
72
+ const ro = vol.readonly ? ":ro" : "";
73
+ args.push("-v", `${vol.host}:${vol.container}${ro}`);
74
+ }
75
+ // Add environment variables
76
+ if (options.env) {
77
+ for (const [key, value] of Object.entries(options.env)) {
78
+ args.push("-e", `${key}=${value}`);
79
+ }
80
+ }
81
+ // Add image
82
+ args.push(this.config.image);
83
+ // Add command
84
+ args.push(options.command);
85
+ if (options.args) {
86
+ args.push(...options.args);
87
+ }
88
+ return new Promise((resolve) => {
89
+ const child = spawn("docker", args, {
90
+ stdio: ["pipe", "pipe", "pipe"],
91
+ });
92
+ let stdout = "";
93
+ let stderr = "";
94
+ let killed = false;
95
+ // Collect stdout
96
+ child.stdout?.on("data", (data) => {
97
+ stdout += data.toString();
98
+ });
99
+ // Collect stderr
100
+ child.stderr?.on("data", (data) => {
101
+ stderr += data.toString();
102
+ });
103
+ // Send stdin if provided
104
+ if (options.stdin) {
105
+ child.stdin?.write(options.stdin);
106
+ child.stdin?.end();
107
+ }
108
+ // Timeout handling
109
+ const timeoutId = setTimeout(() => {
110
+ killed = true;
111
+ child.kill("SIGKILL");
112
+ }, timeout);
113
+ // Process completion
114
+ child.on("exit", (code) => {
115
+ clearTimeout(timeoutId);
116
+ const duration = Date.now() - startTime;
117
+ resolve({
118
+ success: code === 0 && !killed,
119
+ stdout,
120
+ stderr,
121
+ exitCode: code ?? -1,
122
+ duration,
123
+ killed,
124
+ });
125
+ });
126
+ child.on("error", (err) => {
127
+ clearTimeout(timeoutId);
128
+ resolve({
129
+ success: false,
130
+ stdout,
131
+ stderr: err.message,
132
+ exitCode: -1,
133
+ duration: Date.now() - startTime,
134
+ });
135
+ });
136
+ });
137
+ }
138
+ /**
139
+ * Create workspace volume
140
+ */
141
+ async createWorkspace(workspacePath) {
142
+ const containerPath = `/workspace-${Date.now()}`;
143
+ this.config.volumes.push({
144
+ host: workspacePath,
145
+ container: containerPath,
146
+ readonly: false,
147
+ });
148
+ return containerPath;
149
+ }
150
+ /**
151
+ * Pull image if not present
152
+ */
153
+ async pullImage() {
154
+ try {
155
+ const result = await this.execCommand("docker", [
156
+ "pull",
157
+ this.config.image,
158
+ ]);
159
+ return result.success;
160
+ }
161
+ catch {
162
+ return false;
163
+ }
164
+ }
165
+ /**
166
+ * Get container logs
167
+ */
168
+ async getLogs(containerId) {
169
+ const result = await this.execCommand("docker", ["logs", containerId]);
170
+ return result.success ? result.stdout : "";
171
+ }
172
+ /**
173
+ * List running containers
174
+ */
175
+ async listContainers() {
176
+ const result = await this.execCommand("docker", [
177
+ "ps",
178
+ "--format",
179
+ "{{.ID}}",
180
+ ]);
181
+ return result.success ? result.stdout.trim().split("\n").filter(Boolean) : [];
182
+ }
183
+ /**
184
+ * Stop container
185
+ */
186
+ async stopContainer(containerId) {
187
+ const result = await this.execCommand("docker", ["stop", containerId]);
188
+ return result.success;
189
+ }
190
+ /**
191
+ * Execute command helper
192
+ */
193
+ execCommand(cmd, args) {
194
+ return new Promise((resolve) => {
195
+ const child = spawn(cmd, args, {
196
+ stdio: ["ignore", "pipe", "pipe"],
197
+ });
198
+ let stdout = "";
199
+ let stderr = "";
200
+ child.stdout?.on("data", (data) => {
201
+ stdout += data.toString();
202
+ });
203
+ child.stderr?.on("data", (data) => {
204
+ stderr += data.toString();
205
+ });
206
+ child.on("exit", (code) => {
207
+ resolve({ success: code === 0, stdout, stderr });
208
+ });
209
+ child.on("error", () => {
210
+ resolve({ success: false, stdout, stderr });
211
+ });
212
+ });
213
+ }
214
+ }
215
+ // Singleton
216
+ let runner = null;
217
+ export function getDockerRunner(config) {
218
+ if (!runner) {
219
+ runner = new DockerRunner(config);
220
+ }
221
+ return runner;
222
+ }
223
+ export function resetDockerRunner() {
224
+ runner = null;
225
+ }
226
+ export { DockerRunner, DEFAULT_CONFIG };
227
+ export default DockerRunner;
228
+ //# sourceMappingURL=docker-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docker-runner.js","sourceRoot":"","sources":["../../../src/sandbox/docker-runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ // Sandbox Module - v0.3.0
2
+ export { DockerRunner, getDockerRunner, resetDockerRunner, DEFAULT_CONFIG, } from "./docker-runner.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sandbox/index.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,OAAO,EACL,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,cAAc,GAIf,MAAM,oBAAoB,CAAC"}