@lesliechan721/aw-plugin-core 0.1.0-beta.4 → 0.1.0-beta.41
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 +115 -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 +1350 -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 +227 -406
- package/dist/manifest-contract.js.map +1 -1
- package/dist/manifest-type-contract.d.ts +2 -2
- package/dist/manifest.d.ts +11 -8
- package/dist/manifest.js +17 -7
- package/dist/manifest.js.map +1 -1
- package/dist/plugin-authoring-capabilities.d.ts +21 -0
- package/dist/plugin-authoring-capabilities.js +210 -0
- package/dist/plugin-authoring-capabilities.js.map +1 -0
- package/dist/plugin-config.d.ts +39 -0
- package/dist/plugin-config.js +1320 -0
- package/dist/plugin-config.js.map +1 -0
- package/dist/plugin-requirements.d.ts +34 -0
- package/dist/plugin-requirements.js +294 -0
- package/dist/plugin-requirements.js.map +1 -0
- package/dist/plugin-script-contract.d.ts +11 -12
- package/dist/plugin-script-contract.js +42 -64
- package/dist/plugin-script-contract.js.map +1 -1
- package/dist/runtime-config.d.ts +38 -0
- package/dist/runtime-config.js +31 -0
- package/dist/runtime-config.js.map +1 -0
- package/dist/types.d.ts +249 -61
- 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 +2122 -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
package/dist/manifest.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { Ajv2020 } from 'ajv/dist/2020.js';
|
|
2
|
-
import schema from '../schemas/plugin-manifest-
|
|
3
|
-
export const PLUGIN_MANIFEST_SCHEMA_VERSION =
|
|
4
|
-
export const SOURCE_PLUGIN_MANIFEST_CONTRACT_VERSION =
|
|
2
|
+
import schema from '../schemas/plugin-manifest-v3.json' with { type: 'json' };
|
|
3
|
+
export const PLUGIN_MANIFEST_SCHEMA_VERSION = 3;
|
|
4
|
+
export const SOURCE_PLUGIN_MANIFEST_CONTRACT_VERSION = 16;
|
|
5
5
|
const ajv = new Ajv2020({
|
|
6
6
|
allErrors: true,
|
|
7
7
|
strict: true,
|
|
8
8
|
});
|
|
9
|
-
const
|
|
9
|
+
const validateV3 = ajv.compile(schema);
|
|
10
10
|
export class PluginManifestStructureError extends Error {
|
|
11
11
|
issues;
|
|
12
12
|
constructor(message, issues = []) {
|
|
@@ -18,7 +18,7 @@ export class PluginManifestStructureError extends Error {
|
|
|
18
18
|
function formatIssue(issue) {
|
|
19
19
|
const location = issue.instancePath || '/';
|
|
20
20
|
if (issue.keyword === 'pattern'
|
|
21
|
-
&&
|
|
21
|
+
&& location === '/version') {
|
|
22
22
|
return `${location} must match pattern (expected a strict SemVer 2.0.0 string)`;
|
|
23
23
|
}
|
|
24
24
|
return `${location} ${issue.message ?? 'is invalid'}`;
|
|
@@ -31,8 +31,13 @@ export function assertPluginManifestStructure(value) {
|
|
|
31
31
|
&& value.schemaVersion !== PLUGIN_MANIFEST_SCHEMA_VERSION) {
|
|
32
32
|
throw new PluginManifestStructureError(`Unsupported plugin manifest schemaVersion: expected ${PLUGIN_MANIFEST_SCHEMA_VERSION}.`);
|
|
33
33
|
}
|
|
34
|
-
if (!
|
|
35
|
-
const issues =
|
|
34
|
+
if (!validateV3(value)) {
|
|
35
|
+
const issues = validateV3.errors ?? [];
|
|
36
|
+
if (issues.some((issue) => issue.instancePath.endsWith('/runtimeConfig')
|
|
37
|
+
&& issue.keyword === 'additionalProperties'
|
|
38
|
+
&& ['resourceVersion', 'artifactIds'].includes(issue.params.additionalProperty))) {
|
|
39
|
+
throw new PluginManifestStructureError('runtimeConfigMigrationRequired: Remove runtimeConfig.resourceVersion and runtimeConfig.artifactIds; keep only keys and require aw.installed-runtime-config.v2. Rebuild, then sync or reinstall.', issues);
|
|
40
|
+
}
|
|
36
41
|
throw new PluginManifestStructureError(`Invalid plugin manifest structure: ${issues.map(formatIssue).join('; ')}`, issues);
|
|
37
42
|
}
|
|
38
43
|
}
|
|
@@ -50,7 +55,12 @@ export * from './permission-command.js';
|
|
|
50
55
|
export * from './platform-entries.js';
|
|
51
56
|
export * from './platform-support.js';
|
|
52
57
|
export * from './runtime-export-source.js';
|
|
58
|
+
export * from './runtime-config.js';
|
|
53
59
|
export * from './plugin-script-contract.js';
|
|
60
|
+
export * from './plugin-authoring-capabilities.js';
|
|
61
|
+
export * from './plugin-config.js';
|
|
62
|
+
export * from './aw-capabilities.js';
|
|
63
|
+
export * from './plugin-requirements.js';
|
|
54
64
|
export * from './portable-skill-validation.js';
|
|
55
65
|
export * from './skill-authoring.js';
|
|
56
66
|
export * from './skill-frontmatter-capabilities.js';
|
package/dist/manifest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAoB,MAAM,kBAAkB,CAAA;AAE5D,OAAO,MAAM,MAAM,oCAAoC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AAK7E,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAU,CAAA;AACxD,MAAM,CAAC,MAAM,uCAAuC,GAAG,
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export declare const PLUGIN_AUTHORING_CAPABILITY_SURFACES: readonly ["manifest", "build-config", "extensions", "slash-commands", "mcp-apps", "config", "pre-apply", "artifacts"];
|
|
2
|
+
export type PluginAuthoringCapabilitySurfaceName = (typeof PLUGIN_AUTHORING_CAPABILITY_SURFACES)[number];
|
|
3
|
+
export type PluginAuthoringAcceptedValue = string | number | boolean;
|
|
4
|
+
export interface PluginAuthoringCapabilityEntry {
|
|
5
|
+
field: string;
|
|
6
|
+
type: string;
|
|
7
|
+
required: boolean | string;
|
|
8
|
+
acceptedValues?: readonly PluginAuthoringAcceptedValue[] | string;
|
|
9
|
+
}
|
|
10
|
+
export interface PluginAuthoringCapabilitySurface {
|
|
11
|
+
surface: PluginAuthoringCapabilitySurfaceName;
|
|
12
|
+
entries: readonly PluginAuthoringCapabilityEntry[];
|
|
13
|
+
}
|
|
14
|
+
export interface PluginAuthoringCapabilityRegistry {
|
|
15
|
+
schemaVersion: 1;
|
|
16
|
+
surfaces: Readonly<Record<PluginAuthoringCapabilitySurfaceName, PluginAuthoringCapabilitySurface>>;
|
|
17
|
+
}
|
|
18
|
+
export declare function getPluginAuthoringCapabilities(): PluginAuthoringCapabilityRegistry;
|
|
19
|
+
export declare function getPluginAuthoringCapabilitySurface(surface: PluginAuthoringCapabilitySurfaceName): PluginAuthoringCapabilitySurface;
|
|
20
|
+
export declare function getPluginAuthoringAcceptedValues(surface: PluginAuthoringCapabilitySurfaceName, field: string): readonly PluginAuthoringAcceptedValue[];
|
|
21
|
+
export declare function getPluginCoreVersion(): string;
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
import { PLUGIN_SCRIPT_TIMEOUT_MAX_MS, PLUGIN_SCRIPT_TIMEOUT_MIN_MS, } from './plugin-script-contract.js';
|
|
5
|
+
import { PUBLIC_HOOK_EVENTS } from './hooks-contract.js';
|
|
6
|
+
export const PLUGIN_AUTHORING_CAPABILITY_SURFACES = [
|
|
7
|
+
'manifest',
|
|
8
|
+
'build-config',
|
|
9
|
+
'extensions',
|
|
10
|
+
'slash-commands',
|
|
11
|
+
'mcp-apps',
|
|
12
|
+
'config',
|
|
13
|
+
'pre-apply',
|
|
14
|
+
'artifacts',
|
|
15
|
+
];
|
|
16
|
+
const registry = {
|
|
17
|
+
schemaVersion: 1,
|
|
18
|
+
surfaces: {
|
|
19
|
+
manifest: {
|
|
20
|
+
surface: 'manifest',
|
|
21
|
+
entries: [
|
|
22
|
+
{ field: 'schemaVersion', type: 'literal 3', required: true, acceptedValues: [3] },
|
|
23
|
+
{ field: 'name', type: 'kebab-case string', required: true },
|
|
24
|
+
{ field: 'version', type: 'stable strict SemVer', required: true },
|
|
25
|
+
{ field: 'description', type: 'non-empty string', required: true },
|
|
26
|
+
{ field: 'requires.aw.capabilities', type: 'unique AW capability ID[]', required: false },
|
|
27
|
+
{ field: 'dependencies', type: 'unique plugin-name[]', required: false },
|
|
28
|
+
{ field: 'skills', type: './ plugin-relative path', required: false },
|
|
29
|
+
{ field: 'slashCommands', type: './ plugin-relative path', required: false },
|
|
30
|
+
{ field: 'mcpServers', type: './ plugin-relative path', required: false },
|
|
31
|
+
{ field: 'apps', type: './ plugin-relative path', required: false },
|
|
32
|
+
{ field: 'distributions.agentSkills', type: '{skills?}', required: false },
|
|
33
|
+
{ field: 'distributions.agentSkills.skills', type: './ plugin-relative path', required: false },
|
|
34
|
+
{ field: 'marketplace.category', type: 'non-empty string', required: true },
|
|
35
|
+
{ field: 'marketplace.tags', type: 'string[]', required: false },
|
|
36
|
+
{ field: 'marketplace.strict', type: 'boolean', required: true },
|
|
37
|
+
{ field: 'marketplace.policy.installation', type: 'enum', required: true, acceptedValues: ['AVAILABLE', 'NOT_AVAILABLE', 'INSTALLED_BY_DEFAULT'] },
|
|
38
|
+
{ field: 'marketplace.policy.authentication', type: 'enum', required: true, acceptedValues: ['ON_INSTALL', 'ON_USE'] },
|
|
39
|
+
{ field: 'marketplace.policy.products', type: 'unique enum[]', required: false, acceptedValues: ['CODEX', 'CLAUDE'] },
|
|
40
|
+
{ field: 'interface.displayName', type: 'non-empty string', required: false },
|
|
41
|
+
{ field: 'interface.shortDescription', type: 'non-empty string', required: false },
|
|
42
|
+
{ field: 'interface.capabilities', type: 'string[]', required: false },
|
|
43
|
+
],
|
|
44
|
+
},
|
|
45
|
+
'build-config': {
|
|
46
|
+
surface: 'build-config',
|
|
47
|
+
entries: [
|
|
48
|
+
{ field: 'buildConfig.cacheable', type: 'literal true', required: false, acceptedValues: [true] },
|
|
49
|
+
{ field: 'buildConfig.templates', type: '{vars,include}', required: false },
|
|
50
|
+
{ field: 'buildConfig.templates.vars.<key>', type: '{claude:string|boolean,codex:string|boolean}', required: 'with buildConfig.templates' },
|
|
51
|
+
{ field: 'buildConfig.templates.include', type: 'string[]', required: 'with buildConfig.templates' },
|
|
52
|
+
{ field: 'buildConfig.fileRules', type: 'platform include/exclude object', required: false },
|
|
53
|
+
{ field: 'buildConfig.fileRules.<platform>', type: '{include,exclude}', required: false, acceptedValues: ['claude', 'codex'] },
|
|
54
|
+
{ field: 'buildConfig.manifestOverrides.claude', type: 'object', required: false, acceptedValues: ['outputStyles', 'lspServers', 'userConfig', 'channels'] },
|
|
55
|
+
{ field: 'buildConfig.runtimeExports', type: '{name,source,requires}[]', required: false },
|
|
56
|
+
{ field: 'buildConfig.runtimeExports[].requires.aw.capabilities', type: 'unique AW capability ID[]', required: true },
|
|
57
|
+
{ field: 'buildConfig.buildImports', type: '{plugin,export,env}[]', required: false },
|
|
58
|
+
{ field: 'buildConfig.skillRuntimeFiles', type: '{skill,target,platforms?,distributions?,source|import}[]', required: false },
|
|
59
|
+
{ field: 'buildConfig.skillRuntimeFiles[].platforms', type: 'unique enum[]', required: false, acceptedValues: ['codex', 'claude'] },
|
|
60
|
+
{ field: 'buildConfig.skillRuntimeFiles[].distributions', type: 'unique enum[]', required: false, acceptedValues: ['agent-skills'] },
|
|
61
|
+
{ field: 'buildConfig.generatedSkillRuntimeFiles', type: '{skill,target,distributions?}[]', required: false },
|
|
62
|
+
{ field: 'buildConfig.generatedSkillRuntimeFiles[].distributions', type: 'unique enum[]', required: false, acceptedValues: ['agent-skills'] },
|
|
63
|
+
],
|
|
64
|
+
},
|
|
65
|
+
extensions: {
|
|
66
|
+
surface: 'extensions',
|
|
67
|
+
entries: [
|
|
68
|
+
{ field: 'extensions.instructions', type: '{name,title,content,paths?,agentOverrides?}[]', required: false },
|
|
69
|
+
{ field: 'extensions.permissions', type: '{name,allow?,ask?,deny?,agentOverrides?}[]', required: false },
|
|
70
|
+
{ field: 'extensions.hooks', type: '{event,matcher?,command,agentOverrides?}[]', required: false },
|
|
71
|
+
{ field: 'extensions.hooks[].event', type: 'enum', required: true, acceptedValues: PUBLIC_HOOK_EVENTS },
|
|
72
|
+
{ field: 'extensions.nativeHooks.claude', type: 'native hook[]', required: false },
|
|
73
|
+
{ field: 'extensions.nativeHooks.codex', type: 'native hook[]', required: false },
|
|
74
|
+
{ field: 'extensions.agents', type: '{name,description,prompt,tools?,agentOverrides?}[]', required: false },
|
|
75
|
+
],
|
|
76
|
+
},
|
|
77
|
+
'slash-commands': {
|
|
78
|
+
surface: 'slash-commands',
|
|
79
|
+
entries: [
|
|
80
|
+
{ field: 'description', type: 'string', required: true },
|
|
81
|
+
{ field: 'claude', type: 'frontmatter object', required: false, acceptedValues: ['description', 'allowed-tools', 'model', 'argument-hint', 'shell'] },
|
|
82
|
+
{ field: 'claude.shell', type: 'enum', required: false, acceptedValues: ['bash', 'powershell'] },
|
|
83
|
+
{ field: 'codex.description', type: 'string', required: false },
|
|
84
|
+
{ field: 'codex.interface', type: 'display metadata object', required: false, acceptedValues: ['display_name', 'short_description', 'icon_small', 'icon_large', 'brand_color', 'default_prompt'] },
|
|
85
|
+
{ field: 'codex.generated.policy.allow_implicit_invocation', type: 'literal false', required: true, acceptedValues: [false] },
|
|
86
|
+
],
|
|
87
|
+
},
|
|
88
|
+
'mcp-apps': {
|
|
89
|
+
surface: 'mcp-apps',
|
|
90
|
+
entries: [
|
|
91
|
+
{ field: 'mcpServers.<key>.command', type: 'string', required: 'stdio transport' },
|
|
92
|
+
{ field: 'mcpServers.<key>.args', type: 'string[]', required: false },
|
|
93
|
+
{ field: 'mcpServers.<key>.env', type: 'string map', required: false },
|
|
94
|
+
{ field: 'mcpServers.<key>.headers', type: 'string map', required: false },
|
|
95
|
+
{ field: 'mcpServers.<key>.url', type: 'URL string', required: 'HTTP transport' },
|
|
96
|
+
{ field: 'apps.<key>.id', type: 'non-empty string', required: true },
|
|
97
|
+
],
|
|
98
|
+
},
|
|
99
|
+
config: {
|
|
100
|
+
surface: 'config',
|
|
101
|
+
entries: [
|
|
102
|
+
{ field: 'config.schemaVersion', type: 'literal 3 or 4; omitted for legacy Config v2', required: false, acceptedValues: [3, 4] },
|
|
103
|
+
{ field: 'config.definitions', type: 'local field definition map; at most 64 entries', required: false },
|
|
104
|
+
{ field: 'config.fields.<key>.$ref', type: '#/config/definitions/Name; at most 8 reference edges, including child references; only title/description/default/required overrides', required: false },
|
|
105
|
+
{ field: 'config.fields', type: 'field map; at most 256 entries for v3/v4', required: 'with config' },
|
|
106
|
+
{ field: 'config.fields.<key>.type', type: 'enum', required: 'unless $ref', acceptedValues: ['string', 'number', 'boolean', 'object', 'array'] },
|
|
107
|
+
{ field: 'config.fields.<key>.title', type: 'string', required: false },
|
|
108
|
+
{ field: 'config.fields.<key>.description', type: 'string', required: false },
|
|
109
|
+
{ field: 'config.fields.<key>.default', type: 'string|number|boolean|object|homogeneous array', required: false },
|
|
110
|
+
{ field: 'config.fields.<key>.required', type: 'boolean', required: false },
|
|
111
|
+
{ field: 'config.fields.<key>.sensitive', type: 'literal true; top-level string fields only; incompatible with default or choices', required: false, acceptedValues: [true] },
|
|
112
|
+
{ field: 'config.fields.<key>.choices', type: '{allowCustom,presets}', required: false },
|
|
113
|
+
{ field: 'config.fields.<key>.choices.allowCustom', type: 'boolean', required: 'with choices' },
|
|
114
|
+
{ field: 'config.fields.<key>.choices.presets', type: '{id,title,description?,value,recommended?}[]', required: 'with choices' },
|
|
115
|
+
{ field: 'config.fields.<key>.validation', type: 'type-specific validation object', required: false },
|
|
116
|
+
{ field: 'config.fields.<key>.validation.minItems', type: 'integer 0..128', required: false },
|
|
117
|
+
{ field: 'config.fields.<key>.validation.maxItems', type: 'integer 0..128', required: false },
|
|
118
|
+
{ field: 'config.fields.<key>.validation.uniqueItems', type: 'boolean; default false', required: false },
|
|
119
|
+
{ field: 'config.fields.<key>.validation.uniqueBy', type: 'own fixed scalar property; Config v3/v4 object arrays only', required: false },
|
|
120
|
+
{ field: 'config.fields.<key>.valueRef', type: '{field,key,label?,include?}; non-sensitive scalar; Config v3/v4; source is a fixed-object array with matching uniqueBy and key type; included values are reserved', required: false },
|
|
121
|
+
{ field: 'config.fields.<key>.properties.<property>.valueRef', type: '{field,key,label?,include?}; shallow scalar reference; complete candidate and source dependency validation', required: false },
|
|
122
|
+
{ field: 'config.fields.<key>.items', type: 'one homogeneous scalar or shallow object schema; arrays only in Config v3/v4', required: 'for array field' },
|
|
123
|
+
{ field: 'config.fields.<key>.validation.maxLength', type: 'integer 0..4096', required: 'with pattern' },
|
|
124
|
+
{ field: 'config.fields.<key>.validation.pattern', type: 'RE2 Unicode pattern up to 512 code points', required: false },
|
|
125
|
+
{ field: 'config.fields.<key>.validation.format', type: 'enum', required: false, acceptedValues: ['identifier', 'slug', 'semver', 'url', 'hostname', 'email'] },
|
|
126
|
+
{ field: 'config.fields.<key>.validation.key.maxLength', type: 'integer 0..4096', required: 'with key.pattern' },
|
|
127
|
+
{ field: 'config.fields.<key>.validation.key.pattern', type: 'RE2 Unicode pattern up to 512 code points', required: false },
|
|
128
|
+
{ field: 'config.fields.<key>.properties', type: 'scalar child field map; v4 also permits leaf scalar arrays and scalar key-value objects', required: 'for fixed object properties' },
|
|
129
|
+
{ field: 'config.fields.<key>.const', type: 'typed non-sensitive scalar constant; Config v4; no implicit default or required relaxation', required: false },
|
|
130
|
+
{ field: 'config.fields.<key>.variants', type: 'finite fixed-object branch map; Config v4; common plus selected branch properties; at most 32 combined properties', required: false },
|
|
131
|
+
{ field: 'config.fields.<key>.variants.discriminator', type: 'own common string property; validated before case selection', required: 'with variants' },
|
|
132
|
+
{ field: 'config.fields.<key>.variants.cases', type: '1..32 named {properties} branches; cannot override common properties', required: 'with variants' },
|
|
133
|
+
{ field: 'config.fields.<key>.variants.missing', type: 'declared case name; used only when discriminator is absent', required: false },
|
|
134
|
+
{ field: 'config.fields.<key>.variants.otherwise', type: '{properties}; used for other valid discriminator values', required: false },
|
|
135
|
+
{ field: 'config.fields.<key>.additionalProperties', type: 'false | scalar child field', required: 'false for fixed objects; scalar child field for key-value objects' },
|
|
136
|
+
{ field: 'config.presentation.summaries', type: 'named join summaries; v3/v4; at most 4 parts, 8 separator code points, 128 path characters, 256 output code points', required: false },
|
|
137
|
+
{ field: 'config.presentation.summaries.<name>.parts[].path', type: 'single own fixed scalar property JSON Pointer; ~0 and ~1 decoding', required: true },
|
|
138
|
+
{ field: 'config.presentation.summaries.<name>.parts[].format', type: 'enum', required: false, acceptedValues: ['raw', 'choiceTitle'] },
|
|
139
|
+
{ field: 'config.presentation.fieldViews.<key>.summary', type: 'local summary name for a fixed object field; v3/v4', required: false },
|
|
140
|
+
{ field: 'config.presentation.fieldViews.<key>.itemSummary', type: 'local summary name for fixed object array items; v3/v4', required: false },
|
|
141
|
+
{ field: 'config.presentation.groups', type: 'group[]', required: false },
|
|
142
|
+
],
|
|
143
|
+
},
|
|
144
|
+
'pre-apply': {
|
|
145
|
+
surface: 'pre-apply',
|
|
146
|
+
entries: [
|
|
147
|
+
{ field: 'scripts.preApply', type: '{path,timeoutMs?}', required: false },
|
|
148
|
+
{ field: 'scripts.preApply.path', type: './ Node path', required: true },
|
|
149
|
+
{ field: 'scripts.preApply.timeoutMs', type: 'integer', required: false, acceptedValues: `${PLUGIN_SCRIPT_TIMEOUT_MIN_MS}..${PLUGIN_SCRIPT_TIMEOUT_MAX_MS}` },
|
|
150
|
+
{ field: 'scripts.helpers.config', type: './ Node path', required: false },
|
|
151
|
+
{ field: 'scripts.node.packageRoot', type: './ package directory path', required: false },
|
|
152
|
+
{ field: 'scripts.node.build', type: '{runner,path,args?}', required: false },
|
|
153
|
+
{ field: 'scripts.node.build.runner', type: 'literal node', required: true, acceptedValues: ['node'] },
|
|
154
|
+
{ field: 'scripts.tests.node', type: './ Node path[]', required: false },
|
|
155
|
+
],
|
|
156
|
+
},
|
|
157
|
+
artifacts: {
|
|
158
|
+
surface: 'artifacts',
|
|
159
|
+
entries: [
|
|
160
|
+
{ field: 'scripts.artifacts.render', type: '{runner,path,args?}', required: 'with artifacts.targets' },
|
|
161
|
+
{ field: 'scripts.artifacts.render.runner', type: 'literal node', required: true, acceptedValues: ['node'] },
|
|
162
|
+
{ field: 'rendererContext.requestedArtifactIds', type: 'non-empty unique artifact id[]', required: true },
|
|
163
|
+
{ field: 'artifacts.targets', type: 'artifact target[]', required: false },
|
|
164
|
+
{ field: 'artifacts.targets[].id', type: 'surface/scope-unique stable identifier; globally unique for codex-native', required: true },
|
|
165
|
+
{ field: 'artifacts.targets[].platform', type: 'enum', required: 'for native targets', acceptedValues: ['codex', 'claude'] },
|
|
166
|
+
{ field: 'artifacts.targets[].distribution', type: 'enum', required: 'for portable targets', acceptedValues: ['agent-skills'] },
|
|
167
|
+
{ field: 'artifacts.targets[].target', type: 'enum', required: true, acceptedValues: ['codex.developerInstructionsBlock', 'codex.agentRole', 'codex.skill', 'claude.skill', 'agent-skills.skill'] },
|
|
168
|
+
{ field: 'artifacts.targets[].kind', type: 'enum', required: false, acceptedValues: ['instruction', 'codexRole', 'skill'] },
|
|
169
|
+
{ field: 'artifacts.targets[].projectManagedKind', type: 'enum', required: false, acceptedValues: ['skill', 'mcpServer', 'instruction', 'permission', 'hook', 'agent'] },
|
|
170
|
+
{ field: 'artifacts.targets[].scopes', type: 'unique enum[]', required: true, acceptedValues: ['user', 'project'] },
|
|
171
|
+
{ field: 'artifacts.targets[].states', type: 'unique enum[]', required: true, acceptedValues: ['present', 'disabled'] },
|
|
172
|
+
{ field: 'artifacts.targets[].refreshKeys', type: 'unique config key[]', required: true },
|
|
173
|
+
{ field: 'artifacts.targets[].delivery', type: 'codex.skill delivery union', required: 'for codex.skill' },
|
|
174
|
+
{ field: 'artifacts.targets[].delivery.mode', type: 'enum', required: 'with delivery', acceptedValues: ['codex-native', 'aw-extension'] },
|
|
175
|
+
{ field: 'artifacts.targets[].delivery.identity', type: 'literal shared', required: 'when delivery.mode is codex-native', acceptedValues: ['shared'] },
|
|
176
|
+
{ field: 'artifacts.targets[].delivery.renderProfile', type: 'literal user', required: 'when delivery.mode is codex-native', acceptedValues: ['user'] },
|
|
177
|
+
{ field: 'artifacts.targets[].requiresCodexProjectConfig', type: 'boolean', required: false },
|
|
178
|
+
{ field: 'artifacts.targets[].roleKey', type: 'stable role key', required: 'for codex.agentRole' },
|
|
179
|
+
{ field: 'artifacts.targets[].skillKey', type: 'stable Skill key; globally unique for codex-native', required: 'for Skill targets' },
|
|
180
|
+
{ field: 'artifacts.targets[].sourceDirs', type: './ plugin-relative path[]', required: false },
|
|
181
|
+
{ field: 'artifacts.targets[].runtimeConfig', type: '{keys}; non-sensitive installed Skill config', required: false },
|
|
182
|
+
{ field: 'artifacts.targets[].runtimeConfig.keys', type: 'non-empty unique declared refresh key[]; dependency closure must be non-sensitive', required: 'with runtimeConfig' },
|
|
183
|
+
{ field: 'artifacts.targets[].runtimeImports', type: '{name,plugin,export}[]', required: false },
|
|
184
|
+
],
|
|
185
|
+
},
|
|
186
|
+
},
|
|
187
|
+
};
|
|
188
|
+
export function getPluginAuthoringCapabilities() {
|
|
189
|
+
return registry;
|
|
190
|
+
}
|
|
191
|
+
export function getPluginAuthoringCapabilitySurface(surface) {
|
|
192
|
+
return registry.surfaces[surface];
|
|
193
|
+
}
|
|
194
|
+
export function getPluginAuthoringAcceptedValues(surface, field) {
|
|
195
|
+
const entries = registry.surfaces[surface].entries;
|
|
196
|
+
const entry = entries.find((candidate) => candidate.field === field);
|
|
197
|
+
if (!entry || !Array.isArray(entry.acceptedValues)) {
|
|
198
|
+
throw new Error(`Plugin authoring capability ${surface}.${field} has no accepted values.`);
|
|
199
|
+
}
|
|
200
|
+
return entry.acceptedValues;
|
|
201
|
+
}
|
|
202
|
+
export function getPluginCoreVersion() {
|
|
203
|
+
const packageJsonPath = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', 'package.json');
|
|
204
|
+
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
|
|
205
|
+
if (typeof packageJson.version !== 'string') {
|
|
206
|
+
throw new Error('Cannot read @lesliechan721/aw-plugin-core package version.');
|
|
207
|
+
}
|
|
208
|
+
return packageJson.version;
|
|
209
|
+
}
|
|
210
|
+
//# sourceMappingURL=plugin-authoring-capabilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-authoring-capabilities.js","sourceRoot":"","sources":["../src/plugin-authoring-capabilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { PluginConfigDefinition, PluginConfigObjectField, PluginConfigObjectPropertyField, PluginConfigPreset, PluginConfigScalar, PluginConfigSchemaField, PluginConfigValidationIssue, PluginConfigValue } from './types.js';
|
|
2
|
+
export declare const PLUGIN_CONFIG_V3_MAX_DEFINITIONS = 64;
|
|
3
|
+
export declare const PLUGIN_CONFIG_V3_MAX_FIELDS = 256;
|
|
4
|
+
/** Count each followed $ref edge, including edges from object properties; inline objects add zero. */
|
|
5
|
+
export declare const PLUGIN_CONFIG_V3_MAX_REF_DEPTH = 8;
|
|
6
|
+
export declare const PLUGIN_CONFIG_SUMMARY_MAX_PARTS = 4;
|
|
7
|
+
export declare const PLUGIN_CONFIG_SUMMARY_MAX_SEPARATOR_CODE_POINTS = 8;
|
|
8
|
+
export declare const PLUGIN_CONFIG_SUMMARY_MAX_PATH_LENGTH = 128;
|
|
9
|
+
export declare const PLUGIN_CONFIG_SUMMARY_MAX_CODE_POINTS = 256;
|
|
10
|
+
export declare const PLUGIN_CONFIG_ARRAY_MAX_ITEMS = 128;
|
|
11
|
+
export declare const PLUGIN_CONFIG_ARRAY_MAX_BYTES = 262144;
|
|
12
|
+
export interface PluginConfigObjectPropertiesResolution {
|
|
13
|
+
properties: Record<string, PluginConfigObjectPropertyField>;
|
|
14
|
+
variant?: {
|
|
15
|
+
kind: 'case' | 'otherwise';
|
|
16
|
+
case?: string;
|
|
17
|
+
};
|
|
18
|
+
issues: PluginConfigValidationIssue[];
|
|
19
|
+
}
|
|
20
|
+
/** Resolve visible and allowed own properties without changing the supplied value. */
|
|
21
|
+
export declare function resolvePluginConfigObjectProperties(definition: PluginConfigObjectField, value: unknown, field?: string): PluginConfigObjectPropertiesResolution;
|
|
22
|
+
export declare function validatePluginConfigValue(definition: PluginConfigSchemaField, value: unknown, field?: string): PluginConfigValidationIssue[];
|
|
23
|
+
export declare function validatePluginConfigValue(field: string, definition: PluginConfigSchemaField, value: unknown): PluginConfigValidationIssue[];
|
|
24
|
+
export declare function validatePluginConfigDocument(definition: PluginConfigDefinition, value: unknown): PluginConfigValidationIssue[];
|
|
25
|
+
/** Returns validation dependencies only; callers still project their original allowed keys. */
|
|
26
|
+
export declare function getPluginConfigDependencyKeys(definition: PluginConfigDefinition, keys: readonly string[]): string[];
|
|
27
|
+
/** Validate one effective candidate, including complete sources required by selected fields. */
|
|
28
|
+
export declare function validatePluginConfigCandidate(definition: PluginConfigDefinition, values: unknown, keys?: readonly string[]): PluginConfigValidationIssue[];
|
|
29
|
+
export declare function canonicalizePluginConfigValue(value: PluginConfigValue): PluginConfigValue;
|
|
30
|
+
export declare function canonicalizePluginConfigValues(values: Readonly<Record<string, PluginConfigValue>>): Record<string, PluginConfigValue>;
|
|
31
|
+
export declare function stablePluginConfigStringify(value: PluginConfigValue): string;
|
|
32
|
+
export declare function matchPluginConfigPreset(definition: PluginConfigSchemaField, value: PluginConfigValue): PluginConfigPreset | undefined;
|
|
33
|
+
export declare function validatePluginConfigPreset(definition: PluginConfigSchemaField, preset: PluginConfigPreset, field?: string): PluginConfigValidationIssue[];
|
|
34
|
+
export type RedactedPluginConfigValue = PluginConfigValue | '[redacted]' | Record<string, PluginConfigScalar | '[redacted]'>;
|
|
35
|
+
export declare function redactPluginConfigValue(definition: PluginConfigSchemaField, value: PluginConfigValue): RedactedPluginConfigValue;
|
|
36
|
+
export declare function formatPluginConfigIssue(issue: PluginConfigValidationIssue): string;
|
|
37
|
+
/** Decode exactly one local property token, never a traversal path. */
|
|
38
|
+
export declare function decodePluginConfigSummaryPath(value: string): string;
|
|
39
|
+
export declare function normalizePluginConfigDefinition(value: unknown, path?: string): PluginConfigDefinition;
|