hyperclaw 5.0.1 → 5.0.2
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/LICENSE +2 -1
- package/README.md +247 -32
- package/dist/a2ui-protocol-Gzm29Gaw.js +75 -0
- package/dist/agents-routing-Biy5ew4a.js +4 -0
- package/dist/agents-routing-CL3HQNoM.js +327 -0
- package/dist/api-keys-guide-ChbThbPj.js +149 -0
- package/dist/audit-NPIMmOSq.js +441 -0
- package/dist/bounty-tools-BUqUKjt0.js +211 -0
- package/dist/browser-tools-CxJY6pAn.js +5 -0
- package/dist/browser-tools-JZ9ji6AW.js +179 -0
- package/dist/chat-qVuqhlPu.js +258 -0
- package/dist/claw-tasks-B-8RRMdq.js +80 -0
- package/dist/connector-1x1rCBHz.js +162 -0
- package/dist/connector-B4jeCULG.js +305 -0
- package/dist/connector-B7qngfkT.js +286 -0
- package/dist/connector-B8BK0GBo.js +531 -0
- package/dist/connector-BE9eJs8-.js +182 -0
- package/dist/connector-BEe-DTGQ.js +189 -0
- package/dist/connector-BU7p5ZgB.js +167 -0
- package/dist/connector-BUzzq7Ij.js +568 -0
- package/dist/connector-BpDqLgnW.js +419 -0
- package/dist/connector-BpW88ut2.js +189 -0
- package/dist/connector-Bxv-gy8U.js +167 -0
- package/dist/connector-Bz14zcJv.js +213 -0
- package/dist/connector-C1zP5-5q.js +85 -0
- package/dist/connector-CAcpcovF.js +498 -0
- package/dist/connector-CJgVjS58.js +181 -0
- package/dist/connector-Cf53D6qV.js +425 -0
- package/dist/connector-CyHmlbNz.js +508 -0
- package/dist/connector-D22mJGVu.js +340 -0
- package/dist/connector-D6RtMmlL.js +225 -0
- package/dist/connector-D9EnT8A4.js +280 -0
- package/dist/connector-DNDwIh37.js +239 -0
- package/dist/connector-Di27MeO4.js +350 -0
- package/dist/connector-Do0BPiHt.js +194 -0
- package/dist/connector-DvLwOfJy.js +192 -0
- package/dist/connector-DvU83NSq.js +181 -0
- package/dist/connector-DxskpDc_.js +173 -0
- package/dist/connector-byy3eISx.js +552 -0
- package/dist/connector-vV89hsyd.js +218 -0
- package/dist/cost-tracker-fnaj_6M9.js +103 -0
- package/dist/credentials-store-BxijEirw.js +77 -0
- package/dist/credentials-store-CPkVO6-z.js +4 -0
- package/dist/cron-tasks-L0mz1yyU.js +82 -0
- package/dist/daemon-CNyunwkR.js +5 -0
- package/dist/daemon-CindY8OK.js +318 -0
- package/dist/delivery-DgiZcJBp.js +4 -0
- package/dist/delivery-otAU4alM.js +95 -0
- package/dist/destructive-gate-CA0DtA5K.js +101 -0
- package/dist/developer-keys-Cnd1kswV.js +127 -0
- package/dist/developer-keys-DENo3ZA6.js +8 -0
- package/dist/doctor-Dgjoc3DG.js +230 -0
- package/dist/doctor-RwsOhtAl.js +6 -0
- package/dist/engine-D_VeoZHw.js +305 -0
- package/dist/engine-JjRnhlsE.js +7 -0
- package/dist/env-resolve-BFJXWl94.js +115 -0
- package/dist/env-resolve-bDYssfih.js +10 -0
- package/dist/extraction-tools-DbxnxIco.js +5 -0
- package/dist/extraction-tools-Dg7AHS35.js +91 -0
- package/dist/form_data-CGAy4HE0.js +8657 -0
- package/dist/gmail-watch-setup-C3uSWznp.js +40 -0
- package/dist/health-DUjluWHQ.js +6 -0
- package/dist/health-DVfkpUQW.js +152 -0
- package/dist/heartbeat-engine-CrgL4mrP.js +83 -0
- package/dist/hub-BO6bj8Yj.js +515 -0
- package/dist/hub-Bu52YZqW.js +6 -0
- package/dist/hyperclawbot-BrcoYLOp.js +505 -0
- package/dist/inference-DHR82Gh7.js +6 -0
- package/dist/inference-DhA8jpfH.js +2692 -0
- package/dist/knowledge-graph-BrYpSgxW.js +131 -0
- package/dist/loader-9JqY6Nlq.js +4 -0
- package/dist/loader-Cjdd1kw4.js +400 -0
- package/dist/logger-DCT2l9GV.js +83 -0
- package/dist/manager-3cq3DydI.js +4 -0
- package/dist/manager-BUrFrPuq.js +117 -0
- package/dist/manager-Bi9UYyVR.js +105 -0
- package/dist/manager-Biz9ixWJ.js +40 -0
- package/dist/manager-CBUHJiY7.js +6 -0
- package/dist/manager-CVLLaKmq.js +218 -0
- package/dist/mcp-CUoTCMw-.js +139 -0
- package/dist/mcp-loader-BIz-450x.js +94 -0
- package/dist/memory-OL77OMOr.js +270 -0
- package/dist/memory-auto-D-L2q21G.js +306 -0
- package/dist/memory-auto-DTcy5VBy.js +5 -0
- package/dist/memory-gUi4VaIf.js +4 -0
- package/dist/memory-integration-B8RSN4pr.js +91 -0
- package/dist/moltbook-B-40gQOL.js +81 -0
- package/dist/node-TWxRm84k.js +222 -0
- package/dist/nodes-registry-DKRtsbNg.js +52 -0
- package/dist/oauth-flow-JCfporKq.js +150 -0
- package/dist/oauth-provider-4R0EJlsT.js +110 -0
- package/dist/observability-CDZmeHfa.js +89 -0
- package/dist/onboard-BVOtKQdh.js +3641 -0
- package/dist/onboard-CGNIw27w.js +11 -0
- package/dist/orchestrator-CcKx1Ovk.js +189 -0
- package/dist/orchestrator-DcFfDLTX.js +6 -0
- package/dist/osint-B6BZKQAD.js +277 -0
- package/dist/pairing-B6RArWhD.js +196 -0
- package/dist/pairing-BsQ08DLq.js +4 -0
- package/dist/pc-access-B0KocJNe.js +819 -0
- package/dist/pc-access-DkzmugZ7.js +8 -0
- package/dist/pending-approval-C_HkX1QL.js +22 -0
- package/dist/providers-DxiamZSL.js +5 -0
- package/dist/providers-Dy15rDb7.js +657 -0
- package/dist/reminders-store-CzUY0zYx.js +58 -0
- package/dist/renderer-ANNfXsHn.js +225 -0
- package/dist/rules-BSQwwAYC.js +103 -0
- package/dist/run-main.js +112 -117
- package/dist/runner-BHRSOPEU.js +1271 -0
- package/dist/security--oQObeJO.js +4 -0
- package/dist/security-wBOg0TA8.js +73 -0
- package/dist/server-CbTTpB5m.js +1255 -0
- package/dist/server-DP_bPzvI.js +4 -0
- package/dist/session-store-B09r5HgB.js +5 -0
- package/dist/session-store-DCTQIVur.js +113 -0
- package/dist/sessions-tools-BdlN6Pb6.js +95 -0
- package/dist/sessions-tools-JVLDKSJ_.js +5 -0
- package/dist/skill-loader-B5oeliGu.js +7 -0
- package/dist/skill-loader-Wf3brNOj.js +160 -0
- package/dist/skill-runtime-BGlvly2s.js +102 -0
- package/dist/skill-runtime-DhL2T76p.js +5 -0
- package/dist/src-BbPa6Q8p.js +63 -0
- package/dist/src-BeXtfkK2.js +458 -0
- package/dist/src-CGQjRI4N.js +20 -0
- package/dist/sub-agent-tools-CmE345s_.js +39 -0
- package/dist/theme-D0smfC_l.js +8 -0
- package/dist/theme-DajRRZbA.js +180 -0
- package/dist/tool-policy-DgNqFWYn.js +189 -0
- package/dist/tts-elevenlabs-JeFaGNJU.js +61 -0
- package/dist/update-check-BVEqHhFY.js +83 -0
- package/dist/vision-fky3elEo.js +121 -0
- package/dist/vision-tools-C8B3776g.js +5 -0
- package/dist/vision-tools-dwn9p4el.js +51 -0
- package/dist/voice-transcription-B6RtplmN.js +138 -0
- package/dist/website-watch-tools-B-jRAeTe.js +139 -0
- package/dist/website-watch-tools-BC9xAL67.js +5 -0
- package/package.json +1 -1
package/dist/run-main.js
CHANGED
|
@@ -1,22 +1,23 @@
|
|
|
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-
|
|
8
|
-
require('./
|
|
9
|
-
|
|
10
|
-
const
|
|
11
|
-
const require_manager
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
const
|
|
4
|
+
require('./env-resolve-BFJXWl94.js');
|
|
5
|
+
const require_onboard = require('./onboard-BVOtKQdh.js');
|
|
6
|
+
require('./server-CbTTpB5m.js');
|
|
7
|
+
const require_daemon = require('./daemon-CindY8OK.js');
|
|
8
|
+
require('./providers-Dy15rDb7.js');
|
|
9
|
+
require('./theme-DajRRZbA.js');
|
|
10
|
+
const require_hub = require('./hub-BO6bj8Yj.js');
|
|
11
|
+
const require_manager = require('./manager-Biz9ixWJ.js');
|
|
12
|
+
const require_manager$1 = require('./manager-Bi9UYyVR.js');
|
|
13
|
+
const require_memory = require('./memory-OL77OMOr.js');
|
|
14
|
+
const require_loader = require('./loader-Cjdd1kw4.js');
|
|
15
|
+
const require_agents_routing = require('./agents-routing-CL3HQNoM.js');
|
|
16
|
+
const require_pairing = require('./pairing-B6RArWhD.js');
|
|
17
|
+
const require_doctor = require('./doctor-Dgjoc3DG.js');
|
|
18
|
+
const require_health = require('./health-DVfkpUQW.js');
|
|
19
|
+
const require_security = require('./security-wBOg0TA8.js');
|
|
20
|
+
const require_developer_keys = require('./developer-keys-Cnd1kswV.js');
|
|
20
21
|
const commander = require_chunk.__toESM(require("commander"));
|
|
21
22
|
const chalk = require_chunk.__toESM(require("chalk"));
|
|
22
23
|
const inquirer = require_chunk.__toESM(require("inquirer"));
|
|
@@ -64,7 +65,7 @@ var Dashboard = class {
|
|
|
64
65
|
return c(`� `) + content + " ".repeat(pad) + c(`�`);
|
|
65
66
|
};
|
|
66
67
|
console.log(c(`-${line}�`));
|
|
67
|
-
console.log(c(`�`) + chalk.default.bold.hex("#06b6d4")(`${"?? HYPERCLAW v5.0.
|
|
68
|
+
console.log(c(`�`) + chalk.default.bold.hex("#06b6d4")(`${"?? HYPERCLAW v5.0.2 � GATEWAY DASHBOARD".padStart(45).padEnd(w)}`) + c(`�`));
|
|
68
69
|
console.log(c(`�${line}�`));
|
|
69
70
|
console.log(row(`${statusDot} Gateway ${statusText} ${chalk.default.gray("�")} ws://localhost:${port} ${chalk.default.gray("�")} Agent: ${c(agent)}`));
|
|
70
71
|
console.log(row(`${c("?")} Model ${chalk.default.gray(model.slice(0, 30))} ${chalk.default.gray("�")} User: ${c(user)}`));
|
|
@@ -145,7 +146,7 @@ async function recordAudio(outFile, seconds) {
|
|
|
145
146
|
async function transcribeWhisper(filePath, lang) {
|
|
146
147
|
const apiKey = process.env.OPENAI_API_KEY || process.env.ANTHROPIC_API_KEY;
|
|
147
148
|
if (!apiKey) throw new Error("No OPENAI_API_KEY set");
|
|
148
|
-
const FormData = (await Promise.resolve().then(() => require_chunk.__toDynamicImportESM()(require("./form_data-
|
|
149
|
+
const FormData = (await Promise.resolve().then(() => require_chunk.__toDynamicImportESM()(require("./form_data-CGAy4HE0.js"))).catch(() => null))?.default;
|
|
149
150
|
if (!FormData) throw new Error("form-data not installed");
|
|
150
151
|
const form = new FormData();
|
|
151
152
|
form.append("file", fs.createReadStream(filePath), {
|
|
@@ -2426,7 +2427,7 @@ var init_queue = require_chunk.__esm({ "src/delivery/queue.ts"() {
|
|
|
2426
2427
|
//#endregion
|
|
2427
2428
|
//#region src/cli/run-main.ts
|
|
2428
2429
|
const program = new commander.Command();
|
|
2429
|
-
program.name("hyperclaw").description("⚡ HyperClaw — AI Gateway Platform. The Lobster Evolution 🦅").version("5.0.
|
|
2430
|
+
program.name("hyperclaw").description("⚡ HyperClaw — AI Gateway Platform. The Lobster Evolution 🦅").version("5.0.2").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
2431
|
const profile = thisCommand.opts().profile;
|
|
2431
2432
|
if (profile) {
|
|
2432
2433
|
const os$8 = require("os");
|
|
@@ -2568,8 +2569,8 @@ sandboxCmd.command("explain").description("Show effective sandbox mode, tool pol
|
|
|
2568
2569
|
} catch {}
|
|
2569
2570
|
const sandboxMode = cfg?.agents?.defaults?.sandbox?.mode ?? "non-main";
|
|
2570
2571
|
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-
|
|
2572
|
+
const { describeToolPolicy, applyToolPolicy } = await Promise.resolve().then(() => require("./tool-policy-DgNqFWYn.js"));
|
|
2573
|
+
const { getBuiltinTools, getSessionsTools, getPCAccessTools, getBrowserTools, getExtractionTools, getWebsiteWatchTools, getVisionTools } = await Promise.resolve().then(() => require("./src-BbPa6Q8p.js"));
|
|
2573
2574
|
const allTools = [
|
|
2574
2575
|
...getBuiltinTools(),
|
|
2575
2576
|
...getSessionsTools(() => null),
|
|
@@ -2912,7 +2913,7 @@ cfgCmd.command("set-service-key <serviceId> [apiKey]").description("Set API key
|
|
|
2912
2913
|
cfgCmd.command("schema").description("Show configuration schema").action(() => {
|
|
2913
2914
|
console.log(chalk.default.bold.hex("#06b6d4")("\n Config schema: ~/.hyperclaw/config.json\n"));
|
|
2914
2915
|
const schema = {
|
|
2915
|
-
version: "string (e.g. \"5.0.
|
|
2916
|
+
version: "string (e.g. \"5.0.2\")",
|
|
2916
2917
|
workspaceName: "string",
|
|
2917
2918
|
provider: {
|
|
2918
2919
|
providerId: "string",
|
|
@@ -3052,7 +3053,7 @@ program.command("status").description("System overview").option("--all", "Full l
|
|
|
3052
3053
|
if (opts.all || opts.deep) {
|
|
3053
3054
|
const fs$7 = await import("fs-extra");
|
|
3054
3055
|
const { getConfigPath } = await Promise.resolve().then(() => require("./paths-D-QecARF.js"));
|
|
3055
|
-
const t = (await Promise.resolve().then(() => require("./theme-
|
|
3056
|
+
const t = (await Promise.resolve().then(() => require("./theme-D0smfC_l.js"))).getTheme(false);
|
|
3056
3057
|
const configPath = getConfigPath();
|
|
3057
3058
|
console.log(t.bold("\n ─── Deep status ───\n"));
|
|
3058
3059
|
try {
|
|
@@ -3064,7 +3065,7 @@ program.command("status").description("System overview").option("--all", "Full l
|
|
|
3064
3065
|
}
|
|
3065
3066
|
if (opts.deep) {
|
|
3066
3067
|
const http$2 = await import("http");
|
|
3067
|
-
const { resolveGatewayUrl } = await Promise.resolve().then(() => require("./health-
|
|
3068
|
+
const { resolveGatewayUrl } = await Promise.resolve().then(() => require("./health-DUjluWHQ.js"));
|
|
3068
3069
|
const cfg = await new require_manager.ConfigManager().load();
|
|
3069
3070
|
const { gatewayUrl } = resolveGatewayUrl(cfg);
|
|
3070
3071
|
const u = new URL(gatewayUrl);
|
|
@@ -3142,7 +3143,7 @@ program.command("health").description("Quick gateway health probe (Runtime, RPC
|
|
|
3142
3143
|
});
|
|
3143
3144
|
const themeCmd = program.command("theme").description("Switch CLI color theme");
|
|
3144
3145
|
themeCmd.command("list").description("List available themes").action(async () => {
|
|
3145
|
-
const { allThemes, getThemeName } = await Promise.resolve().then(() => require("./theme-
|
|
3146
|
+
const { allThemes, getThemeName } = await Promise.resolve().then(() => require("./theme-D0smfC_l.js"));
|
|
3146
3147
|
const current = getThemeName();
|
|
3147
3148
|
console.log(chalk.default.bold.hex("#06b6d4")("\n 🎨 AVAILABLE THEMES\n"));
|
|
3148
3149
|
for (const { name, label } of allThemes()) {
|
|
@@ -3154,7 +3155,7 @@ themeCmd.command("list").description("List available themes").action(async () =>
|
|
|
3154
3155
|
process.exit(0);
|
|
3155
3156
|
});
|
|
3156
3157
|
themeCmd.command("set <theme>").description("Set theme: dark | grey | white").action(async (name) => {
|
|
3157
|
-
const { setThemeName, allThemes } = await Promise.resolve().then(() => require("./theme-
|
|
3158
|
+
const { setThemeName, allThemes } = await Promise.resolve().then(() => require("./theme-D0smfC_l.js"));
|
|
3158
3159
|
const valid = allThemes().map((t) => t.name);
|
|
3159
3160
|
if (!valid.includes(name)) {
|
|
3160
3161
|
console.log(chalk.default.red(`\n ✖ Unknown theme: "${name}". Use: ${valid.join(" | ")}\n`));
|
|
@@ -3166,7 +3167,7 @@ themeCmd.command("set <theme>").description("Set theme: dark | grey | white").ac
|
|
|
3166
3167
|
process.exit(0);
|
|
3167
3168
|
});
|
|
3168
3169
|
themeCmd.command("preview").description("Preview all themes side-by-side").action(async () => {
|
|
3169
|
-
const { allThemes, getTheme, setThemeName, getThemeName } = await Promise.resolve().then(() => require("./theme-
|
|
3170
|
+
const { allThemes, getTheme, setThemeName, getThemeName } = await Promise.resolve().then(() => require("./theme-D0smfC_l.js"));
|
|
3170
3171
|
const current = getThemeName();
|
|
3171
3172
|
console.log(chalk.default.bold("\n 🎨 THEME PREVIEW\n"));
|
|
3172
3173
|
for (const { name, label } of allThemes()) {
|
|
@@ -3183,39 +3184,39 @@ themeCmd.command("preview").description("Preview all themes side-by-side").actio
|
|
|
3183
3184
|
});
|
|
3184
3185
|
const secretsCmd = program.command("secrets").description("External secrets management");
|
|
3185
3186
|
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-
|
|
3187
|
+
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-CVLLaKmq.js"));
|
|
3187
3188
|
const filter = opts.requiredBy?.split(",");
|
|
3188
3189
|
await new SecretsManager().audit(filter);
|
|
3189
3190
|
process.exit(0);
|
|
3190
3191
|
});
|
|
3191
3192
|
secretsCmd.command("set <KEY=value>").description("Set a secret in .env file").action(async (kv) => {
|
|
3192
|
-
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-
|
|
3193
|
+
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-CVLLaKmq.js"));
|
|
3193
3194
|
await new SecretsManager().set(kv);
|
|
3194
3195
|
process.exit(0);
|
|
3195
3196
|
});
|
|
3196
3197
|
secretsCmd.command("apply").description("Write secrets from .env to shell config (~/.bashrc, ~/.zshrc)").action(async () => {
|
|
3197
|
-
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-
|
|
3198
|
+
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-CVLLaKmq.js"));
|
|
3198
3199
|
await new SecretsManager().apply();
|
|
3199
3200
|
process.exit(0);
|
|
3200
3201
|
});
|
|
3201
3202
|
secretsCmd.command("reload").description("Reload secrets into running gateway").action(async () => {
|
|
3202
|
-
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-
|
|
3203
|
+
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-CVLLaKmq.js"));
|
|
3203
3204
|
await new SecretsManager().reload();
|
|
3204
3205
|
process.exit(0);
|
|
3205
3206
|
});
|
|
3206
3207
|
secretsCmd.command("remove <key>").description("Remove a secret from .env").action(async (key) => {
|
|
3207
|
-
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-
|
|
3208
|
+
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-CVLLaKmq.js"));
|
|
3208
3209
|
await new SecretsManager().remove(key);
|
|
3209
3210
|
process.exit(0);
|
|
3210
3211
|
});
|
|
3211
3212
|
secretsCmd.command("credentials").description("List provider credential files (credentials/*.json)").action(async () => {
|
|
3212
|
-
const { CredentialsStore } = await Promise.resolve().then(() => require("./credentials-store-
|
|
3213
|
+
const { CredentialsStore } = await Promise.resolve().then(() => require("./credentials-store-CPkVO6-z.js"));
|
|
3213
3214
|
await new CredentialsStore().showList();
|
|
3214
3215
|
process.exit(0);
|
|
3215
3216
|
});
|
|
3216
3217
|
const securityCmd = program.command("security").description("Security tools");
|
|
3217
3218
|
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-
|
|
3219
|
+
const { runSecurityAudit } = await Promise.resolve().then(() => require("./audit-NPIMmOSq.js"));
|
|
3219
3220
|
await runSecurityAudit({
|
|
3220
3221
|
deep: opts.deep,
|
|
3221
3222
|
fix: opts.fix,
|
|
@@ -3224,7 +3225,7 @@ securityCmd.command("audit").description("Security audit — file permissions, D
|
|
|
3224
3225
|
process.exit(0);
|
|
3225
3226
|
});
|
|
3226
3227
|
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-
|
|
3228
|
+
const { osintSetup, osintQuickStart } = await Promise.resolve().then(() => require("./osint-B6BZKQAD.js"));
|
|
3228
3229
|
if (opts.show || opts.reset) await osintSetup({
|
|
3229
3230
|
show: opts.show,
|
|
3230
3231
|
reset: opts.reset
|
|
@@ -3234,13 +3235,22 @@ program.command("osint").description("OSINT / Ethical Hacking mode — configure
|
|
|
3234
3235
|
process.exit(0);
|
|
3235
3236
|
});
|
|
3236
3237
|
program.command("osint setup").description("Interactive OSINT session setup wizard").action(async () => {
|
|
3237
|
-
const { osintSetup } = await Promise.resolve().then(() => require("./osint-
|
|
3238
|
+
const { osintSetup } = await Promise.resolve().then(() => require("./osint-B6BZKQAD.js"));
|
|
3238
3239
|
await osintSetup({});
|
|
3239
3240
|
process.exit(0);
|
|
3240
3241
|
});
|
|
3242
|
+
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").action(async (opts) => {
|
|
3243
|
+
const { runChat } = await Promise.resolve().then(() => require("./chat-qVuqhlPu.js"));
|
|
3244
|
+
await runChat({
|
|
3245
|
+
sessionId: opts.session,
|
|
3246
|
+
model: opts.model,
|
|
3247
|
+
thinking: opts.thinking,
|
|
3248
|
+
workspace: opts.workspace
|
|
3249
|
+
});
|
|
3250
|
+
});
|
|
3241
3251
|
const agentRunCmd = program.command("agent").description("Run agent with thinking control");
|
|
3242
3252
|
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) => {
|
|
3243
|
-
const { runAgent } = await Promise.resolve().then(() => require("./src-
|
|
3253
|
+
const { runAgent } = await Promise.resolve().then(() => require("./src-BbPa6Q8p.js"));
|
|
3244
3254
|
await runAgent({
|
|
3245
3255
|
message: opts.message,
|
|
3246
3256
|
thinking: opts.thinking,
|
|
@@ -3256,7 +3266,7 @@ agentRunCmd.requiredOption("-m, --message <text>", "Message to send to the agent
|
|
|
3256
3266
|
});
|
|
3257
3267
|
const threadsCmd = program.command("threads").description("ACP thread-bound agent sessions");
|
|
3258
3268
|
threadsCmd.command("list").description("List agent threads").option("--channel <id>", "Filter by channel").option("--active", "Show only active threads").action(async (opts) => {
|
|
3259
|
-
const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-
|
|
3269
|
+
const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-BbPa6Q8p.js"));
|
|
3260
3270
|
const mgr = new ACPThreadManager();
|
|
3261
3271
|
const threads = await mgr.list({
|
|
3262
3272
|
channelId: opts.channel,
|
|
@@ -3266,29 +3276,29 @@ threadsCmd.command("list").description("List agent threads").option("--channel <
|
|
|
3266
3276
|
process.exit(0);
|
|
3267
3277
|
});
|
|
3268
3278
|
threadsCmd.command("terminate <id>").description("Terminate a thread").action(async (id) => {
|
|
3269
|
-
const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-
|
|
3279
|
+
const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-BbPa6Q8p.js"));
|
|
3270
3280
|
await new ACPThreadManager().terminate(id);
|
|
3271
3281
|
console.log(require("chalk").green(`\n ✔ Thread terminated: ${id}\n`));
|
|
3272
3282
|
process.exit(0);
|
|
3273
3283
|
});
|
|
3274
3284
|
const canvasCmd = program.command("canvas").description("Live AI-driven UI canvas");
|
|
3275
3285
|
canvasCmd.command("show").description("Show current canvas components").action(async () => {
|
|
3276
|
-
const { CanvasRenderer } = await Promise.resolve().then(() => require("./renderer-
|
|
3286
|
+
const { CanvasRenderer } = await Promise.resolve().then(() => require("./renderer-ANNfXsHn.js"));
|
|
3277
3287
|
await new CanvasRenderer().show();
|
|
3278
3288
|
process.exit(0);
|
|
3279
3289
|
});
|
|
3280
3290
|
canvasCmd.command("add <type> <title>").description("Add a canvas component (type: chart|table|form|markdown|image|custom)").action(async (type, title) => {
|
|
3281
|
-
const { CanvasRenderer } = await Promise.resolve().then(() => require("./renderer-
|
|
3291
|
+
const { CanvasRenderer } = await Promise.resolve().then(() => require("./renderer-ANNfXsHn.js"));
|
|
3282
3292
|
await new CanvasRenderer().addComponent(type, title);
|
|
3283
3293
|
process.exit(0);
|
|
3284
3294
|
});
|
|
3285
3295
|
canvasCmd.command("clear").description("Clear all canvas components").action(async () => {
|
|
3286
|
-
const { CanvasRenderer } = await Promise.resolve().then(() => require("./renderer-
|
|
3296
|
+
const { CanvasRenderer } = await Promise.resolve().then(() => require("./renderer-ANNfXsHn.js"));
|
|
3287
3297
|
await new CanvasRenderer().clear();
|
|
3288
3298
|
process.exit(0);
|
|
3289
3299
|
});
|
|
3290
3300
|
canvasCmd.command("export").description("Export canvas as HTML file").action(async () => {
|
|
3291
|
-
const { CanvasRenderer } = await Promise.resolve().then(() => require("./renderer-
|
|
3301
|
+
const { CanvasRenderer } = await Promise.resolve().then(() => require("./renderer-ANNfXsHn.js"));
|
|
3292
3302
|
const fs$7 = require("fs-extra");
|
|
3293
3303
|
const html = await new CanvasRenderer().exportHtml();
|
|
3294
3304
|
const outFile = require("path").join(require("os").homedir(), ".hyperclaw", "canvas", "export.html");
|
|
@@ -3309,62 +3319,62 @@ deliveryCmd.command("retry <id>").description("Retry a dead-lettered delivery it
|
|
|
3309
3319
|
});
|
|
3310
3320
|
const mcpCmd = program.command("mcp").description("MCP (Model Context Protocol) server management");
|
|
3311
3321
|
mcpCmd.command("list").action(async () => {
|
|
3312
|
-
const { mcpList } = await Promise.resolve().then(() => require("./mcp-
|
|
3322
|
+
const { mcpList } = await Promise.resolve().then(() => require("./mcp-CUoTCMw-.js"));
|
|
3313
3323
|
await mcpList();
|
|
3314
3324
|
process.exit(0);
|
|
3315
3325
|
});
|
|
3316
3326
|
mcpCmd.command("add").action(async () => {
|
|
3317
|
-
const { mcpAdd } = await Promise.resolve().then(() => require("./mcp-
|
|
3327
|
+
const { mcpAdd } = await Promise.resolve().then(() => require("./mcp-CUoTCMw-.js"));
|
|
3318
3328
|
await mcpAdd();
|
|
3319
3329
|
process.exit(0);
|
|
3320
3330
|
});
|
|
3321
3331
|
mcpCmd.command("remove <id>").action(async (id) => {
|
|
3322
|
-
const { mcpRemove } = await Promise.resolve().then(() => require("./mcp-
|
|
3332
|
+
const { mcpRemove } = await Promise.resolve().then(() => require("./mcp-CUoTCMw-.js"));
|
|
3323
3333
|
await mcpRemove(id);
|
|
3324
3334
|
process.exit(0);
|
|
3325
3335
|
});
|
|
3326
3336
|
mcpCmd.command("probe [id]").action(async (id) => {
|
|
3327
|
-
const { mcpProbe } = await Promise.resolve().then(() => require("./mcp-
|
|
3337
|
+
const { mcpProbe } = await Promise.resolve().then(() => require("./mcp-CUoTCMw-.js"));
|
|
3328
3338
|
await mcpProbe(id);
|
|
3329
3339
|
process.exit(0);
|
|
3330
3340
|
});
|
|
3331
3341
|
const nodeCmd = program.command("node").description("HyperClaw node management (local, remote, android)");
|
|
3332
3342
|
nodeCmd.command("list").action(async () => {
|
|
3333
|
-
const { nodeList } = await Promise.resolve().then(() => require("./node-
|
|
3343
|
+
const { nodeList } = await Promise.resolve().then(() => require("./node-TWxRm84k.js"));
|
|
3334
3344
|
await nodeList();
|
|
3335
3345
|
process.exit(0);
|
|
3336
3346
|
});
|
|
3337
3347
|
nodeCmd.command("add").action(async () => {
|
|
3338
|
-
const { nodeAdd } = await Promise.resolve().then(() => require("./node-
|
|
3348
|
+
const { nodeAdd } = await Promise.resolve().then(() => require("./node-TWxRm84k.js"));
|
|
3339
3349
|
await nodeAdd();
|
|
3340
3350
|
process.exit(0);
|
|
3341
3351
|
});
|
|
3342
3352
|
nodeCmd.command("probe [id]").action(async (id) => {
|
|
3343
|
-
const { nodeProbe } = await Promise.resolve().then(() => require("./node-
|
|
3353
|
+
const { nodeProbe } = await Promise.resolve().then(() => require("./node-TWxRm84k.js"));
|
|
3344
3354
|
await nodeProbe(id);
|
|
3345
3355
|
process.exit(0);
|
|
3346
3356
|
});
|
|
3347
3357
|
nodeCmd.command("remove <id>").action(async (id) => {
|
|
3348
|
-
const { nodeRemove } = await Promise.resolve().then(() => require("./node-
|
|
3358
|
+
const { nodeRemove } = await Promise.resolve().then(() => require("./node-TWxRm84k.js"));
|
|
3349
3359
|
await nodeRemove(id);
|
|
3350
3360
|
process.exit(0);
|
|
3351
3361
|
});
|
|
3352
3362
|
const arCmd = program.command("auto-reply").description("Auto-reply rule engine");
|
|
3353
3363
|
arCmd.command("list").action(async () => {
|
|
3354
|
-
const { AutoReplyEngine } = await Promise.resolve().then(() => require("./rules-
|
|
3364
|
+
const { AutoReplyEngine } = await Promise.resolve().then(() => require("./rules-BSQwwAYC.js"));
|
|
3355
3365
|
const e = new AutoReplyEngine();
|
|
3356
3366
|
await e.load();
|
|
3357
3367
|
e.showList();
|
|
3358
3368
|
process.exit(0);
|
|
3359
3369
|
});
|
|
3360
3370
|
arCmd.command("toggle <id>").action(async (id) => {
|
|
3361
|
-
const { AutoReplyEngine } = await Promise.resolve().then(() => require("./rules-
|
|
3371
|
+
const { AutoReplyEngine } = await Promise.resolve().then(() => require("./rules-BSQwwAYC.js"));
|
|
3362
3372
|
const e = new AutoReplyEngine();
|
|
3363
3373
|
await e.toggle(id);
|
|
3364
3374
|
process.exit(0);
|
|
3365
3375
|
});
|
|
3366
3376
|
arCmd.command("remove <id>").action(async (id) => {
|
|
3367
|
-
const { AutoReplyEngine } = await Promise.resolve().then(() => require("./rules-
|
|
3377
|
+
const { AutoReplyEngine } = await Promise.resolve().then(() => require("./rules-BSQwwAYC.js"));
|
|
3368
3378
|
const e = new AutoReplyEngine();
|
|
3369
3379
|
await e.remove(id);
|
|
3370
3380
|
process.exit(0);
|
|
@@ -3373,7 +3383,7 @@ const gmailCmd = program.command("gmail").description("Gmail Pub/Sub real-time n
|
|
|
3373
3383
|
gmailCmd.command("watch-setup").description("Register Gmail watch for push notifications. Requires: hyperclaw auth oauth google-gmail").requiredOption("-t, --topic <name>", "Pub/Sub topic (e.g. projects/myproject/topics/gmail-push)").option("-l, --labels <ids>", "Label IDs to watch (comma-separated)", "INBOX").action(async (opts) => {
|
|
3374
3384
|
const chalk$11 = require("chalk");
|
|
3375
3385
|
try {
|
|
3376
|
-
const { setupGmailWatch } = await Promise.resolve().then(() => require("./gmail-watch-setup-
|
|
3386
|
+
const { setupGmailWatch } = await Promise.resolve().then(() => require("./gmail-watch-setup-C3uSWznp.js"));
|
|
3377
3387
|
const labelIds = opts.labels.split(",").map((s) => s.trim()).filter(Boolean);
|
|
3378
3388
|
const result = await setupGmailWatch({
|
|
3379
3389
|
topicName: opts.topic,
|
|
@@ -3393,7 +3403,7 @@ gmailCmd.command("watch-setup").description("Register Gmail watch for push notif
|
|
|
3393
3403
|
const cronCmd = program.command("cron").description("Scheduled tasks (cron → agent prompt)");
|
|
3394
3404
|
cronCmd.command("list").action(async () => {
|
|
3395
3405
|
const chalk$11 = require("chalk");
|
|
3396
|
-
const { loadCronTasks } = await Promise.resolve().then(() => require("./cron-tasks-
|
|
3406
|
+
const { loadCronTasks } = await Promise.resolve().then(() => require("./cron-tasks-L0mz1yyU.js"));
|
|
3397
3407
|
const tasks = await loadCronTasks();
|
|
3398
3408
|
console.log(chalk$11.bold.cyan("\n ⏰ CRON TASKS\n"));
|
|
3399
3409
|
if (tasks.length === 0) {
|
|
@@ -3413,7 +3423,7 @@ cronCmd.command("list").action(async () => {
|
|
|
3413
3423
|
});
|
|
3414
3424
|
cronCmd.command("add").arguments("<schedule> <prompt>").option("-n, --name <name>", "Task name").action(async (schedule, prompt, opts) => {
|
|
3415
3425
|
const chalk$11 = require("chalk");
|
|
3416
|
-
const { loadCronTasks, addCronTask, saveCronTasks } = await Promise.resolve().then(() => require("./cron-tasks-
|
|
3426
|
+
const { loadCronTasks, addCronTask, saveCronTasks } = await Promise.resolve().then(() => require("./cron-tasks-L0mz1yyU.js"));
|
|
3417
3427
|
await loadCronTasks();
|
|
3418
3428
|
addCronTask(schedule, prompt, opts.name);
|
|
3419
3429
|
await saveCronTasks();
|
|
@@ -3423,7 +3433,7 @@ cronCmd.command("add").arguments("<schedule> <prompt>").option("-n, --name <name
|
|
|
3423
3433
|
});
|
|
3424
3434
|
cronCmd.command("remove <id>").action(async (id) => {
|
|
3425
3435
|
const chalk$11 = require("chalk");
|
|
3426
|
-
const { loadCronTasks, removeCronTask, saveCronTasks } = await Promise.resolve().then(() => require("./cron-tasks-
|
|
3436
|
+
const { loadCronTasks, removeCronTask, saveCronTasks } = await Promise.resolve().then(() => require("./cron-tasks-L0mz1yyU.js"));
|
|
3427
3437
|
await loadCronTasks();
|
|
3428
3438
|
if (removeCronTask(id)) {
|
|
3429
3439
|
await saveCronTasks();
|
|
@@ -3480,20 +3490,20 @@ program.command("nodes").description("List connected mobile nodes (iOS/Android C
|
|
|
3480
3490
|
});
|
|
3481
3491
|
const whCmd = program.command("webhooks").description("Webhook endpoint management");
|
|
3482
3492
|
whCmd.command("list").action(async () => {
|
|
3483
|
-
const { WebhookManager } = await Promise.resolve().then(() => require("./manager-
|
|
3493
|
+
const { WebhookManager } = await Promise.resolve().then(() => require("./manager-BUrFrPuq.js"));
|
|
3484
3494
|
const m = new WebhookManager();
|
|
3485
3495
|
await m.load();
|
|
3486
3496
|
m.showList();
|
|
3487
3497
|
process.exit(0);
|
|
3488
3498
|
});
|
|
3489
3499
|
whCmd.command("remove <id>").action(async (id) => {
|
|
3490
|
-
const { WebhookManager } = await Promise.resolve().then(() => require("./manager-
|
|
3500
|
+
const { WebhookManager } = await Promise.resolve().then(() => require("./manager-BUrFrPuq.js"));
|
|
3491
3501
|
const m = new WebhookManager();
|
|
3492
3502
|
await m.remove(id);
|
|
3493
3503
|
process.exit(0);
|
|
3494
3504
|
});
|
|
3495
3505
|
whCmd.command("toggle <id>").action(async (id) => {
|
|
3496
|
-
const { WebhookManager } = await Promise.resolve().then(() => require("./manager-
|
|
3506
|
+
const { WebhookManager } = await Promise.resolve().then(() => require("./manager-BUrFrPuq.js"));
|
|
3497
3507
|
const m = new WebhookManager();
|
|
3498
3508
|
await m.toggle(id);
|
|
3499
3509
|
process.exit(0);
|
|
@@ -3502,7 +3512,7 @@ const logsCmd = program.command("logs").description("View gateway logs");
|
|
|
3502
3512
|
logsCmd.option("-n, --lines <n>", "Number of lines to show", "50");
|
|
3503
3513
|
logsCmd.option("-f, --follow", "Stream logs in real time");
|
|
3504
3514
|
logsCmd.action(async (opts) => {
|
|
3505
|
-
const { tailLog, streamLog } = await Promise.resolve().then(() => require("./logger-
|
|
3515
|
+
const { tailLog, streamLog } = await Promise.resolve().then(() => require("./logger-DCT2l9GV.js"));
|
|
3506
3516
|
if (opts.follow) await streamLog();
|
|
3507
3517
|
else {
|
|
3508
3518
|
await tailLog(parseInt(opts.lines));
|
|
@@ -3510,7 +3520,7 @@ logsCmd.action(async (opts) => {
|
|
|
3510
3520
|
}
|
|
3511
3521
|
});
|
|
3512
3522
|
program.command("gateway:serve").description("Start the gateway server in the foreground (used by daemon)").action(async () => {
|
|
3513
|
-
const { startGateway } = await Promise.resolve().then(() => require("./server-
|
|
3523
|
+
const { startGateway } = await Promise.resolve().then(() => require("./server-DP_bPzvI.js"));
|
|
3514
3524
|
await startGateway();
|
|
3515
3525
|
process.on("SIGINT", () => process.exit(0));
|
|
3516
3526
|
process.on("SIGTERM", () => process.exit(0));
|
|
@@ -3563,9 +3573,9 @@ const authCmd = program.command("auth").description("OAuth and provider credenti
|
|
|
3563
3573
|
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) => {
|
|
3564
3574
|
const chalk$11 = require("chalk");
|
|
3565
3575
|
const inquirer$2 = require("inquirer");
|
|
3566
|
-
const { CredentialsStore } = await Promise.resolve().then(() => require("./credentials-store-
|
|
3576
|
+
const { CredentialsStore } = await Promise.resolve().then(() => require("./credentials-store-CPkVO6-z.js"));
|
|
3567
3577
|
const { getHyperClawDir, getEnvFilePath } = await Promise.resolve().then(() => require("./paths-D-QecARF.js"));
|
|
3568
|
-
const { getApiKeyGuide, GENERIC_API_KEY_STEPS } = await Promise.resolve().then(() => require("./api-keys-guide-
|
|
3578
|
+
const { getApiKeyGuide, GENERIC_API_KEY_STEPS } = await Promise.resolve().then(() => require("./api-keys-guide-ChbThbPj.js"));
|
|
3569
3579
|
const fs$7 = await import("fs-extra");
|
|
3570
3580
|
const path$7 = await import("path");
|
|
3571
3581
|
const guide = getApiKeyGuide(serviceId);
|
|
@@ -3617,7 +3627,7 @@ authCmd.command("add <service_id>").description("Add API key for a service (any
|
|
|
3617
3627
|
});
|
|
3618
3628
|
authCmd.command("remove <service_id>").description("Remove API key for a service from credentials and .env").action(async (serviceId) => {
|
|
3619
3629
|
const chalk$11 = require("chalk");
|
|
3620
|
-
const { CredentialsStore } = await Promise.resolve().then(() => require("./credentials-store-
|
|
3630
|
+
const { CredentialsStore } = await Promise.resolve().then(() => require("./credentials-store-CPkVO6-z.js"));
|
|
3621
3631
|
const { getHyperClawDir, getEnvFilePath } = await Promise.resolve().then(() => require("./paths-D-QecARF.js"));
|
|
3622
3632
|
const fs$7 = await import("fs-extra");
|
|
3623
3633
|
const safeId = serviceId.replace(/[^a-zA-Z0-9_-]/g, "_").toLowerCase();
|
|
@@ -3637,7 +3647,7 @@ authCmd.command("oauth <provider>").description("Run full OAuth flow. Providers:
|
|
|
3637
3647
|
const chalk$11 = require("chalk");
|
|
3638
3648
|
const ora$4 = (await import("ora")).default;
|
|
3639
3649
|
try {
|
|
3640
|
-
const { runOAuthFlow } = await Promise.resolve().then(() => require("./oauth-flow-
|
|
3650
|
+
const { runOAuthFlow } = await Promise.resolve().then(() => require("./oauth-flow-JCfporKq.js"));
|
|
3641
3651
|
const spinner = ora$4("Starting OAuth flow...").start();
|
|
3642
3652
|
spinner.text = "Opening browser — complete the consent and return here.";
|
|
3643
3653
|
const tokens = await runOAuthFlow(provider, {
|
|
@@ -3645,7 +3655,7 @@ authCmd.command("oauth <provider>").description("Run full OAuth flow. Providers:
|
|
|
3645
3655
|
clientSecret: opts.clientSecret
|
|
3646
3656
|
});
|
|
3647
3657
|
spinner.stop();
|
|
3648
|
-
const { writeOAuthToken } = await Promise.resolve().then(() => require("./oauth-provider-
|
|
3658
|
+
const { writeOAuthToken } = await Promise.resolve().then(() => require("./oauth-provider-4R0EJlsT.js"));
|
|
3649
3659
|
const now = Math.floor(Date.now() / 1e3);
|
|
3650
3660
|
const expires_at = tokens.expires_in ? now + tokens.expires_in : void 0;
|
|
3651
3661
|
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;
|
|
@@ -3680,7 +3690,7 @@ authCmd.command("setup-token <provider>").description("Save setup token (Anthrop
|
|
|
3680
3690
|
console.log(chalk$11.red("\n ✖ No token provided.\n"));
|
|
3681
3691
|
process.exit(1);
|
|
3682
3692
|
}
|
|
3683
|
-
const { writeOAuthToken } = await Promise.resolve().then(() => require("./oauth-provider-
|
|
3693
|
+
const { writeOAuthToken } = await Promise.resolve().then(() => require("./oauth-provider-4R0EJlsT.js"));
|
|
3684
3694
|
await writeOAuthToken("anthropic-setup", {
|
|
3685
3695
|
access_token: token.trim(),
|
|
3686
3696
|
token_url: "https://api.anthropic.com"
|
|
@@ -3691,7 +3701,7 @@ authCmd.command("setup-token <provider>").description("Save setup token (Anthrop
|
|
|
3691
3701
|
});
|
|
3692
3702
|
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) => {
|
|
3693
3703
|
const chalk$11 = require("chalk");
|
|
3694
|
-
const { writeOAuthToken } = await Promise.resolve().then(() => require("./oauth-provider-
|
|
3704
|
+
const { writeOAuthToken } = await Promise.resolve().then(() => require("./oauth-provider-4R0EJlsT.js"));
|
|
3695
3705
|
const access_token = opts.token || process.env.OAUTH_ACCESS_TOKEN;
|
|
3696
3706
|
if (!access_token) {
|
|
3697
3707
|
console.log(chalk$11.red("\n ✖ Provide --token <access_token> or set OAUTH_ACCESS_TOKEN\n"));
|
|
@@ -3719,7 +3729,7 @@ workspaceCmd.command("init [dir]").description("Initialize workspace files (SOUL
|
|
|
3719
3729
|
try {
|
|
3720
3730
|
cfg = await fs$7.readJson(path$7.join(os$8.homedir(), ".hyperclaw", "hyperclaw.json"));
|
|
3721
3731
|
} catch {}
|
|
3722
|
-
const { initWorkspaceFiles } = await Promise.resolve().then(() => require("./memory-
|
|
3732
|
+
const { initWorkspaceFiles } = await Promise.resolve().then(() => require("./memory-gUi4VaIf.js"));
|
|
3723
3733
|
await initWorkspaceFiles({
|
|
3724
3734
|
agentName: cfg.identity?.agentName || "Hyper",
|
|
3725
3735
|
personality: cfg.identity?.personality || "helpful and concise",
|
|
@@ -3758,13 +3768,13 @@ workspaceCmd.command("show [dir]").description("Show workspace files summary").a
|
|
|
3758
3768
|
});
|
|
3759
3769
|
const botCmd = program.command("bot").description("HyperClaw Bot — companion bot for remote gateway control");
|
|
3760
3770
|
botCmd.command("status").action(async () => {
|
|
3761
|
-
const { showBotStatus } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
3771
|
+
const { showBotStatus } = await Promise.resolve().then(() => require("./hyperclawbot-BrcoYLOp.js"));
|
|
3762
3772
|
await showBotStatus();
|
|
3763
3773
|
process.exit(0);
|
|
3764
3774
|
});
|
|
3765
3775
|
botCmd.command("setup").description("Configure HyperClaw Bot (Telegram token, allowed users)").action(async () => {
|
|
3766
3776
|
const inquirer$2 = require("inquirer");
|
|
3767
|
-
const { saveBotConfig } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
3777
|
+
const { saveBotConfig } = await Promise.resolve().then(() => require("./hyperclawbot-BrcoYLOp.js"));
|
|
3768
3778
|
const chalk$11 = require("chalk");
|
|
3769
3779
|
console.log(chalk$11.bold.hex("#06b6d4")("\n 🦅 HYPERCLAW BOT SETUP\n"));
|
|
3770
3780
|
console.log(chalk$11.gray(" Create a bot at t.me/BotFather, then paste the token below.\n"));
|
|
@@ -3826,14 +3836,14 @@ botCmd.command("start").description("Start HyperClaw Bot (foreground or backgrou
|
|
|
3826
3836
|
cwd: process.cwd()
|
|
3827
3837
|
});
|
|
3828
3838
|
child.unref();
|
|
3829
|
-
const { writeBotPid } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
3839
|
+
const { writeBotPid } = await Promise.resolve().then(() => require("./hyperclawbot-BrcoYLOp.js"));
|
|
3830
3840
|
await writeBotPid(child.pid);
|
|
3831
3841
|
console.log(require("chalk").green(`\n ✔ HyperClaw Bot started in background (PID ${child.pid})`));
|
|
3832
3842
|
console.log(require("chalk").gray(" Stop with: hyperclaw bot stop\n"));
|
|
3833
3843
|
process.exit(0);
|
|
3834
3844
|
return;
|
|
3835
3845
|
}
|
|
3836
|
-
const { loadBotConfig, TelegramHyperClawBot, DiscordHyperClawBot } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
3846
|
+
const { loadBotConfig, TelegramHyperClawBot, DiscordHyperClawBot } = await Promise.resolve().then(() => require("./hyperclawbot-BrcoYLOp.js"));
|
|
3837
3847
|
const cfg = await loadBotConfig();
|
|
3838
3848
|
if (!cfg) {
|
|
3839
3849
|
console.log(require("chalk").red("\n ✖ HyperClaw Bot not configured. Run: hyperclaw bot setup\n"));
|
|
@@ -3860,41 +3870,41 @@ botCmd.command("start").description("Start HyperClaw Bot (foreground or backgrou
|
|
|
3860
3870
|
});
|
|
3861
3871
|
botCmd.command("stop").description("Stop HyperClaw Bot (when running in background)").action(async () => {
|
|
3862
3872
|
const chalk$11 = require("chalk");
|
|
3863
|
-
const { stopBotProcess } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
3873
|
+
const { stopBotProcess } = await Promise.resolve().then(() => require("./hyperclawbot-BrcoYLOp.js"));
|
|
3864
3874
|
const stopped = await stopBotProcess();
|
|
3865
3875
|
if (stopped) console.log(chalk$11.green("\n ✔ HyperClaw Bot stopped\n"));
|
|
3866
3876
|
else console.log(chalk$11.gray("\n Bot not running in background (no PID file). Use Ctrl+C to stop foreground bot.\n"));
|
|
3867
3877
|
process.exit(stopped ? 0 : 0);
|
|
3868
3878
|
});
|
|
3869
3879
|
memCmd.command("search <query>").description("Search MEMORY.md").action(async (query) => {
|
|
3870
|
-
const { searchMemory } = await Promise.resolve().then(() => require("./src-
|
|
3880
|
+
const { searchMemory } = await Promise.resolve().then(() => require("./src-BbPa6Q8p.js"));
|
|
3871
3881
|
await searchMemory(query);
|
|
3872
3882
|
process.exit(0);
|
|
3873
3883
|
});
|
|
3874
3884
|
memCmd.command("auto-show").description("Show auto-extracted memories from MEMORY.md").action(async () => {
|
|
3875
|
-
const { showMemory } = await Promise.resolve().then(() => require("./src-
|
|
3885
|
+
const { showMemory } = await Promise.resolve().then(() => require("./src-BbPa6Q8p.js"));
|
|
3876
3886
|
await showMemory();
|
|
3877
3887
|
process.exit(0);
|
|
3878
3888
|
});
|
|
3879
3889
|
memCmd.command("clear").description("Clear all auto-extracted memories").action(async () => {
|
|
3880
|
-
const { clearMemory } = await Promise.resolve().then(() => require("./src-
|
|
3890
|
+
const { clearMemory } = await Promise.resolve().then(() => require("./src-BbPa6Q8p.js"));
|
|
3881
3891
|
await clearMemory();
|
|
3882
3892
|
process.exit(0);
|
|
3883
3893
|
});
|
|
3884
3894
|
memCmd.command("save <text>").description("Manually save a fact to MEMORY.md").action(async (text) => {
|
|
3885
|
-
const { saveMemoryDirect } = await Promise.resolve().then(() => require("./src-
|
|
3895
|
+
const { saveMemoryDirect } = await Promise.resolve().then(() => require("./src-BbPa6Q8p.js"));
|
|
3886
3896
|
await saveMemoryDirect(text);
|
|
3887
3897
|
console.log(chalk.default.hex("#06b6d4")(` ✅ Saved: ${text}\n`));
|
|
3888
3898
|
process.exit(0);
|
|
3889
3899
|
});
|
|
3890
3900
|
const pcCmd = program.command("pc").description("PC access — give the AI access to your computer");
|
|
3891
3901
|
pcCmd.command("status").description("Show PC access status and config").action(async () => {
|
|
3892
|
-
const { showPCAccessStatus } = await Promise.resolve().then(() => require("./src-
|
|
3902
|
+
const { showPCAccessStatus } = await Promise.resolve().then(() => require("./src-BbPa6Q8p.js"));
|
|
3893
3903
|
await showPCAccessStatus();
|
|
3894
3904
|
process.exit(0);
|
|
3895
3905
|
});
|
|
3896
3906
|
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) => {
|
|
3897
|
-
const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-
|
|
3907
|
+
const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-BbPa6Q8p.js"));
|
|
3898
3908
|
const level = opts.level;
|
|
3899
3909
|
const allowed = [
|
|
3900
3910
|
"read-only",
|
|
@@ -3921,7 +3931,7 @@ pcCmd.command("enable").description("Enable PC access for the AI").option("--lev
|
|
|
3921
3931
|
process.exit(0);
|
|
3922
3932
|
});
|
|
3923
3933
|
pcCmd.command("disable").description("Disable PC access").action(async () => {
|
|
3924
|
-
const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-
|
|
3934
|
+
const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-BbPa6Q8p.js"));
|
|
3925
3935
|
await savePCAccessConfig({ enabled: false });
|
|
3926
3936
|
console.log(chalk.default.hex("#06b6d4")("\n ✅ PC access disabled\n"));
|
|
3927
3937
|
process.exit(0);
|
|
@@ -3945,7 +3955,7 @@ pcCmd.command("log").description("Show PC access audit log").option("-n, --lines
|
|
|
3945
3955
|
process.exit(0);
|
|
3946
3956
|
});
|
|
3947
3957
|
pcCmd.command("run <command>").description("Run a shell command via PC access (must be enabled)").action(async (command) => {
|
|
3948
|
-
const { loadPCAccessConfig, getPCAccessTools } = await Promise.resolve().then(() => require("./src-
|
|
3958
|
+
const { loadPCAccessConfig, getPCAccessTools } = await Promise.resolve().then(() => require("./src-BbPa6Q8p.js"));
|
|
3949
3959
|
const cfg = await loadPCAccessConfig();
|
|
3950
3960
|
if (!cfg.enabled) {
|
|
3951
3961
|
console.log(chalk.default.red("\n ✖ PC access disabled. Run: hyperclaw pc enable\n"));
|
|
@@ -3958,33 +3968,6 @@ pcCmd.command("run <command>").description("Run a shell command via PC access (m
|
|
|
3958
3968
|
console.log(result);
|
|
3959
3969
|
process.exit(0);
|
|
3960
3970
|
});
|
|
3961
|
-
function checkForUpdate() {
|
|
3962
|
-
const { execFile: execFile$1 } = require("child_process");
|
|
3963
|
-
const { readFileSync } = require("fs");
|
|
3964
|
-
const path$7 = require("path");
|
|
3965
|
-
try {
|
|
3966
|
-
const pkgPath = path$7.resolve(__dirname, "../../package.json");
|
|
3967
|
-
const current = JSON.parse(readFileSync(pkgPath, "utf8")).version;
|
|
3968
|
-
execFile$1("npm", [
|
|
3969
|
-
"view",
|
|
3970
|
-
"hyperclaw",
|
|
3971
|
-
"version",
|
|
3972
|
-
"--json"
|
|
3973
|
-
], { timeout: 5e3 }, (_err, stdout) => {
|
|
3974
|
-
if (_err || !stdout) return;
|
|
3975
|
-
try {
|
|
3976
|
-
const latest = JSON.parse(stdout.trim());
|
|
3977
|
-
if (latest && latest !== current) {
|
|
3978
|
-
const semver = (v) => v.split(".").map(Number);
|
|
3979
|
-
const [lMaj, lMin, lPat] = semver(latest);
|
|
3980
|
-
const [cMaj, cMin, cPat] = semver(current);
|
|
3981
|
-
const isNewer = lMaj > cMaj || lMaj === cMaj && lMin > cMin || lMaj === cMaj && lMin === cMin && lPat > cPat;
|
|
3982
|
-
if (isNewer) process.stdout.write(chalk.default.yellow(`\n ⬆ Update available: ${chalk.default.dim(current)} → ${chalk.default.green(latest)}\n`) + chalk.default.gray(` npm install -g hyperclaw@latest\n\n`));
|
|
3983
|
-
}
|
|
3984
|
-
} catch {}
|
|
3985
|
-
});
|
|
3986
|
-
} catch {}
|
|
3987
|
-
}
|
|
3988
3971
|
program.command("setup").description("Setup wizard — alias for `hyperclaw onboard`").option("--install-daemon", "Auto-install system daemon").option("--reset", "Reset config before running wizard").option("--non-interactive", "Non-interactive mode").option("--json", "Output result as JSON (use with --non-interactive)").option("--anthropic-api-key <key>", "Anthropic API key (non-interactive)").option("--openai-api-key <key>", "OpenAI API key (non-interactive)").option("--gateway-port <port>", "Gateway port (non-interactive)", "18789").option("--gateway-bind <bind>", "Gateway bind: loopback | all", "loopback").action(async (opts) => {
|
|
3989
3972
|
await new require_onboard.Banner().showNeonBanner(false);
|
|
3990
3973
|
const wizardOpts = {
|
|
@@ -4001,13 +3984,23 @@ program.command("setup").description("Setup wizard — alias for `hyperclaw onbo
|
|
|
4001
3984
|
await new require_onboard.HyperClawWizard().run(wizardOpts);
|
|
4002
3985
|
process.exit(0);
|
|
4003
3986
|
});
|
|
4004
|
-
|
|
3987
|
+
async function runUpdateCheck() {
|
|
3988
|
+
try {
|
|
3989
|
+
const { checkForUpdates, notifyUpdateAvailable } = await Promise.resolve().then(() => require("./update-check-BVEqHhFY.js"));
|
|
3990
|
+
const path$7 = require("path");
|
|
3991
|
+
const { readFileSync } = require("fs");
|
|
3992
|
+
const pkgPath = path$7.resolve(__dirname, "../../package.json");
|
|
3993
|
+
const current = JSON.parse(readFileSync(pkgPath, "utf8")).version;
|
|
3994
|
+
const result = await checkForUpdates(current);
|
|
3995
|
+
if (result?.available) notifyUpdateAvailable(current, result.latest);
|
|
3996
|
+
} catch {}
|
|
3997
|
+
}
|
|
4005
3998
|
if (process.argv.length === 2) (async () => {
|
|
4006
|
-
const { ConfigManager: ConfigManager$1 } = await Promise.resolve().then(() => require("./manager-
|
|
3999
|
+
const { ConfigManager: ConfigManager$1 } = await Promise.resolve().then(() => require("./manager-CBUHJiY7.js"));
|
|
4007
4000
|
const cfg = await new ConfigManager$1().load().catch(() => null);
|
|
4008
4001
|
if (cfg?.provider?.apiKey || cfg?.provider?.providerId) {
|
|
4009
4002
|
await new require_onboard.Banner().showNeonBanner(false);
|
|
4010
|
-
const { getTheme } = await Promise.resolve().then(() => require("./theme-
|
|
4003
|
+
const { getTheme } = await Promise.resolve().then(() => require("./theme-D0smfC_l.js"));
|
|
4011
4004
|
const t = getTheme(false);
|
|
4012
4005
|
const chalk$11 = require("chalk");
|
|
4013
4006
|
console.log(t.bold(" Quick actions:\n"));
|
|
@@ -4021,13 +4014,15 @@ if (process.argv.length === 2) (async () => {
|
|
|
4021
4014
|
console.log(` ${t.c("hyperclaw --help")} — all commands\n`);
|
|
4022
4015
|
} else {
|
|
4023
4016
|
await new require_onboard.Banner().showNeonBanner(false);
|
|
4024
|
-
const { HyperClawWizard: HyperClawWizard$1 } = await Promise.resolve().then(() => require("./onboard-
|
|
4017
|
+
const { HyperClawWizard: HyperClawWizard$1 } = await Promise.resolve().then(() => require("./onboard-CGNIw27w.js"));
|
|
4025
4018
|
await new HyperClawWizard$1().run({ wizard: true });
|
|
4026
4019
|
}
|
|
4020
|
+
await runUpdateCheck();
|
|
4027
4021
|
process.exit(0);
|
|
4028
4022
|
})();
|
|
4029
|
-
else program.parseAsync(process.argv).then(() => {
|
|
4030
|
-
|
|
4023
|
+
else program.parseAsync(process.argv).then(async () => {
|
|
4024
|
+
await runUpdateCheck();
|
|
4025
|
+
process.exit(0);
|
|
4031
4026
|
}).catch((e) => {
|
|
4032
4027
|
console.error(e.message);
|
|
4033
4028
|
process.exit(1);
|