plexus-agent-config 0.0.8 → 0.0.9

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 (154) hide show
  1. package/package.json +1 -1
  2. package/vendor/plexus-agent-config-core/dist/effective/index.d.ts +5 -0
  3. package/vendor/plexus-agent-config-core/dist/effective/index.d.ts.map +1 -1
  4. package/vendor/plexus-agent-config-core/dist/effective/index.js +36 -0
  5. package/vendor/plexus-agent-config-core/dist/effective/index.js.map +1 -1
  6. package/vendor/plexus-agent-config-core/package.json +1 -1
  7. package/vendor/plexus-agent-config-web/.next/BUILD_ID +1 -1
  8. package/vendor/plexus-agent-config-web/.next/app-path-routes-manifest.json +7 -6
  9. package/vendor/plexus-agent-config-web/.next/build-manifest.json +2 -2
  10. package/vendor/plexus-agent-config-web/.next/prerender-manifest.json +3 -3
  11. package/vendor/plexus-agent-config-web/.next/routes-manifest.json +8 -0
  12. package/vendor/plexus-agent-config-web/.next/server/app/_global-error/page.js +3 -3
  13. package/vendor/plexus-agent-config-web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  14. package/vendor/plexus-agent-config-web/.next/server/app/_global-error.html +1 -1
  15. package/vendor/plexus-agent-config-web/.next/server/app/_global-error.rsc +1 -1
  16. package/vendor/plexus-agent-config-web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  17. package/vendor/plexus-agent-config-web/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  18. package/vendor/plexus-agent-config-web/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  19. package/vendor/plexus-agent-config-web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  20. package/vendor/plexus-agent-config-web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  21. package/vendor/plexus-agent-config-web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  22. package/vendor/plexus-agent-config-web/.next/server/app/_not-found/page.js +2 -2
  23. package/vendor/plexus-agent-config-web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  24. package/vendor/plexus-agent-config-web/.next/server/app/about/page.js +2 -2
  25. package/vendor/plexus-agent-config-web/.next/server/app/about/page_client-reference-manifest.js +1 -1
  26. package/vendor/plexus-agent-config-web/.next/server/app/agents/[id]/page.js +2 -2
  27. package/vendor/plexus-agent-config-web/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  28. package/vendor/plexus-agent-config-web/.next/server/app/api/agent/[id]/file/route.js +1 -1
  29. package/vendor/plexus-agent-config-web/.next/server/app/api/agent/[id]/route.js +1 -1
  30. package/vendor/plexus-agent-config-web/.next/server/app/api/agent-catalog/route.js +1 -1
  31. package/vendor/plexus-agent-config-web/.next/server/app/api/agents/route.js +1 -1
  32. package/vendor/plexus-agent-config-web/.next/server/app/api/backups/[id]/restore/route.js +1 -1
  33. package/vendor/plexus-agent-config-web/.next/server/app/api/backups/route.js +1 -1
  34. package/vendor/plexus-agent-config-web/.next/server/app/api/config/route.js +1 -1
  35. package/vendor/plexus-agent-config-web/.next/server/app/api/custom-agents/[id]/file/route.js +1 -1
  36. package/vendor/plexus-agent-config-web/.next/server/app/api/custom-agents/[id]/route.js +1 -1
  37. package/vendor/plexus-agent-config-web/.next/server/app/api/custom-agents/route.js +1 -1
  38. package/vendor/plexus-agent-config-web/.next/server/app/api/debug/route.js +1 -1
  39. package/vendor/plexus-agent-config-web/.next/server/app/api/import/route.js +1 -1
  40. package/vendor/plexus-agent-config-web/.next/server/app/api/mcp/[id]/route.js +1 -0
  41. package/vendor/plexus-agent-config-web/.next/server/app/api/mcp/[id]/route.js.nft.json +1 -0
  42. package/vendor/plexus-agent-config-web/.next/server/app/api/mcp/[id]/route_client-reference-manifest.js +1 -0
  43. package/vendor/plexus-agent-config-web/.next/server/app/api/mcp/[id]/toggle/route.js +1 -1
  44. package/vendor/plexus-agent-config-web/.next/server/app/api/mcp/effective/route.js +1 -1
  45. package/vendor/plexus-agent-config-web/.next/server/app/api/mcp/route.js +1 -1
  46. package/vendor/plexus-agent-config-web/.next/server/app/api/rules/route.js +1 -1
  47. package/vendor/plexus-agent-config-web/.next/server/app/api/skills/[id]/route.js +1 -1
  48. package/vendor/plexus-agent-config-web/.next/server/app/api/skills/[id]/toggle/route.js +1 -1
  49. package/vendor/plexus-agent-config-web/.next/server/app/api/skills/effective/route.js +1 -1
  50. package/vendor/plexus-agent-config-web/.next/server/app/api/skills/route.js +1 -1
  51. package/vendor/plexus-agent-config-web/.next/server/app/api/spread/route.js +1 -1
  52. package/vendor/plexus-agent-config-web/.next/server/app/api/sync/route.js +1 -1
  53. package/vendor/plexus-agent-config-web/.next/server/app/api/team/route.js +1 -1
  54. package/vendor/plexus-agent-config-web/.next/server/app/backups/page.js +2 -2
  55. package/vendor/plexus-agent-config-web/.next/server/app/backups/page_client-reference-manifest.js +1 -1
  56. package/vendor/plexus-agent-config-web/.next/server/app/debug/page.js +2 -2
  57. package/vendor/plexus-agent-config-web/.next/server/app/debug/page_client-reference-manifest.js +1 -1
  58. package/vendor/plexus-agent-config-web/.next/server/app/mcp/page.js +2 -2
  59. package/vendor/plexus-agent-config-web/.next/server/app/mcp/page_client-reference-manifest.js +1 -1
  60. package/vendor/plexus-agent-config-web/.next/server/app/mirror/page.js +2 -2
  61. package/vendor/plexus-agent-config-web/.next/server/app/mirror/page_client-reference-manifest.js +1 -1
  62. package/vendor/plexus-agent-config-web/.next/server/app/page.js +2 -2
  63. package/vendor/plexus-agent-config-web/.next/server/app/page_client-reference-manifest.js +1 -1
  64. package/vendor/plexus-agent-config-web/.next/server/app/rules/page.js +3 -3
  65. package/vendor/plexus-agent-config-web/.next/server/app/rules/page_client-reference-manifest.js +1 -1
  66. package/vendor/plexus-agent-config-web/.next/server/app/settings/page.js +2 -2
  67. package/vendor/plexus-agent-config-web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  68. package/vendor/plexus-agent-config-web/.next/server/app/skills/page.js +2 -2
  69. package/vendor/plexus-agent-config-web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  70. package/vendor/plexus-agent-config-web/.next/server/app/spread/page.js +2 -2
  71. package/vendor/plexus-agent-config-web/.next/server/app/spread/page_client-reference-manifest.js +1 -1
  72. package/vendor/plexus-agent-config-web/.next/server/app/team/page.js +2 -2
  73. package/vendor/plexus-agent-config-web/.next/server/app/team/page_client-reference-manifest.js +1 -1
  74. package/vendor/plexus-agent-config-web/.next/server/app-paths-manifest.json +7 -6
  75. package/vendor/plexus-agent-config-web/.next/server/chunks/554.js +1 -1
  76. package/vendor/plexus-agent-config-web/.next/server/chunks/921.js +2 -2
  77. package/vendor/plexus-agent-config-web/.next/server/middleware-build-manifest.js +1 -1
  78. package/vendor/plexus-agent-config-web/.next/server/pages/500.html +1 -1
  79. package/vendor/plexus-agent-config-web/.next/server/server-reference-manifest.json +1 -1
  80. package/vendor/plexus-agent-config-web/.next/static/chunks/app/_global-error/page-1e40a6ea6300764e.js +1 -0
  81. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/agent/[id]/file/route-1e40a6ea6300764e.js +1 -0
  82. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/agent/[id]/route-1e40a6ea6300764e.js +1 -0
  83. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/agent-catalog/route-1e40a6ea6300764e.js +1 -0
  84. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/agents/route-1e40a6ea6300764e.js +1 -0
  85. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/backups/[id]/restore/route-1e40a6ea6300764e.js +1 -0
  86. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/backups/route-1e40a6ea6300764e.js +1 -0
  87. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/config/route-1e40a6ea6300764e.js +1 -0
  88. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/custom-agents/[id]/file/route-1e40a6ea6300764e.js +1 -0
  89. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/custom-agents/[id]/route-1e40a6ea6300764e.js +1 -0
  90. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/custom-agents/route-1e40a6ea6300764e.js +1 -0
  91. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/debug/route-1e40a6ea6300764e.js +1 -0
  92. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/import/route-1e40a6ea6300764e.js +1 -0
  93. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/mcp/[id]/route-1e40a6ea6300764e.js +1 -0
  94. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/mcp/[id]/toggle/route-1e40a6ea6300764e.js +1 -0
  95. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/mcp/effective/route-1e40a6ea6300764e.js +1 -0
  96. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/mcp/route-1e40a6ea6300764e.js +1 -0
  97. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/rules/route-1e40a6ea6300764e.js +1 -0
  98. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/skills/[id]/route-1e40a6ea6300764e.js +1 -0
  99. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/skills/[id]/toggle/route-1e40a6ea6300764e.js +1 -0
  100. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/skills/effective/route-1e40a6ea6300764e.js +1 -0
  101. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/skills/route-1e40a6ea6300764e.js +1 -0
  102. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/spread/route-1e40a6ea6300764e.js +1 -0
  103. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/sync/route-1e40a6ea6300764e.js +1 -0
  104. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/team/route-1e40a6ea6300764e.js +1 -0
  105. package/vendor/plexus-agent-config-web/.next/static/chunks/app/{layout-66bb77db982413d6.js → layout-1b8ad5703758230d.js} +1 -1
  106. package/vendor/plexus-agent-config-web/.next/static/chunks/app/mcp/page-54f5518ffacbaf3b.js +1 -0
  107. package/vendor/plexus-agent-config-web/.next/static/chunks/app/rules/{page-f391407e2ebfcf64.js → page-3f6666c1e0d71c5d.js} +2 -2
  108. package/vendor/plexus-agent-config-web/.next/static/chunks/app/skills/page-d5293ad31cec249c.js +1 -0
  109. package/vendor/plexus-agent-config-web/.next/static/chunks/app/spread/page-1e40a6ea6300764e.js +1 -0
  110. package/vendor/plexus-agent-config-web/.next/static/chunks/next/dist/client/components/builtin/app-error-1e40a6ea6300764e.js +1 -0
  111. package/vendor/plexus-agent-config-web/.next/static/chunks/next/dist/client/components/builtin/forbidden-1e40a6ea6300764e.js +1 -0
  112. package/vendor/plexus-agent-config-web/.next/static/chunks/next/dist/client/components/builtin/not-found-1e40a6ea6300764e.js +1 -0
  113. package/vendor/plexus-agent-config-web/.next/static/chunks/next/dist/client/components/builtin/unauthorized-1e40a6ea6300764e.js +1 -0
  114. package/vendor/plexus-agent-config-web/.next/static/css/cbaf841555d169c3.css +5 -0
  115. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/effective/index.d.ts +5 -0
  116. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/effective/index.d.ts.map +1 -1
  117. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/effective/index.js +36 -0
  118. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/effective/index.js.map +1 -1
  119. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/package.json +1 -1
  120. package/vendor/plexus-agent-config-web/package.json +1 -1
  121. package/vendor/plexus-agent-config-web/.next/static/chunks/app/_global-error/page-fe6298e28540d3d8.js +0 -1
  122. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/agent/[id]/file/route-fe6298e28540d3d8.js +0 -1
  123. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/agent/[id]/route-fe6298e28540d3d8.js +0 -1
  124. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/agent-catalog/route-fe6298e28540d3d8.js +0 -1
  125. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/agents/route-fe6298e28540d3d8.js +0 -1
  126. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/backups/[id]/restore/route-fe6298e28540d3d8.js +0 -1
  127. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/backups/route-fe6298e28540d3d8.js +0 -1
  128. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/config/route-fe6298e28540d3d8.js +0 -1
  129. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/custom-agents/[id]/file/route-fe6298e28540d3d8.js +0 -1
  130. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/custom-agents/[id]/route-fe6298e28540d3d8.js +0 -1
  131. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/custom-agents/route-fe6298e28540d3d8.js +0 -1
  132. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/debug/route-fe6298e28540d3d8.js +0 -1
  133. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/import/route-fe6298e28540d3d8.js +0 -1
  134. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/mcp/[id]/toggle/route-fe6298e28540d3d8.js +0 -1
  135. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/mcp/effective/route-fe6298e28540d3d8.js +0 -1
  136. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/mcp/route-fe6298e28540d3d8.js +0 -1
  137. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/rules/route-fe6298e28540d3d8.js +0 -1
  138. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/skills/[id]/route-fe6298e28540d3d8.js +0 -1
  139. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/skills/[id]/toggle/route-fe6298e28540d3d8.js +0 -1
  140. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/skills/effective/route-fe6298e28540d3d8.js +0 -1
  141. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/skills/route-fe6298e28540d3d8.js +0 -1
  142. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/spread/route-fe6298e28540d3d8.js +0 -1
  143. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/sync/route-fe6298e28540d3d8.js +0 -1
  144. package/vendor/plexus-agent-config-web/.next/static/chunks/app/api/team/route-fe6298e28540d3d8.js +0 -1
  145. package/vendor/plexus-agent-config-web/.next/static/chunks/app/mcp/page-d4c83712d8c29f02.js +0 -1
  146. package/vendor/plexus-agent-config-web/.next/static/chunks/app/skills/page-a90fec8f4dae0d22.js +0 -1
  147. package/vendor/plexus-agent-config-web/.next/static/chunks/app/spread/page-fe6298e28540d3d8.js +0 -1
  148. package/vendor/plexus-agent-config-web/.next/static/chunks/next/dist/client/components/builtin/app-error-fe6298e28540d3d8.js +0 -1
  149. package/vendor/plexus-agent-config-web/.next/static/chunks/next/dist/client/components/builtin/forbidden-fe6298e28540d3d8.js +0 -1
  150. package/vendor/plexus-agent-config-web/.next/static/chunks/next/dist/client/components/builtin/not-found-fe6298e28540d3d8.js +0 -1
  151. package/vendor/plexus-agent-config-web/.next/static/chunks/next/dist/client/components/builtin/unauthorized-fe6298e28540d3d8.js +0 -1
  152. package/vendor/plexus-agent-config-web/.next/static/css/eba3657411e6e6cd.css +0 -5
  153. /package/vendor/plexus-agent-config-web/.next/static/{3oZxRMzj6ZICuj5g2RZmX → oxgopplNOcRDrZ6-JSWy_}/_buildManifest.js +0 -0
  154. /package/vendor/plexus-agent-config-web/.next/static/{3oZxRMzj6ZICuj5g2RZmX → oxgopplNOcRDrZ6-JSWy_}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/team/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"169":{"*":{"id":"96985","name":"*","chunks":[],"async":false}},"214":{"*":{"id":"23858","name":"*","chunks":[],"async":false}},"572":{"*":{"id":"97944","name":"*","chunks":[],"async":false}},"589":{"*":{"id":"8447","name":"*","chunks":[],"async":false}},"671":{"*":{"id":"69411","name":"*","chunks":[],"async":false}},"887":{"*":{"id":"93431","name":"*","chunks":[],"async":false}},"1107":{"*":{"id":"25029","name":"*","chunks":[],"async":false}},"1380":{"*":{"id":"24194","name":"*","chunks":[],"async":false}},"1405":{"*":{"id":"27025","name":"*","chunks":[],"async":false}},"1458":{"*":{"id":"6302","name":"*","chunks":[],"async":false}},"3558":{"*":{"id":"50674","name":"*","chunks":[],"async":false}},"4228":{"*":{"id":"30768","name":"*","chunks":[],"async":false}},"4641":{"*":{"id":"71943","name":"*","chunks":[],"async":false}},"4757":{"*":{"id":"73257","name":"*","chunks":[],"async":false}},"5392":{"*":{"id":"40414","name":"*","chunks":[],"async":false}},"5537":{"*":{"id":"13320","name":"*","chunks":[],"async":false}},"5587":{"*":{"id":"58599","name":"*","chunks":[],"async":false}},"5718":{"*":{"id":"25696","name":"*","chunks":[],"async":false}},"6036":{"*":{"id":"83393","name":"*","chunks":[],"async":false}},"6439":{"*":{"id":"84774","name":"*","chunks":[],"async":false}},"6713":{"*":{"id":"74890","name":"*","chunks":[],"async":false}},"7103":{"*":{"id":"43267","name":"*","chunks":[],"async":false}},"7788":{"*":{"id":"73754","name":"*","chunks":[],"async":false}},"8257":{"*":{"id":"67139","name":"*","chunks":[],"async":false}},"8287":{"*":{"id":"53208","name":"*","chunks":[],"async":false}},"8484":{"*":{"id":"75599","name":"*","chunks":[],"async":false}},"8725":{"*":{"id":"5058","name":"*","chunks":[],"async":false}},"9630":{"*":{"id":"78886","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/runner/work/Plexus/Plexus/node_modules/next/dist/client/components/builtin/global-error.js":{"id":5718,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":5718,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/node_modules/next/dist/client/components/client-page.js":{"id":671,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/node_modules/next/dist/esm/client/components/client-page.js":{"id":671,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/node_modules/next/dist/client/components/client-segment.js":{"id":589,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/node_modules/next/dist/esm/client/components/client-segment.js":{"id":589,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":3558,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":3558,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/node_modules/next/dist/client/components/layout-router.js":{"id":9630,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9630,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/node_modules/next/dist/client/components/render-from-template-context.js":{"id":1380,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":1380,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/node_modules/next/dist/lib/framework/boundary-components.js":{"id":887,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":887,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":214,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":214,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/apps/web/components/app-sidebar.tsx":{"id":1107,"name":"*","chunks":["4399","static/chunks/4399-7cc367307a2c52a6.js","5587","static/chunks/5587-933f3258279c6072.js","3051","static/chunks/3051-5eb2f5784474c658.js","626","static/chunks/626-7ea78ce012c8d471.js","7177","static/chunks/app/layout-66bb77db982413d6.js"],"async":false},"/home/runner/work/Plexus/Plexus/apps/web/components/app-topbar.tsx":{"id":1458,"name":"*","chunks":["4399","static/chunks/4399-7cc367307a2c52a6.js","5587","static/chunks/5587-933f3258279c6072.js","3051","static/chunks/3051-5eb2f5784474c658.js","626","static/chunks/626-7ea78ce012c8d471.js","7177","static/chunks/app/layout-66bb77db982413d6.js"],"async":false},"/home/runner/work/Plexus/Plexus/apps/web/components/language-provider.tsx":{"id":6439,"name":"*","chunks":["4399","static/chunks/4399-7cc367307a2c52a6.js","5587","static/chunks/5587-933f3258279c6072.js","3051","static/chunks/3051-5eb2f5784474c658.js","626","static/chunks/626-7ea78ce012c8d471.js","7177","static/chunks/app/layout-66bb77db982413d6.js"],"async":false},"/home/runner/work/Plexus/Plexus/apps/web/components/theme-provider.tsx":{"id":572,"name":"*","chunks":["4399","static/chunks/4399-7cc367307a2c52a6.js","5587","static/chunks/5587-933f3258279c6072.js","3051","static/chunks/3051-5eb2f5784474c658.js","626","static/chunks/626-7ea78ce012c8d471.js","7177","static/chunks/app/layout-66bb77db982413d6.js"],"async":false},"/home/runner/work/Plexus/Plexus/apps/web/components/ui/tooltip.tsx":{"id":4757,"name":"*","chunks":["4399","static/chunks/4399-7cc367307a2c52a6.js","5587","static/chunks/5587-933f3258279c6072.js","3051","static/chunks/3051-5eb2f5784474c658.js","626","static/chunks/626-7ea78ce012c8d471.js","7177","static/chunks/app/layout-66bb77db982413d6.js"],"async":false},"/home/runner/work/Plexus/Plexus/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--plexus-font-sans-loaded\",\"display\":\"swap\"}],\"variableName\":\"inter\"}":{"id":3597,"name":"*","chunks":["4399","static/chunks/4399-7cc367307a2c52a6.js","5587","static/chunks/5587-933f3258279c6072.js","3051","static/chunks/3051-5eb2f5784474c658.js","626","static/chunks/626-7ea78ce012c8d471.js","7177","static/chunks/app/layout-66bb77db982413d6.js"],"async":false},"/home/runner/work/Plexus/Plexus/apps/web/app/globals.css":{"id":6944,"name":"*","chunks":["4399","static/chunks/4399-7cc367307a2c52a6.js","5587","static/chunks/5587-933f3258279c6072.js","3051","static/chunks/3051-5eb2f5784474c658.js","626","static/chunks/626-7ea78ce012c8d471.js","7177","static/chunks/app/layout-66bb77db982413d6.js"],"async":false},"/home/runner/work/Plexus/Plexus/apps/web/components/architecture-panel.tsx":{"id":6036,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/apps/web/components/agent-detail.tsx":{"id":4641,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/node_modules/lucide-react/dist/esm/Icon.mjs":{"id":4228,"name":"*","chunks":["4399","static/chunks/4399-7cc367307a2c52a6.js","5587","static/chunks/5587-933f3258279c6072.js","3051","static/chunks/3051-5eb2f5784474c658.js","7814","static/chunks/7814-1bc9d30b9724b70c.js","8974","static/chunks/app/page-4f00de3290a21755.js"],"async":false},"/home/runner/work/Plexus/Plexus/node_modules/next/dist/client/app-dir/link.js":{"id":5587,"name":"*","chunks":["4399","static/chunks/4399-7cc367307a2c52a6.js","5587","static/chunks/5587-933f3258279c6072.js","3051","static/chunks/3051-5eb2f5784474c658.js","7814","static/chunks/7814-1bc9d30b9724b70c.js","8974","static/chunks/app/page-4f00de3290a21755.js"],"async":false},"/home/runner/work/Plexus/Plexus/node_modules/next/dist/esm/client/app-dir/link.js":{"id":5587,"name":"*","chunks":["4399","static/chunks/4399-7cc367307a2c52a6.js","5587","static/chunks/5587-933f3258279c6072.js","3051","static/chunks/3051-5eb2f5784474c658.js","7814","static/chunks/7814-1bc9d30b9724b70c.js","8974","static/chunks/app/page-4f00de3290a21755.js"],"async":false},"/home/runner/work/Plexus/Plexus/apps/web/components/backups-panel.tsx":{"id":5537,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/apps/web/components/debug-panel.tsx":{"id":8725,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/apps/web/components/mcp-editor.tsx":{"id":169,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/apps/web/components/mirror-panel.tsx":{"id":7103,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/apps/web/components/rules-panel.tsx":{"id":8287,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/apps/web/components/skills-editor.tsx":{"id":8257,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/apps/web/components/custom-agents-panel.tsx":{"id":5392,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/apps/web/components/settings-panel.tsx":{"id":1405,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/apps/web/components/ui/button.tsx":{"id":7788,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/apps/web/components/team-panel.tsx":{"id":8484,"name":"*","chunks":["4399","static/chunks/4399-7cc367307a2c52a6.js","8898","static/chunks/app/team/page-ecee567abc21176a.js"],"async":false},"/home/runner/work/Plexus/Plexus/apps/web/components/sync-button.tsx":{"id":6713,"name":"*","chunks":["4399","static/chunks/4399-7cc367307a2c52a6.js","5587","static/chunks/5587-933f3258279c6072.js","3051","static/chunks/3051-5eb2f5784474c658.js","7814","static/chunks/7814-1bc9d30b9724b70c.js","8974","static/chunks/app/page-4f00de3290a21755.js"],"async":false}},"entryCSSFiles":{"/home/runner/work/Plexus/Plexus/apps/web/":[],"/home/runner/work/Plexus/Plexus/apps/web/app/layout":[{"inlined":false,"path":"static/css/eba3657411e6e6cd.css"}],"/home/runner/work/Plexus/Plexus/apps/web/app/page":[],"/home/runner/work/Plexus/Plexus/apps/web/app/team/page":[]},"rscModuleMapping":{"169":{"*":{"id":"57579","name":"*","chunks":[],"async":false}},"214":{"*":{"id":"13592","name":"*","chunks":[],"async":false}},"572":{"*":{"id":"73422","name":"*","chunks":[],"async":false}},"589":{"*":{"id":"61437","name":"*","chunks":[],"async":false}},"671":{"*":{"id":"6413","name":"*","chunks":[],"async":false}},"887":{"*":{"id":"48465","name":"*","chunks":[],"async":false}},"1107":{"*":{"id":"60303","name":"*","chunks":[],"async":false}},"1380":{"*":{"id":"86792","name":"*","chunks":[],"async":false}},"1405":{"*":{"id":"71355","name":"*","chunks":[],"async":false}},"1458":{"*":{"id":"2183","name":"*","chunks":[],"async":false}},"3558":{"*":{"id":"99476","name":"*","chunks":[],"async":false}},"4228":{"*":{"id":"28774","name":"*","chunks":[],"async":false}},"4641":{"*":{"id":"14838","name":"*","chunks":[],"async":false}},"4757":{"*":{"id":"76155","name":"*","chunks":[],"async":false}},"5392":{"*":{"id":"98900","name":"*","chunks":[],"async":false}},"5537":{"*":{"id":"94029","name":"*","chunks":[],"async":false}},"5587":{"*":{"id":"95953","name":"*","chunks":[],"async":false}},"5718":{"*":{"id":"32594","name":"*","chunks":[],"async":false}},"6036":{"*":{"id":"44469","name":"*","chunks":[],"async":false}},"6439":{"*":{"id":"74829","name":"*","chunks":[],"async":false}},"6713":{"*":{"id":"79975","name":"*","chunks":[],"async":false}},"6944":{"*":{"id":"21971","name":"*","chunks":[],"async":false}},"7103":{"*":{"id":"73629","name":"*","chunks":[],"async":false}},"7788":{"*":{"id":"25932","name":"*","chunks":[],"async":false}},"8257":{"*":{"id":"86817","name":"*","chunks":[],"async":false}},"8287":{"*":{"id":"90317","name":"*","chunks":[],"async":false}},"8484":{"*":{"id":"42455","name":"*","chunks":[],"async":false}},"8725":{"*":{"id":"67021","name":"*","chunks":[],"async":false}},"9630":{"*":{"id":"41452","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{"214":{"*":{"id":"23858","name":"*","chunks":[],"async":false}},"589":{"*":{"id":"8447","name":"*","chunks":[],"async":false}},"671":{"*":{"id":"69411","name":"*","chunks":[],"async":false}},"887":{"*":{"id":"93431","name":"*","chunks":[],"async":false}},"1380":{"*":{"id":"24194","name":"*","chunks":[],"async":false}},"3558":{"*":{"id":"50674","name":"*","chunks":[],"async":false}},"4228":{"*":{"id":"30768","name":"*","chunks":[],"async":false}},"5587":{"*":{"id":"58599","name":"*","chunks":[],"async":false}},"5718":{"*":{"id":"25696","name":"*","chunks":[],"async":false}},"9630":{"*":{"id":"78886","name":"*","chunks":[],"async":false}}}};
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/team/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"169":{"*":{"id":"96985","name":"*","chunks":[],"async":false}},"214":{"*":{"id":"23858","name":"*","chunks":[],"async":false}},"572":{"*":{"id":"97944","name":"*","chunks":[],"async":false}},"589":{"*":{"id":"8447","name":"*","chunks":[],"async":false}},"671":{"*":{"id":"69411","name":"*","chunks":[],"async":false}},"887":{"*":{"id":"93431","name":"*","chunks":[],"async":false}},"1107":{"*":{"id":"25029","name":"*","chunks":[],"async":false}},"1380":{"*":{"id":"24194","name":"*","chunks":[],"async":false}},"1405":{"*":{"id":"27025","name":"*","chunks":[],"async":false}},"1458":{"*":{"id":"6302","name":"*","chunks":[],"async":false}},"3558":{"*":{"id":"50674","name":"*","chunks":[],"async":false}},"4228":{"*":{"id":"30768","name":"*","chunks":[],"async":false}},"4641":{"*":{"id":"71943","name":"*","chunks":[],"async":false}},"4757":{"*":{"id":"73257","name":"*","chunks":[],"async":false}},"5392":{"*":{"id":"40414","name":"*","chunks":[],"async":false}},"5537":{"*":{"id":"13320","name":"*","chunks":[],"async":false}},"5587":{"*":{"id":"58599","name":"*","chunks":[],"async":false}},"5718":{"*":{"id":"25696","name":"*","chunks":[],"async":false}},"6036":{"*":{"id":"83393","name":"*","chunks":[],"async":false}},"6439":{"*":{"id":"84774","name":"*","chunks":[],"async":false}},"6713":{"*":{"id":"74890","name":"*","chunks":[],"async":false}},"7103":{"*":{"id":"43267","name":"*","chunks":[],"async":false}},"7788":{"*":{"id":"73754","name":"*","chunks":[],"async":false}},"8257":{"*":{"id":"67139","name":"*","chunks":[],"async":false}},"8287":{"*":{"id":"53208","name":"*","chunks":[],"async":false}},"8484":{"*":{"id":"75599","name":"*","chunks":[],"async":false}},"8725":{"*":{"id":"5058","name":"*","chunks":[],"async":false}},"9630":{"*":{"id":"78886","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/runner/work/Plexus/Plexus/node_modules/next/dist/client/components/builtin/global-error.js":{"id":5718,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":5718,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/node_modules/next/dist/client/components/client-page.js":{"id":671,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/node_modules/next/dist/esm/client/components/client-page.js":{"id":671,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/node_modules/next/dist/client/components/client-segment.js":{"id":589,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/node_modules/next/dist/esm/client/components/client-segment.js":{"id":589,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":3558,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":3558,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/node_modules/next/dist/client/components/layout-router.js":{"id":9630,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9630,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/node_modules/next/dist/client/components/render-from-template-context.js":{"id":1380,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":1380,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/node_modules/next/dist/lib/framework/boundary-components.js":{"id":887,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":887,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":214,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":214,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/apps/web/components/app-sidebar.tsx":{"id":1107,"name":"*","chunks":["4399","static/chunks/4399-7cc367307a2c52a6.js","5587","static/chunks/5587-933f3258279c6072.js","3051","static/chunks/3051-5eb2f5784474c658.js","626","static/chunks/626-7ea78ce012c8d471.js","7177","static/chunks/app/layout-1b8ad5703758230d.js"],"async":false},"/home/runner/work/Plexus/Plexus/apps/web/components/app-topbar.tsx":{"id":1458,"name":"*","chunks":["4399","static/chunks/4399-7cc367307a2c52a6.js","5587","static/chunks/5587-933f3258279c6072.js","3051","static/chunks/3051-5eb2f5784474c658.js","626","static/chunks/626-7ea78ce012c8d471.js","7177","static/chunks/app/layout-1b8ad5703758230d.js"],"async":false},"/home/runner/work/Plexus/Plexus/apps/web/components/language-provider.tsx":{"id":6439,"name":"*","chunks":["4399","static/chunks/4399-7cc367307a2c52a6.js","5587","static/chunks/5587-933f3258279c6072.js","3051","static/chunks/3051-5eb2f5784474c658.js","626","static/chunks/626-7ea78ce012c8d471.js","7177","static/chunks/app/layout-1b8ad5703758230d.js"],"async":false},"/home/runner/work/Plexus/Plexus/apps/web/components/theme-provider.tsx":{"id":572,"name":"*","chunks":["4399","static/chunks/4399-7cc367307a2c52a6.js","5587","static/chunks/5587-933f3258279c6072.js","3051","static/chunks/3051-5eb2f5784474c658.js","626","static/chunks/626-7ea78ce012c8d471.js","7177","static/chunks/app/layout-1b8ad5703758230d.js"],"async":false},"/home/runner/work/Plexus/Plexus/apps/web/components/ui/tooltip.tsx":{"id":4757,"name":"*","chunks":["4399","static/chunks/4399-7cc367307a2c52a6.js","5587","static/chunks/5587-933f3258279c6072.js","3051","static/chunks/3051-5eb2f5784474c658.js","626","static/chunks/626-7ea78ce012c8d471.js","7177","static/chunks/app/layout-1b8ad5703758230d.js"],"async":false},"/home/runner/work/Plexus/Plexus/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--plexus-font-sans-loaded\",\"display\":\"swap\"}],\"variableName\":\"inter\"}":{"id":3597,"name":"*","chunks":["4399","static/chunks/4399-7cc367307a2c52a6.js","5587","static/chunks/5587-933f3258279c6072.js","3051","static/chunks/3051-5eb2f5784474c658.js","626","static/chunks/626-7ea78ce012c8d471.js","7177","static/chunks/app/layout-1b8ad5703758230d.js"],"async":false},"/home/runner/work/Plexus/Plexus/apps/web/app/globals.css":{"id":6944,"name":"*","chunks":["4399","static/chunks/4399-7cc367307a2c52a6.js","5587","static/chunks/5587-933f3258279c6072.js","3051","static/chunks/3051-5eb2f5784474c658.js","626","static/chunks/626-7ea78ce012c8d471.js","7177","static/chunks/app/layout-1b8ad5703758230d.js"],"async":false},"/home/runner/work/Plexus/Plexus/apps/web/components/architecture-panel.tsx":{"id":6036,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/apps/web/components/agent-detail.tsx":{"id":4641,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/node_modules/lucide-react/dist/esm/Icon.mjs":{"id":4228,"name":"*","chunks":["4399","static/chunks/4399-7cc367307a2c52a6.js","5587","static/chunks/5587-933f3258279c6072.js","3051","static/chunks/3051-5eb2f5784474c658.js","7814","static/chunks/7814-1bc9d30b9724b70c.js","8974","static/chunks/app/page-4f00de3290a21755.js"],"async":false},"/home/runner/work/Plexus/Plexus/node_modules/next/dist/client/app-dir/link.js":{"id":5587,"name":"*","chunks":["4399","static/chunks/4399-7cc367307a2c52a6.js","5587","static/chunks/5587-933f3258279c6072.js","3051","static/chunks/3051-5eb2f5784474c658.js","7814","static/chunks/7814-1bc9d30b9724b70c.js","8974","static/chunks/app/page-4f00de3290a21755.js"],"async":false},"/home/runner/work/Plexus/Plexus/node_modules/next/dist/esm/client/app-dir/link.js":{"id":5587,"name":"*","chunks":["4399","static/chunks/4399-7cc367307a2c52a6.js","5587","static/chunks/5587-933f3258279c6072.js","3051","static/chunks/3051-5eb2f5784474c658.js","7814","static/chunks/7814-1bc9d30b9724b70c.js","8974","static/chunks/app/page-4f00de3290a21755.js"],"async":false},"/home/runner/work/Plexus/Plexus/apps/web/components/backups-panel.tsx":{"id":5537,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/apps/web/components/debug-panel.tsx":{"id":8725,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/apps/web/components/mcp-editor.tsx":{"id":169,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/apps/web/components/mirror-panel.tsx":{"id":7103,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/apps/web/components/rules-panel.tsx":{"id":8287,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/apps/web/components/custom-agents-panel.tsx":{"id":5392,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/apps/web/components/settings-panel.tsx":{"id":1405,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/apps/web/components/ui/button.tsx":{"id":7788,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/apps/web/components/team-panel.tsx":{"id":8484,"name":"*","chunks":["4399","static/chunks/4399-7cc367307a2c52a6.js","8898","static/chunks/app/team/page-ecee567abc21176a.js"],"async":false},"/home/runner/work/Plexus/Plexus/apps/web/components/skills-editor.tsx":{"id":8257,"name":"*","chunks":[],"async":false},"/home/runner/work/Plexus/Plexus/apps/web/components/sync-button.tsx":{"id":6713,"name":"*","chunks":["4399","static/chunks/4399-7cc367307a2c52a6.js","5587","static/chunks/5587-933f3258279c6072.js","3051","static/chunks/3051-5eb2f5784474c658.js","7814","static/chunks/7814-1bc9d30b9724b70c.js","8974","static/chunks/app/page-4f00de3290a21755.js"],"async":false}},"entryCSSFiles":{"/home/runner/work/Plexus/Plexus/apps/web/":[],"/home/runner/work/Plexus/Plexus/apps/web/app/layout":[{"inlined":false,"path":"static/css/cbaf841555d169c3.css"}],"/home/runner/work/Plexus/Plexus/apps/web/app/page":[],"/home/runner/work/Plexus/Plexus/apps/web/app/team/page":[]},"rscModuleMapping":{"169":{"*":{"id":"57579","name":"*","chunks":[],"async":false}},"214":{"*":{"id":"13592","name":"*","chunks":[],"async":false}},"572":{"*":{"id":"73422","name":"*","chunks":[],"async":false}},"589":{"*":{"id":"61437","name":"*","chunks":[],"async":false}},"671":{"*":{"id":"6413","name":"*","chunks":[],"async":false}},"887":{"*":{"id":"48465","name":"*","chunks":[],"async":false}},"1107":{"*":{"id":"60303","name":"*","chunks":[],"async":false}},"1380":{"*":{"id":"86792","name":"*","chunks":[],"async":false}},"1405":{"*":{"id":"71355","name":"*","chunks":[],"async":false}},"1458":{"*":{"id":"2183","name":"*","chunks":[],"async":false}},"3558":{"*":{"id":"99476","name":"*","chunks":[],"async":false}},"4228":{"*":{"id":"28774","name":"*","chunks":[],"async":false}},"4641":{"*":{"id":"14838","name":"*","chunks":[],"async":false}},"4757":{"*":{"id":"76155","name":"*","chunks":[],"async":false}},"5392":{"*":{"id":"98900","name":"*","chunks":[],"async":false}},"5537":{"*":{"id":"94029","name":"*","chunks":[],"async":false}},"5587":{"*":{"id":"95953","name":"*","chunks":[],"async":false}},"5718":{"*":{"id":"32594","name":"*","chunks":[],"async":false}},"6036":{"*":{"id":"44469","name":"*","chunks":[],"async":false}},"6439":{"*":{"id":"74829","name":"*","chunks":[],"async":false}},"6713":{"*":{"id":"79975","name":"*","chunks":[],"async":false}},"6944":{"*":{"id":"21971","name":"*","chunks":[],"async":false}},"7103":{"*":{"id":"73629","name":"*","chunks":[],"async":false}},"7788":{"*":{"id":"25932","name":"*","chunks":[],"async":false}},"8257":{"*":{"id":"86817","name":"*","chunks":[],"async":false}},"8287":{"*":{"id":"90317","name":"*","chunks":[],"async":false}},"8484":{"*":{"id":"42455","name":"*","chunks":[],"async":false}},"8725":{"*":{"id":"67021","name":"*","chunks":[],"async":false}},"9630":{"*":{"id":"41452","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{"214":{"*":{"id":"23858","name":"*","chunks":[],"async":false}},"589":{"*":{"id":"8447","name":"*","chunks":[],"async":false}},"671":{"*":{"id":"69411","name":"*","chunks":[],"async":false}},"887":{"*":{"id":"93431","name":"*","chunks":[],"async":false}},"1380":{"*":{"id":"24194","name":"*","chunks":[],"async":false}},"3558":{"*":{"id":"50674","name":"*","chunks":[],"async":false}},"4228":{"*":{"id":"30768","name":"*","chunks":[],"async":false}},"5587":{"*":{"id":"58599","name":"*","chunks":[],"async":false}},"5718":{"*":{"id":"25696","name":"*","chunks":[],"async":false}},"9630":{"*":{"id":"78886","name":"*","chunks":[],"async":false}}}};
@@ -2,28 +2,29 @@
2
2
  "/_not-found/page": "app/_not-found/page.js",
3
3
  "/_global-error/page": "app/_global-error/page.js",
4
4
  "/api/agent-catalog/route": "app/api/agent-catalog/route.js",
5
+ "/api/agent/[id]/route": "app/api/agent/[id]/route.js",
5
6
  "/api/agents/route": "app/api/agents/route.js",
6
7
  "/api/backups/[id]/restore/route": "app/api/backups/[id]/restore/route.js",
7
8
  "/api/backups/route": "app/api/backups/route.js",
8
- "/api/agent/[id]/route": "app/api/agent/[id]/route.js",
9
9
  "/api/config/route": "app/api/config/route.js",
10
10
  "/api/agent/[id]/file/route": "app/api/agent/[id]/file/route.js",
11
- "/api/custom-agents/[id]/file/route": "app/api/custom-agents/[id]/file/route.js",
12
11
  "/api/custom-agents/[id]/route": "app/api/custom-agents/[id]/route.js",
12
+ "/api/custom-agents/[id]/file/route": "app/api/custom-agents/[id]/file/route.js",
13
13
  "/api/custom-agents/route": "app/api/custom-agents/route.js",
14
14
  "/api/debug/route": "app/api/debug/route.js",
15
15
  "/api/import/route": "app/api/import/route.js",
16
- "/api/mcp/effective/route": "app/api/mcp/effective/route.js",
16
+ "/api/mcp/[id]/route": "app/api/mcp/[id]/route.js",
17
17
  "/api/mcp/[id]/toggle/route": "app/api/mcp/[id]/toggle/route.js",
18
+ "/api/mcp/effective/route": "app/api/mcp/effective/route.js",
18
19
  "/api/mcp/route": "app/api/mcp/route.js",
20
+ "/api/skills/[id]/route": "app/api/skills/[id]/route.js",
19
21
  "/api/rules/route": "app/api/rules/route.js",
20
22
  "/api/skills/effective/route": "app/api/skills/effective/route.js",
21
23
  "/api/skills/[id]/toggle/route": "app/api/skills/[id]/toggle/route.js",
22
- "/api/skills/[id]/route": "app/api/skills/[id]/route.js",
23
24
  "/api/skills/route": "app/api/skills/route.js",
24
25
  "/api/spread/route": "app/api/spread/route.js",
25
- "/api/team/route": "app/api/team/route.js",
26
26
  "/api/sync/route": "app/api/sync/route.js",
27
+ "/api/team/route": "app/api/team/route.js",
27
28
  "/spread/page": "app/spread/page.js",
28
29
  "/about/page": "app/about/page.js",
29
30
  "/agents/[id]/page": "app/agents/[id]/page.js",
@@ -32,8 +33,8 @@
32
33
  "/mcp/page": "app/mcp/page.js",
33
34
  "/mirror/page": "app/mirror/page.js",
34
35
  "/rules/page": "app/rules/page.js",
35
- "/skills/page": "app/skills/page.js",
36
36
  "/settings/page": "app/settings/page.js",
37
37
  "/team/page": "app/team/page.js",
38
+ "/skills/page": "app/skills/page.js",
38
39
  "/page": "app/page.js"
39
40
  }
@@ -1 +1 @@
1
- exports.id=554,exports.ids=[554],exports.modules={2183:(a,b,c)=>{"use strict";c.d(b,{AppTopbar:()=>d});let d=(0,c(30274).registerClientReference)(function(){throw Error("Attempted to call AppTopbar() from the server but AppTopbar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/Plexus/Plexus/apps/web/components/app-topbar.tsx","AppTopbar")},6302:(a,b,c)=>{"use strict";c.d(b,{AppTopbar:()=>p});var d=c(92692),e=c(84774),f=c(73754),g=c(14579);function h(){let{locale:a,toggleLocale:b}=(0,e.o)();return(0,d.jsxs)(f.Button,{type:"button",variant:"ghost",size:"sm",onClick:b,title:"zh"===a?"Switch to English":"切换到中文",className:"h-9",children:[(0,d.jsx)(g.A,{className:"h-4 w-4",strokeWidth:1.5}),"zh"===a?"English":"中文"]})}var i=c(45813),j=c(52483),k=c(71277);function l({className:a}){let{resolvedTheme:b,setTheme:c}=(0,j.D)(),[e,f]=(0,k.useState)(!1),g=e&&"light"===b;return(0,d.jsx)("button",{type:"button","aria-label":"Toggle theme",title:g?"Switch to dark":"Switch to light",onClick:()=>c(g?"dark":"light"),className:(0,i.cn)("relative h-7 w-14 rounded-full border border-plexus-border bg-plexus-surface-2","transition-colors duration-plexus-normal",a),children:(0,d.jsx)("span",{className:(0,i.cn)("absolute top-[2px] left-[2px] h-[22px] w-[22px] rounded-full bg-plexus-accent","transition-transform duration-plexus-normal ease-plexus-out",g&&"translate-x-7")})})}var m=c(32518),n=c(67994);let o={en:{workspace:"Workspace",configuration:"Configuration",dashboard:"Dashboard",rules:"Rules",mcp:"MCP Servers",skills:"Skills",mirror:"Mirror",backups:"Backups",debug:"Debug",team:"Team",settings:"Settings",agentDetail:"Agent detail",plexus:"Plexus",searchTitle:"Search (coming soon)",search:"Search..."},zh:{workspace:"工作区",configuration:"配置",dashboard:"仪表盘",rules:"规则",mcp:"MCP 服务",skills:"技能",mirror:"镜像同步",backups:"备份",debug:"调试",team:"团队",settings:"设置",agentDetail:"Agent 详情",plexus:"Plexus",searchTitle:"搜索(即将支持)",search:"搜索..."}};function p(){let a=(0,n.usePathname)(),{locale:b}=(0,e.o)(),c=o[b],{group:f,label:g}=function(a,b){let c={"/":b.dashboard,"/rules":b.rules,"/mcp":b.mcp,"/skills":b.skills,"/mirror":b.mirror,"/backups":b.backups,"/debug":b.debug,"/team":b.team,"/settings":b.settings};if("/"===a)return{group:b.workspace,label:b.dashboard};if(a.startsWith("/agents/"))return{group:`${b.workspace} / ${b.dashboard}`,label:b.agentDetail};let d=`/${a.split("/")[1]}`,e=c[d]??b.plexus;return{group:"/backups"===d||"/team"===d||"/settings"===d||"/debug"===d?b.configuration:b.workspace,label:e}}(a,c);return(0,d.jsxs)("header",{className:"flex min-h-[64px] shrink-0 flex-wrap items-center justify-between gap-3 border-b border-plexus-border px-4 py-3 lg:px-10",children:[(0,d.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-3 text-[12px] tracking-[0.02em] text-plexus-text-3",children:[f.split(" / ").map((a,b,c)=>(0,d.jsxs)("span",{className:"flex items-center gap-3",children:[(0,d.jsx)("span",{children:a}),b<c.length-1&&(0,d.jsx)("span",{children:"/"})]},`${a}-${b}`)),(0,d.jsx)("span",{children:"/"}),(0,d.jsx)("span",{className:"text-plexus-text-2",children:g})]}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2 lg:gap-3",children:[(0,d.jsxs)("button",{type:"button",className:"inline-flex h-9 items-center gap-2 rounded border border-transparent px-3 text-plexus-text-2 hover:bg-plexus-surface-2 hover:text-plexus-text",title:c.searchTitle,disabled:!0,children:[(0,d.jsx)(m.A,{className:"h-4 w-4",strokeWidth:1.5}),(0,d.jsx)("span",{className:"text-[12px] tracking-[0.02em] text-plexus-text-3",children:c.search}),(0,d.jsx)("span",{className:"ml-2 rounded border border-plexus-border bg-plexus-surface-2 px-1.5 py-0.5 font-mono text-[11px] text-plexus-text-mute",children:"⌘K"})]}),(0,d.jsx)(h,{}),(0,d.jsx)(l,{}),(0,d.jsx)("div",{className:"grid h-8 w-8 place-items-center rounded-full bg-plexus-accent-faint font-semibold text-plexus-accent",children:"M"})]})]})}},9834:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>n,metadata:()=>m});var d=c(2474),e=c(60303),f=c(2183),g=c(74829),h=c(73422),i=c(76155),j=c(96638),k=c(71749),l=c.n(k);c(21971);let m={title:"Plexus Agent Config",description:"Local dashboard for syncing Claude Code, Cursor, Codex, Gemini CLI, and Qwen Code rules, MCP servers, and skills.",icons:[{rel:"icon",url:"/favicon.svg",type:"image/svg+xml"}]};async function n({children:a}){let b=await (0,j.s)();return(0,d.jsx)("html",{lang:"zh"===b?"zh-CN":"en",suppressHydrationWarning:!0,className:l().variable,children:(0,d.jsx)("body",{children:(0,d.jsx)(h.ThemeProvider,{children:(0,d.jsx)(g.LanguageProvider,{initialLocale:b,children:(0,d.jsx)(i.TooltipProvider,{delayDuration:250,children:(0,d.jsxs)("div",{className:"flex min-h-screen flex-col lg:flex-row",children:[(0,d.jsx)(e.AppSidebar,{}),(0,d.jsxs)("main",{className:"flex min-w-0 flex-1 flex-col",children:[(0,d.jsx)(f.AppTopbar,{}),(0,d.jsx)("div",{className:"mx-auto w-full max-w-[1180px] px-4 py-6 lg:px-10 lg:py-8",children:a})]})]})})},b)})})})}},15115:(a,b,c)=>{Promise.resolve().then(c.bind(c,25029)),Promise.resolve().then(c.bind(c,6302)),Promise.resolve().then(c.bind(c,84774)),Promise.resolve().then(c.bind(c,97944)),Promise.resolve().then(c.bind(c,73257))},21971:()=>{},25029:(a,b,c)=>{"use strict";c.d(b,{AppSidebar:()=>v});var d=c(92692),e=c(84774),f=c(50953),g=c(45813),h=c(77017),i=c(51771),j=c(4486),k=c(18075),l=c(46455),m=c(10210),n=c(61296),o=c(31178),p=c(99705),q=c(58599),r=c.n(q),s=c(67994);let t={en:{tagline:"team agent config",workspace:"Workspace",configuration:"Configuration",dashboard:"Dashboard",rules:"Rules",mcp:"MCP Servers",skills:"Skills",mirror:"Mirror",backups:"Backups",debug:"Debug",team:"Team",settings:"Settings",poweredBy:"Powered by",idle:"Idle",runSync:"Run sync to see status"},zh:{tagline:"团队 AI Agent 配置",workspace:"工作区",configuration:"配置",dashboard:"仪表盘",rules:"规则",mcp:"MCP 服务",skills:"技能",mirror:"镜像同步",backups:"备份",debug:"调试",team:"团队",settings:"设置",poweredBy:"Powered by",idle:"空闲",runSync:"运行同步后查看状态"}};function u({className:a}){return(0,d.jsxs)("svg",{role:"img",viewBox:"0 0 24 24",className:a,fill:"currentColor",children:[(0,d.jsx)("title",{children:"GitHub"}),(0,d.jsx)("path",{d:"M12 .5C5.65.5.5 5.65.5 12c0 5.09 3.29 9.39 7.86 10.91.58.11.79-.25.79-.56v-2.14c-3.2.7-3.88-1.36-3.88-1.36-.52-1.33-1.28-1.69-1.28-1.69-1.05-.72.08-.71.08-.71 1.16.08 1.77 1.19 1.77 1.19 1.03 1.76 2.7 1.25 3.36.96.1-.75.4-1.25.73-1.54-2.55-.29-5.24-1.28-5.24-5.69 0-1.26.45-2.28 1.19-3.09-.12-.29-.52-1.46.11-3.04 0 0 .97-.31 3.16 1.18a10.9 10.9 0 0 1 5.75 0c2.19-1.49 3.16-1.18 3.16-1.18.63 1.58.23 2.75.11 3.04.74.81 1.19 1.83 1.19 3.09 0 4.42-2.69 5.4-5.25 5.69.41.36.78 1.06.78 2.14v3.16c0 .31.21.67.79.56A11.52 11.52 0 0 0 23.5 12C23.5 5.65 18.35.5 12 .5Z"})]})}function v(){let a=(0,s.usePathname)(),{locale:b}=(0,e.o)(),c=t[b];return(0,d.jsxs)("aside",{className:"flex w-full shrink-0 flex-col border-plexus-border border-b bg-plexus-surface px-3 py-5 lg:sticky lg:top-0 lg:h-screen lg:w-[240px] lg:border-r lg:border-b-0",children:[(0,d.jsxs)("div",{className:"mb-6 px-2",children:[(0,d.jsxs)("div",{className:"flex items-baseline gap-2",children:[(0,d.jsx)("span",{className:"inline-block h-2.5 w-2.5 rounded-full bg-plexus-accent"}),(0,d.jsx)("span",{className:"plexus-title",children:"Plexus"}),(0,d.jsxs)("span",{className:"font-mono text-[11px] text-plexus-text-3",children:["v","0.0.8"]})]}),(0,d.jsx)("div",{className:"mt-1 px-3 text-[12px] tracking-[0.02em] text-plexus-text-3",children:c.tagline})]}),[{group:c.workspace,items:[{href:"/",label:c.dashboard,icon:h.A},{href:"/rules",label:c.rules,icon:i.A},{href:"/mcp",label:c.mcp,icon:j.A},{href:"/skills",label:c.skills,icon:k.A},{href:"/mirror",label:c.mirror,icon:l.A}]},{group:c.configuration,items:[{href:"/backups",label:c.backups,icon:m.A},{href:"/debug",label:c.debug,icon:n.A},{href:"/team",label:c.team,icon:o.A,beta:!0},{href:"/settings",label:c.settings,icon:p.A}]}].map((b,c)=>(0,d.jsxs)("div",{className:(0,g.cn)("px-1",0===c?"mb-2":""),children:[c>0&&(0,d.jsx)("div",{className:"my-3.5 h-px bg-plexus-border"}),(0,d.jsx)("div",{className:"plexus-eyebrow mb-2 px-2",children:b.group}),(0,d.jsx)("div",{className:"flex flex-col gap-0.5",children:b.items.map(b=>{let c="/"===b.href?"/"===a:a===b.href||a.startsWith(`${b.href}/`),e=b.icon;return(0,d.jsxs)(r(),{href:b.href,className:(0,g.cn)("flex h-8 items-center gap-2.5 rounded-sm px-2.5 text-[13px]","transition-colors duration-plexus-fast ease-plexus-out",c?"bg-plexus-surface-2 text-plexus-text shadow-[inset_2px_0_0_var(--plexus-accent)]":"text-plexus-text-2 hover:bg-plexus-surface-2 hover:text-plexus-text"),children:[(0,d.jsx)(e,{className:"h-4 w-4 shrink-0",strokeWidth:1.5}),(0,d.jsx)("span",{children:b.label}),b.beta&&(0,d.jsx)(f.E,{variant:"beta",className:"ml-auto",children:"beta"})]},b.href)})})]},b.group)),(0,d.jsxs)("div",{className:"mt-auto border-t border-plexus-border px-3 pt-4",children:[(0,d.jsxs)("a",{href:"https://github.com/miniLV/Plexus",target:"_blank",rel:"noreferrer",className:"group mb-4 flex items-center gap-2.5 rounded-md border border-plexus-border bg-plexus-surface-2/70 px-2.5 py-2 shadow-[inset_0_1px_0_rgb(255_255_255/0.035)] transition-colors duration-plexus-fast ease-plexus-out hover:border-plexus-accent/45 hover:bg-plexus-surface-2",children:[(0,d.jsx)("span",{className:"grid h-7 w-7 shrink-0 place-items-center rounded-sm border border-plexus-border bg-plexus-bg text-plexus-text-2 transition-colors duration-plexus-fast ease-plexus-out group-hover:border-plexus-accent/40 group-hover:text-plexus-accent",children:(0,d.jsx)(u,{className:"h-4 w-4"})}),(0,d.jsxs)("span",{className:"min-w-0 leading-none",children:[(0,d.jsx)("span",{className:"block text-[9px] font-medium uppercase tracking-[0.14em] text-plexus-text-mute",children:c.poweredBy}),(0,d.jsx)("span",{className:"mt-1 block text-[13px] font-semibold tracking-[0.01em] text-plexus-text",children:"miniLV"})]})]}),(0,d.jsxs)("div",{className:"mb-1 flex items-center gap-2",children:[(0,d.jsxs)("span",{className:"relative inline-flex h-1.5 w-1.5",children:[(0,d.jsx)("span",{className:"absolute inline-flex h-full w-full animate-ping rounded-full bg-plexus-ok opacity-60"}),(0,d.jsx)("span",{className:"relative inline-flex h-1.5 w-1.5 rounded-full bg-plexus-ok"})]}),(0,d.jsx)("span",{className:"text-sm font-medium text-plexus-text",children:c.idle})]}),(0,d.jsx)("div",{className:"text-[12px] tracking-[0.02em] text-plexus-text-3",children:c.runSync})]})]})}},41729:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,32594,23)),Promise.resolve().then(c.t.bind(c,6413,23)),Promise.resolve().then(c.t.bind(c,61437,23)),Promise.resolve().then(c.t.bind(c,99476,23)),Promise.resolve().then(c.t.bind(c,41452,23)),Promise.resolve().then(c.t.bind(c,86792,23)),Promise.resolve().then(c.t.bind(c,48465,23)),Promise.resolve().then(c.t.bind(c,13592,23))},45813:(a,b,c)=>{"use strict";c.d(b,{cn:()=>f});var d=c(9537),e=c(43165);function f(...a){return(0,e.QP)((0,d.$)(a))}},48719:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,32594,23))},50953:(a,b,c)=>{"use strict";c.d(b,{E:()=>g,m:()=>h});var d=c(92692),e=c(45813);let f=(0,c(39923).F)("inline-flex items-center gap-1 rounded-sm px-2 h-5 text-[11px] font-medium tracking-[0.01em]",{variants:{variant:{team:"bg-plexus-info/15 text-plexus-info",personal:"bg-plexus-accent-faint text-plexus-accent",synced:"bg-plexus-ok/15 text-plexus-ok",divergent:"bg-plexus-warn/15 text-plexus-warn",native:"bg-plexus-text-3/15 text-plexus-text-3",beta:"bg-plexus-accent-faint text-plexus-accent border border-plexus-accent/25",danger:"bg-plexus-err/13 text-plexus-err",outline:"border border-plexus-border text-plexus-text-2"}},defaultVariants:{variant:"outline"}});function g({className:a,variant:b,...c}){return(0,d.jsx)("span",{className:(0,e.cn)(f({variant:b}),a),...c})}function h({className:a,tone:b="ok"}){return(0,d.jsx)("span",{className:(0,e.cn)("inline-block h-1.5 w-1.5 rounded-full",{ok:"bg-plexus-ok",warn:"bg-plexus-warn",err:"bg-plexus-err",info:"bg-plexus-info",accent:"bg-plexus-accent",mute:"bg-plexus-text-3"}[b],a)})}},56967:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,25696,23))},60303:(a,b,c)=>{"use strict";c.d(b,{AppSidebar:()=>d});let d=(0,c(30274).registerClientReference)(function(){throw Error("Attempted to call AppSidebar() from the server but AppSidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/Plexus/Plexus/apps/web/components/app-sidebar.tsx","AppSidebar")},73257:(a,b,c)=>{"use strict";c.d(b,{TooltipProvider:()=>h});var d=c(92692),e=c(45813),f=c(49588),g=c(71277);let h=f.Kq;f.bL,f.l9,(0,g.forwardRef)(({className:a,sideOffset:b=6,...c},g)=>(0,d.jsx)(f.ZL,{children:(0,d.jsx)(f.UC,{ref:g,sideOffset:b,className:(0,e.cn)("z-50 rounded-sm border border-plexus-border bg-plexus-surface-2","px-2 py-1 text-xs text-plexus-text shadow-sm","animate-in fade-in-0 zoom-in-95",a),...c})})).displayName=f.UC.displayName},73422:(a,b,c)=>{"use strict";c.d(b,{ThemeProvider:()=>d});let d=(0,c(30274).registerClientReference)(function(){throw Error("Attempted to call ThemeProvider() from the server but ThemeProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/Plexus/Plexus/apps/web/components/theme-provider.tsx","ThemeProvider")},73754:(a,b,c)=>{"use strict";c.d(b,{Button:()=>j});var d=c(92692),e=c(45813),f=c(74745),g=c(39923),h=c(71277);let i=(0,g.F)((0,e.cn)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded font-medium","transition-colors duration-plexus-normal ease-plexus-out","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-plexus-accent/50 focus-visible:ring-offset-1 focus-visible:ring-offset-plexus-bg","disabled:pointer-events-none disabled:opacity-50"),{variants:{variant:{primary:"bg-plexus-accent text-[#1a1a17] hover:bg-plexus-accent-2 border border-plexus-accent",secondary:"bg-plexus-surface-2 text-plexus-text border border-plexus-border hover:bg-plexus-surface hover:border-plexus-border-strong",ghost:"bg-transparent text-plexus-text-2 hover:bg-plexus-surface-2 hover:text-plexus-text border border-transparent",danger:"bg-transparent text-plexus-err border border-plexus-err/35 hover:bg-plexus-err/10","danger-solid":"bg-plexus-err text-white border border-plexus-err hover:bg-plexus-err/90"},size:{default:"h-9 px-3.5 text-sm",sm:"h-7 px-2.5 text-xs",lg:"h-10 px-4 text-sm",icon:"h-9 w-9 p-0"}},defaultVariants:{variant:"secondary",size:"default"}}),j=(0,h.forwardRef)(({className:a,variant:b,size:c,asChild:g=!1,type:h="button",...j},k)=>{let l=g?f.DX:"button";return(0,d.jsx)(l,{ref:k,type:g?void 0:h,className:(0,e.cn)(i({variant:b,size:c}),a),...j})});j.displayName="Button"},74829:(a,b,c)=>{"use strict";c.d(b,{LanguageProvider:()=>e});var d=c(30274);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call LanguageProvider() from the server but LanguageProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/Plexus/Plexus/apps/web/components/language-provider.tsx","LanguageProvider");(0,d.registerClientReference)(function(){throw Error("Attempted to call useLanguage() from the server but useLanguage is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/Plexus/Plexus/apps/web/components/language-provider.tsx","useLanguage")},76155:(a,b,c)=>{"use strict";c.d(b,{TooltipProvider:()=>e});var d=c(30274);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call TooltipProvider() from the server but TooltipProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/Plexus/Plexus/apps/web/components/ui/tooltip.tsx","TooltipProvider");(0,d.registerClientReference)(function(){throw Error("Attempted to call Tooltip() from the server but Tooltip is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/Plexus/Plexus/apps/web/components/ui/tooltip.tsx","Tooltip"),(0,d.registerClientReference)(function(){throw Error("Attempted to call TooltipTrigger() from the server but TooltipTrigger is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/Plexus/Plexus/apps/web/components/ui/tooltip.tsx","TooltipTrigger"),(0,d.registerClientReference)(function(){throw Error("Attempted to call TooltipContent() from the server but TooltipContent is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/Plexus/Plexus/apps/web/components/ui/tooltip.tsx","TooltipContent")},78163:(a,b,c)=>{Promise.resolve().then(c.bind(c,60303)),Promise.resolve().then(c.bind(c,2183)),Promise.resolve().then(c.bind(c,74829)),Promise.resolve().then(c.bind(c,73422)),Promise.resolve().then(c.bind(c,76155))},78177:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,25696,23)),Promise.resolve().then(c.t.bind(c,69411,23)),Promise.resolve().then(c.t.bind(c,8447,23)),Promise.resolve().then(c.t.bind(c,50674,23)),Promise.resolve().then(c.t.bind(c,78886,23)),Promise.resolve().then(c.t.bind(c,24194,23)),Promise.resolve().then(c.t.bind(c,93431,23)),Promise.resolve().then(c.bind(c,23858))},84774:(a,b,c)=>{"use strict";c.d(b,{LanguageProvider:()=>i,o:()=>j});var d=c(92692),e=c(67994),f=c(71277);let g=(0,f.createContext)(null);function h(a){window.localStorage.setItem("plexus.locale",a),document.cookie=`plexus-locale=${a}; path=/; max-age=31536000; samesite=lax`}function i({children:a,initialLocale:b}){let c=(0,e.useRouter)(),[j,k]=(0,f.useState)(b),l=(0,f.useMemo)(()=>({locale:j,setLocale(a){h(a),c.refresh()},toggleLocale(){h("zh"===j?"en":"zh"),c.refresh()}}),[j,c]);return(0,d.jsx)(g.Provider,{value:l,children:a})}function j(){let a=(0,f.useContext)(g);if(!a)throw Error("useLanguage must be used inside LanguageProvider");return a}},96638:(a,b,c)=>{"use strict";c.d(b,{s:()=>f});var d=c(9330);function e(a){if(!a)return null;let b=a.toLowerCase();return"zh"===b||b.startsWith("zh-")?"zh":"en"===b||b.startsWith("en-")?"en":null}async function f(){var a;let b,c=await (0,d.UL)(),f=e(c.get("plexus-locale")?.value);return f?f:(b=(Array.isArray(a=(await (0,d.b3)()).get("accept-language")??void 0)?a.map((a,b)=>({value:a,q:1,index:b})):"string"==typeof a?a.split(",").map((a,b)=>{let[c="",...d]=a.trim().split(";"),e=d.find(a=>a.trim().startsWith("q=")),f=e?Number(e.trim().slice(2)):1;return{value:c,q:Number.isFinite(f)?f:1,index:b}}):[]).map(a=>({...a,locale:e(a.value)})).filter(a=>null!==a.locale).sort((a,b)=>b.q-a.q||a.index-b.index),b[0]?.locale??"en")}},97944:(a,b,c)=>{"use strict";c.d(b,{ThemeProvider:()=>f});var d=c(92692),e=c(52483);function f({children:a}){return(0,d.jsx)(e.N,{attribute:"data-theme",defaultTheme:"light",enableSystem:!0,disableTransitionOnChange:!0,themes:["dark","light"],children:a})}}};
1
+ exports.id=554,exports.ids=[554],exports.modules={2183:(a,b,c)=>{"use strict";c.d(b,{AppTopbar:()=>d});let d=(0,c(30274).registerClientReference)(function(){throw Error("Attempted to call AppTopbar() from the server but AppTopbar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/Plexus/Plexus/apps/web/components/app-topbar.tsx","AppTopbar")},6302:(a,b,c)=>{"use strict";c.d(b,{AppTopbar:()=>p});var d=c(92692),e=c(84774),f=c(73754),g=c(14579);function h(){let{locale:a,toggleLocale:b}=(0,e.o)();return(0,d.jsxs)(f.Button,{type:"button",variant:"ghost",size:"sm",onClick:b,title:"zh"===a?"Switch to English":"切换到中文",className:"h-9",children:[(0,d.jsx)(g.A,{className:"h-4 w-4",strokeWidth:1.5}),"zh"===a?"English":"中文"]})}var i=c(45813),j=c(52483),k=c(71277);function l({className:a}){let{resolvedTheme:b,setTheme:c}=(0,j.D)(),[e,f]=(0,k.useState)(!1),g=e&&"light"===b;return(0,d.jsx)("button",{type:"button","aria-label":"Toggle theme",title:g?"Switch to dark":"Switch to light",onClick:()=>c(g?"dark":"light"),className:(0,i.cn)("relative h-7 w-14 rounded-full border border-plexus-border bg-plexus-surface-2","transition-colors duration-plexus-normal",a),children:(0,d.jsx)("span",{className:(0,i.cn)("absolute top-[2px] left-[2px] h-[22px] w-[22px] rounded-full bg-plexus-accent","transition-transform duration-plexus-normal ease-plexus-out",g&&"translate-x-7")})})}var m=c(32518),n=c(67994);let o={en:{workspace:"Workspace",configuration:"Configuration",dashboard:"Dashboard",rules:"Rules",mcp:"MCP Servers",skills:"Skills",mirror:"Mirror",backups:"Backups",debug:"Debug",team:"Team",settings:"Settings",agentDetail:"Agent detail",plexus:"Plexus",searchTitle:"Search (coming soon)",search:"Search..."},zh:{workspace:"工作区",configuration:"配置",dashboard:"仪表盘",rules:"规则",mcp:"MCP 服务",skills:"技能",mirror:"镜像同步",backups:"备份",debug:"调试",team:"团队",settings:"设置",agentDetail:"Agent 详情",plexus:"Plexus",searchTitle:"搜索(即将支持)",search:"搜索..."}};function p(){let a=(0,n.usePathname)(),{locale:b}=(0,e.o)(),c=o[b],{group:f,label:g}=function(a,b){let c={"/":b.dashboard,"/rules":b.rules,"/mcp":b.mcp,"/skills":b.skills,"/mirror":b.mirror,"/backups":b.backups,"/debug":b.debug,"/team":b.team,"/settings":b.settings};if("/"===a)return{group:b.workspace,label:b.dashboard};if(a.startsWith("/agents/"))return{group:`${b.workspace} / ${b.dashboard}`,label:b.agentDetail};let d=`/${a.split("/")[1]}`,e=c[d]??b.plexus;return{group:"/backups"===d||"/team"===d||"/settings"===d||"/debug"===d?b.configuration:b.workspace,label:e}}(a,c);return(0,d.jsxs)("header",{className:"flex min-h-[64px] shrink-0 flex-wrap items-center justify-between gap-3 border-b border-plexus-border px-4 py-3 lg:px-10",children:[(0,d.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-3 text-[12px] tracking-[0.02em] text-plexus-text-3",children:[f.split(" / ").map((a,b,c)=>(0,d.jsxs)("span",{className:"flex items-center gap-3",children:[(0,d.jsx)("span",{children:a}),b<c.length-1&&(0,d.jsx)("span",{children:"/"})]},`${a}-${b}`)),(0,d.jsx)("span",{children:"/"}),(0,d.jsx)("span",{className:"text-plexus-text-2",children:g})]}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2 lg:gap-3",children:[(0,d.jsxs)("button",{type:"button",className:"inline-flex h-9 items-center gap-2 rounded border border-transparent px-3 text-plexus-text-2 hover:bg-plexus-surface-2 hover:text-plexus-text",title:c.searchTitle,disabled:!0,children:[(0,d.jsx)(m.A,{className:"h-4 w-4",strokeWidth:1.5}),(0,d.jsx)("span",{className:"text-[12px] tracking-[0.02em] text-plexus-text-3",children:c.search}),(0,d.jsx)("span",{className:"ml-2 rounded border border-plexus-border bg-plexus-surface-2 px-1.5 py-0.5 font-mono text-[11px] text-plexus-text-mute",children:"⌘K"})]}),(0,d.jsx)(h,{}),(0,d.jsx)(l,{}),(0,d.jsx)("div",{className:"grid h-8 w-8 place-items-center rounded-full bg-plexus-accent-faint font-semibold text-plexus-accent",children:"M"})]})]})}},9834:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>n,metadata:()=>m});var d=c(2474),e=c(60303),f=c(2183),g=c(74829),h=c(73422),i=c(76155),j=c(96638),k=c(71749),l=c.n(k);c(21971);let m={title:"Plexus Agent Config",description:"Local dashboard for syncing Claude Code, Cursor, Codex, Gemini CLI, and Qwen Code rules, MCP servers, and skills.",icons:[{rel:"icon",url:"/favicon.svg",type:"image/svg+xml"}]};async function n({children:a}){let b=await (0,j.s)();return(0,d.jsx)("html",{lang:"zh"===b?"zh-CN":"en",suppressHydrationWarning:!0,className:l().variable,children:(0,d.jsx)("body",{children:(0,d.jsx)(h.ThemeProvider,{children:(0,d.jsx)(g.LanguageProvider,{initialLocale:b,children:(0,d.jsx)(i.TooltipProvider,{delayDuration:250,children:(0,d.jsxs)("div",{className:"flex min-h-screen flex-col lg:flex-row",children:[(0,d.jsx)(e.AppSidebar,{}),(0,d.jsxs)("main",{className:"flex min-w-0 flex-1 flex-col",children:[(0,d.jsx)(f.AppTopbar,{}),(0,d.jsx)("div",{className:"mx-auto w-full max-w-[1180px] px-4 py-6 lg:px-10 lg:py-8",children:a})]})]})})},b)})})})}},15115:(a,b,c)=>{Promise.resolve().then(c.bind(c,25029)),Promise.resolve().then(c.bind(c,6302)),Promise.resolve().then(c.bind(c,84774)),Promise.resolve().then(c.bind(c,97944)),Promise.resolve().then(c.bind(c,73257))},21971:()=>{},25029:(a,b,c)=>{"use strict";c.d(b,{AppSidebar:()=>v});var d=c(92692),e=c(84774),f=c(50953),g=c(45813),h=c(77017),i=c(51771),j=c(4486),k=c(18075),l=c(46455),m=c(10210),n=c(61296),o=c(31178),p=c(99705),q=c(58599),r=c.n(q),s=c(67994);let t={en:{tagline:"team agent config",workspace:"Workspace",configuration:"Configuration",dashboard:"Dashboard",rules:"Rules",mcp:"MCP Servers",skills:"Skills",mirror:"Mirror",backups:"Backups",debug:"Debug",team:"Team",settings:"Settings",poweredBy:"Powered by",idle:"Idle",runSync:"Run sync to see status"},zh:{tagline:"团队 AI Agent 配置",workspace:"工作区",configuration:"配置",dashboard:"仪表盘",rules:"规则",mcp:"MCP 服务",skills:"技能",mirror:"镜像同步",backups:"备份",debug:"调试",team:"团队",settings:"设置",poweredBy:"Powered by",idle:"空闲",runSync:"运行同步后查看状态"}};function u({className:a}){return(0,d.jsxs)("svg",{role:"img",viewBox:"0 0 24 24",className:a,fill:"currentColor",children:[(0,d.jsx)("title",{children:"GitHub"}),(0,d.jsx)("path",{d:"M12 .5C5.65.5.5 5.65.5 12c0 5.09 3.29 9.39 7.86 10.91.58.11.79-.25.79-.56v-2.14c-3.2.7-3.88-1.36-3.88-1.36-.52-1.33-1.28-1.69-1.28-1.69-1.05-.72.08-.71.08-.71 1.16.08 1.77 1.19 1.77 1.19 1.03 1.76 2.7 1.25 3.36.96.1-.75.4-1.25.73-1.54-2.55-.29-5.24-1.28-5.24-5.69 0-1.26.45-2.28 1.19-3.09-.12-.29-.52-1.46.11-3.04 0 0 .97-.31 3.16 1.18a10.9 10.9 0 0 1 5.75 0c2.19-1.49 3.16-1.18 3.16-1.18.63 1.58.23 2.75.11 3.04.74.81 1.19 1.83 1.19 3.09 0 4.42-2.69 5.4-5.25 5.69.41.36.78 1.06.78 2.14v3.16c0 .31.21.67.79.56A11.52 11.52 0 0 0 23.5 12C23.5 5.65 18.35.5 12 .5Z"})]})}function v(){let a=(0,s.usePathname)(),{locale:b}=(0,e.o)(),c=t[b];return(0,d.jsxs)("aside",{className:"flex w-full shrink-0 flex-col border-plexus-border border-b bg-plexus-surface px-3 py-5 lg:sticky lg:top-0 lg:h-screen lg:w-[240px] lg:border-r lg:border-b-0",children:[(0,d.jsxs)("div",{className:"mb-6 px-2",children:[(0,d.jsxs)("div",{className:"flex items-baseline gap-2",children:[(0,d.jsx)("span",{className:"inline-block h-2.5 w-2.5 rounded-full bg-plexus-accent"}),(0,d.jsx)("span",{className:"plexus-title",children:"Plexus"}),(0,d.jsxs)("span",{className:"font-mono text-[11px] text-plexus-text-3",children:["v","0.0.9"]})]}),(0,d.jsx)("div",{className:"mt-1 px-3 text-[12px] tracking-[0.02em] text-plexus-text-3",children:c.tagline})]}),[{group:c.workspace,items:[{href:"/",label:c.dashboard,icon:h.A},{href:"/rules",label:c.rules,icon:i.A},{href:"/mcp",label:c.mcp,icon:j.A},{href:"/skills",label:c.skills,icon:k.A},{href:"/mirror",label:c.mirror,icon:l.A}]},{group:c.configuration,items:[{href:"/backups",label:c.backups,icon:m.A},{href:"/debug",label:c.debug,icon:n.A},{href:"/team",label:c.team,icon:o.A,beta:!0},{href:"/settings",label:c.settings,icon:p.A}]}].map((b,c)=>(0,d.jsxs)("div",{className:(0,g.cn)("px-1",0===c?"mb-2":""),children:[c>0&&(0,d.jsx)("div",{className:"my-3.5 h-px bg-plexus-border"}),(0,d.jsx)("div",{className:"plexus-eyebrow mb-2 px-2",children:b.group}),(0,d.jsx)("div",{className:"flex flex-col gap-0.5",children:b.items.map(b=>{let c="/"===b.href?"/"===a:a===b.href||a.startsWith(`${b.href}/`),e=b.icon;return(0,d.jsxs)(r(),{href:b.href,className:(0,g.cn)("flex h-8 items-center gap-2.5 rounded-sm px-2.5 text-[13px]","transition-colors duration-plexus-fast ease-plexus-out",c?"bg-plexus-surface-2 text-plexus-text shadow-[inset_2px_0_0_var(--plexus-accent)]":"text-plexus-text-2 hover:bg-plexus-surface-2 hover:text-plexus-text"),children:[(0,d.jsx)(e,{className:"h-4 w-4 shrink-0",strokeWidth:1.5}),(0,d.jsx)("span",{children:b.label}),b.beta&&(0,d.jsx)(f.E,{variant:"beta",className:"ml-auto",children:"beta"})]},b.href)})})]},b.group)),(0,d.jsxs)("div",{className:"mt-auto border-t border-plexus-border px-3 pt-4",children:[(0,d.jsxs)("a",{href:"https://github.com/miniLV/Plexus",target:"_blank",rel:"noreferrer",className:"group mb-4 flex items-center gap-2.5 rounded-md border border-plexus-border bg-plexus-surface-2/70 px-2.5 py-2 shadow-[inset_0_1px_0_rgb(255_255_255/0.035)] transition-colors duration-plexus-fast ease-plexus-out hover:border-plexus-accent/45 hover:bg-plexus-surface-2",children:[(0,d.jsx)("span",{className:"grid h-7 w-7 shrink-0 place-items-center rounded-sm border border-plexus-border bg-plexus-bg text-plexus-text-2 transition-colors duration-plexus-fast ease-plexus-out group-hover:border-plexus-accent/40 group-hover:text-plexus-accent",children:(0,d.jsx)(u,{className:"h-4 w-4"})}),(0,d.jsxs)("span",{className:"min-w-0 leading-none",children:[(0,d.jsx)("span",{className:"block text-[9px] font-medium uppercase tracking-[0.14em] text-plexus-text-mute",children:c.poweredBy}),(0,d.jsx)("span",{className:"mt-1 block text-[13px] font-semibold tracking-[0.01em] text-plexus-text",children:"miniLV"})]})]}),(0,d.jsxs)("div",{className:"mb-1 flex items-center gap-2",children:[(0,d.jsxs)("span",{className:"relative inline-flex h-1.5 w-1.5",children:[(0,d.jsx)("span",{className:"absolute inline-flex h-full w-full animate-ping rounded-full bg-plexus-ok opacity-60"}),(0,d.jsx)("span",{className:"relative inline-flex h-1.5 w-1.5 rounded-full bg-plexus-ok"})]}),(0,d.jsx)("span",{className:"text-sm font-medium text-plexus-text",children:c.idle})]}),(0,d.jsx)("div",{className:"text-[12px] tracking-[0.02em] text-plexus-text-3",children:c.runSync})]})]})}},41729:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,32594,23)),Promise.resolve().then(c.t.bind(c,6413,23)),Promise.resolve().then(c.t.bind(c,61437,23)),Promise.resolve().then(c.t.bind(c,99476,23)),Promise.resolve().then(c.t.bind(c,41452,23)),Promise.resolve().then(c.t.bind(c,86792,23)),Promise.resolve().then(c.t.bind(c,48465,23)),Promise.resolve().then(c.t.bind(c,13592,23))},45813:(a,b,c)=>{"use strict";c.d(b,{cn:()=>f});var d=c(9537),e=c(43165);function f(...a){return(0,e.QP)((0,d.$)(a))}},48719:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,32594,23))},50953:(a,b,c)=>{"use strict";c.d(b,{E:()=>g,m:()=>h});var d=c(92692),e=c(45813);let f=(0,c(39923).F)("inline-flex items-center gap-1 rounded-sm px-2 h-5 text-[11px] font-medium tracking-[0.01em]",{variants:{variant:{team:"bg-plexus-info/15 text-plexus-info",personal:"bg-plexus-accent-faint text-plexus-accent",synced:"bg-plexus-ok/15 text-plexus-ok",divergent:"bg-plexus-warn/15 text-plexus-warn",native:"bg-plexus-text-3/15 text-plexus-text-3",beta:"bg-plexus-accent-faint text-plexus-accent border border-plexus-accent/25",danger:"bg-plexus-err/13 text-plexus-err",outline:"border border-plexus-border text-plexus-text-2"}},defaultVariants:{variant:"outline"}});function g({className:a,variant:b,...c}){return(0,d.jsx)("span",{className:(0,e.cn)(f({variant:b}),a),...c})}function h({className:a,tone:b="ok"}){return(0,d.jsx)("span",{className:(0,e.cn)("inline-block h-1.5 w-1.5 rounded-full",{ok:"bg-plexus-ok",warn:"bg-plexus-warn",err:"bg-plexus-err",info:"bg-plexus-info",accent:"bg-plexus-accent",mute:"bg-plexus-text-3"}[b],a)})}},56967:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,25696,23))},60303:(a,b,c)=>{"use strict";c.d(b,{AppSidebar:()=>d});let d=(0,c(30274).registerClientReference)(function(){throw Error("Attempted to call AppSidebar() from the server but AppSidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/Plexus/Plexus/apps/web/components/app-sidebar.tsx","AppSidebar")},73257:(a,b,c)=>{"use strict";c.d(b,{TooltipProvider:()=>h});var d=c(92692),e=c(45813),f=c(49588),g=c(71277);let h=f.Kq;f.bL,f.l9,(0,g.forwardRef)(({className:a,sideOffset:b=6,...c},g)=>(0,d.jsx)(f.ZL,{children:(0,d.jsx)(f.UC,{ref:g,sideOffset:b,className:(0,e.cn)("z-50 rounded-sm border border-plexus-border bg-plexus-surface-2","px-2 py-1 text-xs text-plexus-text shadow-sm","animate-in fade-in-0 zoom-in-95",a),...c})})).displayName=f.UC.displayName},73422:(a,b,c)=>{"use strict";c.d(b,{ThemeProvider:()=>d});let d=(0,c(30274).registerClientReference)(function(){throw Error("Attempted to call ThemeProvider() from the server but ThemeProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/Plexus/Plexus/apps/web/components/theme-provider.tsx","ThemeProvider")},73754:(a,b,c)=>{"use strict";c.d(b,{Button:()=>j});var d=c(92692),e=c(45813),f=c(74745),g=c(39923),h=c(71277);let i=(0,g.F)((0,e.cn)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded font-medium","transition-colors duration-plexus-normal ease-plexus-out","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-plexus-accent/50 focus-visible:ring-offset-1 focus-visible:ring-offset-plexus-bg","disabled:pointer-events-none disabled:opacity-50"),{variants:{variant:{primary:"bg-plexus-accent text-[#1a1a17] hover:bg-plexus-accent-2 border border-plexus-accent",secondary:"bg-plexus-surface-2 text-plexus-text border border-plexus-border hover:bg-plexus-surface hover:border-plexus-border-strong",ghost:"bg-transparent text-plexus-text-2 hover:bg-plexus-surface-2 hover:text-plexus-text border border-transparent",danger:"bg-transparent text-plexus-err border border-plexus-err/35 hover:bg-plexus-err/10","danger-solid":"bg-plexus-err text-white border border-plexus-err hover:bg-plexus-err/90"},size:{default:"h-9 px-3.5 text-sm",sm:"h-7 px-2.5 text-xs",lg:"h-10 px-4 text-sm",icon:"h-9 w-9 p-0"}},defaultVariants:{variant:"secondary",size:"default"}}),j=(0,h.forwardRef)(({className:a,variant:b,size:c,asChild:g=!1,type:h="button",...j},k)=>{let l=g?f.DX:"button";return(0,d.jsx)(l,{ref:k,type:g?void 0:h,className:(0,e.cn)(i({variant:b,size:c}),a),...j})});j.displayName="Button"},74829:(a,b,c)=>{"use strict";c.d(b,{LanguageProvider:()=>e});var d=c(30274);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call LanguageProvider() from the server but LanguageProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/Plexus/Plexus/apps/web/components/language-provider.tsx","LanguageProvider");(0,d.registerClientReference)(function(){throw Error("Attempted to call useLanguage() from the server but useLanguage is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/Plexus/Plexus/apps/web/components/language-provider.tsx","useLanguage")},76155:(a,b,c)=>{"use strict";c.d(b,{TooltipProvider:()=>e});var d=c(30274);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call TooltipProvider() from the server but TooltipProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/Plexus/Plexus/apps/web/components/ui/tooltip.tsx","TooltipProvider");(0,d.registerClientReference)(function(){throw Error("Attempted to call Tooltip() from the server but Tooltip is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/Plexus/Plexus/apps/web/components/ui/tooltip.tsx","Tooltip"),(0,d.registerClientReference)(function(){throw Error("Attempted to call TooltipTrigger() from the server but TooltipTrigger is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/Plexus/Plexus/apps/web/components/ui/tooltip.tsx","TooltipTrigger"),(0,d.registerClientReference)(function(){throw Error("Attempted to call TooltipContent() from the server but TooltipContent is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/Plexus/Plexus/apps/web/components/ui/tooltip.tsx","TooltipContent")},78163:(a,b,c)=>{Promise.resolve().then(c.bind(c,60303)),Promise.resolve().then(c.bind(c,2183)),Promise.resolve().then(c.bind(c,74829)),Promise.resolve().then(c.bind(c,73422)),Promise.resolve().then(c.bind(c,76155))},78177:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,25696,23)),Promise.resolve().then(c.t.bind(c,69411,23)),Promise.resolve().then(c.t.bind(c,8447,23)),Promise.resolve().then(c.t.bind(c,50674,23)),Promise.resolve().then(c.t.bind(c,78886,23)),Promise.resolve().then(c.t.bind(c,24194,23)),Promise.resolve().then(c.t.bind(c,93431,23)),Promise.resolve().then(c.bind(c,23858))},84774:(a,b,c)=>{"use strict";c.d(b,{LanguageProvider:()=>i,o:()=>j});var d=c(92692),e=c(67994),f=c(71277);let g=(0,f.createContext)(null);function h(a){window.localStorage.setItem("plexus.locale",a),document.cookie=`plexus-locale=${a}; path=/; max-age=31536000; samesite=lax`}function i({children:a,initialLocale:b}){let c=(0,e.useRouter)(),[j,k]=(0,f.useState)(b),l=(0,f.useMemo)(()=>({locale:j,setLocale(a){h(a),c.refresh()},toggleLocale(){h("zh"===j?"en":"zh"),c.refresh()}}),[j,c]);return(0,d.jsx)(g.Provider,{value:l,children:a})}function j(){let a=(0,f.useContext)(g);if(!a)throw Error("useLanguage must be used inside LanguageProvider");return a}},96638:(a,b,c)=>{"use strict";c.d(b,{s:()=>f});var d=c(9330);function e(a){if(!a)return null;let b=a.toLowerCase();return"zh"===b||b.startsWith("zh-")?"zh":"en"===b||b.startsWith("en-")?"en":null}async function f(){var a;let b,c=await (0,d.UL)(),f=e(c.get("plexus-locale")?.value);return f?f:(b=(Array.isArray(a=(await (0,d.b3)()).get("accept-language")??void 0)?a.map((a,b)=>({value:a,q:1,index:b})):"string"==typeof a?a.split(",").map((a,b)=>{let[c="",...d]=a.trim().split(";"),e=d.find(a=>a.trim().startsWith("q=")),f=e?Number(e.trim().slice(2)):1;return{value:c,q:Number.isFinite(f)?f:1,index:b}}):[]).map(a=>({...a,locale:e(a.value)})).filter(a=>null!==a.locale).sort((a,b)=>b.q-a.q||a.index-b.index),b[0]?.locale??"en")}},97944:(a,b,c)=>{"use strict";c.d(b,{ThemeProvider:()=>f});var d=c(92692),e=c(52483);function f({children:a}){return(0,d.jsx)(e.N,{attribute:"data-theme",defaultTheme:"light",enableSystem:!0,disableTransitionOnChange:!0,themes:["dark","light"],children:a})}}};
@@ -1,5 +1,5 @@
1
- exports.id=921,exports.ids=[921],exports.modules={1871:(a,b,c)=>{"use strict";c.d(b,{A0:()=>e,s0:()=>f});var d=c(51455);async function e(a){await d.mkdir(a,{recursive:!0})}async function f(a){try{return await d.access(a),!0}catch{return!1}}},45628:(a,b,c)=>{"use strict";c.r(b),c.d(b,{AGENT_DISPLAY_NAMES:()=>d.kp,AGENT_PATHS:()=>d.R6,AGENT_ROOTS:()=>d.Qp,ALL_AGENTS:()=>d.dT,COLLISION_BACKUP_ROOT:()=>aF.Rd,CustomAgentSchema:()=>M,LEGACY_RESIDUE_ROOT:()=>aF.Tz,PLEXUS_PATHS:()=>d.BF,PLEXUS_ROOT:()=>d.nV,SPREAD_AGENTS:()=>bo,__ALL_AGENTS:()=>bu,adapters:()=>ay,addCustomAgent:()=>U,applyImport:()=>bj,applyRulesToAgents:()=>aP,applySpread:()=>bn,cleanupLegacyResidue:()=>aF.P3,codexAdapter:()=>ap,collectDebugSnapshot:()=>bB,deleteSkill:()=>C,detachRulesFromAgent:()=>aR,detectAgents:()=>Y,ensureStoreScaffolding:()=>i,formatDebugSnapshot:()=>bF,getCustomAgent:()=>T,getEffectiveMcp:()=>bp,getEffectiveSkills:()=>bq,getRulesStatus:()=>aO,importRulesFromAgent:()=>aQ,inspectAgent:()=>aC,instructionsForAgent:()=>aB,isAgentInstalled:()=>aa,joinTeam:()=>bf,layerRoot:()=>j,listAgentCatalog:()=>ah,listBackups:()=>aF.Cw,listCustomAgents:()=>S,makeJsonMcpAdapter:()=>as,mergeMCP:()=>J,mergeSkills:()=>K,normalizeConfig:()=>m,parseSkillMarkdown:()=>y,previewImport:()=>bi,previewMerged:()=>aT,previewShareAll:()=>a7,previewSpread:()=>bm,pullTeam:()=>bg,quarantineCollision:()=>aF.quarantineCollision,readAllMCP:()=>s,readAllSkills:()=>D,readConfig:()=>n,readEffectiveRules:()=>H,readMCP:()=>q,readRules:()=>G,readSkills:()=>A,readTextFile:()=>aD,removeCustomAgent:()=>V,resolveSkillSourceDir:()=>E,restoreSnapshot:()=>aF.n5,rulesFile:()=>F,runShareAll:()=>ba,runSync:()=>aS,serializeSkillMarkdown:()=>z,snapshotAgentConfigs:()=>aF.RC,snapshotSingleFile:()=>aF.RV,teamStatus:()=>bh,toggleMcpAgent:()=>br,toggleSkillAgent:()=>bs,writeConfig:()=>o,writeMCP:()=>r,writePersonalRules:()=>I,writeSkill:()=>B,writeTextFile:()=>aE});var d=c(66882),e=c(51455),f=c(76760),g=c(12049),h=c(1871);async function i(){for(let a of(await (0,h.A0)(d.BF.root),["team","personal"])){let b="team"===a?d.BF.team:d.BF.personal;await (0,h.A0)(f.join(b,d.BF.mcpDirRel)),await (0,h.A0)(f.join(b,d.BF.skillsDirRel)),await (0,h.A0)(f.join(b,"rules"))}if(!await (0,h.s0)(d.BF.config)){let a={agents:Object.fromEntries(d.dT.map(a=>[a,!0])),syncStrategy:"symlink"};await e.writeFile(d.BF.config,g.stringify(a),"utf8")}}function j(a){return"team"===a?d.BF.team:d.BF.personal}function k(){return{agents:Object.fromEntries(d.dT.map(a=>[a,!0])),syncStrategy:"symlink"}}function l(a){return"object"==typeof a&&null!==a}function m(a){if(!l(a))throw Error("config must be an object");let b=k(),c=a.syncStrategy;if(void 0!==c&&"symlink"!==c&&"copy"!==c)throw Error("syncStrategy must be 'symlink' or 'copy'");let e={...b.agents};if(void 0!==a.agents){if(!l(a.agents))throw Error("agents must be an object");for(let b of d.dT){let c=a.agents[b];if(void 0!==c&&"boolean"!=typeof c)throw Error(`agents.${b} must be a boolean`);"boolean"==typeof c&&(e[b]=c)}}let f={agents:e,syncStrategy:"copy"===c?"copy":"symlink"};return"string"==typeof a.teamRepo&&a.teamRepo.trim()&&(f.teamRepo=a.teamRepo.trim()),f}async function n(){await i();let a=await e.readFile(d.BF.config,"utf8");try{return m(g.parse(a))}catch{return k()}}async function o(a){await i();let b=m(a),c=`${d.BF.config}.${process.pid}.${Date.now()}.tmp`;await e.writeFile(c,g.stringify(b),"utf8"),await e.rename(c,d.BF.config)}function p(a){return f.join(j(a),d.BF.mcpDirRel,"servers.yaml")}async function q(a){await i();let b=p(a);if(!await (0,h.s0)(b))return[];let c=await e.readFile(b,"utf8"),d=g.parse(c)??{};return(Array.isArray(d?.servers)?d.servers:[]).map(b=>({...b,layer:a}))}async function r(a,b){await i();let c=b.map(({layer:a,...b})=>b);await e.writeFile(p(a),g.stringify({servers:c}),"utf8")}async function s(){let[a,b]=await Promise.all([q("team"),q("personal")]);return[...a,...b]}function t(a){return f.join(j(a),d.BF.skillsDirRel)}let u=/^---\n([\s\S]*?)\n---\n?([\s\S]*)$/;function v(a){return Object.keys(a.frontmatter).length>0}function w(a){return"string"==typeof a&&a.trim()?a.trim():void 0}function x(a){let b=w(a);if(b)return b;if(!Array.isArray(a))return;let c=a.map(a=>w(a)).filter(a=>!!a);return c.length>0?c.join(" "):void 0}function y(a){let b=a.match(u);if(!b)return{frontmatter:{},body:a};try{return{frontmatter:g.parse(b[1])??{},body:b[2]}}catch{return{frontmatter:function(a){let b={};for(let c of a.split("\n")){let a=c.match(/^([A-Za-z0-9_-]+):\s*(.*)$/);if(!a)continue;let[,d,e]=a;if(!d||void 0===e)continue;let f=e.trim();f&&(b[d]=f.replace(/^(['"])(.*)\1$/,"$2"))}return b}(b[1]),body:b[2]}}}function z(a){let b=y(a.body),c=v(b)?b.frontmatter:{},d=v(b)?b.body:a.body,e=w(a.name)??w(a.frontmatter?.name)??w(c.name)??a.id,f=x(c.description)??x(a.description)??x(a.frontmatter?.description)??e,h={...c,...a.frontmatter??{},name:e,description:f,plexus_id:a.id,plexus_enabled_agents:a.enabledAgents};return`---
1
+ exports.id=921,exports.ids=[921],exports.modules={1871:(a,b,c)=>{"use strict";c.d(b,{A0:()=>e,s0:()=>f});var d=c(51455);async function e(a){await d.mkdir(a,{recursive:!0})}async function f(a){try{return await d.access(a),!0}catch{return!1}}},45628:(a,b,c)=>{"use strict";c.r(b),c.d(b,{AGENT_DISPLAY_NAMES:()=>d.kp,AGENT_PATHS:()=>d.R6,AGENT_ROOTS:()=>d.Qp,ALL_AGENTS:()=>d.dT,COLLISION_BACKUP_ROOT:()=>aF.Rd,CustomAgentSchema:()=>M,LEGACY_RESIDUE_ROOT:()=>aF.Tz,PLEXUS_PATHS:()=>d.BF,PLEXUS_ROOT:()=>d.nV,SPREAD_AGENTS:()=>bo,__ALL_AGENTS:()=>bv,adapters:()=>ay,addCustomAgent:()=>U,applyImport:()=>bj,applyRulesToAgents:()=>aP,applySpread:()=>bn,cleanupLegacyResidue:()=>aF.P3,codexAdapter:()=>ap,collectDebugSnapshot:()=>bC,deleteSkill:()=>C,detachRulesFromAgent:()=>aR,detectAgents:()=>Y,ensureStoreScaffolding:()=>i,formatDebugSnapshot:()=>bG,getCustomAgent:()=>T,getEffectiveMcp:()=>bp,getEffectiveSkills:()=>bq,getRulesStatus:()=>aO,importRulesFromAgent:()=>aQ,inspectAgent:()=>aC,instructionsForAgent:()=>aB,isAgentInstalled:()=>aa,joinTeam:()=>bf,layerRoot:()=>j,listAgentCatalog:()=>ah,listBackups:()=>aF.Cw,listCustomAgents:()=>S,makeJsonMcpAdapter:()=>as,mergeMCP:()=>J,mergeSkills:()=>K,normalizeConfig:()=>m,parseSkillMarkdown:()=>y,previewImport:()=>bi,previewMerged:()=>aT,previewShareAll:()=>a7,previewSpread:()=>bm,pullTeam:()=>bg,quarantineCollision:()=>aF.quarantineCollision,readAllMCP:()=>s,readAllSkills:()=>D,readConfig:()=>n,readEffectiveRules:()=>H,readMCP:()=>q,readRules:()=>G,readSkills:()=>A,readTextFile:()=>aD,removeCustomAgent:()=>V,removeMcpEverywhere:()=>bs,resolveSkillSourceDir:()=>E,restoreSnapshot:()=>aF.n5,rulesFile:()=>F,runShareAll:()=>ba,runSync:()=>aS,serializeSkillMarkdown:()=>z,snapshotAgentConfigs:()=>aF.RC,snapshotSingleFile:()=>aF.RV,teamStatus:()=>bh,toggleMcpAgent:()=>br,toggleSkillAgent:()=>bt,writeConfig:()=>o,writeMCP:()=>r,writePersonalRules:()=>I,writeSkill:()=>B,writeTextFile:()=>aE});var d=c(66882),e=c(51455),f=c(76760),g=c(12049),h=c(1871);async function i(){for(let a of(await (0,h.A0)(d.BF.root),["team","personal"])){let b="team"===a?d.BF.team:d.BF.personal;await (0,h.A0)(f.join(b,d.BF.mcpDirRel)),await (0,h.A0)(f.join(b,d.BF.skillsDirRel)),await (0,h.A0)(f.join(b,"rules"))}if(!await (0,h.s0)(d.BF.config)){let a={agents:Object.fromEntries(d.dT.map(a=>[a,!0])),syncStrategy:"symlink"};await e.writeFile(d.BF.config,g.stringify(a),"utf8")}}function j(a){return"team"===a?d.BF.team:d.BF.personal}function k(){return{agents:Object.fromEntries(d.dT.map(a=>[a,!0])),syncStrategy:"symlink"}}function l(a){return"object"==typeof a&&null!==a}function m(a){if(!l(a))throw Error("config must be an object");let b=k(),c=a.syncStrategy;if(void 0!==c&&"symlink"!==c&&"copy"!==c)throw Error("syncStrategy must be 'symlink' or 'copy'");let e={...b.agents};if(void 0!==a.agents){if(!l(a.agents))throw Error("agents must be an object");for(let b of d.dT){let c=a.agents[b];if(void 0!==c&&"boolean"!=typeof c)throw Error(`agents.${b} must be a boolean`);"boolean"==typeof c&&(e[b]=c)}}let f={agents:e,syncStrategy:"copy"===c?"copy":"symlink"};return"string"==typeof a.teamRepo&&a.teamRepo.trim()&&(f.teamRepo=a.teamRepo.trim()),f}async function n(){await i();let a=await e.readFile(d.BF.config,"utf8");try{return m(g.parse(a))}catch{return k()}}async function o(a){await i();let b=m(a),c=`${d.BF.config}.${process.pid}.${Date.now()}.tmp`;await e.writeFile(c,g.stringify(b),"utf8"),await e.rename(c,d.BF.config)}function p(a){return f.join(j(a),d.BF.mcpDirRel,"servers.yaml")}async function q(a){await i();let b=p(a);if(!await (0,h.s0)(b))return[];let c=await e.readFile(b,"utf8"),d=g.parse(c)??{};return(Array.isArray(d?.servers)?d.servers:[]).map(b=>({...b,layer:a}))}async function r(a,b){await i();let c=b.map(({layer:a,...b})=>b);await e.writeFile(p(a),g.stringify({servers:c}),"utf8")}async function s(){let[a,b]=await Promise.all([q("team"),q("personal")]);return[...a,...b]}function t(a){return f.join(j(a),d.BF.skillsDirRel)}let u=/^---\n([\s\S]*?)\n---\n?([\s\S]*)$/;function v(a){return Object.keys(a.frontmatter).length>0}function w(a){return"string"==typeof a&&a.trim()?a.trim():void 0}function x(a){let b=w(a);if(b)return b;if(!Array.isArray(a))return;let c=a.map(a=>w(a)).filter(a=>!!a);return c.length>0?c.join(" "):void 0}function y(a){let b=a.match(u);if(!b)return{frontmatter:{},body:a};try{return{frontmatter:g.parse(b[1])??{},body:b[2]}}catch{return{frontmatter:function(a){let b={};for(let c of a.split("\n")){let a=c.match(/^([A-Za-z0-9_-]+):\s*(.*)$/);if(!a)continue;let[,d,e]=a;if(!d||void 0===e)continue;let f=e.trim();f&&(b[d]=f.replace(/^(['"])(.*)\1$/,"$2"))}return b}(b[1]),body:b[2]}}}function z(a){let b=y(a.body),c=v(b)?b.frontmatter:{},d=v(b)?b.body:a.body,e=w(a.name)??w(a.frontmatter?.name)??w(c.name)??a.id,f=x(c.description)??x(a.description)??x(a.frontmatter?.description)??e,h={...c,...a.frontmatter??{},name:e,description:f,plexus_id:a.id,plexus_enabled_agents:a.enabledAgents};return`---
2
2
  ${g.stringify(h).trim()}
3
3
  ---
4
4
  ${d.trimStart()}`}async function A(a){await i();let b=t(a);if(!await (0,h.s0)(b))return[];let c=await e.readdir(b,{withFileTypes:!0}),g=[];for(let i of c){if(!i.isDirectory())continue;let c=f.join(b,i.name,"SKILL.md");if(!await (0,h.s0)(c))continue;let{frontmatter:j,body:k}=y(await e.readFile(c,"utf8")),l=y(k),m=v(l)?l.frontmatter:{},n=v(l)?l.body:k,o=Array.isArray(j.plexus_enabled_agents)?j.plexus_enabled_agents:d.dT,p=w(j.plexus_id)??i.name,q=w(j.name)??w(m.name)??i.name,r=x(m.description);g.push({id:p,name:q,description:r??x(j.description),body:n,frontmatter:{...m,...j},layer:a,enabledAgents:o.filter(a=>d.dT.includes(a))})}return g}async function B(a){await i();let b=t(a.layer),c=f.join(b,a.id);await (0,h.A0)(c),await e.writeFile(f.join(c,"SKILL.md"),z(a),"utf8")}async function C(a,b){let c=f.join(t(a),b);await (0,h.s0)(c)&&await e.rm(c,{recursive:!0,force:!0})}async function D(){let[a,b]=await Promise.all([A("team"),A("personal")]);return[...a,...b]}function E(a,b){return f.join(t(a),b)}function F(a){return f.join(j(a),"rules","global.md")}async function G(a){await i();let b=F(a);if(!await (0,h.s0)(b))return null;let c=await e.stat(b);return{layer:a,path:b,content:await e.readFile(b,"utf8"),updatedAt:c.mtime.toISOString()}}async function H(){return await G("personal")??await G("team")}async function I(a){await i();let b=F("personal");await (0,h.A0)(f.dirname(b)),await e.writeFile(b,a,"utf8")}function J(a,b){let c=new Map;for(let b of a)c.set(b.id,b);for(let a of b)c.set(a.id,a);return Array.from(c.values())}function K(a,b){let c=new Map;for(let b of a)c.set(b.id,b);for(let a of b)c.set(a.id,a);return Array.from(c.values())}var L=c(69127);let M=L.Ik({id:L.Yj().min(1).max(64).regex(/^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/,{message:"id must be lowercase alphanumeric with optional dashes"}),displayName:L.Yj().min(1).max(80),instructionFile:L.Yj().min(1),note:L.Yj().max(280).optional(),createdAt:L.Yj()}),N=L.Ik({agents:L.YO(M)}),O=f.join(d.BF.personal,"custom-agents.json"),P=new Set(d.dT);async function Q(){if(!await (0,h.s0)(O))return{agents:[]};try{let a=await e.readFile(O,"utf8"),b=N.safeParse(JSON.parse(a));if(!b.success)return{agents:[]};return b.data}catch{return{agents:[]}}}async function R(a){await e.mkdir(f.dirname(O),{recursive:!0}),await e.writeFile(O,`${JSON.stringify(a,null,2)}
5
- `,"utf8")}async function S(){let{agents:a}=await Q();return a}async function T(a){return(await S()).find(b=>b.id===a)}async function U(a){var b;let c={...a,instructionFile:f.resolve((b=a.instructionFile).startsWith("~/")||"~"===b?f.join(process.env.HOME??"",b.slice(1)):b),createdAt:new Date().toISOString()},d=M.safeParse(c);if(!d.success)throw Error(`Invalid custom agent: ${d.error.errors.map(a=>a.message).join("; ")}`);if(P.has(d.data.id))throw Error(`Agent id '${d.data.id}' is reserved for a built-in agent.`);let e=await Q();if(e.agents.some(a=>a.id===d.data.id))throw Error(`Custom agent '${d.data.id}' already exists.`);return e.agents.push(d.data),await R(e),d.data}async function V(a){let b=await Q(),c=b.agents.length;return b.agents=b.agents.filter(b=>b.id!==a),b.agents.length!==c&&(await R(b),!0)}var W=c(73024),X=c(48161);function Y(){return d.dT.map(a=>({id:a,displayName:d.kp[a],rootDir:d.Qp[a],installed:aa(a),capabilities:d.R6[a]}))}let Z=X.homedir(),$={"claude-code":[],cursor:"darwin"===process.platform?["/Applications/Cursor.app",f.join(Z,"Applications","Cursor.app")]:[],codex:"darwin"===process.platform?["/Applications/Codex.app",f.join(Z,"Applications","Codex.app")]:[],"gemini-cli":[],"qwen-code":[],"factory-droid":[]},_={"claude-code":["claude"],cursor:["cursor"],codex:["codex"],"gemini-cli":["gemini"],"qwen-code":["qwen"],"factory-droid":["factory-droid","droid"]};function aa(a){if("1"===process.env.PLEXUS_DETECT_CONFIG_ONLY){let b;return(b=d.R6[a],[d.Qp[a],b.mcpPath,b.skillsDir]).some(a=>(0,W.existsSync)(a))}return!!$[a].some(a=>(0,W.existsSync)(a))||_[a].some(a=>(function(a){let b=process.env.PATH;if(!b)return!1;let c="win32"===process.platform?(process.env.PATHEXT??".EXE;.CMD;.BAT;.COM").split(";"):[""];for(let d of b.split(f.delimiter))if(d)for(let b of c){let c=f.join(d,`${a}${b}`);try{if((0,W.statSync)(c).isFile())return"win32"===process.platform||function(a){try{return(0,W.accessSync)(a,W.constants.X_OK),!0}catch{return!1}}(c)}catch{}}return!1})(a))}let ab=X.homedir();function ac(a){return!!a&&W.existsSync(a)}function ad(){return"darwin"===process.platform?f.join(ab,"Library","Application Support","Code","User"):"win32"===process.platform?f.join(process.env.APPDATA??ab,"Code","User"):f.join(ab,".config","Code","User")}function ae(a){return f.join(ad(),"globalStorage",a)}function af(){return"darwin"===process.platform?f.join(ab,"Library","Application Support","Zed"):f.join(ab,".config","zed")}let ag=[{id:"windsurf",displayName:"Windsurf Cascade",support:"manual",managed:!1,rootDir:f.join(ab,".codeium","windsurf"),mcpPath:f.join(ab,".codeium","windsurf","mcp_config.json"),instructionFile:f.join(ab,".codeium","windsurf","AGENTS.md"),note:"Catalog only for now. Windsurf uses its own Rules surface; add as custom if you want Plexus to track one instruction file."},{id:"kiro",displayName:"Kiro",support:"manual",managed:!1,rootDir:f.join(ab,".kiro"),mcpPath:f.join(ab,".kiro","settings","mcp.json"),instructionFile:f.join(ab,".kiro","steering","plexus.md"),note:"Catalog only for now. Kiro has user-level MCP and steering files, but Plexus does not write them yet."},{id:"vscode-copilot",displayName:"VS Code / GitHub Copilot",support:"manual",managed:!1,rootDir:ad(),mcpPath:f.join(ad(),"mcp.json"),instructionFile:f.join(ad(),"AGENTS.md"),note:"VS Code stores user MCP separately from repo instructions. Add as custom if you keep a user instruction file."},{id:"cline",displayName:"Cline",support:"manual",managed:!1,rootDir:ae("saoudrizwan.claude-dev"),instructionFile:f.join(ae("saoudrizwan.claude-dev"),"AGENTS.md"),note:"VS Code extension storage varies by editor profile; use custom paths if yours differs."},{id:"roo-code",displayName:"Roo Code",support:"manual",managed:!1,rootDir:ae("rooveterinaryinc.roo-cline"),instructionFile:f.join(ae("rooveterinaryinc.roo-cline"),"AGENTS.md"),note:"VS Code extension storage varies by editor profile; use custom paths if yours differs."},{id:"kilo-code",displayName:"Kilo Code",support:"manual",managed:!1,rootDir:f.join(ab,".config","kilo"),mcpPath:f.join(ab,".config","kilo","kilo.jsonc"),instructionFile:f.join(ab,".config","kilo","AGENTS.md"),note:"Kilo uses JSONC and extension/project scopes; catalog entry is manual until Plexus can round-trip JSONC."},{id:"continue",displayName:"Continue",support:"manual",managed:!1,rootDir:f.join(ab,".continue"),instructionFile:f.join(ab,".continue","AGENTS.md"),note:"Continue configuration is flexible and often project-specific; add a custom instruction file if you use one."},{id:"aider",displayName:"Aider",support:"instructions-only",managed:!1,instructionFile:f.join(ab,".aider.conf.yml"),note:"Aider is config-file based. Plexus can track a file, but does not translate MCP or skills for Aider."},{id:"amp",displayName:"Amp",support:"manual",managed:!1,rootDir:f.join(ab,".config","amp"),instructionFile:f.join(ab,".config","amp","AGENTS.md"),note:"Amp supports agent instruction files, but local config layout can vary."},{id:"openhands",displayName:"OpenHands",support:"manual",managed:!1,rootDir:f.join(ab,".openhands"),instructionFile:f.join(ab,".openhands","AGENTS.md"),note:"OpenHands is usually project/container configured. Use custom paths for your local setup."},{id:"zed-ai",displayName:"Zed AI",support:"manual",managed:!1,rootDir:af(),instructionFile:f.join(af(),"AGENTS.md"),note:"Catalog only. Zed and extension settings vary across platforms."}];function ah(){return[...d.dT.map(a=>{let b=d.R6[a];return{id:a,displayName:d.kp[a],support:"full",managed:!0,installed:aa(a),rootDir:d.Qp[a],mcpPath:b.mcpPath,skillsDir:b.skillsDir,note:"Built-in adapter. Plexus can sync Rules, MCP servers, and Skills."}}),...ag.map(a=>({...a,installed:ac(a.mcpPath)||ac(a.instructionFile)}))]}var ai=c(69067);async function aj(a){await e.mkdir(a,{recursive:!0})}async function ak(a){try{return await e.access(a),!0}catch{return!1}}async function al(a){try{return(await e.lstat(a)).isSymbolicLink()}catch{return!1}}async function am(a,b,d){let g;if(await aj(f.dirname(b)),await ak(b))if(await al(b))await e.unlink(b);else{let{quarantineCollision:a}=await Promise.resolve().then(c.bind(c,92071)),d=await a({agent:"unknown",sourcePath:b});d&&(g=d)}if("symlink"===d)try{let c=(await e.lstat(a)).isDirectory()?"dir":"file";return await e.symlink(a,b,c),{via:"symlink",backedUp:g}}catch{}return(await e.lstat(a)).isDirectory()?await e.cp(a,b,{recursive:!0}):await e.copyFile(a,b),{via:"copy",backedUp:g}}function an(a){return{agent:a,applied:{mcp:0,skills:0},warnings:[],errors:[]}}async function ao(a,b,c){await aj(f.dirname(b));let d=null;try{d=await e.lstat(b)}catch{}if(d)if(d.isSymbolicLink()){try{let c=await e.readlink(b);if((f.isAbsolute(c)?c:f.resolve(f.dirname(b),c))===f.resolve(a))return"symlink"}catch{}await e.unlink(b)}else await e.unlink(b);if("symlink"===c)try{return await e.symlink(a,b,"file"),"symlink"}catch{}return await e.copyFile(a,b),"copy"}let ap={id:"codex",async apply(a){let b=an("codex"),c=d.R6.codex;try{await aj(f.dirname(c.mcpPath));let d=a.mcp.filter(a=>a.enabledAgents.includes("codex")),h=d.filter(a=>aq(a));for(let a of d)aq(a)||b.warnings.push(`Skipping MCP ${a.id}: missing command or url`);let i=new Set(d.map(a=>a.id)),j=new Set(a.mcp.filter(a=>!a.enabledAgents.includes("codex")).map(a=>a.id)),k={};try{let a=await e.readFile(c.mcpPath,"utf8");k=ai.parse(a)}catch{}let l=k.mcp_servers??{},m={};for(let[a,b]of Object.entries(l))!j.has(a)&&(i.has(a)||(m[a]=b));let n={...m};for(let a of h){var g;n[a.id]={...(g=a).command.trim()?{command:g.command}:{},...g.args?{args:g.args}:{},...ar(g.env)?{env:g.env}:{},...g.url?.trim()||g.httpUrl?.trim()?{url:g.url?.trim()||g.httpUrl?.trim()}:{},...ar(g.headers)?{http_headers:g.headers}:{}}}k.mcp_servers=n,await e.writeFile(c.mcpPath,ai.stringify(k),"utf8"),b.applied.mcp=h.length}catch(a){b.errors.push(`Codex MCP write failed: ${a.message}`)}try{await aj(c.skillsDir);let d=a.skills.filter(a=>a.enabledAgents.includes("codex"));for(let b of new Set(a.skills.filter(a=>!a.enabledAgents.includes("codex")).map(a=>a.id))){let a=f.join(c.skillsDir,b);try{(await e.lstat(a)).isSymbolicLink()?await e.unlink(a):await e.rm(a,{recursive:!0,force:!0})}catch{}}for(let e of d){let d=a.skillSourcePaths.get(e.id);if(!d)continue;let g=f.join(c.skillsDir,e.id);try{await am(d,g,a.syncStrategy),b.applied.skills+=1}catch(a){b.errors.push(`Skill ${e.id} sync failed: ${a.message}`)}}}catch(a){b.errors.push(`Codex skills sync failed: ${a.message}`)}return b}};function aq(a){return!!(a.command.trim()||a.url?.trim()||a.httpUrl?.trim())}function ar(a){return!!(a&&Object.keys(a).length>0)}function as(a){return{id:a,async apply(b){let c=an(a),e=d.R6[a];if(e.mcp){let d=e.mcpFileMode??"shared";try{await aj(f.dirname(e.mcpPath));let g=b.mcp.filter(b=>b.enabledAgents.includes(a)),h=g.filter(a=>ax(a));for(let a of g)ax(a)||c.warnings.push(`Skipping MCP ${a.id}: missing command or url`);"exclusive"===d?await av(a,b.mcp,h,b.syncStrategy):await au(e.mcpPath,b.mcp,h),c.applied.mcp=h.length}catch(a){c.errors.push(`MCP write failed: ${a.message}`)}}if(e.skills)try{await aj(e.skillsDir);let d=b.skills.filter(b=>b.enabledAgents.includes(a));for(let c of new Set(b.skills.filter(b=>!b.enabledAgents.includes(a)).map(a=>a.id))){let a=f.join(e.skillsDir,c);await at(a)}for(let a of d){let d=b.skillSourcePaths.get(a.id);if(!d){c.warnings.push(`No source path for skill: ${a.id}`);continue}let g=f.join(e.skillsDir,a.id);try{await am(d,g,b.syncStrategy),c.applied.skills+=1}catch(b){c.errors.push(`Skill ${a.id} sync failed: ${b.message}`)}}}catch(a){c.errors.push(`Skills sync failed: ${a.message}`)}return c}}}async function at(a){try{(await e.lstat(a)).isSymbolicLink()?await e.unlink(a):await e.rm(a,{recursive:!0,force:!0})}catch{}}async function au(a,b,c){c.map(a=>a.id);let d=new Set(b.map(a=>a.id)),f={};try{let b=await e.readFile(a,"utf8");f=JSON.parse(b)}catch{}let g=f.mcpServers??{},h={};for(let[a,b]of Object.entries(g))d.has(a)||(h[a]=b);let i={...h};for(let a of c)i[a.id]=aw(a);let j={...f,mcpServers:i};await e.writeFile(a,JSON.stringify(j,null,2),"utf8")}async function av(a,b,c,g){let h=d.R6[a];await aj(d.BF.mcpCache);let i=f.join(d.BF.mcpCache,`${a}.json`),j=new Set(b.map(a=>a.id)),k={};try{let a=await e.readFile(h.mcpPath,"utf8");k=JSON.parse(a)}catch{}let l=k.mcpServers??{},m={};for(let[a,b]of Object.entries(l))j.has(a)||(m[a]=b);let n={...m};for(let a of c)n[a.id]=aw(a);await e.writeFile(i,JSON.stringify({mcpServers:n},null,2),"utf8"),await ao(i,h.mcpPath,g)}function aw(a){return{...a.command?{command:a.command}:{},...a.args?{args:a.args}:{},...a.env?{env:a.env}:{},...a.url?{url:a.url}:{},...a.httpUrl?{httpUrl:a.httpUrl}:{},...a.headers?{headers:a.headers}:{}}}function ax(a){return!!(a.command.trim()||a.url?.trim()||a.httpUrl?.trim())}let ay={"claude-code":as("claude-code"),cursor:as("cursor"),codex:ap,"gemini-cli":as("gemini-cli"),"qwen-code":as("qwen-code"),"factory-droid":as("factory-droid")};async function az(a){let b={path:a,exists:!1,isSymlink:!1};try{let c=await e.lstat(a);if(b.exists=!0,b.isSymlink=c.isSymbolicLink(),b.isSymlink)try{let c=await e.readlink(a);b.linkTarget=f.isAbsolute(c)?c:f.resolve(f.dirname(a),c)}catch{}try{let c=await e.stat(a);b.size=c.size,b.mtime=c.mtime.toISOString()}catch{}}catch{}return b}async function aA(a){if(!await (0,h.s0)(a))return[];try{let b=await e.readdir(a,{withFileTypes:!0}),c=[];for(let g of b){let b;if(g.name.startsWith(".")||g.name.includes(".plexus-backup-"))continue;let i=f.join(a,g.name),j=!1;try{if(j=(await e.lstat(i)).isSymbolicLink()){let a=await e.readlink(i);b=f.isAbsolute(a)?a:f.resolve(f.dirname(i),a)}}catch{continue}let k=f.join(i,"SKILL.md"),l=await (0,h.s0)(k);c.push({id:g.name,path:i,isSymlink:j,linkTarget:b,managedByPlexus:!!b&&function(a,b){let c=f.relative(f.resolve(b),f.resolve(a));return""===c||!c.startsWith("..")&&!f.isAbsolute(c)}(b,d.BF.root),hasSkillMd:l})}return c.sort((a,b)=>a.id.localeCompare(b.id))}catch{return[]}}function aB(a){let b=d.Qp[a];switch(a){case"claude-code":return[{label:"CLAUDE.md (user-level memory)",filename:"CLAUDE.md",abs:f.join(b,"CLAUDE.md")}];case"cursor":case"codex":case"factory-droid":return[{label:"AGENTS.md (user-level)",filename:"AGENTS.md",abs:f.join(b,"AGENTS.md")}];case"gemini-cli":return[{label:"GEMINI.md (user-level)",filename:"GEMINI.md",abs:f.join(b,"GEMINI.md")}];case"qwen-code":return[{label:"QWEN.md (user-level)",filename:"QWEN.md",abs:f.join(b,"QWEN.md")}]}}async function aC(a){let b=d.R6[a],c=d.Qp[a],e=aa(a),[f,g]=await Promise.all([az(b.mcpPath),az(b.skillsDir)]),h=b.skills?await aA(b.skillsDir):[],i=[];for(let b of aB(a))i.push({label:b.label,filename:b.filename,status:await az(b.abs)});return{id:a,displayName:d.kp[a],rootDir:c,installed:e,mcpFile:f,mcpFileMode:b.mcpFileMode??"shared",skillsDir:g,skills:h,instructionFiles:i}}async function aD(a){return e.readFile(a,"utf8")}async function aE(a,b){await e.mkdir(f.dirname(a),{recursive:!0}),await e.writeFile(a,b,"utf8")}var aF=c(92071);async function aG(a){let b=d.R6[a];if(!await (0,h.s0)(b.mcpPath))return[];try{let a=await e.readFile(b.mcpPath,"utf8");if("json"===b.mcpFormat){let b=JSON.parse(a).mcpServers??{};return Object.entries(b).map(([a,b])=>{var c,d;return c=a,d=b,{id:c,command:String(d?.command??""),args:Array.isArray(d?.args)?d.args.map(String):void 0,env:aH(d?.env),url:"string"==typeof d?.url?d.url:void 0,httpUrl:"string"==typeof d?.httpUrl?d.httpUrl:void 0,headers:aH(d?.headers)}})}let c=ai.parse(a).mcp_servers??{};return Object.entries(c).map(([a,b])=>({id:a,command:String(b?.command??""),args:Array.isArray(b?.args)?b.args.map(String):void 0,env:b?.env&&"object"==typeof b.env?b.env:void 0,url:"string"==typeof b?.url?b.url:void 0,httpUrl:"string"==typeof b?.httpUrl?b.httpUrl:void 0,headers:aH(b?.http_headers??b?.headers)}))}catch{return[]}}function aH(a){if(!(!a||"object"!=typeof a||Array.isArray(a)))return Object.fromEntries(Object.entries(a).map(([a,b])=>[a,String(b)]))}async function aI(a){let b=d.R6[a];if(!await (0,h.s0)(b.skillsDir))return[];try{let c=await e.readdir(b.skillsDir,{withFileTypes:!0}),d=[];for(let g of c){let c=f.join(b.skillsDir,g.name);if(g.isSymbolicLink())try{if(!(await e.stat(c)).isDirectory())continue}catch{continue}else if(!g.isDirectory())continue;let i=f.join(c,"SKILL.md");if(!await (0,h.s0)(i))continue;let j=await e.readFile(i,"utf8"),{frontmatter:k,body:l}=y(j);d.push({id:g.name,name:k.name??g.name,description:k.description??void 0,body:l,frontmatter:k,layer:"personal",enabledAgents:[a]})}return d}catch{return[]}}async function aJ(a){let b=Object.fromEntries(d.dT.map(a=>[a,{mcp:0,skills:0}])),c=new Map,e=new Map;for(let a of d.dT){let d=await aG(a);for(let e of(b[a].mcp=d.length,d)){let b=c.get(e.id);b?b.sources.includes(a)||b.sources.push(a):c.set(e.id,{first:{command:e.command,args:e.args,env:e.env,url:e.url,httpUrl:e.httpUrl,headers:e.headers},sources:[a]})}let f=await aI(a);for(let c of(b[a].skills=f.length,f)){let b=e.get(c.id);b?b.sources.includes(a)||b.sources.push(a):e.set(c.id,{first:c,sources:[a]})}}let f=new Map(a.storeMcp.map(a=>[a.id,a])),g=new Map(a.storeSkills.map(a=>[a.id,a])),h=[];for(let[a,b]of c){let c=f.get(a);if(c){let d=b.sources.filter(a=>!c.enabledAgents.includes(a));if(0===d.length)continue;h.push({kind:"extend",id:a,displayName:a,agentsToAdd:d,currentAgents:c.enabledAgents})}else h.push({kind:"new",item:{id:a,command:b.first.command,args:b.first.args,env:b.first.env,url:b.first.url,httpUrl:b.first.httpUrl,headers:b.first.headers,layer:"personal",enabledAgents:[...b.sources]},sourceAgents:b.sources})}let i=[];for(let[a,b]of e){let c=g.get(a);if(c){let d=b.sources.filter(a=>!c.enabledAgents.includes(a));if(0===d.length)continue;i.push({kind:"extend",id:a,displayName:b.first.name,agentsToAdd:d,currentAgents:c.enabledAgents})}else i.push({kind:"new",item:{...b.first,enabledAgents:[...b.sources]},sourceAgents:b.sources})}return{mcp:h,skills:i,perAgent:b}}function aK(a){let[b]=aB(a);if(!b)throw Error(`No instruction file target is configured for agent ${a}`);return b.abs}async function aL(a){try{let b=await e.readlink(a);return f.isAbsolute(b)?b:f.resolve(f.dirname(a),b)}catch{return}}async function aM(a,b,c,g,h){let i=aK(a),j={agent:a,displayName:d.kp[a],targetPath:i,installed:g,enabled:h,exists:!1,isSymlink:!1,inSync:!1};try{let a=await e.lstat(i);j.exists=!0,j.isSymlink=a.isSymbolicLink(),j.isSymlink&&(j.linkTarget=await aL(i))}catch{return j}if(!b||null===c)return j;if(j.isSymlink)return j.inSync=!!(j.linkTarget&&f.resolve(j.linkTarget)===f.resolve(b)),j;try{j.inSync=await e.readFile(i,"utf8")===c}catch{j.inSync=!1}return j}async function aN(a){let b;await (0,h.A0)(f.dirname(a.targetPath));try{if((await e.lstat(a.targetPath)).isSymbolicLink())await e.unlink(a.targetPath);else{let c=await (0,aF.quarantineCollision)({agent:a.agent,sourcePath:a.targetPath});c&&(b=c)}}catch{}if("symlink"===a.strategy)try{return await e.symlink(a.sourcePath,a.targetPath,"file"),{via:"symlink",backedUp:b}}catch{}return await e.copyFile(a.sourcePath,a.targetPath),{via:"copy",backedUp:b}}async function aO(){let a=await H(),b=await n(),c=new Map(Y().map(a=>[a.id,a.installed])),e=a?{exists:!0,layer:a.layer,path:a.path,content:a.content,updatedAt:a.updatedAt}:{exists:!1,layer:null,path:null,content:null};return{canonical:e,agents:await Promise.all(d.dT.map(a=>aM(a,e.path,e.content,c.get(a)??!1,!1!==b.agents[a])))}}async function aP(a=d.dT){let b=await G("personal");if(!b){let a=await H();a&&(await I(a.content),b=await G("personal"))}if(!b)throw Error(`Cannot apply rules: personal canonical rules file does not exist at ${F("personal")}`);let c=await n(),f=new Map(Y().map(a=>[a.id,a.installed])),g=[];for(let h of a){let a=aK(h);if(!f.get(h)){g.push({agent:h,targetPath:a,applied:!1,skipped:!0,reason:`${d.kp[h]} is not installed.`});continue}if(!1===c.agents[h]){g.push({agent:h,targetPath:a,applied:!1,skipped:!0,reason:`${d.kp[h]} is disabled in Plexus settings.`});continue}try{let d=null;try{await e.lstat(a),d=await (0,aF.RV)(a,`Apply Plexus rules to ${h}`)}catch{}let f=await aN({agent:h,sourcePath:b.path,targetPath:a,strategy:c.syncStrategy});g.push({agent:h,targetPath:a,applied:!0,via:f.via,backedUp:f.backedUp,snapshotDir:d})}catch(b){g.push({agent:h,targetPath:a,applied:!1,error:b.message})}}return g}async function aQ(a){let b,c=aK(a);try{b=await e.readFile(c,"utf8")}catch(b){throw Error(`Cannot import rules from ${a}: failed to read ${c}: ${b.message}`)}await I(b)}async function aR(a){let b=aK(a),c=await n(),g=Y();if(!g.find(b=>b.id===a)?.installed)return{agent:a,targetPath:b,detached:!1,skipped:!0,reason:`${d.kp[a]} is not installed.`};if(!1===c.agents[a])return{agent:a,targetPath:b,detached:!1,skipped:!0,reason:`${d.kp[a]} is disabled in Plexus settings.`};try{let c;if(!(await e.lstat(b)).isSymbolicLink())return{agent:a,targetPath:b,detached:!1,skipped:!0,reason:`${d.kp[a]} already has a local instruction file.`};let g=await G("personal");if(!g)return{agent:a,targetPath:b,detached:!1,skipped:!0,reason:"No personal rules baseline exists for Plexus to detach from."};let h=await aL(b);if(!h||f.resolve(h)!==f.resolve(g.path))return{agent:a,targetPath:b,detached:!1,skipped:!0,reason:`${d.kp[a]}'s instruction file is a symlink, but Plexus does not own that link.`};try{c=await e.readFile(b,"utf8")}catch{c=g.content}let i=await (0,aF.RV)(b,`Detach Plexus rules from ${a}`);return await e.unlink(b),await e.writeFile(b,c,"utf8"),{agent:a,targetPath:b,detached:!0,snapshotDir:i}}catch(c){if("ENOENT"===c.code)return{agent:a,targetPath:b,detached:!1,skipped:!0,reason:`${d.kp[a]} has no instruction file to detach.`};return{agent:a,targetPath:b,detached:!1,error:c.message}}}async function aS(a){let b=new Date().toISOString(),c=await n(),e=Y(),f=await (0,aF.RC)({reason:a?`partial sync: ${a.join(",")}`:"full sync"}).catch(()=>void 0);await (0,aF.P3)().catch(()=>void 0);let[g,h,i,j]=await Promise.all([q("team"),q("personal"),A("team"),A("personal")]),k=J(g,h),l=K(i,j),m=new Map;for(let a of l)m.set(a.id,E(a.layer,a.id));let o=(a&&a.length>0?a:d.dT).filter(a=>{let b=e.find(b=>b.id===a);return b?.installed&&!1!==c.agents[a]});return{results:await Promise.all(o.map(a=>ay[a].apply({agentId:a,mcp:k,skills:l,skillSourcePaths:m,syncStrategy:c.syncStrategy??"symlink"}))),startedAt:b,finishedAt:new Date().toISOString(),backup:f?.dir}}async function aT(){let[a,b]=await Promise.all([s(),D()]);return{mcp:J(a.filter(a=>"team"===a.layer),a.filter(a=>"personal"===a.layer)),skills:K(b.filter(a=>"team"===a.layer),b.filter(a=>"personal"===a.layer))}}let aU=["codex","claude-code","cursor","gemini-cli","qwen-code","factory-droid"];async function aV(a){let b=await n(),c=Y();return(a&&a.length>0?a:d.dT).filter(a=>{let d=c.find(b=>b.id===a);return d?.installed&&!1!==b.agents[a]})}function aW(a,b){return{...a,enabledAgents:[...b]}}function aX(a){return[...new Set(a)].sort((a,b)=>aU.indexOf(a)-aU.indexOf(b)||a.localeCompare(b))}function aY(a){return JSON.stringify(function a(b){if(Array.isArray(b))return b.map(a);if(b&&"object"==typeof b){let c={};for(let d of Object.keys(b).sort()){let e=b[d];void 0!==e&&(c[d]=a(e))}return c}return b}(a))}function aZ(a,b,c,d){let e=a.get(b.id)??{id:b.id,variants:[]},f=e.variants.find(a=>a.fingerprint===d);f?f.sources.includes(c)||f.sources.push(c):e.variants.push({item:b,sources:[c],fingerprint:d}),a.set(b.id,e)}function a$(a){return Math.min(...a.sources.map(a=>aU.indexOf(a)))}function a_(a,b){if(b){let c=a.find(a=>a.sources.includes(b));if(c)return c}let c=[...a].sort((a,b)=>b.sources.length-a.sources.length||a$(a)-a$(b)||a.fingerprint.localeCompare(b.fingerprint))[0];if(!c)throw Error("Cannot choose from an empty native config group");return c}async function a0(a){let b=[];for(let c of a){let[a]=aB(c);if(a)try{let d=await e.readFile(a.abs,"utf8");if(0===d.trim().length)continue;b.push({agent:c,content:d,fingerprint:aY(d)})}catch{}}return b}function a1(a,b){if(b){let c=a.find(a=>a.agent===b);if(c)return c}return[...a].sort((a,b)=>aU.indexOf(a.agent)-aU.indexOf(b.agent)||a.agent.localeCompare(b.agent))[0]}async function a2(a){let b=new Map,c=new Map,d=await a0(a),e=[];for(let f of a){let[a,g]=await Promise.all([aG(f),aI(f)]);for(let c of a){let a={id:c.id,command:c.command,args:c.args,env:c.env,url:c.url,httpUrl:c.httpUrl,headers:c.headers,layer:"personal",enabledAgents:[f]};aZ(b,a,f,aY({command:a.command,args:a.args??[],env:a.env??{},url:a.url??"",httpUrl:a.httpUrl??"",headers:a.headers??{}}))}for(let a of g){let b={...a,layer:"personal",enabledAgents:[f]};aZ(c,b,f,function(a){let b=Object.fromEntries(Object.entries(a.frontmatter??{}).filter(([a])=>"plexus_enabled_agents"!==a&&"plexus_id"!==a));return aY({name:a.name,description:a.description??"",body:a.body,frontmatter:b})}(b))}let h=d.some(a=>a.agent===f);e.push({agent:f,mcp:a.length,skills:g.length,rules:h,total:a.length+g.length+ +!!h})}return{sourceSummaries:e,mcpGroups:b,skillGroups:c,rulesSources:d}}function a3(a,b){let c=[];for(let d of a.values()){if(d.variants.length<=1)continue;let a=a_(d.variants,b);c.push({id:d.id,sources:aX(d.variants.flatMap(a=>a.sources)),preferredAgent:function(a,b){if(b&&a.sources.includes(b))return b;let[c]=aX(a.sources);if(!c)throw Error("Cannot summarize a native config variant with no sources");return c}(a,b)})}return c.sort((a,b)=>a.id.localeCompare(b.id))}function a4(a){return[...a.values()].filter(a=>1===a.variants.length).length}function a5(a,b,c){var d;let e=(d=b.sourceSummaries,[...d].filter(a=>a.total>0).sort((a,b)=>b.total-a.total||aU.indexOf(a.agent)-aU.indexOf(b.agent)||a.agent.localeCompare(b.agent))[0]?.agent),f=new Set(b.rulesSources.map(a=>a.fingerprint)),g=a1(b.rulesSources,c),h=a3(b.mcpGroups,c),i=a3(b.skillGroups,c),j=f.size>1;return{targetAgents:a,sources:b.sourceSummaries,recommendedPrimaryAgent:e,selectedPrimaryAgent:c,conflictCount:h.length+i.length+ +!!j,mcp:{safe:a4(b.mcpGroups),conflicts:h},skills:{safe:a4(b.skillGroups),conflicts:i},rules:{sources:aX(b.rulesSources.map(a=>a.agent)),conflict:j,preferredAgent:g?.agent}}}async function a6(a){let b=await aV(a?.only),c=await a2(b),d=a5(b,c,a?.preferredAgent),e=a?.preferredAgent??d.recommendedPrimaryAgent,f=a5(b,c,e);return{targetAgents:b,state:c,plan:f,primaryAgent:e}}async function a7(a){return(await a6(a)).plan}async function a8(a,b,c){if(0===a.length)return{imported:{mcpWritten:0,mcpExtended:0,skillsWritten:0,skillsExtended:0},mcpShared:0,skillsShared:0};let[d,e,f,g]=await Promise.all([q("team"),q("personal"),A("team"),A("personal")]),h=J(d,e),i=K(f,g),j=function(a,b,c){let d={mcpWritten:0,mcpExtended:0,skillsWritten:0,skillsExtended:0};for(let c of a.mcpGroups.keys())b.has(c)?d.mcpExtended+=1:d.mcpWritten+=1;for(let b of a.skillGroups.keys())c.has(b)?d.skillsExtended+=1:d.skillsWritten+=1;return d}(b,new Set(h.map(a=>a.id)),new Set(i.map(a=>a.id))),k=new Map;for(let b of h)k.set(b.id,aW({...b,layer:"personal"},a));for(let d of b.mcpGroups.values()){if(k.has(d.id))continue;let b=a_(d.variants,c);k.set(d.id,aW({...b.item,layer:"personal"},a))}let l=new Map;for(let b of i)l.set(b.id,aW({...b,layer:"personal"},a));for(let d of b.skillGroups.values()){if(l.has(d.id))continue;let b=a_(d.variants,c);l.set(d.id,aW({...b.item,layer:"personal"},a))}let m=[...k.values()].sort((a,b)=>a.id.localeCompare(b.id)),n=[...l.values()].sort((a,b)=>a.id.localeCompare(b.id));for(let a of(await r("personal",m),n))await B(a);return{imported:j,mcpShared:m.length,skillsShared:n.length}}async function a9(a,b){if(await G("personal"))return;let c=await H();if(c)return void await I(c.content);let d=a1(a.rulesSources,b);if(d)return await I(d.content),d.agent}async function ba(a){let b=Array.isArray(a)?{only:a}:a??{},c=new Date().toISOString(),{targetAgents:d,state:e,plan:f,primaryAgent:g}=await a6(b),[{imported:h,mcpShared:i,skillsShared:j},k]=await Promise.all([a8(d,e,g),a9(e,g)]),[l,m]=await Promise.all([aS(d),G("personal").then(a=>a?aP(d):void 0)]);return{mode:"share-all",targetAgents:d,imported:h,shared:{mcp:i,skills:j},plan:f,preferredAgent:g,conflictsResolved:f.conflictCount,rules:m?{applied:m,importedFrom:k}:{applied:[],skipped:"No rules baseline exists yet. Add rules in the Rules page or keep an instruction file in one installed agent, then sync again."},results:l.results,startedAt:c,finishedAt:new Date().toISOString(),backup:l.backup}}var bb=c(31421);let bc=(0,c(57975).promisify)(bb.execFile);async function bd(a){return(0,h.s0)(`${a}/.git`)}async function be(){let[a,b,c]=await Promise.all([q("team"),A("team"),G("team")]);return{mcp:a.length,skills:b.length,rules:null!==c}}async function bf(a){let b=d.BF.team;if(await (0,h.s0)(b)){if(await bd(b))try{let{stdout:c}=await bc("git",["-C",b,"remote","get-url","origin"]),d=c.trim();if(d!==a)return{ok:!1,message:`Team layer already subscribed to ${d}. Run 'plexus leave' first.`};await bc("git",["-C",b,"pull","--ff-only"]);let e=await n();return e.teamRepo=a,await o(e),{ok:!0,message:"Team layer refreshed."}}catch(a){return{ok:!1,message:`Git pull failed: ${a.message}`}}let c=`${b}.plexus-backup-${Date.now()}`;await e.rename(b,c)}try{await bc("git",["clone",a,b]);let c=await n();return c.teamRepo=a,await o(c),{ok:!0,message:`Cloned team repo to ${b}.`}}catch(a){return{ok:!1,message:`Git clone failed: ${a.message}`}}}async function bg(){let a=d.BF.team;if(!await bd(a))return{ok:!1,message:"Team layer is not a git repo. Run 'plexus join <url>' first."};try{return await bc("git",["-C",a,"pull","--ff-only"]),{ok:!0,message:"Team layer up-to-date."}}catch(a){return{ok:!1,message:`Git pull failed: ${a.message}`}}}async function bh(){let a=d.BF.team;if(!await bd(a))return{subscribed:!1};try{let b=(await bc("git",["-C",a,"remote","get-url","origin"])).stdout.trim(),c=0,d=0;try{await bc("git",["-C",a,"fetch","--quiet"]);let{stdout:b}=await bc("git",["-C",a,"rev-list","--left-right","--count","HEAD...@{upstream}"]),[e,f]=b.trim().split(/\s+/).map(a=>Number.parseInt(a,10));c=e||0,d=f||0}catch{}let e=await be().catch(()=>void 0);return{subscribed:!0,repoUrl:b,hasUpstreamUpdate:d>0,ahead:c,behind:d,summary:e}}catch{return{subscribed:!1}}}async function bi(){let[a,b]=await Promise.all([s(),D()]);return aJ({storeMcp:a,storeSkills:b})}async function bj(a){let b=a??await bi(),c=0,d=0,e=0,f=0;if(b.mcp.length>0){let a=await q("personal"),e=await q("team"),f=new Map(a.map(a=>[a.id,a])),g=new Map(e.map(a=>[a.id,a])),h=[...a],i=new Set;for(let a of b.mcp)if("new"===a.kind)h.push(a.item),i.add(a.item.id),c+=1;else{let b=f.get(a.id);if(b)b.enabledAgents=Array.from(new Set([...b.enabledAgents,...a.agentsToAdd]));else{let b=g.get(a.id);b&&h.push({...b,layer:"personal",enabledAgents:Array.from(new Set([...b.enabledAgents,...a.agentsToAdd]))})}d+=1}await r("personal",h)}if(b.skills.length>0){let a=await A("personal"),c=await A("team"),d=new Map(a.map(a=>[a.id,a])),g=new Map(c.map(a=>[a.id,a]));for(let a of b.skills)if("new"===a.kind)await B(a.item),e+=1;else{let b=d.get(a.id);if(b)await B({...b,enabledAgents:Array.from(new Set([...b.enabledAgents,...a.agentsToAdd]))});else{let b=g.get(a.id);b&&await B({...b,layer:"personal",enabledAgents:Array.from(new Set([...b.enabledAgents,...a.agentsToAdd]))})}f+=1}}return{mcpWritten:c,skillsWritten:e,mcpExtended:d,skillsExtended:f}}async function bk(a){let b=new Map,c=J(await q("team"),await q("personal"));for(let d of c)d.enabledAgents.includes(a)&&b.set(d.id,d);for(let d of(await aJ({storeMcp:c,storeSkills:[]})).mcp)"new"===d.kind&&d.sourceAgents.includes(a)&&(b.has(d.item.id)||b.set(d.item.id,{...d.item,enabledAgents:[a]}));return b}async function bl(a){let b=new Map,c=K(await A("team"),await A("personal"));for(let d of c)d.enabledAgents.includes(a)&&b.set(d.id,d);for(let d of(await aJ({storeMcp:[],storeSkills:c})).skills)"new"===d.kind&&d.sourceAgents.includes(a)&&(b.has(d.item.id)||b.set(d.item.id,{...d.item,enabledAgents:[a]}));return b}async function bm(a,b){if(a===b)return{from:a,to:b,mcp:[],skills:[]};let[c,d,e,f,g,h]=await Promise.all([bk(a),bk(b),bl(a),bl(b),s(),D()]),i=new Set(g.map(a=>a.id)),j=new Set(h.map(a=>a.id)),k=[];for(let[a,b]of c)d.has(a)||k.push({item:b,inStore:i.has(a)});let l=[];for(let[a,b]of e)f.has(a)||l.push({item:b,inStore:j.has(a)});return{from:a,to:b,mcp:k,skills:l}}async function bn(a){let{from:b,to:c}=a;if(b===c)return{mcpAdded:0,skillsAdded:0};let d=await bm(b,c),e=new Set(a.mcpIds??d.mcp.map(a=>a.item.id)),f=new Set(a.skillIds??d.skills.map(a=>a.item.id)),g=0;if(e.size>0){let a=await q("personal"),b=await q("team"),f=new Map(a.map(a=>[a.id,a])),h=new Map(b.map(a=>[a.id,a])),i=[...a];for(let a of d.mcp){if(!e.has(a.item.id))continue;let b=f.get(a.item.id),d=h.get(a.item.id);b?b.enabledAgents.includes(c)||(b.enabledAgents=[...b.enabledAgents,c]):d?i.push({...d,layer:"personal",enabledAgents:Array.from(new Set([...d.enabledAgents,c]))}):i.push({...a.item,layer:"personal",enabledAgents:Array.from(new Set([...a.item.enabledAgents,c]))}),g+=1}await r("personal",i)}let h=0;if(f.size>0){let a=await A("personal"),b=await A("team"),e=new Map(a.map(a=>[a.id,a])),g=new Map(b.map(a=>[a.id,a]));for(let a of d.skills){if(!f.has(a.item.id))continue;let b=e.get(a.item.id),d=g.get(a.item.id);b?b.enabledAgents.includes(c)||await B({...b,enabledAgents:[...b.enabledAgents,c]}):d?await B({...d,layer:"personal",enabledAgents:Array.from(new Set([...d.enabledAgents,c]))}):await B({...a.item,layer:"personal",enabledAgents:Array.from(new Set([...a.item.enabledAgents,c]))}),h+=1}}let i=await n(),j=Y().find(a=>a.id===c);if(!j?.installed||!1===i.agents[c])return{mcpAdded:g,skillsAdded:h};let k=J(await q("team"),await q("personal")),l=K(await A("team"),await A("personal")),m=new Map;for(let a of l)m.set(a.id,E(a.layer,a.id));let o=await (0,aF.RC)({reason:`mirror ${b} to ${c}`});return{mcpAdded:g,skillsAdded:h,syncResult:await ay[c].apply({agentId:c,mcp:k,skills:l,skillSourcePaths:m,syncStrategy:i.syncStrategy??"symlink"}),backup:o.dir}}let bo=d.dT;async function bp(){let[a,b]=await Promise.all([q("team"),q("personal")]),c=J(a,b),d=new Set(a.map(a=>a.id)),e=new Set(b.map(a=>a.id)),f=await aJ({storeMcp:[],storeSkills:[]}),g=new Map;for(let a of f.mcp)"new"===a.kind&&g.set(a.item.id,{sources:a.sourceAgents,first:a.item});let h=new Set([...c.map(a=>a.id),...g.keys()]),i=[];for(let a of h){let b,f=c.find(b=>b.id===a),h=g.get(a),j=h?.sources??[],k=f?.enabledAgents??[],l=Array.from(new Set([...j,...k]));b=e.has(a)?"personal":d.has(a)?"team":"native";let m=f??h.first;i.push({id:a,command:m.command,args:m.args,env:m.env,authority:b,effectiveAgents:l,nativeAgents:j,enabledAgents:f?k:void 0})}return i.sort((a,b)=>a.id.localeCompare(b.id)),i}async function bq(){let[a,b]=await Promise.all([A("team"),A("personal")]),c=K(a,b),d=new Set(a.map(a=>a.id)),e=new Set(b.map(a=>a.id)),f=await aJ({storeMcp:[],storeSkills:[]}),g=new Map;for(let a of f.skills)"new"===a.kind&&g.set(a.item.id,{sources:a.sourceAgents,first:a.item});let h=new Set([...c.map(a=>a.id),...g.keys()]),i=[];for(let a of h){let b,f=c.find(b=>b.id===a),h=g.get(a),j=h?.sources??[],k=f?.enabledAgents??[],l=Array.from(new Set([...j,...k]));b=e.has(a)?"personal":d.has(a)?"team":"native";let m=f??h.first;i.push({id:a,name:m.name,description:m.description,authority:b,effectiveAgents:l,nativeAgents:j,enabledAgents:f?k:void 0})}return i.sort((a,b)=>a.id.localeCompare(b.id)),i}async function br(a){let b=await q("personal"),c=await q("team"),d=b.findIndex(b=>b.id===a.id),e=c.find(b=>b.id===a.id),f=[...b],g=[a.agent];if(d>=0){let b={...f[d]};a.enabled?b.enabledAgents.includes(a.agent)||(b.enabledAgents=[...b.enabledAgents,a.agent]):b.enabledAgents=b.enabledAgents.filter(b=>b!==a.agent),f[d]=b}else if(e){let b=a.enabled?Array.from(new Set([...e.enabledAgents,a.agent])):e.enabledAgents.filter(b=>b!==a.agent);f.push({...e,layer:"personal",enabledAgents:b})}else{let b=(await aJ({storeMcp:[],storeSkills:[]})).mcp.find(b=>"new"===b.kind&&b.item.id===a.id);if(!b||"new"!==b.kind)return{ok:!1,message:`Item ${a.id} not found in any agent's native config`};let c=a.enabled?Array.from(new Set([...b.sourceAgents,a.agent])):b.sourceAgents.filter(b=>b!==a.agent);f.push({...b.item,layer:"personal",enabledAgents:c}),g=Array.from(new Set([...b.sourceAgents,a.agent]))}await r("personal",f);let h=await (0,aF.RC)({reason:`toggleMcpAgent ${a.id} ${a.agent} ${a.enabled}`}).catch(()=>void 0),i=[];for(let a of g){let b=await bt(a);b&&i.push(b)}return{ok:!0,syncResult:i[0],message:h?.dir}}async function bs(a){let b=await A("personal"),c=await A("team"),d=b.find(b=>b.id===a.id),e=c.find(b=>b.id===a.id),f=[a.agent];if(d){let b=a.enabled?Array.from(new Set([...d.enabledAgents,a.agent])):d.enabledAgents.filter(b=>b!==a.agent);await B({...d,enabledAgents:b})}else if(e){let b=a.enabled?Array.from(new Set([...e.enabledAgents,a.agent])):e.enabledAgents.filter(b=>b!==a.agent);await B({...e,layer:"personal",enabledAgents:b})}else{let b=(await aJ({storeMcp:[],storeSkills:[]})).skills.find(b=>"new"===b.kind&&b.item.id===a.id);if(!b||"new"!==b.kind)return{ok:!1,message:`Skill ${a.id} not found in any agent's native config`};let c=a.enabled?Array.from(new Set([...b.sourceAgents,a.agent])):b.sourceAgents.filter(b=>b!==a.agent);await B({...b.item,layer:"personal",enabledAgents:c}),f=Array.from(new Set([...b.sourceAgents,a.agent]))}let g=await (0,aF.RC)({reason:`toggleSkillAgent ${a.id} ${a.agent} ${a.enabled}`}).catch(()=>void 0),h=[];for(let a of f){let b=await bt(a);b&&h.push(b)}return{ok:!0,syncResult:h[0],message:g?.dir}}async function bt(a){let b=await n(),c=Y().find(b=>b.id===a);if(!c?.installed||!1===b.agents[a])return;let[d,e]=await Promise.all([q("team"),q("personal")]),[f,g]=await Promise.all([A("team"),A("personal")]),h=J(d,e),i=K(f,g),j=new Map;for(let a of i)j.set(a.id,E(a.layer,a.id));return ay[a].apply({agentId:a,mcp:h,skills:i,skillSourcePaths:j,syncStrategy:b.syncStrategy??"symlink"})}let bu=d.dT,bv=X.homedir();function bw(a){return a===bv?"~":a.startsWith(`${bv}/`)?`~/${a.slice(bv.length+1)}`:a}async function bx(a){let b,c={path:a,display:bw(a),exists:!1,kind:"missing"};try{b=await e.lstat(a)}catch{return c}if(c.exists=!0,b.isSymbolicLink()){c.kind="symlink";try{let b=await e.readlink(a);c.linkTarget=f.isAbsolute(b)?b:f.resolve(f.dirname(a),b),c.linkTargetExists=await (0,h.s0)(c.linkTarget)}catch{}try{let b=await e.stat(a);c.size=b.size,c.mtime=b.mtime.toISOString()}catch{}}else if(b.isDirectory()){c.kind="dir",c.mtime=b.mtime.toISOString();try{c.entryCount=(await e.readdir(a)).filter(a=>!a.startsWith(".")&&!a.includes(".plexus-backup-")).length}catch{}}else c.kind="file",c.size=b.size,c.mtime=b.mtime.toISOString();return c}async function by(a){let b;if(!await (0,h.s0)(a))return[];try{b=await e.readdir(a)}catch{return[]}let c=b.filter(a=>!a.startsWith(".")&&!a.includes(".plexus-backup-")).sort(),d=[];for(let b of c)d.push(await bx(f.join(a,b)));return d}async function bz(a){let b=d.R6[a],c=await bx(d.Qp[a]),e=aB(a)[0]?.abs??null,[f,g,h]=await Promise.all([bx(b.mcpPath),e?bx(e):Promise.resolve(null),bx(b.skillsDir)]),i=b.skills?await by(b.skillsDir):[];return{id:a,displayName:d.kp[a],installed:aa(a),mcpFileMode:b.mcpFileMode??"shared",root:c,mcpFile:f,instructionFile:g,skillsDir:h,skillEntries:i}}async function bA(){let a=f.join(d.BF.team,d.BF.mcpDirRel,"servers.yaml"),b=f.join(d.BF.personal,d.BF.mcpDirRel,"servers.yaml"),c=f.join(d.BF.team,d.BF.skillsDirRel),e=f.join(d.BF.personal,d.BF.skillsDirRel),[g,h,i,j,k,l,m,n,o,p,q]=await Promise.all([bx(d.BF.root),bx(d.BF.config),bx(d.BF.team),bx(d.BF.personal),bx(d.BF.mcpCache),bx(d.BF.backups),bx(a),bx(b),by(c),by(e),by(d.BF.mcpCache)]),r=0;try{r=(await (0,aF.Cw)()).length}catch{}return{root:g,config:h,team:i,personal:j,cacheMcp:k,backups:l,teamMcpServers:m,personalMcpServers:n,teamSkillEntries:o,personalSkillEntries:p,cacheMcpEntries:q,backupCount:r}}async function bB(){let a=await bA(),b=await Promise.all(d.dT.map(bz));return{generatedAt:new Date().toISOString(),host:{platform:process.platform,release:X.release(),node:process.version,home:bv},plexus:a,agents:b}}function bC(a){return null==a?"":a<1024?`${a} B`:a<1048576?`${(a/1024).toFixed(1)} KB`:`${(a/1024/1024).toFixed(2)} MB`}function bD(a,b){return a.length>=b?a:a+" ".repeat(b-a.length)}function bE(a,b=0){let c=" ".repeat(b),d=bD(`${c}${a.display}`,56);if(!a.exists)return`${d} MISSING`;switch(a.kind){case"symlink":{let b=a.linkTarget?bw(a.linkTarget):"?",c=!1===a.linkTargetExists?" [DANGLING]":"",e=null!=a.size?` ${bC(a.size)} ${a.mtime??""}`:"";return`${d} LINK -> ${b}${c}${e}`.trimEnd()}case"dir":{let b=null!=a.entryCount?` (${a.entryCount} entries)`:"";return`${d} DIR${b}`}case"file":{let b=bC(a.size),c=a.mtime??"";return`${d} FILE ${bD(b,9)} ${c}`.trimEnd()}default:return`${d} MISSING`}}function bF(a,b){let c=[];for(let d of(c.push(`=== Plexus${b?` v${b}`:""} — Debug Snapshot ===`),c.push(`generated: ${a.generatedAt}`),c.push(`host: ${a.host.platform} ${a.host.release} node: ${a.host.node} home: ${a.host.home}`),c.push(""),c.push(function(a){let b=[];for(let c of(b.push("[Plexus Store]"),b.push(bE(a.root)),b.push(bE(a.config)),b.push(bE(a.team)),b.push(bE(a.teamMcpServers)),b.push(" team skills:"),0===a.teamSkillEntries.length&&b.push(" (empty)"),a.teamSkillEntries))b.push(bE(c,4));for(let c of(b.push(bE(a.personal)),b.push(bE(a.personalMcpServers)),b.push(" personal skills:"),0===a.personalSkillEntries.length&&b.push(" (empty)"),a.personalSkillEntries))b.push(bE(c,4));for(let c of(b.push(bE(a.cacheMcp)),a.cacheMcpEntries))b.push(bE(c,2));return b.push(bE(a.backups)),b.push(` snapshots: ${a.backupCount} (ring buffer keeps 20)`),b.join("\n")}(a.plexus)),a.agents))c.push(""),c.push(function(a){let b=[`[Agent: ${a.displayName} (${a.id}) | mode=${a.mcpFileMode} | installed=${a.installed}]`];if(b.push(bE(a.root)),b.push(bE(a.mcpFile)),a.instructionFile&&b.push(bE(a.instructionFile)),b.push(bE(a.skillsDir)),0===a.skillEntries.length)b.push(" (no skill entries)");else for(let c of a.skillEntries)b.push(bE(c,2));return b.join("\n")}(d));return c.push(""),c.join("\n")}},66882:(a,b,c)=>{"use strict";c.d(b,{BF:()=>h,Qp:()=>k,R6:()=>i,dT:()=>l,kp:()=>j,nV:()=>g});var d=c(48161),e=c(76760);let f=d.homedir();process.platform;let g=e.join(f,".config","plexus"),h={root:g,team:e.join(g,"team"),personal:e.join(g,"personal"),config:e.join(g,"config.yaml"),mcpDirRel:"mcp",skillsDirRel:"skills",mcpCache:e.join(g,".cache","mcp"),backups:e.join(g,"backups")},i={"claude-code":{mcp:!0,skills:!0,mcpFormat:"json",mcpPath:e.join(f,".claude.json"),skillsDir:e.join(f,".claude","skills"),mcpFileMode:"shared"},cursor:{mcp:!0,skills:!0,mcpFormat:"json",mcpPath:e.join(f,".cursor","mcp.json"),skillsDir:e.join(f,".cursor","skills"),mcpFileMode:"exclusive"},codex:{mcp:!0,skills:!0,mcpFormat:"toml",mcpPath:e.join(f,".codex","config.toml"),skillsDir:e.join(f,".codex","skills"),mcpFileMode:"shared"},"gemini-cli":{mcp:!0,skills:!0,mcpFormat:"json",mcpPath:e.join(f,".gemini","settings.json"),skillsDir:e.join(f,".gemini","skills"),mcpFileMode:"shared"},"qwen-code":{mcp:!0,skills:!0,mcpFormat:"json",mcpPath:e.join(f,".qwen","settings.json"),skillsDir:e.join(f,".qwen","skills"),mcpFileMode:"shared"},"factory-droid":{mcp:!0,skills:!0,mcpFormat:"json",mcpPath:e.join(f,".factory","mcp.json"),skillsDir:e.join(f,".factory","skills"),mcpFileMode:"exclusive"}},j={"claude-code":"Claude Code",cursor:"Cursor",codex:"Codex","gemini-cli":"Gemini CLI","qwen-code":"Qwen Code","factory-droid":"Factory Droid"},k={"claude-code":e.join(f,".claude"),cursor:e.join(f,".cursor"),codex:e.join(f,".codex"),"gemini-cli":e.join(f,".gemini"),"qwen-code":e.join(f,".qwen"),"factory-droid":e.join(f,".factory")},l=["claude-code","cursor","codex","gemini-cli","qwen-code","factory-droid"]},80408:()=>{},87032:()=>{},92071:(a,b,c)=>{"use strict";c.d(b,{Cw:()=>o,P3:()=>r,RC:()=>m,RV:()=>p,Rd:()=>i,Tz:()=>j,n5:()=>s,quarantineCollision:()=>q});var d=c(77598),e=c(51455),f=c(76760),g=c(1871),h=c(66882);let i=f.join(h.BF.backups,"_collisions"),j=f.join(h.BF.backups,"_legacy-residue"),k=/^\d{4}-\d{2}-\d{2}T/;async function l(){await (0,g.A0)(h.BF.backups);let a=new Date().toISOString().replace(/[:.]/g,"-");for(let b=0;b<1e3;b+=1){let c=0===b?a:`${a}-${String(b).padStart(3,"0")}`,d=f.join(h.BF.backups,c);try{return await e.mkdir(d,{recursive:!1}),{id:c,dir:d}}catch(a){if("EEXIST"!==a.code)throw a}}throw Error(`Could not allocate a unique backup directory for ${a}`)}async function m(a){let{id:b,dir:c}=await l();a?.reason&&await e.writeFile(f.join(c,"_reason.txt"),a.reason,"utf8").catch(()=>{});let d=[];for(let a of h.dT){let b,i=h.R6[a];if(!i.mcp||!await (0,g.s0)(i.mcpPath))continue;let j=!1;try{(j=(await e.lstat(i.mcpPath)).isSymbolicLink())&&(b=await e.readlink(i.mcpPath))}catch{continue}let k=f.extname(i.mcpPath)||".bak",l=`${a}-mcp${k}`,m=f.join(c,l);try{let c=await e.readFile(i.mcpPath);await e.writeFile(m,c),d.push({agent:a,backupPath:m,originalPath:i.mcpPath,wasSymlink:j,linkTarget:b})}catch{}}return await e.writeFile(f.join(c,"manifest.json"),JSON.stringify({id:b,createdAt:new Date().toISOString(),entries:d},null,2),"utf8"),await n(20),{dir:c,id:b,entries:d}}async function n(a){try{for(let b of(await e.readdir(h.BF.backups,{withFileTypes:!0})).filter(a=>a.isDirectory()&&k.test(a.name)).map(a=>a.name).sort().reverse().slice(a))await e.rm(f.join(h.BF.backups,b),{recursive:!0,force:!0})}catch{}}async function o(){try{let a=(await e.readdir(h.BF.backups,{withFileTypes:!0})).filter(a=>a.isDirectory()).map(a=>a.name).sort().reverse(),b=[];for(let c of a){let a=f.join(h.BF.backups,c);try{let c=await e.readFile(f.join(a,"manifest.json"),"utf8"),d=JSON.parse(c);b.push({dir:a,id:d.id,entries:d.entries})}catch{b.push({dir:a,id:c,entries:[]})}}return b}catch{return[]}}async function p(a,b){let c,h;if(!await (0,g.s0)(a))return null;let{id:i,dir:j}=await l();b&&await e.writeFile(f.join(j,"_reason.txt"),b,"utf8").catch(()=>{});let k=(c=f.parse(a),h=d.createHash("sha256").update(f.resolve(a)).digest("hex").slice(0,8),`${c.name}.${h}${c.ext||".bak"}`),m=f.join(j,k);try{let b=await e.readFile(a);return await e.writeFile(m,b),await e.writeFile(f.join(j,"manifest.json"),JSON.stringify({id:i,createdAt:new Date().toISOString(),entries:[{agent:null,backupPath:m,originalPath:a,wasSymlink:!1}]},null,2),"utf8"),await n(20),j}catch{return null}}async function q(a){if(!await (0,g.s0)(a.sourcePath))return null;let b=new Date().toISOString().replace(/[:.]/g,"-"),c=f.join(i,b,a.agent);await (0,g.A0)(c);let d=f.join(c,f.basename(a.sourcePath));try{return await e.rename(a.sourcePath,d),d}catch{try{return(await e.lstat(a.sourcePath)).isDirectory()?(await e.cp(a.sourcePath,d,{recursive:!0}),await e.rm(a.sourcePath,{recursive:!0,force:!0})):(await e.copyFile(a.sourcePath,d),await e.unlink(a.sourcePath)),d}catch{return null}}}async function r(){let a=[];for(let b of h.dT){let c,d=h.R6[b];if(d.skills&&await (0,g.s0)(d.skillsDir)){try{c=await e.readdir(d.skillsDir)}catch{continue}for(let h of c){if(!h.includes(".plexus-backup-"))continue;let c=f.join(d.skillsDir,h),i=new Date().toISOString().replace(/[:.]/g,"-"),k=f.join(j,i,b);await (0,g.A0)(k);let l=f.join(k,h);try{await e.rename(c,l),a.push({agent:b,from:c,to:l})}catch{}}}}return{moved:a}}async function s(a){let b=(await o()).find(b=>b.id===a);if(!b)return{restored:0,errors:[`No snapshot with id ${a}`]};let c=[],d=0;for(let a of b.entries)try{try{await e.unlink(a.originalPath)}catch{}let b=await e.readFile(a.backupPath);await (0,g.A0)(f.dirname(a.originalPath)),await e.writeFile(a.originalPath,b),d+=1}catch(b){c.push(`${a.agent}: ${b.message}`)}return{restored:d,errors:c}}}};
5
+ `,"utf8")}async function S(){let{agents:a}=await Q();return a}async function T(a){return(await S()).find(b=>b.id===a)}async function U(a){var b;let c={...a,instructionFile:f.resolve((b=a.instructionFile).startsWith("~/")||"~"===b?f.join(process.env.HOME??"",b.slice(1)):b),createdAt:new Date().toISOString()},d=M.safeParse(c);if(!d.success)throw Error(`Invalid custom agent: ${d.error.errors.map(a=>a.message).join("; ")}`);if(P.has(d.data.id))throw Error(`Agent id '${d.data.id}' is reserved for a built-in agent.`);let e=await Q();if(e.agents.some(a=>a.id===d.data.id))throw Error(`Custom agent '${d.data.id}' already exists.`);return e.agents.push(d.data),await R(e),d.data}async function V(a){let b=await Q(),c=b.agents.length;return b.agents=b.agents.filter(b=>b.id!==a),b.agents.length!==c&&(await R(b),!0)}var W=c(73024),X=c(48161);function Y(){return d.dT.map(a=>({id:a,displayName:d.kp[a],rootDir:d.Qp[a],installed:aa(a),capabilities:d.R6[a]}))}let Z=X.homedir(),$={"claude-code":[],cursor:"darwin"===process.platform?["/Applications/Cursor.app",f.join(Z,"Applications","Cursor.app")]:[],codex:"darwin"===process.platform?["/Applications/Codex.app",f.join(Z,"Applications","Codex.app")]:[],"gemini-cli":[],"qwen-code":[],"factory-droid":[]},_={"claude-code":["claude"],cursor:["cursor"],codex:["codex"],"gemini-cli":["gemini"],"qwen-code":["qwen"],"factory-droid":["factory-droid","droid"]};function aa(a){if("1"===process.env.PLEXUS_DETECT_CONFIG_ONLY){let b;return(b=d.R6[a],[d.Qp[a],b.mcpPath,b.skillsDir]).some(a=>(0,W.existsSync)(a))}return!!$[a].some(a=>(0,W.existsSync)(a))||_[a].some(a=>(function(a){let b=process.env.PATH;if(!b)return!1;let c="win32"===process.platform?(process.env.PATHEXT??".EXE;.CMD;.BAT;.COM").split(";"):[""];for(let d of b.split(f.delimiter))if(d)for(let b of c){let c=f.join(d,`${a}${b}`);try{if((0,W.statSync)(c).isFile())return"win32"===process.platform||function(a){try{return(0,W.accessSync)(a,W.constants.X_OK),!0}catch{return!1}}(c)}catch{}}return!1})(a))}let ab=X.homedir();function ac(a){return!!a&&W.existsSync(a)}function ad(){return"darwin"===process.platform?f.join(ab,"Library","Application Support","Code","User"):"win32"===process.platform?f.join(process.env.APPDATA??ab,"Code","User"):f.join(ab,".config","Code","User")}function ae(a){return f.join(ad(),"globalStorage",a)}function af(){return"darwin"===process.platform?f.join(ab,"Library","Application Support","Zed"):f.join(ab,".config","zed")}let ag=[{id:"windsurf",displayName:"Windsurf Cascade",support:"manual",managed:!1,rootDir:f.join(ab,".codeium","windsurf"),mcpPath:f.join(ab,".codeium","windsurf","mcp_config.json"),instructionFile:f.join(ab,".codeium","windsurf","AGENTS.md"),note:"Catalog only for now. Windsurf uses its own Rules surface; add as custom if you want Plexus to track one instruction file."},{id:"kiro",displayName:"Kiro",support:"manual",managed:!1,rootDir:f.join(ab,".kiro"),mcpPath:f.join(ab,".kiro","settings","mcp.json"),instructionFile:f.join(ab,".kiro","steering","plexus.md"),note:"Catalog only for now. Kiro has user-level MCP and steering files, but Plexus does not write them yet."},{id:"vscode-copilot",displayName:"VS Code / GitHub Copilot",support:"manual",managed:!1,rootDir:ad(),mcpPath:f.join(ad(),"mcp.json"),instructionFile:f.join(ad(),"AGENTS.md"),note:"VS Code stores user MCP separately from repo instructions. Add as custom if you keep a user instruction file."},{id:"cline",displayName:"Cline",support:"manual",managed:!1,rootDir:ae("saoudrizwan.claude-dev"),instructionFile:f.join(ae("saoudrizwan.claude-dev"),"AGENTS.md"),note:"VS Code extension storage varies by editor profile; use custom paths if yours differs."},{id:"roo-code",displayName:"Roo Code",support:"manual",managed:!1,rootDir:ae("rooveterinaryinc.roo-cline"),instructionFile:f.join(ae("rooveterinaryinc.roo-cline"),"AGENTS.md"),note:"VS Code extension storage varies by editor profile; use custom paths if yours differs."},{id:"kilo-code",displayName:"Kilo Code",support:"manual",managed:!1,rootDir:f.join(ab,".config","kilo"),mcpPath:f.join(ab,".config","kilo","kilo.jsonc"),instructionFile:f.join(ab,".config","kilo","AGENTS.md"),note:"Kilo uses JSONC and extension/project scopes; catalog entry is manual until Plexus can round-trip JSONC."},{id:"continue",displayName:"Continue",support:"manual",managed:!1,rootDir:f.join(ab,".continue"),instructionFile:f.join(ab,".continue","AGENTS.md"),note:"Continue configuration is flexible and often project-specific; add a custom instruction file if you use one."},{id:"aider",displayName:"Aider",support:"instructions-only",managed:!1,instructionFile:f.join(ab,".aider.conf.yml"),note:"Aider is config-file based. Plexus can track a file, but does not translate MCP or skills for Aider."},{id:"amp",displayName:"Amp",support:"manual",managed:!1,rootDir:f.join(ab,".config","amp"),instructionFile:f.join(ab,".config","amp","AGENTS.md"),note:"Amp supports agent instruction files, but local config layout can vary."},{id:"openhands",displayName:"OpenHands",support:"manual",managed:!1,rootDir:f.join(ab,".openhands"),instructionFile:f.join(ab,".openhands","AGENTS.md"),note:"OpenHands is usually project/container configured. Use custom paths for your local setup."},{id:"zed-ai",displayName:"Zed AI",support:"manual",managed:!1,rootDir:af(),instructionFile:f.join(af(),"AGENTS.md"),note:"Catalog only. Zed and extension settings vary across platforms."}];function ah(){return[...d.dT.map(a=>{let b=d.R6[a];return{id:a,displayName:d.kp[a],support:"full",managed:!0,installed:aa(a),rootDir:d.Qp[a],mcpPath:b.mcpPath,skillsDir:b.skillsDir,note:"Built-in adapter. Plexus can sync Rules, MCP servers, and Skills."}}),...ag.map(a=>({...a,installed:ac(a.mcpPath)||ac(a.instructionFile)}))]}var ai=c(69067);async function aj(a){await e.mkdir(a,{recursive:!0})}async function ak(a){try{return await e.access(a),!0}catch{return!1}}async function al(a){try{return(await e.lstat(a)).isSymbolicLink()}catch{return!1}}async function am(a,b,d){let g;if(await aj(f.dirname(b)),await ak(b))if(await al(b))await e.unlink(b);else{let{quarantineCollision:a}=await Promise.resolve().then(c.bind(c,92071)),d=await a({agent:"unknown",sourcePath:b});d&&(g=d)}if("symlink"===d)try{let c=(await e.lstat(a)).isDirectory()?"dir":"file";return await e.symlink(a,b,c),{via:"symlink",backedUp:g}}catch{}return(await e.lstat(a)).isDirectory()?await e.cp(a,b,{recursive:!0}):await e.copyFile(a,b),{via:"copy",backedUp:g}}function an(a){return{agent:a,applied:{mcp:0,skills:0},warnings:[],errors:[]}}async function ao(a,b,c){await aj(f.dirname(b));let d=null;try{d=await e.lstat(b)}catch{}if(d)if(d.isSymbolicLink()){try{let c=await e.readlink(b);if((f.isAbsolute(c)?c:f.resolve(f.dirname(b),c))===f.resolve(a))return"symlink"}catch{}await e.unlink(b)}else await e.unlink(b);if("symlink"===c)try{return await e.symlink(a,b,"file"),"symlink"}catch{}return await e.copyFile(a,b),"copy"}let ap={id:"codex",async apply(a){let b=an("codex"),c=d.R6.codex;try{await aj(f.dirname(c.mcpPath));let d=a.mcp.filter(a=>a.enabledAgents.includes("codex")),h=d.filter(a=>aq(a));for(let a of d)aq(a)||b.warnings.push(`Skipping MCP ${a.id}: missing command or url`);let i=new Set(d.map(a=>a.id)),j=new Set(a.mcp.filter(a=>!a.enabledAgents.includes("codex")).map(a=>a.id)),k={};try{let a=await e.readFile(c.mcpPath,"utf8");k=ai.parse(a)}catch{}let l=k.mcp_servers??{},m={};for(let[a,b]of Object.entries(l))!j.has(a)&&(i.has(a)||(m[a]=b));let n={...m};for(let a of h){var g;n[a.id]={...(g=a).command.trim()?{command:g.command}:{},...g.args?{args:g.args}:{},...ar(g.env)?{env:g.env}:{},...g.url?.trim()||g.httpUrl?.trim()?{url:g.url?.trim()||g.httpUrl?.trim()}:{},...ar(g.headers)?{http_headers:g.headers}:{}}}k.mcp_servers=n,await e.writeFile(c.mcpPath,ai.stringify(k),"utf8"),b.applied.mcp=h.length}catch(a){b.errors.push(`Codex MCP write failed: ${a.message}`)}try{await aj(c.skillsDir);let d=a.skills.filter(a=>a.enabledAgents.includes("codex"));for(let b of new Set(a.skills.filter(a=>!a.enabledAgents.includes("codex")).map(a=>a.id))){let a=f.join(c.skillsDir,b);try{(await e.lstat(a)).isSymbolicLink()?await e.unlink(a):await e.rm(a,{recursive:!0,force:!0})}catch{}}for(let e of d){let d=a.skillSourcePaths.get(e.id);if(!d)continue;let g=f.join(c.skillsDir,e.id);try{await am(d,g,a.syncStrategy),b.applied.skills+=1}catch(a){b.errors.push(`Skill ${e.id} sync failed: ${a.message}`)}}}catch(a){b.errors.push(`Codex skills sync failed: ${a.message}`)}return b}};function aq(a){return!!(a.command.trim()||a.url?.trim()||a.httpUrl?.trim())}function ar(a){return!!(a&&Object.keys(a).length>0)}function as(a){return{id:a,async apply(b){let c=an(a),e=d.R6[a];if(e.mcp){let d=e.mcpFileMode??"shared";try{await aj(f.dirname(e.mcpPath));let g=b.mcp.filter(b=>b.enabledAgents.includes(a)),h=g.filter(a=>ax(a));for(let a of g)ax(a)||c.warnings.push(`Skipping MCP ${a.id}: missing command or url`);"exclusive"===d?await av(a,b.mcp,h,b.syncStrategy):await au(e.mcpPath,b.mcp,h),c.applied.mcp=h.length}catch(a){c.errors.push(`MCP write failed: ${a.message}`)}}if(e.skills)try{await aj(e.skillsDir);let d=b.skills.filter(b=>b.enabledAgents.includes(a));for(let c of new Set(b.skills.filter(b=>!b.enabledAgents.includes(a)).map(a=>a.id))){let a=f.join(e.skillsDir,c);await at(a)}for(let a of d){let d=b.skillSourcePaths.get(a.id);if(!d){c.warnings.push(`No source path for skill: ${a.id}`);continue}let g=f.join(e.skillsDir,a.id);try{await am(d,g,b.syncStrategy),c.applied.skills+=1}catch(b){c.errors.push(`Skill ${a.id} sync failed: ${b.message}`)}}}catch(a){c.errors.push(`Skills sync failed: ${a.message}`)}return c}}}async function at(a){try{(await e.lstat(a)).isSymbolicLink()?await e.unlink(a):await e.rm(a,{recursive:!0,force:!0})}catch{}}async function au(a,b,c){c.map(a=>a.id);let d=new Set(b.map(a=>a.id)),f={};try{let b=await e.readFile(a,"utf8");f=JSON.parse(b)}catch{}let g=f.mcpServers??{},h={};for(let[a,b]of Object.entries(g))d.has(a)||(h[a]=b);let i={...h};for(let a of c)i[a.id]=aw(a);let j={...f,mcpServers:i};await e.writeFile(a,JSON.stringify(j,null,2),"utf8")}async function av(a,b,c,g){let h=d.R6[a];await aj(d.BF.mcpCache);let i=f.join(d.BF.mcpCache,`${a}.json`),j=new Set(b.map(a=>a.id)),k={};try{let a=await e.readFile(h.mcpPath,"utf8");k=JSON.parse(a)}catch{}let l=k.mcpServers??{},m={};for(let[a,b]of Object.entries(l))j.has(a)||(m[a]=b);let n={...m};for(let a of c)n[a.id]=aw(a);await e.writeFile(i,JSON.stringify({mcpServers:n},null,2),"utf8"),await ao(i,h.mcpPath,g)}function aw(a){return{...a.command?{command:a.command}:{},...a.args?{args:a.args}:{},...a.env?{env:a.env}:{},...a.url?{url:a.url}:{},...a.httpUrl?{httpUrl:a.httpUrl}:{},...a.headers?{headers:a.headers}:{}}}function ax(a){return!!(a.command.trim()||a.url?.trim()||a.httpUrl?.trim())}let ay={"claude-code":as("claude-code"),cursor:as("cursor"),codex:ap,"gemini-cli":as("gemini-cli"),"qwen-code":as("qwen-code"),"factory-droid":as("factory-droid")};async function az(a){let b={path:a,exists:!1,isSymlink:!1};try{let c=await e.lstat(a);if(b.exists=!0,b.isSymlink=c.isSymbolicLink(),b.isSymlink)try{let c=await e.readlink(a);b.linkTarget=f.isAbsolute(c)?c:f.resolve(f.dirname(a),c)}catch{}try{let c=await e.stat(a);b.size=c.size,b.mtime=c.mtime.toISOString()}catch{}}catch{}return b}async function aA(a){if(!await (0,h.s0)(a))return[];try{let b=await e.readdir(a,{withFileTypes:!0}),c=[];for(let g of b){let b;if(g.name.startsWith(".")||g.name.includes(".plexus-backup-"))continue;let i=f.join(a,g.name),j=!1;try{if(j=(await e.lstat(i)).isSymbolicLink()){let a=await e.readlink(i);b=f.isAbsolute(a)?a:f.resolve(f.dirname(i),a)}}catch{continue}let k=f.join(i,"SKILL.md"),l=await (0,h.s0)(k);c.push({id:g.name,path:i,isSymlink:j,linkTarget:b,managedByPlexus:!!b&&function(a,b){let c=f.relative(f.resolve(b),f.resolve(a));return""===c||!c.startsWith("..")&&!f.isAbsolute(c)}(b,d.BF.root),hasSkillMd:l})}return c.sort((a,b)=>a.id.localeCompare(b.id))}catch{return[]}}function aB(a){let b=d.Qp[a];switch(a){case"claude-code":return[{label:"CLAUDE.md (user-level memory)",filename:"CLAUDE.md",abs:f.join(b,"CLAUDE.md")}];case"cursor":case"codex":case"factory-droid":return[{label:"AGENTS.md (user-level)",filename:"AGENTS.md",abs:f.join(b,"AGENTS.md")}];case"gemini-cli":return[{label:"GEMINI.md (user-level)",filename:"GEMINI.md",abs:f.join(b,"GEMINI.md")}];case"qwen-code":return[{label:"QWEN.md (user-level)",filename:"QWEN.md",abs:f.join(b,"QWEN.md")}]}}async function aC(a){let b=d.R6[a],c=d.Qp[a],e=aa(a),[f,g]=await Promise.all([az(b.mcpPath),az(b.skillsDir)]),h=b.skills?await aA(b.skillsDir):[],i=[];for(let b of aB(a))i.push({label:b.label,filename:b.filename,status:await az(b.abs)});return{id:a,displayName:d.kp[a],rootDir:c,installed:e,mcpFile:f,mcpFileMode:b.mcpFileMode??"shared",skillsDir:g,skills:h,instructionFiles:i}}async function aD(a){return e.readFile(a,"utf8")}async function aE(a,b){await e.mkdir(f.dirname(a),{recursive:!0}),await e.writeFile(a,b,"utf8")}var aF=c(92071);async function aG(a){let b=d.R6[a];if(!await (0,h.s0)(b.mcpPath))return[];try{let a=await e.readFile(b.mcpPath,"utf8");if("json"===b.mcpFormat){let b=JSON.parse(a).mcpServers??{};return Object.entries(b).map(([a,b])=>{var c,d;return c=a,d=b,{id:c,command:String(d?.command??""),args:Array.isArray(d?.args)?d.args.map(String):void 0,env:aH(d?.env),url:"string"==typeof d?.url?d.url:void 0,httpUrl:"string"==typeof d?.httpUrl?d.httpUrl:void 0,headers:aH(d?.headers)}})}let c=ai.parse(a).mcp_servers??{};return Object.entries(c).map(([a,b])=>({id:a,command:String(b?.command??""),args:Array.isArray(b?.args)?b.args.map(String):void 0,env:b?.env&&"object"==typeof b.env?b.env:void 0,url:"string"==typeof b?.url?b.url:void 0,httpUrl:"string"==typeof b?.httpUrl?b.httpUrl:void 0,headers:aH(b?.http_headers??b?.headers)}))}catch{return[]}}function aH(a){if(!(!a||"object"!=typeof a||Array.isArray(a)))return Object.fromEntries(Object.entries(a).map(([a,b])=>[a,String(b)]))}async function aI(a){let b=d.R6[a];if(!await (0,h.s0)(b.skillsDir))return[];try{let c=await e.readdir(b.skillsDir,{withFileTypes:!0}),d=[];for(let g of c){let c=f.join(b.skillsDir,g.name);if(g.isSymbolicLink())try{if(!(await e.stat(c)).isDirectory())continue}catch{continue}else if(!g.isDirectory())continue;let i=f.join(c,"SKILL.md");if(!await (0,h.s0)(i))continue;let j=await e.readFile(i,"utf8"),{frontmatter:k,body:l}=y(j);d.push({id:g.name,name:k.name??g.name,description:k.description??void 0,body:l,frontmatter:k,layer:"personal",enabledAgents:[a]})}return d}catch{return[]}}async function aJ(a){let b=Object.fromEntries(d.dT.map(a=>[a,{mcp:0,skills:0}])),c=new Map,e=new Map;for(let a of d.dT){let d=await aG(a);for(let e of(b[a].mcp=d.length,d)){let b=c.get(e.id);b?b.sources.includes(a)||b.sources.push(a):c.set(e.id,{first:{command:e.command,args:e.args,env:e.env,url:e.url,httpUrl:e.httpUrl,headers:e.headers},sources:[a]})}let f=await aI(a);for(let c of(b[a].skills=f.length,f)){let b=e.get(c.id);b?b.sources.includes(a)||b.sources.push(a):e.set(c.id,{first:c,sources:[a]})}}let f=new Map(a.storeMcp.map(a=>[a.id,a])),g=new Map(a.storeSkills.map(a=>[a.id,a])),h=[];for(let[a,b]of c){let c=f.get(a);if(c){let d=b.sources.filter(a=>!c.enabledAgents.includes(a));if(0===d.length)continue;h.push({kind:"extend",id:a,displayName:a,agentsToAdd:d,currentAgents:c.enabledAgents})}else h.push({kind:"new",item:{id:a,command:b.first.command,args:b.first.args,env:b.first.env,url:b.first.url,httpUrl:b.first.httpUrl,headers:b.first.headers,layer:"personal",enabledAgents:[...b.sources]},sourceAgents:b.sources})}let i=[];for(let[a,b]of e){let c=g.get(a);if(c){let d=b.sources.filter(a=>!c.enabledAgents.includes(a));if(0===d.length)continue;i.push({kind:"extend",id:a,displayName:b.first.name,agentsToAdd:d,currentAgents:c.enabledAgents})}else i.push({kind:"new",item:{...b.first,enabledAgents:[...b.sources]},sourceAgents:b.sources})}return{mcp:h,skills:i,perAgent:b}}function aK(a){let[b]=aB(a);if(!b)throw Error(`No instruction file target is configured for agent ${a}`);return b.abs}async function aL(a){try{let b=await e.readlink(a);return f.isAbsolute(b)?b:f.resolve(f.dirname(a),b)}catch{return}}async function aM(a,b,c,g,h){let i=aK(a),j={agent:a,displayName:d.kp[a],targetPath:i,installed:g,enabled:h,exists:!1,isSymlink:!1,inSync:!1};try{let a=await e.lstat(i);j.exists=!0,j.isSymlink=a.isSymbolicLink(),j.isSymlink&&(j.linkTarget=await aL(i))}catch{return j}if(!b||null===c)return j;if(j.isSymlink)return j.inSync=!!(j.linkTarget&&f.resolve(j.linkTarget)===f.resolve(b)),j;try{j.inSync=await e.readFile(i,"utf8")===c}catch{j.inSync=!1}return j}async function aN(a){let b;await (0,h.A0)(f.dirname(a.targetPath));try{if((await e.lstat(a.targetPath)).isSymbolicLink())await e.unlink(a.targetPath);else{let c=await (0,aF.quarantineCollision)({agent:a.agent,sourcePath:a.targetPath});c&&(b=c)}}catch{}if("symlink"===a.strategy)try{return await e.symlink(a.sourcePath,a.targetPath,"file"),{via:"symlink",backedUp:b}}catch{}return await e.copyFile(a.sourcePath,a.targetPath),{via:"copy",backedUp:b}}async function aO(){let a=await H(),b=await n(),c=new Map(Y().map(a=>[a.id,a.installed])),e=a?{exists:!0,layer:a.layer,path:a.path,content:a.content,updatedAt:a.updatedAt}:{exists:!1,layer:null,path:null,content:null};return{canonical:e,agents:await Promise.all(d.dT.map(a=>aM(a,e.path,e.content,c.get(a)??!1,!1!==b.agents[a])))}}async function aP(a=d.dT){let b=await G("personal");if(!b){let a=await H();a&&(await I(a.content),b=await G("personal"))}if(!b)throw Error(`Cannot apply rules: personal canonical rules file does not exist at ${F("personal")}`);let c=await n(),f=new Map(Y().map(a=>[a.id,a.installed])),g=[];for(let h of a){let a=aK(h);if(!f.get(h)){g.push({agent:h,targetPath:a,applied:!1,skipped:!0,reason:`${d.kp[h]} is not installed.`});continue}if(!1===c.agents[h]){g.push({agent:h,targetPath:a,applied:!1,skipped:!0,reason:`${d.kp[h]} is disabled in Plexus settings.`});continue}try{let d=null;try{await e.lstat(a),d=await (0,aF.RV)(a,`Apply Plexus rules to ${h}`)}catch{}let f=await aN({agent:h,sourcePath:b.path,targetPath:a,strategy:c.syncStrategy});g.push({agent:h,targetPath:a,applied:!0,via:f.via,backedUp:f.backedUp,snapshotDir:d})}catch(b){g.push({agent:h,targetPath:a,applied:!1,error:b.message})}}return g}async function aQ(a){let b,c=aK(a);try{b=await e.readFile(c,"utf8")}catch(b){throw Error(`Cannot import rules from ${a}: failed to read ${c}: ${b.message}`)}await I(b)}async function aR(a){let b=aK(a),c=await n(),g=Y();if(!g.find(b=>b.id===a)?.installed)return{agent:a,targetPath:b,detached:!1,skipped:!0,reason:`${d.kp[a]} is not installed.`};if(!1===c.agents[a])return{agent:a,targetPath:b,detached:!1,skipped:!0,reason:`${d.kp[a]} is disabled in Plexus settings.`};try{let c;if(!(await e.lstat(b)).isSymbolicLink())return{agent:a,targetPath:b,detached:!1,skipped:!0,reason:`${d.kp[a]} already has a local instruction file.`};let g=await G("personal");if(!g)return{agent:a,targetPath:b,detached:!1,skipped:!0,reason:"No personal rules baseline exists for Plexus to detach from."};let h=await aL(b);if(!h||f.resolve(h)!==f.resolve(g.path))return{agent:a,targetPath:b,detached:!1,skipped:!0,reason:`${d.kp[a]}'s instruction file is a symlink, but Plexus does not own that link.`};try{c=await e.readFile(b,"utf8")}catch{c=g.content}let i=await (0,aF.RV)(b,`Detach Plexus rules from ${a}`);return await e.unlink(b),await e.writeFile(b,c,"utf8"),{agent:a,targetPath:b,detached:!0,snapshotDir:i}}catch(c){if("ENOENT"===c.code)return{agent:a,targetPath:b,detached:!1,skipped:!0,reason:`${d.kp[a]} has no instruction file to detach.`};return{agent:a,targetPath:b,detached:!1,error:c.message}}}async function aS(a){let b=new Date().toISOString(),c=await n(),e=Y(),f=await (0,aF.RC)({reason:a?`partial sync: ${a.join(",")}`:"full sync"}).catch(()=>void 0);await (0,aF.P3)().catch(()=>void 0);let[g,h,i,j]=await Promise.all([q("team"),q("personal"),A("team"),A("personal")]),k=J(g,h),l=K(i,j),m=new Map;for(let a of l)m.set(a.id,E(a.layer,a.id));let o=(a&&a.length>0?a:d.dT).filter(a=>{let b=e.find(b=>b.id===a);return b?.installed&&!1!==c.agents[a]});return{results:await Promise.all(o.map(a=>ay[a].apply({agentId:a,mcp:k,skills:l,skillSourcePaths:m,syncStrategy:c.syncStrategy??"symlink"}))),startedAt:b,finishedAt:new Date().toISOString(),backup:f?.dir}}async function aT(){let[a,b]=await Promise.all([s(),D()]);return{mcp:J(a.filter(a=>"team"===a.layer),a.filter(a=>"personal"===a.layer)),skills:K(b.filter(a=>"team"===a.layer),b.filter(a=>"personal"===a.layer))}}let aU=["codex","claude-code","cursor","gemini-cli","qwen-code","factory-droid"];async function aV(a){let b=await n(),c=Y();return(a&&a.length>0?a:d.dT).filter(a=>{let d=c.find(b=>b.id===a);return d?.installed&&!1!==b.agents[a]})}function aW(a,b){return{...a,enabledAgents:[...b]}}function aX(a){return[...new Set(a)].sort((a,b)=>aU.indexOf(a)-aU.indexOf(b)||a.localeCompare(b))}function aY(a){return JSON.stringify(function a(b){if(Array.isArray(b))return b.map(a);if(b&&"object"==typeof b){let c={};for(let d of Object.keys(b).sort()){let e=b[d];void 0!==e&&(c[d]=a(e))}return c}return b}(a))}function aZ(a,b,c,d){let e=a.get(b.id)??{id:b.id,variants:[]},f=e.variants.find(a=>a.fingerprint===d);f?f.sources.includes(c)||f.sources.push(c):e.variants.push({item:b,sources:[c],fingerprint:d}),a.set(b.id,e)}function a$(a){return Math.min(...a.sources.map(a=>aU.indexOf(a)))}function a_(a,b){if(b){let c=a.find(a=>a.sources.includes(b));if(c)return c}let c=[...a].sort((a,b)=>b.sources.length-a.sources.length||a$(a)-a$(b)||a.fingerprint.localeCompare(b.fingerprint))[0];if(!c)throw Error("Cannot choose from an empty native config group");return c}async function a0(a){let b=[];for(let c of a){let[a]=aB(c);if(a)try{let d=await e.readFile(a.abs,"utf8");if(0===d.trim().length)continue;b.push({agent:c,content:d,fingerprint:aY(d)})}catch{}}return b}function a1(a,b){if(b){let c=a.find(a=>a.agent===b);if(c)return c}return[...a].sort((a,b)=>aU.indexOf(a.agent)-aU.indexOf(b.agent)||a.agent.localeCompare(b.agent))[0]}async function a2(a){let b=new Map,c=new Map,d=await a0(a),e=[];for(let f of a){let[a,g]=await Promise.all([aG(f),aI(f)]);for(let c of a){let a={id:c.id,command:c.command,args:c.args,env:c.env,url:c.url,httpUrl:c.httpUrl,headers:c.headers,layer:"personal",enabledAgents:[f]};aZ(b,a,f,aY({command:a.command,args:a.args??[],env:a.env??{},url:a.url??"",httpUrl:a.httpUrl??"",headers:a.headers??{}}))}for(let a of g){let b={...a,layer:"personal",enabledAgents:[f]};aZ(c,b,f,function(a){let b=Object.fromEntries(Object.entries(a.frontmatter??{}).filter(([a])=>"plexus_enabled_agents"!==a&&"plexus_id"!==a));return aY({name:a.name,description:a.description??"",body:a.body,frontmatter:b})}(b))}let h=d.some(a=>a.agent===f);e.push({agent:f,mcp:a.length,skills:g.length,rules:h,total:a.length+g.length+ +!!h})}return{sourceSummaries:e,mcpGroups:b,skillGroups:c,rulesSources:d}}function a3(a,b){let c=[];for(let d of a.values()){if(d.variants.length<=1)continue;let a=a_(d.variants,b);c.push({id:d.id,sources:aX(d.variants.flatMap(a=>a.sources)),preferredAgent:function(a,b){if(b&&a.sources.includes(b))return b;let[c]=aX(a.sources);if(!c)throw Error("Cannot summarize a native config variant with no sources");return c}(a,b)})}return c.sort((a,b)=>a.id.localeCompare(b.id))}function a4(a){return[...a.values()].filter(a=>1===a.variants.length).length}function a5(a,b,c){var d;let e=(d=b.sourceSummaries,[...d].filter(a=>a.total>0).sort((a,b)=>b.total-a.total||aU.indexOf(a.agent)-aU.indexOf(b.agent)||a.agent.localeCompare(b.agent))[0]?.agent),f=new Set(b.rulesSources.map(a=>a.fingerprint)),g=a1(b.rulesSources,c),h=a3(b.mcpGroups,c),i=a3(b.skillGroups,c),j=f.size>1;return{targetAgents:a,sources:b.sourceSummaries,recommendedPrimaryAgent:e,selectedPrimaryAgent:c,conflictCount:h.length+i.length+ +!!j,mcp:{safe:a4(b.mcpGroups),conflicts:h},skills:{safe:a4(b.skillGroups),conflicts:i},rules:{sources:aX(b.rulesSources.map(a=>a.agent)),conflict:j,preferredAgent:g?.agent}}}async function a6(a){let b=await aV(a?.only),c=await a2(b),d=a5(b,c,a?.preferredAgent),e=a?.preferredAgent??d.recommendedPrimaryAgent,f=a5(b,c,e);return{targetAgents:b,state:c,plan:f,primaryAgent:e}}async function a7(a){return(await a6(a)).plan}async function a8(a,b,c){if(0===a.length)return{imported:{mcpWritten:0,mcpExtended:0,skillsWritten:0,skillsExtended:0},mcpShared:0,skillsShared:0};let[d,e,f,g]=await Promise.all([q("team"),q("personal"),A("team"),A("personal")]),h=J(d,e),i=K(f,g),j=function(a,b,c){let d={mcpWritten:0,mcpExtended:0,skillsWritten:0,skillsExtended:0};for(let c of a.mcpGroups.keys())b.has(c)?d.mcpExtended+=1:d.mcpWritten+=1;for(let b of a.skillGroups.keys())c.has(b)?d.skillsExtended+=1:d.skillsWritten+=1;return d}(b,new Set(h.map(a=>a.id)),new Set(i.map(a=>a.id))),k=new Map;for(let b of h)k.set(b.id,aW({...b,layer:"personal"},a));for(let d of b.mcpGroups.values()){if(k.has(d.id))continue;let b=a_(d.variants,c);k.set(d.id,aW({...b.item,layer:"personal"},a))}let l=new Map;for(let b of i)l.set(b.id,aW({...b,layer:"personal"},a));for(let d of b.skillGroups.values()){if(l.has(d.id))continue;let b=a_(d.variants,c);l.set(d.id,aW({...b.item,layer:"personal"},a))}let m=[...k.values()].sort((a,b)=>a.id.localeCompare(b.id)),n=[...l.values()].sort((a,b)=>a.id.localeCompare(b.id));for(let a of(await r("personal",m),n))await B(a);return{imported:j,mcpShared:m.length,skillsShared:n.length}}async function a9(a,b){if(await G("personal"))return;let c=await H();if(c)return void await I(c.content);let d=a1(a.rulesSources,b);if(d)return await I(d.content),d.agent}async function ba(a){let b=Array.isArray(a)?{only:a}:a??{},c=new Date().toISOString(),{targetAgents:d,state:e,plan:f,primaryAgent:g}=await a6(b),[{imported:h,mcpShared:i,skillsShared:j},k]=await Promise.all([a8(d,e,g),a9(e,g)]),[l,m]=await Promise.all([aS(d),G("personal").then(a=>a?aP(d):void 0)]);return{mode:"share-all",targetAgents:d,imported:h,shared:{mcp:i,skills:j},plan:f,preferredAgent:g,conflictsResolved:f.conflictCount,rules:m?{applied:m,importedFrom:k}:{applied:[],skipped:"No rules baseline exists yet. Add rules in the Rules page or keep an instruction file in one installed agent, then sync again."},results:l.results,startedAt:c,finishedAt:new Date().toISOString(),backup:l.backup}}var bb=c(31421);let bc=(0,c(57975).promisify)(bb.execFile);async function bd(a){return(0,h.s0)(`${a}/.git`)}async function be(){let[a,b,c]=await Promise.all([q("team"),A("team"),G("team")]);return{mcp:a.length,skills:b.length,rules:null!==c}}async function bf(a){let b=d.BF.team;if(await (0,h.s0)(b)){if(await bd(b))try{let{stdout:c}=await bc("git",["-C",b,"remote","get-url","origin"]),d=c.trim();if(d!==a)return{ok:!1,message:`Team layer already subscribed to ${d}. Run 'plexus leave' first.`};await bc("git",["-C",b,"pull","--ff-only"]);let e=await n();return e.teamRepo=a,await o(e),{ok:!0,message:"Team layer refreshed."}}catch(a){return{ok:!1,message:`Git pull failed: ${a.message}`}}let c=`${b}.plexus-backup-${Date.now()}`;await e.rename(b,c)}try{await bc("git",["clone",a,b]);let c=await n();return c.teamRepo=a,await o(c),{ok:!0,message:`Cloned team repo to ${b}.`}}catch(a){return{ok:!1,message:`Git clone failed: ${a.message}`}}}async function bg(){let a=d.BF.team;if(!await bd(a))return{ok:!1,message:"Team layer is not a git repo. Run 'plexus join <url>' first."};try{return await bc("git",["-C",a,"pull","--ff-only"]),{ok:!0,message:"Team layer up-to-date."}}catch(a){return{ok:!1,message:`Git pull failed: ${a.message}`}}}async function bh(){let a=d.BF.team;if(!await bd(a))return{subscribed:!1};try{let b=(await bc("git",["-C",a,"remote","get-url","origin"])).stdout.trim(),c=0,d=0;try{await bc("git",["-C",a,"fetch","--quiet"]);let{stdout:b}=await bc("git",["-C",a,"rev-list","--left-right","--count","HEAD...@{upstream}"]),[e,f]=b.trim().split(/\s+/).map(a=>Number.parseInt(a,10));c=e||0,d=f||0}catch{}let e=await be().catch(()=>void 0);return{subscribed:!0,repoUrl:b,hasUpstreamUpdate:d>0,ahead:c,behind:d,summary:e}}catch{return{subscribed:!1}}}async function bi(){let[a,b]=await Promise.all([s(),D()]);return aJ({storeMcp:a,storeSkills:b})}async function bj(a){let b=a??await bi(),c=0,d=0,e=0,f=0;if(b.mcp.length>0){let a=await q("personal"),e=await q("team"),f=new Map(a.map(a=>[a.id,a])),g=new Map(e.map(a=>[a.id,a])),h=[...a],i=new Set;for(let a of b.mcp)if("new"===a.kind)h.push(a.item),i.add(a.item.id),c+=1;else{let b=f.get(a.id);if(b)b.enabledAgents=Array.from(new Set([...b.enabledAgents,...a.agentsToAdd]));else{let b=g.get(a.id);b&&h.push({...b,layer:"personal",enabledAgents:Array.from(new Set([...b.enabledAgents,...a.agentsToAdd]))})}d+=1}await r("personal",h)}if(b.skills.length>0){let a=await A("personal"),c=await A("team"),d=new Map(a.map(a=>[a.id,a])),g=new Map(c.map(a=>[a.id,a]));for(let a of b.skills)if("new"===a.kind)await B(a.item),e+=1;else{let b=d.get(a.id);if(b)await B({...b,enabledAgents:Array.from(new Set([...b.enabledAgents,...a.agentsToAdd]))});else{let b=g.get(a.id);b&&await B({...b,layer:"personal",enabledAgents:Array.from(new Set([...b.enabledAgents,...a.agentsToAdd]))})}f+=1}}return{mcpWritten:c,skillsWritten:e,mcpExtended:d,skillsExtended:f}}async function bk(a){let b=new Map,c=J(await q("team"),await q("personal"));for(let d of c)d.enabledAgents.includes(a)&&b.set(d.id,d);for(let d of(await aJ({storeMcp:c,storeSkills:[]})).mcp)"new"===d.kind&&d.sourceAgents.includes(a)&&(b.has(d.item.id)||b.set(d.item.id,{...d.item,enabledAgents:[a]}));return b}async function bl(a){let b=new Map,c=K(await A("team"),await A("personal"));for(let d of c)d.enabledAgents.includes(a)&&b.set(d.id,d);for(let d of(await aJ({storeMcp:[],storeSkills:c})).skills)"new"===d.kind&&d.sourceAgents.includes(a)&&(b.has(d.item.id)||b.set(d.item.id,{...d.item,enabledAgents:[a]}));return b}async function bm(a,b){if(a===b)return{from:a,to:b,mcp:[],skills:[]};let[c,d,e,f,g,h]=await Promise.all([bk(a),bk(b),bl(a),bl(b),s(),D()]),i=new Set(g.map(a=>a.id)),j=new Set(h.map(a=>a.id)),k=[];for(let[a,b]of c)d.has(a)||k.push({item:b,inStore:i.has(a)});let l=[];for(let[a,b]of e)f.has(a)||l.push({item:b,inStore:j.has(a)});return{from:a,to:b,mcp:k,skills:l}}async function bn(a){let{from:b,to:c}=a;if(b===c)return{mcpAdded:0,skillsAdded:0};let d=await bm(b,c),e=new Set(a.mcpIds??d.mcp.map(a=>a.item.id)),f=new Set(a.skillIds??d.skills.map(a=>a.item.id)),g=0;if(e.size>0){let a=await q("personal"),b=await q("team"),f=new Map(a.map(a=>[a.id,a])),h=new Map(b.map(a=>[a.id,a])),i=[...a];for(let a of d.mcp){if(!e.has(a.item.id))continue;let b=f.get(a.item.id),d=h.get(a.item.id);b?b.enabledAgents.includes(c)||(b.enabledAgents=[...b.enabledAgents,c]):d?i.push({...d,layer:"personal",enabledAgents:Array.from(new Set([...d.enabledAgents,c]))}):i.push({...a.item,layer:"personal",enabledAgents:Array.from(new Set([...a.item.enabledAgents,c]))}),g+=1}await r("personal",i)}let h=0;if(f.size>0){let a=await A("personal"),b=await A("team"),e=new Map(a.map(a=>[a.id,a])),g=new Map(b.map(a=>[a.id,a]));for(let a of d.skills){if(!f.has(a.item.id))continue;let b=e.get(a.item.id),d=g.get(a.item.id);b?b.enabledAgents.includes(c)||await B({...b,enabledAgents:[...b.enabledAgents,c]}):d?await B({...d,layer:"personal",enabledAgents:Array.from(new Set([...d.enabledAgents,c]))}):await B({...a.item,layer:"personal",enabledAgents:Array.from(new Set([...a.item.enabledAgents,c]))}),h+=1}}let i=await n(),j=Y().find(a=>a.id===c);if(!j?.installed||!1===i.agents[c])return{mcpAdded:g,skillsAdded:h};let k=J(await q("team"),await q("personal")),l=K(await A("team"),await A("personal")),m=new Map;for(let a of l)m.set(a.id,E(a.layer,a.id));let o=await (0,aF.RC)({reason:`mirror ${b} to ${c}`});return{mcpAdded:g,skillsAdded:h,syncResult:await ay[c].apply({agentId:c,mcp:k,skills:l,skillSourcePaths:m,syncStrategy:i.syncStrategy??"symlink"}),backup:o.dir}}let bo=d.dT;async function bp(){let[a,b]=await Promise.all([q("team"),q("personal")]),c=J(a,b),d=new Set(a.map(a=>a.id)),e=new Set(b.map(a=>a.id)),f=await aJ({storeMcp:[],storeSkills:[]}),g=new Map;for(let a of f.mcp)"new"===a.kind&&g.set(a.item.id,{sources:a.sourceAgents,first:a.item});let h=new Set([...c.map(a=>a.id),...g.keys()]),i=[];for(let a of h){let b,f=c.find(b=>b.id===a),h=g.get(a),j=h?.sources??[],k=f?.enabledAgents??[],l=Array.from(new Set([...j,...k]));b=e.has(a)?"personal":d.has(a)?"team":"native";let m=f??h.first;i.push({id:a,command:m.command,args:m.args,env:m.env,authority:b,effectiveAgents:l,nativeAgents:j,enabledAgents:f?k:void 0})}return i.sort((a,b)=>a.id.localeCompare(b.id)),i}async function bq(){let[a,b]=await Promise.all([A("team"),A("personal")]),c=K(a,b),d=new Set(a.map(a=>a.id)),e=new Set(b.map(a=>a.id)),f=await aJ({storeMcp:[],storeSkills:[]}),g=new Map;for(let a of f.skills)"new"===a.kind&&g.set(a.item.id,{sources:a.sourceAgents,first:a.item});let h=new Set([...c.map(a=>a.id),...g.keys()]),i=[];for(let a of h){let b,f=c.find(b=>b.id===a),h=g.get(a),j=h?.sources??[],k=f?.enabledAgents??[],l=Array.from(new Set([...j,...k]));b=e.has(a)?"personal":d.has(a)?"team":"native";let m=f??h.first;i.push({id:a,name:m.name,description:m.description,authority:b,effectiveAgents:l,nativeAgents:j,enabledAgents:f?k:void 0})}return i.sort((a,b)=>a.id.localeCompare(b.id)),i}async function br(a){let b=await q("personal"),c=await q("team"),d=b.findIndex(b=>b.id===a.id),e=c.find(b=>b.id===a.id),f=[...b],g=[a.agent];if(d>=0){let b={...f[d]};a.enabled?b.enabledAgents.includes(a.agent)||(b.enabledAgents=[...b.enabledAgents,a.agent]):b.enabledAgents=b.enabledAgents.filter(b=>b!==a.agent),f[d]=b}else if(e){let b=a.enabled?Array.from(new Set([...e.enabledAgents,a.agent])):e.enabledAgents.filter(b=>b!==a.agent);f.push({...e,layer:"personal",enabledAgents:b})}else{let b=(await aJ({storeMcp:[],storeSkills:[]})).mcp.find(b=>"new"===b.kind&&b.item.id===a.id);if(!b||"new"!==b.kind)return{ok:!1,message:`Item ${a.id} not found in any agent's native config`};let c=a.enabled?Array.from(new Set([...b.sourceAgents,a.agent])):b.sourceAgents.filter(b=>b!==a.agent);f.push({...b.item,layer:"personal",enabledAgents:c}),g=Array.from(new Set([...b.sourceAgents,a.agent]))}await r("personal",f);let h=await (0,aF.RC)({reason:`toggleMcpAgent ${a.id} ${a.agent} ${a.enabled}`}).catch(()=>void 0),i=[];for(let a of g){let b=await bu(a);b&&i.push(b)}return{ok:!0,syncResult:i[0],message:h?.dir}}async function bs(a){let b=await q("personal"),c=await q("team"),e=b.find(b=>b.id===a),f=c.find(b=>b.id===a);if(!e&&f)return{ok:!1,message:"Team-layer MCPs are read-only here"};let g=e;if(!g){let b=(await aJ({storeMcp:[],storeSkills:[]})).mcp.find(b=>"new"===b.kind&&b.item.id===a);if(!b||"new"!==b.kind)return{ok:!1,message:`MCP ${a} not found`};g=b.item}let h=b.filter(b=>b.id!==a),i={...g,layer:"personal",enabledAgents:[]};await r("personal",[...h,i]);let j=await (0,aF.RC)({reason:`removeMcpEverywhere ${a}`}).catch(()=>void 0),k=[];for(let a of d.dT){let b=await bu(a);b&&k.push(b)}let l=k.flatMap(a=>a.errors.map(b=>`${a.agent}: ${b}`));return l.length>0?{ok:!1,syncResults:k,message:l.join("; ")}:(await r("personal",h),{ok:!0,syncResults:k,message:j?.dir})}async function bt(a){let b=await A("personal"),c=await A("team"),d=b.find(b=>b.id===a.id),e=c.find(b=>b.id===a.id),f=[a.agent];if(d){let b=a.enabled?Array.from(new Set([...d.enabledAgents,a.agent])):d.enabledAgents.filter(b=>b!==a.agent);await B({...d,enabledAgents:b})}else if(e){let b=a.enabled?Array.from(new Set([...e.enabledAgents,a.agent])):e.enabledAgents.filter(b=>b!==a.agent);await B({...e,layer:"personal",enabledAgents:b})}else{let b=(await aJ({storeMcp:[],storeSkills:[]})).skills.find(b=>"new"===b.kind&&b.item.id===a.id);if(!b||"new"!==b.kind)return{ok:!1,message:`Skill ${a.id} not found in any agent's native config`};let c=a.enabled?Array.from(new Set([...b.sourceAgents,a.agent])):b.sourceAgents.filter(b=>b!==a.agent);await B({...b.item,layer:"personal",enabledAgents:c}),f=Array.from(new Set([...b.sourceAgents,a.agent]))}let g=await (0,aF.RC)({reason:`toggleSkillAgent ${a.id} ${a.agent} ${a.enabled}`}).catch(()=>void 0),h=[];for(let a of f){let b=await bu(a);b&&h.push(b)}return{ok:!0,syncResult:h[0],message:g?.dir}}async function bu(a){let b=await n(),c=Y().find(b=>b.id===a);if(!c?.installed||!1===b.agents[a])return;let[d,e]=await Promise.all([q("team"),q("personal")]),[f,g]=await Promise.all([A("team"),A("personal")]),h=J(d,e),i=K(f,g),j=new Map;for(let a of i)j.set(a.id,E(a.layer,a.id));return ay[a].apply({agentId:a,mcp:h,skills:i,skillSourcePaths:j,syncStrategy:b.syncStrategy??"symlink"})}let bv=d.dT,bw=X.homedir();function bx(a){return a===bw?"~":a.startsWith(`${bw}/`)?`~/${a.slice(bw.length+1)}`:a}async function by(a){let b,c={path:a,display:bx(a),exists:!1,kind:"missing"};try{b=await e.lstat(a)}catch{return c}if(c.exists=!0,b.isSymbolicLink()){c.kind="symlink";try{let b=await e.readlink(a);c.linkTarget=f.isAbsolute(b)?b:f.resolve(f.dirname(a),b),c.linkTargetExists=await (0,h.s0)(c.linkTarget)}catch{}try{let b=await e.stat(a);c.size=b.size,c.mtime=b.mtime.toISOString()}catch{}}else if(b.isDirectory()){c.kind="dir",c.mtime=b.mtime.toISOString();try{c.entryCount=(await e.readdir(a)).filter(a=>!a.startsWith(".")&&!a.includes(".plexus-backup-")).length}catch{}}else c.kind="file",c.size=b.size,c.mtime=b.mtime.toISOString();return c}async function bz(a){let b;if(!await (0,h.s0)(a))return[];try{b=await e.readdir(a)}catch{return[]}let c=b.filter(a=>!a.startsWith(".")&&!a.includes(".plexus-backup-")).sort(),d=[];for(let b of c)d.push(await by(f.join(a,b)));return d}async function bA(a){let b=d.R6[a],c=await by(d.Qp[a]),e=aB(a)[0]?.abs??null,[f,g,h]=await Promise.all([by(b.mcpPath),e?by(e):Promise.resolve(null),by(b.skillsDir)]),i=b.skills?await bz(b.skillsDir):[];return{id:a,displayName:d.kp[a],installed:aa(a),mcpFileMode:b.mcpFileMode??"shared",root:c,mcpFile:f,instructionFile:g,skillsDir:h,skillEntries:i}}async function bB(){let a=f.join(d.BF.team,d.BF.mcpDirRel,"servers.yaml"),b=f.join(d.BF.personal,d.BF.mcpDirRel,"servers.yaml"),c=f.join(d.BF.team,d.BF.skillsDirRel),e=f.join(d.BF.personal,d.BF.skillsDirRel),[g,h,i,j,k,l,m,n,o,p,q]=await Promise.all([by(d.BF.root),by(d.BF.config),by(d.BF.team),by(d.BF.personal),by(d.BF.mcpCache),by(d.BF.backups),by(a),by(b),bz(c),bz(e),bz(d.BF.mcpCache)]),r=0;try{r=(await (0,aF.Cw)()).length}catch{}return{root:g,config:h,team:i,personal:j,cacheMcp:k,backups:l,teamMcpServers:m,personalMcpServers:n,teamSkillEntries:o,personalSkillEntries:p,cacheMcpEntries:q,backupCount:r}}async function bC(){let a=await bB(),b=await Promise.all(d.dT.map(bA));return{generatedAt:new Date().toISOString(),host:{platform:process.platform,release:X.release(),node:process.version,home:bw},plexus:a,agents:b}}function bD(a){return null==a?"":a<1024?`${a} B`:a<1048576?`${(a/1024).toFixed(1)} KB`:`${(a/1024/1024).toFixed(2)} MB`}function bE(a,b){return a.length>=b?a:a+" ".repeat(b-a.length)}function bF(a,b=0){let c=" ".repeat(b),d=bE(`${c}${a.display}`,56);if(!a.exists)return`${d} MISSING`;switch(a.kind){case"symlink":{let b=a.linkTarget?bx(a.linkTarget):"?",c=!1===a.linkTargetExists?" [DANGLING]":"",e=null!=a.size?` ${bD(a.size)} ${a.mtime??""}`:"";return`${d} LINK -> ${b}${c}${e}`.trimEnd()}case"dir":{let b=null!=a.entryCount?` (${a.entryCount} entries)`:"";return`${d} DIR${b}`}case"file":{let b=bD(a.size),c=a.mtime??"";return`${d} FILE ${bE(b,9)} ${c}`.trimEnd()}default:return`${d} MISSING`}}function bG(a,b){let c=[];for(let d of(c.push(`=== Plexus${b?` v${b}`:""} — Debug Snapshot ===`),c.push(`generated: ${a.generatedAt}`),c.push(`host: ${a.host.platform} ${a.host.release} node: ${a.host.node} home: ${a.host.home}`),c.push(""),c.push(function(a){let b=[];for(let c of(b.push("[Plexus Store]"),b.push(bF(a.root)),b.push(bF(a.config)),b.push(bF(a.team)),b.push(bF(a.teamMcpServers)),b.push(" team skills:"),0===a.teamSkillEntries.length&&b.push(" (empty)"),a.teamSkillEntries))b.push(bF(c,4));for(let c of(b.push(bF(a.personal)),b.push(bF(a.personalMcpServers)),b.push(" personal skills:"),0===a.personalSkillEntries.length&&b.push(" (empty)"),a.personalSkillEntries))b.push(bF(c,4));for(let c of(b.push(bF(a.cacheMcp)),a.cacheMcpEntries))b.push(bF(c,2));return b.push(bF(a.backups)),b.push(` snapshots: ${a.backupCount} (ring buffer keeps 20)`),b.join("\n")}(a.plexus)),a.agents))c.push(""),c.push(function(a){let b=[`[Agent: ${a.displayName} (${a.id}) | mode=${a.mcpFileMode} | installed=${a.installed}]`];if(b.push(bF(a.root)),b.push(bF(a.mcpFile)),a.instructionFile&&b.push(bF(a.instructionFile)),b.push(bF(a.skillsDir)),0===a.skillEntries.length)b.push(" (no skill entries)");else for(let c of a.skillEntries)b.push(bF(c,2));return b.join("\n")}(d));return c.push(""),c.join("\n")}},66882:(a,b,c)=>{"use strict";c.d(b,{BF:()=>h,Qp:()=>k,R6:()=>i,dT:()=>l,kp:()=>j,nV:()=>g});var d=c(48161),e=c(76760);let f=d.homedir();process.platform;let g=e.join(f,".config","plexus"),h={root:g,team:e.join(g,"team"),personal:e.join(g,"personal"),config:e.join(g,"config.yaml"),mcpDirRel:"mcp",skillsDirRel:"skills",mcpCache:e.join(g,".cache","mcp"),backups:e.join(g,"backups")},i={"claude-code":{mcp:!0,skills:!0,mcpFormat:"json",mcpPath:e.join(f,".claude.json"),skillsDir:e.join(f,".claude","skills"),mcpFileMode:"shared"},cursor:{mcp:!0,skills:!0,mcpFormat:"json",mcpPath:e.join(f,".cursor","mcp.json"),skillsDir:e.join(f,".cursor","skills"),mcpFileMode:"exclusive"},codex:{mcp:!0,skills:!0,mcpFormat:"toml",mcpPath:e.join(f,".codex","config.toml"),skillsDir:e.join(f,".codex","skills"),mcpFileMode:"shared"},"gemini-cli":{mcp:!0,skills:!0,mcpFormat:"json",mcpPath:e.join(f,".gemini","settings.json"),skillsDir:e.join(f,".gemini","skills"),mcpFileMode:"shared"},"qwen-code":{mcp:!0,skills:!0,mcpFormat:"json",mcpPath:e.join(f,".qwen","settings.json"),skillsDir:e.join(f,".qwen","skills"),mcpFileMode:"shared"},"factory-droid":{mcp:!0,skills:!0,mcpFormat:"json",mcpPath:e.join(f,".factory","mcp.json"),skillsDir:e.join(f,".factory","skills"),mcpFileMode:"exclusive"}},j={"claude-code":"Claude Code",cursor:"Cursor",codex:"Codex","gemini-cli":"Gemini CLI","qwen-code":"Qwen Code","factory-droid":"Factory Droid"},k={"claude-code":e.join(f,".claude"),cursor:e.join(f,".cursor"),codex:e.join(f,".codex"),"gemini-cli":e.join(f,".gemini"),"qwen-code":e.join(f,".qwen"),"factory-droid":e.join(f,".factory")},l=["claude-code","cursor","codex","gemini-cli","qwen-code","factory-droid"]},80408:()=>{},87032:()=>{},92071:(a,b,c)=>{"use strict";c.d(b,{Cw:()=>o,P3:()=>r,RC:()=>m,RV:()=>p,Rd:()=>i,Tz:()=>j,n5:()=>s,quarantineCollision:()=>q});var d=c(77598),e=c(51455),f=c(76760),g=c(1871),h=c(66882);let i=f.join(h.BF.backups,"_collisions"),j=f.join(h.BF.backups,"_legacy-residue"),k=/^\d{4}-\d{2}-\d{2}T/;async function l(){await (0,g.A0)(h.BF.backups);let a=new Date().toISOString().replace(/[:.]/g,"-");for(let b=0;b<1e3;b+=1){let c=0===b?a:`${a}-${String(b).padStart(3,"0")}`,d=f.join(h.BF.backups,c);try{return await e.mkdir(d,{recursive:!1}),{id:c,dir:d}}catch(a){if("EEXIST"!==a.code)throw a}}throw Error(`Could not allocate a unique backup directory for ${a}`)}async function m(a){let{id:b,dir:c}=await l();a?.reason&&await e.writeFile(f.join(c,"_reason.txt"),a.reason,"utf8").catch(()=>{});let d=[];for(let a of h.dT){let b,i=h.R6[a];if(!i.mcp||!await (0,g.s0)(i.mcpPath))continue;let j=!1;try{(j=(await e.lstat(i.mcpPath)).isSymbolicLink())&&(b=await e.readlink(i.mcpPath))}catch{continue}let k=f.extname(i.mcpPath)||".bak",l=`${a}-mcp${k}`,m=f.join(c,l);try{let c=await e.readFile(i.mcpPath);await e.writeFile(m,c),d.push({agent:a,backupPath:m,originalPath:i.mcpPath,wasSymlink:j,linkTarget:b})}catch{}}return await e.writeFile(f.join(c,"manifest.json"),JSON.stringify({id:b,createdAt:new Date().toISOString(),entries:d},null,2),"utf8"),await n(20),{dir:c,id:b,entries:d}}async function n(a){try{for(let b of(await e.readdir(h.BF.backups,{withFileTypes:!0})).filter(a=>a.isDirectory()&&k.test(a.name)).map(a=>a.name).sort().reverse().slice(a))await e.rm(f.join(h.BF.backups,b),{recursive:!0,force:!0})}catch{}}async function o(){try{let a=(await e.readdir(h.BF.backups,{withFileTypes:!0})).filter(a=>a.isDirectory()).map(a=>a.name).sort().reverse(),b=[];for(let c of a){let a=f.join(h.BF.backups,c);try{let c=await e.readFile(f.join(a,"manifest.json"),"utf8"),d=JSON.parse(c);b.push({dir:a,id:d.id,entries:d.entries})}catch{b.push({dir:a,id:c,entries:[]})}}return b}catch{return[]}}async function p(a,b){let c,h;if(!await (0,g.s0)(a))return null;let{id:i,dir:j}=await l();b&&await e.writeFile(f.join(j,"_reason.txt"),b,"utf8").catch(()=>{});let k=(c=f.parse(a),h=d.createHash("sha256").update(f.resolve(a)).digest("hex").slice(0,8),`${c.name}.${h}${c.ext||".bak"}`),m=f.join(j,k);try{let b=await e.readFile(a);return await e.writeFile(m,b),await e.writeFile(f.join(j,"manifest.json"),JSON.stringify({id:i,createdAt:new Date().toISOString(),entries:[{agent:null,backupPath:m,originalPath:a,wasSymlink:!1}]},null,2),"utf8"),await n(20),j}catch{return null}}async function q(a){if(!await (0,g.s0)(a.sourcePath))return null;let b=new Date().toISOString().replace(/[:.]/g,"-"),c=f.join(i,b,a.agent);await (0,g.A0)(c);let d=f.join(c,f.basename(a.sourcePath));try{return await e.rename(a.sourcePath,d),d}catch{try{return(await e.lstat(a.sourcePath)).isDirectory()?(await e.cp(a.sourcePath,d,{recursive:!0}),await e.rm(a.sourcePath,{recursive:!0,force:!0})):(await e.copyFile(a.sourcePath,d),await e.unlink(a.sourcePath)),d}catch{return null}}}async function r(){let a=[];for(let b of h.dT){let c,d=h.R6[b];if(d.skills&&await (0,g.s0)(d.skillsDir)){try{c=await e.readdir(d.skillsDir)}catch{continue}for(let h of c){if(!h.includes(".plexus-backup-"))continue;let c=f.join(d.skillsDir,h),i=new Date().toISOString().replace(/[:.]/g,"-"),k=f.join(j,i,b);await (0,g.A0)(k);let l=f.join(k,h);try{await e.rename(c,l),a.push({agent:b,from:c,to:l})}catch{}}}}return{moved:a}}async function s(a){let b=(await o()).find(b=>b.id===a);if(!b)return{restored:0,errors:[`No snapshot with id ${a}`]};let c=[],d=0;for(let a of b.entries)try{try{await e.unlink(a.originalPath)}catch{}let b=await e.readFile(a.backupPath);await (0,g.A0)(f.dirname(a.originalPath)),await e.writeFile(a.originalPath,b),d+=1}catch(b){c.push(`${a.agent}: ${b.message}`)}return{restored:d,errors:c}}}};
@@ -1 +1 @@
1
- globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/3oZxRMzj6ZICuj5g2RZmX/_buildManifest.js","static/3oZxRMzj6ZICuj5g2RZmX/_ssgManifest.js"],rootMainFiles:["static/chunks/webpack-59c0cf3deef5f26f.js","static/chunks/87c73c54-f46fec743414da25.js","static/chunks/1968-5981314117a6ea1f.js","static/chunks/main-app-e8d8ab3098122763.js"],rootMainFilesTree:{},pages:{"/_app":[]}};
1
+ globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/oxgopplNOcRDrZ6-JSWy_/_buildManifest.js","static/oxgopplNOcRDrZ6-JSWy_/_ssgManifest.js"],rootMainFiles:["static/chunks/webpack-59c0cf3deef5f26f.js","static/chunks/87c73c54-f46fec743414da25.js","static/chunks/1968-5981314117a6ea1f.js","static/chunks/main-app-e8d8ab3098122763.js"],rootMainFilesTree:{},pages:{"/_app":[]}};