@lousy-agents/cli 1.0.6 → 1.1.1

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.
Files changed (58) hide show
  1. package/api/copilot-with-fastify/.devcontainer/devcontainer.json +90 -0
  2. package/api/copilot-with-fastify/.editorconfig +16 -0
  3. package/api/copilot-with-fastify/.github/ISSUE_TEMPLATE/feature-to-spec.yml +55 -0
  4. package/api/copilot-with-fastify/.github/copilot-instructions.md +387 -0
  5. package/api/copilot-with-fastify/.github/instructions/pipeline.instructions.md +149 -0
  6. package/api/copilot-with-fastify/.github/instructions/software-architecture.instructions.md +430 -0
  7. package/api/copilot-with-fastify/.github/instructions/spec.instructions.md +411 -0
  8. package/api/copilot-with-fastify/.github/instructions/test.instructions.md +268 -0
  9. package/api/copilot-with-fastify/.github/specs/README.md +84 -0
  10. package/api/copilot-with-fastify/.github/workflows/assign-copilot.yml +59 -0
  11. package/api/copilot-with-fastify/.github/workflows/ci.yml +88 -0
  12. package/api/copilot-with-fastify/.nvmrc +1 -0
  13. package/api/copilot-with-fastify/.vscode/extensions.json +14 -0
  14. package/api/copilot-with-fastify/.vscode/launch.json +30 -0
  15. package/api/copilot-with-fastify/.vscode/mcp.json +19 -0
  16. package/api/copilot-with-fastify/.yamllint +18 -0
  17. package/api/copilot-with-fastify/biome.json +31 -0
  18. package/api/copilot-with-fastify/package.json +37 -0
  19. package/api/copilot-with-fastify/tsconfig.json +34 -0
  20. package/api/copilot-with-fastify/vitest.config.ts +21 -0
  21. package/api/copilot-with-fastify/vitest.integration.config.ts +18 -0
  22. package/api/copilot-with-fastify/vitest.setup.ts +5 -0
  23. package/dist/commands/init.d.ts.map +1 -1
  24. package/dist/commands/init.js +41 -18
  25. package/dist/commands/init.js.map +1 -1
  26. package/dist/commands/new.d.ts +11 -1
  27. package/dist/commands/new.d.ts.map +1 -1
  28. package/dist/commands/new.js +58 -5
  29. package/dist/commands/new.js.map +1 -1
  30. package/dist/entities/index.d.ts +1 -0
  31. package/dist/entities/index.d.ts.map +1 -1
  32. package/dist/entities/index.js +1 -0
  33. package/dist/entities/index.js.map +1 -1
  34. package/dist/entities/skill.d.ts +15 -0
  35. package/dist/entities/skill.d.ts.map +1 -0
  36. package/dist/entities/skill.js +63 -0
  37. package/dist/entities/skill.js.map +1 -0
  38. package/dist/gateways/index.d.ts +1 -0
  39. package/dist/gateways/index.d.ts.map +1 -1
  40. package/dist/gateways/index.js +1 -0
  41. package/dist/gateways/index.js.map +1 -1
  42. package/dist/gateways/skill-file-gateway.d.ts +59 -0
  43. package/dist/gateways/skill-file-gateway.d.ts.map +1 -0
  44. package/dist/gateways/skill-file-gateway.js +37 -0
  45. package/dist/gateways/skill-file-gateway.js.map +1 -0
  46. package/dist/lib/config.d.ts +1 -1
  47. package/dist/lib/config.d.ts.map +1 -1
  48. package/dist/lib/config.js +177 -3
  49. package/dist/lib/config.js.map +1 -1
  50. package/dist/use-cases/create-skill.d.ts +30 -0
  51. package/dist/use-cases/create-skill.d.ts.map +1 -0
  52. package/dist/use-cases/create-skill.js +75 -0
  53. package/dist/use-cases/create-skill.js.map +1 -0
  54. package/dist/use-cases/index.d.ts +1 -0
  55. package/dist/use-cases/index.d.ts.map +1 -1
  56. package/dist/use-cases/index.js +1 -0
  57. package/dist/use-cases/index.js.map +1 -1
  58. package/package.json +4 -3
@@ -1,31 +1,84 @@
1
1
  import { defineCommand } from "citty";
2
2
  import { consola } from "consola";
3
3
  import { createAgentFileGateway } from "../gateways/agent-file-gateway.js";
4
+ import { createSkillFileGateway } from "../gateways/skill-file-gateway.js";
4
5
  import { CreateCopilotAgentUseCase } from "../use-cases/create-copilot-agent.js";
5
- const newArgs = {
6
+ import { CreateSkillUseCase } from "../use-cases/create-skill.js";
7
+ const copilotAgentArgs = {
6
8
  "copilot-agent": {
7
9
  type: "string",
8
10
  description: "Create a new GitHub Copilot custom agent with the specified name. Example: lousy-agents new --copilot-agent security",
9
11
  },
10
12
  };
13
+ const skillArgs = {
14
+ name: {
15
+ type: "positional",
16
+ description: "The name of the skill to create. Example: lousy-agents new skill github-actions-debug",
17
+ required: true,
18
+ },
19
+ };
20
+ /**
21
+ * The `skill` subcommand for creating Agent Skills
22
+ */
23
+ export const skillCommand = defineCommand({
24
+ meta: {
25
+ name: "skill",
26
+ description: "Create a new GitHub Copilot Agent Skill. Example: lousy-agents new skill github-actions-debug",
27
+ },
28
+ args: skillArgs,
29
+ run: async (context) => {
30
+ // Support dependency injection for testing via context.data
31
+ const targetDir = typeof context.data?.targetDir === "string"
32
+ ? context.data.targetDir
33
+ : process.cwd();
34
+ const skillName = context.args.name;
35
+ if (!skillName) {
36
+ throw new Error("Missing required argument: <name>. Example: lousy-agents new skill github-actions-debug");
37
+ }
38
+ // Create the use case with the file system gateway
39
+ const gateway = createSkillFileGateway();
40
+ const useCase = new CreateSkillUseCase(gateway);
41
+ // Execute the use case
42
+ const result = await useCase.execute(targetDir, skillName);
43
+ if (!result.success) {
44
+ throw new Error(result.error);
45
+ }
46
+ consola.success(`Created Agent Skill: ${result.skillFilePath}`);
47
+ },
48
+ });
11
49
  /**
12
50
  * The `new` command for scaffolding new resources.
13
- * Currently supports creating Copilot custom agents.
51
+ * Supports creating Copilot custom agents and Agent Skills.
14
52
  */
15
53
  export const newCommand = defineCommand({
16
54
  meta: {
17
55
  name: "new",
18
- description: "Create new resources (e.g., Copilot agents)",
56
+ description: "Create new resources (e.g., Copilot agents, skills). Use 'new skill <name>' to create an Agent Skill.",
57
+ },
58
+ args: copilotAgentArgs,
59
+ subCommands: {
60
+ skill: skillCommand,
19
61
  },
20
- args: newArgs,
21
62
  run: async (context) => {
63
+ // citty runs both the subcommand's run function and the parent's run function.
64
+ // We need to detect when a subcommand was invoked and exit early to avoid
65
+ // throwing an error for missing --copilot-agent option.
66
+ const subCommand = context.rawArgs[0];
67
+ if (subCommand === "skill") {
68
+ return; // Subcommand was handled by skillCommand.run
69
+ }
22
70
  // Support dependency injection for testing via context.data
23
71
  const targetDir = typeof context.data?.targetDir === "string"
24
72
  ? context.data.targetDir
25
73
  : process.cwd();
26
74
  const copilotAgentName = context.args["copilot-agent"];
27
75
  if (!copilotAgentName) {
28
- throw new Error("Missing required option: --copilot-agent <name>. Example: lousy-agents new --copilot-agent security");
76
+ throw new Error("Missing required option. Use one of:\n" +
77
+ " --copilot-agent <name> Create a Copilot custom agent\n" +
78
+ " skill <name> Create an Agent Skill\n\n" +
79
+ "Examples:\n" +
80
+ " lousy-agents new --copilot-agent security\n" +
81
+ " lousy-agents new skill github-actions-debug");
29
82
  }
30
83
  // Create the use case with the file system gateway
31
84
  const gateway = createAgentFileGateway();
@@ -1 +1 @@
1
- {"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AAEjF,MAAM,OAAO,GAAG;IACZ,eAAe,EAAE;QACb,IAAI,EAAE,QAAiB;QACvB,WAAW,EACP,sHAAsH;KAC7H;CACJ,CAAC;AAIF;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAC;IACpC,IAAI,EAAE;QACF,IAAI,EAAE,KAAK;QACX,WAAW,EAAE,6CAA6C;KAC7D;IACD,IAAI,EAAE,OAAO;IACb,GAAG,EAAE,KAAK,EAAE,OAAgC,EAAE,EAAE;QAC5C,4DAA4D;QAC5D,MAAM,SAAS,GACX,OAAO,OAAO,CAAC,IAAI,EAAE,SAAS,KAAK,QAAQ;YACvC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS;YACxB,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QAExB,MAAM,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAEvD,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACX,qGAAqG,CACxG,CAAC;QACN,CAAC;QAED,mDAAmD;QACnD,MAAM,OAAO,GAAG,sBAAsB,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAEvD,uBAAuB;QACvB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QAElE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,0BAA0B,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjE,CAAC;CACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"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"}
@@ -3,4 +3,5 @@
3
3
  */
4
4
  export * from "./copilot-agent.js";
5
5
  export * from "./copilot-setup.js";
6
+ export * from "./skill.js";
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/entities/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/entities/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC"}
@@ -3,4 +3,5 @@
3
3
  */
4
4
  export * from "./copilot-agent.js";
5
5
  export * from "./copilot-setup.js";
6
+ export * from "./skill.js";
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/entities/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/entities/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Core domain entity for GitHub Copilot Agent Skills.
3
+ * Handles name normalization and SKILL.md content generation.
4
+ */
5
+ /**
6
+ * Normalizes a skill name to lowercase with hyphens.
7
+ * Handles spaces, mixed case, multiple spaces, and leading/trailing spaces.
8
+ */
9
+ export declare function normalizeSkillName(name: string): string;
10
+ /**
11
+ * Generates the SKILL.md content for a Copilot Agent Skill.
12
+ * Includes YAML frontmatter, documentation link, and example structure.
13
+ */
14
+ export declare function generateSkillContent(skillName: string): string;
15
+ //# sourceMappingURL=skill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../../src/entities/skill.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CA+C9D"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Core domain entity for GitHub Copilot Agent Skills.
3
+ * Handles name normalization and SKILL.md content generation.
4
+ */
5
+ /**
6
+ * Normalizes a skill name to lowercase with hyphens.
7
+ * Handles spaces, mixed case, multiple spaces, and leading/trailing spaces.
8
+ */
9
+ export function normalizeSkillName(name) {
10
+ return name.trim().toLowerCase().replace(/\s+/g, "-");
11
+ }
12
+ /**
13
+ * Generates the SKILL.md content for a Copilot Agent Skill.
14
+ * Includes YAML frontmatter, documentation link, and example structure.
15
+ */
16
+ export function generateSkillContent(skillName) {
17
+ const normalizedName = normalizeSkillName(skillName);
18
+ return `---
19
+ name: ${normalizedName}
20
+ description: Brief description of what this skill does and when Copilot should use it
21
+ ---
22
+
23
+ <!--
24
+ This is a GitHub Copilot Agent Skill for repository-level use.
25
+ Learn more: https://docs.github.com/en/copilot/concepts/agents/about-agent-skills
26
+ -->
27
+
28
+ # ${normalizedName}
29
+
30
+ {Brief description of what this skill teaches Copilot to do}
31
+
32
+ ## When to Use This Skill
33
+
34
+ Copilot should use this skill when:
35
+
36
+ - {Trigger condition 1}
37
+ - {Trigger condition 2}
38
+ - {Trigger condition 3}
39
+
40
+ ## Instructions
41
+
42
+ {Detailed step-by-step instructions for Copilot to follow}
43
+
44
+ 1. {Step 1}
45
+ 2. {Step 2}
46
+ 3. {Step 3}
47
+
48
+ ## Guidelines
49
+
50
+ - {Guideline or best practice}
51
+ - {Guideline or best practice}
52
+ - {Guideline or best practice}
53
+
54
+ ## Examples
55
+
56
+ {Examples of inputs and expected outputs or behaviors}
57
+
58
+ ### Example 1: {Title}
59
+
60
+ {Description of the example scenario and expected behavior}
61
+ `;
62
+ }
63
+ //# sourceMappingURL=skill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/entities/skill.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC3C,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAAiB;IAClD,MAAM,cAAc,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAErD,OAAO;QACH,cAAc;;;;;;;;;IASlB,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCjB,CAAC;AACF,CAAC"}
@@ -5,5 +5,6 @@ export * from "./action-version-gateway.js";
5
5
  export * from "./agent-file-gateway.js";
6
6
  export * from "./environment-gateway.js";
7
7
  export * from "./file-system-utils.js";
8
+ export * from "./skill-file-gateway.js";
8
9
  export * from "./workflow-gateway.js";
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/gateways/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/gateways/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC"}
@@ -5,5 +5,6 @@ export * from "./action-version-gateway.js";
5
5
  export * from "./agent-file-gateway.js";
6
6
  export * from "./environment-gateway.js";
7
7
  export * from "./file-system-utils.js";
8
+ export * from "./skill-file-gateway.js";
8
9
  export * from "./workflow-gateway.js";
9
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/gateways/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/gateways/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Gateway for skill file system operations.
3
+ * This module abstracts file system access for Copilot Agent Skill files.
4
+ */
5
+ /**
6
+ * Interface for skill file gateway
7
+ * Allows for different implementations (file system, mock, etc.)
8
+ */
9
+ export interface SkillFileGateway {
10
+ /**
11
+ * Checks if a skill directory already exists
12
+ * @param targetDir The root directory of the repository
13
+ * @param skillName The normalized name of the skill
14
+ * @returns true if the skill directory exists
15
+ */
16
+ skillDirectoryExists(targetDir: string, skillName: string): Promise<boolean>;
17
+ /**
18
+ * Ensures the .github/skills/<name> directory exists
19
+ * @param targetDir The root directory of the repository
20
+ * @param skillName The normalized name of the skill
21
+ */
22
+ ensureSkillDirectory(targetDir: string, skillName: string): Promise<void>;
23
+ /**
24
+ * Writes content to a SKILL.md file
25
+ * @param targetDir The root directory of the repository
26
+ * @param skillName The normalized name of the skill
27
+ * @param content The content to write to the file
28
+ */
29
+ writeSkillFile(targetDir: string, skillName: string, content: string): Promise<void>;
30
+ /**
31
+ * Returns the full path to a skill directory
32
+ * @param targetDir The root directory of the repository
33
+ * @param skillName The normalized name of the skill
34
+ * @returns The full path to the skill directory
35
+ */
36
+ getSkillDirectoryPath(targetDir: string, skillName: string): string;
37
+ /**
38
+ * Returns the full path to a SKILL.md file
39
+ * @param targetDir The root directory of the repository
40
+ * @param skillName The normalized name of the skill
41
+ * @returns The full path to the SKILL.md file
42
+ */
43
+ getSkillFilePath(targetDir: string, skillName: string): string;
44
+ }
45
+ /**
46
+ * File system implementation of the skill file gateway
47
+ */
48
+ export declare class FileSystemSkillFileGateway implements SkillFileGateway {
49
+ getSkillDirectoryPath(targetDir: string, skillName: string): string;
50
+ getSkillFilePath(targetDir: string, skillName: string): string;
51
+ skillDirectoryExists(targetDir: string, skillName: string): Promise<boolean>;
52
+ ensureSkillDirectory(targetDir: string, skillName: string): Promise<void>;
53
+ writeSkillFile(targetDir: string, skillName: string, content: string): Promise<void>;
54
+ }
55
+ /**
56
+ * Creates and returns the default skill file gateway
57
+ */
58
+ export declare function createSkillFileGateway(): SkillFileGateway;
59
+ //# sourceMappingURL=skill-file-gateway.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-file-gateway.d.ts","sourceRoot":"","sources":["../../src/gateways/skill-file-gateway.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC7B;;;;;OAKG;IACH,oBAAoB,CAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB;;;;OAIG;IACH,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1E;;;;;OAKG;IACH,cAAc,CACV,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;OAKG;IACH,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAEpE;;;;;OAKG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;CAClE;AAED;;GAEG;AACH,qBAAa,0BAA2B,YAAW,gBAAgB;IAC/D,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAInE,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAOxD,oBAAoB,CACtB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC;IAKb,oBAAoB,CACtB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;IAKV,cAAc,CAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC;CAInB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,gBAAgB,CAEzD"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Gateway for skill file system operations.
3
+ * This module abstracts file system access for Copilot Agent Skill files.
4
+ */
5
+ import { mkdir, writeFile } from "node:fs/promises";
6
+ import { join } from "node:path";
7
+ import { fileExists } from "./file-system-utils.js";
8
+ /**
9
+ * File system implementation of the skill file gateway
10
+ */
11
+ export class FileSystemSkillFileGateway {
12
+ getSkillDirectoryPath(targetDir, skillName) {
13
+ return join(targetDir, ".github", "skills", skillName);
14
+ }
15
+ getSkillFilePath(targetDir, skillName) {
16
+ return join(this.getSkillDirectoryPath(targetDir, skillName), "SKILL.md");
17
+ }
18
+ async skillDirectoryExists(targetDir, skillName) {
19
+ const dirPath = this.getSkillDirectoryPath(targetDir, skillName);
20
+ return fileExists(dirPath);
21
+ }
22
+ async ensureSkillDirectory(targetDir, skillName) {
23
+ const skillDir = this.getSkillDirectoryPath(targetDir, skillName);
24
+ await mkdir(skillDir, { recursive: true });
25
+ }
26
+ async writeSkillFile(targetDir, skillName, content) {
27
+ const filePath = this.getSkillFilePath(targetDir, skillName);
28
+ await writeFile(filePath, content, { encoding: "utf-8" });
29
+ }
30
+ }
31
+ /**
32
+ * Creates and returns the default skill file gateway
33
+ */
34
+ export function createSkillFileGateway() {
35
+ return new FileSystemSkillFileGateway();
36
+ }
37
+ //# sourceMappingURL=skill-file-gateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-file-gateway.js","sourceRoot":"","sources":["../../src/gateways/skill-file-gateway.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAsDpD;;GAEG;AACH,MAAM,OAAO,0BAA0B;IACnC,qBAAqB,CAAC,SAAiB,EAAE,SAAiB;QACtD,OAAO,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC3D,CAAC;IAED,gBAAgB,CAAC,SAAiB,EAAE,SAAiB;QACjD,OAAO,IAAI,CACP,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,SAAS,CAAC,EAChD,UAAU,CACb,CAAC;IACN,CAAC;IAED,KAAK,CAAC,oBAAoB,CACtB,SAAiB,EACjB,SAAiB;QAEjB,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACjE,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,oBAAoB,CACtB,SAAiB,EACjB,SAAiB;QAEjB,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAClE,MAAM,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,cAAc,CAChB,SAAiB,EACjB,SAAiB,EACjB,OAAe;QAEf,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC7D,MAAM,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9D,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB;IAClC,OAAO,IAAI,0BAA0B,EAAE,CAAC;AAC5C,CAAC"}
@@ -21,7 +21,7 @@ export interface LousyAgentsConfig {
21
21
  export declare function loadInitConfig(): Promise<LousyAgentsConfig>;
22
22
  /**
23
23
  * Gets the filesystem structure for a specific project type
24
- * Lazy-loads webapp structure only when requested
24
+ * Lazy-loads webapp and REST API structures only when requested
25
25
  */
26
26
  export declare function getProjectStructure(projectType: "CLI" | "webapp" | "REST API" | "GraphQL API"): Promise<FilesystemStructure | undefined>;
27
27
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAOrE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B;;OAEG;IACH,UAAU,CAAC,EAAE;QACT,GAAG,CAAC,EAAE,mBAAmB,CAAC;QAC1B,MAAM,CAAC,EAAE,mBAAmB,CAAC;QAC7B,UAAU,CAAC,EAAE,mBAAmB,CAAC;QACjC,aAAa,CAAC,EAAE,mBAAmB,CAAC;KACvC,CAAC;CACL;AA2MD;;;;GAIG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAiBjE;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACrC,WAAW,EAAE,KAAK,GAAG,QAAQ,GAAG,UAAU,GAAG,aAAa,GAC3D,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAS1C"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAQrE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B;;OAEG;IACH,UAAU,CAAC,EAAE;QACT,GAAG,CAAC,EAAE,mBAAmB,CAAC;QAC1B,MAAM,CAAC,EAAE,mBAAmB,CAAC;QAC7B,UAAU,CAAC,EAAE,mBAAmB,CAAC;QACjC,aAAa,CAAC,EAAE,mBAAmB,CAAC;KACvC,CAAC;CACL;AA8YD;;;;GAIG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAiBjE;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACrC,WAAW,EAAE,KAAK,GAAG,QAAQ,GAAG,UAAU,GAAG,aAAa,GAC3D,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAc1C"}
@@ -7,6 +7,7 @@ const __filename = fileURLToPath(import.meta.url);
7
7
  const __dirname = dirname(__filename);
8
8
  const PROJECT_ROOT = join(__dirname, "..", "..");
9
9
  const WEBAPP_TEMPLATE_DIR = join(PROJECT_ROOT, "ui", "copilot-with-react");
10
+ const RESTAPI_TEMPLATE_DIR = join(PROJECT_ROOT, "api", "copilot-with-fastify");
10
11
  /**
11
12
  * Default CLI project filesystem structure
12
13
  */
@@ -27,9 +28,9 @@ const DEFAULT_CLI_STRUCTURE = {
27
28
  * Helper function to read template file content
28
29
  * @throws Error if template file cannot be read
29
30
  */
30
- function readTemplateFile(relativePath) {
31
+ function readTemplateFile(relativePath, templateDir = WEBAPP_TEMPLATE_DIR) {
31
32
  try {
32
- return readFileSync(join(WEBAPP_TEMPLATE_DIR, relativePath), "utf-8");
33
+ return readFileSync(join(templateDir, relativePath), "utf-8");
33
34
  }
34
35
  catch (error) {
35
36
  const message = error instanceof Error ? error.message : String(error);
@@ -191,6 +192,175 @@ function buildWebappStructure() {
191
192
  };
192
193
  return cachedWebappStructure;
193
194
  }
195
+ /**
196
+ * Cached REST API structure - lazy-loaded on first access
197
+ */
198
+ let cachedRestApiStructure = null;
199
+ /**
200
+ * Helper function to read REST API template files
201
+ */
202
+ function readRestApiTemplateFile(relativePath) {
203
+ return readTemplateFile(relativePath, RESTAPI_TEMPLATE_DIR);
204
+ }
205
+ /**
206
+ * Builds the REST API project filesystem structure by reading template files
207
+ * This is called lazily only when REST API scaffolding is needed
208
+ */
209
+ function buildRestApiStructure() {
210
+ if (cachedRestApiStructure) {
211
+ return cachedRestApiStructure;
212
+ }
213
+ cachedRestApiStructure = {
214
+ nodes: [
215
+ // Root configuration files
216
+ {
217
+ type: "file",
218
+ path: "package.json",
219
+ content: readRestApiTemplateFile("package.json"),
220
+ },
221
+ {
222
+ type: "file",
223
+ path: "tsconfig.json",
224
+ content: readRestApiTemplateFile("tsconfig.json"),
225
+ },
226
+ {
227
+ type: "file",
228
+ path: "vitest.config.ts",
229
+ content: readRestApiTemplateFile("vitest.config.ts"),
230
+ },
231
+ {
232
+ type: "file",
233
+ path: "vitest.integration.config.ts",
234
+ content: readRestApiTemplateFile("vitest.integration.config.ts"),
235
+ },
236
+ {
237
+ type: "file",
238
+ path: "vitest.setup.ts",
239
+ content: readRestApiTemplateFile("vitest.setup.ts"),
240
+ },
241
+ {
242
+ type: "file",
243
+ path: "biome.json",
244
+ content: readRestApiTemplateFile("biome.json"),
245
+ },
246
+ {
247
+ type: "file",
248
+ path: ".editorconfig",
249
+ content: readRestApiTemplateFile(".editorconfig"),
250
+ },
251
+ {
252
+ type: "file",
253
+ path: ".nvmrc",
254
+ content: readRestApiTemplateFile(".nvmrc"),
255
+ },
256
+ {
257
+ type: "file",
258
+ path: ".yamllint",
259
+ content: readRestApiTemplateFile(".yamllint"),
260
+ },
261
+ // GitHub copilot instructions
262
+ {
263
+ type: "directory",
264
+ path: ".github",
265
+ },
266
+ {
267
+ type: "directory",
268
+ path: ".github/instructions",
269
+ },
270
+ {
271
+ type: "file",
272
+ path: ".github/copilot-instructions.md",
273
+ content: readRestApiTemplateFile(".github/copilot-instructions.md"),
274
+ },
275
+ {
276
+ type: "file",
277
+ path: ".github/instructions/test.instructions.md",
278
+ content: readRestApiTemplateFile(".github/instructions/test.instructions.md"),
279
+ },
280
+ {
281
+ type: "file",
282
+ path: ".github/instructions/spec.instructions.md",
283
+ content: readRestApiTemplateFile(".github/instructions/spec.instructions.md"),
284
+ },
285
+ {
286
+ type: "file",
287
+ path: ".github/instructions/pipeline.instructions.md",
288
+ content: readRestApiTemplateFile(".github/instructions/pipeline.instructions.md"),
289
+ },
290
+ {
291
+ type: "file",
292
+ path: ".github/instructions/software-architecture.instructions.md",
293
+ content: readRestApiTemplateFile(".github/instructions/software-architecture.instructions.md"),
294
+ },
295
+ // GitHub Issue Templates
296
+ {
297
+ type: "directory",
298
+ path: ".github/ISSUE_TEMPLATE",
299
+ },
300
+ {
301
+ type: "file",
302
+ path: ".github/ISSUE_TEMPLATE/feature-to-spec.yml",
303
+ content: readRestApiTemplateFile(".github/ISSUE_TEMPLATE/feature-to-spec.yml"),
304
+ },
305
+ // GitHub Workflows
306
+ {
307
+ type: "directory",
308
+ path: ".github/workflows",
309
+ },
310
+ {
311
+ type: "file",
312
+ path: ".github/workflows/assign-copilot.yml",
313
+ content: readRestApiTemplateFile(".github/workflows/assign-copilot.yml"),
314
+ },
315
+ {
316
+ type: "file",
317
+ path: ".github/workflows/ci.yml",
318
+ content: readRestApiTemplateFile(".github/workflows/ci.yml"),
319
+ },
320
+ // Specs directory
321
+ {
322
+ type: "directory",
323
+ path: ".github/specs",
324
+ },
325
+ {
326
+ type: "file",
327
+ path: ".github/specs/README.md",
328
+ content: readRestApiTemplateFile(".github/specs/README.md"),
329
+ },
330
+ // VSCode configuration
331
+ {
332
+ type: "directory",
333
+ path: ".vscode",
334
+ },
335
+ {
336
+ type: "file",
337
+ path: ".vscode/extensions.json",
338
+ content: readRestApiTemplateFile(".vscode/extensions.json"),
339
+ },
340
+ {
341
+ type: "file",
342
+ path: ".vscode/launch.json",
343
+ content: readRestApiTemplateFile(".vscode/launch.json"),
344
+ },
345
+ {
346
+ type: "file",
347
+ path: ".vscode/mcp.json",
348
+ content: readRestApiTemplateFile(".vscode/mcp.json"),
349
+ },
350
+ // Devcontainer configuration
351
+ {
352
+ type: "directory",
353
+ path: ".devcontainer",
354
+ },
355
+ {
356
+ type: "file",
357
+ path: ".devcontainer/devcontainer.json",
358
+ content: readRestApiTemplateFile(".devcontainer/devcontainer.json"),
359
+ },
360
+ ],
361
+ };
362
+ return cachedRestApiStructure;
363
+ }
194
364
  /**
195
365
  * Loads the configuration for the init command
196
366
  * Falls back to defaults if no configuration is found
@@ -213,7 +383,7 @@ export async function loadInitConfig() {
213
383
  }
214
384
  /**
215
385
  * Gets the filesystem structure for a specific project type
216
- * Lazy-loads webapp structure only when requested
386
+ * Lazy-loads webapp and REST API structures only when requested
217
387
  */
218
388
  export async function getProjectStructure(projectType) {
219
389
  const config = await loadInitConfig();
@@ -221,6 +391,10 @@ export async function getProjectStructure(projectType) {
221
391
  if (projectType === "webapp") {
222
392
  return config.structures?.webapp || buildWebappStructure();
223
393
  }
394
+ // Lazy-load REST API structure only when requested
395
+ if (projectType === "REST API") {
396
+ return config.structures?.["REST API"] || buildRestApiStructure();
397
+ }
224
398
  return config.structures?.[projectType];
225
399
  }
226
400
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Use case for creating GitHub Copilot Agent Skills.
3
+ * Orchestrates entity logic with gateway operations.
4
+ */
5
+ import type { SkillFileGateway } from "../gateways/skill-file-gateway.js";
6
+ /**
7
+ * Result of the create skill operation
8
+ */
9
+ export interface CreateSkillResult {
10
+ success: boolean;
11
+ normalizedName?: string;
12
+ skillDirectoryPath?: string;
13
+ skillFilePath?: string;
14
+ error?: string;
15
+ }
16
+ /**
17
+ * Use case for creating a new Agent Skill
18
+ */
19
+ export declare class CreateSkillUseCase {
20
+ private readonly gateway;
21
+ constructor(gateway: SkillFileGateway);
22
+ /**
23
+ * Executes the create skill operation
24
+ * @param targetDir The root directory of the repository
25
+ * @param skillName The name of the skill to create
26
+ * @returns Result of the operation
27
+ */
28
+ execute(targetDir: string, skillName: string): Promise<CreateSkillResult>;
29
+ }
30
+ //# sourceMappingURL=create-skill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-skill.d.ts","sourceRoot":"","sources":["../../src/use-cases/create-skill.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAe1E;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,kBAAkB;IACf,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,gBAAgB;IAEtD;;;;;OAKG;IACG,OAAO,CACT,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,iBAAiB,CAAC;CA6DhC"}