@quukk/opencode-clawmessenger 0.3.0 → 1.0.4

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 (106) hide show
  1. package/README.md +71 -623
  2. package/bin/opencode-clawmessenger +2 -2
  3. package/bin/opencode-clawmessenger-setup +5 -5
  4. package/dist/cli.d.ts +0 -1
  5. package/dist/cli.js +1 -288
  6. package/dist/core/auto-register.d.ts +0 -1
  7. package/dist/core/auto-register.js +1 -174
  8. package/dist/core/auto-serve.d.ts +13 -0
  9. package/dist/core/auto-serve.js +1 -0
  10. package/dist/core/config.d.ts +2 -3
  11. package/dist/core/config.js +1 -80
  12. package/dist/core/daemon.d.ts +0 -1
  13. package/dist/core/daemon.js +1 -77
  14. package/dist/core/dedup.d.ts +0 -1
  15. package/dist/core/dedup.js +1 -25
  16. package/dist/core/hook-manager.d.ts +0 -1
  17. package/dist/core/hook-manager.js +1 -33
  18. package/dist/core/logger.d.ts +0 -1
  19. package/dist/core/logger.js +1 -49
  20. package/dist/core/mac-address.d.ts +0 -1
  21. package/dist/core/mac-address.js +1 -43
  22. package/dist/core/message-handler.d.ts +0 -1
  23. package/dist/core/message-handler.js +1 -988
  24. package/dist/core/ops-assistant.d.ts +0 -1
  25. package/dist/core/ops-assistant.js +1 -270
  26. package/dist/core/qr-crypto.d.ts +0 -1
  27. package/dist/core/qr-crypto.js +1 -66
  28. package/dist/core/session-manager.d.ts +0 -1
  29. package/dist/core/session-manager.js +1 -144
  30. package/dist/core/types.d.ts +1 -2
  31. package/dist/core/types.js +1 -26
  32. package/dist/index.d.ts +0 -1
  33. package/dist/index.js +1 -16
  34. package/dist/openclaw/client.d.ts +0 -1
  35. package/dist/openclaw/client.js +1 -494
  36. package/dist/opencode/client.d.ts +0 -1
  37. package/dist/opencode/client.js +1 -279
  38. package/dist/opencode/event-handler.d.ts +0 -1
  39. package/dist/opencode/event-handler.js +1 -467
  40. package/dist/plugin.d.ts +0 -1
  41. package/dist/plugin.js +1 -148
  42. package/dist/rongcloud/client.d.ts +0 -1
  43. package/dist/rongcloud/client.js +1 -292
  44. package/dist/rongcloud/env-polyfill.d.ts +0 -1
  45. package/dist/rongcloud/env-polyfill.js +1 -107
  46. package/dist/rongcloud/server-api.d.ts +0 -1
  47. package/dist/rongcloud/server-api.js +1 -157
  48. package/dist/standalone.d.ts +0 -1
  49. package/dist/standalone.js +1 -229
  50. package/dist/types/plugin.d.ts +0 -1
  51. package/dist/types/plugin.js +1 -2
  52. package/dist/websocket/client.d.ts +0 -1
  53. package/dist/websocket/client.js +1 -88
  54. package/dist/websocket/server-client.d.ts +0 -1
  55. package/dist/websocket/server-client.js +1 -98
  56. package/package.json +83 -81
  57. package/dist/cli.d.ts.map +0 -1
  58. package/dist/cli.js.map +0 -1
  59. package/dist/core/auto-register.d.ts.map +0 -1
  60. package/dist/core/auto-register.js.map +0 -1
  61. package/dist/core/config.d.ts.map +0 -1
  62. package/dist/core/config.js.map +0 -1
  63. package/dist/core/daemon.d.ts.map +0 -1
  64. package/dist/core/daemon.js.map +0 -1
  65. package/dist/core/dedup.d.ts.map +0 -1
  66. package/dist/core/dedup.js.map +0 -1
  67. package/dist/core/hook-manager.d.ts.map +0 -1
  68. package/dist/core/hook-manager.js.map +0 -1
  69. package/dist/core/logger.d.ts.map +0 -1
  70. package/dist/core/logger.js.map +0 -1
  71. package/dist/core/mac-address.d.ts.map +0 -1
  72. package/dist/core/mac-address.js.map +0 -1
  73. package/dist/core/message-handler.d.ts.map +0 -1
  74. package/dist/core/message-handler.js.map +0 -1
  75. package/dist/core/ops-assistant.d.ts.map +0 -1
  76. package/dist/core/ops-assistant.js.map +0 -1
  77. package/dist/core/qr-crypto.d.ts.map +0 -1
  78. package/dist/core/qr-crypto.js.map +0 -1
  79. package/dist/core/session-manager.d.ts.map +0 -1
  80. package/dist/core/session-manager.js.map +0 -1
  81. package/dist/core/types.d.ts.map +0 -1
  82. package/dist/core/types.js.map +0 -1
  83. package/dist/index.d.ts.map +0 -1
  84. package/dist/index.js.map +0 -1
  85. package/dist/openclaw/client.d.ts.map +0 -1
  86. package/dist/openclaw/client.js.map +0 -1
  87. package/dist/opencode/client.d.ts.map +0 -1
  88. package/dist/opencode/client.js.map +0 -1
  89. package/dist/opencode/event-handler.d.ts.map +0 -1
  90. package/dist/opencode/event-handler.js.map +0 -1
  91. package/dist/plugin.d.ts.map +0 -1
  92. package/dist/plugin.js.map +0 -1
  93. package/dist/rongcloud/client.d.ts.map +0 -1
  94. package/dist/rongcloud/client.js.map +0 -1
  95. package/dist/rongcloud/env-polyfill.d.ts.map +0 -1
  96. package/dist/rongcloud/env-polyfill.js.map +0 -1
  97. package/dist/rongcloud/server-api.d.ts.map +0 -1
  98. package/dist/rongcloud/server-api.js.map +0 -1
  99. package/dist/standalone.d.ts.map +0 -1
  100. package/dist/standalone.js.map +0 -1
  101. package/dist/types/plugin.d.ts.map +0 -1
  102. package/dist/types/plugin.js.map +0 -1
  103. package/dist/websocket/client.d.ts.map +0 -1
  104. package/dist/websocket/client.js.map +0 -1
  105. package/dist/websocket/server-client.d.ts.map +0 -1
  106. package/dist/websocket/server-client.js.map +0 -1
@@ -1,107 +1 @@
1
- import 'fake-indexeddb/auto';
2
- import { JSDOM } from 'jsdom';
3
- import WebSocket from 'ws';
4
- import * as http from 'http';
5
- import * as https from 'https';
6
- const dom = new JSDOM('<!DOCTYPE html><html><body></body></html>', {
7
- url: 'http://localhost',
8
- pretendToBeVisual: true,
9
- userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
10
- });
11
- const win = dom.window;
12
- ['indexedDB', 'IDBKeyRange', 'IDBRequest', 'IDBDatabase', 'IDBTransaction', 'IDBCursor', 'IDBIndex', 'IDBFactory'].forEach((k) => {
13
- try {
14
- if (globalThis[k]) {
15
- win[k] = globalThis[k];
16
- }
17
- }
18
- catch { }
19
- });
20
- if (globalThis.crypto && !win.crypto) {
21
- win.crypto = globalThis.crypto;
22
- }
23
- try {
24
- Object.defineProperty(globalThis, 'navigator', { value: win.navigator, writable: true, configurable: true });
25
- }
26
- catch {
27
- globalThis.navigator = win.navigator;
28
- }
29
- try {
30
- Object.defineProperty(globalThis, 'window', { value: win, writable: true, configurable: true });
31
- }
32
- catch {
33
- globalThis.window = win;
34
- }
35
- try {
36
- Object.defineProperty(globalThis, 'document', { value: win.document, writable: true, configurable: true });
37
- }
38
- catch {
39
- globalThis.document = win.document;
40
- }
41
- try {
42
- Object.defineProperty(globalThis, 'location', { value: win.location, writable: true, configurable: true });
43
- }
44
- catch {
45
- globalThis.location = win.location;
46
- }
47
- globalThis.WebSocket = WebSocket;
48
- class NodeXHR {
49
- constructor() {
50
- this.readyState = 0;
51
- this.status = 0;
52
- this.responseText = '';
53
- this.onreadystatechange = null;
54
- this._method = '';
55
- this._url = null;
56
- this._headers = null;
57
- }
58
- open(method, url) {
59
- this._method = method;
60
- this._url = new URL(url);
61
- }
62
- send(body) {
63
- if (!this._url)
64
- return;
65
- const mod = this._url.protocol === 'https:' ? https : http;
66
- const req = mod.request(this._url, { method: this._method, headers: this._headers || {} }, (res) => {
67
- let data = '';
68
- res.on('data', (c) => { data += c; });
69
- res.on('end', () => {
70
- this.status = res.statusCode || 0;
71
- if (typeof this.onreadystatechange === 'function') {
72
- this.readyState = 4;
73
- this.responseText = data;
74
- this.onreadystatechange();
75
- }
76
- });
77
- });
78
- req.on('error', () => { });
79
- if (body)
80
- req.write(body);
81
- req.end();
82
- }
83
- setRequestHeader(k, v) {
84
- if (!this._headers)
85
- this._headers = {};
86
- this._headers[k] = v;
87
- }
88
- abort() { }
89
- }
90
- globalThis.XMLHttpRequest = NodeXHR;
91
- try {
92
- win.XMLHttpRequest = NodeXHR;
93
- }
94
- catch { }
95
- globalThis.localStorage = win.localStorage;
96
- globalThis.sessionStorage = win.sessionStorage;
97
- if (!win.Blob)
98
- win.Blob = globalThis.Blob;
99
- if (!win.File)
100
- win.File = globalThis.File;
101
- if (!win.requestAnimationFrame) {
102
- win.requestAnimationFrame = (cb) => setTimeout(cb, 16);
103
- }
104
- if (!win.cancelAnimationFrame) {
105
- win.cancelAnimationFrame = (id) => clearTimeout(id);
106
- }
107
- //# sourceMappingURL=env-polyfill.js.map
1
+ const a0_0x273dcc=a0_0x3b26;(function(_0x2a79ac,_0xfb1817){const _0xd46f9b=a0_0x3b26,_0x4eb71e=_0x2a79ac();while(!![]){try{const _0x4e2c96=-parseInt(_0xd46f9b(0x22b))/0x1+parseInt(_0xd46f9b(0x21f))/0x2*(parseInt(_0xd46f9b(0x217))/0x3)+parseInt(_0xd46f9b(0x20e))/0x4*(parseInt(_0xd46f9b(0x1ff))/0x5)+-parseInt(_0xd46f9b(0x21d))/0x6*(parseInt(_0xd46f9b(0x222))/0x7)+parseInt(_0xd46f9b(0x219))/0x8*(-parseInt(_0xd46f9b(0x1f9))/0x9)+-parseInt(_0xd46f9b(0x1ec))/0xa+parseInt(_0xd46f9b(0x1f3))/0xb*(parseInt(_0xd46f9b(0x1fd))/0xc);if(_0x4e2c96===_0xfb1817)break;else _0x4eb71e['push'](_0x4eb71e['shift']());}catch(_0x50894b){_0x4eb71e['push'](_0x4eb71e['shift']());}}}(a0_0x185a,0x7b822));import'fake-indexeddb/auto';import{JSDOM}from'jsdom';import a0_0x5b97bb from'ws';import*as a0_0x580b2f from'http';import*as a0_0x395018 from'https';const dom=new JSDOM(a0_0x273dcc(0x22a),{'url':'http://localhost','pretendToBeVisual':!![],'userAgent':a0_0x273dcc(0x1ef)}),win=dom[a0_0x273dcc(0x1f8)];function a0_0x185a(){const _0x36774a=['zgf0yq','CMvZCg9UC2vuzxH0','qMXVyG','BMf2AwDHDg9Y','BwrkzKG','CMvHzhLtDgf0zq','CMvXDwvZDa','zgvMAw5LuhjVCgvYDhK','BNDAsuq','C3rHDhvZq29Kzq','nfzZveTxzW','ywjVCNq','surcq3vYC29Y','CMXOsu0','surcrMfJDg9YEq','x2HLywrLCNm','zg9JDw1LBNq','zgXYBMu','C3bSAxq','nKvKyKzgDq','A1fWvvm','mtaYmZjOBM9kCMO','zw5K','CMvXDwvZDefUAw1HDgLVBKzYyw1L','mxWWFdz8nhW1Fdj8mW','mZq4nZHtD3rnDLG','Bg9JyxrPB24','oty5otm0tLLqy0vJ','Ahr0Chm6','ChjVDg9JB2W','otCZqMPHwKzm','C2vUza','C2vZC2LVBLn0B3jHz2u','D3jPDgu','rMLSzq','vwLZB0q','x3vYBa','x21LDgHVza','pcfet0nuwvbfigH0BwW+pgH0BwW+pgjVzhK+pc9IB2r5pJWVAhrTBd4','nZyYoti2zLDrr1Hj','nZmZmJGXmeT3ufvdwG','zM9YrwfJAa','BLbur1C','tw96AwXSys81lJaGkfDPBMrVD3mGtLqGmtaUmdSGv2LUnJq7ihG2ncKGqxbWBgvxzwjlAxqVntm3lJm2','y2fUy2vSqw5PBwf0Aw9UrNjHBwu','Agrrt1u','thHszM8','mJe0nJu2mNnbA1vpwG','quPdu28','we1mshr0CfjLCxvLC3q','B25YzwfKExn0yxrLy2HHBMDL','C3rHDhvZ','D2LUzg93','mJu5mMHrv2DnDq','v2vIu29JA2v0','zNvUy3rPB24','Bg9JywXtDg9YywDL','mtiWrhvxwKz1','Aw5KzxHLzerc','mti4ntuXmgLfs0HHBq','y3j5ChrV','surcuMvXDwvZDa','zxjYB3i','yxLxB1a'];a0_0x185a=function(){return _0x36774a;};return a0_0x185a();}[a0_0x273dcc(0x1fe),'IDBKeyRange',a0_0x273dcc(0x201),'IDBDatabase','IDBTransaction',a0_0x273dcc(0x210),'IDBIndex',a0_0x273dcc(0x212)][a0_0x273dcc(0x1ed)](_0x5388db=>{const _0x30b42a=a0_0x273dcc,_0x3b8a38={'kQpUS':_0x30b42a(0x214),'mdJfH':function(_0x4347cf,_0x336999){return _0x4347cf===_0x336999;},'AJCSo':_0x30b42a(0x211)};try{globalThis[_0x5388db]&&(_0x3b8a38[_0x30b42a(0x208)](_0x3b8a38[_0x30b42a(0x1f4)],_0x3b8a38[_0x30b42a(0x1f4)])?win[_0x5388db]=globalThis[_0x5388db]:_0x37ef73[_0x30b42a(0x20b)](_0x48d7f0,_0x3b8a38[_0x30b42a(0x218)],{'value':_0x1fa585[_0x30b42a(0x214)],'writable':!![],'configurable':!![]}));}catch{}});globalThis[a0_0x273dcc(0x200)]&&!win[a0_0x273dcc(0x200)]&&(win['crypto']=globalThis['crypto']);try{Object[a0_0x273dcc(0x20b)](globalThis,a0_0x273dcc(0x207),{'value':win['navigator'],'writable':!![],'configurable':!![]});}catch{globalThis[a0_0x273dcc(0x207)]=win[a0_0x273dcc(0x207)];}try{Object[a0_0x273dcc(0x20b)](globalThis,'window',{'value':win,'writable':!![],'configurable':!![]});}catch{globalThis['window']=win;}try{Object[a0_0x273dcc(0x20b)](globalThis,a0_0x273dcc(0x214),{'value':win['document'],'writable':!![],'configurable':!![]});}catch{globalThis[a0_0x273dcc(0x214)]=win[a0_0x273dcc(0x214)];}try{Object[a0_0x273dcc(0x20b)](globalThis,a0_0x273dcc(0x21e),{'value':win['location'],'writable':!![],'configurable':!![]});}catch{globalThis[a0_0x273dcc(0x21e)]=win[a0_0x273dcc(0x21e)];}globalThis[a0_0x273dcc(0x1fa)]=a0_0x5b97bb;class NodeXHR{constructor(){const _0x1baca5=a0_0x273dcc,_0x202441={'dlrne':_0x1baca5(0x21c)},_0x2f2a69=_0x202441[_0x1baca5(0x215)][_0x1baca5(0x216)]('|');let _0x325bc6=0x0;while(!![]){switch(_0x2f2a69[_0x325bc6++]){case'0':this['status']=0x0;continue;case'1':this[_0x1baca5(0x209)]=0x0;continue;case'2':this[_0x1baca5(0x228)]=null;continue;case'3':this[_0x1baca5(0x213)]=null;continue;case'4':this[_0x1baca5(0x1f6)]=null;continue;case'5':this[_0x1baca5(0x229)]='';continue;case'6':this['responseText']='';continue;}break;}}['open'](_0x33f3e2,_0x467e5f){const _0x5d58d2=a0_0x273dcc;this[_0x5d58d2(0x229)]=_0x33f3e2,this['_url']=new URL(_0x467e5f);}[a0_0x273dcc(0x223)](_0x35533b){const _0x4ebb9a=a0_0x273dcc,_0x55e03b={'rOlnc':function(_0xd0e1c5,_0xafc8ca){return _0xd0e1c5!==_0xafc8ca;},'nwZID':_0x4ebb9a(0x204),'LxRfo':function(_0x4b1087,_0x53bbe1){return _0x4b1087===_0x53bbe1;},'hdQOU':_0x4ebb9a(0x220)};if(!this[_0x4ebb9a(0x228)])return;const _0x7c5fa3=_0x55e03b[_0x4ebb9a(0x1f2)](this[_0x4ebb9a(0x228)][_0x4ebb9a(0x221)],_0x55e03b[_0x4ebb9a(0x1f1)])?a0_0x395018:a0_0x580b2f,_0x15e3b9=_0x7c5fa3[_0x4ebb9a(0x20a)](this[_0x4ebb9a(0x228)],{'method':this[_0x4ebb9a(0x229)],'headers':this[_0x4ebb9a(0x213)]||{}},_0x339b41=>{const _0x373c42=_0x4ebb9a,_0x3135ef={'UisoD':function(_0x80706d,_0x39bb5f){return _0x55e03b['rOlnc'](_0x80706d,_0x39bb5f);}};let _0x16ac5d='';_0x339b41['on'](_0x55e03b[_0x373c42(0x20c)],_0x2da49a=>{_0x16ac5d+=_0x2da49a;}),_0x339b41['on'](_0x373c42(0x21a),()=>{const _0x3cf736=_0x373c42;this[_0x3cf736(0x1f7)]=_0x339b41[_0x3cf736(0x20d)]||0x0,typeof this[_0x3cf736(0x1f6)]===_0x3cf736(0x1fb)&&(_0x3135ef[_0x3cf736(0x227)](_0x3cf736(0x1ee),_0x3cf736(0x203))?(this[_0x3cf736(0x209)]=0x4,this['responseText']=_0x16ac5d,this[_0x3cf736(0x1f6)]()):(this[_0x3cf736(0x209)]=0x4,this[_0x3cf736(0x205)]=_0x450dc2,this[_0x3cf736(0x1f6)]()));});});_0x15e3b9['on'](_0x4ebb9a(0x202),()=>{});if(_0x35533b)_0x15e3b9[_0x4ebb9a(0x225)](_0x35533b);_0x15e3b9[_0x4ebb9a(0x21a)]();}['setRequestHeader'](_0x5eeae2,_0x41b04c){const _0x52fd6b=a0_0x273dcc;if(!this[_0x52fd6b(0x213)])this[_0x52fd6b(0x213)]={};this[_0x52fd6b(0x213)][_0x5eeae2]=_0x41b04c;}[a0_0x273dcc(0x20f)](){}}globalThis['XMLHttpRequest']=NodeXHR;try{win[a0_0x273dcc(0x1f5)]=NodeXHR;}catch{}globalThis['localStorage']=win[a0_0x273dcc(0x1fc)],globalThis[a0_0x273dcc(0x224)]=win['sessionStorage'];if(!win['Blob'])win[a0_0x273dcc(0x206)]=globalThis[a0_0x273dcc(0x206)];function a0_0x3b26(_0x189b38,_0xdf85cb){_0x189b38=_0x189b38-0x1ec;const _0x185a91=a0_0x185a();let _0x3b2681=_0x185a91[_0x189b38];if(a0_0x3b26['deBMoI']===undefined){var _0x1e82c7=function(_0x31354c){const _0x3d4688='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x19902e='',_0xaa84b7='';for(let _0x186333=0x0,_0x4b6e7b,_0x36ee05,_0x1b4d9b=0x0;_0x36ee05=_0x31354c['charAt'](_0x1b4d9b++);~_0x36ee05&&(_0x4b6e7b=_0x186333%0x4?_0x4b6e7b*0x40+_0x36ee05:_0x36ee05,_0x186333++%0x4)?_0x19902e+=String['fromCharCode'](0xff&_0x4b6e7b>>(-0x2*_0x186333&0x6)):0x0){_0x36ee05=_0x3d4688['indexOf'](_0x36ee05);}for(let _0x14cb80=0x0,_0x5358a6=_0x19902e['length'];_0x14cb80<_0x5358a6;_0x14cb80++){_0xaa84b7+='%'+('00'+_0x19902e['charCodeAt'](_0x14cb80)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xaa84b7);};a0_0x3b26['RQWoOW']=_0x1e82c7,a0_0x3b26['hkKwBN']={},a0_0x3b26['deBMoI']=!![];}const _0x220f3f=_0x185a91[0x0],_0x431fa1=_0x189b38+_0x220f3f,_0x545146=a0_0x3b26['hkKwBN'][_0x431fa1];return!_0x545146?(_0x3b2681=a0_0x3b26['RQWoOW'](_0x3b2681),a0_0x3b26['hkKwBN'][_0x431fa1]=_0x3b2681):_0x3b2681=_0x545146,_0x3b2681;}if(!win['File'])win[a0_0x273dcc(0x226)]=globalThis[a0_0x273dcc(0x226)];!win[a0_0x273dcc(0x21b)]&&(win[a0_0x273dcc(0x21b)]=_0x59beb0=>setTimeout(_0x59beb0,0x10));!win[a0_0x273dcc(0x1f0)]&&(win['cancelAnimationFrame']=_0x2fcaa1=>clearTimeout(_0x2fcaa1));
@@ -35,4 +35,3 @@ export declare class RongCloudServerAPI {
35
35
  }>;
36
36
  sendTypingStatus(fromUserId: string, toUserId: string, conversationType: number): Promise<void>;
37
37
  }
38
- //# sourceMappingURL=server-api.d.ts.map
@@ -1,157 +1 @@
1
- import { createHash, randomBytes } from 'crypto';
2
- import { createLogger } from '../core/logger.js';
3
- const log = createLogger('RongCloudServerAPI');
4
- const API_HOSTS = ['api.rong-api.com', 'api-b.rong-api.com'];
5
- export class RongCloudServerAPI {
6
- constructor(appKey, appSecret) {
7
- this.hostIndex = 0;
8
- this.appKey = appKey;
9
- this.appSecret = appSecret;
10
- }
11
- get host() {
12
- return API_HOSTS[this.hostIndex];
13
- }
14
- generateSignature() {
15
- const nonce = randomBytes(18).toString('base64url').slice(0, 18);
16
- const timestamp = Date.now();
17
- const source = this.appSecret + nonce + timestamp;
18
- const signature = createHash('sha1').update(source).digest('hex');
19
- return { nonce, timestamp, signature };
20
- }
21
- getHeaders(contentType) {
22
- const { nonce, timestamp, signature } = this.generateSignature();
23
- return {
24
- 'App-Key': this.appKey,
25
- 'Nonce': nonce,
26
- 'Timestamp': String(timestamp),
27
- 'Signature': signature,
28
- 'Content-Type': contentType,
29
- };
30
- }
31
- encodeForm(obj) {
32
- return Object.entries(obj)
33
- .map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(typeof v === 'object' ? JSON.stringify(v) : String(v))}`)
34
- .join('&');
35
- }
36
- async requestJSON(path, data) {
37
- this.hostIndex = 0;
38
- for (let attempt = 0; attempt < API_HOSTS.length; attempt++) {
39
- const url = `https://${this.host}${path}`;
40
- try {
41
- const response = await fetch(url, {
42
- method: 'POST',
43
- headers: this.getHeaders('application/json; charset=UTF-8'),
44
- body: JSON.stringify(data),
45
- signal: AbortSignal.timeout(10000),
46
- });
47
- const result = await response.json();
48
- if (result.code && result.code !== 200) {
49
- throw new Error(`[${result.code}] ${result.errorMessage || 'Unknown error'}`);
50
- }
51
- return result;
52
- }
53
- catch (err) {
54
- log.warn({ host: this.host, path, err: err.message }, 'Request failed');
55
- if (attempt < API_HOSTS.length - 1) {
56
- this.hostIndex++;
57
- }
58
- else {
59
- throw err;
60
- }
61
- }
62
- }
63
- }
64
- async requestForm(path, data) {
65
- this.hostIndex = 0;
66
- for (let attempt = 0; attempt < API_HOSTS.length; attempt++) {
67
- const url = `https://${this.host}${path}`;
68
- try {
69
- const response = await fetch(url, {
70
- method: 'POST',
71
- headers: this.getHeaders('application/x-www-form-urlencoded'),
72
- body: this.encodeForm(data),
73
- signal: AbortSignal.timeout(10000),
74
- });
75
- const result = await response.json();
76
- if (result.code && result.code !== 200) {
77
- throw new Error(`[${result.code}] ${result.errorMessage || 'Unknown error'}`);
78
- }
79
- return result;
80
- }
81
- catch (err) {
82
- log.warn({ host: this.host, path, err: err.message }, 'Form request failed');
83
- if (attempt < API_HOSTS.length - 1) {
84
- this.hostIndex++;
85
- }
86
- else {
87
- throw err;
88
- }
89
- }
90
- }
91
- }
92
- async sendStreamPrivate(params) {
93
- const contentBody = {
94
- content: params.content,
95
- complete: params.isLastChunk,
96
- seq: params.seq,
97
- };
98
- if (params.isFirstChunk) {
99
- contentBody.type = params.streamType || 'markdown';
100
- }
101
- if (!params.isFirstChunk && params.messageUID) {
102
- contentBody.messageUID = params.messageUID;
103
- }
104
- const data = {
105
- fromUserId: params.fromUserId,
106
- toUserId: params.toUserId,
107
- objectName: 'RC:StreamMsg',
108
- content: contentBody,
109
- isPersisted: 1,
110
- isCounted: params.isFirstChunk ? 1 : 0,
111
- disableUpdateLastMsg: !params.isLastChunk,
112
- };
113
- log.info({ to: params.toUserId, seq: params.seq, first: params.isFirstChunk, last: params.isLastChunk }, 'Stream chunk');
114
- const result = await this.requestJSON('/v3/message/private/publish_stream.json', data);
115
- log.info({ to: params.toUserId, seq: params.seq, result }, 'Stream API response');
116
- return result;
117
- }
118
- async sendStreamGroup(params) {
119
- const contentBody = {
120
- content: params.content,
121
- complete: params.isLastChunk,
122
- seq: params.seq,
123
- };
124
- if (params.isFirstChunk) {
125
- contentBody.type = params.streamType || 'markdown';
126
- }
127
- if (!params.isFirstChunk && params.messageUID) {
128
- contentBody.messageUID = params.messageUID;
129
- }
130
- const data = {
131
- fromUserId: params.fromUserId,
132
- toGroupId: params.toGroupId,
133
- objectName: 'RC:StreamMsg',
134
- content: contentBody,
135
- isPersisted: 1,
136
- isCounted: params.isFirstChunk ? 1 : 0,
137
- isIncludeSender: 1,
138
- disableUpdateLastMsg: !params.isLastChunk,
139
- };
140
- log.info({ to: params.toGroupId, seq: params.seq, first: params.isFirstChunk, last: params.isLastChunk }, 'Stream chunk group');
141
- return this.requestJSON('/v3/message/group/publish_stream.json', data);
142
- }
143
- async sendTypingStatus(fromUserId, toUserId, conversationType) {
144
- const path = conversationType === 3
145
- ? '/message/group/publish.json'
146
- : '/message/private/publish.json';
147
- await this.requestForm(path, {
148
- fromUserId,
149
- toUserId,
150
- objectName: 'RC:TypSts',
151
- content: JSON.stringify({ typingContentType: 'RC:TxtMsg' }),
152
- isPersisted: 0,
153
- isCounted: 0,
154
- });
155
- }
156
- }
157
- //# sourceMappingURL=server-api.js.map
1
+ function a0_0x2b76(){const _0x252722=['CKXSD3G','uwrkzgK','BwfW','Ahr0Chm6lY8','nJaZotuZmvvSqKHKsa','sMnkCvu','BgvUz3rO','B2PMCxq','Cwfmv3G','yxbWu2vJCMv0','Dg1pDwq','tLrTqKm','u3rYzwfTignODw5RigDYB3vW','suzhAfq','uMvXDwvZDcbMywLSzwq','u3rYzwfTiefqssbYzxnWB25Zzq','BwfYA2rVD24','ruzxywW','wuvjrMW','l3yZl21LC3nHz2uVChjPDMf0zs9WDwjSAxnOx3n0CMvHBs5QC29U','C2vUzfr5CgLUz1n0yxr1CW','DhLWzq','C2vUzfn0CMvHBvbYAxzHDgu','uKm6u3rYzwfTtxnN','zxjYB3jnzxnZywDL','BwvZC2fNzq','ue9tva','uKm6vhLWu3rZ','zeXjDLy','EgLcA0q','C2XPy2u','l21LC3nHz2uVChjPDMf0zs9WDwjSAxnOlMPZB24','D2fYBG','B3D0vva','BwvZC2fNzvvjra','B3DjrKe','Axnmyxn0q2H1BMS','BvDvy0e','CMvXDwvZDezVCM0','zw5JB2rLrM9YBq','zKXUthm','Dg9hCM91CeLK','yLrqs2i','mtjwz2zYC2S','wLfvBee','zw50CMLLCW','DvzKv1m','Aw5MBW','qMXIuwy','mtq2nJfWy1rbugK','zNjVBvvZzxjjza','C1rzt1q','BxrAyKm','rvnmtfK','ENHos0C','ANnVBG','y29Kzq','BxbZweW','B2jQzwn0','C2HHmq','t29TA20','BM93','nfbuz2DhsG','nJeZotG1mgP1DuXOrq','reHozMi','z2v0sgvHzgvYCW','ve5TCeC','l3yZl21LC3nHz2uVz3jVDxaVChvIBgLZAf9ZDhjLyw0UANnVBG','CMLdCuu','yxbWBgLJyxrPB24VEc13D3CTzM9YBs11CMXLBMnVzgvK','yxbWs2v5','Ag9ZDeLUzgv4','Ag9ZDa','BMnlsLe','vw5RBM93BIbLCNjVCG','DMXyzMO','rM9YBsbYzxf1zxn0igzHAwXLza','uM9Uz0nSB3vKu2vYDMvYqvbj','C3rYzwfTvhLWzq','mJC4mZK0wMfluhLH','mJG2mda2mhrizLHLta','DxbKyxrL','Dg9tDhjPBMC','mJaYmdGZn1fND3zpwq','C3rYAw5NAwz5','mtqYnda4mgrXDw5Wyq','t0zdug4','nZz6D1blC3i','zePsCwm','y29UDgvUDa','C2vUzfn0CMvHBuDYB3vW','yMfZzty0DxjS','rxzlD2q','Dg9vC2vYswq','DfDszfO','zgLNzxn0','C2vX','C0vxBLi','u2zOt0K','AxngAxjZDenODw5R','DgLTzw91Da','CM5PvK4','uwrutMe','uKm6vhH0txnN','CMvXDwvZDePtt04','ru5xv1a','v0XAAxa','v2T3zu4','yxbWBgLJyxrPB24VANnVBJSGy2HHCNnLDd1vveyToa','z2vUzxjHDgvtAwDUyxr1CMu'];a0_0x2b76=function(){return _0x252722;};return a0_0x2b76();}function a0_0x4713(_0x7bf21,_0x305507){_0x7bf21=_0x7bf21-0x116;const _0x2b76db=a0_0x2b76();let _0x4713dc=_0x2b76db[_0x7bf21];if(a0_0x4713['VBUHHQ']===undefined){var _0x51b71f=function(_0x577f31){const _0x37fb27='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3ba8b2='',_0x22a8a2='';for(let _0x1b4b9d=0x0,_0x24ab56,_0x18df0e,_0x4fb276=0x0;_0x18df0e=_0x577f31['charAt'](_0x4fb276++);~_0x18df0e&&(_0x24ab56=_0x1b4b9d%0x4?_0x24ab56*0x40+_0x18df0e:_0x18df0e,_0x1b4b9d++%0x4)?_0x3ba8b2+=String['fromCharCode'](0xff&_0x24ab56>>(-0x2*_0x1b4b9d&0x6)):0x0){_0x18df0e=_0x37fb27['indexOf'](_0x18df0e);}for(let _0x4be92e=0x0,_0x2a7d65=_0x3ba8b2['length'];_0x4be92e<_0x2a7d65;_0x4be92e++){_0x22a8a2+='%'+('00'+_0x3ba8b2['charCodeAt'](_0x4be92e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x22a8a2);};a0_0x4713['dKaSQw']=_0x51b71f,a0_0x4713['YfQNwj']={},a0_0x4713['VBUHHQ']=!![];}const _0x4201be=_0x2b76db[0x0],_0x426f8f=_0x7bf21+_0x4201be,_0x5d6440=a0_0x4713['YfQNwj'][_0x426f8f];return!_0x5d6440?(_0x4713dc=a0_0x4713['dKaSQw'](_0x4713dc),a0_0x4713['YfQNwj'][_0x426f8f]=_0x4713dc):_0x4713dc=_0x5d6440,_0x4713dc;}const a0_0x1cefef=a0_0x4713;(function(_0xa51d9a,_0x4076f6){const _0x2961e1=a0_0x4713,_0x1a8078=_0xa51d9a();while(!![]){try{const _0x2e26cf=parseInt(_0x2961e1(0x145))/0x1*(parseInt(_0x2961e1(0x16b))/0x2)+parseInt(_0x2961e1(0x163))/0x3*(-parseInt(_0x2961e1(0x152))/0x4)+-parseInt(_0x2961e1(0x164))/0x5+-parseInt(_0x2961e1(0x13f))/0x6*(-parseInt(_0x2961e1(0x167))/0x7)+-parseInt(_0x2961e1(0x169))/0x8+parseInt(_0x2961e1(0x118))/0x9+-parseInt(_0x2961e1(0x153))/0xa;if(_0x2e26cf===_0x4076f6)break;else _0x1a8078['push'](_0x1a8078['shift']());}catch(_0x54e9c4){_0x1a8078['push'](_0x1a8078['shift']());}}}(a0_0x2b76,0x55252));import{createHash,randomBytes}from'crypto';import{createLogger}from'../core/logger.js';const log=createLogger(a0_0x1cefef(0x161)),API_HOSTS=['api.rong-api.com','api-b.rong-api.com'];export class RongCloudServerAPI{constructor(_0x43de75,_0x2c44a6){const _0xbd6528=a0_0x1cefef;this[_0xbd6528(0x15b)]=0x0,this[_0xbd6528(0x15a)]=_0x43de75,this[_0xbd6528(0x11d)]=_0x2c44a6;}get['host'](){const _0x41e45f=a0_0x1cefef;return API_HOSTS[this[_0x41e45f(0x15b)]];}[a0_0x1cefef(0x181)](){const _0x5d2954=a0_0x1cefef,_0x1b2be8={'mtZbC':function(_0x2ca1d2,_0x29c7bf){return _0x2ca1d2(_0x29c7bf);},'QvrsW':_0x5d2954(0x16f),'tWRdZ':function(_0x598c5b,_0x5e1b99){return _0x598c5b+_0x5e1b99;},'xiBkD':_0x5d2954(0x14f),'XMdtx':'hex'},_0x27f4fa=_0x1b2be8[_0x5d2954(0x148)](randomBytes,0x12)[_0x5d2954(0x166)](_0x1b2be8['QvrsW'])[_0x5d2954(0x132)](0x0,0x12),_0x14ef83=Date[_0x5d2954(0x151)](),_0x2f8e13=_0x1b2be8[_0x5d2954(0x172)](this[_0x5d2954(0x11d)],_0x27f4fa)+_0x14ef83,_0x1e12f9=_0x1b2be8[_0x5d2954(0x148)](createHash,_0x1b2be8[_0x5d2954(0x131)])[_0x5d2954(0x165)](_0x2f8e13)[_0x5d2954(0x173)](_0x1b2be8['XMdtx']);return{'nonce':_0x27f4fa,'timestamp':_0x14ef83,'signature':_0x1e12f9};}[a0_0x1cefef(0x155)](_0x58977e){const _0x544888=a0_0x1cefef,_0x52f847={'JcJqU':function(_0x2e8d3b,_0x434ce6){return _0x2e8d3b(_0x434ce6);}},{nonce:_0x1ecd45,timestamp:_0x55474f,signature:_0x20216f}=this[_0x544888(0x181)]();return{'App-Key':this[_0x544888(0x15a)],'Nonce':_0x1ecd45,'Timestamp':_0x52f847[_0x544888(0x119)](String,_0x55474f),'Signature':_0x20216f,'Content-Type':_0x58977e};}[a0_0x1cefef(0x13b)](_0x341862){const _0x1ce012=a0_0x1cefef;return Object[_0x1ce012(0x141)](_0x341862)[_0x1ce012(0x116)](([_0x59f923,_0x4ea26c])=>encodeURIComponent(_0x59f923)+'='+encodeURIComponent(typeof _0x4ea26c===_0x1ce012(0x14e)?JSON[_0x1ce012(0x168)](_0x4ea26c):String(_0x4ea26c)))['join']('&');}async[a0_0x1cefef(0x17c)](_0x3f1b62,_0x1b918e){const _0x4f7ddc=a0_0x1cefef,_0x310b3a={'vlXfj':function(_0x4aa644,_0x350877){return _0x4aa644<_0x350877;},'sEWnR':function(_0x452a86,_0x974a80){return _0x452a86-_0x974a80;},'rniVN':_0x4f7ddc(0x124),'ZQUlA':function(_0x30d5ed,_0x2724c6){return _0x30d5ed!==_0x2724c6;},'baIHv':_0x4f7ddc(0x13c),'ESLLY':function(_0x3ce9a5,_0x3696fa,_0x2866e5){return _0x3ce9a5(_0x3696fa,_0x2866e5);},'NTmBC':_0x4f7ddc(0x12e),'ENWWP':_0x4f7ddc(0x180),'rLlwx':_0x4f7ddc(0x15e),'riCqE':function(_0x2de136,_0x1038fd){return _0x2de136===_0x1038fd;},'DHNfb':_0x4f7ddc(0x130),'ZmcFF':function(_0x134a23,_0x1aa82f){return _0x134a23===_0x1aa82f;},'mWUcA':_0x4f7ddc(0x15d)};this['hostIndex']=0x0;for(let _0x4252f2=0x0;_0x310b3a[_0x4f7ddc(0x15f)](_0x4252f2,API_HOSTS[_0x4f7ddc(0x11a)]);_0x4252f2++){const _0x5cadb7='https://'+this[_0x4f7ddc(0x15c)]+_0x3f1b62;try{if(_0x310b3a[_0x4f7ddc(0x140)](_0x4f7ddc(0x13c),_0x310b3a['baIHv']))_0x473b95[_0x4f7ddc(0x129)]=_0x4fc015[_0x4f7ddc(0x162)]||_0x4f7ddc(0x124);else{const _0x5ae186=await _0x310b3a[_0x4f7ddc(0x149)](fetch,_0x5cadb7,{'method':_0x310b3a[_0x4f7ddc(0x11f)],'headers':this['getHeaders'](_0x310b3a[_0x4f7ddc(0x17d)]),'body':JSON[_0x4f7ddc(0x168)](_0x1b918e),'signal':AbortSignal[_0x4f7ddc(0x178)](0x2710)}),_0x2d2f2e=await _0x5ae186[_0x4f7ddc(0x14b)]();if(_0x2d2f2e['code']&&_0x310b3a[_0x4f7ddc(0x140)](_0x2d2f2e['code'],0xc8))throw new Error('['+_0x2d2f2e[_0x4f7ddc(0x14c)]+']\x20'+(_0x2d2f2e[_0x4f7ddc(0x12c)]||_0x310b3a[_0x4f7ddc(0x182)]));return _0x2d2f2e;}}catch(_0x1c0f8d){if(_0x310b3a[_0x4f7ddc(0x158)](_0x310b3a[_0x4f7ddc(0x154)],_0x4f7ddc(0x130))){log[_0x4f7ddc(0x134)]({'host':this[_0x4f7ddc(0x15c)],'path':_0x3f1b62,'err':_0x1c0f8d[_0x4f7ddc(0x12d)]},_0x4f7ddc(0x122));if(_0x310b3a[_0x4f7ddc(0x15f)](_0x4252f2,API_HOSTS[_0x4f7ddc(0x11a)]-0x1))this[_0x4f7ddc(0x15b)]++;else{if(_0x310b3a['ZmcFF'](_0x4f7ddc(0x14d),_0x310b3a[_0x4f7ddc(0x139)])){_0x53618b[_0x4f7ddc(0x134)]({'host':this[_0x4f7ddc(0x15c)],'path':_0x1680d3,'err':_0x43bf20[_0x4f7ddc(0x12d)]},_0x4f7ddc(0x160));if(_0x310b3a['vlXfj'](_0x397894,_0x310b3a[_0x4f7ddc(0x175)](_0x3385d2[_0x4f7ddc(0x11a)],0x1)))this['hostIndex']++;else throw _0x2d1d94;}else throw _0x1c0f8d;}}else _0x447e84[_0x4f7ddc(0x129)]=_0x54550a[_0x4f7ddc(0x162)]||_0x310b3a[_0x4f7ddc(0x179)];}}}async[a0_0x1cefef(0x13a)](_0x3425d0,_0x5113cc){const _0x5c17a5=a0_0x1cefef,_0x54ce4a={'ojfqt':_0x5c17a5(0x122),'SfhOI':function(_0x569a00,_0x4d6ea8){return _0x569a00<_0x4d6ea8;},'ATjaY':function(_0x2dfa7d,_0x610091){return _0x2dfa7d-_0x610091;},'sTYOT':function(_0x24cefc,_0x17451d){return _0x24cefc<_0x17451d;},'PMcUy':'POST','WLZip':_0x5c17a5(0x159),'Oomkm':function(_0x5503b7,_0xf5cce8){return _0x5503b7!==_0xf5cce8;},'VsOhR':_0x5c17a5(0x121),'zxNKG':function(_0xa2520e,_0x20f03e){return _0xa2520e<_0x20f03e;},'dnXHo':function(_0x33c6b6,_0x37fc85){return _0x33c6b6===_0x37fc85;},'YEIFl':_0x5c17a5(0x183)};this[_0x5c17a5(0x15b)]=0x0;for(let _0x594dad=0x0;_0x54ce4a[_0x5c17a5(0x147)](_0x594dad,API_HOSTS[_0x5c17a5(0x11a)]);_0x594dad++){const _0xc03fd3=_0x5c17a5(0x117)+this[_0x5c17a5(0x15c)]+_0x3425d0;try{const _0xcb94f6=await fetch(_0xc03fd3,{'method':_0x54ce4a['PMcUy'],'headers':this['getHeaders'](_0x54ce4a[_0x5c17a5(0x17e)]),'body':this[_0x5c17a5(0x13b)](_0x5113cc),'signal':AbortSignal[_0x5c17a5(0x178)](0x2710)}),_0x524d53=await _0xcb94f6[_0x5c17a5(0x14b)]();if(_0x524d53[_0x5c17a5(0x14c)]&&_0x54ce4a[_0x5c17a5(0x150)](_0x524d53[_0x5c17a5(0x14c)],0xc8)){if(_0x54ce4a['VsOhR']!==_0x5c17a5(0x137))throw new Error('['+_0x524d53[_0x5c17a5(0x14c)]+']\x20'+(_0x524d53['errorMessage']||_0x5c17a5(0x15e)));else _0x378f02['messageUID']=_0xc074b1['messageUID'];}return _0x524d53;}catch(_0x1c537f){log[_0x5c17a5(0x134)]({'host':this[_0x5c17a5(0x15c)],'path':_0x3425d0,'err':_0x1c537f[_0x5c17a5(0x12d)]},'Form\x20request\x20failed');if(_0x54ce4a[_0x5c17a5(0x14a)](_0x594dad,_0x54ce4a['ATjaY'](API_HOSTS[_0x5c17a5(0x11a)],0x1))){if(_0x54ce4a['dnXHo']('QdTNa',_0x5c17a5(0x17a)))this[_0x5c17a5(0x15b)]++;else throw new _0x372b10('['+_0x31b12e[_0x5c17a5(0x14c)]+']\x20'+(_0x4e9bbc[_0x5c17a5(0x12c)]||_0x5c17a5(0x15e)));}else{if(_0x54ce4a[_0x5c17a5(0x126)]===_0x54ce4a[_0x5c17a5(0x126)])throw _0x1c537f;else{_0x565e2e[_0x5c17a5(0x134)]({'host':this[_0x5c17a5(0x15c)],'path':_0x50990f,'err':_0x89f5ee['message']},lQbxLV[_0x5c17a5(0x11b)]);if(lQbxLV[_0x5c17a5(0x176)](_0x48f869,lQbxLV['ATjaY'](_0x3696de[_0x5c17a5(0x11a)],0x1)))this[_0x5c17a5(0x15b)]++;else throw _0x359066;}}}}}async[a0_0x1cefef(0x12a)](_0xb07c70){const _0x2f2b91=a0_0x1cefef,_0x367016={'owtUP':_0x2f2b91(0x124),'WkweN':function(_0x37b99c,_0x5048f7){return _0x37b99c===_0x5048f7;},'TNmpG':_0x2f2b91(0x16c),'bTPKb':'Stream\x20chunk','EvKwd':_0x2f2b91(0x127),'uVdWS':_0x2f2b91(0x123)},_0x1cacd2={'content':_0xb07c70[_0x2f2b91(0x16d)],'complete':_0xb07c70[_0x2f2b91(0x138)],'seq':_0xb07c70['seq']};_0xb07c70[_0x2f2b91(0x177)]&&(_0x1cacd2[_0x2f2b91(0x129)]=_0xb07c70[_0x2f2b91(0x162)]||_0x367016[_0x2f2b91(0x135)]);!_0xb07c70[_0x2f2b91(0x177)]&&_0xb07c70[_0x2f2b91(0x136)]&&(_0x367016[_0x2f2b91(0x17f)]('dJRqc',_0x367016[_0x2f2b91(0x156)])?_0x1cacd2[_0x2f2b91(0x136)]=_0xb07c70['messageUID']:(this['hostIndex']=0x0,this[_0x2f2b91(0x15a)]=_0x1b4b9d,this['appSecret']=_0x24ab56));const _0x451f31={'fromUserId':_0xb07c70[_0x2f2b91(0x146)],'toUserId':_0xb07c70[_0x2f2b91(0x171)],'objectName':_0x2f2b91(0x12b),'content':_0x1cacd2,'isPersisted':0x1,'isCounted':_0xb07c70[_0x2f2b91(0x177)]?0x1:0x0,'disableUpdateLastMsg':!_0xb07c70[_0x2f2b91(0x138)]};log['info']({'to':_0xb07c70['toUserId'],'seq':_0xb07c70[_0x2f2b91(0x174)],'first':_0xb07c70[_0x2f2b91(0x177)],'last':_0xb07c70[_0x2f2b91(0x138)]},_0x367016[_0x2f2b91(0x13e)]);const _0x514cfe=await this[_0x2f2b91(0x17c)](_0x367016[_0x2f2b91(0x170)],_0x451f31);return log[_0x2f2b91(0x143)]({'to':_0xb07c70['toUserId'],'seq':_0xb07c70[_0x2f2b91(0x174)],'result':_0x514cfe},_0x367016[_0x2f2b91(0x142)]),_0x514cfe;}async[a0_0x1cefef(0x16e)](_0x398db2){const _0x40a313=a0_0x1cefef,_0x1f19d3={'tmOud':function(_0x1fb940,_0x53cb7b){return _0x1fb940===_0x53cb7b;}},_0x2640e4={'content':_0x398db2['content'],'complete':_0x398db2[_0x40a313(0x138)],'seq':_0x398db2[_0x40a313(0x174)]};_0x398db2[_0x40a313(0x177)]&&(_0x1f19d3[_0x40a313(0x11e)](_0x40a313(0x125),_0x40a313(0x125))?_0x2640e4[_0x40a313(0x129)]=_0x398db2[_0x40a313(0x162)]||'markdown':this[_0x40a313(0x15b)]++);!_0x398db2[_0x40a313(0x177)]&&_0x398db2['messageUID']&&(_0x2640e4['messageUID']=_0x398db2[_0x40a313(0x136)]);const _0x36d758={'fromUserId':_0x398db2[_0x40a313(0x146)],'toGroupId':_0x398db2[_0x40a313(0x13d)],'objectName':_0x40a313(0x12b),'content':_0x2640e4,'isPersisted':0x1,'isCounted':_0x398db2[_0x40a313(0x177)]?0x1:0x0,'isIncludeSender':0x1,'disableUpdateLastMsg':!_0x398db2[_0x40a313(0x138)]};return log[_0x40a313(0x143)]({'to':_0x398db2[_0x40a313(0x13d)],'seq':_0x398db2[_0x40a313(0x174)],'first':_0x398db2[_0x40a313(0x177)],'last':_0x398db2['isLastChunk']},_0x40a313(0x120)),this['requestJSON'](_0x40a313(0x157),_0x36d758);}async[a0_0x1cefef(0x128)](_0x627b9b,_0x160b21,_0x2a9cba){const _0x530907=a0_0x1cefef,_0x521286={'OFCPn':'/message/group/publish.json','BlbQf':_0x530907(0x133),'qaLWx':_0x530907(0x12f)},_0x3dbf23=_0x2a9cba===0x3?_0x521286[_0x530907(0x16a)]:_0x521286[_0x530907(0x144)];await this[_0x530907(0x13a)](_0x3dbf23,{'fromUserId':_0x627b9b,'toUserId':_0x160b21,'objectName':_0x521286[_0x530907(0x11c)],'content':JSON['stringify']({'typingContentType':_0x530907(0x17b)}),'isPersisted':0x0,'isCounted':0x0});}}
@@ -7,4 +7,3 @@ export declare function generateBindQR(nodeName?: string): Promise<{
7
7
  qrData: string;
8
8
  }>;
9
9
  export declare function startStandalone(options?: StartStandaloneOptions): Promise<void>;
10
- //# sourceMappingURL=standalone.d.ts.map
@@ -1,229 +1 @@
1
- import { ConfigManager } from './core/config.js';
2
- import { SessionManager } from './core/session-manager.js';
3
- import { MessageHandler } from './core/message-handler.js';
4
- import { RongCloudClient } from './rongcloud/client.js';
5
- import { OpenCodeClient, checkOpencodeStatus } from './opencode/client.js';
6
- import { EventHandler } from './opencode/event-handler.js';
7
- import { createLogger } from './core/logger.js';
8
- import { startStatusWriter } from './core/daemon.js';
9
- import { getOrRegisterToken, loadAutoConfig, generateNodeId, getAppKey, getAppSecret } from './core/auto-register.js';
10
- import { encryptQR } from './core/qr-crypto.js';
11
- import { hostname } from 'os';
12
- const log = createLogger('standalone');
13
- export async function generateBindQR(nodeName) {
14
- let nodeId = (await loadAutoConfig())?.nodeId;
15
- if (!nodeId) {
16
- nodeId = generateNodeId();
17
- }
18
- const name = nodeName || (await loadAutoConfig())?.nodeName || hostname();
19
- const bindData = JSON.stringify({ type: 'bind_openclaw', node_id: nodeId, name, timestamp: Date.now() });
20
- const encrypted = encryptQR(bindData);
21
- return { nodeId, qrData: encrypted };
22
- }
23
- export async function startStandalone(options = {}) {
24
- const { configPath, autoServe = false } = options;
25
- console.log('Starting OpenCode ClawMessenger Plugin (Standalone Mode)\n');
26
- console.log(' - RongCloud IM bridge to OpenCode');
27
- console.log(' - Auto-registration & heartbeat');
28
- console.log(' - Message deduplication & session persistence\n');
29
- const configManager = new ConfigManager(configPath);
30
- let config;
31
- try {
32
- config = configManager.load();
33
- }
34
- catch {
35
- config = configManager.load();
36
- }
37
- if (!config.token) {
38
- log.info('Token missing, auto-registering...');
39
- const token = await getOrRegisterToken(config.serverUrl, undefined, log);
40
- if (!token) {
41
- console.error('自动注册失败,请运行: npx opencode-clawmessenger setup');
42
- process.exit(1);
43
- }
44
- config.token = token;
45
- config.accountId = (await loadAutoConfig())?.nodeId || generateNodeId();
46
- log.info('Auto-registration successful');
47
- }
48
- console.log(` Account: ${config.accountId}`);
49
- console.log(` OpenCode: ${config.opencodeUrl}`);
50
- console.log(` Server: ${config.serverUrl}\n`);
51
- const serverRunning = await checkOpencodeStatus(config.opencodeUrl, config.opencodePassword);
52
- if (!serverRunning && autoServe) {
53
- log.warn('OpenCode server not running; --serve auto-start is not yet implemented for clawmessenger');
54
- }
55
- if (!serverRunning) {
56
- const port = new URL(config.opencodeUrl).port || '19876';
57
- console.warn(`OpenCode server not running at ${config.opencodeUrl}`);
58
- console.warn(` Start it: opencode serve --port ${port}\n`);
59
- }
60
- // 参考 opencode-feishu:directory 指向包含 .opencode/prompt.md 的目录
61
- // OpenCode 会自动加载该目录下的 prompt.md 作为 system prompt
62
- // 优先级:环境变量 CLAW_OPENCODE_DIR > 配置文件的 opencodeDir > process.cwd()
63
- const opencodeDir = config.opencodeDir || process.cwd();
64
- const opencode = new OpenCodeClient({
65
- baseUrl: config.opencodeUrl,
66
- directory: opencodeDir,
67
- password: config.opencodePassword,
68
- });
69
- try {
70
- await opencode.listSessions();
71
- console.log('OpenCode connected\n');
72
- }
73
- catch (err) {
74
- log.error({ err, opencodeUrl: config.opencodeUrl }, 'Failed to connect to OpenCode');
75
- const port = new URL(config.opencodeUrl).port || '19876';
76
- console.error(`Failed to connect to OpenCode at ${config.opencodeUrl}`);
77
- console.error(` Start it: opencode serve --port ${port}\n`);
78
- process.exit(1);
79
- }
80
- const sessionManager = new SessionManager(opencode);
81
- // 从服务端获取最新的 AppKey
82
- const fetchedAppKey = await getAppKey(config.serverUrl);
83
- if (fetchedAppKey !== config.appKey) {
84
- log?.info(`从服务端获取到新的 AppKey: ${fetchedAppKey}`);
85
- config.appKey = fetchedAppKey;
86
- }
87
- // 从服务端获取 AppSecret(用于流式消息)
88
- const fetchedAppSecret = await getAppSecret(config.serverUrl, config.token, config.accountId);
89
- if (fetchedAppSecret) {
90
- log?.info('从服务端获取到 AppSecret,流式消息已启用');
91
- config.appSecret = fetchedAppSecret;
92
- }
93
- else {
94
- log?.warn('无法从服务端获取 AppSecret,流式消息将被禁用');
95
- }
96
- const rongClient = new RongCloudClient({
97
- appKey: config.appKey,
98
- token: config.token,
99
- accountId: config.accountId,
100
- }, log);
101
- const messageHandler = new MessageHandler(config, sessionManager, rongClient, opencode);
102
- let eventHandler;
103
- try {
104
- const eventStream = await opencode.subscribeGlobalEvents();
105
- eventHandler = new EventHandler(sessionManager, rongClient, opencode, config);
106
- eventHandler.start(eventStream).catch((err) => {
107
- log.error({ err }, 'Event stream error');
108
- });
109
- console.log('SSE event stream started\n');
110
- }
111
- catch (err) {
112
- log.warn({ err }, 'Failed to start event stream');
113
- console.warn(' Event streaming disabled\n');
114
- }
115
- const connectResult = await rongClient.connect((msg) => {
116
- messageHandler.handleMessage(msg).catch((err) => {
117
- log.error({ err }, 'Message handling failed');
118
- });
119
- });
120
- if (!connectResult.success) {
121
- console.error('Failed to connect to RongCloud');
122
- process.exit(1);
123
- }
124
- // 同步融云 userId 到 config
125
- if (connectResult.userId) {
126
- const oldAccountId = config.accountId;
127
- config.accountId = connectResult.userId;
128
- log.info({ accountId: config.accountId }, '已同步融云 userId');
129
- // 如果融云 userId 与之前的 accountId 不同,需要更新服务端
130
- if (oldAccountId !== connectResult.userId) {
131
- log.info({ oldAccountId, newAccountId: connectResult.userId }, '融云 userId 已变更,更新服务端');
132
- await updateNodeRongcloudId(config, oldAccountId, connectResult.userId, log);
133
- }
134
- }
135
- console.log('RongCloud connected\n');
136
- // 初始注册 claw 节点(只执行一次)
137
- await registerNodeToServer(config, log);
138
- // 融云连接检查(每30秒)
139
- const rongcloudCheckInterval = setInterval(() => {
140
- if (!rongClient.isConnected) {
141
- log.warn('RongCloud disconnected, reconnecting...');
142
- rongClient.connect((msg) => {
143
- messageHandler.handleMessage(msg).catch((err) => {
144
- log.error({ err }, 'Message handling failed');
145
- });
146
- }).catch((err) => {
147
- log.error({ err }, 'Reconnect failed');
148
- });
149
- }
150
- }, 30_000);
151
- console.log('----------------------------------------');
152
- console.log(' OpenCode ClawMessenger Plugin Running');
153
- console.log('----------------------------------------');
154
- console.log(` Mode: Standalone`);
155
- console.log(` OpenCode: ${config.opencodeUrl}`);
156
- console.log(` Directory: ${config.opencodeDir || process.cwd()}`);
157
- console.log('----------------------------------------');
158
- console.log('Press Ctrl+C to stop');
159
- const startTime = Date.now();
160
- const stopStatusWriter = startStatusWriter(() => ({
161
- startedAt: startTime,
162
- opencodeUrl: config.opencodeUrl,
163
- rongcloudConnected: rongClient.isConnected,
164
- sessionCount: sessionManager.getAllSessions().length,
165
- }));
166
- const shutdown = async (signal) => {
167
- console.log(`\nReceived ${signal}, shutting down...`);
168
- stopStatusWriter();
169
- clearInterval(rongcloudCheckInterval);
170
- if (eventHandler)
171
- eventHandler.stop();
172
- rongClient.disconnect();
173
- await sessionManager.cleanup();
174
- console.log('Goodbye!');
175
- process.exit(0);
176
- };
177
- process.on('SIGINT', () => shutdown('SIGINT'));
178
- process.on('SIGTERM', () => shutdown('SIGTERM'));
179
- setInterval(() => { }, 1000);
180
- }
181
- async function registerNodeToServer(config, log) {
182
- try {
183
- const { serverUrl, accountId } = config;
184
- if (!serverUrl || !accountId)
185
- return;
186
- // 只注册 claw 节点,获取融云 token
187
- await fetch(`${serverUrl}/api/register`, {
188
- method: 'POST',
189
- headers: { 'Content-Type': 'application/json' },
190
- body: JSON.stringify({
191
- node_id: accountId,
192
- name: config.nodeName || 'OpenCode Agent',
193
- mac_address: '00:00:00:00:00:00',
194
- }),
195
- signal: AbortSignal.timeout(10000),
196
- });
197
- log.info('Claw node registered to server');
198
- }
199
- catch (error) {
200
- log.warn({ err: error }, 'Register node to server failed');
201
- }
202
- }
203
- async function updateNodeRongcloudId(config, oldNodeId, newNodeId, log) {
204
- try {
205
- const { serverUrl } = config;
206
- if (!serverUrl)
207
- return;
208
- // 调用服务端 API 更新节点的 rongcloud_id
209
- const response = await fetch(`${serverUrl}/api/claw/update-rongcloud-id`, {
210
- method: 'POST',
211
- headers: { 'Content-Type': 'application/json' },
212
- body: JSON.stringify({
213
- old_node_id: oldNodeId,
214
- new_node_id: newNodeId,
215
- }),
216
- signal: AbortSignal.timeout(10000),
217
- });
218
- if (response.ok) {
219
- log.info({ oldNodeId, newNodeId }, '服务端节点 rongcloud_id 已更新');
220
- }
221
- else {
222
- log.warn({ status: response.status }, '更新服务端 rongcloud_id 失败');
223
- }
224
- }
225
- catch (error) {
226
- log.warn({ err: error }, 'Update node rongcloud_id failed');
227
- }
228
- }
229
- //# sourceMappingURL=standalone.js.map
1
+ function a0_0xee63(_0x13ada4,_0xc8c63f){_0x13ada4=_0x13ada4-0x75;const _0x4b67fa=a0_0x4b67();let _0xee6381=_0x4b67fa[_0x13ada4];if(a0_0xee63['tZXltQ']===undefined){var _0x10f7e3=function(_0x24dc67){const _0x5da6dc='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x541998='',_0xacb9c9='';for(let _0x2161d7=0x0,_0x2c8c06,_0x2e86d1,_0x147f68=0x0;_0x2e86d1=_0x24dc67['charAt'](_0x147f68++);~_0x2e86d1&&(_0x2c8c06=_0x2161d7%0x4?_0x2c8c06*0x40+_0x2e86d1:_0x2e86d1,_0x2161d7++%0x4)?_0x541998+=String['fromCharCode'](0xff&_0x2c8c06>>(-0x2*_0x2161d7&0x6)):0x0){_0x2e86d1=_0x5da6dc['indexOf'](_0x2e86d1);}for(let _0x165f4f=0x0,_0x4ea84e=_0x541998['length'];_0x165f4f<_0x4ea84e;_0x165f4f++){_0xacb9c9+='%'+('00'+_0x541998['charCodeAt'](_0x165f4f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xacb9c9);};a0_0xee63['sfvMma']=_0x10f7e3,a0_0xee63['xqKAFS']={},a0_0xee63['tZXltQ']=!![];}const _0x1c3126=_0x4b67fa[0x0],_0x4666ca=_0x13ada4+_0x1c3126,_0x5a5623=a0_0xee63['xqKAFS'][_0x4666ca];return!_0x5a5623?(_0xee6381=a0_0xee63['sfvMma'](_0xee6381),a0_0xee63['xqKAFS'][_0x4666ca]=_0xee6381):_0xee6381=_0x5a5623,_0xee6381;}(function(_0x4f7846,_0x543f70){const _0x2d08c1=a0_0xee63,_0x15c0da=_0x4f7846();while(!![]){try{const _0xa3b01a=-parseInt(_0x2d08c1(0xd7))/0x1+-parseInt(_0x2d08c1(0x93))/0x2*(-parseInt(_0x2d08c1(0x136))/0x3)+-parseInt(_0x2d08c1(0xc1))/0x4*(-parseInt(_0x2d08c1(0x99))/0x5)+-parseInt(_0x2d08c1(0xb8))/0x6+-parseInt(_0x2d08c1(0xc7))/0x7+parseInt(_0x2d08c1(0x85))/0x8+-parseInt(_0x2d08c1(0xf6))/0x9*(parseInt(_0x2d08c1(0x141))/0xa);if(_0xa3b01a===_0x543f70)break;else _0x15c0da['push'](_0x15c0da['shift']());}catch(_0x45fd86){_0x15c0da['push'](_0x15c0da['shift']());}}}(a0_0x4b67,0x5292a));import{ConfigManager}from'./core/config.js';import{SessionManager}from'./core/session-manager.js';import{MessageHandler}from'./core/message-handler.js';import{RongCloudClient}from'./rongcloud/client.js';import{OpenCodeClient,checkOpencodeStatus}from'./opencode/client.js';import{EventHandler}from'./opencode/event-handler.js';import{createLogger}from'./core/logger.js';import{startStatusWriter}from'./core/daemon.js';function a0_0x4b67(){const _0x192e90=['zfrOAuG','C2vYDMvYvxjS','v0Hvt2q','zgLZy29UBMvJDa','u1nfigv2zw50ihn0CMvHBsbZDgfYDgvKcG','yMLUzf9VCgvUy2XHDW','DxfsDfO','ywHrqKG','vg9Rzw4GBwLZC2LUzYWGyxv0BY1YzwDPC3rLCMLUzY4UlG','yufUrvK','y2f0y2G','sxHHA2m','uhjLC3mGq3rYBcTdihrVihn0B3a','nda5nG','u0Lhsu5u','icbpCgvUq29KztOGicaG','su1IuuW','icdOR6xLNldLNydKUlROV5ZNQiVMNi3LIQhLMAJVViZML6dMS5xOH6RLIQJLKk/LIQJMNkZLNldLRP7KVOVJGii','B3bLBMnVzgveAxi','DKzmqxK','ue9tva','wenvENK','qKfpwKO','q1f4wKG','t3bLBKnVzguG5PYn5yQH5zMO5zYW5z2a5PYQ6ywn572U44cc','tK9mAuW','uhLqBxi','q3zdtvG','mty2odmWmgjlBhbeCW','5PEG5Rov5lUo5PYn5yQH56UV6i635y+wiefWCfnLy3jLDo+8JoA1GEw8J+A2IoAbR+wWHUIIQ+EMGEEuQa','uMvNAxn0zxiGBM9Kzsb0BYbZzxj2zxiGzMfPBgvK','C3rVCa','uejiwui','5lUo5PYn5yQH56UV6i635y+w5yIWiefWCfnLy3jLDo+8JoA1GEw8J+A2IoAbR+w3SUwqR+EuQa','D2fYBG','Ag9ZDg5HBwu','Aw1yC3a','neXqCejUwG','Ahr0CdOVlZeYnY4WlJaUmtO0mdK2','Bg9N','Bg1XDKi','CLHRyuO','BM9Kzu5HBwu','mJG1ndG4q0LLA1z0','zxHPDa','l2fWAs9YzwDPC3rLCG','CLDvru8','uxfJBKm','rMfPBgvKihrVignVBM5Ly3qGDg8Gt3bLBKnVzguGyxqG','Aw5MBW','twvZC2fNzsbOyw5KBgLUzYbMywLSzwq','Bg9JywXOB3n0','Dvbgz1C','DxjS','A3nvBvu','wKvrrge','C2Tfqwu','ELv0yuC','v2HhAgO','mtC5nZm3rLrjBxb2','rKTysu8','5lUo5PYn5yQH56UV6i635y+w5yIW5PAW55QeiefWCeTLEtOG','yM5VBKG','D2PrqNG','q0voBge','DhPyExe','oJOX','rKjrrw8','zw9LwNy','u1jvv3q','EhLdte0','B3bLBMnVzgvqyxnZD29Yza','uM9Uz0nSB3vKigrPC2nVBM5Ly3rLzcWGCMvJB25Uzwn0Aw5NlI4U','CwrvrwG','s1rrCeG','u0PlyKG','rKLruNa','rgfsDNu','tMTgz1i','uunhyLO','icbby2nVDw50oIaGia','rxLqrMO','5PU05PAW5PYn5yQH56UVihjVBMDJBg91zf9PzcdLPlhOTku','v0Xdrhy','rMjICLG','y29UBMvJDa','q1rsvg4','rxzLBNqGC3rYzwfTigvYCM9Y','C3rHCNq','ls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tlq','ntmXmZy4mxzzA0XJua','DgLTzw91Da','BfDuAw4','uLHyC3O','cLjLy2vPDMvKia','whD4wgq','AhPyAKy','t3bLBKnVzguGy29UBMvJDgvKcG','DxnLCKLK','Bg9Hza','y3DK','ALPArxC','qKHOEe0','B0TMD1u','vhnmt20','BM9KzuLK','tvLbvxu','icaTifjVBMDdBg91zcbjtsbICMLKz2uGDg8Gt3bLBKnVzgu','tfPMA1u','CNPLDM0','icaTief1Dg8TCMvNAxn0CMf0Aw9UicyGAgvHCNrIzwf0','wNn1yNe','Bhr3vwu','uu9Rr0C','rMfPBgvKihrVignVBM5Ly3qGDg8GuM9Uz0nSB3vK','Dw5RBM93BG','AvnwtNO','u3rVChbPBMCGyxv0BY1ZDgfYDgvKig9Wzw5JB2rLihnLCNzLlI4U','D0PnC1u','mti3lJaUmc4X','qK1jzwe','Dg9Rzw4','z2v0qwXSu2vZC2LVBNm','vxbKyxrLig5VzguGCM9Uz2nSB3vKx2LKigzHAwXLza','vuDkDe4','Cg9YDa','icbnB2rLoIaGicaGicaGu3rHBMrHBg9Uzq','DLfnAwu','CK9sq3m','icdMLRNMOyGGmtOG6k6+572U546V5Akd5y+y6yEpienmqvDFt1bftKnprevFvvjm','t3bLBKnVzguGC2vYDMvYig5VDcbYDw5UAw5Nigf0ia','rM1TEw8','s0fcqNC','qMzgBLC','6iEQ5yQO5RoO5yAm5AsX6lsL77Ym6k+36l+q6kgmoIbUChGGB3bLBMnVzguTy2XHD21LC3nLBMDLCIbZzxr1Ca','AKfmrKm','AxPst04','icbtDgfYDcbPDdOGB3bLBMnVzguGC2vYDMuGls1WB3j0ia','C3vJy2vZCW','6j6n5lQrihvZzxjjzcdLT7lLJ5JMM7tVViZMM7tMLRdMNi3LIQhNQ68','t3bLBKnVzguGqwDLBNq','D2vnzuy','C3rYAw5NAwz5','uM9Uz0nSB3vKignVBM5Ly3rLzaO','wNnyCum','AgfUzgXLtwvZC2fNzq','vwHqwM0','rfz0vMq','vgnkwNG','yxbWs2v5','uMX2tve','sfjAzLq','y2vRy2e','u0Lhvevstq','nLzQqLfKqW','vgPVCfu','D3bPBg4','zeH3DKK','ywnJB3vUDeLK','yxbWu2vJCMv0','tgDizwu','zgrAC2O','CuzTwMK','EwDMCMK','t01HuMC','mtbZsLfbAhC','qMHoufO','A2r1u2W','B2njCg0','rMfPBgvKihrVignVBM5Ly3qGDg8Gt3bLBKnVzgu','icbpCgvUq29KztOGia','BgvUz3rO','qvvvELy','CePWzLq','A2n2weu','B3bLBMnVzgvvCMW','icbeAxjLy3rVCNK6icaG','A0Xyvxy','C2D1vK0','icdOR7FNOA7KV53OV5ZNQiSGt3bLBKnVzguG5PYn5yQH5BEY5zcV5yQO77Ym5OIw5yIh5O2I5yIW5PYS5zYW5zYW5z2a44cc','vvjorfG','tLPJzgK','shP5zKO','uMvJB25Uzwn0igzHAwXLza','t1vut1e','y2PpEvC','zLzvu1C','rw9hDwK','vNHXuxe','sxHtze8','AxndB25Uzwn0zwq','nti4otaWofH6wKnNwa','twrxz0q','uKjhDKW','wvfrzuO','5BEY5zcm5Q2L6j6n5lQrihvZzxjjza','DgLWww8','sKPQEu4','DxLiuhm','t3bLBKnVzguGC2vYDMvYig5VDcbYDw5UAw5NlcbHDxrVlxn0yxj0Aw5NihDPDgGGB3bLBMnVzguGC2vYDMuUlI4','B1jKu3e','rvjVu3O','yxbWBgLJyxrPB24VANnVBG','t3bLBKnVzguG5PYn5yQH5zMO5PYQ6l+q6kgmoIa','r2r6CeK','ndy1mJq2u2DKBuTK','qK5fCLu','uxr4rLC','BwHWqNa','zxjYB3i','DvndrwW','mtuWndeZmgLdtvDMua','C3rHDhvZ','BM93'];a0_0x4b67=function(){return _0x192e90;};return a0_0x4b67();}import{getOrRegisterToken,loadAutoConfig,generateNodeId,getAppKey,getAppSecret}from'./core/auto-register.js';import{encryptQR}from'./core/qr-crypto.js';import{startOpencodeServe}from'./core/auto-serve.js';import{hostname}from'os';const log=createLogger('standalone');export async function generateBindQR(_0x2d3384){const _0x30f86b=a0_0xee63,_0x3108ee={'Zsubq':function(_0x13573d){return _0x13573d();},'HzyfJ':_0x30f86b(0xa1)};let _0x39b4c6=(await _0x3108ee[_0x30f86b(0x10b)](loadAutoConfig))?.[_0x30f86b(0x105)];!_0x39b4c6&&(_0x39b4c6=generateNodeId());const _0x78aefe=_0x2d3384||(await loadAutoConfig())?.[_0x30f86b(0xc6)]||_0x3108ee[_0x30f86b(0x10b)](hostname),_0x388d51=JSON[_0x30f86b(0x12a)]({'type':_0x3108ee[_0x30f86b(0x7c)],'node_id':_0x39b4c6,'name':_0x78aefe,'timestamp':Date[_0x30f86b(0x9b)]()}),_0x2d6560=encryptQR(_0x388d51);return{'nodeId':_0x39b4c6,'qrData':_0x2d6560};}function isLocalUrl(_0x379081){const _0x5daf72=a0_0xee63,_0x291c32={'Ixakc':function(_0xb6051b,_0x12251e){return _0xb6051b===_0x12251e;},'OUTOQ':_0x5daf72(0xcf),'WjwiX':function(_0x446e77,_0x533898){return _0x446e77===_0x533898;},'NOLiL':_0x5daf72(0xde)};try{const _0xe8bbad=new URL(_0x379081);return _0x291c32[_0x5daf72(0xa7)](_0xe8bbad[_0x5daf72(0xbf)],_0x291c32[_0x5daf72(0x7e)])||_0x291c32['WjwiX'](_0xe8bbad[_0x5daf72(0xbf)],'127.0.0.1')||_0x291c32[_0x5daf72(0xa7)](_0xe8bbad[_0x5daf72(0xbf)],_0x291c32[_0x5daf72(0xb5)]);}catch{return![];}}export async function startStandalone(_0x1f1148={}){const _0x149667=a0_0xee63,_0x2a91c9={'uyHPs':_0x149667(0xbd),'wjQBx':_0x149667(0xa9),'CTRTn':function(_0x28792c,_0x438764){return _0x28792c===_0x438764;},'GqOnB':_0x149667(0xcf),'GYVzU':_0x149667(0xba),'oKfwU':_0x149667(0xb4),'ksUmU':_0x149667(0xb9),'RBGvL':_0x149667(0x7d),'BNErU':function(_0x4795ac,_0xcba242){return _0x4795ac!==_0xcba242;},'kLXUv':'AqffM','WHUOd':'Message\x20handling\x20failed','ahQBH':function(_0x1639b1,_0x20291c){return _0x1639b1===_0x20291c;},'Fmmyo':_0x149667(0xd0),'XCUzy':_0x149667(0x138),'FKXIO':_0x149667(0xe4),'VxqQq':function(_0x37ad1a){return _0x37ad1a();},'rORCs':function(_0x32ba4c,_0x5ab037){return _0x32ba4c(_0x5ab037);},'JJjyN':function(_0x289651,_0xe22c55){return _0x289651!==_0xe22c55;},'fwlIG':_0x149667(0x134),'TsLOm':_0x149667(0x111),'SJKbH':'Goodbye!','kcvXE':'Starting\x20OpenCode\x20ClawMessenger\x20Plugin\x20(Standalone\x20Mode)\x0a','IMbQL':_0x149667(0x10a),'lfzlY':'\x20\x20-\x20Message\x20deduplication\x20&\x20session\x20persistence\x0a','CvCMX':_0x149667(0xdd),'aAnEY':'KYqLx','BhNPZ':function(_0x5d8f53,_0xd2291d){return _0x5d8f53===_0xd2291d;},'BfFnW':_0x149667(0x80),'CQxZH':_0x149667(0xe0),'EyPFj':_0x149667(0x13d),'OGgjP':_0x149667(0xa4),'GdzpI':function(_0x4e230f,_0x304d44,_0x4f670d,_0x330ef9){return _0x4e230f(_0x304d44,_0x4f670d,_0x330ef9);},'ltwUe':_0x149667(0x102),'npiBg':_0x149667(0x13e),'cludK':_0x149667(0x122),'flwHk':'Auto-registration\x20successful','oRdSq':function(_0x2ee664,_0x35e25b){return _0x2ee664===_0x35e25b;},'OMaRg':_0x149667(0xfb),'rzevm':function(_0x21e390,_0x10c587,_0x5748aa){return _0x21e390(_0x10c587,_0x5748aa);},'PBHYB':function(_0x320025,_0x18122a){return _0x320025!==_0x18122a;},'LgHee':_0x149667(0xdc),'LZfkU':_0x149667(0x8d),'HRZfT':_0x149667(0xad),'ERoSz':_0x149667(0x79),'uSCEl':function(_0x2f0bc6,_0x59094a){return _0x2f0bc6!==_0x59094a;},'MdWgD':function(_0x4026ab){return _0x4026ab();},'QtxFW':_0x149667(0x11d),'rXkaJ':function(_0x20d51a,_0x27dded){return _0x20d51a===_0x27dded;},'vQMie':_0x149667(0x124),'KABBw':_0x149667(0xfd),'pJpfT':function(_0x38bc84,_0xf28d32){return _0x38bc84===_0xf28d32;},'PFulR':'iSVNz','QOkGG':'Failed\x20to\x20connect\x20to\x20OpenCode','tipYo':function(_0x316a22,_0x1e2a1b){return _0x316a22===_0x1e2a1b;},'TcJZx':_0x149667(0xef),'LgnHF':function(_0x510cb8,_0x45eeda,_0x1231ad,_0x59691d){return _0x510cb8(_0x45eeda,_0x1231ad,_0x59691d);},'NZcdi':_0x149667(0x12c),'URNDX':_0x149667(0xb2),'RlvMQ':function(_0x205b63,_0x470517){return _0x205b63!==_0x470517;},'IxSdO':_0x149667(0x13f),'MYAUu':_0x149667(0xca),'FBQEo':_0x149667(0xa0),'lWTin':'Failed\x20to\x20start\x20event\x20stream','qdUEh':'\x20\x20Event\x20streaming\x20disabled\x0a','xyCLM':_0x149667(0x10e),'NkFgR':_0x149667(0x89),'kduSl':function(_0x4e3082,_0x1c3f95){return _0x4e3082!==_0x1c3f95;},'RXXsz':_0x149667(0x127),'YQQeJ':_0x149667(0x12b),'dThiH':function(_0x2ca20a,_0x190f5a,_0x46ac41){return _0x2ca20a(_0x190f5a,_0x46ac41);},'weMeF':_0x149667(0xf5),'AUUzV':'\x20\x20OpenCode\x20ClawMessenger\x20Plugin\x20Running','KTQpH':_0x149667(0xa8),'QCGbZ':function(_0x49d393,_0x5d120f){return _0x49d393(_0x5d120f);},'skEAe':_0x149667(0xaa),'PyPmr':_0x149667(0x135)},{configPath:_0x312e88,autoServe:autoServe=!![]}=_0x1f1148;console[_0x149667(0xc3)](_0x2a91c9[_0x149667(0x14a)]),console[_0x149667(0xc3)](_0x149667(0x107)),console['log'](_0x2a91c9[_0x149667(0xac)]),console[_0x149667(0xc3)](_0x2a91c9['lfzlY']);const _0x2b19a8=new ConfigManager(_0x312e88);let _0x454c5c;try{_0x2a91c9[_0x149667(0x8b)](_0x2a91c9[_0x149667(0xb7)],_0x2a91c9[_0x149667(0xa5)])?_0x454c5c=_0x2b19a8[_0x149667(0xff)]():(_0x4027fb?.[_0x149667(0xcd)](_0x2a91c9[_0x149667(0x8c)]),_0x33944c[_0x149667(0x13b)]=_0x2dbf91);}catch{_0x2a91c9[_0x149667(0x142)](_0x149667(0x7f),_0x2a91c9[_0x149667(0x121)])?_0x1f7fc6[_0x149667(0x97)]({'err':_0x42e17f},_0x149667(0xce)):_0x454c5c=_0x2b19a8[_0x149667(0xff)]();}if(!_0x454c5c[_0x149667(0x115)]){if(_0x2a91c9[_0x149667(0xb3)]!==_0x2a91c9[_0x149667(0xed)]){log[_0x149667(0xcd)](_0x2a91c9['OGgjP']);const _0x6dc40e=await _0x2a91c9[_0x149667(0x92)](getOrRegisterToken,_0x454c5c[_0x149667(0x9d)],undefined,log);if(!_0x6dc40e){if(_0x2a91c9[_0x149667(0xf2)](_0x2a91c9[_0x149667(0x10c)],_0x2a91c9['npiBg'])){_0x4cb8f5['error']({'err':_0x3f4977,'opencodeUrl':_0x48a576},_0x149667(0x145));const _0x2d1767=new _0x3112ca(_0xe3999b)[_0x149667(0x119)]||_0x2a91c9[_0x149667(0xdb)];_0x13f3d7[_0x149667(0x97)](_0x149667(0xcc)+_0x13421f),_0x277dd4[_0x149667(0x97)](_0x149667(0x125)+_0x2d1767+'\x0a'),_0x3f3c48['exit'](0x1);}else console[_0x149667(0x97)](_0x2a91c9['cludK']),process[_0x149667(0xc8)](0x1);}_0x454c5c[_0x149667(0x115)]=_0x6dc40e,_0x454c5c['accountId']=(await _0x2a91c9[_0x149667(0x82)](loadAutoConfig))?.[_0x149667(0x105)]||generateNodeId(),log['info'](_0x2a91c9['flwHk']);}else try{const _0x1efabd=new _0xe147a0(_0x8064c9);return fjTsZV[_0x149667(0xf2)](_0x1efabd['hostname'],fjTsZV['GqOnB'])||_0x1efabd[_0x149667(0xbf)]===_0x149667(0x113)||fjTsZV[_0x149667(0xf2)](_0x1efabd[_0x149667(0xbf)],_0x149667(0xde));}catch{return![];}}let _0x364391=_0x454c5c[_0x149667(0x75)]||process.env.OPENCODE_SERVER_URL,_0x4fdb0c;if(_0x364391){if(_0x2a91c9[_0x149667(0x8e)](_0x2a91c9[_0x149667(0x140)],_0x2a91c9['OMaRg'])){const _0x3aa2e4=await _0x2a91c9[_0x149667(0x109)](checkOpencodeStatus,_0x364391,_0x454c5c[_0x149667(0xe3)]);if(!_0x3aa2e4){if(_0x2a91c9[_0x149667(0xbc)](_0x2a91c9[_0x149667(0x13c)],_0x2a91c9[_0x149667(0x13c)]))_0x2161d7=_0x2c8c06();else{if(isLocalUrl(_0x364391)&&autoServe)log['info'](_0x2a91c9[_0x149667(0x108)]),_0x4fdb0c=await _0x2a91c9[_0x149667(0x82)](startOpencodeServe),_0x364391=_0x4fdb0c['url'],_0x454c5c[_0x149667(0x75)]=_0x364391;else{if(!_0x2a91c9[_0x149667(0x11c)](isLocalUrl,_0x364391))console['error'](_0x149667(0x91)+_0x364391),console[_0x149667(0x97)](_0x2a91c9[_0x149667(0x133)]),console[_0x149667(0x97)](_0x2a91c9[_0x149667(0x8f)]),process[_0x149667(0xc8)](0x1);else{if(_0x2a91c9[_0x149667(0x98)](_0x149667(0x123),_0x149667(0x101))){const _0x41d486=new URL(_0x364391)[_0x149667(0x119)]||_0x2a91c9[_0x149667(0xdb)];console['warn'](_0x149667(0x11e)+_0x364391),console[_0x149667(0xbe)](_0x149667(0x125)+_0x41d486+'\x0a');}else _0x1e6e23[_0x149667(0xbe)]({'err':_0x2124f1},_0x2a91c9['GYVzU']);}}}}}else return![];}else{const _0x359d1c=_0x149667(0xc2),_0x4d6375=await checkOpencodeStatus(_0x359d1c,_0x454c5c[_0x149667(0xe3)]);if(_0x4d6375)_0x364391=_0x359d1c,_0x454c5c['opencodeUrl']=_0x364391;else autoServe?(log[_0x149667(0xcd)](_0x2a91c9[_0x149667(0x108)]),_0x4fdb0c=await _0x2a91c9[_0x149667(0x86)](startOpencodeServe),_0x364391=_0x4fdb0c[_0x149667(0xd1)],_0x454c5c[_0x149667(0x75)]=_0x364391):(console[_0x149667(0x97)](_0x2a91c9['oKfwU']),console[_0x149667(0x97)](_0x2a91c9[_0x149667(0x95)]),console[_0x149667(0x97)]('\x20\x20方案\x202:\x20移除\x20--no-serve\x20以允许自动启动\x20opencode\x20serve'),process['exit'](0x1));}console[_0x149667(0xc3)](_0x149667(0xec)+_0x454c5c[_0x149667(0x13a)]),console[_0x149667(0xc3)](_0x149667(0x146)+_0x454c5c[_0x149667(0x75)]),console[_0x149667(0xc3)]('\x20\x20Server:\x20\x20\x20\x20'+_0x454c5c[_0x149667(0x9d)]+'\x0a');const _0x2267f2=_0x454c5c['opencodeDir']||process[_0x149667(0x100)](),_0x2d0429=new OpenCodeClient({'baseUrl':_0x364391,'directory':_0x2267f2,'password':_0x454c5c[_0x149667(0xe3)]});try{_0x2a91c9[_0x149667(0xc5)](_0x2a91c9[_0x149667(0x11b)],_0x149667(0x12f))?(_0x451ad2['error'](_0x2a91c9[_0x149667(0x103)]),_0xdc9454[_0x149667(0x97)](_0x149667(0x11d)),_0x4f95a1['error']('\x20\x20方案\x202:\x20移除\x20--no-serve\x20以允许自动启动\x20opencode\x20serve'),_0x30fdfb[_0x149667(0xc8)](0x1)):(await _0x2d0429['listSessions'](),console[_0x149667(0xc3)](_0x2a91c9[_0x149667(0x120)]));}catch(_0x5910eb){if(_0x2a91c9[_0x149667(0x149)](_0x149667(0x110),_0x2a91c9['PFulR'])){log[_0x149667(0x97)]({'err':_0x5910eb,'opencodeUrl':_0x364391},_0x2a91c9[_0x149667(0x10d)]);const _0x54d434=new URL(_0x364391)['port']||_0x2a91c9['wjQBx'];console[_0x149667(0x97)](_0x149667(0xcc)+_0x364391),console[_0x149667(0x97)](_0x149667(0x125)+_0x54d434+'\x0a'),process[_0x149667(0xc8)](0x1);}else _0x4d4e5e=_0x5b2a3b[_0x149667(0xff)]();}const _0x19340d=new SessionManager(_0x2d0429),_0x289dd8=await getAppKey(_0x454c5c[_0x149667(0x9d)]);_0x2a91c9['uSCEl'](_0x289dd8,_0x454c5c[_0x149667(0x131)])&&(_0x2a91c9[_0x149667(0x8a)](_0x2a91c9[_0x149667(0x130)],_0x2a91c9[_0x149667(0x130)])?(log?.['info'](_0x149667(0xd9)+_0x289dd8),_0x454c5c[_0x149667(0x131)]=_0x289dd8):_0x344c9e?.[_0x149667(0xbe)](_0x2a91c9[_0x149667(0xd2)]));const _0x5ccd92=await _0x2a91c9['LgnHF'](getAppSecret,_0x454c5c['serverUrl'],_0x454c5c[_0x149667(0x115)],_0x454c5c[_0x149667(0x13a)]);_0x5ccd92?_0x2a91c9[_0x149667(0x7b)]===_0x2a91c9[_0x149667(0x7a)]?_0x5bf0cc[_0x149667(0x97)]({'err':_0x26ed98},_0x2a91c9[_0x149667(0x87)]):(log?.[_0x149667(0xcd)]('从服务端获取到\x20AppSecret,流式消息已启用'),_0x454c5c[_0x149667(0x13b)]=_0x5ccd92):log?.['warn'](_0x2a91c9[_0x149667(0xd2)]);const _0x2befd5=new RongCloudClient({'appKey':_0x454c5c[_0x149667(0x131)],'token':_0x454c5c[_0x149667(0x115)],'accountId':_0x454c5c[_0x149667(0x13a)]},log),_0x3cbc94=new MessageHandler(_0x454c5c,_0x19340d,_0x2befd5,_0x2d0429);let _0x40dc6f;try{if(_0x2a91c9[_0x149667(0x132)](_0x2a91c9[_0x149667(0x83)],_0x2a91c9[_0x149667(0x106)])){const _0x34f28a=await _0x2d0429['subscribeGlobalEvents']();_0x40dc6f=new EventHandler(_0x19340d,_0x2befd5,_0x2d0429,_0x454c5c),_0x40dc6f[_0x149667(0xf4)](_0x34f28a)[_0x149667(0xa6)](_0x49e534=>{const _0x2646bd=_0x149667;log[_0x2646bd(0x97)]({'err':_0x49e534},'Event\x20stream\x20error');}),console['log'](_0x2a91c9[_0x149667(0xdf)]);}else _0x244e71[_0x149667(0x97)]({'err':_0x4234d5},_0x149667(0xce));}catch(_0x596ccb){log[_0x149667(0xbe)]({'err':_0x596ccb},_0x2a91c9[_0x149667(0xf8)]),console[_0x149667(0xbe)](_0x2a91c9[_0x149667(0xe5)]);}const _0x2d7b26=await _0x2befd5[_0x149667(0xf1)](_0x273d7e=>{const _0x12fa55=_0x149667;_0x2a91c9[_0x12fa55(0x94)](_0x2a91c9[_0x12fa55(0x77)],_0x2a91c9[_0x12fa55(0x77)])?_0xcc5fc0['handleMessage'](_0x2c5e0c)[_0x12fa55(0xa6)](_0x5da89e=>{const _0x12bc91=_0x12fa55;_0x23eb5d[_0x12bc91(0x97)]({'err':_0x5da89e},'Message\x20handling\x20failed');}):_0x3cbc94[_0x12fa55(0x12d)](_0x273d7e)['catch'](_0x6cbbf7=>{const _0x4885c1=_0x12fa55;log[_0x4885c1(0x97)]({'err':_0x6cbbf7},'Message\x20handling\x20failed');});});!_0x2d7b26[_0x149667(0x126)]&&(console[_0x149667(0x97)](_0x2a91c9[_0x149667(0xe2)]),process[_0x149667(0xc8)](0x1));if(_0x2d7b26['userId']){const _0xbde42f=_0x454c5c['accountId'];_0x454c5c[_0x149667(0x13a)]=_0x2d7b26[_0x149667(0xfe)],log[_0x149667(0xcd)]({'accountId':_0x454c5c[_0x149667(0x13a)]},_0x2a91c9[_0x149667(0xea)]),_0x2a91c9[_0x149667(0x143)](_0xbde42f,_0x2d7b26[_0x149667(0xfe)])&&(log['info']({'oldAccountId':_0xbde42f,'newAccountId':_0x2d7b26[_0x149667(0xfe)]},_0x2a91c9[_0x149667(0xf9)]),await updateNodeRongcloudId(_0x454c5c,_0xbde42f,_0x2d7b26[_0x149667(0xfe)],log));}console[_0x149667(0xc3)](_0x2a91c9[_0x149667(0x88)]),await _0x2a91c9['dThiH'](registerNodeToServer,_0x454c5c,log);const _0x572b9c=setInterval(()=>{const _0x3e3ad5=_0x149667,_0x2771ab={'SRUWt':_0x2a91c9['WHUOd']};!_0x2befd5[_0x3e3ad5(0x84)]&&(log[_0x3e3ad5(0xbe)](_0x2a91c9[_0x3e3ad5(0xd8)]),_0x2befd5[_0x3e3ad5(0xf1)](_0x37f40a=>{const _0x5950e2=_0x3e3ad5,_0x125f62={'TjopU':_0x2771ab[_0x5950e2(0xe1)]};_0x3cbc94[_0x5950e2(0x12d)](_0x37f40a)[_0x5950e2(0xa6)](_0x2cba6d=>{const _0x32b8a1=_0x5950e2;log[_0x32b8a1(0x97)]({'err':_0x2cba6d},_0x125f62[_0x32b8a1(0x137)]);});})[_0x3e3ad5(0xa6)](_0x4d288b=>{const _0x787e17=_0x3e3ad5,_0x5accf1={'imXsp':_0x2a91c9[_0x787e17(0x9e)]};if(_0x2a91c9[_0x787e17(0xa3)](_0x2a91c9[_0x787e17(0x11f)],_0x2a91c9[_0x787e17(0xb1)])){const _0x10c3f1={'bnonH':mFWhqj[_0x787e17(0xc0)]};_0x7ce46a[_0x787e17(0x12d)](_0x3d3e78)[_0x787e17(0xa6)](_0x41453c=>{const _0x2161af=_0x787e17;_0x472757['error']({'err':_0x41453c},_0x10c3f1[_0x2161af(0xda)]);});}else log[_0x787e17(0x97)]({'err':_0x4d288b},_0x2a91c9[_0x787e17(0x87)]);}));},0x7530);console[_0x149667(0xc3)](_0x2a91c9['weMeF']),console[_0x149667(0xc3)](_0x2a91c9[_0x149667(0x148)]),console[_0x149667(0xc3)](_0x2a91c9['weMeF']),console[_0x149667(0xc3)](_0x149667(0x11a)),console['log'](_0x149667(0xab)+_0x454c5c[_0x149667(0x75)]),console[_0x149667(0xc3)](_0x149667(0x76)+(_0x454c5c[_0x149667(0xae)]||process[_0x149667(0x100)]())),console[_0x149667(0xc3)](_0x2a91c9[_0x149667(0x129)]),console[_0x149667(0xc3)](_0x2a91c9[_0x149667(0xe6)]);const _0x4dfee2=Date['now'](),_0x494ac5=_0x2a91c9[_0x149667(0xeb)](startStatusWriter,()=>({'startedAt':_0x4dfee2,'opencodeUrl':_0x454c5c[_0x149667(0x75)]??_0x149667(0x10f),'rongcloudConnected':_0x2befd5[_0x149667(0x84)],'sessionCount':_0x19340d[_0x149667(0x116)]()[_0x149667(0x147)]})),_0x347daf=async _0x576cb2=>{const _0x12c956=_0x149667;console[_0x12c956(0xc3)](_0x12c956(0xfa)+_0x576cb2+',\x20shutting\x20down...'),_0x2a91c9[_0x12c956(0x82)](_0x494ac5),_0x2a91c9[_0x12c956(0x11c)](clearInterval,_0x572b9c);if(_0x40dc6f)_0x40dc6f[_0x12c956(0xbb)]();_0x2befd5[_0x12c956(0x9f)](),await _0x19340d['cleanup'](),_0x4fdb0c&&(_0x2a91c9[_0x12c956(0x8b)](_0x12c956(0x134),_0x2a91c9['fwlIG'])?_0x4ed201=_0xb4fa47[_0x12c956(0xff)]():(log[_0x12c956(0xcd)](_0x2a91c9[_0x12c956(0x104)]),await _0x4fdb0c[_0x12c956(0xbb)]())),console[_0x12c956(0xc3)](_0x2a91c9[_0x12c956(0xe7)]),process[_0x12c956(0xc8)](0x0);};process['on'](_0x2a91c9[_0x149667(0xd4)],()=>_0x347daf(_0x149667(0xaa))),process['on'](_0x2a91c9[_0x149667(0xb6)],()=>_0x347daf(_0x149667(0x135))),_0x2a91c9[_0x149667(0x9c)](setInterval,()=>{},0x3e8);}async function registerNodeToServer(_0x26d5ad,_0x4aa398){const _0x1924ec=a0_0xee63,_0x3d8231={'hzXjF':_0x1924ec(0xf3),'lmqvB':function(_0x14b381,_0x545417){return _0x14b381||_0x545417;},'WhGhj':function(_0x18fd1c,_0x6b8d7f,_0x56e767){return _0x18fd1c(_0x6b8d7f,_0x56e767);},'FbbrX':_0x1924ec(0xb0),'DaRvu':_0x1924ec(0x90),'EoGui':'Claw\x20node\x20registered\x20to\x20server','ocIpm':function(_0x2e8994,_0x2935c7){return _0x2e8994===_0x2935c7;},'uqRtZ':_0x1924ec(0xe8)};try{const {serverUrl:_0x239e80,accountId:_0x3a6822}=_0x26d5ad;if(_0x3d8231[_0x1924ec(0xc4)](!_0x239e80,!_0x3a6822))return;await _0x3d8231[_0x1924ec(0xd6)](fetch,_0x239e80+_0x1924ec(0xc9),{'method':_0x3d8231[_0x1924ec(0xf0)],'headers':{'Content-Type':_0x3d8231[_0x1924ec(0xe9)]},'body':JSON[_0x1924ec(0x12a)]({'node_id':_0x3a6822,'name':_0x26d5ad[_0x1924ec(0xc6)]||_0x1924ec(0x128),'mac_address':'00:00:00:00:00:00'}),'signal':AbortSignal['timeout'](0x2710)}),_0x4aa398['info'](_0x3d8231[_0x1924ec(0x81)]);}catch(_0x40152b){_0x3d8231[_0x1924ec(0x144)](_0x3d8231[_0x1924ec(0xa2)],_0x1924ec(0xe8))?_0x4aa398[_0x1924ec(0xbe)]({'err':_0x40152b},'Register\x20node\x20to\x20server\x20failed'):_0x2f7f94[_0x1924ec(0x97)]({'err':_0x11c10a},PFCDwA[_0x1924ec(0xfc)]);}}async function updateNodeRongcloudId(_0x1201f1,_0x349eb1,_0x3e5771,_0x437dc9){const _0x762422=a0_0xee63,_0x51c143={'ZEQDa':_0x762422(0x10e),'sguVM':function(_0x22b9a9,_0x320479){return _0x22b9a9===_0x320479;},'mhpBp':_0x762422(0x114),'vFLAy':function(_0x47aa84,_0x4ec7a3,_0x4fc92f){return _0x47aa84(_0x4ec7a3,_0x4fc92f);},'sFKWM':'application/json','UGJtN':function(_0x3a1a6f,_0x5c4582){return _0x3a1a6f===_0x5c4582;},'UhPZm':_0x762422(0x139),'wJMsU':_0x762422(0xee),'QqcnC':_0x762422(0xd5)};try{if(_0x51c143[_0x762422(0x78)](_0x51c143[_0x762422(0x96)],_0x51c143['mhpBp'])){const {serverUrl:_0x178350}=_0x1201f1;if(!_0x178350)return;const _0xeecf=await _0x51c143[_0x762422(0xaf)](fetch,_0x178350+'/api/claw/update-rongcloud-id',{'method':_0x762422(0xb0),'headers':{'Content-Type':_0x51c143['sFKWM']},'body':JSON[_0x762422(0x12a)]({'old_node_id':_0x349eb1,'new_node_id':_0x3e5771}),'signal':AbortSignal[_0x762422(0xf7)](0x2710)});_0xeecf['ok']?_0x437dc9['info']({'oldNodeId':_0x349eb1,'newNodeId':_0x3e5771},'服务端节点\x20rongcloud_id\x20已更新'):_0x51c143[_0x762422(0x118)](_0x51c143[_0x762422(0x12e)],_0x51c143[_0x762422(0x12e)])?_0x437dc9[_0x762422(0xbe)]({'status':_0xeecf[_0x762422(0x9a)]},_0x51c143[_0x762422(0x112)]):(_0x518a69[_0x762422(0x97)](FDOsNH[_0x762422(0xd3)]),_0x5a35d5[_0x762422(0xc8)](0x1));}else _0x4fb9ac=_0x58a2d1,_0x54a2c5[_0x762422(0x75)]=_0x2ee85c;}catch(_0x4dd55c){_0x51c143[_0x762422(0x118)](_0x51c143[_0x762422(0xcb)],_0x51c143['QqcnC'])?_0x437dc9['warn']({'err':_0x4dd55c},_0x762422(0x117)):(_0x20a4b3?.[_0x762422(0xcd)](_0x762422(0xd9)+_0x373992),_0x14cccc[_0x762422(0x131)]=_0x57f7ae);}}
@@ -17,4 +17,3 @@ export interface Plugin {
17
17
  id: string;
18
18
  server: (input: PluginInput) => Promise<PluginHooks>;
19
19
  }
20
- //# sourceMappingURL=plugin.d.ts.map
@@ -1,2 +1 @@
1
- export {};
2
- //# sourceMappingURL=plugin.js.map
1
+ export{};
@@ -17,4 +17,3 @@ export declare class WebSocketClient {
17
17
  private scheduleReconnect;
18
18
  disconnect(): void;
19
19
  }
20
- //# sourceMappingURL=client.d.ts.map