hyperclaw 5.3.4 → 5.4.0

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.
Files changed (84) hide show
  1. package/dist/banner-3jmKGq6t.js +143 -0
  2. package/dist/banner-B2Qo91lq.js +143 -0
  3. package/dist/banner-BhOid_rp.js +7 -0
  4. package/dist/banner-C5D09Afq.js +7 -0
  5. package/dist/banner-CmNA9NKE.js +7 -0
  6. package/dist/banner-D3-Ik5d2.js +143 -0
  7. package/dist/banner-D3X8tQ-0.js +7 -0
  8. package/dist/banner-DG3v43xA.js +143 -0
  9. package/dist/chat-BGD9AWhr.js +523 -0
  10. package/dist/chat-D-i8bqTf.js +523 -0
  11. package/dist/chat-D8wFNN4z.js +523 -0
  12. package/dist/daemon-BXfbyPBf.js +7 -0
  13. package/dist/daemon-C4j0wqxz.js +421 -0
  14. package/dist/daemon-CUNaq2Ls.js +421 -0
  15. package/dist/daemon-D-klsy3i.js +7 -0
  16. package/dist/daemon-D_bYfHgn.js +421 -0
  17. package/dist/daemon-DcE6vcjH.js +421 -0
  18. package/dist/daemon-IU5UIMJo.js +7 -0
  19. package/dist/daemon-NFwpuo3L.js +7 -0
  20. package/dist/engine-2Tc-z0e4.js +7 -0
  21. package/dist/engine-B7Q4Vx-C.js +7 -0
  22. package/dist/engine-C-G3G-U7.js +7 -0
  23. package/dist/engine-DQ3hT5JD.js +327 -0
  24. package/dist/engine-DRpy9Y5O.js +327 -0
  25. package/dist/engine-DetHi9LP.js +327 -0
  26. package/dist/hyperclawbot-BqyZr2GM.js +516 -0
  27. package/dist/hyperclawbot-DTzP20Up.js +516 -0
  28. package/dist/hyperclawbot-DcQt62PL.js +516 -0
  29. package/dist/mcp-loader-BAGRKfJz.js +93 -0
  30. package/dist/mcp-loader-CPlsbcja.js +93 -0
  31. package/dist/mcp-loader-Dt64EewT.js +93 -0
  32. package/dist/onboard-32d2Gsuy.js +14 -0
  33. package/dist/onboard-BF29mNbC.js +14 -0
  34. package/dist/onboard-C7vJegQc.js +3812 -0
  35. package/dist/onboard-CJKxKPBH.js +3812 -0
  36. package/dist/onboard-Cgj_CIrq.js +3812 -0
  37. package/dist/onboard-ChnsqU5z.js +14 -0
  38. package/dist/onboard-CjzqTYq3.js +3812 -0
  39. package/dist/onboard-CytL65jh.js +14 -0
  40. package/dist/orchestrator-Bcj7uc1F.js +189 -0
  41. package/dist/orchestrator-C7oLWNFW.js +6 -0
  42. package/dist/orchestrator-Cuyqncql.js +189 -0
  43. package/dist/orchestrator-CxlEm5li.js +6 -0
  44. package/dist/orchestrator-DcEHTInR.js +6 -0
  45. package/dist/orchestrator-PQY07fH7.js +189 -0
  46. package/dist/osint-ADgw_Gkd.js +283 -0
  47. package/dist/osint-B5j3IuJK.js +283 -0
  48. package/dist/osint-DsUwGzgP.js +283 -0
  49. package/dist/osint-DtRd_A_O.js +283 -0
  50. package/dist/osint-chat-BbH6eW8z.js +789 -0
  51. package/dist/osint-chat-CfexqWop.js +789 -0
  52. package/dist/osint-chat-DdclrVa6.js +789 -0
  53. package/dist/osint-chat-xRP672b-.js +789 -0
  54. package/dist/run-main.js +103 -44
  55. package/dist/server-6TIyu0mb.js +4 -0
  56. package/dist/server-C9f6qtEW.js +1366 -0
  57. package/dist/server-CdlilrcS.js +4 -0
  58. package/dist/server-Da_jSrfS.js +4 -0
  59. package/dist/server-DfrmKeE6.js +1356 -0
  60. package/dist/server-gai_RW1u.js +1356 -0
  61. package/dist/server-rHap51o6.js +4 -0
  62. package/dist/server-vbYKep6r.js +1356 -0
  63. package/dist/skill-runtime-249xckq3.js +5 -0
  64. package/dist/skill-runtime-Bv59FUVu.js +104 -0
  65. package/dist/skill-runtime-CHQT7c1k.js +5 -0
  66. package/dist/skill-runtime-Cfd0OLkP.js +104 -0
  67. package/dist/skill-runtime-Dr0fimDf.js +5 -0
  68. package/dist/skill-runtime-DtO4i9vK.js +104 -0
  69. package/dist/src-CDLnbsLp.js +458 -0
  70. package/dist/src-ClYgvXAj.js +63 -0
  71. package/dist/src-D4VRanxB.js +458 -0
  72. package/dist/src-DK-ayUx7.js +63 -0
  73. package/dist/src-DiYkDVnn.js +458 -0
  74. package/dist/src-H1I7JC2E.js +63 -0
  75. package/dist/sub-agent-tools-8-Imp1B5.js +39 -0
  76. package/dist/sub-agent-tools-BoMCZ6jz.js +39 -0
  77. package/dist/sub-agent-tools-Dla3ZB5N.js +39 -0
  78. package/package.json +145 -143
  79. package/scripts/fix-mojibake.mjs +166 -0
  80. package/static/chat.html +764 -764
  81. package/static/web/assets/index-B5N1LHGR.css +1 -0
  82. package/static/web/assets/{index-BhCDgT5S.js → index-Bf8pf7Wg.js} +1 -1
  83. package/static/web/index.html +2 -2
  84. package/static/web/assets/index-D2RfO0dG.css +0 -1
package/package.json CHANGED
@@ -1,143 +1,145 @@
1
- {
2
- "name": "hyperclaw",
3
- "version": "5.3.4",
4
- "description": "⚡ HyperClaw — AI Gateway Platform. The Lobster Evolution 🦅",
5
- "main": "dist/run-main.js",
6
- "bin": {
7
- "hyperclaw": "bin/hyperclaw.js"
8
- },
9
- "files": [
10
- "bin/",
11
- "dist/",
12
- "scripts/",
13
- "skills/",
14
- "static/",
15
- "README.md",
16
- "LICENSE"
17
- ],
18
- "repository": {
19
- "type": "git",
20
- "url": "https://github.com/mylo-2001/hyperclaw.git"
21
- },
22
- "homepage": "https://github.com/mylo-2001/hyperclaw#readme",
23
- "bugs": {
24
- "url": "https://github.com/mylo-2001/hyperclaw/issues"
25
- },
26
- "publishConfig": {
27
- "access": "public"
28
- },
29
- "scripts": {
30
- "build": "tsdown --config tsdown.config.mjs",
31
- "postbuild": "node scripts/fix-init-paths.mjs",
32
- "build:tsc": "tsc --outDir dist",
33
- "start": "node dist/run-main.js",
34
- "dev": "ts-node src/cli/run-main.ts",
35
- "gateway:watch": "nodemon --ext ts --exec 'ts-node src/cli/run-main.ts gateway status'",
36
- "web:dev": "cd apps/web && npm run dev",
37
- "web:build": "cd apps/web && npm run build",
38
- "macos:build": "cd apps/macos && npm install && npm run build",
39
- "macos:test": "cd apps/macos && npm run test",
40
- "sdk:build": "tsdown src/sdk/index.ts --outDir dist/sdk --format cjs && tsdown src/sdk/index.ts --outDir dist/sdk --format esm",
41
- "core:build": "tsc --noEmit -p packages/core/tsconfig.json",
42
- "prepare": "npm run build",
43
- "prepublishOnly": "npm run build && npm run web:build && npm run sdk:build && npm run core:build",
44
- "postinstall": "node scripts/postinstall.js",
45
- "test": "vitest run",
46
- "test:watch": "vitest",
47
- "test:coverage": "vitest run --coverage",
48
- "test:unit": "vitest run --config vitest.unit.config.ts",
49
- "test:integration": "vitest run --config vitest.integration.config.ts",
50
- "test:channels": "vitest run --config vitest.channels.config.ts",
51
- "test:gateway": "vitest run --config vitest.gateway.config.ts",
52
- "test:e2e": "vitest run --config vitest.e2e.config.ts",
53
- "typecheck": "tsc --noEmit",
54
- "packages:build": "tsc --noEmit -p packages/shared/tsconfig.json 2>/dev/null; tsc --noEmit -p packages/core/tsconfig.json 2>/dev/null; tsc --noEmit -p packages/gateway/tsconfig.json 2>/dev/null",
55
- "shared:build": "tsc --noEmit -p packages/shared/tsconfig.json",
56
- "gateway:build": "tsc --noEmit -p packages/gateway/tsconfig.json",
57
- "test:packages": "vitest run --config vitest.unit.config.ts"
58
- },
59
- "exports": {
60
- ".": "./dist/run-main.js",
61
- "./sdk": "./dist/sdk/index.js",
62
- "./core": "./packages/core/src/index.ts",
63
- "./gateway": "./packages/gateway/src/index.ts"
64
- },
65
- "typesVersions": {
66
- "*": {
67
- "sdk": [
68
- "./dist/sdk/index.d.ts"
69
- ],
70
- "core": [
71
- "./packages/core/src/index.ts"
72
- ],
73
- "gateway": [
74
- "./packages/gateway/src/index.ts"
75
- ]
76
- }
77
- },
78
- "keywords": [
79
- "ai",
80
- "assistant",
81
- "cli",
82
- "gateway",
83
- "agent",
84
- "multi-channel",
85
- "lobster",
86
- "hyperclaw",
87
- "typescript",
88
- "monorepo",
89
- "mcp"
90
- ],
91
- "author": "HyperClaw Team",
92
- "license": "MIT",
93
- "dependencies": {
94
- "@types/ws": "^8.5.12",
95
- "axios": "^1.7.0",
96
- "boxen": "^5.1.2",
97
- "chalk": "^4.1.2",
98
- "commander": "^12.0.0",
99
- "figlet": "^1.5.2",
100
- "fs-extra": "^11.2.0",
101
- "gradient-string": "^2.0.2",
102
- "inquirer": "^8.2.7",
103
- "marked": "^15.0.12",
104
- "marked-terminal": "^7.3.0",
105
- "node-cron": "^3.0.3",
106
- "ora": "^5.4.1",
107
- "tar": "^7.0.0",
108
- "ws": "^8.18.0"
109
- },
110
- "optionalDependencies": {
111
- "@modelcontextprotocol/sdk": "^1.27.1",
112
- "@whiskeysockets/baileys": "^7.0.0",
113
- "discord.js": "^14.25.1",
114
- "irc": "^0.5.2",
115
- "pdf-parse": "^1.1.1",
116
- "puppeteer": "^23.0.0",
117
- "tail": "^2.2.6",
118
- "xlsx": "^0.18.5"
119
- },
120
- "devDependencies": {
121
- "@types/figlet": "^1.5.8",
122
- "@types/fs-extra": "^11.0.4",
123
- "@types/inquirer": "^8.2.10",
124
- "@types/marked-terminal": "^6.1.1",
125
- "@types/node": "^22.0.0",
126
- "@types/ws": "^8.5.8",
127
- "@vitest/coverage-v8": "^1.6.0",
128
- "nodemon": "^3.0.0",
129
- "sharp": "^0.34.5",
130
- "ts-node": "^10.9.2",
131
- "tsdown": "^0.3.0",
132
- "typescript": "^5.4.0",
133
- "vitest": "^1.6.0"
134
- },
135
- "engines": {
136
- "node": ">=22.0.0"
137
- },
138
- "workspaces": [
139
- "apps/*",
140
- "packages/*",
141
- "extensions/*"
142
- ]
143
- }
1
+ {
2
+ "name": "hyperclaw",
3
+ "version": "5.4.0",
4
+ "description": "⚡ HyperClaw — AI Gateway Platform. The Lobster Evolution 🦅",
5
+ "main": "dist/run-main.js",
6
+ "bin": {
7
+ "hyperclaw": "bin/hyperclaw.js"
8
+ },
9
+ "files": [
10
+ "bin/",
11
+ "dist/",
12
+ "scripts/",
13
+ "skills/",
14
+ "static/",
15
+ "README.md",
16
+ "LICENSE"
17
+ ],
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "https://github.com/mylo-2001/hyperclaw.git"
21
+ },
22
+ "homepage": "https://github.com/mylo-2001/hyperclaw#readme",
23
+ "bugs": {
24
+ "url": "https://github.com/mylo-2001/hyperclaw/issues"
25
+ },
26
+ "publishConfig": {
27
+ "access": "public"
28
+ },
29
+ "scripts": {
30
+ "build": "tsdown --config tsdown.config.mjs",
31
+ "postbuild": "node scripts/fix-init-paths.mjs",
32
+ "build:tsc": "tsc --outDir dist",
33
+ "start": "node dist/run-main.js",
34
+ "dev": "ts-node src/cli/run-main.ts",
35
+ "gateway:watch": "nodemon --ext ts --exec 'ts-node src/cli/run-main.ts gateway status'",
36
+ "web:dev": "cd apps/web && npm run dev",
37
+ "web:build": "cd apps/web && npm run build",
38
+ "macos:build": "cd apps/macos && npm install && npm run build",
39
+ "macos:test": "cd apps/macos && npm run test",
40
+ "sdk:build": "tsdown src/sdk/index.ts --outDir dist/sdk --format cjs && tsdown src/sdk/index.ts --outDir dist/sdk --format esm",
41
+ "core:build": "tsc --noEmit -p packages/core/tsconfig.json",
42
+ "prepare": "npm run build",
43
+ "prepublishOnly": "npm run build && npm run web:build && npm run sdk:build && npm run core:build",
44
+ "postinstall": "node scripts/postinstall.js",
45
+ "test": "vitest run",
46
+ "test:watch": "vitest",
47
+ "test:coverage": "vitest run --coverage",
48
+ "test:unit": "vitest run --config vitest.unit.config.mts",
49
+ "test:integration": "vitest run --config vitest.integration.config.mts",
50
+ "test:channels": "vitest run --config vitest.channels.config.mts",
51
+ "test:gateway": "vitest run --config vitest.gateway.config.mts",
52
+ "test:e2e": "vitest run --config vitest.e2e.config.mts",
53
+ "typecheck": "tsc --noEmit",
54
+ "packages:build": "tsc --noEmit -p packages/shared/tsconfig.json 2>/dev/null; tsc --noEmit -p packages/core/tsconfig.json 2>/dev/null; tsc --noEmit -p packages/gateway/tsconfig.json 2>/dev/null",
55
+ "shared:build": "tsc --noEmit -p packages/shared/tsconfig.json",
56
+ "gateway:build": "tsc --noEmit -p packages/gateway/tsconfig.json",
57
+ "test:packages": "vitest run --config vitest.unit.config.ts",
58
+ "check:mojibake": "node scripts/fix-mojibake.mjs",
59
+ "fix:mojibake": "node scripts/fix-mojibake.mjs --write"
60
+ },
61
+ "exports": {
62
+ ".": "./dist/run-main.js",
63
+ "./sdk": "./dist/sdk/index.js",
64
+ "./core": "./packages/core/src/index.ts",
65
+ "./gateway": "./packages/gateway/src/index.ts"
66
+ },
67
+ "typesVersions": {
68
+ "*": {
69
+ "sdk": [
70
+ "./dist/sdk/index.d.ts"
71
+ ],
72
+ "core": [
73
+ "./packages/core/src/index.ts"
74
+ ],
75
+ "gateway": [
76
+ "./packages/gateway/src/index.ts"
77
+ ]
78
+ }
79
+ },
80
+ "keywords": [
81
+ "ai",
82
+ "assistant",
83
+ "cli",
84
+ "gateway",
85
+ "agent",
86
+ "multi-channel",
87
+ "lobster",
88
+ "hyperclaw",
89
+ "typescript",
90
+ "monorepo",
91
+ "mcp"
92
+ ],
93
+ "author": "HyperClaw Team",
94
+ "license": "MIT",
95
+ "dependencies": {
96
+ "@types/ws": "^8.5.12",
97
+ "axios": "^1.7.0",
98
+ "boxen": "^5.1.2",
99
+ "chalk": "^4.1.2",
100
+ "commander": "^12.0.0",
101
+ "figlet": "^1.5.2",
102
+ "fs-extra": "^11.2.0",
103
+ "gradient-string": "^2.0.2",
104
+ "inquirer": "^8.2.7",
105
+ "marked": "^15.0.12",
106
+ "marked-terminal": "^7.3.0",
107
+ "node-cron": "^3.0.3",
108
+ "ora": "^5.4.1",
109
+ "tar": "^7.0.0",
110
+ "ws": "^8.18.0"
111
+ },
112
+ "optionalDependencies": {
113
+ "@modelcontextprotocol/sdk": "^1.27.1",
114
+ "@whiskeysockets/baileys": "^7.0.0",
115
+ "discord.js": "^14.25.1",
116
+ "irc": "^0.5.2",
117
+ "pdf-parse": "^1.1.1",
118
+ "puppeteer": "^23.0.0",
119
+ "tail": "^2.2.6",
120
+ "xlsx": "^0.18.5"
121
+ },
122
+ "devDependencies": {
123
+ "@types/figlet": "^1.5.8",
124
+ "@types/fs-extra": "^11.0.4",
125
+ "@types/inquirer": "^8.2.10",
126
+ "@types/marked-terminal": "^6.1.1",
127
+ "@types/node": "^22.0.0",
128
+ "@types/ws": "^8.5.8",
129
+ "@vitest/coverage-v8": "^1.6.0",
130
+ "nodemon": "^3.0.0",
131
+ "sharp": "^0.34.5",
132
+ "ts-node": "^10.9.2",
133
+ "tsdown": "^0.3.0",
134
+ "typescript": "^5.4.0",
135
+ "vitest": "^1.6.0"
136
+ },
137
+ "engines": {
138
+ "node": ">=22.0.0"
139
+ },
140
+ "workspaces": [
141
+ "apps/*",
142
+ "packages/*",
143
+ "extensions/*"
144
+ ]
145
+ }
@@ -0,0 +1,166 @@
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+
4
+ const cwd = process.cwd();
5
+ const args = process.argv.slice(2);
6
+ const write = args.includes('--write');
7
+ const positional = args.filter((arg) => arg !== '--write');
8
+
9
+ const textExtensions = new Set([
10
+ '.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs',
11
+ '.css', '.scss', '.html', '.json', '.md', '.mdx',
12
+ '.yml', '.yaml', '.xml', '.txt', '.sh', '.ps1',
13
+ '.kt', '.kts', '.swift', '.plist'
14
+ ]);
15
+
16
+ const excludedDirs = new Set([
17
+ '.git',
18
+ 'node_modules',
19
+ 'dist',
20
+ 'coverage',
21
+ 'vendor',
22
+ '.next',
23
+ 'static'
24
+ ]);
25
+
26
+ const suspiciousPatterns = [
27
+ /β€”/g,
28
+ /β”/g,
29
+ /βš/g,
30
+ /βœ/g,
31
+ /β—/g,
32
+ /Β·/g,
33
+ /πŸ/g,
34
+ /Ξ²β/g,
35
+ /Ο€/g,
36
+ /️/g
37
+ ];
38
+
39
+ const decoders = [
40
+ { name: 'windows-1253', decoder: new TextDecoder('windows-1253') },
41
+ { name: 'windows-1252', decoder: new TextDecoder('windows-1252') }
42
+ ];
43
+
44
+ const reverseMaps = new Map(decoders.map(({ name, decoder }) => [name, buildReverseMap(decoder)]));
45
+
46
+ function buildReverseMap(decoder) {
47
+ const map = new Map();
48
+ for (let i = 0; i < 256; i += 1) {
49
+ const ch = decoder.decode(Uint8Array.from([i]));
50
+ if (!map.has(ch)) map.set(ch, i);
51
+ }
52
+ return map;
53
+ }
54
+
55
+ function countMatches(text, regex) {
56
+ const matches = text.match(regex);
57
+ return matches ? matches.length : 0;
58
+ }
59
+
60
+ function mojibakeScore(text) {
61
+ let score = 0;
62
+ for (const pattern of suspiciousPatterns) score += countMatches(text, pattern) * 6;
63
+ score += countMatches(text, /\uFFFD/g) * 8;
64
+ score += countMatches(text, /[\u0080-\u009F]/g) * 3;
65
+ return score;
66
+ }
67
+
68
+ function repairText(text, encoding) {
69
+ const reverseMap = reverseMaps.get(encoding);
70
+ const bytes = [];
71
+
72
+ for (const ch of text) {
73
+ if (reverseMap.has(ch)) {
74
+ bytes.push(reverseMap.get(ch));
75
+ continue;
76
+ }
77
+
78
+ const codePoint = ch.codePointAt(0);
79
+ if (codePoint <= 0xff) {
80
+ bytes.push(codePoint);
81
+ continue;
82
+ }
83
+
84
+ bytes.push(...Buffer.from(ch, 'utf8'));
85
+ }
86
+
87
+ return Buffer.from(bytes).toString('utf8');
88
+ }
89
+
90
+ function getBestRepair(text) {
91
+ const originalScore = mojibakeScore(text);
92
+ let best = { text, encoding: null, score: originalScore };
93
+
94
+ for (const { name } of decoders) {
95
+ const candidate = repairText(text, name);
96
+ const candidateScore = mojibakeScore(candidate);
97
+ if (candidate !== text && candidateScore < best.score) {
98
+ best = { text: candidate, encoding: name, score: candidateScore };
99
+ }
100
+ }
101
+
102
+ return best.encoding ? best : null;
103
+ }
104
+
105
+ function looksBinary(buffer) {
106
+ const limit = Math.min(buffer.length, 2048);
107
+ for (let i = 0; i < limit; i += 1) {
108
+ if (buffer[i] === 0) return true;
109
+ }
110
+ return false;
111
+ }
112
+
113
+ function collectFiles(entryPath, out = []) {
114
+ const stat = fs.statSync(entryPath);
115
+ if (stat.isFile()) {
116
+ if (textExtensions.has(path.extname(entryPath).toLowerCase())) out.push(entryPath);
117
+ return out;
118
+ }
119
+
120
+ if (excludedDirs.has(path.basename(entryPath))) return out;
121
+
122
+ for (const child of fs.readdirSync(entryPath)) {
123
+ collectFiles(path.join(entryPath, child), out);
124
+ }
125
+ return out;
126
+ }
127
+
128
+ const targets = positional.length ? positional.map((p) => path.resolve(cwd, p)) : [cwd];
129
+ const files = [...new Set(targets.flatMap((target) => collectFiles(target)))].filter((file) => path.basename(file) !== 'fix-mojibake.mjs');
130
+ const changed = [];
131
+
132
+ for (const file of files) {
133
+ const buffer = fs.readFileSync(file);
134
+ if (looksBinary(buffer)) continue;
135
+
136
+ const original = buffer.toString('utf8');
137
+ if (mojibakeScore(original) === 0) continue;
138
+
139
+ const best = getBestRepair(original);
140
+ if (!best) continue;
141
+
142
+ const relative = path.relative(cwd, file) || path.basename(file);
143
+ changed.push({
144
+ file,
145
+ relative,
146
+ before: mojibakeScore(original),
147
+ after: best.score,
148
+ encoding: best.encoding
149
+ });
150
+
151
+ if (write) {
152
+ fs.writeFileSync(file, best.text, 'utf8');
153
+ }
154
+ }
155
+
156
+ if (changed.length === 0) {
157
+ console.log('No suspicious mojibake found.');
158
+ process.exit(0);
159
+ }
160
+
161
+ for (const item of changed) {
162
+ console.log(`${write ? 'fixed' : 'preview'} ${item.relative} (${item.before} -> ${item.after}, ${item.encoding})`);
163
+ }
164
+
165
+ console.log(`\n${write ? 'Updated' : 'Would update'} ${changed.length} file(s).`);
166
+ if (!write) console.log('Run with --write to apply the fixes.');