camelagi 0.5.39 → 0.5.45
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 +159 -27
- package/dashboard/404.html +1 -0
- package/dashboard/__next.__PAGE__.txt +9 -0
- package/dashboard/__next._full.txt +19 -0
- package/dashboard/__next._head.txt +6 -0
- package/dashboard/__next._index.txt +5 -0
- package/dashboard/__next._tree.txt +3 -0
- package/dashboard/_next/_next/static/T-oVqD_b6KFHCZwRKsnRE/_buildManifest.js +11 -0
- package/dashboard/_next/_next/static/T-oVqD_b6KFHCZwRKsnRE/_clientMiddlewareManifest.js +1 -0
- package/dashboard/_next/_next/static/T-oVqD_b6KFHCZwRKsnRE/_ssgManifest.js +1 -0
- package/dashboard/_next/_next/static/chunks/0.9wqq91a2h.e.js +3 -0
- package/dashboard/_next/_next/static/chunks/00-nlsz4ud071.js +11 -0
- package/dashboard/_next/_next/static/chunks/00noe7du3vxk9.js +1 -0
- package/dashboard/_next/_next/static/chunks/03~yq9q893hmn.js +1 -0
- package/dashboard/_next/_next/static/chunks/04wr2uisy8870.js +5 -0
- package/dashboard/_next/_next/static/chunks/05f.w0h0j~.3g.js +1 -0
- package/dashboard/_next/_next/static/chunks/0geaa8~wrpcj6.js +1 -0
- package/dashboard/_next/_next/static/chunks/0nrlwe_~wde44.js +1 -0
- package/dashboard/_next/_next/static/chunks/12l48lp-434~..js +31 -0
- package/dashboard/_next/_next/static/chunks/14qcm-bqojrb9.js +1 -0
- package/dashboard/_next/_next/static/chunks/15~vsexhgsteo.js +1 -0
- package/dashboard/_next/_next/static/chunks/turbopack-173kubfog5kol.js +1 -0
- package/dashboard/_next/static/8Qf-y5Z4kUHAaWZgy3BFF/_buildManifest.js +11 -0
- package/dashboard/_next/static/8Qf-y5Z4kUHAaWZgy3BFF/_clientMiddlewareManifest.js +1 -0
- package/dashboard/_next/static/8Qf-y5Z4kUHAaWZgy3BFF/_ssgManifest.js +1 -0
- package/dashboard/_next/static/IQ8CU45QQ3REnyUqiqjou/_buildManifest.js +11 -0
- package/dashboard/_next/static/IQ8CU45QQ3REnyUqiqjou/_clientMiddlewareManifest.js +1 -0
- package/dashboard/_next/static/IQ8CU45QQ3REnyUqiqjou/_ssgManifest.js +1 -0
- package/dashboard/_next/static/PXgzS7j3kuwIb14Ph3vgL/_buildManifest.js +11 -0
- package/dashboard/_next/static/PXgzS7j3kuwIb14Ph3vgL/_clientMiddlewareManifest.js +1 -0
- package/dashboard/_next/static/PXgzS7j3kuwIb14Ph3vgL/_ssgManifest.js +1 -0
- package/dashboard/_next/static/S6BdJ1Ro25a6twuts7gHi/_buildManifest.js +11 -0
- package/dashboard/_next/static/S6BdJ1Ro25a6twuts7gHi/_clientMiddlewareManifest.js +1 -0
- package/dashboard/_next/static/S6BdJ1Ro25a6twuts7gHi/_ssgManifest.js +1 -0
- package/dashboard/_next/static/T-oVqD_b6KFHCZwRKsnRE/_buildManifest.js +11 -0
- package/dashboard/_next/static/T-oVqD_b6KFHCZwRKsnRE/_clientMiddlewareManifest.js +1 -0
- package/dashboard/_next/static/T-oVqD_b6KFHCZwRKsnRE/_ssgManifest.js +1 -0
- package/dashboard/_next/static/bvUynE5XeBkbLQynmgHa8/_buildManifest.js +11 -0
- package/dashboard/_next/static/bvUynE5XeBkbLQynmgHa8/_clientMiddlewareManifest.js +1 -0
- package/dashboard/_next/static/bvUynE5XeBkbLQynmgHa8/_ssgManifest.js +1 -0
- package/dashboard/_next/static/chunks/0.9wqq91a2h.e.js +3 -0
- package/dashboard/_next/static/chunks/00-nlsz4ud071.js +11 -0
- package/dashboard/_next/static/chunks/00noe7du3vxk9.js +1 -0
- package/dashboard/_next/static/chunks/03~yq9q893hmn.js +1 -0
- package/dashboard/_next/static/chunks/04wr2uisy8870.js +5 -0
- package/dashboard/_next/static/chunks/05f.w0h0j~.3g.js +1 -0
- package/dashboard/_next/static/chunks/08ug0khjvhl6m.js +11 -0
- package/dashboard/_next/static/chunks/0d1s5w1cd08~7.js +11 -0
- package/dashboard/_next/static/chunks/0geaa8~wrpcj6.js +1 -0
- package/dashboard/_next/static/chunks/0lyajo4_yki3f.js +11 -0
- package/dashboard/_next/static/chunks/0nrlwe_~wde44.js +1 -0
- package/dashboard/_next/static/chunks/0pd15v2_1spxb.js +11 -0
- package/dashboard/_next/static/chunks/0vnhcfh7g1u6i.js +11 -0
- package/dashboard/_next/static/chunks/0ynuwcqa7w3o..css +2 -0
- package/dashboard/_next/static/chunks/11dfqgfbc8fk2.js +11 -0
- package/dashboard/_next/static/chunks/12l48lp-434~..js +31 -0
- package/dashboard/_next/static/chunks/14qcm-bqojrb9.js +1 -0
- package/dashboard/_next/static/chunks/15~vsexhgsteo.js +1 -0
- package/dashboard/_next/static/chunks/turbopack-173kubfog5kol.js +1 -0
- package/dashboard/_next/static/media/1bffadaabf893a1e-s.16ipb6fqu393i.woff2 +0 -0
- package/dashboard/_next/static/media/2bbe8d2671613f1f-s.067x_6k0k23tk.woff2 +0 -0
- package/dashboard/_next/static/media/2c55a0e60120577a-s.0bjc5tiuqdqro.woff2 +0 -0
- package/dashboard/_next/static/media/5476f68d60460930-s.0wxq9webf.ew4.woff2 +0 -0
- package/dashboard/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2 +0 -0
- package/dashboard/_next/static/media/9c72aa0f40e4eef8-s.0m6w47a4e5dy9.woff2 +0 -0
- package/dashboard/_next/static/media/ad66f9afd8947f86-s.11u06r12fd6v_.woff2 +0 -0
- package/dashboard/_next/static/media/favicon.0x3dzn~oxb6tn.ico +0 -0
- package/dashboard/_next/static/uQ6ZB7JlP8tE93mlzKtXM/_buildManifest.js +11 -0
- package/dashboard/_next/static/uQ6ZB7JlP8tE93mlzKtXM/_clientMiddlewareManifest.js +1 -0
- package/dashboard/_next/static/uQ6ZB7JlP8tE93mlzKtXM/_ssgManifest.js +1 -0
- package/dashboard/_not-found/__next._full.txt +16 -0
- package/dashboard/_not-found/__next._head.txt +6 -0
- package/dashboard/_not-found/__next._index.txt +5 -0
- package/dashboard/_not-found/__next._not-found.__PAGE__.txt +5 -0
- package/dashboard/_not-found/__next._not-found.txt +5 -0
- package/dashboard/_not-found/__next._tree.txt +2 -0
- package/dashboard/_not-found.html +1 -0
- package/dashboard/_not-found.txt +16 -0
- package/dashboard/favicon.ico +0 -0
- package/dashboard/file.svg +1 -0
- package/dashboard/globe.svg +1 -0
- package/dashboard/index.html +1 -0
- package/dashboard/index.txt +19 -0
- package/dashboard/next.svg +1 -0
- package/dashboard/vercel.svg +1 -0
- package/dashboard/window.svg +1 -0
- package/dist/agent/agent-cursor.js +138 -0
- package/dist/agent/agent-cursor.js.map +1 -0
- package/dist/agent/agent-sdk.js +71 -57
- package/dist/agent/agent-sdk.js.map +1 -1
- package/dist/agent/types.js +1 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/agent.js +11 -7
- package/dist/agent.js.map +1 -1
- package/dist/bootstrap.js +1 -1
- package/dist/bootstrap.js.map +1 -1
- package/dist/cli/cmd-config.js +1 -1
- package/dist/cli/cmd-config.js.map +1 -1
- package/dist/cli/cmd-dashboard.js +63 -0
- package/dist/cli/cmd-dashboard.js.map +1 -0
- package/dist/cli/cmd-pairing.js +1 -1
- package/dist/cli/cmd-pairing.js.map +1 -1
- package/dist/cli/cmd-projects.js +128 -0
- package/dist/cli/cmd-projects.js.map +1 -0
- package/dist/cli/cmd-team.js +587 -0
- package/dist/cli/cmd-team.js.map +1 -0
- package/dist/cli.js +2 -1
- package/dist/cli.js.map +1 -1
- package/dist/core/config.js +33 -48
- package/dist/core/config.js.map +1 -1
- package/dist/core/constants.js +2 -0
- package/dist/core/constants.js.map +1 -1
- package/dist/core/version.js +1 -1
- package/dist/extensions/bot-approval.js.map +1 -0
- package/dist/extensions/pairing.js.map +1 -0
- package/dist/extensions/team-coordinator.js +63 -0
- package/dist/extensions/team-coordinator.js.map +1 -0
- package/dist/gateway/csrf.js +1 -1
- package/dist/gateway/csrf.js.map +1 -1
- package/dist/gateway/routes.js +198 -95
- package/dist/gateway/routes.js.map +1 -1
- package/dist/gateway/ws-handler.js +200 -168
- package/dist/gateway/ws-handler.js.map +1 -1
- package/dist/gateway-entry.js +8 -2
- package/dist/gateway-entry.js.map +1 -1
- package/dist/model.js +5 -4
- package/dist/model.js.map +1 -1
- package/dist/runtime/orchestrate.js +19 -8
- package/dist/runtime/orchestrate.js.map +1 -1
- package/dist/serve.js +18 -3
- package/dist/serve.js.map +1 -1
- package/dist/session.js +14 -2
- package/dist/session.js.map +1 -1
- package/dist/setup.js +17 -2
- package/dist/setup.js.map +1 -1
- package/dist/team.js +203 -0
- package/dist/team.js.map +1 -0
- package/dist/telegram/admin-agents.js +498 -0
- package/dist/telegram/admin-agents.js.map +1 -0
- package/dist/telegram/admin-bot.js +13 -934
- package/dist/telegram/admin-bot.js.map +1 -1
- package/dist/telegram/admin-commands.js +403 -0
- package/dist/telegram/admin-commands.js.map +1 -0
- package/dist/telegram/agent-bot.js +45 -1338
- package/dist/telegram/agent-bot.js.map +1 -1
- package/dist/telegram/agent-claude-code.js +555 -0
- package/dist/telegram/agent-claude-code.js.map +1 -0
- package/dist/telegram/agent-commands.js +396 -0
- package/dist/telegram/agent-commands.js.map +1 -0
- package/dist/telegram/agent-context.js +136 -0
- package/dist/telegram/agent-context.js.map +1 -0
- package/dist/telegram/agent-messages.js +249 -0
- package/dist/telegram/agent-messages.js.map +1 -0
- package/dist/telegram/dir-browser.js +9 -0
- package/dist/telegram/dir-browser.js.map +1 -1
- package/dist/telegram/draft-stream.js +4 -2
- package/dist/telegram/draft-stream.js.map +1 -1
- package/dist/telegram/resolve.js +15 -28
- package/dist/telegram/resolve.js.map +1 -1
- package/dist/telegram/terminal.js +139 -32
- package/dist/telegram/terminal.js.map +1 -1
- package/dist/telegram/wizards.js +1 -1
- package/dist/telegram/wizards.js.map +1 -1
- package/dist/telegram.js +4 -3
- package/dist/telegram.js.map +1 -1
- package/dist/tools/admin.js +841 -0
- package/dist/tools/admin.js.map +1 -0
- package/dist/tools/team.js +182 -0
- package/dist/tools/team.js.map +1 -0
- package/dist/tui/commands.js +15 -0
- package/dist/tui/commands.js.map +1 -1
- package/dist/tui/components/welcome.js +2 -1
- package/dist/tui/components/welcome.js.map +1 -1
- package/dist/tui/tui.js +13 -1
- package/dist/tui/tui.js.map +1 -1
- package/package.json +4 -1
- package/dist/cli/cmd-install.js +0 -80
- package/dist/cli/cmd-install.js.map +0 -1
- package/dist/telegram/bot-approval.js.map +0 -1
- package/dist/telegram/pairing.js.map +0 -1
- /package/dist/{telegram → extensions}/bot-approval.js +0 -0
- /package/dist/{telegram → extensions}/pairing.js +0 -0
package/dist/gateway/routes.js
CHANGED
|
@@ -11,10 +11,21 @@ import { errorMessage } from "../core/errors.js";
|
|
|
11
11
|
import { submitDecision } from "../extensions/approvals.js";
|
|
12
12
|
import fs from "node:fs";
|
|
13
13
|
import path from "node:path";
|
|
14
|
-
import
|
|
15
|
-
import {
|
|
14
|
+
import os from "node:os";
|
|
15
|
+
import { listPendingRequests, approveRequest, denyRequest } from "../extensions/pairing.js";
|
|
16
|
+
import { listPendingBotApprovals, approveBotApproval, denyBotApproval } from "../extensions/bot-approval.js";
|
|
16
17
|
import { notifyUserApproved, notifyUserOfDenial } from "../telegram/pairing-notify.js";
|
|
17
18
|
import { checkAuth, logMessage } from "./state.js";
|
|
19
|
+
/** Express middleware that rejects unauthenticated requests with 401 */
|
|
20
|
+
function requireAuth(state) {
|
|
21
|
+
return (req, res, next) => {
|
|
22
|
+
if (!checkAuth(state, req.headers.authorization)) {
|
|
23
|
+
res.status(401).json({ error: "Unauthorized" });
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
next();
|
|
27
|
+
};
|
|
28
|
+
}
|
|
18
29
|
export function registerRoutes(app, state) {
|
|
19
30
|
app.get("/health", (req, res) => {
|
|
20
31
|
// When token is configured but request is unauthenticated, return minimal response
|
|
@@ -32,12 +43,9 @@ export function registerRoutes(app, state) {
|
|
|
32
43
|
tailscaleUrl: state.tailscaleUrl ?? null,
|
|
33
44
|
});
|
|
34
45
|
});
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
const { message, session } = req.body;
|
|
46
|
+
const auth = requireAuth(state);
|
|
47
|
+
app.post("/chat", auth, async (req, res) => {
|
|
48
|
+
const { message, session, sdk } = req.body;
|
|
41
49
|
if (!message || typeof message !== "string") {
|
|
42
50
|
res.status(400).json({ error: "message is required" });
|
|
43
51
|
return;
|
|
@@ -51,11 +59,12 @@ export function registerRoutes(app, state) {
|
|
|
51
59
|
config: state.config,
|
|
52
60
|
systemPrompt: state.systemPrompt,
|
|
53
61
|
client: state.client,
|
|
62
|
+
sdk: sdk,
|
|
54
63
|
});
|
|
55
64
|
if (result.response) {
|
|
56
65
|
logMessage(state, "http", "out", sid, result.response);
|
|
57
66
|
}
|
|
58
|
-
res.json({ response: result.response, session: sid });
|
|
67
|
+
res.json({ response: result.response, session: sid, sdk: result.sdk });
|
|
59
68
|
}
|
|
60
69
|
catch (err) {
|
|
61
70
|
logMessage(state, "http", "out", sid, `ERROR: ${errorMessage(err)}`);
|
|
@@ -63,35 +72,19 @@ export function registerRoutes(app, state) {
|
|
|
63
72
|
}
|
|
64
73
|
});
|
|
65
74
|
// Sessions
|
|
66
|
-
app.get("/sessions", (
|
|
67
|
-
if (!checkAuth(state, req.headers.authorization)) {
|
|
68
|
-
res.status(401).json({ error: "Unauthorized" });
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
75
|
+
app.get("/sessions", auth, (_req, res) => {
|
|
71
76
|
res.json(listSessions());
|
|
72
77
|
});
|
|
73
|
-
app.get("/sessions/:id/messages", (req, res) => {
|
|
74
|
-
if (!checkAuth(state, req.headers.authorization)) {
|
|
75
|
-
res.status(401).json({ error: "Unauthorized" });
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
+
app.get("/sessions/:id/messages", auth, (req, res) => {
|
|
78
79
|
const messages = loadMessages(req.params.id);
|
|
79
80
|
res.json(messages.map((m) => ({ role: m.role, content: m.content })));
|
|
80
81
|
});
|
|
81
|
-
app.delete("/sessions/:id", (req, res) => {
|
|
82
|
-
if (!checkAuth(state, req.headers.authorization)) {
|
|
83
|
-
res.status(401).json({ error: "Unauthorized" });
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
82
|
+
app.delete("/sessions/:id", auth, (req, res) => {
|
|
86
83
|
deleteSession(req.params.id);
|
|
87
84
|
res.json({ ok: true });
|
|
88
85
|
});
|
|
89
86
|
// Agents
|
|
90
|
-
app.get("/agents", async (
|
|
91
|
-
if (!checkAuth(state, req.headers.authorization)) {
|
|
92
|
-
res.status(401).json({ error: "Unauthorized" });
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
87
|
+
app.get("/agents", auth, async (_req, res) => {
|
|
95
88
|
let runningIds = [];
|
|
96
89
|
try {
|
|
97
90
|
const { getAllChannels } = await import("../channels/registry.js");
|
|
@@ -109,11 +102,7 @@ export function registerRoutes(app, state) {
|
|
|
109
102
|
}));
|
|
110
103
|
res.json(agents);
|
|
111
104
|
});
|
|
112
|
-
app.post("/agents", (req, res) => {
|
|
113
|
-
if (!checkAuth(state, req.headers.authorization)) {
|
|
114
|
-
res.status(401).json({ error: "Unauthorized" });
|
|
115
|
-
return;
|
|
116
|
-
}
|
|
105
|
+
app.post("/agents", auth, (req, res) => {
|
|
117
106
|
const { id, name, model, description, telegramToken, allowedUsers } = req.body;
|
|
118
107
|
if (!id || !name) {
|
|
119
108
|
res.status(400).json({ error: "id and name are required" });
|
|
@@ -135,11 +124,7 @@ export function registerRoutes(app, state) {
|
|
|
135
124
|
state.config = loadConfig();
|
|
136
125
|
res.status(201).json({ id, name, dir: agentMemoryDir(id) });
|
|
137
126
|
});
|
|
138
|
-
app.delete("/agents/:id", (req, res) => {
|
|
139
|
-
if (!checkAuth(state, req.headers.authorization)) {
|
|
140
|
-
res.status(401).json({ error: "Unauthorized" });
|
|
141
|
-
return;
|
|
142
|
-
}
|
|
127
|
+
app.delete("/agents/:id", auth, (req, res) => {
|
|
143
128
|
const { id } = req.params;
|
|
144
129
|
if (!state.config.agents[id]) {
|
|
145
130
|
res.status(404).json({ error: `Agent "${id}" not found` });
|
|
@@ -152,11 +137,7 @@ export function registerRoutes(app, state) {
|
|
|
152
137
|
res.json({ ok: true });
|
|
153
138
|
});
|
|
154
139
|
// SOUL.md
|
|
155
|
-
app.get("/agents/:id/soul", (req, res) => {
|
|
156
|
-
if (!checkAuth(state, req.headers.authorization)) {
|
|
157
|
-
res.status(401).json({ error: "Unauthorized" });
|
|
158
|
-
return;
|
|
159
|
-
}
|
|
140
|
+
app.get("/agents/:id/soul", auth, (req, res) => {
|
|
160
141
|
const { id } = req.params;
|
|
161
142
|
if (!state.config.agents[id]) {
|
|
162
143
|
res.status(404).json({ error: `Agent "${id}" not found` });
|
|
@@ -169,11 +150,7 @@ export function registerRoutes(app, state) {
|
|
|
169
150
|
}
|
|
170
151
|
res.json({ content: fs.readFileSync(soulPath, "utf-8") });
|
|
171
152
|
});
|
|
172
|
-
app.put("/agents/:id/soul", (req, res) => {
|
|
173
|
-
if (!checkAuth(state, req.headers.authorization)) {
|
|
174
|
-
res.status(401).json({ error: "Unauthorized" });
|
|
175
|
-
return;
|
|
176
|
-
}
|
|
153
|
+
app.put("/agents/:id/soul", auth, (req, res) => {
|
|
177
154
|
const { id } = req.params;
|
|
178
155
|
if (!state.config.agents[id]) {
|
|
179
156
|
res.status(404).json({ error: `Agent "${id}" not found` });
|
|
@@ -190,25 +167,22 @@ export function registerRoutes(app, state) {
|
|
|
190
167
|
res.json({ ok: true });
|
|
191
168
|
});
|
|
192
169
|
// Config
|
|
193
|
-
app.get("/config", (
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
170
|
+
app.get("/config", auth, (_req, res) => {
|
|
171
|
+
const safe = {
|
|
172
|
+
...state.config,
|
|
173
|
+
apiKey: state.config.apiKey ? `***${state.config.apiKey.slice(-4)}` : undefined,
|
|
174
|
+
cursorApiKey: state.config.cursorApiKey ? `***${state.config.cursorApiKey.slice(-4)}` : undefined,
|
|
175
|
+
};
|
|
199
176
|
res.json(safe);
|
|
200
177
|
});
|
|
201
|
-
app.patch("/config", (req, res) => {
|
|
202
|
-
if (!checkAuth(state, req.headers.authorization)) {
|
|
203
|
-
res.status(401).json({ error: "Unauthorized" });
|
|
204
|
-
return;
|
|
205
|
-
}
|
|
178
|
+
app.patch("/config", auth, (req, res) => {
|
|
206
179
|
const updates = req.body;
|
|
207
180
|
if (!updates || typeof updates !== "object") {
|
|
208
181
|
res.status(400).json({ error: "JSON body required" });
|
|
209
182
|
return;
|
|
210
183
|
}
|
|
211
184
|
delete updates.apiKey;
|
|
185
|
+
delete updates.cursorApiKey;
|
|
212
186
|
delete updates.serve;
|
|
213
187
|
saveConfig(updates);
|
|
214
188
|
state.config = loadConfig();
|
|
@@ -217,18 +191,10 @@ export function registerRoutes(app, state) {
|
|
|
217
191
|
res.json({ ok: true });
|
|
218
192
|
});
|
|
219
193
|
// Pairing
|
|
220
|
-
app.get("/pairing", (
|
|
221
|
-
if (!checkAuth(state, req.headers.authorization)) {
|
|
222
|
-
res.status(401).json({ error: "Unauthorized" });
|
|
223
|
-
return;
|
|
224
|
-
}
|
|
194
|
+
app.get("/pairing", auth, (_req, res) => {
|
|
225
195
|
res.json(listPendingRequests());
|
|
226
196
|
});
|
|
227
|
-
app.post("/pairing/:code/approve", async (req, res) => {
|
|
228
|
-
if (!checkAuth(state, req.headers.authorization)) {
|
|
229
|
-
res.status(401).json({ error: "Unauthorized" });
|
|
230
|
-
return;
|
|
231
|
-
}
|
|
197
|
+
app.post("/pairing/:code/approve", auth, async (req, res) => {
|
|
232
198
|
const request = approveRequest(req.params.code);
|
|
233
199
|
if (request) {
|
|
234
200
|
res.json({ ok: true, userId: request.userId, agentId: request.agentId });
|
|
@@ -243,11 +209,7 @@ export function registerRoutes(app, state) {
|
|
|
243
209
|
res.status(404).json({ error: "Request not found or expired" });
|
|
244
210
|
}
|
|
245
211
|
});
|
|
246
|
-
app.post("/pairing/:code/deny", async (req, res) => {
|
|
247
|
-
if (!checkAuth(state, req.headers.authorization)) {
|
|
248
|
-
res.status(401).json({ error: "Unauthorized" });
|
|
249
|
-
return;
|
|
250
|
-
}
|
|
212
|
+
app.post("/pairing/:code/deny", auth, async (req, res) => {
|
|
251
213
|
const request = denyRequest(req.params.code);
|
|
252
214
|
if (request) {
|
|
253
215
|
res.json({ ok: true });
|
|
@@ -263,18 +225,10 @@ export function registerRoutes(app, state) {
|
|
|
263
225
|
}
|
|
264
226
|
});
|
|
265
227
|
// Bot approvals
|
|
266
|
-
app.get("/bot-approvals", (
|
|
267
|
-
if (!checkAuth(state, req.headers.authorization)) {
|
|
268
|
-
res.status(401).json({ error: "Unauthorized" });
|
|
269
|
-
return;
|
|
270
|
-
}
|
|
228
|
+
app.get("/bot-approvals", auth, (_req, res) => {
|
|
271
229
|
res.json(listPendingBotApprovals());
|
|
272
230
|
});
|
|
273
|
-
app.post("/bot-approvals/:agentId/approve", async (req, res) => {
|
|
274
|
-
if (!checkAuth(state, req.headers.authorization)) {
|
|
275
|
-
res.status(401).json({ error: "Unauthorized" });
|
|
276
|
-
return;
|
|
277
|
-
}
|
|
231
|
+
app.post("/bot-approvals/:agentId/approve", auth, async (req, res) => {
|
|
278
232
|
const approval = approveBotApproval(req.params.agentId);
|
|
279
233
|
if (!approval) {
|
|
280
234
|
res.status(404).json({ error: "Approval not found" });
|
|
@@ -289,11 +243,7 @@ export function registerRoutes(app, state) {
|
|
|
289
243
|
res.status(500).json({ error: errorMessage(err) });
|
|
290
244
|
}
|
|
291
245
|
});
|
|
292
|
-
app.post("/bot-approvals/:agentId/deny", (req, res) => {
|
|
293
|
-
if (!checkAuth(state, req.headers.authorization)) {
|
|
294
|
-
res.status(401).json({ error: "Unauthorized" });
|
|
295
|
-
return;
|
|
296
|
-
}
|
|
246
|
+
app.post("/bot-approvals/:agentId/deny", auth, (req, res) => {
|
|
297
247
|
const approval = denyBotApproval(req.params.agentId);
|
|
298
248
|
if (approval) {
|
|
299
249
|
res.json({ ok: true });
|
|
@@ -303,11 +253,7 @@ export function registerRoutes(app, state) {
|
|
|
303
253
|
}
|
|
304
254
|
});
|
|
305
255
|
// Approvals
|
|
306
|
-
app.post("/approvals/:id/decide", (req, res) => {
|
|
307
|
-
if (!checkAuth(state, req.headers.authorization)) {
|
|
308
|
-
res.status(401).json({ error: "Unauthorized" });
|
|
309
|
-
return;
|
|
310
|
-
}
|
|
256
|
+
app.post("/approvals/:id/decide", auth, (req, res) => {
|
|
311
257
|
const { id } = req.params;
|
|
312
258
|
const { decision } = req.body;
|
|
313
259
|
if (!decision) {
|
|
@@ -317,5 +263,162 @@ export function registerRoutes(app, state) {
|
|
|
317
263
|
const resolved = submitDecision(id, decision);
|
|
318
264
|
res.json({ ok: resolved });
|
|
319
265
|
});
|
|
266
|
+
// ─── Agent workspace files ──────────────────────────────────────
|
|
267
|
+
app.get("/agents/:id/workspace/:file", auth, (req, res) => {
|
|
268
|
+
const { id, file } = req.params;
|
|
269
|
+
const allowed = ["SOUL.md", "TOOLS.md", "MEMORY.md", "HEARTBEAT.md"];
|
|
270
|
+
if (!allowed.includes(file))
|
|
271
|
+
return res.status(400).json({ error: "Invalid file" });
|
|
272
|
+
const filePath = path.join(agentMemoryDir(id), file);
|
|
273
|
+
const content = fs.existsSync(filePath) ? fs.readFileSync(filePath, "utf-8") : "";
|
|
274
|
+
res.json({ content });
|
|
275
|
+
});
|
|
276
|
+
app.put("/agents/:id/workspace/:file", auth, (req, res) => {
|
|
277
|
+
const { id, file } = req.params;
|
|
278
|
+
const allowed = ["SOUL.md", "TOOLS.md", "MEMORY.md", "HEARTBEAT.md"];
|
|
279
|
+
if (!allowed.includes(file))
|
|
280
|
+
return res.status(400).json({ error: "Invalid file" });
|
|
281
|
+
const { content } = req.body;
|
|
282
|
+
if (typeof content !== "string")
|
|
283
|
+
return res.status(400).json({ error: "content required" });
|
|
284
|
+
const filePath = path.join(agentMemoryDir(id), file);
|
|
285
|
+
fs.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
286
|
+
fs.writeFileSync(filePath, content);
|
|
287
|
+
res.json({ ok: true });
|
|
288
|
+
});
|
|
289
|
+
// Agent memory notes list
|
|
290
|
+
app.get("/agents/:id/memory", auth, (req, res) => {
|
|
291
|
+
const memDir = path.join(agentMemoryDir(req.params.id), "memory");
|
|
292
|
+
if (!fs.existsSync(memDir))
|
|
293
|
+
return res.json([]);
|
|
294
|
+
const files = fs.readdirSync(memDir).filter(f => f.endsWith(".md")).sort().reverse();
|
|
295
|
+
const notes = files.map(f => ({
|
|
296
|
+
name: f,
|
|
297
|
+
content: fs.readFileSync(path.join(memDir, f), "utf-8"),
|
|
298
|
+
size: fs.statSync(path.join(memDir, f)).size,
|
|
299
|
+
}));
|
|
300
|
+
res.json(notes);
|
|
301
|
+
});
|
|
302
|
+
// ─── Cron jobs ──────────────────────────────────────────────────
|
|
303
|
+
app.get("/cron", auth, async (_req, res) => {
|
|
304
|
+
const { getAllJobStatuses } = await import("../extensions/cron.js");
|
|
305
|
+
res.json(getAllJobStatuses());
|
|
306
|
+
});
|
|
307
|
+
// ─── Usage ──────────────────────────────────────────────────────
|
|
308
|
+
app.get("/usage/:sessionId", auth, async (req, res) => {
|
|
309
|
+
const { getSessionUsage } = await import("../usage.js");
|
|
310
|
+
const usage = getSessionUsage(req.params.sessionId);
|
|
311
|
+
res.json(usage);
|
|
312
|
+
});
|
|
313
|
+
// ─── Skills ─────────────────────────────────────────────────────
|
|
314
|
+
app.get("/skills", auth, async (_req, res) => {
|
|
315
|
+
const { listSkillNames } = await import("../extensions/skills.js");
|
|
316
|
+
const skills = listSkillNames();
|
|
317
|
+
res.json(skills);
|
|
318
|
+
});
|
|
319
|
+
// ─── Export ─────────────────────────────────────────────────────
|
|
320
|
+
app.get("/sessions/:id/export", auth, (req, res) => {
|
|
321
|
+
const messages = loadMessages(req.params.id);
|
|
322
|
+
const lines = messages.map(m => {
|
|
323
|
+
const prefix = m.role === "user" ? "**You:**" : m.role === "assistant" ? "**Assistant:**" : `**${m.role}:**`;
|
|
324
|
+
return `${prefix}\n\n${m.content}\n\n---\n`;
|
|
325
|
+
});
|
|
326
|
+
const md = `# Session: ${req.params.id}\n\n${lines.join("\n")}`;
|
|
327
|
+
res.setHeader("Content-Type", "text/markdown");
|
|
328
|
+
res.setHeader("Content-Disposition", `attachment; filename="${req.params.id}.md"`);
|
|
329
|
+
res.send(md);
|
|
330
|
+
});
|
|
331
|
+
// ─── MCP servers ────────────────────────────────────────────────
|
|
332
|
+
app.get("/mcp", auth, (_req, res) => {
|
|
333
|
+
const config = state.config;
|
|
334
|
+
const global = config.mcp?.servers ?? {};
|
|
335
|
+
const perAgent = {};
|
|
336
|
+
for (const [id, agent] of Object.entries(config.agents)) {
|
|
337
|
+
if (agent.mcp?.servers && Object.keys(agent.mcp.servers).length > 0) {
|
|
338
|
+
perAgent[id] = agent.mcp.servers;
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
res.json({ global, perAgent });
|
|
342
|
+
});
|
|
343
|
+
// ─── Clone agent ────────────────────────────────────────────────
|
|
344
|
+
app.post("/agents/:id/clone", auth, async (req, res) => {
|
|
345
|
+
const sourceId = req.params.id;
|
|
346
|
+
const { newId, newName } = req.body;
|
|
347
|
+
if (!newId || !newName)
|
|
348
|
+
return res.status(400).json({ error: "newId and newName required" });
|
|
349
|
+
const config = state.config;
|
|
350
|
+
const source = config.agents[sourceId];
|
|
351
|
+
if (!source)
|
|
352
|
+
return res.status(404).json({ error: "Source agent not found" });
|
|
353
|
+
if (config.agents[newId])
|
|
354
|
+
return res.status(409).json({ error: "Agent ID already exists" });
|
|
355
|
+
// Clone config (without telegram token)
|
|
356
|
+
const cloned = { ...source, name: newName };
|
|
357
|
+
delete cloned.telegram;
|
|
358
|
+
delete cloned.admin;
|
|
359
|
+
const agents = { ...config.agents, [newId]: cloned };
|
|
360
|
+
const { saveConfig: save } = await import("../core/config.js");
|
|
361
|
+
save({ agents });
|
|
362
|
+
// Clone workspace files
|
|
363
|
+
seedAgentWorkspace(newId, newName);
|
|
364
|
+
const sourceDir = agentMemoryDir(sourceId);
|
|
365
|
+
const destDir = agentMemoryDir(newId);
|
|
366
|
+
for (const file of ["SOUL.md", "TOOLS.md", "MEMORY.md", "HEARTBEAT.md"]) {
|
|
367
|
+
const src = path.join(sourceDir, file);
|
|
368
|
+
if (fs.existsSync(src)) {
|
|
369
|
+
fs.copyFileSync(src, path.join(destDir, file));
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
res.status(201).json({ id: newId, name: newName });
|
|
373
|
+
});
|
|
374
|
+
// ─── Channel status ─────────────────────────────────────────────
|
|
375
|
+
app.get("/channels", auth, (_req, res) => {
|
|
376
|
+
const config = state.config;
|
|
377
|
+
const channels = [];
|
|
378
|
+
for (const [id, agent] of Object.entries(config.agents)) {
|
|
379
|
+
if (agent.telegram?.botToken) {
|
|
380
|
+
channels.push({ id, name: agent.name, type: "telegram", running: true });
|
|
381
|
+
}
|
|
382
|
+
if (agent.discord?.botToken) {
|
|
383
|
+
channels.push({ id, name: agent.name, type: "discord", running: true });
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
res.json(channels);
|
|
387
|
+
});
|
|
388
|
+
// ─── Logs ───────────────────────────────────────────────────────
|
|
389
|
+
app.get("/logs", auth, (req, res) => {
|
|
390
|
+
const logDir = path.join(os.homedir(), ".camelagi", "logs");
|
|
391
|
+
const logFile = path.join(logDir, "requests.log");
|
|
392
|
+
if (!fs.existsSync(logFile))
|
|
393
|
+
return res.json([]);
|
|
394
|
+
const content = fs.readFileSync(logFile, "utf-8");
|
|
395
|
+
const lines = content.trim().split("\n").filter(Boolean).slice(-100);
|
|
396
|
+
res.json(lines);
|
|
397
|
+
});
|
|
398
|
+
// ─── Models ─────────────────────────────────────────────────────
|
|
399
|
+
app.get("/models", auth, async (_req, res) => {
|
|
400
|
+
const { resolvePreset, fetchOpenRouterModels } = await import("../core/models.js");
|
|
401
|
+
const preset = resolvePreset(state.config.provider, state.config.baseUrl);
|
|
402
|
+
let models = [...preset.models];
|
|
403
|
+
if (state.config.baseUrl?.includes("openrouter") && state.config.apiKey) {
|
|
404
|
+
const live = await fetchOpenRouterModels(state.config.apiKey);
|
|
405
|
+
if (live.length > 0) {
|
|
406
|
+
const presetSet = new Set(preset.models);
|
|
407
|
+
const rest = live.map(m => m.id).filter(id => !presetSet.has(id));
|
|
408
|
+
models = [...preset.models, ...rest];
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
res.json(models);
|
|
412
|
+
});
|
|
413
|
+
// ─── Pending approvals list ─────────────────────────────────────
|
|
414
|
+
app.get("/approvals/pending", auth, async (_req, res) => {
|
|
415
|
+
try {
|
|
416
|
+
const { pendingCount } = await import("../extensions/approvals.js");
|
|
417
|
+
res.json({ count: pendingCount() });
|
|
418
|
+
}
|
|
419
|
+
catch {
|
|
420
|
+
res.json({ count: 0 });
|
|
421
|
+
}
|
|
422
|
+
});
|
|
320
423
|
}
|
|
321
424
|
//# sourceMappingURL=routes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/gateway/routes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/gateway/routes.ts"],"names":[],"mappings":"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"}
|