@agentxm/extension-model 0.28.4-bootstrap.0

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 (263) hide show
  1. package/LICENSE +110 -0
  2. package/README.md +17 -0
  3. package/dist/src/unstable/agent-capabilities/catalog.d.ts +47000 -0
  4. package/dist/src/unstable/agent-capabilities/catalog.js +172 -0
  5. package/dist/src/unstable/agent-capabilities/data/agents/adal.d.ts +162 -0
  6. package/dist/src/unstable/agent-capabilities/data/agents/adal.js +134 -0
  7. package/dist/src/unstable/agent-capabilities/data/agents/aider-desk.d.ts +167 -0
  8. package/dist/src/unstable/agent-capabilities/data/agents/aider-desk.js +133 -0
  9. package/dist/src/unstable/agent-capabilities/data/agents/amp.d.ts +203 -0
  10. package/dist/src/unstable/agent-capabilities/data/agents/amp.js +187 -0
  11. package/dist/src/unstable/agent-capabilities/data/agents/antigravity-cli.d.ts +186 -0
  12. package/dist/src/unstable/agent-capabilities/data/agents/antigravity-cli.js +140 -0
  13. package/dist/src/unstable/agent-capabilities/data/agents/antigravity.d.ts +357 -0
  14. package/dist/src/unstable/agent-capabilities/data/agents/antigravity.js +294 -0
  15. package/dist/src/unstable/agent-capabilities/data/agents/augment.d.ts +383 -0
  16. package/dist/src/unstable/agent-capabilities/data/agents/augment.js +329 -0
  17. package/dist/src/unstable/agent-capabilities/data/agents/chatgpt.d.ts +159 -0
  18. package/dist/src/unstable/agent-capabilities/data/agents/chatgpt.js +117 -0
  19. package/dist/src/unstable/agent-capabilities/data/agents/claude-ai.d.ts +153 -0
  20. package/dist/src/unstable/agent-capabilities/data/agents/claude-ai.js +105 -0
  21. package/dist/src/unstable/agent-capabilities/data/agents/claude-code.d.ts +460 -0
  22. package/dist/src/unstable/agent-capabilities/data/agents/claude-code.js +406 -0
  23. package/dist/src/unstable/agent-capabilities/data/agents/cline.d.ts +225 -0
  24. package/dist/src/unstable/agent-capabilities/data/agents/cline.js +190 -0
  25. package/dist/src/unstable/agent-capabilities/data/agents/codearts-agent.d.ts +246 -0
  26. package/dist/src/unstable/agent-capabilities/data/agents/codearts-agent.js +206 -0
  27. package/dist/src/unstable/agent-capabilities/data/agents/codebuddy.d.ts +420 -0
  28. package/dist/src/unstable/agent-capabilities/data/agents/codebuddy.js +378 -0
  29. package/dist/src/unstable/agent-capabilities/data/agents/codemaker.d.ts +143 -0
  30. package/dist/src/unstable/agent-capabilities/data/agents/codemaker.js +112 -0
  31. package/dist/src/unstable/agent-capabilities/data/agents/codestudio.d.ts +165 -0
  32. package/dist/src/unstable/agent-capabilities/data/agents/codestudio.js +136 -0
  33. package/dist/src/unstable/agent-capabilities/data/agents/codex.d.ts +458 -0
  34. package/dist/src/unstable/agent-capabilities/data/agents/codex.js +399 -0
  35. package/dist/src/unstable/agent-capabilities/data/agents/command-code.d.ts +247 -0
  36. package/dist/src/unstable/agent-capabilities/data/agents/command-code.js +222 -0
  37. package/dist/src/unstable/agent-capabilities/data/agents/continue.d.ts +322 -0
  38. package/dist/src/unstable/agent-capabilities/data/agents/continue.js +273 -0
  39. package/dist/src/unstable/agent-capabilities/data/agents/cortex.d.ts +306 -0
  40. package/dist/src/unstable/agent-capabilities/data/agents/cortex.js +241 -0
  41. package/dist/src/unstable/agent-capabilities/data/agents/cowork.d.ts +185 -0
  42. package/dist/src/unstable/agent-capabilities/data/agents/cowork.js +133 -0
  43. package/dist/src/unstable/agent-capabilities/data/agents/crush.d.ts +249 -0
  44. package/dist/src/unstable/agent-capabilities/data/agents/crush.js +218 -0
  45. package/dist/src/unstable/agent-capabilities/data/agents/cursor.d.ts +300 -0
  46. package/dist/src/unstable/agent-capabilities/data/agents/cursor.js +282 -0
  47. package/dist/src/unstable/agent-capabilities/data/agents/deepagents.d.ts +159 -0
  48. package/dist/src/unstable/agent-capabilities/data/agents/deepagents.js +137 -0
  49. package/dist/src/unstable/agent-capabilities/data/agents/devin.d.ts +410 -0
  50. package/dist/src/unstable/agent-capabilities/data/agents/devin.js +358 -0
  51. package/dist/src/unstable/agent-capabilities/data/agents/dexto.d.ts +166 -0
  52. package/dist/src/unstable/agent-capabilities/data/agents/dexto.js +141 -0
  53. package/dist/src/unstable/agent-capabilities/data/agents/droid.d.ts +318 -0
  54. package/dist/src/unstable/agent-capabilities/data/agents/droid.js +257 -0
  55. package/dist/src/unstable/agent-capabilities/data/agents/firebender.d.ts +313 -0
  56. package/dist/src/unstable/agent-capabilities/data/agents/firebender.js +244 -0
  57. package/dist/src/unstable/agent-capabilities/data/agents/forgecode.d.ts +193 -0
  58. package/dist/src/unstable/agent-capabilities/data/agents/forgecode.js +160 -0
  59. package/dist/src/unstable/agent-capabilities/data/agents/gemini-app.d.ts +153 -0
  60. package/dist/src/unstable/agent-capabilities/data/agents/gemini-app.js +105 -0
  61. package/dist/src/unstable/agent-capabilities/data/agents/gemini-cli.d.ts +424 -0
  62. package/dist/src/unstable/agent-capabilities/data/agents/gemini-cli.js +411 -0
  63. package/dist/src/unstable/agent-capabilities/data/agents/github-copilot-cli.d.ts +300 -0
  64. package/dist/src/unstable/agent-capabilities/data/agents/github-copilot-cli.js +307 -0
  65. package/dist/src/unstable/agent-capabilities/data/agents/goose.d.ts +162 -0
  66. package/dist/src/unstable/agent-capabilities/data/agents/goose.js +131 -0
  67. package/dist/src/unstable/agent-capabilities/data/agents/grok-cli.d.ts +186 -0
  68. package/dist/src/unstable/agent-capabilities/data/agents/grok-cli.js +164 -0
  69. package/dist/src/unstable/agent-capabilities/data/agents/hermes.d.ts +303 -0
  70. package/dist/src/unstable/agent-capabilities/data/agents/hermes.js +223 -0
  71. package/dist/src/unstable/agent-capabilities/data/agents/ibm-bob.d.ts +231 -0
  72. package/dist/src/unstable/agent-capabilities/data/agents/ibm-bob.js +200 -0
  73. package/dist/src/unstable/agent-capabilities/data/agents/iflow-cli.d.ts +182 -0
  74. package/dist/src/unstable/agent-capabilities/data/agents/iflow-cli.js +126 -0
  75. package/dist/src/unstable/agent-capabilities/data/agents/index.d.ts +67 -0
  76. package/dist/src/unstable/agent-capabilities/data/agents/index.js +67 -0
  77. package/dist/src/unstable/agent-capabilities/data/agents/junie.d.ts +219 -0
  78. package/dist/src/unstable/agent-capabilities/data/agents/junie.js +200 -0
  79. package/dist/src/unstable/agent-capabilities/data/agents/kilo.d.ts +282 -0
  80. package/dist/src/unstable/agent-capabilities/data/agents/kilo.js +260 -0
  81. package/dist/src/unstable/agent-capabilities/data/agents/kimi-cli.d.ts +350 -0
  82. package/dist/src/unstable/agent-capabilities/data/agents/kimi-cli.js +274 -0
  83. package/dist/src/unstable/agent-capabilities/data/agents/kiro-cli.d.ts +227 -0
  84. package/dist/src/unstable/agent-capabilities/data/agents/kiro-cli.js +197 -0
  85. package/dist/src/unstable/agent-capabilities/data/agents/kode.d.ts +166 -0
  86. package/dist/src/unstable/agent-capabilities/data/agents/kode.js +141 -0
  87. package/dist/src/unstable/agent-capabilities/data/agents/lingma.d.ts +185 -0
  88. package/dist/src/unstable/agent-capabilities/data/agents/lingma.js +149 -0
  89. package/dist/src/unstable/agent-capabilities/data/agents/mcpjam.d.ts +144 -0
  90. package/dist/src/unstable/agent-capabilities/data/agents/mcpjam.js +116 -0
  91. package/dist/src/unstable/agent-capabilities/data/agents/minimax-code.d.ts +138 -0
  92. package/dist/src/unstable/agent-capabilities/data/agents/minimax-code.js +93 -0
  93. package/dist/src/unstable/agent-capabilities/data/agents/mistral-vibe.d.ts +244 -0
  94. package/dist/src/unstable/agent-capabilities/data/agents/mistral-vibe.js +200 -0
  95. package/dist/src/unstable/agent-capabilities/data/agents/mux.d.ts +155 -0
  96. package/dist/src/unstable/agent-capabilities/data/agents/mux.js +127 -0
  97. package/dist/src/unstable/agent-capabilities/data/agents/neovate.d.ts +211 -0
  98. package/dist/src/unstable/agent-capabilities/data/agents/neovate.js +178 -0
  99. package/dist/src/unstable/agent-capabilities/data/agents/ona.d.ts +167 -0
  100. package/dist/src/unstable/agent-capabilities/data/agents/ona.js +110 -0
  101. package/dist/src/unstable/agent-capabilities/data/agents/openclaw.d.ts +139 -0
  102. package/dist/src/unstable/agent-capabilities/data/agents/openclaw.js +114 -0
  103. package/dist/src/unstable/agent-capabilities/data/agents/opencode.d.ts +220 -0
  104. package/dist/src/unstable/agent-capabilities/data/agents/opencode.js +192 -0
  105. package/dist/src/unstable/agent-capabilities/data/agents/openhands.d.ts +245 -0
  106. package/dist/src/unstable/agent-capabilities/data/agents/openhands.js +184 -0
  107. package/dist/src/unstable/agent-capabilities/data/agents/pi.d.ts +185 -0
  108. package/dist/src/unstable/agent-capabilities/data/agents/pi.js +169 -0
  109. package/dist/src/unstable/agent-capabilities/data/agents/pochi.d.ts +199 -0
  110. package/dist/src/unstable/agent-capabilities/data/agents/pochi.js +163 -0
  111. package/dist/src/unstable/agent-capabilities/data/agents/qoder-cn.d.ts +199 -0
  112. package/dist/src/unstable/agent-capabilities/data/agents/qoder-cn.js +141 -0
  113. package/dist/src/unstable/agent-capabilities/data/agents/qoder.d.ts +414 -0
  114. package/dist/src/unstable/agent-capabilities/data/agents/qoder.js +378 -0
  115. package/dist/src/unstable/agent-capabilities/data/agents/qwen-code.d.ts +406 -0
  116. package/dist/src/unstable/agent-capabilities/data/agents/qwen-code.js +345 -0
  117. package/dist/src/unstable/agent-capabilities/data/agents/replit.d.ts +144 -0
  118. package/dist/src/unstable/agent-capabilities/data/agents/replit.js +116 -0
  119. package/dist/src/unstable/agent-capabilities/data/agents/roo.d.ts +192 -0
  120. package/dist/src/unstable/agent-capabilities/data/agents/roo.js +180 -0
  121. package/dist/src/unstable/agent-capabilities/data/agents/rovodev.d.ts +189 -0
  122. package/dist/src/unstable/agent-capabilities/data/agents/rovodev.js +156 -0
  123. package/dist/src/unstable/agent-capabilities/data/agents/tabnine-cli.d.ts +280 -0
  124. package/dist/src/unstable/agent-capabilities/data/agents/tabnine-cli.js +223 -0
  125. package/dist/src/unstable/agent-capabilities/data/agents/trae-cn.d.ts +188 -0
  126. package/dist/src/unstable/agent-capabilities/data/agents/trae-cn.js +156 -0
  127. package/dist/src/unstable/agent-capabilities/data/agents/trae.d.ts +188 -0
  128. package/dist/src/unstable/agent-capabilities/data/agents/trae.js +156 -0
  129. package/dist/src/unstable/agent-capabilities/data/agents/warp.d.ts +169 -0
  130. package/dist/src/unstable/agent-capabilities/data/agents/warp.js +133 -0
  131. package/dist/src/unstable/agent-capabilities/data/agents/windsurf.d.ts +414 -0
  132. package/dist/src/unstable/agent-capabilities/data/agents/windsurf.js +326 -0
  133. package/dist/src/unstable/agent-capabilities/data/agents/zed.d.ts +168 -0
  134. package/dist/src/unstable/agent-capabilities/data/agents/zed.js +109 -0
  135. package/dist/src/unstable/agent-capabilities/data/agents/zencoder.d.ts +168 -0
  136. package/dist/src/unstable/agent-capabilities/data/agents/zencoder.js +137 -0
  137. package/dist/src/unstable/agent-capabilities/data/agents/zenflow.d.ts +153 -0
  138. package/dist/src/unstable/agent-capabilities/data/agents/zenflow.js +96 -0
  139. package/dist/src/unstable/agent-capabilities/derive.d.ts +129 -0
  140. package/dist/src/unstable/agent-capabilities/derive.js +389 -0
  141. package/dist/src/unstable/agent-capabilities/index.d.ts +15 -0
  142. package/dist/src/unstable/agent-capabilities/index.js +15 -0
  143. package/dist/src/unstable/agent-capabilities/lookup.d.ts +10 -0
  144. package/dist/src/unstable/agent-capabilities/lookup.js +9 -0
  145. package/dist/src/unstable/agent-capabilities/schema.d.ts +3788 -0
  146. package/dist/src/unstable/agent-capabilities/schema.js +1218 -0
  147. package/dist/src/unstable/agent-capabilities/verification.d.ts +25 -0
  148. package/dist/src/unstable/agent-capabilities/verification.js +40 -0
  149. package/dist/src/unstable/agents/registry.d.ts +33 -0
  150. package/dist/src/unstable/agents/registry.js +50 -0
  151. package/dist/src/unstable/agents/types.d.ts +126 -0
  152. package/dist/src/unstable/agents/types.js +17 -0
  153. package/dist/src/unstable/date-time.d.ts +17 -0
  154. package/dist/src/unstable/date-time.js +30 -0
  155. package/dist/src/unstable/discovery-walk.d.ts +8 -0
  156. package/dist/src/unstable/discovery-walk.js +15 -0
  157. package/dist/src/unstable/extension-types/index.d.ts +8 -0
  158. package/dist/src/unstable/extension-types/index.js +8 -0
  159. package/dist/src/unstable/extension-types/schema.d.ts +154 -0
  160. package/dist/src/unstable/extension-types/schema.js +102 -0
  161. package/dist/src/unstable/extension-types/standards.d.ts +29 -0
  162. package/dist/src/unstable/extension-types/standards.js +29 -0
  163. package/dist/src/unstable/extensions/common.d.ts +539 -0
  164. package/dist/src/unstable/extensions/common.js +605 -0
  165. package/dist/src/unstable/extensions/deprecation.d.ts +42 -0
  166. package/dist/src/unstable/extensions/deprecation.js +46 -0
  167. package/dist/src/unstable/extensions/fqn-pattern.d.ts +17 -0
  168. package/dist/src/unstable/extensions/fqn-pattern.js +63 -0
  169. package/dist/src/unstable/extensions/fqn.d.ts +51 -0
  170. package/dist/src/unstable/extensions/fqn.js +51 -0
  171. package/dist/src/unstable/extensions/handle.d.ts +16 -0
  172. package/dist/src/unstable/extensions/handle.js +30 -0
  173. package/dist/src/unstable/extensions/index.d.ts +13 -0
  174. package/dist/src/unstable/extensions/index.js +13 -0
  175. package/dist/src/unstable/extensions/installable-types.d.ts +12 -0
  176. package/dist/src/unstable/extensions/installable-types.js +21 -0
  177. package/dist/src/unstable/extensions/license.d.ts +16 -0
  178. package/dist/src/unstable/extensions/license.js +29 -0
  179. package/dist/src/unstable/extensions/manifest-metadata.d.ts +18 -0
  180. package/dist/src/unstable/extensions/manifest-metadata.js +61 -0
  181. package/dist/src/unstable/extensions/refs/extension-ref.d.ts +20 -0
  182. package/dist/src/unstable/extensions/refs/extension-ref.js +12 -0
  183. package/dist/src/unstable/extensions/refs/hook.d.ts +29 -0
  184. package/dist/src/unstable/extensions/refs/hook.js +8 -0
  185. package/dist/src/unstable/extensions/refs/knowledge.d.ts +15 -0
  186. package/dist/src/unstable/extensions/refs/knowledge.js +2 -0
  187. package/dist/src/unstable/extensions/refs/mcp-server.d.ts +19 -0
  188. package/dist/src/unstable/extensions/refs/mcp-server.js +8 -0
  189. package/dist/src/unstable/extensions/refs/pack.d.ts +17 -0
  190. package/dist/src/unstable/extensions/refs/pack.js +10 -0
  191. package/dist/src/unstable/extensions/refs/ref-base.d.ts +125 -0
  192. package/dist/src/unstable/extensions/refs/ref-base.js +12 -0
  193. package/dist/src/unstable/extensions/refs/rule.d.ts +27 -0
  194. package/dist/src/unstable/extensions/refs/rule.js +8 -0
  195. package/dist/src/unstable/extensions/refs/skill.d.ts +28 -0
  196. package/dist/src/unstable/extensions/refs/skill.js +11 -0
  197. package/dist/src/unstable/extensions/refs/subagent.d.ts +19 -0
  198. package/dist/src/unstable/extensions/refs/subagent.js +8 -0
  199. package/dist/src/unstable/extensions/registry-source.d.ts +37 -0
  200. package/dist/src/unstable/extensions/registry-source.js +158 -0
  201. package/dist/src/unstable/extensions/release-age.d.ts +36 -0
  202. package/dist/src/unstable/extensions/release-age.js +11 -0
  203. package/dist/src/unstable/extensions/universal-skills-dir.d.ts +58 -0
  204. package/dist/src/unstable/extensions/universal-skills-dir.js +68 -0
  205. package/dist/src/unstable/hooks/manifest-schema.d.ts +175 -0
  206. package/dist/src/unstable/hooks/manifest-schema.js +112 -0
  207. package/dist/src/unstable/knowledge/concept-ref.d.ts +34 -0
  208. package/dist/src/unstable/knowledge/concept-ref.js +114 -0
  209. package/dist/src/unstable/knowledge/index.d.ts +8 -0
  210. package/dist/src/unstable/knowledge/index.js +8 -0
  211. package/dist/src/unstable/knowledge/manifest-schema.d.ts +60 -0
  212. package/dist/src/unstable/knowledge/manifest-schema.js +34 -0
  213. package/dist/src/unstable/mcps/manifest-schema.d.ts +899 -0
  214. package/dist/src/unstable/mcps/manifest-schema.js +230 -0
  215. package/dist/src/unstable/package-urls/companion-package.d.ts +14 -0
  216. package/dist/src/unstable/package-urls/companion-package.js +44 -0
  217. package/dist/src/unstable/package-urls/index.d.ts +4 -0
  218. package/dist/src/unstable/package-urls/index.js +4 -0
  219. package/dist/src/unstable/package-urls/internal.d.ts +6 -0
  220. package/dist/src/unstable/package-urls/internal.js +17 -0
  221. package/dist/src/unstable/package-urls/package-identity-purl.d.ts +5 -0
  222. package/dist/src/unstable/package-urls/package-identity-purl.js +26 -0
  223. package/dist/src/unstable/package-urls/vers-range.d.ts +34 -0
  224. package/dist/src/unstable/package-urls/vers-range.js +163 -0
  225. package/dist/src/unstable/packaging/index.d.ts +8 -0
  226. package/dist/src/unstable/packaging/index.js +8 -0
  227. package/dist/src/unstable/packaging/package-type.d.ts +23 -0
  228. package/dist/src/unstable/packaging/package-type.js +31 -0
  229. package/dist/src/unstable/packaging/package-url.d.ts +50 -0
  230. package/dist/src/unstable/packaging/package-url.js +93 -0
  231. package/dist/src/unstable/packs/manifest-schema.d.ts +66 -0
  232. package/dist/src/unstable/packs/manifest-schema.js +34 -0
  233. package/dist/src/unstable/path-types.d.ts +22 -0
  234. package/dist/src/unstable/path-types.js +48 -0
  235. package/dist/src/unstable/rules/manifest-schema.d.ts +70 -0
  236. package/dist/src/unstable/rules/manifest-schema.js +43 -0
  237. package/dist/src/unstable/schema-issues.d.ts +13 -0
  238. package/dist/src/unstable/schema-issues.js +34 -0
  239. package/dist/src/unstable/skills/manifest-schema.d.ts +69 -0
  240. package/dist/src/unstable/skills/manifest-schema.js +31 -0
  241. package/dist/src/unstable/sources/forge-grammar.d.ts +22 -0
  242. package/dist/src/unstable/sources/forge-grammar.js +50 -0
  243. package/dist/src/unstable/sources/parser.d.ts +85 -0
  244. package/dist/src/unstable/sources/parser.js +122 -0
  245. package/dist/src/unstable/sources/printer.d.ts +14 -0
  246. package/dist/src/unstable/sources/printer.js +45 -0
  247. package/dist/src/unstable/sources/source-hash.d.ts +24 -0
  248. package/dist/src/unstable/sources/source-hash.js +22 -0
  249. package/dist/src/unstable/sources/source-host-provider.d.ts +112 -0
  250. package/dist/src/unstable/sources/source-host-provider.js +11 -0
  251. package/dist/src/unstable/sources/types.d.ts +262 -0
  252. package/dist/src/unstable/sources/types.js +127 -0
  253. package/dist/src/unstable/sources/workspace.d.ts +13 -0
  254. package/dist/src/unstable/sources/workspace.js +13 -0
  255. package/dist/src/unstable/subagents/manifest-schema.d.ts +81 -0
  256. package/dist/src/unstable/subagents/manifest-schema.js +43 -0
  257. package/dist/src/unstable/version-constraints/version-constraints.d.ts +71 -0
  258. package/dist/src/unstable/version-constraints/version-constraints.js +144 -0
  259. package/dist/src/unstable/workspace-files.d.ts +13 -0
  260. package/dist/src/unstable/workspace-files.js +13 -0
  261. package/dist/src/unstable/workspace-scope.d.ts +11 -0
  262. package/dist/src/unstable/workspace-scope.js +10 -0
  263. package/package.json +271 -0
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Identity deprecation vocabulary carried by resolved extension references.
3
+ *
4
+ * A registry-resolved ref commits to the deprecation evidence captured at
5
+ * resolution time, so the view lives with the extension identity vocabulary.
6
+ * Publisher-management composites (transitions, management views) stay in
7
+ * `@agentxm/registry-protocol`.
8
+ *
9
+ * @experimental This API is unstable and may change without notice.
10
+ */
11
+ import * as Schema from "effect/Schema";
12
+ import { DateTimeUtcSchema } from "../date-time.js";
13
+ import { ExtensionFqnSchema } from "./common.js";
14
+ const DeprecationMessageSchema = Schema.String.check(Schema.isMinLength(1), Schema.isMaxLength(500)).annotate({
15
+ identifier: "DeprecationMessage",
16
+ description: "Concise publisher guidance for consumers of a deprecated extension.",
17
+ });
18
+ export const DeprecationReplacementSchema = Schema.Union([
19
+ Schema.Struct({
20
+ status: Schema.Literal("available"),
21
+ fqn: ExtensionFqnSchema,
22
+ }),
23
+ Schema.Struct({
24
+ status: Schema.Literal("unavailable"),
25
+ fqn: Schema.optional(ExtensionFqnSchema),
26
+ }),
27
+ ]).annotate({
28
+ identifier: "DeprecationReplacement",
29
+ description: "Authorization-safe current availability of a recorded replacement identity.",
30
+ });
31
+ export const DeprecationViewSchema = Schema.Union([
32
+ Schema.Struct({
33
+ deprecatedAt: DateTimeUtcSchema,
34
+ message: DeprecationMessageSchema,
35
+ replacement: Schema.optional(DeprecationReplacementSchema),
36
+ }),
37
+ Schema.Struct({
38
+ deprecatedAt: DateTimeUtcSchema,
39
+ message: Schema.optional(DeprecationMessageSchema),
40
+ replacement: DeprecationReplacementSchema,
41
+ }),
42
+ ]).annotate({
43
+ identifier: "DeprecationView",
44
+ description: "Canonical authorization-safe identity deprecation guidance.",
45
+ });
46
+ //# sourceMappingURL=deprecation.js.map
@@ -0,0 +1,17 @@
1
+ import * as Schema from "effect/Schema";
2
+ import { type ExtensionFqnParts } from "./common.js";
3
+ declare const ReleaseAgeExcludePatternPartsSchema: Schema.Struct<{
4
+ readonly owner: Schema.brand<Schema.String, "Handle">;
5
+ readonly type: Schema.Union<readonly [Schema.Literals<readonly ("skill" | "mcp-server" | "subagent" | "rule" | "hook" | "knowledge" | "pack")[]>, Schema.Literal<"*">]>;
6
+ readonly name: Schema.Union<readonly [Schema.brand<Schema.NonEmptyString, "ExtensionName">, Schema.Literal<"*">]>;
7
+ }>;
8
+ export type ReleaseAgeExcludePattern = typeof ReleaseAgeExcludePatternPartsSchema.Type;
9
+ /** A validated publisher, type, or exact-extension release-age exemption. */
10
+ export declare const ReleaseAgeExcludePatternSchema: Schema.decodeTo<Schema.toType<Schema.Struct<{
11
+ readonly owner: Schema.brand<Schema.String, "Handle">;
12
+ readonly type: Schema.Union<readonly [Schema.Literals<readonly ("skill" | "mcp-server" | "subagent" | "rule" | "hook" | "knowledge" | "pack")[]>, Schema.Literal<"*">]>;
13
+ readonly name: Schema.Union<readonly [Schema.brand<Schema.NonEmptyString, "ExtensionName">, Schema.Literal<"*">]>;
14
+ }>>, Schema.String, never, never>;
15
+ export declare const matchesReleaseAgeExcludePattern: (pattern: ReleaseAgeExcludePattern, identity: ExtensionFqnParts) => boolean;
16
+ export {};
17
+ //# sourceMappingURL=fqn-pattern.d.ts.map
@@ -0,0 +1,63 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as Result from "effect/Result";
3
+ import * as Schema from "effect/Schema";
4
+ import * as SchemaIssue from "effect/SchemaIssue";
5
+ import * as SchemaTransformation from "effect/SchemaTransformation";
6
+ import { ExtensionNameSchema, ExtensionTypeSchema, isExtensionTypePlural, toExtensionType, toExtensionTypePlural, } from "./common.js";
7
+ import { HandleSchema } from "./handle.js";
8
+ const INVALID_RELEASE_AGE_EXCLUDE_PATTERN_MESSAGE = "Expected @owner/<type>s/name, @owner/<type>s/*, or @owner/*";
9
+ const ReleaseAgeExcludePatternPartsSchema = Schema.Struct({
10
+ owner: HandleSchema,
11
+ type: Schema.Union([ExtensionTypeSchema, Schema.Literal("*")]),
12
+ name: Schema.Union([ExtensionNameSchema, Schema.Literal("*")]),
13
+ });
14
+ const decodeReleaseAgeExcludePatternParts = Schema.decodeUnknownResult(ReleaseAgeExcludePatternPartsSchema);
15
+ const parseReleaseAgeExcludePattern = (input) => {
16
+ const segments = input.split("/");
17
+ if (segments.length === 2) {
18
+ const [owner, wildcard] = segments;
19
+ if (owner === undefined || wildcard !== "*")
20
+ return undefined;
21
+ const decoded = decodeReleaseAgeExcludePatternParts({ owner, type: "*", name: "*" });
22
+ return Result.isSuccess(decoded) ? decoded.success : undefined;
23
+ }
24
+ if (segments.length !== 3)
25
+ return undefined;
26
+ const [owner, typeSegment, name] = segments;
27
+ if (owner === undefined ||
28
+ typeSegment === undefined ||
29
+ name === undefined ||
30
+ !isExtensionTypePlural(typeSegment)) {
31
+ return undefined;
32
+ }
33
+ const decoded = decodeReleaseAgeExcludePatternParts({
34
+ owner,
35
+ type: toExtensionType(typeSegment),
36
+ name,
37
+ });
38
+ return Result.isSuccess(decoded) ? decoded.success : undefined;
39
+ };
40
+ const formatReleaseAgeExcludePattern = (pattern) => pattern.type === "*"
41
+ ? `${pattern.owner}/*`
42
+ : `${pattern.owner}/${toExtensionTypePlural(pattern.type)}/${pattern.name}`;
43
+ /** A validated publisher, type, or exact-extension release-age exemption. */
44
+ export const ReleaseAgeExcludePatternSchema = Schema.String.pipe(Schema.decodeTo(Schema.toType(ReleaseAgeExcludePatternPartsSchema), SchemaTransformation.transformOrFail({
45
+ decode: (input) => {
46
+ const parsed = parseReleaseAgeExcludePattern(input);
47
+ return parsed === undefined
48
+ ? Effect.fail(new SchemaIssue.Forbidden({ message: INVALID_RELEASE_AGE_EXCLUDE_PATTERN_MESSAGE }, input))
49
+ : Effect.succeed(parsed);
50
+ },
51
+ encode: (pattern) => Effect.succeed(formatReleaseAgeExcludePattern(pattern)),
52
+ })), Schema.annotate({
53
+ identifier: "ReleaseAgeExcludePattern",
54
+ title: "Minimum Release Age Exclude Pattern",
55
+ description: "A registry extension exemption matching one exact FQN, one owner and extension type, or one owner.",
56
+ message: INVALID_RELEASE_AGE_EXCLUDE_PATTERN_MESSAGE,
57
+ }), Schema.annotateEncoded({
58
+ examples: ["@acme/skills/code-review", "@acme/skills/*", "@acme/*"],
59
+ }));
60
+ export const matchesReleaseAgeExcludePattern = (pattern, identity) => pattern.owner === identity.owner &&
61
+ (pattern.type === "*" || pattern.type === identity.type) &&
62
+ (pattern.name === "*" || pattern.name === identity.name);
63
+ //# sourceMappingURL=fqn-pattern.js.map
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Fully qualified name (FQN) parsing and formatting for 3-segment extension names.
3
+ *
4
+ * FQN format: `@owner/type-plural/name` (e.g., `@acme/skills/code-review`)
5
+ *
6
+ * @experimental This API is unstable and may change without notice.
7
+ */
8
+ import * as Result from "effect/Result";
9
+ import { type ExtensionFqnParts } from "./common.js";
10
+ declare const FqnInvalidError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
11
+ readonly _tag: "FqnInvalidError";
12
+ } & Readonly<A>;
13
+ /**
14
+ * Failure produced when an FQN string does not match the canonical
15
+ * `@owner/type-plural/name` shape.
16
+ *
17
+ * @experimental This API is unstable and may change without notice.
18
+ */
19
+ export declare class FqnInvalidError extends FqnInvalidError_base<{
20
+ readonly input: string;
21
+ }> {
22
+ }
23
+ /**
24
+ * Parse a 3-segment FQN string into its parts.
25
+ *
26
+ * Pure synchronous validation — yield the Result in `Effect.gen` to bridge
27
+ * failures into the surrounding error channel, or pattern-match on it directly
28
+ * for synchronous callers.
29
+ *
30
+ * @experimental This API is unstable and may change without notice.
31
+ */
32
+ export declare const parseFqn: (input: string) => Result.Result<ExtensionFqnParts, FqnInvalidError>;
33
+ /**
34
+ * Parse a schema-validated FQN, throwing as a defect on failure.
35
+ *
36
+ * Use only at call sites where the input has already been validated against
37
+ * an FQN schema (e.g., manifest dependency keys, lockfile resolved maps).
38
+ * A failure here is an invariant violation, not a user error — inside
39
+ * `Effect.gen`, the synchronous throw surfaces as `Cause.Die`.
40
+ *
41
+ * @experimental This API is unstable and may change without notice.
42
+ */
43
+ export declare const parseFqnOrThrow: (input: string) => ExtensionFqnParts;
44
+ /**
45
+ * Format a parsed FQN back into a string.
46
+ *
47
+ * @experimental This API is unstable and may change without notice.
48
+ */
49
+ export declare const formatFqn: (fqn: ExtensionFqnParts) => string;
50
+ export {};
51
+ //# sourceMappingURL=fqn.d.ts.map
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Fully qualified name (FQN) parsing and formatting for 3-segment extension names.
3
+ *
4
+ * FQN format: `@owner/type-plural/name` (e.g., `@acme/skills/code-review`)
5
+ *
6
+ * @experimental This API is unstable and may change without notice.
7
+ */
8
+ import * as Data from "effect/Data";
9
+ import * as Result from "effect/Result";
10
+ import { parseExtensionFqnParts, toExtensionTypePlural } from "./common.js";
11
+ /**
12
+ * Failure produced when an FQN string does not match the canonical
13
+ * `@owner/type-plural/name` shape.
14
+ *
15
+ * @experimental This API is unstable and may change without notice.
16
+ */
17
+ export class FqnInvalidError extends Data.TaggedError("FqnInvalidError") {
18
+ }
19
+ /**
20
+ * Parse a 3-segment FQN string into its parts.
21
+ *
22
+ * Pure synchronous validation — yield the Result in `Effect.gen` to bridge
23
+ * failures into the surrounding error channel, or pattern-match on it directly
24
+ * for synchronous callers.
25
+ *
26
+ * @experimental This API is unstable and may change without notice.
27
+ */
28
+ export const parseFqn = (input) => {
29
+ const parsed = parseExtensionFqnParts(input);
30
+ return parsed === undefined
31
+ ? Result.fail(new FqnInvalidError({ input }))
32
+ : Result.succeed(parsed);
33
+ };
34
+ /**
35
+ * Parse a schema-validated FQN, throwing as a defect on failure.
36
+ *
37
+ * Use only at call sites where the input has already been validated against
38
+ * an FQN schema (e.g., manifest dependency keys, lockfile resolved maps).
39
+ * A failure here is an invariant violation, not a user error — inside
40
+ * `Effect.gen`, the synchronous throw surfaces as `Cause.Die`.
41
+ *
42
+ * @experimental This API is unstable and may change without notice.
43
+ */
44
+ export const parseFqnOrThrow = (input) => Result.getOrThrowWith(parseFqn(input), (error) => error);
45
+ /**
46
+ * Format a parsed FQN back into a string.
47
+ *
48
+ * @experimental This API is unstable and may change without notice.
49
+ */
50
+ export const formatFqn = (fqn) => `${fqn.owner}/${toExtensionTypePlural(fqn.type)}/${fqn.name}`;
51
+ //# sourceMappingURL=fqn.js.map
@@ -0,0 +1,16 @@
1
+ import * as Schema from "effect/Schema";
2
+ export declare const SLUG_PATTERN_SOURCE = "[a-z0-9_](?:[a-z0-9_-]*[a-z0-9_])?";
3
+ export declare const HANDLE_PATTERN_SOURCE = "@[a-z0-9_](?:[a-z0-9_-]*[a-z0-9_])?";
4
+ export declare const SLUG_PATTERN: RegExp;
5
+ export declare const HANDLE_PATTERN: RegExp;
6
+ export declare const SlugSchema: Schema.brand<Schema.String, "Slug">;
7
+ export type Slug = Schema.Schema.Type<typeof SlugSchema>;
8
+ export declare const HandleSchema: Schema.brand<Schema.String, "Handle">;
9
+ export type Handle = Schema.Schema.Type<typeof HandleSchema>;
10
+ export declare const decodeHandleSync: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Handle">;
11
+ export declare const decodeSlugSync: (input: unknown, options?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"Slug">;
12
+ export declare const handleFromSlug: (slug: Slug) => Handle;
13
+ export declare const slugFromHandle: (handle: Handle) => Slug;
14
+ export declare const normalizeSlug: (slug: string) => Slug;
15
+ export declare const normalizeHandle: (handle: string) => Handle;
16
+ //# sourceMappingURL=handle.d.ts.map
@@ -0,0 +1,30 @@
1
+ import * as Schema from "effect/Schema";
2
+ export const SLUG_PATTERN_SOURCE = "[a-z0-9_](?:[a-z0-9_-]*[a-z0-9_])?";
3
+ export const HANDLE_PATTERN_SOURCE = `@${SLUG_PATTERN_SOURCE}`;
4
+ export const SLUG_PATTERN = new RegExp(`^${SLUG_PATTERN_SOURCE}$`);
5
+ export const HANDLE_PATTERN = new RegExp(`^${HANDLE_PATTERN_SOURCE}$`);
6
+ export const SlugSchema = Schema.String.pipe(Schema.check(Schema.isPattern(SLUG_PATTERN, {
7
+ message: "Expected a valid slug (lowercase alphanumeric, hyphens, and underscores)",
8
+ })), Schema.annotate({
9
+ identifier: "Slug",
10
+ title: "Slug",
11
+ description: "A short name using lowercase letters, numbers, hyphens, and underscores.",
12
+ examples: ["my-org", "user_name"],
13
+ message: "Expected a valid slug (e.g., my-org)",
14
+ }), Schema.brand("Slug"));
15
+ export const HandleSchema = Schema.String.pipe(Schema.check(Schema.isPattern(HANDLE_PATTERN, {
16
+ message: "Expected a valid handle starting with @ (e.g., @my-org)",
17
+ })), Schema.annotate({
18
+ identifier: "Handle",
19
+ title: "Handle",
20
+ description: "A unique username or organization name starting with @, like @my-org.",
21
+ examples: ["@my-org", "@username"],
22
+ message: "Expected a valid handle (e.g., @my-org)",
23
+ }), Schema.brand("Handle"));
24
+ export const decodeHandleSync = Schema.decodeUnknownSync(HandleSchema);
25
+ export const decodeSlugSync = Schema.decodeUnknownSync(SlugSchema);
26
+ export const handleFromSlug = (slug) => decodeHandleSync(`@${slug}`);
27
+ export const slugFromHandle = (handle) => decodeSlugSync(handle.slice(1));
28
+ export const normalizeSlug = (slug) => decodeSlugSync(slug.trim().toLowerCase());
29
+ export const normalizeHandle = (handle) => decodeHandleSync(handle.trim().toLowerCase());
30
+ //# sourceMappingURL=handle.js.map
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Area barrel for the package public surface.
3
+ *
4
+ * @experimental This API is unstable and may change without notice.
5
+ */
6
+ export { AgentIdSchema, type Author, AuthorSchema, CONTAINER_EXTENSION_TYPES, CommonManifestBaseFields, type ConfigurableAgentId, ConfigurableAgentIdSchema, type ContainerType, EXTENSION_NAME_PATTERN, EXTENSION_ONLY_TYPES, type ExtensionDependencyConstraintMap, ExtensionDependencyConstraintMapSchema, type ExtensionFqn, type ExtensionFqnParts, ExtensionFqnPartsSchema, ExtensionFqnSchema, type ExtensionName, ExtensionNameSchema, type ExtensionSpec, ExtensionSpecSchema, type ExtensionType, type ExtensionTypePlural, ExtensionTypePluralSchema, ExtensionTypeSchema, type ExtensionVisibility, ExtensionVisibilitySchema, FQN_PATTERN, LicenseSchema, NON_PACK_FQN_PATTERN, type NonPackExtensionDependencyConstraintMap, NonPackExtensionDependencyConstraintMapSchema, type NonPackExtensionFqn, NonPackExtensionFqnSchema, type NonPackExtensionTypePlural, NonPackManifestFields, PACK_FQN_PATTERN, PER_AGENT_EXTENSION_TYPES, type PackFqn, PackFqnSchema, type PackSpec, PackSpecSchema, type PerAgentType, type PublishOptions, PublishOptionsSchema, WORKSPACE_CAPABILITY_EXTENSION_TYPES, type WorkspaceCapabilityType, decodeExtensionNameSync, extensionTypeFromPlural, extensionTypeLabels, extensionTypePluralLabels, extensionTypePluralSegments, extensionTypePluralSentenceLabels, extensionTypeSentenceLabels, extensionTypeToPlural, extensionTypes, isExtensionType, isExtensionTypePlural, nonPackExtensionTypePluralSegments, parseExtensionFqnParts, parseExtensionSpecParts, toAuthor, toExtensionType, toExtensionTypePlural, } from "./common.js";
7
+ export { type ReleaseAgeExcludePattern, ReleaseAgeExcludePatternSchema, matchesReleaseAgeExcludePattern, } from "./fqn-pattern.js";
8
+ export { FqnInvalidError, formatFqn, parseFqn, parseFqnOrThrow } from "./fqn.js";
9
+ export { HANDLE_PATTERN, HANDLE_PATTERN_SOURCE, type Handle, HandleSchema, SLUG_PATTERN, SLUG_PATTERN_SOURCE, type Slug, SlugSchema, decodeHandleSync, decodeSlugSync, handleFromSlug, normalizeHandle, normalizeSlug, slugFromHandle, } from "./handle.js";
10
+ export { parseLicenseExpression } from "./license.js";
11
+ export { EXTENSION_METADATA_MAX_BYTES, EXTENSION_METADATA_MAX_DEPTH, type ExtensionMetadata, ExtensionMetadataSchema, extensionMetadataCompactByteLength, extensionMetadataContainerDepth, } from "./manifest-metadata.js";
12
+ export { type RegistrySourcePatternParts, RegistrySourcePatternPartsSchema, RegistrySourcePatternSchema, type RegistrySourceRefParts, RegistrySourceRefPartsSchema, RegistrySourceRefSchema, type SourceQualifiedRegistrySourcePatternParts, formatRegistrySourcePatternParts, formatRegistrySourceRef, parseRegistrySourcePatternParts, parseRegistrySourceRef, parseSourceQualifiedRegistrySourcePatternParts, } from "./registry-source.js";
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Area barrel for the package public surface.
3
+ *
4
+ * @experimental This API is unstable and may change without notice.
5
+ */
6
+ export { AgentIdSchema, AuthorSchema, CONTAINER_EXTENSION_TYPES, CommonManifestBaseFields, ConfigurableAgentIdSchema, EXTENSION_NAME_PATTERN, EXTENSION_ONLY_TYPES, ExtensionDependencyConstraintMapSchema, ExtensionFqnPartsSchema, ExtensionFqnSchema, ExtensionNameSchema, ExtensionSpecSchema, ExtensionTypePluralSchema, ExtensionTypeSchema, ExtensionVisibilitySchema, FQN_PATTERN, LicenseSchema, NON_PACK_FQN_PATTERN, NonPackExtensionDependencyConstraintMapSchema, NonPackExtensionFqnSchema, NonPackManifestFields, PACK_FQN_PATTERN, PER_AGENT_EXTENSION_TYPES, PackFqnSchema, PackSpecSchema, PublishOptionsSchema, WORKSPACE_CAPABILITY_EXTENSION_TYPES, decodeExtensionNameSync, extensionTypeFromPlural, extensionTypeLabels, extensionTypePluralLabels, extensionTypePluralSegments, extensionTypePluralSentenceLabels, extensionTypeSentenceLabels, extensionTypeToPlural, extensionTypes, isExtensionType, isExtensionTypePlural, nonPackExtensionTypePluralSegments, parseExtensionFqnParts, parseExtensionSpecParts, toAuthor, toExtensionType, toExtensionTypePlural, } from "./common.js";
7
+ export { ReleaseAgeExcludePatternSchema, matchesReleaseAgeExcludePattern, } from "./fqn-pattern.js";
8
+ export { FqnInvalidError, formatFqn, parseFqn, parseFqnOrThrow } from "./fqn.js";
9
+ export { HANDLE_PATTERN, HANDLE_PATTERN_SOURCE, HandleSchema, SLUG_PATTERN, SLUG_PATTERN_SOURCE, SlugSchema, decodeHandleSync, decodeSlugSync, handleFromSlug, normalizeHandle, normalizeSlug, slugFromHandle, } from "./handle.js";
10
+ export { parseLicenseExpression } from "./license.js";
11
+ export { EXTENSION_METADATA_MAX_BYTES, EXTENSION_METADATA_MAX_DEPTH, ExtensionMetadataSchema, extensionMetadataCompactByteLength, extensionMetadataContainerDepth, } from "./manifest-metadata.js";
12
+ export { RegistrySourcePatternPartsSchema, RegistrySourcePatternSchema, RegistrySourceRefPartsSchema, RegistrySourceRefSchema, formatRegistrySourcePatternParts, formatRegistrySourceRef, parseRegistrySourcePatternParts, parseRegistrySourceRef, parseSourceQualifiedRegistrySourcePatternParts, } from "./registry-source.js";
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,12 @@
1
+ import * as Schema from "effect/Schema";
2
+ export declare const installableExtensionTypes: readonly ("skill" | "mcp-server" | "subagent" | "rule" | "hook" | "knowledge" | "pack")[];
3
+ export type InstallableExtensionType = (typeof installableExtensionTypes)[number];
4
+ export declare const isInstallableExtensionType: (value: string | undefined) => value is InstallableExtensionType;
5
+ export declare const installableExtensionTypePluralSegments: readonly ("skills" | "mcps" | "subagents" | "rules" | "hooks" | "knowledge" | "packs")[];
6
+ export type InstallableExtensionTypePlural = (typeof installableExtensionTypePluralSegments)[number];
7
+ export declare const isInstallableExtensionTypePlural: (value: string | undefined) => value is InstallableExtensionTypePlural;
8
+ export declare const toInstallableExtensionType: (segment: InstallableExtensionTypePlural) => InstallableExtensionType;
9
+ export declare const toInstallableExtensionTypePlural: (type: InstallableExtensionType) => InstallableExtensionTypePlural;
10
+ export declare const InstallableExtensionTypeSchema: Schema.Literals<readonly ("skill" | "mcp-server" | "subagent" | "rule" | "hook" | "knowledge" | "pack")[]>;
11
+ export declare const InstallableExtensionTypePluralSchema: Schema.Literals<readonly ("skills" | "mcps" | "subagents" | "rules" | "hooks" | "knowledge" | "packs")[]>;
12
+ //# sourceMappingURL=installable-types.d.ts.map
@@ -0,0 +1,21 @@
1
+ import * as Schema from "effect/Schema";
2
+ import { extensionTypeFromPlural, extensionTypePluralSegments, extensionTypes, extensionTypeToPlural, isExtensionType, isExtensionTypePlural, } from "./common.js";
3
+ export const installableExtensionTypes = extensionTypes;
4
+ export const isInstallableExtensionType = (value) => isExtensionType(value);
5
+ export const installableExtensionTypePluralSegments = extensionTypePluralSegments;
6
+ export const isInstallableExtensionTypePlural = (value) => isExtensionTypePlural(value);
7
+ const installableExtensionTypeFromPlural = extensionTypeFromPlural;
8
+ const installableExtensionTypeToPlural = extensionTypeToPlural;
9
+ export const toInstallableExtensionType = (segment) => installableExtensionTypeFromPlural[segment];
10
+ export const toInstallableExtensionTypePlural = (type) => installableExtensionTypeToPlural[type];
11
+ export const InstallableExtensionTypeSchema = Schema.Literals(installableExtensionTypes).annotate({
12
+ identifier: "InstallableExtensionType",
13
+ title: "Installable Extension Type",
14
+ description: "Extension types supported by install-oriented CLI and registry flows.",
15
+ });
16
+ export const InstallableExtensionTypePluralSchema = Schema.Literals(installableExtensionTypePluralSegments).annotate({
17
+ identifier: "InstallableExtensionTypePlural",
18
+ title: "Installable Extension Type (Plural)",
19
+ description: "Plural extension type segments supported by install-oriented CLI and registry flows.",
20
+ });
21
+ //# sourceMappingURL=installable-types.js.map
@@ -0,0 +1,16 @@
1
+ /**
2
+ * SPDX license expression validation for extension manifests.
3
+ *
4
+ * @experimental This API is unstable and may change without notice.
5
+ */
6
+ import * as Result from "effect/Result";
7
+ /**
8
+ * Parse and validate an extension manifest license string.
9
+ *
10
+ * Accepts SPDX license expressions plus the npm-compatible `UNLICENSED`
11
+ * escape hatch for proprietary code.
12
+ *
13
+ * @experimental This API is unstable and may change without notice.
14
+ */
15
+ export declare const parseLicenseExpression: (input: string) => Result.Result<void, string>;
16
+ //# sourceMappingURL=license.d.ts.map
@@ -0,0 +1,29 @@
1
+ /**
2
+ * SPDX license expression validation for extension manifests.
3
+ *
4
+ * @experimental This API is unstable and may change without notice.
5
+ */
6
+ import * as Result from "effect/Result";
7
+ import parseSpdxExpression from "spdx-expression-parse";
8
+ const UNLICENSED = "UNLICENSED";
9
+ const parseErrorMessage = (error) => error instanceof Error ? error.message : String(error);
10
+ /**
11
+ * Parse and validate an extension manifest license string.
12
+ *
13
+ * Accepts SPDX license expressions plus the npm-compatible `UNLICENSED`
14
+ * escape hatch for proprietary code.
15
+ *
16
+ * @experimental This API is unstable and may change without notice.
17
+ */
18
+ export const parseLicenseExpression = (input) => {
19
+ if (input === UNLICENSED)
20
+ return Result.void;
21
+ try {
22
+ parseSpdxExpression(input);
23
+ return Result.void;
24
+ }
25
+ catch (error) {
26
+ return Result.fail(parseErrorMessage(error));
27
+ }
28
+ };
29
+ //# sourceMappingURL=license.js.map
@@ -0,0 +1,18 @@
1
+ import * as Schema from "effect/Schema";
2
+ /** @experimental This API is unstable and may change without notice. */
3
+ export declare const EXTENSION_METADATA_MAX_BYTES = 65536;
4
+ /** @experimental This API is unstable and may change without notice. */
5
+ export declare const EXTENSION_METADATA_MAX_DEPTH = 16;
6
+ /** @experimental This API is unstable and may change without notice. */
7
+ export declare const extensionMetadataCompactByteLength: (metadata: Schema.JsonObject) => number;
8
+ /** @experimental This API is unstable and may change without notice. */
9
+ export declare const extensionMetadataContainerDepth: (metadata: Schema.JsonObject) => number;
10
+ /**
11
+ * Bounded, opaque consumer-defined metadata carried by an extension manifest.
12
+ *
13
+ * @experimental This API is unstable and may change without notice.
14
+ */
15
+ export declare const ExtensionMetadataSchema: Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>;
16
+ /** @experimental This API is unstable and may change without notice. */
17
+ export type ExtensionMetadata = typeof ExtensionMetadataSchema.Type;
18
+ //# sourceMappingURL=manifest-metadata.d.ts.map
@@ -0,0 +1,61 @@
1
+ import * as Schema from "effect/Schema";
2
+ /** @experimental This API is unstable and may change without notice. */
3
+ export const EXTENSION_METADATA_MAX_BYTES = 65_536;
4
+ /** @experimental This API is unstable and may change without notice. */
5
+ export const EXTENSION_METADATA_MAX_DEPTH = 16;
6
+ const textEncoder = new TextEncoder();
7
+ /** @experimental This API is unstable and may change without notice. */
8
+ export const extensionMetadataCompactByteLength = (metadata) => {
9
+ const compact = JSON.stringify(metadata);
10
+ return compact === undefined ? 0 : textEncoder.encode(compact).length;
11
+ };
12
+ /** @experimental This API is unstable and may change without notice. */
13
+ export const extensionMetadataContainerDepth = (metadata) => {
14
+ let maximum = 1;
15
+ const pending = [
16
+ { value: metadata, depth: 1 },
17
+ ];
18
+ while (pending.length > 0) {
19
+ const current = pending.pop();
20
+ if (current === undefined)
21
+ continue;
22
+ if (Array.isArray(current.value)) {
23
+ maximum = Math.max(maximum, current.depth);
24
+ for (const value of current.value) {
25
+ pending.push({ value, depth: current.depth + 1 });
26
+ }
27
+ }
28
+ else if (typeof current.value === "object" && current.value !== null) {
29
+ maximum = Math.max(maximum, current.depth);
30
+ for (const value of Object.values(current.value)) {
31
+ pending.push({ value, depth: current.depth + 1 });
32
+ }
33
+ }
34
+ }
35
+ return maximum;
36
+ };
37
+ const validateExtensionMetadata = (metadata) => {
38
+ const issues = [];
39
+ const bytes = extensionMetadataCompactByteLength(metadata);
40
+ if (bytes > EXTENSION_METADATA_MAX_BYTES) {
41
+ issues.push(`metadata must use at most 65,536 compact UTF-8 JSON bytes; received ${bytes.toLocaleString("en-US")}`);
42
+ }
43
+ const depth = extensionMetadataContainerDepth(metadata);
44
+ if (depth > EXTENSION_METADATA_MAX_DEPTH) {
45
+ issues.push(`metadata must have container depth at most 16; received ${depth}`);
46
+ }
47
+ return issues;
48
+ };
49
+ /**
50
+ * Bounded, opaque consumer-defined metadata carried by an extension manifest.
51
+ *
52
+ * @experimental This API is unstable and may change without notice.
53
+ */
54
+ export const ExtensionMetadataSchema = Schema.Record(Schema.String, Schema.Json)
55
+ .annotate({
56
+ identifier: "ExtensionMetadata",
57
+ title: "Extension Metadata",
58
+ description: "Opaque consumer-defined JSON metadata. The compact UTF-8 JSON representation is limited to 65,536 bytes and container depth 16.",
59
+ })
60
+ .check(Schema.makeFilter(validateExtensionMetadata));
61
+ //# sourceMappingURL=manifest-metadata.js.map
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Extension ref union assembler.
3
+ *
4
+ * Imports per-type concrete refs from feature folders and defines the
5
+ * unified `ExtensionRef` union. This file is a leaf — feature folders
6
+ * import only from `ref-base.ts`, never from this file.
7
+ *
8
+ * @experimental This API is unstable and may change without notice.
9
+ * @packageDocumentation
10
+ */
11
+ import type { SkillExtensionRef } from "./skill.js";
12
+ import type { McpServerExtensionRef } from "./mcp-server.js";
13
+ import type { SubagentExtensionRef } from "./subagent.js";
14
+ import type { RuleExtensionRef } from "./rule.js";
15
+ import type { HookExtensionRef } from "./hook.js";
16
+ import type { KnowledgeExtensionRef } from "./knowledge.js";
17
+ import type { PackRef } from "./pack.js";
18
+ /** @experimental */
19
+ export type ExtensionRef = SkillExtensionRef | McpServerExtensionRef | SubagentExtensionRef | RuleExtensionRef | HookExtensionRef | KnowledgeExtensionRef | PackRef;
20
+ //# sourceMappingURL=extension-ref.d.ts.map
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Extension ref union assembler.
3
+ *
4
+ * Imports per-type concrete refs from feature folders and defines the
5
+ * unified `ExtensionRef` union. This file is a leaf — feature folders
6
+ * import only from `ref-base.ts`, never from this file.
7
+ *
8
+ * @experimental This API is unstable and may change without notice.
9
+ * @packageDocumentation
10
+ */
11
+ export {};
12
+ //# sourceMappingURL=extension-ref.js.map
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Concrete hook ref types.
3
+ *
4
+ * @experimental This API is unstable and may change without notice.
5
+ * @packageDocumentation
6
+ */
7
+ import type { ExtensionName } from "../common.js";
8
+ import type { ExtensionRefBase } from "./ref-base.js";
9
+ import type { GitHostedRefDetails, LocalRefDetails, RegistryRefDetails, WorkspaceRefDetails } from "./ref-base.js";
10
+ import type { GitBasedSource, LocalSource, RegistrySource, WorkspaceSource } from "../../sources/types.js";
11
+ type HookExtensionRefBase<TRefType, TSource> = ExtensionRefBase<"hook", Extract<TRefType, "git-hosted" | "registry" | "local" | "workspace">, Extract<TSource, GitBasedSource | RegistrySource | LocalSource | WorkspaceSource>> & {
12
+ readonly hook: {
13
+ readonly name: ExtensionName;
14
+ };
15
+ /** Override platform capability degradation for this extension. */
16
+ readonly fallback?: "auto" | "none";
17
+ };
18
+ /** @experimental */
19
+ export type GitHostedHookRef = HookExtensionRefBase<"git-hosted", GitBasedSource> & GitHostedRefDetails;
20
+ /** @experimental */
21
+ export type RegistryHookRef = HookExtensionRefBase<"registry", RegistrySource> & RegistryRefDetails;
22
+ /** @experimental */
23
+ export type LocalHookRef = HookExtensionRefBase<"local", LocalSource> & LocalRefDetails;
24
+ /** @experimental */
25
+ export type WorkspaceHookRef = HookExtensionRefBase<"workspace", WorkspaceSource> & WorkspaceRefDetails;
26
+ /** @experimental */
27
+ export type HookExtensionRef = GitHostedHookRef | RegistryHookRef | LocalHookRef | WorkspaceHookRef;
28
+ export {};
29
+ //# sourceMappingURL=hook.d.ts.map
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Concrete hook ref types.
3
+ *
4
+ * @experimental This API is unstable and may change without notice.
5
+ * @packageDocumentation
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=hook.js.map
@@ -0,0 +1,15 @@
1
+ import type { ExtensionName } from "../common.js";
2
+ import type { ExtensionRefBase, GitHostedRefDetails, LocalRefDetails, RegistryRefDetails, WorkspaceRefDetails } from "./ref-base.js";
3
+ import type { GitBasedSource, LocalSource, RegistrySource, WorkspaceSource } from "../../sources/types.js";
4
+ type KnowledgeExtensionRefBase<TRefType, TSource> = ExtensionRefBase<"knowledge", Extract<TRefType, "git-hosted" | "registry" | "local" | "workspace">, Extract<TSource, GitBasedSource | RegistrySource | LocalSource | WorkspaceSource>> & {
5
+ readonly knowledge: {
6
+ readonly name: ExtensionName;
7
+ };
8
+ };
9
+ export type GitHostedKnowledgeRef = KnowledgeExtensionRefBase<"git-hosted", GitBasedSource> & GitHostedRefDetails;
10
+ export type RegistryKnowledgeRef = KnowledgeExtensionRefBase<"registry", RegistrySource> & RegistryRefDetails;
11
+ export type LocalKnowledgeRef = KnowledgeExtensionRefBase<"local", LocalSource> & LocalRefDetails;
12
+ export type WorkspaceKnowledgeRef = KnowledgeExtensionRefBase<"workspace", WorkspaceSource> & WorkspaceRefDetails;
13
+ export type KnowledgeExtensionRef = GitHostedKnowledgeRef | RegistryKnowledgeRef | LocalKnowledgeRef | WorkspaceKnowledgeRef;
14
+ export {};
15
+ //# sourceMappingURL=knowledge.d.ts.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=knowledge.js.map
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Concrete MCP server extension ref types.
3
+ *
4
+ * @experimental This API is unstable and may change without notice.
5
+ * @packageDocumentation
6
+ */
7
+ import type { McpServerExtensionRefBase, GitHostedRefDetails, RegistryRefDetails, LocalRefDetails, WorkspaceRefDetails } from "./ref-base.js";
8
+ import type { GitBasedSource, RegistrySource, LocalSource, WorkspaceSource } from "../../sources/types.js";
9
+ /** @experimental */
10
+ export type GitHostedMcpServerRef = McpServerExtensionRefBase<"git-hosted", GitBasedSource> & GitHostedRefDetails;
11
+ /** @experimental */
12
+ export type RegistryMcpServerRef = McpServerExtensionRefBase<"registry", RegistrySource> & RegistryRefDetails;
13
+ /** @experimental */
14
+ export type LocalMcpServerRef = McpServerExtensionRefBase<"local", LocalSource> & LocalRefDetails;
15
+ /** @experimental */
16
+ export type WorkspaceMcpServerRef = McpServerExtensionRefBase<"workspace", WorkspaceSource> & WorkspaceRefDetails;
17
+ /** @experimental */
18
+ export type McpServerExtensionRef = GitHostedMcpServerRef | RegistryMcpServerRef | LocalMcpServerRef | WorkspaceMcpServerRef;
19
+ //# sourceMappingURL=mcp-server.d.ts.map
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Concrete MCP server extension ref types.
3
+ *
4
+ * @experimental This API is unstable and may change without notice.
5
+ * @packageDocumentation
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=mcp-server.js.map
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Pack ref types.
3
+ *
4
+ * Concrete pack refs built on top of the shared ref base hierarchy.
5
+ *
6
+ * @experimental This API is unstable and may change without notice.
7
+ * @packageDocumentation
8
+ */
9
+ import type { PackRefBase, RegistryRefDetails, WorkspaceRefDetails } from "./ref-base.js";
10
+ import type { RegistrySource, WorkspaceSource } from "../../sources/types.js";
11
+ /** @experimental */
12
+ export type RegistryPackRef = PackRefBase<"registry", RegistrySource> & RegistryRefDetails;
13
+ /** @experimental */
14
+ export type WorkspacePackRef = PackRefBase<"workspace", WorkspaceSource> & WorkspaceRefDetails;
15
+ /** @experimental */
16
+ export type PackRef = RegistryPackRef | WorkspacePackRef;
17
+ //# sourceMappingURL=pack.d.ts.map
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Pack ref types.
3
+ *
4
+ * Concrete pack refs built on top of the shared ref base hierarchy.
5
+ *
6
+ * @experimental This API is unstable and may change without notice.
7
+ * @packageDocumentation
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=pack.js.map