camelagi 0.5.49 → 0.5.50
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/dist/cli/cmd-chat.js
CHANGED
|
@@ -1,5 +1,40 @@
|
|
|
1
1
|
import { register } from "./registry.js";
|
|
2
2
|
import { getFlag } from "./parse.js";
|
|
3
|
+
import { spawn } from "node:child_process";
|
|
4
|
+
import { existsSync } from "node:fs";
|
|
5
|
+
import { join, dirname } from "node:path";
|
|
6
|
+
import { fileURLToPath } from "node:url";
|
|
7
|
+
function findBun() {
|
|
8
|
+
const candidates = [
|
|
9
|
+
join(process.env.HOME ?? "", ".bun/bin/bun"),
|
|
10
|
+
"/usr/local/bin/bun",
|
|
11
|
+
"/opt/homebrew/bin/bun",
|
|
12
|
+
];
|
|
13
|
+
for (const c of candidates)
|
|
14
|
+
if (existsSync(c))
|
|
15
|
+
return c;
|
|
16
|
+
const path = process.env.PATH ?? "";
|
|
17
|
+
for (const dir of path.split(":")) {
|
|
18
|
+
const cand = join(dir, "bun");
|
|
19
|
+
if (existsSync(cand))
|
|
20
|
+
return cand;
|
|
21
|
+
}
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
function findTuiEntry() {
|
|
25
|
+
const here = dirname(fileURLToPath(import.meta.url));
|
|
26
|
+
let cur = here;
|
|
27
|
+
for (let i = 0; i < 6; i++) {
|
|
28
|
+
const candidate = join(cur, "tui", "src", "main.tsx");
|
|
29
|
+
if (existsSync(candidate))
|
|
30
|
+
return candidate;
|
|
31
|
+
const parent = dirname(cur);
|
|
32
|
+
if (parent === cur)
|
|
33
|
+
break;
|
|
34
|
+
cur = parent;
|
|
35
|
+
}
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
3
38
|
register({
|
|
4
39
|
name: "chat",
|
|
5
40
|
description: "Interactive REPL",
|
|
@@ -9,12 +44,14 @@ Start the interactive TUI chat client.
|
|
|
9
44
|
|
|
10
45
|
Options:
|
|
11
46
|
--session <id> Resume a specific session
|
|
47
|
+
--classic Use the legacy pi-tui client
|
|
12
48
|
|
|
13
49
|
Examples:
|
|
14
50
|
camelagi chat
|
|
15
51
|
camelagi chat --session my-session`,
|
|
16
52
|
run: async (args) => {
|
|
17
53
|
const sessionId = getFlag(args, "--session");
|
|
54
|
+
const classic = args.includes("--classic");
|
|
18
55
|
const { startServer } = await import("../serve.js");
|
|
19
56
|
const handle = await startServer({
|
|
20
57
|
port: 0,
|
|
@@ -24,8 +61,38 @@ Examples:
|
|
|
24
61
|
cron: false,
|
|
25
62
|
});
|
|
26
63
|
const wsUrl = `ws://127.0.0.1:${handle.port}`;
|
|
27
|
-
const
|
|
28
|
-
|
|
64
|
+
const token = handle.config.serve.token;
|
|
65
|
+
// Try Bun TUI first (unless --classic)
|
|
66
|
+
const bunPath = !classic ? findBun() : undefined;
|
|
67
|
+
const tuiEntry = !classic ? findTuiEntry() : undefined;
|
|
68
|
+
if (bunPath && tuiEntry) {
|
|
69
|
+
const env = {
|
|
70
|
+
...process.env,
|
|
71
|
+
CAMELAGI_WS_URL: wsUrl,
|
|
72
|
+
CAMELAGI_MODEL: process.env.CAMELAGI_MODEL ?? "",
|
|
73
|
+
CAMELAGI_CWD: process.cwd(),
|
|
74
|
+
};
|
|
75
|
+
if (token)
|
|
76
|
+
env.CAMELAGI_TOKEN = token;
|
|
77
|
+
if (sessionId)
|
|
78
|
+
env.CAMELAGI_SESSION = sessionId;
|
|
79
|
+
const child = spawn(bunPath, [tuiEntry], {
|
|
80
|
+
stdio: "inherit",
|
|
81
|
+
env,
|
|
82
|
+
cwd: process.cwd(),
|
|
83
|
+
});
|
|
84
|
+
await new Promise((resolve) => {
|
|
85
|
+
child.on("exit", () => resolve());
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
// Fallback: legacy pi-tui
|
|
90
|
+
if (!classic && !bunPath) {
|
|
91
|
+
console.log(" Bun not found — using legacy TUI. Install Bun for the new UI: https://bun.sh");
|
|
92
|
+
}
|
|
93
|
+
const { runTui } = await import("../tui/tui.js");
|
|
94
|
+
await runTui({ session: sessionId, wsUrl });
|
|
95
|
+
}
|
|
29
96
|
await handle.close();
|
|
30
97
|
},
|
|
31
98
|
});
|
package/dist/cli/cmd-chat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmd-chat.js","sourceRoot":"","sources":["../../src/cli/cmd-chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"cmd-chat.js","sourceRoot":"","sources":["../../src/cli/cmd-chat.ts"],"names":[],"mappings":"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"}
|
package/dist/core/version.js
CHANGED
|
@@ -88,7 +88,7 @@ export async function orchestrate(opts) {
|
|
|
88
88
|
...(agentId ? { agentId } : {}),
|
|
89
89
|
sdk,
|
|
90
90
|
...(config.cursorApiKey ? { cursorApiKey: config.cursorApiKey } : {}),
|
|
91
|
-
...(agentId && (config.agents[agentId]?.adminTools
|
|
91
|
+
...(agentId && (config.agents[agentId]?.adminTools || config.agents[agentId]?.admin) ? {
|
|
92
92
|
adminDeps: { getSystemPrompt: () => agentSystemPrompt },
|
|
93
93
|
} : {}),
|
|
94
94
|
};
|
|
@@ -98,7 +98,7 @@ export async function setupAdminBot(agentId, botToken, getConfig, getSystemPromp
|
|
|
98
98
|
registerAdminAgents(b, agentId, getConfig, getSystemPrompt, activeBots);
|
|
99
99
|
// ─── Message handler: wizard text intercept + AI fallback ───────────
|
|
100
100
|
const agentCfg = getConfig().agents[agentId];
|
|
101
|
-
const adminToolsEnabled = agentCfg?.adminTools
|
|
101
|
+
const adminToolsEnabled = agentCfg?.adminTools || agentCfg?.admin || false;
|
|
102
102
|
b.catch((err) => {
|
|
103
103
|
console.error(`[admin-bot] Error:`, err.message ?? err);
|
|
104
104
|
});
|