hyperclaw 5.0.0 → 5.0.1
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 +204 -69
- package/dist/api-keys-guide-CGn5BSF7.js +149 -0
- package/dist/audit-BJohI_vC.js +441 -0
- package/dist/bounty-tools-CY_i91DU.js +211 -0
- package/dist/claw-tasks-Cyzdbhz_.js +80 -0
- package/dist/cost-tracker-Ca1UPZ33.js +103 -0
- package/dist/credentials-store-CA8UtK0T.js +77 -0
- package/dist/credentials-store-Cm7DH-kh.js +4 -0
- package/dist/cron-tasks-_pqQCmxc.js +82 -0
- package/dist/daemon-7ViroziB.js +5 -0
- package/dist/daemon-BfyKmZhr.js +318 -0
- package/dist/delivery-DVHmv1IR.js +4 -0
- package/dist/delivery-DpMX0Yyc.js +95 -0
- package/dist/destructive-gate-DZt71UZR.js +101 -0
- package/dist/engine-B0kLfRL0.js +256 -0
- package/dist/engine-BJUpRUOv.js +7 -0
- package/dist/env-resolve-17ekEU6p.js +10 -0
- package/dist/env-resolve-Z2XF6leB.js +115 -0
- package/dist/heartbeat-engine-Ut6pXBD6.js +83 -0
- package/dist/hub-9LaKnLjY.js +6 -0
- package/dist/hub-CfwUz9YW.js +515 -0
- package/dist/hyperclawbot-CBiDSKsa.js +505 -0
- package/dist/inference-0mlFQqIm.js +922 -0
- package/dist/inference-SzqFe_nk.js +6 -0
- package/dist/knowledge-graph-DE5lSF02.js +131 -0
- package/dist/loader-BkDi8MD9.js +400 -0
- package/dist/loader-DI2qDRPC.js +4 -0
- package/dist/logger-Cp8wC7F8.js +83 -0
- package/dist/manager-B2Gls5RG.js +218 -0
- package/dist/manager-CWNSML5D.js +117 -0
- package/dist/manager-SJe9gt-q.js +4 -0
- package/dist/mcp-loader-CvxRDtPC.js +94 -0
- package/dist/memory-auto-CpQHZlEJ.js +306 -0
- package/dist/memory-auto-Z6LCf-iK.js +5 -0
- package/dist/memory-integration-g2vxwgoE.js +91 -0
- package/dist/moltbook-Cl8cQfxJ.js +81 -0
- package/dist/nodes-registry-C9dCFwjh.js +52 -0
- package/dist/oauth-flow-CeaaGAz0.js +150 -0
- package/dist/oauth-provider-B4dzn56l.js +110 -0
- package/dist/observability-nZ3CBIxG.js +89 -0
- package/dist/onboard-BBBWcfhp.js +10 -0
- package/dist/onboard-Bw28IRQ3.js +4070 -0
- package/dist/orchestrator-BovkM63z.js +6 -0
- package/dist/orchestrator-DSbpkP1X.js +189 -0
- package/dist/osint-B4_m3VHQ.js +277 -0
- package/dist/pending-approval-BgNjjuI2.js +22 -0
- package/dist/run-main.js +82 -67
- package/dist/runner-CJFJUtPm.js +1271 -0
- package/dist/sdk/index.js +2 -2
- package/dist/sdk/index.mjs +2 -2
- package/dist/server-Brl_HQUB.js +1255 -0
- package/dist/server-DhfipkwN.js +4 -0
- package/dist/skill-runtime-BXWd-Ktf.js +102 -0
- package/dist/skill-runtime-jgklm02e.js +5 -0
- package/dist/src-Bhybpk1J.js +63 -0
- package/dist/src-DMJ4-uqk.js +458 -0
- package/dist/sub-agent-tools-DHY-4WWM.js +39 -0
- package/dist/tool-policy-DZvF8xlQ.js +189 -0
- package/dist/tts-elevenlabs-C06nUxMK.js +61 -0
- package/dist/update-check-w4XuxVl7.js +81 -0
- package/dist/vision-JOtOS1Br.js +121 -0
- package/dist/vision-tools-CB28ZCO_.js +5 -0
- package/dist/vision-tools-vPPwQ-0N.js +51 -0
- package/dist/voice-transcription-DBo5hXmu.js +138 -0
- package/package.json +1 -1
package/dist/run-main.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
const require_chunk = require('./chunk-jS-bbMI5.js');
|
|
2
2
|
require('./paths-AIyBxIzm.js');
|
|
3
3
|
require('./paths-DPovhojT.js');
|
|
4
|
-
require('./env-resolve-
|
|
5
|
-
const require_onboard = require('./onboard-
|
|
6
|
-
require('./server-
|
|
7
|
-
const require_daemon = require('./daemon-
|
|
4
|
+
require('./env-resolve-Z2XF6leB.js');
|
|
5
|
+
const require_onboard = require('./onboard-Bw28IRQ3.js');
|
|
6
|
+
require('./server-Brl_HQUB.js');
|
|
7
|
+
const require_daemon = require('./daemon-BfyKmZhr.js');
|
|
8
8
|
require('./theme-DcxwcUgZ.js');
|
|
9
|
-
const require_hub = require('./hub-
|
|
9
|
+
const require_hub = require('./hub-CfwUz9YW.js');
|
|
10
10
|
const require_manager = require('./manager-rgCsaWT1.js');
|
|
11
11
|
const require_manager$1 = require('./manager-03ipO9R0.js');
|
|
12
12
|
const require_memory = require('./memory-DsS_eFvJ.js');
|
|
13
|
-
const require_loader = require('./loader-
|
|
13
|
+
const require_loader = require('./loader-BkDi8MD9.js');
|
|
14
14
|
const require_agents_routing = require('./agents-routing-ChHiZp36.js');
|
|
15
15
|
const require_pairing = require('./pairing-6iM27aD8.js');
|
|
16
16
|
const require_doctor = require('./doctor-BvCe8BBk.js');
|
|
@@ -38,7 +38,7 @@ var Dashboard = class {
|
|
|
38
38
|
console.clear();
|
|
39
39
|
await this.drawDashboard();
|
|
40
40
|
if (live) {
|
|
41
|
-
console.log(chalk.default.hex("#06b6d4")("
|
|
41
|
+
console.log(chalk.default.hex("#06b6d4")("?? LIVE MODE � Ctrl+C to exit\n"));
|
|
42
42
|
this.startLiveUpdates();
|
|
43
43
|
}
|
|
44
44
|
}
|
|
@@ -53,44 +53,44 @@ var Dashboard = class {
|
|
|
53
53
|
const model = cfg?.provider?.modelId || "openrouter/auto";
|
|
54
54
|
const channels = (cfg?.channels ?? cfg?.gateway?.enabledChannels ?? ["cli"]).join(", ");
|
|
55
55
|
const isRunning = await gm.isRunning(port);
|
|
56
|
-
const statusDot = isRunning ? chalk.default.hex("#06b6d4")("
|
|
56
|
+
const statusDot = isRunning ? chalk.default.hex("#06b6d4")("?") : chalk.default.gray("0");
|
|
57
57
|
const statusText = isRunning ? chalk.default.hex("#06b6d4")("ONLINE") : chalk.default.gray("OFFLINE");
|
|
58
58
|
const w = 72;
|
|
59
|
-
const line = "
|
|
59
|
+
const line = "=".repeat(w);
|
|
60
60
|
const c = chalk.default.hex("#06b6d4");
|
|
61
61
|
const row = (content) => {
|
|
62
62
|
const stripped = content.replace(/\x1b\[[0-9;]*m/g, "");
|
|
63
63
|
const pad = Math.max(0, w - stripped.length - 1);
|
|
64
|
-
return c(
|
|
64
|
+
return c(`� `) + content + " ".repeat(pad) + c(`�`);
|
|
65
65
|
};
|
|
66
|
-
console.log(c(
|
|
67
|
-
console.log(c(
|
|
68
|
-
console.log(c(
|
|
69
|
-
console.log(row(`${statusDot} Gateway ${statusText} ${chalk.default.gray("
|
|
70
|
-
console.log(row(`${c("
|
|
71
|
-
console.log(c(
|
|
66
|
+
console.log(c(`-${line}�`));
|
|
67
|
+
console.log(c(`�`) + chalk.default.bold.hex("#06b6d4")(`${"?? HYPERCLAW v5.0.1 � GATEWAY DASHBOARD".padStart(45).padEnd(w)}`) + c(`�`));
|
|
68
|
+
console.log(c(`�${line}�`));
|
|
69
|
+
console.log(row(`${statusDot} Gateway ${statusText} ${chalk.default.gray("�")} ws://localhost:${port} ${chalk.default.gray("�")} Agent: ${c(agent)}`));
|
|
70
|
+
console.log(row(`${c("?")} Model ${chalk.default.gray(model.slice(0, 30))} ${chalk.default.gray("�")} User: ${c(user)}`));
|
|
71
|
+
console.log(c(`�${"-".repeat(w)}�`));
|
|
72
72
|
console.log(row(chalk.default.bold("ACTIVE CHANNELS")));
|
|
73
73
|
const chList = (channels || "cli").split(", ");
|
|
74
74
|
for (let i = 0; i < chList.length; i += 3) {
|
|
75
|
-
const group = chList.slice(i, i + 3).map((ch) => ` ${c("
|
|
75
|
+
const group = chList.slice(i, i + 3).map((ch) => ` ${c("?")} ${ch.padEnd(12)}`).join("");
|
|
76
76
|
console.log(row(group));
|
|
77
77
|
}
|
|
78
|
-
console.log(c(
|
|
78
|
+
console.log(c(`�${"-".repeat(w)}�`));
|
|
79
79
|
console.log(row(chalk.default.bold("INSTALLED SKILLS")));
|
|
80
80
|
if (installed.length === 0) console.log(row(chalk.default.gray(" No skills installed. Run: hyperclaw hub")));
|
|
81
81
|
else for (let i = 0; i < installed.length; i += 3) {
|
|
82
|
-
const group = installed.slice(i, i + 3).map((s) => ` ${c("
|
|
82
|
+
const group = installed.slice(i, i + 3).map((s) => ` ${c("?")} ${s.name.slice(0, 14).padEnd(14)}`).join("");
|
|
83
83
|
console.log(row(group));
|
|
84
84
|
}
|
|
85
|
-
console.log(c(
|
|
85
|
+
console.log(c(`�${"-".repeat(w)}�`));
|
|
86
86
|
console.log(row(chalk.default.bold("RECENT ACTIVITY")));
|
|
87
87
|
const now = (/* @__PURE__ */ new Date()).toLocaleTimeString();
|
|
88
88
|
console.log(row(` [${now}] Gateway heartbeat: ${c("OK")}`));
|
|
89
|
-
console.log(row(` [${now}] AGENTS.md loaded
|
|
89
|
+
console.log(row(` [${now}] AGENTS.md loaded � rules active`));
|
|
90
90
|
console.log(row(` [${now}] Channels monitoring...`));
|
|
91
|
-
console.log(c(
|
|
92
|
-
console.log(row(chalk.default.gray("Commands: [d] ") + chalk.default.red("
|
|
93
|
-
console.log(c(
|
|
91
|
+
console.log(c(`�${"-".repeat(w)}�`));
|
|
92
|
+
console.log(row(chalk.default.gray("Commands: [d] ") + chalk.default.red("?? daemon") + chalk.default.gray(" [h] hub [g] gateway [m] memory [q] quit")));
|
|
93
|
+
console.log(c(`L${line}-\n`));
|
|
94
94
|
}
|
|
95
95
|
startLiveUpdates() {
|
|
96
96
|
let tick = 0;
|
|
@@ -2426,7 +2426,7 @@ var init_queue = require_chunk.__esm({ "src/delivery/queue.ts"() {
|
|
|
2426
2426
|
//#endregion
|
|
2427
2427
|
//#region src/cli/run-main.ts
|
|
2428
2428
|
const program = new commander.Command();
|
|
2429
|
-
program.name("hyperclaw").description("⚡ HyperClaw — AI Gateway Platform. The Lobster Evolution 🦅").version("5.0.
|
|
2429
|
+
program.name("hyperclaw").description("⚡ HyperClaw — AI Gateway Platform. The Lobster Evolution 🦅").version("5.0.1").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").hook("preAction", (thisCommand) => {
|
|
2430
2430
|
const profile = thisCommand.opts().profile;
|
|
2431
2431
|
if (profile) {
|
|
2432
2432
|
const os$8 = require("os");
|
|
@@ -2568,8 +2568,8 @@ sandboxCmd.command("explain").description("Show effective sandbox mode, tool pol
|
|
|
2568
2568
|
} catch {}
|
|
2569
2569
|
const sandboxMode = cfg?.agents?.defaults?.sandbox?.mode ?? "non-main";
|
|
2570
2570
|
const toolsCfg = cfg?.tools ?? {};
|
|
2571
|
-
const { describeToolPolicy, applyToolPolicy } = await Promise.resolve().then(() => require("./tool-policy-
|
|
2572
|
-
const { getBuiltinTools, getSessionsTools, getPCAccessTools, getBrowserTools, getExtractionTools, getWebsiteWatchTools, getVisionTools } = await Promise.resolve().then(() => require("./src-
|
|
2571
|
+
const { describeToolPolicy, applyToolPolicy } = await Promise.resolve().then(() => require("./tool-policy-DZvF8xlQ.js"));
|
|
2572
|
+
const { getBuiltinTools, getSessionsTools, getPCAccessTools, getBrowserTools, getExtractionTools, getWebsiteWatchTools, getVisionTools } = await Promise.resolve().then(() => require("./src-Bhybpk1J.js"));
|
|
2573
2573
|
const allTools = [
|
|
2574
2574
|
...getBuiltinTools(),
|
|
2575
2575
|
...getSessionsTools(() => null),
|
|
@@ -2912,7 +2912,7 @@ cfgCmd.command("set-service-key <serviceId> [apiKey]").description("Set API key
|
|
|
2912
2912
|
cfgCmd.command("schema").description("Show configuration schema").action(() => {
|
|
2913
2913
|
console.log(chalk.default.bold.hex("#06b6d4")("\n Config schema: ~/.hyperclaw/config.json\n"));
|
|
2914
2914
|
const schema = {
|
|
2915
|
-
version: "string (e.g. \"5.0.
|
|
2915
|
+
version: "string (e.g. \"5.0.1\")",
|
|
2916
2916
|
workspaceName: "string",
|
|
2917
2917
|
provider: {
|
|
2918
2918
|
providerId: "string",
|
|
@@ -3183,39 +3183,39 @@ themeCmd.command("preview").description("Preview all themes side-by-side").actio
|
|
|
3183
3183
|
});
|
|
3184
3184
|
const secretsCmd = program.command("secrets").description("External secrets management");
|
|
3185
3185
|
secretsCmd.command("audit").description("Audit all required secrets").option("--required-by <ids>", "Filter by skill/provider IDs (comma-separated)").action(async (opts) => {
|
|
3186
|
-
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-
|
|
3186
|
+
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-B2Gls5RG.js"));
|
|
3187
3187
|
const filter = opts.requiredBy?.split(",");
|
|
3188
3188
|
await new SecretsManager().audit(filter);
|
|
3189
3189
|
process.exit(0);
|
|
3190
3190
|
});
|
|
3191
3191
|
secretsCmd.command("set <KEY=value>").description("Set a secret in .env file").action(async (kv) => {
|
|
3192
|
-
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-
|
|
3192
|
+
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-B2Gls5RG.js"));
|
|
3193
3193
|
await new SecretsManager().set(kv);
|
|
3194
3194
|
process.exit(0);
|
|
3195
3195
|
});
|
|
3196
3196
|
secretsCmd.command("apply").description("Write secrets from .env to shell config (~/.bashrc, ~/.zshrc)").action(async () => {
|
|
3197
|
-
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-
|
|
3197
|
+
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-B2Gls5RG.js"));
|
|
3198
3198
|
await new SecretsManager().apply();
|
|
3199
3199
|
process.exit(0);
|
|
3200
3200
|
});
|
|
3201
3201
|
secretsCmd.command("reload").description("Reload secrets into running gateway").action(async () => {
|
|
3202
|
-
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-
|
|
3202
|
+
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-B2Gls5RG.js"));
|
|
3203
3203
|
await new SecretsManager().reload();
|
|
3204
3204
|
process.exit(0);
|
|
3205
3205
|
});
|
|
3206
3206
|
secretsCmd.command("remove <key>").description("Remove a secret from .env").action(async (key) => {
|
|
3207
|
-
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-
|
|
3207
|
+
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-B2Gls5RG.js"));
|
|
3208
3208
|
await new SecretsManager().remove(key);
|
|
3209
3209
|
process.exit(0);
|
|
3210
3210
|
});
|
|
3211
3211
|
secretsCmd.command("credentials").description("List provider credential files (credentials/*.json)").action(async () => {
|
|
3212
|
-
const { CredentialsStore } = await Promise.resolve().then(() => require("./credentials-store-
|
|
3212
|
+
const { CredentialsStore } = await Promise.resolve().then(() => require("./credentials-store-Cm7DH-kh.js"));
|
|
3213
3213
|
await new CredentialsStore().showList();
|
|
3214
3214
|
process.exit(0);
|
|
3215
3215
|
});
|
|
3216
3216
|
const securityCmd = program.command("security").description("Security tools");
|
|
3217
3217
|
securityCmd.command("audit").description("Security audit — file permissions, DM policies, embedded secrets").option("--deep", "Full deep scan including token entropy and installed skill risks").option("--fix", "Auto-fix safe findings (file permissions etc.)").option("--json", "Machine-readable JSON output").action(async (opts) => {
|
|
3218
|
-
const { runSecurityAudit } = await Promise.resolve().then(() => require("./audit-
|
|
3218
|
+
const { runSecurityAudit } = await Promise.resolve().then(() => require("./audit-BJohI_vC.js"));
|
|
3219
3219
|
await runSecurityAudit({
|
|
3220
3220
|
deep: opts.deep,
|
|
3221
3221
|
fix: opts.fix,
|
|
@@ -3223,9 +3223,24 @@ securityCmd.command("audit").description("Security audit — file permissions, D
|
|
|
3223
3223
|
});
|
|
3224
3224
|
process.exit(0);
|
|
3225
3225
|
});
|
|
3226
|
+
program.command("osint").description("OSINT / Ethical Hacking mode — configure HyperClaw for security research").argument("[workflow]", "Workflow preset: recon | bugbounty | pentest | footprint | custom").option("--show", "Show current OSINT profile").option("--reset", "Clear OSINT profile and disable OSINT mode").action(async (workflow, opts) => {
|
|
3227
|
+
const { osintSetup, osintQuickStart } = await Promise.resolve().then(() => require("./osint-B4_m3VHQ.js"));
|
|
3228
|
+
if (opts.show || opts.reset) await osintSetup({
|
|
3229
|
+
show: opts.show,
|
|
3230
|
+
reset: opts.reset
|
|
3231
|
+
});
|
|
3232
|
+
else if (workflow === "setup" || workflow) await osintSetup({ mode: workflow });
|
|
3233
|
+
else await osintQuickStart();
|
|
3234
|
+
process.exit(0);
|
|
3235
|
+
});
|
|
3236
|
+
program.command("osint setup").description("Interactive OSINT session setup wizard").action(async () => {
|
|
3237
|
+
const { osintSetup } = await Promise.resolve().then(() => require("./osint-B4_m3VHQ.js"));
|
|
3238
|
+
await osintSetup({});
|
|
3239
|
+
process.exit(0);
|
|
3240
|
+
});
|
|
3226
3241
|
const agentRunCmd = program.command("agent").description("Run agent with thinking control");
|
|
3227
3242
|
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) => {
|
|
3228
|
-
const { runAgent } = await Promise.resolve().then(() => require("./src-
|
|
3243
|
+
const { runAgent } = await Promise.resolve().then(() => require("./src-Bhybpk1J.js"));
|
|
3229
3244
|
await runAgent({
|
|
3230
3245
|
message: opts.message,
|
|
3231
3246
|
thinking: opts.thinking,
|
|
@@ -3241,7 +3256,7 @@ agentRunCmd.requiredOption("-m, --message <text>", "Message to send to the agent
|
|
|
3241
3256
|
});
|
|
3242
3257
|
const threadsCmd = program.command("threads").description("ACP thread-bound agent sessions");
|
|
3243
3258
|
threadsCmd.command("list").description("List agent threads").option("--channel <id>", "Filter by channel").option("--active", "Show only active threads").action(async (opts) => {
|
|
3244
|
-
const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-
|
|
3259
|
+
const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-Bhybpk1J.js"));
|
|
3245
3260
|
const mgr = new ACPThreadManager();
|
|
3246
3261
|
const threads = await mgr.list({
|
|
3247
3262
|
channelId: opts.channel,
|
|
@@ -3251,7 +3266,7 @@ threadsCmd.command("list").description("List agent threads").option("--channel <
|
|
|
3251
3266
|
process.exit(0);
|
|
3252
3267
|
});
|
|
3253
3268
|
threadsCmd.command("terminate <id>").description("Terminate a thread").action(async (id) => {
|
|
3254
|
-
const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-
|
|
3269
|
+
const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-Bhybpk1J.js"));
|
|
3255
3270
|
await new ACPThreadManager().terminate(id);
|
|
3256
3271
|
console.log(require("chalk").green(`\n ✔ Thread terminated: ${id}\n`));
|
|
3257
3272
|
process.exit(0);
|
|
@@ -3378,7 +3393,7 @@ gmailCmd.command("watch-setup").description("Register Gmail watch for push notif
|
|
|
3378
3393
|
const cronCmd = program.command("cron").description("Scheduled tasks (cron → agent prompt)");
|
|
3379
3394
|
cronCmd.command("list").action(async () => {
|
|
3380
3395
|
const chalk$11 = require("chalk");
|
|
3381
|
-
const { loadCronTasks } = await Promise.resolve().then(() => require("./cron-tasks-
|
|
3396
|
+
const { loadCronTasks } = await Promise.resolve().then(() => require("./cron-tasks-_pqQCmxc.js"));
|
|
3382
3397
|
const tasks = await loadCronTasks();
|
|
3383
3398
|
console.log(chalk$11.bold.cyan("\n ⏰ CRON TASKS\n"));
|
|
3384
3399
|
if (tasks.length === 0) {
|
|
@@ -3398,7 +3413,7 @@ cronCmd.command("list").action(async () => {
|
|
|
3398
3413
|
});
|
|
3399
3414
|
cronCmd.command("add").arguments("<schedule> <prompt>").option("-n, --name <name>", "Task name").action(async (schedule, prompt, opts) => {
|
|
3400
3415
|
const chalk$11 = require("chalk");
|
|
3401
|
-
const { loadCronTasks, addCronTask, saveCronTasks } = await Promise.resolve().then(() => require("./cron-tasks-
|
|
3416
|
+
const { loadCronTasks, addCronTask, saveCronTasks } = await Promise.resolve().then(() => require("./cron-tasks-_pqQCmxc.js"));
|
|
3402
3417
|
await loadCronTasks();
|
|
3403
3418
|
addCronTask(schedule, prompt, opts.name);
|
|
3404
3419
|
await saveCronTasks();
|
|
@@ -3408,7 +3423,7 @@ cronCmd.command("add").arguments("<schedule> <prompt>").option("-n, --name <name
|
|
|
3408
3423
|
});
|
|
3409
3424
|
cronCmd.command("remove <id>").action(async (id) => {
|
|
3410
3425
|
const chalk$11 = require("chalk");
|
|
3411
|
-
const { loadCronTasks, removeCronTask, saveCronTasks } = await Promise.resolve().then(() => require("./cron-tasks-
|
|
3426
|
+
const { loadCronTasks, removeCronTask, saveCronTasks } = await Promise.resolve().then(() => require("./cron-tasks-_pqQCmxc.js"));
|
|
3412
3427
|
await loadCronTasks();
|
|
3413
3428
|
if (removeCronTask(id)) {
|
|
3414
3429
|
await saveCronTasks();
|
|
@@ -3465,20 +3480,20 @@ program.command("nodes").description("List connected mobile nodes (iOS/Android C
|
|
|
3465
3480
|
});
|
|
3466
3481
|
const whCmd = program.command("webhooks").description("Webhook endpoint management");
|
|
3467
3482
|
whCmd.command("list").action(async () => {
|
|
3468
|
-
const { WebhookManager } = await Promise.resolve().then(() => require("./manager-
|
|
3483
|
+
const { WebhookManager } = await Promise.resolve().then(() => require("./manager-CWNSML5D.js"));
|
|
3469
3484
|
const m = new WebhookManager();
|
|
3470
3485
|
await m.load();
|
|
3471
3486
|
m.showList();
|
|
3472
3487
|
process.exit(0);
|
|
3473
3488
|
});
|
|
3474
3489
|
whCmd.command("remove <id>").action(async (id) => {
|
|
3475
|
-
const { WebhookManager } = await Promise.resolve().then(() => require("./manager-
|
|
3490
|
+
const { WebhookManager } = await Promise.resolve().then(() => require("./manager-CWNSML5D.js"));
|
|
3476
3491
|
const m = new WebhookManager();
|
|
3477
3492
|
await m.remove(id);
|
|
3478
3493
|
process.exit(0);
|
|
3479
3494
|
});
|
|
3480
3495
|
whCmd.command("toggle <id>").action(async (id) => {
|
|
3481
|
-
const { WebhookManager } = await Promise.resolve().then(() => require("./manager-
|
|
3496
|
+
const { WebhookManager } = await Promise.resolve().then(() => require("./manager-CWNSML5D.js"));
|
|
3482
3497
|
const m = new WebhookManager();
|
|
3483
3498
|
await m.toggle(id);
|
|
3484
3499
|
process.exit(0);
|
|
@@ -3487,7 +3502,7 @@ const logsCmd = program.command("logs").description("View gateway logs");
|
|
|
3487
3502
|
logsCmd.option("-n, --lines <n>", "Number of lines to show", "50");
|
|
3488
3503
|
logsCmd.option("-f, --follow", "Stream logs in real time");
|
|
3489
3504
|
logsCmd.action(async (opts) => {
|
|
3490
|
-
const { tailLog, streamLog } = await Promise.resolve().then(() => require("./logger-
|
|
3505
|
+
const { tailLog, streamLog } = await Promise.resolve().then(() => require("./logger-Cp8wC7F8.js"));
|
|
3491
3506
|
if (opts.follow) await streamLog();
|
|
3492
3507
|
else {
|
|
3493
3508
|
await tailLog(parseInt(opts.lines));
|
|
@@ -3495,7 +3510,7 @@ logsCmd.action(async (opts) => {
|
|
|
3495
3510
|
}
|
|
3496
3511
|
});
|
|
3497
3512
|
program.command("gateway:serve").description("Start the gateway server in the foreground (used by daemon)").action(async () => {
|
|
3498
|
-
const { startGateway } = await Promise.resolve().then(() => require("./server-
|
|
3513
|
+
const { startGateway } = await Promise.resolve().then(() => require("./server-DhfipkwN.js"));
|
|
3499
3514
|
await startGateway();
|
|
3500
3515
|
process.on("SIGINT", () => process.exit(0));
|
|
3501
3516
|
process.on("SIGTERM", () => process.exit(0));
|
|
@@ -3548,9 +3563,9 @@ const authCmd = program.command("auth").description("OAuth and provider credenti
|
|
|
3548
3563
|
authCmd.command("add <service_id>").description("Add API key for a service (any provider we do not ship). Stored in credentials/ and .env.").option("--key <api_key>", "API key (prompts if omitted)").option("--base-url <url>", "Base URL (optional, e.g. https://api.example.com)").option("--env-var <name>", "Env var name (default: <SERVICE_ID>_API_KEY)").action(async (serviceId, opts) => {
|
|
3549
3564
|
const chalk$11 = require("chalk");
|
|
3550
3565
|
const inquirer$2 = require("inquirer");
|
|
3551
|
-
const { CredentialsStore } = await Promise.resolve().then(() => require("./credentials-store-
|
|
3566
|
+
const { CredentialsStore } = await Promise.resolve().then(() => require("./credentials-store-Cm7DH-kh.js"));
|
|
3552
3567
|
const { getHyperClawDir, getEnvFilePath } = await Promise.resolve().then(() => require("./paths-D-QecARF.js"));
|
|
3553
|
-
const { getApiKeyGuide, GENERIC_API_KEY_STEPS } = await Promise.resolve().then(() => require("./api-keys-guide-
|
|
3568
|
+
const { getApiKeyGuide, GENERIC_API_KEY_STEPS } = await Promise.resolve().then(() => require("./api-keys-guide-CGn5BSF7.js"));
|
|
3554
3569
|
const fs$7 = await import("fs-extra");
|
|
3555
3570
|
const path$7 = await import("path");
|
|
3556
3571
|
const guide = getApiKeyGuide(serviceId);
|
|
@@ -3602,7 +3617,7 @@ authCmd.command("add <service_id>").description("Add API key for a service (any
|
|
|
3602
3617
|
});
|
|
3603
3618
|
authCmd.command("remove <service_id>").description("Remove API key for a service from credentials and .env").action(async (serviceId) => {
|
|
3604
3619
|
const chalk$11 = require("chalk");
|
|
3605
|
-
const { CredentialsStore } = await Promise.resolve().then(() => require("./credentials-store-
|
|
3620
|
+
const { CredentialsStore } = await Promise.resolve().then(() => require("./credentials-store-Cm7DH-kh.js"));
|
|
3606
3621
|
const { getHyperClawDir, getEnvFilePath } = await Promise.resolve().then(() => require("./paths-D-QecARF.js"));
|
|
3607
3622
|
const fs$7 = await import("fs-extra");
|
|
3608
3623
|
const safeId = serviceId.replace(/[^a-zA-Z0-9_-]/g, "_").toLowerCase();
|
|
@@ -3622,7 +3637,7 @@ authCmd.command("oauth <provider>").description("Run full OAuth flow. Providers:
|
|
|
3622
3637
|
const chalk$11 = require("chalk");
|
|
3623
3638
|
const ora$4 = (await import("ora")).default;
|
|
3624
3639
|
try {
|
|
3625
|
-
const { runOAuthFlow } = await Promise.resolve().then(() => require("./oauth-flow-
|
|
3640
|
+
const { runOAuthFlow } = await Promise.resolve().then(() => require("./oauth-flow-CeaaGAz0.js"));
|
|
3626
3641
|
const spinner = ora$4("Starting OAuth flow...").start();
|
|
3627
3642
|
spinner.text = "Opening browser — complete the consent and return here.";
|
|
3628
3643
|
const tokens = await runOAuthFlow(provider, {
|
|
@@ -3630,7 +3645,7 @@ authCmd.command("oauth <provider>").description("Run full OAuth flow. Providers:
|
|
|
3630
3645
|
clientSecret: opts.clientSecret
|
|
3631
3646
|
});
|
|
3632
3647
|
spinner.stop();
|
|
3633
|
-
const { writeOAuthToken } = await Promise.resolve().then(() => require("./oauth-provider-
|
|
3648
|
+
const { writeOAuthToken } = await Promise.resolve().then(() => require("./oauth-provider-B4dzn56l.js"));
|
|
3634
3649
|
const now = Math.floor(Date.now() / 1e3);
|
|
3635
3650
|
const expires_at = tokens.expires_in ? now + tokens.expires_in : void 0;
|
|
3636
3651
|
const tokenUrl = provider === "google" || provider === "google-gmail" ? "https://oauth2.googleapis.com/token" : provider === "microsoft" ? "https://login.microsoftonline.com/common/oauth2/v2.0/token" : void 0;
|
|
@@ -3665,7 +3680,7 @@ authCmd.command("setup-token <provider>").description("Save setup token (Anthrop
|
|
|
3665
3680
|
console.log(chalk$11.red("\n ✖ No token provided.\n"));
|
|
3666
3681
|
process.exit(1);
|
|
3667
3682
|
}
|
|
3668
|
-
const { writeOAuthToken } = await Promise.resolve().then(() => require("./oauth-provider-
|
|
3683
|
+
const { writeOAuthToken } = await Promise.resolve().then(() => require("./oauth-provider-B4dzn56l.js"));
|
|
3669
3684
|
await writeOAuthToken("anthropic-setup", {
|
|
3670
3685
|
access_token: token.trim(),
|
|
3671
3686
|
token_url: "https://api.anthropic.com"
|
|
@@ -3676,7 +3691,7 @@ authCmd.command("setup-token <provider>").description("Save setup token (Anthrop
|
|
|
3676
3691
|
});
|
|
3677
3692
|
authCmd.command("oauth-set <provider>").description("Save OAuth tokens manually (access_token, refresh_token, etc.) to ~/.hyperclaw/oauth-<provider>.json").option("--token <access_token>", "Access token").option("--refresh <refresh_token>", "Refresh token (optional)").option("--expires-in <seconds>", "Token lifetime in seconds (optional)").option("--token-url <url>", "Refresh endpoint URL (optional)").action(async (provider, opts) => {
|
|
3678
3693
|
const chalk$11 = require("chalk");
|
|
3679
|
-
const { writeOAuthToken } = await Promise.resolve().then(() => require("./oauth-provider-
|
|
3694
|
+
const { writeOAuthToken } = await Promise.resolve().then(() => require("./oauth-provider-B4dzn56l.js"));
|
|
3680
3695
|
const access_token = opts.token || process.env.OAUTH_ACCESS_TOKEN;
|
|
3681
3696
|
if (!access_token) {
|
|
3682
3697
|
console.log(chalk$11.red("\n ✖ Provide --token <access_token> or set OAUTH_ACCESS_TOKEN\n"));
|
|
@@ -3743,13 +3758,13 @@ workspaceCmd.command("show [dir]").description("Show workspace files summary").a
|
|
|
3743
3758
|
});
|
|
3744
3759
|
const botCmd = program.command("bot").description("HyperClaw Bot — companion bot for remote gateway control");
|
|
3745
3760
|
botCmd.command("status").action(async () => {
|
|
3746
|
-
const { showBotStatus } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
3761
|
+
const { showBotStatus } = await Promise.resolve().then(() => require("./hyperclawbot-CBiDSKsa.js"));
|
|
3747
3762
|
await showBotStatus();
|
|
3748
3763
|
process.exit(0);
|
|
3749
3764
|
});
|
|
3750
3765
|
botCmd.command("setup").description("Configure HyperClaw Bot (Telegram token, allowed users)").action(async () => {
|
|
3751
3766
|
const inquirer$2 = require("inquirer");
|
|
3752
|
-
const { saveBotConfig } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
3767
|
+
const { saveBotConfig } = await Promise.resolve().then(() => require("./hyperclawbot-CBiDSKsa.js"));
|
|
3753
3768
|
const chalk$11 = require("chalk");
|
|
3754
3769
|
console.log(chalk$11.bold.hex("#06b6d4")("\n 🦅 HYPERCLAW BOT SETUP\n"));
|
|
3755
3770
|
console.log(chalk$11.gray(" Create a bot at t.me/BotFather, then paste the token below.\n"));
|
|
@@ -3811,14 +3826,14 @@ botCmd.command("start").description("Start HyperClaw Bot (foreground or backgrou
|
|
|
3811
3826
|
cwd: process.cwd()
|
|
3812
3827
|
});
|
|
3813
3828
|
child.unref();
|
|
3814
|
-
const { writeBotPid } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
3829
|
+
const { writeBotPid } = await Promise.resolve().then(() => require("./hyperclawbot-CBiDSKsa.js"));
|
|
3815
3830
|
await writeBotPid(child.pid);
|
|
3816
3831
|
console.log(require("chalk").green(`\n ✔ HyperClaw Bot started in background (PID ${child.pid})`));
|
|
3817
3832
|
console.log(require("chalk").gray(" Stop with: hyperclaw bot stop\n"));
|
|
3818
3833
|
process.exit(0);
|
|
3819
3834
|
return;
|
|
3820
3835
|
}
|
|
3821
|
-
const { loadBotConfig, TelegramHyperClawBot, DiscordHyperClawBot } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
3836
|
+
const { loadBotConfig, TelegramHyperClawBot, DiscordHyperClawBot } = await Promise.resolve().then(() => require("./hyperclawbot-CBiDSKsa.js"));
|
|
3822
3837
|
const cfg = await loadBotConfig();
|
|
3823
3838
|
if (!cfg) {
|
|
3824
3839
|
console.log(require("chalk").red("\n ✖ HyperClaw Bot not configured. Run: hyperclaw bot setup\n"));
|
|
@@ -3845,41 +3860,41 @@ botCmd.command("start").description("Start HyperClaw Bot (foreground or backgrou
|
|
|
3845
3860
|
});
|
|
3846
3861
|
botCmd.command("stop").description("Stop HyperClaw Bot (when running in background)").action(async () => {
|
|
3847
3862
|
const chalk$11 = require("chalk");
|
|
3848
|
-
const { stopBotProcess } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
3863
|
+
const { stopBotProcess } = await Promise.resolve().then(() => require("./hyperclawbot-CBiDSKsa.js"));
|
|
3849
3864
|
const stopped = await stopBotProcess();
|
|
3850
3865
|
if (stopped) console.log(chalk$11.green("\n ✔ HyperClaw Bot stopped\n"));
|
|
3851
3866
|
else console.log(chalk$11.gray("\n Bot not running in background (no PID file). Use Ctrl+C to stop foreground bot.\n"));
|
|
3852
3867
|
process.exit(stopped ? 0 : 0);
|
|
3853
3868
|
});
|
|
3854
3869
|
memCmd.command("search <query>").description("Search MEMORY.md").action(async (query) => {
|
|
3855
|
-
const { searchMemory } = await Promise.resolve().then(() => require("./src-
|
|
3870
|
+
const { searchMemory } = await Promise.resolve().then(() => require("./src-Bhybpk1J.js"));
|
|
3856
3871
|
await searchMemory(query);
|
|
3857
3872
|
process.exit(0);
|
|
3858
3873
|
});
|
|
3859
3874
|
memCmd.command("auto-show").description("Show auto-extracted memories from MEMORY.md").action(async () => {
|
|
3860
|
-
const { showMemory } = await Promise.resolve().then(() => require("./src-
|
|
3875
|
+
const { showMemory } = await Promise.resolve().then(() => require("./src-Bhybpk1J.js"));
|
|
3861
3876
|
await showMemory();
|
|
3862
3877
|
process.exit(0);
|
|
3863
3878
|
});
|
|
3864
3879
|
memCmd.command("clear").description("Clear all auto-extracted memories").action(async () => {
|
|
3865
|
-
const { clearMemory } = await Promise.resolve().then(() => require("./src-
|
|
3880
|
+
const { clearMemory } = await Promise.resolve().then(() => require("./src-Bhybpk1J.js"));
|
|
3866
3881
|
await clearMemory();
|
|
3867
3882
|
process.exit(0);
|
|
3868
3883
|
});
|
|
3869
3884
|
memCmd.command("save <text>").description("Manually save a fact to MEMORY.md").action(async (text) => {
|
|
3870
|
-
const { saveMemoryDirect } = await Promise.resolve().then(() => require("./src-
|
|
3885
|
+
const { saveMemoryDirect } = await Promise.resolve().then(() => require("./src-Bhybpk1J.js"));
|
|
3871
3886
|
await saveMemoryDirect(text);
|
|
3872
3887
|
console.log(chalk.default.hex("#06b6d4")(` ✅ Saved: ${text}\n`));
|
|
3873
3888
|
process.exit(0);
|
|
3874
3889
|
});
|
|
3875
3890
|
const pcCmd = program.command("pc").description("PC access — give the AI access to your computer");
|
|
3876
3891
|
pcCmd.command("status").description("Show PC access status and config").action(async () => {
|
|
3877
|
-
const { showPCAccessStatus } = await Promise.resolve().then(() => require("./src-
|
|
3892
|
+
const { showPCAccessStatus } = await Promise.resolve().then(() => require("./src-Bhybpk1J.js"));
|
|
3878
3893
|
await showPCAccessStatus();
|
|
3879
3894
|
process.exit(0);
|
|
3880
3895
|
});
|
|
3881
3896
|
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) => {
|
|
3882
|
-
const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-
|
|
3897
|
+
const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-Bhybpk1J.js"));
|
|
3883
3898
|
const level = opts.level;
|
|
3884
3899
|
const allowed = [
|
|
3885
3900
|
"read-only",
|
|
@@ -3906,7 +3921,7 @@ pcCmd.command("enable").description("Enable PC access for the AI").option("--lev
|
|
|
3906
3921
|
process.exit(0);
|
|
3907
3922
|
});
|
|
3908
3923
|
pcCmd.command("disable").description("Disable PC access").action(async () => {
|
|
3909
|
-
const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-
|
|
3924
|
+
const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-Bhybpk1J.js"));
|
|
3910
3925
|
await savePCAccessConfig({ enabled: false });
|
|
3911
3926
|
console.log(chalk.default.hex("#06b6d4")("\n ✅ PC access disabled\n"));
|
|
3912
3927
|
process.exit(0);
|
|
@@ -3930,7 +3945,7 @@ pcCmd.command("log").description("Show PC access audit log").option("-n, --lines
|
|
|
3930
3945
|
process.exit(0);
|
|
3931
3946
|
});
|
|
3932
3947
|
pcCmd.command("run <command>").description("Run a shell command via PC access (must be enabled)").action(async (command) => {
|
|
3933
|
-
const { loadPCAccessConfig, getPCAccessTools } = await Promise.resolve().then(() => require("./src-
|
|
3948
|
+
const { loadPCAccessConfig, getPCAccessTools } = await Promise.resolve().then(() => require("./src-Bhybpk1J.js"));
|
|
3934
3949
|
const cfg = await loadPCAccessConfig();
|
|
3935
3950
|
if (!cfg.enabled) {
|
|
3936
3951
|
console.log(chalk.default.red("\n ✖ PC access disabled. Run: hyperclaw pc enable\n"));
|
|
@@ -4006,7 +4021,7 @@ if (process.argv.length === 2) (async () => {
|
|
|
4006
4021
|
console.log(` ${t.c("hyperclaw --help")} — all commands\n`);
|
|
4007
4022
|
} else {
|
|
4008
4023
|
await new require_onboard.Banner().showNeonBanner(false);
|
|
4009
|
-
const { HyperClawWizard: HyperClawWizard$1 } = await Promise.resolve().then(() => require("./onboard-
|
|
4024
|
+
const { HyperClawWizard: HyperClawWizard$1 } = await Promise.resolve().then(() => require("./onboard-BBBWcfhp.js"));
|
|
4010
4025
|
await new HyperClawWizard$1().run({ wizard: true });
|
|
4011
4026
|
}
|
|
4012
4027
|
process.exit(0);
|