smart-spec-kit-mcp 2.2.6 → 2.2.7
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 +73 -1
- package/dist/tools/agentTools.d.ts +2 -1
- package/dist/tools/agentTools.d.ts.map +1 -1
- package/dist/tools/agentTools.js +21 -22
- package/dist/tools/agentTools.js.map +1 -1
- package/dist/utils/agentLoader.d.ts +53 -0
- package/dist/utils/agentLoader.d.ts.map +1 -0
- package/dist/utils/agentLoader.js +225 -0
- package/dist/utils/agentLoader.js.map +1 -0
- package/dist/utils/starterKitInstaller.d.ts.map +1 -1
- package/dist/utils/starterKitInstaller.js +27 -1
- package/dist/utils/starterKitInstaller.js.map +1 -1
- package/docs/DOCUMENTATION.md +247 -6
- package/package.json +1 -1
- package/starter-kit/agents/GovAgent.md +53 -0
- package/starter-kit/agents/PlanAgent.md +51 -0
- package/starter-kit/agents/SpecAgent.md +51 -0
- package/starter-kit/agents/TestAgent.md +52 -0
- package/starter-kit/agents/_CustomAgent.template.md +69 -0
- package/starter-kit/templates/bugfix-report.md +22 -2
- package/starter-kit/templates/functional-spec.md +12 -1
- package/starter-kit/templates/plan-template.md +6 -1
- package/starter-kit/templates/tasks-template.md +4 -3
package/README.md
CHANGED
|
@@ -100,6 +100,12 @@ smart-spec-kit-mcp/
|
|
|
100
100
|
│ │ ├── feature-full.yaml # 5-step (détaillé)
|
|
101
101
|
│ │ ├── bugfix-quick.yaml # 2-step (bugfix rapide)
|
|
102
102
|
│ │ └── bugfix.yaml
|
|
103
|
+
│ ├── agents/ # Agents IA customisables
|
|
104
|
+
│ │ ├── SpecAgent.md # Rédacteur de spécifications
|
|
105
|
+
│ │ ├── PlanAgent.md # Planificateur technique
|
|
106
|
+
│ │ ├── GovAgent.md # Validateur gouvernance
|
|
107
|
+
│ │ ├── TestAgent.md # Stratège de tests
|
|
108
|
+
│ │ └── _CustomAgent.template.md # Template pour créer vos agents
|
|
103
109
|
│ ├── rules/ # Règles de validation
|
|
104
110
|
│ │ ├── security-rules.md # Règles OWASP
|
|
105
111
|
│ │ └── rgpd-rules.md # Conformité GDPR
|
|
@@ -120,6 +126,7 @@ votre-projet/
|
|
|
120
126
|
│ ├── prompts/ # Override les prompts par défaut
|
|
121
127
|
│ ├── templates/ # Override les templates par défaut
|
|
122
128
|
│ ├── workflows/ # Vos workflows personnalisés
|
|
129
|
+
│ ├── agents/ # Vos agents personnalisés ← NOUVEAU
|
|
123
130
|
│ ├── rules/ # Vos règles de validation
|
|
124
131
|
│ └── memory/
|
|
125
132
|
│ └── constitution.md # Principes de votre projet
|
|
@@ -127,7 +134,7 @@ votre-projet/
|
|
|
127
134
|
└── validations/ # Rapports de validation
|
|
128
135
|
```
|
|
129
136
|
|
|
130
|
-
**Note**: Les workflows et
|
|
137
|
+
**Note**: Les workflows, templates et agents par défaut viennent de `starter-kit/` du package.
|
|
131
138
|
Vous pouvez personnaliser en créant des fichiers dans `.spec-kit/`.
|
|
132
139
|
|
|
133
140
|
---
|
|
@@ -263,6 +270,71 @@ steps:
|
|
|
263
270
|
description: "Génère le plan"
|
|
264
271
|
```
|
|
265
272
|
|
|
273
|
+
#### À propos des "Agents"
|
|
274
|
+
|
|
275
|
+
⚠️ **Important** : Les agents Spec-Kit (SpecAgent, PlanAgent, GovAgent, TestAgent) **ne sont PAS** des agents GitHub Copilot.
|
|
276
|
+
|
|
277
|
+
Ce sont des **system prompts prédéfinis** qui guident le comportement de Copilot :
|
|
278
|
+
|
|
279
|
+
| Agent | Rôle | Fichier |
|
|
280
|
+
|-------|------|---------|
|
|
281
|
+
| **SpecAgent** | Rédacteur de spécifications | `SpecAgent.md` |
|
|
282
|
+
| **PlanAgent** | Planificateur technique | `PlanAgent.md` |
|
|
283
|
+
| **GovAgent** | Validateur de gouvernance | `GovAgent.md` |
|
|
284
|
+
| **TestAgent** | Stratège de tests | `TestAgent.md` |
|
|
285
|
+
|
|
286
|
+
Quand vous mettez `agent: SpecAgent` dans une étape, Spec-Kit envoie le system prompt de SpecAgent à Copilot.
|
|
287
|
+
|
|
288
|
+
#### Créer un Agent Personnalisé
|
|
289
|
+
|
|
290
|
+
Les agents sont maintenant **entièrement customisables** depuis `.spec-kit/agents/` :
|
|
291
|
+
|
|
292
|
+
```markdown
|
|
293
|
+
# .spec-kit/agents/SecurityAgent.md
|
|
294
|
+
|
|
295
|
+
---
|
|
296
|
+
name: SecurityAgent
|
|
297
|
+
displayName: "Security Review Agent"
|
|
298
|
+
description: "Expert en sécurité applicative"
|
|
299
|
+
capabilities:
|
|
300
|
+
- Identifier les vulnérabilités
|
|
301
|
+
- Recommander les bonnes pratiques
|
|
302
|
+
---
|
|
303
|
+
|
|
304
|
+
## System Prompt
|
|
305
|
+
|
|
306
|
+
Tu es SecurityAgent, un expert en sécurité applicative...
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
Puis utilisez dans vos workflows :
|
|
310
|
+
|
|
311
|
+
```yaml
|
|
312
|
+
steps:
|
|
313
|
+
- id: security-review
|
|
314
|
+
agent: SecurityAgent # Votre agent custom !
|
|
315
|
+
action: call_agent
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
Pour plus de détails : [Understanding Spec-Kit Agents](docs/DOCUMENTATION.md#understanding-spec-kit-agents)
|
|
319
|
+
|
|
320
|
+
#### Validation du Schéma de Workflow
|
|
321
|
+
|
|
322
|
+
Chaque workflow YAML est validé automatiquement contre un schéma Zod. Les champs obligatoires sont :
|
|
323
|
+
- `name` - Identifiant unique
|
|
324
|
+
- `displayName` - Nom visible
|
|
325
|
+
- `description` - Description
|
|
326
|
+
- `template` - Fichier template
|
|
327
|
+
- `steps` - Au moins une étape
|
|
328
|
+
|
|
329
|
+
Erreur si validation échoue :
|
|
330
|
+
```
|
|
331
|
+
Error: Invalid workflow "mon-workflow":
|
|
332
|
+
- steps.0.action: Invalid enum value
|
|
333
|
+
- name: Required
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
Pour plus de détails sur le schéma, voir [Workflow Validation Schema](docs/DOCUMENTATION.md#workflow-validation-schema).
|
|
337
|
+
|
|
266
338
|
---
|
|
267
339
|
|
|
268
340
|
## ❓ Obtenir de l'Aide
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Agent Tools
|
|
3
3
|
*
|
|
4
|
-
* MCP tools for interacting with agent system prompts
|
|
4
|
+
* MCP tools for interacting with agent system prompts.
|
|
5
|
+
* Supports both built-in agents and custom agents from .spec-kit/agents/
|
|
5
6
|
*/
|
|
6
7
|
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
7
8
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentTools.d.ts","sourceRoot":"","sources":["../../src/tools/agentTools.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"agentTools.d.ts","sourceRoot":"","sources":["../../src/tools/agentTools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA+H1D"}
|
package/dist/tools/agentTools.js
CHANGED
|
@@ -1,26 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Agent Tools
|
|
3
3
|
*
|
|
4
|
-
* MCP tools for interacting with agent system prompts
|
|
4
|
+
* MCP tools for interacting with agent system prompts.
|
|
5
|
+
* Supports both built-in agents and custom agents from .spec-kit/agents/
|
|
5
6
|
*/
|
|
6
7
|
import { z } from "zod";
|
|
7
|
-
import {
|
|
8
|
+
import { loadAgent, listAgentsDetailed } from "../utils/agentLoader.js";
|
|
8
9
|
/**
|
|
9
10
|
* Register agent-related tools on the MCP server
|
|
10
11
|
*/
|
|
11
12
|
export function registerAgentTools(server) {
|
|
12
|
-
// Tool: list_agents - List all available agents
|
|
13
|
-
server.tool("list_agents", "List all available AI agents and their capabilities.
|
|
14
|
-
const agents =
|
|
15
|
-
const formatted = agents.map((agent) => {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
};
|
|
23
|
-
});
|
|
13
|
+
// Tool: list_agents - List all available agents (built-in + custom)
|
|
14
|
+
server.tool("list_agents", "List all available AI agents and their capabilities. Includes both built-in agents and custom agents from .spec-kit/agents/.", {}, async () => {
|
|
15
|
+
const agents = await listAgentsDetailed();
|
|
16
|
+
const formatted = agents.map((agent) => ({
|
|
17
|
+
name: agent.name,
|
|
18
|
+
displayName: agent.displayName,
|
|
19
|
+
description: agent.description,
|
|
20
|
+
capabilities: agent.capabilities,
|
|
21
|
+
source: agent.source, // "local" or "builtin"
|
|
22
|
+
}));
|
|
24
23
|
return {
|
|
25
24
|
content: [{
|
|
26
25
|
type: "text",
|
|
@@ -29,12 +28,12 @@ export function registerAgentTools(server) {
|
|
|
29
28
|
};
|
|
30
29
|
});
|
|
31
30
|
// Tool: get_agent_prompt - Get system prompt for an agent
|
|
32
|
-
server.tool("get_agent_prompt", "Retrieve the full system prompt for a specific agent.
|
|
33
|
-
agent_name: z.
|
|
34
|
-
.describe("Name of the agent to get prompt for"),
|
|
31
|
+
server.tool("get_agent_prompt", "Retrieve the full system prompt for a specific agent. Supports built-in agents and custom agents from .spec-kit/agents/.", {
|
|
32
|
+
agent_name: z.string()
|
|
33
|
+
.describe("Name of the agent to get prompt for (e.g., SpecAgent, PlanAgent, or a custom agent name)"),
|
|
35
34
|
}, async ({ agent_name }) => {
|
|
36
35
|
try {
|
|
37
|
-
const agent =
|
|
36
|
+
const agent = await loadAgent(agent_name);
|
|
38
37
|
const response = `# Agent: ${agent.displayName}
|
|
39
38
|
|
|
40
39
|
## Description
|
|
@@ -66,16 +65,16 @@ ${agent.systemPrompt}
|
|
|
66
65
|
}
|
|
67
66
|
});
|
|
68
67
|
// Tool: invoke_agent - Get agent context for a specific task
|
|
69
|
-
server.tool("invoke_agent", "Prepare an agent context for a specific task. Returns the agent's system prompt combined with task instructions.", {
|
|
70
|
-
agent_name: z.
|
|
71
|
-
.describe("Name of the agent to invoke"),
|
|
68
|
+
server.tool("invoke_agent", "Prepare an agent context for a specific task. Returns the agent's system prompt combined with task instructions. Supports custom agents.", {
|
|
69
|
+
agent_name: z.string()
|
|
70
|
+
.describe("Name of the agent to invoke (e.g., SpecAgent, PlanAgent, or a custom agent name)"),
|
|
72
71
|
task_description: z.string()
|
|
73
72
|
.describe("Description of the task for the agent to perform"),
|
|
74
73
|
context: z.string().optional()
|
|
75
74
|
.describe("Additional context or data for the agent (e.g., work item details)"),
|
|
76
75
|
}, async ({ agent_name, task_description, context }) => {
|
|
77
76
|
try {
|
|
78
|
-
const agent =
|
|
77
|
+
const agent = await loadAgent(agent_name);
|
|
79
78
|
const response = `# 🤖 ${agent.displayName} Activated
|
|
80
79
|
|
|
81
80
|
## System Context
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentTools.js","sourceRoot":"","sources":["../../src/tools/agentTools.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"agentTools.js","sourceRoot":"","sources":["../../src/tools/agentTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Loader
|
|
3
|
+
*
|
|
4
|
+
* Loads agent definitions with local override support.
|
|
5
|
+
*
|
|
6
|
+
* Resolution order:
|
|
7
|
+
* 1. Local project: .spec-kit/agents/
|
|
8
|
+
* 2. Package defaults: Built-in agents (src/prompts/agents.ts)
|
|
9
|
+
*
|
|
10
|
+
* This allows any project to customize agents or create new ones.
|
|
11
|
+
*/
|
|
12
|
+
import { type AgentDefinition, type AgentType } from "../prompts/agents.js";
|
|
13
|
+
/**
|
|
14
|
+
* Extended agent type that includes custom agents
|
|
15
|
+
*/
|
|
16
|
+
export type ExtendedAgentType = AgentType | string;
|
|
17
|
+
/**
|
|
18
|
+
* Load a single agent by name
|
|
19
|
+
*
|
|
20
|
+
* Resolution order:
|
|
21
|
+
* 1. Local override: .spec-kit/agents/{name}.md
|
|
22
|
+
* 2. Built-in agent from AgentRegistry
|
|
23
|
+
*/
|
|
24
|
+
export declare function loadAgent(name: ExtendedAgentType): Promise<AgentDefinition>;
|
|
25
|
+
/**
|
|
26
|
+
* Get the system prompt for an agent
|
|
27
|
+
*/
|
|
28
|
+
export declare function getAgentPrompt(name: ExtendedAgentType): Promise<string>;
|
|
29
|
+
/**
|
|
30
|
+
* List all available agents (local + built-in)
|
|
31
|
+
* Local agents override built-in agents with the same name
|
|
32
|
+
*/
|
|
33
|
+
export declare function listAllAgents(): Promise<Array<{
|
|
34
|
+
name: string;
|
|
35
|
+
displayName: string;
|
|
36
|
+
description: string;
|
|
37
|
+
source: "local" | "builtin";
|
|
38
|
+
}>>;
|
|
39
|
+
/**
|
|
40
|
+
* List agents with full details (including capabilities)
|
|
41
|
+
*/
|
|
42
|
+
export declare function listAgentsDetailed(): Promise<Array<{
|
|
43
|
+
name: string;
|
|
44
|
+
displayName: string;
|
|
45
|
+
description: string;
|
|
46
|
+
capabilities: string[];
|
|
47
|
+
source: "local" | "builtin";
|
|
48
|
+
}>>;
|
|
49
|
+
/**
|
|
50
|
+
* Check if an agent exists (local or built-in)
|
|
51
|
+
*/
|
|
52
|
+
export declare function agentExists(name: string): Promise<boolean>;
|
|
53
|
+
//# sourceMappingURL=agentLoader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentLoader.d.ts","sourceRoot":"","sources":["../../src/utils/agentLoader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,EAAiB,KAAK,eAAe,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAM3F;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,MAAM,CAAC;AA4GnD;;;;;;GAMG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,eAAe,CAAC,CAwBjF;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAG7E;AAED;;;GAGG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,KAAK,CAAC;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;CAC7B,CAAC,CAAC,CA0CF;AAED;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,KAAK,CAAC;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;CAC7B,CAAC,CAAC,CA6CF;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAShE"}
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Loader
|
|
3
|
+
*
|
|
4
|
+
* Loads agent definitions with local override support.
|
|
5
|
+
*
|
|
6
|
+
* Resolution order:
|
|
7
|
+
* 1. Local project: .spec-kit/agents/
|
|
8
|
+
* 2. Package defaults: Built-in agents (src/prompts/agents.ts)
|
|
9
|
+
*
|
|
10
|
+
* This allows any project to customize agents or create new ones.
|
|
11
|
+
*/
|
|
12
|
+
import * as fs from "node:fs/promises";
|
|
13
|
+
import * as path from "node:path";
|
|
14
|
+
import yaml from "js-yaml";
|
|
15
|
+
import { AgentRegistry } from "../prompts/agents.js";
|
|
16
|
+
// Directory name for local agents
|
|
17
|
+
const AGENTS_DIR = "agents";
|
|
18
|
+
const LOCAL_CONFIG_DIR = ".spec-kit";
|
|
19
|
+
/**
|
|
20
|
+
* Get the current working directory (user's project)
|
|
21
|
+
*/
|
|
22
|
+
function getProjectRoot() {
|
|
23
|
+
return process.cwd();
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Check if a file exists
|
|
27
|
+
*/
|
|
28
|
+
async function fileExists(filePath) {
|
|
29
|
+
try {
|
|
30
|
+
await fs.access(filePath);
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Parse a Markdown agent file with YAML frontmatter
|
|
39
|
+
*
|
|
40
|
+
* Expected format:
|
|
41
|
+
* ```
|
|
42
|
+
* ---
|
|
43
|
+
* name: MyAgent
|
|
44
|
+
* displayName: "My Custom Agent"
|
|
45
|
+
* description: "What this agent does"
|
|
46
|
+
* capabilities:
|
|
47
|
+
* - Capability 1
|
|
48
|
+
* - Capability 2
|
|
49
|
+
* ---
|
|
50
|
+
*
|
|
51
|
+
* ## System Prompt
|
|
52
|
+
*
|
|
53
|
+
* Your system prompt content here...
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
async function parseAgentFile(filePath) {
|
|
57
|
+
try {
|
|
58
|
+
const content = await fs.readFile(filePath, "utf-8");
|
|
59
|
+
// Extract frontmatter (between --- markers)
|
|
60
|
+
const frontmatterMatch = content.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);
|
|
61
|
+
if (!frontmatterMatch) {
|
|
62
|
+
console.warn(`Agent file ${filePath} has no valid frontmatter`);
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
const frontmatterRaw = frontmatterMatch[1] ?? "";
|
|
66
|
+
const systemPrompt = frontmatterMatch[2]?.trim() || "";
|
|
67
|
+
// Parse YAML frontmatter
|
|
68
|
+
const frontmatter = yaml.load(frontmatterRaw);
|
|
69
|
+
if (!frontmatter.name || !frontmatter.displayName || !frontmatter.description) {
|
|
70
|
+
console.warn(`Agent file ${filePath} missing required fields (name, displayName, description)`);
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
name: frontmatter.name,
|
|
75
|
+
displayName: frontmatter.displayName,
|
|
76
|
+
description: frontmatter.description,
|
|
77
|
+
capabilities: frontmatter.capabilities || [],
|
|
78
|
+
systemPrompt: systemPrompt,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
console.warn(`Failed to parse agent file ${filePath}:`, error);
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Get the local agents directory path
|
|
88
|
+
*/
|
|
89
|
+
function getLocalAgentsDir() {
|
|
90
|
+
return path.join(getProjectRoot(), LOCAL_CONFIG_DIR, AGENTS_DIR);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* List all local agent files
|
|
94
|
+
*/
|
|
95
|
+
async function listLocalAgentFiles() {
|
|
96
|
+
const agentsDir = getLocalAgentsDir();
|
|
97
|
+
try {
|
|
98
|
+
const files = await fs.readdir(agentsDir);
|
|
99
|
+
return files.filter(f => f.endsWith(".md"));
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
// Directory doesn't exist
|
|
103
|
+
return [];
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Load a single agent by name
|
|
108
|
+
*
|
|
109
|
+
* Resolution order:
|
|
110
|
+
* 1. Local override: .spec-kit/agents/{name}.md
|
|
111
|
+
* 2. Built-in agent from AgentRegistry
|
|
112
|
+
*/
|
|
113
|
+
export async function loadAgent(name) {
|
|
114
|
+
// 1. Try local override first
|
|
115
|
+
const localPath = path.join(getLocalAgentsDir(), `${name}.md`);
|
|
116
|
+
if (await fileExists(localPath)) {
|
|
117
|
+
const localAgent = await parseAgentFile(localPath);
|
|
118
|
+
if (localAgent) {
|
|
119
|
+
return localAgent;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
// 2. Fall back to built-in agent
|
|
123
|
+
const builtinAgent = AgentRegistry[name];
|
|
124
|
+
if (builtinAgent) {
|
|
125
|
+
return builtinAgent;
|
|
126
|
+
}
|
|
127
|
+
// 3. Agent not found
|
|
128
|
+
const available = await listAllAgents();
|
|
129
|
+
throw new Error(`Agent "${name}" not found.\n` +
|
|
130
|
+
`Available agents: ${available.map(a => a.name).join(", ") || "none"}\n\n` +
|
|
131
|
+
`Tip: Create custom agents in .spec-kit/agents/${name}.md`);
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Get the system prompt for an agent
|
|
135
|
+
*/
|
|
136
|
+
export async function getAgentPrompt(name) {
|
|
137
|
+
const agent = await loadAgent(name);
|
|
138
|
+
return agent.systemPrompt;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* List all available agents (local + built-in)
|
|
142
|
+
* Local agents override built-in agents with the same name
|
|
143
|
+
*/
|
|
144
|
+
export async function listAllAgents() {
|
|
145
|
+
const results = [];
|
|
146
|
+
const seen = new Set();
|
|
147
|
+
// 1. Load local agents first (they take priority)
|
|
148
|
+
const localFiles = await listLocalAgentFiles();
|
|
149
|
+
for (const file of localFiles) {
|
|
150
|
+
const filePath = path.join(getLocalAgentsDir(), file);
|
|
151
|
+
const agent = await parseAgentFile(filePath);
|
|
152
|
+
if (agent && !seen.has(agent.name)) {
|
|
153
|
+
seen.add(agent.name);
|
|
154
|
+
results.push({
|
|
155
|
+
name: agent.name,
|
|
156
|
+
displayName: agent.displayName,
|
|
157
|
+
description: agent.description,
|
|
158
|
+
source: "local",
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
// 2. Add built-in agents (if not overridden)
|
|
163
|
+
for (const [name, agent] of Object.entries(AgentRegistry)) {
|
|
164
|
+
if (!seen.has(name)) {
|
|
165
|
+
seen.add(name);
|
|
166
|
+
results.push({
|
|
167
|
+
name: agent.name,
|
|
168
|
+
displayName: agent.displayName,
|
|
169
|
+
description: agent.description,
|
|
170
|
+
source: "builtin",
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
return results;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* List agents with full details (including capabilities)
|
|
178
|
+
*/
|
|
179
|
+
export async function listAgentsDetailed() {
|
|
180
|
+
const results = [];
|
|
181
|
+
const seen = new Set();
|
|
182
|
+
// 1. Load local agents first
|
|
183
|
+
const localFiles = await listLocalAgentFiles();
|
|
184
|
+
for (const file of localFiles) {
|
|
185
|
+
const filePath = path.join(getLocalAgentsDir(), file);
|
|
186
|
+
const agent = await parseAgentFile(filePath);
|
|
187
|
+
if (agent && !seen.has(agent.name)) {
|
|
188
|
+
seen.add(agent.name);
|
|
189
|
+
results.push({
|
|
190
|
+
name: agent.name,
|
|
191
|
+
displayName: agent.displayName,
|
|
192
|
+
description: agent.description,
|
|
193
|
+
capabilities: agent.capabilities,
|
|
194
|
+
source: "local",
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
// 2. Add built-in agents
|
|
199
|
+
for (const [name, agent] of Object.entries(AgentRegistry)) {
|
|
200
|
+
if (!seen.has(name)) {
|
|
201
|
+
seen.add(name);
|
|
202
|
+
results.push({
|
|
203
|
+
name: agent.name,
|
|
204
|
+
displayName: agent.displayName,
|
|
205
|
+
description: agent.description,
|
|
206
|
+
capabilities: agent.capabilities,
|
|
207
|
+
source: "builtin",
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
return results;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Check if an agent exists (local or built-in)
|
|
215
|
+
*/
|
|
216
|
+
export async function agentExists(name) {
|
|
217
|
+
// Check local
|
|
218
|
+
const localPath = path.join(getLocalAgentsDir(), `${name}.md`);
|
|
219
|
+
if (await fileExists(localPath)) {
|
|
220
|
+
return true;
|
|
221
|
+
}
|
|
222
|
+
// Check built-in
|
|
223
|
+
return name in AgentRegistry;
|
|
224
|
+
}
|
|
225
|
+
//# sourceMappingURL=agentLoader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentLoader.js","sourceRoot":"","sources":["../../src/utils/agentLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"starterKitInstaller.d.ts","sourceRoot":"","sources":["../../src/utils/starterKitInstaller.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"starterKitInstaller.d.ts","sourceRoot":"","sources":["../../src/utils/starterKitInstaller.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAuEH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;CACjB,GACL,OAAO,CAAC,aAAa,CAAC,CAkMxB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAW7C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CA2GtF;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;IACrE,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC,CASD"}
|
|
@@ -15,6 +15,7 @@ const PROMPTS_DIR = "prompts";
|
|
|
15
15
|
const TEMPLATES_DIR = "templates";
|
|
16
16
|
const MEMORY_DIR = "memory";
|
|
17
17
|
const RULES_DIR = "rules";
|
|
18
|
+
const AGENTS_DIR = "agents";
|
|
18
19
|
const SPECS_DIR = "specs";
|
|
19
20
|
/**
|
|
20
21
|
* Get the package root directory (where the npm package is installed)
|
|
@@ -206,7 +207,26 @@ export async function installStarterKit(projectPath, options = {}) {
|
|
|
206
207
|
}
|
|
207
208
|
}
|
|
208
209
|
}
|
|
209
|
-
// 5.
|
|
210
|
+
// 5. Install agents to .spec-kit/agents/
|
|
211
|
+
const agentsSrc = path.join(starterKitPath, "agents");
|
|
212
|
+
const agentsDest = path.join(projectPath, SPEC_KIT_DIR, AGENTS_DIR);
|
|
213
|
+
if (await exists(agentsSrc)) {
|
|
214
|
+
const agentsExist = await exists(agentsDest);
|
|
215
|
+
if (agentsExist && !options.force) {
|
|
216
|
+
result.skipped.push(`${SPEC_KIT_DIR}/${AGENTS_DIR}`);
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
try {
|
|
220
|
+
await copyDir(agentsSrc, agentsDest);
|
|
221
|
+
result.created.push(`${SPEC_KIT_DIR}/${AGENTS_DIR}`);
|
|
222
|
+
}
|
|
223
|
+
catch (error) {
|
|
224
|
+
result.errors.push(`Failed to copy agents: ${error}`);
|
|
225
|
+
result.success = false;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
// 6. Create specs/ directory
|
|
210
230
|
const specsDir = path.join(projectPath, SPECS_DIR);
|
|
211
231
|
if (!(await exists(specsDir))) {
|
|
212
232
|
try {
|
|
@@ -310,6 +330,12 @@ export function formatInstallReport(result, projectPath) {
|
|
|
310
330
|
report += "│ ├── rules/ # Validation rules (security, RGPD)\n";
|
|
311
331
|
report += "│ │ ├── security-rules.md\n";
|
|
312
332
|
report += "│ │ └── rgpd-rules.md\n";
|
|
333
|
+
report += "│ ├── agents/ # Customizable AI agents\n";
|
|
334
|
+
report += "│ │ ├── SpecAgent.md\n";
|
|
335
|
+
report += "│ │ ├── PlanAgent.md\n";
|
|
336
|
+
report += "│ │ ├── GovAgent.md\n";
|
|
337
|
+
report += "│ │ ├── TestAgent.md\n";
|
|
338
|
+
report += "│ │ └── _CustomAgent.template.md\n";
|
|
313
339
|
report += "│ └── memory/ # Project context\n";
|
|
314
340
|
report += "│ └── constitution.md # Project principles\n";
|
|
315
341
|
report += "├── specs/ # Generated specifications\n";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"starterKitInstaller.js","sourceRoot":"","sources":["../../src/utils/starterKitInstaller.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"starterKitInstaller.js","sourceRoot":"","sources":["../../src/utils/starterKitInstaller.ts"],"names":[],"mappings":"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"}
|