apt-mcp-agent-setup 3.5.23 → 3.5.30

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/README.md +1 -1
  2. package/bin/cli.js +1 -1
  3. package/build-input.json +69 -48
  4. package/bundle/NOTICES.md +0 -0
  5. package/bundle/core.enc +0 -0
  6. package/bundle/mcp-rules.enc +0 -0
  7. package/bundle/skills-aso.enc +0 -0
  8. package/bundle/skills-ba.enc +0 -0
  9. package/bundle/skills-base.enc +0 -0
  10. package/bundle/skills-be.enc +0 -0
  11. package/bundle/skills-design.enc +0 -0
  12. package/bundle/skills-fe.enc +0 -0
  13. package/bundle/skills-marketing.enc +0 -0
  14. package/bundle/skills-mobile.enc +0 -0
  15. package/bundle/skills-pm.enc +0 -0
  16. package/integrity-manifest.json +161 -159
  17. package/package.json +1 -1
  18. package/src/backends/browser-tools.js +1 -1
  19. package/src/backends/index-cache-authority.js +1 -1
  20. package/src/backends/index-command.js +1 -1
  21. package/src/backends/index-maintenance.js +1 -1
  22. package/src/backends/index-store.js +1 -1
  23. package/src/backends/profiles.js +1 -1
  24. package/src/backends/review_graph.py +65 -0
  25. package/src/backends/source-discovery.js +1 -1
  26. package/src/core/admission-fence.js +1 -1
  27. package/src/core/aso-import.js +1 -1
  28. package/src/core/backend-lease-recovery.js +1 -1
  29. package/src/core/boot-evidence.js +1 -1
  30. package/src/core/caller-context.js +1 -1
  31. package/src/core/catalog.js +1 -1
  32. package/src/core/claude-caller-authority.js +1 -1
  33. package/src/core/claude-invocation.js +1 -1
  34. package/src/core/claude-launch-recovery.js +1 -1
  35. package/src/core/claude-native.js +1 -1
  36. package/src/core/claude-plan.js +1 -1
  37. package/src/core/claude-transcript-scan.js +1 -1
  38. package/src/core/claude-worker-transcript.js +1 -1
  39. package/src/core/codex-host-metadata.js +1 -1
  40. package/src/core/codex-transcript-receipt.js +1 -1
  41. package/src/core/connection-inspector.js +1 -1
  42. package/src/core/context-metrics.js +1 -1
  43. package/src/core/doctor.js +1 -1
  44. package/src/core/draining-completion.js +1 -1
  45. package/src/core/execution.js +1 -1
  46. package/src/core/git-context.js +1 -1
  47. package/src/core/hook-bridge.js +1 -1
  48. package/src/core/hook-diagnostics.js +1 -1
  49. package/src/core/hook-lease.js +1 -1
  50. package/src/core/host-adapters.js +1 -1
  51. package/src/core/interrupted-boot-transport-proof.js +1 -1
  52. package/src/core/interrupted-natural-closure-proof.js +1 -1
  53. package/src/core/interrupted-operation-audit.js +1 -1
  54. package/src/core/interrupted-transport-proof.js +1 -1
  55. package/src/core/ipc-envelope.js +1 -1
  56. package/src/core/legacy-retirement-proof.js +1 -1
  57. package/src/core/memory-scope.js +1 -1
  58. package/src/core/memory-store.js +1 -1
  59. package/src/core/model-inventory.js +1 -1
  60. package/src/core/model-routing.js +1 -1
  61. package/src/core/native-dispatch.js +1 -1
  62. package/src/core/native-receipt.js +1 -1
  63. package/src/core/native-retirement.js +1 -1
  64. package/src/core/node-version.js +1 -1
  65. package/src/core/npm-cli.js +1 -1
  66. package/src/core/owned-command-child.js +1 -1
  67. package/src/core/owned-command.js +1 -1
  68. package/src/core/owned-lock.js +1 -1
  69. package/src/core/owned-process.js +1 -1
  70. package/src/core/pipeline-journal.js +1 -1
  71. package/src/core/presentations.js +1 -1
  72. package/src/core/quality-artifacts.js +1 -1
  73. package/src/core/quality.js +1 -1
  74. package/src/core/read-command.js +1 -1
  75. package/src/core/readonly-skill.js +1 -1
  76. package/src/core/recovery-archive.js +1 -1
  77. package/src/core/recovery-proof.js +1 -1
  78. package/src/core/resource-transaction.js +1 -1
  79. package/src/core/run-checkpoint.js +1 -1
  80. package/src/core/run-compatibility.js +1 -1
  81. package/src/core/run-state-codec.js +1 -1
  82. package/src/core/runtime-authority.js +1 -1
  83. package/src/core/runtime-info.js +1 -1
  84. package/src/core/runtime-ownership.js +1 -1
  85. package/src/core/session.js +1 -1
  86. package/src/core/skill-companions.js +1 -1
  87. package/src/core/skill-names.js +1 -1
  88. package/src/core/storage-retry.js +1 -1
  89. package/src/core/tool-contracts.js +1 -1
  90. package/src/core/update-control.js +1 -1
  91. package/src/core/upgrade-runs.js +1 -1
  92. package/src/core/upgrade-stop.js +1 -1
  93. package/src/core/windows-job.js +1 -1
  94. package/src/core/workflow-policy.js +1 -1
  95. package/src/core/workspace-generation.js +1 -1
  96. package/src/core/workspace-path.js +1 -1
  97. package/src/installer/bounded-command.js +1 -1
  98. package/src/installer/candidate-preflight.js +1 -1
  99. package/src/installer/claude-commands.js +1 -1
  100. package/src/installer/connection-activation.js +1 -1
  101. package/src/installer/connection-supervisor.js +1 -1
  102. package/src/installer/deployment-draft.js +1 -1
  103. package/src/installer/gateway-context.js +1 -1
  104. package/src/installer/gateway-migration.js +1 -1
  105. package/src/installer/gateway-runtime.js +1 -1
  106. package/src/installer/global-setup.js +1 -1
  107. package/src/installer/hook-context-client.js +1 -1
  108. package/src/installer/hook-dispatcher.js +179 -141
  109. package/src/installer/host-hooks.js +1 -1
  110. package/src/installer/index-interruption-recovery.js +1 -1
  111. package/src/installer/index-recovery.js +1 -1
  112. package/src/installer/install-intent.js +1 -1
  113. package/src/installer/interrupted-operation-recovery.js +1 -1
  114. package/src/installer/legacy-prepared-plan.js +1 -1
  115. package/src/installer/legacy-registration.js +1 -1
  116. package/src/installer/managed-config.js +1 -1
  117. package/src/installer/migration-scope.js +1 -1
  118. package/src/installer/platform-config.js +1 -1
  119. package/src/installer/prerequisites.js +1 -1
  120. package/src/installer/presentations.js +1 -1
  121. package/src/installer/project-outcome.js +1 -1
  122. package/src/installer/project-setup.js +1 -1
  123. package/src/installer/recovery-backup-retention.js +1 -0
  124. package/src/installer/registration-closure.js +1 -1
  125. package/src/installer/registration-plan.js +1 -1
  126. package/src/installer/registration-receipt.js +1 -1
  127. package/src/installer/registrations.js +1 -1
  128. package/src/installer/runtime-activation.js +1 -1
  129. package/src/installer/runtime-child.js +1 -1
  130. package/src/installer/runtime-cleanup.js +1 -1
  131. package/src/installer/runtime-lock.js +1 -1
  132. package/src/installer/runtime-store.js +1 -1
  133. package/src/installer/runtime-supervisor.js +1 -1
  134. package/src/installer/setup-wizard.js +1 -1
  135. package/src/installer/stale-run-release.js +1 -1
  136. package/src/installer/update-addons.js +1 -1
  137. package/src/installer/update-cleanup.js +1 -1
  138. package/src/installer/update-executor.js +1 -1
  139. package/src/installer/update-history.js +1 -1
  140. package/src/installer/update-registration.js +1 -1
  141. package/src/installer/update-report.js +1 -0
  142. package/src/installer/update-request.js +1 -1
  143. package/src/installer/update-scope.js +1 -1
  144. package/src/installer/workspace-registry.js +1 -1
  145. package/src/installer/workspace-transaction.js +1 -1
  146. package/src/installer/workspace-update.js +1 -1
  147. package/src/license/crypto.js +1 -1
  148. package/src/license/fingerprint.js +1 -1
  149. package/src/license/terms.js +1 -1
  150. package/src/license/verify.js +1 -1
  151. package/src/presets/index.js +1 -1
  152. package/src/proxy/backends.js +1 -1
  153. package/src/proxy/browser-sessions.js +1 -1
  154. package/src/proxy/core-tools.js +1 -1
  155. package/src/proxy/pipeline.js +1 -1
  156. package/src/proxy/public-catalog.js +1 -1
  157. package/src/proxy/router.config.js +1 -1
  158. package/src/proxy/router.js +1 -1
  159. package/src/proxy/server.js +1 -1
  160. package/src/proxy/workspace-gateway.js +1 -1
  161. package/src/templates/mcp-tools.md +2 -2
@@ -1 +1 @@
1
- 'use strict';const _0x20fce5=_0x4934;(function(_0x3faa87,_0x3bdc93){const _0x4aef8f=_0x4934,_0x1851cb=_0x3faa87();while(!![]){try{const _0x2ae490=parseInt(_0x4aef8f(0x1ba))/0x1*(parseInt(_0x4aef8f(0x153))/0x2)+parseInt(_0x4aef8f(0x1a7))/0x3+parseInt(_0x4aef8f(0x14a))/0x4*(-parseInt(_0x4aef8f(0x1a2))/0x5)+parseInt(_0x4aef8f(0x1b2))/0x6+-parseInt(_0x4aef8f(0x19c))/0x7+-parseInt(_0x4aef8f(0x19b))/0x8+parseInt(_0x4aef8f(0x1b9))/0x9*(parseInt(_0x4aef8f(0x17d))/0xa);if(_0x2ae490===_0x3bdc93)break;else _0x1851cb['push'](_0x1851cb['shift']());}catch(_0x142045){_0x1851cb['push'](_0x1851cb['shift']());}}}(_0x3b33,0xa97d4));const crypto=require(_0x20fce5(0x1a0)),{WorkspaceRegistry}=require('../installer/workspace-registry'),{gatewayCatalog}=require(_0x20fce5(0x17a)),{sameWorkspace}=require('../core/workspace-path'),contracts=require(_0x20fce5(0x1be)),fail=(_0x2ed9dd,_0x5758a5=_0x2ed9dd)=>{const _0x12cb39=_0x20fce5,_0x2ffa4e={};_0x2ffa4e[_0x12cb39(0x196)]=_0x2ed9dd;throw Object[_0x12cb39(0x1af)](new Error(_0x5758a5),_0x2ffa4e);},content=_0xc19030=>({'content':[{'type':_0x20fce5(0x13d),'text':JSON[_0x20fce5(0x174)](_0xc19030)}]});function validateIdentity(_0x2b60e0){const _0x55f314=_0x20fce5,_0x33bd35={};_0x33bd35[_0x55f314(0x199)]=contracts[_0x55f314(0x199)],_0x33bd35[_0x55f314(0x16e)]=contracts[_0x55f314(0x16e)],_0x33bd35[_0x55f314(0x179)]=contracts[_0x55f314(0x179)],_0x33bd35['runId']=contracts[_0x55f314(0x163)];for(const [_0x11fdb6,_0x3ac634]of Object[_0x55f314(0x1c3)](_0x33bd35)){if(_0x2b60e0[_0x11fdb6]===undefined)continue;const _0x426b33=_0x2b60e0[_0x11fdb6];if(typeof _0x426b33!==_0x55f314(0x188)||!_0x426b33[_0x55f314(0x17f)]()||_0x426b33[_0x55f314(0x185)]>_0x3ac634['maxLength']||_0x3ac634['pattern']&&!new RegExp(_0x3ac634[_0x55f314(0x136)])[_0x55f314(0x13a)](_0x426b33))fail('INVALID_'+_0x11fdb6[_0x55f314(0x181)](/([a-z])([A-Z])/g,_0x55f314(0x17e))[_0x55f314(0x192)](),_0x3ac634['description']);}}function _0x4934(_0x2c7dcc,_0x56b48c){_0x2c7dcc=_0x2c7dcc-0x136;const _0x3b333c=_0x3b33();let _0x4934d8=_0x3b333c[_0x2c7dcc];if(_0x4934['NRINtY']===undefined){var _0x5e84d3=function(_0x847662){const _0x3c9be7='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x38773c='',_0x3a9eff='';for(let _0x51150b=0x0,_0x36ac7c,_0x42d5ed,_0x17d148=0x0;_0x42d5ed=_0x847662['charAt'](_0x17d148++);~_0x42d5ed&&(_0x36ac7c=_0x51150b%0x4?_0x36ac7c*0x40+_0x42d5ed:_0x42d5ed,_0x51150b++%0x4)?_0x38773c+=String['fromCharCode'](0xff&_0x36ac7c>>(-0x2*_0x51150b&0x6)):0x0){_0x42d5ed=_0x3c9be7['indexOf'](_0x42d5ed);}for(let _0x3b8812=0x0,_0x1464db=_0x38773c['length'];_0x3b8812<_0x1464db;_0x3b8812++){_0x3a9eff+='%'+('00'+_0x38773c['charCodeAt'](_0x3b8812)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3a9eff);};_0x4934['SnWxDt']=_0x5e84d3,_0x4934['kcBAHo']={},_0x4934['NRINtY']=!![];}const _0x1d8171=_0x3b333c[0x0],_0xd3f191=_0x2c7dcc+_0x1d8171,_0x3bbbc6=_0x4934['kcBAHo'][_0xd3f191];return!_0x3bbbc6?(_0x4934d8=_0x4934['SnWxDt'](_0x4934d8),_0x4934['kcBAHo'][_0xd3f191]=_0x4934d8):_0x4934d8=_0x3bbbc6,_0x4934d8;}function _0x3b33(){const _0xd52e73=['v09ss1nqqunfx0fnqKLhvu9vuW','uMvXDwLYzwqGzMLLBgq6ia','CMvJB3zLCNK','BM93','ChjVzMLSzq','yMfJA2vUza','ChjVDg9JB2XwzxjZAw9U','y29UBMvJDgLVBKLK','CMvXDwvZDeLK','Aw5JBhvKzxm','r0furvDbwv9svu5usu1fx1voqvzbsuXbqKXf','v09ss1nqqunfx0jjtKrjtKDFuKvrvuLsruq','r0furvDbwv9dte9truq','C2vSzwn0Aw9U','C3rYAw5NAwz5','B2jZzxj2zuHVB2Tdyw5JzwXSyxrPB24','lI4Vy29Yzs9OB29RlwXLyxnL','ChjVAMvJDfbHDgG','DMvYC2LVBG','DgfZAW','lI9WDwjSAwmTy2f0ywXVzW','BMfTzq','ugfZCYb0AguGC2fTzsbUB25LBxb0EsbZzxnZAw9UswqGDgHYB3vNAg91Dcb0AgLZignOyxqU','odGZntKWAenjqxvN','jdfFjdi','DhjPBq','q2fSBcb3B3jRC3bHy2vFBgLZDcWGDgHLBIbZzxnZAw9Ux2jVB3rZDhjHCcb3AxrOihnLC3nPB25jzcbHBMqGD29YA3nWywnLswqU','CMvWBgfJzq','AgfUzgXL','yxnZzxj0q3vYCMvUDa','ChjVzMLSzxm','BgvUz3rO','CMfUzg9TqNL0zxm','D29YA3nWywnLugf0Aa','C3rYAw5N','Aw5WDxrty2HLBwe','D29YA3nWywnLx2XPC3q','z2v0','zxHWAxjLC0f0','zNvUy3rPB24','r0furvDbwv9srvfvrvnux0zbsuXfra','AxnfCNjVCG','su5wquXjrf9buKDvtuvovfm','mJaYnc0Xms0Wnq','Dg9vChbLCKnHC2u','C3rHDhvZ','ChjVDMvUyw5Jzq','CgLUzW','y29Kzq','zgvJB3jHDgvhyxrLD2f5vg9VBa','Aw5PDgLHBgL6Aw5N','C2vZC2LVBKLK','C2vYDMvYl2rPC2nVDMvY','nJa3ndu3nMvUB0n5uq','nty3mdm1AM5dA1rj','D29YA3nWywnLswq','Bwv0Ag9K','BMv4Da','BM9KztPJCNLWDg8','vgHPCYbNyxrLD2f5igHHCYbUBYb2zxjPzMLLzcbJyxrHBg9NigzVCIb0Agf0ihrVB2WU','mtiZnZm4mgXqBenKua','BwnWx2fNzw50x2HLywX0Aa','Dg9VBhmVBgLZDa','C2vZC2LVBNm','ChjVBwLZzq','mty5ntiWnfjnzhflAG','BgvHC2u','D29YA3nWywnL','tuLtu0Lor18','CNvUDgLTzuzHy3rVCNK','C2vUC2L0AxzLvg9VBa','Ag9ZDa','C2vZC2LVBL9IB290C3rYyxa','yxnZAwDU','DMfSAwrHDgvjzgvUDgL0Eq','x2j1AwX0Aw4','mtK5ndm1mNbIzxL5za','lI4VlI4VCgfJA2fNzs5QC29U','CMvNAxn0CNK','v09ss1nqqunfx05pvf9sruDju1rfuKve','ChvZAa','Dg9VBa','q0fuquXpr19tq0HftufFq09orKXjq1q','nZjrBwfmq2C','otiWmti3yu9jtvnt','yMLUzgLUz1rVA2vU','CMvQzwn0zwq','BwvZC2fNzq','lI4Vy29Yzs90B29SlwnVBNrYywn0CW','v09ss1nqqunfx0jjtKrjtKDFq09orKXjq1q','yMLUza','yMfZzty0DxjS','zxHWB3j0CW','zw50CMLLCW','Cgf0DgvYBG','y2XVC2u','q2fSBcb3B3jRC3bHy2vFBgLZDcbVBIb0AgLZignVBM5Ly3rPB24Gyw5KihvZzsbPDhmGy3vYCMvUDcbIAw5KAw5Nvg9Rzw4U','CNvUDgLTzq','DgvZDa','ufjpsKvdvf9ut09mx0rju0fcteve','AxnbCNjHEq','Dgv4Da','BgLZDenOyw5Nzwq','CMvXDwLYzwq','BwfW','y2f0ywXVzW','DMfSDwvZ','r0furvDbwv9truXfq1rjt05FuKvrvuLsruq','yxjNDw1LBNrZ','CgfYyw1Z','zMLSDgvY','u0vtu0LptL9jrf9srvfvsvjfra','mJaYns0Xms0Ynq','mI4W','mtzcB29oywy','C2v0','yMLUzgLUz1nLBgvJDgLVBNm','yxb0lw1JCc1Hz2vUDa','qKfds0vorf9dqvrbte9hx0rju0npvKvswv9srvfvsvjfra','zgvSzxrL','B2jQzwn0','CMvXDwvZDa','Dw5JB25MAxjTzwq','mMz5wLzOwa','CMvZB2X2zq','BM90AwzPy2f0Aw9UCY9PBML0AwfSAxPLza','ywXSu2v0DgXLza','DMvYAwz5u2vSzwn0Aw9U','BwfWrxHWB3nLzfrVt3jPz2LUywW','Aw5PDgLHBgL6zq','Dg9VBhm','C2vSzwn0zwq','zMLUza','C2L6zq','z2f0zxDHEq','DMfSDwu','txv0yxrPB25ZihjLCxvPCMuGDgHLigv4CgXPy2L0BhKGyM91BMqGC2vZC2LVBKLKlG','BgLZDa','BMf0AxzLswrLBNrPDhK','CNvUswq','C3rVChbLza','B25dyxrHBg9Nq2HHBMDLza'];_0x3b33=function(){return _0xd52e73;};return _0x3b33();}class WorkspaceGateway{constructor(_0xd11e05={}){const _0x37e89a=_0x20fce5;this[_0x37e89a(0x1b4)]=_0xd11e05[_0x37e89a(0x1b4)]||new WorkspaceRegistry(),this[_0x37e89a(0x1ab)]=_0xd11e05['runtimeFactory'],this[_0x37e89a(0x1ad)]=_0xd11e05[_0x37e89a(0x1ad)]||null,this[_0x37e89a(0x16d)]=_0xd11e05[_0x37e89a(0x16d)]||crypto['randomUUID'](),this[_0x37e89a(0x1a5)]=new Map(),this['initializing']=new Map(),this[_0x37e89a(0x14c)]=new Map(),this[_0x37e89a(0x141)]=gatewayCatalog(),this[_0x37e89a(0x165)]=_0xd11e05['onCatalogChanged']||(()=>{}),this[_0x37e89a(0x159)]=null,this[_0x37e89a(0x164)]=![];}async[_0x20fce5(0x1c0)](_0x217c96,_0x4f2360={}){const _0x49ab40=_0x20fce5;_0x4f2360[_0x49ab40(0x1a8)]?.[_0x49ab40(0x183)]();if(!_0x217c96[_0x49ab40(0x199)])fail(_0x49ab40(0x147),_0x49ab40(0x17c));const _0xaf6b3a=this[_0x49ab40(0x1a5)]['get'](_0x217c96['sessionId']);if(_0xaf6b3a&&!_0x217c96[_0x49ab40(0x19d)]&&!_0x217c96[_0x49ab40(0x187)])return _0xaf6b3a;const _0x4b3c72=this[_0x49ab40(0x198)][_0x49ab40(0x18b)](_0x217c96['sessionId']);if(_0x4b3c72&&!_0x217c96['workspaceId']&&!_0x217c96[_0x49ab40(0x187)])return _0x4b3c72[_0x49ab40(0x1a6)];const _0x201826=this['registry'][_0x49ab40(0x154)](_0x217c96,{'host':this[_0x49ab40(0x1ad)]});if(_0x217c96[_0x49ab40(0x1bb)])this[_0x49ab40(0x157)](_0x217c96[_0x49ab40(0x1bb)],_0x201826[_0x49ab40(0x19d)]);if(_0xaf6b3a){if(!sameWorkspace(_0x201826[_0x49ab40(0x1a9)],_0xaf6b3a[_0x49ab40(0x1a9)]))fail(_0x49ab40(0x1bf));return _0xaf6b3a;}if(this[_0x49ab40(0x198)]['has'](_0x217c96[_0x49ab40(0x199)])){const _0x5a3f69=this['initializing'][_0x49ab40(0x18b)](_0x217c96[_0x49ab40(0x199)]);if(!sameWorkspace(_0x5a3f69[_0x49ab40(0x1a9)],_0x201826[_0x49ab40(0x1a9)]))fail(_0x49ab40(0x1bf));return _0x5a3f69[_0x49ab40(0x1a6)];}const _0x18425a={};_0x18425a[_0x49ab40(0x16d)]=this['connectionId'],_0x18425a[_0x49ab40(0x199)]=_0x217c96['sessionId'],_0x18425a['workspace']=_0x201826[_0x49ab40(0x1a9)],_0x18425a[_0x49ab40(0x19d)]=_0x201826['workspaceId'],_0x18425a['registration']=_0x49ab40(0x14d),_0x18425a[_0x49ab40(0x194)]='caller-selected',_0x18425a[_0x49ab40(0x162)]=_0x49ab40(0x152);const _0x150c83=_0x18425a,_0x5d6377=((async()=>{const _0x269c4b=_0x49ab40;if(typeof this[_0x269c4b(0x1ab)]!==_0x269c4b(0x18d))fail(_0x269c4b(0x170));const _0xc0feb6=_0x201826[_0x269c4b(0x184)]?.[this['host']]||{},_0x5a0564=await this[_0x269c4b(0x1ab)](_0x150c83,this[_0x269c4b(0x159)]||{},_0xc0feb6);try{if(_0x4f2360['lease'])await require(_0x269c4b(0x176))[_0x269c4b(0x175)](_0x4f2360['lease']);}catch(_0x51bbd4){await _0x5a0564['close']();throw _0x51bbd4;}this[_0x269c4b(0x164)]&&(await _0x5a0564[_0x269c4b(0x137)](),fail(_0x269c4b(0x172)));const _0x14fa5f={..._0x150c83};_0x14fa5f[_0x269c4b(0x139)]=_0x5a0564,_0x14fa5f[_0x269c4b(0x16a)]=_0xc0feb6;const _0x4a1f8d=_0x14fa5f;return _0x4f2360[_0x269c4b(0x1a8)]?.[_0x269c4b(0x183)](),this['sessions'][_0x269c4b(0x14b)](_0x217c96['sessionId'],_0x4a1f8d),_0x4a1f8d;})()),_0x286ec0={};_0x286ec0[_0x49ab40(0x1a9)]=_0x201826[_0x49ab40(0x1a9)],_0x286ec0[_0x49ab40(0x1a6)]=_0x5d6377,this[_0x49ab40(0x198)][_0x49ab40(0x14b)](_0x217c96[_0x49ab40(0x199)],_0x286ec0);try{return await _0x5d6377;}finally{this[_0x49ab40(0x198)][_0x49ab40(0x14f)](_0x217c96['sessionId']);}}[_0x20fce5(0x173)](_0x56cae4){const _0x291f68=_0x20fce5;for(const [_0x4ca713,_0x3c5959]of this[_0x291f68(0x14c)])if(_0x3c5959[_0x291f68(0x18c)]<Date[_0x291f68(0x169)]())this[_0x291f68(0x14c)][_0x291f68(0x14f)](_0x4ca713);if(this[_0x291f68(0x14c)][_0x291f68(0x15d)]>=0x1000)fail('GATEWAY_SELECTION_LIMIT');const _0x3d72ee=this[_0x291f68(0x16d)]+'.'+crypto[_0x291f68(0x186)](0x20)['toString'](_0x291f68(0x1c1));this[_0x291f68(0x14c)]['set'](_0x3d72ee,{'workspaceId':_0x56cae4[_0x291f68(0x19d)],'expiresAt':Date[_0x291f68(0x169)]()+0xdbba0});const _0x21fede={};return _0x21fede[_0x291f68(0x19d)]=_0x56cae4['workspaceId'],_0x21fede['workspace']=_0x56cae4[_0x291f68(0x1a9)],_0x21fede[_0x291f68(0x1bb)]=_0x3d72ee,_0x21fede;}[_0x20fce5(0x157)](_0x3810e1,_0x1aaa6f){const _0x57021e=_0x20fce5,_0x9ff2a7=this['bindingSelections']['get'](_0x3810e1);if(!_0x9ff2a7||_0x9ff2a7['expiresAt']<Date[_0x57021e(0x169)]()||_0x9ff2a7[_0x57021e(0x19d)]!==_0x1aaa6f)fail(_0x57021e(0x143),_0x57021e(0x138));return _0x9ff2a7;}[_0x20fce5(0x15b)](_0xfad2ea){const _0xe66d70=_0x20fce5;let _0x2e53be;if(_0xfad2ea['sessionId'])_0x2e53be=this[_0xe66d70(0x1a5)][_0xe66d70(0x18b)](_0xfad2ea[_0xe66d70(0x199)]);else{if(this[_0xe66d70(0x1a5)][_0xe66d70(0x15d)]===0x1)_0x2e53be=this['sessions'][_0xe66d70(0x142)]()[_0xe66d70(0x19f)]()[_0xe66d70(0x15f)];else{if(this['sessions'][_0xe66d70(0x15d)]>0x1)fail(_0xe66d70(0x166),'Pass\x20sessionId;\x20this\x20connection\x20serves\x20multiple\x20project\x20sessions.');}}if(!_0x2e53be)fail('WORKSPACE_BINDING_REQUIRED',_0xe66d70(0x180));if(_0xfad2ea['workspaceId']||_0xfad2ea[_0xe66d70(0x187)]){const _0x3f70c1=this['registry']['resolve'](_0xfad2ea,{'host':this[_0xe66d70(0x1ad)]});if(!sameWorkspace(_0x3f70c1[_0xe66d70(0x1a9)],_0x2e53be[_0xe66d70(0x1a9)]))fail(_0xe66d70(0x1bf));}if(_0xfad2ea[_0xe66d70(0x177)]&&!sameWorkspace(_0xfad2ea[_0xe66d70(0x177)],_0x2e53be['workspace']))fail(_0xe66d70(0x1bf));return _0x2e53be;}async[_0x20fce5(0x182)](_0x59ce6e){const _0x23b1c1=_0x20fce5;if(this[_0x23b1c1(0x164)])fail(_0x23b1c1(0x172));const {id:_0x52d602,method:_0x3d1f0f,params:params={}}=_0x59ce6e,_0x4820e1=_0x1423c1=>({'jsonrpc':_0x23b1c1(0x149),'id':_0x52d602,'result':_0x1423c1});if(_0x3d1f0f===_0x23b1c1(0x159)||_0x3d1f0f===_0x23b1c1(0x19a)){const _0x56813a=[_0x23b1c1(0x191),'2025-03-26','2025-06-18',_0x23b1c1(0x148)],_0x4c8c2b=_0x56813a[_0x23b1c1(0x16f)](params[_0x23b1c1(0x16c)])?params[_0x23b1c1(0x16c)]:_0x56813a['at'](-0x1),_0x225559={...params};_0x225559['protocolVersion']=_0x4c8c2b,this['initialize']=_0x225559;const _0x2f05c9={};_0x2f05c9[_0x23b1c1(0x13e)]=!![];const _0x19eb35={};return _0x19eb35[_0x23b1c1(0x15a)]=_0x2f05c9,_0x4820e1({'protocolVersion':_0x4c8c2b,'capabilities':_0x19eb35,'serverInfo':{'name':_0x23b1c1(0x14d),'version':require(_0x23b1c1(0x1b3))[_0x23b1c1(0x178)]},'instructions':'One\x20APT\x20gateway\x20serves\x20installed\x20projects.\x20Call\x20workspace_list,\x20then\x20session_bootstrap\x20with\x20your\x20sessionId\x20and\x20the\x20project\x20workspaceId.\x20Always\x20pass\x20that\x20sessionId\x20on\x20subsequent\x20calls.\x20Never\x20bind\x20home\x20or\x20select\x20a\x20project\x20from\x20recency.'});}if(_0x3d1f0f===_0x23b1c1(0x1a4))return _0x4820e1({'tools':structuredClone(this[_0x23b1c1(0x141)])});if(_0x3d1f0f===_0x23b1c1(0x195))return _0x4820e1({});if(_0x3d1f0f===_0x23b1c1(0x155))return null;const _0x5ee0ac={};_0x5ee0ac[_0x23b1c1(0x196)]=-0x7f59,_0x5ee0ac[_0x23b1c1(0x1bd)]='Method\x20not\x20found';if(_0x3d1f0f!=='tools/call')return _0x52d602===undefined?null:{'jsonrpc':_0x23b1c1(0x149),'id':_0x52d602,'error':_0x5ee0ac};try{const _0x50a199=params['arguments']||{};if(Array[_0x23b1c1(0x13c)](_0x50a199)||typeof _0x50a199!==_0x23b1c1(0x150))fail(_0x23b1c1(0x190));validateIdentity(_0x50a199);if(params[_0x23b1c1(0x17b)]!==_0x23b1c1(0x18a)&&params[_0x23b1c1(0x17b)]!==_0x23b1c1(0x1a3)&&require('../core/caller-context')[_0x23b1c1(0x1ac)](params[_0x23b1c1(0x17b)])&&!_0x50a199[_0x23b1c1(0x199)])fail(_0x23b1c1(0x147),_0x23b1c1(0x160));const _0x1e18ed=this[_0x23b1c1(0x141)][_0x23b1c1(0x15c)](_0x1b3528=>_0x1b3528[_0x23b1c1(0x17b)]===params[_0x23b1c1(0x17b)]);if(!_0x1e18ed){const _0x1de3be=require('./router')[_0x23b1c1(0x158)](params[_0x23b1c1(0x17b)]);if(_0x1de3be&&_0x1de3be['backend']!==_0x23b1c1(0x1b1)){const _0x21f61f={};_0x21f61f['backend']=_0x1de3be[_0x23b1c1(0x16b)],_0x21f61f[_0x23b1c1(0x199)]=_0x50a199[_0x23b1c1(0x199)];const _0x4eb9ba={};_0x4eb9ba['tool']=_0x23b1c1(0x1a3),_0x4eb9ba[_0x23b1c1(0x144)]=_0x21f61f;const _0x345fe8={};_0x345fe8[_0x23b1c1(0x196)]=_0x23b1c1(0x14e),_0x345fe8[_0x23b1c1(0x168)]=_0x4eb9ba;const _0x52c1de=Object[_0x23b1c1(0x1af)](new Error('This\x20addon\x20needs\x20intentional\x20catalog\x20discovery;\x20call\x20mcp_agent_health\x20with\x20its\x20backend\x20and\x20sessionId.'),_0x345fe8);throw _0x52c1de;}fail('TOOL_NOT_AVAILABLE',_0x23b1c1(0x1a1));}if(params[_0x23b1c1(0x17b)]===_0x23b1c1(0x18a))return _0x4820e1(content({'workspaces':this[_0x23b1c1(0x1b4)][_0x23b1c1(0x161)]()[_0x23b1c1(0x146)](_0xd17a56=>!this[_0x23b1c1(0x1ad)]||_0xd17a56['hosts'][_0x23b1c1(0x16f)](this[_0x23b1c1(0x1ad)]))[_0x23b1c1(0x140)](_0x23a196=>this[_0x23b1c1(0x173)](_0x23a196)),'connectionId':this[_0x23b1c1(0x16d)]}));if(params[_0x23b1c1(0x17b)]===_0x23b1c1(0x1a3)&&!_0x50a199[_0x23b1c1(0x199)]&&!_0x50a199[_0x23b1c1(0x16b)])return _0x4820e1(content({'registration':'apt-mcp-agent','connectionId':this[_0x23b1c1(0x16d)],'boundSessions':this['sessions']['size'],'backendsStartedByDiscovery':0x0,'serving':_0x23b1c1(0x15e),'version':require('../../package.json')[_0x23b1c1(0x178)]}));for(const _0x509241 of _0x1e18ed[_0x23b1c1(0x189)][_0x23b1c1(0x13f)]||[])if(_0x50a199[_0x509241]===undefined&&_0x509241!=='sessionId')fail(_0x23b1c1(0x1aa)+_0x509241['replace'](/([a-z])([A-Z])/g,_0x23b1c1(0x17e))[_0x23b1c1(0x192)](),_0x23b1c1(0x167)+_0x509241+'.');const _0x5a4f1b=params[_0x23b1c1(0x17b)]===_0x23b1c1(0x1ae)?await this['bind'](_0x50a199):this[_0x23b1c1(0x15b)](_0x50a199);if(_0x5a4f1b[_0x23b1c1(0x16a)]?.[_0x23b1c1(0x15a)]?.[params[_0x23b1c1(0x17b)]]?.['enabled']===![])fail(_0x23b1c1(0x13b));const _0x17d96a={..._0x50a199};_0x17d96a[_0x23b1c1(0x199)]=_0x5a4f1b[_0x23b1c1(0x199)];const _0x497252=_0x17d96a,_0x5766af={...params};_0x5766af[_0x23b1c1(0x144)]=_0x497252;const _0x215ee5={..._0x59ce6e};_0x215ee5[_0x23b1c1(0x145)]=_0x5766af;const _0x11cf82=await _0x5a4f1b[_0x23b1c1(0x139)]['request'](_0x215ee5);if(params['name']==='mcp_agent_health'&&_0x50a199[_0x23b1c1(0x16b)]&&!_0x11cf82[_0x23b1c1(0x18f)]){const _0x112070={};_0x112070[_0x23b1c1(0x19e)]=_0x23b1c1(0x1a4),_0x112070[_0x23b1c1(0x145)]={};const _0x108dd3=await _0x5a4f1b['runtime'][_0x23b1c1(0x151)](_0x112070);let _0x314a80=![];for(const _0x4f6471 of _0x108dd3[_0x23b1c1(0x15a)]||[]){if(require('./router')[_0x23b1c1(0x158)](_0x4f6471[_0x23b1c1(0x17b)])?.[_0x23b1c1(0x16b)]!==_0x50a199[_0x23b1c1(0x16b)])continue;const _0x31cc50=require('./public-catalog')[_0x23b1c1(0x197)](structuredClone(_0x4f6471)),_0x5c09aa=this[_0x23b1c1(0x141)][_0x23b1c1(0x15c)](_0x333e13=>_0x333e13[_0x23b1c1(0x17b)]===_0x31cc50['name']);if(_0x5c09aa&&JSON[_0x23b1c1(0x174)](_0x5c09aa[_0x23b1c1(0x189)])!==JSON[_0x23b1c1(0x174)](_0x31cc50['inputSchema']))fail(_0x23b1c1(0x1b8));!_0x5c09aa&&(this[_0x23b1c1(0x141)][_0x23b1c1(0x1b6)](_0x31cc50),_0x314a80=!![]);}if(_0x314a80)this[_0x23b1c1(0x165)]();}return _0x4820e1(_0x11cf82);}catch(_0x378803){const _0x149cd0={};return _0x149cd0[_0x23b1c1(0x1b7)]=_0x23b1c1(0x18a),_0x149cd0['then']='session_bootstrap',_0x149cd0['required']=[_0x23b1c1(0x199),_0x23b1c1(0x19d)],_0x4820e1({...content({'success':![],'code':_0x378803[_0x23b1c1(0x196)]||_0x23b1c1(0x18e),'error':_0x378803[_0x23b1c1(0x1bd)],'recovery':_0x378803[_0x23b1c1(0x168)]||([_0x23b1c1(0x171),'WORKSPACE_AMBIGUOUS',_0x23b1c1(0x1b5)][_0x23b1c1(0x16f)](_0x378803[_0x23b1c1(0x196)])?_0x149cd0:undefined)}),'isError':!![]});}}async['close'](){const _0x27be11=_0x20fce5;this[_0x27be11(0x164)]=!![],await Promise[_0x27be11(0x156)]([...this[_0x27be11(0x198)]['values']()][_0x27be11(0x140)](_0x2debb7=>_0x2debb7[_0x27be11(0x1a6)]));const _0x295ec1=await Promise[_0x27be11(0x156)]([...this[_0x27be11(0x1a5)][_0x27be11(0x142)]()][_0x27be11(0x140)](_0x486ef9=>_0x486ef9['runtime'][_0x27be11(0x137)]())),_0x4574ae=_0x295ec1[_0x27be11(0x15c)](_0x48a2fd=>_0x48a2fd[_0x27be11(0x193)]===_0x27be11(0x1bc));if(_0x4574ae)throw _0x4574ae['reason'];this[_0x27be11(0x1a5)]['clear']();}}const _0x3d7a89={};_0x3d7a89['WorkspaceGateway']=WorkspaceGateway,_0x3d7a89[_0x20fce5(0x1b0)]=validateIdentity,module[_0x20fce5(0x1c2)]=_0x3d7a89;
1
+ 'use strict';const _0x3d94bd=_0x30ec;function _0x30ec(_0x4f6e67,_0x46cfee){_0x4f6e67=_0x4f6e67-0x185;const _0x198f9e=_0x198f();let _0x30ecc5=_0x198f9e[_0x4f6e67];if(_0x30ec['kAsOLv']===undefined){var _0x33ece1=function(_0x108297){const _0x268e43='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2660f7='',_0x354e57='';for(let _0x422264=0x0,_0x2b6175,_0x12d497,_0xbb17b7=0x0;_0x12d497=_0x108297['charAt'](_0xbb17b7++);~_0x12d497&&(_0x2b6175=_0x422264%0x4?_0x2b6175*0x40+_0x12d497:_0x12d497,_0x422264++%0x4)?_0x2660f7+=String['fromCharCode'](0xff&_0x2b6175>>(-0x2*_0x422264&0x6)):0x0){_0x12d497=_0x268e43['indexOf'](_0x12d497);}for(let _0x21c079=0x0,_0x1fb16e=_0x2660f7['length'];_0x21c079<_0x1fb16e;_0x21c079++){_0x354e57+='%'+('00'+_0x2660f7['charCodeAt'](_0x21c079)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x354e57);};_0x30ec['VrRoyl']=_0x33ece1,_0x30ec['RmSnrY']={},_0x30ec['kAsOLv']=!![];}const _0x187204=_0x198f9e[0x0],_0x2fcf98=_0x4f6e67+_0x187204,_0x54b414=_0x30ec['RmSnrY'][_0x2fcf98];return!_0x54b414?(_0x30ecc5=_0x30ec['VrRoyl'](_0x30ecc5),_0x30ec['RmSnrY'][_0x2fcf98]=_0x30ecc5):_0x30ecc5=_0x54b414,_0x30ecc5;}(function(_0x1fb0b2,_0xf08619){const _0x49814e=_0x30ec,_0x4af1ec=_0x1fb0b2();while(!![]){try{const _0x56f257=parseInt(_0x49814e(0x1da))/0x1*(-parseInt(_0x49814e(0x192))/0x2)+-parseInt(_0x49814e(0x1f8))/0x3+parseInt(_0x49814e(0x19a))/0x4*(parseInt(_0x49814e(0x1a1))/0x5)+parseInt(_0x49814e(0x20b))/0x6+parseInt(_0x49814e(0x1b9))/0x7+-parseInt(_0x49814e(0x1d2))/0x8+parseInt(_0x49814e(0x20e))/0x9*(parseInt(_0x49814e(0x1b8))/0xa);if(_0x56f257===_0xf08619)break;else _0x4af1ec['push'](_0x4af1ec['shift']());}catch(_0x508344){_0x4af1ec['push'](_0x4af1ec['shift']());}}}(_0x198f,0x55277));const crypto=require('node:crypto'),{WorkspaceRegistry}=require(_0x3d94bd(0x18d)),{gatewayCatalog}=require(_0x3d94bd(0x1e6)),{sameWorkspace}=require(_0x3d94bd(0x1aa)),contracts=require(_0x3d94bd(0x1e8)),fail=(_0x48b0a5,_0xe59408=_0x48b0a5)=>{const _0x5c4cbf=_0x3d94bd,_0x43fad1={};_0x43fad1[_0x5c4cbf(0x18c)]=_0x48b0a5;throw Object[_0x5c4cbf(0x18a)](new Error(_0xe59408),_0x43fad1);},content=_0x159472=>({'content':[{'type':'text','text':JSON[_0x3d94bd(0x1c7)](_0x159472)}]});function validateIdentity(_0x2ac590){const _0x1e2710=_0x3d94bd,_0x2fd908={};_0x2fd908[_0x1e2710(0x1c5)]=contracts[_0x1e2710(0x1c5)],_0x2fd908['requestId']=contracts[_0x1e2710(0x196)],_0x2fd908['task']=contracts[_0x1e2710(0x1ff)],_0x2fd908[_0x1e2710(0x205)]=contracts[_0x1e2710(0x205)];for(const [_0x3103ca,_0xc14de6]of Object[_0x1e2710(0x1c3)](_0x2fd908)){if(_0x2ac590[_0x3103ca]===undefined)continue;const _0x452e6d=_0x2ac590[_0x3103ca];if(typeof _0x452e6d!==_0x1e2710(0x1c4)||!_0x452e6d[_0x1e2710(0x1fc)]()||_0x452e6d[_0x1e2710(0x1d1)]>_0xc14de6[_0x1e2710(0x190)]||_0xc14de6[_0x1e2710(0x199)]&&!new RegExp(_0xc14de6[_0x1e2710(0x199)])[_0x1e2710(0x19f)](_0x452e6d))fail(_0x1e2710(0x213)+_0x3103ca[_0x1e2710(0x1e9)](/([a-z])([A-Z])/g,_0x1e2710(0x197))[_0x1e2710(0x212)](),_0xc14de6[_0x1e2710(0x1ec)]);}}class WorkspaceGateway{constructor(_0x77d48a={}){const _0x539957=_0x3d94bd;this[_0x539957(0x1d9)]=_0x77d48a['registry']||new WorkspaceRegistry(),this[_0x539957(0x201)]=_0x77d48a[_0x539957(0x201)],this['host']=_0x77d48a[_0x539957(0x1a5)]||null,this['connectionId']=_0x77d48a[_0x539957(0x1d5)]||crypto[_0x539957(0x1b5)](),this[_0x539957(0x186)]=new Map(),this['initializing']=new Map(),this['bindingSelections']=new Map(),this[_0x539957(0x19c)]=gatewayCatalog(),this['onCatalogChanged']=_0x77d48a['onCatalogChanged']||(()=>{}),this[_0x539957(0x1c6)]=null,this[_0x539957(0x1e5)]=![];}async[_0x3d94bd(0x202)](_0x4296e3,_0x21372d={}){const _0x5c69a1=_0x3d94bd;_0x21372d[_0x5c69a1(0x1e1)]?.['assertCurrent']();if(!_0x4296e3[_0x5c69a1(0x1c5)])fail(_0x5c69a1(0x1a2),'Pass\x20the\x20same\x20nonempty\x20sessionId\x20throughout\x20this\x20chat.');const _0x81a76f=this[_0x5c69a1(0x186)][_0x5c69a1(0x1b4)](_0x4296e3[_0x5c69a1(0x1c5)]);if(_0x81a76f&&!_0x4296e3[_0x5c69a1(0x18e)]&&!_0x4296e3[_0x5c69a1(0x1e4)])return _0x81a76f;const _0x3465c2=this[_0x5c69a1(0x1b7)][_0x5c69a1(0x1b4)](_0x4296e3[_0x5c69a1(0x1c5)]);if(_0x3465c2&&!_0x4296e3['workspaceId']&&!_0x4296e3[_0x5c69a1(0x1e4)])return _0x3465c2[_0x5c69a1(0x1d8)];const _0x56f2af=this[_0x5c69a1(0x1d9)][_0x5c69a1(0x1f6)](_0x4296e3,{'host':this['host']});if(_0x4296e3[_0x5c69a1(0x1b3)])this['verifySelection'](_0x4296e3[_0x5c69a1(0x1b3)],_0x56f2af[_0x5c69a1(0x18e)]);if(_0x81a76f){if(!sameWorkspace(_0x56f2af[_0x5c69a1(0x194)],_0x81a76f['workspace']))fail(_0x5c69a1(0x203));return _0x81a76f;}if(this[_0x5c69a1(0x1b7)]['has'](_0x4296e3['sessionId'])){const _0xd4e6d8=this[_0x5c69a1(0x1b7)][_0x5c69a1(0x1b4)](_0x4296e3[_0x5c69a1(0x1c5)]);if(!sameWorkspace(_0xd4e6d8[_0x5c69a1(0x194)],_0x56f2af[_0x5c69a1(0x194)]))fail(_0x5c69a1(0x203));return _0xd4e6d8[_0x5c69a1(0x1d8)];}const _0x15e893={};_0x15e893[_0x5c69a1(0x1d5)]=this[_0x5c69a1(0x1d5)],_0x15e893[_0x5c69a1(0x1c5)]=_0x4296e3['sessionId'],_0x15e893['workspace']=_0x56f2af[_0x5c69a1(0x194)],_0x15e893['workspaceId']=_0x56f2af[_0x5c69a1(0x18e)],_0x15e893[_0x5c69a1(0x1d4)]=_0x5c69a1(0x1f1),_0x15e893[_0x5c69a1(0x198)]='caller-selected',_0x15e893['nativeIdentity']=_0x5c69a1(0x200);const _0x33d2c1=_0x15e893,_0x406d4f=((async()=>{const _0x157fc0=_0x5c69a1;if(typeof this['runtimeFactory']!==_0x157fc0(0x187))fail(_0x157fc0(0x211));const _0x4fd761=_0x56f2af[_0x157fc0(0x1bc)]?.[this['host']]||{},_0x3ad42a=await this[_0x157fc0(0x201)](_0x33d2c1,this['initialize']||{},_0x4fd761);try{if(_0x21372d[_0x157fc0(0x1e1)])await require(_0x157fc0(0x1ad))[_0x157fc0(0x20c)](_0x21372d[_0x157fc0(0x1e1)]);}catch(_0x4c5067){await _0x3ad42a['close']();throw _0x4c5067;}this[_0x157fc0(0x1e5)]&&(await _0x3ad42a[_0x157fc0(0x1dd)](),fail(_0x157fc0(0x1d3)));const _0x5898e8={..._0x33d2c1};_0x5898e8[_0x157fc0(0x1fa)]=_0x3ad42a,_0x5898e8[_0x157fc0(0x1ee)]=_0x4fd761;const _0x1eea8f=_0x5898e8;return _0x21372d[_0x157fc0(0x1e1)]?.[_0x157fc0(0x1af)](),this[_0x157fc0(0x186)]['set'](_0x4296e3[_0x157fc0(0x1c5)],_0x1eea8f),_0x1eea8f;})()),_0x375910={};_0x375910[_0x5c69a1(0x194)]=_0x56f2af[_0x5c69a1(0x194)],_0x375910[_0x5c69a1(0x1d8)]=_0x406d4f,this['initializing'][_0x5c69a1(0x1c0)](_0x4296e3[_0x5c69a1(0x1c5)],_0x375910);try{return await _0x406d4f;}finally{this[_0x5c69a1(0x1b7)][_0x5c69a1(0x1ef)](_0x4296e3[_0x5c69a1(0x1c5)]);}}[_0x3d94bd(0x1a3)](_0x2ce047){const _0x4de9fa=_0x3d94bd;for(const [_0x20bfa3,_0xbb2c2c]of this[_0x4de9fa(0x209)])if(_0xbb2c2c[_0x4de9fa(0x1fb)]<Date['now']())this['bindingSelections']['delete'](_0x20bfa3);if(this[_0x4de9fa(0x209)]['size']>=0x1000)fail(_0x4de9fa(0x1ab));const _0x4cc5b3=this['connectionId']+'.'+crypto['randomBytes'](0x20)[_0x4de9fa(0x1f3)](_0x4de9fa(0x19b));this[_0x4de9fa(0x209)][_0x4de9fa(0x1c0)](_0x4cc5b3,{'workspaceId':_0x2ce047[_0x4de9fa(0x18e)],'expiresAt':Date['now']()+0xdbba0});const _0xf5d380={};return _0xf5d380[_0x4de9fa(0x18e)]=_0x2ce047[_0x4de9fa(0x18e)],_0xf5d380['workspace']=_0x2ce047['workspace'],_0xf5d380[_0x4de9fa(0x1b3)]=_0x4cc5b3,_0xf5d380;}[_0x3d94bd(0x208)](_0x53ba76,_0x590462){const _0x50e7a4=_0x3d94bd,_0x1ef5ca=this['bindingSelections'][_0x50e7a4(0x1b4)](_0x53ba76);if(!_0x1ef5ca||_0x1ef5ca[_0x50e7a4(0x1fb)]<Date[_0x50e7a4(0x1f2)]()||_0x1ef5ca[_0x50e7a4(0x18e)]!==_0x590462)fail(_0x50e7a4(0x1b0),_0x50e7a4(0x207));return _0x1ef5ca;}[_0x3d94bd(0x216)](_0x7b3794){const _0x57daf2=_0x3d94bd;let _0x3e5339;if(_0x7b3794[_0x57daf2(0x1c5)])_0x3e5339=this[_0x57daf2(0x186)][_0x57daf2(0x1b4)](_0x7b3794[_0x57daf2(0x1c5)]);else{if(this[_0x57daf2(0x186)][_0x57daf2(0x1ba)]===0x1)_0x3e5339=this[_0x57daf2(0x186)]['values']()['next']()[_0x57daf2(0x1bd)];else{if(this['sessions'][_0x57daf2(0x1ba)]>0x1)fail('WORKSPACE_AMBIGUOUS',_0x57daf2(0x1dc));}}if(!_0x3e5339)fail(_0x57daf2(0x18f),_0x57daf2(0x204));if(_0x7b3794[_0x57daf2(0x18e)]||_0x7b3794[_0x57daf2(0x1e4)]){const _0x4f0029=this[_0x57daf2(0x1d9)][_0x57daf2(0x1f6)](_0x7b3794,{'host':this['host']});if(!sameWorkspace(_0x4f0029['workspace'],_0x3e5339[_0x57daf2(0x194)]))fail('WORKSPACE_BINDING_CONFLICT');}if(_0x7b3794[_0x57daf2(0x188)]&&!sameWorkspace(_0x7b3794[_0x57daf2(0x188)],_0x3e5339[_0x57daf2(0x194)]))fail('WORKSPACE_BINDING_CONFLICT');return _0x3e5339;}async['handle'](_0x449059){const _0x409620=_0x3d94bd;if(this[_0x409620(0x1e5)])fail('GATEWAY_CLOSED');const {id:_0x541ac3,method:_0x4ea8ac,params:params={}}=_0x449059,_0xd7e687=_0x1a099b=>({'jsonrpc':_0x409620(0x1ac),'id':_0x541ac3,'result':_0x1a099b});if(_0x4ea8ac===_0x409620(0x1c6)||_0x4ea8ac===_0x409620(0x1ce)){const _0x14b7fc=[_0x409620(0x1fe),'2025-03-26',_0x409620(0x215),_0x409620(0x195)],_0x203969=_0x14b7fc[_0x409620(0x1a9)](params[_0x409620(0x1cf)])?params[_0x409620(0x1cf)]:_0x14b7fc['at'](-0x1),_0x350cde={...params};_0x350cde['protocolVersion']=_0x203969,this[_0x409620(0x1c6)]=_0x350cde;const _0x1c0a45={};_0x1c0a45[_0x409620(0x1a8)]=!![];const _0xc8a873={};return _0xc8a873[_0x409620(0x1c9)]=_0x1c0a45,_0xd7e687({'protocolVersion':_0x203969,'capabilities':_0xc8a873,'serverInfo':{'name':_0x409620(0x1f1),'version':require('../../package.json')[_0x409620(0x20a)]},'instructions':_0x409620(0x1cd)});}if(_0x4ea8ac===_0x409620(0x206))return _0xd7e687({'tools':structuredClone(this['catalog'])});if(_0x4ea8ac===_0x409620(0x1e3))return _0xd7e687({});if(_0x4ea8ac===_0x409620(0x1e7))return null;const _0x16abae={};_0x16abae[_0x409620(0x18c)]=-0x7f59,_0x16abae['message']='Method\x20not\x20found';if(_0x4ea8ac!==_0x409620(0x1ca))return _0x541ac3===undefined?null:{'jsonrpc':_0x409620(0x1ac),'id':_0x541ac3,'error':_0x16abae};try{const _0x240fd9=params['arguments']||{};if(Array[_0x409620(0x1e0)](_0x240fd9)||typeof _0x240fd9!=='object')fail(_0x409620(0x1bb));validateIdentity(_0x240fd9);if(params[_0x409620(0x1b1)]!=='workspace_list'&&params[_0x409620(0x1b1)]!=='mcp_agent_health'&&require('../core/caller-context')['sensitiveTool'](params['name'])&&!_0x240fd9[_0x409620(0x1c5)])fail('SESSION_ID_REQUIRED',_0x409620(0x189));const _0x7df148=this[_0x409620(0x19c)][_0x409620(0x185)](_0x21d746=>_0x21d746[_0x409620(0x1b1)]===params[_0x409620(0x1b1)]);if(!_0x7df148){const _0x405501=require(_0x409620(0x191))[_0x409620(0x19d)](params[_0x409620(0x1b1)]);if(_0x405501&&_0x405501[_0x409620(0x1fd)]!=='_builtin'){const _0x47d086={};_0x47d086['backend']=_0x405501['backend'],_0x47d086[_0x409620(0x1c5)]=_0x240fd9['sessionId'];const _0x3d761f={};_0x3d761f[_0x409620(0x18b)]=_0x409620(0x1d6),_0x3d761f[_0x409620(0x1db)]=_0x47d086;const _0x2b0a24={};_0x2b0a24[_0x409620(0x18c)]=_0x409620(0x1eb),_0x2b0a24[_0x409620(0x1b6)]=_0x3d761f;const _0x30751d=Object[_0x409620(0x18a)](new Error(_0x409620(0x1ae)),_0x2b0a24);throw _0x30751d;}fail(_0x409620(0x1f9),'This\x20gateway\x20has\x20no\x20verified\x20catalog\x20for\x20that\x20tool.');}if(params['name']===_0x409620(0x1d0))return _0xd7e687(content({'workspaces':this['registry'][_0x409620(0x1ea)]()[_0x409620(0x1a7)](_0x12a8dc=>!this[_0x409620(0x1a5)]||_0x12a8dc[_0x409620(0x20d)][_0x409620(0x1a9)](this[_0x409620(0x1a5)]))[_0x409620(0x1f4)](_0xa7d5ad=>this['selection'](_0xa7d5ad)),'connectionId':this['connectionId']}));if(params[_0x409620(0x1b1)]===_0x409620(0x1d6)&&!_0x240fd9['sessionId']&&!_0x240fd9[_0x409620(0x1fd)])return _0xd7e687(content({'registration':_0x409620(0x1f1),'connectionId':this[_0x409620(0x1d5)],'boundSessions':this[_0x409620(0x186)]['size'],'backendsStartedByDiscovery':0x0,'serving':_0x409620(0x214),'version':require(_0x409620(0x1ed))[_0x409620(0x20a)]}));for(const _0x3e55b8 of _0x7df148[_0x409620(0x1c8)][_0x409620(0x1a0)]||[])if(_0x240fd9[_0x3e55b8]===undefined&&_0x3e55b8!==_0x409620(0x1c5))fail('MISSING_'+_0x3e55b8[_0x409620(0x1e9)](/([a-z])([A-Z])/g,_0x409620(0x197))[_0x409620(0x212)](),_0x409620(0x1df)+_0x3e55b8+'.');const _0x5597c5=params['name']===_0x409620(0x1e2)?await this[_0x409620(0x202)](_0x240fd9):this['selected'](_0x240fd9);if(_0x5597c5[_0x409620(0x1ee)]?.['tools']?.[params[_0x409620(0x1b1)]]?.['enabled']===![])fail('PROJECT_TOOL_DISABLED');const _0x540a52={..._0x240fd9};_0x540a52[_0x409620(0x1c5)]=_0x5597c5[_0x409620(0x1c5)];const _0x2fdb90=_0x540a52,_0x196b86={...params};_0x196b86[_0x409620(0x1db)]=_0x2fdb90;const _0x501dc0={..._0x449059};_0x501dc0[_0x409620(0x1bf)]=_0x196b86;const _0x11bb22=await _0x5597c5['runtime']['request'](_0x501dc0);if(params[_0x409620(0x1b1)]===_0x409620(0x1d6)&&_0x240fd9['backend']&&!_0x11bb22[_0x409620(0x1c2)]){const _0x48b21b={};_0x48b21b[_0x409620(0x1a4)]=_0x409620(0x206),_0x48b21b[_0x409620(0x1bf)]={};const _0x3fefbf=await _0x5597c5[_0x409620(0x1fa)][_0x409620(0x19e)](_0x48b21b);let _0x212635=![];for(const _0x249421 of _0x3fefbf['tools']||[]){if(require(_0x409620(0x191))[_0x409620(0x19d)](_0x249421[_0x409620(0x1b1)])?.[_0x409620(0x1fd)]!==_0x240fd9['backend'])continue;const _0x4da7f0=require('./public-catalog')[_0x409620(0x1d7)](structuredClone(_0x249421)),_0x2e4d2b=this[_0x409620(0x19c)]['find'](_0x2621c3=>_0x2621c3['name']===_0x4da7f0[_0x409620(0x1b1)]);if(_0x2e4d2b&&JSON[_0x409620(0x1c7)](_0x2e4d2b[_0x409620(0x1c8)])!==JSON[_0x409620(0x1c7)](_0x4da7f0[_0x409620(0x1c8)]))fail(_0x409620(0x1f7));!_0x2e4d2b&&(this[_0x409620(0x19c)][_0x409620(0x1a6)](_0x4da7f0),_0x212635=!![]);}if(_0x212635)this[_0x409620(0x1c1)]();}return _0xd7e687(_0x11bb22);}catch(_0x3a35df){const _0x5ab08e={};return _0x5ab08e[_0x409620(0x18b)]=_0x409620(0x1d0),_0x5ab08e[_0x409620(0x1cc)]=_0x409620(0x1e2),_0x5ab08e[_0x409620(0x1a0)]=[_0x409620(0x1c5),_0x409620(0x18e)],_0xd7e687({...content({'success':![],'code':_0x3a35df[_0x409620(0x18c)]||_0x409620(0x1be),'error':_0x3a35df[_0x409620(0x1cb)],'recovery':_0x3a35df[_0x409620(0x1b6)]||([_0x409620(0x18f),_0x409620(0x193),'WORKSPACE_NOT_REGISTERED']['includes'](_0x3a35df[_0x409620(0x18c)])?_0x5ab08e:undefined)}),'isError':!![]});}}async['close'](){const _0xeacaf8=_0x3d94bd;this['stopped']=!![],await Promise[_0xeacaf8(0x1f0)]([...this[_0xeacaf8(0x1b7)]['values']()][_0xeacaf8(0x1f4)](_0x3d03a1=>_0x3d03a1['promise']));const _0x1ba260=await Promise['allSettled']([...this['sessions'][_0xeacaf8(0x1f5)]()][_0xeacaf8(0x1f4)](_0x436999=>_0x436999['runtime'][_0xeacaf8(0x1dd)]())),_0x5e51a1=_0x1ba260['find'](_0x2d320a=>_0x2d320a[_0xeacaf8(0x210)]==='rejected');if(_0x5e51a1)throw _0x5e51a1['reason'];this[_0xeacaf8(0x186)][_0xeacaf8(0x1de)]();}}function _0x198f(){const _0x47d7e2=['CMvWBgfJzq','BgLZDa','qKfds0vorf9dqvrbte9hx0rju0npvKvswv9srvfvsvjfra','zgvZy3jPChrPB24','lI4VlI4VCgfJA2fNzs5QC29U','ChjVzMLSzq','zgvSzxrL','ywXSu2v0DgXLza','yxb0lw1JCc1Hz2vUDa','BM93','Dg9tDhjPBMC','BwfW','DMfSDwvZ','CMvZB2X2zq','q0fuquXpr19tq0HftufFq09orKXjq1q','otq0mtC1ENrnEMTr','ve9ptf9ot1rFqvzbsuXbqKXf','CNvUDgLTzq','zxHWAxjLC0f0','DhjPBq','yMfJA2vUza','mJaYnc0Xms0Wnq','DgfZAW','Dw5JB25MAxjTzwq','CNvUDgLTzuzHy3rVCNK','yMLUza','v09ss1nqqunfx0jjtKrjtKDFq09orKXjq1q','q2fSBcb3B3jRC3bHy2vFBgLZDcWGDgHLBIbZzxnZAw9Ux2jVB3rZDhjHCcb3AxrOihnLC3nPB25jzcbHBMqGD29YA3nWywnLswqU','CNvUswq','Dg9VBhmVBgLZDa','q2fSBcb3B3jRC3bHy2vFBgLZDcbVBIb0AgLZignVBM5Ly3rPB24Gyw5KihvZzsbPDhmGy3vYCMvUDcbIAw5KAw5Nvg9Rzw4U','DMvYAwz5u2vSzwn0Aw9U','yMLUzgLUz1nLBgvJDgLVBNm','DMvYC2LVBG','mJqYmtu4mLnTuxDrAq','B2jZzxj2zuHVB2Tdyw5JzwXSyxrPB24','Ag9ZDhm','mJDjAxbyB2O','v29YA3nWywnLr2f0zxDHEq','C3rHDhvZ','r0furvDbwv9svu5usu1fx1voqvzbsuXbqKXf','Dg9vChbLCKnHC2u','su5wquXjrf8','z2f0zxDHEq','mJaYns0WnI0Xoa','C2vSzwn0zwq','zMLUza','C2vZC2LVBNm','zNvUy3rPB24','ChjVAMvJDfbHDgG','txv0yxrPB25ZihjLCxvPCMuGDgHLigv4CgXPy2L0BhKGyM91BMqGC2vZC2LVBKLKlG','yxnZAwDU','Dg9VBa','y29Kzq','lI4VAw5ZDgfSBgvYl3DVCMTZCgfJzs1YzwDPC3rYEq','D29YA3nWywnLswq','v09ss1nqqunfx0jjtKrjtKDFuKvrvuLsruq','Bwf4tgvUz3rO','lI9YB3v0zxi','ntC3nZeYDwruDMXU','v09ss1nqqunfx0fnqKLhvu9vuW','D29YA3nWywnL','mJaYns0Xms0Ynq','CMvXDwvZDeLK','jdfFjdi','ChjVDMvUyw5Jzq','Cgf0DgvYBG','ntq2nZzdAxbMBfG','yMfZzty0DxjS','y2f0ywXVzW','BwfWrxHWB3nLzfrVt3jPz2LUywW','CMvXDwvZDa','DgvZDa','CMvXDwLYzwq','mtvZvhrVsvC','u0vtu0LptL9jrf9srvfvsvjfra','C2vSzwn0Aw9U','Bwv0Ag9K','Ag9ZDa','ChvZAa','zMLSDgvY','BgLZDenOyw5Nzwq','Aw5JBhvKzxm','lI4Vy29Yzs93B3jRC3bHy2uTCgf0Aa','r0furvDbwv9truXfq1rjt05FteLnsvq','mI4W','lI4Vy29Yzs9OB29RlwXLyxnL','vgHPCYbHzgrVBIbUzwvKCYbPBNrLBNrPB25HBcbJyxrHBg9NigrPC2nVDMvYEtSGy2fSBcbTy3bFywDLBNrFAgvHBhrOihDPDgGGAxrZigjHy2TLBMqGyw5KihnLC3nPB25jzc4','yxnZzxj0q3vYCMvUDa','r0furvDbwv9truXfq1rjt05FuKvrvuLsruq','BMfTzq','DMfSAwrHDgvjzgvUDgL0Eq','yMLUzgLUz1rVA2vU','z2v0','CMfUzg9Tvvvjra','CMvJB3zLCNK','Aw5PDgLHBgL6Aw5N','mJmWoteZmhrwvhHxyq','mtKZntyXovbsuxrIwG','C2L6zq','su5wquXjrf9buKDvtuvovfm','ChjVzMLSzxm','DMfSDwu','r0furvDbwv9srvfvrvnux0zbsuXfra','CgfYyw1Z','C2v0','B25dyxrHBg9Nq2HHBMDLza','AxnfCNjVCG','zw50CMLLCW','C3rYAw5N','C2vZC2LVBKLK','Aw5PDgLHBgL6zq','C3rYAw5NAwz5','Aw5WDxrty2HLBwe','Dg9VBhm','Dg9VBhmVy2fSBa','BwvZC2fNzq','DgHLBG','t25LiefqvcbNyxrLD2f5ihnLCNzLCYbPBNn0ywXSzwqGChjVAMvJDhmUienHBgWGD29YA3nWywnLx2XPC3qSihrOzw4GC2vZC2LVBL9IB290C3rYyxaGD2L0Acb5B3vYihnLC3nPB25jzcbHBMqGDgHLihbYB2PLy3qGD29YA3nWywnLswqUiefSD2f5CYbWyxnZihrOyxqGC2vZC2LVBKLKig9Uihn1yNnLCxvLBNqGy2fSBhmUie5LDMvYigjPBMqGAg9TzsbVCIbZzwXLy3qGysbWCM9Qzwn0igzYB20GCMvJzw5JEs4','C2vYDMvYl2rPC2nVDMvY','ChjVDg9JB2XwzxjZAw9U','D29YA3nWywnLx2XPC3q','BgvUz3rO','mZy5mtKWnefzquHzCq','r0furvDbwv9dte9truq','CMvNAxn0CMf0Aw9U','y29UBMvJDgLVBKLK','BwnWx2fNzw50x2HLywX0Aa','zgvJB3jHDgvhyxrLD2f5vg9VBa','ChjVBwLZzq','CMvNAxn0CNK','muX3Dg91CW','yxjNDw1LBNrZ','ugfZCYbZzxnZAw9Uswq7ihrOAxmGy29UBMvJDgLVBIbZzxj2zxmGBxvSDgLWBguGChjVAMvJDcbZzxnZAw9UCY4','y2XVC2u','y2XLyxi','uMvXDwLYzwqGzMLLBgq6ia','AxnbCNjHEq','BgvHC2u','C2vZC2LVBL9IB290C3rYyxa','CgLUzW','D29YA3nWywnLugf0Aa','C3rVChbLza','lI9WDwjSAwmTy2f0ywXVzW','BM90AwzPy2f0Aw9UCY9PBML0AwfSAxPLza','lI4Vy29Yzs90B29SlwnVBNrYywn0CW'];_0x198f=function(){return _0x47d7e2;};return _0x198f();}const _0x4d72b6={};_0x4d72b6[_0x3d94bd(0x20f)]=WorkspaceGateway,_0x4d72b6[_0x3d94bd(0x1b2)]=validateIdentity,module['exports']=_0x4d72b6;
@@ -4,11 +4,11 @@
4
4
 
5
5
  For Figma and Stitch tool names and authentication, read `docs/agents/design-config.md` when working on design tasks.
6
6
 
7
- - Bootstrap: `session_bootstrap(sessionId, contextEpoch, host, capabilities)` identifies this context and reports resumable work. When the native tool schema is visible, describe `capabilities.nativeDispatch` with its tool, selection mode, model/effort field names, fork modes and requestable model IDs. This coordinator declaration permits a request, but is not a host-observed model receipt. An absent capability field means unknown, not a permanent denial.
7
+ - Bootstrap: `session_bootstrap(sessionId, contextEpoch, host, capabilities)` identifies this context and reports resumable work. When the native tool schema is visible, describe `capabilities.nativeDispatch` with its tool, selection mode, model/effort field names, fork modes and requestable model IDs. On Claude Code, naming the tool and its model field is enough, for example `{tool:"Agent", modelField:"model"}`: APT then asks for a cheaper model per task (`haiku`, `sonnet`, or `opus` under a coordinator that ranks above it), never for a model above yours, and leaves the field unset when the task needs your model. This coordinator declaration permits a request, but is not a host-observed model receipt. An absent capability field means unknown, not a permanent denial.
8
8
  - Route: `route_request(sessionId, requestId, prompt, target, stack, explicitSkills)` returns the workflow, specialist, review roles, platform verification requirements and phase-specific skills. Load current-step skills with `skill_load` and agent/workflow content with `context_load` for each new worker or context epoch.
9
9
  - Models: `model_list(sessionId, offset, limit, query)` reports advertised, requestable and eligible models with source, account scope and coverage. CLI and Codex local cache entries are reference only. Use the pinned `nativeDispatch` from `pipeline_next`; compare its selector with the actual spawn arguments, then keep the host-reported worker model separate. An `inherit` selector or a model chosen in the IDE does not confirm a child model.
10
10
  - Start: `pipeline_start(pipeline, task, workspace, acceptanceCriteria, scope, qualityPlan, productImpact, sessionId)` creates a versioned run. Bootstrap the session in the intended workspace first. `workspace` is a schema-valid object, such as `{mode:"current",confirmed:true}`; a string or an unbound global server cannot create a run. Use the canonical `apt-mcp-agent` gateway, selecting a registered project with `workspace_list` then `session_bootstrap(sessionId, workspaceId, bindingToken)` first. Preserve that session ID on later calls. Legacy connections keep their reported alias until migration. New executable runs require at least one acceptance criterion string that exactly matches `qualityPlan.criteria[].expectedOutcome`. The plan uses `criteria: [{id, expectedOutcome, source, checkIds}]`, `checks: [{id, criterionIds, format, testIds, required}]`, and `reviews: [{id, required}]`. A recent user-facing web or mobile route requires its platform check and Product review. Use `pipeline_use(task, runId)` to resume the same run.
11
- - Execute: `pipeline_next(task, runId, sessionId, role, requestId)` reserves an attempt. Pass its exact `nativeTaskName`, model/tier, reasoning effort and fork mode to the native tool where that tool supports them. Codex model overrides require `fork_turns:"none"`; put `APT_ATTEMPT_ID`, `APT_ACTOR_ID` and `APT_SESSION_ID` in the fresh worker brief. A `followup_task` keeps the existing worker's model; dispatch a new worker when a new model is required. The coordinator controls transitions. Resource and quota waits remain resumable. Writers are exclusive by default. Work items planned with `parallel: true` and disjoint `scope` prefixes reserve confined writers that run at the same time, one per item and at most four actors in total; `parallelWrite:true` confines a writer on an unmarked scoped item and `parallelWrite:false` reserves a marked item exclusively. A confined writer cannot edit files outside its scope and reports with `action="report"`; verification runs after all parallel writers have reported.
11
+ - Execute: `pipeline_next(task, runId, sessionId, role, requestId)` reserves an attempt. Pass its exact `nativeTaskName`, model/tier, reasoning effort and fork mode to the native tool where that tool supports them. Its `complexity` and `risk` arguments set the worker's model tier. Leave them at `normal` unless the task needs otherwise: `high` is for a change to a shared interface, to security or to stored data, and runs on the strongest model, which is often your own. A task that makes no progress twice is raised to that model without a rating. A researcher rated `low` runs on the fastest model. Codex model overrides require `fork_turns:"none"`; put `APT_ATTEMPT_ID`, `APT_ACTOR_ID` and `APT_SESSION_ID` in the fresh worker brief. A `followup_task` keeps the existing worker's model; dispatch a new worker when a new model is required. The coordinator controls transitions. Resource and quota waits remain resumable. Writers are exclusive by default. Work items planned with `parallel: true` and disjoint `scope` prefixes reserve confined writers that run at the same time, one per item and at most four actors in total; `parallelWrite:true` confines a writer on an unmarked scoped item and `parallelWrite:false` reserves a marked item exclusively. A confined writer cannot edit files outside its scope and reports with `action="report"`; verification runs after all parallel writers have reported.
12
12
  - Verify: `pipeline_verify` records authorized argv execution under the run workspace. For functional acceptance, pass `checkId`, supported `reportFormat` and named test IDs in the pinned plan. Zero, skipped or unreadable tests and unrelated successful commands remain unverified. `pipeline_verify(kind="review")` is rejected before running a command. Read `pipeline_next.requiredReview`: nested work items require `spec`/`quality`, while run-level gates require `technical`/`product`. The reserved reviewer records its own structured verdict with `pipeline_checkpoint(action="review")`; resolution of a persistent finding needs current evidence and later reviewer confirmation. A direct start without a bound route needs Technical `impactAssessment` before acceptance. User-flow impact requires Product review and platform checks. Missing required platform checks leave the run unaccepted.
13
13
  - Inspect: `pipeline_status` reports current criterion/check status, open findings, reviewer provenance and pending creation intents without binding sessions. `pipeline_reset(task, runId, sessionId, confirm:true, target:"creation")` abandons a matching unfinished intent while preserving its file. The default `target:"run"` cancels a run without deleting history. `pipeline_prepare_merge` only prepares a report.
14
14
  - Read-only questions, review and existing test execution do not require a mutation pipeline. Scope-limited changes use the short pipeline; increased risk adds required checks.