@lesliechan721/aw-plugin-core 0.1.0-beta.6 → 0.1.0-beta.60

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 (58) hide show
  1. package/dist/aw-capabilities.d.ts +27 -0
  2. package/dist/aw-capabilities.js +117 -0
  3. package/dist/aw-capabilities.js.map +1 -0
  4. package/dist/catalog-file-modes.d.ts +5 -0
  5. package/dist/catalog-file-modes.js +67 -0
  6. package/dist/catalog-file-modes.js.map +1 -0
  7. package/dist/catalog-workspace-resolution.d.ts +3 -0
  8. package/dist/catalog-workspace-resolution.js +34 -0
  9. package/dist/catalog-workspace-resolution.js.map +1 -0
  10. package/dist/generated/plugin-manifest-v3.d.ts +1532 -0
  11. package/dist/generated/{plugin-manifest-v1.js → plugin-manifest-v3.js} +1 -1
  12. package/dist/generated/plugin-manifest-v3.js.map +1 -0
  13. package/dist/index.d.ts +3 -2
  14. package/dist/index.js +2 -1
  15. package/dist/index.js.map +1 -1
  16. package/dist/managed-commands.d.ts +167 -0
  17. package/dist/managed-commands.js +463 -0
  18. package/dist/managed-commands.js.map +1 -0
  19. package/dist/manifest-contract.d.ts +3 -6
  20. package/dist/manifest-contract.js +271 -407
  21. package/dist/manifest-contract.js.map +1 -1
  22. package/dist/manifest-type-contract.d.ts +2 -2
  23. package/dist/manifest.d.ts +12 -8
  24. package/dist/manifest.js +18 -7
  25. package/dist/manifest.js.map +1 -1
  26. package/dist/native-runtime/reader-runtime.mjs +34 -0
  27. package/dist/native-runtime/reader.d.mts +6 -0
  28. package/dist/native-runtime/reader.mjs +11 -0
  29. package/dist/native-tools.d.ts +48 -0
  30. package/dist/native-tools.js +192 -0
  31. package/dist/native-tools.js.map +1 -0
  32. package/dist/plugin-authoring-capabilities.d.ts +1 -1
  33. package/dist/plugin-authoring-capabilities.js +133 -26
  34. package/dist/plugin-authoring-capabilities.js.map +1 -1
  35. package/dist/plugin-config.d.ts +47 -0
  36. package/dist/plugin-config.js +1355 -0
  37. package/dist/plugin-config.js.map +1 -0
  38. package/dist/plugin-requirements.d.ts +34 -0
  39. package/dist/plugin-requirements.js +300 -0
  40. package/dist/plugin-requirements.js.map +1 -0
  41. package/dist/plugin-script-contract.d.ts +11 -12
  42. package/dist/plugin-script-contract.js +44 -71
  43. package/dist/plugin-script-contract.js.map +1 -1
  44. package/dist/runtime-config.d.ts +38 -0
  45. package/dist/runtime-config.js +31 -0
  46. package/dist/runtime-config.js.map +1 -0
  47. package/dist/types.d.ts +266 -73
  48. package/dist/workspace.d.ts +37 -9
  49. package/dist/workspace.js +419 -191
  50. package/dist/workspace.js.map +1 -1
  51. package/package.json +16 -6
  52. package/schemas/plugin-manifest-v3.json +2655 -0
  53. package/dist/generated/plugin-manifest-v1.d.ts +0 -368
  54. package/dist/generated/plugin-manifest-v1.js.map +0 -1
  55. package/dist/plugin-release.d.ts +0 -30
  56. package/dist/plugin-release.js +0 -187
  57. package/dist/plugin-release.js.map +0 -1
  58. package/schemas/plugin-manifest-v1.json +0 -329
package/dist/types.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- import type { PluginManifestSourceV1 } from './generated/plugin-manifest-v1.js';
1
+ import type { PluginManifestSourceV3 } from './generated/plugin-manifest-v3.js';
2
+ import type { ManagedCommands, ManagedCommandPermission, PermissionCommand } from './managed-commands.js';
2
3
  export type PlatformName = 'codex' | 'claude';
3
4
  export type DistributionName = 'agent-skills';
4
5
  export type Scope = 'project' | 'user';
@@ -10,7 +11,7 @@ export type CatalogSourceId = string;
10
11
  export type SourceIdentity = string;
11
12
  export type SupportedPlatformSet = ReadonlySet<PlatformName>;
12
13
  export type CodexProjectManagedKind = 'skill' | 'mcpServer' | 'instruction' | 'permission' | 'hook' | 'agent';
13
- export type PluginInterfaceMeta = NonNullable<PluginManifestSourceV1['interface']>;
14
+ export type PluginInterfaceMeta = NonNullable<PluginManifestSourceV3['interface']>;
14
15
  export interface MarketplaceOwner {
15
16
  name: string;
16
17
  url: string;
@@ -25,9 +26,9 @@ export interface MarketplaceSourceMeta {
25
26
  version: string;
26
27
  };
27
28
  }
28
- export type MarketplacePolicy = PluginManifestSourceV1['marketplace']['policy'];
29
+ export type MarketplacePolicy = PluginManifestSourceV3['marketplace']['policy'];
29
30
  export type MarketplaceAuthenticationPolicy = MarketplacePolicy['authentication'];
30
- export type PluginMarketplaceMeta = PluginManifestSourceV1['marketplace'];
31
+ export type PluginMarketplaceMeta = PluginManifestSourceV3['marketplace'];
31
32
  export type TemplateValue = string | boolean;
32
33
  export interface TemplateVarByPlatform {
33
34
  claude: TemplateValue;
@@ -55,6 +56,11 @@ export interface BuildConfigManifestOverrides {
55
56
  export interface BuildConfigRuntimeExport {
56
57
  name: string;
57
58
  source: string;
59
+ requires: {
60
+ aw: {
61
+ capabilities: string[];
62
+ };
63
+ };
58
64
  }
59
65
  export interface BuildConfigImportReference {
60
66
  plugin: string;
@@ -86,18 +92,10 @@ export interface BuildConfig {
86
92
  skillRuntimeFiles?: BuildConfigSkillRuntimeFile[];
87
93
  generatedSkillRuntimeFiles?: BuildConfigGeneratedSkillRuntimeFile[];
88
94
  }
89
- export type PluginLifecycleEvent = 'install' | 'upgrade' | 'uninstall';
90
- export type PluginLifecycleOsSelector = 'default' | 'unix' | 'windows' | 'linux' | 'darwin' | 'win32';
91
- export type PluginLifecycleRuntimeOs = 'linux' | 'darwin' | 'win32';
92
- export type PluginLifecycleScriptRunner = 'node' | 'sh' | 'bash' | 'pwsh' | 'powershell' | 'cmd' | 'auto';
93
- export interface PluginLifecycleScriptEntry {
94
- runner: PluginLifecycleScriptRunner;
95
+ export interface PluginPreApplyScript {
95
96
  path: string;
96
- args?: string[];
97
+ timeoutMs?: number;
97
98
  }
98
- export type PluginLifecycleScriptSelector = Partial<Record<PluginLifecycleOsSelector, PluginLifecycleScriptEntry>>;
99
- export type PluginLifecycleScriptDefinition = string | PluginLifecycleScriptSelector;
100
- export type PluginLifecycleScripts = Partial<Record<PluginLifecycleEvent, PluginLifecycleScriptSelector>>;
101
99
  export interface PluginScriptHelpersConfig {
102
100
  config: string;
103
101
  }
@@ -122,26 +120,159 @@ export interface PluginArtifactScriptsConfig {
122
120
  render?: PluginArtifactRenderScriptEntry;
123
121
  }
124
122
  export interface PluginScriptsConfig {
125
- timeoutMs?: number;
126
- lifecycle?: PluginLifecycleScripts;
123
+ preApply?: PluginPreApplyScript;
127
124
  helpers?: PluginScriptHelpersConfig;
128
125
  node?: PluginNodeScriptsConfig;
129
126
  artifacts?: PluginArtifactScriptsConfig;
130
127
  tests?: PluginScriptTestsConfig;
131
128
  }
132
- export type PluginConfigFieldType = 'string' | 'number' | 'boolean' | 'enum' | 'file' | 'directory';
133
- export interface PluginConfigSchemaField {
134
- type: PluginConfigFieldType;
129
+ export type PluginConfigScalar = string | number | boolean;
130
+ export type PluginConfigScalarArray = string[] | number[] | boolean[];
131
+ export type PluginConfigScalarObject = Record<string, PluginConfigScalar>;
132
+ export type PluginConfigObject = Record<string, PluginConfigScalar | PluginConfigScalarArray | PluginConfigScalarObject>;
133
+ export type PluginConfigArray = PluginConfigScalarArray | PluginConfigObject[];
134
+ export type PluginConfigValue = PluginConfigScalar | PluginConfigObject | PluginConfigArray;
135
+ export type PluginConfigFieldType = 'string' | 'number' | 'boolean' | 'object' | 'array';
136
+ export type PluginConfigStringFormat = 'identifier' | 'slug' | 'semver' | 'url' | 'hostname' | 'email';
137
+ export interface PluginConfigPreset<Value extends PluginConfigValue = PluginConfigValue> {
138
+ id: string;
139
+ title: string;
140
+ description?: string;
141
+ value: Value;
142
+ recommended?: true;
143
+ }
144
+ export interface PluginConfigChoices<Value extends PluginConfigValue = PluginConfigValue> {
145
+ allowCustom: boolean;
146
+ presets: PluginConfigPreset<Value>[];
147
+ }
148
+ export interface PluginConfigStringValidation {
149
+ minLength?: number;
150
+ maxLength?: number;
151
+ pattern?: string;
152
+ format?: PluginConfigStringFormat;
153
+ }
154
+ export interface PluginConfigNumberValidation {
155
+ integer?: boolean;
156
+ minimum?: number;
157
+ maximum?: number;
158
+ multipleOf?: number;
159
+ }
160
+ export interface PluginConfigObjectValidation {
161
+ minProperties?: number;
162
+ maxProperties?: number;
163
+ key?: PluginConfigStringValidation;
164
+ }
165
+ export interface PluginConfigArrayValidation {
166
+ minItems?: number;
167
+ maxItems?: number;
168
+ uniqueItems?: boolean;
169
+ uniqueBy?: string;
170
+ }
171
+ export interface PluginConfigValueReference {
172
+ field: string;
173
+ key: string;
174
+ label?: string;
175
+ include?: PluginConfigScalar[];
176
+ }
177
+ export interface PluginConfigFieldBase<Value extends PluginConfigValue> {
135
178
  title?: string;
136
179
  description?: string;
137
- default?: string | number | boolean;
180
+ default?: Value;
138
181
  required?: boolean;
139
- sensitive?: boolean;
140
- values?: string[];
141
- min?: number;
142
- max?: number;
182
+ sensitive?: never;
183
+ }
184
+ interface PluginConfigPlainStringField extends Omit<PluginConfigFieldBase<string>, 'sensitive'> {
185
+ type: 'string';
186
+ const?: string;
187
+ sensitive?: false;
188
+ valueRef?: PluginConfigValueReference;
189
+ choices?: PluginConfigChoices<string>;
190
+ validation?: PluginConfigStringValidation;
191
+ }
192
+ interface PluginConfigSensitiveStringField extends Omit<PluginConfigFieldBase<string>, 'default' | 'sensitive'> {
193
+ type: 'string';
194
+ sensitive: true;
195
+ default?: never;
196
+ choices?: never;
197
+ const?: never;
198
+ validation?: PluginConfigStringValidation;
199
+ }
200
+ export type PluginConfigStringField = PluginConfigPlainStringField | PluginConfigSensitiveStringField;
201
+ export interface PluginConfigNumberField extends PluginConfigFieldBase<number> {
202
+ type: 'number';
203
+ const?: number;
204
+ valueRef?: PluginConfigValueReference;
205
+ choices?: PluginConfigChoices<number>;
206
+ validation?: PluginConfigNumberValidation;
207
+ }
208
+ export interface PluginConfigBooleanField extends PluginConfigFieldBase<boolean> {
209
+ type: 'boolean';
210
+ const?: boolean;
211
+ valueRef?: PluginConfigValueReference;
212
+ choices?: PluginConfigChoices<boolean>;
213
+ }
214
+ export type PluginConfigScalarField = PluginConfigStringField | PluginConfigNumberField | PluginConfigBooleanField;
215
+ type DistributiveOmit<Value, Key extends PropertyKey> = Value extends unknown ? Omit<Value, Key> : never;
216
+ type PluginConfigNonSensitiveScalarField = PluginConfigPlainStringField | PluginConfigNumberField | PluginConfigBooleanField;
217
+ export type PluginConfigScalarPropertyField = DistributiveOmit<PluginConfigNonSensitiveScalarField, 'default' | 'sensitive'> & {
218
+ sensitive?: never;
219
+ };
220
+ export interface PluginConfigLeafArrayField extends Omit<PluginConfigFieldBase<PluginConfigScalarArray>, 'default'> {
221
+ type: 'array';
222
+ items: PluginConfigAdditionalPropertiesField;
223
+ choices?: PluginConfigChoices<PluginConfigScalarArray>;
224
+ validation?: Omit<PluginConfigArrayValidation, 'uniqueBy'>;
225
+ }
226
+ export interface PluginConfigLeafObjectField extends Omit<PluginConfigFieldBase<PluginConfigScalarObject>, 'default'> {
227
+ type: 'object';
228
+ properties?: never;
229
+ additionalProperties: PluginConfigAdditionalPropertiesField;
230
+ choices?: PluginConfigChoices<PluginConfigScalarObject>;
231
+ validation?: PluginConfigObjectValidation;
232
+ }
233
+ export type PluginConfigObjectPropertyField = PluginConfigScalarPropertyField | PluginConfigLeafArrayField | PluginConfigLeafObjectField;
234
+ export type PluginConfigAdditionalPropertiesField = DistributiveOmit<PluginConfigNonSensitiveScalarField, 'default' | 'required' | 'sensitive'> & {
235
+ sensitive?: never;
236
+ };
237
+ interface PluginConfigObjectFieldBase extends PluginConfigFieldBase<PluginConfigObject> {
238
+ type: 'object';
239
+ choices?: PluginConfigChoices<PluginConfigObject>;
240
+ validation?: PluginConfigObjectValidation;
241
+ }
242
+ export interface PluginConfigFixedObjectField extends PluginConfigObjectFieldBase {
243
+ properties: Record<string, PluginConfigObjectPropertyField>;
244
+ additionalProperties?: false;
245
+ variants?: PluginConfigObjectVariants;
246
+ }
247
+ export interface PluginConfigObjectVariant {
248
+ properties: Record<string, PluginConfigObjectPropertyField>;
249
+ }
250
+ export interface PluginConfigObjectVariants {
251
+ discriminator: string;
252
+ cases: Record<string, PluginConfigObjectVariant>;
253
+ missing?: string;
254
+ otherwise?: PluginConfigObjectVariant;
255
+ }
256
+ export interface PluginConfigKeyValueObjectField extends PluginConfigObjectFieldBase {
257
+ default?: PluginConfigScalarObject;
258
+ choices?: PluginConfigChoices<PluginConfigScalarObject>;
259
+ properties?: never;
260
+ variants?: never;
261
+ additionalProperties: PluginConfigAdditionalPropertiesField;
262
+ }
263
+ export type PluginConfigObjectField = PluginConfigFixedObjectField | PluginConfigKeyValueObjectField;
264
+ export type PluginConfigArrayItemField = DistributiveOmit<PluginConfigNonSensitiveScalarField | PluginConfigObjectField, 'default' | 'required' | 'sensitive'> & {
265
+ default?: never;
266
+ required?: never;
267
+ sensitive?: never;
268
+ };
269
+ export interface PluginConfigArrayField extends PluginConfigFieldBase<PluginConfigArray> {
270
+ type: 'array';
271
+ items: PluginConfigArrayItemField;
272
+ choices?: PluginConfigChoices<PluginConfigArray>;
273
+ validation?: PluginConfigArrayValidation;
143
274
  }
144
- export type PluginConfigPresentationValue = string | number | boolean;
275
+ export type PluginConfigSchemaField = PluginConfigScalarField | PluginConfigObjectField | PluginConfigArrayField;
145
276
  export interface PluginConfigPresentationGroup {
146
277
  id: string;
147
278
  title: string;
@@ -149,27 +280,69 @@ export interface PluginConfigPresentationGroup {
149
280
  fields: string[];
150
281
  advanced?: boolean;
151
282
  }
152
- export interface PluginConfigPresentationField {
153
- valueLabels?: Record<string, string>;
154
- recommendedValue?: PluginConfigPresentationValue;
155
- placeholder?: string;
156
- unit?: string;
157
- advanced?: boolean;
158
- }
159
- export interface PluginConfigPresentationPreset {
160
- id: string;
161
- title: string;
162
- description?: string;
163
- values: Record<string, PluginConfigPresentationValue>;
283
+ export interface PluginConfigJoinSummary {
284
+ kind: 'join';
285
+ parts: Array<{
286
+ path: string;
287
+ format?: 'raw' | 'choiceTitle';
288
+ }>;
289
+ separator: string;
290
+ missing: string;
164
291
  }
165
292
  export interface PluginConfigPresentation {
293
+ summaries?: Record<string, PluginConfigJoinSummary>;
294
+ fieldViews?: Record<string, {
295
+ summary: string;
296
+ itemSummary?: never;
297
+ } | {
298
+ itemSummary: string;
299
+ summary?: never;
300
+ }>;
166
301
  groups?: PluginConfigPresentationGroup[];
167
- fields?: Record<string, PluginConfigPresentationField>;
168
- presets?: PluginConfigPresentationPreset[];
169
302
  }
170
- export interface PluginConfigSchema {
171
- schema: Record<string, PluginConfigSchemaField>;
303
+ type PluginConfigLegacyScalarField = DistributiveOmit<PluginConfigScalarField, 'const'>;
304
+ type PluginConfigLegacyScalarPropertyField = DistributiveOmit<PluginConfigScalarPropertyField, 'const'>;
305
+ type PluginConfigLegacyAdditionalPropertiesField = DistributiveOmit<PluginConfigAdditionalPropertiesField, 'const'>;
306
+ type PluginConfigLegacyObjectField = (Omit<PluginConfigFixedObjectField, 'properties' | 'variants' | 'default' | 'choices'> & {
307
+ properties: Record<string, PluginConfigLegacyScalarPropertyField>;
308
+ default?: PluginConfigScalarObject;
309
+ choices?: PluginConfigChoices<PluginConfigScalarObject>;
310
+ }) | (Omit<PluginConfigKeyValueObjectField, 'additionalProperties'> & {
311
+ additionalProperties: PluginConfigLegacyAdditionalPropertiesField;
312
+ });
313
+ type PluginConfigLegacyArray = PluginConfigScalarArray | PluginConfigScalarObject[];
314
+ type PluginConfigLegacyArrayField = Omit<PluginConfigArrayField, 'default' | 'choices' | 'items'> & {
315
+ default?: PluginConfigLegacyArray;
316
+ choices?: PluginConfigChoices<PluginConfigLegacyArray>;
317
+ items: DistributiveOmit<PluginConfigLegacyScalarField | PluginConfigLegacyObjectField, 'default' | 'required' | 'sensitive'> & {
318
+ default?: never;
319
+ required?: never;
320
+ sensitive?: never;
321
+ };
322
+ };
323
+ export type PluginConfigDefinition = {
324
+ schemaVersion?: never;
325
+ fields: Record<string, PluginConfigLegacyScalarField | PluginConfigLegacyObjectField>;
326
+ presentation?: Pick<PluginConfigPresentation, 'groups'>;
327
+ } | {
328
+ schemaVersion: 3;
329
+ fields: Record<string, PluginConfigLegacyScalarField | PluginConfigLegacyObjectField | PluginConfigLegacyArrayField>;
330
+ presentation?: PluginConfigPresentation;
331
+ } | {
332
+ schemaVersion: 4;
333
+ fields: Record<string, PluginConfigSchemaField>;
172
334
  presentation?: PluginConfigPresentation;
335
+ };
336
+ export type PluginConfigSchema = PluginConfigDefinition;
337
+ export interface PluginConfigValidationIssue {
338
+ code: string;
339
+ path: {
340
+ field: string;
341
+ property?: string;
342
+ segments?: Array<string | number>;
343
+ };
344
+ message: string;
345
+ recoverable: true;
173
346
  }
174
347
  export interface PlatformAgentOverrides<T> {
175
348
  claude?: Partial<T> | null;
@@ -189,15 +362,17 @@ export interface InstructionDefinition {
189
362
  }
190
363
  export interface PermissionDefinition {
191
364
  name: string;
192
- allow?: string[];
193
- ask?: string[];
194
- deny?: string[];
195
- agentOverrides?: PlatformAgentOverrides<{
196
- name: string;
197
- allow?: string[];
198
- ask?: string[];
199
- deny?: string[];
200
- }>;
365
+ allow?: PermissionCommand[];
366
+ ask?: PermissionCommand[];
367
+ deny?: PermissionCommand[];
368
+ /** Present after resolving the Claude override; source declarations use agentOverrides.claude. */
369
+ sandbox?: {
370
+ excludedCommands: ManagedCommandPermission[];
371
+ };
372
+ agentOverrides?: {
373
+ claude?: Partial<Omit<PermissionDefinition, 'agentOverrides'>> | null;
374
+ codex?: Partial<Omit<PermissionDefinition, 'agentOverrides' | 'sandbox'>> | null;
375
+ };
201
376
  }
202
377
  export type HookEvent = 'before_tool' | 'after_tool' | 'session_start';
203
378
  export interface HookDefinition {
@@ -239,8 +414,17 @@ export interface PluginExtensions {
239
414
  agents?: AgentDefinition[];
240
415
  }
241
416
  export type ArtifactState = 'present' | 'disabled';
242
- export type ArtifactTarget = 'codex.developerInstructionsBlock' | 'codex.agentRole' | 'codex.skill' | 'claude.skill' | 'agent-skills.skill';
243
- export type DynamicArtifactKind = 'instruction' | 'codexRole' | 'skill';
417
+ export interface CodexNativeSkillDelivery {
418
+ mode: 'codex-native';
419
+ identity: 'shared';
420
+ renderProfile: 'user';
421
+ }
422
+ export interface AwExtensionSkillDelivery {
423
+ mode: 'aw-extension';
424
+ }
425
+ export type CodexSkillDelivery = CodexNativeSkillDelivery | AwExtensionSkillDelivery;
426
+ export type ArtifactTarget = 'codex.developerInstructionsBlock' | 'codex.agentRole' | 'codex.skill' | 'claude.skill' | 'agent-skills.skill' | 'aw.command-set' | 'aw.command-package';
427
+ export type DynamicArtifactKind = 'instruction' | 'codexRole' | 'skill' | 'commandSet' | 'commandPackage';
244
428
  export type ManagedArtifactId = string;
245
429
  export interface ArtifactRuntimeImportDefinition extends BuildConfigImportReference {
246
430
  name: string;
@@ -250,15 +434,16 @@ export interface ArtifactRuntimeImportDefinition extends BuildConfigImportRefere
250
434
  providerPluginId: PluginId;
251
435
  providerVersion: PluginVersion;
252
436
  source: string;
437
+ requiredCapabilities: string[];
438
+ capabilitySetDigest: string;
253
439
  };
254
440
  }
255
- export interface PluginArtifactTargetDefinition {
441
+ interface PluginArtifactTargetDefinitionBase {
256
442
  id: string;
257
443
  platform?: PlatformName;
258
444
  distribution?: DistributionName;
259
445
  scopes: Scope[];
260
- target: ArtifactTarget;
261
- kind?: DynamicArtifactKind;
446
+ kind?: Exclude<DynamicArtifactKind, 'commandSet' | 'commandPackage'>;
262
447
  projectManagedKind?: CodexProjectManagedKind;
263
448
  states: ArtifactState[];
264
449
  refreshKeys: string[];
@@ -267,7 +452,15 @@ export interface PluginArtifactTargetDefinition {
267
452
  skillKey?: string;
268
453
  sourceDirs?: string[];
269
454
  runtimeImports?: ArtifactRuntimeImportDefinition[];
455
+ runtimeConfig?: import('./runtime-config.js').PluginRuntimeConfigDeclaration;
270
456
  }
457
+ export type PluginArtifactTargetDefinition = PluginArtifactTargetDefinitionBase & {
458
+ target: 'codex.skill';
459
+ delivery: CodexSkillDelivery;
460
+ } | PluginArtifactTargetDefinitionBase & {
461
+ target: Exclude<ArtifactTarget, 'codex.skill' | 'aw.command-set' | 'aw.command-package'>;
462
+ delivery?: never;
463
+ };
271
464
  export interface PluginArtifactsConfig {
272
465
  targets?: PluginArtifactTargetDefinition[];
273
466
  }
@@ -277,24 +470,26 @@ export interface PluginAgentSkillsDistribution {
277
470
  export interface PluginDistributionsConfig {
278
471
  agentSkills?: PluginAgentSkillsDistribution;
279
472
  }
280
- export interface PluginCompatibility {
473
+ export interface PluginRequirements {
281
474
  aw: {
282
- minVersion: CliVersion;
475
+ capabilities?: string[];
283
476
  };
284
477
  }
285
- export type PluginManifestSource = PluginManifestSourceV1;
286
- export type NormalizedPluginManifest = Omit<PluginManifestSourceV1, 'schemaVersion' | 'compatibility' | 'extensions' | 'artifacts' | 'buildConfig' | 'scripts' | 'config'> & {
287
- schemaVersion: 1;
288
- compatibility: PluginCompatibility;
478
+ export type PluginManifestSource = PluginManifestSourceV3;
479
+ export type NormalizedPluginManifest = Omit<PluginManifestSourceV3, 'requires' | 'extensions' | 'artifacts' | 'buildConfig' | 'scripts' | 'config' | 'managedCommands' | 'nativeTools'> & {
480
+ requires?: PluginRequirements;
289
481
  extensions?: PluginExtensions;
290
482
  artifacts?: PluginArtifactsConfig;
291
483
  buildConfig?: BuildConfig;
292
484
  scripts?: PluginScriptsConfig;
293
485
  config?: PluginConfigSchema;
486
+ managedCommands?: ManagedCommands;
487
+ nativeTools?: import('./native-tools.js').NativeTools;
294
488
  };
295
489
  export interface PluginMeta {
296
490
  sourceId?: CatalogSourceId;
297
491
  sourceIdentity?: SourceIdentity;
492
+ catalogLogicalIdentity?: string;
298
493
  pluginId?: PluginId;
299
494
  marketplaceName?: string;
300
495
  rootDir: string;
@@ -326,12 +521,13 @@ export interface CatalogManifestEntry {
326
521
  tags?: string[];
327
522
  strict: boolean;
328
523
  policy: MarketplacePolicy;
329
- compatibility: PluginCompatibility;
524
+ dependencies: PluginId[];
525
+ requires: PluginRequirements;
330
526
  source: string;
331
527
  artifactDigest: string;
332
528
  manifestDigest: string;
333
529
  }
334
- export interface CatalogManifestV4Entry extends CatalogManifestEntry {
530
+ export interface CatalogManifestV7Entry extends CatalogManifestEntry {
335
531
  name: PluginId;
336
532
  contentDigest: string;
337
533
  }
@@ -339,29 +535,25 @@ export interface CatalogMarketplaceIdentity {
339
535
  owner: MarketplaceOwner;
340
536
  interface: MarketplaceInterfaceMeta;
341
537
  }
342
- export type CatalogManifestV4Release = {
538
+ export type CatalogManifestV7Release = {
343
539
  state: 'development';
344
540
  } | {
345
541
  state: 'published';
346
- targetVersion: string;
347
- planId: string;
348
542
  sourceHead: string;
349
- contentDigest: string;
350
543
  };
351
- export interface CatalogManifestV4 {
352
- schemaVersion: 4;
544
+ export interface CatalogManifestV7 {
545
+ schemaVersion: 7;
353
546
  catalogVersion: string;
354
547
  channel: CatalogChannel;
355
- compatibility: PluginCompatibility;
548
+ requires: PluginRequirements;
356
549
  marketplace: CatalogMarketplaceIdentity;
357
- release: CatalogManifestV4Release;
358
- entries: CatalogManifestV4Entry[];
550
+ release: CatalogManifestV7Release;
551
+ entries: CatalogManifestV7Entry[];
359
552
  }
360
553
  export interface PlatformPluginManifest {
361
554
  name: string;
362
555
  version: PluginVersion;
363
556
  description: string;
364
- compatibility: PluginCompatibility;
365
557
  skills?: string;
366
558
  mcpServers?: string;
367
559
  apps?: string;
@@ -426,3 +618,4 @@ export interface ClaudeSkillArtifact extends ArtifactPlanArtifactBase {
426
618
  files?: Record<string, string>;
427
619
  };
428
620
  }
621
+ export {};
@@ -1,6 +1,5 @@
1
- import { type PluginReleaseLedger } from './plugin-release.js';
2
1
  import type { ReservedImportRegistry } from './manifest-contract.js';
3
- import type { CatalogChannel, CatalogManifestV4, MarketplaceSourceMeta, PluginMeta } from './types.js';
2
+ import type { CatalogChannel, CatalogManifestV7, CatalogManifestV7Entry, MarketplaceSourceMeta, PluginMeta } from './types.js';
4
3
  export declare const DEFAULT_CATALOG_WORKSPACE_VERSION = "0.1.0";
5
4
  export declare const DEFAULT_CATALOG_OUTPUT_PATH: string;
6
5
  export declare const DEFAULT_PUBLISHED_CATALOG_OUTPUT_PATH: string;
@@ -50,6 +49,10 @@ export declare function resolveCatalogWorkspaceOutputPath(options: {
50
49
  workspaceRoot: string;
51
50
  outputRoot: string;
52
51
  }>;
52
+ export declare function readCatalogWorkspaceMarker(workspaceRoot: string): Promise<{
53
+ markerPath: string;
54
+ workspaceIdentity: string;
55
+ }>;
53
56
  export declare function initializeCatalogWorkspace(options: CatalogWorkspaceInitOptions): Promise<{
54
57
  workspaceRoot: string;
55
58
  markerPath: string;
@@ -61,6 +64,7 @@ export declare function readCatalogWorkspace(workspaceRoot: string, options?: Ca
61
64
  export declare function resolveCatalogVersionMutation(currentVersion: string, mutation: CatalogVersionMutation): string;
62
65
  export declare function mutateCatalogWorkspaceVersion(workspaceRoot: string, mutation: CatalogVersionMutation, options?: CatalogWorkspaceSourceOptions): Promise<MarketplaceSourceMeta>;
63
66
  export declare function deriveCatalogChannel(version: string): CatalogChannel;
67
+ export declare function calculateCatalogWorkspaceSourceIdentity(workspace: Pick<CatalogWorkspace, 'workspaceRoot' | 'metadataPath' | 'plugins'>): Promise<string>;
64
68
  export declare function buildCatalogWorkspace(options: {
65
69
  workspaceRoot: string;
66
70
  outputPath?: string;
@@ -73,10 +77,21 @@ export declare function buildCatalogWorkspace(options: {
73
77
  channel: CatalogChannel;
74
78
  pluginNames: string[];
75
79
  }>;
80
+ /**
81
+ * Assign versions for planning and snapshot preparation with the same content comparison.
82
+ * Official history includes removed Plugins. Baseline declarations come from main source,
83
+ * before generated candidate metadata changes.
84
+ */
85
+ export declare function resolvePublishedPluginVersions(options: {
86
+ channel: CatalogChannel;
87
+ entries: readonly Pick<CatalogManifestV7Entry, 'name' | 'version' | 'contentDigest'>[];
88
+ previousPluginEntries?: readonly CatalogManifestV7Entry[];
89
+ officialPluginHistory?: readonly CatalogManifestV7Entry[];
90
+ sourcePluginVersionsAtBaseline?: Readonly<Record<string, string>>;
91
+ }): Record<string, string>;
76
92
  export declare function validatePublishedCatalogSnapshot(snapshotDirectory: string): Promise<{
77
93
  rootDir: string;
78
- manifest: CatalogManifestV4;
79
- ledger: PluginReleaseLedger;
94
+ manifest: CatalogManifestV7;
80
95
  snapshotDigest: string;
81
96
  }>;
82
97
  export declare function preparePublishedCatalogWorkspace(options: {
@@ -84,6 +99,9 @@ export declare function preparePublishedCatalogWorkspace(options: {
84
99
  sourceHead: string;
85
100
  outputPath?: string;
86
101
  previousSnapshotRoot?: string;
102
+ historicalPluginEntries?: readonly CatalogManifestV7Entry[];
103
+ officialPluginHistory?: readonly CatalogManifestV7Entry[];
104
+ sourcePluginVersionsAtBaseline?: Readonly<Record<string, string>>;
87
105
  adapter: CatalogWorkspaceBuildAdapter;
88
106
  reservedImports?: ReservedImportRegistry;
89
107
  }): Promise<{
@@ -92,8 +110,6 @@ export declare function preparePublishedCatalogWorkspace(options: {
92
110
  channel: CatalogChannel;
93
111
  pluginNames: string[];
94
112
  snapshotDigest: string;
95
- contentDigest: string;
96
- planId: string;
97
113
  }>;
98
114
  export declare function buildCatalogWorkspacePlugin(options: {
99
115
  workspaceRoot: string;
@@ -108,9 +124,21 @@ export declare function buildCatalogWorkspacePlugin(options: {
108
124
  dependencies: string[];
109
125
  digest: string;
110
126
  }>;
111
- export declare function validateCatalogSnapshot(snapshotDirectory: string): Promise<{
127
+ export declare function validatePublishedCatalogSnapshotMetadata(snapshotDirectory: string): Promise<{
112
128
  rootDir: string;
113
- manifest: CatalogManifestV4;
114
- ledger?: PluginReleaseLedger;
129
+ workspaceIdentity: string;
130
+ manifest: CatalogManifestV7;
131
+ }>;
132
+ export declare function validateCatalogSnapshotTransport(snapshotDirectory: string): Promise<{
133
+ rootDir: string;
134
+ manifest: CatalogManifestV7;
115
135
  snapshotDigest: string;
116
136
  }>;
137
+ type CatalogSnapshotValidationResult = {
138
+ rootDir: string;
139
+ manifest: CatalogManifestV7;
140
+ snapshotDigest: string;
141
+ };
142
+ export declare function validateCatalogSnapshotPluginEntriesComplete(snapshotDirectory: string, pluginNames: readonly string[]): Promise<CatalogSnapshotValidationResult>;
143
+ export declare function validateCatalogSnapshotComplete(snapshotDirectory: string): Promise<CatalogSnapshotValidationResult>;
144
+ export {};