plexus-agent-config 0.0.2 → 0.0.4

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 (160) hide show
  1. package/dist/bin.js +2 -1
  2. package/dist/bin.js.map +1 -1
  3. package/package.json +2 -10
  4. package/vendor/plexus-agent-config-core/package.json +1 -1
  5. package/vendor/plexus-agent-config-web/.next/BUILD_ID +1 -1
  6. package/vendor/plexus-agent-config-web/.next/app-path-routes-manifest.json +7 -7
  7. package/vendor/plexus-agent-config-web/.next/build-manifest.json +2 -2
  8. package/vendor/plexus-agent-config-web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  9. package/vendor/plexus-agent-config-web/.next/server/app/_global-error.html +1 -1
  10. package/vendor/plexus-agent-config-web/.next/server/app/_global-error.rsc +1 -1
  11. package/vendor/plexus-agent-config-web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  12. package/vendor/plexus-agent-config-web/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  13. package/vendor/plexus-agent-config-web/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  14. package/vendor/plexus-agent-config-web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  15. package/vendor/plexus-agent-config-web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  16. package/vendor/plexus-agent-config-web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  17. package/vendor/plexus-agent-config-web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  18. package/vendor/plexus-agent-config-web/.next/server/app/about/page_client-reference-manifest.js +1 -1
  19. package/vendor/plexus-agent-config-web/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  20. package/vendor/plexus-agent-config-web/.next/server/app/api/debug/route.js +1 -1
  21. package/vendor/plexus-agent-config-web/.next/server/app/backups/page_client-reference-manifest.js +1 -1
  22. package/vendor/plexus-agent-config-web/.next/server/app/debug/page.js +1 -1
  23. package/vendor/plexus-agent-config-web/.next/server/app/debug/page_client-reference-manifest.js +1 -1
  24. package/vendor/plexus-agent-config-web/.next/server/app/mcp/page_client-reference-manifest.js +1 -1
  25. package/vendor/plexus-agent-config-web/.next/server/app/mirror/page_client-reference-manifest.js +1 -1
  26. package/vendor/plexus-agent-config-web/.next/server/app/page_client-reference-manifest.js +1 -1
  27. package/vendor/plexus-agent-config-web/.next/server/app/rules/page_client-reference-manifest.js +1 -1
  28. package/vendor/plexus-agent-config-web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  29. package/vendor/plexus-agent-config-web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  30. package/vendor/plexus-agent-config-web/.next/server/app/spread/page_client-reference-manifest.js +1 -1
  31. package/vendor/plexus-agent-config-web/.next/server/app/team/page_client-reference-manifest.js +1 -1
  32. package/vendor/plexus-agent-config-web/.next/server/app-paths-manifest.json +7 -7
  33. package/vendor/plexus-agent-config-web/.next/server/chunks/620.js +1 -1
  34. package/vendor/plexus-agent-config-web/.next/server/middleware-build-manifest.js +1 -1
  35. package/vendor/plexus-agent-config-web/.next/server/pages/500.html +1 -1
  36. package/vendor/plexus-agent-config-web/.next/static/chunks/app/{layout-2d0506b46622a8c9.js → layout-60f950c38a06198d.js} +1 -1
  37. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/agents/adapters/base.d.ts +38 -0
  38. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/agents/adapters/base.d.ts.map +1 -0
  39. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/agents/adapters/base.js +125 -0
  40. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/agents/adapters/base.js.map +1 -0
  41. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/agents/adapters/codex.d.ts +9 -0
  42. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/agents/adapters/codex.d.ts.map +1 -0
  43. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/agents/adapters/codex.js +96 -0
  44. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/agents/adapters/codex.js.map +1 -0
  45. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/agents/adapters/index.d.ts +8 -0
  46. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/agents/adapters/index.d.ts.map +1 -0
  47. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/agents/adapters/index.js +12 -0
  48. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/agents/adapters/index.js.map +1 -0
  49. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/agents/adapters/json-mcp.d.ts +25 -0
  50. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/agents/adapters/json-mcp.d.ts.map +1 -0
  51. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/agents/adapters/json-mcp.js +182 -0
  52. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/agents/adapters/json-mcp.js.map +1 -0
  53. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/agents/catalog.d.ts +15 -0
  54. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/agents/catalog.d.ts.map +1 -0
  55. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/agents/catalog.js +153 -0
  56. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/agents/catalog.js.map +1 -0
  57. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/agents/detect.d.ts +14 -0
  58. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/agents/detect.d.ts.map +1 -0
  59. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/agents/detect.js +92 -0
  60. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/agents/detect.js.map +1 -0
  61. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/agents/index.d.ts +5 -0
  62. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/agents/index.d.ts.map +1 -0
  63. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/agents/index.js +5 -0
  64. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/agents/index.js.map +1 -0
  65. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/agents/inspect.d.ts +74 -0
  66. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/agents/inspect.d.ts.map +1 -0
  67. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/agents/inspect.js +169 -0
  68. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/agents/inspect.js.map +1 -0
  69. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/backup/index.d.ts +70 -0
  70. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/backup/index.d.ts.map +1 -0
  71. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/backup/index.js +258 -0
  72. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/backup/index.js.map +1 -0
  73. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/debug/index.d.ts +71 -0
  74. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/debug/index.d.ts.map +1 -0
  75. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/debug/index.js +263 -0
  76. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/debug/index.js.map +1 -0
  77. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/effective/index.d.ts +65 -0
  78. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/effective/index.d.ts.map +1 -0
  79. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/effective/index.js +227 -0
  80. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/effective/index.js.map +1 -0
  81. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/import/from-agents.d.ts +59 -0
  82. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/import/from-agents.d.ts.map +1 -0
  83. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/import/from-agents.js +212 -0
  84. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/import/from-agents.js.map +1 -0
  85. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/import/index.d.ts +26 -0
  86. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/import/index.d.ts.map +1 -0
  87. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/import/index.js +100 -0
  88. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/import/index.js.map +1 -0
  89. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/index.d.ts +12 -0
  90. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/index.d.ts.map +1 -0
  91. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/index.js +12 -0
  92. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/index.js.map +1 -0
  93. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/rules/index.d.ts +6 -0
  94. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/rules/index.d.ts.map +1 -0
  95. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/rules/index.js +292 -0
  96. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/rules/index.js.map +1 -0
  97. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/spread/index.d.ts +38 -0
  98. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/spread/index.d.ts.map +1 -0
  99. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/spread/index.js +190 -0
  100. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/spread/index.js.map +1 -0
  101. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/store/config.d.ts +5 -0
  102. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/store/config.d.ts.map +1 -0
  103. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/store/config.js +62 -0
  104. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/store/config.js.map +1 -0
  105. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/store/custom-agents.d.ts +45 -0
  106. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/store/custom-agents.d.ts.map +1 -0
  107. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/store/custom-agents.js +103 -0
  108. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/store/custom-agents.js.map +1 -0
  109. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/store/fs-utils.d.ts +16 -0
  110. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/store/fs-utils.d.ts.map +1 -0
  111. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/store/fs-utils.js +45 -0
  112. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/store/fs-utils.js.map +1 -0
  113. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/store/index.d.ts +9 -0
  114. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/store/index.d.ts.map +1 -0
  115. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/store/index.js +9 -0
  116. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/store/index.js.map +1 -0
  117. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/store/mcp.d.ts +5 -0
  118. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/store/mcp.d.ts.map +1 -0
  119. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/store/mcp.js +30 -0
  120. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/store/mcp.js.map +1 -0
  121. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/store/merge.d.ts +15 -0
  122. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/store/merge.d.ts.map +1 -0
  123. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/store/merge.js +28 -0
  124. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/store/merge.js.map +1 -0
  125. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/store/paths.d.ts +22 -0
  126. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/store/paths.d.ts.map +1 -0
  127. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/store/paths.js +107 -0
  128. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/store/paths.js.map +1 -0
  129. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/store/rules.d.ts +12 -0
  130. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/store/rules.d.ts.map +1 -0
  131. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/store/rules.js +32 -0
  132. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/store/rules.js.map +1 -0
  133. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/store/scaffolding.d.ts +11 -0
  134. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/store/scaffolding.d.ts.map +1 -0
  135. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/store/scaffolding.js +32 -0
  136. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/store/scaffolding.js.map +1 -0
  137. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/store/skills.d.ts +13 -0
  138. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/store/skills.d.ts.map +1 -0
  139. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/store/skills.js +84 -0
  140. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/store/skills.js.map +1 -0
  141. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/sync/index.d.ts +89 -0
  142. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/sync/index.d.ts.map +1 -0
  143. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/sync/index.js +423 -0
  144. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/sync/index.js.map +1 -0
  145. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/team/git.d.ts +23 -0
  146. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/team/git.d.ts.map +1 -0
  147. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/team/git.js +132 -0
  148. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/team/git.js.map +1 -0
  149. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/team/index.d.ts +2 -0
  150. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/team/index.d.ts.map +1 -0
  151. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/team/index.js +2 -0
  152. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/team/index.js.map +1 -0
  153. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/types.d.ts +142 -0
  154. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/types.d.ts.map +1 -0
  155. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/types.js +13 -0
  156. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/dist/types.js.map +1 -0
  157. package/vendor/plexus-agent-config-web/node_modules/plexus-agent-config-core/package.json +29 -0
  158. package/vendor/plexus-agent-config-web/package.json +1 -1
  159. /package/vendor/plexus-agent-config-web/.next/static/{FKr7yvzxSzNS1oAjTyP1N → v1aj22QNmPE-dQiztsZVd}/_buildManifest.js +0 -0
  160. /package/vendor/plexus-agent-config-web/.next/static/{FKr7yvzxSzNS1oAjTyP1N → v1aj22QNmPE-dQiztsZVd}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/store/skills.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAWzD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG;IAC/C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,IAAI,EAAE,MAAM,CAAC;CACd,CASA;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAS9D;AAED,wBAAsB,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CA0BxE;AAED,wBAAsB,UAAU,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAM/D;AAED,wBAAsB,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKpF;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAGzD;AAED,8EAA8E;AAC9E,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjF"}
@@ -0,0 +1,84 @@
1
+ import fs from "node:fs/promises";
2
+ import path from "node:path";
3
+ import YAML from "yaml";
4
+ import { ensureDir, pathExists } from "./fs-utils.js";
5
+ import { ALL_AGENTS, PLEXUS_PATHS } from "./paths.js";
6
+ import { ensureStoreScaffolding, layerRoot } from "./scaffolding.js";
7
+ function skillsRoot(layer) {
8
+ return path.join(layerRoot(layer), PLEXUS_PATHS.skillsDirRel);
9
+ }
10
+ const FRONTMATTER_RE = /^---\n([\s\S]*?)\n---\n?([\s\S]*)$/;
11
+ export function parseSkillMarkdown(raw) {
12
+ const m = raw.match(FRONTMATTER_RE);
13
+ if (!m)
14
+ return { frontmatter: {}, body: raw };
15
+ try {
16
+ const fm = YAML.parse(m[1]) ?? {};
17
+ return { frontmatter: fm, body: m[2] };
18
+ }
19
+ catch {
20
+ return { frontmatter: {}, body: raw };
21
+ }
22
+ }
23
+ export function serializeSkillMarkdown(skill) {
24
+ const fm = {
25
+ ...(skill.frontmatter ?? {}),
26
+ name: skill.name,
27
+ description: skill.description ?? "",
28
+ plexus_id: skill.id,
29
+ plexus_enabled_agents: skill.enabledAgents,
30
+ };
31
+ return `---\n${YAML.stringify(fm).trim()}\n---\n${skill.body.trimStart()}`;
32
+ }
33
+ export async function readSkills(layer) {
34
+ await ensureStoreScaffolding();
35
+ const root = skillsRoot(layer);
36
+ if (!(await pathExists(root)))
37
+ return [];
38
+ const entries = await fs.readdir(root, { withFileTypes: true });
39
+ const skills = [];
40
+ for (const entry of entries) {
41
+ if (!entry.isDirectory())
42
+ continue;
43
+ const skillFile = path.join(root, entry.name, "SKILL.md");
44
+ if (!(await pathExists(skillFile)))
45
+ continue;
46
+ const raw = await fs.readFile(skillFile, "utf8");
47
+ const { frontmatter, body } = parseSkillMarkdown(raw);
48
+ const enabledFromFm = Array.isArray(frontmatter.plexus_enabled_agents)
49
+ ? frontmatter.plexus_enabled_agents
50
+ : ALL_AGENTS;
51
+ skills.push({
52
+ id: frontmatter.plexus_id ?? entry.name,
53
+ name: frontmatter.name ?? entry.name,
54
+ description: frontmatter.description ?? undefined,
55
+ body,
56
+ frontmatter,
57
+ layer,
58
+ enabledAgents: enabledFromFm.filter((a) => ALL_AGENTS.includes(a)),
59
+ });
60
+ }
61
+ return skills;
62
+ }
63
+ export async function writeSkill(skill) {
64
+ await ensureStoreScaffolding();
65
+ const root = skillsRoot(skill.layer);
66
+ const dir = path.join(root, skill.id);
67
+ await ensureDir(dir);
68
+ await fs.writeFile(path.join(dir, "SKILL.md"), serializeSkillMarkdown(skill), "utf8");
69
+ }
70
+ export async function deleteSkill(layer, skillId) {
71
+ const dir = path.join(skillsRoot(layer), skillId);
72
+ if (await pathExists(dir)) {
73
+ await fs.rm(dir, { recursive: true, force: true });
74
+ }
75
+ }
76
+ export async function readAllSkills() {
77
+ const [team, personal] = await Promise.all([readSkills("team"), readSkills("personal")]);
78
+ return [...team, ...personal];
79
+ }
80
+ /** Resolve the on-disk source directory for a single skill (used by sync). */
81
+ export function resolveSkillSourceDir(layer, skillId) {
82
+ return path.join(skillsRoot(layer), skillId);
83
+ }
84
+ //# sourceMappingURL=skills.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/store/skills.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ import type { AgentId, MCPServerDef, RulesApplyResult, SkillDef, SyncReport } from "../types.js";
2
+ /**
3
+ * Run a full sync: load merged MCP + skills, apply to every enabled
4
+ * AND installed agent.
5
+ *
6
+ * Before any write, snapshot every agent's current MCP file under
7
+ * ~/.config/plexus/backups/<ts>/ so the user can recover from a bad change.
8
+ */
9
+ export declare function runSync(only?: AgentId[]): Promise<SyncReport & {
10
+ backup?: string;
11
+ }>;
12
+ export declare function previewMerged(): Promise<{
13
+ mcp: MCPServerDef[];
14
+ skills: SkillDef[];
15
+ }>;
16
+ export interface ShareImportStats {
17
+ mcpWritten: number;
18
+ mcpExtended: number;
19
+ skillsWritten: number;
20
+ skillsExtended: number;
21
+ }
22
+ export interface ShareSourceSummary {
23
+ agent: AgentId;
24
+ mcp: number;
25
+ skills: number;
26
+ rules: boolean;
27
+ total: number;
28
+ }
29
+ export interface ShareConflictSummary {
30
+ id: string;
31
+ sources: AgentId[];
32
+ preferredAgent?: AgentId;
33
+ }
34
+ export interface SharePlan {
35
+ targetAgents: AgentId[];
36
+ sources: ShareSourceSummary[];
37
+ recommendedPrimaryAgent?: AgentId;
38
+ selectedPrimaryAgent?: AgentId;
39
+ conflictCount: number;
40
+ mcp: {
41
+ safe: number;
42
+ conflicts: ShareConflictSummary[];
43
+ };
44
+ skills: {
45
+ safe: number;
46
+ conflicts: ShareConflictSummary[];
47
+ };
48
+ rules: {
49
+ sources: AgentId[];
50
+ conflict: boolean;
51
+ preferredAgent?: AgentId;
52
+ };
53
+ }
54
+ export interface ShareAllOptions {
55
+ only?: AgentId[];
56
+ preferredAgent?: AgentId;
57
+ }
58
+ export interface ShareAllReport extends SyncReport {
59
+ mode: "share-all";
60
+ targetAgents: AgentId[];
61
+ imported: ShareImportStats;
62
+ shared: {
63
+ mcp: number;
64
+ skills: number;
65
+ };
66
+ plan: SharePlan;
67
+ preferredAgent?: AgentId;
68
+ conflictsResolved: number;
69
+ rules: {
70
+ applied: RulesApplyResult[];
71
+ importedFrom?: AgentId;
72
+ skipped?: string;
73
+ };
74
+ backup?: string;
75
+ }
76
+ export declare function previewShareAll(options?: ShareAllOptions): Promise<SharePlan>;
77
+ /**
78
+ * One-click sharing flow for the dashboard and CLI.
79
+ *
80
+ * This intentionally does more than the lower-level `runSync()`:
81
+ * 1. Smart-merge native MCP/skills from every enabled installed agent.
82
+ * 2. Preserve unique items from every source, resolving same-id conflicts
83
+ * with the selected Primary Agent.
84
+ * 3. Enable every personal/team MCP and skill for every installed enabled agent.
85
+ * 4. Ensure a personal rules baseline exists, then apply it to every target.
86
+ * 5. Run the normal MCP/skills sync.
87
+ */
88
+ export declare function runShareAll(input?: AgentId[] | ShareAllOptions): Promise<ShareAllReport>;
89
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEjG;;;;;;GAMG;AACH,wBAAsB,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,UAAU,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAoDzF;AAED,wBAAsB,aAAa;;;GAYlC;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,OAAO,EAAE,CAAC;IACxB,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE;QACH,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,oBAAoB,EAAE,CAAC;KACnC,CAAC;IACF,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,oBAAoB,EAAE,CAAC;KACnC,CAAC;IACF,KAAK,EAAE;QACL,OAAO,EAAE,OAAO,EAAE,CAAC;QACnB,QAAQ,EAAE,OAAO,CAAC;QAClB,cAAc,CAAC,EAAE,OAAO,CAAC;KAC1B,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,IAAI,EAAE,WAAW,CAAC;IAClB,YAAY,EAAE,OAAO,EAAE,CAAC;IACxB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,MAAM,EAAE;QACN,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,IAAI,EAAE,SAAS,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE;QACL,OAAO,EAAE,gBAAgB,EAAE,CAAC;QAC5B,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA6SD,wBAAsB,eAAe,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,CAEnF;AAoGD;;;;;;;;;;GAUG;AACH,wBAAsB,WAAW,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,GAAG,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAsC9F"}
@@ -0,0 +1,423 @@
1
+ import fs from "node:fs/promises";
2
+ import { adapters } from "../agents/adapters/index.js";
3
+ import { detectAgents } from "../agents/detect.js";
4
+ import { instructionsForAgent } from "../agents/inspect.js";
5
+ import { cleanupLegacyResidue, snapshotAgentConfigs } from "../backup/index.js";
6
+ import { readNativeMcpFromAgent, readNativeSkillsFromAgent } from "../import/from-agents.js";
7
+ import { applyRulesToAgents } from "../rules/index.js";
8
+ import { readConfig } from "../store/config.js";
9
+ import { readAllMCP, readMCP, writeMCP } from "../store/mcp.js";
10
+ import { mergeMCP, mergeSkills } from "../store/merge.js";
11
+ import { ALL_AGENTS } from "../store/paths.js";
12
+ import { readEffectiveRules, readRules, writePersonalRules } from "../store/rules.js";
13
+ import { readAllSkills, readSkills, resolveSkillSourceDir, writeSkill } from "../store/skills.js";
14
+ /**
15
+ * Run a full sync: load merged MCP + skills, apply to every enabled
16
+ * AND installed agent.
17
+ *
18
+ * Before any write, snapshot every agent's current MCP file under
19
+ * ~/.config/plexus/backups/<ts>/ so the user can recover from a bad change.
20
+ */
21
+ export async function runSync(only) {
22
+ const startedAt = new Date().toISOString();
23
+ const config = await readConfig();
24
+ const detected = detectAgents();
25
+ // Snapshot before we touch anything.
26
+ const backup = await snapshotAgentConfigs({
27
+ reason: only ? `partial sync: ${only.join(",")}` : "full sync",
28
+ }).catch(() => undefined);
29
+ // One-shot cleanup of pre-v0.0.2 inline `.plexus-backup-*` residue.
30
+ await cleanupLegacyResidue().catch(() => undefined);
31
+ const [teamMcp, personalMcp, teamSkills, personalSkills] = await Promise.all([
32
+ readMCP("team"),
33
+ readMCP("personal"),
34
+ readSkills("team"),
35
+ readSkills("personal"),
36
+ ]);
37
+ const mcp = mergeMCP(teamMcp, personalMcp);
38
+ const skills = mergeSkills(teamSkills, personalSkills);
39
+ // Build a map of skillId -> on-disk source dir
40
+ const skillSourcePaths = new Map();
41
+ for (const s of skills) {
42
+ skillSourcePaths.set(s.id, resolveSkillSourceDir(s.layer, s.id));
43
+ }
44
+ const targets = (only && only.length > 0 ? only : ALL_AGENTS).filter((id) => {
45
+ const d = detected.find((x) => x.id === id);
46
+ return d?.installed && config.agents[id] !== false;
47
+ });
48
+ const results = await Promise.all(targets.map((id) => adapters[id].apply({
49
+ agentId: id,
50
+ mcp,
51
+ skills,
52
+ skillSourcePaths,
53
+ syncStrategy: config.syncStrategy ?? "symlink",
54
+ })));
55
+ return {
56
+ results,
57
+ startedAt,
58
+ finishedAt: new Date().toISOString(),
59
+ backup: backup?.dir,
60
+ };
61
+ }
62
+ export async function previewMerged() {
63
+ const [mcp, skills] = await Promise.all([readAllMCP(), readAllSkills()]);
64
+ return {
65
+ mcp: mergeMCP(mcp.filter((m) => m.layer === "team"), mcp.filter((m) => m.layer === "personal")),
66
+ skills: mergeSkills(skills.filter((s) => s.layer === "team"), skills.filter((s) => s.layer === "personal")),
67
+ };
68
+ }
69
+ const AGENT_PRIORITY = [
70
+ "codex",
71
+ "claude-code",
72
+ "cursor",
73
+ "gemini-cli",
74
+ "qwen-code",
75
+ "factory-droid",
76
+ ];
77
+ function normalizeShareOptions(input) {
78
+ return Array.isArray(input) ? { only: input } : (input ?? {});
79
+ }
80
+ async function getSyncTargets(only) {
81
+ const config = await readConfig();
82
+ const detected = detectAgents();
83
+ return (only && only.length > 0 ? only : ALL_AGENTS).filter((id) => {
84
+ const d = detected.find((x) => x.id === id);
85
+ return d?.installed && config.agents[id] !== false;
86
+ });
87
+ }
88
+ function withTargets(item, targets) {
89
+ return { ...item, enabledAgents: [...targets] };
90
+ }
91
+ function sortedAgents(agents) {
92
+ return [...new Set(agents)].sort((a, b) => AGENT_PRIORITY.indexOf(a) - AGENT_PRIORITY.indexOf(b) || a.localeCompare(b));
93
+ }
94
+ function sortJson(value) {
95
+ if (Array.isArray(value))
96
+ return value.map(sortJson);
97
+ if (value && typeof value === "object") {
98
+ const record = value;
99
+ const out = {};
100
+ for (const key of Object.keys(record).sort()) {
101
+ const child = record[key];
102
+ if (child !== undefined)
103
+ out[key] = sortJson(child);
104
+ }
105
+ return out;
106
+ }
107
+ return value;
108
+ }
109
+ function fingerprint(value) {
110
+ return JSON.stringify(sortJson(value));
111
+ }
112
+ function mcpFingerprint(item) {
113
+ return fingerprint({
114
+ command: item.command,
115
+ args: item.args ?? [],
116
+ env: item.env ?? {},
117
+ url: item.url ?? "",
118
+ httpUrl: item.httpUrl ?? "",
119
+ headers: item.headers ?? {},
120
+ });
121
+ }
122
+ function skillFingerprint(item) {
123
+ const frontmatter = Object.fromEntries(Object.entries(item.frontmatter ?? {}).filter(([key]) => key !== "plexus_enabled_agents" && key !== "plexus_id"));
124
+ return fingerprint({
125
+ name: item.name,
126
+ description: item.description ?? "",
127
+ body: item.body,
128
+ frontmatter,
129
+ });
130
+ }
131
+ function addVariant(groups, item, source, itemFingerprint) {
132
+ const group = groups.get(item.id) ?? { id: item.id, variants: [] };
133
+ const variant = group.variants.find((entry) => entry.fingerprint === itemFingerprint);
134
+ if (variant) {
135
+ if (!variant.sources.includes(source))
136
+ variant.sources.push(source);
137
+ }
138
+ else {
139
+ group.variants.push({ item, sources: [source], fingerprint: itemFingerprint });
140
+ }
141
+ groups.set(item.id, group);
142
+ }
143
+ function bestAgentFromSources(sources) {
144
+ return [...sources]
145
+ .filter((source) => source.total > 0)
146
+ .sort((a, b) => b.total - a.total ||
147
+ AGENT_PRIORITY.indexOf(a.agent) - AGENT_PRIORITY.indexOf(b.agent) ||
148
+ a.agent.localeCompare(b.agent))[0]?.agent;
149
+ }
150
+ function variantPriority(variant) {
151
+ return Math.min(...variant.sources.map((source) => AGENT_PRIORITY.indexOf(source)));
152
+ }
153
+ function chooseVariant(variants, preferredAgent) {
154
+ if (preferredAgent) {
155
+ const preferred = variants.find((variant) => variant.sources.includes(preferredAgent));
156
+ if (preferred)
157
+ return preferred;
158
+ }
159
+ const selected = [...variants].sort((a, b) => b.sources.length - a.sources.length ||
160
+ variantPriority(a) - variantPriority(b) ||
161
+ a.fingerprint.localeCompare(b.fingerprint))[0];
162
+ if (!selected)
163
+ throw new Error("Cannot choose from an empty native config group");
164
+ return selected;
165
+ }
166
+ function preferredAgentForVariant(variant, preferredAgent) {
167
+ if (preferredAgent && variant.sources.includes(preferredAgent))
168
+ return preferredAgent;
169
+ const [agent] = sortedAgents(variant.sources);
170
+ if (!agent)
171
+ throw new Error("Cannot summarize a native config variant with no sources");
172
+ return agent;
173
+ }
174
+ async function readRulesSources(targets) {
175
+ const sources = [];
176
+ for (const agent of targets) {
177
+ const [instruction] = instructionsForAgent(agent);
178
+ if (!instruction)
179
+ continue;
180
+ try {
181
+ const content = await fs.readFile(instruction.abs, "utf8");
182
+ if (content.trim().length === 0)
183
+ continue;
184
+ sources.push({ agent, content, fingerprint: fingerprint(content) });
185
+ }
186
+ catch {
187
+ // Agent has no readable instruction file yet.
188
+ }
189
+ }
190
+ return sources;
191
+ }
192
+ function chooseRulesSource(sources, preferredAgent) {
193
+ if (preferredAgent) {
194
+ const preferred = sources.find((source) => source.agent === preferredAgent);
195
+ if (preferred)
196
+ return preferred;
197
+ }
198
+ return [...sources].sort((a, b) => AGENT_PRIORITY.indexOf(a.agent) - AGENT_PRIORITY.indexOf(b.agent) ||
199
+ a.agent.localeCompare(b.agent))[0];
200
+ }
201
+ async function collectNativeShareState(targets) {
202
+ const mcpGroups = new Map();
203
+ const skillGroups = new Map();
204
+ const rulesSources = await readRulesSources(targets);
205
+ const sourceSummaries = [];
206
+ for (const agent of targets) {
207
+ const [nativeMcp, nativeSkills] = await Promise.all([
208
+ readNativeMcpFromAgent(agent),
209
+ readNativeSkillsFromAgent(agent),
210
+ ]);
211
+ for (const server of nativeMcp) {
212
+ const item = {
213
+ id: server.id,
214
+ command: server.command,
215
+ args: server.args,
216
+ env: server.env,
217
+ url: server.url,
218
+ httpUrl: server.httpUrl,
219
+ headers: server.headers,
220
+ layer: "personal",
221
+ enabledAgents: [agent],
222
+ };
223
+ addVariant(mcpGroups, item, agent, mcpFingerprint(item));
224
+ }
225
+ for (const skill of nativeSkills) {
226
+ const item = { ...skill, layer: "personal", enabledAgents: [agent] };
227
+ addVariant(skillGroups, item, agent, skillFingerprint(item));
228
+ }
229
+ const hasRules = rulesSources.some((source) => source.agent === agent);
230
+ sourceSummaries.push({
231
+ agent,
232
+ mcp: nativeMcp.length,
233
+ skills: nativeSkills.length,
234
+ rules: hasRules,
235
+ total: nativeMcp.length + nativeSkills.length + (hasRules ? 1 : 0),
236
+ });
237
+ }
238
+ return { sourceSummaries, mcpGroups, skillGroups, rulesSources };
239
+ }
240
+ function summarizeConflicts(groups, preferredAgent) {
241
+ const conflicts = [];
242
+ for (const group of groups.values()) {
243
+ if (group.variants.length <= 1)
244
+ continue;
245
+ const selected = chooseVariant(group.variants, preferredAgent);
246
+ conflicts.push({
247
+ id: group.id,
248
+ sources: sortedAgents(group.variants.flatMap((variant) => variant.sources)),
249
+ preferredAgent: preferredAgentForVariant(selected, preferredAgent),
250
+ });
251
+ }
252
+ return conflicts.sort((a, b) => a.id.localeCompare(b.id));
253
+ }
254
+ function countSafeGroups(groups) {
255
+ return [...groups.values()].filter((group) => group.variants.length === 1).length;
256
+ }
257
+ function buildSharePlan(targetAgents, state, selectedPrimaryAgent) {
258
+ const recommendedPrimaryAgent = bestAgentFromSources(state.sourceSummaries);
259
+ const ruleFingerprints = new Set(state.rulesSources.map((source) => source.fingerprint));
260
+ const rulesSource = chooseRulesSource(state.rulesSources, selectedPrimaryAgent);
261
+ const mcpConflicts = summarizeConflicts(state.mcpGroups, selectedPrimaryAgent);
262
+ const skillConflicts = summarizeConflicts(state.skillGroups, selectedPrimaryAgent);
263
+ const rulesConflict = ruleFingerprints.size > 1;
264
+ return {
265
+ targetAgents,
266
+ sources: state.sourceSummaries,
267
+ recommendedPrimaryAgent,
268
+ selectedPrimaryAgent,
269
+ conflictCount: mcpConflicts.length + skillConflicts.length + (rulesConflict ? 1 : 0),
270
+ mcp: {
271
+ safe: countSafeGroups(state.mcpGroups),
272
+ conflicts: mcpConflicts,
273
+ },
274
+ skills: {
275
+ safe: countSafeGroups(state.skillGroups),
276
+ conflicts: skillConflicts,
277
+ },
278
+ rules: {
279
+ sources: sortedAgents(state.rulesSources.map((source) => source.agent)),
280
+ conflict: rulesConflict,
281
+ preferredAgent: rulesSource?.agent,
282
+ },
283
+ };
284
+ }
285
+ async function planShareAll(options) {
286
+ const targetAgents = await getSyncTargets(options?.only);
287
+ const state = await collectNativeShareState(targetAgents);
288
+ const initial = buildSharePlan(targetAgents, state, options?.preferredAgent);
289
+ const primaryAgent = options?.preferredAgent ?? initial.recommendedPrimaryAgent;
290
+ const plan = buildSharePlan(targetAgents, state, primaryAgent);
291
+ return { targetAgents, state, plan, primaryAgent };
292
+ }
293
+ export async function previewShareAll(options) {
294
+ return (await planShareAll(options)).plan;
295
+ }
296
+ function importStats(state, existingMcpIds, existingSkillIds) {
297
+ const stats = {
298
+ mcpWritten: 0,
299
+ mcpExtended: 0,
300
+ skillsWritten: 0,
301
+ skillsExtended: 0,
302
+ };
303
+ for (const id of state.mcpGroups.keys()) {
304
+ if (existingMcpIds.has(id))
305
+ stats.mcpExtended += 1;
306
+ else
307
+ stats.mcpWritten += 1;
308
+ }
309
+ for (const id of state.skillGroups.keys()) {
310
+ if (existingSkillIds.has(id))
311
+ stats.skillsExtended += 1;
312
+ else
313
+ stats.skillsWritten += 1;
314
+ }
315
+ return stats;
316
+ }
317
+ async function applySmartMergeToStore(targets, state, preferredAgent) {
318
+ if (targets.length === 0) {
319
+ return {
320
+ imported: { mcpWritten: 0, mcpExtended: 0, skillsWritten: 0, skillsExtended: 0 },
321
+ mcpShared: 0,
322
+ skillsShared: 0,
323
+ };
324
+ }
325
+ const [teamMcp, personalMcp, teamSkills, personalSkills] = await Promise.all([
326
+ readMCP("team"),
327
+ readMCP("personal"),
328
+ readSkills("team"),
329
+ readSkills("personal"),
330
+ ]);
331
+ const storeMcp = mergeMCP(teamMcp, personalMcp);
332
+ const storeSkills = mergeSkills(teamSkills, personalSkills);
333
+ const imported = importStats(state, new Set(storeMcp.map((item) => item.id)), new Set(storeSkills.map((item) => item.id)));
334
+ const nextMcpById = new Map();
335
+ for (const item of storeMcp) {
336
+ nextMcpById.set(item.id, withTargets({ ...item, layer: "personal" }, targets));
337
+ }
338
+ for (const group of state.mcpGroups.values()) {
339
+ if (nextMcpById.has(group.id))
340
+ continue;
341
+ const selected = chooseVariant(group.variants, preferredAgent);
342
+ nextMcpById.set(group.id, withTargets({ ...selected.item, layer: "personal" }, targets));
343
+ }
344
+ const nextSkillsById = new Map();
345
+ for (const item of storeSkills) {
346
+ nextSkillsById.set(item.id, withTargets({ ...item, layer: "personal" }, targets));
347
+ }
348
+ for (const group of state.skillGroups.values()) {
349
+ if (nextSkillsById.has(group.id))
350
+ continue;
351
+ const selected = chooseVariant(group.variants, preferredAgent);
352
+ nextSkillsById.set(group.id, withTargets({ ...selected.item, layer: "personal" }, targets));
353
+ }
354
+ const nextMcp = [...nextMcpById.values()].sort((a, b) => a.id.localeCompare(b.id));
355
+ const nextSkills = [...nextSkillsById.values()].sort((a, b) => a.id.localeCompare(b.id));
356
+ await writeMCP("personal", nextMcp);
357
+ for (const item of nextSkills) {
358
+ await writeSkill(item);
359
+ }
360
+ return { imported, mcpShared: nextMcp.length, skillsShared: nextSkills.length };
361
+ }
362
+ async function ensurePersonalRules(state, preferredAgent) {
363
+ const personal = await readRules("personal");
364
+ if (personal)
365
+ return undefined;
366
+ const effective = await readEffectiveRules();
367
+ if (effective) {
368
+ await writePersonalRules(effective.content);
369
+ return undefined;
370
+ }
371
+ const source = chooseRulesSource(state.rulesSources, preferredAgent);
372
+ if (!source)
373
+ return undefined;
374
+ await writePersonalRules(source.content);
375
+ return source.agent;
376
+ }
377
+ /**
378
+ * One-click sharing flow for the dashboard and CLI.
379
+ *
380
+ * This intentionally does more than the lower-level `runSync()`:
381
+ * 1. Smart-merge native MCP/skills from every enabled installed agent.
382
+ * 2. Preserve unique items from every source, resolving same-id conflicts
383
+ * with the selected Primary Agent.
384
+ * 3. Enable every personal/team MCP and skill for every installed enabled agent.
385
+ * 4. Ensure a personal rules baseline exists, then apply it to every target.
386
+ * 5. Run the normal MCP/skills sync.
387
+ */
388
+ export async function runShareAll(input) {
389
+ const options = normalizeShareOptions(input);
390
+ const startedAt = new Date().toISOString();
391
+ const { targetAgents, state, plan, primaryAgent } = await planShareAll(options);
392
+ const [{ imported, mcpShared, skillsShared }, importedRulesFrom] = await Promise.all([
393
+ applySmartMergeToStore(targetAgents, state, primaryAgent),
394
+ ensurePersonalRules(state, primaryAgent),
395
+ ]);
396
+ const [sync, rulesApplied] = await Promise.all([
397
+ runSync(targetAgents),
398
+ readRules("personal").then((rules) => (rules ? applyRulesToAgents(targetAgents) : undefined)),
399
+ ]);
400
+ return {
401
+ mode: "share-all",
402
+ targetAgents,
403
+ imported,
404
+ shared: {
405
+ mcp: mcpShared,
406
+ skills: skillsShared,
407
+ },
408
+ plan,
409
+ preferredAgent: primaryAgent,
410
+ conflictsResolved: plan.conflictCount,
411
+ rules: rulesApplied
412
+ ? { applied: rulesApplied, importedFrom: importedRulesFrom }
413
+ : {
414
+ applied: [],
415
+ skipped: "No rules baseline exists yet. Add rules in the Rules page or keep an instruction file in one installed agent, then sync again.",
416
+ },
417
+ results: sync.results,
418
+ startedAt,
419
+ finishedAt: new Date().toISOString(),
420
+ backup: sync.backup,
421
+ };
422
+ }
423
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ export interface TeamConfigSummary {
2
+ mcp: number;
3
+ skills: number;
4
+ rules: boolean;
5
+ }
6
+ export interface TeamStatus {
7
+ subscribed: boolean;
8
+ repoUrl?: string;
9
+ hasUpstreamUpdate?: boolean;
10
+ ahead?: number;
11
+ behind?: number;
12
+ summary?: TeamConfigSummary;
13
+ }
14
+ export declare function joinTeam(repoUrl: string): Promise<{
15
+ ok: boolean;
16
+ message: string;
17
+ }>;
18
+ export declare function pullTeam(): Promise<{
19
+ ok: boolean;
20
+ message: string;
21
+ }>;
22
+ export declare function teamStatus(): Promise<TeamStatus>;
23
+ //# sourceMappingURL=git.d.ts.map