@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.
- package/LICENSE +202 -0
- package/NOTICE +4 -0
- package/dist/capabilities.js +110 -2
- package/dist/claude-agent-sdk.js +330 -2
- package/dist/claude-channel.js +44 -2
- package/dist/codex-app-server.js +510 -2
- package/dist/config.js +106 -2
- package/dist/connector/node-connector-options.js +1 -2
- package/dist/connector/node-operation-router.js +22 -2
- package/dist/connector.js +1736 -2
- package/dist/control-outbound-scheduler.js +153 -2
- package/dist/database.js +639 -2
- package/dist/fake-runner.js +129 -2
- package/dist/git-askpass.js +12 -0
- package/dist/git-execution-helper.js +266 -0
- package/dist/health.js +3 -2
- package/dist/main.js +57 -2
- package/dist/mcp-installation-model.js +1 -2
- package/dist/migrations/v004.js +55 -3
- package/dist/migrations/v005.js +13 -3
- package/dist/migrations/v006.js +90 -3
- package/dist/migrations/v007.js +22 -3
- package/dist/migrations/v008.js +18 -3
- package/dist/migrations/v009.js +70 -4
- package/dist/migrations/v010.js +43 -3
- package/dist/migrations/v011.js +20 -3
- package/dist/migrations/v012.js +8 -0
- package/dist/native-jsonl-reader.js +186 -2
- package/dist/native-session-history.js +1143 -2
- package/dist/opencode-runtime.js +80 -2
- package/dist/opencode-server.js +259 -2
- package/dist/operational.js +122 -2
- package/dist/process-tree.js +18 -2
- package/dist/ripgrep-binary.js +31 -2
- package/dist/rotating-log.js +67 -2
- package/dist/runner/abstract-runner.js +260 -2
- package/dist/runner/claude/managed-run-controller.js +355 -2
- package/dist/runner/claude/tool-normalizer.js +120 -2
- package/dist/runner/claude-code-runner.js +303 -2
- package/dist/runner/codex/composer-image-markers.js +8 -2
- package/dist/runner/codex/conversation-parser.js +913 -2
- package/dist/runner/codex/managed-run-controller.js +494 -2
- package/dist/runner/codex/tool-normalizer.js +214 -2
- package/dist/runner/codex-runner.js +585 -2
- package/dist/runner/fake-test-runner.js +47 -2
- package/dist/runner/mar-agent/conversation-normalizer.js +644 -2
- package/dist/runner/mar-agent/executor-stdio-client-transport.js +139 -2
- package/dist/runner/mar-agent/generated-images.js +41 -2
- package/dist/runner/mar-agent/history-projection.js +106 -2
- package/dist/runner/mar-agent/hosted-conversation-runtime.js +446 -2
- package/dist/runner/mar-agent/managed-run-controller.js +785 -2
- package/dist/runner/mar-agent/mcp-client-pool.js +233 -2
- package/dist/runner/mar-agent/runtime-model-factory.js +326 -2
- package/dist/runner/mar-agent-runner.js +458 -2
- package/dist/runner/opencode/conversation-parser.js +221 -2
- package/dist/runner/opencode/managed-run-controller.js +588 -2
- package/dist/runner/opencode/tool-normalizer.js +80 -2
- package/dist/runner/opencode-runner.js +426 -2
- package/dist/runner/runner-registry.js +87 -2
- package/dist/runner-command-engine.js +71 -2
- package/dist/runner-profiles.js +323 -2
- package/dist/runner-usage.js +190 -2
- package/dist/runtime-command-detector.js +73 -2
- package/dist/runtime-model.js +1 -2
- package/dist/runtime-state.js +1509 -2
- package/dist/service/attachment-domain-state.js +7 -2
- package/dist/service/bubblewrap-sandbox-executor.js +543 -2
- package/dist/service/continuous-run-coordinator.js +425 -2
- package/dist/service/conversation-history-service.js +552 -2
- package/dist/service/conversation-hosting-capability-service.js +61 -2
- package/dist/service/conversation-hosting-enablement-service.js +91 -2
- package/dist/service/conversation-hosting-maintenance-service.js +174 -2
- package/dist/service/conversation-segment-service.js +162 -2
- package/dist/service/conversation-template-node-service.js +992 -2
- package/dist/service/external-session-resume-service.js +152 -2
- package/dist/service/fake-managed-run-service.js +60 -2
- package/dist/service/git-execution-service.js +418 -0
- package/dist/service/git-operation-service.js +57 -0
- package/dist/service/hosted-conversation-node-service.js +1982 -2
- package/dist/service/hosted-conversation-store.js +1405 -2
- package/dist/service/managed-runner-session-service.js +35 -2
- package/dist/service/mar-agent-model-transport-test-service.js +88 -2
- package/dist/service/mcp-installation-verifier.js +87 -2
- package/dist/service/mcp-node-operation-service.js +90 -2
- package/dist/service/mission-mcp-server.js +124 -2
- package/dist/service/mission-mcp-stdio.js +40 -2
- package/dist/service/mission-runtime.js +142 -2
- package/dist/service/native-session-projection-service.js +274 -2
- package/dist/service/native-session-watch-service.js +683 -2
- package/dist/service/node-connection-lifecycle-service.js +88 -2
- package/dist/service/node-control-channel.js +85 -2
- package/dist/service/node-control-message-service.js +109 -2
- package/dist/service/node-request-service.js +62 -2
- package/dist/service/node-run-event-bridge.js +88 -2
- package/dist/service/node-terminal-channel.js +202 -2
- package/dist/service/node-upgrade-coordinator.js +137 -2
- package/dist/service/node-workspace-coordinator.js +97 -2
- package/dist/service/recent-run-projection-service.js +99 -2
- package/dist/service/run-attachment-service.js +321 -2
- package/dist/service/run-domain-state.js +4 -2
- package/dist/service/run-event-service.js +246 -2
- package/dist/service/run-ownership-policy.js +22 -2
- package/dist/service/run-workbench-service.js +120 -2
- package/dist/service/runner-channel-message-service.js +20 -2
- package/dist/service/runner-interaction-service.js +243 -2
- package/dist/service/runner-service.js +69 -2
- package/dist/service/runtime-credential-control-service.js +95 -2
- package/dist/service/session-catalog-service.js +404 -2
- package/dist/service/session-command-service.js +125 -2
- package/dist/service/session-context-service.js +128 -2
- package/dist/service/session-domain-state.js +9 -2
- package/dist/service/session-identity-service.js +86 -2
- package/dist/service/session-lifecycle-service.js +248 -2
- package/dist/service/session-message-service.js +270 -2
- package/dist/service/session-presentation-service.js +43 -2
- package/dist/service/session-query-service.js +82 -2
- package/dist/service/session-watch-slot-coordinator.js +21 -2
- package/dist/service/skill-directory-service.js +238 -2
- package/dist/service/skill-install-service.js +434 -2
- package/dist/service/skill-node-operation-service.js +206 -2
- package/dist/service/terminal-relay-state.js +3 -2
- package/dist/service/terminal-service.js +90 -2
- package/dist/service/web-search-error.js +40 -2
- package/dist/service/workbench-event-service.js +21 -2
- package/dist/service/workbench-manifest-service.js +69 -2
- package/dist/service/workspace-change-service.js +290 -2
- package/dist/service/workspace-content-search-service.js +457 -2
- package/dist/service/workspace-domain-state.js +41 -2
- package/dist/service/workspace-file-service.js +150 -2
- package/dist/service/workspace-git-exclude-service.js +119 -2
- package/dist/service/workspace-queue-workbench-service.js +176 -2
- package/dist/service/workspace-service.js +92 -2
- package/dist/service/workspace-session-service.js +154 -2
- package/dist/service/workspace-upload-service.js +262 -2
- package/dist/service/workspace-watch-controller.js +68 -2
- package/dist/service/workspace-watch-service.js +170 -2
- package/dist/service/workspace-watch-snapshot-service.js +218 -2
- package/dist/service/workspace-workbench-service.js +239 -2
- package/dist/service.js +91 -2
- package/dist/storage.js +32 -2
- package/dist/supervisor.js +136 -2
- package/dist/terminal.js +496 -2
- package/dist/util/git-credential-client.js +32 -0
- package/dist/util/node-operation-data.js +9 -2
- package/dist/util/node-operation-parsers.js +382 -2
- package/dist/util/personal-instructions.js +34 -2
- package/dist/util/runner-error.js +70 -2
- package/dist/util/runner-native-session-parsers.js +510 -2
- package/dist/util/safe-error.js +8 -2
- package/dist/util/secret-environment.js +25 -2
- package/dist/workspace.js +1793 -2
- package/package.json +11 -8
- package/vendor/ripgrep/darwin-arm64/rg +0 -0
- package/vendor/ripgrep/darwin-x64/rg +0 -0
- package/vendor/ripgrep/manifest.json +12 -0
- package/README.md +0 -42
- package/dist/event-buffer.js +0 -2
- package/dist/migrations/v001.js +0 -107
- package/dist/migrations/v002.js +0 -2
- package/dist/migrations/v003.js +0 -2
- package/dist/service/mcp-package-installer.js +0 -2
|
@@ -1,2 +1,214 @@
|
|
|
1
|
-
|
|
2
|
-
(function(_0x4179a0,_0x4c31d7){const _0x1d6644=_0x22ed,_0x37a17d=_0x4179a0();while(!![]){try{const _0x24aee0=-parseInt(_0x1d6644(0x95))/(-0x497+-0xd57*-0x2+-0x1616)+-parseInt(_0x1d6644(0xb2))/(0x21bb+0x18*-0x1a+-0x1f49)*(-parseInt(_0x1d6644(0xca))/(-0x1b08+-0x1*-0xdcb+-0x20*-0x6a))+-parseInt(_0x1d6644(0x8f))/(0x3*0x807+0xa33+-0x56*0x66)*(-parseInt(_0x1d6644(0xce))/(-0x89b+0x1*0xda3+-0x503))+-parseInt(_0x1d6644(0x9a))/(0x2fd*0x7+0x731*-0x3+0xae)*(parseInt(_0x1d6644(0x9c))/(0xba*-0x30+-0xe17+0x30fe))+-parseInt(_0x1d6644(0xc4))/(0x3*0x5c9+-0x18d1*-0x1+0xe0c*-0x3)+parseInt(_0x1d6644(0x9f))/(-0x1dd2+0x270b*0x1+-0x70*0x15)*(-parseInt(_0x1d6644(0xb1))/(-0x1f78+0x168b+-0x8f7*-0x1))+-parseInt(_0x1d6644(0xc8))/(-0x1*-0x491+-0x1d9e+0x1918)*(-parseInt(_0x1d6644(0x96))/(-0x884*-0x2+0x1a*0x178+-0xd6*0x42));if(_0x24aee0===_0x4c31d7)break;else _0x37a17d['push'](_0x37a17d['shift']());}catch(_0x5f1fd7){_0x37a17d['push'](_0x37a17d['shift']());}}}(_0x2f9e,-0x45*-0x126e+0x1a2b1+-0xc31*-0x11));import{compactRunnerText}from'../../util/node-operation-parsers.js';export function normalizeCodexTool(_0x2f8fcc){const _0x58ac0c=_0x22ed,_0x5cb55a=unwrapCodexExec(_0x2f8fcc[_0x58ac0c(0xcc)],_0x2f8fcc[_0x58ac0c(0xa1)]),_0xf27fa3=compactRunnerText(_0x5cb55a?.[_0x58ac0c(0xcc)]??_0x2f8fcc[_0x58ac0c(0xcc)],-0x1b9c+-0x4*-0x33e+0xcc*0x13)||_0x58ac0c(0xc2),_0x13930e=_0x5cb55a?.[_0x58ac0c(0xa1)]??_0x2f8fcc[_0x58ac0c(0xa1)],_0x513fd6=_0x2f8fcc[_0x58ac0c(0xaa)]??[],_0x50cd42=codexSubagentProjection(_0x2f8fcc[_0x58ac0c(0xa0)],_0xf27fa3,_0x13930e,_0x2f8fcc[_0x58ac0c(0xbd)]);if(_0xf27fa3===_0x58ac0c(0xc3)){const _0x3cc6e0=patchFileChanges(_0x5cb55a?.[_0x58ac0c(0xa6)]);if(_0x3cc6e0[_0x58ac0c(0xba)]>-0xc2b+-0x14e*0xc+0x1bd3)return{'kind':_0x58ac0c(0xad),'payload':{'changes':_0x3cc6e0}};}if(isCommandTool(_0xf27fa3)){const _0x2b857f=compactRunnerText(_0x2f8fcc[_0x58ac0c(0xbd)]??'',0x100b+0x2db+-0x142a*-0x1);if(_0x2f8fcc[_0x58ac0c(0x90)]===!![])return{'kind':_0x58ac0c(0x8c),'payload':{'outputPreview':_0x2b857f,'truncated':_0x2f8fcc[_0x58ac0c(0xb7)]===!![]||(_0x2f8fcc[_0x58ac0c(0xbd)]?.[_0x58ac0c(0xba)]??-0x1*0xbb+0x2*0x1259+-0x3*0xbfd)>-0x3*-0x88f+-0x1078+0x1ddb,..._0x513fd6[_0x58ac0c(0xba)]===0x5*-0x71b+0x8b8+0x1*0x1acf?{}:{'attachments':_0x513fd6}}};const _0x47e8a2=record(_0x13930e),_0x45177f=typeof _0x13930e===_0x58ac0c(0xa8)?_0x13930e:typeof _0x47e8a2?.[_0x58ac0c(0x84)]===_0x58ac0c(0xa8)?_0x47e8a2[_0x58ac0c(0x84)]:typeof _0x47e8a2?.[_0x58ac0c(0xb3)]===_0x58ac0c(0xa8)?_0x47e8a2[_0x58ac0c(0xb3)]:_0x2f8fcc[_0x58ac0c(0x94)]||_0xf27fa3;return{'kind':_0x58ac0c(0x8c),'payload':{'command':compactRunnerText(_0x45177f,0x2*0x1754+0x25ef+-0x2d87),'cwd':typeof _0x47e8a2?.[_0x58ac0c(0xa4)]===_0x58ac0c(0xa8)?compactRunnerText(_0x47e8a2[_0x58ac0c(0xa4)],0x65+-0xf*0x1f5+0x2cf6):null,'outputPreview':_0x2b857f,'outputRef':null,'exitCode':null,'durationMs':null,'truncated':_0x2f8fcc[_0x58ac0c(0xb7)]===!![]||_0x45177f[_0x58ac0c(0xba)]>0x276a+-0x4e*0x2f+0x1bf*0x8||(_0x2f8fcc[_0x58ac0c(0xbd)]?.[_0x58ac0c(0xba)]??-0xcb3*-0x2+-0xc74+-0xcf2)>0xe7b+-0x4d31*-0x1+-0x349c,..._0x513fd6[_0x58ac0c(0xba)]===0x1404+0x109*0x23+0x51d*-0xb?{}:{'attachments':_0x513fd6}}};}if(_0x2f8fcc[_0x58ac0c(0x90)]===!![])return{'kind':_0x58ac0c(0xc5),'payload':{'outputSummary':_0x2f8fcc[_0x58ac0c(0xbd)]??null,..._0x50cd42,..._0x513fd6[_0x58ac0c(0xba)]===0x77b+0xd*-0x218+0x13bd?{}:{'attachments':_0x513fd6}}};return{'kind':_0x58ac0c(0xc5),'payload':{'title':_0xf27fa3,'namespace':compactRunnerText(_0x2f8fcc[_0x58ac0c(0xa0)]??_0x58ac0c(0xcb),0x121f*0x1+0x201*0xf+-0x2fae),'toolName':_0xf27fa3,'inputSummary':_0x2f8fcc[_0x58ac0c(0x94)]??null,'outputSummary':_0x2f8fcc[_0x58ac0c(0xbd)]??null,'progressLabel':null,'errorCode':null,'truncated':_0x2f8fcc[_0x58ac0c(0xb7)]===!![],..._0x50cd42,..._0x513fd6[_0x58ac0c(0xba)]===-0x93c+0x2*0x1b6+0x1f0*0x3?{}:{'attachments':_0x513fd6}}};}function _0x22ed(_0x24f470,_0x3b816b){_0x24f470=_0x24f470-(0x2010+-0x376+-0x1c17*0x1);const _0x3c1c39=_0x2f9e();let _0x14fdde=_0x3c1c39[_0x24f470];if(_0x22ed['pulWlj']===undefined){var _0x45ce0d=function(_0x5d5341){const _0x4ff8a2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x55d0d2='',_0x2d7257='';for(let _0x246b33=-0x664+0x5d9+0x8b,_0x33dd3d,_0x139ecd,_0x3b358f=-0x4*-0x33e+0xed*-0x7+-0x67d;_0x139ecd=_0x5d5341['charAt'](_0x3b358f++);~_0x139ecd&&(_0x33dd3d=_0x246b33%(-0x14e*0xc+-0xdeb+0x1*0x1d97)?_0x33dd3d*(-0x615*0x2+-0xd07+0x1*0x1971)+_0x139ecd:_0x139ecd,_0x246b33++%(0x74*-0x3+0x8dd+-0x3*0x27f))?_0x55d0d2+=String['fromCharCode'](0x24b6+-0x882+-0x1b35&_0x33dd3d>>(-(-0x22e*-0x4+0x6*0x170+0xe*-0x13d)*_0x246b33&0x194a+0x8ab+-0x4d9*0x7)):-0xcd5+0x17c2+-0x1*0xaed){_0x139ecd=_0x4ff8a2['indexOf'](_0x139ecd);}for(let _0x36e08a=-0x1930+0x17f*0x13+-0x1*0x33d,_0x510442=_0x55d0d2['length'];_0x36e08a<_0x510442;_0x36e08a++){_0x2d7257+='%'+('00'+_0x55d0d2['charCodeAt'](_0x36e08a)['toString'](0xed+-0x1802+0x1725*0x1))['slice'](-(-0x1bf1+0x1a20+0x1d3*0x1));}return decodeURIComponent(_0x2d7257);};_0x22ed['QiTSkR']=_0x45ce0d,_0x22ed['PQYOxf']={},_0x22ed['pulWlj']=!![];}const _0x54604f=_0x3c1c39[0x2*-0x1065+0x5*0x3cd+0xdc9];_0x22ed['eFjNiy']!==_0x54604f&&(_0x22ed['PQYOxf']={},_0x22ed['eFjNiy']=_0x54604f);const _0x310cbf=_0x22ed['PQYOxf'][_0x24f470];return _0x310cbf===undefined?(_0x14fdde=_0x22ed['QiTSkR'](_0x14fdde),_0x22ed['PQYOxf'][_0x24f470]=_0x14fdde):_0x14fdde=_0x310cbf,_0x14fdde;}function unwrapCodexExec(_0x203ad2,_0x38e799){const _0x32b535=_0x22ed;if(_0x203ad2!==_0x32b535(0xa9)||typeof _0x38e799!==_0x32b535(0xa8))return undefined;const _0x1945e1=/\btools\.([A-Za-z_][A-Za-z0-9_]*)\s*\(/u[_0x32b535(0xa9)](_0x38e799);if(_0x1945e1?.[0x2f*-0x79+0x2068+0x4*-0x28c]===undefined)return undefined;const _0xbb1e0e=_0x1945e1[-0x1f43+0x2517+-0x5d3];if(_0xbb1e0e===_0x32b535(0x93)){const _0x1c1f45=quotedProperty(_0x38e799,_0x32b535(0x84)),_0x38c60e=quotedProperty(_0x38e799,_0x32b535(0x99));return{'name':_0xbb1e0e,'rawInput':{..._0x1c1f45===undefined?{}:{'cmd':_0x1c1f45},..._0x38c60e===undefined?{}:{'cwd':_0x38c60e}}};}if(_0xbb1e0e===_0x32b535(0xc3)){const _0x11a6ab=quotedVariable(_0x38e799,_0x32b535(0xa6));return{'name':_0xbb1e0e,'rawInput':_0x11a6ab??_0x38e799,..._0x11a6ab?{'patch':_0x11a6ab}:{}};}return{'name':_0xbb1e0e,'rawInput':_0x38e799};}function _0x2f9e(){const _0x226b8c=['C2vUzf9PBNb1Da','revmrvrfra','xhmQpvXZkIGIkd86xfWUFfTEiLXCxsKQiIK','y29TBwfUzf9LEgvJDxrPB24','C3bSAxq','y29SBgfIB3jHDgLVBG','neXOBhDvuG','B3v0Chv0t25SEq','ywDLBNrjza','CMvZDw1Lx2fNzw50','zxHLy19JB21Tyw5K','Aw5WDxrtDw1Tyxj5','ndK1nte5BKTdBeXI','mJiYotzXs0PJAxi','tu9esuzjruq','B2jQzwn0','D29YA2rPCG','mtHXAenNvKu','zgf0yq','nZKWmJaYsuDrvKLc','DgfYz2v0','y2XVC2vFywDLBNq','mtHbqLDuy0u','BMfTzxnWywnL','CMf3sw5WDxq','BgLZDf9Hz2vUDhm','CMvZDwX0','y3DK','tuvtu0fhrq','Cgf0y2G','DgfYz2v0CW','C3rYAw5N','zxHLyW','yxr0ywnOBwvUDhm','D2fPDf9Hz2vUDa','Aw50zxjYDxb0x2fNzw50','zMLSzv9JAgfUz2u','u1rbvfvt','uKvtvu1f','C3rHCNrZv2L0Aa','mJmZmJe2mfvfsvPKtW','nti1ndKWq0D5y0vv','y29TBwfUza','qureruq','qwrK','Aw5JBhvKzxm','Dhj1BMnHDgvK','DhjPBq','q0foq0vm','BgvUz3rO','AxnbCNjHEq','xhmQoLXZkIGIkd86xfWUFfTEiLXCxsKQiIK','B3v0Chv0u3vTBwfYEq','ChvZAa','C2vUzf9TzxnZywDL','CgfYC2u','BxvSDgLFywDLBNrFDJi','Dg9VBa','yxbWBhLFCgf0y2G','ndi3ndmWngnlDKXiuq','Dg9VBf9JywXS','B3v0Chv0','C3bHD25FywDLBNq','nJK4nxjruez6Aq','xgiOpZPJB25ZDhXSzxqPxhmR','nLvjEuPwqq','y29KzxG','BMfTzq','u1rbuLq','mZa3nJGWnvfvuKPtwq','zM9SBg93DxbFDgfZAW','rgvSzxrL','y21K','Dg9mB3DLCKnHC2u','BxvSDgLFywDLBNrFDJe','ywDLBNrFAwq','DgfZA19Uyw1L'];_0x2f9e=function(){return _0x226b8c;};return _0x2f9e();}function quotedProperty(_0x1d31aa,_0x33bb7f){const _0x1b97ff=_0x22ed,_0x1a5be0=new RegExp('\x5cb'+_0x33bb7f+_0x1b97ff(0xbc),'u')[_0x1b97ff(0xa9)](_0x1d31aa);return decodeJsonString(_0x1a5be0?.[0xc8+-0x14ed*-0x1+-0x15b4]);}function quotedVariable(_0xd6f965,_0x41a62f){const _0x3ce428=_0x22ed,_0x296a5b=new RegExp(_0x3ce428(0xc9)+_0x41a62f+_0x3ce428(0x8b),'u')[_0x3ce428(0xa9)](_0xd6f965);return decodeJsonString(_0x296a5b?.[-0x1ac6+-0xc49*0x1+0x2710]);}function decodeJsonString(_0x3a5141){const _0x559c66=_0x22ed;if(_0x3a5141===undefined)return undefined;try{const _0x4cfed1=JSON[_0x559c66(0xc0)](_0x3a5141);return typeof _0x4cfed1===_0x559c66(0xa8)?_0x4cfed1:undefined;}catch{return undefined;}}function patchFileChanges(_0x3f9ae1){const _0xdf2398=_0x22ed;if(_0x3f9ae1===undefined)return[];const _0x7ea0e0=[];for(const _0x1b6ba4 of _0x3f9ae1[_0xdf2398(0x8d)](/\r?\n/u)){const _0x345fb9=/^\*\*\* (Add|Delete|Update) File: (.+)$/u[_0xdf2398(0xa9)](_0x1b6ba4);if(_0x345fb9?.[-0xae4*0x2+0x35*-0x3b+0x2200]===undefined||_0x345fb9[0x810+0x173b+-0x1f49]===undefined)continue;const _0x36f2a4=compactRunnerText(_0x345fb9[0x1e7a+0x182a+-0x1236*0x3],-0x7ae+0x634+-0x2*-0x8bd);if(_0x36f2a4[_0xdf2398(0xba)]===0x1b92+0xbe7+0xd7*-0x2f)continue;_0x7ea0e0[_0xdf2398(0xbe)]({'path':_0x36f2a4,'change':_0x345fb9[0x12b9*0x1+-0x218e+0x2*0x76b]===_0xdf2398(0xb5)?_0xdf2398(0xb4):_0x345fb9[0x1*-0x1a7+0x1360+-0x2f4*0x6]===_0xdf2398(0x83)?_0xdf2398(0x8a):_0xdf2398(0x97),'additions':null,'deletions':null,'diffAvailable':![]});}return _0x7ea0e0;}function isCommandTool(_0x403753){const _0x4cc907=_0x22ed;return _0x403753===_0x4cc907(0xa9)||_0x403753===_0x4cc907(0x93);}function record(_0x3c1c68){const _0x4b0c3b=_0x22ed;return _0x3c1c68!==null&&typeof _0x3c1c68===_0x4b0c3b(0x98)&&!Array[_0x4b0c3b(0xbb)](_0x3c1c68)?_0x3c1c68:undefined;}function codexSubagentProjection(_0x12b391,_0x474b90,_0x251b80,_0x14d51d){const _0x2e94e7=_0x22ed;if(_0x12b391!==undefined&&_0x12b391[_0x2e94e7(0xba)]>-0x1d5c+0x2a5*-0x2+0x22a6&&![_0x2e94e7(0xcb),_0x2e94e7(0x8e),_0x2e94e7(0x86),_0x2e94e7(0xc1)][_0x2e94e7(0xb6)](_0x12b391[_0x2e94e7(0x85)]()))return undefined;const _0x42d9ca=_0x474b90===_0x2e94e7(0xc7)?_0x2e94e7(0xcd):_0x474b90===_0x2e94e7(0xab)||_0x474b90===_0x2e94e7(0xa2)?_0x2e94e7(0xae):_0x474b90===_0x2e94e7(0x9e)||_0x474b90===_0x2e94e7(0xac)?_0x2e94e7(0xb9):_0x474b90===_0x2e94e7(0x89)||_0x474b90===_0x2e94e7(0xbf)||_0x474b90===_0x2e94e7(0xcf)?_0x2e94e7(0xa5):_0x474b90===_0x2e94e7(0x92)?_0x2e94e7(0xaf):undefined;if(_0x42d9ca===undefined)return undefined;const _0x105c3d=structuredRecord(_0x251b80),_0x3f54d3=_0x42d9ca===_0x2e94e7(0xcd)&&typeof _0x105c3d?.[_0x2e94e7(0x88)]===_0x2e94e7(0xa8)?compactRunnerText(_0x105c3d[_0x2e94e7(0x88)],0x872+-0xd*-0x21d+-0x21f7):'';return{'subagentOperation':_0x42d9ca,'subagentId':codexSubagentId(_0x251b80)??codexSubagentId(_0x14d51d)??null,..._0x3f54d3[_0x2e94e7(0xba)]===-0x159*-0x1+0x2650+-0x8f*0x47?{}:{'title':_0x3f54d3}};}function codexSubagentId(_0x2a869f){const _0x55edca=_0x22ed,_0x529098=structuredRecord(_0x2a869f);if(_0x529098===undefined)return undefined;for(const _0x27d63b of[_0x55edca(0x91),_0x55edca(0x87),_0x55edca(0x9d),'id']){const _0x778011=boundedId(_0x529098[_0x27d63b]);if(_0x778011!==undefined)return _0x778011;}if(Array[_0x55edca(0xbb)](_0x529098[_0x55edca(0xa7)]))for(const _0x36a554 of _0x529098[_0x55edca(0xa7)]){const _0x5c63e0=boundedId(_0x36a554);if(_0x5c63e0!==undefined)return _0x5c63e0;}for(const _0x33989c of[_0x55edca(0x9b),_0x55edca(0xa3),_0x55edca(0xc6)]){const _0x1f04ee=codexSubagentId(_0x529098[_0x33989c]);if(_0x1f04ee!==undefined)return _0x1f04ee;}return undefined;}function structuredRecord(_0x380a6f){const _0x4234f4=_0x22ed;if(typeof _0x380a6f!==_0x4234f4(0xa8))return record(_0x380a6f);const _0x1ed0ad=_0x380a6f[_0x4234f4(0xb8)]();if(!_0x1ed0ad[_0x4234f4(0xb0)]('{'))return undefined;try{return record(JSON[_0x4234f4(0xc0)](_0x1ed0ad));}catch{return undefined;}}function boundedId(_0xf9bc13){const _0x225d57=_0x22ed;if(typeof _0xf9bc13!==_0x225d57(0xa8))return undefined;const _0x435ead=_0xf9bc13[_0x225d57(0xb8)]();return _0x435ead[_0x225d57(0xba)]>0x213a+0x55b+-0x77*0x53&&_0x435ead[_0x225d57(0xba)]<=-0x1eb7+0x233+0x1d04?_0x435ead:undefined;}
|
|
1
|
+
import { compactRunnerText } from '../../util/node-operation-parsers.js';
|
|
2
|
+
export function normalizeCodexTool(input) {
|
|
3
|
+
const wrapped = unwrapCodexExec(input.name, input.rawInput);
|
|
4
|
+
const name = compactRunnerText(wrapped?.name ?? input.name, 128) || 'tool';
|
|
5
|
+
const rawInput = wrapped?.rawInput ?? input.rawInput;
|
|
6
|
+
const attachments = input.attachments ?? [];
|
|
7
|
+
const subagent = codexSubagentProjection(input.namespace, name, rawInput, input.outputSummary);
|
|
8
|
+
if (name === 'apply_patch') {
|
|
9
|
+
const changes = patchFileChanges(wrapped?.patch);
|
|
10
|
+
if (changes.length > 0)
|
|
11
|
+
return { kind: 'file_change', payload: { changes } };
|
|
12
|
+
}
|
|
13
|
+
if (isCommandTool(name)) {
|
|
14
|
+
const outputPreview = compactRunnerText(input.outputSummary ?? '', 10_000);
|
|
15
|
+
if (input.outputOnly === true)
|
|
16
|
+
return {
|
|
17
|
+
kind: 'command_execution',
|
|
18
|
+
payload: {
|
|
19
|
+
outputPreview,
|
|
20
|
+
truncated: input.truncated === true || (input.outputSummary?.length ?? 0) > 10_000,
|
|
21
|
+
...(attachments.length === 0 ? {} : { attachments })
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
const values = record(rawInput);
|
|
25
|
+
const command = typeof rawInput === 'string'
|
|
26
|
+
? rawInput
|
|
27
|
+
: typeof values?.cmd === 'string'
|
|
28
|
+
? values.cmd
|
|
29
|
+
: typeof values?.command === 'string'
|
|
30
|
+
? values.command
|
|
31
|
+
: input.inputSummary || name;
|
|
32
|
+
return {
|
|
33
|
+
kind: 'command_execution',
|
|
34
|
+
payload: {
|
|
35
|
+
command: compactRunnerText(command, 10_000),
|
|
36
|
+
cwd: typeof values?.cwd === 'string' ? compactRunnerText(values.cwd, 4_096) : null,
|
|
37
|
+
outputPreview,
|
|
38
|
+
outputRef: null,
|
|
39
|
+
exitCode: null,
|
|
40
|
+
durationMs: null,
|
|
41
|
+
truncated: input.truncated === true ||
|
|
42
|
+
command.length > 10_000 ||
|
|
43
|
+
(input.outputSummary?.length ?? 0) > 10_000,
|
|
44
|
+
...(attachments.length === 0 ? {} : { attachments })
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
if (input.outputOnly === true)
|
|
49
|
+
return {
|
|
50
|
+
kind: 'tool_call',
|
|
51
|
+
payload: {
|
|
52
|
+
outputSummary: input.outputSummary ?? null,
|
|
53
|
+
...subagent,
|
|
54
|
+
...(attachments.length === 0 ? {} : { attachments })
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
return {
|
|
58
|
+
kind: 'tool_call',
|
|
59
|
+
payload: {
|
|
60
|
+
title: name,
|
|
61
|
+
namespace: compactRunnerText(input.namespace ?? 'codex', 128),
|
|
62
|
+
toolName: name,
|
|
63
|
+
inputSummary: input.inputSummary ?? null,
|
|
64
|
+
outputSummary: input.outputSummary ?? null,
|
|
65
|
+
progressLabel: null,
|
|
66
|
+
errorCode: null,
|
|
67
|
+
truncated: input.truncated === true,
|
|
68
|
+
...subagent,
|
|
69
|
+
...(attachments.length === 0 ? {} : { attachments })
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
function unwrapCodexExec(name, rawInput) {
|
|
74
|
+
if (name !== 'exec' || typeof rawInput !== 'string')
|
|
75
|
+
return undefined;
|
|
76
|
+
const match = /\btools\.([A-Za-z_][A-Za-z0-9_]*)\s*\(/u.exec(rawInput);
|
|
77
|
+
if (match?.[1] === undefined)
|
|
78
|
+
return undefined;
|
|
79
|
+
const wrappedName = match[1];
|
|
80
|
+
if (wrappedName === 'exec_command') {
|
|
81
|
+
const command = quotedProperty(rawInput, 'cmd');
|
|
82
|
+
const cwd = quotedProperty(rawInput, 'workdir');
|
|
83
|
+
return {
|
|
84
|
+
name: wrappedName,
|
|
85
|
+
rawInput: {
|
|
86
|
+
...(command === undefined ? {} : { cmd: command }),
|
|
87
|
+
...(cwd === undefined ? {} : { cwd })
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
if (wrappedName === 'apply_patch') {
|
|
92
|
+
const patch = quotedVariable(rawInput, 'patch');
|
|
93
|
+
return { name: wrappedName, rawInput: patch ?? rawInput, ...(patch ? { patch } : {}) };
|
|
94
|
+
}
|
|
95
|
+
return { name: wrappedName, rawInput };
|
|
96
|
+
}
|
|
97
|
+
function quotedProperty(source, key) {
|
|
98
|
+
const match = new RegExp(`\\b${key}\\s*:\\s*("(?:\\\\.|[^"\\\\])*")`, 'u').exec(source);
|
|
99
|
+
return decodeJsonString(match?.[1]);
|
|
100
|
+
}
|
|
101
|
+
function quotedVariable(source, name) {
|
|
102
|
+
const match = new RegExp(`\\b(?:const|let)\\s+${name}\\s*=\\s*("(?:\\\\.|[^"\\\\])*")`, 'u').exec(source);
|
|
103
|
+
return decodeJsonString(match?.[1]);
|
|
104
|
+
}
|
|
105
|
+
function decodeJsonString(value) {
|
|
106
|
+
if (value === undefined)
|
|
107
|
+
return undefined;
|
|
108
|
+
try {
|
|
109
|
+
const parsed = JSON.parse(value);
|
|
110
|
+
return typeof parsed === 'string' ? parsed : undefined;
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
return undefined;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
function patchFileChanges(patch) {
|
|
117
|
+
if (patch === undefined)
|
|
118
|
+
return [];
|
|
119
|
+
const changes = [];
|
|
120
|
+
for (const line of patch.split(/\r?\n/u)) {
|
|
121
|
+
const match = /^\*\*\* (Add|Delete|Update) File: (.+)$/u.exec(line);
|
|
122
|
+
if (match?.[1] === undefined || match[2] === undefined)
|
|
123
|
+
continue;
|
|
124
|
+
const path = compactRunnerText(match[2], 4_096);
|
|
125
|
+
if (path.length === 0)
|
|
126
|
+
continue;
|
|
127
|
+
changes.push({
|
|
128
|
+
path,
|
|
129
|
+
change: match[1] === 'Add' ? 'ADDED' : match[1] === 'Delete' ? 'DELETED' : 'MODIFIED',
|
|
130
|
+
additions: null,
|
|
131
|
+
deletions: null,
|
|
132
|
+
diffAvailable: false
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
return changes;
|
|
136
|
+
}
|
|
137
|
+
function isCommandTool(name) {
|
|
138
|
+
return name === 'exec' || name === 'exec_command';
|
|
139
|
+
}
|
|
140
|
+
function record(value) {
|
|
141
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value)
|
|
142
|
+
? value
|
|
143
|
+
: undefined;
|
|
144
|
+
}
|
|
145
|
+
function codexSubagentProjection(namespace, toolName, input, output) {
|
|
146
|
+
if (namespace !== undefined &&
|
|
147
|
+
namespace.length > 0 &&
|
|
148
|
+
!['codex', 'collaboration', 'multi_agent_v1', 'multi_agent_v2'].includes(namespace.toLowerCase()))
|
|
149
|
+
return undefined;
|
|
150
|
+
const operation = toolName === 'spawn_agent'
|
|
151
|
+
? 'START'
|
|
152
|
+
: toolName === 'wait_agent' || toolName === 'list_agents'
|
|
153
|
+
? 'STATUS'
|
|
154
|
+
: toolName === 'close_agent' || toolName === 'interrupt_agent'
|
|
155
|
+
? 'CANCEL'
|
|
156
|
+
: toolName === 'send_input' || toolName === 'send_message' || toolName === 'followup_task'
|
|
157
|
+
? 'MESSAGE'
|
|
158
|
+
: toolName === 'resume_agent'
|
|
159
|
+
? 'RESUME'
|
|
160
|
+
: undefined;
|
|
161
|
+
if (operation === undefined)
|
|
162
|
+
return undefined;
|
|
163
|
+
const inputData = structuredRecord(input);
|
|
164
|
+
const title = operation === 'START' && typeof inputData?.task_name === 'string'
|
|
165
|
+
? compactRunnerText(inputData.task_name, 500)
|
|
166
|
+
: '';
|
|
167
|
+
return {
|
|
168
|
+
subagentOperation: operation,
|
|
169
|
+
subagentId: codexSubagentId(input) ?? codexSubagentId(output) ?? null,
|
|
170
|
+
...(title.length === 0 ? {} : { title })
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
function codexSubagentId(value) {
|
|
174
|
+
const data = structuredRecord(value);
|
|
175
|
+
if (data === undefined)
|
|
176
|
+
return undefined;
|
|
177
|
+
for (const key of ['agentId', 'agent_id', 'target', 'id']) {
|
|
178
|
+
const candidate = boundedId(data[key]);
|
|
179
|
+
if (candidate !== undefined)
|
|
180
|
+
return candidate;
|
|
181
|
+
}
|
|
182
|
+
if (Array.isArray(data.targets)) {
|
|
183
|
+
for (const target of data.targets) {
|
|
184
|
+
const candidate = boundedId(target);
|
|
185
|
+
if (candidate !== undefined)
|
|
186
|
+
return candidate;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
for (const key of ['data', 'result', 'output']) {
|
|
190
|
+
const candidate = codexSubagentId(data[key]);
|
|
191
|
+
if (candidate !== undefined)
|
|
192
|
+
return candidate;
|
|
193
|
+
}
|
|
194
|
+
return undefined;
|
|
195
|
+
}
|
|
196
|
+
function structuredRecord(value) {
|
|
197
|
+
if (typeof value !== 'string')
|
|
198
|
+
return record(value);
|
|
199
|
+
const text = value.trim();
|
|
200
|
+
if (!text.startsWith('{'))
|
|
201
|
+
return undefined;
|
|
202
|
+
try {
|
|
203
|
+
return record(JSON.parse(text));
|
|
204
|
+
}
|
|
205
|
+
catch {
|
|
206
|
+
return undefined;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
function boundedId(value) {
|
|
210
|
+
if (typeof value !== 'string')
|
|
211
|
+
return undefined;
|
|
212
|
+
const normalized = value.trim();
|
|
213
|
+
return normalized.length > 0 && normalized.length <= 128 ? normalized : undefined;
|
|
214
|
+
}
|