hyperclaw 5.3.2 → 5.3.4
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/banner-BT9llPVP.js +7 -0
- package/dist/banner-CP4LeLsu.js +143 -0
- package/dist/banner-D14weGVJ.js +7 -0
- package/dist/banner-DNSYi9N-.js +143 -0
- package/dist/banner-mu7p6UkV.js +143 -0
- package/dist/banner-nRaqjrSN.js +7 -0
- package/dist/chat-BTJoZxtU.js +523 -0
- package/dist/chat-BYqxftlU.js +523 -0
- package/dist/chat-CKLXvJjd.js +545 -0
- package/dist/daemon-Bi0rcsh5.js +421 -0
- package/dist/daemon-BtQqCfEH.js +7 -0
- package/dist/daemon-DnWIgRUn.js +7 -0
- package/dist/daemon-WOoAWS-0.js +421 -0
- package/dist/engine-BZ44Vuhh.js +7 -0
- package/dist/engine-C1osvhmq.js +327 -0
- package/dist/engine-C88DJeLD.js +327 -0
- package/dist/engine-D9BvbJxu.js +7 -0
- package/dist/hyperclawbot-DC3jGsoA.js +516 -0
- package/dist/hyperclawbot-DC9nGl99.js +516 -0
- package/dist/mcp-loader-BBlqPFQl.js +93 -0
- package/dist/mcp-loader-Bd7MNj5-.js +93 -0
- package/dist/onboard-BRN9NLFk.js +14 -0
- package/dist/onboard-Cxjlal2t.js +14 -0
- package/dist/onboard-DRgSPOuY.js +3812 -0
- package/dist/onboard-i20xz3_O.js +3812 -0
- package/dist/onboard-qPUG8PBU.js +14 -0
- package/dist/onboard-x4I788gj.js +3812 -0
- package/dist/orchestrator-B9gd0u_r.js +6 -0
- package/dist/orchestrator-BURpEF0U.js +6 -0
- package/dist/orchestrator-CfswFK1w.js +189 -0
- package/dist/orchestrator-CnEDItE1.js +189 -0
- package/dist/osint-BXu9NVcF.js +283 -0
- package/dist/osint-BiZZ_d-g.js +283 -0
- package/dist/osint-D3OoMs9I.js +283 -0
- package/dist/osint-chat-BJfbgXwk.js +789 -0
- package/dist/osint-chat-CY2ODmY-.js +789 -0
- package/dist/osint-chat-DaRWDl3X.js +789 -0
- package/dist/run-main.js +186 -82
- package/dist/server-CSu5UPl3.js +4 -0
- package/dist/server-DBXhcGiq.js +4 -0
- package/dist/server-O4Zv8s74.js +1366 -0
- package/dist/server-jkSNOitC.js +1366 -0
- package/dist/skill-runtime-CdR3YMFp.js +5 -0
- package/dist/skill-runtime-CxL0PxyP.js +104 -0
- package/dist/skill-runtime-IFk6whV0.js +104 -0
- package/dist/skill-runtime-vylCVHmD.js +5 -0
- package/dist/src-BA04v4CG.js +458 -0
- package/dist/src-BWpeRe8J.js +63 -0
- package/dist/src-CboISwpv.js +63 -0
- package/dist/src-PutqGezt.js +458 -0
- package/dist/sub-agent-tools-DNbBE93o.js +39 -0
- package/dist/sub-agent-tools-Dzh0nVzy.js +39 -0
- package/dist/update-check-B-wd-tpa.js +7 -0
- package/dist/update-check-DlUFL81n.js +118 -0
- package/package.json +2 -2
- package/static/chat.html +570 -259
- package/static/web/assets/index-BhCDgT5S.js +75 -0
- package/static/web/assets/index-D2RfO0dG.css +1 -0
- package/static/web/icon.png +0 -0
- package/static/web/index.html +14 -0
package/dist/run-main.js
CHANGED
|
@@ -3,15 +3,15 @@ const require_paths = require('./paths-AIyBxIzm.js');
|
|
|
3
3
|
const require_paths$1 = require('./paths-DPovhojT.js');
|
|
4
4
|
require('./env-resolve-CHxjGo8u.js');
|
|
5
5
|
const require_config = require('./config-DGAAJ49A.js');
|
|
6
|
-
require('./server-
|
|
7
|
-
const require_daemon = require('./daemon-
|
|
6
|
+
require('./server-jkSNOitC.js');
|
|
7
|
+
const require_daemon = require('./daemon-WOoAWS-0.js');
|
|
8
8
|
const require_gateway = require('./gateway-CzI8dnlS.js');
|
|
9
9
|
require('./providers-DP8T0QCR.js');
|
|
10
|
-
const require_onboard = require('./onboard-
|
|
10
|
+
const require_onboard = require('./onboard-x4I788gj.js');
|
|
11
11
|
require('./theme-CLXvI6Hr.js');
|
|
12
|
-
const require_banner = require('./banner-
|
|
12
|
+
const require_banner = require('./banner-CP4LeLsu.js');
|
|
13
13
|
const require_hub = require('./hub-Bb_dYECE.js');
|
|
14
|
-
const require_update_check = require('./update-check-
|
|
14
|
+
const require_update_check = require('./update-check-DlUFL81n.js');
|
|
15
15
|
const require_manager = require('./manager-DYfzqckn.js');
|
|
16
16
|
const require_memory = require('./memory-BCYvdqwo.js');
|
|
17
17
|
const require_loader = require('./loader-DIPs649t.js');
|
|
@@ -2539,31 +2539,31 @@ function sanitizeForLog(value) {
|
|
|
2539
2539
|
return String(value ?? "").replace(/[\r\n\t]+/g, " ").replace(/[^\x20-\x7e]+/g, "?").slice(0, 200);
|
|
2540
2540
|
}
|
|
2541
2541
|
const program = new commander.Command();
|
|
2542
|
-
program.name("hyperclaw").description("⚡ HyperClaw — AI Gateway Platform. The Lobster Evolution 🦅").version("5.3.
|
|
2542
|
+
program.name("hyperclaw").description("⚡ HyperClaw — AI Gateway Platform. The Lobster Evolution 🦅").version("5.3.4").option("--profile <name>", "Use an isolated gateway profile. Auto-scopes HYPERCLAW_STATE_DIR and HYPERCLAW_CONFIG_PATH. Required for multi-gateway setups (rescue bot, staging, etc.). Example: hyperclaw --profile rescue gateway --port 19001").addHelpText("after", `
|
|
2543
2543
|
Full commands reference: READMECOMMAND.md (all commands and options)
|
|
2544
2544
|
|
|
2545
2545
|
Main command groups:
|
|
2546
|
-
init, onboard, quickstart, setup
|
|
2547
|
-
gateway status|start|stop|restart, daemon start|stop|restart|status|logs
|
|
2548
|
-
web — React Web UI (auto npm install + dev server)
|
|
2549
|
-
chat — terminal chat
|
|
2550
|
-
agent -m "message"
|
|
2551
|
-
channels list|add|remove|login|status
|
|
2552
|
-
hooks list|enable|disable|info
|
|
2553
|
-
pairing list|approve, devices list|pair|approve|reject|unpair
|
|
2554
|
-
hub, skill search|list|install
|
|
2555
|
-
memory show|add-rule|add-fact|search|clear|save
|
|
2556
|
-
config show|set-key|schema, secrets audit|set|apply|reload
|
|
2557
|
-
doctor [--fix], health, security audit
|
|
2558
|
-
status, dashboard
|
|
2559
|
-
threads list|terminate, canvas show|add|clear|export
|
|
2560
|
-
mcp list|add|remove|probe, node list|add|probe|remove
|
|
2561
|
-
cron list|add|remove, webhooks list|remove|toggle, logs
|
|
2562
|
-
voice, theme list|set|preview, workspace init|show
|
|
2563
|
-
pc status|enable|disable|log|run
|
|
2564
|
-
bot status|setup|start|stop
|
|
2565
|
-
auth add|remove|oauth|setup-token
|
|
2566
|
-
osint [workflow], deploy, update, message send
|
|
2546
|
+
✓ init, onboard, quickstart, setup
|
|
2547
|
+
✓ gateway status|start|stop|restart, daemon start|stop|restart|status|logs
|
|
2548
|
+
✓ web — 🌐 React Web UI (auto npm install + dev server)
|
|
2549
|
+
✓ chat — 💬 terminal chat
|
|
2550
|
+
✓ agent -m "message"
|
|
2551
|
+
✓ channels list|add|remove|login|status
|
|
2552
|
+
✓ hooks list|enable|disable|info
|
|
2553
|
+
✓ pairing list|approve, devices list|pair|approve|reject|unpair
|
|
2554
|
+
✓ hub, skill search|list|install
|
|
2555
|
+
✓ memory show|add-rule|add-fact|search|clear|save
|
|
2556
|
+
✓ config show|set-key|schema, secrets audit|set|apply|reload
|
|
2557
|
+
✓ doctor [--fix], health, security audit
|
|
2558
|
+
✓ status, dashboard
|
|
2559
|
+
✓ threads list|terminate, canvas show|add|clear|export
|
|
2560
|
+
✓ mcp list|add|remove|probe, node list|add|probe|remove
|
|
2561
|
+
✓ cron list|add|remove, webhooks list|remove|toggle, logs
|
|
2562
|
+
✓ voice, theme list|set|preview, workspace init|show
|
|
2563
|
+
✓ pc status|enable|disable|log|run
|
|
2564
|
+
✓ bot status|setup|start|stop
|
|
2565
|
+
✓ auth add|remove|oauth|setup-token
|
|
2566
|
+
✓ osint [workflow], deploy, update, message send
|
|
2567
2567
|
|
|
2568
2568
|
Examples: hyperclaw onboard | hyperclaw chat | hyperclaw gateway status
|
|
2569
2569
|
Run "hyperclaw" with no args for quick actions, or see READMECOMMAND.md for full list.`).hook("preAction", (thisCommand) => {
|
|
@@ -2711,7 +2711,7 @@ sandboxCmd.command("explain").description("Show effective sandbox mode, tool pol
|
|
|
2711
2711
|
const sandboxMode = cfg?.agents?.defaults?.sandbox?.mode ?? "non-main";
|
|
2712
2712
|
const toolsCfg = cfg?.tools ?? {};
|
|
2713
2713
|
const { describeToolPolicy, applyToolPolicy } = await Promise.resolve().then(() => require("./tool-policy-QXF3MMxu.js"));
|
|
2714
|
-
const { getBuiltinTools, getSessionsTools, getPCAccessTools, getBrowserTools, getExtractionTools, getWebsiteWatchTools, getVisionTools } = await Promise.resolve().then(() => require("./src-
|
|
2714
|
+
const { getBuiltinTools, getSessionsTools, getPCAccessTools, getBrowserTools, getExtractionTools, getWebsiteWatchTools, getVisionTools } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
|
|
2715
2715
|
const allTools = [
|
|
2716
2716
|
...getBuiltinTools(),
|
|
2717
2717
|
...getSessionsTools(() => null),
|
|
@@ -2964,38 +2964,142 @@ program.command("update").description("Update HyperClaw").option("-c, --channel
|
|
|
2964
2964
|
await performUpdate(effective.channel, installKind);
|
|
2965
2965
|
process.exit(0);
|
|
2966
2966
|
});
|
|
2967
|
-
program.command("web").description("Launch React Web UI
|
|
2967
|
+
program.command("web").description("Launch React Web UI").option("--skip-install", "Skip npm install (use if deps already installed)").option("--port <port>", "Port to serve on", "3000").action(async (opts) => {
|
|
2968
2968
|
const path$5 = await import("path");
|
|
2969
2969
|
const fs$7 = await import("fs-extra");
|
|
2970
2970
|
const { spawn: spawn$1 } = await import("child_process");
|
|
2971
|
-
const
|
|
2972
|
-
const
|
|
2973
|
-
const
|
|
2974
|
-
|
|
2975
|
-
|
|
2971
|
+
const http$2 = await import("http");
|
|
2972
|
+
const net$3 = await import("net");
|
|
2973
|
+
const PORT = parseInt(opts.port || "3000", 10);
|
|
2974
|
+
const GW_PORT = 18789;
|
|
2975
|
+
async function findBuiltDir() {
|
|
2976
|
+
const candidates = [
|
|
2977
|
+
process.env.HYPERCLAW_ROOT && path$5.join(process.env.HYPERCLAW_ROOT, "static", "web"),
|
|
2978
|
+
path$5.join(__dirname, "..", "static", "web"),
|
|
2979
|
+
path$5.join(__dirname, "..", "..", "static", "web")
|
|
2980
|
+
].filter(Boolean);
|
|
2981
|
+
for (const c of candidates) if (await fs$7.pathExists(path$5.join(c, "index.html"))) return c;
|
|
2982
|
+
return null;
|
|
2983
|
+
}
|
|
2984
|
+
async function findWebDir() {
|
|
2985
|
+
const candidates = [];
|
|
2986
|
+
if (process.env.HYPERCLAW_ROOT) candidates.push(path$5.join(process.env.HYPERCLAW_ROOT, "apps", "web"));
|
|
2987
|
+
candidates.push(path$5.join(process.cwd(), "apps", "web"));
|
|
2988
|
+
let dir = process.cwd();
|
|
2989
|
+
for (let i = 0; i < 6; i++) {
|
|
2990
|
+
const parent = path$5.dirname(dir);
|
|
2991
|
+
if (parent === dir) break;
|
|
2992
|
+
dir = parent;
|
|
2993
|
+
candidates.push(path$5.join(dir, "apps", "web"));
|
|
2994
|
+
}
|
|
2995
|
+
candidates.push(path$5.join(__dirname, "..", "..", "apps", "web"));
|
|
2996
|
+
candidates.push(path$5.join(__dirname, "..", "..", "..", "apps", "web"));
|
|
2997
|
+
for (const c of candidates) if (await fs$7.pathExists(path$5.join(c, "package.json"))) return c;
|
|
2998
|
+
return null;
|
|
2999
|
+
}
|
|
3000
|
+
console.log(chalk.default.bold.hex("#06b6d4")("\n HyperClaw Web UI\n"));
|
|
3001
|
+
const builtDir = await findBuiltDir();
|
|
3002
|
+
if (builtDir) {
|
|
3003
|
+
console.log(chalk.default.gray(` Serving at http://localhost:${PORT}\n`));
|
|
3004
|
+
const MIME = {
|
|
3005
|
+
".html": "text/html; charset=utf-8",
|
|
3006
|
+
".js": "application/javascript",
|
|
3007
|
+
".css": "text/css",
|
|
3008
|
+
".json": "application/json",
|
|
3009
|
+
".png": "image/png",
|
|
3010
|
+
".svg": "image/svg+xml",
|
|
3011
|
+
".ico": "image/x-icon",
|
|
3012
|
+
".woff2": "font/woff2",
|
|
3013
|
+
".woff": "font/woff",
|
|
3014
|
+
".ttf": "font/ttf"
|
|
3015
|
+
};
|
|
3016
|
+
const server = http$2.createServer(async (req, res) => {
|
|
3017
|
+
const url = (req.url || "/").split("?")[0];
|
|
3018
|
+
if (url.startsWith("/api/") || url === "/api") {
|
|
3019
|
+
const pr = http$2.request({
|
|
3020
|
+
hostname: "localhost",
|
|
3021
|
+
port: GW_PORT,
|
|
3022
|
+
path: req.url,
|
|
3023
|
+
method: req.method,
|
|
3024
|
+
headers: {
|
|
3025
|
+
...req.headers,
|
|
3026
|
+
host: `localhost:${GW_PORT}`
|
|
3027
|
+
}
|
|
3028
|
+
}, (proxyRes) => {
|
|
3029
|
+
res.writeHead(proxyRes.statusCode || 200, proxyRes.headers);
|
|
3030
|
+
proxyRes.pipe(res);
|
|
3031
|
+
});
|
|
3032
|
+
pr.on("error", () => {
|
|
3033
|
+
res.writeHead(502);
|
|
3034
|
+
res.end("{\"error\":\"Gateway unreachable\"}");
|
|
3035
|
+
});
|
|
3036
|
+
req.pipe(pr);
|
|
3037
|
+
return;
|
|
3038
|
+
}
|
|
3039
|
+
let filePath = path$5.join(builtDir, url === "/" ? "index.html" : url);
|
|
3040
|
+
if (!await fs$7.pathExists(filePath)) filePath = path$5.join(builtDir, "index.html");
|
|
3041
|
+
try {
|
|
3042
|
+
const content = await fs$7.readFile(filePath);
|
|
3043
|
+
const ext = path$5.extname(filePath).toLowerCase();
|
|
3044
|
+
res.writeHead(200, { "Content-Type": MIME[ext] || "application/octet-stream" });
|
|
3045
|
+
res.end(content);
|
|
3046
|
+
} catch {
|
|
3047
|
+
res.writeHead(404);
|
|
3048
|
+
res.end("Not found");
|
|
3049
|
+
}
|
|
3050
|
+
});
|
|
3051
|
+
server.on("upgrade", (req, socket, head) => {
|
|
3052
|
+
const target = net$3.createConnection(GW_PORT, "localhost", () => {
|
|
3053
|
+
target.write(`${req.method} ${req.url} HTTP/1.1\r\n`);
|
|
3054
|
+
Object.entries(req.headers).forEach(([k, v]) => target.write(`${k}: ${v}\r\n`));
|
|
3055
|
+
target.write("\r\n");
|
|
3056
|
+
if (head?.length) target.write(head);
|
|
3057
|
+
});
|
|
3058
|
+
target.on("error", () => socket.destroy());
|
|
3059
|
+
socket.on("error", () => target.destroy());
|
|
3060
|
+
target.pipe(socket);
|
|
3061
|
+
socket.pipe(target);
|
|
3062
|
+
});
|
|
3063
|
+
server.listen(PORT, () => {
|
|
3064
|
+
console.log(chalk.default.hex("#06b6d4")(` Open: http://localhost:${PORT}\n`));
|
|
3065
|
+
});
|
|
3066
|
+
process.on("SIGINT", () => {
|
|
3067
|
+
server.close();
|
|
3068
|
+
process.exit(0);
|
|
3069
|
+
});
|
|
3070
|
+
process.on("SIGTERM", () => {
|
|
3071
|
+
server.close();
|
|
3072
|
+
process.exit(0);
|
|
3073
|
+
});
|
|
3074
|
+
return;
|
|
3075
|
+
}
|
|
3076
|
+
const webDir = await findWebDir();
|
|
3077
|
+
if (!webDir) {
|
|
3078
|
+
console.log(chalk.default.gray("\n Web UI not found (pre-built or source).\n"));
|
|
3079
|
+
console.log(chalk.default.gray(" Rebuild the UI from the repo:\n"));
|
|
3080
|
+
console.log(chalk.default.gray(" cd apps/web && npm install && npm run build\n"));
|
|
3081
|
+
console.log(chalk.default.gray(" Or set HYPERCLAW_ROOT=/path/to/your/hyperclaw/repo\n"));
|
|
2976
3082
|
process.exit(1);
|
|
2977
3083
|
}
|
|
2978
|
-
console.log(chalk.default.bold.hex("#06b6d4")("\n 🦅 HyperClaw Web UI\n"));
|
|
2979
3084
|
if (!opts.skipInstall) {
|
|
2980
3085
|
console.log(chalk.default.gray(" Installing dependencies...\n"));
|
|
2981
3086
|
await new Promise((resolve, reject) => {
|
|
2982
|
-
const
|
|
3087
|
+
const c = spawn$1("npm", ["install"], {
|
|
2983
3088
|
cwd: webDir,
|
|
2984
3089
|
stdio: "inherit",
|
|
2985
3090
|
shell: true
|
|
2986
3091
|
});
|
|
2987
|
-
|
|
2988
|
-
|
|
3092
|
+
c.on("error", reject);
|
|
3093
|
+
c.on("exit", (code) => code === 0 ? resolve() : reject(new Error("npm install failed")));
|
|
2989
3094
|
});
|
|
2990
3095
|
}
|
|
2991
|
-
|
|
2992
|
-
console.log(chalk.default.gray(` Starting dev server at http://localhost:${port}\n`));
|
|
3096
|
+
console.log(chalk.default.gray(` Starting Vite dev server at http://localhost:${PORT}\n`));
|
|
2993
3097
|
const child = spawn$1("npm", [
|
|
2994
3098
|
"run",
|
|
2995
3099
|
"dev",
|
|
2996
3100
|
"--",
|
|
2997
3101
|
"--port",
|
|
2998
|
-
|
|
3102
|
+
String(PORT)
|
|
2999
3103
|
], {
|
|
3000
3104
|
cwd: webDir,
|
|
3001
3105
|
stdio: "inherit",
|
|
@@ -3152,7 +3256,7 @@ cfgCmd.command("set-service-key <serviceId> [apiKey]").description("Set API key
|
|
|
3152
3256
|
cfgCmd.command("schema").description("Show configuration schema").action(() => {
|
|
3153
3257
|
console.log(chalk.default.bold.hex("#06b6d4")("\n Config schema: ~/.hyperclaw/hyperclaw.json\n"));
|
|
3154
3258
|
const schema = {
|
|
3155
|
-
version: "string (e.g. \"5.3.
|
|
3259
|
+
version: "string (e.g. \"5.3.4\")",
|
|
3156
3260
|
workspaceName: "string",
|
|
3157
3261
|
provider: {
|
|
3158
3262
|
providerId: "string",
|
|
@@ -3304,10 +3408,10 @@ program.command("status").description("System overview").option("--all", "Full l
|
|
|
3304
3408
|
console.log(t.bold("\n ─── Deep status ───\n"));
|
|
3305
3409
|
try {
|
|
3306
3410
|
const cfg = await fs$7.readJson(configPath);
|
|
3307
|
-
console.log(t.muted(" Config: ") + (cfg ? t.success("loaded") : t.error("missing")));
|
|
3411
|
+
console.log(t.muted(" Config: ") + (cfg ? t.success("✓ loaded") : t.error("✗ missing")));
|
|
3308
3412
|
console.log(t.muted(" Channels: ") + JSON.stringify(cfg?.gateway?.enabledChannels || cfg?.channels || []));
|
|
3309
3413
|
} catch {
|
|
3310
|
-
console.log(t.muted(" Config: ") + t.error("unreadable"));
|
|
3414
|
+
console.log(t.muted(" Config: ") + t.error("✗ unreadable"));
|
|
3311
3415
|
}
|
|
3312
3416
|
if (opts.deep) {
|
|
3313
3417
|
const http$2 = await import("http");
|
|
@@ -3331,20 +3435,20 @@ program.command("status").description("System overview").option("--all", "Full l
|
|
|
3331
3435
|
res.on("end", () => {
|
|
3332
3436
|
try {
|
|
3333
3437
|
const j = JSON.parse(d);
|
|
3334
|
-
console.log(t.muted(" Gateway: ") + t.success("reachable") + ` (sessions: ${j.sessions ?? "-"}, uptime: ${j.uptime ?? "-"})`);
|
|
3438
|
+
console.log(t.muted(" Gateway: ") + t.success("✓ reachable") + ` (sessions: ${j.sessions ?? "-"}, uptime: ${j.uptime ?? "-"})`);
|
|
3335
3439
|
} catch {
|
|
3336
|
-
console.log(t.muted(" Gateway: ") + t.error("unreachable or invalid response"));
|
|
3440
|
+
console.log(t.muted(" Gateway: ") + t.error("✗ unreachable or invalid response"));
|
|
3337
3441
|
}
|
|
3338
3442
|
resolve();
|
|
3339
3443
|
});
|
|
3340
3444
|
});
|
|
3341
3445
|
req.on("error", () => {
|
|
3342
|
-
console.log(t.muted(" Gateway: ") + t.error("unreachable"));
|
|
3446
|
+
console.log(t.muted(" Gateway: ") + t.error("✗ unreachable"));
|
|
3343
3447
|
resolve();
|
|
3344
3448
|
});
|
|
3345
3449
|
req.on("timeout", () => {
|
|
3346
3450
|
req.destroy();
|
|
3347
|
-
console.log(t.muted(" Gateway: ") + t.error("timeout"));
|
|
3451
|
+
console.log(t.muted(" Gateway: ") + t.error("✗ timeout"));
|
|
3348
3452
|
resolve();
|
|
3349
3453
|
});
|
|
3350
3454
|
req.end();
|
|
@@ -3356,20 +3460,20 @@ program.command("status").description("System overview").option("--all", "Full l
|
|
|
3356
3460
|
res.on("end", () => {
|
|
3357
3461
|
try {
|
|
3358
3462
|
const j = JSON.parse(d);
|
|
3359
|
-
console.log(t.muted(" Gateway: ") + t.success("reachable") + ` (sessions: ${j.sessions ?? "-"}, uptime: ${j.uptime ?? "-"})`);
|
|
3463
|
+
console.log(t.muted(" Gateway: ") + t.success("✓ reachable") + ` (sessions: ${j.sessions ?? "-"}, uptime: ${j.uptime ?? "-"})`);
|
|
3360
3464
|
} catch {
|
|
3361
|
-
console.log(t.muted(" Gateway: ") + t.error("unreachable or invalid response"));
|
|
3465
|
+
console.log(t.muted(" Gateway: ") + t.error("✗ unreachable or invalid response"));
|
|
3362
3466
|
}
|
|
3363
3467
|
resolve();
|
|
3364
3468
|
});
|
|
3365
3469
|
});
|
|
3366
3470
|
req.on("error", () => {
|
|
3367
|
-
console.log(t.muted(" Gateway: ") + t.error("unreachable"));
|
|
3471
|
+
console.log(t.muted(" Gateway: ") + t.error("✗ unreachable"));
|
|
3368
3472
|
resolve();
|
|
3369
3473
|
});
|
|
3370
3474
|
req.on("timeout", () => {
|
|
3371
3475
|
req.destroy();
|
|
3372
|
-
console.log(t.muted(" Gateway: ") + t.error("timeout"));
|
|
3476
|
+
console.log(t.muted(" Gateway: ") + t.error("✗ timeout"));
|
|
3373
3477
|
resolve();
|
|
3374
3478
|
});
|
|
3375
3479
|
req.end();
|
|
@@ -3472,20 +3576,20 @@ securityCmd.command("audit").description("Security audit — file permissions, D
|
|
|
3472
3576
|
process.exit(0);
|
|
3473
3577
|
});
|
|
3474
3578
|
program.command("osint").description("OSINT / Ethical Hacking mode — configure HyperClaw for security research").argument("[workflow]", "Workflow preset: recon | bugbounty | pentest | footprint | custom | chat").option("--show", "Show current OSINT profile").option("--reset", "Clear OSINT profile and disable OSINT mode").option("--model <model>", "Override model for OSINT chat").action(async (workflow, opts) => {
|
|
3475
|
-
const { osintSetup, osintQuickStart } = await Promise.resolve().then(() => require("./osint-
|
|
3579
|
+
const { osintSetup, osintQuickStart } = await Promise.resolve().then(() => require("./osint-D3OoMs9I.js"));
|
|
3476
3580
|
if (opts.show || opts.reset) await osintSetup({
|
|
3477
3581
|
show: opts.show,
|
|
3478
3582
|
reset: opts.reset
|
|
3479
3583
|
});
|
|
3480
3584
|
else if (workflow === "chat") {
|
|
3481
|
-
const { runOsintChat } = await Promise.resolve().then(() => require("./osint-chat-
|
|
3585
|
+
const { runOsintChat } = await Promise.resolve().then(() => require("./osint-chat-BJfbgXwk.js"));
|
|
3482
3586
|
await runOsintChat({ model: opts.model });
|
|
3483
3587
|
} else if (workflow === "setup" || workflow) await osintSetup({ mode: workflow });
|
|
3484
3588
|
else await osintQuickStart();
|
|
3485
3589
|
process.exit(0);
|
|
3486
3590
|
});
|
|
3487
3591
|
program.command("chat").description("Interactive terminal chat with the agent").option("--session <id>", "Resume a named session").option("--model <model>", "Override model").option("--thinking <level>", "Thinking level: high|medium|low|none", "none").option("--workspace <dir>", "Override workspace directory").option("--daemon", "Use daemon theme (red borders & prompt)").action(async (opts) => {
|
|
3488
|
-
const { runChat } = await Promise.resolve().then(() => require("./chat-
|
|
3592
|
+
const { runChat } = await Promise.resolve().then(() => require("./chat-BTJoZxtU.js"));
|
|
3489
3593
|
const cfg = await new require_manager.ConfigManager().load().catch(() => null);
|
|
3490
3594
|
const port = cfg?.gateway?.port ?? 18789;
|
|
3491
3595
|
const gm = new GatewayManager$1();
|
|
@@ -3500,7 +3604,7 @@ program.command("chat").description("Interactive terminal chat with the agent").
|
|
|
3500
3604
|
});
|
|
3501
3605
|
const agentRunCmd = program.command("agent").description("Run agent with thinking control");
|
|
3502
3606
|
agentRunCmd.requiredOption("-m, --message <text>", "Message to send to the agent").option("--thinking <level>", "Thinking level: high|medium|low|none", "none").option("--model <model>", "Override model").option("--session <id>", "Session/thread ID").option("--multi-step", "Decompose into steps and run each (sequential)").option("--parallel", "Run sub-agents in parallel for independent subtasks").option("--verbose", "Show thinking blocks and request details").option("--workspace <dir>", "Override workspace directory").action(async (opts) => {
|
|
3503
|
-
const { runAgent } = await Promise.resolve().then(() => require("./src-
|
|
3607
|
+
const { runAgent } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
|
|
3504
3608
|
await runAgent({
|
|
3505
3609
|
message: opts.message,
|
|
3506
3610
|
thinking: opts.thinking,
|
|
@@ -3516,7 +3620,7 @@ agentRunCmd.requiredOption("-m, --message <text>", "Message to send to the agent
|
|
|
3516
3620
|
});
|
|
3517
3621
|
const threadsCmd = program.command("threads").description("ACP thread-bound agent sessions");
|
|
3518
3622
|
threadsCmd.command("list").description("List agent threads").option("--channel <id>", "Filter by channel").option("--active", "Show only active threads").action(async (opts) => {
|
|
3519
|
-
const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-
|
|
3623
|
+
const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
|
|
3520
3624
|
const mgr = new ACPThreadManager();
|
|
3521
3625
|
const threads = await mgr.list({
|
|
3522
3626
|
channelId: opts.channel,
|
|
@@ -3526,7 +3630,7 @@ threadsCmd.command("list").description("List agent threads").option("--channel <
|
|
|
3526
3630
|
process.exit(0);
|
|
3527
3631
|
});
|
|
3528
3632
|
threadsCmd.command("terminate <id>").description("Terminate a thread").action(async (id) => {
|
|
3529
|
-
const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-
|
|
3633
|
+
const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
|
|
3530
3634
|
await new ACPThreadManager().terminate(id);
|
|
3531
3635
|
console.log(require("chalk").green(`\n ✔ Thread terminated: ${id}\n`));
|
|
3532
3636
|
process.exit(0);
|
|
@@ -3774,7 +3878,7 @@ logsCmd.action(async (opts) => {
|
|
|
3774
3878
|
}
|
|
3775
3879
|
});
|
|
3776
3880
|
program.command("gateway:serve").description("Start the gateway server in the foreground (used by daemon)").action(async () => {
|
|
3777
|
-
const { startGateway } = await Promise.resolve().then(() => require("./server-
|
|
3881
|
+
const { startGateway } = await Promise.resolve().then(() => require("./server-CSu5UPl3.js"));
|
|
3778
3882
|
await startGateway();
|
|
3779
3883
|
process.on("SIGINT", () => process.exit(0));
|
|
3780
3884
|
process.on("SIGTERM", () => process.exit(0));
|
|
@@ -4027,13 +4131,13 @@ workspaceCmd.command("show [dir]").description("Show workspace files summary").a
|
|
|
4027
4131
|
});
|
|
4028
4132
|
const botCmd = program.command("bot").description("HyperClaw Bot — companion bot for remote gateway control");
|
|
4029
4133
|
botCmd.command("status").action(async () => {
|
|
4030
|
-
const { showBotStatus } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
4134
|
+
const { showBotStatus } = await Promise.resolve().then(() => require("./hyperclawbot-DC9nGl99.js"));
|
|
4031
4135
|
await showBotStatus();
|
|
4032
4136
|
process.exit(0);
|
|
4033
4137
|
});
|
|
4034
4138
|
botCmd.command("setup").description("Configure HyperClaw Bot (Telegram token, allowed users)").action(async () => {
|
|
4035
4139
|
const inquirer$2 = require("inquirer");
|
|
4036
|
-
const { saveBotConfig } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
4140
|
+
const { saveBotConfig } = await Promise.resolve().then(() => require("./hyperclawbot-DC9nGl99.js"));
|
|
4037
4141
|
const chalk$11 = require("chalk");
|
|
4038
4142
|
console.log(chalk$11.bold.hex("#06b6d4")("\n 🦅 HYPERCLAW BOT SETUP\n"));
|
|
4039
4143
|
console.log(chalk$11.gray(" Create a bot at t.me/BotFather, then paste the token below.\n"));
|
|
@@ -4095,14 +4199,14 @@ botCmd.command("start").description("Start HyperClaw Bot (foreground or backgrou
|
|
|
4095
4199
|
cwd: process.cwd()
|
|
4096
4200
|
});
|
|
4097
4201
|
child.unref();
|
|
4098
|
-
const { writeBotPid } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
4202
|
+
const { writeBotPid } = await Promise.resolve().then(() => require("./hyperclawbot-DC9nGl99.js"));
|
|
4099
4203
|
await writeBotPid(child.pid);
|
|
4100
4204
|
console.log(require("chalk").green(`\n ✔ HyperClaw Bot started in background (PID ${child.pid})`));
|
|
4101
4205
|
console.log(require("chalk").gray(" Stop with: hyperclaw bot stop\n"));
|
|
4102
4206
|
process.exit(0);
|
|
4103
4207
|
return;
|
|
4104
4208
|
}
|
|
4105
|
-
const { loadBotConfig, TelegramHyperClawBot, DiscordHyperClawBot } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
4209
|
+
const { loadBotConfig, TelegramHyperClawBot, DiscordHyperClawBot } = await Promise.resolve().then(() => require("./hyperclawbot-DC9nGl99.js"));
|
|
4106
4210
|
const cfg = await loadBotConfig();
|
|
4107
4211
|
if (!cfg) {
|
|
4108
4212
|
console.log(require("chalk").red("\n ✖ HyperClaw Bot not configured. Run: hyperclaw bot setup\n"));
|
|
@@ -4129,41 +4233,41 @@ botCmd.command("start").description("Start HyperClaw Bot (foreground or backgrou
|
|
|
4129
4233
|
});
|
|
4130
4234
|
botCmd.command("stop").description("Stop HyperClaw Bot (when running in background)").action(async () => {
|
|
4131
4235
|
const chalk$11 = require("chalk");
|
|
4132
|
-
const { stopBotProcess } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
4236
|
+
const { stopBotProcess } = await Promise.resolve().then(() => require("./hyperclawbot-DC9nGl99.js"));
|
|
4133
4237
|
const stopped = await stopBotProcess();
|
|
4134
4238
|
if (stopped) console.log(chalk$11.green("\n ✔ HyperClaw Bot stopped\n"));
|
|
4135
4239
|
else console.log(chalk$11.gray("\n Bot not running in background (no PID file). Use Ctrl+C to stop foreground bot.\n"));
|
|
4136
4240
|
process.exit(stopped ? 0 : 1);
|
|
4137
4241
|
});
|
|
4138
4242
|
memCmd.command("search <query>").description("Search MEMORY.md").action(async (query) => {
|
|
4139
|
-
const { searchMemory } = await Promise.resolve().then(() => require("./src-
|
|
4243
|
+
const { searchMemory } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
|
|
4140
4244
|
await searchMemory(query);
|
|
4141
4245
|
process.exit(0);
|
|
4142
4246
|
});
|
|
4143
4247
|
memCmd.command("auto-show").description("Show auto-extracted memories from MEMORY.md").action(async () => {
|
|
4144
|
-
const { showMemory } = await Promise.resolve().then(() => require("./src-
|
|
4248
|
+
const { showMemory } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
|
|
4145
4249
|
await showMemory();
|
|
4146
4250
|
process.exit(0);
|
|
4147
4251
|
});
|
|
4148
4252
|
memCmd.command("clear").description("Clear all auto-extracted memories").action(async () => {
|
|
4149
|
-
const { clearMemory } = await Promise.resolve().then(() => require("./src-
|
|
4253
|
+
const { clearMemory } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
|
|
4150
4254
|
await clearMemory();
|
|
4151
4255
|
process.exit(0);
|
|
4152
4256
|
});
|
|
4153
4257
|
memCmd.command("save <text>").description("Manually save a fact to MEMORY.md").action(async (text) => {
|
|
4154
|
-
const { saveMemoryDirect } = await Promise.resolve().then(() => require("./src-
|
|
4258
|
+
const { saveMemoryDirect } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
|
|
4155
4259
|
await saveMemoryDirect(text);
|
|
4156
4260
|
console.log(chalk.default.hex("#06b6d4")(` ✅ Saved: ${text}\n`));
|
|
4157
4261
|
process.exit(0);
|
|
4158
4262
|
});
|
|
4159
4263
|
const pcCmd = program.command("pc").description("PC access — give the AI access to your computer");
|
|
4160
4264
|
pcCmd.command("status").description("Show PC access status and config").action(async () => {
|
|
4161
|
-
const { showPCAccessStatus } = await Promise.resolve().then(() => require("./src-
|
|
4265
|
+
const { showPCAccessStatus } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
|
|
4162
4266
|
await showPCAccessStatus();
|
|
4163
4267
|
process.exit(0);
|
|
4164
4268
|
});
|
|
4165
4269
|
pcCmd.command("enable").description("Enable PC access for the AI").option("--level <level>", "Access level: read-only | sandboxed | full", "full").option("--paths <paths>", "Comma-separated allowed paths (sandboxed mode)").action(async (opts) => {
|
|
4166
|
-
const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-
|
|
4270
|
+
const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
|
|
4167
4271
|
const level = opts.level;
|
|
4168
4272
|
const allowed = [
|
|
4169
4273
|
"read-only",
|
|
@@ -4190,7 +4294,7 @@ pcCmd.command("enable").description("Enable PC access for the AI").option("--lev
|
|
|
4190
4294
|
process.exit(0);
|
|
4191
4295
|
});
|
|
4192
4296
|
pcCmd.command("disable").description("Disable PC access").action(async () => {
|
|
4193
|
-
const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-
|
|
4297
|
+
const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
|
|
4194
4298
|
await savePCAccessConfig({ enabled: false });
|
|
4195
4299
|
console.log(chalk.default.hex("#06b6d4")("\n ✅ PC access disabled\n"));
|
|
4196
4300
|
process.exit(0);
|
|
@@ -4215,7 +4319,7 @@ pcCmd.command("log").description("Show PC access audit log").option("-n, --lines
|
|
|
4215
4319
|
process.exit(0);
|
|
4216
4320
|
});
|
|
4217
4321
|
pcCmd.command("run <command>").description("Run a shell command via PC access (must be enabled)").action(async (command) => {
|
|
4218
|
-
const { loadPCAccessConfig, getPCAccessTools } = await Promise.resolve().then(() => require("./src-
|
|
4322
|
+
const { loadPCAccessConfig, getPCAccessTools } = await Promise.resolve().then(() => require("./src-CboISwpv.js"));
|
|
4219
4323
|
const cfg = await loadPCAccessConfig();
|
|
4220
4324
|
if (!cfg.enabled) {
|
|
4221
4325
|
console.log(chalk.default.red("\n ✖ PC access disabled. Run: hyperclaw pc enable\n"));
|
|
@@ -4246,7 +4350,7 @@ program.command("setup").description("Setup wizard — alias for `hyperclaw onbo
|
|
|
4246
4350
|
});
|
|
4247
4351
|
async function runUpdateCheck() {
|
|
4248
4352
|
try {
|
|
4249
|
-
const { checkForUpdates: checkForUpdates$1, notifyUpdateAvailable } = await Promise.resolve().then(() => require("./update-check-
|
|
4353
|
+
const { checkForUpdates: checkForUpdates$1, notifyUpdateAvailable } = await Promise.resolve().then(() => require("./update-check-B-wd-tpa.js"));
|
|
4250
4354
|
const path$5 = require("path");
|
|
4251
4355
|
const { readFileSync } = require("fs");
|
|
4252
4356
|
const pkgPath = path$5.resolve(__dirname, "../package.json");
|
|
@@ -4264,17 +4368,17 @@ if (process.argv.length === 2) (async () => {
|
|
|
4264
4368
|
const t = getTheme(false);
|
|
4265
4369
|
const chalk$11 = require("chalk");
|
|
4266
4370
|
console.log(t.bold(" Quick actions:\n"));
|
|
4267
|
-
console.log(` ${t.c("hyperclaw web")} — React Web UI (auto install + start)`);
|
|
4268
|
-
console.log(` ${t.c("hyperclaw chat")} — terminal chat`);
|
|
4269
|
-
console.log(` ${t.c("hyperclaw onboard")} — re-run setup wizard`);
|
|
4270
|
-
console.log(` ${t.c("hyperclaw daemon start")} — start background service`);
|
|
4271
|
-
console.log(` ${t.c("hyperclaw daemon status")} — service status`);
|
|
4272
|
-
console.log(` ${t.c("hyperclaw status")} — system overview`);
|
|
4273
|
-
console.log(` ${t.c("hyperclaw doctor")} — health check & fix issues`);
|
|
4274
|
-
console.log(` ${t.c("hyperclaw --help")} — all commands\n`);
|
|
4371
|
+
console.log(` ✓ ${t.c("hyperclaw web")} — 🌐 React Web UI (auto install + start)`);
|
|
4372
|
+
console.log(` ✓ ${t.c("hyperclaw chat")} — 💬 terminal chat`);
|
|
4373
|
+
console.log(` ✓ ${t.c("hyperclaw onboard")} — ⚙️ re-run setup wizard`);
|
|
4374
|
+
console.log(` ✓ ${t.c("hyperclaw daemon start")} — 🚀 start background service`);
|
|
4375
|
+
console.log(` ✓ ${t.c("hyperclaw daemon status")} — 📊 service status`);
|
|
4376
|
+
console.log(` ✓ ${t.c("hyperclaw status")} — 📋 system overview`);
|
|
4377
|
+
console.log(` ✓ ${t.c("hyperclaw doctor")} — 🔧 health check & fix issues`);
|
|
4378
|
+
console.log(` ✓ ${t.c("hyperclaw --help")} — 📖 all commands\n`);
|
|
4275
4379
|
} else {
|
|
4276
4380
|
await new require_banner.Banner().showNeonBanner(false);
|
|
4277
|
-
const { HyperClawWizard: HyperClawWizard$1 } = await Promise.resolve().then(() => require("./onboard-
|
|
4381
|
+
const { HyperClawWizard: HyperClawWizard$1 } = await Promise.resolve().then(() => require("./onboard-BRN9NLFk.js"));
|
|
4278
4382
|
await new HyperClawWizard$1().run({ wizard: true });
|
|
4279
4383
|
}
|
|
4280
4384
|
await runUpdateCheck();
|