@agentxm/client-core 0.15.1 → 0.16.1

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 (307) hide show
  1. package/dist/src/unstable/agent-capabilities/catalog.d.ts +17190 -7228
  2. package/dist/src/unstable/agent-capabilities/catalog.d.ts.map +1 -1
  3. package/dist/src/unstable/agent-capabilities/data/agents/adal.d.ts +135 -44
  4. package/dist/src/unstable/agent-capabilities/data/agents/adal.d.ts.map +1 -1
  5. package/dist/src/unstable/agent-capabilities/data/agents/adal.js +101 -44
  6. package/dist/src/unstable/agent-capabilities/data/agents/adal.js.map +1 -1
  7. package/dist/src/unstable/agent-capabilities/data/agents/aider-desk.d.ts +127 -36
  8. package/dist/src/unstable/agent-capabilities/data/agents/aider-desk.d.ts.map +1 -1
  9. package/dist/src/unstable/agent-capabilities/data/agents/aider-desk.js +96 -39
  10. package/dist/src/unstable/agent-capabilities/data/agents/aider-desk.js.map +1 -1
  11. package/dist/src/unstable/agent-capabilities/data/agents/amp.d.ts +139 -48
  12. package/dist/src/unstable/agent-capabilities/data/agents/amp.d.ts.map +1 -1
  13. package/dist/src/unstable/agent-capabilities/data/agents/amp.js +105 -48
  14. package/dist/src/unstable/agent-capabilities/data/agents/amp.js.map +1 -1
  15. package/dist/src/unstable/agent-capabilities/data/agents/antigravity.d.ts +164 -72
  16. package/dist/src/unstable/agent-capabilities/data/agents/antigravity.d.ts.map +1 -1
  17. package/dist/src/unstable/agent-capabilities/data/agents/antigravity.js +132 -74
  18. package/dist/src/unstable/agent-capabilities/data/agents/antigravity.js.map +1 -1
  19. package/dist/src/unstable/agent-capabilities/data/agents/augment.d.ts +142 -51
  20. package/dist/src/unstable/agent-capabilities/data/agents/augment.d.ts.map +1 -1
  21. package/dist/src/unstable/agent-capabilities/data/agents/augment.js +108 -51
  22. package/dist/src/unstable/agent-capabilities/data/agents/augment.js.map +1 -1
  23. package/dist/src/unstable/agent-capabilities/data/agents/claude-code.d.ts +227 -133
  24. package/dist/src/unstable/agent-capabilities/data/agents/claude-code.d.ts.map +1 -1
  25. package/dist/src/unstable/agent-capabilities/data/agents/claude-code.js +205 -145
  26. package/dist/src/unstable/agent-capabilities/data/agents/claude-code.js.map +1 -1
  27. package/dist/src/unstable/agent-capabilities/data/agents/cline.d.ts +136 -45
  28. package/dist/src/unstable/agent-capabilities/data/agents/cline.d.ts.map +1 -1
  29. package/dist/src/unstable/agent-capabilities/data/agents/cline.js +102 -45
  30. package/dist/src/unstable/agent-capabilities/data/agents/cline.js.map +1 -1
  31. package/dist/src/unstable/agent-capabilities/data/agents/codearts-agent.d.ts +127 -36
  32. package/dist/src/unstable/agent-capabilities/data/agents/codearts-agent.d.ts.map +1 -1
  33. package/dist/src/unstable/agent-capabilities/data/agents/codearts-agent.js +93 -36
  34. package/dist/src/unstable/agent-capabilities/data/agents/codearts-agent.js.map +1 -1
  35. package/dist/src/unstable/agent-capabilities/data/agents/codebuddy.d.ts +144 -52
  36. package/dist/src/unstable/agent-capabilities/data/agents/codebuddy.d.ts.map +1 -1
  37. package/dist/src/unstable/agent-capabilities/data/agents/codebuddy.js +111 -53
  38. package/dist/src/unstable/agent-capabilities/data/agents/codebuddy.js.map +1 -1
  39. package/dist/src/unstable/agent-capabilities/data/agents/codemaker.d.ts +127 -36
  40. package/dist/src/unstable/agent-capabilities/data/agents/codemaker.d.ts.map +1 -1
  41. package/dist/src/unstable/agent-capabilities/data/agents/codemaker.js +93 -36
  42. package/dist/src/unstable/agent-capabilities/data/agents/codemaker.js.map +1 -1
  43. package/dist/src/unstable/agent-capabilities/data/agents/codestudio.d.ts +127 -36
  44. package/dist/src/unstable/agent-capabilities/data/agents/codestudio.d.ts.map +1 -1
  45. package/dist/src/unstable/agent-capabilities/data/agents/codestudio.js +93 -36
  46. package/dist/src/unstable/agent-capabilities/data/agents/codestudio.js.map +1 -1
  47. package/dist/src/unstable/agent-capabilities/data/agents/codex.d.ts +233 -137
  48. package/dist/src/unstable/agent-capabilities/data/agents/codex.d.ts.map +1 -1
  49. package/dist/src/unstable/agent-capabilities/data/agents/codex.js +221 -157
  50. package/dist/src/unstable/agent-capabilities/data/agents/codex.js.map +1 -1
  51. package/dist/src/unstable/agent-capabilities/data/agents/command-code.d.ts +169 -77
  52. package/dist/src/unstable/agent-capabilities/data/agents/command-code.d.ts.map +1 -1
  53. package/dist/src/unstable/agent-capabilities/data/agents/command-code.js +137 -79
  54. package/dist/src/unstable/agent-capabilities/data/agents/command-code.js.map +1 -1
  55. package/dist/src/unstable/agent-capabilities/data/agents/continue.d.ts +139 -48
  56. package/dist/src/unstable/agent-capabilities/data/agents/continue.d.ts.map +1 -1
  57. package/dist/src/unstable/agent-capabilities/data/agents/continue.js +105 -48
  58. package/dist/src/unstable/agent-capabilities/data/agents/continue.js.map +1 -1
  59. package/dist/src/unstable/agent-capabilities/data/agents/cortex.d.ts +127 -36
  60. package/dist/src/unstable/agent-capabilities/data/agents/cortex.d.ts.map +1 -1
  61. package/dist/src/unstable/agent-capabilities/data/agents/cortex.js +96 -39
  62. package/dist/src/unstable/agent-capabilities/data/agents/cortex.js.map +1 -1
  63. package/dist/src/unstable/agent-capabilities/data/agents/crush.d.ts +174 -82
  64. package/dist/src/unstable/agent-capabilities/data/agents/crush.d.ts.map +1 -1
  65. package/dist/src/unstable/agent-capabilities/data/agents/crush.js +142 -84
  66. package/dist/src/unstable/agent-capabilities/data/agents/crush.js.map +1 -1
  67. package/dist/src/unstable/agent-capabilities/data/agents/cursor.d.ts +243 -150
  68. package/dist/src/unstable/agent-capabilities/data/agents/cursor.d.ts.map +1 -1
  69. package/dist/src/unstable/agent-capabilities/data/agents/cursor.js +228 -169
  70. package/dist/src/unstable/agent-capabilities/data/agents/cursor.js.map +1 -1
  71. package/dist/src/unstable/agent-capabilities/data/agents/deepagents.d.ts +127 -36
  72. package/dist/src/unstable/agent-capabilities/data/agents/deepagents.d.ts.map +1 -1
  73. package/dist/src/unstable/agent-capabilities/data/agents/deepagents.js +96 -39
  74. package/dist/src/unstable/agent-capabilities/data/agents/deepagents.js.map +1 -1
  75. package/dist/src/unstable/agent-capabilities/data/agents/devin.d.ts +135 -44
  76. package/dist/src/unstable/agent-capabilities/data/agents/devin.d.ts.map +1 -1
  77. package/dist/src/unstable/agent-capabilities/data/agents/devin.js +104 -47
  78. package/dist/src/unstable/agent-capabilities/data/agents/devin.js.map +1 -1
  79. package/dist/src/unstable/agent-capabilities/data/agents/dexto.d.ts +127 -36
  80. package/dist/src/unstable/agent-capabilities/data/agents/dexto.d.ts.map +1 -1
  81. package/dist/src/unstable/agent-capabilities/data/agents/dexto.js +93 -36
  82. package/dist/src/unstable/agent-capabilities/data/agents/dexto.js.map +1 -1
  83. package/dist/src/unstable/agent-capabilities/data/agents/droid.d.ts +138 -47
  84. package/dist/src/unstable/agent-capabilities/data/agents/droid.d.ts.map +1 -1
  85. package/dist/src/unstable/agent-capabilities/data/agents/droid.js +104 -47
  86. package/dist/src/unstable/agent-capabilities/data/agents/droid.js.map +1 -1
  87. package/dist/src/unstable/agent-capabilities/data/agents/firebender.d.ts +127 -36
  88. package/dist/src/unstable/agent-capabilities/data/agents/firebender.d.ts.map +1 -1
  89. package/dist/src/unstable/agent-capabilities/data/agents/firebender.js +93 -36
  90. package/dist/src/unstable/agent-capabilities/data/agents/firebender.js.map +1 -1
  91. package/dist/src/unstable/agent-capabilities/data/agents/forgecode.d.ts +135 -44
  92. package/dist/src/unstable/agent-capabilities/data/agents/forgecode.d.ts.map +1 -1
  93. package/dist/src/unstable/agent-capabilities/data/agents/forgecode.js +104 -47
  94. package/dist/src/unstable/agent-capabilities/data/agents/forgecode.js.map +1 -1
  95. package/dist/src/unstable/agent-capabilities/data/agents/gemini-cli.d.ts +216 -123
  96. package/dist/src/unstable/agent-capabilities/data/agents/gemini-cli.d.ts.map +1 -1
  97. package/dist/src/unstable/agent-capabilities/data/agents/gemini-cli.js +205 -142
  98. package/dist/src/unstable/agent-capabilities/data/agents/gemini-cli.js.map +1 -1
  99. package/dist/src/unstable/agent-capabilities/data/agents/github-copilot-cli.d.ts +212 -119
  100. package/dist/src/unstable/agent-capabilities/data/agents/github-copilot-cli.d.ts.map +1 -1
  101. package/dist/src/unstable/agent-capabilities/data/agents/github-copilot-cli.js +201 -142
  102. package/dist/src/unstable/agent-capabilities/data/agents/github-copilot-cli.js.map +1 -1
  103. package/dist/src/unstable/agent-capabilities/data/agents/goose.d.ts +162 -70
  104. package/dist/src/unstable/agent-capabilities/data/agents/goose.d.ts.map +1 -1
  105. package/dist/src/unstable/agent-capabilities/data/agents/goose.js +129 -71
  106. package/dist/src/unstable/agent-capabilities/data/agents/goose.js.map +1 -1
  107. package/dist/src/unstable/agent-capabilities/data/agents/grok-cli.d.ts +140 -49
  108. package/dist/src/unstable/agent-capabilities/data/agents/grok-cli.d.ts.map +1 -1
  109. package/dist/src/unstable/agent-capabilities/data/agents/grok-cli.js +106 -49
  110. package/dist/src/unstable/agent-capabilities/data/agents/grok-cli.js.map +1 -1
  111. package/dist/src/unstable/agent-capabilities/data/agents/hermes.d.ts +140 -49
  112. package/dist/src/unstable/agent-capabilities/data/agents/hermes.d.ts.map +1 -1
  113. package/dist/src/unstable/agent-capabilities/data/agents/hermes.js +106 -49
  114. package/dist/src/unstable/agent-capabilities/data/agents/hermes.js.map +1 -1
  115. package/dist/src/unstable/agent-capabilities/data/agents/ibm-bob.d.ts +174 -82
  116. package/dist/src/unstable/agent-capabilities/data/agents/ibm-bob.d.ts.map +1 -1
  117. package/dist/src/unstable/agent-capabilities/data/agents/ibm-bob.js +142 -84
  118. package/dist/src/unstable/agent-capabilities/data/agents/ibm-bob.js.map +1 -1
  119. package/dist/src/unstable/agent-capabilities/data/agents/junie.d.ts +178 -86
  120. package/dist/src/unstable/agent-capabilities/data/agents/junie.d.ts.map +1 -1
  121. package/dist/src/unstable/agent-capabilities/data/agents/junie.js +145 -87
  122. package/dist/src/unstable/agent-capabilities/data/agents/junie.js.map +1 -1
  123. package/dist/src/unstable/agent-capabilities/data/agents/kilo.d.ts +188 -96
  124. package/dist/src/unstable/agent-capabilities/data/agents/kilo.d.ts.map +1 -1
  125. package/dist/src/unstable/agent-capabilities/data/agents/kilo.js +157 -99
  126. package/dist/src/unstable/agent-capabilities/data/agents/kilo.js.map +1 -1
  127. package/dist/src/unstable/agent-capabilities/data/agents/kimi-cli.d.ts +166 -74
  128. package/dist/src/unstable/agent-capabilities/data/agents/kimi-cli.d.ts.map +1 -1
  129. package/dist/src/unstable/agent-capabilities/data/agents/kimi-cli.js +134 -76
  130. package/dist/src/unstable/agent-capabilities/data/agents/kimi-cli.js.map +1 -1
  131. package/dist/src/unstable/agent-capabilities/data/agents/kiro-cli.d.ts +182 -90
  132. package/dist/src/unstable/agent-capabilities/data/agents/kiro-cli.d.ts.map +1 -1
  133. package/dist/src/unstable/agent-capabilities/data/agents/kiro-cli.js +150 -92
  134. package/dist/src/unstable/agent-capabilities/data/agents/kiro-cli.js.map +1 -1
  135. package/dist/src/unstable/agent-capabilities/data/agents/kode.d.ts +155 -63
  136. package/dist/src/unstable/agent-capabilities/data/agents/kode.d.ts.map +1 -1
  137. package/dist/src/unstable/agent-capabilities/data/agents/kode.js +123 -65
  138. package/dist/src/unstable/agent-capabilities/data/agents/kode.js.map +1 -1
  139. package/dist/src/unstable/agent-capabilities/data/agents/mcpjam.d.ts +127 -36
  140. package/dist/src/unstable/agent-capabilities/data/agents/mcpjam.d.ts.map +1 -1
  141. package/dist/src/unstable/agent-capabilities/data/agents/mcpjam.js +93 -36
  142. package/dist/src/unstable/agent-capabilities/data/agents/mcpjam.js.map +1 -1
  143. package/dist/src/unstable/agent-capabilities/data/agents/mistral-vibe.d.ts +181 -89
  144. package/dist/src/unstable/agent-capabilities/data/agents/mistral-vibe.d.ts.map +1 -1
  145. package/dist/src/unstable/agent-capabilities/data/agents/mistral-vibe.js +149 -91
  146. package/dist/src/unstable/agent-capabilities/data/agents/mistral-vibe.js.map +1 -1
  147. package/dist/src/unstable/agent-capabilities/data/agents/mux.d.ts +139 -48
  148. package/dist/src/unstable/agent-capabilities/data/agents/mux.d.ts.map +1 -1
  149. package/dist/src/unstable/agent-capabilities/data/agents/mux.js +105 -48
  150. package/dist/src/unstable/agent-capabilities/data/agents/mux.js.map +1 -1
  151. package/dist/src/unstable/agent-capabilities/data/agents/neovate.d.ts +166 -74
  152. package/dist/src/unstable/agent-capabilities/data/agents/neovate.d.ts.map +1 -1
  153. package/dist/src/unstable/agent-capabilities/data/agents/neovate.js +134 -76
  154. package/dist/src/unstable/agent-capabilities/data/agents/neovate.js.map +1 -1
  155. package/dist/src/unstable/agent-capabilities/data/agents/openclaw.d.ts +127 -36
  156. package/dist/src/unstable/agent-capabilities/data/agents/openclaw.d.ts.map +1 -1
  157. package/dist/src/unstable/agent-capabilities/data/agents/openclaw.js +96 -39
  158. package/dist/src/unstable/agent-capabilities/data/agents/openclaw.js.map +1 -1
  159. package/dist/src/unstable/agent-capabilities/data/agents/opencode.d.ts +174 -82
  160. package/dist/src/unstable/agent-capabilities/data/agents/opencode.d.ts.map +1 -1
  161. package/dist/src/unstable/agent-capabilities/data/agents/opencode.js +142 -84
  162. package/dist/src/unstable/agent-capabilities/data/agents/opencode.js.map +1 -1
  163. package/dist/src/unstable/agent-capabilities/data/agents/openhands.d.ts +140 -49
  164. package/dist/src/unstable/agent-capabilities/data/agents/openhands.d.ts.map +1 -1
  165. package/dist/src/unstable/agent-capabilities/data/agents/openhands.js +109 -52
  166. package/dist/src/unstable/agent-capabilities/data/agents/openhands.js.map +1 -1
  167. package/dist/src/unstable/agent-capabilities/data/agents/pi.d.ts +167 -48
  168. package/dist/src/unstable/agent-capabilities/data/agents/pi.d.ts.map +1 -1
  169. package/dist/src/unstable/agent-capabilities/data/agents/pi.js +143 -48
  170. package/dist/src/unstable/agent-capabilities/data/agents/pi.js.map +1 -1
  171. package/dist/src/unstable/agent-capabilities/data/agents/pochi.d.ts +166 -74
  172. package/dist/src/unstable/agent-capabilities/data/agents/pochi.d.ts.map +1 -1
  173. package/dist/src/unstable/agent-capabilities/data/agents/pochi.js +134 -76
  174. package/dist/src/unstable/agent-capabilities/data/agents/pochi.js.map +1 -1
  175. package/dist/src/unstable/agent-capabilities/data/agents/qoder.d.ts +223 -130
  176. package/dist/src/unstable/agent-capabilities/data/agents/qoder.d.ts.map +1 -1
  177. package/dist/src/unstable/agent-capabilities/data/agents/qoder.js +204 -145
  178. package/dist/src/unstable/agent-capabilities/data/agents/qoder.js.map +1 -1
  179. package/dist/src/unstable/agent-capabilities/data/agents/qwen-code.d.ts +170 -78
  180. package/dist/src/unstable/agent-capabilities/data/agents/qwen-code.d.ts.map +1 -1
  181. package/dist/src/unstable/agent-capabilities/data/agents/qwen-code.js +138 -80
  182. package/dist/src/unstable/agent-capabilities/data/agents/qwen-code.js.map +1 -1
  183. package/dist/src/unstable/agent-capabilities/data/agents/replit.d.ts +162 -70
  184. package/dist/src/unstable/agent-capabilities/data/agents/replit.d.ts.map +1 -1
  185. package/dist/src/unstable/agent-capabilities/data/agents/replit.js +129 -71
  186. package/dist/src/unstable/agent-capabilities/data/agents/replit.js.map +1 -1
  187. package/dist/src/unstable/agent-capabilities/data/agents/roo.d.ts +182 -90
  188. package/dist/src/unstable/agent-capabilities/data/agents/roo.d.ts.map +1 -1
  189. package/dist/src/unstable/agent-capabilities/data/agents/roo.js +150 -92
  190. package/dist/src/unstable/agent-capabilities/data/agents/roo.js.map +1 -1
  191. package/dist/src/unstable/agent-capabilities/data/agents/rovodev.d.ts +131 -40
  192. package/dist/src/unstable/agent-capabilities/data/agents/rovodev.d.ts.map +1 -1
  193. package/dist/src/unstable/agent-capabilities/data/agents/rovodev.js +100 -43
  194. package/dist/src/unstable/agent-capabilities/data/agents/rovodev.js.map +1 -1
  195. package/dist/src/unstable/agent-capabilities/data/agents/tabnine-cli.d.ts +130 -39
  196. package/dist/src/unstable/agent-capabilities/data/agents/tabnine-cli.d.ts.map +1 -1
  197. package/dist/src/unstable/agent-capabilities/data/agents/tabnine-cli.js +96 -39
  198. package/dist/src/unstable/agent-capabilities/data/agents/tabnine-cli.js.map +1 -1
  199. package/dist/src/unstable/agent-capabilities/data/agents/trae-cn.d.ts +171 -79
  200. package/dist/src/unstable/agent-capabilities/data/agents/trae-cn.d.ts.map +1 -1
  201. package/dist/src/unstable/agent-capabilities/data/agents/trae-cn.js +138 -80
  202. package/dist/src/unstable/agent-capabilities/data/agents/trae-cn.js.map +1 -1
  203. package/dist/src/unstable/agent-capabilities/data/agents/trae.d.ts +171 -79
  204. package/dist/src/unstable/agent-capabilities/data/agents/trae.d.ts.map +1 -1
  205. package/dist/src/unstable/agent-capabilities/data/agents/trae.js +138 -80
  206. package/dist/src/unstable/agent-capabilities/data/agents/trae.js.map +1 -1
  207. package/dist/src/unstable/agent-capabilities/data/agents/warp.d.ts +127 -36
  208. package/dist/src/unstable/agent-capabilities/data/agents/warp.d.ts.map +1 -1
  209. package/dist/src/unstable/agent-capabilities/data/agents/warp.js +93 -36
  210. package/dist/src/unstable/agent-capabilities/data/agents/warp.js.map +1 -1
  211. package/dist/src/unstable/agent-capabilities/data/agents/windsurf.d.ts +193 -100
  212. package/dist/src/unstable/agent-capabilities/data/agents/windsurf.d.ts.map +1 -1
  213. package/dist/src/unstable/agent-capabilities/data/agents/windsurf.js +165 -106
  214. package/dist/src/unstable/agent-capabilities/data/agents/windsurf.js.map +1 -1
  215. package/dist/src/unstable/agent-capabilities/data/agents/zencoder.d.ts +169 -77
  216. package/dist/src/unstable/agent-capabilities/data/agents/zencoder.d.ts.map +1 -1
  217. package/dist/src/unstable/agent-capabilities/data/agents/zencoder.js +138 -80
  218. package/dist/src/unstable/agent-capabilities/data/agents/zencoder.js.map +1 -1
  219. package/dist/src/unstable/agent-capabilities/derive.d.ts +25 -0
  220. package/dist/src/unstable/agent-capabilities/derive.d.ts.map +1 -1
  221. package/dist/src/unstable/agent-capabilities/derive.js +71 -28
  222. package/dist/src/unstable/agent-capabilities/derive.js.map +1 -1
  223. package/dist/src/unstable/agent-capabilities/index.d.ts +2 -2
  224. package/dist/src/unstable/agent-capabilities/index.d.ts.map +1 -1
  225. package/dist/src/unstable/agent-capabilities/index.js +2 -2
  226. package/dist/src/unstable/agent-capabilities/index.js.map +1 -1
  227. package/dist/src/unstable/agent-capabilities/schema.d.ts +3409 -853
  228. package/dist/src/unstable/agent-capabilities/schema.d.ts.map +1 -1
  229. package/dist/src/unstable/agent-capabilities/schema.js +378 -152
  230. package/dist/src/unstable/agent-capabilities/schema.js.map +1 -1
  231. package/dist/src/unstable/agents/detection.d.ts.map +1 -1
  232. package/dist/src/unstable/agents/detection.js +2 -33
  233. package/dist/src/unstable/agents/detection.js.map +1 -1
  234. package/dist/src/unstable/agents/mcp-sync.d.ts.map +1 -1
  235. package/dist/src/unstable/agents/mcp-sync.js +6 -6
  236. package/dist/src/unstable/agents/mcp-sync.js.map +1 -1
  237. package/dist/src/unstable/agents/registry.d.ts.map +1 -1
  238. package/dist/src/unstable/agents/registry.js +1 -0
  239. package/dist/src/unstable/agents/registry.js.map +1 -1
  240. package/dist/src/unstable/agents/types.d.ts +1 -1
  241. package/dist/src/unstable/agents/types.d.ts.map +1 -1
  242. package/dist/src/unstable/auth/credential-store.d.ts.map +1 -1
  243. package/dist/src/unstable/auth/credential-store.js +0 -15
  244. package/dist/src/unstable/auth/credential-store.js.map +1 -1
  245. package/dist/src/unstable/commands/operations/shared-command-helpers.d.ts +1 -1
  246. package/dist/src/unstable/commands/operations/shared-command-helpers.d.ts.map +1 -1
  247. package/dist/src/unstable/commands/operations/shared-command-helpers.js +2 -7
  248. package/dist/src/unstable/commands/operations/shared-command-helpers.js.map +1 -1
  249. package/dist/src/unstable/lint/catalog/workspace/helpers/install-ops.d.ts +19 -4
  250. package/dist/src/unstable/lint/catalog/workspace/helpers/install-ops.d.ts.map +1 -1
  251. package/dist/src/unstable/lint/catalog/workspace/helpers/install-ops.js +15 -5
  252. package/dist/src/unstable/lint/catalog/workspace/helpers/install-ops.js.map +1 -1
  253. package/dist/src/unstable/lint/catalog/workspace/helpers/source-categorize.js +2 -2
  254. package/dist/src/unstable/lint/catalog/workspace/helpers/source-categorize.js.map +1 -1
  255. package/dist/src/unstable/lint/catalog/workspace/mcp-server-agent-drift.d.ts +2 -2
  256. package/dist/src/unstable/lint/catalog/workspace/mcp-server-agent-drift.d.ts.map +1 -1
  257. package/dist/src/unstable/lint/catalog/workspace/mcp-server-agent-drift.js +58 -18
  258. package/dist/src/unstable/lint/catalog/workspace/mcp-server-agent-drift.js.map +1 -1
  259. package/dist/src/unstable/lint/catalog/workspace/mcp-server-agent-orphaned.d.ts +4 -0
  260. package/dist/src/unstable/lint/catalog/workspace/mcp-server-agent-orphaned.d.ts.map +1 -0
  261. package/dist/src/unstable/lint/catalog/workspace/mcp-server-agent-orphaned.js +64 -0
  262. package/dist/src/unstable/lint/catalog/workspace/mcp-server-agent-orphaned.js.map +1 -0
  263. package/dist/src/unstable/lint/catalog/workspace/skills-lockfile-aligned.js +2 -2
  264. package/dist/src/unstable/lint/catalog/workspace/skills-lockfile-aligned.js.map +1 -1
  265. package/dist/src/unstable/lint/catalog/workspace-fixtures/interpret-ops.d.ts +3 -2
  266. package/dist/src/unstable/lint/catalog/workspace-fixtures/interpret-ops.d.ts.map +1 -1
  267. package/dist/src/unstable/lint/catalog/workspace-fixtures/interpret-ops.js +8 -5
  268. package/dist/src/unstable/lint/catalog/workspace-fixtures/interpret-ops.js.map +1 -1
  269. package/dist/src/unstable/lint/catalog/workspace-read-model/lint-workspace.js +7 -7
  270. package/dist/src/unstable/lint/catalog/workspace-read-model/lint-workspace.js.map +1 -1
  271. package/dist/src/unstable/lint/catalog/workspace.d.ts +1 -1
  272. package/dist/src/unstable/lint/catalog/workspace.d.ts.map +1 -1
  273. package/dist/src/unstable/lint/catalog/workspace.js +3 -1
  274. package/dist/src/unstable/lint/catalog/workspace.js.map +1 -1
  275. package/dist/src/unstable/lockfile/index.d.ts +0 -1
  276. package/dist/src/unstable/lockfile/index.d.ts.map +1 -1
  277. package/dist/src/unstable/lockfile/index.js +0 -1
  278. package/dist/src/unstable/lockfile/index.js.map +1 -1
  279. package/dist/src/unstable/lockfile/lockfile.d.ts +2 -2
  280. package/dist/src/unstable/mcps/inspection.d.ts.map +1 -1
  281. package/dist/src/unstable/mcps/inspection.js +5 -5
  282. package/dist/src/unstable/mcps/inspection.js.map +1 -1
  283. package/dist/src/unstable/mcps/resolution.d.ts.map +1 -1
  284. package/dist/src/unstable/mcps/resolution.js +5 -5
  285. package/dist/src/unstable/mcps/resolution.js.map +1 -1
  286. package/dist/src/unstable/settings/schema.d.ts +0 -2
  287. package/dist/src/unstable/settings/schema.d.ts.map +1 -1
  288. package/dist/src/unstable/settings/schema.js +0 -2
  289. package/dist/src/unstable/settings/schema.js.map +1 -1
  290. package/dist/src/unstable/skills/operations/install.d.ts +1 -1
  291. package/dist/src/unstable/workspace/initialization.d.ts +8 -8
  292. package/dist/src/unstable/workspace/read-model/scanners/mcp-config.d.ts +1 -1
  293. package/dist/src/unstable/workspace/read-model/scanners/mcp-config.d.ts.map +1 -1
  294. package/dist/src/unstable/workspace/read-model/scanners/mcp-config.js +86 -35
  295. package/dist/src/unstable/workspace/read-model/scanners/mcp-config.js.map +1 -1
  296. package/dist/src/unstable/workspace/read-model/state.d.ts.map +1 -1
  297. package/dist/src/unstable/workspace/read-model/state.js +4 -36
  298. package/dist/src/unstable/workspace/read-model/state.js.map +1 -1
  299. package/package.json +2 -2
  300. package/dist/src/unstable/lint/catalog/workspace/helpers/registry-source.d.ts +0 -26
  301. package/dist/src/unstable/lint/catalog/workspace/helpers/registry-source.d.ts.map +0 -1
  302. package/dist/src/unstable/lint/catalog/workspace/helpers/registry-source.js +0 -30
  303. package/dist/src/unstable/lint/catalog/workspace/helpers/registry-source.js.map +0 -1
  304. package/dist/src/unstable/lockfile/migration.d.ts +0 -3
  305. package/dist/src/unstable/lockfile/migration.d.ts.map +0 -1
  306. package/dist/src/unstable/lockfile/migration.js +0 -32
  307. package/dist/src/unstable/lockfile/migration.js.map +0 -1
@@ -4,9 +4,8 @@
4
4
  * @experimental This API is unstable and may change without notice.
5
5
  */
6
6
  import * as Schema from "effect/Schema";
7
- import * as SchemaTransformation from "effect/SchemaTransformation";
8
7
  import { ExtensionTypeSchema } from "../extensions/common.js";
9
- import { DocLinkSchema, UrlSchema } from "../extension-types/schema.js";
8
+ import { DocLinkSchema, LeafExtensionTypeSchema, UrlSchema, } from "../extension-types/schema.js";
10
9
  export { DocLinkSchema, LEAF_EXTENSION_TYPES, StandardSchema, UrlSchema, } from "../extension-types/schema.js";
11
10
  const AGENT_ID_PATTERN = /^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/;
12
11
  const ISO_DATE_PATTERN = /^\d{4}-\d{2}-\d{2}$/;
@@ -39,41 +38,144 @@ export const ConventionSchema = Schema.Literals(["universal", "vendor"]).annotat
39
38
  examples: ["universal", "vendor"],
40
39
  });
41
40
  /** @experimental This API is unstable and may change without notice. */
42
- export const SUPPORTED_LIFECYCLE = "supported";
41
+ export const ScopeSchema = Schema.Literals(["user", "project"]).annotate({
42
+ identifier: "Scope",
43
+ title: "Scope",
44
+ description: "Where a capability can be configured.",
45
+ examples: ["user", "project"],
46
+ });
47
+ const NonEmptyScopesSchema = Schema.NonEmptyArray(ScopeSchema).pipe(Schema.check(Schema.isUnique()));
48
+ /** @experimental This API is unstable and may change without notice. */
49
+ export const SUPPORTED_AXM_SUPPORT = "supported";
43
50
  /** @experimental This API is unstable and may change without notice. */
44
- export const CapabilityLifecycleSchema = Schema.Literals([
45
- SUPPORTED_LIFECYCLE,
51
+ export const AxmSupportSchema = Schema.Literals([
52
+ SUPPORTED_AXM_SUPPORT,
46
53
  "planned",
47
54
  "unsupported",
48
55
  "unknown",
49
56
  ]).annotate({
50
- identifier: "CapabilityLifecycle",
51
- title: "Capability Lifecycle",
52
- description: "State of AXM's integration with an agent capability.",
53
- examples: [SUPPORTED_LIFECYCLE, "unsupported", "unknown"],
57
+ identifier: "AxmSupport",
58
+ title: "AXM Support",
59
+ description: "AXM install behavior and verification state for an agent capability.",
60
+ examples: [SUPPORTED_AXM_SUPPORT, "unsupported", "unknown"],
54
61
  });
55
62
  /** @experimental This API is unstable and may change without notice. */
56
- export const ActiveLifecycleSchema = Schema.Literals([SUPPORTED_LIFECYCLE, "planned"]).annotate({
57
- identifier: "ActiveLifecycle",
58
- title: "Active Lifecycle",
59
- description: "Capability lifecycle values that carry a concrete capability claim.",
60
- examples: [SUPPORTED_LIFECYCLE, "planned"],
63
+ export const ActiveAxmSupportSchema = Schema.Literals([SUPPORTED_AXM_SUPPORT, "planned"]).annotate({
64
+ identifier: "ActiveAxmSupport",
65
+ title: "Active AXM Support",
66
+ description: "AXM support values that carry a concrete managed capability claim.",
67
+ examples: [SUPPORTED_AXM_SUPPORT, "planned"],
61
68
  });
62
69
  /** @experimental This API is unstable and may change without notice. */
63
- export const InactiveLifecycleSchema = Schema.Literals(["unsupported", "unknown"]).annotate({
64
- identifier: "InactiveLifecycle",
65
- title: "Inactive Lifecycle",
66
- description: "Capability lifecycle values without active extension support.",
70
+ export const InactiveAxmSupportSchema = Schema.Literals(["unsupported", "unknown"]).annotate({
71
+ identifier: "InactiveAxmSupport",
72
+ title: "Inactive AXM Support",
73
+ description: "AXM support values without an active managed extension writer.",
67
74
  examples: ["unsupported", "unknown"],
68
75
  });
69
76
  /** @experimental This API is unstable and may change without notice. */
70
- export const ScopeSchema = Schema.Literals(["user", "project"]).annotate({
71
- identifier: "Scope",
72
- title: "Scope",
73
- description: "Where a capability can be configured.",
74
- examples: ["user", "project"],
77
+ export const PluginDistributionMechanismSchema = Schema.Literals([
78
+ "agent-native",
79
+ "npm",
80
+ "git",
81
+ "manual",
82
+ ]).annotate({
83
+ identifier: "PluginDistributionMechanism",
84
+ title: "Plugin Distribution Mechanism",
85
+ description: "How an agent-vendor plugin is distributed outside AXM.",
86
+ });
87
+ /** @experimental This API is unstable and may change without notice. */
88
+ export const PluginDistributionSchema = Schema.Struct({
89
+ mechanism: PluginDistributionMechanismSchema,
90
+ installHint: Schema.NullOr(Schema.NonEmptyString),
91
+ packageRef: Schema.NullOr(Schema.NonEmptyString),
92
+ }).annotate({
93
+ identifier: "PluginDistribution",
94
+ title: "Plugin Distribution",
95
+ description: "Descriptive install metadata that AXM may display but never executes.",
96
+ });
97
+ /** @experimental This API is unstable and may change without notice. */
98
+ export const PluginDetectionPathSchema = Schema.Struct({
99
+ scope: ScopeSchema,
100
+ path: Schema.NonEmptyString,
101
+ kind: Schema.Literals(["dir", "file"]),
102
+ }).annotate({
103
+ identifier: "PluginDetectionPath",
104
+ title: "Plugin Detection Path",
105
+ description: "Future scan marker for detecting an installed agent-vendor plugin.",
106
+ });
107
+ /** @experimental This API is unstable and may change without notice. */
108
+ export const PluginDetectionConfigKeySchema = Schema.Struct({
109
+ scope: ScopeSchema,
110
+ file: Schema.NonEmptyString,
111
+ key: Schema.NonEmptyString,
112
+ }).annotate({
113
+ identifier: "PluginDetectionConfigKey",
114
+ title: "Plugin Detection Config Key",
115
+ description: "Future config-key marker for detecting an installed agent-vendor plugin.",
116
+ });
117
+ /** @experimental This API is unstable and may change without notice. */
118
+ export const PluginDetectionSchema = Schema.Struct({
119
+ paths: Schema.Array(PluginDetectionPathSchema),
120
+ configKeys: Schema.Array(PluginDetectionConfigKeySchema),
121
+ }).annotate({
122
+ identifier: "PluginDetection",
123
+ title: "Plugin Detection",
124
+ description: "Descriptive plugin detection markers reserved for future workspace scans.",
125
+ });
126
+ /** @experimental This API is unstable and may change without notice. */
127
+ export const PluginDescriptorSchema = Schema.Struct({
128
+ name: Schema.NonEmptyString,
129
+ homepage: UrlSchema,
130
+ author: Schema.NullOr(Schema.NonEmptyString),
131
+ distribution: PluginDistributionSchema,
132
+ detection: Schema.NullOr(PluginDetectionSchema),
133
+ }).annotate({
134
+ identifier: "PluginDescriptor",
135
+ title: "Plugin Descriptor",
136
+ description: "Descriptive metadata for third-party or vendor plugins outside AXM management.",
137
+ });
138
+ /** @experimental This API is unstable and may change without notice. */
139
+ const NativeAvailabilitySchema = Schema.Struct({ via: Schema.Literal("native") });
140
+ const NoneAvailabilitySchema = Schema.Struct({ via: Schema.Literal("none") });
141
+ const PluginAvailabilitySchema = Schema.Struct({
142
+ via: Schema.Literal("plugin"),
143
+ provider: Schema.Literals(["first-party", "third-party"]),
144
+ plugin: PluginDescriptorSchema,
145
+ });
146
+ const AvailableCapabilityAvailabilitySchema = Schema.Union([
147
+ NativeAvailabilitySchema,
148
+ PluginAvailabilitySchema,
149
+ ]);
150
+ /** @experimental This API is unstable and may change without notice. */
151
+ export const AvailabilitySchema = Schema.Union([
152
+ NativeAvailabilitySchema,
153
+ NoneAvailabilitySchema,
154
+ PluginAvailabilitySchema,
155
+ ]).annotate({
156
+ identifier: "Availability",
157
+ title: "Availability",
158
+ description: "Whether the agent capability surface is obtainable natively, via plugin, or not.",
159
+ });
160
+ const VendorStatusSinceSchema = Schema.NonEmptyString.pipe(Schema.check(Schema.isPattern(ISO_DATE_PATTERN, {
161
+ message: "Expected an ISO 8601 date in YYYY-MM-DD form.",
162
+ })));
163
+ const InactiveVendorStatusFields = {
164
+ since: Schema.NullOr(VendorStatusSinceSchema),
165
+ note: Schema.NullOr(Schema.NonEmptyString),
166
+ supersededByType: Schema.NullOr(LeafExtensionTypeSchema),
167
+ };
168
+ /** @experimental This API is unstable and may change without notice. */
169
+ export const VendorStatusSchema = Schema.Union([
170
+ Schema.Struct({ state: Schema.Literal("active") }),
171
+ Schema.Struct({ state: Schema.Literal("maintenance"), ...InactiveVendorStatusFields }),
172
+ Schema.Struct({ state: Schema.Literal("deprecated"), ...InactiveVendorStatusFields }),
173
+ Schema.Struct({ state: Schema.Literal("removed"), ...InactiveVendorStatusFields }),
174
+ ]).annotate({
175
+ identifier: "VendorStatus",
176
+ title: "Vendor Status",
177
+ description: "Vendor or plugin health for the surface named by availability.",
75
178
  });
76
- const NonEmptyScopesSchema = Schema.NonEmptyArray(ScopeSchema).pipe(Schema.check(Schema.isUnique()));
77
179
  /** @experimental This API is unstable and may change without notice. */
78
180
  export const AgentInterfaceSchema = Schema.Literals(["cli", "ide-extension"]).annotate({
79
181
  identifier: "AgentInterface",
@@ -89,10 +191,6 @@ export const McpTransportSchema = Schema.Literals(["stdio", "http", "sse"]).anno
89
191
  examples: ["stdio", "http", "sse"],
90
192
  });
91
193
  const NonEmptyMcpTransportsSchema = Schema.NonEmptyArray(McpTransportSchema).pipe(Schema.check(Schema.isUnique()));
92
- const LegacyDetectionSchema = Schema.Struct({
93
- projectDirs: Schema.Array(Schema.NonEmptyString).pipe(Schema.check(Schema.isUnique())),
94
- userDirs: Schema.Array(Schema.NonEmptyString).pipe(Schema.check(Schema.isUnique())),
95
- });
96
194
  /** @experimental This API is unstable and may change without notice. */
97
195
  export const DetectionSignalSchema = Schema.Literals([
98
196
  "definitive",
@@ -148,26 +246,12 @@ export const ScopeDetectionSchema = Schema.Struct({
148
246
  title: "Scope Detection",
149
247
  description: "Detection markers for one configuration scope.",
150
248
  });
151
- const CurrentDetectionSchema = Schema.Struct({
249
+ const DetectionStruct = Schema.Struct({
152
250
  project: ScopeDetectionSchema,
153
251
  user: ScopeDetectionSchema,
154
252
  });
155
- const markerFromLegacyDir = (path) => ({
156
- kind: "dir",
157
- path,
158
- signal: "definitive",
159
- note: null,
160
- });
161
253
  /** @experimental This API is unstable and may change without notice. */
162
- export const DetectionSchema = Schema.Union([CurrentDetectionSchema, LegacyDetectionSchema]).pipe(Schema.decodeTo(Schema.toType(CurrentDetectionSchema), SchemaTransformation.transform({
163
- decode: (detection) => "projectDirs" in detection
164
- ? {
165
- project: { markers: detection.projectDirs.map(markerFromLegacyDir) },
166
- user: { markers: detection.userDirs.map(markerFromLegacyDir) },
167
- }
168
- : detection,
169
- encode: (detection) => detection,
170
- })), Schema.annotate({
254
+ export const DetectionSchema = DetectionStruct.pipe(Schema.annotate({
171
255
  identifier: "Detection",
172
256
  title: "Detection",
173
257
  description: "Per-scope signals (marker dirs, files, CLI binaries) used to detect an installed agent.",
@@ -183,69 +267,90 @@ export const LastVerifiedDateSchema = Schema.NonEmptyString.pipe(Schema.check(Sc
183
267
  });
184
268
  const CapabilityNotesSchema = Schema.NullOr(Schema.NonEmptyString);
185
269
  const CapabilityDocsSchema = Schema.Array(DocLinkSchema);
186
- const ActiveSourcesSchema = Schema.NonEmptyArray(UrlSchema);
187
- const InactiveSourcesSchema = Schema.Array(UrlSchema);
188
- const InactiveCapabilitySchema = Schema.Struct({
189
- lifecycle: InactiveLifecycleSchema,
270
+ const CapabilitySourcesSchema = Schema.Array(UrlSchema);
271
+ const UnavailableCanonicalCapabilityFields = {
272
+ availability: NoneAvailabilitySchema,
273
+ vendorStatus: VendorStatusSchema,
190
274
  notes: CapabilityNotesSchema,
191
275
  docs: CapabilityDocsSchema,
192
- sources: InactiveSourcesSchema,
193
- }).annotate({
194
- identifier: "InactiveCapability",
195
- title: "Inactive Capability",
196
- description: "Capability slot with no active extension support.",
197
- });
198
- const ActiveCapabilityBaseFields = {
199
- lifecycle: ActiveLifecycleSchema,
276
+ sources: CapabilitySourcesSchema,
277
+ };
278
+ const AvailableCanonicalCapabilityBaseFields = {
279
+ availability: AvailableCapabilityAvailabilitySchema,
280
+ vendorStatus: VendorStatusSchema,
200
281
  notes: CapabilityNotesSchema,
201
282
  docs: CapabilityDocsSchema,
202
- sources: ActiveSourcesSchema,
203
- lastVerified: LastVerifiedDateSchema,
283
+ sources: CapabilitySourcesSchema,
204
284
  scopes: NonEmptyScopesSchema,
205
285
  };
206
286
  const SpecTrackedCapabilityFields = {
207
287
  standardsCompliance: StandardsComplianceSchema,
208
288
  convention: ConventionSchema,
209
289
  };
210
- /** @experimental This API is unstable and may change without notice. */
211
- export const CapabilityBaseSchema = Schema.Union([
212
- Schema.Struct(ActiveCapabilityBaseFields),
213
- InactiveCapabilitySchema,
214
- ]).annotate({
215
- identifier: "CapabilityBase",
216
- title: "Capability Base",
217
- description: "Fields shared by all agent capabilities.",
218
- });
219
- /** @experimental This API is unstable and may change without notice. */
220
- export const ScopedCapabilityBaseSchema = Schema.Struct(ActiveCapabilityBaseFields).annotate({
221
- identifier: "ScopedCapabilityBase",
222
- title: "Scoped Capability Base",
223
- description: "Capability fields shared by extension-backed active capabilities.",
224
- });
225
- const ActiveSpecTrackedCapabilityFields = {
226
- ...ActiveCapabilityBaseFields,
290
+ const AvailableSpecTrackedCanonicalCapabilityFields = {
291
+ ...AvailableCanonicalCapabilityBaseFields,
227
292
  ...SpecTrackedCapabilityFields,
228
293
  };
229
- /** @experimental This API is unstable and may change without notice. */
230
- export const SkillsExtensionCapabilitySchema = Schema.Union([
294
+ const NoWriterAxmCapabilityStateSchema = Schema.Union([
295
+ Schema.Struct({
296
+ support: ActiveAxmSupportSchema,
297
+ lastVerified: LastVerifiedDateSchema,
298
+ writer: Schema.Null,
299
+ }),
231
300
  Schema.Struct({
232
- ...ActiveSpecTrackedCapabilityFields,
233
- directory: Schema.NonEmptyString,
301
+ support: InactiveAxmSupportSchema,
302
+ writer: Schema.Null,
234
303
  }),
235
- InactiveCapabilitySchema,
304
+ ]);
305
+ const requireSourcesForActiveAxmSupport = (capability) => {
306
+ if ((capability.axm.support === SUPPORTED_AXM_SUPPORT || capability.axm.support === "planned") &&
307
+ capability.canonical.sources.length === 0) {
308
+ return {
309
+ path: ["canonical", "sources"],
310
+ issue: "Active AXM support claims require at least one canonical source.",
311
+ };
312
+ }
313
+ return undefined;
314
+ };
315
+ /** @experimental This API is unstable and may change without notice. */
316
+ export const CanonicalCapabilityBaseSchema = Schema.Union([
317
+ Schema.Struct(AvailableCanonicalCapabilityBaseFields),
318
+ Schema.Struct(UnavailableCanonicalCapabilityFields),
236
319
  ]).annotate({
320
+ identifier: "CanonicalCapabilityBase",
321
+ title: "Canonical Capability Base",
322
+ description: "Vendor-sourced fields shared by all agent capabilities.",
323
+ });
324
+ /** @experimental This API is unstable and may change without notice. */
325
+ export const SkillsExtensionCapabilitySchema = Schema.Struct({
326
+ canonical: Schema.Union([
327
+ Schema.Struct({
328
+ ...AvailableSpecTrackedCanonicalCapabilityFields,
329
+ directory: Schema.NonEmptyString,
330
+ }),
331
+ Schema.Struct(UnavailableCanonicalCapabilityFields),
332
+ ]),
333
+ axm: NoWriterAxmCapabilityStateSchema,
334
+ })
335
+ .pipe(Schema.check(Schema.makeFilter(requireSourcesForActiveAxmSupport)))
336
+ .annotate({
237
337
  identifier: "SkillsExtensionCapability",
238
338
  title: "Skills Capability",
239
339
  description: "Agent support for Agent Skills-style extensions.",
240
340
  });
241
341
  /** @experimental This API is unstable and may change without notice. */
242
- export const CommandsExtensionCapabilitySchema = Schema.Union([
243
- Schema.Struct({
244
- ...ActiveCapabilityBaseFields,
245
- directory: Schema.NonEmptyString,
246
- }),
247
- InactiveCapabilitySchema,
248
- ]).annotate({
342
+ export const CommandsExtensionCapabilitySchema = Schema.Struct({
343
+ canonical: Schema.Union([
344
+ Schema.Struct({
345
+ ...AvailableCanonicalCapabilityBaseFields,
346
+ directory: Schema.NonEmptyString,
347
+ }),
348
+ Schema.Struct(UnavailableCanonicalCapabilityFields),
349
+ ]),
350
+ axm: NoWriterAxmCapabilityStateSchema,
351
+ })
352
+ .pipe(Schema.check(Schema.makeFilter(requireSourcesForActiveAxmSupport)))
353
+ .annotate({
249
354
  identifier: "CommandsExtensionCapability",
250
355
  title: "Commands Capability",
251
356
  description: "Agent support for command extensions.",
@@ -257,15 +362,26 @@ export const SubagentsLayoutSchema = Schema.Literals(["file", "directory"]).anno
257
362
  description: "Whether subagents live in a directory or a single opaque file path.",
258
363
  examples: ["directory", "file"],
259
364
  });
260
- /** @experimental This API is unstable and may change without notice. */
261
- export const SubagentsExtensionCapabilitySchema = Schema.Union([
262
- Schema.Struct({
263
- ...ActiveCapabilityBaseFields,
264
- directory: Schema.NonEmptyString,
265
- layout: SubagentsLayoutSchema,
266
- }),
267
- InactiveCapabilitySchema,
268
- ]).annotate({
365
+ const PluginSubagentsCanonicalCapabilitySchema = Schema.Struct({
366
+ ...AvailableCanonicalCapabilityBaseFields,
367
+ availability: PluginAvailabilitySchema,
368
+ });
369
+ /** @experimental This API is unstable and may change without notice. */
370
+ export const SubagentsExtensionCapabilitySchema = Schema.Struct({
371
+ canonical: Schema.Union([
372
+ Schema.Struct({
373
+ ...AvailableCanonicalCapabilityBaseFields,
374
+ availability: NativeAvailabilitySchema,
375
+ directory: Schema.NonEmptyString,
376
+ layout: SubagentsLayoutSchema,
377
+ }),
378
+ PluginSubagentsCanonicalCapabilitySchema,
379
+ Schema.Struct(UnavailableCanonicalCapabilityFields),
380
+ ]),
381
+ axm: NoWriterAxmCapabilityStateSchema,
382
+ })
383
+ .pipe(Schema.check(Schema.makeFilter(requireSourcesForActiveAxmSupport)))
384
+ .annotate({
269
385
  identifier: "SubagentsExtensionCapability",
270
386
  title: "Subagents Capability",
271
387
  description: "Agent support for subagent extensions.",
@@ -292,7 +408,7 @@ const OptionalRuleDirectoryField = {
292
408
  directory: Schema.optionalKey(Schema.NonEmptyString),
293
409
  };
294
410
  const AgentsMdRulesExtensionCapabilitySchema = Schema.Struct({
295
- ...ActiveSpecTrackedCapabilityFields,
411
+ ...AvailableSpecTrackedCanonicalCapabilityFields,
296
412
  ...OptionalRuleDirectoryField,
297
413
  kind: Schema.Literal("agents-md"),
298
414
  files: Schema.Tuple([Schema.Literal("AGENTS.md")]),
@@ -300,7 +416,7 @@ const AgentsMdRulesExtensionCapabilitySchema = Schema.Struct({
300
416
  importSyntax: Schema.NullOr(RuleInstructionsImportSyntaxSchema),
301
417
  });
302
418
  const OwnFileRulesExtensionCapabilitySchema = Schema.Struct({
303
- ...ActiveSpecTrackedCapabilityFields,
419
+ ...AvailableSpecTrackedCanonicalCapabilityFields,
304
420
  ...OptionalRuleDirectoryField,
305
421
  kind: Schema.Literal("own-file"),
306
422
  files: Schema.Tuple([Schema.NonEmptyString]),
@@ -308,7 +424,7 @@ const OwnFileRulesExtensionCapabilitySchema = Schema.Struct({
308
424
  importSyntax: Schema.NullOr(RuleInstructionsImportSyntaxSchema),
309
425
  });
310
426
  const RulesDirRulesExtensionCapabilitySchema = Schema.Struct({
311
- ...ActiveSpecTrackedCapabilityFields,
427
+ ...AvailableSpecTrackedCanonicalCapabilityFields,
312
428
  kind: Schema.Literal("rules-dir"),
313
429
  files: Schema.Array(Schema.NonEmptyString).pipe(Schema.check(Schema.isUnique())),
314
430
  nestedDiscovery: Schema.Boolean,
@@ -316,26 +432,36 @@ const RulesDirRulesExtensionCapabilitySchema = Schema.Struct({
316
432
  directory: Schema.NonEmptyString,
317
433
  });
318
434
  /** @experimental This API is unstable and may change without notice. */
319
- export const RulesExtensionCapabilitySchema = Schema.Union([
320
- AgentsMdRulesExtensionCapabilitySchema,
321
- OwnFileRulesExtensionCapabilitySchema,
322
- RulesDirRulesExtensionCapabilitySchema,
323
- InactiveCapabilitySchema,
324
- ]).annotate({
435
+ export const RulesExtensionCapabilitySchema = Schema.Struct({
436
+ canonical: Schema.Union([
437
+ AgentsMdRulesExtensionCapabilitySchema,
438
+ OwnFileRulesExtensionCapabilitySchema,
439
+ RulesDirRulesExtensionCapabilitySchema,
440
+ Schema.Struct(UnavailableCanonicalCapabilityFields),
441
+ ]),
442
+ axm: NoWriterAxmCapabilityStateSchema,
443
+ })
444
+ .pipe(Schema.check(Schema.makeFilter(requireSourcesForActiveAxmSupport)))
445
+ .annotate({
325
446
  identifier: "RulesExtensionCapability",
326
447
  title: "Rules Capability",
327
448
  description: "Agent support for behavior-governing instruction files and rule extensions.",
328
449
  });
329
450
  /** @experimental This API is unstable and may change without notice. */
330
- export const FilesExtensionCapabilitySchema = Schema.Union([
331
- Schema.Struct({
332
- ...ActiveCapabilityBaseFields,
333
- directory: Schema.NonEmptyString,
334
- files: Schema.Array(Schema.NonEmptyString).pipe(Schema.check(Schema.isUnique())),
335
- naming: Schema.NullOr(Schema.NonEmptyString),
336
- }),
337
- InactiveCapabilitySchema,
338
- ]).annotate({
451
+ export const FilesExtensionCapabilitySchema = Schema.Struct({
452
+ canonical: Schema.Union([
453
+ Schema.Struct({
454
+ ...AvailableCanonicalCapabilityBaseFields,
455
+ directory: Schema.NonEmptyString,
456
+ files: Schema.Array(Schema.NonEmptyString).pipe(Schema.check(Schema.isUnique())),
457
+ naming: Schema.NullOr(Schema.NonEmptyString),
458
+ }),
459
+ Schema.Struct(UnavailableCanonicalCapabilityFields),
460
+ ]),
461
+ axm: NoWriterAxmCapabilityStateSchema,
462
+ })
463
+ .pipe(Schema.check(Schema.makeFilter(requireSourcesForActiveAxmSupport)))
464
+ .annotate({
339
465
  identifier: "FilesExtensionCapability",
340
466
  title: "Files Capability",
341
467
  description: "Agent support for standalone context-file scaffolding.",
@@ -445,37 +571,70 @@ export const McpEnvExpansionSchema = Schema.Struct({
445
571
  title: "MCP Env Expansion",
446
572
  description: "Whether an agent expands MCP config environment references.",
447
573
  });
448
- const McpActiveCapabilityStruct = Schema.Struct({
449
- ...ActiveSpecTrackedCapabilityFields,
574
+ const McpUnavailableCapabilityStruct = Schema.Struct({
575
+ canonical: Schema.Struct(UnavailableCanonicalCapabilityFields),
576
+ axm: Schema.Union([
577
+ Schema.Struct({
578
+ support: ActiveAxmSupportSchema,
579
+ lastVerified: LastVerifiedDateSchema,
580
+ writer: Schema.NullOr(Schema.Struct({ config: McpConfigSchema })),
581
+ }),
582
+ Schema.Struct({
583
+ support: InactiveAxmSupportSchema,
584
+ writer: Schema.NullOr(Schema.Struct({ config: McpConfigSchema })),
585
+ }),
586
+ ]),
587
+ });
588
+ const McpCanonicalWithTransportsSchema = Schema.Struct({
589
+ ...AvailableSpecTrackedCanonicalCapabilityFields,
450
590
  transports: NonEmptyMcpTransportsSchema,
451
- config: Schema.optionalKey(McpConfigSchema),
452
591
  mcpEnvExpansion: Schema.optionalKey(McpEnvExpansionSchema),
453
592
  });
454
- const McpActiveCapabilitySchema = McpActiveCapabilityStruct.pipe(Schema.check(Schema.makeFilter((capability) => {
593
+ const McpAvailableCapabilityStruct = Schema.Struct({
594
+ canonical: McpCanonicalWithTransportsSchema,
595
+ axm: Schema.Union([
596
+ Schema.Struct({
597
+ support: ActiveAxmSupportSchema,
598
+ lastVerified: LastVerifiedDateSchema,
599
+ writer: Schema.NullOr(Schema.Struct({ config: McpConfigSchema })),
600
+ }),
601
+ Schema.Struct({
602
+ support: InactiveAxmSupportSchema,
603
+ writer: Schema.NullOr(Schema.Struct({ config: McpConfigSchema })),
604
+ }),
605
+ ]),
606
+ });
607
+ const McpExtensionCapabilityStruct = Schema.Union([
608
+ McpAvailableCapabilityStruct,
609
+ McpUnavailableCapabilityStruct,
610
+ ]);
611
+ const McpExtensionCapabilitySchemaWithChecks = McpExtensionCapabilityStruct.pipe(Schema.check(Schema.makeFilter((capability) => {
455
612
  const issues = [];
456
- const config = capability.config;
457
- if (config === undefined)
613
+ const activeSourcesIssue = requireSourcesForActiveAxmSupport(capability);
614
+ if (activeSourcesIssue !== undefined)
615
+ issues.push(activeSourcesIssue);
616
+ const writer = capability.axm.writer;
617
+ if (writer === null || !("transports" in capability.canonical))
458
618
  return issues;
459
- if (capability.transports.includes("stdio") && config.stdio === null) {
619
+ const config = writer.config;
620
+ if (capability.canonical.transports.includes("stdio") && config.stdio === null) {
460
621
  issues.push({
461
- path: ["config", "stdio"],
622
+ path: ["axm", "writer", "config", "stdio"],
462
623
  issue: "MCP stdio config is required when stdio transport is supported.",
463
624
  });
464
625
  }
465
- if ((capability.transports.includes("http") || capability.transports.includes("sse")) &&
626
+ if ((capability.canonical.transports.includes("http") ||
627
+ capability.canonical.transports.includes("sse")) &&
466
628
  config.remote === null) {
467
629
  issues.push({
468
- path: ["config", "remote"],
630
+ path: ["axm", "writer", "config", "remote"],
469
631
  issue: "MCP remote config is required when http or sse transport is supported.",
470
632
  });
471
633
  }
472
634
  return issues;
473
635
  })));
474
636
  /** @experimental This API is unstable and may change without notice. */
475
- export const McpExtensionCapabilitySchema = Schema.Union([
476
- McpActiveCapabilitySchema,
477
- InactiveCapabilitySchema,
478
- ]).annotate({
637
+ export const McpExtensionCapabilitySchema = McpExtensionCapabilitySchemaWithChecks.annotate({
479
638
  identifier: "McpExtensionCapability",
480
639
  title: "MCP Capability",
481
640
  description: "Agent support for MCP server extensions.",
@@ -524,14 +683,28 @@ export const HooksSerializerSchema = Schema.Literals(["claude-code-settings"]).a
524
683
  examples: ["claude-code-settings"],
525
684
  });
526
685
  /** @experimental This API is unstable and may change without notice. */
527
- export const HooksExtensionCapabilitySchema = Schema.Union([
528
- Schema.Struct({
529
- ...ActiveCapabilityBaseFields,
530
- configFiles: Schema.Array(ConfigFileLocationSchema),
531
- serializer: HooksSerializerSchema,
532
- }),
533
- InactiveCapabilitySchema,
534
- ]).annotate({
686
+ export const HooksExtensionCapabilitySchema = Schema.Struct({
687
+ canonical: Schema.Union([
688
+ Schema.Struct({
689
+ ...AvailableCanonicalCapabilityBaseFields,
690
+ configFiles: Schema.Array(ConfigFileLocationSchema),
691
+ }),
692
+ Schema.Struct(UnavailableCanonicalCapabilityFields),
693
+ ]),
694
+ axm: Schema.Union([
695
+ Schema.Struct({
696
+ support: ActiveAxmSupportSchema,
697
+ lastVerified: LastVerifiedDateSchema,
698
+ writer: Schema.NullOr(Schema.Struct({ serializer: HooksSerializerSchema })),
699
+ }),
700
+ Schema.Struct({
701
+ support: InactiveAxmSupportSchema,
702
+ writer: Schema.NullOr(Schema.Struct({ serializer: HooksSerializerSchema })),
703
+ }),
704
+ ]),
705
+ })
706
+ .pipe(Schema.check(Schema.makeFilter(requireSourcesForActiveAxmSupport)))
707
+ .annotate({
535
708
  identifier: "HooksExtensionCapability",
536
709
  title: "Hooks Capability",
537
710
  description: "Agent support for lifecycle hook extensions.",
@@ -580,18 +753,32 @@ export const PermissionGrantSchema = PermissionGrantStruct.pipe(Schema.check(Sch
580
753
  description: "Instruction to grant access for a named tool. Provide patch (JSON-ish merge) or template (raw text). Path and patch may interpolate ${tool} and ${workspaceRoot}.",
581
754
  });
582
755
  /** @experimental This API is unstable and may change without notice. */
583
- export const PermissionsExtensionCapabilitySchema = Schema.Union([
584
- Schema.Struct({
585
- ...ActiveCapabilityBaseFields,
586
- mechanism: NonEmptyPermissionMechanismsSchema,
587
- configFiles: Schema.Array(ConfigFileLocationSchema),
588
- grammar: Schema.NullOr(PermissionGrammarSchema),
589
- prerequisites: Schema.Array(PermissionPrerequisiteSchema),
590
- cliFlags: Schema.Array(PermissionCliFlagSchema),
591
- grants: Schema.Record(Schema.String, PermissionGrantSchema),
592
- }),
593
- InactiveCapabilitySchema,
594
- ]).annotate({
756
+ export const PermissionsExtensionCapabilitySchema = Schema.Struct({
757
+ canonical: Schema.Union([
758
+ Schema.Struct({
759
+ ...AvailableCanonicalCapabilityBaseFields,
760
+ mechanism: NonEmptyPermissionMechanismsSchema,
761
+ configFiles: Schema.Array(ConfigFileLocationSchema),
762
+ grammar: Schema.NullOr(PermissionGrammarSchema),
763
+ prerequisites: Schema.Array(PermissionPrerequisiteSchema),
764
+ cliFlags: Schema.Array(PermissionCliFlagSchema),
765
+ }),
766
+ Schema.Struct(UnavailableCanonicalCapabilityFields),
767
+ ]),
768
+ axm: Schema.Union([
769
+ Schema.Struct({
770
+ support: ActiveAxmSupportSchema,
771
+ lastVerified: LastVerifiedDateSchema,
772
+ writer: Schema.NullOr(Schema.Struct({ grants: Schema.Record(Schema.String, PermissionGrantSchema) })),
773
+ }),
774
+ Schema.Struct({
775
+ support: InactiveAxmSupportSchema,
776
+ writer: Schema.NullOr(Schema.Struct({ grants: Schema.Record(Schema.String, PermissionGrantSchema) })),
777
+ }),
778
+ ]),
779
+ })
780
+ .pipe(Schema.check(Schema.makeFilter(requireSourcesForActiveAxmSupport)))
781
+ .annotate({
595
782
  identifier: "PermissionsExtensionCapability",
596
783
  title: "Permissions Capability",
597
784
  description: "How an agent grants tool execution and filesystem access without per-call prompts.",
@@ -611,6 +798,44 @@ export const AgentCapabilitiesSchema = Schema.Struct(LeafCapabilitySchemaByType)
611
798
  title: "Agent Capabilities",
612
799
  description: "Agent extension capabilities keyed by leaf extension type.",
613
800
  });
801
+ /** @experimental This API is unstable and may change without notice. */
802
+ export const AgentLifecycleStateSchema = Schema.Literals([
803
+ "active",
804
+ "deprecated",
805
+ "retired",
806
+ ]).annotate({
807
+ identifier: "AgentLifecycleState",
808
+ title: "Agent Lifecycle State",
809
+ description: "Support status of the coding agent product itself. Distinct from AxmSupport, which tracks AXM's integration with a single capability.",
810
+ examples: ["active", "deprecated", "retired"],
811
+ });
812
+ const AgentLifecycleSinceSchema = Schema.NonEmptyString.pipe(Schema.check(Schema.isPattern(ISO_DATE_PATTERN, {
813
+ message: "Expected an ISO 8601 date in YYYY-MM-DD form.",
814
+ }))).annotate({
815
+ identifier: "AgentLifecycleSince",
816
+ title: "Agent Lifecycle Since",
817
+ description: "Date an agent entered its current lifecycle state.",
818
+ examples: ["2025-11-01"],
819
+ });
820
+ // Loose kebab id rather than the closed AgentIdSchema: that schema lives in
821
+ // catalog.ts (which imports this module), so referencing it here would be a
822
+ // cycle. Referential integrity (target exists, not self, no cycles) is enforced
823
+ // by the catalog invariant test.
824
+ const InactiveAgentLifecycleFields = {
825
+ since: Schema.NullOr(AgentLifecycleSinceSchema),
826
+ note: Schema.NullOr(Schema.NonEmptyString),
827
+ supersededBy: Schema.NullOr(AgentIdFromYamlSchema),
828
+ };
829
+ /** @experimental This API is unstable and may change without notice. */
830
+ export const AgentLifecycleSchema = Schema.Union([
831
+ Schema.Struct({ state: Schema.Literal("active") }),
832
+ Schema.Struct({ state: Schema.Literal("deprecated"), ...InactiveAgentLifecycleFields }),
833
+ Schema.Struct({ state: Schema.Literal("retired"), ...InactiveAgentLifecycleFields }),
834
+ ]).annotate({
835
+ identifier: "AgentLifecycle",
836
+ title: "Agent Lifecycle",
837
+ description: "Whether a catalog agent is active, deprecated, or retired, and which agent supersedes it.",
838
+ });
614
839
  const AgentStruct = Schema.Struct({
615
840
  id: AgentIdFromYamlSchema,
616
841
  name: Schema.NonEmptyString,
@@ -619,6 +844,7 @@ const AgentStruct = Schema.Struct({
619
844
  interfaces: Schema.NonEmptyArray(AgentInterfaceSchema).pipe(Schema.check(Schema.isUnique())),
620
845
  family: Schema.NullOr(Schema.NonEmptyString),
621
846
  rootDir: Schema.NullOr(Schema.NonEmptyString),
847
+ lifecycle: AgentLifecycleSchema,
622
848
  detection: DetectionSchema,
623
849
  docs: Schema.Array(DocLinkSchema),
624
850
  capabilities: AgentCapabilitiesSchema,
@@ -626,11 +852,11 @@ const AgentStruct = Schema.Struct({
626
852
  });
627
853
  /** @experimental This API is unstable and may change without notice. */
628
854
  export const AgentSchema = AgentStruct.pipe(Schema.check(Schema.makeFilter((agent) => {
629
- if ("kind" in agent.capabilities.rule &&
630
- agent.capabilities.rule.kind === "agents-md" &&
631
- agent.capabilities.rule.files[0] !== "AGENTS.md") {
855
+ if ("kind" in agent.capabilities.rule.canonical &&
856
+ agent.capabilities.rule.canonical.kind === "agents-md" &&
857
+ agent.capabilities.rule.canonical.files[0] !== "AGENTS.md") {
632
858
  return {
633
- path: ["capabilities", "rule", "files"],
859
+ path: ["capabilities", "rule", "canonical", "files"],
634
860
  issue: 'capabilities.rule.kind "agents-md" requires AGENTS.md.',
635
861
  };
636
862
  }