@myagentroam/node 0.9.62 → 0.9.65

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 (161) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +4 -0
  3. package/dist/capabilities.js +110 -2
  4. package/dist/claude-agent-sdk.js +330 -2
  5. package/dist/claude-channel.js +44 -2
  6. package/dist/codex-app-server.js +510 -2
  7. package/dist/config.js +106 -2
  8. package/dist/connector/node-connector-options.js +1 -2
  9. package/dist/connector/node-operation-router.js +22 -2
  10. package/dist/connector.js +1736 -2
  11. package/dist/control-outbound-scheduler.js +153 -2
  12. package/dist/database.js +639 -2
  13. package/dist/fake-runner.js +129 -2
  14. package/dist/git-askpass.js +12 -0
  15. package/dist/git-execution-helper.js +266 -0
  16. package/dist/health.js +3 -2
  17. package/dist/main.js +57 -2
  18. package/dist/mcp-installation-model.js +1 -2
  19. package/dist/migrations/v004.js +55 -3
  20. package/dist/migrations/v005.js +13 -3
  21. package/dist/migrations/v006.js +90 -3
  22. package/dist/migrations/v007.js +22 -3
  23. package/dist/migrations/v008.js +18 -3
  24. package/dist/migrations/v009.js +70 -4
  25. package/dist/migrations/v010.js +43 -3
  26. package/dist/migrations/v011.js +20 -3
  27. package/dist/migrations/v012.js +8 -0
  28. package/dist/native-jsonl-reader.js +186 -2
  29. package/dist/native-session-history.js +1143 -2
  30. package/dist/opencode-runtime.js +80 -2
  31. package/dist/opencode-server.js +259 -2
  32. package/dist/operational.js +122 -2
  33. package/dist/process-tree.js +18 -2
  34. package/dist/ripgrep-binary.js +31 -2
  35. package/dist/rotating-log.js +67 -2
  36. package/dist/runner/abstract-runner.js +260 -2
  37. package/dist/runner/claude/managed-run-controller.js +355 -2
  38. package/dist/runner/claude/tool-normalizer.js +120 -2
  39. package/dist/runner/claude-code-runner.js +303 -2
  40. package/dist/runner/codex/composer-image-markers.js +8 -2
  41. package/dist/runner/codex/conversation-parser.js +913 -2
  42. package/dist/runner/codex/managed-run-controller.js +494 -2
  43. package/dist/runner/codex/tool-normalizer.js +214 -2
  44. package/dist/runner/codex-runner.js +585 -2
  45. package/dist/runner/fake-test-runner.js +47 -2
  46. package/dist/runner/mar-agent/conversation-normalizer.js +644 -2
  47. package/dist/runner/mar-agent/executor-stdio-client-transport.js +139 -2
  48. package/dist/runner/mar-agent/generated-images.js +41 -2
  49. package/dist/runner/mar-agent/history-projection.js +106 -2
  50. package/dist/runner/mar-agent/hosted-conversation-runtime.js +446 -2
  51. package/dist/runner/mar-agent/managed-run-controller.js +785 -2
  52. package/dist/runner/mar-agent/mcp-client-pool.js +233 -2
  53. package/dist/runner/mar-agent/runtime-model-factory.js +326 -2
  54. package/dist/runner/mar-agent-runner.js +458 -2
  55. package/dist/runner/opencode/conversation-parser.js +221 -2
  56. package/dist/runner/opencode/managed-run-controller.js +588 -2
  57. package/dist/runner/opencode/tool-normalizer.js +80 -2
  58. package/dist/runner/opencode-runner.js +426 -2
  59. package/dist/runner/runner-registry.js +87 -2
  60. package/dist/runner-command-engine.js +71 -2
  61. package/dist/runner-profiles.js +323 -2
  62. package/dist/runner-usage.js +190 -2
  63. package/dist/runtime-command-detector.js +73 -2
  64. package/dist/runtime-model.js +1 -2
  65. package/dist/runtime-state.js +1509 -2
  66. package/dist/service/attachment-domain-state.js +7 -2
  67. package/dist/service/bubblewrap-sandbox-executor.js +543 -2
  68. package/dist/service/continuous-run-coordinator.js +425 -2
  69. package/dist/service/conversation-history-service.js +552 -2
  70. package/dist/service/conversation-hosting-capability-service.js +61 -2
  71. package/dist/service/conversation-hosting-enablement-service.js +91 -2
  72. package/dist/service/conversation-hosting-maintenance-service.js +174 -2
  73. package/dist/service/conversation-segment-service.js +162 -2
  74. package/dist/service/conversation-template-node-service.js +992 -2
  75. package/dist/service/external-session-resume-service.js +152 -2
  76. package/dist/service/fake-managed-run-service.js +60 -2
  77. package/dist/service/git-execution-service.js +418 -0
  78. package/dist/service/git-operation-service.js +57 -0
  79. package/dist/service/hosted-conversation-node-service.js +1982 -2
  80. package/dist/service/hosted-conversation-store.js +1405 -2
  81. package/dist/service/managed-runner-session-service.js +35 -2
  82. package/dist/service/mar-agent-model-transport-test-service.js +88 -2
  83. package/dist/service/mcp-installation-verifier.js +87 -2
  84. package/dist/service/mcp-node-operation-service.js +90 -2
  85. package/dist/service/mission-mcp-server.js +124 -2
  86. package/dist/service/mission-mcp-stdio.js +40 -2
  87. package/dist/service/mission-runtime.js +142 -2
  88. package/dist/service/native-session-projection-service.js +274 -2
  89. package/dist/service/native-session-watch-service.js +683 -2
  90. package/dist/service/node-connection-lifecycle-service.js +88 -2
  91. package/dist/service/node-control-channel.js +85 -2
  92. package/dist/service/node-control-message-service.js +109 -2
  93. package/dist/service/node-request-service.js +62 -2
  94. package/dist/service/node-run-event-bridge.js +88 -2
  95. package/dist/service/node-terminal-channel.js +202 -2
  96. package/dist/service/node-upgrade-coordinator.js +137 -2
  97. package/dist/service/node-workspace-coordinator.js +97 -2
  98. package/dist/service/recent-run-projection-service.js +99 -2
  99. package/dist/service/run-attachment-service.js +321 -2
  100. package/dist/service/run-domain-state.js +4 -2
  101. package/dist/service/run-event-service.js +246 -2
  102. package/dist/service/run-ownership-policy.js +22 -2
  103. package/dist/service/run-workbench-service.js +120 -2
  104. package/dist/service/runner-channel-message-service.js +20 -2
  105. package/dist/service/runner-interaction-service.js +243 -2
  106. package/dist/service/runner-service.js +69 -2
  107. package/dist/service/runtime-credential-control-service.js +95 -2
  108. package/dist/service/session-catalog-service.js +404 -2
  109. package/dist/service/session-command-service.js +125 -2
  110. package/dist/service/session-context-service.js +128 -2
  111. package/dist/service/session-domain-state.js +9 -2
  112. package/dist/service/session-identity-service.js +86 -2
  113. package/dist/service/session-lifecycle-service.js +248 -2
  114. package/dist/service/session-message-service.js +270 -2
  115. package/dist/service/session-presentation-service.js +43 -2
  116. package/dist/service/session-query-service.js +82 -2
  117. package/dist/service/session-watch-slot-coordinator.js +21 -2
  118. package/dist/service/skill-directory-service.js +238 -2
  119. package/dist/service/skill-install-service.js +434 -2
  120. package/dist/service/skill-node-operation-service.js +206 -2
  121. package/dist/service/terminal-relay-state.js +3 -2
  122. package/dist/service/terminal-service.js +90 -2
  123. package/dist/service/web-search-error.js +40 -2
  124. package/dist/service/workbench-event-service.js +21 -2
  125. package/dist/service/workbench-manifest-service.js +69 -2
  126. package/dist/service/workspace-change-service.js +290 -2
  127. package/dist/service/workspace-content-search-service.js +457 -2
  128. package/dist/service/workspace-domain-state.js +41 -2
  129. package/dist/service/workspace-file-service.js +150 -2
  130. package/dist/service/workspace-git-exclude-service.js +119 -2
  131. package/dist/service/workspace-queue-workbench-service.js +176 -2
  132. package/dist/service/workspace-service.js +92 -2
  133. package/dist/service/workspace-session-service.js +154 -2
  134. package/dist/service/workspace-upload-service.js +262 -2
  135. package/dist/service/workspace-watch-controller.js +68 -2
  136. package/dist/service/workspace-watch-service.js +170 -2
  137. package/dist/service/workspace-watch-snapshot-service.js +218 -2
  138. package/dist/service/workspace-workbench-service.js +239 -2
  139. package/dist/service.js +91 -2
  140. package/dist/storage.js +32 -2
  141. package/dist/supervisor.js +136 -2
  142. package/dist/terminal.js +496 -2
  143. package/dist/util/git-credential-client.js +32 -0
  144. package/dist/util/node-operation-data.js +9 -2
  145. package/dist/util/node-operation-parsers.js +382 -2
  146. package/dist/util/personal-instructions.js +34 -2
  147. package/dist/util/runner-error.js +70 -2
  148. package/dist/util/runner-native-session-parsers.js +510 -2
  149. package/dist/util/safe-error.js +8 -2
  150. package/dist/util/secret-environment.js +25 -2
  151. package/dist/workspace.js +1793 -2
  152. package/package.json +11 -8
  153. package/vendor/ripgrep/darwin-arm64/rg +0 -0
  154. package/vendor/ripgrep/darwin-x64/rg +0 -0
  155. package/vendor/ripgrep/manifest.json +12 -0
  156. package/README.md +0 -42
  157. package/dist/event-buffer.js +0 -2
  158. package/dist/migrations/v001.js +0 -107
  159. package/dist/migrations/v002.js +0 -2
  160. package/dist/migrations/v003.js +0 -2
  161. package/dist/service/mcp-package-installer.js +0 -2
@@ -1,2 +1,125 @@
1
- /* mar-release-protected */
2
- function _0x4516(_0x3c41e2,_0x2a52f3){_0x3c41e2=_0x3c41e2-(-0x11a+0x1*-0x91d+0xae4);const _0x362517=_0x2a91();let _0x569122=_0x362517[_0x3c41e2];if(_0x4516['oAghww']===undefined){var _0x8bd1e=function(_0x989f96){const _0x44d016='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x19258c='',_0x533797='';for(let _0x2de9dd=-0xe9*-0x1+-0x262d*-0x1+-0x1*0x2716,_0x348995,_0x121e8f,_0x284d8c=0x51b*-0x1+-0x25c8+-0x2ae3*-0x1;_0x121e8f=_0x989f96['charAt'](_0x284d8c++);~_0x121e8f&&(_0x348995=_0x2de9dd%(0x1aa1+0x1e78+-0x3915)?_0x348995*(0x2*-0x370+-0x16*-0xcc+-0x14d*0x8)+_0x121e8f:_0x121e8f,_0x2de9dd++%(0x236*-0x2+-0x449+0x1d*0x4d))?_0x19258c+=String['fromCharCode'](0x335*-0x2+-0x1*-0x3a+0x1*0x72f&_0x348995>>(-(0x96*-0x5+-0x3*0x301+0x13*0xa1)*_0x2de9dd&0x16bc+0x255*0xf+-0x3*0x133b)):-0x1828+0x169f*-0x1+0x2ec7){_0x121e8f=_0x44d016['indexOf'](_0x121e8f);}for(let _0x4a900c=0x1e0b+0x1*0xbab+-0x29b6,_0x1c45e1=_0x19258c['length'];_0x4a900c<_0x1c45e1;_0x4a900c++){_0x533797+='%'+('00'+_0x19258c['charCodeAt'](_0x4a900c)['toString'](-0x4f*-0xb+0x1348+-0x169d))['slice'](-(-0x13*-0x9c+0xb7+-0x1*0xc49));}return decodeURIComponent(_0x533797);};_0x4516['ajmyve']=_0x8bd1e,_0x4516['qsmJhP']={},_0x4516['oAghww']=!![];}const _0x5e3105=_0x362517[-0x95a+0x10e7+0x1*-0x78d];_0x4516['PABBYf']!==_0x5e3105&&(_0x4516['qsmJhP']={},_0x4516['PABBYf']=_0x5e3105);const _0x58faac=_0x4516['qsmJhP'][_0x3c41e2];return _0x58faac===undefined?(_0x569122=_0x4516['ajmyve'](_0x569122),_0x4516['qsmJhP'][_0x3c41e2]=_0x569122):_0x569122=_0x58faac,_0x569122;}const _0x3e1c9c=_0x4516;(function(_0x3291dd,_0xd9627){const _0xf5a7c=_0x4516,_0x162f58=_0x3291dd();while(!![]){try{const _0x338b41=parseInt(_0xf5a7c(0xc0))/(-0x1*0x98+-0x1fc0+-0x5b*-0x5b)+parseInt(_0xf5a7c(0xc7))/(0x2*-0x2a3+-0x23bd+0x2905)*(-parseInt(_0xf5a7c(0xdc))/(0x22fe+0x32*0x7d+0x1*-0x3b65))+-parseInt(_0xf5a7c(0xb9))/(0x1*0x1073+-0x24c3+-0xa2a*-0x2)*(-parseInt(_0xf5a7c(0xd9))/(0x314+-0x973+0x664))+parseInt(_0xf5a7c(0xc8))/(0x219d+0xdc3+-0x2f5a)+parseInt(_0xf5a7c(0xc4))/(-0xefe+-0x9bd*-0x1+0x548)+parseInt(_0xf5a7c(0xcf))/(-0x85f+0xb*0x241+0x1064*-0x1)+parseInt(_0xf5a7c(0xb1))/(-0x1ce5+-0x13*0x14b+0x357f)*(-parseInt(_0xf5a7c(0xd1))/(-0x381+-0x14f1+0x61f*0x4));if(_0x338b41===_0xd9627)break;else _0x162f58['push'](_0x162f58['shift']());}catch(_0x1b84eb){_0x162f58['push'](_0x162f58['shift']());}}}(_0x2a91,-0xb54f5+0xc6*-0xb2d+-0x36154*-0xa));import{parseCommandInvocation}from'../runner-command-engine.js';import{isPlainRecord}from'../util/node-operation-parsers.js';import{parseSecretEnvironment}from'../util/secret-environment.js';export class SessionCommandService{[_0x3e1c9c(0xca)];constructor(_0x2a7510){const _0x10dfb2=_0x3e1c9c;this[_0x10dfb2(0xca)]=_0x2a7510;}[_0x3e1c9c(0xc1)](){const _0x2e6bba=_0x3e1c9c;return{'runner.command.execute':_0x525a39=>this[_0x2e6bba(0xd2)](record(_0x525a39)),'session.command.execute':_0x505073=>this[_0x2e6bba(0xc6)](record(_0x505073))};}[_0x3e1c9c(0xd2)](_0xc46752){const _0x27bba5=_0x3e1c9c,_0x30a9f0=this[_0x27bba5(0xca)][_0x27bba5(0xad)][_0x27bba5(0xcb)](_0xc46752[_0x27bba5(0xb6)]);if(_0x30a9f0===undefined||typeof _0xc46752[_0x27bba5(0xbb)]!==_0x27bba5(0xc9)||typeof _0xc46752[_0x27bba5(0xb3)]!==_0x27bba5(0xc9))throw new Error(_0x27bba5(0xd5));try{return _0x30a9f0[_0x27bba5(0xdd)](_0xc46752[_0x27bba5(0xbb)],_0xc46752[_0x27bba5(0xb3)]);}catch(_0x463381){if(_0x463381 instanceof Error&&_0x463381[_0x27bba5(0xc5)]===_0x27bba5(0xd5))throw _0x463381;throw new Error(_0x27bba5(0xd5));}}async[_0x3e1c9c(0xc6)](_0x27dba5){const _0x423fc4=_0x3e1c9c;if(typeof _0x27dba5[_0x423fc4(0xb5)]!==_0x423fc4(0xc9)||typeof _0x27dba5[_0x423fc4(0xbb)]!==_0x423fc4(0xc9)||_0x27dba5[_0x423fc4(0xbb)][_0x423fc4(0xe5)]===-0x1*-0xdb5+-0x2115+0x1360||typeof _0x27dba5[_0x423fc4(0xb3)]!==_0x423fc4(0xc9)||_0x27dba5[_0x423fc4(0xb3)][_0x423fc4(0xe5)]<0x21b5+-0x25fa*-0x1+0x47ad*-0x1||_0x27dba5[_0x423fc4(0xb3)][_0x423fc4(0xe5)]>-0x9324+-0x68f7+0x1967*0xd)throw new Error(_0x423fc4(0xd5));const _0x2ff750=this[_0x423fc4(0xca)][_0x423fc4(0xbf)][_0x423fc4(0xba)](_0x27dba5[_0x423fc4(0xb5)])??await this[_0x423fc4(0xca)][_0x423fc4(0xb4)][_0x423fc4(0xce)](_0x27dba5[_0x423fc4(0xb5)]);if(_0x2ff750===undefined)throw new Error(_0x423fc4(0xe7));const _0x46f823=_0x2ff750[_0x423fc4(0xbe)]===_0x423fc4(0xd0)?await this[_0x423fc4(0xca)][_0x423fc4(0xe2)][_0x423fc4(0xe2)](_0x2ff750):_0x2ff750;if(_0x46f823===undefined)throw new Error(_0x423fc4(0xcc));const _0x4a36c3=this[_0x423fc4(0xca)][_0x423fc4(0xe1)]()[_0x423fc4(0xb8)](_0x2c1c56=>_0x2c1c56[_0x423fc4(0xb6)]===_0x46f823[_0x423fc4(0xb6)])?.[_0x423fc4(0xb0)][_0x423fc4(0xb8)](_0x24b0eb=>isPlainRecord(_0x24b0eb)&&_0x24b0eb['id']===_0x27dba5[_0x423fc4(0xbb)]);if(_0x4a36c3?.[_0x423fc4(0xe0)]!==!![])throw new Error(_0x423fc4(0xcc));if(_0x4a36c3[_0x423fc4(0xd6)]===_0x423fc4(0xe4)&&this[_0x423fc4(0xca)][_0x423fc4(0xbf)][_0x423fc4(0xcd)](_0x46f823['id']))throw new Error(_0x423fc4(0xcc));const _0x43e9b0=parseCommandInvocation({'descriptor':_0x4a36c3},_0x27dba5[_0x423fc4(0xb3)]),_0x257a75=parseSecretEnvironment(_0x27dba5[_0x423fc4(0xc3)]);if(_0x4a36c3['id']===_0x423fc4(0xb7)){if(_0x43e9b0[_0x423fc4(0xdf)]===_0x423fc4(0xd7))return this[_0x423fc4(0xca)][_0x423fc4(0xc2)](_0x46f823);if(_0x43e9b0[_0x423fc4(0xdf)][_0x423fc4(0xe5)]===0x2d1+-0x1ff*-0x4+-0xacd)return this[_0x423fc4(0xca)][_0x423fc4(0xbc)](_0x46f823);return this[_0x423fc4(0xca)][_0x423fc4(0xb7)]({'session':_0x46f823,'objective':_0x43e9b0[_0x423fc4(0xdf)],'secretEnvironment':_0x257a75,...typeof _0x27dba5[_0x423fc4(0xd3)]===_0x423fc4(0xc9)?{'personalInstructions':_0x27dba5[_0x423fc4(0xd3)]}:{},..._0x27dba5[_0x423fc4(0xaf)]===undefined?{}:{'marAgentModel':_0x27dba5[_0x423fc4(0xaf)]},..._0x27dba5[_0x423fc4(0xbd)]===undefined?{}:{'marAgentModels':_0x27dba5[_0x423fc4(0xbd)]},..._0x27dba5[_0x423fc4(0xe6)]===undefined?{}:{'marAgentRuntimeScopeId':_0x27dba5[_0x423fc4(0xe6)]}});}const _0x3b7360=this[_0x423fc4(0xca)][_0x423fc4(0xad)][_0x423fc4(0xcb)](_0x46f823[_0x423fc4(0xb6)]);if(_0x3b7360===undefined)throw new Error(_0x423fc4(0xcc));const _0x32ad93=await _0x3b7360[_0x423fc4(0xe3)](_0x46f823,_0x4a36c3,_0x43e9b0[_0x423fc4(0xb3)],{'secretEnvironment':_0x257a75,..._0x27dba5[_0x423fc4(0xaf)]===undefined?{}:{'marAgentModel':_0x27dba5[_0x423fc4(0xaf)]},..._0x27dba5[_0x423fc4(0xbd)]===undefined?{}:{'marAgentModels':_0x27dba5[_0x423fc4(0xbd)]},..._0x27dba5[_0x423fc4(0xe6)]===undefined?{}:{'marAgentRuntimeScopeId':_0x27dba5[_0x423fc4(0xe6)]},...Number[_0x423fc4(0xb2)](_0x27dba5[_0x423fc4(0xd4)])?{'initiatedByUserId':_0x27dba5[_0x423fc4(0xd4)]}:{}});if(_0x4a36c3[_0x423fc4(0xd6)]===_0x423fc4(0xe4)&&isPlainRecord(_0x32ad93)&&isPlainRecord(_0x32ad93[_0x423fc4(0xdb)]))this[_0x423fc4(0xca)][_0x423fc4(0xde)](_0x46f823['id']);return{...isPlainRecord(_0x32ad93)?_0x32ad93:{'result':_0x32ad93},'session':this[_0x423fc4(0xca)][_0x423fc4(0xae)](_0x46f823)};}}function _0x2a91(){const _0x5e2db1=['y29TBwfUzhm','mJKYnde5wNztz2L6','AxntywzLsw50zwDLCG','Aw5WDxq','ChjVAMvJDgLVBG','C2vZC2LVBKLK','CNvUBMvY','BwLZC2LVBG','zMLUza','neD5DeX0AG','z2v0qwDLBNrtzxnZAw9U','y29TBwfUzeLK','yMvNAw5nAxnZAw9U','BwfYqwDLBNrnB2rLBhm','BMf0AxzLq29UDhjVBa','CNvUDgLTzq','ote3ntC0BfriDKnh','B3bLCMf0Aw9UCW','y2XLyxjnAxnZAw9U','C2vJCMv0rw52AxjVBM1LBNq','nZm4mJm1nfr6q2P2tW','BwvZC2fNzq','C2vZC2LVBKnVBw1HBMq','ote3ote0yunnqw14','mZiYodu1ogfAv2zmBG','C3rYAw5N','B3b0Aw9UCW','ChjVzhvJDa','uLvotKvsx0nptu1btKrFvu5bvKfjtefcteu','AgfZqwn0AxzLu2vZC2LVBKXLyxnL','CMvZB2X2zun1CNjLBNq','mti5ode3nJbWDfvKseO','rvHurvjoquW','mta3meDgse9drG','CNvUBMvYq29TBwfUza','CgvYC29UywXjBNn0CNvJDgLVBNm','x19Yzxf1zxn0vxnLCKLK','uLvotKvsx0nptu1btKrFsu5wquXjra','Aw50zxjHy3rPB24','ls1JBgvHCG','AxnbCNjHEq','mZu0mZaXme9br3HIvG','B2jQzwn0','CNvU','m21iqu5YyG','zxHLy3v0zuDSB2jHBenVBw1HBMq','CMvZDw1LuxvLDwvbzNrLCKnVBw1HBMrsDw4','yxjNDw1LBNq','yxzHAwXHyMXL','ChjVzMLSzxm','CMvZDw1L','zxHLy3v0zunVBw1HBMq','su1nrurjqvrfx0fdveLptG','BgvUz3rO','BwfYqwDLBNrsDw50Aw1Lu2nVCgvjza','u0vtu0LptL9ot1rFrK9vtKq','CNvUBMvYCW','ChjLC2vUDa','BwfYqwDLBNrnB2rLBa'];_0x2a91=function(){return _0x5e2db1;};return _0x2a91();}function record(_0x59dd02){const _0x29d777=_0x3e1c9c;if(_0x59dd02===null||typeof _0x59dd02!==_0x29d777(0xda)||Array[_0x29d777(0xd8)](_0x59dd02))return{};return _0x59dd02;}
1
+ import { parseCommandInvocation } from '../runner-command-engine.js';
2
+ import { isPlainRecord } from '../util/node-operation-parsers.js';
3
+ import { parseSecretEnvironment } from '../util/secret-environment.js';
4
+ export class SessionCommandService {
5
+ options;
6
+ constructor(options) {
7
+ this.options = options;
8
+ }
9
+ operations() {
10
+ return {
11
+ 'runner.command.execute': (data) => this.runnerCommand(record(data)),
12
+ 'session.command.execute': (data) => this.sessionCommand(record(data))
13
+ };
14
+ }
15
+ runnerCommand(input) {
16
+ const runner = this.options.runners.product(input.runner);
17
+ if (runner === undefined ||
18
+ typeof input.commandId !== 'string' ||
19
+ typeof input.input !== 'string')
20
+ throw new Error('RUNNER_COMMAND_INVALID');
21
+ try {
22
+ return runner.executeGlobalCommand(input.commandId, input.input);
23
+ }
24
+ catch (error) {
25
+ if (error instanceof Error && error.message === 'RUNNER_COMMAND_INVALID')
26
+ throw error;
27
+ throw new Error('RUNNER_COMMAND_INVALID');
28
+ }
29
+ }
30
+ async sessionCommand(input) {
31
+ if (typeof input.sessionId !== 'string' ||
32
+ typeof input.commandId !== 'string' ||
33
+ input.commandId.length === 0 ||
34
+ typeof input.input !== 'string' ||
35
+ input.input.length < 2 ||
36
+ input.input.length > 20_000)
37
+ throw new Error('RUNNER_COMMAND_INVALID');
38
+ const resolved = this.options.runtime.getAgentSession(input.sessionId) ??
39
+ (await this.options.projection.resolveCurrent(input.sessionId));
40
+ if (resolved === undefined)
41
+ throw new Error('SESSION_NOT_FOUND');
42
+ const session = resolved.nativeControl === 'EXTERNAL' ? await this.options.resume.resume(resolved) : resolved;
43
+ if (session === undefined)
44
+ throw new Error('RUNNER_COMMAND_UNAVAILABLE');
45
+ const command = this.options
46
+ .profiles()
47
+ .find((profile) => profile.runner === session.runner)
48
+ ?.commands.find((candidate) => isPlainRecord(candidate) && candidate.id === input.commandId);
49
+ if (command?.available !== true)
50
+ throw new Error('RUNNER_COMMAND_UNAVAILABLE');
51
+ if ((command.interaction === 'IMMEDIATE_ACTION' ||
52
+ command.interaction === 'DESTRUCTIVE_ACTION') &&
53
+ this.options.runtime.hasActiveSessionLease(session.id))
54
+ throw new Error('RUNNER_COMMAND_UNAVAILABLE');
55
+ const invocation = parseCommandInvocation({ descriptor: command }, input.input);
56
+ const secretEnvironment = parseSecretEnvironment(input.secretEnvironment);
57
+ if (command.id === 'mission') {
58
+ if (invocation.argument === '--clear')
59
+ return this.options.clearMission(session);
60
+ if (invocation.argument.length === 0)
61
+ return this.options.beginMission(session);
62
+ return this.options.mission({
63
+ session,
64
+ objective: invocation.argument,
65
+ secretEnvironment,
66
+ ...(typeof input.personalInstructions === 'string'
67
+ ? { personalInstructions: input.personalInstructions }
68
+ : {}),
69
+ ...(input.marAgentModel === undefined ? {} : { marAgentModel: input.marAgentModel }),
70
+ ...(input.marAgentModels === undefined ? {} : { marAgentModels: input.marAgentModels }),
71
+ ...(input.marAgentRuntimeScopeId === undefined
72
+ ? {}
73
+ : { marAgentRuntimeScopeId: input.marAgentRuntimeScopeId })
74
+ });
75
+ }
76
+ const runner = this.options.runners.product(session.runner);
77
+ if (runner === undefined)
78
+ throw new Error('RUNNER_COMMAND_UNAVAILABLE');
79
+ if (command.interaction === 'DESTRUCTIVE_ACTION') {
80
+ const releaseMutation = this.options.runtime.beginSessionHistoryMutation(session.id);
81
+ try {
82
+ const lastActivityAt = await runner.clearNative(session);
83
+ const runtimeSession = this.options.runtime.getAgentSession(session.id);
84
+ const cleared = runtimeSession === undefined
85
+ ? { ...session, lastActivityAt }
86
+ : this.options.runtime.resetAgentSessionHistory(runtimeSession.id, lastActivityAt);
87
+ this.options.projection.remember([cleared]);
88
+ this.options.invalidateHistory(cleared.id);
89
+ this.options.invalidateWorkspaceSessions(cleared.workspaceId);
90
+ this.options.emitSession(cleared);
91
+ return {
92
+ command: command.id,
93
+ session: this.options.present(cleared)
94
+ };
95
+ }
96
+ finally {
97
+ releaseMutation();
98
+ }
99
+ }
100
+ const result = await runner.executeCommand(session, command, invocation.input, {
101
+ secretEnvironment,
102
+ ...(input.marAgentModel === undefined ? {} : { marAgentModel: input.marAgentModel }),
103
+ ...(input.marAgentModels === undefined ? {} : { marAgentModels: input.marAgentModels }),
104
+ ...(input.marAgentRuntimeScopeId === undefined
105
+ ? {}
106
+ : { marAgentRuntimeScopeId: input.marAgentRuntimeScopeId }),
107
+ ...(Number.isSafeInteger(input.__requestUserId)
108
+ ? { initiatedByUserId: input.__requestUserId }
109
+ : {})
110
+ });
111
+ if (command.interaction === 'IMMEDIATE_ACTION' &&
112
+ isPlainRecord(result) &&
113
+ isPlainRecord(result.run))
114
+ this.options.resumeQueueAfterCommandRun(session.id);
115
+ return {
116
+ ...(isPlainRecord(result) ? result : { result }),
117
+ session: this.options.present(session)
118
+ };
119
+ }
120
+ }
121
+ function record(value) {
122
+ if (value === null || typeof value !== 'object' || Array.isArray(value))
123
+ return {};
124
+ return value;
125
+ }
@@ -1,2 +1,128 @@
1
- /* mar-release-protected */
2
- const _0x11350d=_0x3441;(function(_0x3bc180,_0x27a6a5){const _0x20d664=_0x3441,_0x3bf83b=_0x3bc180();while(!![]){try{const _0x406267=parseInt(_0x20d664(0x111))/(0x1067+-0x1e1*-0x11+-0x3057)+parseInt(_0x20d664(0x119))/(0x1d64+0x1*-0x1f49+0x1e7)*(parseInt(_0x20d664(0x114))/(-0x1c60+0x1*0x210d+-0x4aa))+-parseInt(_0x20d664(0x11b))/(-0x6c1*0x1+-0x45*-0x3b+-0x922*0x1)*(parseInt(_0x20d664(0x110))/(-0x2600*-0x1+-0x36d*0x5+-0x14da))+parseInt(_0x20d664(0x117))/(0x525*0x7+-0xe37+0x1*-0x15c6)+-parseInt(_0x20d664(0xf5))/(0xf4*-0x1+-0x3*0xbec+0x24bf)*(parseInt(_0x20d664(0x104))/(-0x3*0xc33+-0xaf1+0x2f92))+parseInt(_0x20d664(0xf3))/(-0x1a2d+-0x9c*-0x1f+0x752)*(-parseInt(_0x20d664(0xf1))/(-0x456+0x2*-0x83e+0x14dc))+parseInt(_0x20d664(0x10c))/(0x3*0x945+0x1*0x167b+-0x323f)*(parseInt(_0x20d664(0x115))/(0x66f+-0x2397+0x59*0x54));if(_0x406267===_0x27a6a5)break;else _0x3bf83b['push'](_0x3bf83b['shift']());}catch(_0x3e8734){_0x3bf83b['push'](_0x3bf83b['shift']());}}}(_0x3928,0x3a02b+0x15*-0x2335+-0xb1*-0x858));function _0x3928(){const _0x444114=['ntC3mtG4DM1NzMzq','zgLZCg9Zzq','odjTterLBw4','Bwf4vg9Rzw5Z','mJu1mty3nM5lrNjHqq','CNvUBMvY','C2nOzwr1Bgu','C2vZC2LVBG','DgHLBG','C25HChnOB3rZ','mtaWndiWyxrTqvj2','zMLUywXSEq','mtyYEfLNC1r6','y3vYCMvUDa','mZC1mte3nenSu1rnuW','CMvHzenVBNrLEhrvC2fNzq','CgvYy2vUDgfNzq','zxH0zxjUywXtzxnZAw9Uswq','C3rYAw5N','y2f0y2G','Bw9KzwW','CMvHza','B3b0Aw9UCW','C2v0','Dw5Yzwy','z2v0','ChjVzhvJDa','zgvSzxrL','C25HChnOB3q','oe1yC2rwsG','ChvIBgLZAa','C3rVChbLza','DMvYC2LVBNm','y2XLyxi','C25HChnOB3ruAw1LCNm','CNvUBMvYCW','y2XLyxjtBMfWC2HVDa','odHxvKzPEum','CM91BMq','DgLTzxjZ','D29YA3nWywnLswq','nuzozhrODW','nZy5ndKWq011zefk','DxnLzfrVA2vUCW','DMfSDwvZ','otGXm0zmvfHWzG','mte3mtC1mNLzt2rRua','BgvUz3rO'];_0x3928=function(){return _0x444114;};return _0x3928();}const REFRESH_DELAYS_MS=[0xf2*-0x1+0xaaf+-0x959,-0x3a*0x45+0x11*0x22+0xef0,-0x2*0x63+-0x29*0xad+0x2063],CONTEXT_SNAPSHOT_TTL_MS=(-0x581*-0x1+0x1*-0xfd1+-0x1*-0xa6e)*(0x1*0x122f2+0x39*-0x599+0x1067f);export class SessionContextService{[_0x11350d(0xfd)];[_0x11350d(0xf0)]=new Map();[_0x11350d(0x109)]=new Map();[_0x11350d(0x10e)]=new Map();[_0x11350d(0x107)]=new Map();constructor(_0x1a412a){const _0x58f6b6=_0x11350d;this[_0x58f6b6(0xfd)]=_0x1a412a;}async[_0x11350d(0xfc)](_0x1cfa36){const _0x1d8245=_0x11350d;if(_0x1cfa36[_0x1d8245(0xf8)]===null)return this[_0x1d8245(0x10b)](_0x1cfa36['id']),{'context':null,'pending':![]};const _0x38f75f=await this[_0x1d8245(0xfd)][_0x1d8245(0x10a)][_0x1d8245(0x101)](_0x1cfa36[_0x1d8245(0x11c)])?.[_0x1d8245(0xf6)](_0x1cfa36);if(_0x38f75f===undefined)return this[_0x1d8245(0x10b)](_0x1cfa36['id']),{'context':null,'pending':![]};const _0x37f31a={'model':_0x38f75f[_0x1d8245(0xfb)]??_0x1cfa36[_0x1d8245(0xfb)],'usedTokens':_0x38f75f[_0x1d8245(0x112)],'maxTokens':_0x38f75f[_0x1d8245(0x11a)],'percentage':Math[_0x1d8245(0x10d)](_0x38f75f[_0x1d8245(0x112)]/_0x38f75f[_0x1d8245(0x11a)]*(-0x10*0x1a5+0x1a29+0x40f))/(0x2220+-0x1*-0xf85+-0x53*0x99)};this[_0x1d8245(0xf0)][_0x1d8245(0xfe)](_0x1cfa36['id'],_0x37f31a);const _0x3e2e24=this[_0x1d8245(0x109)][_0x1d8245(0x100)](_0x1cfa36['id']);if(_0x3e2e24!==undefined)clearTimeout(_0x3e2e24);const _0x2271f5=setTimeout(()=>{const _0x305631=_0x1d8245;this[_0x305631(0x109)][_0x305631(0x102)](_0x1cfa36['id']),this[_0x305631(0xf0)][_0x305631(0x102)](_0x1cfa36['id']);},CONTEXT_SNAPSHOT_TTL_MS);return _0x2271f5[_0x1d8245(0xff)](),this[_0x1d8245(0x109)][_0x1d8245(0xfe)](_0x1cfa36['id'],_0x2271f5),{'context':_0x37f31a,'pending':![]};}[_0x11350d(0x103)](_0x46e7af){const _0x2e5856=_0x11350d;return this[_0x2e5856(0xf0)][_0x2e5856(0x100)](_0x46e7af)??null;}[_0x11350d(0xed)](_0x10f6e5){const _0x4f9a78=_0x11350d,_0x460f4f=typeof _0x10f6e5===_0x4f9a78(0xf9)?_0x10f6e5:_0x10f6e5['id'],_0x8c9495=typeof _0x10f6e5===_0x4f9a78(0xf9)?undefined:_0x10f6e5,_0x387819=this[_0x4f9a78(0x10e)][_0x4f9a78(0x100)](_0x460f4f);if(_0x387819!==undefined)clearTimeout(_0x387819);this[_0x4f9a78(0x10e)][_0x4f9a78(0x102)](_0x460f4f);const _0x5c4efe=(this[_0x4f9a78(0x107)][_0x4f9a78(0x100)](_0x460f4f)??-0x255+-0x264f+0x28a4)+(0xda8*-0x2+-0xea1+0x19d*0x1a);this[_0x4f9a78(0x107)][_0x4f9a78(0xfe)](_0x460f4f,_0x5c4efe);let _0x273bd5=this[_0x4f9a78(0xf0)][_0x4f9a78(0x100)](_0x460f4f);const _0x4a1ef3=_0x2be342=>{const _0xba663f=_0x4f9a78,_0xff5e51=setTimeout(()=>{const _0x2bbd61=_0x3441;if(this[_0x2bbd61(0x10e)][_0x2bbd61(0x100)](_0x460f4f)===_0xff5e51)this[_0x2bbd61(0x10e)][_0x2bbd61(0x102)](_0x460f4f);if(!this[_0x2bbd61(0xf4)](_0x460f4f,_0x5c4efe))return;const _0x16335f=this[_0x2bbd61(0xfd)][_0x2bbd61(0xee)](_0x460f4f)??_0x8c9495;if(_0x16335f===undefined||_0x16335f[_0x2bbd61(0xf8)]===null)return;void this[_0x2bbd61(0xfc)](_0x16335f)[_0x2bbd61(0xef)](({context:_0x30b93f})=>{const _0x3eb654=_0x2bbd61;if(!this[_0x3eb654(0xf4)](_0x460f4f,_0x5c4efe))return;if(_0x30b93f===null){if(_0x273bd5===undefined)return;_0x273bd5=undefined,this[_0x3eb654(0xfd)][_0x3eb654(0x105)]({'sessionId':_0x16335f['id'],'workspaceId':_0x16335f[_0x3eb654(0x10f)],'context':null,'pending':![]});}else(_0x273bd5===undefined||!sameUsage(_0x273bd5,_0x30b93f))&&(_0x273bd5=_0x30b93f,this[_0x3eb654(0xfd)][_0x3eb654(0x105)]({'sessionId':_0x16335f['id'],'workspaceId':_0x16335f[_0x3eb654(0x10f)],'context':_0x30b93f,'pending':![]}));})[_0x2bbd61(0xfa)](()=>undefined)[_0x2bbd61(0xf2)](()=>{const _0x2bf4e4=_0x2bbd61;if(!this[_0x2bf4e4(0xf4)](_0x460f4f,_0x5c4efe))return;if(_0x2be342+(0x1*-0xb0c+0x8c4+0x249)<REFRESH_DELAYS_MS[_0x2bf4e4(0x116)])_0x4a1ef3(_0x2be342+(-0x1*0x23ce+0x25db+-0x20c));else this[_0x2bf4e4(0x107)][_0x2bf4e4(0x102)](_0x460f4f);});},REFRESH_DELAYS_MS[_0x2be342]);this[_0xba663f(0x10e)][_0xba663f(0xfe)](_0x460f4f,_0xff5e51),_0xff5e51[_0xba663f(0xff)]();};_0x4a1ef3(0x1*-0x677+-0x2f5*0xb+0x26fe);}[_0x11350d(0x118)](){const _0x3de8d4=_0x11350d;for(const _0xd46d32 of this[_0x3de8d4(0x10e)][_0x3de8d4(0x113)]())clearTimeout(_0xd46d32);for(const _0x465559 of this[_0x3de8d4(0x109)][_0x3de8d4(0x113)]())clearTimeout(_0x465559);this[_0x3de8d4(0x10e)][_0x3de8d4(0x108)](),this[_0x3de8d4(0x109)][_0x3de8d4(0x108)](),this[_0x3de8d4(0x107)][_0x3de8d4(0x108)](),this[_0x3de8d4(0xf0)][_0x3de8d4(0x108)]();}[_0x11350d(0xf4)](_0x37c187,_0x572de7){const _0x50a331=_0x11350d;return!this[_0x50a331(0xfd)][_0x50a331(0x106)]()&&this[_0x50a331(0x107)][_0x50a331(0x100)](_0x37c187)===_0x572de7;}[_0x11350d(0x10b)](_0x14ddd3){const _0x4ead41=_0x11350d,_0x5c72d7=this[_0x4ead41(0x109)][_0x4ead41(0x100)](_0x14ddd3);if(_0x5c72d7!==undefined)clearTimeout(_0x5c72d7);this[_0x4ead41(0x109)][_0x4ead41(0x102)](_0x14ddd3),this[_0x4ead41(0xf0)][_0x4ead41(0x102)](_0x14ddd3);}}function _0x3441(_0x460f4f,_0x8c9495){_0x460f4f=_0x460f4f-(0x3*-0xc57+0x1a7*0xc+0x121e);const _0x387819=_0x3928();let _0x5c4efe=_0x387819[_0x460f4f];if(_0x3441['wHTTsf']===undefined){var _0x273bd5=function(_0xff5e51){const _0x16335f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x30b93f='',_0xd46d32='';for(let _0x465559=-0x1*0x76e+0x2f9*-0xd+-0x695*-0x7,_0x37c187,_0x572de7,_0x14ddd3=0x25*-0x35+-0xfa2+0x43*0x59;_0x572de7=_0xff5e51['charAt'](_0x14ddd3++);~_0x572de7&&(_0x37c187=_0x465559%(-0x217c+-0x2*0x63+-0x52*-0x6b)?_0x37c187*(-0x13ab+-0x581*-0x1+0x29*0x5a)+_0x572de7:_0x572de7,_0x465559++%(-0x20*-0x6+0x1*-0x183+0x1*0xc7))?_0x30b93f+=String['fromCharCode'](0x15*-0xe2+-0x1a50+0x2dd9&_0x37c187>>(-(-0x1*0x203b+-0x8*-0x444+-0x15*0x17)*_0x465559&-0x255+-0x264f+0x28aa)):0xda8*-0x2+-0xea1+0x4a9*0x9){_0x572de7=_0x16335f['indexOf'](_0x572de7);}for(let _0x5c72d7=0x1*-0xb0c+0x8c4+0x248,_0x5a1888=_0x30b93f['length'];_0x5c72d7<_0x5a1888;_0x5c72d7++){_0xd46d32+='%'+('00'+_0x30b93f['charCodeAt'](_0x5c72d7)['toString'](-0x1*0x23ce+0x25db+-0x1fd))['slice'](-(0x1*-0x677+-0x2f5*0xb+0x2700));}return decodeURIComponent(_0xd46d32);};_0x3441['rFyYcO']=_0x273bd5,_0x3441['nfyPqI']={},_0x3441['wHTTsf']=!![];}const _0x4a1ef3=_0x387819[0x2*-0x8c8+-0x5*0x311+-0x4b3*-0x7];_0x3441['zUbfwF']!==_0x4a1ef3&&(_0x3441['nfyPqI']={},_0x3441['zUbfwF']=_0x4a1ef3);const _0x2be342=_0x3441['nfyPqI'][_0x460f4f];return _0x2be342===undefined?(_0x5c4efe=_0x3441['rFyYcO'](_0x5c4efe),_0x3441['nfyPqI'][_0x460f4f]=_0x5c4efe):_0x5c4efe=_0x2be342,_0x5c4efe;}function sameUsage(_0x5a1888,_0x4d5602){const _0x294152=_0x11350d;return _0x5a1888[_0x294152(0xfb)]===_0x4d5602[_0x294152(0xfb)]&&_0x5a1888[_0x294152(0x112)]===_0x4d5602[_0x294152(0x112)]&&_0x5a1888[_0x294152(0x11a)]===_0x4d5602[_0x294152(0x11a)]&&_0x5a1888[_0x294152(0xf7)]===_0x4d5602[_0x294152(0xf7)];}
1
+ const REFRESH_DELAYS_MS = [100, 400, 1_000];
2
+ const CONTEXT_SNAPSHOT_TTL_MS = 30 * 60_000;
3
+ export class SessionContextService {
4
+ options;
5
+ snapshots = new Map();
6
+ snapshotTimers = new Map();
7
+ timers = new Map();
8
+ versions = new Map();
9
+ constructor(options) {
10
+ this.options = options;
11
+ }
12
+ async read(session) {
13
+ if (session.externalSessionId === null) {
14
+ this.clearSnapshot(session.id);
15
+ return { context: null, pending: false };
16
+ }
17
+ const usage = await this.options.runners.product(session.runner)?.readContextUsage(session);
18
+ if (usage === undefined) {
19
+ this.clearSnapshot(session.id);
20
+ return { context: null, pending: false };
21
+ }
22
+ const context = {
23
+ model: usage.model ?? session.model,
24
+ usedTokens: usage.usedTokens,
25
+ maxTokens: usage.maxTokens,
26
+ percentage: Math.round((usage.usedTokens / usage.maxTokens) * 1000) / 10
27
+ };
28
+ this.snapshots.set(session.id, context);
29
+ const previousTimer = this.snapshotTimers.get(session.id);
30
+ if (previousTimer !== undefined)
31
+ clearTimeout(previousTimer);
32
+ const timer = setTimeout(() => {
33
+ this.snapshotTimers.delete(session.id);
34
+ this.snapshots.delete(session.id);
35
+ }, CONTEXT_SNAPSHOT_TTL_MS);
36
+ timer.unref();
37
+ this.snapshotTimers.set(session.id, timer);
38
+ return { context, pending: false };
39
+ }
40
+ snapshot(sessionId) {
41
+ return this.snapshots.get(sessionId) ?? null;
42
+ }
43
+ schedule(input) {
44
+ const sessionId = typeof input === 'string' ? input : input.id;
45
+ const projectedSession = typeof input === 'string' ? undefined : input;
46
+ const pending = this.timers.get(sessionId);
47
+ if (pending !== undefined)
48
+ clearTimeout(pending);
49
+ this.timers.delete(sessionId);
50
+ const version = (this.versions.get(sessionId) ?? 0) + 1;
51
+ this.versions.set(sessionId, version);
52
+ let published = this.snapshots.get(sessionId);
53
+ const attempt = (index) => {
54
+ const timer = setTimeout(() => {
55
+ if (this.timers.get(sessionId) === timer)
56
+ this.timers.delete(sessionId);
57
+ if (!this.current(sessionId, version))
58
+ return;
59
+ const session = this.options.session(sessionId) ?? projectedSession;
60
+ if (session === undefined || session.externalSessionId === null)
61
+ return;
62
+ void this.read(session)
63
+ .then(({ context }) => {
64
+ if (!this.current(sessionId, version))
65
+ return;
66
+ if (context === null) {
67
+ if (published === undefined)
68
+ return;
69
+ published = undefined;
70
+ this.options.publish({
71
+ sessionId: session.id,
72
+ workspaceId: session.workspaceId,
73
+ context: null,
74
+ pending: false
75
+ });
76
+ }
77
+ else if (published === undefined || !sameUsage(published, context)) {
78
+ published = context;
79
+ this.options.publish({
80
+ sessionId: session.id,
81
+ workspaceId: session.workspaceId,
82
+ context,
83
+ pending: false
84
+ });
85
+ }
86
+ })
87
+ .catch(() => undefined)
88
+ .finally(() => {
89
+ if (!this.current(sessionId, version))
90
+ return;
91
+ if (index + 1 < REFRESH_DELAYS_MS.length)
92
+ attempt(index + 1);
93
+ else
94
+ this.versions.delete(sessionId);
95
+ });
96
+ }, REFRESH_DELAYS_MS[index]);
97
+ this.timers.set(sessionId, timer);
98
+ timer.unref();
99
+ };
100
+ attempt(0);
101
+ }
102
+ dispose() {
103
+ for (const timer of this.timers.values())
104
+ clearTimeout(timer);
105
+ for (const timer of this.snapshotTimers.values())
106
+ clearTimeout(timer);
107
+ this.timers.clear();
108
+ this.snapshotTimers.clear();
109
+ this.versions.clear();
110
+ this.snapshots.clear();
111
+ }
112
+ current(sessionId, version) {
113
+ return !this.options.stopped() && this.versions.get(sessionId) === version;
114
+ }
115
+ clearSnapshot(sessionId) {
116
+ const timer = this.snapshotTimers.get(sessionId);
117
+ if (timer !== undefined)
118
+ clearTimeout(timer);
119
+ this.snapshotTimers.delete(sessionId);
120
+ this.snapshots.delete(sessionId);
121
+ }
122
+ }
123
+ function sameUsage(left, right) {
124
+ return (left.model === right.model &&
125
+ left.usedTokens === right.usedTokens &&
126
+ left.maxTokens === right.maxTokens &&
127
+ left.percentage === right.percentage);
128
+ }
@@ -1,2 +1,9 @@
1
- /* mar-release-protected */
2
- var _0x1172d1=_0x273c;function _0x3e88(){var _0x1a2a1c=['mJG0mtyWmZzRv2LJBNC','mZi4mZmYtNfAuwHS','ndu3nJi2m0XNsKHdyW','BwvZC2fNzvjLC3vTzuzHAwX1CMvZ','mJe2mtG2C3zhywrr','zMfPBhvYzvrPBwvYCW','zxH0zxjUywXby3rPDML0Eq','nZmXmJi0mMnQDeDHza','zgLYzwn0tMf0AxzL','mtqWndu2AKrdwujx','CMvZDw1LrMfPBhvYzurLDgfPBhm','nfP6rMruCW','mZb5tg1ID2G','ndL4wxz3quy','CMvZDw1LrMfPBhvYzxm','mtGYode3ourbwKLduq','CMvZDw1Lzej5rgLYzwn0swq','nvDfvvjuEG'];_0x3e88=function(){return _0x1a2a1c;};return _0x3e88();}function _0x273c(_0x3d9feb,_0x1498cb){_0x3d9feb=_0x3d9feb-(-0x3*0x1a2+0xc97*0x1+-0x661*0x1);var _0x29c442=_0x3e88();var _0x171673=_0x29c442[_0x3d9feb];if(_0x273c['zizmkG']===undefined){var _0x37a53c=function(_0x41c0b6){var _0x388b04='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x1ee464='',_0x4c7f46='';for(var _0x27bce1=-0x1*-0x136b+0x1bc5*0x1+0x2*-0x1798,_0x3462aa,_0x314de0,_0x19caf9=0xe27+0x19d*-0x5+-0x2*0x30b;_0x314de0=_0x41c0b6['charAt'](_0x19caf9++);~_0x314de0&&(_0x3462aa=_0x27bce1%(0x119f*0x2+0x921+-0x2c5b)?_0x3462aa*(-0x684+0x9eb+0x10d*-0x3)+_0x314de0:_0x314de0,_0x27bce1++%(-0xe2*0x11+0x265e+-0x298*0x9))?_0x1ee464+=String['fromCharCode'](-0xe45*-0x1+-0x1*-0xbe5+-0x192b*0x1&_0x3462aa>>(-(0x2*0xeae+0x3b3*-0x3+-0x1*0x1241)*_0x27bce1&-0x22a6+-0x18f8*0x1+0x3ba4)):-0x3d7+0x24ea+0x1*-0x2113){_0x314de0=_0x388b04['indexOf'](_0x314de0);}for(var _0x527cba=0xcb2*-0x2+0x5ff*0x1+0x1*0x1365,_0x28548b=_0x1ee464['length'];_0x527cba<_0x28548b;_0x527cba++){_0x4c7f46+='%'+('00'+_0x1ee464['charCodeAt'](_0x527cba)['toString'](0xcca*0x3+0xd56+-0x295*0x14))['slice'](-(-0x24d8+-0x569+-0x15d*-0x1f));}return decodeURIComponent(_0x4c7f46);};_0x273c['WYSiGC']=_0x37a53c,_0x273c['rANxJJ']={},_0x273c['zizmkG']=!![];}var _0x3984b9=_0x29c442[-0x2388+-0x19*0xc5+0x1*0x36c5];_0x273c['etovuF']!==_0x3984b9&&(_0x273c['rANxJJ']={},_0x273c['etovuF']=_0x3984b9);var _0x57b4e4=_0x273c['rANxJJ'][_0x3d9feb];return _0x57b4e4===undefined?(_0x171673=_0x273c['WYSiGC'](_0x171673),_0x273c['rANxJJ'][_0x3d9feb]=_0x171673):_0x171673=_0x57b4e4,_0x171673;}(function(_0x195965,_0x5e6b39){var _0x527879=_0x273c,_0xd8da65=_0x195965();while(!![]){try{var _0x3e13d4=-parseInt(_0x527879(0x15c))/(0x1*0x1cff+-0x107*0xf+-0xd95)+parseInt(_0x527879(0x159))/(0x35c*-0x6+0x1*0x685+0xda5)+parseInt(_0x527879(0x15a))/(0x1*0x179b+-0x684+-0x1*0x1114)*(parseInt(_0x527879(0x151))/(0x39*0x81+0x1*0x2c5+-0x1f7a))+-parseInt(_0x527879(0x157))/(-0x10bb+-0x724*-0x5+-0x12f4)*(-parseInt(_0x527879(0x15f))/(0x2343*-0x1+0x5f7+-0x12*-0x1a1))+parseInt(_0x527879(0x153))/(-0x52+-0x90d*-0x3+0x2f*-0x92)*(parseInt(_0x527879(0x161))/(-0x43f*0x7+-0x7f9*-0x2+0xdcf))+parseInt(_0x527879(0x155))/(-0x2131+-0x1d69*-0x1+-0x1*-0x3d1)*(parseInt(_0x527879(0x152))/(-0x6c8+-0xd45+0x1417))+-parseInt(_0x527879(0x158))/(0x1*0x10fc+0x2405*0x1+-0x34f6);if(_0x3e13d4===_0x5e6b39)break;else _0xd8da65['push'](_0xd8da65['shift']());}catch(_0xa54562){_0xd8da65['push'](_0xd8da65['shift']());}}}(_0x3e88,0x283c7+0x3f5b9+0xa4e*0x9e));export class SessionDomainState{[_0x1172d1(0x160)]=new Map();[_0x1172d1(0x15e)]=new Map();[_0x1172d1(0x156)]=new Map();[_0x1172d1(0x154)]=new Map();[_0x1172d1(0x15b)]=new Map();[_0x1172d1(0x150)]=new Map();[_0x1172d1(0x15d)]=new Map();}
1
+ export class SessionDomainState {
2
+ directNative = new Map();
3
+ externalActivity = new Map();
4
+ resumedByDirectId = new Map();
5
+ resumeFailures = new Map();
6
+ messageResumeFailures = new Map();
7
+ resumeFailureDetails = new Map();
8
+ failureTimers = new Map();
9
+ }
@@ -1,2 +1,86 @@
1
- /* mar-release-protected */
2
- const _0x387b29=_0xd830;function _0xd830(_0x27032e,_0x4786bd){_0x27032e=_0x27032e-(-0x8e*-0x1d+0xb35+-0x1ad4);const _0x22a67e=_0x585e();let _0x9ce103=_0x22a67e[_0x27032e];if(_0xd830['lqnaMz']===undefined){var _0x28cb70=function(_0x276532){const _0x2a1a79='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x56fcdf='',_0x2356f5='';for(let _0x205d1b=-0x1*-0x169+0x59c+-0x705*0x1,_0xa3c28f,_0xb36d17,_0x1d4dbb=-0x56*0xe+-0x1*-0x1395+-0xee1*0x1;_0xb36d17=_0x276532['charAt'](_0x1d4dbb++);~_0xb36d17&&(_0xa3c28f=_0x205d1b%(-0x18db*-0x1+0x22cb*0x1+0x1dd1*-0x2)?_0xa3c28f*(0xe70+-0x25cf+-0x179f*-0x1)+_0xb36d17:_0xb36d17,_0x205d1b++%(-0xc5f+0xda1+-0x3*0x6a))?_0x56fcdf+=String['fromCharCode'](-0x1bb7+-0x2263+-0x22d*-0x1d&_0xa3c28f>>(-(0xf23+-0x13f9*-0x1+-0x231a)*_0x205d1b&-0xbcf+-0x1175+0x2e*0xa3)):0x974+0x1cf*-0x9+-0x6d3*-0x1){_0xb36d17=_0x2a1a79['indexOf'](_0xb36d17);}for(let _0x3dfbd8=-0x22d1+-0x1c36+0x5*0xc9b,_0x5d7fc8=_0x56fcdf['length'];_0x3dfbd8<_0x5d7fc8;_0x3dfbd8++){_0x2356f5+='%'+('00'+_0x56fcdf['charCodeAt'](_0x3dfbd8)['toString'](-0x251+-0x22e5+-0x16f*-0x1a))['slice'](-(0x21a8+0x1*-0x59f+-0x1c07));}return decodeURIComponent(_0x2356f5);};_0xd830['IJpitP']=_0x28cb70,_0xd830['FXMIpJ']={},_0xd830['lqnaMz']=!![];}const _0x1f1d74=_0x22a67e[0x14bc+-0x187f+0x3c3];_0xd830['QwPLwx']!==_0x1f1d74&&(_0xd830['FXMIpJ']={},_0xd830['QwPLwx']=_0x1f1d74);const _0x442ad7=_0xd830['FXMIpJ'][_0x27032e];return _0x442ad7===undefined?(_0x9ce103=_0xd830['IJpitP'](_0x9ce103),_0xd830['FXMIpJ'][_0x27032e]=_0x9ce103):_0x9ce103=_0x442ad7,_0x9ce103;}(function(_0x5139ca,_0x2f71f8){const _0x4f4ae5=_0xd830,_0x421558=_0x5139ca();while(!![]){try{const _0x563cb7=-parseInt(_0x4f4ae5(0x8d))/(-0x1983+-0x2347+-0x4f*-0xc5)+-parseInt(_0x4f4ae5(0x92))/(-0x8a7*0x3+0x794+0x3*0x621)*(-parseInt(_0x4f4ae5(0x80))/(-0x25b6+0x184f+0xd6a))+parseInt(_0x4f4ae5(0xa0))/(-0x1014+-0x1*0x4cd+0x14e5)*(-parseInt(_0x4f4ae5(0x9f))/(-0x2*0x602+-0x2327+0x2f30))+-parseInt(_0x4f4ae5(0x81))/(-0x1d4e+0x5*-0x407+0x3177)+-parseInt(_0x4f4ae5(0x7e))/(-0x37*0x1f+-0xe75+0x1525)*(parseInt(_0x4f4ae5(0x94))/(-0x100f*-0x1+0x799+-0xfc*0x18))+-parseInt(_0x4f4ae5(0x7f))/(-0x3*-0x32+0x1f1d+-0x1faa)+parseInt(_0x4f4ae5(0x8f))/(-0x146b*-0x1+-0x1*-0xe09+-0x226a);if(_0x563cb7===_0x2f71f8)break;else _0x421558['push'](_0x421558['shift']());}catch(_0x3d3bdc){_0x421558['push'](_0x421558['shift']());}}}(_0x585e,0x1d*0x2a25+-0x17cbb+0x32ee7));function _0x585e(){const _0x33e747=['D2fPDa','BwLNCMf0zu1PC3nPB24','DhvYBNm','u0vtu0LptL9oqvrjvKvFsurFveLnru9vva','yM9VDhn0CMfWswrZ','Dw5Yzwy','CMvZB2X2zq','BgLZDfj1BNngB3jtzxnZAw9U','mJm0nvD3Du9hBW','mJa0ohLJyxftBa','D2fPDgvYCW','BwLNCMf0zvf1zxvL','CMvQzwn0','CgvYC2LZDa','CMvTB3zLqwDLBNrtzxnZAw9U','BwLNCMf0zvj1BM5LCLn0yxrL','BwLNCMf0zunVBw1HBMrZ','BwfYA0jVB3rZDhjHCa','B3b0Aw9UCW','ChjVBw90zq','DgLTzxi','ntiYntC1ou1ZzNDXta','nJi0nJi1mMDWsfLLDa','ntqZy2HIC09g','mZyWotG1oe5QCxfVDG','zw1PDfnLC3nPB24','CNvUDgLTzq','zw1PDff1zxvL','ywrK','BgLZDenVBNzLCNnHDgLVBLr1CM5Z','zgvSzxrL','ChjVBwLZzq','C2v0','zw1PDfj1BG','tK9erv9tve9queve','ChjVBw90zvnLC3nPB25jzgvUDgL0Eq','ntC0nZy2B3b0vKXh','y2XLyxi','mJCXmte2mJbfCfPOAhK','z2v0qwDLBNrtzxnZAw9U','zgLZCg9Zzq','nJi5ohbYtu9byW','DMfSDwvZ','ohz3vNrYzG','z2v0','zw1PDfr1CM4'];_0x585e=function(){return _0x33e747;};return _0x585e();}export class SessionIdentityService{[_0x387b29(0x7b)];[_0x387b29(0x9b)]=new Set();[_0x387b29(0xa1)]=new Map();constructor(_0x11c017){const _0x5e0047=_0x387b29;this[_0x5e0047(0x7b)]=_0x11c017;}[_0x387b29(0x7a)](_0x5099f9){const _0x40c95b=_0x387b29;this[_0x40c95b(0x9b)][_0x40c95b(0x85)](_0x5099f9);}[_0x387b29(0x7c)](_0x2cfe49,_0x56b970){const _0x5f169a=_0x387b29,_0xa0811e=this[_0x5f169a(0x7b)][_0x5f169a(0x83)][_0x5f169a(0x90)](_0x2cfe49);this[_0x5f169a(0x7b)][_0x5f169a(0x83)][_0x5f169a(0x8c)](_0x2cfe49,_0x56b970);if(_0xa0811e!==undefined)this[_0x5f169a(0x7b)][_0x5f169a(0xa4)](_0xa0811e,_0x56b970);this[_0x5f169a(0x7b)][_0x5f169a(0x98)](_0x2cfe49,_0x56b970),this[_0x5f169a(0x7b)][_0x5f169a(0x79)](_0x2cfe49,_0x56b970),this[_0x5f169a(0x7b)][_0x5f169a(0xa2)](_0x2cfe49,_0x56b970),this[_0x5f169a(0x7b)][_0x5f169a(0x78)](_0x2cfe49,_0x56b970),this[_0x5f169a(0x9b)][_0x5f169a(0x87)](_0x2cfe49);const _0x4e06ea=this[_0x5f169a(0xa1)][_0x5f169a(0x95)](_0x2cfe49);_0x4e06ea!==undefined&&(clearTimeout(_0x4e06ea[_0x5f169a(0x7d)]),this[_0x5f169a(0xa1)][_0x5f169a(0x87)](_0x2cfe49),_0x4e06ea[_0x5f169a(0x9d)](_0x56b970));const _0x5a276e=this[_0x5f169a(0x7b)][_0x5f169a(0x83)][_0x5f169a(0x90)](_0x56b970);if(_0x5a276e===undefined)return;this[_0x5f169a(0x7b)][_0x5f169a(0x82)](_0x5a276e);for(const _0x5afef9 of this[_0x5f169a(0x7b)][_0x5f169a(0x83)][_0x5f169a(0x9e)](_0x56b970))this[_0x5f169a(0x7b)][_0x5f169a(0x8a)](_0x5afef9);this[_0x5f169a(0x7b)][_0x5f169a(0x84)](_0x56b970);for(const _0x119ee5 of this[_0x5f169a(0x7b)][_0x5f169a(0x83)][_0x5f169a(0x86)]({'sessionId':_0x56b970})[_0x5f169a(0x99)])this[_0x5f169a(0x7b)][_0x5f169a(0x96)](_0x119ee5);}[_0x387b29(0x97)](_0x56d3e7){const _0xcf2706=_0x387b29,_0x5ab121=this[_0xcf2706(0xa1)][_0xcf2706(0x95)](_0x56d3e7);if(_0x5ab121!==undefined)return _0x5ab121[_0xcf2706(0x88)];let _0x46c844,_0x57dc50;const _0x414f88=new Promise((_0x238148,_0x940908)=>{_0x46c844=_0x238148,_0x57dc50=_0x940908;}),_0x18b2e2=setTimeout(()=>{const _0x4969c1=_0xcf2706;this[_0x4969c1(0xa1)][_0x4969c1(0x87)](_0x56d3e7),_0x57dc50(new Error(_0x4969c1(0x9a)));},-0x4012+0xafca+0x14*0x46);return _0x18b2e2[_0xcf2706(0x9c)](),this[_0xcf2706(0xa1)][_0xcf2706(0x89)](_0x56d3e7,{'promise':_0x414f88,'resolve':_0x46c844,'reject':_0x57dc50,'timer':_0x18b2e2}),_0x414f88;}[_0x387b29(0xa3)](_0x3e110a,_0x87d29b){const _0xb7ab0b=_0x387b29,_0x209762=this[_0xb7ab0b(0xa1)][_0xb7ab0b(0x95)](_0x3e110a);if(_0x209762===undefined)return;clearTimeout(_0x209762[_0xb7ab0b(0x7d)]),this[_0xb7ab0b(0xa1)][_0xb7ab0b(0x87)](_0x3e110a),_0x209762[_0xb7ab0b(0xa3)](new Error(_0x87d29b)),queueMicrotask(()=>{const _0x4a3f54=_0xb7ab0b;try{this[_0x4a3f54(0x7b)][_0x4a3f54(0x83)][_0x4a3f54(0x77)](_0x3e110a),this[_0x4a3f54(0x9b)][_0x4a3f54(0x87)](_0x3e110a);}catch{}});}[_0x387b29(0x91)](){const _0x481336=_0x387b29;for(const _0x405238 of this[_0x481336(0xa1)][_0x481336(0x93)]()){clearTimeout(_0x405238[_0x481336(0x7d)]),_0x405238[_0x481336(0xa3)](new Error(_0x481336(0x8b)));}this[_0x481336(0xa1)][_0x481336(0x8e)](),this[_0x481336(0x9b)][_0x481336(0x8e)]();}}
1
+ export class SessionIdentityService {
2
+ options;
3
+ bootstrapIds = new Set();
4
+ waiters = new Map();
5
+ constructor(options) {
6
+ this.options = options;
7
+ }
8
+ markBootstrap(sessionId) {
9
+ this.bootstrapIds.add(sessionId);
10
+ }
11
+ promote(sessionId, nativeSessionId) {
12
+ const current = this.options.runtime.getAgentSession(sessionId);
13
+ this.options.runtime.promoteSessionIdentity(sessionId, nativeSessionId);
14
+ if (current !== undefined)
15
+ this.options.persist(current, nativeSessionId);
16
+ this.options.migrateMission(sessionId, nativeSessionId);
17
+ this.options.migrateCommands(sessionId, nativeSessionId);
18
+ this.options.migrateQueue(sessionId, nativeSessionId);
19
+ this.options.migrateRunnerState(sessionId, nativeSessionId);
20
+ this.bootstrapIds.delete(sessionId);
21
+ const waiter = this.waiters.get(sessionId);
22
+ if (waiter !== undefined) {
23
+ clearTimeout(waiter.timer);
24
+ this.waiters.delete(sessionId);
25
+ waiter.resolve(nativeSessionId);
26
+ }
27
+ const session = this.options.runtime.getAgentSession(nativeSessionId);
28
+ if (session === undefined)
29
+ return;
30
+ this.options.emitSession(session);
31
+ for (const run of this.options.runtime.listRunsForSession(nativeSessionId))
32
+ this.options.emitRun(run);
33
+ this.options.emitQueue(nativeSessionId);
34
+ for (const turn of this.options.runtime.listConversationTurns({ sessionId: nativeSessionId })
35
+ .turns)
36
+ this.options.emitTurn(turn);
37
+ }
38
+ wait(bootstrapSessionId) {
39
+ const existing = this.waiters.get(bootstrapSessionId);
40
+ if (existing !== undefined)
41
+ return existing.promise;
42
+ let resolveIdentity;
43
+ let rejectIdentity;
44
+ const promise = new Promise((resolve, reject) => {
45
+ resolveIdentity = resolve;
46
+ rejectIdentity = reject;
47
+ });
48
+ const timer = setTimeout(() => {
49
+ this.waiters.delete(bootstrapSessionId);
50
+ rejectIdentity(new Error('SESSION_NATIVE_ID_TIMEOUT'));
51
+ }, 30_000);
52
+ timer.unref();
53
+ this.waiters.set(bootstrapSessionId, {
54
+ promise,
55
+ resolve: resolveIdentity,
56
+ reject: rejectIdentity,
57
+ timer
58
+ });
59
+ return promise;
60
+ }
61
+ reject(sessionId, code) {
62
+ const waiter = this.waiters.get(sessionId);
63
+ if (waiter === undefined)
64
+ return;
65
+ clearTimeout(waiter.timer);
66
+ this.waiters.delete(sessionId);
67
+ waiter.reject(new Error(code));
68
+ queueMicrotask(() => {
69
+ try {
70
+ this.options.runtime.removeAgentSession(sessionId);
71
+ this.bootstrapIds.delete(sessionId);
72
+ }
73
+ catch {
74
+ // Runner cleanup may still own the bootstrap Session.
75
+ }
76
+ });
77
+ }
78
+ dispose() {
79
+ for (const waiter of this.waiters.values()) {
80
+ clearTimeout(waiter.timer);
81
+ waiter.reject(new Error('NODE_STOPPED'));
82
+ }
83
+ this.waiters.clear();
84
+ this.bootstrapIds.clear();
85
+ }
86
+ }