hyperclaw 5.3.3 → 5.3.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/dist/banner-3jmKGq6t.js +143 -0
- package/dist/banner-BhOid_rp.js +7 -0
- package/dist/banner-C5D09Afq.js +7 -0
- package/dist/banner-CP4LeLsu.js +143 -0
- package/dist/banner-D14weGVJ.js +7 -0
- package/dist/banner-DG3v43xA.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-D-i8bqTf.js +523 -0
- package/dist/daemon-BXfbyPBf.js +7 -0
- package/dist/daemon-BtQqCfEH.js +7 -0
- package/dist/daemon-C4j0wqxz.js +421 -0
- package/dist/daemon-CUNaq2Ls.js +421 -0
- package/dist/daemon-IU5UIMJo.js +7 -0
- package/dist/daemon-WOoAWS-0.js +421 -0
- package/dist/engine-2Tc-z0e4.js +7 -0
- package/dist/engine-C88DJeLD.js +327 -0
- package/dist/engine-D9BvbJxu.js +7 -0
- package/dist/engine-DQ3hT5JD.js +327 -0
- package/dist/hyperclawbot-DC9nGl99.js +516 -0
- package/dist/hyperclawbot-DcQt62PL.js +516 -0
- package/dist/mcp-loader-Bd7MNj5-.js +93 -0
- package/dist/mcp-loader-CPlsbcja.js +93 -0
- package/dist/onboard-BF29mNbC.js +14 -0
- package/dist/onboard-BRN9NLFk.js +14 -0
- package/dist/onboard-C7vJegQc.js +3812 -0
- package/dist/onboard-CJKxKPBH.js +3812 -0
- package/dist/onboard-Cxjlal2t.js +14 -0
- package/dist/onboard-CytL65jh.js +14 -0
- package/dist/onboard-i20xz3_O.js +3812 -0
- package/dist/onboard-x4I788gj.js +3812 -0
- package/dist/orchestrator-B9gd0u_r.js +6 -0
- package/dist/orchestrator-CfswFK1w.js +189 -0
- package/dist/orchestrator-DcEHTInR.js +6 -0
- package/dist/orchestrator-PQY07fH7.js +189 -0
- package/dist/osint-BXu9NVcF.js +283 -0
- package/dist/osint-D3OoMs9I.js +283 -0
- package/dist/osint-DsUwGzgP.js +283 -0
- package/dist/osint-DtRd_A_O.js +283 -0
- package/dist/osint-chat-BJfbgXwk.js +789 -0
- package/dist/osint-chat-CY2ODmY-.js +789 -0
- package/dist/osint-chat-CfexqWop.js +789 -0
- package/dist/osint-chat-DdclrVa6.js +789 -0
- package/dist/run-main.js +198 -50
- package/dist/server-C9f6qtEW.js +1366 -0
- package/dist/server-CSu5UPl3.js +4 -0
- package/dist/server-CdlilrcS.js +4 -0
- package/dist/server-DfrmKeE6.js +1356 -0
- package/dist/server-jkSNOitC.js +1366 -0
- package/dist/server-rHap51o6.js +4 -0
- package/dist/skill-runtime-249xckq3.js +5 -0
- package/dist/skill-runtime-Bv59FUVu.js +104 -0
- package/dist/skill-runtime-CdR3YMFp.js +5 -0
- package/dist/skill-runtime-CxL0PxyP.js +104 -0
- package/dist/src-CboISwpv.js +63 -0
- package/dist/src-ClYgvXAj.js +63 -0
- package/dist/src-DiYkDVnn.js +458 -0
- package/dist/src-PutqGezt.js +458 -0
- package/dist/sub-agent-tools-8-Imp1B5.js +39 -0
- package/dist/sub-agent-tools-DNbBE93o.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 +764 -764
- package/static/web/assets/index-BeAuHLb2.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-DfrmKeE6.js');
|
|
7
|
+
const require_daemon = require('./daemon-C4j0wqxz.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-C7vJegQc.js');
|
|
11
11
|
require('./theme-CLXvI6Hr.js');
|
|
12
|
-
const require_banner = require('./banner-
|
|
12
|
+
const require_banner = require('./banner-DG3v43xA.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');
|
|
@@ -115,7 +115,7 @@ var Dashboard = class {
|
|
|
115
115
|
};
|
|
116
116
|
const logRow = (content) => console.log(row(content));
|
|
117
117
|
console.log(c("├" + line + "┤"));
|
|
118
|
-
console.log(c("│") + chalk.default.bold.hex("#06b6d4")(`${"🦅 HYPERCLAW v5.
|
|
118
|
+
console.log(c("│") + chalk.default.bold.hex("#06b6d4")(`${"🦅 HYPERCLAW v5.3.45 — GATEWAY DASHBOARD".padStart(45).padEnd(w)}`) + c("│"));
|
|
119
119
|
console.log(c("├" + line + "┤"));
|
|
120
120
|
logRow(`${statusDot} Gateway ${statusText} ${chalk.default.gray("│")} ws://localhost:${port} ${chalk.default.gray("│")} Agent: ${c(agent)}`);
|
|
121
121
|
logRow(`${c("●")} Model ${chalk.default.gray(model.slice(0, 30))} ${chalk.default.gray("│")} User: ${c(user)}`);
|
|
@@ -2539,7 +2539,7 @@ 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.45").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:
|
|
@@ -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-ClYgvXAj.js"));
|
|
2715
2715
|
const allTools = [
|
|
2716
2716
|
...getBuiltinTools(),
|
|
2717
2717
|
...getSessionsTools(() => null),
|
|
@@ -2933,7 +2933,7 @@ skillCmd.command("install <id>").description("Install skill from ClawHub (or bun
|
|
|
2933
2933
|
program.command("menu-bar").description("Launch macOS menu bar companion (Electron tray app)").action(async () => {
|
|
2934
2934
|
const path$5 = await import("path");
|
|
2935
2935
|
const { spawn: spawn$1 } = await import("child_process");
|
|
2936
|
-
const fs$7 = await import("fs-extra");
|
|
2936
|
+
const fs$7 = (await import("fs-extra")).default;
|
|
2937
2937
|
const root = path$5.join(process.cwd(), "apps", "macos");
|
|
2938
2938
|
const altRoot = path$5.join(__dirname, "..", "..", "apps", "macos");
|
|
2939
2939
|
const macosDir = await fs$7.pathExists(root) ? root : await fs$7.pathExists(altRoot) ? altRoot : null;
|
|
@@ -2964,10 +2964,23 @@ 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
|
-
const fs$7 = await import("fs-extra");
|
|
2969
|
+
const fs$7 = (await import("fs-extra")).default;
|
|
2970
2970
|
const { spawn: spawn$1 } = await import("child_process");
|
|
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
|
+
}
|
|
2971
2984
|
async function findWebDir() {
|
|
2972
2985
|
const candidates = [];
|
|
2973
2986
|
if (process.env.HYPERCLAW_ROOT) candidates.push(path$5.join(process.env.HYPERCLAW_ROOT, "apps", "web"));
|
|
@@ -2981,43 +2994,178 @@ program.command("web").description("Launch React Web UI — auto npm install and
|
|
|
2981
2994
|
}
|
|
2982
2995
|
candidates.push(path$5.join(__dirname, "..", "..", "apps", "web"));
|
|
2983
2996
|
candidates.push(path$5.join(__dirname, "..", "..", "..", "apps", "web"));
|
|
2984
|
-
for (const
|
|
2997
|
+
for (const c of candidates) if (await fs$7.pathExists(path$5.join(c, "package.json"))) return c;
|
|
2985
2998
|
return null;
|
|
2986
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
|
+
await new Promise((resolve, reject) => {
|
|
3067
|
+
let settled = false;
|
|
3068
|
+
let closing = false;
|
|
3069
|
+
const cleanup = () => {
|
|
3070
|
+
server.off("close", onClose);
|
|
3071
|
+
server.off("error", onError);
|
|
3072
|
+
process.off("SIGINT", onSignal);
|
|
3073
|
+
process.off("SIGTERM", onSignal);
|
|
3074
|
+
};
|
|
3075
|
+
const finish = () => {
|
|
3076
|
+
if (settled) return;
|
|
3077
|
+
settled = true;
|
|
3078
|
+
cleanup();
|
|
3079
|
+
resolve();
|
|
3080
|
+
};
|
|
3081
|
+
const fail = (err) => {
|
|
3082
|
+
if (settled) return;
|
|
3083
|
+
settled = true;
|
|
3084
|
+
cleanup();
|
|
3085
|
+
reject(err);
|
|
3086
|
+
};
|
|
3087
|
+
const onClose = () => finish();
|
|
3088
|
+
const onError = (err) => fail(err);
|
|
3089
|
+
const onSignal = () => {
|
|
3090
|
+
if (closing) return;
|
|
3091
|
+
closing = true;
|
|
3092
|
+
server.close(() => finish());
|
|
3093
|
+
};
|
|
3094
|
+
server.on("close", onClose);
|
|
3095
|
+
server.on("error", onError);
|
|
3096
|
+
process.on("SIGINT", onSignal);
|
|
3097
|
+
process.on("SIGTERM", onSignal);
|
|
3098
|
+
});
|
|
3099
|
+
return;
|
|
3100
|
+
}
|
|
2987
3101
|
const webDir = await findWebDir();
|
|
2988
3102
|
if (!webDir) {
|
|
2989
|
-
console.log(chalk.default.gray("\n
|
|
2990
|
-
console.log(chalk.default.gray("
|
|
3103
|
+
console.log(chalk.default.gray("\n Web UI not found (pre-built or source).\n"));
|
|
3104
|
+
console.log(chalk.default.gray(" Rebuild the UI from the repo:\n"));
|
|
3105
|
+
console.log(chalk.default.gray(" cd apps/web && npm install && npm run build\n"));
|
|
3106
|
+
console.log(chalk.default.gray(" Or set HYPERCLAW_ROOT=/path/to/your/hyperclaw/repo\n"));
|
|
2991
3107
|
process.exit(1);
|
|
2992
3108
|
}
|
|
2993
|
-
console.log(chalk.default.bold.hex("#06b6d4")("\n 🦅 HyperClaw Web UI\n"));
|
|
2994
3109
|
if (!opts.skipInstall) {
|
|
2995
3110
|
console.log(chalk.default.gray(" Installing dependencies...\n"));
|
|
2996
3111
|
await new Promise((resolve, reject) => {
|
|
2997
|
-
const
|
|
3112
|
+
const c = spawn$1("npm", ["install"], {
|
|
2998
3113
|
cwd: webDir,
|
|
2999
3114
|
stdio: "inherit",
|
|
3000
3115
|
shell: true
|
|
3001
3116
|
});
|
|
3002
|
-
|
|
3003
|
-
|
|
3117
|
+
c.on("error", reject);
|
|
3118
|
+
c.on("exit", (code) => code === 0 ? resolve() : reject(new Error("npm install failed")));
|
|
3004
3119
|
});
|
|
3005
3120
|
}
|
|
3006
|
-
|
|
3007
|
-
console.log(chalk.default.gray(` Starting dev server at http://localhost:${port}\n`));
|
|
3121
|
+
console.log(chalk.default.gray(` Starting Vite dev server at http://localhost:${PORT}\n`));
|
|
3008
3122
|
const child = spawn$1("npm", [
|
|
3009
3123
|
"run",
|
|
3010
3124
|
"dev",
|
|
3011
3125
|
"--",
|
|
3012
3126
|
"--port",
|
|
3013
|
-
|
|
3127
|
+
String(PORT)
|
|
3014
3128
|
], {
|
|
3015
3129
|
cwd: webDir,
|
|
3016
3130
|
stdio: "inherit",
|
|
3017
3131
|
shell: true
|
|
3018
3132
|
});
|
|
3019
|
-
|
|
3020
|
-
|
|
3133
|
+
await new Promise((resolve, reject) => {
|
|
3134
|
+
let settled = false;
|
|
3135
|
+
const cleanup = () => {
|
|
3136
|
+
child.off("error", onError);
|
|
3137
|
+
child.off("exit", onExit);
|
|
3138
|
+
process.off("SIGINT", onSignal);
|
|
3139
|
+
process.off("SIGTERM", onSignal);
|
|
3140
|
+
};
|
|
3141
|
+
const finish = () => {
|
|
3142
|
+
if (settled) return;
|
|
3143
|
+
settled = true;
|
|
3144
|
+
cleanup();
|
|
3145
|
+
resolve();
|
|
3146
|
+
};
|
|
3147
|
+
const fail = (err) => {
|
|
3148
|
+
if (settled) return;
|
|
3149
|
+
settled = true;
|
|
3150
|
+
cleanup();
|
|
3151
|
+
reject(err);
|
|
3152
|
+
};
|
|
3153
|
+
const onError = (err) => fail(err);
|
|
3154
|
+
const onExit = (code, signal) => {
|
|
3155
|
+
if (signal || code === 0) {
|
|
3156
|
+
finish();
|
|
3157
|
+
return;
|
|
3158
|
+
}
|
|
3159
|
+
fail(new Error(`Vite dev server exited with code ${code}`));
|
|
3160
|
+
};
|
|
3161
|
+
const onSignal = (signal) => {
|
|
3162
|
+
if (!child.killed) child.kill(signal);
|
|
3163
|
+
};
|
|
3164
|
+
child.on("error", onError);
|
|
3165
|
+
child.on("exit", onExit);
|
|
3166
|
+
process.on("SIGINT", onSignal);
|
|
3167
|
+
process.on("SIGTERM", onSignal);
|
|
3168
|
+
});
|
|
3021
3169
|
});
|
|
3022
3170
|
program.command("doctor").description("Health check — surfaces misconfigs, risky DM policies, and repairs").option("--fix", "Auto-repair fixable issues").option("--repair", "Apply recommended repairs (same as --fix)").option("--force", "Apply aggressive repairs (use with --repair)").option("-y, --yes", "Accept defaults without prompting").option("--non-interactive", "Skip prompts; only run safe migrations").option("--deep", "Scan system services for extra gateway installs").action(async (opts) => {
|
|
3023
3171
|
await require_doctor.runDoctor(opts.fix || opts.repair, {
|
|
@@ -3167,7 +3315,7 @@ cfgCmd.command("set-service-key <serviceId> [apiKey]").description("Set API key
|
|
|
3167
3315
|
cfgCmd.command("schema").description("Show configuration schema").action(() => {
|
|
3168
3316
|
console.log(chalk.default.bold.hex("#06b6d4")("\n Config schema: ~/.hyperclaw/hyperclaw.json\n"));
|
|
3169
3317
|
const schema = {
|
|
3170
|
-
version: "string (e.g. \"5.3.
|
|
3318
|
+
version: "string (e.g. \"5.3.45\")",
|
|
3171
3319
|
workspaceName: "string",
|
|
3172
3320
|
provider: {
|
|
3173
3321
|
providerId: "string",
|
|
@@ -3312,7 +3460,7 @@ program.command("dashboard").description("Launch live terminal dashboard").optio
|
|
|
3312
3460
|
program.command("status").description("System overview").option("--all", "Full local diagnosis (read-only)").option("--deep", "Also probe the running gateway").action(async (opts) => {
|
|
3313
3461
|
await new require_banner.Banner().showStatus();
|
|
3314
3462
|
if (opts.all || opts.deep) {
|
|
3315
|
-
const fs$7 = await import("fs-extra");
|
|
3463
|
+
const fs$7 = (await import("fs-extra")).default;
|
|
3316
3464
|
const { getConfigPath: getConfigPath$1 } = await Promise.resolve().then(() => require("./paths-D-QecARF.js"));
|
|
3317
3465
|
const t = (await Promise.resolve().then(() => require("./theme-DdZT-Bq4.js"))).getTheme(false);
|
|
3318
3466
|
const configPath = getConfigPath$1();
|
|
@@ -3487,20 +3635,20 @@ securityCmd.command("audit").description("Security audit — file permissions, D
|
|
|
3487
3635
|
process.exit(0);
|
|
3488
3636
|
});
|
|
3489
3637
|
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) => {
|
|
3490
|
-
const { osintSetup, osintQuickStart } = await Promise.resolve().then(() => require("./osint-
|
|
3638
|
+
const { osintSetup, osintQuickStart } = await Promise.resolve().then(() => require("./osint-DtRd_A_O.js"));
|
|
3491
3639
|
if (opts.show || opts.reset) await osintSetup({
|
|
3492
3640
|
show: opts.show,
|
|
3493
3641
|
reset: opts.reset
|
|
3494
3642
|
});
|
|
3495
3643
|
else if (workflow === "chat") {
|
|
3496
|
-
const { runOsintChat } = await Promise.resolve().then(() => require("./osint-chat-
|
|
3644
|
+
const { runOsintChat } = await Promise.resolve().then(() => require("./osint-chat-CfexqWop.js"));
|
|
3497
3645
|
await runOsintChat({ model: opts.model });
|
|
3498
3646
|
} else if (workflow === "setup" || workflow) await osintSetup({ mode: workflow });
|
|
3499
3647
|
else await osintQuickStart();
|
|
3500
3648
|
process.exit(0);
|
|
3501
3649
|
});
|
|
3502
3650
|
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) => {
|
|
3503
|
-
const { runChat } = await Promise.resolve().then(() => require("./chat-
|
|
3651
|
+
const { runChat } = await Promise.resolve().then(() => require("./chat-D-i8bqTf.js"));
|
|
3504
3652
|
const cfg = await new require_manager.ConfigManager().load().catch(() => null);
|
|
3505
3653
|
const port = cfg?.gateway?.port ?? 18789;
|
|
3506
3654
|
const gm = new GatewayManager$1();
|
|
@@ -3515,7 +3663,7 @@ program.command("chat").description("Interactive terminal chat with the agent").
|
|
|
3515
3663
|
});
|
|
3516
3664
|
const agentRunCmd = program.command("agent").description("Run agent with thinking control");
|
|
3517
3665
|
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) => {
|
|
3518
|
-
const { runAgent } = await Promise.resolve().then(() => require("./src-
|
|
3666
|
+
const { runAgent } = await Promise.resolve().then(() => require("./src-ClYgvXAj.js"));
|
|
3519
3667
|
await runAgent({
|
|
3520
3668
|
message: opts.message,
|
|
3521
3669
|
thinking: opts.thinking,
|
|
@@ -3531,7 +3679,7 @@ agentRunCmd.requiredOption("-m, --message <text>", "Message to send to the agent
|
|
|
3531
3679
|
});
|
|
3532
3680
|
const threadsCmd = program.command("threads").description("ACP thread-bound agent sessions");
|
|
3533
3681
|
threadsCmd.command("list").description("List agent threads").option("--channel <id>", "Filter by channel").option("--active", "Show only active threads").action(async (opts) => {
|
|
3534
|
-
const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-
|
|
3682
|
+
const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-ClYgvXAj.js"));
|
|
3535
3683
|
const mgr = new ACPThreadManager();
|
|
3536
3684
|
const threads = await mgr.list({
|
|
3537
3685
|
channelId: opts.channel,
|
|
@@ -3541,7 +3689,7 @@ threadsCmd.command("list").description("List agent threads").option("--channel <
|
|
|
3541
3689
|
process.exit(0);
|
|
3542
3690
|
});
|
|
3543
3691
|
threadsCmd.command("terminate <id>").description("Terminate a thread").action(async (id) => {
|
|
3544
|
-
const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-
|
|
3692
|
+
const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-ClYgvXAj.js"));
|
|
3545
3693
|
await new ACPThreadManager().terminate(id);
|
|
3546
3694
|
console.log(require("chalk").green(`\n ✔ Thread terminated: ${id}\n`));
|
|
3547
3695
|
process.exit(0);
|
|
@@ -3710,7 +3858,7 @@ cronCmd.command("remove <id>").action(async (id) => {
|
|
|
3710
3858
|
program.command("nodes").description("List connected mobile nodes (iOS/Android Connect tab)").action(async () => {
|
|
3711
3859
|
const chalk$11 = require("chalk");
|
|
3712
3860
|
const http$2 = await import("http");
|
|
3713
|
-
const fs$7 = await import("fs-extra");
|
|
3861
|
+
const fs$7 = (await import("fs-extra")).default;
|
|
3714
3862
|
const { getConfigPath: getConfigPath$1 } = await Promise.resolve().then(() => require("./paths-D-QecARF.js"));
|
|
3715
3863
|
let port = 18789;
|
|
3716
3864
|
try {
|
|
@@ -3789,7 +3937,7 @@ logsCmd.action(async (opts) => {
|
|
|
3789
3937
|
}
|
|
3790
3938
|
});
|
|
3791
3939
|
program.command("gateway:serve").description("Start the gateway server in the foreground (used by daemon)").action(async () => {
|
|
3792
|
-
const { startGateway } = await Promise.resolve().then(() => require("./server-
|
|
3940
|
+
const { startGateway } = await Promise.resolve().then(() => require("./server-rHap51o6.js"));
|
|
3793
3941
|
await startGateway();
|
|
3794
3942
|
process.on("SIGINT", () => process.exit(0));
|
|
3795
3943
|
process.on("SIGTERM", () => process.exit(0));
|
|
@@ -3849,7 +3997,7 @@ authCmd.command("add <service_id>").description("Add API key for a service (any
|
|
|
3849
3997
|
const { CredentialsStore } = await Promise.resolve().then(() => require("./credentials-store-Bmm9e1SS.js"));
|
|
3850
3998
|
const { getHyperClawDir: getHyperClawDir$1, getEnvFilePath } = await Promise.resolve().then(() => require("./paths-D-QecARF.js"));
|
|
3851
3999
|
const { getApiKeyGuide, GENERIC_API_KEY_STEPS } = await Promise.resolve().then(() => require("./api-keys-guide--73Bq0Ey.js"));
|
|
3852
|
-
const fs$7 = await import("fs-extra");
|
|
4000
|
+
const fs$7 = (await import("fs-extra")).default;
|
|
3853
4001
|
const path$5 = await import("path");
|
|
3854
4002
|
const guide = getApiKeyGuide(serviceId);
|
|
3855
4003
|
const steps = guide?.setupSteps ?? GENERIC_API_KEY_STEPS;
|
|
@@ -3903,7 +4051,7 @@ authCmd.command("remove <service_id>").description("Remove API key for a service
|
|
|
3903
4051
|
const chalk$11 = require("chalk");
|
|
3904
4052
|
const { CredentialsStore } = await Promise.resolve().then(() => require("./credentials-store-Bmm9e1SS.js"));
|
|
3905
4053
|
const { getHyperClawDir: getHyperClawDir$1, getEnvFilePath } = await Promise.resolve().then(() => require("./paths-D-QecARF.js"));
|
|
3906
|
-
const fs$7 = await import("fs-extra");
|
|
4054
|
+
const fs$7 = (await import("fs-extra")).default;
|
|
3907
4055
|
const safeId = serviceId.replace(/[^a-zA-Z0-9_-]/g, "_").toLowerCase();
|
|
3908
4056
|
const creds = new CredentialsStore(getHyperClawDir$1());
|
|
3909
4057
|
await creds.remove(safeId);
|
|
@@ -4042,13 +4190,13 @@ workspaceCmd.command("show [dir]").description("Show workspace files summary").a
|
|
|
4042
4190
|
});
|
|
4043
4191
|
const botCmd = program.command("bot").description("HyperClaw Bot — companion bot for remote gateway control");
|
|
4044
4192
|
botCmd.command("status").action(async () => {
|
|
4045
|
-
const { showBotStatus } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
4193
|
+
const { showBotStatus } = await Promise.resolve().then(() => require("./hyperclawbot-DcQt62PL.js"));
|
|
4046
4194
|
await showBotStatus();
|
|
4047
4195
|
process.exit(0);
|
|
4048
4196
|
});
|
|
4049
4197
|
botCmd.command("setup").description("Configure HyperClaw Bot (Telegram token, allowed users)").action(async () => {
|
|
4050
4198
|
const inquirer$2 = require("inquirer");
|
|
4051
|
-
const { saveBotConfig } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
4199
|
+
const { saveBotConfig } = await Promise.resolve().then(() => require("./hyperclawbot-DcQt62PL.js"));
|
|
4052
4200
|
const chalk$11 = require("chalk");
|
|
4053
4201
|
console.log(chalk$11.bold.hex("#06b6d4")("\n 🦅 HYPERCLAW BOT SETUP\n"));
|
|
4054
4202
|
console.log(chalk$11.gray(" Create a bot at t.me/BotFather, then paste the token below.\n"));
|
|
@@ -4110,14 +4258,14 @@ botCmd.command("start").description("Start HyperClaw Bot (foreground or backgrou
|
|
|
4110
4258
|
cwd: process.cwd()
|
|
4111
4259
|
});
|
|
4112
4260
|
child.unref();
|
|
4113
|
-
const { writeBotPid } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
4261
|
+
const { writeBotPid } = await Promise.resolve().then(() => require("./hyperclawbot-DcQt62PL.js"));
|
|
4114
4262
|
await writeBotPid(child.pid);
|
|
4115
4263
|
console.log(require("chalk").green(`\n ✔ HyperClaw Bot started in background (PID ${child.pid})`));
|
|
4116
4264
|
console.log(require("chalk").gray(" Stop with: hyperclaw bot stop\n"));
|
|
4117
4265
|
process.exit(0);
|
|
4118
4266
|
return;
|
|
4119
4267
|
}
|
|
4120
|
-
const { loadBotConfig, TelegramHyperClawBot, DiscordHyperClawBot } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
4268
|
+
const { loadBotConfig, TelegramHyperClawBot, DiscordHyperClawBot } = await Promise.resolve().then(() => require("./hyperclawbot-DcQt62PL.js"));
|
|
4121
4269
|
const cfg = await loadBotConfig();
|
|
4122
4270
|
if (!cfg) {
|
|
4123
4271
|
console.log(require("chalk").red("\n ✖ HyperClaw Bot not configured. Run: hyperclaw bot setup\n"));
|
|
@@ -4144,41 +4292,41 @@ botCmd.command("start").description("Start HyperClaw Bot (foreground or backgrou
|
|
|
4144
4292
|
});
|
|
4145
4293
|
botCmd.command("stop").description("Stop HyperClaw Bot (when running in background)").action(async () => {
|
|
4146
4294
|
const chalk$11 = require("chalk");
|
|
4147
|
-
const { stopBotProcess } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
4295
|
+
const { stopBotProcess } = await Promise.resolve().then(() => require("./hyperclawbot-DcQt62PL.js"));
|
|
4148
4296
|
const stopped = await stopBotProcess();
|
|
4149
4297
|
if (stopped) console.log(chalk$11.green("\n ✔ HyperClaw Bot stopped\n"));
|
|
4150
4298
|
else console.log(chalk$11.gray("\n Bot not running in background (no PID file). Use Ctrl+C to stop foreground bot.\n"));
|
|
4151
4299
|
process.exit(stopped ? 0 : 1);
|
|
4152
4300
|
});
|
|
4153
4301
|
memCmd.command("search <query>").description("Search MEMORY.md").action(async (query) => {
|
|
4154
|
-
const { searchMemory } = await Promise.resolve().then(() => require("./src-
|
|
4302
|
+
const { searchMemory } = await Promise.resolve().then(() => require("./src-ClYgvXAj.js"));
|
|
4155
4303
|
await searchMemory(query);
|
|
4156
4304
|
process.exit(0);
|
|
4157
4305
|
});
|
|
4158
4306
|
memCmd.command("auto-show").description("Show auto-extracted memories from MEMORY.md").action(async () => {
|
|
4159
|
-
const { showMemory } = await Promise.resolve().then(() => require("./src-
|
|
4307
|
+
const { showMemory } = await Promise.resolve().then(() => require("./src-ClYgvXAj.js"));
|
|
4160
4308
|
await showMemory();
|
|
4161
4309
|
process.exit(0);
|
|
4162
4310
|
});
|
|
4163
4311
|
memCmd.command("clear").description("Clear all auto-extracted memories").action(async () => {
|
|
4164
|
-
const { clearMemory } = await Promise.resolve().then(() => require("./src-
|
|
4312
|
+
const { clearMemory } = await Promise.resolve().then(() => require("./src-ClYgvXAj.js"));
|
|
4165
4313
|
await clearMemory();
|
|
4166
4314
|
process.exit(0);
|
|
4167
4315
|
});
|
|
4168
4316
|
memCmd.command("save <text>").description("Manually save a fact to MEMORY.md").action(async (text) => {
|
|
4169
|
-
const { saveMemoryDirect } = await Promise.resolve().then(() => require("./src-
|
|
4317
|
+
const { saveMemoryDirect } = await Promise.resolve().then(() => require("./src-ClYgvXAj.js"));
|
|
4170
4318
|
await saveMemoryDirect(text);
|
|
4171
4319
|
console.log(chalk.default.hex("#06b6d4")(` ✅ Saved: ${text}\n`));
|
|
4172
4320
|
process.exit(0);
|
|
4173
4321
|
});
|
|
4174
4322
|
const pcCmd = program.command("pc").description("PC access — give the AI access to your computer");
|
|
4175
4323
|
pcCmd.command("status").description("Show PC access status and config").action(async () => {
|
|
4176
|
-
const { showPCAccessStatus } = await Promise.resolve().then(() => require("./src-
|
|
4324
|
+
const { showPCAccessStatus } = await Promise.resolve().then(() => require("./src-ClYgvXAj.js"));
|
|
4177
4325
|
await showPCAccessStatus();
|
|
4178
4326
|
process.exit(0);
|
|
4179
4327
|
});
|
|
4180
4328
|
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) => {
|
|
4181
|
-
const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-
|
|
4329
|
+
const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-ClYgvXAj.js"));
|
|
4182
4330
|
const level = opts.level;
|
|
4183
4331
|
const allowed = [
|
|
4184
4332
|
"read-only",
|
|
@@ -4205,7 +4353,7 @@ pcCmd.command("enable").description("Enable PC access for the AI").option("--lev
|
|
|
4205
4353
|
process.exit(0);
|
|
4206
4354
|
});
|
|
4207
4355
|
pcCmd.command("disable").description("Disable PC access").action(async () => {
|
|
4208
|
-
const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-
|
|
4356
|
+
const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-ClYgvXAj.js"));
|
|
4209
4357
|
await savePCAccessConfig({ enabled: false });
|
|
4210
4358
|
console.log(chalk.default.hex("#06b6d4")("\n ✅ PC access disabled\n"));
|
|
4211
4359
|
process.exit(0);
|
|
@@ -4230,7 +4378,7 @@ pcCmd.command("log").description("Show PC access audit log").option("-n, --lines
|
|
|
4230
4378
|
process.exit(0);
|
|
4231
4379
|
});
|
|
4232
4380
|
pcCmd.command("run <command>").description("Run a shell command via PC access (must be enabled)").action(async (command) => {
|
|
4233
|
-
const { loadPCAccessConfig, getPCAccessTools } = await Promise.resolve().then(() => require("./src-
|
|
4381
|
+
const { loadPCAccessConfig, getPCAccessTools } = await Promise.resolve().then(() => require("./src-ClYgvXAj.js"));
|
|
4234
4382
|
const cfg = await loadPCAccessConfig();
|
|
4235
4383
|
if (!cfg.enabled) {
|
|
4236
4384
|
console.log(chalk.default.red("\n ✖ PC access disabled. Run: hyperclaw pc enable\n"));
|
|
@@ -4261,7 +4409,7 @@ program.command("setup").description("Setup wizard — alias for `hyperclaw onbo
|
|
|
4261
4409
|
});
|
|
4262
4410
|
async function runUpdateCheck() {
|
|
4263
4411
|
try {
|
|
4264
|
-
const { checkForUpdates: checkForUpdates$1, notifyUpdateAvailable } = await Promise.resolve().then(() => require("./update-check-
|
|
4412
|
+
const { checkForUpdates: checkForUpdates$1, notifyUpdateAvailable } = await Promise.resolve().then(() => require("./update-check-B-wd-tpa.js"));
|
|
4265
4413
|
const path$5 = require("path");
|
|
4266
4414
|
const { readFileSync } = require("fs");
|
|
4267
4415
|
const pkgPath = path$5.resolve(__dirname, "../package.json");
|
|
@@ -4289,7 +4437,7 @@ if (process.argv.length === 2) (async () => {
|
|
|
4289
4437
|
console.log(` ✓ ${t.c("hyperclaw --help")} — 📖 all commands\n`);
|
|
4290
4438
|
} else {
|
|
4291
4439
|
await new require_banner.Banner().showNeonBanner(false);
|
|
4292
|
-
const { HyperClawWizard: HyperClawWizard$1 } = await Promise.resolve().then(() => require("./onboard-
|
|
4440
|
+
const { HyperClawWizard: HyperClawWizard$1 } = await Promise.resolve().then(() => require("./onboard-BF29mNbC.js"));
|
|
4293
4441
|
await new HyperClawWizard$1().run({ wizard: true });
|
|
4294
4442
|
}
|
|
4295
4443
|
await runUpdateCheck();
|