@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/capabilities.js
CHANGED
|
@@ -1,92 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
import { probeClaudeCode, probeClaudeCodeAsync } from './claude-agent-sdk.js';
|
|
4
|
-
import { probeCodex, probeCodexAsync } from './codex-app-server.js';
|
|
5
|
-
import { probeOpenCode, probeOpenCodeAsync } from './opencode-runtime.js';
|
|
6
|
-
import { detectRuntimeCommands } from './runtime-command-detector.js';
|
|
7
|
-
const nodeAppVersion = typeof nodePackage.version === 'string' ? nodePackage.version : 'unknown';
|
|
8
|
-
function reportedPlatform() {
|
|
9
|
-
return process.platform === 'win32' ? 'windows' : 'linux';
|
|
10
|
-
}
|
|
11
|
-
export function unavailableCapabilities() {
|
|
12
|
-
if (process.platform !== 'win32' && process.platform !== 'linux') {
|
|
13
|
-
throw new Error('NODE_PLATFORM_UNSUPPORTED');
|
|
14
|
-
}
|
|
15
|
-
return {
|
|
16
|
-
platform: reportedPlatform(),
|
|
17
|
-
architecture: process.arch,
|
|
18
|
-
nodeAppVersion,
|
|
19
|
-
nodeVersion: process.version,
|
|
20
|
-
metadata: {
|
|
21
|
-
osRelease: release(),
|
|
22
|
-
osVersion: version()
|
|
23
|
-
},
|
|
24
|
-
codex: { available: false },
|
|
25
|
-
claudeCode: { available: false },
|
|
26
|
-
openCode: { available: false }
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
export function detectCapabilities(commands = {}) {
|
|
30
|
-
if (process.platform !== 'win32' && process.platform !== 'linux') {
|
|
31
|
-
throw new Error('NODE_PLATFORM_UNSUPPORTED');
|
|
32
|
-
}
|
|
33
|
-
const codex = probeCodex(commands.codex);
|
|
34
|
-
const claudeCode = probeClaudeCode(commands.claudeCode);
|
|
35
|
-
const openCode = probeOpenCode(commands.openCode);
|
|
36
|
-
return {
|
|
37
|
-
platform: reportedPlatform(),
|
|
38
|
-
architecture: process.arch,
|
|
39
|
-
nodeAppVersion,
|
|
40
|
-
nodeVersion: process.version,
|
|
41
|
-
metadata: {
|
|
42
|
-
osRelease: release(),
|
|
43
|
-
osVersion: version()
|
|
44
|
-
},
|
|
45
|
-
codex: {
|
|
46
|
-
available: codex.available && codex.compatible,
|
|
47
|
-
...(codex.version === undefined ? {} : { version: codex.version })
|
|
48
|
-
},
|
|
49
|
-
claudeCode: {
|
|
50
|
-
available: claudeCode.available && claudeCode.compatible,
|
|
51
|
-
...(claudeCode.version === undefined ? {} : { version: claudeCode.version })
|
|
52
|
-
},
|
|
53
|
-
openCode: {
|
|
54
|
-
available: openCode.available && openCode.compatible,
|
|
55
|
-
...(openCode.version === undefined ? {} : { version: openCode.version })
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
export async function detectCapabilitiesAsync(commands = {}) {
|
|
60
|
-
if (process.platform !== 'win32' && process.platform !== 'linux') {
|
|
61
|
-
throw new Error('NODE_PLATFORM_UNSUPPORTED');
|
|
62
|
-
}
|
|
63
|
-
const [codex, claudeCode, openCode, runtimeCommands] = await Promise.all([
|
|
64
|
-
probeCodexAsync(commands.codex),
|
|
65
|
-
probeClaudeCodeAsync(commands.claudeCode),
|
|
66
|
-
probeOpenCodeAsync(commands.openCode),
|
|
67
|
-
detectRuntimeCommands()
|
|
68
|
-
]);
|
|
69
|
-
return {
|
|
70
|
-
platform: reportedPlatform(),
|
|
71
|
-
architecture: process.arch,
|
|
72
|
-
nodeAppVersion,
|
|
73
|
-
nodeVersion: process.version,
|
|
74
|
-
metadata: {
|
|
75
|
-
osRelease: release(),
|
|
76
|
-
osVersion: version(),
|
|
77
|
-
runtimeCommands
|
|
78
|
-
},
|
|
79
|
-
codex: {
|
|
80
|
-
available: codex.available && codex.compatible,
|
|
81
|
-
...(codex.version === undefined ? {} : { version: codex.version })
|
|
82
|
-
},
|
|
83
|
-
claudeCode: {
|
|
84
|
-
available: claudeCode.available && claudeCode.compatible,
|
|
85
|
-
...(claudeCode.version === undefined ? {} : { version: claudeCode.version })
|
|
86
|
-
},
|
|
87
|
-
openCode: {
|
|
88
|
-
available: openCode.available && openCode.compatible,
|
|
89
|
-
...(openCode.version === undefined ? {} : { version: openCode.version })
|
|
90
|
-
}
|
|
91
|
-
};
|
|
92
|
-
}
|
|
1
|
+
/* mar-release-protected */
|
|
2
|
+
const _0x2ec1d1=_0x24cb;(function(_0x12e6f8,_0x51a0de){const _0x2944e5=_0x24cb,_0x4c842e=_0x12e6f8();while(!![]){try{const _0x2325ca=-parseInt(_0x2944e5(0x1f2))/(-0x2184+0x2b*0x6f+0xee0)+parseInt(_0x2944e5(0x1e9))/(0x168c+0x6f*0x2d+0x5*-0x869)+parseInt(_0x2944e5(0x1e1))/(-0x11e7*-0x1+0x1d95+-0x2f79)*(-parseInt(_0x2944e5(0x1f6))/(0x41*0x67+0x2208+-0x3c2b))+-parseInt(_0x2944e5(0x1f4))/(0x1*-0x1577+-0x5a5*-0x1+0xfd7)*(parseInt(_0x2944e5(0x1ea))/(0xa1*0x8+0x3*0x5c8+-0x165a))+parseInt(_0x2944e5(0x1f0))/(0x77b+0x2*-0x8da+0xa40)*(parseInt(_0x2944e5(0x1e0))/(-0x4f*-0x21+-0x2676*-0x1+-0x309d))+-parseInt(_0x2944e5(0x1e3))/(0x31d+0xa41+0xd55*-0x1)+parseInt(_0x2944e5(0x1eb))/(0xf3f+0x17*0x98+0x9*-0x335)*(parseInt(_0x2944e5(0x1f9))/(-0x1*-0xbfa+0x105f+-0x1c4e));if(_0x2325ca===_0x51a0de)break;else _0x4c842e['push'](_0x4c842e['shift']());}catch(_0x34ada1){_0x4c842e['push'](_0x4c842e['shift']());}}}(_0x5c09,0x1*-0x109d19+0x189bd+0x1af21f*0x1));import{release,version}from'node:os';import _0x3594ea from'../package.json'with{type:'json'};import{probeClaudeCode,probeClaudeCodeAsync}from'./claude-agent-sdk.js';import{probeCodex,probeCodexAsync}from'./codex-app-server.js';function _0x5c09(){const _0x3e3c6d=['B3bLBKnVzgu','mZGZnJvMvMD5vKi','CgXHDgzVCM0','odbwsePMDMO','Dw5RBM93BG','BgLUDxG','ndrZz3HZy1a','mJrhzxLxzMS','mJaYmtyXC29QrfbV','yxzHAwXHyMXL','mtmZodqXntjhzgzgzfG','y29KzxG','y2XHDwrLq29Kzq','ywXS','DMvYC2LVBG','D2LUmZi','mtuWnJe1nKjowxf2rW','otC4EhLotNLe','mta1ntK5mtbKBwPVB24','tK9erv9qtefurK9stv9vtLnvufbpuLrfra','yxjJAa','C3rYAw5N','D2LUzg93CW','mJq3mduXn2fsqLzSrG','y29TCgf0AwjSzq','mte3mJm0nuDtBhfrrq'];_0x5c09=function(){return _0x3e3c6d;};return _0x5c09();}import{probeOpenCode,probeOpenCodeAsync}from'./opencode-runtime.js';import{detectRuntimeCommands}from'./runtime-command-detector.js';const nodeAppVersion=typeof _0x3594ea[_0x2ec1d1(0x1e7)]===_0x2ec1d1(0x1ee)?_0x3594ea[_0x2ec1d1(0x1e7)]:_0x2ec1d1(0x1f7);function _0x24cb(_0x1138c1,_0x19ea14){_0x1138c1=_0x1138c1-(-0xc*0x319+0x1889+-0x5*-0x2e7);const _0x19e917=_0x5c09();let _0x1832a8=_0x19e917[_0x1138c1];if(_0x24cb['dVCazR']===undefined){var _0x219370=function(_0x2199b4){const _0x4cf961='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4ce9e5='',_0x6c7bef='';for(let _0x467260=0x3*-0x7e7+-0xe92*-0x2+-0x56f,_0x25dad4,_0x53e393,_0x43b785=0xdc*-0x17+-0x559+0x85f*0x3;_0x53e393=_0x2199b4['charAt'](_0x43b785++);~_0x53e393&&(_0x25dad4=_0x467260%(-0x1d6f+0x12e9+-0xa8a*-0x1)?_0x25dad4*(0x962*-0x1+-0x5d*0xa+0x236*0x6)+_0x53e393:_0x53e393,_0x467260++%(0x1*-0x1ad7+-0x95*-0xa+0x1509))?_0x4ce9e5+=String['fromCharCode'](0x1af*0xf+-0x1*-0x67f+-0x1ec1&_0x25dad4>>(-(0x927+-0xb43+0x10f*0x2)*_0x467260&0x13*-0xee+0x2040+-0xe90)):-0x18a9*0x1+-0x1ea6+0x1*0x374f){_0x53e393=_0x4cf961['indexOf'](_0x53e393);}for(let _0x2de891=0x21*-0x20+-0x28a+-0x6aa*-0x1,_0x4b34a7=_0x4ce9e5['length'];_0x2de891<_0x4b34a7;_0x2de891++){_0x6c7bef+='%'+('00'+_0x4ce9e5['charCodeAt'](_0x2de891)['toString'](-0x1aab*-0x1+0x1*0x1a1+-0x1c3c))['slice'](-(-0x288+0x2237+-0xa8f*0x3));}return decodeURIComponent(_0x6c7bef);};_0x24cb['ZgWDPq']=_0x219370,_0x24cb['IjSMqR']={},_0x24cb['dVCazR']=!![];}const _0xbeeadd=_0x19e917[-0x1f53+-0x7e5*-0x1+0x176e];_0x24cb['nQILER']!==_0xbeeadd&&(_0x24cb['IjSMqR']={},_0x24cb['nQILER']=_0xbeeadd);const _0x2b0365=_0x24cb['IjSMqR'][_0x1138c1];return _0x2b0365===undefined?(_0x1832a8=_0x24cb['ZgWDPq'](_0x1832a8),_0x24cb['IjSMqR'][_0x1138c1]=_0x1832a8):_0x1832a8=_0x2b0365,_0x1832a8;}function reportedPlatform(){const _0x5c04da=_0x2ec1d1;return process[_0x5c04da(0x1f5)]===_0x5c04da(0x1e8)?_0x5c04da(0x1ef):_0x5c04da(0x1f8);}export function unavailableCapabilities(){const _0x1d25a5=_0x2ec1d1;if(process[_0x1d25a5(0x1f5)]!==_0x1d25a5(0x1e8)&&process[_0x1d25a5(0x1f5)]!==_0x1d25a5(0x1f8))throw new Error(_0x1d25a5(0x1ec));return{'platform':reportedPlatform(),'architecture':process[_0x1d25a5(0x1ed)],'nodeAppVersion':nodeAppVersion,'nodeVersion':process[_0x1d25a5(0x1e7)],'metadata':{'osRelease':release(),'osVersion':version()},'codex':{'available':![]},'claudeCode':{'available':![]},'openCode':{'available':![]}};}export function detectCapabilities(_0x572f15={}){const _0x2a791c=_0x2ec1d1;if(process[_0x2a791c(0x1f5)]!==_0x2a791c(0x1e8)&&process[_0x2a791c(0x1f5)]!==_0x2a791c(0x1f8))throw new Error(_0x2a791c(0x1ec));const _0x737234=probeCodex(_0x572f15[_0x2a791c(0x1e4)]),_0xc9f82b=probeClaudeCode(_0x572f15[_0x2a791c(0x1e5)]),_0x179057=probeOpenCode(_0x572f15[_0x2a791c(0x1f3)]);return{'platform':reportedPlatform(),'architecture':process[_0x2a791c(0x1ed)],'nodeAppVersion':nodeAppVersion,'nodeVersion':process[_0x2a791c(0x1e7)],'metadata':{'osRelease':release(),'osVersion':version()},'codex':{'available':_0x737234[_0x2a791c(0x1e2)]&&_0x737234[_0x2a791c(0x1f1)],..._0x737234[_0x2a791c(0x1e7)]===undefined?{}:{'version':_0x737234[_0x2a791c(0x1e7)]}},'claudeCode':{'available':_0xc9f82b[_0x2a791c(0x1e2)]&&_0xc9f82b[_0x2a791c(0x1f1)],..._0xc9f82b[_0x2a791c(0x1e7)]===undefined?{}:{'version':_0xc9f82b[_0x2a791c(0x1e7)]}},'openCode':{'available':_0x179057[_0x2a791c(0x1e2)]&&_0x179057[_0x2a791c(0x1f1)],..._0x179057[_0x2a791c(0x1e7)]===undefined?{}:{'version':_0x179057[_0x2a791c(0x1e7)]}}};}export async function detectCapabilitiesAsync(_0x2929e1={}){const _0x47c2e4=_0x2ec1d1;if(process[_0x47c2e4(0x1f5)]!==_0x47c2e4(0x1e8)&&process[_0x47c2e4(0x1f5)]!==_0x47c2e4(0x1f8))throw new Error(_0x47c2e4(0x1ec));const [_0x345092,_0x4f72ff,_0x184093,_0x429961]=await Promise[_0x47c2e4(0x1e6)]([probeCodexAsync(_0x2929e1[_0x47c2e4(0x1e4)]),probeClaudeCodeAsync(_0x2929e1[_0x47c2e4(0x1e5)]),probeOpenCodeAsync(_0x2929e1[_0x47c2e4(0x1f3)]),detectRuntimeCommands()]);return{'platform':reportedPlatform(),'architecture':process[_0x47c2e4(0x1ed)],'nodeAppVersion':nodeAppVersion,'nodeVersion':process[_0x47c2e4(0x1e7)],'metadata':{'osRelease':release(),'osVersion':version(),'runtimeCommands':_0x429961},'codex':{'available':_0x345092[_0x47c2e4(0x1e2)]&&_0x345092[_0x47c2e4(0x1f1)],..._0x345092[_0x47c2e4(0x1e7)]===undefined?{}:{'version':_0x345092[_0x47c2e4(0x1e7)]}},'claudeCode':{'available':_0x4f72ff[_0x47c2e4(0x1e2)]&&_0x4f72ff[_0x47c2e4(0x1f1)],..._0x4f72ff[_0x47c2e4(0x1e7)]===undefined?{}:{'version':_0x4f72ff[_0x47c2e4(0x1e7)]}},'openCode':{'available':_0x184093[_0x47c2e4(0x1e2)]&&_0x184093[_0x47c2e4(0x1f1)],..._0x184093[_0x47c2e4(0x1e7)]===undefined?{}:{'version':_0x184093[_0x47c2e4(0x1e7)]}}};}
|
package/dist/claude-agent-sdk.js
CHANGED
|
@@ -1,330 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
import { createSdkMcpServer, forkSession, getSessionInfo, getSessionMessages, listSessions, query } from '@anthropic-ai/claude-agent-sdk';
|
|
3
|
-
import { tool } from '@anthropic-ai/claude-agent-sdk';
|
|
4
|
-
import { z } from 'zod';
|
|
5
|
-
import { minimalRunnerEnvironment, platformCliInvocation, runRunnerProbe } from './operational.js';
|
|
6
|
-
const nativeBindings = {
|
|
7
|
-
query,
|
|
8
|
-
listSessions,
|
|
9
|
-
getSessionInfo,
|
|
10
|
-
getSessionMessages
|
|
11
|
-
};
|
|
12
|
-
/**
|
|
13
|
-
* Adapter for the supported Agent SDK APIs only. It neither parses nor writes
|
|
14
|
-
* Claude JSONL transcripts. A caller must serialize resume operations itself.
|
|
15
|
-
*/
|
|
16
|
-
export class ClaudeAgentSdkAdapter {
|
|
17
|
-
sdk;
|
|
18
|
-
constructor(sdk = nativeBindings) {
|
|
19
|
-
this.sdk = sdk;
|
|
20
|
-
}
|
|
21
|
-
start(input) {
|
|
22
|
-
return this.startWithPrompt(input, input.prompt);
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Opens one managed SDK stream and leaves it alive for verified Channel
|
|
26
|
-
* input. This is never used for foreign CLI/VS Code sessions.
|
|
27
|
-
*/
|
|
28
|
-
startChannel(input) {
|
|
29
|
-
const channel = new ClaudeInputStream();
|
|
30
|
-
const run = this.startWithPrompt(input, channel, true);
|
|
31
|
-
const initial = channel.deliver(input.prompt, input.attachments);
|
|
32
|
-
return {
|
|
33
|
-
...run,
|
|
34
|
-
async deliver(content) {
|
|
35
|
-
if (content.length === 0)
|
|
36
|
-
throw new Error('CLAUDE_CHANNEL_MESSAGE_INVALID');
|
|
37
|
-
await channel.deliver(content);
|
|
38
|
-
},
|
|
39
|
-
cancel() {
|
|
40
|
-
channel.close();
|
|
41
|
-
run.cancel();
|
|
42
|
-
},
|
|
43
|
-
completed: initial.then(() => run.completed)
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
startWithPrompt(input, prompt, channelEnabled = false) {
|
|
47
|
-
const abortController = new AbortController();
|
|
48
|
-
const stream = this.sdk.query({
|
|
49
|
-
prompt,
|
|
50
|
-
options: {
|
|
51
|
-
cwd: input.cwd,
|
|
52
|
-
// Claude SDK defaults CLAUDE_CODE_ENTRYPOINT to sdk-ts. Keep the
|
|
53
|
-
// transcript discoverable by the same VS Code session filters used by
|
|
54
|
-
// the external Claude Code extension.
|
|
55
|
-
env: {
|
|
56
|
-
...minimalRunnerEnvironment(),
|
|
57
|
-
...input.environment,
|
|
58
|
-
CLAUDE_CODE_ENTRYPOINT: 'claude-vscode'
|
|
59
|
-
},
|
|
60
|
-
...(input.resumeSessionId === undefined ? {} : { resume: input.resumeSessionId }),
|
|
61
|
-
...(input.model === undefined || input.model === null ? {} : { model: input.model }),
|
|
62
|
-
...(isClaudeEffort(input.effort) ? { effort: input.effort } : {}),
|
|
63
|
-
permissionMode: claudePermissionMode(input.access),
|
|
64
|
-
// This is the SDK's documented API-side public summary mode. We never
|
|
65
|
-
// enable or forward raw thinking deltas to the Workbench.
|
|
66
|
-
settings: { showThinkingSummaries: true },
|
|
67
|
-
...(input.personalInstructions === undefined
|
|
68
|
-
? {}
|
|
69
|
-
: {
|
|
70
|
-
systemPrompt: {
|
|
71
|
-
type: 'preset',
|
|
72
|
-
preset: 'claude_code',
|
|
73
|
-
append: input.personalInstructions
|
|
74
|
-
}
|
|
75
|
-
}),
|
|
76
|
-
abortController,
|
|
77
|
-
canUseTool: input.onPermission,
|
|
78
|
-
...(input.mcpServers !== undefined || channelEnabled
|
|
79
|
-
? {
|
|
80
|
-
mcpServers: {
|
|
81
|
-
...(input.mcpServers ?? {}),
|
|
82
|
-
...(channelEnabled ? { myagentroam: channelMcpServer(input) } : {})
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
: {})
|
|
86
|
-
}
|
|
87
|
-
});
|
|
88
|
-
const completed = consume(stream, input.onMessage);
|
|
89
|
-
return {
|
|
90
|
-
completed,
|
|
91
|
-
async interrupt() {
|
|
92
|
-
await stream.interrupt();
|
|
93
|
-
},
|
|
94
|
-
cancel() {
|
|
95
|
-
abortController.abort();
|
|
96
|
-
stream.close();
|
|
97
|
-
}
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
listSessions(cwd) {
|
|
101
|
-
// The SDK otherwise includes all sibling git worktrees by default. A
|
|
102
|
-
// MAR Workspace must only project sessions whose native cwd belongs to
|
|
103
|
-
// that registered Workspace.
|
|
104
|
-
return this.sdk.listSessions({ dir: cwd, includeWorktrees: false });
|
|
105
|
-
}
|
|
106
|
-
readSession(sessionId, cwd) {
|
|
107
|
-
return this.sdk.getSessionMessages(sessionId, { dir: cwd });
|
|
108
|
-
}
|
|
109
|
-
async forkSession(sessionId, cwd, upToMessageId, title) {
|
|
110
|
-
const result = await (this.sdk.forkSession ?? forkSession)(sessionId, {
|
|
111
|
-
dir: cwd,
|
|
112
|
-
upToMessageId,
|
|
113
|
-
title
|
|
114
|
-
});
|
|
115
|
-
return result.sessionId;
|
|
116
|
-
}
|
|
117
|
-
sessionInfo(sessionId, cwd) {
|
|
118
|
-
return this.sdk.getSessionInfo(sessionId, { dir: cwd });
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* The SDK publishes the authoritative, session-specific command list in its
|
|
122
|
-
* first system/init record. Keep the input stream empty and stop as soon as
|
|
123
|
-
* that record arrives so discovery never submits a user prompt.
|
|
124
|
-
*/
|
|
125
|
-
async discoverSlashCommands(cwd) {
|
|
126
|
-
const abortController = new AbortController();
|
|
127
|
-
const timeout = setTimeout(() => abortController.abort(), 3_000);
|
|
128
|
-
const emptyInput = {
|
|
129
|
-
async *[Symbol.asyncIterator]() {
|
|
130
|
-
await new Promise(() => undefined);
|
|
131
|
-
yield* [];
|
|
132
|
-
}
|
|
133
|
-
};
|
|
134
|
-
const stream = this.sdk.query({
|
|
135
|
-
prompt: emptyInput,
|
|
136
|
-
options: { cwd, env: minimalRunnerEnvironment(), abortController }
|
|
137
|
-
});
|
|
138
|
-
try {
|
|
139
|
-
for await (const message of stream) {
|
|
140
|
-
const candidate = message;
|
|
141
|
-
if (candidate.type === 'system' &&
|
|
142
|
-
candidate.subtype === 'init' &&
|
|
143
|
-
Array.isArray(candidate.slash_commands)) {
|
|
144
|
-
return candidate.slash_commands.filter((value) => typeof value === 'string' && /^[A-Za-z0-9_./-]{1,128}$/.test(value));
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
return [];
|
|
148
|
-
}
|
|
149
|
-
finally {
|
|
150
|
-
clearTimeout(timeout);
|
|
151
|
-
abortController.abort();
|
|
152
|
-
stream.close();
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
function isClaudeEffort(value) {
|
|
157
|
-
return (value === 'low' ||
|
|
158
|
-
value === 'medium' ||
|
|
159
|
-
value === 'high' ||
|
|
160
|
-
value === 'xhigh' ||
|
|
161
|
-
value === 'max');
|
|
162
|
-
}
|
|
163
|
-
function claudePermissionMode(access) {
|
|
164
|
-
if (access === 'accept-edits')
|
|
165
|
-
return 'acceptEdits';
|
|
166
|
-
if (access === 'bypass')
|
|
167
|
-
return 'bypassPermissions';
|
|
168
|
-
if (access === 'plan')
|
|
169
|
-
return 'plan';
|
|
170
|
-
return 'default';
|
|
171
|
-
}
|
|
172
|
-
function channelMcpServer(input) {
|
|
173
|
-
return createSdkMcpServer({
|
|
174
|
-
name: 'myagentroam',
|
|
175
|
-
version: '0.1.4',
|
|
176
|
-
instructions: 'Use the myagentroam_channel_reply tool only to send a concise reply to the Admin Channel.',
|
|
177
|
-
alwaysLoad: true,
|
|
178
|
-
tools: [
|
|
179
|
-
tool('channel_reply', 'Send one text reply to the authorized MyAgentRoam Admin Channel.', { content: z.string().min(1).max(20_000) }, async ({ content }) => {
|
|
180
|
-
input.onChannelReply?.(content);
|
|
181
|
-
return { content: [{ type: 'text', text: 'Channel reply delivered.' }] };
|
|
182
|
-
}, { alwaysLoad: true })
|
|
183
|
-
]
|
|
184
|
-
});
|
|
185
|
-
}
|
|
186
|
-
class ClaudeInputStream {
|
|
187
|
-
queued = [];
|
|
188
|
-
waiting;
|
|
189
|
-
closed = false;
|
|
190
|
-
deliver(content, attachments = []) {
|
|
191
|
-
if (this.closed)
|
|
192
|
-
return Promise.reject(new Error('CLAUDE_CHANNEL_CLOSED'));
|
|
193
|
-
return new Promise((received) => {
|
|
194
|
-
const entry = { message: toUserMessage(content, attachments), received };
|
|
195
|
-
const waiting = this.waiting;
|
|
196
|
-
this.waiting = undefined;
|
|
197
|
-
if (waiting !== undefined) {
|
|
198
|
-
received();
|
|
199
|
-
waiting({ value: entry.message, done: false });
|
|
200
|
-
}
|
|
201
|
-
else {
|
|
202
|
-
this.queued.push(entry);
|
|
203
|
-
}
|
|
204
|
-
});
|
|
205
|
-
}
|
|
206
|
-
async next() {
|
|
207
|
-
const entry = this.queued.shift();
|
|
208
|
-
if (entry !== undefined) {
|
|
209
|
-
entry.received();
|
|
210
|
-
return { value: entry.message, done: false };
|
|
211
|
-
}
|
|
212
|
-
if (this.closed)
|
|
213
|
-
return { value: undefined, done: true };
|
|
214
|
-
return new Promise((resolve) => {
|
|
215
|
-
this.waiting = resolve;
|
|
216
|
-
});
|
|
217
|
-
}
|
|
218
|
-
[Symbol.asyncIterator]() {
|
|
219
|
-
return this;
|
|
220
|
-
}
|
|
221
|
-
close() {
|
|
222
|
-
this.closed = true;
|
|
223
|
-
const waiting = this.waiting;
|
|
224
|
-
this.waiting = undefined;
|
|
225
|
-
waiting?.({ value: undefined, done: true });
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
function toUserMessage(content, attachments = []) {
|
|
229
|
-
return {
|
|
230
|
-
type: 'user',
|
|
231
|
-
message: {
|
|
232
|
-
role: 'user',
|
|
233
|
-
content: attachments.length === 0
|
|
234
|
-
? content
|
|
235
|
-
: [
|
|
236
|
-
{ type: 'text', text: content },
|
|
237
|
-
...attachments.map((attachment) => ({
|
|
238
|
-
type: 'image',
|
|
239
|
-
source: {
|
|
240
|
-
type: 'base64',
|
|
241
|
-
media_type: attachment.mime,
|
|
242
|
-
data: attachment.dataBase64
|
|
243
|
-
}
|
|
244
|
-
}))
|
|
245
|
-
]
|
|
246
|
-
},
|
|
247
|
-
parent_tool_use_id: null,
|
|
248
|
-
shouldQuery: true
|
|
249
|
-
};
|
|
250
|
-
}
|
|
251
|
-
async function consume(stream, onMessage) {
|
|
252
|
-
for await (const message of stream)
|
|
253
|
-
onMessage(message);
|
|
254
|
-
}
|
|
255
|
-
/**
|
|
256
|
-
* Channel availability deliberately remains conservative. The CLI does not
|
|
257
|
-
* expose an API to read organization allowlists, so a successful executable
|
|
258
|
-
* probe must never be interpreted as permission to activate a channel.
|
|
259
|
-
*/
|
|
260
|
-
export function probeClaudeCode(command = 'claude') {
|
|
261
|
-
const versionInvocation = platformCliInvocation(command, ['--version']);
|
|
262
|
-
const versionResult = spawnSync(versionInvocation.command, versionInvocation.args, {
|
|
263
|
-
encoding: 'utf8',
|
|
264
|
-
timeout: 3_000
|
|
265
|
-
});
|
|
266
|
-
const version = versionResult.status === 0 ? versionResult.stdout.trim() : undefined;
|
|
267
|
-
const authInvocation = platformCliInvocation(command, ['auth', 'status', '--json']);
|
|
268
|
-
const authResult = spawnSync(authInvocation.command, authInvocation.args, {
|
|
269
|
-
encoding: 'utf8',
|
|
270
|
-
timeout: 3_000
|
|
271
|
-
});
|
|
272
|
-
let authenticated = false;
|
|
273
|
-
if (authResult.status === 0) {
|
|
274
|
-
try {
|
|
275
|
-
const parsed = JSON.parse(authResult.stdout);
|
|
276
|
-
authenticated = parsed.loggedIn === true;
|
|
277
|
-
}
|
|
278
|
-
catch {
|
|
279
|
-
authenticated = false;
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
return {
|
|
283
|
-
available: version !== undefined,
|
|
284
|
-
compatible: version !== undefined && /^2\.1\./.test(version),
|
|
285
|
-
...(version === undefined ? {} : { version }),
|
|
286
|
-
authenticated,
|
|
287
|
-
channel: {
|
|
288
|
-
researchPreview: true,
|
|
289
|
-
requiresExplicitOptIn: true,
|
|
290
|
-
organizationPolicy: 'UNKNOWN'
|
|
291
|
-
}
|
|
292
|
-
};
|
|
293
|
-
}
|
|
294
|
-
export async function probeClaudeCodeAsync(command = 'claude') {
|
|
295
|
-
const versionInvocation = platformCliInvocation(command, ['--version']);
|
|
296
|
-
const versionResult = await runRunnerProbe(versionInvocation.command, versionInvocation.args, {
|
|
297
|
-
env: minimalRunnerEnvironment(),
|
|
298
|
-
timeoutMs: 3_000
|
|
299
|
-
});
|
|
300
|
-
const version = versionResult.status === 0 ? versionResult.stdout.trim() : undefined;
|
|
301
|
-
const authInvocation = platformCliInvocation(command, ['auth', 'status', '--json']);
|
|
302
|
-
const authResult = await runRunnerProbe(authInvocation.command, authInvocation.args, {
|
|
303
|
-
env: minimalRunnerEnvironment(),
|
|
304
|
-
timeoutMs: 3_000
|
|
305
|
-
});
|
|
306
|
-
let authenticated = false;
|
|
307
|
-
if (authResult.status === 0) {
|
|
308
|
-
try {
|
|
309
|
-
const parsed = JSON.parse(authResult.stdout);
|
|
310
|
-
authenticated = parsed.loggedIn === true;
|
|
311
|
-
}
|
|
312
|
-
catch {
|
|
313
|
-
authenticated = false;
|
|
314
|
-
}
|
|
315
|
-
}
|
|
316
|
-
return {
|
|
317
|
-
available: version !== undefined,
|
|
318
|
-
compatible: version !== undefined && /^2\.1\./.test(version),
|
|
319
|
-
...(version === undefined ? {} : { version }),
|
|
320
|
-
authenticated,
|
|
321
|
-
channel: {
|
|
322
|
-
researchPreview: true,
|
|
323
|
-
requiresExplicitOptIn: true,
|
|
324
|
-
organizationPolicy: 'UNKNOWN'
|
|
325
|
-
}
|
|
326
|
-
};
|
|
327
|
-
}
|
|
328
|
-
export function denyPermission(message = 'USER_DECISION_REJECTED') {
|
|
329
|
-
return { behavior: 'deny', message };
|
|
330
|
-
}
|
|
1
|
+
/* mar-release-protected */
|
|
2
|
+
function _0x1cc8(){const _0x39357d=['yMfZzty0','C2HPzNq','BwvZC2fNzq','C3rYAw5N','vvnfuL9erunju0LptL9sruPfq1rfra','vxnLihrOzsbTEwfNzw50CM9HBv9JAgfUBMvSx3jLCgX5ihrVB2WGB25SEsb0BYbZzw5KigeGy29Uy2LZzsbYzxbSEsb0BYb0AguGqwrTAw4Gq2HHBM5LBc4','AgLNAa','Aw1Hz2u','u2vUzcbVBMuGDgv4DcbYzxbSEsb0BYb0AguGyxv0Ag9YAxPLzcbnEufNzw50uM9HBsbbzg1PBIbdAgfUBMvSlG','CMvQzwn0','yxv0Aa','Bwf4','C2rR','DgHLBG','nJa5mZa1vKfKDhPI','Bg93','DhjPBq','zM9YA1nLC3nPB24','y2XVC2vK','CgvYC29UywXjBNn0CNvJDgLVBNm','y3DK','y2HHBM5LBf9YzxbSEq','C3rHCNq','DxrMoa','CxvLDwvK','oduXmdGWr0vcyMP3','ywnJzxb0rwrPDhm','zgvSAxzLCG','Aw5PDa','zgvUEq','BgvUz3rO','Aw50zxjYDxb0','q2HHBM5LBcbYzxbSEsbKzwXPDMvYzwqU','ntu4whbUEhHj','DhLWzq','mJa3ndfutfPpsxm','CMvHzfnLC3nPB24','DgvZDa','CxvLCNK','B25dAgfUBMvSuMvWBhK','ls12zxjZAw9U','q0Xbvurfx0niqu5oruXFq0Xpu0ve','BxLHz2vUDhjVyw0','ChjVBxb0','CgfYC2u','mZmYrLvbEuXK','y29TBwfUza','ywjVCNq','CMvJzwL2zwq','BgLZDfnLC3nPB25Z','zgf0yujHC2u2na','y2XHDwrLlxzZy29Kzq','mtq1nJiWAezSDKLw','Bg9Nz2vKsw4','BwnWu2vYDMvYCW','C3rHCNrdAgfUBMvS','C3rKB3v0','vu5ltK9xtG','Bw9KzwW','BwLTzq','B25nzxnZywDL','C2vZC2LVBKLK','EgHPz2G','zgLZy292zxjtBgfZAenVBw1HBMrZ','Dgv4Da','BMv4Da','D2fPDgLUzW','C3vIDhLWzq','yNLWyxnZ','y2XHDwrL','mZi4ntL4CwzNqLO','nfDoquDJua','z2v0u2vZC2LVBKLUzM8','y2XVC2u','ywnJzxnZ','y2XHDwrLx2nVzgu','ntqYn2vPrMzqsG','yxr0ywnOBwvUDhm','q0Xbvurfx0niqu5oruXFtuvtu0fhrv9jtLzbteLe','z2v0u2vZC2LVBK1LC3nHz2vZ','yNLWyxnZugvYBwLZC2LVBNm','BwLU','C3LZDgvT','mc4XlJq','CMvZDw1Lu2vZC2LVBKLK','zwzMB3j0','ChvZAa','zMLSDgvY','y2fUy2vS','ChjLC2v0','zgvMyxvSDa','ywnJzxb0lwvKAxrZ','C2XHC2HFy29TBwfUzhm','C3rHDhvZ','CgXHBG','yxjNCW','BwfW','zw52AxjVBM1LBNq','C3rHCNrxAxrOuhjVBxb0','AxnbCNjHEq','B25qzxjTAxnZAw9U','yxn5BMnjDgvYyxrVCG','oteWD29zshnr','ls1QC29U','DxnLCG','mtaZmtiXBK53vMDy','y29TCgXLDgvK','mJK3zeDsvvf6','C2vZC2LVBKLUzM8','BwvKAxvT'];_0x1cc8=function(){return _0x39357d;};return _0x1cc8();}const _0x386de9=_0x11a0;(function(_0x3f361f,_0x43dfc4){const _0x12d3c2=_0x11a0,_0x999816=_0x3f361f();while(!![]){try{const _0x313f17=parseInt(_0x12d3c2(0x19f))/(-0x1be*-0x8+-0x16ee+0x8ff)+parseInt(_0x12d3c2(0x163))/(-0x19d6+-0x856+0x222e)*(-parseInt(_0x12d3c2(0x182))/(0x11*-0xc2+-0xc31*-0x1+-0x1*-0xb4))+-parseInt(_0x12d3c2(0x17d))/(0xf18+-0x111e+0x20a)*(parseInt(_0x12d3c2(0x144))/(-0x22e2+0x1d80+-0x1cd*-0x3))+-parseInt(_0x12d3c2(0x157))/(-0x1f9d+-0x1d57*-0x1+-0x62*-0x6)*(parseInt(_0x12d3c2(0x159))/(-0x9d6+0x1ec0+-0x14e3))+parseInt(_0x12d3c2(0x14f))/(0x1efa+0x1fc9+-0x3ebb)+-parseInt(_0x12d3c2(0x17c))/(-0x985+-0x241*-0x2+0x50c)*(-parseInt(_0x12d3c2(0x19c))/(0x1be9+-0x618+0xdf*-0x19))+parseInt(_0x12d3c2(0x133))/(0x866+0x329*0x7+0x1*-0x1e7a)*(parseInt(_0x12d3c2(0x16a))/(0x587+0xb42*-0x1+-0x1ed*-0x3));if(_0x313f17===_0x43dfc4)break;else _0x999816['push'](_0x999816['shift']());}catch(_0x20a2a5){_0x999816['push'](_0x999816['shift']());}}}(_0x1cc8,0x36452+-0x18fea+0xca36));function _0x11a0(_0x161510,_0x24695d){_0x161510=_0x161510-(-0x4f2+-0x7df+-0xe03*-0x1);const _0x2fb14e=_0x1cc8();let _0x541569=_0x2fb14e[_0x161510];if(_0x11a0['IouYwe']===undefined){var _0x122311=function(_0x51d80a){const _0xd784da='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4ab552='',_0x4a082b='';for(let _0x67b1e7=-0x2*0xaaf+0x1*0x14bc+0x3*0x36,_0x54d803,_0x15fcfc,_0x46fb6b=0x542*0x7+0x24e2+-0x49b0;_0x15fcfc=_0x51d80a['charAt'](_0x46fb6b++);~_0x15fcfc&&(_0x54d803=_0x67b1e7%(-0x1259+0xd49+0x4*0x145)?_0x54d803*(-0xeb*0x6+-0x25ac+0x2b6e)+_0x15fcfc:_0x15fcfc,_0x67b1e7++%(-0x1f33+0x109*0x1d+0x132))?_0x4ab552+=String['fromCharCode'](0x1643+-0x1*-0x2b1+0x17f5*-0x1&_0x54d803>>(-(0x60c*-0x4+-0x391*0x2+0x1f54)*_0x67b1e7&0x2e*0x38+0xcf8+0x1702*-0x1)):0xde9+0xd03+-0x1*0x1aec){_0x15fcfc=_0xd784da['indexOf'](_0x15fcfc);}for(let _0x3883d6=0x11d9+0x1d4c+-0x2f25,_0x37c937=_0x4ab552['length'];_0x3883d6<_0x37c937;_0x3883d6++){_0x4a082b+='%'+('00'+_0x4ab552['charCodeAt'](_0x3883d6)['toString'](-0x10c9+-0x1741+0xb1*0x3a))['slice'](-(0x1*-0xc9a+-0x24*0x2f+0x7b*0x28));}return decodeURIComponent(_0x4a082b);};_0x11a0['bdGtdT']=_0x122311,_0x11a0['pNniYH']={},_0x11a0['IouYwe']=!![];}const _0x50bbc9=_0x2fb14e[-0xe27*-0x1+0x23b+-0x576*0x3];_0x11a0['MCiEvw']!==_0x50bbc9&&(_0x11a0['pNniYH']={},_0x11a0['MCiEvw']=_0x50bbc9);const _0x460b6b=_0x11a0['pNniYH'][_0x161510];return _0x460b6b===undefined?(_0x541569=_0x11a0['bdGtdT'](_0x541569),_0x11a0['pNniYH'][_0x161510]=_0x541569):_0x541569=_0x460b6b,_0x541569;}import{spawnSync}from'node:child_process';import{createSdkMcpServer,forkSession,getSessionInfo,getSessionMessages,listSessions,query}from'@anthropic-ai/claude-agent-sdk';import{tool}from'@anthropic-ai/claude-agent-sdk';import{z}from'zod';import{minimalRunnerEnvironment,platformCliInvocation,runRunnerProbe}from'./operational.js';const nativeBindings={'query':query,'listSessions':listSessions,'getSessionInfo':getSessionInfo,'getSessionMessages':getSessionMessages};export class ClaudeAgentSdkAdapter{[_0x386de9(0x142)];constructor(_0x1b337b=nativeBindings){const _0x2ff21c=_0x386de9;this[_0x2ff21c(0x142)]=_0x1b337b;}[_0x386de9(0x14c)](_0x134f04){const _0x43bc36=_0x386de9;return this[_0x43bc36(0x198)](_0x134f04,_0x134f04[_0x43bc36(0x161)]);}[_0x386de9(0x16d)](_0x2f66cf){const _0x39a3c9=_0x386de9,_0x2cfd8a=new ClaudeInputStream(),_0x4db3d7=this[_0x39a3c9(0x198)](_0x2f66cf,_0x2cfd8a,!![]),_0x4e01b2=_0x2cfd8a[_0x39a3c9(0x151)](_0x2f66cf[_0x39a3c9(0x161)],_0x2f66cf[_0x39a3c9(0x183)]);return{..._0x4db3d7,async 'deliver'(_0x204ea0){const _0x2dacd8=_0x39a3c9;if(_0x204ea0[_0x2dacd8(0x154)]===0x9*0x36c+0x314*0x1+0x43c*-0x8)throw new Error(_0x2dacd8(0x184));await _0x2cfd8a[_0x2dacd8(0x151)](_0x204ea0);},'cancel'(){const _0x248e27=_0x39a3c9;_0x2cfd8a[_0x248e27(0x17f)](),_0x4db3d7[_0x248e27(0x18e)]();},'completed':_0x4e01b2[_0x39a3c9(0x143)](()=>_0x4db3d7[_0x39a3c9(0x132)])};}[_0x386de9(0x198)](_0x279f6b,_0x507b85,_0x316adf=![]){const _0x52d1ce=_0x386de9,_0x30126f=new AbortController(),_0x17e92d=this[_0x52d1ce(0x142)][_0x52d1ce(0x15c)]({'prompt':_0x507b85,'options':{'cwd':_0x279f6b[_0x52d1ce(0x14a)],'env':{...minimalRunnerEnvironment(),..._0x279f6b[_0x52d1ce(0x197)],'CLAUDE_CODE_ENTRYPOINT':_0x52d1ce(0x169)},..._0x279f6b[_0x52d1ce(0x18a)]===undefined?{}:{'resume':_0x279f6b[_0x52d1ce(0x18a)]},..._0x279f6b[_0x52d1ce(0x170)]===undefined||_0x279f6b[_0x52d1ce(0x170)]===null?{}:{'model':_0x279f6b[_0x52d1ce(0x170)]},...isClaudeEffort(_0x279f6b[_0x52d1ce(0x18b)])?{'effort':_0x279f6b[_0x52d1ce(0x18b)]}:{},'permissionMode':claudePermissionMode(_0x279f6b[_0x52d1ce(0x180)]),'settings':{'showThinkingSummaries':!![]},..._0x279f6b[_0x52d1ce(0x149)]===undefined?{}:{'systemPrompt':{'type':_0x52d1ce(0x18f),'preset':_0x52d1ce(0x181),'append':_0x279f6b[_0x52d1ce(0x149)]}},'abortController':_0x30126f,'canUseTool':_0x279f6b[_0x52d1ce(0x19a)],..._0x279f6b[_0x52d1ce(0x16c)]!==undefined||_0x316adf?{'mcpServers':{..._0x279f6b[_0x52d1ce(0x16c)]??{},..._0x316adf?{'myagentroam':channelMcpServer(_0x279f6b)}:{}}}:{}}}),_0x541ade=consume(_0x17e92d,_0x279f6b[_0x52d1ce(0x172)]);return{'completed':_0x541ade,async 'interrupt'(){const _0x16559b=_0x52d1ce;await _0x17e92d[_0x16559b(0x155)]();},'cancel'(){const _0x3e3420=_0x52d1ce;_0x30126f[_0x3e3420(0x165)](),_0x17e92d[_0x3e3420(0x17f)]();}};}[_0x386de9(0x167)](_0x4b9143){const _0x537f5f=_0x386de9;return this[_0x537f5f(0x142)][_0x537f5f(0x167)]({'dir':_0x4b9143,'includeWorktrees':![]});}[_0x386de9(0x15a)](_0x40f679,_0x3268d1){const _0x5a3a12=_0x386de9;return this[_0x5a3a12(0x142)][_0x5a3a12(0x185)](_0x40f679,{'dir':_0x3268d1});}async[_0x386de9(0x147)](_0x57a12d,_0xbf86cf,_0x65e3b9,_0x5dd291){const _0x148a30=_0x386de9,_0xa1f86f=await(this[_0x148a30(0x142)][_0x148a30(0x147)]??forkSession)(_0x57a12d,{'dir':_0xbf86cf,'upToMessageId':_0x65e3b9,'title':_0x5dd291});return _0xa1f86f[_0x148a30(0x173)];}[_0x386de9(0x134)](_0x161510,_0x24695d){const _0x3df077=_0x386de9;return this[_0x3df077(0x142)][_0x3df077(0x17e)](_0x161510,{'dir':_0x24695d});}async[_0x386de9(0x175)](_0x2fb14e){const _0x247c1f=_0x386de9,_0x541569=new AbortController(),_0x122311=setTimeout(()=>_0x541569[_0x247c1f(0x165)](),-0x5e3+-0x265a*0x1+0x37f5),_0x50bbc9={async*[Symbol[_0x247c1f(0x19b)]](){await new Promise(()=>undefined),yield*[];}},_0x460b6b=this[_0x247c1f(0x142)][_0x247c1f(0x15c)]({'prompt':_0x50bbc9,'options':{'cwd':_0x2fb14e,'env':minimalRunnerEnvironment(),'abortController':_0x541569}});try{for await(const _0x51d80a of _0x460b6b){const _0xd784da=_0x51d80a;if(_0xd784da[_0x247c1f(0x158)]===_0x247c1f(0x188)&&_0xd784da[_0x247c1f(0x179)]===_0x247c1f(0x152)&&Array[_0x247c1f(0x199)](_0xd784da[_0x247c1f(0x192)]))return _0xd784da[_0x247c1f(0x192)][_0x247c1f(0x18d)](_0x4ab552=>typeof _0x4ab552===_0x247c1f(0x139)&&/^[A-Za-z0-9_./-]{1,128}$/[_0x247c1f(0x15b)](_0x4ab552));}return[];}finally{clearTimeout(_0x122311),_0x541569[_0x247c1f(0x165)](),_0x460b6b[_0x247c1f(0x17f)]();}}}function isClaudeEffort(_0x4a082b){const _0x3239e6=_0x386de9;return _0x4a082b===_0x3239e6(0x145)||_0x4a082b===_0x3239e6(0x135)||_0x4a082b===_0x3239e6(0x13c)||_0x4a082b===_0x3239e6(0x174)||_0x4a082b===_0x3239e6(0x141);}function claudePermissionMode(_0x67b1e7){const _0x3e2f1b=_0x386de9;if(_0x67b1e7===_0x3e2f1b(0x191))return _0x3e2f1b(0x150);if(_0x67b1e7===_0x3e2f1b(0x17a))return _0x3e2f1b(0x186);if(_0x67b1e7===_0x3e2f1b(0x194))return _0x3e2f1b(0x194);return _0x3e2f1b(0x190);}function channelMcpServer(_0x54d803){const _0x16d3bc=_0x386de9;return createSdkMcpServer({'name':_0x16d3bc(0x160),'version':_0x16d3bc(0x189),'instructions':_0x16d3bc(0x13b),'alwaysLoad':!![],'tools':[tool(_0x16d3bc(0x14b),_0x16d3bc(0x13e),{'content':z[_0x16d3bc(0x139)]()[_0x16d3bc(0x187)](0x8ba+0x517+-0xdd*0x10)[_0x16d3bc(0x141)](-0x13dc+-0x3*0x149+0x383*0x1d)},async({content:_0x15fcfc})=>{const _0x3603bb=_0x16d3bc;return _0x54d803[_0x3603bb(0x15d)]?.(_0x15fcfc),{'content':[{'type':_0x3603bb(0x176),'text':_0x3603bb(0x156)}]};},{'alwaysLoad':!![]})]});}class ClaudeInputStream{[_0x386de9(0x14e)]=[];[_0x386de9(0x178)];[_0x386de9(0x148)]=![];[_0x386de9(0x151)](_0x46fb6b,_0x3883d6=[]){const _0x113fc2=_0x386de9;if(this[_0x113fc2(0x148)])return Promise[_0x113fc2(0x13f)](new Error(_0x113fc2(0x15f)));return new Promise(_0x37c937=>{const _0xaae7e2=_0x113fc2,_0x5b849d={'message':toUserMessage(_0x46fb6b,_0x3883d6),'received':_0x37c937},_0x37fe54=this[_0xaae7e2(0x178)];this[_0xaae7e2(0x178)]=undefined,_0x37fe54!==undefined?(_0x37c937(),_0x37fe54({'value':_0x5b849d[_0xaae7e2(0x138)],'done':![]})):this[_0xaae7e2(0x14e)][_0xaae7e2(0x18c)](_0x5b849d);});}async[_0x386de9(0x177)](){const _0x4b552d=_0x386de9,_0x2d9d31=this[_0x4b552d(0x14e)][_0x4b552d(0x137)]();if(_0x2d9d31!==undefined)return _0x2d9d31[_0x4b552d(0x166)](),{'value':_0x2d9d31[_0x4b552d(0x138)],'done':![]};if(this[_0x4b552d(0x148)])return{'value':undefined,'done':!![]};return new Promise(_0x4f4de5=>{const _0x496a75=_0x4b552d;this[_0x496a75(0x178)]=_0x4f4de5;});}[Symbol[_0x386de9(0x19b)]](){return this;}[_0x386de9(0x17f)](){const _0x1197b6=_0x386de9;this[_0x1197b6(0x148)]=!![];const _0x2dfce3=this[_0x1197b6(0x178)];this[_0x1197b6(0x178)]=undefined,_0x2dfce3?.({'value':undefined,'done':!![]});}}function toUserMessage(_0x26dcdc,_0x413427=[]){const _0x3c2ced=_0x386de9;return{'type':_0x3c2ced(0x19e),'message':{'role':_0x3c2ced(0x19e),'content':_0x413427[_0x3c2ced(0x154)]===-0x41*0x5b+-0x1*-0x1643+0x18*0x9?_0x26dcdc:[{'type':_0x3c2ced(0x176),'text':_0x26dcdc},..._0x413427[_0x3c2ced(0x196)](_0x4ed045=>({'type':_0x3c2ced(0x13d),'source':{'type':_0x3c2ced(0x136),'media_type':_0x4ed045[_0x3c2ced(0x171)],'data':_0x4ed045[_0x3c2ced(0x168)]}}))]},'parent_tool_use_id':null,'shouldQuery':!![]};}async function consume(_0xc8a35a,_0x3140eb){for await(const _0xe46f8a of _0xc8a35a)_0x3140eb(_0xe46f8a);}export function probeClaudeCode(_0x5a1797=_0x386de9(0x17b)){const _0x35f050=_0x386de9,_0x35523c=platformCliInvocation(_0x5a1797,[_0x35f050(0x15e)]),_0x101a3b=spawnSync(_0x35523c[_0x35f050(0x164)],_0x35523c[_0x35f050(0x195)],{'encoding':_0x35f050(0x14d),'timeout':0xbb8}),_0x1a881e=_0x101a3b[_0x35f050(0x193)]===0x60c*-0x4+-0x391*0x2+0x1f52?_0x101a3b[_0x35f050(0x16e)][_0x35f050(0x146)]():undefined,_0x1ed0f4=platformCliInvocation(_0x5a1797,[_0x35f050(0x140),_0x35f050(0x193),_0x35f050(0x19d)]),_0x447044=spawnSync(_0x1ed0f4[_0x35f050(0x164)],_0x1ed0f4[_0x35f050(0x195)],{'encoding':_0x35f050(0x14d),'timeout':0xbb8});let _0x421b28=![];if(_0x447044[_0x35f050(0x193)]===0x2e*0x38+0xcf8+0x1708*-0x1)try{const _0x25e657=JSON[_0x35f050(0x162)](_0x447044[_0x35f050(0x16e)]);_0x421b28=_0x25e657[_0x35f050(0x16b)]===!![];}catch{_0x421b28=![];}return{'available':_0x1a881e!==undefined,'compatible':_0x1a881e!==undefined&&/^2\.1\./[_0x35f050(0x15b)](_0x1a881e),..._0x1a881e===undefined?{}:{'version':_0x1a881e},'authenticated':_0x421b28,'channel':{'researchPreview':!![],'requiresExplicitOptIn':!![],'organizationPolicy':_0x35f050(0x16f)}};}export async function probeClaudeCodeAsync(_0x1ff7b2=_0x386de9(0x17b)){const _0x254e05=_0x386de9,_0x34864e=platformCliInvocation(_0x1ff7b2,[_0x254e05(0x15e)]),_0x224a61=await runRunnerProbe(_0x34864e[_0x254e05(0x164)],_0x34864e[_0x254e05(0x195)],{'env':minimalRunnerEnvironment(),'timeoutMs':0xbb8}),_0xd25bff=_0x224a61[_0x254e05(0x193)]===0xde9+0xd03+-0x1*0x1aec?_0x224a61[_0x254e05(0x16e)][_0x254e05(0x146)]():undefined,_0x53f4c2=platformCliInvocation(_0x1ff7b2,[_0x254e05(0x140),_0x254e05(0x193),_0x254e05(0x19d)]),_0x2f5422=await runRunnerProbe(_0x53f4c2[_0x254e05(0x164)],_0x53f4c2[_0x254e05(0x195)],{'env':minimalRunnerEnvironment(),'timeoutMs':0xbb8});let _0x51f892=![];if(_0x2f5422[_0x254e05(0x193)]===0x11d9+0x1d4c+-0x2f25)try{const _0x271732=JSON[_0x254e05(0x162)](_0x2f5422[_0x254e05(0x16e)]);_0x51f892=_0x271732[_0x254e05(0x16b)]===!![];}catch{_0x51f892=![];}return{'available':_0xd25bff!==undefined,'compatible':_0xd25bff!==undefined&&/^2\.1\./[_0x254e05(0x15b)](_0xd25bff),..._0xd25bff===undefined?{}:{'version':_0xd25bff},'authenticated':_0x51f892,'channel':{'researchPreview':!![],'requiresExplicitOptIn':!![],'organizationPolicy':_0x254e05(0x16f)}};}export function denyPermission(_0x51a918=_0x386de9(0x13a)){const _0x1f9111=_0x386de9;return{'behavior':_0x1f9111(0x153),'message':_0x51a918};}
|
package/dist/claude-channel.js
CHANGED
|
@@ -1,44 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
* Per-session authorization and receipt bookkeeping for a Channel MCP plugin.
|
|
4
|
-
* A transport may acknowledge only that it wrote an event; callers must wait
|
|
5
|
-
* for acknowledge() before displaying a steering success.
|
|
6
|
-
*/
|
|
7
|
-
export class ClaudeChannelGate {
|
|
8
|
-
sessionId;
|
|
9
|
-
token;
|
|
10
|
-
expiresAt;
|
|
11
|
-
now;
|
|
12
|
-
allowedSenders;
|
|
13
|
-
deliveries = new Map();
|
|
14
|
-
constructor(sessionId, token = randomUUID(), senders = ['admin'], expiresAt = Date.now() + 10 * 60_000, now = Date.now) {
|
|
15
|
-
this.sessionId = sessionId;
|
|
16
|
-
this.token = token;
|
|
17
|
-
this.expiresAt = expiresAt;
|
|
18
|
-
this.now = now;
|
|
19
|
-
this.allowedSenders = new Set(senders);
|
|
20
|
-
}
|
|
21
|
-
accept(message) {
|
|
22
|
-
if (message.token !== this.token ||
|
|
23
|
-
!this.allowedSenders.has(message.senderId) ||
|
|
24
|
-
this.now() >= this.expiresAt ||
|
|
25
|
-
message.content.length === 0) {
|
|
26
|
-
return 'REJECTED';
|
|
27
|
-
}
|
|
28
|
-
const previous = this.deliveries.get(message.id);
|
|
29
|
-
if (previous !== undefined)
|
|
30
|
-
return previous;
|
|
31
|
-
this.deliveries.set(message.id, 'PENDING_RECEIPT');
|
|
32
|
-
return 'PENDING_RECEIPT';
|
|
33
|
-
}
|
|
34
|
-
acknowledge(receipt) {
|
|
35
|
-
const previous = this.deliveries.get(receipt.messageId);
|
|
36
|
-
if (previous !== 'PENDING_RECEIPT')
|
|
37
|
-
return 'REJECTED';
|
|
38
|
-
this.deliveries.set(receipt.messageId, receipt.result);
|
|
39
|
-
return receipt.result;
|
|
40
|
-
}
|
|
41
|
-
delivery(messageId) {
|
|
42
|
-
return this.deliveries.get(messageId);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
1
|
+
/* mar-release-protected */
|
|
2
|
+
function _0x1ab8(){const _0x1cffdd=['z2v0','ywnRBM93BgvKz2u','BwvZC2fNzuLK','CMvZDwX0','BgvUz3rO','uevoreLor19srunfsvbu','uKvkrunuruq','mtKWveTPDe16','y29UDgvUDa','C2vZC2LVBKLK','Dg9Rzw4','nZqXmZyXzwvhEeft','ndjXDe9xAeC','BM93','zgvSAxzLCMLLCW','mtG0mJy0zNzsAgHT','ywXSB3DLzfnLBMrLCNm','ywnJzxb0','zgvSAxzLCNK','zxHWAxjLC0f0','nJK2nJLUA1LZz2G','C2vUzgvYswq','AgfZ','C2v0','mteWodmYyNzYuhDU','n2Dxz1z6vG','ndu0otiXmhPwrfDXvq','mtGWnta3mgHlCLjszW','ywrTAw4','mJyXnZG3mM5YD3ztvW'];_0x1ab8=function(){return _0x1cffdd;};return _0x1ab8();}function _0xd6b6(_0x4fed3f,_0x4f5223){_0x4fed3f=_0x4fed3f-(-0x1cf5+-0x1120+0x2f41);const _0xbcc4ed=_0x1ab8();let _0xc8f83e=_0xbcc4ed[_0x4fed3f];if(_0xd6b6['gXfTNQ']===undefined){var _0x583e93=function(_0x2de1ae){const _0x573fb2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x17fab8='',_0x205cfb='';for(let _0x2970eb=0x1148+0x260a+-0xc2*0x49,_0x27bdb2,_0x522900,_0x5996ea=-0x9*-0x2bf+-0xd*-0x1ae+-0x1*0x2e8d;_0x522900=_0x2de1ae['charAt'](_0x5996ea++);~_0x522900&&(_0x27bdb2=_0x2970eb%(0x1331+0x9d*0x2f+-0x3000)?_0x27bdb2*(0x154c+0x1825*0x1+-0x17*0x1f7)+_0x522900:_0x522900,_0x2970eb++%(-0x11e1+0x1*0x204a+-0xe65))?_0x17fab8+=String['fromCharCode'](-0x12*-0x142+0x6a2+0x96d*-0x3&_0x27bdb2>>(-(-0xc*-0x28+-0x2507+0x2329*0x1)*_0x2970eb&-0xb1d+0x1*-0x108+0x1bd*0x7)):-0x5*0x682+0x68c*-0x5+0x4146){_0x522900=_0x573fb2['indexOf'](_0x522900);}for(let _0x1927c3=-0x1*0x743+-0xce4+0x1427,_0x1388a5=_0x17fab8['length'];_0x1927c3<_0x1388a5;_0x1927c3++){_0x205cfb+='%'+('00'+_0x17fab8['charCodeAt'](_0x1927c3)['toString'](-0x92f*0x1+-0x151b*-0x1+-0xbdc))['slice'](-(0x1adf+-0x1c54+0x177));}return decodeURIComponent(_0x205cfb);};_0xd6b6['qzyVbF']=_0x583e93,_0xd6b6['yJdOjF']={},_0xd6b6['gXfTNQ']=!![];}const _0xcaee30=_0xbcc4ed[-0x1*-0x20a1+-0x24b*-0x2+-0x7*0x551];_0xd6b6['vtvgKm']!==_0xcaee30&&(_0xd6b6['yJdOjF']={},_0xd6b6['vtvgKm']=_0xcaee30);const _0x570e32=_0xd6b6['yJdOjF'][_0x4fed3f];return _0x570e32===undefined?(_0xc8f83e=_0xd6b6['qzyVbF'](_0xc8f83e),_0xd6b6['yJdOjF'][_0x4fed3f]=_0xc8f83e):_0xc8f83e=_0x570e32,_0xc8f83e;}const _0x28caee=_0xd6b6;(function(_0x1cab10,_0xee87b2){const _0x158448=_0xd6b6,_0x4e2cf3=_0x1cab10();while(!![]){try{const _0x397812=parseInt(_0x158448(0x131))/(-0x8b8+0x12b*0x19+-0x147a)+parseInt(_0x158448(0x13e))/(-0x9*0x26a+0x26d7+0x97*-0x1d)*(parseInt(_0x158448(0x132))/(-0x10b0*-0x1+-0x573+-0xb3a))+parseInt(_0x158448(0x135))/(0x65*0x2b+0x267e+-0x3771)+-parseInt(_0x158448(0x140))/(0x1c91+0x1*0x1659+-0x2b*0x12f)+parseInt(_0x158448(0x141))/(0x26ca*-0x1+0x1*-0x1ccc+0x4*0x10e7)+parseInt(_0x158448(0x13f))/(-0x1bcd*-0x1+0x15f*-0x19+-0x25*-0x2d)*(-parseInt(_0x158448(0x143))/(0x1d0a+-0x1*0xb95+0x116d*-0x1))+parseInt(_0x158448(0x13a))/(0xc13+0x1f*-0xb1+-0xd*-0xb9)*(-parseInt(_0x158448(0x12d))/(-0x7*0x2c5+0x23f8+-0x108b));if(_0x397812===_0xee87b2)break;else _0x4e2cf3['push'](_0x4e2cf3['shift']());}catch(_0x6ed84c){_0x4e2cf3['push'](_0x4e2cf3['shift']());}}}(_0x1ab8,0x1*-0xdc708+-0x816e+-0x4523f*-0x5));import{randomUUID}from'node:crypto';export class ClaudeChannelGate{[_0x28caee(0x12f)];[_0x28caee(0x130)];[_0x28caee(0x139)];[_0x28caee(0x133)];[_0x28caee(0x136)];[_0x28caee(0x134)]=new Map();constructor(_0x19dd67,_0x571995=randomUUID(),_0x1b6122=[_0x28caee(0x142)],_0x4cef95=Date[_0x28caee(0x133)]()+(0x25*-0xc5+0x18b7+-0x9*-0x6c)*(0x2152*0xc+-0x38eb+0x1d7*-0x3b),_0x37c935=Date[_0x28caee(0x133)]){const _0x4e2095=_0x28caee;this[_0x4e2095(0x12f)]=_0x19dd67,this[_0x4e2095(0x130)]=_0x571995,this[_0x4e2095(0x139)]=_0x4cef95,this[_0x4e2095(0x133)]=_0x37c935,this[_0x4e2095(0x136)]=new Set(_0x1b6122);}[_0x28caee(0x137)](_0x19be31){const _0x33205d=_0x28caee;if(_0x19be31[_0x33205d(0x130)]!==this[_0x33205d(0x130)]||!this[_0x33205d(0x136)][_0x33205d(0x13c)](_0x19be31[_0x33205d(0x13b)])||this[_0x33205d(0x133)]()>=this[_0x33205d(0x139)]||_0x19be31[_0x33205d(0x12e)][_0x33205d(0x148)]===-0x2545*0x1+0x154c*0x1+-0x1d*-0x8d)return _0x33205d(0x12c);const _0x4b52b4=this[_0x33205d(0x134)][_0x33205d(0x144)](_0x19be31['id']);if(_0x4b52b4!==undefined)return _0x4b52b4;return this[_0x33205d(0x134)][_0x33205d(0x13d)](_0x19be31['id'],_0x33205d(0x149)),_0x33205d(0x149);}[_0x28caee(0x145)](_0x37c841){const _0x2b9067=_0x28caee,_0x4fb39d=this[_0x2b9067(0x134)][_0x2b9067(0x144)](_0x37c841[_0x2b9067(0x146)]);if(_0x4fb39d!==_0x2b9067(0x149))return _0x2b9067(0x12c);return this[_0x2b9067(0x134)][_0x2b9067(0x13d)](_0x37c841[_0x2b9067(0x146)],_0x37c841[_0x2b9067(0x147)]),_0x37c841[_0x2b9067(0x147)];}[_0x28caee(0x138)](_0x228c08){const _0x2b46f9=_0x28caee;return this[_0x2b46f9(0x134)][_0x2b46f9(0x144)](_0x228c08);}}
|