0xkobold 0.1.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 (170) hide show
  1. package/HEARTBEAT.md +48 -32
  2. package/README.md +426 -157
  3. package/dist/package.json +5 -2
  4. package/dist/src/agent/bootstrap-loader.js +138 -0
  5. package/dist/src/agent/bootstrap-loader.js.map +1 -0
  6. package/dist/src/agent/context-pruning.js +279 -0
  7. package/dist/src/agent/context-pruning.js.map +1 -0
  8. package/dist/src/agent/dynamic-personality.js +211 -0
  9. package/dist/src/agent/dynamic-personality.js.map +1 -0
  10. package/dist/src/agent/embedded-runner.js +79 -0
  11. package/dist/src/agent/embedded-runner.js.map +1 -0
  12. package/dist/src/agent/index.js +16 -0
  13. package/dist/src/agent/index.js.map +1 -0
  14. package/dist/src/agent/system-prompt.js +84 -0
  15. package/dist/src/agent/system-prompt.js.map +1 -0
  16. package/dist/src/agent/task-router.js +194 -0
  17. package/dist/src/agent/task-router.js.map +1 -0
  18. package/dist/src/agent/tools/index.js +2 -0
  19. package/dist/src/agent/tools/index.js.map +1 -0
  20. package/dist/src/agent/tools/spawn-agent.js +200 -0
  21. package/dist/src/agent/tools/spawn-agent.js.map +1 -0
  22. package/dist/src/agent/types/definitions.js +317 -0
  23. package/dist/src/agent/types/definitions.js.map +1 -0
  24. package/dist/src/agent/types/index.js +2 -0
  25. package/dist/src/agent/types/index.js.map +1 -0
  26. package/dist/src/agent/user-profile.js +300 -0
  27. package/dist/src/agent/user-profile.js.map +1 -0
  28. package/dist/src/agents/task-router.js +194 -0
  29. package/dist/src/agents/task-router.js.map +1 -0
  30. package/dist/src/agents/tools/index.js +2 -0
  31. package/dist/src/agents/tools/index.js.map +1 -0
  32. package/dist/src/agents/tools/spawn-agent.js +200 -0
  33. package/dist/src/agents/tools/spawn-agent.js.map +1 -0
  34. package/dist/src/agents/types/definitions.js +317 -0
  35. package/dist/src/agents/types/definitions.js.map +1 -0
  36. package/dist/src/agents/types/index.js +2 -0
  37. package/dist/src/agents/types/index.js.map +1 -0
  38. package/dist/src/auth/device-auth.js +202 -0
  39. package/dist/src/auth/device-auth.js.map +1 -0
  40. package/dist/src/auth/index.js +3 -0
  41. package/dist/src/auth/index.js.map +1 -0
  42. package/dist/src/channels/index.js +8 -0
  43. package/dist/src/channels/index.js.map +1 -0
  44. package/dist/src/channels/slack/webhook.js +128 -0
  45. package/dist/src/channels/slack/webhook.js.map +1 -0
  46. package/dist/src/channels/telegram/bot.js +223 -0
  47. package/dist/src/channels/telegram/bot.js.map +1 -0
  48. package/dist/src/channels/whatsapp/integration.js +325 -0
  49. package/dist/src/channels/whatsapp/integration.js.map +1 -0
  50. package/dist/src/cli/commands/check.js +69 -0
  51. package/dist/src/cli/commands/check.js.map +1 -0
  52. package/dist/src/cli/commands/embedded.js +36 -0
  53. package/dist/src/cli/commands/embedded.js.map +1 -0
  54. package/dist/src/cli/commands/gateway.js +127 -166
  55. package/dist/src/cli/commands/gateway.js.map +1 -1
  56. package/dist/src/cli/commands/migrate.js +24 -0
  57. package/dist/src/cli/commands/migrate.js.map +1 -0
  58. package/dist/src/cli/commands/tailscale.js +81 -0
  59. package/dist/src/cli/commands/tailscale.js.map +1 -0
  60. package/dist/src/cli/commands/telegram.js +111 -0
  61. package/dist/src/cli/commands/telegram.js.map +1 -0
  62. package/dist/src/cli/commands/tui.js +40 -22
  63. package/dist/src/cli/commands/tui.js.map +1 -1
  64. package/dist/src/cli/commands/whatsapp.js +116 -0
  65. package/dist/src/cli/commands/whatsapp.js.map +1 -0
  66. package/dist/src/cli/program-fixed.js +1 -0
  67. package/dist/src/cli/program-fixed.js.map +1 -0
  68. package/dist/src/cli/program.js +30 -29
  69. package/dist/src/cli/program.js.map +1 -1
  70. package/dist/src/config/index.js +2 -9
  71. package/dist/src/config/index.js.map +1 -1
  72. package/dist/src/config/manager.js +222 -0
  73. package/dist/src/config/manager.js.map +1 -0
  74. package/dist/src/documents/index.js +3 -0
  75. package/dist/src/documents/index.js.map +1 -0
  76. package/dist/src/documents/pdf.js +168 -0
  77. package/dist/src/documents/pdf.js.map +1 -0
  78. package/dist/src/extensions/core/agent-lifecycle-extension.js +323 -0
  79. package/dist/src/extensions/core/agent-lifecycle-extension.js.map +1 -0
  80. package/dist/src/extensions/core/agent-orchestrator-extension.js +642 -0
  81. package/dist/src/extensions/core/agent-orchestrator-extension.js.map +1 -0
  82. package/dist/src/extensions/core/agent-workspace-extension.js +174 -0
  83. package/dist/src/extensions/core/agent-workspace-extension.js.map +1 -0
  84. package/dist/src/extensions/core/autonomous-executor-extension.js +145 -0
  85. package/dist/src/extensions/core/autonomous-executor-extension.js.map +1 -0
  86. package/dist/src/extensions/core/autonomous-subagent-extension.js +333 -0
  87. package/dist/src/extensions/core/autonomous-subagent-extension.js.map +1 -0
  88. package/dist/src/extensions/core/deprecated/agent-lifecycle-extension.js +323 -0
  89. package/dist/src/extensions/core/deprecated/agent-lifecycle-extension.js.map +1 -0
  90. package/dist/src/extensions/core/deprecated/autonomous-subagent-extension.js +333 -0
  91. package/dist/src/extensions/core/deprecated/autonomous-subagent-extension.js.map +1 -0
  92. package/dist/src/extensions/core/deprecated/subagent-extension.js +647 -0
  93. package/dist/src/extensions/core/deprecated/subagent-extension.js.map +1 -0
  94. package/dist/src/extensions/core/mode-manager-extension.js +11 -0
  95. package/dist/src/extensions/core/mode-manager-extension.js.map +1 -1
  96. package/dist/src/extensions/core/persona-loader-extension.js +61 -129
  97. package/dist/src/extensions/core/persona-loader-extension.js.map +1 -1
  98. package/dist/src/extensions/core/websearch-enhanced-extension.js +705 -0
  99. package/dist/src/extensions/core/websearch-enhanced-extension.js.map +1 -0
  100. package/dist/src/extensions/core/websearch-v2-extension.js +303 -0
  101. package/dist/src/extensions/core/websearch-v2-extension.js.map +1 -0
  102. package/dist/src/gateway/client.js +318 -0
  103. package/dist/src/gateway/client.js.map +1 -0
  104. package/dist/src/gateway/discord-bot.js +185 -0
  105. package/dist/src/gateway/discord-bot.js.map +1 -0
  106. package/dist/src/gateway/index.js +10 -350
  107. package/dist/src/gateway/index.js.map +1 -1
  108. package/dist/src/gateway/server.js +325 -0
  109. package/dist/src/gateway/server.js.map +1 -0
  110. package/dist/src/gateway/websocket-server.js +142 -0
  111. package/dist/src/gateway/websocket-server.js.map +1 -0
  112. package/dist/src/heartbeat/checkin.js +185 -0
  113. package/dist/src/heartbeat/checkin.js.map +1 -0
  114. package/dist/src/heartbeat/index.js +5 -0
  115. package/dist/src/heartbeat/index.js.map +1 -0
  116. package/dist/src/heartbeat/notifications.js +216 -0
  117. package/dist/src/heartbeat/notifications.js.map +1 -0
  118. package/dist/src/heartbeat/scheduler.js +284 -0
  119. package/dist/src/heartbeat/scheduler.js.map +1 -0
  120. package/dist/src/index.js +21 -3
  121. package/dist/src/index.js.map +1 -1
  122. package/dist/src/infra/index.js +3 -0
  123. package/dist/src/infra/index.js.map +1 -0
  124. package/dist/src/infra/tailscale.js +163 -0
  125. package/dist/src/infra/tailscale.js.map +1 -0
  126. package/dist/src/media/audio.js +130 -0
  127. package/dist/src/media/audio.js.map +1 -0
  128. package/dist/src/media/index.js +4 -0
  129. package/dist/src/media/index.js.map +1 -0
  130. package/dist/src/media/vision.js +131 -0
  131. package/dist/src/media/vision.js.map +1 -0
  132. package/dist/src/migration/openclaw.js +498 -0
  133. package/dist/src/migration/openclaw.js.map +1 -0
  134. package/dist/src/mode/auto-detector.js +211 -0
  135. package/dist/src/mode/auto-detector.js.map +1 -0
  136. package/dist/src/mode/index.js +3 -0
  137. package/dist/src/mode/index.js.map +1 -0
  138. package/dist/src/mode/natural-switcher.js +123 -0
  139. package/dist/src/mode/natural-switcher.js.map +1 -0
  140. package/dist/src/sandbox/docker-runner.js +228 -0
  141. package/dist/src/sandbox/docker-runner.js.map +1 -0
  142. package/dist/src/sandbox/index.js +3 -0
  143. package/dist/src/sandbox/index.js.map +1 -0
  144. package/dist/src/skills/builtin/api-worker.js +88 -0
  145. package/dist/src/skills/builtin/api-worker.js.map +1 -0
  146. package/dist/src/skills/builtin/duplicate-detector.js +469 -0
  147. package/dist/src/skills/builtin/duplicate-detector.js.map +1 -0
  148. package/dist/src/skills/builtin/nextjs-worker.js +55 -0
  149. package/dist/src/skills/builtin/nextjs-worker.js.map +1 -0
  150. package/dist/src/skills/builtin/real-workers.js +166 -0
  151. package/dist/src/skills/builtin/real-workers.js.map +1 -0
  152. package/dist/src/skills/builtin/sql-worker.js +61 -0
  153. package/dist/src/skills/builtin/sql-worker.js.map +1 -0
  154. package/dist/src/skills/builtin/test-worker.js +79 -0
  155. package/dist/src/skills/builtin/test-worker.js.map +1 -0
  156. package/dist/src/skills/builtin/web-research.js +77 -0
  157. package/dist/src/skills/builtin/web-research.js.map +1 -0
  158. package/dist/src/skills/framework.js +250 -0
  159. package/dist/src/skills/framework.js.map +1 -0
  160. package/dist/src/skills/index.js +12 -10
  161. package/dist/src/skills/index.js.map +1 -1
  162. package/dist/src/streaming/block-streamer.js +172 -0
  163. package/dist/src/streaming/block-streamer.js.map +1 -0
  164. package/dist/src/streaming/index.js +2 -0
  165. package/dist/src/streaming/index.js.map +1 -0
  166. package/dist/src/workspace/index.js +2 -0
  167. package/dist/src/workspace/index.js.map +1 -0
  168. package/dist/src/workspace/manager.js +181 -0
  169. package/dist/src/workspace/manager.js.map +1 -0
  170. package/package.json +5 -2
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Telegram CLI Command - v0.3.0
3
+ *
4
+ * Manage Telegram bot integration.
5
+ */
6
+ import { Command } from "commander";
7
+ import { getTelegramIntegration, resetTelegramIntegration, } from "../../channels/index.js";
8
+ export function createTelegramCommand() {
9
+ const cmd = new Command("telegram")
10
+ .description("Manage Telegram integration");
11
+ // Start Telegram
12
+ cmd
13
+ .command("start")
14
+ .description("Start Telegram bot")
15
+ .option("--token <token>", "Bot token (or set TELEGRAM_BOT_TOKEN)")
16
+ .option("--mode <mode>", "Connection mode (polling|webhook)", "polling")
17
+ .action(async (options) => {
18
+ const token = options.token || process.env.TELEGRAM_BOT_TOKEN;
19
+ if (!token) {
20
+ console.error("❌ Telegram bot token required");
21
+ console.error("Set TELEGRAM_BOT_TOKEN or use --token");
22
+ process.exit(1);
23
+ }
24
+ console.log("📱 Starting Telegram bot...");
25
+ try {
26
+ const telegram = getTelegramIntegration({
27
+ token,
28
+ mode: options.mode,
29
+ });
30
+ telegram.on("connected", () => {
31
+ console.log("✅ Telegram bot connected!");
32
+ console.log("Mode:", options.mode);
33
+ });
34
+ telegram.on("message", (msg) => {
35
+ console.log(`📩 ${msg.isGroup ? "Group" : "DM"}: ${msg.text?.slice(0, 50)}...`);
36
+ });
37
+ telegram.on("error", (err) => {
38
+ console.error("❌ Telegram error:", err.message);
39
+ });
40
+ await telegram.start();
41
+ console.log("\n🔄 Telegram bot running...");
42
+ console.log("Press Ctrl+C to stop\n");
43
+ process.on("SIGINT", async () => {
44
+ console.log("\n🛑 Stopping Telegram...");
45
+ await resetTelegramIntegration();
46
+ console.log("✅ Telegram stopped");
47
+ process.exit(0);
48
+ });
49
+ }
50
+ catch (error) {
51
+ console.error("❌ Failed to start Telegram:", error);
52
+ process.exit(1);
53
+ }
54
+ });
55
+ // Stop
56
+ cmd
57
+ .command("stop")
58
+ .description("Stop Telegram bot")
59
+ .action(async () => {
60
+ console.log("🛑 Stopping Telegram...");
61
+ await resetTelegramIntegration();
62
+ console.log("✅ Telegram stopped");
63
+ });
64
+ // Status
65
+ cmd
66
+ .command("status")
67
+ .description("Check Telegram status")
68
+ .action(() => {
69
+ try {
70
+ const telegram = getTelegramIntegration();
71
+ const status = telegram.getStatus();
72
+ if (status.connected) {
73
+ console.log("🟢 Telegram: Connected");
74
+ console.log(` Mode: ${status.mode}`);
75
+ }
76
+ else {
77
+ console.log("🔴 Telegram: Not running");
78
+ console.log(" Run: 0xkobold telegram start");
79
+ }
80
+ }
81
+ catch {
82
+ console.log("🔴 Telegram: Not initialized");
83
+ console.log(" Run: 0xkobold telegram start --token <token>");
84
+ }
85
+ });
86
+ // Send message
87
+ cmd
88
+ .command("send")
89
+ .description("Send test message")
90
+ .argument("<chatId>", "Chat ID (e.g., 123456789)")
91
+ .argument("<message>", "Message text")
92
+ .option("--token <token>", "Bot token")
93
+ .action(async (chatId, message, options) => {
94
+ try {
95
+ const token = options.token || process.env.TELEGRAM_BOT_TOKEN;
96
+ const telegram = getTelegramIntegration(token ? { token, mode: "polling" } : undefined);
97
+ if (!telegram.getStatus().connected) {
98
+ console.error("❌ Telegram not connected");
99
+ return;
100
+ }
101
+ await telegram.sendMessage(chatId, message);
102
+ console.log("✅ Message sent");
103
+ }
104
+ catch (error) {
105
+ console.error("❌ Failed to send:", error);
106
+ process.exit(1);
107
+ }
108
+ });
109
+ return cmd;
110
+ }
111
+ //# sourceMappingURL=telegram.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telegram.js","sourceRoot":"","sources":["../../../../src/cli/commands/telegram.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,8 @@ export const tuiCommand = new Command()
10
10
  .description("Start the 0xKobold Terminal UI (interactive mode)")
11
11
  .option("-e, --extensions <paths...>", "Additional extension paths to load")
12
12
  .option("-l, --local", "Use current directory as workspace (default: global ~/.0xkobold)")
13
+ .option("-r, --remote <url>", "Connect to remote gateway instead of local (e.g., wss://vps.example.com:7777)")
14
+ .option("--token <token>", "Authentication token for remote gateway")
13
15
  .action(async (options) => {
14
16
  // The main TUI entry point is src/index.ts (relative to package root)
15
17
  const packageRoot = resolve(__dirname, "../../..");
@@ -17,9 +19,23 @@ export const tuiCommand = new Command()
17
19
  // Determine working directory: global workspace by default, or current dir with --local
18
20
  const globalWorkspace = resolve(homedir(), ".0xkobold");
19
21
  const cwd = options.local ? process.cwd() : globalWorkspace;
20
- // Write context file ONLY when using --local mode
21
- // This prevents regular runs from showing wrong directory
22
- if (options.local) {
22
+ // Remote gateway mode
23
+ if (options.remote) {
24
+ console.log(`🌐 Remote Gateway Mode: ${options.remote}`);
25
+ console.log(`📁 Local Working Directory: ${cwd}`);
26
+ console.log(`🧠 AI Processing: Remote (VPS)\n`);
27
+ }
28
+ else {
29
+ console.log(`🐉 Starting 0xKobold TUI (${options.local ? "local" : "global"} workspace)...`);
30
+ if (options.local) {
31
+ console.log(`📁 Working in: ${cwd}\n`);
32
+ }
33
+ else {
34
+ console.log(`📁 Global workspace: ${cwd}\n`);
35
+ }
36
+ }
37
+ // Write context file for local mode tracking
38
+ if (options.local || options.remote) {
23
39
  const contextFile = resolve(globalWorkspace, ".active-context");
24
40
  try {
25
41
  if (!existsSync(globalWorkspace)) {
@@ -27,23 +43,26 @@ export const tuiCommand = new Command()
27
43
  }
28
44
  writeFileSync(contextFile, JSON.stringify({
29
45
  workingDir: cwd,
30
- isLocal: true,
46
+ isLocal: options.local || !!options.remote,
47
+ remoteGateway: options.remote || null,
31
48
  timestamp: Date.now(),
32
49
  }, null, 2));
33
- // Broadcast to gateway if available
34
- try {
35
- await fetch("http://127.0.0.1:18789/event", {
36
- method: "POST",
37
- headers: { "Content-Type": "application/json" },
38
- body: JSON.stringify({
39
- type: "tui.context_changed",
40
- workingDir: cwd,
41
- isLocal: true,
42
- }),
43
- });
44
- }
45
- catch {
46
- // Gateway not running, ignore
50
+ // Broadcast to local gateway if available (only in non-remote mode)
51
+ if (!options.remote) {
52
+ try {
53
+ await fetch("http://127.0.0.1:18789/event", {
54
+ method: "POST",
55
+ headers: { "Content-Type": "application/json" },
56
+ body: JSON.stringify({
57
+ type: "tui.context_changed",
58
+ workingDir: cwd,
59
+ isLocal: true,
60
+ }),
61
+ });
62
+ }
63
+ catch {
64
+ // Gateway not running, ignore
65
+ }
47
66
  }
48
67
  }
49
68
  catch {
@@ -63,7 +82,6 @@ export const tuiCommand = new Command()
63
82
  }
64
83
  }
65
84
  try {
66
- console.log(`🐉 Starting 0xKobold TUI (${options.local ? "local" : "global"} workspace)...\n`);
67
85
  const args = [tuiEntryPoint];
68
86
  // Add any custom extensions if provided
69
87
  if (options.extensions) {
@@ -79,12 +97,12 @@ export const tuiCommand = new Command()
79
97
  env: {
80
98
  ...process.env,
81
99
  // Set working directory for file operations (tools, etc.)
82
- // Config stays in default pi location (~/.pi/agent/)
83
100
  KOBOLD_WORKING_DIR: cwd,
84
101
  // Session identification
85
102
  KOBOLD_SESSION_TYPE: "tui",
86
- // Resume behavior - each TUI gets new session by default
87
- // Can override with KOBOLD_RESUME_SESSION env var
103
+ // Remote gateway configuration
104
+ KOBOLD_REMOTE_GATEWAY: options.remote || "",
105
+ KOBOLD_REMOTE_TOKEN: options.token || "",
88
106
  },
89
107
  });
90
108
  child.on("exit", (code) => {
@@ -1 +1 @@
1
- {"version":3,"file":"tui.js","sourceRoot":"","sources":["../../../../src/cli/commands/tui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tui.js","sourceRoot":"","sources":["../../../../src/cli/commands/tui.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * WhatsApp CLI Command - v0.3.0
3
+ *
4
+ * Manage WhatsApp bot integration.
5
+ */
6
+ import { Command } from "commander";
7
+ import { getWhatsAppIntegration, resetWhatsAppIntegration, } from "../../channels/index.js";
8
+ export function createWhatsAppCommand() {
9
+ const cmd = new Command("whatsapp")
10
+ .description("Manage WhatsApp integration")
11
+ .option("--session <path>", "Session storage path", "~/.0xkobold/whatsapp-session");
12
+ // Start WhatsApp
13
+ cmd
14
+ .command("start")
15
+ .description("Start WhatsApp connection")
16
+ .action(async (options) => {
17
+ console.log("📱 Starting WhatsApp connection...");
18
+ console.log("⚠️ Make sure to scan the QR code with your WhatsApp app\n");
19
+ try {
20
+ const whatsapp = getWhatsAppIntegration({
21
+ sessionPath: options.session,
22
+ });
23
+ // Listen for events
24
+ whatsapp.on("qr", (qr) => {
25
+ console.log("\n📱 QR CODE:");
26
+ console.log(qr);
27
+ console.log("\n👉 Scan this with WhatsApp > Settings > Linked Devices\n");
28
+ });
29
+ whatsapp.on("connected", (info) => {
30
+ console.log("✅ WhatsApp connected!");
31
+ console.log("User:", info);
32
+ console.log("\nYou can now receive messages.");
33
+ });
34
+ whatsapp.on("message", (msg) => {
35
+ const message = msg;
36
+ console.log(`📩 ${message.isGroup ? "Group" : "DM"} from ${message.from}: ${message.body.slice(0, 50)}...`);
37
+ });
38
+ whatsapp.on("disconnected", (info) => {
39
+ if (info.shouldReconnect) {
40
+ console.log("⚠️ Disconnected. Will reconnect...");
41
+ }
42
+ else {
43
+ console.log("❌ Logged out. Run '0xkobold whatsapp start' again.");
44
+ process.exit(0);
45
+ }
46
+ });
47
+ await whatsapp.start();
48
+ console.log("\n🔄 WhatsApp bot running...");
49
+ console.log("Press Ctrl+C to stop\n");
50
+ // Keep alive
51
+ process.on("SIGINT", async () => {
52
+ console.log("\n🛑 Stopping WhatsApp...");
53
+ await resetWhatsAppIntegration();
54
+ console.log("✅ WhatsApp stopped");
55
+ process.exit(0);
56
+ });
57
+ }
58
+ catch (error) {
59
+ console.error("❌ Failed to start WhatsApp:", error);
60
+ process.exit(1);
61
+ }
62
+ });
63
+ // Stop WhatsApp
64
+ cmd
65
+ .command("stop")
66
+ .description("Stop WhatsApp connection")
67
+ .action(async () => {
68
+ console.log("🛑 Stopping WhatsApp...");
69
+ await resetWhatsAppIntegration();
70
+ console.log("✅ WhatsApp stopped");
71
+ });
72
+ // Status
73
+ cmd
74
+ .command("status")
75
+ .description("Check WhatsApp status")
76
+ .action(() => {
77
+ const whatsapp = getWhatsAppIntegration();
78
+ const status = whatsapp.getStatus();
79
+ if (status.connected) {
80
+ console.log("🟢 WhatsApp: Connected");
81
+ console.log(` User: ${status.user || "Unknown"}`);
82
+ }
83
+ else if (status.qr) {
84
+ console.log("🟡 WhatsApp: Waiting for QR scan");
85
+ console.log(" Run: 0xkobold whatsapp start");
86
+ }
87
+ else {
88
+ console.log("🔴 WhatsApp: Not running");
89
+ console.log(" Run: 0xkobold whatsapp start");
90
+ }
91
+ });
92
+ // Send message (test)
93
+ cmd
94
+ .command("send")
95
+ .description("Send a test message")
96
+ .argument("<number>", "Phone number (e.g., 1234567890)")
97
+ .argument("<message>", "Message to send")
98
+ .action(async (number, message) => {
99
+ try {
100
+ const whatsapp = getWhatsAppIntegration();
101
+ if (!whatsapp.getStatus().connected) {
102
+ console.error("❌ WhatsApp not connected. Run: 0xkobold whatsapp start");
103
+ return;
104
+ }
105
+ console.log(`📤 Sending to ${number}...`);
106
+ await whatsapp.sendText(number, message);
107
+ console.log("✅ Message sent");
108
+ }
109
+ catch (error) {
110
+ console.error("❌ Failed to send:", error);
111
+ process.exit(1);
112
+ }
113
+ });
114
+ return cmd;
115
+ }
116
+ //# sourceMappingURL=whatsapp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whatsapp.js","sourceRoot":"","sources":["../../../../src/cli/commands/whatsapp.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,UAAU,qBAAqB;IACnC,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC;SAChC,WAAW,CAAC,6BAA6B,CAAC;SAC1C,MAAM,CAAC,kBAAkB,EAAE,sBAAsB,EAAE,8BAA8B,CAAC,CAAC;IAEtF,iBAAiB;IACjB,GAAG;SACA,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,2BAA2B,CAAC;SACxC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;QAE1E,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,sBAAsB,CAAC;gBACtC,WAAW,EAAE,OAAO,CAAC,OAAO;aAC7B,CAAC,CAAC;YAEH,oBAAoB;YACpB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAU,EAAE,EAAE;gBAC/B,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;YAC5E,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,IAAa,EAAE,EAAE;gBACzC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;gBACrC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAC3B,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAY,EAAE,EAAE;gBACtC,MAAM,OAAO,GAAG,GAIf,CAAC;gBACF,OAAO,CAAC,GAAG,CACT,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,SAAS,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAC/F,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,IAAkC,EAAE,EAAE;gBACjE,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;oBACzB,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;gBACpD,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;oBAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;YAEvB,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;YAEtC,aAAa;YACb,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;gBAC9B,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;gBACzC,MAAM,wBAAwB,EAAE,CAAC;gBACjC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;gBAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;YACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,gBAAgB;IAChB,GAAG;SACA,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,0BAA0B,CAAC;SACvC,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACvC,MAAM,wBAAwB,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEL,SAAS;IACT,GAAG;SACA,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,uBAAuB,CAAC;SACpC,MAAM,CAAC,GAAG,EAAE;QACX,MAAM,QAAQ,GAAG,sBAAsB,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;QAEpC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC,CAAC;QACtD,CAAC;aAAM,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QACjD,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,sBAAsB;IACtB,GAAG;SACA,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,qBAAqB,CAAC;SAClC,QAAQ,CAAC,UAAU,EAAE,iCAAiC,CAAC;SACvD,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;SACxC,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,OAAe,EAAE,EAAE;QAChD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,sBAAsB,EAAE,CAAC;YAE1C,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,CAAC;gBACpC,OAAO,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;gBACxE,OAAO;YACT,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,KAAK,CAAC,CAAC;YAC1C,MAAM,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;YAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=program-fixed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"program-fixed.js","sourceRoot":"","sources":["../../../src/cli/program-fixed.ts"],"names":[],"mappings":""}
@@ -2,7 +2,6 @@
2
2
  * 0xKobold CLI Program
3
3
  *
4
4
  * Main CLI program using Commander.js
5
- * Based on OpenClaw CLI patterns
6
5
  */
7
6
  import { Command } from "commander";
8
7
  import { version } from "../../package.json" assert { type: "json" };
@@ -18,25 +17,46 @@ import { setupCommand } from "./commands/setup.js";
18
17
  import { registerDiscordCli } from "./extensions/discord.js";
19
18
  import { registerHeartbeatCli } from "./extensions/heartbeat.js";
20
19
  import { registerEnvCli } from "./extensions/env.js";
20
+ // v0.2.0: Gateway command
21
+ import { createGatewayCommand } from "./commands/gateway.js";
22
+ // v0.3.0: WhatsApp
23
+ import { createWhatsAppCommand } from "./commands/whatsapp.js";
24
+ // v0.3.0: Telegram
25
+ import { createTelegramCommand } from "./commands/telegram.js";
26
+ // v0.3.0: Migration
27
+ import { migrateCommand } from "./commands/migrate.js";
28
+ // v0.3.0: Duplicate check
29
+ import { checkCommand } from "./commands/check.js";
30
+ // v0.3.0: Tailscale
31
+ import { createTailscaleCommand } from "./commands/tailscale.js";
32
+ // v0.2.0: Embedded mode
33
+ import { createEmbeddedCommand } from "./commands/embedded.js";
21
34
  export function createCli() {
22
35
  const program = new Command("0xkobold")
23
36
  .version(version || "1.0.0")
24
37
  .description("0xKobold - Multi-Agent Automation Platform")
25
- .configureOutput({
26
- writeOut: (str) => process.stdout.write(str),
27
- writeErr: (str) => process.stderr.write(str),
28
- })
29
38
  .showHelpAfterError("\nUse --help for more information.");
30
39
  // Core service commands
31
40
  program.addCommand(createStartCommand());
32
41
  program.addCommand(createStopCommand());
33
42
  program.addCommand(createStatusCommand());
34
43
  program.addCommand(createLogsCommand());
35
- // System management (install/uninstall)
36
- const systemCmd = createSystemCommand();
37
- program.addCommand(systemCmd);
38
- // Setup wizard
44
+ // System management
45
+ program.addCommand(createSystemCommand());
39
46
  program.addCommand(setupCommand);
47
+ // v0.2.0: Gateway server
48
+ program.addCommand(createGatewayCommand());
49
+ // v0.3.0: WhatsApp integration
50
+ program.addCommand(createWhatsAppCommand());
51
+ // v0.3.0: Telegram integration
52
+ program.addCommand(createTelegramCommand());
53
+ // v0.3.0: Tailscale VPN
54
+ program.addCommand(createTailscaleCommand());
55
+ // v0.3.0: Migration from OpenClaw
56
+ program.addCommand(migrateCommand);
57
+ // v0.3.0: Duplicate detection
58
+ program.addCommand(checkCommand);
59
+ program.addCommand(createEmbeddedCommand());
40
60
  // Extension CLIs
41
61
  registerDiscordCli(program);
42
62
  registerHeartbeatCli(program);
@@ -45,26 +65,7 @@ export function createCli() {
45
65
  program
46
66
  .command("tui", { isDefault: true })
47
67
  .description("Start interactive TUI (default)")
48
- .option("--mode <mode>", "Start in specific mode (plan|build)")
49
- .option("--local", "Run in local project mode (uses CWD settings)")
50
- .action(async (opts) => {
51
- // Set local mode if flag is present
52
- if (opts.local) {
53
- process.env.KOBOLD_LOCAL_MODE = 'true';
54
- process.argv.push('--local');
55
- }
56
- // Launch TUI
57
- const { main } = await import("../index.js");
58
- await main();
59
- });
60
- // Local mode command (explicit)
61
- program
62
- .command("local")
63
- .description("Start TUI in local project mode (uses CWD for settings)")
64
- .option("--mode <mode>", "Start in specific mode (plan|build)")
65
- .action(async (opts) => {
66
- process.env.KOBOLD_LOCAL_MODE = 'true';
67
- process.argv.push('--local');
68
+ .action(async () => {
68
69
  const { main } = await import("../index.js");
69
70
  await main();
70
71
  });
@@ -1 +1 @@
1
- {"version":3,"file":"program.js","sourceRoot":"","sources":["../../../src/cli/program.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"program.js","sourceRoot":"","sources":["../../../src/cli/program.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,3 @@
1
- /**
2
- * Config module for Kobold
3
- *
4
- * Similar to koclaw/openclaw's config module
5
- * Provides types, paths, and loader for kobold.json
6
- */
7
- export * from "./types.js";
8
- export * from "./paths.js";
9
- export { loadConfig, loadConfigFromFile, getConfig, getConfigSnapshot, clearConfigCache, writeConfig, getConfigValue, setConfigValue, parseConfigJson, } from "./loader.js";
1
+ // Config Module - v0.3.0
2
+ export { ConfigManager, getConfigManager, resetConfigManager, DEFAULT_CONFIG, } from "./manager.js";
10
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,SAAS,EACT,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,cAAc,EACd,eAAe,GAChB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,GAEf,MAAM,cAAc,CAAC"}