@myagentroam/node 0.9.8 → 0.9.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/capabilities.js +2 -92
- package/dist/claude-agent-sdk.js +2 -330
- package/dist/claude-channel.js +2 -44
- package/dist/codex-app-server.js +2 -503
- package/dist/config.js +2 -56
- package/dist/connector/node-connector-options.js +2 -1
- package/dist/connector/node-operation-router.js +2 -22
- package/dist/connector.js +2 -841
- package/dist/control-outbound-scheduler.js +2 -154
- package/dist/database.js +2 -1418
- package/dist/event-buffer.js +2 -19
- package/dist/fake-runner.js +2 -129
- package/dist/health.js +2 -3
- package/dist/main.js +2 -54
- package/dist/migrations/v001.js +3 -144
- package/dist/migrations/v002.js +2 -143
- package/dist/migrations/v003.js +2 -44
- package/dist/migrations/v004.js +34 -30
- package/dist/native-jsonl-reader.js +2 -186
- package/dist/native-session-history.js +2 -1119
- package/dist/opencode-runtime.js +2 -80
- package/dist/opencode-server.js +2 -263
- package/dist/operational.js +2 -122
- package/dist/process-tree.js +2 -18
- package/dist/rotating-log.js +2 -67
- package/dist/runner/abstract-runner.js +2 -232
- package/dist/runner/claude/managed-run-controller.js +2 -345
- package/dist/runner/claude-code-runner.js +2 -303
- package/dist/runner/codex/composer-image-markers.js +2 -0
- package/dist/runner/codex/conversation-parser.js +2 -861
- package/dist/runner/codex/managed-run-controller.js +2 -460
- package/dist/runner/codex-runner.js +2 -628
- package/dist/runner/fake-test-runner.js +2 -47
- package/dist/runner/opencode/conversation-parser.js +2 -221
- package/dist/runner/opencode/managed-run-controller.js +2 -537
- package/dist/runner/opencode-runner.js +2 -448
- package/dist/runner/runner-registry.js +2 -90
- package/dist/runner-command-engine.js +2 -70
- package/dist/runner-profiles.js +2 -215
- package/dist/runner-usage.js +2 -190
- package/dist/runtime-command-detector.js +2 -73
- package/dist/runtime-state.js +2 -973
- package/dist/service/attachment-domain-state.js +2 -7
- package/dist/service/conversation-history-service.js +2 -457
- package/dist/service/conversation-segment-service.js +2 -162
- package/dist/service/external-session-resume-service.js +2 -118
- package/dist/service/fake-managed-run-service.js +2 -60
- package/dist/service/managed-runner-session-service.js +2 -35
- package/dist/service/mcp-installation-verifier.js +2 -87
- package/dist/service/mcp-node-operation-service.js +2 -90
- package/dist/service/mcp-package-installer.js +2 -136
- package/dist/service/native-session-projection-service.js +2 -280
- package/dist/service/native-session-watch-service.js +2 -383
- package/dist/service/node-connection-lifecycle-service.js +2 -83
- package/dist/service/node-control-channel.js +2 -85
- package/dist/service/node-control-message-service.js +2 -107
- package/dist/service/node-request-service.js +2 -52
- package/dist/service/node-run-event-bridge.js +2 -83
- package/dist/service/node-terminal-channel.js +2 -182
- package/dist/service/node-upgrade-coordinator.js +2 -137
- package/dist/service/node-workspace-coordinator.js +2 -70
- package/dist/service/recent-run-projection-service.js +2 -0
- package/dist/service/run-attachment-service.js +2 -194
- package/dist/service/run-domain-state.js +2 -4
- package/dist/service/run-event-service.js +2 -193
- package/dist/service/run-workbench-service.js +2 -104
- package/dist/service/runner-channel-message-service.js +2 -20
- package/dist/service/runner-interaction-service.js +2 -243
- package/dist/service/runner-service.js +2 -71
- package/dist/service/session-catalog-service.js +2 -224
- package/dist/service/session-command-service.js +2 -76
- package/dist/service/session-context-service.js +2 -101
- package/dist/service/session-domain-state.js +2 -9
- package/dist/service/session-identity-service.js +2 -86
- package/dist/service/session-lifecycle-service.js +2 -240
- package/dist/service/session-message-service.js +2 -173
- package/dist/service/session-presentation-service.js +2 -43
- package/dist/service/session-query-service.js +2 -82
- package/dist/service/skill-directory-service.js +2 -238
- package/dist/service/skill-install-service.js +2 -434
- package/dist/service/skill-node-operation-service.js +2 -206
- package/dist/service/terminal-relay-state.js +2 -3
- package/dist/service/terminal-service.js +2 -52
- package/dist/service/workbench-event-service.js +2 -19
- package/dist/service/workbench-manifest-service.js +2 -69
- package/dist/service/workspace-change-service.js +2 -86
- package/dist/service/workspace-content-search-service.js +2 -477
- package/dist/service/workspace-domain-state.js +2 -41
- package/dist/service/workspace-file-service.js +2 -122
- package/dist/service/workspace-git-exclude-service.js +2 -119
- package/dist/service/workspace-queue-workbench-service.js +2 -304
- package/dist/service/workspace-service.js +2 -69
- package/dist/service/workspace-session-service.js +2 -139
- package/dist/service/workspace-upload-service.js +2 -262
- package/dist/service/workspace-watch-service.js +2 -146
- package/dist/service/workspace-workbench-service.js +2 -405
- package/dist/service.js +2 -38
- package/dist/storage.js +2 -32
- package/dist/supervisor.js +2 -136
- package/dist/terminal.js +2 -416
- package/dist/util/node-operation-parsers.js +2 -382
- package/dist/util/personal-instructions.js +2 -31
- package/dist/util/runner-error.js +2 -52
- package/dist/util/runner-native-session-parsers.js +2 -490
- package/dist/util/safe-error.js +2 -5
- package/dist/util/secret-environment.js +2 -25
- package/dist/workspace.js +2 -1519
- package/package.json +3 -3
- package/dist/capabilities.d.ts +0 -12
- package/dist/claude-agent-sdk.d.ts +0 -92
- package/dist/claude-channel.d.ts +0 -28
- package/dist/codex-app-server.d.ts +0 -133
- package/dist/config.d.ts +0 -18
- package/dist/connector/node-connector-options.d.ts +0 -27
- package/dist/connector/node-operation-router.d.ts +0 -9
- package/dist/connector.d.ts +0 -93
- package/dist/control-outbound-scheduler.d.ts +0 -29
- package/dist/database.d.ts +0 -305
- package/dist/event-buffer.d.ts +0 -9
- package/dist/fake-runner.d.ts +0 -42
- package/dist/health.d.ts +0 -4
- package/dist/main.d.ts +0 -2
- package/dist/migrations/v001.d.ts +0 -3
- package/dist/migrations/v002.d.ts +0 -4
- package/dist/migrations/v003.d.ts +0 -4
- package/dist/migrations/v004.d.ts +0 -4
- package/dist/native-jsonl-reader.d.ts +0 -35
- package/dist/native-session-history.d.ts +0 -126
- package/dist/opencode-runtime.d.ts +0 -33
- package/dist/opencode-server.d.ts +0 -49
- package/dist/operational.d.ts +0 -39
- package/dist/process-tree.d.ts +0 -9
- package/dist/rotating-log.d.ts +0 -17
- package/dist/runner/abstract-runner.d.ts +0 -172
- package/dist/runner/claude/managed-run-controller.d.ts +0 -51
- package/dist/runner/claude-code-runner.d.ts +0 -72
- package/dist/runner/codex/conversation-parser.d.ts +0 -59
- package/dist/runner/codex/managed-run-controller.d.ts +0 -90
- package/dist/runner/codex-runner.d.ts +0 -103
- package/dist/runner/fake-test-runner.d.ts +0 -26
- package/dist/runner/opencode/conversation-parser.d.ts +0 -31
- package/dist/runner/opencode/managed-run-controller.d.ts +0 -82
- package/dist/runner/opencode-runner.d.ts +0 -71
- package/dist/runner/runner-registry.d.ts +0 -19
- package/dist/runner-command-engine.d.ts +0 -28
- package/dist/runner-profiles.d.ts +0 -15
- package/dist/runner-usage.d.ts +0 -33
- package/dist/runtime-command-detector.d.ts +0 -3
- package/dist/runtime-state.d.ts +0 -169
- package/dist/service/attachment-domain-state.d.ts +0 -7
- package/dist/service/conversation-history-service.d.ts +0 -43
- package/dist/service/conversation-segment-service.d.ts +0 -20
- package/dist/service/external-session-resume-service.d.ts +0 -34
- package/dist/service/fake-managed-run-service.d.ts +0 -28
- package/dist/service/managed-runner-session-service.d.ts +0 -12
- package/dist/service/mcp-installation-verifier.d.ts +0 -9
- package/dist/service/mcp-node-operation-service.d.ts +0 -11
- package/dist/service/mcp-package-installer.d.ts +0 -8
- package/dist/service/native-session-projection-service.d.ts +0 -52
- package/dist/service/native-session-watch-service.d.ts +0 -62
- package/dist/service/node-connection-lifecycle-service.d.ts +0 -35
- package/dist/service/node-control-channel.d.ts +0 -32
- package/dist/service/node-control-message-service.d.ts +0 -27
- package/dist/service/node-request-service.d.ts +0 -14
- package/dist/service/node-run-event-bridge.d.ts +0 -40
- package/dist/service/node-terminal-channel.d.ts +0 -29
- package/dist/service/node-upgrade-coordinator.d.ts +0 -29
- package/dist/service/node-workspace-coordinator.d.ts +0 -29
- package/dist/service/run-attachment-service.d.ts +0 -38
- package/dist/service/run-domain-state.d.ts +0 -4
- package/dist/service/run-event-service.d.ts +0 -33
- package/dist/service/run-workbench-service.d.ts +0 -25
- package/dist/service/runner-channel-message-service.d.ts +0 -13
- package/dist/service/runner-interaction-service.d.ts +0 -39
- package/dist/service/runner-service.d.ts +0 -46
- package/dist/service/session-catalog-service.d.ts +0 -45
- package/dist/service/session-command-service.d.ts +0 -24
- package/dist/service/session-context-service.d.ts +0 -35
- package/dist/service/session-domain-state.d.ts +0 -9
- package/dist/service/session-identity-service.d.ts +0 -24
- package/dist/service/session-lifecycle-service.d.ts +0 -31
- package/dist/service/session-message-service.d.ts +0 -33
- package/dist/service/session-presentation-service.d.ts +0 -34
- package/dist/service/session-query-service.d.ts +0 -35
- package/dist/service/skill-directory-service.d.ts +0 -20
- package/dist/service/skill-install-service.d.ts +0 -21
- package/dist/service/skill-node-operation-service.d.ts +0 -44
- package/dist/service/terminal-relay-state.d.ts +0 -6
- package/dist/service/terminal-service.d.ts +0 -12
- package/dist/service/workbench-event-service.d.ts +0 -9
- package/dist/service/workbench-manifest-service.d.ts +0 -90
- package/dist/service/workspace-change-service.d.ts +0 -9
- package/dist/service/workspace-content-search-service.d.ts +0 -14
- package/dist/service/workspace-domain-state.d.ts +0 -79
- package/dist/service/workspace-file-service.d.ts +0 -18
- package/dist/service/workspace-git-exclude-service.d.ts +0 -4
- package/dist/service/workspace-queue-workbench-service.d.ts +0 -86
- package/dist/service/workspace-service.d.ts +0 -15
- package/dist/service/workspace-session-service.d.ts +0 -23
- package/dist/service/workspace-upload-service.d.ts +0 -39
- package/dist/service/workspace-watch-service.d.ts +0 -23
- package/dist/service/workspace-workbench-service.d.ts +0 -58
- package/dist/service.d.ts +0 -4
- package/dist/storage.d.ts +0 -2
- package/dist/supervisor.d.ts +0 -1
- package/dist/terminal.d.ts +0 -133
- package/dist/util/node-operation-parsers.d.ts +0 -92
- package/dist/util/personal-instructions.d.ts +0 -2
- package/dist/util/runner-error.d.ts +0 -6
- package/dist/util/runner-native-session-parsers.d.ts +0 -74
- package/dist/util/safe-error.d.ts +0 -2
- package/dist/util/secret-environment.d.ts +0 -1
- package/dist/workspace.d.ts +0 -217
package/dist/service.js
CHANGED
|
@@ -1,38 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export function systemdUnit(executable, configPath, entrypoint, writablePaths = []) {
|
|
4
|
-
const command = [
|
|
5
|
-
escapeSystemd(executable),
|
|
6
|
-
...(entrypoint === undefined ? [] : [escapeSystemd(entrypoint)])
|
|
7
|
-
].join(' ');
|
|
8
|
-
const readWritePaths = writablePaths.map((path) => escapeSystemd(resolve(path))).join(' ');
|
|
9
|
-
return `[Unit]\nDescription=MyAgentRoam Node\nAfter=network-online.target\n\n[Service]\nType=simple\nUser=mar-node\nNoNewPrivileges=true\nPrivateTmp=true\nProtectSystem=strict\n${readWritePaths.length === 0 ? '' : `ReadWritePaths=${readWritePaths}\n`}ExecStart=${command} supervise --config ${escapeSystemd(configPath)}\nRestart=on-failure\n\n[Install]\nWantedBy=multi-user.target\n`;
|
|
10
|
-
}
|
|
11
|
-
export function windowsServiceDefinition(executable, configPath, entrypoint) {
|
|
12
|
-
return JSON.stringify({
|
|
13
|
-
serviceName: 'MyAgentRoamNode',
|
|
14
|
-
displayName: 'MyAgentRoam Node',
|
|
15
|
-
binaryPath: `"${executable}"${entrypoint === undefined ? '' : ` "${entrypoint}"`} supervise --config "${configPath}"`,
|
|
16
|
-
startType: 'auto',
|
|
17
|
-
account: 'LocalService'
|
|
18
|
-
}, undefined, 2);
|
|
19
|
-
}
|
|
20
|
-
export async function writeServiceDefinition(outputPath, executable, configPath, platform = process.platform, entrypoint, writablePaths = []) {
|
|
21
|
-
const contents = platform === 'linux'
|
|
22
|
-
? systemdUnit(executable, configPath, entrypoint, writablePaths)
|
|
23
|
-
: platform === 'win32'
|
|
24
|
-
? windowsServiceDefinition(executable, configPath, entrypoint)
|
|
25
|
-
: (() => {
|
|
26
|
-
throw new Error('NODE_PLATFORM_UNSUPPORTED');
|
|
27
|
-
})();
|
|
28
|
-
await mkdir(dirname(outputPath), { recursive: true, mode: 0o755 });
|
|
29
|
-
await writeFile(outputPath, contents, { mode: 0o644 });
|
|
30
|
-
if (platform !== 'win32')
|
|
31
|
-
await chmod(outputPath, 0o644);
|
|
32
|
-
}
|
|
33
|
-
export async function removeServiceDefinition(outputPath) {
|
|
34
|
-
await rm(resolve(outputPath), { force: true });
|
|
35
|
-
}
|
|
36
|
-
function escapeSystemd(value) {
|
|
37
|
-
return JSON.stringify(value);
|
|
38
|
-
}
|
|
1
|
+
/* mar-release-protected */
|
|
2
|
+
const _0x49927c=_0x9e14;(function(_0x338d02,_0xbc9836){const _0x270cc9=_0x9e14,_0x4c8ea5=_0x338d02();while(!![]){try{const _0x3e4dfe=parseInt(_0x270cc9(0x1ad))/(-0xffa+0x2141+-0x5c2*0x3)*(-parseInt(_0x270cc9(0x1a0))/(0x1e80+-0x5*0x6df+0x3dd))+parseInt(_0x270cc9(0x1b7))/(-0x865*-0x2+0x161*-0x4+-0x3*0x3c1)+parseInt(_0x270cc9(0x1ae))/(0xaed*0x2+-0x170d+0x137*0x1)*(parseInt(_0x270cc9(0x1af))/(-0x854*0x4+-0xc2d*-0x3+-0x332*0x1))+parseInt(_0x270cc9(0x1b4))/(-0x4f*-0x65+-0x232*-0x6+0x2c51*-0x1)+parseInt(_0x270cc9(0x19d))/(-0x887+-0x7*0x27b+0x19eb)+-parseInt(_0x270cc9(0x1ab))/(-0x322*-0xb+-0x6da*0x1+-0x1b94)*(parseInt(_0x270cc9(0x1a8))/(0xc2d+-0x211b+0x3*0x6fd))+-parseInt(_0x270cc9(0x1a1))/(0x753*-0x5+0x475*0x7+0x576);if(_0x3e4dfe===_0xbc9836)break;else _0x4c8ea5['push'](_0x4c8ea5['shift']());}catch(_0x5b2925){_0x4c8ea5['push'](_0x4c8ea5['shift']());}}}(_0x5424,-0x4f377*0x2+0x11*-0x8c33+-0x188651*-0x1));import{chmod,mkdir,rm,writeFile}from'node:fs/promises';import{dirname,resolve}from'node:path';export function systemdUnit(_0x468222,_0x48dede,_0x14a37d,_0x4c85e2=[]){const _0xf57327=_0x9e14,_0x7f4f9b=[escapeSystemd(_0x468222),..._0x14a37d===undefined?[]:[escapeSystemd(_0x14a37d)]][_0xf57327(0x19f)]('\x20'),_0x24834b=_0x4c85e2[_0xf57327(0x1a6)](_0x137484=>escapeSystemd(resolve(_0x137484)))[_0xf57327(0x19f)]('\x20');return _0xf57327(0x19e)+(_0x24834b[_0xf57327(0x19c)]===0x5*-0x1f9+0x1*0x1795+-0xdb8*0x1?'':_0xf57327(0x1a9)+_0x24834b+'\x0a')+_0xf57327(0x1ac)+_0x7f4f9b+_0xf57327(0x1b6)+escapeSystemd(_0x48dede)+_0xf57327(0x1a4);}export function windowsServiceDefinition(_0x251074,_0x497358,_0x22a237){const _0x125575=_0x9e14;return JSON[_0x125575(0x1b2)]({'serviceName':_0x125575(0x1b0),'displayName':_0x125575(0x1b1),'binaryPath':'\x22'+_0x251074+'\x22'+(_0x22a237===undefined?'':'\x20\x22'+_0x22a237+'\x22')+_0x125575(0x1a5)+_0x497358+'\x22','startType':_0x125575(0x1b3),'account':_0x125575(0x1a3)},undefined,-0x23cf+0x2b*0x5b+-0xdb*-0x18);}export async function writeServiceDefinition(_0x2c74c8,_0x403d2a,_0xd987f5,_0x524630=process[_0x49927c(0x1b5)],_0x556354,_0x3ff3c5=[]){const _0x2d3bb0=_0x49927c,_0x237ac8=_0x524630===_0x2d3bb0(0x1a2)?systemdUnit(_0x403d2a,_0xd987f5,_0x556354,_0x3ff3c5):_0x524630===_0x2d3bb0(0x1a7)?windowsServiceDefinition(_0x403d2a,_0xd987f5,_0x556354):((()=>{const _0x516f40=_0x2d3bb0;throw new Error(_0x516f40(0x1aa));})());await mkdir(dirname(_0x2c74c8),{'recursive':!![],'mode':0x1ed}),await writeFile(_0x2c74c8,_0x237ac8,{'mode':0x1a4});if(_0x524630!==_0x2d3bb0(0x1a7))await chmod(_0x2c74c8,-0x240a+-0x667+0x2c15);}function _0x9e14(_0x1bec06,_0x21b761){_0x1bec06=_0x1bec06-(-0x345*0xa+-0x3fd*0x3+0x17*0x203);const _0x41ddf9=_0x5424();let _0x5da1a1=_0x41ddf9[_0x1bec06];if(_0x9e14['fWGehu']===undefined){var _0x7154bc=function(_0x35b403){const _0x581d92='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x53a253='',_0x4a98bb='';for(let _0x3398f9=0x1be6+0x1*0x170+0x5de*-0x5,_0x8d9eb0,_0x484c36,_0x11b55c=0xec0+0x1444+-0xbac*0x3;_0x484c36=_0x35b403['charAt'](_0x11b55c++);~_0x484c36&&(_0x8d9eb0=_0x3398f9%(-0x52*-0xc+0x12ed+-0x16c1)?_0x8d9eb0*(-0x1435+0x7f*-0x12+0x1d63)+_0x484c36:_0x484c36,_0x3398f9++%(0x17a0+-0x208e+0x8f2))?_0x53a253+=String['fromCharCode'](0x151c+-0x559*0x2+-0x96b&_0x8d9eb0>>(-(0x1ee3+0xd53*0x1+-0x2c34)*_0x3398f9&0x44*-0x26+-0x1732*-0x1+0x24*-0x5d)):-0x5*0x6f2+0x1970+-0x3a*-0x29){_0x484c36=_0x581d92['indexOf'](_0x484c36);}for(let _0x67871b=0x1594*-0x1+0x142b+0x13*0x13,_0x28cf9e=_0x53a253['length'];_0x67871b<_0x28cf9e;_0x67871b++){_0x4a98bb+='%'+('00'+_0x53a253['charCodeAt'](_0x67871b)['toString'](-0x61e+-0x24bc+-0x2aea*-0x1))['slice'](-(-0x93f+0x8a3*-0x1+0x5*0x394));}return decodeURIComponent(_0x4a98bb);};_0x9e14['iTKdsh']=_0x7154bc,_0x9e14['ALAAHZ']={},_0x9e14['fWGehu']=!![];}const _0x1d3c5e=_0x41ddf9[0x268+-0x240a+-0xcd*-0x2a];_0x9e14['UDwBDY']!==_0x1d3c5e&&(_0x9e14['ALAAHZ']={},_0x9e14['UDwBDY']=_0x1d3c5e);const _0x267a34=_0x9e14['ALAAHZ'][_0x1bec06];return _0x267a34===undefined?(_0x5da1a1=_0x9e14['iTKdsh'](_0x5da1a1),_0x9e14['ALAAHZ'][_0x1bec06]=_0x5da1a1):_0x5da1a1=_0x267a34,_0x5da1a1;}export async function removeServiceDefinition(_0x49dba0){await rm(resolve(_0x49dba0),{'force':!![]});}function _0x5424(){const _0x452211=['BgLUDxG','tg9JywXtzxj2AwnL','cLjLC3rHCNq9B24TzMfPBhvYzqOkw0LUC3rHBgXDcLDHBNrLzej5pw11BhrPlxvZzxiUDgfYz2v0cG','ihn1CgvYDMLZzsaTlwnVBMzPzYaI','BwfW','D2LUmZi','mZCZnwruvK5PDG','uMvHzfDYAxrLugf0Ahm9','tK9erv9qtefurK9stv9vtLnvufbpuLrfra','mte5otj3uKLts1a','rxHLy1n0yxj0pq','mtiXtKvzCezo','oeLcy3f6uq','odC0mdKWA3bZsLPK','txLbz2vUDfjVyw1oB2rL','txLbz2vUDfjVyw0GtM9Kzq','C3rYAw5NAwz5','yxv0BW','mJe5mJaYmNb1rfDutW','CgXHDgzVCM0','ihn1CgvYDMLZzsaTlwnVBMzPzYa','mti0mdmZnxr1Befzra','BgvUz3rO','nde5ndi4oenLtMPKDW','w1vUAxrDcKrLC2nYAxb0Aw9Upu15qwDLBNrsB2fTie5Vzgukqwz0zxi9BMv0D29YAY1VBMXPBMuUDgfYz2v0cGPBu2vYDMLJzv0kvhLWzt1ZAw1WBgukvxnLCJ1TyxiTBM9KzqPoB05LD1bYAxzPBgvNzxm9Dhj1zqPqCML2yxrLvg1WpxrYDwukuhjVDgvJDfn5C3rLBt1ZDhjPy3qk','AM9PBG','mJK3nhzIzM9dyq','ntC3ndmWmfD5DMzyCq'];_0x5424=function(){return _0x452211;};return _0x5424();}function escapeSystemd(_0x5e3a89){const _0x165abe=_0x49927c;return JSON[_0x165abe(0x1b2)](_0x5e3a89);}
|
package/dist/storage.js
CHANGED
|
@@ -1,32 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const networkTypes = new Set([0x6969, 0x517b, 0xff534d42, 0xfe534d42]);
|
|
4
|
-
export function isUnsupportedSqlitePath(path, platform = process.platform) {
|
|
5
|
-
return platform === 'win32' && /^(?:\\\\|\/\/)/.test(path);
|
|
6
|
-
}
|
|
7
|
-
export async function assertLocalSqlitePath(path) {
|
|
8
|
-
if (isUnsupportedSqlitePath(path))
|
|
9
|
-
throw new Error('SQLITE_NETWORK_FILESYSTEM_UNSUPPORTED');
|
|
10
|
-
if (process.platform !== 'linux')
|
|
11
|
-
return;
|
|
12
|
-
const type = Number((await statfs(await existingParent(dirname(path)))).type) >>> 0;
|
|
13
|
-
if (networkTypes.has(type))
|
|
14
|
-
throw new Error('SQLITE_NETWORK_FILESYSTEM_UNSUPPORTED');
|
|
15
|
-
}
|
|
16
|
-
async function existingParent(path) {
|
|
17
|
-
let current = resolve(path);
|
|
18
|
-
for (;;) {
|
|
19
|
-
try {
|
|
20
|
-
if ((await stat(current)).isDirectory())
|
|
21
|
-
return current;
|
|
22
|
-
}
|
|
23
|
-
catch (error) {
|
|
24
|
-
if (!(error instanceof Error) || !('code' in error) || error.code !== 'ENOENT')
|
|
25
|
-
throw error;
|
|
26
|
-
}
|
|
27
|
-
const parent = dirname(current);
|
|
28
|
-
if (parent === current)
|
|
29
|
-
throw new Error('SQLITE_DATA_DIRECTORY_INVALID');
|
|
30
|
-
current = parent;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
1
|
+
/* mar-release-protected */
|
|
2
|
+
const _0x4c7ee7=_0x4cbe;function _0x4cbe(_0x5e0aaa,_0x89cfcf){_0x5e0aaa=_0x5e0aaa-(-0x2068+-0x16e4*-0x1+-0x1*-0xb03);const _0x256245=_0x1305();let _0x298727=_0x256245[_0x5e0aaa];if(_0x4cbe['SOICPs']===undefined){var _0x2104e8=function(_0x52aa40){const _0x289eec='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xfcfde='',_0x7d0b8b='';for(let _0x1e2f71=0x15a*-0x3+-0xba3*0x1+0xfb1,_0x1df2fb,_0x51766f,_0x8360a=0x1a53+-0x1f03*0x1+0x4b0;_0x51766f=_0x52aa40['charAt'](_0x8360a++);~_0x51766f&&(_0x1df2fb=_0x1e2f71%(-0x14*-0x1b+-0x3f+-0x1d9)?_0x1df2fb*(-0x26de+0x1*-0x795+-0x31d*-0xf)+_0x51766f:_0x51766f,_0x1e2f71++%(0x1db+-0x1*0x1846+0x166f))?_0xfcfde+=String['fromCharCode'](-0x5*0x42e+0x6*-0x61d+0x5*0xbb7&_0x1df2fb>>(-(0x19*-0x55+-0x2f*0x47+0x1558)*_0x1e2f71&0x741+-0xd*-0x26f+-0x136f*0x2)):-0x15e+-0x21*0x7b+0x1*0x1139){_0x51766f=_0x289eec['indexOf'](_0x51766f);}for(let _0x48dffa=-0x157c+-0xf46+0x24c2,_0x5f1b77=_0xfcfde['length'];_0x48dffa<_0x5f1b77;_0x48dffa++){_0x7d0b8b+='%'+('00'+_0xfcfde['charCodeAt'](_0x48dffa)['toString'](0x2bb+0x1c8d+-0x1f38))['slice'](-(0x103f+0x683*-0x1+-0x4dd*0x2));}return decodeURIComponent(_0x7d0b8b);};_0x4cbe['cizdMT']=_0x2104e8,_0x4cbe['XXyOoK']={},_0x4cbe['SOICPs']=!![];}const _0x16baee=_0x256245[-0xcbe+0x756+0x568];_0x4cbe['RcmrKx']!==_0x16baee&&(_0x4cbe['XXyOoK']={},_0x4cbe['RcmrKx']=_0x16baee);const _0x156dd2=_0x4cbe['XXyOoK'][_0x5e0aaa];return _0x156dd2===undefined?(_0x298727=_0x4cbe['cizdMT'](_0x298727),_0x4cbe['XXyOoK'][_0x5e0aaa]=_0x298727):_0x298727=_0x156dd2,_0x298727;}(function(_0x4f9912,_0x26326d){const _0x12bcfb=_0x4cbe,_0xa84621=_0x4f9912();while(!![]){try{const _0x2c18c0=-parseInt(_0x12bcfb(0x190))/(-0x1aa9+-0x22c*-0x1+0x16*0x11d)*(-parseInt(_0x12bcfb(0x181))/(-0x1f88+-0x86*0x7+0x2334))+-parseInt(_0x12bcfb(0x193))/(-0xdff+0x57d+0x885)*(-parseInt(_0x12bcfb(0x18e))/(0x17d1*-0x1+0xdfe+0x9d7))+-parseInt(_0x12bcfb(0x186))/(0x1882+-0xfce+0x2e5*-0x3)*(-parseInt(_0x12bcfb(0x187))/(-0x62e+0x2129+-0x1*0x1af5))+-parseInt(_0x12bcfb(0x182))/(0xe*0x81+-0x13dc+0xcd5*0x1)+-parseInt(_0x12bcfb(0x189))/(-0x31*-0xd+-0x5*-0xa+-0x2a7)+parseInt(_0x12bcfb(0x194))/(0x51e*0x4+-0x16c2+-0x77*-0x5)+-parseInt(_0x12bcfb(0x184))/(0x1430+-0x2be+-0x1168)*(-parseInt(_0x12bcfb(0x18a))/(-0x184b+0xb1*-0x2b+0x3611));if(_0x2c18c0===_0x26326d)break;else _0xa84621['push'](_0xa84621['shift']());}catch(_0x18e42d){_0xa84621['push'](_0xa84621['shift']());}}}(_0x1305,0xb9720*-0x1+-0x2feb*-0x23+-0x458f*-0x29));import{stat,statfs}from'node:fs/promises';import{dirname,resolve}from'node:path';const networkTypes=new Set([0x9de8+0x16e6+-0x4b65*0x1,-0x4f4e+0xe9a+-0x1*-0x922f,0x13276b781+-0xebafcbdd+0xb88c619e,0x1*-0x62b55c69+-0x15bea1b*0x9d+-0x12240a*-0x1f39]);export function isUnsupportedSqlitePath(_0x2eb730,_0x405375=process[_0x4c7ee7(0x191)]){const _0x136f2b=_0x4c7ee7;return _0x405375===_0x136f2b(0x18b)&&/^(?:\\\\|\/\/)/[_0x136f2b(0x183)](_0x2eb730);}function _0x1305(){const _0x1e9555=['mJLgtgXWBMi','CgXHDgzVCM0','u1fmsvrfx0rbvefFreLsrunut1jzx0LovKfmsuq','mZa2s3zRwLvz','mtmZnJq0nLLtDNzetG','y29Kzq','DhLWzq','ndC0mNPcvhLREq','mtqWodaYowjtyu5Azq','DgvZDa','ntmWEfzXAMzJ','u1fmsvrfx05fvfDpuKTFrKLmrvnzu1rftv9vtLnvufbpuLrfra','mtaXnZvAzxv3C20','nMXuD2fLCq','BgLUDxG','mZi5mZeWneDrDfbPDG','mtaWnJm5uffAsxfp','D2LUmZi','AxneAxjLy3rVCNK','AgfZ','mtiWotzJCKvNDgO','ru5pru5u'];_0x1305=function(){return _0x1e9555;};return _0x1305();}export async function assertLocalSqlitePath(_0x24ca2e){const _0x365f67=_0x4c7ee7;if(isUnsupportedSqlitePath(_0x24ca2e))throw new Error(_0x365f67(0x185));if(process[_0x365f67(0x191)]!==_0x365f67(0x188))return;const _0x524b28=Number((await statfs(await existingParent(dirname(_0x24ca2e))))[_0x365f67(0x180)])>>>-0x5de+0x1d3b+-0x175d;if(networkTypes[_0x365f67(0x18d)](_0x524b28))throw new Error(_0x365f67(0x185));}async function existingParent(_0x3dd4a6){const _0x4354a8=_0x4c7ee7;let _0x591ee4=resolve(_0x3dd4a6);for(;;){try{if((await stat(_0x591ee4))[_0x4354a8(0x18c)]())return _0x591ee4;}catch(_0x258e5b){if(!(_0x258e5b instanceof Error)||!(_0x4354a8(0x17f)in _0x258e5b)||_0x258e5b[_0x4354a8(0x17f)]!==_0x4354a8(0x18f))throw _0x258e5b;}const _0x402bfa=dirname(_0x591ee4);if(_0x402bfa===_0x591ee4)throw new Error(_0x4354a8(0x192));_0x591ee4=_0x402bfa;}}
|
package/dist/supervisor.js
CHANGED
|
@@ -1,136 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import { dirname, resolve } from 'node:path';
|
|
4
|
-
import { loadNodeConfig, nodeDatabasePath } from './config.js';
|
|
5
|
-
import { nodeLog, platformCliInvocation } from './operational.js';
|
|
6
|
-
import { nodeUpgradeRequestPath } from './service/node-upgrade-coordinator.js';
|
|
7
|
-
import { safeErrorCode } from './util/safe-error.js';
|
|
8
|
-
const UPGRADE_EXIT_CODE = 75;
|
|
9
|
-
const STABLE_VERSION = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/u;
|
|
10
|
-
export async function superviseNode(configPath, bootstrapEntrypoint) {
|
|
11
|
-
const config = await loadNodeConfig(configPath);
|
|
12
|
-
const dataDirectory = dirname(nodeDatabasePath(config, configPath));
|
|
13
|
-
const activePath = resolve(dataDirectory, 'node-active-entrypoint');
|
|
14
|
-
let entrypoint = await readActiveEntrypoint(activePath, bootstrapEntrypoint);
|
|
15
|
-
for (;;) {
|
|
16
|
-
const childResult = await runProcess(process.execPath, [entrypoint, 'run', '--config', configPath], true, { ...process.env, MAR_NODE_SUPERVISED: '1' });
|
|
17
|
-
if (childResult.signalled)
|
|
18
|
-
return;
|
|
19
|
-
const code = childResult.code;
|
|
20
|
-
if (code !== UPGRADE_EXIT_CODE) {
|
|
21
|
-
if (code === 0)
|
|
22
|
-
return;
|
|
23
|
-
nodeLog('node.supervisor.child-exited', { code });
|
|
24
|
-
await delay(1_000);
|
|
25
|
-
continue;
|
|
26
|
-
}
|
|
27
|
-
const requestPath = nodeUpgradeRequestPath(nodeDatabasePath(config, configPath));
|
|
28
|
-
let stopping = false;
|
|
29
|
-
try {
|
|
30
|
-
const request = JSON.parse(await readFile(requestPath, 'utf8'));
|
|
31
|
-
const targetVersion = request['targetVersion'];
|
|
32
|
-
if (request['schemaVersion'] !== 1 ||
|
|
33
|
-
typeof targetVersion !== 'string' ||
|
|
34
|
-
!STABLE_VERSION.test(targetVersion))
|
|
35
|
-
throw new Error('NODE_UPGRADE_REQUEST_INVALID');
|
|
36
|
-
const prefix = resolve(dataDirectory, 'node-versions', targetVersion);
|
|
37
|
-
await rm(prefix, { recursive: true, force: true });
|
|
38
|
-
await mkdir(prefix, { recursive: true, mode: 0o700 });
|
|
39
|
-
const invocation = platformCliInvocation('npm', [
|
|
40
|
-
'install',
|
|
41
|
-
'--prefix',
|
|
42
|
-
prefix,
|
|
43
|
-
'--ignore-scripts',
|
|
44
|
-
'--no-audit',
|
|
45
|
-
'--no-fund',
|
|
46
|
-
`@myagentroam/node@${targetVersion}`
|
|
47
|
-
]);
|
|
48
|
-
const installResult = await runProcess(invocation.command, invocation.args, false);
|
|
49
|
-
if (installResult.signalled) {
|
|
50
|
-
stopping = true;
|
|
51
|
-
throw new Error('NODE_UPGRADE_INSTALL_INTERRUPTED');
|
|
52
|
-
}
|
|
53
|
-
if (installResult.code !== 0)
|
|
54
|
-
throw new Error('NODE_UPGRADE_INSTALL_FAILED');
|
|
55
|
-
const rebuild = platformCliInvocation('npm', ['rebuild', '--prefix', prefix, 'node-pty']);
|
|
56
|
-
const rebuildResult = await runProcess(rebuild.command, rebuild.args, false);
|
|
57
|
-
if (rebuildResult.signalled) {
|
|
58
|
-
stopping = true;
|
|
59
|
-
throw new Error('NODE_UPGRADE_INSTALL_INTERRUPTED');
|
|
60
|
-
}
|
|
61
|
-
if (rebuildResult.code !== 0)
|
|
62
|
-
throw new Error('NODE_UPGRADE_NATIVE_REBUILD_FAILED');
|
|
63
|
-
const nextEntrypoint = resolve(prefix, 'node_modules', '@myagentroam', 'node', 'dist', 'main.js');
|
|
64
|
-
await access(nextEntrypoint);
|
|
65
|
-
await writeAtomic(activePath, `${nextEntrypoint}\n`);
|
|
66
|
-
await writeResult(dataDirectory, {
|
|
67
|
-
state: 'SUCCEEDED',
|
|
68
|
-
targetVersion,
|
|
69
|
-
updatedAt: Date.now()
|
|
70
|
-
});
|
|
71
|
-
await rm(requestPath, { force: true });
|
|
72
|
-
entrypoint = nextEntrypoint;
|
|
73
|
-
}
|
|
74
|
-
catch (error) {
|
|
75
|
-
await writeResult(dataDirectory, {
|
|
76
|
-
state: 'FAILED',
|
|
77
|
-
errorCode: safeErrorCode(error, 'NODE_UPGRADE_INSTALL_FAILED'),
|
|
78
|
-
updatedAt: Date.now()
|
|
79
|
-
});
|
|
80
|
-
await rm(requestPath, { force: true });
|
|
81
|
-
}
|
|
82
|
-
if (stopping)
|
|
83
|
-
return;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
async function runProcess(command, args, inherit, env = process.env) {
|
|
87
|
-
return new Promise((resolveProcess) => {
|
|
88
|
-
const child = spawn(command, args, {
|
|
89
|
-
windowsHide: true,
|
|
90
|
-
stdio: inherit ? 'inherit' : 'ignore',
|
|
91
|
-
env
|
|
92
|
-
});
|
|
93
|
-
let settled = false;
|
|
94
|
-
let signalled = false;
|
|
95
|
-
const forward = (signal) => {
|
|
96
|
-
signalled = true;
|
|
97
|
-
child.kill(signal);
|
|
98
|
-
};
|
|
99
|
-
const onSigint = () => forward('SIGINT');
|
|
100
|
-
const onSigterm = () => forward('SIGTERM');
|
|
101
|
-
const finish = (code) => {
|
|
102
|
-
if (settled)
|
|
103
|
-
return;
|
|
104
|
-
settled = true;
|
|
105
|
-
process.off('SIGINT', onSigint);
|
|
106
|
-
process.off('SIGTERM', onSigterm);
|
|
107
|
-
resolveProcess({ code, signalled });
|
|
108
|
-
};
|
|
109
|
-
process.once('SIGINT', onSigint);
|
|
110
|
-
process.once('SIGTERM', onSigterm);
|
|
111
|
-
child.once('error', () => finish(null));
|
|
112
|
-
child.once('close', finish);
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
async function readActiveEntrypoint(path, fallback) {
|
|
116
|
-
try {
|
|
117
|
-
const value = (await readFile(path, 'utf8')).trim();
|
|
118
|
-
await access(value);
|
|
119
|
-
return value;
|
|
120
|
-
}
|
|
121
|
-
catch {
|
|
122
|
-
return fallback;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
async function writeResult(directory, result) {
|
|
126
|
-
await writeAtomic(resolve(directory, 'upgrade-result.json'), `${JSON.stringify(result)}\n`);
|
|
127
|
-
}
|
|
128
|
-
async function writeAtomic(path, contents) {
|
|
129
|
-
await mkdir(dirname(path), { recursive: true, mode: 0o700 });
|
|
130
|
-
const temporary = `${path}.${process.pid}.tmp`;
|
|
131
|
-
await writeFile(temporary, contents, { mode: 0o600 });
|
|
132
|
-
await rename(temporary, path);
|
|
133
|
-
}
|
|
134
|
-
function delay(milliseconds) {
|
|
135
|
-
return new Promise((resolveDelay) => setTimeout(resolveDelay, milliseconds));
|
|
136
|
-
}
|
|
1
|
+
/* mar-release-protected */
|
|
2
|
+
(function(_0x18f5c7,_0x59ccbc){const _0x3e4279=_0x4f65,_0x14ed97=_0x18f5c7();while(!![]){try{const _0xdfc6fb=-parseInt(_0x3e4279(0x11e))/(0x1941+-0x13*-0xb+-0x1a11*0x1)+-parseInt(_0x3e4279(0x12d))/(0x2515+0x16f1+-0x3c04)+-parseInt(_0x3e4279(0x109))/(-0x12c9+-0x1f98+0x3264)*(-parseInt(_0x3e4279(0x123))/(-0x20bb+0x31c+0x34b*0x9))+parseInt(_0x3e4279(0x13e))/(-0x1bd5+-0x13*0xb9+0x2995)*(parseInt(_0x3e4279(0x10c))/(-0x106*0x4+0xb67+-0x5*0x175))+-parseInt(_0x3e4279(0x113))/(0xb1f+0x1d7*0x11+0x2a5f*-0x1)+parseInt(_0x3e4279(0x138))/(-0x21e5*0x1+0x2468+-0x27b)*(-parseInt(_0x3e4279(0x128))/(-0xe76+0x867+0x618))+parseInt(_0x3e4279(0x137))/(-0x1*-0x2124+-0xee3*-0x1+0x27*-0x13b);if(_0xdfc6fb===_0x59ccbc)break;else _0x14ed97['push'](_0x14ed97['shift']());}catch(_0x351298){_0x14ed97['push'](_0x14ed97['shift']());}}}(_0x4e19,0x1*-0x1f7d0+-0x10c*-0x2ea+-0x3c01*-0x3));import{spawn}from'node:child_process';import{access,mkdir,readFile,rename,rm,writeFile}from'node:fs/promises';function _0x4e19(){const _0xc9cf41=['BM9Kzq','lNrTCa','ls1WCMvMAxG','CMvIDwLSza','DxrMoa','C2LNBMfSBgvK','ls1UBY1HDwrPDa','qg15ywDLBNrYB2fTl25Vzgva','C2nOzw1HvMvYC2LVBG','mtmZndy1q3bXCvnI','A2LSBa','DgvZDa','Aw5OzxjPDa','ls1JB25MAwC','mZiWzgvVz2PI','BM9Kzs1Hy3rPDMuTzw50CNLWB2LUDa','yxjNCW','BwfPBI5QCW','ls1UBY1MDw5K','mtqZmZD1DfLrtw8','B2zM','DgfYz2v0vMvYC2LVBG','Aw5ZDgfSBa','qg15ywDLBNrYB2fT','nty4mJHNB3Llthe','ls1Pz25VCMuTC2nYAxb0CW','C3rYAw5NAwz5','zgLZDa','u1vdq0vfreve','y29Kzq','u0Lhsu5u','CNvU','tK9erv9vueDsqurfx0Lou1rbteXFsu5urvjsvvburuq','zxjYB3i','mZG1nJK3mefhB2HSDW','mte1mNbUCwvlrW','CgfYC2u','CgLK','zxHLy1bHDgG','C3rYAw5N','BM93','nwzkDxrzza','BM9Kzs12zxjZAw9UCW','rKfjteve','tK9erv9vueDsqurfx0Lou1rbteXFrKfjteve','BM9Kzs5ZDxbLCNzPC29YlMnOAwXKlwv4AxrLza','BM9Kzv9TB2r1BgvZ','y29TBwfUza','tK9erv9vueDsqurfx1jfuvvfu1rFsu5wquXjra','nJq0n0nNEKLrAG','BM9Kzs1WDhK','DhjPBq','mti0ote0zKjjwNHQ','u0Lhvevstq','AwDUB3jL','tK9erv9vueDsqurfx05bveLwrv9srujvsuXex0zbsuXfra','DxbNCMfKzs1Yzxn1BhqUANnVBG','y2XVC2u','BNbT','ndKWoteWBhzOC3nK','B25Jzq'];_0x4e19=function(){return _0xc9cf41;};return _0x4e19();}import{dirname,resolve}from'node:path';import{loadNodeConfig,nodeDatabasePath}from'./config.js';import{nodeLog,platformCliInvocation}from'./operational.js';import{nodeUpgradeRequestPath}from'./service/node-upgrade-coordinator.js';import{safeErrorCode}from'./util/safe-error.js';const UPGRADE_EXIT_CODE=0x72b*0x4+0x86*0x35+-0x12b5*0x3,STABLE_VERSION=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/u;export async function superviseNode(_0x532845,_0xd475d9){const _0x3d0541=_0x4f65,_0x1a15a0=await loadNodeConfig(_0x532845),_0x4c8e6c=dirname(nodeDatabasePath(_0x1a15a0,_0x532845)),_0x4cae71=resolve(_0x4c8e6c,_0x3d0541(0x124));let _0x109a41=await readActiveEntrypoint(_0x4cae71,_0xd475d9);for(;;){const _0x4ad3a1=await runProcess(process[_0x3d0541(0x13b)],[_0x109a41,_0x3d0541(0x134),_0x3d0541(0x122),_0x532845],!![],{...process.env,'MAR_NODE_SUPERVISED':'1'});if(_0x4ad3a1[_0x3d0541(0x11a)])return;const _0x589238=_0x4ad3a1[_0x3d0541(0x132)];if(_0x589238!==UPGRADE_EXIT_CODE){if(_0x589238===0x1192+0x1e95+0x7*-0x6e1)return;nodeLog(_0x3d0541(0x142),{'code':_0x589238}),await delay(0xd12+0x16ce+-0x42*0x7c);continue;}const _0x2fd040=nodeUpgradeRequestPath(nodeDatabasePath(_0x1a15a0,_0x532845));let _0x1bf8a9=![];try{const _0x4d2b50=JSON[_0x3d0541(0x139)](await readFile(_0x2fd040,_0x3d0541(0x119))),_0x1b9c4d=_0x4d2b50[_0x3d0541(0x12a)];if(_0x4d2b50[_0x3d0541(0x11d)]!==-0x1c22+0x773*-0x1+0x38f*0xa||typeof _0x1b9c4d!==_0x3d0541(0x13c)||!STABLE_VERSION[_0x3d0541(0x120)](_0x1b9c4d))throw new Error(_0x3d0541(0x108));const _0x518f4b=resolve(_0x4c8e6c,_0x3d0541(0x13f),_0x1b9c4d);await rm(_0x518f4b,{'recursive':!![],'force':!![]}),await mkdir(_0x518f4b,{'recursive':!![],'mode':0x1c0});const _0x10e7b3=platformCliInvocation(_0x3d0541(0x112),[_0x3d0541(0x12b),_0x3d0541(0x117),_0x518f4b,_0x3d0541(0x12e),_0x3d0541(0x11b),_0x3d0541(0x127),_0x3d0541(0x11c)+_0x1b9c4d]),_0x4fad21=await runProcess(_0x10e7b3[_0x3d0541(0x144)],_0x10e7b3[_0x3d0541(0x125)],![]);if(_0x4fad21[_0x3d0541(0x11a)]){_0x1bf8a9=!![];throw new Error(_0x3d0541(0x135));}if(_0x4fad21[_0x3d0541(0x132)]!==0x38f*0xa+-0x69*-0x5e+-0x4a24)throw new Error(_0x3d0541(0x141));const _0x28e985=platformCliInvocation(_0x3d0541(0x112),[_0x3d0541(0x118),_0x3d0541(0x117),_0x518f4b,_0x3d0541(0x10a)]),_0x56fed3=await runProcess(_0x28e985[_0x3d0541(0x144)],_0x28e985[_0x3d0541(0x125)],![]);if(_0x56fed3[_0x3d0541(0x11a)]){_0x1bf8a9=!![];throw new Error(_0x3d0541(0x135));}if(_0x56fed3[_0x3d0541(0x132)]!==-0x1791+0x1ab4+-0x323)throw new Error(_0x3d0541(0x10f));const _0x1763be=resolve(_0x518f4b,_0x3d0541(0x143),_0x3d0541(0x12c),_0x3d0541(0x115),_0x3d0541(0x130),_0x3d0541(0x126));await access(_0x1763be),await writeAtomic(_0x4cae71,_0x1763be+'\x0a'),await writeResult(_0x4c8e6c,{'state':_0x3d0541(0x131),'targetVersion':_0x1b9c4d,'updatedAt':Date[_0x3d0541(0x13d)]()}),await rm(_0x2fd040,{'force':!![]}),_0x109a41=_0x1763be;}catch(_0x1533e8){await writeResult(_0x4c8e6c,{'state':_0x3d0541(0x140),'errorCode':safeErrorCode(_0x1533e8,_0x3d0541(0x141)),'updatedAt':Date[_0x3d0541(0x13d)]()}),await rm(_0x2fd040,{'force':!![]});}if(_0x1bf8a9)return;}}async function runProcess(_0x56a1a1,_0x335f50,_0x5d77d3,_0x373f08=process.env){return new Promise(_0x14b5ab=>{const _0x5e612f=_0x4f65,_0xb9c08=spawn(_0x56a1a1,_0x335f50,{'windowsHide':!![],'stdio':_0x5d77d3?_0x5e612f(0x121):_0x5e612f(0x10e),'env':_0x373f08});let _0x220ddb=![],_0x17cc49=![];const _0x2071de=_0x409924=>{const _0x2a0bcb=_0x5e612f;_0x17cc49=!![],_0xb9c08[_0x2a0bcb(0x11f)](_0x409924);},_0x44803f=()=>_0x2071de(_0x5e612f(0x133)),_0x14fab6=()=>_0x2071de(_0x5e612f(0x10d)),_0x2026d3=_0xd83709=>{const _0x30f735=_0x5e612f;if(_0x220ddb)return;_0x220ddb=!![],process[_0x30f735(0x129)](_0x30f735(0x133),_0x44803f),process[_0x30f735(0x129)](_0x30f735(0x10d),_0x14fab6),_0x14b5ab({'code':_0xd83709,'signalled':_0x17cc49});};process[_0x5e612f(0x114)](_0x5e612f(0x133),_0x44803f),process[_0x5e612f(0x114)](_0x5e612f(0x10d),_0x14fab6),_0xb9c08[_0x5e612f(0x114)](_0x5e612f(0x136),()=>_0x2026d3(null)),_0xb9c08[_0x5e612f(0x114)](_0x5e612f(0x111),_0x2026d3);});}async function readActiveEntrypoint(_0xa3c027,_0x319191){const _0x3c9800=_0x4f65;try{const _0x5efb2c=(await readFile(_0xa3c027,_0x3c9800(0x119)))[_0x3c9800(0x10b)]();return await access(_0x5efb2c),_0x5efb2c;}catch{return _0x319191;}}async function writeResult(_0x125a14,_0x46d23d){const _0x3dd98a=_0x4f65;await writeAtomic(resolve(_0x125a14,_0x3dd98a(0x110)),JSON[_0x3dd98a(0x12f)](_0x46d23d)+'\x0a');}async function writeAtomic(_0x4d4ded,_0x11b927){const _0x194cf5=_0x4f65;await mkdir(dirname(_0x4d4ded),{'recursive':!![],'mode':0x1c0});const _0x20ffff=_0x4d4ded+'.'+process[_0x194cf5(0x13a)]+_0x194cf5(0x116);await writeFile(_0x20ffff,_0x11b927,{'mode':0x180}),await rename(_0x20ffff,_0x4d4ded);}function _0x4f65(_0x5125a8,_0x1d085f){_0x5125a8=_0x5125a8-(0x47*0x19+0xcfb+-0x12e2*0x1);const _0x14809b=_0x4e19();let _0x29e68f=_0x14809b[_0x5125a8];if(_0x4f65['hHRPMG']===undefined){var _0x52b527=function(_0xf6640){const _0xe492af='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1e4bd5='',_0x31a8d1='';for(let _0x12c111=0x79*-0x3+0x7*0x3b+0x2*-0x19,_0x47a0b1,_0x343249,_0x289766=0x1b41+0x1462*0x1+-0x2fa3;_0x343249=_0xf6640['charAt'](_0x289766++);~_0x343249&&(_0x47a0b1=_0x12c111%(0x3*-0x185+-0xda1*-0x1+-0x90e)?_0x47a0b1*(0x1484+-0x116d+-0x2d7)+_0x343249:_0x343249,_0x12c111++%(0x13d*0xb+0x1a17*0x1+0x13d9*-0x2))?_0x1e4bd5+=String['fromCharCode'](0x2346+-0x13ee+-0x1*0xe59&_0x47a0b1>>(-(-0x15b*0x11+-0x1a48+0xad*0x49)*_0x12c111&0x1*-0x1978+0x163c+-0x6*-0x8b)):-0x4*-0x6f0+-0x1939*0x1+-0x287){_0x343249=_0xe492af['indexOf'](_0x343249);}for(let _0x34e50f=0x2*0xff4+0x305+-0x22ed,_0x3fb311=_0x1e4bd5['length'];_0x34e50f<_0x3fb311;_0x34e50f++){_0x31a8d1+='%'+('00'+_0x1e4bd5['charCodeAt'](_0x34e50f)['toString'](-0xb2c+-0x1393*0x1+0x1ecf))['slice'](-(-0x23c4+0x1c00*-0x1+0x3fc6));}return decodeURIComponent(_0x31a8d1);};_0x4f65['rJUtMl']=_0x52b527,_0x4f65['TpCLht']={},_0x4f65['hHRPMG']=!![];}const _0x33ede4=_0x14809b[0x12f4+0x1844+-0x2b38];_0x4f65['hQckAc']!==_0x33ede4&&(_0x4f65['TpCLht']={},_0x4f65['hQckAc']=_0x33ede4);const _0x216744=_0x4f65['TpCLht'][_0x5125a8];return _0x216744===undefined?(_0x29e68f=_0x4f65['rJUtMl'](_0x29e68f),_0x4f65['TpCLht'][_0x5125a8]=_0x29e68f):_0x29e68f=_0x216744,_0x29e68f;}function delay(_0x1f0af4){return new Promise(_0x5125a8=>setTimeout(_0x5125a8,_0x1f0af4));}
|