@agentxm/extension-content 0.31.1 → 0.32.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.
@@ -19,5 +19,5 @@ export { ArchiveGuardrailError, type ArchiveGuardrailLimits, ZIP_LOCAL_SIGNATURE
19
19
  export { FilteredPackageError, type ValidateFilteredPackageArgs, validateFilteredPackage, } from "./packaging/filtered-package-validation.js";
20
20
  export { IngestLimitError, IngestUnsupportedContentTypeError, REGISTRY_PUBLISH_MAX_ARCHIVE_BYTES, REGISTRY_PUBLISH_MAX_REQUEST_BYTES, enforceArchiveContentType, enforceArchiveSizeLimit, enforceRequestSizeLimit, } from "./packaging/ingest-limits.js";
21
21
  export { type NormalizePublishInputArgs, type PublishArchiveInput, type PublishInput, defaultReadEntry, normalizePublishInput, } from "./packaging/input-normalization.js";
22
- export { type DeclaredPublishIdentity, MANIFEST_FILENAME_BY_TYPE, ManifestError, type ManifestIdentity, ManifestIdentitySchema, type ManifestResolutionInput, type ResolvedManifest, manifestFilenameForType, manifestSchemaForType, resolveManifest, validateDeclaredManifestAlignment, validateManifestHasNoAgentsField, } from "./packaging/manifest-policy.js";
22
+ export { type DeclaredPublishIdentity, type ExtensionManifest, MANIFEST_FILENAME_BY_TYPE, MANIFEST_SCHEMA_BY_TYPE, ManifestError, type ManifestIdentity, ManifestIdentitySchema, type ManifestResolutionInput, type ResolvedManifest, manifestFilenameForType, manifestSchemaForType, resolveManifest, validateDeclaredManifestAlignment, validateManifestHasNoAgentsField, } from "./packaging/manifest-policy.js";
23
23
  //# sourceMappingURL=index.d.ts.map
package/dist/src/index.js CHANGED
@@ -19,5 +19,5 @@ export { ArchiveGuardrailError, ZIP_LOCAL_SIGNATURE, checkForbiddenSourceEntries
19
19
  export { FilteredPackageError, validateFilteredPackage, } from "./packaging/filtered-package-validation.js";
20
20
  export { IngestLimitError, IngestUnsupportedContentTypeError, REGISTRY_PUBLISH_MAX_ARCHIVE_BYTES, REGISTRY_PUBLISH_MAX_REQUEST_BYTES, enforceArchiveContentType, enforceArchiveSizeLimit, enforceRequestSizeLimit, } from "./packaging/ingest-limits.js";
21
21
  export { defaultReadEntry, normalizePublishInput, } from "./packaging/input-normalization.js";
22
- export { MANIFEST_FILENAME_BY_TYPE, ManifestError, ManifestIdentitySchema, manifestFilenameForType, manifestSchemaForType, resolveManifest, validateDeclaredManifestAlignment, validateManifestHasNoAgentsField, } from "./packaging/manifest-policy.js";
22
+ export { MANIFEST_FILENAME_BY_TYPE, MANIFEST_SCHEMA_BY_TYPE, ManifestError, ManifestIdentitySchema, manifestFilenameForType, manifestSchemaForType, resolveManifest, validateDeclaredManifestAlignment, validateManifestHasNoAgentsField, } from "./packaging/manifest-policy.js";
23
23
  //# sourceMappingURL=index.js.map
@@ -10,11 +10,11 @@
10
10
  *
11
11
  * Packs are registry-only at v1 — there is no non-native variant. The caller
12
12
  * (`buildPackRuleContexts` or the CLI entry point) picks the root from
13
- * `computePackPathsForLayout` in `@agentxm/workspace-state`.
13
+ * `computePackPathsForLayout` in `@agentxm/workspace/desired-state`.
14
14
  *
15
15
  * The `pack.json` sits directly under `canonicalPath`; there is no
16
16
  * `src/` subdirectory like skills have — the pack install operation in
17
- * `@agentxm/extension-lifecycle` owns the authoritative layout.
17
+ * `@agentxm/workspace/lifecycle` owns the authoritative layout.
18
18
  *
19
19
  * Bounds enforcement:
20
20
  *
@@ -48,7 +48,7 @@ export interface PackAccessorPlatform {
48
48
  *
49
49
  * `absoluteRoot` SHOULD be the absolute path to the pack root directory
50
50
  * (`canonicalPath` from `computePackPathsForLayout` in
51
- * `@agentxm/workspace-state`).
51
+ * `@agentxm/workspace/desired-state`).
52
52
  *
53
53
  * @experimental This API is unstable and may change without notice.
54
54
  */
@@ -10,11 +10,11 @@
10
10
  *
11
11
  * Packs are registry-only at v1 — there is no non-native variant. The caller
12
12
  * (`buildPackRuleContexts` or the CLI entry point) picks the root from
13
- * `computePackPathsForLayout` in `@agentxm/workspace-state`.
13
+ * `computePackPathsForLayout` in `@agentxm/workspace/desired-state`.
14
14
  *
15
15
  * The `pack.json` sits directly under `canonicalPath`; there is no
16
16
  * `src/` subdirectory like skills have — the pack install operation in
17
- * `@agentxm/extension-lifecycle` owns the authoritative layout.
17
+ * `@agentxm/workspace/lifecycle` owns the authoritative layout.
18
18
  *
19
19
  * Bounds enforcement:
20
20
  *
@@ -39,7 +39,7 @@ import * as Effect from "effect/Effect";
39
39
  *
40
40
  * `absoluteRoot` SHOULD be the absolute path to the pack root directory
41
41
  * (`canonicalPath` from `computePackPathsForLayout` in
42
- * `@agentxm/workspace-state`).
42
+ * `@agentxm/workspace/desired-state`).
43
43
  *
44
44
  * @experimental This API is unstable and may change without notice.
45
45
  */
@@ -25,7 +25,7 @@
25
25
  * | ----------------------------------------- | --------------------------------------------- |
26
26
  * | Publish | `""` |
27
27
  * | Registry-installed native skill | `agent_extensions/<source>/<@owner>/skills/<name>/src` |
28
- * | Portable acquired skill | `agent_extensions/<source>/<source-full-name>` |
28
+ * | Portable acquired skill | `agent_extensions/<family>/<owner>/skills/<name>` |
29
29
  *
30
30
  * @experimental This API is unstable and may change without notice.
31
31
  * @packageDocumentation
@@ -25,7 +25,7 @@
25
25
  * | ----------------------------------------- | --------------------------------------------- |
26
26
  * | Publish | `""` |
27
27
  * | Registry-installed native skill | `agent_extensions/<source>/<@owner>/skills/<name>/src` |
28
- * | Portable acquired skill | `agent_extensions/<source>/<source-full-name>` |
28
+ * | Portable acquired skill | `agent_extensions/<family>/<owner>/skills/<name>` |
29
29
  *
30
30
  * @experimental This API is unstable and may change without notice.
31
31
  * @packageDocumentation
@@ -5,8 +5,8 @@
5
5
  * the caller-supplied skill-root directory. Layout conventions per
6
6
  * the lint design "Skill accessor root":
7
7
  *
8
- * - **Native acquired package:** the source-qualified package's `src/` directory.
9
- * - **Portable Agent Skill:** the source-qualified selected package directory.
8
+ * - **Native acquired package:** the identity-qualified package's `src/` directory.
9
+ * - **Portable Agent Skill:** the identity-qualified selected package directory.
10
10
  *
11
11
  * The accessor is provenance-agnostic — rules see one uniform contract and
12
12
  * never branch on native-vs-non-native. The caller (`buildSkillRuleContexts`
@@ -45,7 +45,7 @@ export interface SkillAccessorPlatform {
45
45
  * `absoluteRoot` SHOULD be the absolute path to the skill root directory
46
46
  * (either `.../src/` for native, or the selected package directory for a
47
47
  * portable Agent Skill). The caller typically sources it from
48
- * `computeSkillPathsForLayout` in `@agentxm/workspace-state`.
48
+ * `computeSkillPathsForLayout` in `@agentxm/workspace/desired-state`.
49
49
  *
50
50
  * @experimental This API is unstable and may change without notice.
51
51
  */
@@ -5,8 +5,8 @@
5
5
  * the caller-supplied skill-root directory. Layout conventions per
6
6
  * the lint design "Skill accessor root":
7
7
  *
8
- * - **Native acquired package:** the source-qualified package's `src/` directory.
9
- * - **Portable Agent Skill:** the source-qualified selected package directory.
8
+ * - **Native acquired package:** the identity-qualified package's `src/` directory.
9
+ * - **Portable Agent Skill:** the identity-qualified selected package directory.
10
10
  *
11
11
  * The accessor is provenance-agnostic — rules see one uniform contract and
12
12
  * never branch on native-vs-non-native. The caller (`buildSkillRuleContexts`
@@ -36,7 +36,7 @@ import * as Effect from "effect/Effect";
36
36
  * `absoluteRoot` SHOULD be the absolute path to the skill root directory
37
37
  * (either `.../src/` for native, or the selected package directory for a
38
38
  * portable Agent Skill). The caller typically sources it from
39
- * `computeSkillPathsForLayout` in `@agentxm/workspace-state`.
39
+ * `computeSkillPathsForLayout` in `@agentxm/workspace/desired-state`.
40
40
  *
41
41
  * @experimental This API is unstable and may change without notice.
42
42
  */
@@ -612,6 +612,12 @@ export const lintCatalogRuleMetadata = defineLintCatalog([
612
612
  group: "workspace",
613
613
  views: bothViews,
614
614
  },
615
+ {
616
+ id: "workspace/packs-shared-members-distributable",
617
+ defaultSeverity: "error",
618
+ group: "workspace",
619
+ views: bothViews,
620
+ },
615
621
  {
616
622
  id: "workspace/configured-but-not-installed",
617
623
  defaultSeverity: "error",
@@ -17,7 +17,7 @@ import type * as Effect from "effect/Effect";
17
17
  /**
18
18
  * Platform-canonical finding severity.
19
19
  *
20
- * WorkspaceMutations `lint.rules` overrides can raise or lower the severity at
20
+ * Workspace `lint.rules` overrides can raise or lower the severity at
21
21
  * evaluation time; the catalog pins the platform default.
22
22
  *
23
23
  * @experimental This API is unstable and may change without notice.
@@ -31,6 +31,578 @@ export declare const ManifestIdentitySchema: Schema.Struct<{
31
31
  readonly version: Schema.brand<Schema.String, "Version">;
32
32
  }>;
33
33
  export type ManifestIdentity = Schema.Schema.Type<typeof ManifestIdentitySchema>;
34
+ export declare const MANIFEST_SCHEMA_BY_TYPE: {
35
+ skill: Schema.Struct<{
36
+ readonly type: Schema.Literal<"skill">;
37
+ readonly name: Schema.brand<Schema.NonEmptyString, "ExtensionName">;
38
+ readonly enhances: Schema.optional<Schema.$Array<Schema.NonEmptyString>>;
39
+ readonly requires: Schema.optional<Schema.$Array<Schema.NonEmptyString>>;
40
+ readonly fallback: Schema.optional<Schema.Literals<readonly ["auto", "none"]>>;
41
+ readonly recommendedPacks: Schema.optional<Schema.$Array<Schema.brand<Schema.NonEmptyString, "PackSpec">>>;
42
+ readonly standalone: Schema.optional<Schema.Boolean>;
43
+ readonly publish: Schema.optional<Schema.Struct<{
44
+ readonly visibility: Schema.optional<Schema.Literals<readonly ["public", "private"]>>;
45
+ readonly ignore: Schema.optional<Schema.$Array<Schema.NonEmptyString>>;
46
+ }>>;
47
+ readonly metadata: Schema.optional<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>;
48
+ readonly owner: Schema.brand<Schema.String, "Handle">;
49
+ readonly version: Schema.brand<Schema.String, "Version">;
50
+ readonly description: Schema.optional<Schema.String>;
51
+ readonly keywords: Schema.optional<Schema.$Array<Schema.NonEmptyString>>;
52
+ readonly repository: Schema.optional<Schema.Union<readonly [Schema.String, Schema.Struct<{
53
+ readonly type: Schema.optional<Schema.NonEmptyString>;
54
+ readonly url: Schema.NonEmptyString;
55
+ readonly directory: Schema.optional<Schema.NonEmptyString>;
56
+ }>]>>;
57
+ readonly homepage: Schema.optional<Schema.String>;
58
+ readonly license: Schema.optional<Schema.String>;
59
+ readonly bugs: Schema.optional<Schema.Union<readonly [Schema.String, Schema.Struct<{
60
+ readonly url: Schema.optional<Schema.NonEmptyString>;
61
+ readonly email: Schema.optional<Schema.NonEmptyString>;
62
+ }>]>>;
63
+ readonly authors: Schema.optional<Schema.$Array<Schema.Struct<{
64
+ readonly name: Schema.String;
65
+ readonly email: Schema.optional<Schema.String>;
66
+ readonly url: Schema.optional<Schema.String>;
67
+ }>>>;
68
+ readonly packages: Schema.optional<Schema.$Array<Schema.Struct<{
69
+ readonly purl: Schema.brand<Schema.NonEmptyString, "PackageIdentityPurl">;
70
+ readonly versionRange: Schema.optional<Schema.brand<Schema.decodeTo<Schema.toType<Schema.Struct<{
71
+ readonly raw: Schema.NonEmptyString;
72
+ readonly scheme: Schema.NonEmptyString;
73
+ readonly constraints: Schema.$Array<Schema.Struct<{
74
+ readonly comparator: Schema.Literals<readonly ["=", "!=", "<", "<=", ">", ">="]>;
75
+ readonly version: Schema.NonEmptyString;
76
+ }>>;
77
+ }>>, Schema.NonEmptyString, never, never>, "VersRange">>;
78
+ }>>>;
79
+ readonly $schema: Schema.optional<Schema.String>;
80
+ }>;
81
+ "mcp-server": Schema.Struct<{
82
+ readonly type: Schema.Literal<"mcp-server">;
83
+ readonly name: Schema.brand<Schema.NonEmptyString, "ExtensionName">;
84
+ readonly server: Schema.Struct<{
85
+ readonly $schema: Schema.optional<Schema.String>;
86
+ readonly name: Schema.NonEmptyString;
87
+ readonly description: Schema.NonEmptyString;
88
+ readonly version: Schema.String;
89
+ readonly title: Schema.optional<Schema.NonEmptyString>;
90
+ readonly packages: Schema.optional<Schema.$Array<Schema.Struct<{
91
+ readonly registryType: Schema.String;
92
+ readonly identifier: Schema.String;
93
+ readonly transport: Schema.Union<readonly [Schema.Struct<{
94
+ readonly type: Schema.Literal<"stdio">;
95
+ }>, Schema.Struct<{
96
+ readonly type: Schema.Literal<"streamable-http">;
97
+ readonly url: Schema.NonEmptyString;
98
+ readonly headers: Schema.optional<Schema.$Array<Schema.Struct<{
99
+ readonly name: Schema.String;
100
+ readonly choices: Schema.optional<Schema.$Array<Schema.String>>;
101
+ readonly default: Schema.optional<Schema.String>;
102
+ readonly description: Schema.optional<Schema.String>;
103
+ readonly format: Schema.optional<Schema.Literals<readonly ["string", "number", "boolean", "filepath"]>>;
104
+ readonly isRequired: Schema.optional<Schema.Boolean>;
105
+ readonly isSecret: Schema.optional<Schema.Boolean>;
106
+ readonly placeholder: Schema.optional<Schema.String>;
107
+ readonly value: Schema.optional<Schema.String>;
108
+ readonly variables: Schema.optional<Schema.$Record<Schema.String, Schema.Unknown>>;
109
+ }>>>;
110
+ }>, Schema.Struct<{
111
+ readonly type: Schema.Literal<"sse">;
112
+ readonly url: Schema.NonEmptyString;
113
+ readonly headers: Schema.optional<Schema.$Array<Schema.Struct<{
114
+ readonly name: Schema.String;
115
+ readonly choices: Schema.optional<Schema.$Array<Schema.String>>;
116
+ readonly default: Schema.optional<Schema.String>;
117
+ readonly description: Schema.optional<Schema.String>;
118
+ readonly format: Schema.optional<Schema.Literals<readonly ["string", "number", "boolean", "filepath"]>>;
119
+ readonly isRequired: Schema.optional<Schema.Boolean>;
120
+ readonly isSecret: Schema.optional<Schema.Boolean>;
121
+ readonly placeholder: Schema.optional<Schema.String>;
122
+ readonly value: Schema.optional<Schema.String>;
123
+ readonly variables: Schema.optional<Schema.$Record<Schema.String, Schema.Unknown>>;
124
+ }>>>;
125
+ }>]>;
126
+ readonly version: Schema.optional<Schema.NonEmptyString>;
127
+ readonly registryBaseUrl: Schema.optional<Schema.String>;
128
+ readonly runtimeHint: Schema.optional<Schema.String>;
129
+ readonly runtimeArguments: Schema.optional<Schema.$Array<Schema.Union<readonly [Schema.Union<readonly [Schema.Struct<{
130
+ readonly type: Schema.Literal<"positional">;
131
+ readonly isRepeated: Schema.optional<Schema.Boolean>;
132
+ readonly valueHint: Schema.String;
133
+ readonly choices: Schema.optional<Schema.$Array<Schema.String>>;
134
+ readonly default: Schema.optional<Schema.String>;
135
+ readonly description: Schema.optional<Schema.String>;
136
+ readonly format: Schema.optional<Schema.Literals<readonly ["string", "number", "boolean", "filepath"]>>;
137
+ readonly isRequired: Schema.optional<Schema.Boolean>;
138
+ readonly isSecret: Schema.optional<Schema.Boolean>;
139
+ readonly placeholder: Schema.optional<Schema.String>;
140
+ readonly value: Schema.optional<Schema.String>;
141
+ readonly variables: Schema.optional<Schema.$Record<Schema.String, Schema.Unknown>>;
142
+ }>, Schema.Struct<{
143
+ readonly type: Schema.Literal<"positional">;
144
+ readonly isRepeated: Schema.optional<Schema.Boolean>;
145
+ readonly value: Schema.String;
146
+ readonly choices: Schema.optional<Schema.$Array<Schema.String>>;
147
+ readonly default: Schema.optional<Schema.String>;
148
+ readonly description: Schema.optional<Schema.String>;
149
+ readonly format: Schema.optional<Schema.Literals<readonly ["string", "number", "boolean", "filepath"]>>;
150
+ readonly isRequired: Schema.optional<Schema.Boolean>;
151
+ readonly isSecret: Schema.optional<Schema.Boolean>;
152
+ readonly placeholder: Schema.optional<Schema.String>;
153
+ readonly variables: Schema.optional<Schema.$Record<Schema.String, Schema.Unknown>>;
154
+ }>]>, Schema.Struct<{
155
+ readonly type: Schema.Literal<"named">;
156
+ readonly name: Schema.String;
157
+ readonly isRepeated: Schema.optional<Schema.Boolean>;
158
+ readonly choices: Schema.optional<Schema.$Array<Schema.String>>;
159
+ readonly default: Schema.optional<Schema.String>;
160
+ readonly description: Schema.optional<Schema.String>;
161
+ readonly format: Schema.optional<Schema.Literals<readonly ["string", "number", "boolean", "filepath"]>>;
162
+ readonly isRequired: Schema.optional<Schema.Boolean>;
163
+ readonly isSecret: Schema.optional<Schema.Boolean>;
164
+ readonly placeholder: Schema.optional<Schema.String>;
165
+ readonly value: Schema.optional<Schema.String>;
166
+ readonly variables: Schema.optional<Schema.$Record<Schema.String, Schema.Unknown>>;
167
+ }>]>>>;
168
+ readonly packageArguments: Schema.optional<Schema.$Array<Schema.Union<readonly [Schema.Union<readonly [Schema.Struct<{
169
+ readonly type: Schema.Literal<"positional">;
170
+ readonly isRepeated: Schema.optional<Schema.Boolean>;
171
+ readonly valueHint: Schema.String;
172
+ readonly choices: Schema.optional<Schema.$Array<Schema.String>>;
173
+ readonly default: Schema.optional<Schema.String>;
174
+ readonly description: Schema.optional<Schema.String>;
175
+ readonly format: Schema.optional<Schema.Literals<readonly ["string", "number", "boolean", "filepath"]>>;
176
+ readonly isRequired: Schema.optional<Schema.Boolean>;
177
+ readonly isSecret: Schema.optional<Schema.Boolean>;
178
+ readonly placeholder: Schema.optional<Schema.String>;
179
+ readonly value: Schema.optional<Schema.String>;
180
+ readonly variables: Schema.optional<Schema.$Record<Schema.String, Schema.Unknown>>;
181
+ }>, Schema.Struct<{
182
+ readonly type: Schema.Literal<"positional">;
183
+ readonly isRepeated: Schema.optional<Schema.Boolean>;
184
+ readonly value: Schema.String;
185
+ readonly choices: Schema.optional<Schema.$Array<Schema.String>>;
186
+ readonly default: Schema.optional<Schema.String>;
187
+ readonly description: Schema.optional<Schema.String>;
188
+ readonly format: Schema.optional<Schema.Literals<readonly ["string", "number", "boolean", "filepath"]>>;
189
+ readonly isRequired: Schema.optional<Schema.Boolean>;
190
+ readonly isSecret: Schema.optional<Schema.Boolean>;
191
+ readonly placeholder: Schema.optional<Schema.String>;
192
+ readonly variables: Schema.optional<Schema.$Record<Schema.String, Schema.Unknown>>;
193
+ }>]>, Schema.Struct<{
194
+ readonly type: Schema.Literal<"named">;
195
+ readonly name: Schema.String;
196
+ readonly isRepeated: Schema.optional<Schema.Boolean>;
197
+ readonly choices: Schema.optional<Schema.$Array<Schema.String>>;
198
+ readonly default: Schema.optional<Schema.String>;
199
+ readonly description: Schema.optional<Schema.String>;
200
+ readonly format: Schema.optional<Schema.Literals<readonly ["string", "number", "boolean", "filepath"]>>;
201
+ readonly isRequired: Schema.optional<Schema.Boolean>;
202
+ readonly isSecret: Schema.optional<Schema.Boolean>;
203
+ readonly placeholder: Schema.optional<Schema.String>;
204
+ readonly value: Schema.optional<Schema.String>;
205
+ readonly variables: Schema.optional<Schema.$Record<Schema.String, Schema.Unknown>>;
206
+ }>]>>>;
207
+ readonly environmentVariables: Schema.optional<Schema.$Array<Schema.Struct<{
208
+ readonly name: Schema.String;
209
+ readonly choices: Schema.optional<Schema.$Array<Schema.String>>;
210
+ readonly default: Schema.optional<Schema.String>;
211
+ readonly description: Schema.optional<Schema.String>;
212
+ readonly format: Schema.optional<Schema.Literals<readonly ["string", "number", "boolean", "filepath"]>>;
213
+ readonly isRequired: Schema.optional<Schema.Boolean>;
214
+ readonly isSecret: Schema.optional<Schema.Boolean>;
215
+ readonly placeholder: Schema.optional<Schema.String>;
216
+ readonly value: Schema.optional<Schema.String>;
217
+ readonly variables: Schema.optional<Schema.$Record<Schema.String, Schema.Unknown>>;
218
+ }>>>;
219
+ readonly fileSha256: Schema.optional<Schema.String>;
220
+ }>>>;
221
+ readonly remotes: Schema.optional<Schema.$Array<Schema.Union<readonly [Schema.Struct<{
222
+ readonly type: Schema.Literal<"streamable-http">;
223
+ readonly url: Schema.NonEmptyString;
224
+ readonly headers: Schema.optional<Schema.$Array<Schema.Struct<{
225
+ readonly name: Schema.String;
226
+ readonly choices: Schema.optional<Schema.$Array<Schema.String>>;
227
+ readonly default: Schema.optional<Schema.String>;
228
+ readonly description: Schema.optional<Schema.String>;
229
+ readonly format: Schema.optional<Schema.Literals<readonly ["string", "number", "boolean", "filepath"]>>;
230
+ readonly isRequired: Schema.optional<Schema.Boolean>;
231
+ readonly isSecret: Schema.optional<Schema.Boolean>;
232
+ readonly placeholder: Schema.optional<Schema.String>;
233
+ readonly value: Schema.optional<Schema.String>;
234
+ readonly variables: Schema.optional<Schema.$Record<Schema.String, Schema.Unknown>>;
235
+ }>>>;
236
+ readonly variables: Schema.optional<Schema.$Record<Schema.String, Schema.Struct<{
237
+ readonly choices: Schema.optional<Schema.$Array<Schema.String>>;
238
+ readonly default: Schema.optional<Schema.String>;
239
+ readonly description: Schema.optional<Schema.String>;
240
+ readonly format: Schema.optional<Schema.Literals<readonly ["string", "number", "boolean", "filepath"]>>;
241
+ readonly isRequired: Schema.optional<Schema.Boolean>;
242
+ readonly isSecret: Schema.optional<Schema.Boolean>;
243
+ readonly placeholder: Schema.optional<Schema.String>;
244
+ readonly value: Schema.optional<Schema.String>;
245
+ readonly variables: Schema.optional<Schema.$Record<Schema.String, Schema.Unknown>>;
246
+ }>>>;
247
+ }>, Schema.Struct<{
248
+ readonly type: Schema.Literal<"sse">;
249
+ readonly url: Schema.NonEmptyString;
250
+ readonly headers: Schema.optional<Schema.$Array<Schema.Struct<{
251
+ readonly name: Schema.String;
252
+ readonly choices: Schema.optional<Schema.$Array<Schema.String>>;
253
+ readonly default: Schema.optional<Schema.String>;
254
+ readonly description: Schema.optional<Schema.String>;
255
+ readonly format: Schema.optional<Schema.Literals<readonly ["string", "number", "boolean", "filepath"]>>;
256
+ readonly isRequired: Schema.optional<Schema.Boolean>;
257
+ readonly isSecret: Schema.optional<Schema.Boolean>;
258
+ readonly placeholder: Schema.optional<Schema.String>;
259
+ readonly value: Schema.optional<Schema.String>;
260
+ readonly variables: Schema.optional<Schema.$Record<Schema.String, Schema.Unknown>>;
261
+ }>>>;
262
+ readonly variables: Schema.optional<Schema.$Record<Schema.String, Schema.Struct<{
263
+ readonly choices: Schema.optional<Schema.$Array<Schema.String>>;
264
+ readonly default: Schema.optional<Schema.String>;
265
+ readonly description: Schema.optional<Schema.String>;
266
+ readonly format: Schema.optional<Schema.Literals<readonly ["string", "number", "boolean", "filepath"]>>;
267
+ readonly isRequired: Schema.optional<Schema.Boolean>;
268
+ readonly isSecret: Schema.optional<Schema.Boolean>;
269
+ readonly placeholder: Schema.optional<Schema.String>;
270
+ readonly value: Schema.optional<Schema.String>;
271
+ readonly variables: Schema.optional<Schema.$Record<Schema.String, Schema.Unknown>>;
272
+ }>>>;
273
+ }>]>>>;
274
+ readonly repository: Schema.optional<Schema.Struct<{
275
+ readonly url: Schema.String;
276
+ readonly source: Schema.String;
277
+ readonly id: Schema.optional<Schema.String>;
278
+ readonly subfolder: Schema.optional<Schema.String>;
279
+ }>>;
280
+ readonly icons: Schema.optional<Schema.$Array<Schema.Struct<{
281
+ readonly src: Schema.NonEmptyString;
282
+ readonly mimeType: Schema.optional<Schema.Literals<readonly ["image/png", "image/jpeg", "image/jpg", "image/svg+xml", "image/webp"]>>;
283
+ readonly sizes: Schema.optional<Schema.$Array<Schema.String>>;
284
+ readonly theme: Schema.optional<Schema.Literals<readonly ["light", "dark"]>>;
285
+ }>>>;
286
+ readonly websiteUrl: Schema.optional<Schema.String>;
287
+ readonly _meta: Schema.optional<Schema.$Record<Schema.String, Schema.Unknown>>;
288
+ }>;
289
+ readonly enhances: Schema.optional<Schema.$Array<Schema.NonEmptyString>>;
290
+ readonly requires: Schema.optional<Schema.$Array<Schema.NonEmptyString>>;
291
+ readonly fallback: Schema.optional<Schema.Literals<readonly ["auto", "none"]>>;
292
+ readonly recommendedPacks: Schema.optional<Schema.$Array<Schema.brand<Schema.NonEmptyString, "PackSpec">>>;
293
+ readonly standalone: Schema.optional<Schema.Boolean>;
294
+ readonly publish: Schema.optional<Schema.Struct<{
295
+ readonly visibility: Schema.optional<Schema.Literals<readonly ["public", "private"]>>;
296
+ readonly ignore: Schema.optional<Schema.$Array<Schema.NonEmptyString>>;
297
+ }>>;
298
+ readonly metadata: Schema.optional<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>;
299
+ readonly owner: Schema.brand<Schema.String, "Handle">;
300
+ readonly version: Schema.brand<Schema.String, "Version">;
301
+ readonly description: Schema.optional<Schema.String>;
302
+ readonly keywords: Schema.optional<Schema.$Array<Schema.NonEmptyString>>;
303
+ readonly repository: Schema.optional<Schema.Union<readonly [Schema.String, Schema.Struct<{
304
+ readonly type: Schema.optional<Schema.NonEmptyString>;
305
+ readonly url: Schema.NonEmptyString;
306
+ readonly directory: Schema.optional<Schema.NonEmptyString>;
307
+ }>]>>;
308
+ readonly homepage: Schema.optional<Schema.String>;
309
+ readonly license: Schema.optional<Schema.String>;
310
+ readonly bugs: Schema.optional<Schema.Union<readonly [Schema.String, Schema.Struct<{
311
+ readonly url: Schema.optional<Schema.NonEmptyString>;
312
+ readonly email: Schema.optional<Schema.NonEmptyString>;
313
+ }>]>>;
314
+ readonly authors: Schema.optional<Schema.$Array<Schema.Struct<{
315
+ readonly name: Schema.String;
316
+ readonly email: Schema.optional<Schema.String>;
317
+ readonly url: Schema.optional<Schema.String>;
318
+ }>>>;
319
+ readonly packages: Schema.optional<Schema.$Array<Schema.Struct<{
320
+ readonly purl: Schema.brand<Schema.NonEmptyString, "PackageIdentityPurl">;
321
+ readonly versionRange: Schema.optional<Schema.brand<Schema.decodeTo<Schema.toType<Schema.Struct<{
322
+ readonly raw: Schema.NonEmptyString;
323
+ readonly scheme: Schema.NonEmptyString;
324
+ readonly constraints: Schema.$Array<Schema.Struct<{
325
+ readonly comparator: Schema.Literals<readonly ["=", "!=", "<", "<=", ">", ">="]>;
326
+ readonly version: Schema.NonEmptyString;
327
+ }>>;
328
+ }>>, Schema.NonEmptyString, never, never>, "VersRange">>;
329
+ }>>>;
330
+ readonly $schema: Schema.optional<Schema.String>;
331
+ }>;
332
+ subagent: Schema.Struct<{
333
+ readonly type: Schema.Literal<"subagent">;
334
+ readonly name: Schema.brand<Schema.NonEmptyString, "ExtensionName">;
335
+ readonly enhances: Schema.optional<Schema.$Array<Schema.NonEmptyString>>;
336
+ readonly requires: Schema.optional<Schema.$Array<Schema.NonEmptyString>>;
337
+ readonly fallback: Schema.optional<Schema.Literals<readonly ["auto", "none"]>>;
338
+ readonly recommendedPacks: Schema.optional<Schema.$Array<Schema.brand<Schema.NonEmptyString, "PackSpec">>>;
339
+ readonly standalone: Schema.optional<Schema.Boolean>;
340
+ readonly publish: Schema.optional<Schema.Struct<{
341
+ readonly visibility: Schema.optional<Schema.Literals<readonly ["public", "private"]>>;
342
+ readonly ignore: Schema.optional<Schema.$Array<Schema.NonEmptyString>>;
343
+ }>>;
344
+ readonly metadata: Schema.optional<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>;
345
+ readonly owner: Schema.brand<Schema.String, "Handle">;
346
+ readonly version: Schema.brand<Schema.String, "Version">;
347
+ readonly description: Schema.optional<Schema.String>;
348
+ readonly keywords: Schema.optional<Schema.$Array<Schema.NonEmptyString>>;
349
+ readonly repository: Schema.optional<Schema.Union<readonly [Schema.String, Schema.Struct<{
350
+ readonly type: Schema.optional<Schema.NonEmptyString>;
351
+ readonly url: Schema.NonEmptyString;
352
+ readonly directory: Schema.optional<Schema.NonEmptyString>;
353
+ }>]>>;
354
+ readonly homepage: Schema.optional<Schema.String>;
355
+ readonly license: Schema.optional<Schema.String>;
356
+ readonly bugs: Schema.optional<Schema.Union<readonly [Schema.String, Schema.Struct<{
357
+ readonly url: Schema.optional<Schema.NonEmptyString>;
358
+ readonly email: Schema.optional<Schema.NonEmptyString>;
359
+ }>]>>;
360
+ readonly authors: Schema.optional<Schema.$Array<Schema.Struct<{
361
+ readonly name: Schema.String;
362
+ readonly email: Schema.optional<Schema.String>;
363
+ readonly url: Schema.optional<Schema.String>;
364
+ }>>>;
365
+ readonly packages: Schema.optional<Schema.$Array<Schema.Struct<{
366
+ readonly purl: Schema.brand<Schema.NonEmptyString, "PackageIdentityPurl">;
367
+ readonly versionRange: Schema.optional<Schema.brand<Schema.decodeTo<Schema.toType<Schema.Struct<{
368
+ readonly raw: Schema.NonEmptyString;
369
+ readonly scheme: Schema.NonEmptyString;
370
+ readonly constraints: Schema.$Array<Schema.Struct<{
371
+ readonly comparator: Schema.Literals<readonly ["=", "!=", "<", "<=", ">", ">="]>;
372
+ readonly version: Schema.NonEmptyString;
373
+ }>>;
374
+ }>>, Schema.NonEmptyString, never, never>, "VersRange">>;
375
+ }>>>;
376
+ readonly $schema: Schema.optional<Schema.String>;
377
+ }>;
378
+ pack: Schema.Struct<{
379
+ readonly type: Schema.Literal<"pack">;
380
+ readonly name: Schema.brand<Schema.NonEmptyString, "ExtensionName">;
381
+ readonly dependencies: Schema.$Record<Schema.String, Schema.Union<readonly [Schema.brand<Schema.NonEmptyString, "VersionRange">, Schema.Struct<{
382
+ readonly source: Schema.Struct<{
383
+ readonly type: Schema.Literal<"registry">;
384
+ readonly url: Schema.URLFromString;
385
+ }>;
386
+ readonly versionRange: Schema.brand<Schema.NonEmptyString, "VersionRange">;
387
+ }>]>>;
388
+ readonly publish: Schema.optional<Schema.Struct<{
389
+ readonly visibility: Schema.optional<Schema.Literals<readonly ["public", "private"]>>;
390
+ readonly ignore: Schema.optional<Schema.$Array<Schema.NonEmptyString>>;
391
+ }>>;
392
+ readonly metadata: Schema.optional<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>;
393
+ readonly owner: Schema.brand<Schema.String, "Handle">;
394
+ readonly version: Schema.brand<Schema.String, "Version">;
395
+ readonly description: Schema.optional<Schema.String>;
396
+ readonly keywords: Schema.optional<Schema.$Array<Schema.NonEmptyString>>;
397
+ readonly repository: Schema.optional<Schema.Union<readonly [Schema.String, Schema.Struct<{
398
+ readonly type: Schema.optional<Schema.NonEmptyString>;
399
+ readonly url: Schema.NonEmptyString;
400
+ readonly directory: Schema.optional<Schema.NonEmptyString>;
401
+ }>]>>;
402
+ readonly homepage: Schema.optional<Schema.String>;
403
+ readonly license: Schema.optional<Schema.String>;
404
+ readonly bugs: Schema.optional<Schema.Union<readonly [Schema.String, Schema.Struct<{
405
+ readonly url: Schema.optional<Schema.NonEmptyString>;
406
+ readonly email: Schema.optional<Schema.NonEmptyString>;
407
+ }>]>>;
408
+ readonly authors: Schema.optional<Schema.$Array<Schema.Struct<{
409
+ readonly name: Schema.String;
410
+ readonly email: Schema.optional<Schema.String>;
411
+ readonly url: Schema.optional<Schema.String>;
412
+ }>>>;
413
+ readonly packages: Schema.optional<Schema.$Array<Schema.Struct<{
414
+ readonly purl: Schema.brand<Schema.NonEmptyString, "PackageIdentityPurl">;
415
+ readonly versionRange: Schema.optional<Schema.brand<Schema.decodeTo<Schema.toType<Schema.Struct<{
416
+ readonly raw: Schema.NonEmptyString;
417
+ readonly scheme: Schema.NonEmptyString;
418
+ readonly constraints: Schema.$Array<Schema.Struct<{
419
+ readonly comparator: Schema.Literals<readonly ["=", "!=", "<", "<=", ">", ">="]>;
420
+ readonly version: Schema.NonEmptyString;
421
+ }>>;
422
+ }>>, Schema.NonEmptyString, never, never>, "VersRange">>;
423
+ }>>>;
424
+ readonly $schema: Schema.optional<Schema.String>;
425
+ }>;
426
+ rule: Schema.Struct<{
427
+ readonly type: Schema.Literal<"rule">;
428
+ readonly name: Schema.brand<Schema.NonEmptyString, "ExtensionName">;
429
+ readonly title: Schema.optional<Schema.NonEmptyString>;
430
+ readonly priority: Schema.optional<Schema.Int>;
431
+ readonly appliesTo: Schema.optional<Schema.$Array<Schema.NonEmptyString>>;
432
+ readonly enhances: Schema.optional<Schema.$Array<Schema.NonEmptyString>>;
433
+ readonly requires: Schema.optional<Schema.$Array<Schema.NonEmptyString>>;
434
+ readonly fallback: Schema.optional<Schema.Literals<readonly ["auto", "none"]>>;
435
+ readonly recommendedPacks: Schema.optional<Schema.$Array<Schema.brand<Schema.NonEmptyString, "PackSpec">>>;
436
+ readonly standalone: Schema.optional<Schema.Boolean>;
437
+ readonly publish: Schema.optional<Schema.Struct<{
438
+ readonly visibility: Schema.optional<Schema.Literals<readonly ["public", "private"]>>;
439
+ readonly ignore: Schema.optional<Schema.$Array<Schema.NonEmptyString>>;
440
+ }>>;
441
+ readonly metadata: Schema.optional<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>;
442
+ readonly owner: Schema.brand<Schema.String, "Handle">;
443
+ readonly version: Schema.brand<Schema.String, "Version">;
444
+ readonly description: Schema.optional<Schema.String>;
445
+ readonly keywords: Schema.optional<Schema.$Array<Schema.NonEmptyString>>;
446
+ readonly repository: Schema.optional<Schema.Union<readonly [Schema.String, Schema.Struct<{
447
+ readonly type: Schema.optional<Schema.NonEmptyString>;
448
+ readonly url: Schema.NonEmptyString;
449
+ readonly directory: Schema.optional<Schema.NonEmptyString>;
450
+ }>]>>;
451
+ readonly homepage: Schema.optional<Schema.String>;
452
+ readonly license: Schema.optional<Schema.String>;
453
+ readonly bugs: Schema.optional<Schema.Union<readonly [Schema.String, Schema.Struct<{
454
+ readonly url: Schema.optional<Schema.NonEmptyString>;
455
+ readonly email: Schema.optional<Schema.NonEmptyString>;
456
+ }>]>>;
457
+ readonly authors: Schema.optional<Schema.$Array<Schema.Struct<{
458
+ readonly name: Schema.String;
459
+ readonly email: Schema.optional<Schema.String>;
460
+ readonly url: Schema.optional<Schema.String>;
461
+ }>>>;
462
+ readonly packages: Schema.optional<Schema.$Array<Schema.Struct<{
463
+ readonly purl: Schema.brand<Schema.NonEmptyString, "PackageIdentityPurl">;
464
+ readonly versionRange: Schema.optional<Schema.brand<Schema.decodeTo<Schema.toType<Schema.Struct<{
465
+ readonly raw: Schema.NonEmptyString;
466
+ readonly scheme: Schema.NonEmptyString;
467
+ readonly constraints: Schema.$Array<Schema.Struct<{
468
+ readonly comparator: Schema.Literals<readonly ["=", "!=", "<", "<=", ">", ">="]>;
469
+ readonly version: Schema.NonEmptyString;
470
+ }>>;
471
+ }>>, Schema.NonEmptyString, never, never>, "VersRange">>;
472
+ }>>>;
473
+ readonly $schema: Schema.optional<Schema.String>;
474
+ }>;
475
+ hook: Schema.Struct<{
476
+ readonly type: Schema.Literal<"hook">;
477
+ readonly name: Schema.brand<Schema.NonEmptyString, "ExtensionName">;
478
+ readonly title: Schema.optional<Schema.NonEmptyString>;
479
+ readonly runtime: Schema.Literals<readonly ["bash", "node", "python"]>;
480
+ readonly entrypoint: Schema.NonEmptyString;
481
+ readonly bindings: Schema.$Array<Schema.Struct<{
482
+ readonly on: Schema.Literals<readonly ["session.start", "prompt.submit", "turn.end", "tool.pre", "tool.post", "subagent.stop", "compaction.pre"]>;
483
+ readonly match: Schema.optional<Schema.Struct<{
484
+ readonly tools: Schema.optional<Schema.NonEmptyArray<Schema.Literals<readonly ["file.read", "file.write", "file.edit", "shell.exec", "web.fetch", "mcp.call"]>>>;
485
+ }>>;
486
+ readonly matcherRaw: Schema.optional<Schema.NonEmptyString>;
487
+ readonly targets: Schema.optional<Schema.$Record<Schema.String, Schema.Struct<{
488
+ readonly matcherRaw: Schema.optional<Schema.NonEmptyString>;
489
+ }>>>;
490
+ readonly requires: Schema.optional<Schema.Struct<{
491
+ readonly decision: Schema.Union<readonly [Schema.Struct<{
492
+ readonly kind: Schema.Literal<"observe">;
493
+ }>, Schema.Struct<{
494
+ readonly kind: Schema.Literal<"block">;
495
+ readonly outcomes: Schema.optional<Schema.NonEmptyArray<Schema.Literals<readonly ["allow", "deny", "ask"]>>>;
496
+ }>, Schema.Struct<{
497
+ readonly kind: Schema.Literal<"modify">;
498
+ readonly operations: Schema.optional<Schema.NonEmptyArray<Schema.Literals<readonly ["modify-input", "inject-context", "modify-output", "synthesize", "redact"]>>>;
499
+ }>]>;
500
+ }>>;
501
+ }>>;
502
+ readonly timeoutMs: Schema.optional<Schema.Int>;
503
+ readonly capabilities: Schema.optional<Schema.Struct<{
504
+ readonly network: Schema.optional<Schema.Boolean>;
505
+ readonly filesystemWrite: Schema.optional<Schema.Boolean>;
506
+ readonly exec: Schema.optional<Schema.$Array<Schema.NonEmptyString>>;
507
+ readonly env: Schema.optional<Schema.$Array<Schema.NonEmptyString>>;
508
+ }>>;
509
+ readonly enhances: Schema.optional<Schema.$Array<Schema.NonEmptyString>>;
510
+ readonly requires: Schema.optional<Schema.$Array<Schema.NonEmptyString>>;
511
+ readonly fallback: Schema.optional<Schema.Literals<readonly ["auto", "none"]>>;
512
+ readonly recommendedPacks: Schema.optional<Schema.$Array<Schema.brand<Schema.NonEmptyString, "PackSpec">>>;
513
+ readonly standalone: Schema.optional<Schema.Boolean>;
514
+ readonly publish: Schema.optional<Schema.Struct<{
515
+ readonly visibility: Schema.optional<Schema.Literals<readonly ["public", "private"]>>;
516
+ readonly ignore: Schema.optional<Schema.$Array<Schema.NonEmptyString>>;
517
+ }>>;
518
+ readonly metadata: Schema.optional<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>;
519
+ readonly owner: Schema.brand<Schema.String, "Handle">;
520
+ readonly version: Schema.brand<Schema.String, "Version">;
521
+ readonly description: Schema.optional<Schema.String>;
522
+ readonly keywords: Schema.optional<Schema.$Array<Schema.NonEmptyString>>;
523
+ readonly repository: Schema.optional<Schema.Union<readonly [Schema.String, Schema.Struct<{
524
+ readonly type: Schema.optional<Schema.NonEmptyString>;
525
+ readonly url: Schema.NonEmptyString;
526
+ readonly directory: Schema.optional<Schema.NonEmptyString>;
527
+ }>]>>;
528
+ readonly homepage: Schema.optional<Schema.String>;
529
+ readonly license: Schema.optional<Schema.String>;
530
+ readonly bugs: Schema.optional<Schema.Union<readonly [Schema.String, Schema.Struct<{
531
+ readonly url: Schema.optional<Schema.NonEmptyString>;
532
+ readonly email: Schema.optional<Schema.NonEmptyString>;
533
+ }>]>>;
534
+ readonly authors: Schema.optional<Schema.$Array<Schema.Struct<{
535
+ readonly name: Schema.String;
536
+ readonly email: Schema.optional<Schema.String>;
537
+ readonly url: Schema.optional<Schema.String>;
538
+ }>>>;
539
+ readonly packages: Schema.optional<Schema.$Array<Schema.Struct<{
540
+ readonly purl: Schema.brand<Schema.NonEmptyString, "PackageIdentityPurl">;
541
+ readonly versionRange: Schema.optional<Schema.brand<Schema.decodeTo<Schema.toType<Schema.Struct<{
542
+ readonly raw: Schema.NonEmptyString;
543
+ readonly scheme: Schema.NonEmptyString;
544
+ readonly constraints: Schema.$Array<Schema.Struct<{
545
+ readonly comparator: Schema.Literals<readonly ["=", "!=", "<", "<=", ">", ">="]>;
546
+ readonly version: Schema.NonEmptyString;
547
+ }>>;
548
+ }>>, Schema.NonEmptyString, never, never>, "VersRange">>;
549
+ }>>>;
550
+ readonly $schema: Schema.optional<Schema.String>;
551
+ }>;
552
+ knowledge: Schema.Struct<{
553
+ readonly type: Schema.Literal<"knowledge">;
554
+ readonly format: Schema.Struct<{
555
+ readonly name: Schema.Literal<"okf">;
556
+ readonly version: Schema.Literal<"0.2">;
557
+ }>;
558
+ readonly bundleRoot: Schema.Literal<"src">;
559
+ readonly instructionEntry: Schema.optionalKey<Schema.Boolean>;
560
+ readonly name: Schema.brand<Schema.NonEmptyString, "ExtensionName">;
561
+ readonly enhances: Schema.optional<Schema.$Array<Schema.NonEmptyString>>;
562
+ readonly requires: Schema.optional<Schema.$Array<Schema.NonEmptyString>>;
563
+ readonly fallback: Schema.optional<Schema.Literals<readonly ["auto", "none"]>>;
564
+ readonly recommendedPacks: Schema.optional<Schema.$Array<Schema.brand<Schema.NonEmptyString, "PackSpec">>>;
565
+ readonly standalone: Schema.optional<Schema.Boolean>;
566
+ readonly publish: Schema.optional<Schema.Struct<{
567
+ readonly visibility: Schema.optional<Schema.Literals<readonly ["public", "private"]>>;
568
+ readonly ignore: Schema.optional<Schema.$Array<Schema.NonEmptyString>>;
569
+ }>>;
570
+ readonly metadata: Schema.optional<Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>>;
571
+ readonly owner: Schema.brand<Schema.String, "Handle">;
572
+ readonly version: Schema.brand<Schema.String, "Version">;
573
+ readonly description: Schema.optional<Schema.String>;
574
+ readonly keywords: Schema.optional<Schema.$Array<Schema.NonEmptyString>>;
575
+ readonly repository: Schema.optional<Schema.Union<readonly [Schema.String, Schema.Struct<{
576
+ readonly type: Schema.optional<Schema.NonEmptyString>;
577
+ readonly url: Schema.NonEmptyString;
578
+ readonly directory: Schema.optional<Schema.NonEmptyString>;
579
+ }>]>>;
580
+ readonly homepage: Schema.optional<Schema.String>;
581
+ readonly license: Schema.optional<Schema.String>;
582
+ readonly bugs: Schema.optional<Schema.Union<readonly [Schema.String, Schema.Struct<{
583
+ readonly url: Schema.optional<Schema.NonEmptyString>;
584
+ readonly email: Schema.optional<Schema.NonEmptyString>;
585
+ }>]>>;
586
+ readonly authors: Schema.optional<Schema.$Array<Schema.Struct<{
587
+ readonly name: Schema.String;
588
+ readonly email: Schema.optional<Schema.String>;
589
+ readonly url: Schema.optional<Schema.String>;
590
+ }>>>;
591
+ readonly packages: Schema.optional<Schema.$Array<Schema.Struct<{
592
+ readonly purl: Schema.brand<Schema.NonEmptyString, "PackageIdentityPurl">;
593
+ readonly versionRange: Schema.optional<Schema.brand<Schema.decodeTo<Schema.toType<Schema.Struct<{
594
+ readonly raw: Schema.NonEmptyString;
595
+ readonly scheme: Schema.NonEmptyString;
596
+ readonly constraints: Schema.$Array<Schema.Struct<{
597
+ readonly comparator: Schema.Literals<readonly ["=", "!=", "<", "<=", ">", ">="]>;
598
+ readonly version: Schema.NonEmptyString;
599
+ }>>;
600
+ }>>, Schema.NonEmptyString, never, never>, "VersRange">>;
601
+ }>>>;
602
+ readonly $schema: Schema.optional<Schema.String>;
603
+ }>;
604
+ };
605
+ export type ExtensionManifest = Schema.Schema.Type<(typeof MANIFEST_SCHEMA_BY_TYPE)[ExtensionType]>;
34
606
  export declare const manifestSchemaForType: (type: ExtensionType) => Schema.Struct<{
35
607
  readonly type: Schema.Literal<"skill">;
36
608
  readonly name: Schema.brand<Schema.NonEmptyString, "ExtensionName">;
@@ -374,7 +946,13 @@ export declare const manifestSchemaForType: (type: ExtensionType) => Schema.Stru
374
946
  }> | Schema.Struct<{
375
947
  readonly type: Schema.Literal<"pack">;
376
948
  readonly name: Schema.brand<Schema.NonEmptyString, "ExtensionName">;
377
- readonly dependencies: Schema.$Record<Schema.String, Schema.brand<Schema.NonEmptyString, "VersionRange">>;
949
+ readonly dependencies: Schema.$Record<Schema.String, Schema.Union<readonly [Schema.brand<Schema.NonEmptyString, "VersionRange">, Schema.Struct<{
950
+ readonly source: Schema.Struct<{
951
+ readonly type: Schema.Literal<"registry">;
952
+ readonly url: Schema.URLFromString;
953
+ }>;
954
+ readonly versionRange: Schema.brand<Schema.NonEmptyString, "VersionRange">;
955
+ }>]>>;
378
956
  readonly publish: Schema.optional<Schema.Struct<{
379
957
  readonly visibility: Schema.optional<Schema.Literals<readonly ["public", "private"]>>;
380
958
  readonly ignore: Schema.optional<Schema.$Array<Schema.NonEmptyString>>;
@@ -35,7 +35,7 @@ export const ManifestIdentitySchema = Schema.Struct({
35
35
  title: "Manifest Identity",
36
36
  description: "The key identity fields from a manifest: who owns it, what type, its name, and version.",
37
37
  });
38
- const MANIFEST_SCHEMA_BY_TYPE = {
38
+ export const MANIFEST_SCHEMA_BY_TYPE = {
39
39
  skill: SkillManifestSchema,
40
40
  "mcp-server": McpServerManifestSchema,
41
41
  subagent: SubagentManifestSchema,
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "url": "https://github.com/agentxm/axm/issues"
5
5
  },
6
6
  "dependencies": {
7
- "@agentxm/extension-model": "^0.31.1",
7
+ "@agentxm/extension-model": "^0.32.0",
8
8
  "effect": "4.0.0-rc.115",
9
9
  "yaml": "^2.9.0"
10
10
  },
@@ -58,5 +58,5 @@
58
58
  },
59
59
  "sideEffects": false,
60
60
  "type": "module",
61
- "version": "0.31.1"
61
+ "version": "0.32.0"
62
62
  }