@lesliechan721/aw-plugin-core 0.1.0-beta.2 → 0.1.0-beta.20
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.
- package/dist/aw-capabilities.d.ts +27 -0
- package/dist/aw-capabilities.js +107 -0
- package/dist/aw-capabilities.js.map +1 -0
- package/dist/catalog-workspace-resolution.d.ts +3 -0
- package/dist/catalog-workspace-resolution.js +34 -0
- package/dist/catalog-workspace-resolution.js.map +1 -0
- package/dist/generated/plugin-manifest-v3.d.ts +675 -0
- package/dist/generated/{plugin-manifest-v1.js → plugin-manifest-v3.js} +1 -1
- package/dist/generated/plugin-manifest-v3.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/manifest-contract.d.ts +3 -6
- package/dist/manifest-contract.js +209 -406
- package/dist/manifest-contract.js.map +1 -1
- package/dist/manifest-type-contract.d.ts +2 -2
- package/dist/manifest.d.ts +10 -8
- package/dist/manifest.js +11 -7
- package/dist/manifest.js.map +1 -1
- package/dist/plugin-authoring-capabilities.d.ts +21 -0
- package/dist/plugin-authoring-capabilities.js +187 -0
- package/dist/plugin-authoring-capabilities.js.map +1 -0
- package/dist/plugin-config.d.ts +13 -0
- package/dist/plugin-config.js +645 -0
- package/dist/plugin-config.js.map +1 -0
- package/dist/plugin-requirements.d.ts +34 -0
- package/dist/plugin-requirements.js +249 -0
- package/dist/plugin-requirements.js.map +1 -0
- package/dist/plugin-script-contract.d.ts +10 -12
- package/dist/plugin-script-contract.js +34 -64
- package/dist/plugin-script-contract.js.map +1 -1
- package/dist/types.d.ts +142 -62
- package/dist/workspace.d.ts +54 -29
- package/dist/workspace.js +497 -269
- package/dist/workspace.js.map +1 -1
- package/package.json +8 -4
- package/schemas/plugin-manifest-v3.json +590 -0
- package/dist/generated/plugin-manifest-v1.d.ts +0 -368
- package/dist/generated/plugin-manifest-v1.js.map +0 -1
- package/dist/plugin-release.d.ts +0 -30
- package/dist/plugin-release.js +0 -187
- package/dist/plugin-release.js.map +0 -1
- package/schemas/plugin-manifest-v1.json +0 -329
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export declare const AW_CAPABILITY_IDS: readonly ["aw.plugin-manifest.v3", "aw.plugin-skills.v1", "aw.plugin-build-config.v1", "aw.plugin-config.v2", "aw.plugin-pre-apply.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-inspection.v1", "aw.review-publication.v1", "aw.catalog-snapshot.v7", "aw.self-check.v1"];
|
|
2
|
+
export type RegisteredAwCapabilityId = typeof AW_CAPABILITY_IDS[number];
|
|
3
|
+
export type AwCapabilityId = string;
|
|
4
|
+
export interface AwCapabilitySupport {
|
|
5
|
+
supported: boolean;
|
|
6
|
+
missing: AwCapabilityId[];
|
|
7
|
+
}
|
|
8
|
+
export declare function assertAwCapabilityId(value: unknown, fieldName?: string): asserts value is AwCapabilityId;
|
|
9
|
+
export declare function normalizeAwCapabilities(values: readonly unknown[], fieldName?: string): AwCapabilityId[];
|
|
10
|
+
export declare function getAwCapabilityRegistry(): readonly RegisteredAwCapabilityId[];
|
|
11
|
+
export declare function computeAwCapabilitySetDigest(values: readonly unknown[]): string;
|
|
12
|
+
export declare function checkAwCapabilitySupport(required: readonly unknown[], implemented: readonly unknown[]): AwCapabilitySupport;
|
|
13
|
+
export interface AwPluginRequirementsReceiptV1 {
|
|
14
|
+
schemaVersion: 1;
|
|
15
|
+
kind: 'aw-plugin-requirements';
|
|
16
|
+
plugin: {
|
|
17
|
+
name: string;
|
|
18
|
+
version: string;
|
|
19
|
+
};
|
|
20
|
+
requiredCapabilities: AwCapabilityId[];
|
|
21
|
+
digest: string;
|
|
22
|
+
}
|
|
23
|
+
export declare function createAwPluginRequirementsReceipt(plugin: {
|
|
24
|
+
name: string;
|
|
25
|
+
version: string;
|
|
26
|
+
}, requiredCapabilities: readonly unknown[]): AwPluginRequirementsReceiptV1;
|
|
27
|
+
export declare function parseAwPluginRequirementsReceipt(value: unknown): AwPluginRequirementsReceiptV1;
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
export const AW_CAPABILITY_IDS = [
|
|
3
|
+
'aw.plugin-manifest.v3',
|
|
4
|
+
'aw.plugin-skills.v1',
|
|
5
|
+
'aw.plugin-build-config.v1',
|
|
6
|
+
'aw.plugin-config.v2',
|
|
7
|
+
'aw.plugin-pre-apply.v1',
|
|
8
|
+
'aw.dynamic-artifacts.v2',
|
|
9
|
+
'aw.portable-skills.v1',
|
|
10
|
+
'aw.runtime-imports.v1',
|
|
11
|
+
'aw.skill-validation.v1',
|
|
12
|
+
'aw.skill-eval.v2',
|
|
13
|
+
'aw.plugin-authoring.v1',
|
|
14
|
+
'aw.catalog-authoring.v1',
|
|
15
|
+
'aw.catalog-source.v2',
|
|
16
|
+
'aw.catalog-dev-source.v1',
|
|
17
|
+
'aw.catalog-publication.v1',
|
|
18
|
+
'aw.review-inspection.v1',
|
|
19
|
+
'aw.review-publication.v1',
|
|
20
|
+
'aw.catalog-snapshot.v7',
|
|
21
|
+
'aw.self-check.v1',
|
|
22
|
+
];
|
|
23
|
+
const CAPABILITY_ID_PATTERN = /^aw\.[a-z0-9]+(?:-[a-z0-9]+)*(?:\.[a-z0-9]+(?:-[a-z0-9]+)*)*\.v[1-9][0-9]*$/u;
|
|
24
|
+
const CAPABILITY_SET_DIGEST_DOMAIN = 'aw-capability-set-v1\0';
|
|
25
|
+
const PLUGIN_NAME_PATTERN = /^[a-z0-9]+(?:-[a-z0-9]+)*$/u;
|
|
26
|
+
const STRICT_SEMVER_PATTERN = /^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)(?:-((?:0|[1-9][0-9]*|(?:[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*))(?:\.(?:0|[1-9][0-9]*|(?:[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*)))*))?(?:\+([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?$/u;
|
|
27
|
+
export function assertAwCapabilityId(value, fieldName = 'capability') {
|
|
28
|
+
if (typeof value !== 'string' || !CAPABILITY_ID_PATTERN.test(value)) {
|
|
29
|
+
throw new Error(`Invalid ${fieldName}: expected an AW capability ID.`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export function normalizeAwCapabilities(values, fieldName = 'capabilities') {
|
|
33
|
+
const normalized = new Set();
|
|
34
|
+
values.forEach((value, index) => {
|
|
35
|
+
assertAwCapabilityId(value, `${fieldName}[${index}]`);
|
|
36
|
+
normalized.add(value);
|
|
37
|
+
});
|
|
38
|
+
return [...normalized].sort((left, right) => left < right ? -1 : left > right ? 1 : 0);
|
|
39
|
+
}
|
|
40
|
+
export function getAwCapabilityRegistry() {
|
|
41
|
+
const normalized = normalizeAwCapabilities(AW_CAPABILITY_IDS);
|
|
42
|
+
if (normalized.length !== AW_CAPABILITY_IDS.length) {
|
|
43
|
+
throw new Error('Invalid AW capability registry: capability IDs must be unique.');
|
|
44
|
+
}
|
|
45
|
+
return AW_CAPABILITY_IDS;
|
|
46
|
+
}
|
|
47
|
+
export function computeAwCapabilitySetDigest(values) {
|
|
48
|
+
const canonical = JSON.stringify(normalizeAwCapabilities(values));
|
|
49
|
+
return `sha256:${createHash('sha256').update(CAPABILITY_SET_DIGEST_DOMAIN).update(canonical).digest('hex')}`;
|
|
50
|
+
}
|
|
51
|
+
export function checkAwCapabilitySupport(required, implemented) {
|
|
52
|
+
const supported = new Set(normalizeAwCapabilities(implemented, 'implementedCapabilities'));
|
|
53
|
+
const missing = normalizeAwCapabilities(required, 'requiredCapabilities')
|
|
54
|
+
.filter((capability) => !supported.has(capability));
|
|
55
|
+
return { supported: missing.length === 0, missing };
|
|
56
|
+
}
|
|
57
|
+
export function createAwPluginRequirementsReceipt(plugin, requiredCapabilities) {
|
|
58
|
+
const normalized = normalizeAwCapabilities(requiredCapabilities);
|
|
59
|
+
return {
|
|
60
|
+
schemaVersion: 1,
|
|
61
|
+
kind: 'aw-plugin-requirements',
|
|
62
|
+
plugin,
|
|
63
|
+
requiredCapabilities: normalized,
|
|
64
|
+
digest: computeAwCapabilitySetDigest(normalized),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
function assertRecord(value, fieldName) {
|
|
68
|
+
if (!value || typeof value !== 'object' || Array.isArray(value)) {
|
|
69
|
+
throw new Error(`Invalid ${fieldName}: expected an object.`);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
function assertExactKeys(value, keys, fieldName) {
|
|
73
|
+
const extras = Object.keys(value).filter((key) => !keys.includes(key));
|
|
74
|
+
if (extras.length > 0)
|
|
75
|
+
throw new Error(`Invalid ${fieldName}: unknown field ${JSON.stringify(extras[0])}.`);
|
|
76
|
+
}
|
|
77
|
+
export function parseAwPluginRequirementsReceipt(value) {
|
|
78
|
+
assertRecord(value, 'AW plugin requirements receipt');
|
|
79
|
+
assertExactKeys(value, ['schemaVersion', 'kind', 'plugin', 'requiredCapabilities', 'digest'], 'AW plugin requirements receipt');
|
|
80
|
+
if (value.schemaVersion !== 1)
|
|
81
|
+
throw new Error('Invalid AW plugin requirements receipt.schemaVersion: expected 1.');
|
|
82
|
+
if (value.kind !== 'aw-plugin-requirements')
|
|
83
|
+
throw new Error('Invalid AW plugin requirements receipt.kind.');
|
|
84
|
+
assertRecord(value.plugin, 'AW plugin requirements receipt.plugin');
|
|
85
|
+
assertExactKeys(value.plugin, ['name', 'version'], 'AW plugin requirements receipt.plugin');
|
|
86
|
+
if (typeof value.plugin.name !== 'string' || !PLUGIN_NAME_PATTERN.test(value.plugin.name)) {
|
|
87
|
+
throw new Error('Invalid AW plugin requirements receipt.plugin.name.');
|
|
88
|
+
}
|
|
89
|
+
if (typeof value.plugin.version !== 'string' || !STRICT_SEMVER_PATTERN.test(value.plugin.version)) {
|
|
90
|
+
throw new Error('Invalid AW plugin requirements receipt.plugin.version.');
|
|
91
|
+
}
|
|
92
|
+
if (!Array.isArray(value.requiredCapabilities)) {
|
|
93
|
+
throw new Error('Invalid AW plugin requirements receipt.requiredCapabilities: expected an array.');
|
|
94
|
+
}
|
|
95
|
+
const requiredCapabilities = normalizeAwCapabilities(value.requiredCapabilities, 'AW plugin requirements receipt.requiredCapabilities');
|
|
96
|
+
if (typeof value.digest !== 'string' || value.digest !== computeAwCapabilitySetDigest(requiredCapabilities)) {
|
|
97
|
+
throw new Error('Invalid AW plugin requirements receipt.digest.');
|
|
98
|
+
}
|
|
99
|
+
return {
|
|
100
|
+
schemaVersion: 1,
|
|
101
|
+
kind: 'aw-plugin-requirements',
|
|
102
|
+
plugin: { name: value.plugin.name, version: value.plugin.version },
|
|
103
|
+
requiredCapabilities,
|
|
104
|
+
digest: value.digest,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=aw-capabilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aw-capabilities.js","sourceRoot":"","sources":["../src/aw-capabilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import fs from 'fs-extra';
|
|
3
|
+
import { CATALOG_WORKSPACE_MARKER_FILENAME, readCatalogWorkspaceMarker, } from './workspace.js';
|
|
4
|
+
async function startDirectory(value) {
|
|
5
|
+
const resolved = path.resolve(value);
|
|
6
|
+
const stat = await fs.lstat(resolved).catch((error) => {
|
|
7
|
+
if (error.code === 'ENOENT')
|
|
8
|
+
return null;
|
|
9
|
+
throw error;
|
|
10
|
+
});
|
|
11
|
+
if (stat?.isSymbolicLink())
|
|
12
|
+
throw new Error(`Catalog Workspace discovery path must not be a symbolic link: ${resolved}`);
|
|
13
|
+
return stat?.isFile() ? path.dirname(resolved) : resolved;
|
|
14
|
+
}
|
|
15
|
+
export async function findNearestCatalogWorkspaceRoot(options) {
|
|
16
|
+
let current = await startDirectory(options.from);
|
|
17
|
+
for (;;) {
|
|
18
|
+
const markerPath = path.join(current, CATALOG_WORKSPACE_MARKER_FILENAME);
|
|
19
|
+
const markerStat = await fs.lstat(markerPath).catch((error) => {
|
|
20
|
+
if (error.code === 'ENOENT')
|
|
21
|
+
return null;
|
|
22
|
+
throw error;
|
|
23
|
+
});
|
|
24
|
+
if (markerStat) {
|
|
25
|
+
await readCatalogWorkspaceMarker(current);
|
|
26
|
+
return fs.realpath(current);
|
|
27
|
+
}
|
|
28
|
+
const parent = path.dirname(current);
|
|
29
|
+
if (parent === current)
|
|
30
|
+
return null;
|
|
31
|
+
current = parent;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=catalog-workspace-resolution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|