@lesliechan721/aw-plugin-core 0.1.0-beta.5 → 0.1.0-beta.50

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 (49) hide show
  1. package/dist/aw-capabilities.d.ts +27 -0
  2. package/dist/aw-capabilities.js +115 -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 +1350 -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/manifest-contract.d.ts +3 -6
  17. package/dist/manifest-contract.js +224 -398
  18. package/dist/manifest-contract.js.map +1 -1
  19. package/dist/manifest-type-contract.d.ts +2 -2
  20. package/dist/manifest.d.ts +10 -8
  21. package/dist/manifest.js +16 -7
  22. package/dist/manifest.js.map +1 -1
  23. package/dist/plugin-authoring-capabilities.d.ts +1 -1
  24. package/dist/plugin-authoring-capabilities.js +60 -26
  25. package/dist/plugin-authoring-capabilities.js.map +1 -1
  26. package/dist/plugin-config.d.ts +39 -0
  27. package/dist/plugin-config.js +1320 -0
  28. package/dist/plugin-config.js.map +1 -0
  29. package/dist/plugin-requirements.d.ts +34 -0
  30. package/dist/plugin-requirements.js +294 -0
  31. package/dist/plugin-requirements.js.map +1 -0
  32. package/dist/plugin-script-contract.d.ts +11 -12
  33. package/dist/plugin-script-contract.js +44 -71
  34. package/dist/plugin-script-contract.js.map +1 -1
  35. package/dist/runtime-config.d.ts +38 -0
  36. package/dist/runtime-config.js +31 -0
  37. package/dist/runtime-config.js.map +1 -0
  38. package/dist/types.d.ts +249 -61
  39. package/dist/workspace.d.ts +37 -9
  40. package/dist/workspace.js +419 -191
  41. package/dist/workspace.js.map +1 -1
  42. package/package.json +13 -4
  43. package/schemas/plugin-manifest-v3.json +2122 -0
  44. package/dist/generated/plugin-manifest-v1.d.ts +0 -368
  45. package/dist/generated/plugin-manifest-v1.js.map +0 -1
  46. package/dist/plugin-release.d.ts +0 -30
  47. package/dist/plugin-release.js +0 -187
  48. package/dist/plugin-release.js.map +0 -1
  49. package/schemas/plugin-manifest-v1.json +0 -329
package/dist/types.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { PluginManifestSourceV1 } from './generated/plugin-manifest-v1.js';
1
+ import type { PluginManifestSourceV3 } from './generated/plugin-manifest-v3.js';
2
2
  export type PlatformName = 'codex' | 'claude';
3
3
  export type DistributionName = 'agent-skills';
4
4
  export type Scope = 'project' | 'user';
@@ -10,7 +10,7 @@ export type CatalogSourceId = string;
10
10
  export type SourceIdentity = string;
11
11
  export type SupportedPlatformSet = ReadonlySet<PlatformName>;
12
12
  export type CodexProjectManagedKind = 'skill' | 'mcpServer' | 'instruction' | 'permission' | 'hook' | 'agent';
13
- export type PluginInterfaceMeta = NonNullable<PluginManifestSourceV1['interface']>;
13
+ export type PluginInterfaceMeta = NonNullable<PluginManifestSourceV3['interface']>;
14
14
  export interface MarketplaceOwner {
15
15
  name: string;
16
16
  url: string;
@@ -25,9 +25,9 @@ export interface MarketplaceSourceMeta {
25
25
  version: string;
26
26
  };
27
27
  }
28
- export type MarketplacePolicy = PluginManifestSourceV1['marketplace']['policy'];
28
+ export type MarketplacePolicy = PluginManifestSourceV3['marketplace']['policy'];
29
29
  export type MarketplaceAuthenticationPolicy = MarketplacePolicy['authentication'];
30
- export type PluginMarketplaceMeta = PluginManifestSourceV1['marketplace'];
30
+ export type PluginMarketplaceMeta = PluginManifestSourceV3['marketplace'];
31
31
  export type TemplateValue = string | boolean;
32
32
  export interface TemplateVarByPlatform {
33
33
  claude: TemplateValue;
@@ -55,6 +55,11 @@ export interface BuildConfigManifestOverrides {
55
55
  export interface BuildConfigRuntimeExport {
56
56
  name: string;
57
57
  source: string;
58
+ requires: {
59
+ aw: {
60
+ capabilities: string[];
61
+ };
62
+ };
58
63
  }
59
64
  export interface BuildConfigImportReference {
60
65
  plugin: string;
@@ -86,18 +91,10 @@ export interface BuildConfig {
86
91
  skillRuntimeFiles?: BuildConfigSkillRuntimeFile[];
87
92
  generatedSkillRuntimeFiles?: BuildConfigGeneratedSkillRuntimeFile[];
88
93
  }
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;
94
+ export interface PluginPreApplyScript {
95
95
  path: string;
96
- args?: string[];
96
+ timeoutMs?: number;
97
97
  }
98
- export type PluginLifecycleScriptSelector = Partial<Record<PluginLifecycleOsSelector, PluginLifecycleScriptEntry>>;
99
- export type PluginLifecycleScriptDefinition = string | PluginLifecycleScriptSelector;
100
- export type PluginLifecycleScripts = Partial<Record<PluginLifecycleEvent, PluginLifecycleScriptSelector>>;
101
98
  export interface PluginScriptHelpersConfig {
102
99
  config: string;
103
100
  }
@@ -122,26 +119,159 @@ export interface PluginArtifactScriptsConfig {
122
119
  render?: PluginArtifactRenderScriptEntry;
123
120
  }
124
121
  export interface PluginScriptsConfig {
125
- timeoutMs?: number;
126
- lifecycle?: PluginLifecycleScripts;
122
+ preApply?: PluginPreApplyScript;
127
123
  helpers?: PluginScriptHelpersConfig;
128
124
  node?: PluginNodeScriptsConfig;
129
125
  artifacts?: PluginArtifactScriptsConfig;
130
126
  tests?: PluginScriptTestsConfig;
131
127
  }
132
- export type PluginConfigFieldType = 'string' | 'number' | 'boolean' | 'enum' | 'file' | 'directory';
133
- export interface PluginConfigSchemaField {
134
- type: PluginConfigFieldType;
128
+ export type PluginConfigScalar = string | number | boolean;
129
+ export type PluginConfigScalarArray = string[] | number[] | boolean[];
130
+ export type PluginConfigScalarObject = Record<string, PluginConfigScalar>;
131
+ export type PluginConfigObject = Record<string, PluginConfigScalar | PluginConfigScalarArray | PluginConfigScalarObject>;
132
+ export type PluginConfigArray = PluginConfigScalarArray | PluginConfigObject[];
133
+ export type PluginConfigValue = PluginConfigScalar | PluginConfigObject | PluginConfigArray;
134
+ export type PluginConfigFieldType = 'string' | 'number' | 'boolean' | 'object' | 'array';
135
+ export type PluginConfigStringFormat = 'identifier' | 'slug' | 'semver' | 'url' | 'hostname' | 'email';
136
+ export interface PluginConfigPreset<Value extends PluginConfigValue = PluginConfigValue> {
137
+ id: string;
138
+ title: string;
139
+ description?: string;
140
+ value: Value;
141
+ recommended?: true;
142
+ }
143
+ export interface PluginConfigChoices<Value extends PluginConfigValue = PluginConfigValue> {
144
+ allowCustom: boolean;
145
+ presets: PluginConfigPreset<Value>[];
146
+ }
147
+ export interface PluginConfigStringValidation {
148
+ minLength?: number;
149
+ maxLength?: number;
150
+ pattern?: string;
151
+ format?: PluginConfigStringFormat;
152
+ }
153
+ export interface PluginConfigNumberValidation {
154
+ integer?: boolean;
155
+ minimum?: number;
156
+ maximum?: number;
157
+ multipleOf?: number;
158
+ }
159
+ export interface PluginConfigObjectValidation {
160
+ minProperties?: number;
161
+ maxProperties?: number;
162
+ key?: PluginConfigStringValidation;
163
+ }
164
+ export interface PluginConfigArrayValidation {
165
+ minItems?: number;
166
+ maxItems?: number;
167
+ uniqueItems?: boolean;
168
+ uniqueBy?: string;
169
+ }
170
+ export interface PluginConfigValueReference {
171
+ field: string;
172
+ key: string;
173
+ label?: string;
174
+ include?: PluginConfigScalar[];
175
+ }
176
+ export interface PluginConfigFieldBase<Value extends PluginConfigValue> {
135
177
  title?: string;
136
178
  description?: string;
137
- default?: string | number | boolean;
179
+ default?: Value;
138
180
  required?: boolean;
139
- sensitive?: boolean;
140
- values?: string[];
141
- min?: number;
142
- max?: number;
181
+ sensitive?: never;
182
+ }
183
+ interface PluginConfigPlainStringField extends Omit<PluginConfigFieldBase<string>, 'sensitive'> {
184
+ type: 'string';
185
+ const?: string;
186
+ sensitive?: false;
187
+ valueRef?: PluginConfigValueReference;
188
+ choices?: PluginConfigChoices<string>;
189
+ validation?: PluginConfigStringValidation;
190
+ }
191
+ interface PluginConfigSensitiveStringField extends Omit<PluginConfigFieldBase<string>, 'default' | 'sensitive'> {
192
+ type: 'string';
193
+ sensitive: true;
194
+ default?: never;
195
+ choices?: never;
196
+ const?: never;
197
+ validation?: PluginConfigStringValidation;
198
+ }
199
+ export type PluginConfigStringField = PluginConfigPlainStringField | PluginConfigSensitiveStringField;
200
+ export interface PluginConfigNumberField extends PluginConfigFieldBase<number> {
201
+ type: 'number';
202
+ const?: number;
203
+ valueRef?: PluginConfigValueReference;
204
+ choices?: PluginConfigChoices<number>;
205
+ validation?: PluginConfigNumberValidation;
206
+ }
207
+ export interface PluginConfigBooleanField extends PluginConfigFieldBase<boolean> {
208
+ type: 'boolean';
209
+ const?: boolean;
210
+ valueRef?: PluginConfigValueReference;
211
+ choices?: PluginConfigChoices<boolean>;
212
+ }
213
+ export type PluginConfigScalarField = PluginConfigStringField | PluginConfigNumberField | PluginConfigBooleanField;
214
+ type DistributiveOmit<Value, Key extends PropertyKey> = Value extends unknown ? Omit<Value, Key> : never;
215
+ type PluginConfigNonSensitiveScalarField = PluginConfigPlainStringField | PluginConfigNumberField | PluginConfigBooleanField;
216
+ export type PluginConfigScalarPropertyField = DistributiveOmit<PluginConfigNonSensitiveScalarField, 'default' | 'sensitive'> & {
217
+ sensitive?: never;
218
+ };
219
+ export interface PluginConfigLeafArrayField extends Omit<PluginConfigFieldBase<PluginConfigScalarArray>, 'default'> {
220
+ type: 'array';
221
+ items: PluginConfigAdditionalPropertiesField;
222
+ choices?: PluginConfigChoices<PluginConfigScalarArray>;
223
+ validation?: Omit<PluginConfigArrayValidation, 'uniqueBy'>;
224
+ }
225
+ export interface PluginConfigLeafObjectField extends Omit<PluginConfigFieldBase<PluginConfigScalarObject>, 'default'> {
226
+ type: 'object';
227
+ properties?: never;
228
+ additionalProperties: PluginConfigAdditionalPropertiesField;
229
+ choices?: PluginConfigChoices<PluginConfigScalarObject>;
230
+ validation?: PluginConfigObjectValidation;
231
+ }
232
+ export type PluginConfigObjectPropertyField = PluginConfigScalarPropertyField | PluginConfigLeafArrayField | PluginConfigLeafObjectField;
233
+ export type PluginConfigAdditionalPropertiesField = DistributiveOmit<PluginConfigNonSensitiveScalarField, 'default' | 'required' | 'sensitive'> & {
234
+ sensitive?: never;
235
+ };
236
+ interface PluginConfigObjectFieldBase extends PluginConfigFieldBase<PluginConfigObject> {
237
+ type: 'object';
238
+ choices?: PluginConfigChoices<PluginConfigObject>;
239
+ validation?: PluginConfigObjectValidation;
240
+ }
241
+ export interface PluginConfigFixedObjectField extends PluginConfigObjectFieldBase {
242
+ properties: Record<string, PluginConfigObjectPropertyField>;
243
+ additionalProperties?: false;
244
+ variants?: PluginConfigObjectVariants;
245
+ }
246
+ export interface PluginConfigObjectVariant {
247
+ properties: Record<string, PluginConfigObjectPropertyField>;
248
+ }
249
+ export interface PluginConfigObjectVariants {
250
+ discriminator: string;
251
+ cases: Record<string, PluginConfigObjectVariant>;
252
+ missing?: string;
253
+ otherwise?: PluginConfigObjectVariant;
254
+ }
255
+ export interface PluginConfigKeyValueObjectField extends PluginConfigObjectFieldBase {
256
+ default?: PluginConfigScalarObject;
257
+ choices?: PluginConfigChoices<PluginConfigScalarObject>;
258
+ properties?: never;
259
+ variants?: never;
260
+ additionalProperties: PluginConfigAdditionalPropertiesField;
261
+ }
262
+ export type PluginConfigObjectField = PluginConfigFixedObjectField | PluginConfigKeyValueObjectField;
263
+ export type PluginConfigArrayItemField = DistributiveOmit<PluginConfigNonSensitiveScalarField | PluginConfigObjectField, 'default' | 'required' | 'sensitive'> & {
264
+ default?: never;
265
+ required?: never;
266
+ sensitive?: never;
267
+ };
268
+ export interface PluginConfigArrayField extends PluginConfigFieldBase<PluginConfigArray> {
269
+ type: 'array';
270
+ items: PluginConfigArrayItemField;
271
+ choices?: PluginConfigChoices<PluginConfigArray>;
272
+ validation?: PluginConfigArrayValidation;
143
273
  }
144
- export type PluginConfigPresentationValue = string | number | boolean;
274
+ export type PluginConfigSchemaField = PluginConfigScalarField | PluginConfigObjectField | PluginConfigArrayField;
145
275
  export interface PluginConfigPresentationGroup {
146
276
  id: string;
147
277
  title: string;
@@ -149,27 +279,69 @@ export interface PluginConfigPresentationGroup {
149
279
  fields: string[];
150
280
  advanced?: boolean;
151
281
  }
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>;
282
+ export interface PluginConfigJoinSummary {
283
+ kind: 'join';
284
+ parts: Array<{
285
+ path: string;
286
+ format?: 'raw' | 'choiceTitle';
287
+ }>;
288
+ separator: string;
289
+ missing: string;
164
290
  }
165
291
  export interface PluginConfigPresentation {
292
+ summaries?: Record<string, PluginConfigJoinSummary>;
293
+ fieldViews?: Record<string, {
294
+ summary: string;
295
+ itemSummary?: never;
296
+ } | {
297
+ itemSummary: string;
298
+ summary?: never;
299
+ }>;
166
300
  groups?: PluginConfigPresentationGroup[];
167
- fields?: Record<string, PluginConfigPresentationField>;
168
- presets?: PluginConfigPresentationPreset[];
169
301
  }
170
- export interface PluginConfigSchema {
171
- schema: Record<string, PluginConfigSchemaField>;
302
+ type PluginConfigLegacyScalarField = DistributiveOmit<PluginConfigScalarField, 'const'>;
303
+ type PluginConfigLegacyScalarPropertyField = DistributiveOmit<PluginConfigScalarPropertyField, 'const'>;
304
+ type PluginConfigLegacyAdditionalPropertiesField = DistributiveOmit<PluginConfigAdditionalPropertiesField, 'const'>;
305
+ type PluginConfigLegacyObjectField = (Omit<PluginConfigFixedObjectField, 'properties' | 'variants' | 'default' | 'choices'> & {
306
+ properties: Record<string, PluginConfigLegacyScalarPropertyField>;
307
+ default?: PluginConfigScalarObject;
308
+ choices?: PluginConfigChoices<PluginConfigScalarObject>;
309
+ }) | (Omit<PluginConfigKeyValueObjectField, 'additionalProperties'> & {
310
+ additionalProperties: PluginConfigLegacyAdditionalPropertiesField;
311
+ });
312
+ type PluginConfigLegacyArray = PluginConfigScalarArray | PluginConfigScalarObject[];
313
+ type PluginConfigLegacyArrayField = Omit<PluginConfigArrayField, 'default' | 'choices' | 'items'> & {
314
+ default?: PluginConfigLegacyArray;
315
+ choices?: PluginConfigChoices<PluginConfigLegacyArray>;
316
+ items: DistributiveOmit<PluginConfigLegacyScalarField | PluginConfigLegacyObjectField, 'default' | 'required' | 'sensitive'> & {
317
+ default?: never;
318
+ required?: never;
319
+ sensitive?: never;
320
+ };
321
+ };
322
+ export type PluginConfigDefinition = {
323
+ schemaVersion?: never;
324
+ fields: Record<string, PluginConfigLegacyScalarField | PluginConfigLegacyObjectField>;
325
+ presentation?: Pick<PluginConfigPresentation, 'groups'>;
326
+ } | {
327
+ schemaVersion: 3;
328
+ fields: Record<string, PluginConfigLegacyScalarField | PluginConfigLegacyObjectField | PluginConfigLegacyArrayField>;
172
329
  presentation?: PluginConfigPresentation;
330
+ } | {
331
+ schemaVersion: 4;
332
+ fields: Record<string, PluginConfigSchemaField>;
333
+ presentation?: PluginConfigPresentation;
334
+ };
335
+ export type PluginConfigSchema = PluginConfigDefinition;
336
+ export interface PluginConfigValidationIssue {
337
+ code: string;
338
+ path: {
339
+ field: string;
340
+ property?: string;
341
+ segments?: Array<string | number>;
342
+ };
343
+ message: string;
344
+ recoverable: true;
173
345
  }
174
346
  export interface PlatformAgentOverrides<T> {
175
347
  claude?: Partial<T> | null;
@@ -239,6 +411,15 @@ export interface PluginExtensions {
239
411
  agents?: AgentDefinition[];
240
412
  }
241
413
  export type ArtifactState = 'present' | 'disabled';
414
+ export interface CodexNativeSkillDelivery {
415
+ mode: 'codex-native';
416
+ identity: 'shared';
417
+ renderProfile: 'user';
418
+ }
419
+ export interface AwExtensionSkillDelivery {
420
+ mode: 'aw-extension';
421
+ }
422
+ export type CodexSkillDelivery = CodexNativeSkillDelivery | AwExtensionSkillDelivery;
242
423
  export type ArtifactTarget = 'codex.developerInstructionsBlock' | 'codex.agentRole' | 'codex.skill' | 'claude.skill' | 'agent-skills.skill';
243
424
  export type DynamicArtifactKind = 'instruction' | 'codexRole' | 'skill';
244
425
  export type ManagedArtifactId = string;
@@ -250,14 +431,15 @@ export interface ArtifactRuntimeImportDefinition extends BuildConfigImportRefere
250
431
  providerPluginId: PluginId;
251
432
  providerVersion: PluginVersion;
252
433
  source: string;
434
+ requiredCapabilities: string[];
435
+ capabilitySetDigest: string;
253
436
  };
254
437
  }
255
- export interface PluginArtifactTargetDefinition {
438
+ interface PluginArtifactTargetDefinitionBase {
256
439
  id: string;
257
440
  platform?: PlatformName;
258
441
  distribution?: DistributionName;
259
442
  scopes: Scope[];
260
- target: ArtifactTarget;
261
443
  kind?: DynamicArtifactKind;
262
444
  projectManagedKind?: CodexProjectManagedKind;
263
445
  states: ArtifactState[];
@@ -267,7 +449,15 @@ export interface PluginArtifactTargetDefinition {
267
449
  skillKey?: string;
268
450
  sourceDirs?: string[];
269
451
  runtimeImports?: ArtifactRuntimeImportDefinition[];
452
+ runtimeConfig?: import('./runtime-config.js').PluginRuntimeConfigDeclaration;
270
453
  }
454
+ export type PluginArtifactTargetDefinition = PluginArtifactTargetDefinitionBase & {
455
+ target: 'codex.skill';
456
+ delivery: CodexSkillDelivery;
457
+ } | PluginArtifactTargetDefinitionBase & {
458
+ target: Exclude<ArtifactTarget, 'codex.skill'>;
459
+ delivery?: never;
460
+ };
271
461
  export interface PluginArtifactsConfig {
272
462
  targets?: PluginArtifactTargetDefinition[];
273
463
  }
@@ -277,15 +467,14 @@ export interface PluginAgentSkillsDistribution {
277
467
  export interface PluginDistributionsConfig {
278
468
  agentSkills?: PluginAgentSkillsDistribution;
279
469
  }
280
- export interface PluginCompatibility {
470
+ export interface PluginRequirements {
281
471
  aw: {
282
- minVersion: CliVersion;
472
+ capabilities?: string[];
283
473
  };
284
474
  }
285
- export type PluginManifestSource = PluginManifestSourceV1;
286
- export type NormalizedPluginManifest = Omit<PluginManifestSourceV1, 'schemaVersion' | 'compatibility' | 'extensions' | 'artifacts' | 'buildConfig' | 'scripts' | 'config'> & {
287
- schemaVersion: 1;
288
- compatibility: PluginCompatibility;
475
+ export type PluginManifestSource = PluginManifestSourceV3;
476
+ export type NormalizedPluginManifest = Omit<PluginManifestSourceV3, 'requires' | 'extensions' | 'artifacts' | 'buildConfig' | 'scripts' | 'config'> & {
477
+ requires?: PluginRequirements;
289
478
  extensions?: PluginExtensions;
290
479
  artifacts?: PluginArtifactsConfig;
291
480
  buildConfig?: BuildConfig;
@@ -295,6 +484,7 @@ export type NormalizedPluginManifest = Omit<PluginManifestSourceV1, 'schemaVersi
295
484
  export interface PluginMeta {
296
485
  sourceId?: CatalogSourceId;
297
486
  sourceIdentity?: SourceIdentity;
487
+ catalogLogicalIdentity?: string;
298
488
  pluginId?: PluginId;
299
489
  marketplaceName?: string;
300
490
  rootDir: string;
@@ -326,12 +516,13 @@ export interface CatalogManifestEntry {
326
516
  tags?: string[];
327
517
  strict: boolean;
328
518
  policy: MarketplacePolicy;
329
- compatibility: PluginCompatibility;
519
+ dependencies: PluginId[];
520
+ requires: PluginRequirements;
330
521
  source: string;
331
522
  artifactDigest: string;
332
523
  manifestDigest: string;
333
524
  }
334
- export interface CatalogManifestV4Entry extends CatalogManifestEntry {
525
+ export interface CatalogManifestV7Entry extends CatalogManifestEntry {
335
526
  name: PluginId;
336
527
  contentDigest: string;
337
528
  }
@@ -339,29 +530,25 @@ export interface CatalogMarketplaceIdentity {
339
530
  owner: MarketplaceOwner;
340
531
  interface: MarketplaceInterfaceMeta;
341
532
  }
342
- export type CatalogManifestV4Release = {
533
+ export type CatalogManifestV7Release = {
343
534
  state: 'development';
344
535
  } | {
345
536
  state: 'published';
346
- targetVersion: string;
347
- planId: string;
348
537
  sourceHead: string;
349
- contentDigest: string;
350
538
  };
351
- export interface CatalogManifestV4 {
352
- schemaVersion: 4;
539
+ export interface CatalogManifestV7 {
540
+ schemaVersion: 7;
353
541
  catalogVersion: string;
354
542
  channel: CatalogChannel;
355
- compatibility: PluginCompatibility;
543
+ requires: PluginRequirements;
356
544
  marketplace: CatalogMarketplaceIdentity;
357
- release: CatalogManifestV4Release;
358
- entries: CatalogManifestV4Entry[];
545
+ release: CatalogManifestV7Release;
546
+ entries: CatalogManifestV7Entry[];
359
547
  }
360
548
  export interface PlatformPluginManifest {
361
549
  name: string;
362
550
  version: PluginVersion;
363
551
  description: string;
364
- compatibility: PluginCompatibility;
365
552
  skills?: string;
366
553
  mcpServers?: string;
367
554
  apps?: string;
@@ -426,3 +613,4 @@ export interface ClaudeSkillArtifact extends ArtifactPlanArtifactBase {
426
613
  files?: Record<string, string>;
427
614
  };
428
615
  }
616
+ 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 {};