@grimoire-cc/cli 0.14.0 → 0.15.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/bin.js +15 -5
- package/dist/bin.js.map +1 -1
- package/dist/commands/agent-paths.d.ts +11 -0
- package/dist/commands/agent-paths.d.ts.map +1 -0
- package/dist/commands/agent-paths.js +69 -0
- package/dist/commands/agent-paths.js.map +1 -0
- package/dist/commands/agent-skills.d.ts +10 -0
- package/dist/commands/agent-skills.d.ts.map +1 -0
- package/dist/commands/agent-skills.js +159 -0
- package/dist/commands/agent-skills.js.map +1 -0
- package/dist/commands/config.d.ts +7 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +62 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +237 -75
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/update.d.ts +1 -2
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +12 -8
- package/dist/commands/update.js.map +1 -1
- package/dist/enforce.d.ts +8 -10
- package/dist/enforce.d.ts.map +1 -1
- package/dist/enforce.js +38 -17
- package/dist/enforce.js.map +1 -1
- package/dist/frontmatter.d.ts +16 -0
- package/dist/frontmatter.d.ts.map +1 -0
- package/dist/frontmatter.js +74 -0
- package/dist/frontmatter.js.map +1 -0
- package/dist/grimoire-config.d.ts +6 -0
- package/dist/grimoire-config.d.ts.map +1 -0
- package/dist/grimoire-config.js +23 -0
- package/dist/grimoire-config.js.map +1 -0
- package/dist/prompt.d.ts.map +1 -1
- package/dist/prompt.js +13 -8
- package/dist/prompt.js.map +1 -1
- package/dist/remove.d.ts +4 -0
- package/dist/remove.d.ts.map +1 -1
- package/dist/remove.js +8 -0
- package/dist/remove.js.map +1 -1
- package/dist/resolve.d.ts.map +1 -1
- package/dist/resolve.js +12 -5
- package/dist/resolve.js.map +1 -1
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +4 -8
- package/dist/setup.js.map +1 -1
- package/package.json +1 -1
- package/packs/frontend-pack/agents/grimoire.angular-coder.md +193 -0
- package/packs/frontend-pack/grimoire.json +7 -0
- package/dist/commands/enforce-agent.d.ts +0 -5
- package/dist/commands/enforce-agent.d.ts.map +0 -1
- package/dist/commands/enforce-agent.js +0 -94
- package/dist/commands/enforce-agent.js.map +0 -1
package/dist/commands/list.js
CHANGED
|
@@ -2,6 +2,15 @@ import { existsSync, readFileSync, readdirSync, statSync } from 'fs';
|
|
|
2
2
|
import { basename, join } from 'path';
|
|
3
3
|
import * as clack from '@clack/prompts';
|
|
4
4
|
import { readManifest } from '../enforce.js';
|
|
5
|
+
import { parseAgentSkills } from '../frontmatter.js';
|
|
6
|
+
import { removeSingleItem } from '../remove.js';
|
|
7
|
+
import { checkUpdates } from './update.js';
|
|
8
|
+
import { copyItems } from '../copy.js';
|
|
9
|
+
import { runConfig } from './config.js';
|
|
10
|
+
import { runAgentSkillsFor } from './agent-skills.js';
|
|
11
|
+
import { runAgentPathsFor } from './agent-paths.js';
|
|
12
|
+
import { readGrimoireConfig } from '../grimoire-config.js';
|
|
13
|
+
import { ensureEnforceHooks, removeSubagentHooksFor } from '../enforce.js';
|
|
5
14
|
function readAgentFullMeta(agentPath) {
|
|
6
15
|
let content;
|
|
7
16
|
try {
|
|
@@ -59,9 +68,13 @@ function wrapText(text, maxWidth) {
|
|
|
59
68
|
return lines.join('\n');
|
|
60
69
|
}
|
|
61
70
|
function formatDescription(raw) {
|
|
62
|
-
const maxWidth = Math.max(40, (process.stdout.columns ?? 80) -
|
|
63
|
-
const unescaped = raw.replace(
|
|
64
|
-
const stripped = unescaped
|
|
71
|
+
const maxWidth = Math.max(40, (process.stdout.columns ?? 80) - 6);
|
|
72
|
+
const unescaped = raw.replace(/\\+n/g, '\n');
|
|
73
|
+
const stripped = unescaped
|
|
74
|
+
.replace(/<example>[\s\S]*?<\/example>/g, '')
|
|
75
|
+
.replace(/Examples?\s+of\s+when\s+to\s+use\s+this\s+agent\s*:?\s*/gi, '')
|
|
76
|
+
.replace(/\n*Examples?\s*:\s*$/i, '')
|
|
77
|
+
.trim();
|
|
65
78
|
return stripped
|
|
66
79
|
.split('\n')
|
|
67
80
|
.map((line) => (line.trim() === '' ? '' : wrapText(line, maxWidth)))
|
|
@@ -69,15 +82,220 @@ function formatDescription(raw) {
|
|
|
69
82
|
.replace(/\n{3,}/g, '\n\n')
|
|
70
83
|
.trim();
|
|
71
84
|
}
|
|
85
|
+
// --- Detail display helpers ---
|
|
86
|
+
function buildAgentDetail(agentsDir, name, filePatterns) {
|
|
87
|
+
const agentPath = join(agentsDir, `${name}.md`);
|
|
88
|
+
const meta = readAgentFullMeta(agentPath);
|
|
89
|
+
const desc = formatDescription(meta.description || '');
|
|
90
|
+
const lines = [];
|
|
91
|
+
if (desc)
|
|
92
|
+
lines.push(desc);
|
|
93
|
+
lines.push(`Model: ${meta.model || 'inherit'}`);
|
|
94
|
+
try {
|
|
95
|
+
const content = readFileSync(agentPath, 'utf-8');
|
|
96
|
+
const skills = parseAgentSkills(content);
|
|
97
|
+
if (skills.length > 0) {
|
|
98
|
+
lines.push(`Skills: ${skills.join(', ')}`);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
catch { /* no skills */ }
|
|
102
|
+
const ep = filePatterns?.length ? filePatterns.join(', ') : '(none)';
|
|
103
|
+
lines.push(`Enforcement paths: ${ep}`);
|
|
104
|
+
return lines.join('\n');
|
|
105
|
+
}
|
|
106
|
+
function buildSkillDetail(skillsDir, name, skillTriggers, skillManifestDescs) {
|
|
107
|
+
const rawDesc = readSkillDescription(join(skillsDir, name, 'SKILL.md')) ||
|
|
108
|
+
skillManifestDescs.get(name) ||
|
|
109
|
+
'';
|
|
110
|
+
const triggers = skillTriggers.get(name);
|
|
111
|
+
const desc = formatDescription(rawDesc);
|
|
112
|
+
const kw = triggers?.keywords?.length ? triggers.keywords.join(', ') : '(none)';
|
|
113
|
+
const ext = triggers?.file_extensions?.length ? triggers.file_extensions.join(', ') : '(none)';
|
|
114
|
+
const pat = triggers?.patterns?.length ? triggers.patterns.join(', ') : '(none)';
|
|
115
|
+
const fp = triggers?.file_paths?.length ? triggers.file_paths.join(', ') : '(none)';
|
|
116
|
+
const lines = [];
|
|
117
|
+
if (desc)
|
|
118
|
+
lines.push(desc);
|
|
119
|
+
lines.push(`Keywords: ${kw}`);
|
|
120
|
+
lines.push(`File extensions: ${ext}`);
|
|
121
|
+
lines.push(`Patterns: ${pat}`);
|
|
122
|
+
lines.push(`File paths: ${fp}`);
|
|
123
|
+
return lines.join('\n');
|
|
124
|
+
}
|
|
72
125
|
// --- Main command ---
|
|
73
126
|
export async function runList(projectDir) {
|
|
74
127
|
const agentsDir = join(projectDir, '.claude', 'agents');
|
|
75
128
|
const skillsDir = join(projectDir, '.claude', 'skills');
|
|
129
|
+
// Initial scan to check if anything exists
|
|
130
|
+
const scanResult = scanInstalledItems(projectDir, agentsDir, skillsDir);
|
|
131
|
+
if (!scanResult) {
|
|
132
|
+
clack.log.warn('No grimoire-managed items found. Run `grimoire add` to get started.');
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
// Check for available updates once
|
|
136
|
+
let updateResults = checkUpdates(projectDir);
|
|
137
|
+
let updateMap = buildUpdateMap(updateResults);
|
|
138
|
+
clack.intro('Grimoire — Installed Items');
|
|
139
|
+
// Outer loop — item list
|
|
140
|
+
while (true) {
|
|
141
|
+
const scan = scanInstalledItems(projectDir, agentsDir, skillsDir);
|
|
142
|
+
if (!scan) {
|
|
143
|
+
clack.log.info('No items remaining.');
|
|
144
|
+
break;
|
|
145
|
+
}
|
|
146
|
+
const { agentFiles, skillDirs, skillTriggers, skillManifestDescs } = scan;
|
|
147
|
+
const options = [];
|
|
148
|
+
for (const f of agentFiles) {
|
|
149
|
+
const name = f.replace(/\.md$/, '');
|
|
150
|
+
const meta = readAgentFullMeta(join(agentsDir, f));
|
|
151
|
+
const desc = meta.description;
|
|
152
|
+
options.push({
|
|
153
|
+
value: { kind: 'agent', name },
|
|
154
|
+
label: `[agent] ${name}`,
|
|
155
|
+
...(desc ? { hint: desc.length > 80 ? desc.slice(0, 79) + '…' : desc } : {}),
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
for (const d of skillDirs) {
|
|
159
|
+
const desc = readSkillDescription(join(skillsDir, d, 'SKILL.md')) ||
|
|
160
|
+
skillManifestDescs.get(d) ||
|
|
161
|
+
'';
|
|
162
|
+
options.push({
|
|
163
|
+
value: { kind: 'skill', name: d },
|
|
164
|
+
label: `[skill] ${d}`,
|
|
165
|
+
...(desc ? { hint: desc.length > 80 ? desc.slice(0, 79) + '…' : desc } : {}),
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
// Settings option at the bottom
|
|
169
|
+
options.push({
|
|
170
|
+
value: { kind: 'settings' },
|
|
171
|
+
label: '⚙ Settings',
|
|
172
|
+
hint: 'global configuration',
|
|
173
|
+
});
|
|
174
|
+
const selected = await clack.select({
|
|
175
|
+
message: 'Select an item to manage (Ctrl+C to exit)',
|
|
176
|
+
options,
|
|
177
|
+
});
|
|
178
|
+
if (clack.isCancel(selected))
|
|
179
|
+
break;
|
|
180
|
+
// Handle settings
|
|
181
|
+
if (selected.kind === 'settings') {
|
|
182
|
+
await runConfig(projectDir, { quiet: true });
|
|
183
|
+
continue;
|
|
184
|
+
}
|
|
185
|
+
// Show detail and action menu for agent/skill
|
|
186
|
+
const itemName = selected.name;
|
|
187
|
+
const isAgent = selected.kind === 'agent';
|
|
188
|
+
// Show detail via note
|
|
189
|
+
const detail = isAgent
|
|
190
|
+
? buildAgentDetail(agentsDir, itemName, scan.agentFilePatterns.get(itemName))
|
|
191
|
+
: buildSkillDetail(skillsDir, itemName, skillTriggers, skillManifestDescs);
|
|
192
|
+
clack.note(detail, itemName);
|
|
193
|
+
// Action menu — single action then exit
|
|
194
|
+
const actionOptions = [
|
|
195
|
+
{ value: 'remove', label: 'Remove' },
|
|
196
|
+
];
|
|
197
|
+
const updateInfo = updateMap.get(itemName);
|
|
198
|
+
if (updateInfo?.hasUpdate) {
|
|
199
|
+
actionOptions.push({
|
|
200
|
+
value: 'update',
|
|
201
|
+
label: `Update to v${updateInfo.availableVersion ?? '?'}`,
|
|
202
|
+
hint: `installed: v${updateInfo.installedVersion ?? '?'}`,
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
if (isAgent) {
|
|
206
|
+
actionOptions.push({
|
|
207
|
+
value: 'manage-skills',
|
|
208
|
+
label: 'Manage skills',
|
|
209
|
+
});
|
|
210
|
+
actionOptions.push({
|
|
211
|
+
value: 'manage-paths',
|
|
212
|
+
label: 'Manage paths',
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
const action = await clack.select({
|
|
216
|
+
message: 'Choose an action',
|
|
217
|
+
options: actionOptions,
|
|
218
|
+
});
|
|
219
|
+
if (clack.isCancel(action))
|
|
220
|
+
break;
|
|
221
|
+
if (action === 'remove') {
|
|
222
|
+
const confirmed = await clack.confirm({
|
|
223
|
+
message: `Remove ${itemName}?`,
|
|
224
|
+
initialValue: false,
|
|
225
|
+
});
|
|
226
|
+
if (!clack.isCancel(confirmed) && confirmed) {
|
|
227
|
+
const item = {
|
|
228
|
+
type: isAgent ? 'agent' : 'skill',
|
|
229
|
+
name: itemName,
|
|
230
|
+
sourcePath: '',
|
|
231
|
+
description: '',
|
|
232
|
+
};
|
|
233
|
+
removeSingleItem(item, projectDir);
|
|
234
|
+
clack.log.success(`Removed ${itemName}.`);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
if (action === 'update') {
|
|
238
|
+
const info = updateMap.get(itemName);
|
|
239
|
+
const item = {
|
|
240
|
+
type: isAgent ? 'agent' : 'skill',
|
|
241
|
+
name: itemName,
|
|
242
|
+
sourcePath: info.sourcePath,
|
|
243
|
+
description: '',
|
|
244
|
+
};
|
|
245
|
+
copyItems([item], info.packDir, projectDir);
|
|
246
|
+
clack.log.success(`Updated ${itemName} to v${info.availableVersion ?? '?'}.`);
|
|
247
|
+
// Re-apply enforce hooks if active
|
|
248
|
+
try {
|
|
249
|
+
const config = readGrimoireConfig(projectDir);
|
|
250
|
+
if (config.enforcement) {
|
|
251
|
+
const manifest = readManifest(projectDir);
|
|
252
|
+
const agentsWithPatterns = Object.entries(manifest.agents)
|
|
253
|
+
.filter(([, entry]) => entry.file_patterns && entry.file_patterns.length > 0)
|
|
254
|
+
.map(([n]) => n);
|
|
255
|
+
if (agentsWithPatterns.length > 0) {
|
|
256
|
+
ensureEnforceHooks(projectDir, agentsWithPatterns);
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
catch {
|
|
261
|
+
// No manifest or config
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
if (action === 'manage-skills') {
|
|
265
|
+
await runAgentSkillsFor(projectDir, itemName);
|
|
266
|
+
}
|
|
267
|
+
if (action === 'manage-paths') {
|
|
268
|
+
await runAgentPathsFor(projectDir, itemName);
|
|
269
|
+
// Re-sync enforce hooks after path changes
|
|
270
|
+
try {
|
|
271
|
+
const config = readGrimoireConfig(projectDir);
|
|
272
|
+
if (config.enforcement) {
|
|
273
|
+
const manifest = readManifest(projectDir);
|
|
274
|
+
const currentPatterns = manifest.agents[itemName]?.file_patterns ?? [];
|
|
275
|
+
if (currentPatterns.length === 0) {
|
|
276
|
+
removeSubagentHooksFor(projectDir, itemName);
|
|
277
|
+
}
|
|
278
|
+
const agentsWithPatterns = Object.entries(manifest.agents)
|
|
279
|
+
.filter(([, entry]) => entry.file_patterns && entry.file_patterns.length > 0)
|
|
280
|
+
.map(([n]) => n);
|
|
281
|
+
if (agentsWithPatterns.length > 0) {
|
|
282
|
+
ensureEnforceHooks(projectDir, agentsWithPatterns);
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
catch {
|
|
287
|
+
// No manifest or config
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
break; // exit after any completed action
|
|
291
|
+
}
|
|
292
|
+
clack.outro('Done.');
|
|
293
|
+
}
|
|
294
|
+
// --- Helpers ---
|
|
295
|
+
function scanInstalledItems(projectDir, agentsDir, skillsDir) {
|
|
76
296
|
let managedAgentNames = null;
|
|
77
297
|
let managedSkillDirNames = null;
|
|
78
|
-
const enforcedAgents = new Set();
|
|
79
298
|
const agentFilePatterns = new Map();
|
|
80
|
-
// skill triggers keyed by dir name
|
|
81
299
|
const skillTriggers = new Map();
|
|
82
300
|
const skillManifestDescs = new Map();
|
|
83
301
|
try {
|
|
@@ -85,8 +303,6 @@ export async function runList(projectDir) {
|
|
|
85
303
|
managedAgentNames = new Set(Object.keys(manifest.agents));
|
|
86
304
|
managedSkillDirNames = new Set(manifest.skills.map((s) => basename(s.path)));
|
|
87
305
|
for (const [name, entry] of Object.entries(manifest.agents)) {
|
|
88
|
-
if (entry.enforce)
|
|
89
|
-
enforcedAgents.add(name);
|
|
90
306
|
if (entry.file_patterns?.length)
|
|
91
307
|
agentFilePatterns.set(name, entry.file_patterns);
|
|
92
308
|
}
|
|
@@ -99,86 +315,32 @@ export async function runList(projectDir) {
|
|
|
99
315
|
}
|
|
100
316
|
}
|
|
101
317
|
catch {
|
|
102
|
-
|
|
318
|
+
return null;
|
|
103
319
|
}
|
|
104
|
-
const
|
|
105
|
-
const agentFiles = existsSync(agentsDir) && agentNames !== null
|
|
320
|
+
const agentFiles = existsSync(agentsDir) && managedAgentNames !== null
|
|
106
321
|
? readdirSync(agentsDir)
|
|
107
|
-
.filter((f) => f.endsWith('.md') &&
|
|
322
|
+
.filter((f) => f.endsWith('.md') && managedAgentNames.has(f.replace(/\.md$/, '')))
|
|
108
323
|
.sort()
|
|
109
324
|
: [];
|
|
110
|
-
const
|
|
111
|
-
const skillDirs = existsSync(skillsDir) && skillDirNames !== null
|
|
325
|
+
const skillDirs = existsSync(skillsDir) && managedSkillDirNames !== null
|
|
112
326
|
? readdirSync(skillsDir)
|
|
113
327
|
.filter((f) => {
|
|
114
328
|
const full = join(skillsDir, f);
|
|
115
329
|
return (statSync(full).isDirectory() &&
|
|
116
330
|
existsSync(join(full, 'SKILL.md')) &&
|
|
117
|
-
|
|
331
|
+
managedSkillDirNames.has(f));
|
|
118
332
|
})
|
|
119
333
|
.sort()
|
|
120
334
|
: [];
|
|
121
|
-
if (agentFiles.length === 0 && skillDirs.length === 0)
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
const
|
|
127
|
-
for (const
|
|
128
|
-
|
|
129
|
-
const meta = readAgentFullMeta(join(agentsDir, f));
|
|
130
|
-
const desc = meta.description;
|
|
131
|
-
options.push({
|
|
132
|
-
value: { kind: 'agent', name },
|
|
133
|
-
label: `[agent] ${name}`,
|
|
134
|
-
...(desc ? { hint: desc.length > 80 ? desc.slice(0, 79) + '…' : desc } : {}),
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
for (const d of skillDirs) {
|
|
138
|
-
const desc = readSkillDescription(join(skillsDir, d, 'SKILL.md')) ||
|
|
139
|
-
skillManifestDescs.get(d) ||
|
|
140
|
-
'';
|
|
141
|
-
options.push({
|
|
142
|
-
value: { kind: 'skill', name: d },
|
|
143
|
-
label: `[skill] ${d}`,
|
|
144
|
-
...(desc ? { hint: desc.length > 80 ? desc.slice(0, 79) + '…' : desc } : {}),
|
|
145
|
-
});
|
|
146
|
-
}
|
|
147
|
-
clack.intro('Grimoire — Installed Items');
|
|
148
|
-
while (true) {
|
|
149
|
-
const selected = await clack.select({
|
|
150
|
-
message: 'Select an item to view details (Ctrl+C to exit)',
|
|
151
|
-
options,
|
|
152
|
-
});
|
|
153
|
-
if (clack.isCancel(selected))
|
|
154
|
-
break;
|
|
155
|
-
if (selected.kind === 'agent') {
|
|
156
|
-
const meta = readAgentFullMeta(join(agentsDir, `${selected.name}.md`));
|
|
157
|
-
const enforced = enforcedAgents.has(selected.name);
|
|
158
|
-
const patterns = agentFilePatterns.get(selected.name);
|
|
159
|
-
const desc = formatDescription(meta.description || '');
|
|
160
|
-
clack.log.message(` Description:\n${desc.split('\n').map((l) => ` ${l}`).join('\n')}`);
|
|
161
|
-
clack.log.message(` Model: ${meta.model || 'inherit'}`);
|
|
162
|
-
clack.log.message(` Tools: ${meta.tools || '(not specified)'}`);
|
|
163
|
-
clack.log.message(` Enforce: ${enforced ? `yes (file patterns: ${patterns?.join(', ') ?? 'none'})` : 'no'}`);
|
|
164
|
-
}
|
|
165
|
-
else {
|
|
166
|
-
const rawDesc = readSkillDescription(join(skillsDir, selected.name, 'SKILL.md')) ||
|
|
167
|
-
skillManifestDescs.get(selected.name) ||
|
|
168
|
-
'';
|
|
169
|
-
const triggers = skillTriggers.get(selected.name);
|
|
170
|
-
const desc = formatDescription(rawDesc);
|
|
171
|
-
const kw = triggers?.keywords?.length ? triggers.keywords.join(', ') : '(none)';
|
|
172
|
-
const ext = triggers?.file_extensions?.length ? triggers.file_extensions.join(', ') : '(none)';
|
|
173
|
-
const pat = triggers?.patterns?.length ? triggers.patterns.join(', ') : '(none)';
|
|
174
|
-
const fp = triggers?.file_paths?.length ? triggers.file_paths.join(', ') : '(none)';
|
|
175
|
-
clack.log.message(` Description:\n${desc.split('\n').map((l) => ` ${l}`).join('\n')}`);
|
|
176
|
-
clack.log.message(` Keywords: ${kw}`);
|
|
177
|
-
clack.log.message(` File extensions: ${ext}`);
|
|
178
|
-
clack.log.message(` Patterns: ${pat}`);
|
|
179
|
-
clack.log.message(` File paths: ${fp}`);
|
|
180
|
-
}
|
|
335
|
+
if (agentFiles.length === 0 && skillDirs.length === 0)
|
|
336
|
+
return null;
|
|
337
|
+
return { agentFiles, skillDirs, agentFilePatterns, skillTriggers, skillManifestDescs };
|
|
338
|
+
}
|
|
339
|
+
function buildUpdateMap(results) {
|
|
340
|
+
const map = new Map();
|
|
341
|
+
for (const r of results) {
|
|
342
|
+
map.set(r.item.name, r);
|
|
181
343
|
}
|
|
182
|
-
|
|
344
|
+
return map;
|
|
183
345
|
}
|
|
184
346
|
//# sourceMappingURL=list.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { InstallItem } from '../types.js';
|
|
2
|
-
interface UpdateCheckResult {
|
|
2
|
+
export interface UpdateCheckResult {
|
|
3
3
|
readonly item: InstallItem;
|
|
4
4
|
readonly installedVersion: string | undefined;
|
|
5
5
|
readonly availableVersion: string | undefined;
|
|
@@ -9,5 +9,4 @@ interface UpdateCheckResult {
|
|
|
9
9
|
}
|
|
10
10
|
export declare function checkUpdates(projectDir: string): readonly UpdateCheckResult[];
|
|
11
11
|
export declare function runUpdate(cwd?: string | undefined): Promise<void>;
|
|
12
|
-
export {};
|
|
13
12
|
//# sourceMappingURL=update.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,iBAAiB,EAAE,CAyD7E;AAED,wBAAsB,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CA+EvE"}
|
package/dist/commands/update.js
CHANGED
|
@@ -6,6 +6,7 @@ import { copyItems } from '../copy.js';
|
|
|
6
6
|
import { printSummary } from '../summary.js';
|
|
7
7
|
import { readFrontmatterVersion, isNewer } from '../version.js';
|
|
8
8
|
import { readManifest, ensureEnforceHooks } from '../enforce.js';
|
|
9
|
+
import { readGrimoireConfig } from '../grimoire-config.js';
|
|
9
10
|
export function checkUpdates(projectDir) {
|
|
10
11
|
const installed = scanInstalled(projectDir);
|
|
11
12
|
const packs = loadAllPacks();
|
|
@@ -104,18 +105,21 @@ export async function runUpdate(cwd) {
|
|
|
104
105
|
allResults.push(...copyResults);
|
|
105
106
|
}
|
|
106
107
|
printSummary({ packs: [], results: allResults });
|
|
107
|
-
// Re-apply enforce hooks
|
|
108
|
+
// Re-apply enforce hooks if enforcement is active
|
|
108
109
|
try {
|
|
109
|
-
const
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
.
|
|
113
|
-
|
|
114
|
-
|
|
110
|
+
const config = readGrimoireConfig(projectDir);
|
|
111
|
+
if (config.enforcement) {
|
|
112
|
+
const manifest = readManifest(projectDir);
|
|
113
|
+
const agentsWithPatterns = Object.entries(manifest.agents)
|
|
114
|
+
.filter(([, entry]) => entry.file_patterns && entry.file_patterns.length > 0)
|
|
115
|
+
.map(([name]) => name);
|
|
116
|
+
if (agentsWithPatterns.length > 0) {
|
|
117
|
+
ensureEnforceHooks(projectDir, agentsWithPatterns);
|
|
118
|
+
}
|
|
115
119
|
}
|
|
116
120
|
}
|
|
117
121
|
catch {
|
|
118
|
-
// No manifest — nothing to enforce
|
|
122
|
+
// No manifest or config — nothing to enforce
|
|
119
123
|
}
|
|
120
124
|
clack.outro('Update complete.');
|
|
121
125
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
|
package/dist/enforce.d.ts
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Utilities for
|
|
3
|
-
* Manages
|
|
2
|
+
* Utilities for agent enforcement.
|
|
3
|
+
* Manages enforcement hook entries in settings.json and reads the skills manifest.
|
|
4
4
|
*/
|
|
5
5
|
export interface ManifestAgentEntry {
|
|
6
6
|
file_patterns?: string[];
|
|
7
|
-
enforce?: boolean;
|
|
8
|
-
paired_skill?: string;
|
|
9
|
-
has_paired_skill?: boolean;
|
|
10
7
|
}
|
|
11
8
|
interface ManifestSkill {
|
|
12
9
|
path: string;
|
|
@@ -28,11 +25,6 @@ interface HookEntry {
|
|
|
28
25
|
}
|
|
29
26
|
export declare function readManifest(projectDir: string): SkillsManifest;
|
|
30
27
|
export declare function writeManifest(projectDir: string, manifest: SkillsManifest): void;
|
|
31
|
-
/**
|
|
32
|
-
* Sets the enforce flag for a named agent in the manifest.
|
|
33
|
-
* Throws if the agent has no file_patterns (cannot be enforced without them).
|
|
34
|
-
*/
|
|
35
|
-
export declare function setEnforce(manifest: SkillsManifest, agentName: string, enabled: boolean): void;
|
|
36
28
|
export interface AgentMeta {
|
|
37
29
|
name: string;
|
|
38
30
|
description: string;
|
|
@@ -53,6 +45,12 @@ export declare function hasSubagentHook(entries: readonly HookEntry[], agentName
|
|
|
53
45
|
* Idempotently adds PreToolUse + SubagentStart/Stop hook entries for all enforced agents.
|
|
54
46
|
*/
|
|
55
47
|
export declare function ensureEnforceHooks(projectDir: string, agentNames: readonly string[]): void;
|
|
48
|
+
/**
|
|
49
|
+
* Removes SubagentStart/Stop hook entries for a specific agent.
|
|
50
|
+
* Leaves all other hooks (PreToolUse, other agents) intact.
|
|
51
|
+
* No-op if the file or hooks don't exist.
|
|
52
|
+
*/
|
|
53
|
+
export declare function removeSubagentHooksFor(projectDir: string, agentName: string): void;
|
|
56
54
|
/**
|
|
57
55
|
* Removes all enforcement-related hook entries from settings.json.
|
|
58
56
|
* No-op if the file or hooks don't exist.
|
package/dist/enforce.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enforce.d.ts","sourceRoot":"","sources":["../src/enforce.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,MAAM,WAAW,kBAAkB;IACjC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"enforce.d.ts","sourceRoot":"","sources":["../src/enforce.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,MAAM,WAAW,kBAAkB;IACjC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;CAC5C;AAMD,UAAU,SAAS;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjD;AAWD,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,CAa/D;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,IAAI,CAGhF;AAMD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAmB1D;AA4BD;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,GAAG,OAAO,CAE/E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,SAAS,SAAS,EAAE,EAC7B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,kBAAkB,GAAG,iBAAiB,GAC3C,OAAO,CAMT;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CA8C1F;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAkClF;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAiC3D"}
|
package/dist/enforce.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Utilities for
|
|
3
|
-
* Manages
|
|
2
|
+
* Utilities for agent enforcement.
|
|
3
|
+
* Manages enforcement hook entries in settings.json and reads the skills manifest.
|
|
4
4
|
*/
|
|
5
5
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
|
|
6
6
|
import { join } from 'path';
|
|
@@ -12,26 +12,17 @@ export function readManifest(projectDir) {
|
|
|
12
12
|
if (!existsSync(manifestPath)) {
|
|
13
13
|
throw new Error(`Manifest not found: ${manifestPath}`);
|
|
14
14
|
}
|
|
15
|
-
|
|
15
|
+
const manifest = JSON.parse(readFileSync(manifestPath, 'utf-8'));
|
|
16
|
+
// Strip leftover enforce flags from agent entries (migrated away)
|
|
17
|
+
for (const entry of Object.values(manifest.agents)) {
|
|
18
|
+
delete entry['enforce'];
|
|
19
|
+
}
|
|
20
|
+
return manifest;
|
|
16
21
|
}
|
|
17
22
|
export function writeManifest(projectDir, manifest) {
|
|
18
23
|
const manifestPath = join(projectDir, '.claude', 'skills-manifest.json');
|
|
19
24
|
writeFileSync(manifestPath, JSON.stringify(manifest, null, 2) + '\n');
|
|
20
25
|
}
|
|
21
|
-
/**
|
|
22
|
-
* Sets the enforce flag for a named agent in the manifest.
|
|
23
|
-
* Throws if the agent has no file_patterns (cannot be enforced without them).
|
|
24
|
-
*/
|
|
25
|
-
export function setEnforce(manifest, agentName, enabled) {
|
|
26
|
-
const entry = manifest.agents[agentName];
|
|
27
|
-
if (!entry) {
|
|
28
|
-
throw new Error(`Agent "${agentName}" not found in manifest`);
|
|
29
|
-
}
|
|
30
|
-
if (enabled && (!entry.file_patterns || entry.file_patterns.length === 0)) {
|
|
31
|
-
throw new Error(`Agent "${agentName}" has no file_patterns — cannot enable enforcement`);
|
|
32
|
-
}
|
|
33
|
-
manifest.agents[agentName] = { ...entry, enforce: enabled };
|
|
34
|
-
}
|
|
35
26
|
/**
|
|
36
27
|
* Reads name and description from YAML frontmatter of an agent .md file.
|
|
37
28
|
*/
|
|
@@ -132,6 +123,36 @@ export function ensureEnforceHooks(projectDir, agentNames) {
|
|
|
132
123
|
settings.hooks = hooks;
|
|
133
124
|
writeSettings(projectDir, settings);
|
|
134
125
|
}
|
|
126
|
+
/**
|
|
127
|
+
* Removes SubagentStart/Stop hook entries for a specific agent.
|
|
128
|
+
* Leaves all other hooks (PreToolUse, other agents) intact.
|
|
129
|
+
* No-op if the file or hooks don't exist.
|
|
130
|
+
*/
|
|
131
|
+
export function removeSubagentHooksFor(projectDir, agentName) {
|
|
132
|
+
const settings = readSettings(projectDir);
|
|
133
|
+
if (!settings.hooks)
|
|
134
|
+
return;
|
|
135
|
+
const hooks = settings.hooks;
|
|
136
|
+
if (hooks['SubagentStart']) {
|
|
137
|
+
hooks['SubagentStart'] = hooks['SubagentStart'].filter((e) => !(e.matcher === agentName &&
|
|
138
|
+
e.hooks.some((h) => h.command.includes('--subagent-start') && h.command.includes(`--agent=${agentName}`))));
|
|
139
|
+
if (hooks['SubagentStart'].length === 0)
|
|
140
|
+
delete hooks['SubagentStart'];
|
|
141
|
+
}
|
|
142
|
+
if (hooks['SubagentStop']) {
|
|
143
|
+
hooks['SubagentStop'] = hooks['SubagentStop'].filter((e) => !(e.matcher === agentName &&
|
|
144
|
+
e.hooks.some((h) => h.command.includes('--subagent-stop') && h.command.includes(`--agent=${agentName}`))));
|
|
145
|
+
if (hooks['SubagentStop'].length === 0)
|
|
146
|
+
delete hooks['SubagentStop'];
|
|
147
|
+
}
|
|
148
|
+
if (Object.keys(hooks).length > 0) {
|
|
149
|
+
settings.hooks = hooks;
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
delete settings.hooks;
|
|
153
|
+
}
|
|
154
|
+
writeSettings(projectDir, settings);
|
|
155
|
+
}
|
|
135
156
|
/**
|
|
136
157
|
* Removes all enforcement-related hook entries from settings.json.
|
|
137
158
|
* No-op if the file or hooks don't exist.
|