@tunnelbox/hermes 0.1.6 → 0.1.7

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 (2) hide show
  1. package/dist/index.mjs +21 -33
  2. package/package.json +2 -2
package/dist/index.mjs CHANGED
@@ -4,12 +4,14 @@
4
4
  import { resolve as resolve2 } from "node:path";
5
5
  import { fileURLToPath } from "node:url";
6
6
 
7
- // ../core/src/types.ts
7
+ // ../core/dist/index.js
8
+ import { randomBytes } from "crypto";
9
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
10
+ import { homedir } from "os";
11
+ import { dirname, join } from "path";
8
12
  function envelope(type, payload, id) {
9
13
  return { id, type, payload, ts: Date.now() };
10
14
  }
11
-
12
- // ../core/src/relay.ts
13
15
  var BASE_DELAY = 1e3;
14
16
  var MAX_DELAY = 15e3;
15
17
  var RelayClient = class {
@@ -92,14 +94,6 @@ var RelayClient = class {
92
94
  this.timer = setTimeout(() => this.open(), delay);
93
95
  }
94
96
  };
95
-
96
- // ../core/src/state.ts
97
- import { randomBytes } from "node:crypto";
98
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
99
- import { homedir } from "node:os";
100
- import { dirname, join } from "node:path";
101
-
102
- // ../core/locales/zh-CN.json
103
97
  var zh_CN_default = {
104
98
  "agent.err.createSession": "\u521B\u5EFA\u4F1A\u8BDD\u5931\u8D25",
105
99
  "agent.err.httpClient": "\u65E0\u6CD5\u8BBF\u95EE opencode HTTP client",
@@ -123,6 +117,8 @@ var zh_CN_default = {
123
117
  "index.log.disconnected": "\u4E0E\u4E2D\u7EE7\u65AD\u5F00\uFF0C\u6B63\u5728\u81EA\u52A8\u91CD\u8FDE\u2026",
124
118
  "index.log.exit": "\u5DF2\u9000\u51FA",
125
119
  "index.log.pairCode": "\u751F\u6210\u914D\u5BF9\u7801: {code}",
120
+ "index.log.pairingStillClaimed": "\u6B64\u914D\u5BF9\u7801\u4EC5\u4F9B\u540C\u8D26\u53F7\u7684\u65B0\u624B\u673A\u91CD\u65B0\u914D\u5BF9\uFF1B\u672C\u673A\u5DF2\u7ED1\u5B9A\uFF0C\u4ECD\u53EF\u4ECE\u624B\u673A\u300C\u6211\u7684\u7535\u8111\u300D\u76F4\u63A5\u8FDE\u63A5\u3002",
121
+ "index.log.pairingPreparing": "\u6B63\u5728\u8FDE\u63A5\u4E2D\u7EE7\u5E76\u751F\u6210\u914D\u5BF9\u7801\u2026",
126
122
  "index.log.permissionToPhone": "\u6743\u9650\u8BF7\u6C42 \u2192 \u624B\u673A\u5BA1\u6279 (id={id} tool={tool})",
127
123
  "index.log.permissionTuiFallback": "app \u79BB\u7EBF\uFF0C\u6743\u9650\u8BF7\u6C42\u7531 opencode TUI \u515C\u5E95 (id={id} tool={tool})",
128
124
  "index.log.relayError": "\u4E2D\u7EE7\u9519\u8BEF: {msg}",
@@ -259,8 +255,6 @@ var zh_CN_default = {
259
255
  "hermes.errToolStatus": "tunnelbox_status \u5931\u8D25: {err}",
260
256
  "hermes.cliUsage": "\u7528\u6CD5: /tunnelbox <pair|status>\n pair \u5411\u4E2D\u7EE7\u7533\u8BF7\u624B\u673A\u914D\u5BF9\u7801\u5E76\u6253\u5370\n status \u663E\u793A\u4E2D\u7EE7/\u7ED1\u5B9A/\u8FDE\u63A5\u72B6\u6001"
261
257
  };
262
-
263
- // ../core/locales/zh-TW.json
264
258
  var zh_TW_default = {
265
259
  "agent.err.createSession": "\u5EFA\u7ACB\u6703\u8A71\u5931\u6557",
266
260
  "agent.err.httpClient": "\u7121\u6CD5\u5B58\u53D6 opencode HTTP client",
@@ -284,6 +278,8 @@ var zh_TW_default = {
284
278
  "index.log.disconnected": "\u8207\u4E2D\u7E7C\u65B7\u7DDA\uFF0C\u6B63\u5728\u81EA\u52D5\u91CD\u9023\u2026",
285
279
  "index.log.exit": "\u5DF2\u9000\u51FA",
286
280
  "index.log.pairCode": "\u7522\u751F\u914D\u5C0D\u78BC: {code}",
281
+ "index.log.pairingStillClaimed": "\u6B64\u914D\u5C0D\u78BC\u50C5\u4F9B\u540C\u5E33\u865F\u7684\u65B0\u624B\u6A5F\u91CD\u65B0\u914D\u5C0D\uFF1B\u672C\u6A5F\u5DF2\u7D81\u5B9A\uFF0C\u4ECD\u53EF\u5F9E\u624B\u6A5F\u300C\u6211\u7684\u96FB\u8166\u300D\u76F4\u63A5\u9023\u63A5\u3002",
282
+ "index.log.pairingPreparing": "\u6B63\u5728\u9023\u7DDA\u4E2D\u7E7C\u4E26\u7522\u751F\u914D\u5C0D\u78BC\u2026",
287
283
  "index.log.permissionToPhone": "\u6B0A\u9650\u8ACB\u6C42 \u2192 \u624B\u6A5F\u5BE9\u6279 (id={id} tool={tool})",
288
284
  "index.log.permissionTuiFallback": "app \u96E2\u7DDA\uFF0C\u6B0A\u9650\u8ACB\u6C42\u7531 opencode TUI \u4EE3\u7BA1 (id={id} tool={tool})",
289
285
  "index.log.relayError": "\u4E2D\u7E7C\u932F\u8AA4: {msg}",
@@ -420,8 +416,6 @@ var zh_TW_default = {
420
416
  "hermes.errToolStatus": "tunnelbox_status \u5931\u6557: {err}",
421
417
  "hermes.cliUsage": "\u7528\u6CD5: /tunnelbox <pair|status>\n pair \u5411\u4E2D\u7E7C\u7533\u8ACB\u624B\u6A5F\u914D\u5C0D\u78BC\u4E26\u5217\u5370\n status \u986F\u793A\u4E2D\u7E7C/\u7D81\u5B9A/\u9023\u7DDA\u72C0\u614B"
422
418
  };
423
-
424
- // ../core/locales/en-US.json
425
419
  var en_US_default = {
426
420
  "agent.err.createSession": "Failed to create session",
427
421
  "agent.err.httpClient": "Cannot access the opencode HTTP client",
@@ -445,6 +439,8 @@ var en_US_default = {
445
439
  "index.log.disconnected": "Disconnected from relay, reconnecting automatically\u2026",
446
440
  "index.log.exit": "Exited",
447
441
  "index.log.pairCode": "Generated pairing code: {code}",
442
+ "index.log.pairingStillClaimed": "This pairing code is for re-pairing a new phone under the same account. This computer is already linked and stays reachable from \u201CMy Computers\u201D on your phone.",
443
+ "index.log.pairingPreparing": "Connecting to the relay and generating a pairing code\u2026",
448
444
  "index.log.permissionToPhone": "Permission request \u2192 phone approval (id={id} tool={tool})",
449
445
  "index.log.permissionTuiFallback": "App offline; permission request handled by the opencode TUI (id={id} tool={tool})",
450
446
  "index.log.relayError": "Relay error: {msg}",
@@ -581,8 +577,6 @@ var en_US_default = {
581
577
  "hermes.errToolStatus": "tunnelbox_status failed: {err}",
582
578
  "hermes.cliUsage": "Usage: /tunnelbox <pair|status>\n pair request and print a phone pairing code\n status show relay/binding/connection status"
583
579
  };
584
-
585
- // ../core/locales/ja-JP.json
586
580
  var ja_JP_default = {
587
581
  "agent.err.createSession": "\u30BB\u30C3\u30B7\u30E7\u30F3\u306E\u4F5C\u6210\u306B\u5931\u6557\u3057\u307E\u3057\u305F",
588
582
  "agent.err.httpClient": "opencode HTTP client \u306B\u30A2\u30AF\u30BB\u30B9\u3067\u304D\u307E\u305B\u3093",
@@ -606,6 +600,8 @@ var ja_JP_default = {
606
600
  "index.log.disconnected": "\u30EA\u30EC\u30FC\u304B\u3089\u5207\u65AD\u3001\u81EA\u52D5\u7684\u306B\u518D\u63A5\u7D9A\u3057\u3066\u3044\u307E\u3059\u2026",
607
601
  "index.log.exit": "\u7D42\u4E86\u3057\u307E\u3057\u305F",
608
602
  "index.log.pairCode": "\u30DA\u30A2\u30EA\u30F3\u30B0\u30B3\u30FC\u30C9\u3092\u751F\u6210: {code}",
603
+ "index.log.pairingStillClaimed": "\u3053\u306E\u30DA\u30A2\u30EA\u30F3\u30B0\u30B3\u30FC\u30C9\u306F\u540C\u4E00\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u65B0\u3057\u3044\u30B9\u30DE\u30FC\u30C8\u30D5\u30A9\u30F3\u3068\u306E\u518D\u30DA\u30A2\u30EA\u30F3\u30B0\u5C02\u7528\u3067\u3059\u3002\u3053\u306E PC \u306F\u65E2\u306B\u9023\u643A\u6E08\u307F\u3067\u3001\u30B9\u30DE\u30FC\u30C8\u30D5\u30A9\u30F3\u306E\u300C\u30DE\u30A4 \u30B3\u30F3\u30D4\u30E5\u30FC\u30BF\u30FC\u300D\u304B\u3089\u5F15\u304D\u7D9A\u304D\u63A5\u7D9A\u3067\u304D\u307E\u3059\u3002",
604
+ "index.log.pairingPreparing": "\u30EA\u30EC\u30FC\u3078\u63A5\u7D9A\u3057\u3066\u30DA\u30A2\u30EA\u30F3\u30B0\u30B3\u30FC\u30C9\u3092\u751F\u6210\u3057\u3066\u3044\u307E\u3059\u2026",
609
605
  "index.log.permissionToPhone": "\u6A29\u9650\u30EA\u30AF\u30A8\u30B9\u30C8 \u2192 \u30B9\u30DE\u30DB\u3067\u627F\u8A8D (id={id} tool={tool})",
610
606
  "index.log.permissionTuiFallback": "App \u304C\u30AA\u30D5\u30E9\u30A4\u30F3\u306E\u305F\u3081\u3001\u6A29\u9650\u30EA\u30AF\u30A8\u30B9\u30C8\u306F opencode TUI \u3067\u5BFE\u5FDC (id={id} tool={tool})",
611
607
  "index.log.relayError": "\u30EA\u30EC\u30FC\u30A8\u30E9\u30FC: {msg}",
@@ -742,8 +738,6 @@ var ja_JP_default = {
742
738
  "hermes.errToolStatus": "tunnelbox_status \u5931\u6557: {err}",
743
739
  "hermes.cliUsage": "\u4F7F\u7528\u65B9\u6CD5: /tunnelbox <pair|status>\n pair \u30DA\u30A2\u30EA\u30F3\u30B0\u30B3\u30FC\u30C9\u3092\u53D6\u5F97\u3057\u3066\u8868\u793A\n status \u30EA\u30EC\u30FC/\u30D0\u30A4\u30F3\u30C9/\u63A5\u7D9A\u72B6\u614B\u3092\u8868\u793A"
744
740
  };
745
-
746
- // ../core/locales/ko-KR.json
747
741
  var ko_KR_default = {
748
742
  "agent.err.createSession": "\uC138\uC158 \uC0DD\uC131 \uC2E4\uD328",
749
743
  "agent.err.httpClient": "opencode HTTP client\uC5D0 \uC811\uADFC\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4",
@@ -767,6 +761,8 @@ var ko_KR_default = {
767
761
  "index.log.disconnected": "\uB9B4\uB808\uC774 \uC5F0\uACB0\uC774 \uB04A\uACA8 \uC790\uB3D9\uC73C\uB85C \uC7AC\uC5F0\uACB0 \uC911\u2026",
768
762
  "index.log.exit": "\uC885\uB8CC\uB428",
769
763
  "index.log.pairCode": "\uD398\uC5B4\uB9C1 \uCF54\uB4DC \uC0DD\uC131: {code}",
764
+ "index.log.pairingStillClaimed": "\uC774 \uD398\uC5B4\uB9C1 \uCF54\uB4DC\uB294 \uAC19\uC740 \uACC4\uC815\uC758 \uC0C8 \uD734\uB300\uD3F0 \uC7AC\uC5F0\uACB0 \uC804\uC6A9\uC785\uB2C8\uB2E4. \uC774 PC\uB294 \uC774\uBBF8 \uC5F0\uACB0\uB418\uC5B4 \uD734\uB300\uD3F0\uC758 '\uB0B4 \uCEF4\uD4E8\uD130'\uC5D0\uC11C \uACC4\uC18D \uC811\uC18D\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",
765
+ "index.log.pairingPreparing": "\uB9B4\uB808\uC774\uC5D0 \uC5F0\uACB0\uD558\uC5EC \uD398\uC5B4\uB9C1 \uCF54\uB4DC\uB97C \uC0DD\uC131\uD558\uB294 \uC911\uC785\uB2C8\uB2E4\u2026",
770
766
  "index.log.permissionToPhone": "\uAD8C\uD55C \uC694\uCCAD \u2192 \uD734\uB300\uD3F0 \uC2B9\uC778 (id={id} tool={tool})",
771
767
  "index.log.permissionTuiFallback": "\uC571 \uC624\uD504\uB77C\uC778, \uAD8C\uD55C \uC694\uCCAD\uC740 opencode TUI\uAC00 \uCC98\uB9AC (id={id} tool={tool})",
772
768
  "index.log.relayError": "\uB9B4\uB808\uC774 \uC624\uB958: {msg}",
@@ -903,8 +899,6 @@ var ko_KR_default = {
903
899
  "hermes.errToolStatus": "tunnelbox_status \uC2E4\uD328: {err}",
904
900
  "hermes.cliUsage": "\uC0AC\uC6A9\uBC95: /tunnelbox <pair|status>\n pair \uD734\uB300\uD3F0 \uD398\uC5B4\uB9C1 \uCF54\uB4DC \uC694\uCCAD/\uCD9C\uB825\n status \uB9B4\uB808\uC774/\uBC14\uC778\uB529/\uC5F0\uACB0 \uC0C1\uD0DC \uD45C\uC2DC"
905
901
  };
906
-
907
- // ../core/locales/fr-FR.json
908
902
  var fr_FR_default = {
909
903
  "agent.err.createSession": "\xC9chec de la cr\xE9ation de la session",
910
904
  "agent.err.httpClient": "Impossible d'acc\xE9der au client HTTP d'opencode",
@@ -928,6 +922,8 @@ var fr_FR_default = {
928
922
  "index.log.disconnected": "D\xE9connect\xE9 du relais, reconnexion automatique\u2026",
929
923
  "index.log.exit": "Arr\xEAt\xE9",
930
924
  "index.log.pairCode": "Code d'appairage g\xE9n\xE9r\xE9 : {code}",
925
+ "index.log.pairingStillClaimed": "Ce code d'appairage sert uniquement \xE0 r\xE9-appairer un nouveau t\xE9l\xE9phone du m\xEAme compte ; cet ordinateur est d\xE9j\xE0 li\xE9 et reste accessible depuis \xAB Mes ordinateurs \xBB sur votre t\xE9l\xE9phone.",
926
+ "index.log.pairingPreparing": "Connexion au relais et g\xE9n\xE9ration du code d'appairage\u2026",
931
927
  "index.log.permissionToPhone": "Demande d'autorisation \u2192 approbation sur t\xE9l\xE9phone (id={id} tool={tool})",
932
928
  "index.log.permissionTuiFallback": "App hors ligne ; la demande est g\xE9r\xE9e par le TUI opencode (id={id} tool={tool})",
933
929
  "index.log.relayError": "Erreur du relais : {msg}",
@@ -1064,8 +1060,6 @@ var fr_FR_default = {
1064
1060
  "hermes.errToolStatus": "\xE9chec de tunnelbox_status : {err}",
1065
1061
  "hermes.cliUsage": "Utilisation : /tunnelbox <pair|status>\n pair demander et afficher un code d'appairage\n status afficher l'\xE9tat relais/liaison/connexion"
1066
1062
  };
1067
-
1068
- // ../core/locales/de-DE.json
1069
1063
  var de_DE_default = {
1070
1064
  "agent.err.createSession": "Sitzung konnte nicht erstellt werden",
1071
1065
  "agent.err.httpClient": "Auf den opencode-HTTP-Client kann nicht zugegriffen werden",
@@ -1089,6 +1083,8 @@ var de_DE_default = {
1089
1083
  "index.log.disconnected": "Vom Relay getrennt, verbinde automatisch neu\u2026",
1090
1084
  "index.log.exit": "Beendet",
1091
1085
  "index.log.pairCode": "Pairing-Code erzeugt: {code}",
1086
+ "index.log.pairingStillClaimed": "Dieser Pairing-Code dient nur zum erneuten Pairing eines neuen Telefons im selben Konto. Dieser Computer ist bereits verkn\xFCpft und bleibt \xFCber \u201EMeine Computer\u201C auf Ihrem Telefon erreichbar.",
1087
+ "index.log.pairingPreparing": "Verbindung zum Relay wird hergestellt und Pairing-Code generiert\u2026",
1092
1088
  "index.log.permissionToPhone": "Berechtigungsanfrage \u2192 Genehmigung am Telefon (id={id} tool={tool})",
1093
1089
  "index.log.permissionTuiFallback": "App offline; Berechtigungsanfrage wird vom opencode-TUI \xFCbernommen (id={id} tool={tool})",
1094
1090
  "index.log.relayError": "Relay-Fehler: {msg}",
@@ -1225,8 +1221,6 @@ var de_DE_default = {
1225
1221
  "hermes.errToolStatus": "tunnelbox_status fehlgeschlagen: {err}",
1226
1222
  "hermes.cliUsage": "Verwendung: /tunnelbox <pair|status>\n pair Pairing-Code anfordern und anzeigen\n status Relay/Bindung/Verbindung anzeigen"
1227
1223
  };
1228
-
1229
- // ../core/locales/es-ES.json
1230
1224
  var es_ES_default = {
1231
1225
  "agent.err.createSession": "No se pudo crear la sesi\xF3n",
1232
1226
  "agent.err.httpClient": "No se puede acceder al cliente HTTP de opencode",
@@ -1250,6 +1244,8 @@ var es_ES_default = {
1250
1244
  "index.log.disconnected": "Desconectado del relay, reconectando autom\xE1ticamente\u2026",
1251
1245
  "index.log.exit": "Salido",
1252
1246
  "index.log.pairCode": "C\xF3digo de emparejamiento generado: {code}",
1247
+ "index.log.pairingStillClaimed": "Este c\xF3digo de emparejamiento es solo para volver a emparejar un tel\xE9fono nuevo con la misma cuenta; este equipo ya est\xE1 vinculado y sigue accesible desde \xABMis computadoras\xBB en el tel\xE9fono.",
1248
+ "index.log.pairingPreparing": "Conectando al relay y generando el c\xF3digo de emparejamiento\u2026",
1253
1249
  "index.log.permissionToPhone": "Solicitud de permiso \u2192 aprobaci\xF3n en el tel\xE9fono (id={id} tool={tool})",
1254
1250
  "index.log.permissionTuiFallback": "App sin conexi\xF3n; la solicitud la gestiona el TUI de opencode (id={id} tool={tool})",
1255
1251
  "index.log.relayError": "Error del relay: {msg}",
@@ -1386,8 +1382,6 @@ var es_ES_default = {
1386
1382
  "hermes.errToolStatus": "fallo de tunnelbox_status: {err}",
1387
1383
  "hermes.cliUsage": "Uso: /tunnelbox <pair|status>\n pair solicitar e imprimir un c\xF3digo de emparejamiento\n status mostrar estado de rel\xE9/enlace/conexi\xF3n"
1388
1384
  };
1389
-
1390
- // ../core/src/i18n.ts
1391
1385
  var DEFAULT_LANG = "en-US";
1392
1386
  var dicts = {
1393
1387
  "zh-CN": zh_CN_default,
@@ -1445,8 +1439,6 @@ function t(lang, key, vars) {
1445
1439
  function makeT(lang) {
1446
1440
  return (key, vars) => t(lang, key, vars);
1447
1441
  }
1448
-
1449
- // ../core/src/state.ts
1450
1442
  function baseName() {
1451
1443
  return join(homedir(), ".tunnelbox");
1452
1444
  }
@@ -1509,13 +1501,9 @@ function writePairingJson(info, type) {
1509
1501
  }
1510
1502
  return p;
1511
1503
  }
1512
-
1513
- // ../core/src/env.ts
1514
1504
  function injectedRelayUrl() {
1515
1505
  return "wss://relay.tunnelbox.top" ? "wss://relay.tunnelbox.top".replace(/\/+$/, "") : "";
1516
1506
  }
1517
-
1518
- // ../core/src/qr.ts
1519
1507
  function dispWidth(s) {
1520
1508
  let w = 0;
1521
1509
  for (const ch of s) w += ch.charCodeAt(0) > 255 ? 2 : 1;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tunnelbox/hermes",
3
- "version": "0.1.6",
3
+ "version": "0.1.7",
4
4
  "description": "tunnelbox 的 Hermes 适配器(B 类,CLI oneshot 桥接):手机远程驱动本机 Hermes Agent(hermes chat -Q -q + --resume 续聊,会话/流式/中止/删除;headless 无手机审批)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.mjs",
@@ -34,7 +34,7 @@
34
34
  "qrcode": "^1.5.3"
35
35
  },
36
36
  "devDependencies": {
37
- "@tunnelbox/core": "0.1.0",
37
+ "@tunnelbox/core": "0.1.7",
38
38
  "@types/node": "^22.0.0",
39
39
  "@types/qrcode": "^1.5.5",
40
40
  "esbuild": "^0.24.0",