@myagentroam/node 0.9.9 → 0.9.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. package/dist/capabilities.js +2 -92
  2. package/dist/claude-agent-sdk.js +2 -330
  3. package/dist/claude-channel.js +2 -44
  4. package/dist/codex-app-server.js +2 -503
  5. package/dist/config.js +2 -56
  6. package/dist/connector/node-connector-options.js +2 -1
  7. package/dist/connector/node-operation-router.js +2 -22
  8. package/dist/connector.js +2 -845
  9. package/dist/control-outbound-scheduler.js +2 -154
  10. package/dist/database.js +2 -1418
  11. package/dist/event-buffer.js +2 -19
  12. package/dist/fake-runner.js +2 -129
  13. package/dist/health.js +2 -3
  14. package/dist/main.js +2 -54
  15. package/dist/migrations/v001.js +3 -144
  16. package/dist/migrations/v002.js +2 -143
  17. package/dist/migrations/v003.js +2 -44
  18. package/dist/migrations/v004.js +34 -30
  19. package/dist/native-jsonl-reader.js +2 -186
  20. package/dist/native-session-history.js +2 -1119
  21. package/dist/opencode-runtime.js +2 -80
  22. package/dist/opencode-server.js +2 -263
  23. package/dist/operational.js +2 -122
  24. package/dist/process-tree.js +2 -18
  25. package/dist/rotating-log.js +2 -67
  26. package/dist/runner/abstract-runner.js +2 -232
  27. package/dist/runner/claude/managed-run-controller.js +2 -345
  28. package/dist/runner/claude-code-runner.js +2 -303
  29. package/dist/runner/codex/composer-image-markers.js +2 -0
  30. package/dist/runner/codex/conversation-parser.js +2 -861
  31. package/dist/runner/codex/managed-run-controller.js +2 -460
  32. package/dist/runner/codex-runner.js +2 -628
  33. package/dist/runner/fake-test-runner.js +2 -47
  34. package/dist/runner/opencode/conversation-parser.js +2 -221
  35. package/dist/runner/opencode/managed-run-controller.js +2 -537
  36. package/dist/runner/opencode-runner.js +2 -448
  37. package/dist/runner/runner-registry.js +2 -90
  38. package/dist/runner-command-engine.js +2 -70
  39. package/dist/runner-profiles.js +2 -215
  40. package/dist/runner-usage.js +2 -190
  41. package/dist/runtime-command-detector.js +2 -73
  42. package/dist/runtime-state.js +2 -982
  43. package/dist/service/attachment-domain-state.js +2 -7
  44. package/dist/service/conversation-history-service.js +2 -457
  45. package/dist/service/conversation-segment-service.js +2 -162
  46. package/dist/service/external-session-resume-service.js +2 -118
  47. package/dist/service/fake-managed-run-service.js +2 -60
  48. package/dist/service/managed-runner-session-service.js +2 -35
  49. package/dist/service/mcp-installation-verifier.js +2 -87
  50. package/dist/service/mcp-node-operation-service.js +2 -90
  51. package/dist/service/mcp-package-installer.js +2 -136
  52. package/dist/service/native-session-projection-service.js +2 -280
  53. package/dist/service/native-session-watch-service.js +2 -383
  54. package/dist/service/node-connection-lifecycle-service.js +2 -84
  55. package/dist/service/node-control-channel.js +2 -85
  56. package/dist/service/node-control-message-service.js +2 -107
  57. package/dist/service/node-request-service.js +2 -52
  58. package/dist/service/node-run-event-bridge.js +2 -83
  59. package/dist/service/node-terminal-channel.js +2 -182
  60. package/dist/service/node-upgrade-coordinator.js +2 -137
  61. package/dist/service/node-workspace-coordinator.js +2 -70
  62. package/dist/service/recent-run-projection-service.js +2 -78
  63. package/dist/service/run-attachment-service.js +2 -194
  64. package/dist/service/run-domain-state.js +2 -4
  65. package/dist/service/run-event-service.js +2 -193
  66. package/dist/service/run-workbench-service.js +2 -104
  67. package/dist/service/runner-channel-message-service.js +2 -20
  68. package/dist/service/runner-interaction-service.js +2 -243
  69. package/dist/service/runner-service.js +2 -71
  70. package/dist/service/session-catalog-service.js +2 -224
  71. package/dist/service/session-command-service.js +2 -76
  72. package/dist/service/session-context-service.js +2 -101
  73. package/dist/service/session-domain-state.js +2 -9
  74. package/dist/service/session-identity-service.js +2 -86
  75. package/dist/service/session-lifecycle-service.js +2 -240
  76. package/dist/service/session-message-service.js +2 -173
  77. package/dist/service/session-presentation-service.js +2 -43
  78. package/dist/service/session-query-service.js +2 -82
  79. package/dist/service/skill-directory-service.js +2 -238
  80. package/dist/service/skill-install-service.js +2 -434
  81. package/dist/service/skill-node-operation-service.js +2 -206
  82. package/dist/service/terminal-relay-state.js +2 -3
  83. package/dist/service/terminal-service.js +2 -52
  84. package/dist/service/workbench-event-service.js +2 -19
  85. package/dist/service/workbench-manifest-service.js +2 -69
  86. package/dist/service/workspace-change-service.js +2 -86
  87. package/dist/service/workspace-content-search-service.js +2 -477
  88. package/dist/service/workspace-domain-state.js +2 -41
  89. package/dist/service/workspace-file-service.js +2 -122
  90. package/dist/service/workspace-git-exclude-service.js +2 -119
  91. package/dist/service/workspace-queue-workbench-service.js +2 -304
  92. package/dist/service/workspace-service.js +2 -69
  93. package/dist/service/workspace-session-service.js +2 -139
  94. package/dist/service/workspace-upload-service.js +2 -262
  95. package/dist/service/workspace-watch-service.js +2 -146
  96. package/dist/service/workspace-workbench-service.js +2 -405
  97. package/dist/service.js +2 -38
  98. package/dist/storage.js +2 -32
  99. package/dist/supervisor.js +2 -136
  100. package/dist/terminal.js +2 -416
  101. package/dist/util/node-operation-parsers.js +2 -382
  102. package/dist/util/personal-instructions.js +2 -31
  103. package/dist/util/runner-error.js +2 -52
  104. package/dist/util/runner-native-session-parsers.js +2 -490
  105. package/dist/util/safe-error.js +2 -5
  106. package/dist/util/secret-environment.js +2 -25
  107. package/dist/workspace.js +2 -1519
  108. package/package.json +3 -3
  109. package/dist/capabilities.d.ts +0 -12
  110. package/dist/claude-agent-sdk.d.ts +0 -92
  111. package/dist/claude-channel.d.ts +0 -28
  112. package/dist/codex-app-server.d.ts +0 -133
  113. package/dist/config.d.ts +0 -18
  114. package/dist/connector/node-connector-options.d.ts +0 -27
  115. package/dist/connector/node-operation-router.d.ts +0 -9
  116. package/dist/connector.d.ts +0 -94
  117. package/dist/control-outbound-scheduler.d.ts +0 -29
  118. package/dist/database.d.ts +0 -305
  119. package/dist/event-buffer.d.ts +0 -9
  120. package/dist/fake-runner.d.ts +0 -42
  121. package/dist/health.d.ts +0 -4
  122. package/dist/main.d.ts +0 -2
  123. package/dist/migrations/v001.d.ts +0 -3
  124. package/dist/migrations/v002.d.ts +0 -4
  125. package/dist/migrations/v003.d.ts +0 -4
  126. package/dist/migrations/v004.d.ts +0 -4
  127. package/dist/native-jsonl-reader.d.ts +0 -35
  128. package/dist/native-session-history.d.ts +0 -126
  129. package/dist/opencode-runtime.d.ts +0 -33
  130. package/dist/opencode-server.d.ts +0 -49
  131. package/dist/operational.d.ts +0 -39
  132. package/dist/process-tree.d.ts +0 -9
  133. package/dist/rotating-log.d.ts +0 -17
  134. package/dist/runner/abstract-runner.d.ts +0 -172
  135. package/dist/runner/claude/managed-run-controller.d.ts +0 -51
  136. package/dist/runner/claude-code-runner.d.ts +0 -72
  137. package/dist/runner/codex/conversation-parser.d.ts +0 -59
  138. package/dist/runner/codex/managed-run-controller.d.ts +0 -90
  139. package/dist/runner/codex-runner.d.ts +0 -103
  140. package/dist/runner/fake-test-runner.d.ts +0 -26
  141. package/dist/runner/opencode/conversation-parser.d.ts +0 -31
  142. package/dist/runner/opencode/managed-run-controller.d.ts +0 -82
  143. package/dist/runner/opencode-runner.d.ts +0 -71
  144. package/dist/runner/runner-registry.d.ts +0 -19
  145. package/dist/runner-command-engine.d.ts +0 -28
  146. package/dist/runner-profiles.d.ts +0 -15
  147. package/dist/runner-usage.d.ts +0 -33
  148. package/dist/runtime-command-detector.d.ts +0 -3
  149. package/dist/runtime-state.d.ts +0 -171
  150. package/dist/service/attachment-domain-state.d.ts +0 -7
  151. package/dist/service/conversation-history-service.d.ts +0 -43
  152. package/dist/service/conversation-segment-service.d.ts +0 -20
  153. package/dist/service/external-session-resume-service.d.ts +0 -34
  154. package/dist/service/fake-managed-run-service.d.ts +0 -28
  155. package/dist/service/managed-runner-session-service.d.ts +0 -12
  156. package/dist/service/mcp-installation-verifier.d.ts +0 -9
  157. package/dist/service/mcp-node-operation-service.d.ts +0 -11
  158. package/dist/service/mcp-package-installer.d.ts +0 -8
  159. package/dist/service/native-session-projection-service.d.ts +0 -52
  160. package/dist/service/native-session-watch-service.d.ts +0 -62
  161. package/dist/service/node-connection-lifecycle-service.d.ts +0 -36
  162. package/dist/service/node-control-channel.d.ts +0 -32
  163. package/dist/service/node-control-message-service.d.ts +0 -27
  164. package/dist/service/node-request-service.d.ts +0 -14
  165. package/dist/service/node-run-event-bridge.d.ts +0 -40
  166. package/dist/service/node-terminal-channel.d.ts +0 -29
  167. package/dist/service/node-upgrade-coordinator.d.ts +0 -29
  168. package/dist/service/node-workspace-coordinator.d.ts +0 -29
  169. package/dist/service/recent-run-projection-service.d.ts +0 -14
  170. package/dist/service/run-attachment-service.d.ts +0 -38
  171. package/dist/service/run-domain-state.d.ts +0 -4
  172. package/dist/service/run-event-service.d.ts +0 -33
  173. package/dist/service/run-workbench-service.d.ts +0 -25
  174. package/dist/service/runner-channel-message-service.d.ts +0 -13
  175. package/dist/service/runner-interaction-service.d.ts +0 -39
  176. package/dist/service/runner-service.d.ts +0 -46
  177. package/dist/service/session-catalog-service.d.ts +0 -45
  178. package/dist/service/session-command-service.d.ts +0 -24
  179. package/dist/service/session-context-service.d.ts +0 -35
  180. package/dist/service/session-domain-state.d.ts +0 -9
  181. package/dist/service/session-identity-service.d.ts +0 -24
  182. package/dist/service/session-lifecycle-service.d.ts +0 -31
  183. package/dist/service/session-message-service.d.ts +0 -33
  184. package/dist/service/session-presentation-service.d.ts +0 -34
  185. package/dist/service/session-query-service.d.ts +0 -35
  186. package/dist/service/skill-directory-service.d.ts +0 -20
  187. package/dist/service/skill-install-service.d.ts +0 -21
  188. package/dist/service/skill-node-operation-service.d.ts +0 -44
  189. package/dist/service/terminal-relay-state.d.ts +0 -6
  190. package/dist/service/terminal-service.d.ts +0 -12
  191. package/dist/service/workbench-event-service.d.ts +0 -9
  192. package/dist/service/workbench-manifest-service.d.ts +0 -90
  193. package/dist/service/workspace-change-service.d.ts +0 -9
  194. package/dist/service/workspace-content-search-service.d.ts +0 -14
  195. package/dist/service/workspace-domain-state.d.ts +0 -79
  196. package/dist/service/workspace-file-service.d.ts +0 -18
  197. package/dist/service/workspace-git-exclude-service.d.ts +0 -4
  198. package/dist/service/workspace-queue-workbench-service.d.ts +0 -86
  199. package/dist/service/workspace-service.d.ts +0 -15
  200. package/dist/service/workspace-session-service.d.ts +0 -23
  201. package/dist/service/workspace-upload-service.d.ts +0 -39
  202. package/dist/service/workspace-watch-service.d.ts +0 -23
  203. package/dist/service/workspace-workbench-service.d.ts +0 -58
  204. package/dist/service.d.ts +0 -4
  205. package/dist/storage.d.ts +0 -2
  206. package/dist/supervisor.d.ts +0 -1
  207. package/dist/terminal.d.ts +0 -133
  208. package/dist/util/node-operation-parsers.d.ts +0 -92
  209. package/dist/util/personal-instructions.d.ts +0 -2
  210. package/dist/util/runner-error.d.ts +0 -6
  211. package/dist/util/runner-native-session-parsers.d.ts +0 -74
  212. package/dist/util/safe-error.d.ts +0 -2
  213. package/dist/util/secret-environment.d.ts +0 -1
  214. package/dist/workspace.d.ts +0 -217
@@ -1,92 +1,2 @@
1
- import { release, version } from 'node:os';
2
- import nodePackage from '../package.json' with { type: 'json' };
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)]}}};}
@@ -1,330 +1,2 @@
1
- import { spawnSync } from 'node:child_process';
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};}
@@ -1,44 +1,2 @@
1
- import { randomUUID } from 'node:crypto';
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);}}