@lesliechan721/aw-plugin-core 0.1.0-beta.8 → 0.1.0-beta.9

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.
@@ -1,4 +1,4 @@
1
- export declare const AW_CAPABILITY_IDS: readonly ["aw.plugin-manifest.v2", "aw.plugin-skills.v1", "aw.plugin-build-config.v1", "aw.plugin-config.v1", "aw.plugin-lifecycle.v1", "aw.dynamic-artifacts.v2", "aw.portable-skills.v1", "aw.runtime-imports.v1", "aw.skill-validation.v1", "aw.plugin-authoring.v1", "aw.catalog-context.v1", "aw.catalog-authoring.v1", "aw.catalog-source.v2", "aw.catalog-dev-source.v1", "aw.catalog-publication.v1", "aw.catalog-snapshot.v5", "aw.self-check.v1"];
1
+ export declare const AW_CAPABILITY_IDS: readonly ["aw.plugin-manifest.v2", "aw.plugin-skills.v1", "aw.plugin-build-config.v1", "aw.plugin-config.v1", "aw.plugin-lifecycle.v1", "aw.dynamic-artifacts.v2", "aw.portable-skills.v1", "aw.runtime-imports.v1", "aw.skill-validation.v1", "aw.skill-eval.v2", "aw.plugin-authoring.v1", "aw.catalog-authoring.v1", "aw.catalog-source.v2", "aw.catalog-dev-source.v1", "aw.catalog-publication.v1", "aw.review-publication.v1", "aw.catalog-snapshot.v6", "aw.self-check.v1"];
2
2
  export type RegisteredAwCapabilityId = typeof AW_CAPABILITY_IDS[number];
3
3
  export type AwCapabilityId = string;
4
4
  export interface AwCapabilitySupport {
@@ -9,13 +9,14 @@ export const AW_CAPABILITY_IDS = [
9
9
  'aw.portable-skills.v1',
10
10
  'aw.runtime-imports.v1',
11
11
  'aw.skill-validation.v1',
12
+ 'aw.skill-eval.v2',
12
13
  'aw.plugin-authoring.v1',
13
- 'aw.catalog-context.v1',
14
14
  'aw.catalog-authoring.v1',
15
15
  'aw.catalog-source.v2',
16
16
  'aw.catalog-dev-source.v1',
17
17
  'aw.catalog-publication.v1',
18
- 'aw.catalog-snapshot.v5',
18
+ 'aw.review-publication.v1',
19
+ 'aw.catalog-snapshot.v6',
19
20
  'aw.self-check.v1',
20
21
  ];
21
22
  const CAPABILITY_ID_PATTERN = /^aw\.[a-z0-9]+(?:-[a-z0-9]+)*(?:\.[a-z0-9]+(?:-[a-z0-9]+)*)*\.v[1-9][0-9]*$/u;
@@ -1 +1 @@
1
- {"version":3,"file":"aw-capabilities.js","sourceRoot":"","sources":["../src/aw-capabilities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aw-capabilities.js","sourceRoot":"","sources":["../src/aw-capabilities.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,3 @@
1
- export type CatalogWorkspaceResolvedFrom = 'explicit' | 'workspace-marker' | 'git-worktree' | 'cwd';
2
- export interface CatalogWorkspaceResolution {
3
- workspaceRoot: string;
4
- workspaceRootResolvedFrom: CatalogWorkspaceResolvedFrom;
5
- }
6
- export declare function resolveCatalogWorkspaceRoot(options: {
7
- cwd: string;
8
- explicitRoot?: string;
9
- mode: 'existing' | 'initialize';
10
- }): Promise<CatalogWorkspaceResolution>;
1
+ export declare function findNearestCatalogWorkspaceRoot(options: {
2
+ from: string;
3
+ }): Promise<string | null>;
@@ -1,9 +1,6 @@
1
- import { execFile } from 'node:child_process';
2
1
  import path from 'node:path';
3
- import { promisify } from 'node:util';
4
2
  import fs from 'fs-extra';
5
- import { CATALOG_WORKSPACE_MARKER_FILENAME } from './workspace.js';
6
- const execFileAsync = promisify(execFile);
3
+ import { CATALOG_WORKSPACE_MARKER_FILENAME, readCatalogWorkspaceMarker, } from './workspace.js';
7
4
  async function startDirectory(value) {
8
5
  const resolved = path.resolve(value);
9
6
  const stat = await fs.lstat(resolved).catch((error) => {
@@ -15,37 +12,8 @@ async function startDirectory(value) {
15
12
  throw new Error(`Catalog Workspace discovery path must not be a symbolic link: ${resolved}`);
16
13
  return stat?.isFile() ? path.dirname(resolved) : resolved;
17
14
  }
18
- async function validateMarker(root) {
19
- const markerPath = path.join(root, CATALOG_WORKSPACE_MARKER_FILENAME);
20
- const stat = await fs.lstat(markerPath).catch((error) => {
21
- if (error.code === 'ENOENT')
22
- return null;
23
- throw error;
24
- });
25
- if (!stat?.isFile() || stat.isSymbolicLink()) {
26
- throw new Error(`Invalid Catalog Workspace marker: ${markerPath}`);
27
- }
28
- let marker;
29
- try {
30
- marker = await fs.readJson(markerPath);
31
- }
32
- catch {
33
- throw new Error(`Invalid Catalog Workspace marker: ${markerPath}`);
34
- }
35
- const record = marker;
36
- if (!record
37
- || typeof record !== 'object'
38
- || Array.isArray(record)
39
- || Object.keys(record).sort().join('\0') !== ['kind', 'schemaVersion', 'workspaceIdentity'].join('\0')
40
- || record.schemaVersion !== 1
41
- || record.kind !== 'aw-catalog-workspace'
42
- || typeof record.workspaceIdentity !== 'string'
43
- || record.workspaceIdentity.trim() === '') {
44
- throw new Error(`Invalid Catalog Workspace marker: ${markerPath}`);
45
- }
46
- }
47
- async function findAncestorWorkspace(from) {
48
- let current = await startDirectory(from);
15
+ export async function findNearestCatalogWorkspaceRoot(options) {
16
+ let current = await startDirectory(options.from);
49
17
  for (;;) {
50
18
  const markerPath = path.join(current, CATALOG_WORKSPACE_MARKER_FILENAME);
51
19
  const markerStat = await fs.lstat(markerPath).catch((error) => {
@@ -54,7 +22,7 @@ async function findAncestorWorkspace(from) {
54
22
  throw error;
55
23
  });
56
24
  if (markerStat) {
57
- await validateMarker(current);
25
+ await readCatalogWorkspaceMarker(current);
58
26
  return fs.realpath(current);
59
27
  }
60
28
  const parent = path.dirname(current);
@@ -63,41 +31,4 @@ async function findAncestorWorkspace(from) {
63
31
  current = parent;
64
32
  }
65
33
  }
66
- async function findGitWorktreeRoot(cwd) {
67
- try {
68
- const env = { ...process.env };
69
- delete env.GIT_DIR;
70
- delete env.GIT_WORK_TREE;
71
- delete env.GIT_COMMON_DIR;
72
- env.GIT_OPTIONAL_LOCKS = '0';
73
- const result = await execFileAsync('git', ['rev-parse', '--show-toplevel'], {
74
- cwd: await startDirectory(cwd),
75
- env,
76
- encoding: 'utf8',
77
- });
78
- return fs.realpath(result.stdout.trim());
79
- }
80
- catch {
81
- return null;
82
- }
83
- }
84
- export async function resolveCatalogWorkspaceRoot(options) {
85
- if (options.explicitRoot !== undefined) {
86
- const workspaceRoot = path.resolve(options.cwd, options.explicitRoot);
87
- if (options.mode === 'existing')
88
- await validateMarker(workspaceRoot);
89
- return { workspaceRoot, workspaceRootResolvedFrom: 'explicit' };
90
- }
91
- const ancestor = await findAncestorWorkspace(options.cwd);
92
- if (ancestor) {
93
- return { workspaceRoot: ancestor, workspaceRootResolvedFrom: 'workspace-marker' };
94
- }
95
- if (options.mode === 'existing') {
96
- throw new Error(`Catalog Workspace marker not found from: ${path.resolve(options.cwd)}`);
97
- }
98
- const gitRoot = await findGitWorktreeRoot(options.cwd);
99
- if (gitRoot)
100
- return { workspaceRoot: gitRoot, workspaceRootResolvedFrom: 'git-worktree' };
101
- return { workspaceRoot: await startDirectory(options.cwd), workspaceRootResolvedFrom: 'cwd' };
102
- }
103
34
  //# sourceMappingURL=catalog-workspace-resolution.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"catalog-workspace-resolution.js","sourceRoot":"","sources":["../src/catalog-workspace-resolution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog-workspace-resolution.js","sourceRoot":"","sources":["../src/catalog-workspace-resolution.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EAAE,MAAM,UAAU,CAAA;AAEzB,OAAO,EACL,iCAAiC,EACjC,0BAA0B,GAC3B,MAAM,gBAAgB,CAAA;AAEvB,KAAK,UAAU,cAAc,CAAC,KAAa;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IACpC,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,KAA4B,EAAE,EAAE;QAC3E,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAA;QACxC,MAAM,KAAK,CAAA;IACb,CAAC,CAAC,CAAA;IACF,IAAI,IAAI,EAAE,cAAc,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,iEAAiE,QAAQ,EAAE,CAAC,CAAA;IACxH,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;AAC3D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,+BAA+B,CAAC,OAErD;IACC,IAAI,OAAO,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAChD,SAAS,CAAC;QACR,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,iCAAiC,CAAC,CAAA;QACxE,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,KAA4B,EAAE,EAAE;YACnF,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAA;YACxC,MAAM,KAAK,CAAA;QACb,CAAC,CAAC,CAAA;QACF,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,0BAA0B,CAAC,OAAO,CAAC,CAAA;YACzC,OAAO,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QAC7B,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QACpC,IAAI,MAAM,KAAK,OAAO;YAAE,OAAO,IAAI,CAAA;QACnC,OAAO,GAAG,MAAM,CAAA;IAClB,CAAC;AACH,CAAC"}
@@ -13,6 +13,7 @@ export type PluginPath = string;
13
13
  * via the `definition` "stringArray".
14
14
  */
15
15
  export type StringArray = string[];
16
+ export type Capabilities = string[];
16
17
  /**
17
18
  * This interface was referenced by `PluginManifestSourceV2`'s JSON-Schema
18
19
  * via the `definition` "lifecycleDefinition".
@@ -202,6 +203,8 @@ export interface ArtifactTarget {
202
203
  providerPluginId: string;
203
204
  providerVersion: Semver;
204
205
  source: string;
206
+ requiredCapabilities: Capabilities;
207
+ capabilitySetDigest: string;
205
208
  };
206
209
  }[];
207
210
  }
@@ -236,6 +239,7 @@ export interface BuildConfig {
236
239
  runtimeExports?: {
237
240
  name: string;
238
241
  source: string;
242
+ requires: RuntimeExportRequires;
239
243
  }[];
240
244
  buildImports?: {
241
245
  plugin: string;
@@ -272,6 +276,15 @@ export interface FileRules {
272
276
  include: StringArray;
273
277
  exclude: StringArray;
274
278
  }
279
+ /**
280
+ * This interface was referenced by `PluginManifestSourceV2`'s JSON-Schema
281
+ * via the `definition` "runtimeExportRequires".
282
+ */
283
+ export interface RuntimeExportRequires {
284
+ aw: {
285
+ capabilities: Capabilities;
286
+ };
287
+ }
275
288
  /**
276
289
  * This interface was referenced by `PluginManifestSourceV2`'s JSON-Schema
277
290
  * via the `definition` "importReference".
package/dist/index.d.ts CHANGED
@@ -2,4 +2,3 @@ export * from './manifest.js';
2
2
  export type { PluginManifestSourceV2 } from './generated/plugin-manifest-v2.js';
3
3
  export * from './workspace.js';
4
4
  export * from './catalog-workspace-resolution.js';
5
- export * from './plugin-release.js';
package/dist/index.js CHANGED
@@ -1,5 +1,4 @@
1
1
  export * from './manifest.js';
2
2
  export * from './workspace.js';
3
3
  export * from './catalog-workspace-resolution.js';
4
- export * from './plugin-release.js';
5
4
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAE7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mCAAmC,CAAA;AACjD,cAAc,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAE7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mCAAmC,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import path from 'node:path';
2
2
  import { isDeepStrictEqual } from 'node:util';
3
3
  import fs from 'fs-extra';
4
- import { normalizeAwCapabilities } from './aw-capabilities.js';
4
+ import { computeAwCapabilitySetDigest, normalizeAwCapabilities, } from './aw-capabilities.js';
5
5
  import { normalizePluginManifestSchemaVersion, PLUGIN_MANIFEST_SCHEMA_VERSION, SOURCE_PLUGIN_MANIFEST_CONTRACT_VERSION, } from './manifest.js';
6
6
  import { readJsonFile } from './read-json.js';
7
7
  import { parsePermissionCommand } from './permission-command.js';
@@ -615,15 +615,20 @@ function normalizeRuntimeExports(pluginRoot, value, fieldName) {
615
615
  return value.map((entry, index) => {
616
616
  const entryField = `${fieldName}[${index}]`;
617
617
  const input = assertObject(entry, entryField);
618
- assertAllowedKeys(input, entryField, ['name', 'source']);
618
+ assertAllowedKeys(input, entryField, ['name', 'source', 'requires']);
619
619
  const name = normalizeRuntimeExportName(input.name, `${entryField}.name`);
620
620
  if (names.has(name)) {
621
621
  throw new Error(`Invalid ${fieldName}: duplicate export name "${name}".`);
622
622
  }
623
623
  names.add(name);
624
+ const requires = normalizePluginRequirements(input.requires, `${entryField}.requires`, { allowMissing: false });
625
+ if (requires.aw.capabilities === undefined) {
626
+ throw new Error(`Invalid ${entryField}.requires.aw.capabilities: expected an array.`);
627
+ }
624
628
  return {
625
629
  name,
626
630
  source: normalizeCanonicalPluginFilePath(pluginRoot, input.source, `${entryField}.source`),
631
+ requires: { aw: { capabilities: requires.aw.capabilities } },
627
632
  };
628
633
  });
629
634
  }
@@ -1390,13 +1395,24 @@ function normalizeArtifactRuntimeImports(value, fieldName, reservedImports) {
1390
1395
  const resolvedInput = assertObject(input.resolved, `${entryField}.resolved`);
1391
1396
  assertAllowedKeys(resolvedInput, `${entryField}.resolved`, [
1392
1397
  'path', 'digest', 'providerPluginId', 'providerVersion', 'source',
1398
+ 'requiredCapabilities', 'capabilitySetDigest',
1393
1399
  ]);
1400
+ if (!Array.isArray(resolvedInput.requiredCapabilities)) {
1401
+ throw new Error(`Invalid ${entryField}.resolved.requiredCapabilities: expected an array.`);
1402
+ }
1403
+ const requiredCapabilities = normalizeAwCapabilities(resolvedInput.requiredCapabilities, `${entryField}.resolved.requiredCapabilities`);
1404
+ const capabilitySetDigest = ensureDigestString(resolvedInput.capabilitySetDigest, `${entryField}.resolved.capabilitySetDigest`);
1405
+ if (capabilitySetDigest !== computeAwCapabilitySetDigest(requiredCapabilities)) {
1406
+ throw new Error(`Invalid ${entryField}.resolved.capabilitySetDigest: digest does not match requiredCapabilities.`);
1407
+ }
1394
1408
  resolved = {
1395
1409
  path: normalizePluginChildPath('', ensureString(resolvedInput.path, `${entryField}.resolved.path`), `${entryField}.resolved.path`),
1396
1410
  digest: ensureDigestString(resolvedInput.digest, `${entryField}.resolved.digest`),
1397
1411
  providerPluginId: ensureString(resolvedInput.providerPluginId, `${entryField}.resolved.providerPluginId`),
1398
1412
  providerVersion: assertStrictSemVer(resolvedInput.providerVersion, `${entryField}.resolved.providerVersion`),
1399
1413
  source: ensureString(resolvedInput.source, `${entryField}.resolved.source`),
1414
+ requiredCapabilities,
1415
+ capabilitySetDigest,
1400
1416
  };
1401
1417
  }
1402
1418
  return {
@@ -2520,6 +2536,9 @@ export function createBundleSourceManifest(plugin, requiredCapabilities) {
2520
2536
  return {
2521
2537
  ...plugin.manifest,
2522
2538
  buildConfig,
2539
+ distributions: plugin.manifest.distributions
2540
+ ? structuredClone(plugin.manifest.distributions)
2541
+ : undefined,
2523
2542
  requires: requiredCapabilities === undefined
2524
2543
  ? structuredClone(plugin.manifest.requires)
2525
2544
  : { aw: { capabilities: normalizeAwCapabilities(requiredCapabilities) } },