renma 0.2.0 → 0.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/README.md +61 -2
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +78 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/graph.d.ts +1 -0
- package/dist/commands/graph.d.ts.map +1 -1
- package/dist/commands/graph.js +34 -1
- package/dist/commands/graph.js.map +1 -1
- package/dist/commands/scaffold.d.ts +25 -0
- package/dist/commands/scaffold.d.ts.map +1 -0
- package/dist/commands/scaffold.js +208 -0
- package/dist/commands/scaffold.js.map +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +119 -0
- package/dist/config.js.map +1 -1
- package/dist/markdown.d.ts.map +1 -1
- package/dist/markdown.js +29 -3
- package/dist/markdown.js.map +1 -1
- package/dist/metadata.d.ts.map +1 -1
- package/dist/metadata.js +10 -4
- package/dist/metadata.js.map +1 -1
- package/dist/rules.d.ts.map +1 -1
- package/dist/rules.js +9 -4
- package/dist/rules.js.map +1 -1
- package/dist/scanner.js +1 -1
- package/dist/scanner.js.map +1 -1
- package/dist/security-diagnostics.d.ts +6 -2
- package/dist/security-diagnostics.d.ts.map +1 -1
- package/dist/security-diagnostics.js +1327 -301
- package/dist/security-diagnostics.js.map +1 -1
- package/dist/types.d.ts +22 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import { mkdir, writeFile } from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
export async function runScaffoldCommand(options) {
|
|
4
|
+
const bundle = buildScaffoldBundle(options);
|
|
5
|
+
if (options.format === "json") {
|
|
6
|
+
process.stdout.write(`${JSON.stringify(bundle, null, 2)}\n`);
|
|
7
|
+
return 0;
|
|
8
|
+
}
|
|
9
|
+
if (options.format === "prompt") {
|
|
10
|
+
process.stdout.write(bundle.prompt);
|
|
11
|
+
return 0;
|
|
12
|
+
}
|
|
13
|
+
await mkdir(path.dirname(options.targetPath), { recursive: true });
|
|
14
|
+
await writeFile(options.targetPath, bundle.content, { flag: "wx" });
|
|
15
|
+
process.stdout.write(`Created ${options.targetPath}\n`);
|
|
16
|
+
return 0;
|
|
17
|
+
}
|
|
18
|
+
export function buildScaffoldBundle(options) {
|
|
19
|
+
const id = options.id ?? inferId(options.kind, options.targetPath);
|
|
20
|
+
const title = options.title ?? titleFromId(id);
|
|
21
|
+
const owner = options.owner ?? "unowned";
|
|
22
|
+
const tags = options.tags && options.tags.length > 0 ? options.tags : ["authoring"];
|
|
23
|
+
const content = options.kind === "skill"
|
|
24
|
+
? renderSkillScaffold({ id, title, owner, tags })
|
|
25
|
+
: renderContextScaffold({ id, title, owner, tags });
|
|
26
|
+
return {
|
|
27
|
+
kind: options.kind,
|
|
28
|
+
path: options.targetPath,
|
|
29
|
+
id,
|
|
30
|
+
title,
|
|
31
|
+
owner,
|
|
32
|
+
tags,
|
|
33
|
+
format: options.format,
|
|
34
|
+
content,
|
|
35
|
+
prompt: renderPrompt({
|
|
36
|
+
kind: options.kind,
|
|
37
|
+
targetPath: options.targetPath,
|
|
38
|
+
id,
|
|
39
|
+
title,
|
|
40
|
+
owner,
|
|
41
|
+
tags,
|
|
42
|
+
content,
|
|
43
|
+
}),
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
function renderSkillScaffold(metadata) {
|
|
47
|
+
return `---
|
|
48
|
+
id: ${metadata.id}
|
|
49
|
+
title: ${metadata.title}
|
|
50
|
+
version: 0.1.0
|
|
51
|
+
owner: ${metadata.owner}
|
|
52
|
+
status: experimental
|
|
53
|
+
${renderTagBlock(metadata.tags)}
|
|
54
|
+
requires_context:
|
|
55
|
+
optional_context:
|
|
56
|
+
conflicts:
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
# ${metadata.title}
|
|
60
|
+
|
|
61
|
+
## Purpose
|
|
62
|
+
|
|
63
|
+
Describe the recurring task, decision, or workflow this skill should guide.
|
|
64
|
+
|
|
65
|
+
## Required Inputs
|
|
66
|
+
|
|
67
|
+
- List the inputs, evidence, or repository artifacts the agent should inspect before acting.
|
|
68
|
+
|
|
69
|
+
## Instructions
|
|
70
|
+
|
|
71
|
+
1. State the inputs, evidence, or repository artifacts the agent should inspect.
|
|
72
|
+
2. Describe the review steps, checks, or decision points that should remain explicit and reviewable.
|
|
73
|
+
3. Identify the expected output, artifact, or handoff.
|
|
74
|
+
|
|
75
|
+
## Context References
|
|
76
|
+
|
|
77
|
+
Use \`requires_context\` and \`optional_context\` in frontmatter to reference durable context assets.
|
|
78
|
+
|
|
79
|
+
Move reusable domain, testing, platform, product, or tool knowledge into separately owned context assets under \`contexts/\`.
|
|
80
|
+
|
|
81
|
+
## Constraints
|
|
82
|
+
|
|
83
|
+
- Keep recommendations grounded in provided inputs and repository evidence.
|
|
84
|
+
- Do not invent domain facts, policies, owners, dependencies, or product behavior.
|
|
85
|
+
- Do not choose runtime task context beyond this skill's declared scope.
|
|
86
|
+
- Do not assemble prompts for live model calls.
|
|
87
|
+
- Do not call external services unless the surrounding workflow explicitly allows it.
|
|
88
|
+
|
|
89
|
+
## Validation
|
|
90
|
+
|
|
91
|
+
- Run \`renma scan\`, \`renma catalog\`, and \`renma graph\` before review.
|
|
92
|
+
`;
|
|
93
|
+
}
|
|
94
|
+
function renderContextScaffold(metadata) {
|
|
95
|
+
return `---
|
|
96
|
+
id: ${metadata.id}
|
|
97
|
+
title: ${metadata.title}
|
|
98
|
+
version: 0.1.0
|
|
99
|
+
owner: ${metadata.owner}
|
|
100
|
+
status: experimental
|
|
101
|
+
${renderTagBlock(metadata.tags)}
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
# ${metadata.title}
|
|
105
|
+
|
|
106
|
+
## Summary
|
|
107
|
+
|
|
108
|
+
Describe the durable context, rule, constraint, or domain fact this asset records.
|
|
109
|
+
|
|
110
|
+
## Scope
|
|
111
|
+
|
|
112
|
+
This context applies when:
|
|
113
|
+
|
|
114
|
+
- Describe the systems, workflows, or skills that should consider this context.
|
|
115
|
+
|
|
116
|
+
This context does not apply when:
|
|
117
|
+
|
|
118
|
+
- Describe nearby cases that should use a different context asset.
|
|
119
|
+
|
|
120
|
+
## Guidance
|
|
121
|
+
|
|
122
|
+
- Keep this context specific, reviewable, and source-backed.
|
|
123
|
+
- Prefer stable facts over transient implementation notes.
|
|
124
|
+
|
|
125
|
+
## Constraints
|
|
126
|
+
|
|
127
|
+
- Keep this asset focused on reusable knowledge that can be referenced by skills.
|
|
128
|
+
- Do not duplicate large source material when a reference is enough.
|
|
129
|
+
- Do not invent domain facts, policies, owners, dependencies, or product behavior.
|
|
130
|
+
|
|
131
|
+
## Validation
|
|
132
|
+
|
|
133
|
+
- Run \`renma scan\`, \`renma catalog\`, and \`renma graph\` before review.
|
|
134
|
+
`;
|
|
135
|
+
}
|
|
136
|
+
function renderPrompt(input) {
|
|
137
|
+
return `Create a Renma ${input.kind} asset at \`${input.targetPath}\`.
|
|
138
|
+
|
|
139
|
+
Use this metadata exactly:
|
|
140
|
+
|
|
141
|
+
- id: \`${input.id}\`
|
|
142
|
+
- title: \`${input.title}\`
|
|
143
|
+
- owner: \`${input.owner}\`
|
|
144
|
+
- tags: \`${input.tags.join(",")}\`
|
|
145
|
+
- version: \`0.1.0\`
|
|
146
|
+
- status: \`experimental\`
|
|
147
|
+
|
|
148
|
+
Start from this deterministic scaffold and replace placeholder prose with repository-grounded content:
|
|
149
|
+
|
|
150
|
+
\`\`\`md
|
|
151
|
+
${input.content}\`\`\`
|
|
152
|
+
|
|
153
|
+
Constraints:
|
|
154
|
+
|
|
155
|
+
- Preserve the YAML frontmatter shape unless the repository already requires a stricter local convention.
|
|
156
|
+
- Use only supported statuses: experimental, stable, deprecated, archived.
|
|
157
|
+
- Move durable domain, testing, platform, product, or tool knowledge into separately owned context assets under \`contexts/\`.
|
|
158
|
+
- Use \`requires_context\` for context the skill normally depends on.
|
|
159
|
+
- Use \`optional_context\` for context useful only in some cases.
|
|
160
|
+
- Use simple supported metadata shapes only.
|
|
161
|
+
- For context assets, keep content durable, reviewable, and source-backed.
|
|
162
|
+
- Do not put task-specific prompt instructions in context assets.
|
|
163
|
+
- Add explicit metadata and references where appropriate.
|
|
164
|
+
- Do not invent owners, dependencies, policies, or domain facts.
|
|
165
|
+
- Do not choose runtime task context.
|
|
166
|
+
- Do not assemble prompts for live model calls.
|
|
167
|
+
- Do not call external services.
|
|
168
|
+
- Keep the asset LLM-facing and Renma-verifiable.
|
|
169
|
+
- After creating files, run \`renma scan .\`, \`renma catalog . --format json\`, and \`renma graph . --focus ${input.id} --format mermaid\`.
|
|
170
|
+
`;
|
|
171
|
+
}
|
|
172
|
+
function renderTagBlock(tags) {
|
|
173
|
+
return `tags:
|
|
174
|
+
${tags.map((tag) => ` - ${tag}`).join("\n")}`;
|
|
175
|
+
}
|
|
176
|
+
function inferId(kind, targetPath) {
|
|
177
|
+
const withoutExtension = targetPath.replace(/\.[^/.]+$/, "");
|
|
178
|
+
const normalized = withoutExtension
|
|
179
|
+
.split(/[\\/]+/)
|
|
180
|
+
.filter(Boolean)
|
|
181
|
+
.filter((part) => part !== "SKILL")
|
|
182
|
+
.map(slugify)
|
|
183
|
+
.filter(Boolean);
|
|
184
|
+
if (kind === "skill") {
|
|
185
|
+
const skillRoot = normalized.indexOf("skills");
|
|
186
|
+
return normalized.slice(skillRoot >= 0 ? skillRoot + 1 : 0).join(".");
|
|
187
|
+
}
|
|
188
|
+
const contextRoot = normalized.findIndex((part) => part === "context" || part === "contexts");
|
|
189
|
+
const parts = normalized.slice(contextRoot >= 0 ? contextRoot + 1 : 0);
|
|
190
|
+
return parts[0] === "context"
|
|
191
|
+
? parts.join(".")
|
|
192
|
+
: ["context", ...parts].join(".");
|
|
193
|
+
}
|
|
194
|
+
function titleFromId(id) {
|
|
195
|
+
const lastSegment = id.split(".").filter(Boolean).slice(-1)[0] ?? id;
|
|
196
|
+
return lastSegment
|
|
197
|
+
.split("-")
|
|
198
|
+
.map((word) => word.charAt(0).toUpperCase() + word.slice(1))
|
|
199
|
+
.join(" ");
|
|
200
|
+
}
|
|
201
|
+
function slugify(value) {
|
|
202
|
+
return value
|
|
203
|
+
.trim()
|
|
204
|
+
.toLowerCase()
|
|
205
|
+
.replace(/[^a-z0-9]+/g, "-")
|
|
206
|
+
.replace(/^-+|-+$/g, "");
|
|
207
|
+
}
|
|
208
|
+
//# sourceMappingURL=scaffold.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../src/commands/scaffold.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAKrE,kFAAkF;AAClF,eAAO,MAAM,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAKrE,kFAAkF;AAClF,eAAO,MAAM,cAAc,EAAE,UA6B5B,CAAC;AAEF,+EAA+E;AAC/E,qBAAa,WAAY,SAAQ,KAAK;CAAG;AAEzC,qEAAqE;AACrE,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAED,0EAA0E;AAC1E,wBAAsB,UAAU,CAC9B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,eAAe,GACzB,OAAO,CAAC,YAAY,CAAC,CAiBvB"}
|
package/dist/config.js
CHANGED
|
@@ -26,6 +26,12 @@ export const DEFAULT_CONFIG = {
|
|
|
26
26
|
layout: {
|
|
27
27
|
workflowAliases: {},
|
|
28
28
|
},
|
|
29
|
+
security: {
|
|
30
|
+
approvedDomains: [],
|
|
31
|
+
approvedUploadDomains: [],
|
|
32
|
+
disallowedCommands: [],
|
|
33
|
+
profiles: {},
|
|
34
|
+
},
|
|
29
35
|
};
|
|
30
36
|
/** Error raised for invalid Renma configuration or CLI configuration input. */
|
|
31
37
|
export class ConfigError extends Error {
|
|
@@ -90,6 +96,7 @@ function normalizeConfig(value, configPath) {
|
|
|
90
96
|
"max_depth",
|
|
91
97
|
"concurrency",
|
|
92
98
|
"layout",
|
|
99
|
+
"security",
|
|
93
100
|
]);
|
|
94
101
|
for (const key of Object.keys(value)) {
|
|
95
102
|
if (!allowed.has(key)) {
|
|
@@ -114,6 +121,8 @@ function normalizeConfig(value, configPath) {
|
|
|
114
121
|
config.concurrency = positiveInteger("concurrency", value.concurrency);
|
|
115
122
|
if (value.layout !== undefined)
|
|
116
123
|
config.layout = layoutPolicy(value.layout);
|
|
124
|
+
if (value.security !== undefined)
|
|
125
|
+
config.security = securityPolicy(value.security);
|
|
117
126
|
return config;
|
|
118
127
|
}
|
|
119
128
|
function enumValue(field, value, allowed) {
|
|
@@ -166,6 +175,116 @@ function layoutPolicy(value) {
|
|
|
166
175
|
},
|
|
167
176
|
};
|
|
168
177
|
}
|
|
178
|
+
function securityPolicy(value) {
|
|
179
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
180
|
+
throw new ConfigError("security must be an object.");
|
|
181
|
+
}
|
|
182
|
+
const security = value;
|
|
183
|
+
const allowed = new Set([
|
|
184
|
+
"approvedDomains",
|
|
185
|
+
"approvedUploadDomains",
|
|
186
|
+
"disallowedCommands",
|
|
187
|
+
"profiles",
|
|
188
|
+
]);
|
|
189
|
+
for (const key of Object.keys(security)) {
|
|
190
|
+
if (!allowed.has(key)) {
|
|
191
|
+
throw new ConfigError(`Unknown security config key "${key}". Allowed keys: ${[
|
|
192
|
+
...allowed,
|
|
193
|
+
].join(", ")}.`);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
return {
|
|
197
|
+
approvedDomains: security.approvedDomains === undefined
|
|
198
|
+
? DEFAULT_CONFIG.security.approvedDomains
|
|
199
|
+
: stringArray("security.approvedDomains", security.approvedDomains),
|
|
200
|
+
approvedUploadDomains: security.approvedUploadDomains === undefined
|
|
201
|
+
? DEFAULT_CONFIG.security.approvedUploadDomains
|
|
202
|
+
: stringArray("security.approvedUploadDomains", security.approvedUploadDomains),
|
|
203
|
+
disallowedCommands: security.disallowedCommands === undefined
|
|
204
|
+
? DEFAULT_CONFIG.security.disallowedCommands
|
|
205
|
+
: stringArray("security.disallowedCommands", security.disallowedCommands),
|
|
206
|
+
profiles: security.profiles === undefined
|
|
207
|
+
? DEFAULT_CONFIG.security.profiles
|
|
208
|
+
: securityProfiles(security.profiles),
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
function securityProfiles(value) {
|
|
212
|
+
const profiles = objectRecord("security.profiles", value);
|
|
213
|
+
const normalized = {};
|
|
214
|
+
for (const [name, profile] of Object.entries(profiles)) {
|
|
215
|
+
if (!profile || typeof profile !== "object" || Array.isArray(profile)) {
|
|
216
|
+
throw new ConfigError(`security.profiles.${name} must be an object.`);
|
|
217
|
+
}
|
|
218
|
+
const source = profile;
|
|
219
|
+
const allowed = new Set([
|
|
220
|
+
"allowedDataClass",
|
|
221
|
+
"allowed_data_class",
|
|
222
|
+
"networkAllowed",
|
|
223
|
+
"network_allowed",
|
|
224
|
+
"externalUploadAllowed",
|
|
225
|
+
"external_upload_allowed",
|
|
226
|
+
"secretsAllowed",
|
|
227
|
+
"secrets_allowed",
|
|
228
|
+
"humanApprovalRequired",
|
|
229
|
+
"human_approval_required",
|
|
230
|
+
"requiresHumanApproval",
|
|
231
|
+
"requires_human_approval",
|
|
232
|
+
"securityProfile",
|
|
233
|
+
"security_profile",
|
|
234
|
+
"allowedData",
|
|
235
|
+
"allowed_data",
|
|
236
|
+
"forbiddenInputs",
|
|
237
|
+
"forbidden_inputs",
|
|
238
|
+
"approvedDomains",
|
|
239
|
+
"approvedUploadDomains",
|
|
240
|
+
"disallowedCommands",
|
|
241
|
+
]);
|
|
242
|
+
for (const key of Object.keys(source)) {
|
|
243
|
+
if (!allowed.has(key)) {
|
|
244
|
+
throw new ConfigError(`Unknown security profile key "${key}" in security.profiles.${name}.`);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
normalized[name] = {
|
|
248
|
+
allowedDataClass: optionalString(`security.profiles.${name}.allowedDataClass`, source.allowedDataClass ?? source.allowed_data_class),
|
|
249
|
+
networkAllowed: optionalBoolean(`security.profiles.${name}.networkAllowed`, source.networkAllowed ?? source.network_allowed),
|
|
250
|
+
externalUploadAllowed: optionalBoolean(`security.profiles.${name}.externalUploadAllowed`, source.externalUploadAllowed ?? source.external_upload_allowed),
|
|
251
|
+
secretsAllowed: optionalBoolean(`security.profiles.${name}.secretsAllowed`, source.secretsAllowed ?? source.secrets_allowed),
|
|
252
|
+
humanApprovalRequired: optionalBoolean(`security.profiles.${name}.humanApprovalRequired`, source.humanApprovalRequired ??
|
|
253
|
+
source.human_approval_required ??
|
|
254
|
+
source.requiresHumanApproval ??
|
|
255
|
+
source.requires_human_approval),
|
|
256
|
+
securityProfile: optionalString(`security.profiles.${name}.securityProfile`, source.securityProfile ?? source.security_profile),
|
|
257
|
+
allowedData: stringArray(`security.profiles.${name}.allowedData`, source.allowedData ?? source.allowed_data ?? []),
|
|
258
|
+
forbiddenInputs: stringArray(`security.profiles.${name}.forbiddenInputs`, source.forbiddenInputs ?? source.forbidden_inputs ?? []),
|
|
259
|
+
approvedDomains: stringArray(`security.profiles.${name}.approvedDomains`, source.approvedDomains ?? []),
|
|
260
|
+
approvedUploadDomains: stringArray(`security.profiles.${name}.approvedUploadDomains`, source.approvedUploadDomains ?? []),
|
|
261
|
+
disallowedCommands: stringArray(`security.profiles.${name}.disallowedCommands`, source.disallowedCommands ?? []),
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
return normalized;
|
|
265
|
+
}
|
|
266
|
+
function optionalString(name, value) {
|
|
267
|
+
if (value === undefined)
|
|
268
|
+
return undefined;
|
|
269
|
+
if (typeof value !== "string") {
|
|
270
|
+
throw new ConfigError(`${name} must be a string.`);
|
|
271
|
+
}
|
|
272
|
+
return value;
|
|
273
|
+
}
|
|
274
|
+
function optionalBoolean(name, value) {
|
|
275
|
+
if (value === undefined)
|
|
276
|
+
return undefined;
|
|
277
|
+
if (typeof value !== "boolean") {
|
|
278
|
+
throw new ConfigError(`${name} must be a boolean.`);
|
|
279
|
+
}
|
|
280
|
+
return value;
|
|
281
|
+
}
|
|
282
|
+
function objectRecord(name, value) {
|
|
283
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
284
|
+
throw new ConfigError(`${name} must be an object.`);
|
|
285
|
+
}
|
|
286
|
+
return value;
|
|
287
|
+
}
|
|
169
288
|
function stringRecord(name, value) {
|
|
170
289
|
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
171
290
|
throw new ConfigError(`${name} must be an object of string values.`);
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/markdown.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../src/markdown.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../src/markdown.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EAKR,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB,6FAA6F;AAC7F,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,cAAc,CAiEhE"}
|
package/dist/markdown.js
CHANGED
|
@@ -60,17 +60,43 @@ export function parseDocument(artifact) {
|
|
|
60
60
|
}
|
|
61
61
|
return { artifact, lines, headings, codeFences, links, metadata };
|
|
62
62
|
}
|
|
63
|
+
const LIST_METADATA_KEYS = new Set([
|
|
64
|
+
"tags",
|
|
65
|
+
"when_to_use",
|
|
66
|
+
"when_not_to_use",
|
|
67
|
+
"requires_context",
|
|
68
|
+
"optional_context",
|
|
69
|
+
"conflicts",
|
|
70
|
+
"superseded_by",
|
|
71
|
+
]);
|
|
63
72
|
function parseFrontmatter(lines) {
|
|
64
73
|
if (lines[0] !== "---")
|
|
65
74
|
return {};
|
|
66
75
|
const metadata = {};
|
|
76
|
+
let activeListKey;
|
|
67
77
|
for (let index = 1; index < lines.length; index += 1) {
|
|
68
78
|
const line = lines[index];
|
|
69
79
|
if (line === "---")
|
|
70
80
|
break;
|
|
71
|
-
const
|
|
72
|
-
if (
|
|
73
|
-
|
|
81
|
+
const listItem = line?.match(/^\s+-\s+(.+)$/);
|
|
82
|
+
if (activeListKey && listItem) {
|
|
83
|
+
const current = metadata[activeListKey];
|
|
84
|
+
if (Array.isArray(current))
|
|
85
|
+
current.push(listItem[1]?.trim() ?? "");
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
activeListKey = undefined;
|
|
89
|
+
const match = line?.match(/^([A-Za-z0-9_-]+):\s*(.*)$/);
|
|
90
|
+
if (!match)
|
|
91
|
+
continue;
|
|
92
|
+
const key = match[1];
|
|
93
|
+
const value = match[2]?.trim() ?? "";
|
|
94
|
+
if (LIST_METADATA_KEYS.has(key) && value.length === 0) {
|
|
95
|
+
metadata[key] = [];
|
|
96
|
+
activeListKey = key;
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
99
|
+
metadata[key] = value;
|
|
74
100
|
}
|
|
75
101
|
return metadata;
|
|
76
102
|
}
|
package/dist/markdown.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../src/markdown.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../src/markdown.ts"],"names":[],"mappings":"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"}
|
package/dist/metadata.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAe,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAe,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAiB,cAAc,EAAE,MAAM,YAAY,CAAC;AAS5E,oFAAoF;AACpF,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,cAAc,GAAG;IAC5D,QAAQ,EAAE,aAAa,CAAC;IACxB,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B,CA2CA"}
|
package/dist/metadata.js
CHANGED
|
@@ -7,7 +7,7 @@ const STATUSES = [
|
|
|
7
7
|
/** Normalize parsed frontmatter into asset metadata plus validation diagnostics. */
|
|
8
8
|
export function parseAssetMetadata(document) {
|
|
9
9
|
const diagnostics = [];
|
|
10
|
-
const rawStatus = document.metadata.status;
|
|
10
|
+
const rawStatus = metadataText(document.metadata.status);
|
|
11
11
|
const status = parseStatus(rawStatus);
|
|
12
12
|
const metadata = {
|
|
13
13
|
tags: listValue(document.metadata.tags),
|
|
@@ -25,9 +25,9 @@ export function parseAssetMetadata(document) {
|
|
|
25
25
|
message: `Invalid status "${rawStatus}". Expected one of: ${STATUSES.join(", ")}.`,
|
|
26
26
|
});
|
|
27
27
|
}
|
|
28
|
-
assignOptional(metadata, "id", optionalText(document.metadata.id));
|
|
29
|
-
assignOptional(metadata, "version", optionalText(document.metadata.version));
|
|
30
|
-
assignOptional(metadata, "owner", optionalText(document.metadata.owner));
|
|
28
|
+
assignOptional(metadata, "id", optionalText(metadataText(document.metadata.id)));
|
|
29
|
+
assignOptional(metadata, "version", optionalText(metadataText(document.metadata.version)));
|
|
30
|
+
assignOptional(metadata, "owner", optionalText(metadataText(document.metadata.owner)));
|
|
31
31
|
assignOptional(metadata, "status", status);
|
|
32
32
|
return {
|
|
33
33
|
metadata,
|
|
@@ -48,11 +48,17 @@ function optionalText(value) {
|
|
|
48
48
|
function listValue(value) {
|
|
49
49
|
if (!value)
|
|
50
50
|
return [];
|
|
51
|
+
if (Array.isArray(value)) {
|
|
52
|
+
return value.map((item) => item.trim()).filter(Boolean);
|
|
53
|
+
}
|
|
51
54
|
return value
|
|
52
55
|
.split(",")
|
|
53
56
|
.map((item) => item.trim())
|
|
54
57
|
.filter(Boolean);
|
|
55
58
|
}
|
|
59
|
+
function metadataText(value) {
|
|
60
|
+
return typeof value === "string" ? value : undefined;
|
|
61
|
+
}
|
|
56
62
|
function assignOptional(metadata, key, value) {
|
|
57
63
|
if (value !== undefined) {
|
|
58
64
|
metadata[key] = value;
|
package/dist/metadata.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAGA,MAAM,QAAQ,GAAkB;IAC9B,cAAc;IACd,QAAQ;IACR,YAAY;IACZ,UAAU;CACX,CAAC;AAEF,oFAAoF;AACpF,MAAM,UAAU,kBAAkB,CAAC,QAAwB;IAIzD,MAAM,WAAW,GAAiB,EAAE,CAAC;IACrC,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"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"}
|
package/dist/rules.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAA4B,MAAM,YAAY,CAAC;AAEpE,OAAO,KAAK,EAEV,OAAO,
|
|
1
|
+
{"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAA4B,MAAM,YAAY,CAAC;AAEpE,OAAO,KAAK,EAEV,OAAO,EAEP,cAAc,EACd,UAAU,EACV,QAAQ,EACT,MAAM,YAAY,CAAC;AAwIpB,8EAA8E;AAC9E,wBAAgB,QAAQ,CACtB,SAAS,EAAE,cAAc,EAAE,EAC3B,MAAM,EAAE,UAAU,EAClB,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,EAAE,CAOX;AA+TD,iFAAiF;AACjF,wBAAgB,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,GAAG,OAAO,CAQ3E"}
|
package/dist/rules.js
CHANGED
|
@@ -754,8 +754,8 @@ function skillReferencesSupersededAssetFindings(documents) {
|
|
|
754
754
|
if (!isSkillLocalReference(document))
|
|
755
755
|
return [];
|
|
756
756
|
const canonicalTargets = sharedContextTargets(document);
|
|
757
|
-
const supersededStatus = document.metadata.status === "deprecated" ||
|
|
758
|
-
document.metadata.status === "archived";
|
|
757
|
+
const supersededStatus = metadataText(document.metadata.status) === "deprecated" ||
|
|
758
|
+
metadataText(document.metadata.status) === "archived";
|
|
759
759
|
if (!supersededStatus && canonicalTargets.length === 0)
|
|
760
760
|
return [];
|
|
761
761
|
if (canonicalTargets.length === 0)
|
|
@@ -843,8 +843,8 @@ function assetReferencesSupersededAssetFindings(documents) {
|
|
|
843
843
|
document,
|
|
844
844
|
canonicalTargets: sharedContextTargets(document),
|
|
845
845
|
}))
|
|
846
|
-
.filter(({ document, canonicalTargets }) => document.metadata.status === "deprecated" ||
|
|
847
|
-
document.metadata.status === "archived" ||
|
|
846
|
+
.filter(({ document, canonicalTargets }) => metadataText(document.metadata.status) === "deprecated" ||
|
|
847
|
+
metadataText(document.metadata.status) === "archived" ||
|
|
848
848
|
canonicalTargets.length > 0)
|
|
849
849
|
.filter(({ canonicalTargets }) => canonicalTargets.length > 0);
|
|
850
850
|
return documents.flatMap((referencingDocument) => {
|
|
@@ -1057,11 +1057,16 @@ function markdownBodyLineIndexes(document) {
|
|
|
1057
1057
|
function listMetadataValue(value) {
|
|
1058
1058
|
if (!value)
|
|
1059
1059
|
return [];
|
|
1060
|
+
if (Array.isArray(value))
|
|
1061
|
+
return value.map((item) => item.trim()).filter(Boolean);
|
|
1060
1062
|
return value
|
|
1061
1063
|
.split(",")
|
|
1062
1064
|
.map((item) => item.trim())
|
|
1063
1065
|
.filter(Boolean);
|
|
1064
1066
|
}
|
|
1067
|
+
function metadataText(value) {
|
|
1068
|
+
return typeof value === "string" ? value : undefined;
|
|
1069
|
+
}
|
|
1065
1070
|
function matchingLineFindings(document, matcher) {
|
|
1066
1071
|
return document.lines.flatMap((line, index) => {
|
|
1067
1072
|
const partial = matcher(line);
|