camelagi 0.5.17 → 0.5.19
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 +9 -20
- package/dist/cli/cmd-agents.js +32 -12
- package/dist/cli/cmd-agents.js.map +1 -1
- package/dist/cli/cmd-connect.js +89 -0
- package/dist/cli/cmd-connect.js.map +1 -0
- package/dist/cli/cmd-reset.js +1 -1
- package/dist/cli/cmd-reset.js.map +1 -1
- package/dist/cli/cmd-serve.js +20 -4
- package/dist/cli/cmd-serve.js.map +1 -1
- package/dist/cli/cmd-uninstall.js +3 -3
- package/dist/cli/cmd-uninstall.js.map +1 -1
- package/dist/cli/cmd-update.js +14 -5
- package/dist/cli/cmd-update.js.map +1 -1
- package/dist/cli.js +61 -28
- package/dist/cli.js.map +1 -1
- package/dist/core/config.js +8 -2
- package/dist/core/config.js.map +1 -1
- package/dist/core/update-check.js +4 -5
- package/dist/core/update-check.js.map +1 -1
- package/dist/core/version.js +1 -1
- package/dist/doctor.js +2 -2
- package/dist/doctor.js.map +1 -1
- package/dist/extensions/cron.js +6 -2
- package/dist/extensions/cron.js.map +1 -1
- package/dist/extensions/heartbeat.js +74 -0
- package/dist/extensions/heartbeat.js.map +1 -0
- package/dist/gateway/csrf.js +10 -1
- package/dist/gateway/csrf.js.map +1 -1
- package/dist/gateway/routes.js +7 -1
- package/dist/gateway/routes.js.map +1 -1
- package/dist/gateway/state.js.map +1 -1
- package/dist/gateway-entry.js +1 -1
- package/dist/infra/tailscale.js +174 -0
- package/dist/infra/tailscale.js.map +1 -0
- package/dist/runtime/orchestrate.js +5 -1
- package/dist/runtime/orchestrate.js.map +1 -1
- package/dist/serve.js +49 -1
- package/dist/serve.js.map +1 -1
- package/dist/system-prompt.js +25 -21
- package/dist/system-prompt.js.map +1 -1
- package/dist/telegram/wizards.js +20 -19
- package/dist/telegram/wizards.js.map +1 -1
- package/dist/workspace.js +142 -0
- package/dist/workspace.js.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -42,26 +42,25 @@ Powered by <a href="https://platform.claude.com/docs/en/agent-sdk/overview">Clau
|
|
|
42
42
|
- [Configuration](#configuration)
|
|
43
43
|
- [Architecture](#architecture)
|
|
44
44
|
- [Documentation](#documentation)
|
|
45
|
-
- [Roadmap](#roadmap)
|
|
46
45
|
- [License](#license)
|
|
47
46
|
|
|
48
47
|
<br>
|
|
49
48
|
|
|
50
49
|
## Quick Start
|
|
51
50
|
|
|
52
|
-
**
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
51
|
+
> **Requirements:** Node.js 23+
|
|
52
|
+
|
|
53
|
+
| Install | Setup & Run | Update |
|
|
54
|
+
|:--------|:------------|:-------|
|
|
55
|
+
| `npm i -g camelagi` | `camel setup` | `camel update` |
|
|
56
56
|
|
|
57
|
-
**Setup & Run**
|
|
58
57
|
```bash
|
|
59
|
-
camel
|
|
60
|
-
camel serve
|
|
61
|
-
camel chat
|
|
58
|
+
camel setup # First-time setup: API key, Telegram bot, provider
|
|
59
|
+
camel serve # Start the gateway server
|
|
60
|
+
camel chat # Terminal UI
|
|
62
61
|
```
|
|
63
62
|
|
|
64
|
-
|
|
63
|
+
After setup, use `/newagent` in Telegram to create your first AI agent.
|
|
65
64
|
|
|
66
65
|
<br>
|
|
67
66
|
|
|
@@ -346,16 +345,6 @@ Feature docs cover: [agent system](featuresDocs/agent-system.md), [memory](featu
|
|
|
346
345
|
|
|
347
346
|
<br>
|
|
348
347
|
|
|
349
|
-
## Roadmap
|
|
350
|
-
|
|
351
|
-
| | Feature | Description |
|
|
352
|
-
|---|---|---|
|
|
353
|
-
| 📡 | **More Channels** | WhatsApp, Slack — connect your AI agents to every platform your team already uses |
|
|
354
|
-
| 🧩 | **ClawHub Skills** | Browse and install community skills from [clawhub.io](https://clawhub.io) — one command to add new capabilities |
|
|
355
|
-
| 🏢 | **Business Ready** | Deploy for your business — finance, operations, customer support. AI agents that understand your workflows |
|
|
356
|
-
|
|
357
|
-
<br>
|
|
358
|
-
|
|
359
348
|
## License
|
|
360
349
|
|
|
361
350
|
MIT
|
package/dist/cli/cmd-agents.js
CHANGED
|
@@ -162,23 +162,43 @@ async function configureAgent(p, config, agentId) {
|
|
|
162
162
|
if (p.isCancel(token))
|
|
163
163
|
return;
|
|
164
164
|
if (!token) {
|
|
165
|
-
// Remove telegram config
|
|
166
165
|
const { telegram: _, ...rest } = agent;
|
|
167
166
|
agents[agentId] = rest;
|
|
167
|
+
saveConfig({ agents });
|
|
168
|
+
p.log.success("Telegram removed");
|
|
168
169
|
}
|
|
169
170
|
else {
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
171
|
+
// Verify the token
|
|
172
|
+
const sv = p.spinner();
|
|
173
|
+
sv.start("Verifying token...");
|
|
174
|
+
try {
|
|
175
|
+
const res = await fetch(`https://api.telegram.org/bot${token}/getMe`, { signal: AbortSignal.timeout(10000) });
|
|
176
|
+
const data = await res.json();
|
|
177
|
+
if (!data.ok) {
|
|
178
|
+
sv.stop("Invalid token");
|
|
179
|
+
p.log.error("Token rejected by Telegram. Check it in @BotFather.");
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
const botName = data.result?.username ?? data.result?.first_name ?? "bot";
|
|
183
|
+
sv.stop(`Verified: @${botName}`);
|
|
184
|
+
agents[agentId] = {
|
|
185
|
+
...agent,
|
|
186
|
+
telegram: {
|
|
187
|
+
botToken: token,
|
|
188
|
+
allowedUsers: agent.telegram?.allowedUsers ?? [],
|
|
189
|
+
briefMode: agent.telegram?.briefMode ?? true,
|
|
190
|
+
groups: agent.telegram?.groups ?? { mentionOnly: true },
|
|
191
|
+
},
|
|
192
|
+
};
|
|
193
|
+
saveConfig({ agents });
|
|
194
|
+
p.log.success(`Telegram configured (@${botName})`);
|
|
195
|
+
p.log.info("Restart the server to activate: camel serve");
|
|
196
|
+
}
|
|
197
|
+
catch (err) {
|
|
198
|
+
sv.stop("Failed");
|
|
199
|
+
p.log.error(`Could not verify token: ${err instanceof Error ? err.message : err}`);
|
|
200
|
+
}
|
|
179
201
|
}
|
|
180
|
-
saveConfig({ agents });
|
|
181
|
-
p.log.success(token ? "Telegram configured" : "Telegram removed");
|
|
182
202
|
break;
|
|
183
203
|
}
|
|
184
204
|
case "remove": {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmd-agents.js","sourceRoot":"","sources":["../../src/cli/cmd-agents.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cmd-agents.js","sourceRoot":"","sources":["../../src/cli/cmd-agents.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
// camel connect — connect TUI to a remote CamelAGI gateway
|
|
2
|
+
import { register } from "./registry.js";
|
|
3
|
+
import { getFlag } from "./parse.js";
|
|
4
|
+
register({
|
|
5
|
+
name: "connect",
|
|
6
|
+
description: "Connect to a remote gateway",
|
|
7
|
+
usage: `Usage: camelagi connect <url> [options]
|
|
8
|
+
|
|
9
|
+
Connect the TUI to a remote CamelAGI gateway.
|
|
10
|
+
|
|
11
|
+
Arguments:
|
|
12
|
+
<url> Gateway URL (e.g. ws://192.168.1.10:18305, wss://my-mac.ts.net)
|
|
13
|
+
|
|
14
|
+
Options:
|
|
15
|
+
--token <token> Auth token (or set CAMELAGI_TOKEN env var)
|
|
16
|
+
--session <id> Resume a specific session
|
|
17
|
+
|
|
18
|
+
Remote access options:
|
|
19
|
+
1. Tailscale Serve — private tailnet HTTPS (recommended)
|
|
20
|
+
camelagi connect wss://my-mac.tailnet.ts.net
|
|
21
|
+
|
|
22
|
+
2. Direct with token — LAN only
|
|
23
|
+
camelagi connect ws://192.168.1.10:18305 --token <token>
|
|
24
|
+
|
|
25
|
+
3. SSH tunnel — forward port, then connect as localhost
|
|
26
|
+
ssh -N -L 18305:127.0.0.1:18305 user@server
|
|
27
|
+
camelagi chat
|
|
28
|
+
|
|
29
|
+
Examples:
|
|
30
|
+
camelagi connect ws://192.168.1.10:18305 --token my-secret
|
|
31
|
+
camelagi connect wss://my-mac.tailnet.ts.net
|
|
32
|
+
camelagi connect 192.168.1.10:18305 --token my-secret`,
|
|
33
|
+
run: async (args) => {
|
|
34
|
+
const rawUrl = args.find((a) => !a.startsWith("--"));
|
|
35
|
+
if (!rawUrl) {
|
|
36
|
+
console.error("Error: URL is required.\n");
|
|
37
|
+
console.error("Usage: camelagi connect <url> [--token <token>] [--session <id>]");
|
|
38
|
+
process.exit(1);
|
|
39
|
+
}
|
|
40
|
+
// Normalize URL to ws:// or wss://
|
|
41
|
+
let wsUrl;
|
|
42
|
+
if (rawUrl.startsWith("ws://") || rawUrl.startsWith("wss://")) {
|
|
43
|
+
wsUrl = rawUrl;
|
|
44
|
+
}
|
|
45
|
+
else if (rawUrl.startsWith("http://")) {
|
|
46
|
+
wsUrl = rawUrl.replace("http://", "ws://");
|
|
47
|
+
}
|
|
48
|
+
else if (rawUrl.startsWith("https://")) {
|
|
49
|
+
wsUrl = rawUrl.replace("https://", "wss://");
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
wsUrl = `ws://${rawUrl}`;
|
|
53
|
+
}
|
|
54
|
+
const token = getFlag(args, "--token") ?? process.env.CAMELAGI_TOKEN;
|
|
55
|
+
const sessionId = getFlag(args, "--session");
|
|
56
|
+
// Build HTTP URL for health check
|
|
57
|
+
const httpUrl = wsUrl
|
|
58
|
+
.replace(/^ws:\/\//, "http://")
|
|
59
|
+
.replace(/^wss:\/\//, "https://");
|
|
60
|
+
// Health check — verify gateway is reachable
|
|
61
|
+
try {
|
|
62
|
+
const headers = {};
|
|
63
|
+
if (token)
|
|
64
|
+
headers["Authorization"] = `Bearer ${token}`;
|
|
65
|
+
const res = await fetch(`${httpUrl}/health`, {
|
|
66
|
+
headers,
|
|
67
|
+
signal: AbortSignal.timeout(5000),
|
|
68
|
+
});
|
|
69
|
+
if (!res.ok) {
|
|
70
|
+
console.error(`Error: Gateway returned ${res.status}. Check URL and token.`);
|
|
71
|
+
process.exit(1);
|
|
72
|
+
}
|
|
73
|
+
console.log(` Connected to ${httpUrl}`);
|
|
74
|
+
}
|
|
75
|
+
catch (err) {
|
|
76
|
+
console.error(`Error: Cannot reach gateway at ${httpUrl}/health`);
|
|
77
|
+
console.error(` ${err instanceof Error ? err.message : String(err)}`);
|
|
78
|
+
process.exit(1);
|
|
79
|
+
}
|
|
80
|
+
// Append token as query param (gateway supports ?token=xxx for WebSocket auth)
|
|
81
|
+
if (token) {
|
|
82
|
+
const sep = wsUrl.includes("?") ? "&" : "?";
|
|
83
|
+
wsUrl = `${wsUrl}${sep}token=${encodeURIComponent(token)}`;
|
|
84
|
+
}
|
|
85
|
+
const { runTui } = await import("../tui/tui.js");
|
|
86
|
+
await runTui({ session: sessionId, wsUrl });
|
|
87
|
+
},
|
|
88
|
+
});
|
|
89
|
+
//# sourceMappingURL=cmd-connect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cmd-connect.js","sourceRoot":"","sources":["../../src/cli/cmd-connect.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/cmd-reset.js
CHANGED
|
@@ -31,7 +31,7 @@ Examples:
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
fs.rmSync(configDir, { recursive: true, force: true });
|
|
34
|
-
p.log.success("~/.camelagi deleted. Run \x1b[
|
|
34
|
+
p.log.success("~/.camelagi deleted. Run \x1b[36mcamel setup\x1b[0m to start fresh.");
|
|
35
35
|
},
|
|
36
36
|
});
|
|
37
37
|
//# sourceMappingURL=cmd-reset.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmd-reset.js","sourceRoot":"","sources":["../../src/cli/cmd-reset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,QAAQ,CAAC;IACP,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,mDAAmD;IAChE,KAAK,EAAE;;;;;;;;;2BASkB;IACzB,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAClB,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACzC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;QAEnC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAElC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;YAClE,OAAO;QACT,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC;YAChC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;YAC7E,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;YACzD,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBAC1B,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBACvB,OAAO;YACT,CAAC;QACH,CAAC;QAED,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"cmd-reset.js","sourceRoot":"","sources":["../../src/cli/cmd-reset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,QAAQ,CAAC;IACP,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,mDAAmD;IAChE,KAAK,EAAE;;;;;;;;;2BASkB;IACzB,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAClB,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACzC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;QAEnC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAElC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;YAClE,OAAO;QACT,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC;YAChC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;YAC7E,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;YACzD,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBAC1B,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBACvB,OAAO;YACT,CAAC;QACH,CAAC;QAED,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,qEAAqE,CAAC,CAAC;IACvF,CAAC;CACF,CAAC,CAAC"}
|
package/dist/cli/cmd-serve.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { register } from "./registry.js";
|
|
2
|
-
import { getFlagInt } from "./parse.js";
|
|
2
|
+
import { getFlag, getFlagInt } from "./parse.js";
|
|
3
3
|
register({
|
|
4
4
|
name: "serve",
|
|
5
5
|
description: "Start gateway server",
|
|
@@ -8,12 +8,27 @@ register({
|
|
|
8
8
|
Start the gateway server (Express + WebSocket).
|
|
9
9
|
|
|
10
10
|
Options:
|
|
11
|
-
--port <number>
|
|
11
|
+
--port <number> Port to listen on (1-65535, default: from config)
|
|
12
|
+
--host <address> Host to bind to (default: from config, typically 127.0.0.1)
|
|
13
|
+
Use 0.0.0.0 for remote access
|
|
14
|
+
--generate-token Generate a random auth token, save to config, and exit
|
|
12
15
|
|
|
13
16
|
Examples:
|
|
14
17
|
camelagi serve
|
|
15
|
-
camelagi serve --port 3000
|
|
18
|
+
camelagi serve --port 3000 --host 0.0.0.0
|
|
19
|
+
camelagi serve --generate-token`,
|
|
16
20
|
run: async (args) => {
|
|
21
|
+
// --generate-token: create and save a random token, then exit
|
|
22
|
+
if (args.includes("--generate-token")) {
|
|
23
|
+
const { randomBytes } = await import("node:crypto");
|
|
24
|
+
const { saveConfig } = await import("../core/config.js");
|
|
25
|
+
const token = randomBytes(32).toString("hex");
|
|
26
|
+
saveConfig({ serve: { token } });
|
|
27
|
+
console.log(`\n Token generated and saved to config:\n`);
|
|
28
|
+
console.log(` \x1b[36m${token}\x1b[0m\n`);
|
|
29
|
+
console.log(` Set this on your client: CAMELAGI_TOKEN=${token}\n`);
|
|
30
|
+
process.exit(0);
|
|
31
|
+
}
|
|
17
32
|
let port;
|
|
18
33
|
try {
|
|
19
34
|
port = getFlagInt(args, "--port", 1, 65535);
|
|
@@ -22,8 +37,9 @@ Examples:
|
|
|
22
37
|
console.error(`Error: ${err instanceof Error ? err.message : String(err)}`);
|
|
23
38
|
process.exit(1);
|
|
24
39
|
}
|
|
40
|
+
const host = getFlag(args, "--host");
|
|
25
41
|
const { startServer } = await import("../serve.js");
|
|
26
|
-
await startServer({ port, cron: true, boot: true });
|
|
42
|
+
await startServer({ port, host, cron: true, boot: true });
|
|
27
43
|
// startServer keeps the process alive
|
|
28
44
|
},
|
|
29
45
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmd-serve.js","sourceRoot":"","sources":["../../src/cli/cmd-serve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"cmd-serve.js","sourceRoot":"","sources":["../../src/cli/cmd-serve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEjD,QAAQ,CAAC;IACP,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,sBAAsB;IACnC,KAAK,EAAE;;;;;;;;;;;;;kCAayB;IAChC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAClB,8DAA8D;QAC9D,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACtC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;YACpD,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;YACzD,MAAM,KAAK,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC9C,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;YAC1D,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,WAAW,CAAC,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,6CAA6C,KAAK,IAAI,CAAC,CAAC;YACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,IAAwB,CAAC;QAC7B,IAAI,CAAC;YACH,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAErC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QACpD,MAAM,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,sCAAsC;IACxC,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -66,11 +66,11 @@ Examples:
|
|
|
66
66
|
// Unlink global CLI
|
|
67
67
|
if (!keepCli) {
|
|
68
68
|
try {
|
|
69
|
-
execSync("npm
|
|
70
|
-
p.log.success("Global CLI
|
|
69
|
+
execSync("npm uninstall -g camelagi 2>/dev/null", { stdio: "ignore" });
|
|
70
|
+
p.log.success("Global CLI removed");
|
|
71
71
|
}
|
|
72
72
|
catch {
|
|
73
|
-
p.log.warn("Could not
|
|
73
|
+
p.log.warn("Could not remove global CLI \u2014 run: npm uninstall -g camelagi");
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
76
|
p.outro("CamelAGI removed. Thanks for trying it out!");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmd-uninstall.js","sourceRoot":"","sources":["../../src/cli/cmd-uninstall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,QAAQ,CAAC;IACP,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,uDAAuD;IACpE,KAAK,EAAE;;;;;;;;;;+BAUsB;IAC7B,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAClB,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACzC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;QACnC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;QACxD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;QAE/C,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAClC,MAAM,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAE5C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,CAAC,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;YAC7C,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;YACnE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,CAAC,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAE7C,4BAA4B;QAC5B,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,KAAa,EAAE,EAAE;YAC3C,MAAM,IAAI,GAAG,GAAG,SAAS,IAAI,GAAG,EAAE,CAAC;YACnC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC,CAAC;QACF,KAAK,CAAC,aAAa,EAAE,sBAAsB,CAAC,CAAC;QAC7C,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC9B,KAAK,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QACvC,KAAK,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAC7B,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACtB,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC5B,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAE1B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC;YAChC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,CAAC;YAC9D,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBAC1B,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBACvB,OAAO;YACT,CAAC;QACH,CAAC;QAED,cAAc;QACd,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QAErC,oBAAoB;QACpB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC;gBACH,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"cmd-uninstall.js","sourceRoot":"","sources":["../../src/cli/cmd-uninstall.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/cmd-update.js
CHANGED
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
// CLI command: camel update — update via npm
|
|
2
2
|
import { register } from "./registry.js";
|
|
3
3
|
import { VERSION } from "../core/version.js";
|
|
4
|
-
import {
|
|
4
|
+
import { exec } from "node:child_process";
|
|
5
|
+
function run(cmd) {
|
|
6
|
+
return new Promise((resolve, reject) => {
|
|
7
|
+
exec(cmd, { encoding: "utf-8" }, (err, stdout) => {
|
|
8
|
+
if (err)
|
|
9
|
+
reject(err);
|
|
10
|
+
else
|
|
11
|
+
resolve(stdout.trim());
|
|
12
|
+
});
|
|
13
|
+
});
|
|
14
|
+
}
|
|
5
15
|
register({
|
|
6
16
|
name: "update",
|
|
7
17
|
description: "Update CamelAGI to the latest version",
|
|
@@ -11,10 +21,9 @@ register({
|
|
|
11
21
|
p.log.info(`Current version: ${VERSION}`);
|
|
12
22
|
const s = p.spinner();
|
|
13
23
|
s.start("Checking for updates...");
|
|
14
|
-
// Check latest version on npm
|
|
15
24
|
let latest;
|
|
16
25
|
try {
|
|
17
|
-
latest =
|
|
26
|
+
latest = await run("npm view camelagi version");
|
|
18
27
|
}
|
|
19
28
|
catch (err) {
|
|
20
29
|
s.stop("Failed");
|
|
@@ -31,8 +40,8 @@ register({
|
|
|
31
40
|
const s2 = p.spinner();
|
|
32
41
|
s2.start(`Installing v${latest}...`);
|
|
33
42
|
try {
|
|
34
|
-
|
|
35
|
-
s2.stop(
|
|
43
|
+
await run("npm i -g camelagi@latest");
|
|
44
|
+
s2.stop(`Installed v${latest}`);
|
|
36
45
|
}
|
|
37
46
|
catch (err) {
|
|
38
47
|
s2.stop("Install failed");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmd-update.js","sourceRoot":"","sources":["../../src/cli/cmd-update.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"cmd-update.js","sourceRoot":"","sources":["../../src/cli/cmd-update.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE1C,SAAS,GAAG,CAAC,GAAW;IACtB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YAC/C,IAAI,GAAG;gBAAE,MAAM,CAAC,GAAG,CAAC,CAAC;;gBAChB,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,QAAQ,CAAC;IACP,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,uCAAuC;IACpD,GAAG,EAAE,KAAK,IAAI,EAAE;QACd,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAEzC,CAAC,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAC1C,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;QAE1C,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QACtB,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAEnC,IAAI,MAAc,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,GAAG,CAAC,2BAA2B,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,wBAAwB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YAChF,OAAO;QACT,CAAC;QAED,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACvB,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACrB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,8BAA8B,OAAO,GAAG,CAAC,CAAC;YACxD,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACZ,OAAO;QACT,CAAC;QAED,CAAC,CAAC,IAAI,CAAC,0BAA0B,OAAO,MAAM,MAAM,EAAE,CAAC,CAAC;QAExD,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QACvB,EAAE,CAAC,KAAK,CAAC,eAAe,MAAM,KAAK,CAAC,CAAC;QAErC,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,0BAA0B,CAAC,CAAC;YACtC,EAAE,CAAC,IAAI,CAAC,cAAc,MAAM,EAAE,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC1B,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YAC3D,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;YACrD,OAAO;QACT,CAAC;QAED,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,OAAO,MAAM,MAAM,EAAE,CAAC,CAAC;QACjD,CAAC,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;IAChE,CAAC;CACF,CAAC,CAAC"}
|
package/dist/cli.js
CHANGED
|
@@ -18,11 +18,11 @@ import "./cli/cmd-soul.js";
|
|
|
18
18
|
import "./cli/cmd-sessions.js";
|
|
19
19
|
import "./cli/cmd-chat.js";
|
|
20
20
|
import "./cli/cmd-pairing.js";
|
|
21
|
-
import "./cli/cmd-install.js";
|
|
22
21
|
import "./cli/cmd-uninstall.js";
|
|
23
22
|
import "./cli/cmd-update.js";
|
|
24
23
|
import "./cli/cmd-bootstrap.js";
|
|
25
24
|
import "./cli/cmd-status.js";
|
|
25
|
+
import "./cli/cmd-connect.js";
|
|
26
26
|
const args = process.argv.slice(2);
|
|
27
27
|
// Non-blocking update check on every invocation
|
|
28
28
|
printUpdateNotice();
|
|
@@ -45,7 +45,7 @@ if (args[0] === "--help" || args[0] === "-h" || args.length === 0) {
|
|
|
45
45
|
};
|
|
46
46
|
const categorize = {
|
|
47
47
|
bootstrap: "Getting Started", setup: "Getting Started", chat: "Getting Started",
|
|
48
|
-
serve: "Server", daemon: "Server", logs: "Server", status: "Server",
|
|
48
|
+
serve: "Server", daemon: "Server", logs: "Server", status: "Server", connect: "Server",
|
|
49
49
|
agents: "Agents & Sessions", soul: "Agents & Sessions", sessions: "Agents & Sessions", pairing: "Agents & Sessions",
|
|
50
50
|
config: "Configuration", cron: "Configuration",
|
|
51
51
|
doctor: "Maintenance", reset: "Maintenance", install: "Maintenance", uninstall: "Maintenance",
|
|
@@ -85,37 +85,70 @@ if (cmd) {
|
|
|
85
85
|
await cmd.run(args.slice(1));
|
|
86
86
|
}
|
|
87
87
|
else if (args[0] && !args[0].startsWith("-")) {
|
|
88
|
-
// camelagi "your message" — one-shot mode
|
|
88
|
+
// camelagi "your message" — one-shot mode
|
|
89
89
|
const message = args.join(" ");
|
|
90
|
-
|
|
91
|
-
const
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
90
|
+
// Remote one-shot: if CAMELAGI_REMOTE_URL is set, send to remote gateway
|
|
91
|
+
const remoteUrl = process.env.CAMELAGI_REMOTE_URL;
|
|
92
|
+
if (remoteUrl) {
|
|
93
|
+
const token = process.env.CAMELAGI_TOKEN;
|
|
94
|
+
const headers = { "Content-Type": "application/json" };
|
|
95
|
+
if (token)
|
|
96
|
+
headers["Authorization"] = `Bearer ${token}`;
|
|
97
|
+
const baseUrl = remoteUrl
|
|
98
|
+
.replace(/^ws:\/\//, "http://")
|
|
99
|
+
.replace(/^wss:\/\//, "https://");
|
|
100
|
+
try {
|
|
101
|
+
const res = await fetch(`${baseUrl}/chat`, {
|
|
102
|
+
method: "POST",
|
|
103
|
+
headers,
|
|
104
|
+
body: JSON.stringify({ message, session: `oneshot-${Date.now()}` }),
|
|
105
|
+
});
|
|
106
|
+
const data = await res.json();
|
|
107
|
+
if (res.ok) {
|
|
108
|
+
console.log(data.response);
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
console.error(`Error: ${data.error}`);
|
|
112
|
+
process.exit(1);
|
|
113
|
+
}
|
|
107
114
|
}
|
|
108
|
-
|
|
109
|
-
console.error(`Error: ${
|
|
115
|
+
catch (err) {
|
|
116
|
+
console.error(`Error: ${err instanceof Error ? err.message : String(err)}`);
|
|
110
117
|
process.exit(1);
|
|
111
118
|
}
|
|
112
119
|
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
120
|
+
else {
|
|
121
|
+
// Local one-shot: spin up embedded gateway
|
|
122
|
+
const { startServer } = await import("./serve.js");
|
|
123
|
+
const handle = await startServer({
|
|
124
|
+
port: 0,
|
|
125
|
+
silent: true,
|
|
126
|
+
channels: false,
|
|
127
|
+
boot: false,
|
|
128
|
+
cron: false,
|
|
129
|
+
});
|
|
130
|
+
try {
|
|
131
|
+
const res = await fetch(`http://127.0.0.1:${handle.port}/chat`, {
|
|
132
|
+
method: "POST",
|
|
133
|
+
headers: { "Content-Type": "application/json" },
|
|
134
|
+
body: JSON.stringify({ message, session: `oneshot-${Date.now()}` }),
|
|
135
|
+
});
|
|
136
|
+
const data = await res.json();
|
|
137
|
+
if (res.ok) {
|
|
138
|
+
console.log(data.response);
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
console.error(`Error: ${data.error}`);
|
|
142
|
+
process.exit(1);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
catch (err) {
|
|
146
|
+
console.error(`Error: ${err instanceof Error ? err.message : String(err)}`);
|
|
147
|
+
process.exit(1);
|
|
148
|
+
}
|
|
149
|
+
finally {
|
|
150
|
+
await handle.close();
|
|
151
|
+
}
|
|
119
152
|
}
|
|
120
153
|
}
|
|
121
154
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,4CAA4C;AAC5C,wDAAwD;AAExD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,8CAA8C;AAC9C,OAAO,oBAAoB,CAAC;AAC5B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,mBAAmB,CAAC;AAC3B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,mBAAmB,CAAC;AAC3B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,mBAAmB,CAAC;AAC3B,OAAO,uBAAuB,CAAC;AAC/B,OAAO,mBAAmB,CAAC;AAC3B,OAAO,sBAAsB,CAAC;AAC9B,OAAO,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/core/config.js
CHANGED
|
@@ -21,14 +21,15 @@ const schema = z.object({
|
|
|
21
21
|
maxTurns: z.number().default(25),
|
|
22
22
|
timeoutSeconds: z.number().default(300),
|
|
23
23
|
serve: z.object({
|
|
24
|
-
port: z.number().default(
|
|
24
|
+
port: z.number().default(18305),
|
|
25
25
|
host: z.string().default("127.0.0.1"),
|
|
26
26
|
token: z.string().optional(),
|
|
27
27
|
rateLimit: z.object({
|
|
28
28
|
windowMs: z.number().default(60_000),
|
|
29
29
|
max: z.number().default(60),
|
|
30
30
|
}).default(() => ({ windowMs: 60_000, max: 60 })),
|
|
31
|
-
|
|
31
|
+
tailscale: z.enum(["off", "serve", "funnel"]).default("off"),
|
|
32
|
+
}).default(() => ({ port: 18305, host: "127.0.0.1", rateLimit: { windowMs: 60_000, max: 60 }, tailscale: "off" })),
|
|
32
33
|
telegram: z.object({
|
|
33
34
|
botToken: z.string().optional(),
|
|
34
35
|
allowedUsers: z.array(z.number()).default([]),
|
|
@@ -160,6 +161,11 @@ const schema = z.object({
|
|
|
160
161
|
}).optional(),
|
|
161
162
|
})).default(() => ({})),
|
|
162
163
|
boot: z.boolean().default(true),
|
|
164
|
+
heartbeat: z.object({
|
|
165
|
+
enabled: z.boolean().default(false),
|
|
166
|
+
interval: z.string().default("30m"),
|
|
167
|
+
prompt: z.string().default("Read HEARTBEAT.md in your workspace. Follow any tasks listed. If nothing needs attention, reply HEARTBEAT_OK."),
|
|
168
|
+
}).default(() => ({ enabled: false, interval: "30m", prompt: "Read HEARTBEAT.md in your workspace. Follow any tasks listed. If nothing needs attention, reply HEARTBEAT_OK." })),
|
|
163
169
|
cron: z.array(z.object({
|
|
164
170
|
id: z.string(),
|
|
165
171
|
name: z.string().default(""),
|