ai-jue 1.3.2 → 1.4.0
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/capability-source/index.d.ts +26 -0
- package/dist/capability-source/index.js +293 -0
- package/dist/capability-source/index.js.map +1 -0
- package/dist/cli.js +4 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/apply.d.ts +2 -0
- package/dist/commands/apply.js +24 -4
- package/dist/commands/apply.js.map +1 -1
- package/dist/commands/capability.d.ts +16 -0
- package/dist/commands/capability.js +77 -0
- package/dist/commands/capability.js.map +1 -0
- package/dist/commands/create-preset.js +15 -2
- package/dist/commands/create-preset.js.map +1 -1
- package/dist/config.d.ts +1583 -217
- package/dist/config.js +38 -9
- package/dist/config.js.map +1 -1
- package/dist/i18n.js +28 -0
- package/dist/i18n.js.map +1 -1
- package/dist/normalize.js +37 -1
- package/dist/normalize.js.map +1 -1
- package/dist/preset.d.ts +4 -1
- package/dist/preset.js +119 -47
- package/dist/preset.js.map +1 -1
- package/dist/resolver.d.ts +2 -1
- package/dist/resolver.js +26 -5
- package/dist/resolver.js.map +1 -1
- package/package.json +2 -1
package/dist/config.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SkillSchema = exports.RuleSchema = exports.PromptLikeAssetSchema = exports.McpServerSchema = exports.HookSchema = exports.HookObjectSchema = exports.ContextSchema = exports.ConfigSchema = exports.CommandSchema = exports.AgentSchema = void 0;
|
|
3
|
+
exports.SupportFileSchema = exports.SkillSchema = exports.RuleSchema = exports.PromptLikeAssetSchema = exports.McpServerSchema = exports.HookSchema = exports.HookObjectSchema = exports.ContextSchema = exports.ConfigSchema = exports.CommandSchema = exports.CapabilityRefSchema = exports.AgentSchema = void 0;
|
|
4
4
|
exports.loadConfig = loadConfig;
|
|
5
5
|
const cosmiconfig_1 = require("cosmiconfig");
|
|
6
6
|
const zod_1 = require("zod");
|
|
@@ -15,10 +15,18 @@ const McpServerSchema = zod_1.z.object({
|
|
|
15
15
|
scope: zod_1.z.enum(['local', 'project', 'user']).optional(),
|
|
16
16
|
}).passthrough();
|
|
17
17
|
exports.McpServerSchema = McpServerSchema;
|
|
18
|
+
const SupportFileSchema = zod_1.z.union([
|
|
19
|
+
zod_1.z.string(),
|
|
20
|
+
zod_1.z.object({
|
|
21
|
+
content: zod_1.z.string(),
|
|
22
|
+
encoding: zod_1.z.enum(['utf8', 'base64']),
|
|
23
|
+
}).strict(),
|
|
24
|
+
]);
|
|
25
|
+
exports.SupportFileSchema = SupportFileSchema;
|
|
18
26
|
const AssetBundleSchema = zod_1.z.object({
|
|
19
|
-
references: zod_1.z.record(zod_1.z.string(),
|
|
20
|
-
scripts: zod_1.z.record(zod_1.z.string(),
|
|
21
|
-
assets: zod_1.z.record(zod_1.z.string(),
|
|
27
|
+
references: zod_1.z.record(zod_1.z.string(), SupportFileSchema).optional(),
|
|
28
|
+
scripts: zod_1.z.record(zod_1.z.string(), SupportFileSchema).optional(),
|
|
29
|
+
assets: zod_1.z.record(zod_1.z.string(), SupportFileSchema).optional(),
|
|
22
30
|
}).passthrough();
|
|
23
31
|
const PromptLikeAssetSchema = zod_1.z.object({
|
|
24
32
|
content: zod_1.z.string().optional(),
|
|
@@ -26,10 +34,20 @@ const PromptLikeAssetSchema = zod_1.z.object({
|
|
|
26
34
|
description: zod_1.z.string().optional(),
|
|
27
35
|
}).passthrough();
|
|
28
36
|
exports.PromptLikeAssetSchema = PromptLikeAssetSchema;
|
|
37
|
+
function requireCapabilityBody(value, ctx) {
|
|
38
|
+
const body = value.prompt ?? value.content;
|
|
39
|
+
if (typeof body !== 'string' || body.trim().length === 0) {
|
|
40
|
+
ctx.addIssue({
|
|
41
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
42
|
+
path: ['prompt'],
|
|
43
|
+
message: 'Capability must define a non-empty prompt or content body.',
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
29
47
|
const RuleSchema = PromptLikeAssetSchema.extend({
|
|
30
48
|
globs: zod_1.z.union([zod_1.z.string(), StringListSchema]).optional(),
|
|
31
49
|
alwaysApply: zod_1.z.boolean().optional(),
|
|
32
|
-
});
|
|
50
|
+
}).superRefine(requireCapabilityBody);
|
|
33
51
|
exports.RuleSchema = RuleSchema;
|
|
34
52
|
const SkillSchema = PromptLikeAssetSchema.extend({
|
|
35
53
|
name: zod_1.z.string().optional(),
|
|
@@ -38,13 +56,13 @@ const SkillSchema = PromptLikeAssetSchema.extend({
|
|
|
38
56
|
allowedTools: StringListSchema.optional(),
|
|
39
57
|
disableModelInvocation: zod_1.z.boolean().optional(),
|
|
40
58
|
userInvocable: zod_1.z.boolean().optional(),
|
|
41
|
-
}).merge(AssetBundleSchema);
|
|
59
|
+
}).merge(AssetBundleSchema).superRefine(requireCapabilityBody);
|
|
42
60
|
exports.SkillSchema = SkillSchema;
|
|
43
61
|
const CommandSchema = PromptLikeAssetSchema.extend({
|
|
44
62
|
triggers: zod_1.z.array(zod_1.z.string()).optional(),
|
|
45
63
|
disableModelInvocation: zod_1.z.boolean().optional(),
|
|
46
64
|
userInvocable: zod_1.z.boolean().optional(),
|
|
47
|
-
}).
|
|
65
|
+
}).superRefine(requireCapabilityBody);
|
|
48
66
|
exports.CommandSchema = CommandSchema;
|
|
49
67
|
const HookObjectSchema = zod_1.z.object({
|
|
50
68
|
script: zod_1.z.string(),
|
|
@@ -58,19 +76,28 @@ exports.HookObjectSchema = HookObjectSchema;
|
|
|
58
76
|
const HookSchema = zod_1.z.union([
|
|
59
77
|
zod_1.z.string(),
|
|
60
78
|
HookObjectSchema,
|
|
61
|
-
zod_1.z.array(
|
|
79
|
+
zod_1.z.array(HookObjectSchema).min(1),
|
|
62
80
|
]);
|
|
63
81
|
exports.HookSchema = HookSchema;
|
|
64
82
|
const AgentSchema = PromptLikeAssetSchema.extend({
|
|
65
83
|
name: zod_1.z.string().optional(),
|
|
66
84
|
description: zod_1.z.string().optional(),
|
|
67
85
|
skills: StringListSchema.optional(),
|
|
68
|
-
}).
|
|
86
|
+
}).superRefine(requireCapabilityBody);
|
|
69
87
|
exports.AgentSchema = AgentSchema;
|
|
70
88
|
const ContextSchema = zod_1.z.object({
|
|
71
89
|
global: zod_1.z.string().optional(),
|
|
72
90
|
}).passthrough();
|
|
73
91
|
exports.ContextSchema = ContextSchema;
|
|
92
|
+
const CapabilityRefSchema = zod_1.z.object({
|
|
93
|
+
source: zod_1.z.string().regex(/^(file|npm|github):.+/),
|
|
94
|
+
converter: zod_1.z.enum(['agent-skill', 'mcp', 'jue-native']),
|
|
95
|
+
ref: zod_1.z.string().optional(),
|
|
96
|
+
path: zod_1.z.string().optional(),
|
|
97
|
+
config: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
|
|
98
|
+
status: zod_1.z.never().optional(),
|
|
99
|
+
}).strict();
|
|
100
|
+
exports.CapabilityRefSchema = CapabilityRefSchema;
|
|
74
101
|
const ConfigSchema = zod_1.z
|
|
75
102
|
.object({
|
|
76
103
|
preset: zod_1.z.string().optional(),
|
|
@@ -92,6 +119,7 @@ const ConfigSchema = zod_1.z
|
|
|
92
119
|
hooks: zod_1.z.record(zod_1.z.string(), HookSchema).optional(),
|
|
93
120
|
agents: zod_1.z.record(zod_1.z.string(), AgentSchema).optional(),
|
|
94
121
|
tools: zod_1.z.record(zod_1.z.string(), zod_1.z.any()).optional(),
|
|
122
|
+
capabilities: zod_1.z.record(zod_1.z.string(), CapabilityRefSchema).optional(),
|
|
95
123
|
// Allow other properties for flexibility, but validate core ones
|
|
96
124
|
})
|
|
97
125
|
.passthrough()
|
|
@@ -110,6 +138,7 @@ const ConfigSchema = zod_1.z
|
|
|
110
138
|
'hooks',
|
|
111
139
|
'agents',
|
|
112
140
|
'tools',
|
|
141
|
+
'capabilities',
|
|
113
142
|
]);
|
|
114
143
|
for (const key of Object.keys(config)) {
|
|
115
144
|
if (!allowedTopLevelKeys.has(key)) {
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/i18n.js
CHANGED
|
@@ -90,6 +90,20 @@ const resources = {
|
|
|
90
90
|
assets_found: "Assets found in current configuration:",
|
|
91
91
|
no_presets: "No presets active.",
|
|
92
92
|
},
|
|
93
|
+
capability: {
|
|
94
|
+
describe: "Manage ai.capabilities Capability Source references",
|
|
95
|
+
update: {
|
|
96
|
+
describe: "Re-resolve Capability Source references and rewrite ai-jue.lock (all references, or a single named one)",
|
|
97
|
+
name_describe: "Name of a single ai.capabilities entry to update",
|
|
98
|
+
updating_all: "Re-resolving all Capability Source references...",
|
|
99
|
+
updating_one: "Re-resolving Capability Source \"{{name}}\"...",
|
|
100
|
+
none: "No ai.capabilities references were found to update.",
|
|
101
|
+
unknown: "Unknown Capability \"{{name}}\": not found among resolved ai.capabilities references.",
|
|
102
|
+
success_all: "✨ Updated {{count}} Capability Source reference(s) and rewrote ai-jue.lock.",
|
|
103
|
+
success_one: "✨ Updated Capability Source \"{{name}}\" and rewrote ai-jue.lock.",
|
|
104
|
+
failed: "Failed to update Capability Source references: {{message}}",
|
|
105
|
+
},
|
|
106
|
+
},
|
|
93
107
|
validate: {
|
|
94
108
|
describe: "Validate ai.config.js and assets",
|
|
95
109
|
validating: "Validating configuration and assets...",
|
|
@@ -217,6 +231,20 @@ const resources = {
|
|
|
217
231
|
assets_found: "当前配置中找到的资产:",
|
|
218
232
|
no_presets: "当前无活跃预设。",
|
|
219
233
|
},
|
|
234
|
+
capability: {
|
|
235
|
+
describe: "管理 ai.capabilities 引用",
|
|
236
|
+
update: {
|
|
237
|
+
describe: "重新解析 Capability Source 引用并重写 ai-jue.lock(可只更新单个引用)",
|
|
238
|
+
name_describe: "要更新的单个 ai.capabilities 引用名称",
|
|
239
|
+
updating_all: "正在重新解析全部 Capability Source 引用...",
|
|
240
|
+
updating_one: "正在重新解析 Capability Source \"{{name}}\"...",
|
|
241
|
+
none: "未找到任何 ai.capabilities 引用,无需更新。",
|
|
242
|
+
unknown: "未知 Capability \"{{name}}\":在已解析的 ai.capabilities 引用中未找到。",
|
|
243
|
+
success_all: "✨ 已更新 {{count}} 个 Capability Source 引用并重写 ai-jue.lock。",
|
|
244
|
+
success_one: "✨ 已更新 Capability Source \"{{name}}\" 并重写 ai-jue.lock。",
|
|
245
|
+
failed: "更新 Capability Source 引用失败: {{message}}",
|
|
246
|
+
},
|
|
247
|
+
},
|
|
220
248
|
validate: {
|
|
221
249
|
describe: "校验 ai.config.js 和资产的合法性",
|
|
222
250
|
validating: "正在校验配置和资产...",
|
package/dist/i18n.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"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"}
|
package/dist/normalize.js
CHANGED
|
@@ -40,11 +40,24 @@ function normalizeConfig(config) {
|
|
|
40
40
|
if (typeof context.global !== 'string') {
|
|
41
41
|
context.global = '';
|
|
42
42
|
}
|
|
43
|
+
for (const [name, value] of Object.entries(prompts)) {
|
|
44
|
+
const promptEntry = toObject(value);
|
|
45
|
+
if (!promptEntry.content && typeof promptEntry.prompt === 'string') {
|
|
46
|
+
promptEntry.content = promptEntry.prompt;
|
|
47
|
+
}
|
|
48
|
+
if (!promptEntry.prompt && typeof promptEntry.content === 'string') {
|
|
49
|
+
promptEntry.prompt = promptEntry.content;
|
|
50
|
+
}
|
|
51
|
+
prompts[name] = promptEntry;
|
|
52
|
+
}
|
|
43
53
|
for (const [name, cmd] of Object.entries(commands)) {
|
|
44
54
|
const command = toObject(cmd);
|
|
45
55
|
if (!command.prompt && typeof command.content === 'string') {
|
|
46
56
|
command.prompt = command.content;
|
|
47
57
|
}
|
|
58
|
+
if (!command.content && typeof command.prompt === 'string') {
|
|
59
|
+
command.content = command.prompt;
|
|
60
|
+
}
|
|
48
61
|
commands[name] = command;
|
|
49
62
|
}
|
|
50
63
|
for (const [name, value] of Object.entries(rules)) {
|
|
@@ -52,6 +65,9 @@ function normalizeConfig(config) {
|
|
|
52
65
|
if (!rule.content && typeof rule.prompt === 'string') {
|
|
53
66
|
rule.content = rule.prompt;
|
|
54
67
|
}
|
|
68
|
+
if (!rule.prompt && typeof rule.content === 'string') {
|
|
69
|
+
rule.prompt = rule.content;
|
|
70
|
+
}
|
|
55
71
|
rules[name] = rule;
|
|
56
72
|
}
|
|
57
73
|
for (const [name, value] of Object.entries(skills)) {
|
|
@@ -62,14 +78,34 @@ function normalizeConfig(config) {
|
|
|
62
78
|
if (!skill.prompt && typeof skill.content === 'string') {
|
|
63
79
|
skill.prompt = skill.content;
|
|
64
80
|
}
|
|
81
|
+
for (const field of ['allowed-tools', 'allowedTools']) {
|
|
82
|
+
if (typeof skill[field] === 'string') {
|
|
83
|
+
skill[field] = skill[field]
|
|
84
|
+
.split(',')
|
|
85
|
+
.map((tool) => tool.trim())
|
|
86
|
+
.filter(Boolean);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
65
89
|
skills[name] = skill;
|
|
66
90
|
}
|
|
67
91
|
for (const [name, value] of Object.entries(hooks)) {
|
|
68
92
|
const hook = value;
|
|
69
|
-
if (typeof hook === 'string'
|
|
93
|
+
if (typeof hook === 'string') {
|
|
70
94
|
hooks[name] = hook;
|
|
71
95
|
continue;
|
|
72
96
|
}
|
|
97
|
+
if (Array.isArray(hook)) {
|
|
98
|
+
hooks[name] = hook.map((item) => {
|
|
99
|
+
const normalizedHook = { ...toObject(item) };
|
|
100
|
+
if (Array.isArray(normalizedHook.tools)) {
|
|
101
|
+
normalizedHook.tools = normalizedHook.tools
|
|
102
|
+
.map((tool) => String(tool).trim())
|
|
103
|
+
.filter(Boolean);
|
|
104
|
+
}
|
|
105
|
+
return normalizedHook;
|
|
106
|
+
});
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
73
109
|
if (typeof hook === 'object' && hook) {
|
|
74
110
|
const normalizedHook = { ...hook };
|
|
75
111
|
if (Array.isArray(normalizedHook.tools)) {
|
package/dist/normalize.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize.js","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":";;AAmBA,
|
|
1
|
+
{"version":3,"file":"normalize.js","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"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"}
|
package/dist/preset.d.ts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
import { MergedConfig } from './config';
|
|
2
|
+
import type { CapabilitySourceOptions, LoadedCapabilities } from './capability-source';
|
|
3
|
+
export declare function loadSkillFromDir(skillName: string, skillDir: string, userLanguage?: string): Promise<MergedConfig>;
|
|
2
4
|
export declare function loadAssetsFromDir(dirPath: string, userLanguage?: string): Promise<MergedConfig>;
|
|
3
|
-
export declare function loadPreset(presetName: string, userLanguage?: string): Promise<MergedConfig>;
|
|
5
|
+
export declare function loadPreset(presetName: string, userLanguage?: string, sourceOptions?: CapabilitySourceOptions): Promise<MergedConfig>;
|
|
6
|
+
export declare function loadPresetWithLock(presetName: string, userLanguage?: string, sourceOptions?: CapabilitySourceOptions): Promise<LoadedCapabilities>;
|
package/dist/preset.js
CHANGED
|
@@ -36,8 +36,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
36
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.loadSkillFromDir = loadSkillFromDir;
|
|
39
40
|
exports.loadAssetsFromDir = loadAssetsFromDir;
|
|
40
41
|
exports.loadPreset = loadPreset;
|
|
42
|
+
exports.loadPresetWithLock = loadPresetWithLock;
|
|
41
43
|
const path_1 = __importDefault(require("path"));
|
|
42
44
|
const fs_1 = __importDefault(require("fs"));
|
|
43
45
|
const yaml = __importStar(require("js-yaml")); // Import js-yaml
|
|
@@ -48,29 +50,70 @@ async function readJsonIfExists(filePath) {
|
|
|
48
50
|
const content = await fs_1.default.promises.readFile(filePath, 'utf8');
|
|
49
51
|
return JSON.parse(content);
|
|
50
52
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
+
function toPortableRelativePath(value) {
|
|
54
|
+
return value.split(path_1.default.sep).join('/');
|
|
55
|
+
}
|
|
56
|
+
function decodeSupportFile(content) {
|
|
57
|
+
const utf8 = content.toString('utf8');
|
|
58
|
+
if (Buffer.from(utf8, 'utf8').equals(content)) {
|
|
59
|
+
return utf8;
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
content: content.toString('base64'),
|
|
63
|
+
encoding: 'base64',
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
// Recursively load capability attachments and preserve portable relative paths.
|
|
67
|
+
async function loadAssetSubdir(dirPath, relativeDir = '') {
|
|
53
68
|
const result = {};
|
|
54
69
|
if (!fs_1.default.existsSync(dirPath))
|
|
55
70
|
return result;
|
|
56
71
|
const entries = await fs_1.default.promises.readdir(dirPath, { withFileTypes: true });
|
|
57
|
-
|
|
58
|
-
.filter((entry) => entry.isFile())
|
|
59
|
-
.map(async (entry) => {
|
|
72
|
+
for (const entry of entries) {
|
|
60
73
|
const filePath = path_1.default.join(dirPath, entry.name);
|
|
61
|
-
|
|
62
|
-
|
|
74
|
+
const relativePath = path_1.default.join(relativeDir, entry.name);
|
|
75
|
+
if (entry.isDirectory()) {
|
|
76
|
+
Object.assign(result, await loadAssetSubdir(filePath, relativePath));
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
if (entry.isFile()) {
|
|
80
|
+
result[toPortableRelativePath(relativePath)] = decodeSupportFile(await fs_1.default.promises.readFile(filePath));
|
|
81
|
+
}
|
|
82
|
+
}
|
|
63
83
|
return result;
|
|
64
84
|
}
|
|
85
|
+
async function loadAssetBundle(assetDir) {
|
|
86
|
+
const [references, scripts, assets] = await Promise.all([
|
|
87
|
+
loadAssetSubdir(path_1.default.join(assetDir, 'references')),
|
|
88
|
+
loadAssetSubdir(path_1.default.join(assetDir, 'scripts')),
|
|
89
|
+
loadAssetSubdir(path_1.default.join(assetDir, 'assets')),
|
|
90
|
+
]);
|
|
91
|
+
return {
|
|
92
|
+
references: Object.keys(references).length > 0 ? references : undefined,
|
|
93
|
+
scripts: Object.keys(scripts).length > 0 ? scripts : undefined,
|
|
94
|
+
assets: Object.keys(assets).length > 0 ? assets : undefined,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
async function loadSkillFromDir(skillName, skillDir, userLanguage) {
|
|
98
|
+
const contentPath = findLocalizedFile(skillDir, ['SKILL.md'], userLanguage);
|
|
99
|
+
if (!contentPath) {
|
|
100
|
+
throw new Error(`agent-skill Capability "${skillName}" is missing SKILL.md`);
|
|
101
|
+
}
|
|
102
|
+
const rawContent = await fs_1.default.promises.readFile(contentPath, 'utf8');
|
|
103
|
+
const parsed = parseMarkdownWithFrontmatter(rawContent);
|
|
104
|
+
return {
|
|
105
|
+
skills: {
|
|
106
|
+
[skillName]: {
|
|
107
|
+
...parsed.attributes,
|
|
108
|
+
content: parsed.content,
|
|
109
|
+
...(await loadAssetBundle(skillDir)),
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
};
|
|
113
|
+
}
|
|
65
114
|
// Replaced parseSimpleYamlFrontmatter with a robust YAML parser using js-yaml
|
|
66
115
|
function parseYamlFrontmatter(yamlText) {
|
|
67
|
-
|
|
68
|
-
return yaml.load(yamlText) || {};
|
|
69
|
-
}
|
|
70
|
-
catch (error) {
|
|
71
|
-
console.error('Error parsing YAML frontmatter:', error);
|
|
72
|
-
return {};
|
|
73
|
-
}
|
|
116
|
+
return yaml.load(yamlText) || {};
|
|
74
117
|
}
|
|
75
118
|
function parseMarkdownWithFrontmatter(raw) {
|
|
76
119
|
if (!raw.startsWith('---\n')) {
|
|
@@ -119,18 +162,15 @@ async function loadNamedAssetDir(config, dirPath, section, preferredFiles, userL
|
|
|
119
162
|
return;
|
|
120
163
|
const rawContent = await fs_1.default.promises.readFile(contentPath, 'utf8');
|
|
121
164
|
const parsed = parseMarkdownWithFrontmatter(rawContent);
|
|
122
|
-
//
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
]);
|
|
165
|
+
// Agent Skills have a cross-agent attachment contract. Other
|
|
166
|
+
// capability types remain single-body assets unless promoted later.
|
|
167
|
+
const bundle = section === 'skills'
|
|
168
|
+
? await loadAssetBundle(assetDir)
|
|
169
|
+
: {};
|
|
128
170
|
config[section][assetName] = {
|
|
129
171
|
...parsed.attributes,
|
|
130
172
|
content: parsed.content,
|
|
131
|
-
|
|
132
|
-
scripts: Object.keys(scripts).length > 0 ? scripts : undefined,
|
|
133
|
-
assets: Object.keys(assets).length > 0 ? assets : undefined,
|
|
173
|
+
...bundle,
|
|
134
174
|
};
|
|
135
175
|
}));
|
|
136
176
|
}
|
|
@@ -152,6 +192,7 @@ async function loadCommands(config, dirPath, userLanguage) {
|
|
|
152
192
|
commands[commandName] = {
|
|
153
193
|
...parsed.attributes,
|
|
154
194
|
prompt: parsed.content,
|
|
195
|
+
content: parsed.content,
|
|
155
196
|
};
|
|
156
197
|
}));
|
|
157
198
|
}
|
|
@@ -171,7 +212,12 @@ async function loadAgents(config, dirPath, userLanguage) {
|
|
|
171
212
|
return;
|
|
172
213
|
const rawPrompt = await fs_1.default.promises.readFile(promptPath, 'utf8');
|
|
173
214
|
const parsed = parseMarkdownWithFrontmatter(rawPrompt);
|
|
174
|
-
agents[agentName] = {
|
|
215
|
+
agents[agentName] = {
|
|
216
|
+
...meta,
|
|
217
|
+
...parsed.attributes,
|
|
218
|
+
prompt: parsed.content,
|
|
219
|
+
content: parsed.content,
|
|
220
|
+
};
|
|
175
221
|
}));
|
|
176
222
|
}
|
|
177
223
|
async function loadHooks(config, dirPath, userLanguage) {
|
|
@@ -188,11 +234,13 @@ async function loadHooks(config, dirPath, userLanguage) {
|
|
|
188
234
|
const promptPath = findLocalizedFile(hookDir, ['prompt.md'], userLanguage);
|
|
189
235
|
if (promptPath) {
|
|
190
236
|
const script = (await fs_1.default.promises.readFile(promptPath, 'utf8')).trim();
|
|
191
|
-
hooks[hookName] =
|
|
237
|
+
hooks[hookName] = Object.keys(meta).length > 0
|
|
238
|
+
? { ...meta, script }
|
|
239
|
+
: script;
|
|
192
240
|
return;
|
|
193
241
|
}
|
|
194
242
|
if (typeof meta.script === 'string' && meta.script.trim()) {
|
|
195
|
-
hooks[hookName] = meta
|
|
243
|
+
hooks[hookName] = meta;
|
|
196
244
|
}
|
|
197
245
|
}));
|
|
198
246
|
}
|
|
@@ -212,6 +260,12 @@ async function loadToolConfigs(config, toolsDir) {
|
|
|
212
260
|
tools[toolName] = await readJsonIfExists(configPath);
|
|
213
261
|
}));
|
|
214
262
|
}
|
|
263
|
+
async function loadMcpConfig(config, dirPath) {
|
|
264
|
+
const mcpPath = path_1.default.join(dirPath, 'mcp.json');
|
|
265
|
+
if (!fs_1.default.existsSync(mcpPath))
|
|
266
|
+
return;
|
|
267
|
+
config.mcp = await readJsonIfExists(mcpPath);
|
|
268
|
+
}
|
|
215
269
|
async function loadAssetsFromDir(dirPath, userLanguage) {
|
|
216
270
|
const config = {};
|
|
217
271
|
if (!config.context)
|
|
@@ -227,13 +281,20 @@ async function loadAssetsFromDir(dirPath, userLanguage) {
|
|
|
227
281
|
loadCommands(config, path_1.default.join(dirPath, 'commands'), userLanguage),
|
|
228
282
|
loadHooks(config, path_1.default.join(dirPath, 'hooks'), userLanguage),
|
|
229
283
|
loadToolConfigs(config, path_1.default.join(dirPath, 'tools')),
|
|
284
|
+
loadMcpConfig(config, dirPath),
|
|
230
285
|
]);
|
|
231
286
|
return config;
|
|
232
287
|
}
|
|
233
|
-
async function loadPreset(presetName, userLanguage) {
|
|
288
|
+
async function loadPreset(presetName, userLanguage, sourceOptions = {}) {
|
|
234
289
|
if (!presetName)
|
|
235
290
|
return {};
|
|
236
|
-
return
|
|
291
|
+
return (await loadPresetWithLock(presetName, userLanguage, sourceOptions)).config;
|
|
292
|
+
}
|
|
293
|
+
async function loadPresetWithLock(presetName, userLanguage, sourceOptions = {}) {
|
|
294
|
+
if (!presetName) {
|
|
295
|
+
return { config: {}, lock: { version: 1, capabilities: {} } };
|
|
296
|
+
}
|
|
297
|
+
return loadPresetRecursive(presetName, userLanguage, [], sourceOptions);
|
|
237
298
|
}
|
|
238
299
|
function normalizePresetPackageName(presetName) {
|
|
239
300
|
if (presetName.startsWith('jue-preset-'))
|
|
@@ -248,30 +309,41 @@ function extractNestedPresets(packageJson) {
|
|
|
248
309
|
.map((item) => String(item).trim())
|
|
249
310
|
.filter(Boolean);
|
|
250
311
|
}
|
|
251
|
-
|
|
312
|
+
function extractCapabilityRefs(packageJson) {
|
|
313
|
+
return packageJson?.ai?.capabilities ?? packageJson?.jue?.capabilities;
|
|
314
|
+
}
|
|
315
|
+
async function loadPresetRecursive(presetName, userLanguage, resolvingStack, sourceOptions) {
|
|
252
316
|
const packageName = normalizePresetPackageName(presetName);
|
|
253
317
|
if (resolvingStack.includes(packageName)) {
|
|
254
318
|
const cyclePath = [...resolvingStack, packageName].join(' -> ');
|
|
255
|
-
|
|
256
|
-
return {};
|
|
319
|
+
throw new Error(`Preset dependency cycle detected: ${cyclePath}`);
|
|
257
320
|
}
|
|
258
321
|
const nextStack = [...resolvingStack, packageName];
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
322
|
+
const packageJsonPath = require.resolve(`${packageName}/package.json`, {
|
|
323
|
+
// Project-local presets must win for both a locally installed CLI and a
|
|
324
|
+
// globally invoked CLI. `__dirname` keeps bundled/default presets
|
|
325
|
+
// discoverable as the fallback.
|
|
326
|
+
paths: [process.cwd(), __dirname],
|
|
327
|
+
});
|
|
328
|
+
const presetPath = path_1.default.dirname(packageJsonPath);
|
|
329
|
+
const packageJson = JSON.parse(await fs_1.default.promises.readFile(packageJsonPath, 'utf8'));
|
|
330
|
+
const nestedPresets = extractNestedPresets(packageJson);
|
|
331
|
+
const capabilityRefs = extractCapabilityRefs(packageJson);
|
|
332
|
+
const { loadCapabilityRefs, mergeCapabilityLocks } = await Promise.resolve().then(() => __importStar(require('./capability-source')));
|
|
333
|
+
let mergedConfig = {};
|
|
334
|
+
const locks = [];
|
|
335
|
+
for (const nestedPresetName of nestedPresets) {
|
|
336
|
+
const nestedPreset = await loadPresetRecursive(nestedPresetName, userLanguage, nextStack, sourceOptions);
|
|
337
|
+
mergedConfig = (0, merge_1.mergeConfigWithLayeredContext)(mergedConfig, nestedPreset.config);
|
|
338
|
+
locks.push(nestedPreset.lock);
|
|
275
339
|
}
|
|
340
|
+
const capabilityResult = await loadCapabilityRefs(capabilityRefs, presetPath, userLanguage, sourceOptions);
|
|
341
|
+
mergedConfig = (0, merge_1.mergeConfigWithLayeredContext)(mergedConfig, capabilityResult.config);
|
|
342
|
+
locks.push(capabilityResult.lock);
|
|
343
|
+
const selfConfig = await loadAssetsFromDir(presetPath, userLanguage);
|
|
344
|
+
return {
|
|
345
|
+
config: (0, merge_1.mergeConfigWithLayeredContext)(mergedConfig, selfConfig),
|
|
346
|
+
lock: mergeCapabilityLocks(...locks),
|
|
347
|
+
};
|
|
276
348
|
}
|
|
277
349
|
//# sourceMappingURL=preset.js.map
|