crewly 1.20.133 → 1.20.134

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 (219) hide show
  1. package/dist/backend/backend/src/constants.d.ts +82 -0
  2. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  3. package/dist/backend/backend/src/constants.js +87 -0
  4. package/dist/backend/backend/src/constants.js.map +1 -1
  5. package/dist/backend/backend/src/controllers/bundle/bundle.controller.d.ts +44 -0
  6. package/dist/backend/backend/src/controllers/bundle/bundle.controller.d.ts.map +1 -0
  7. package/dist/backend/backend/src/controllers/bundle/bundle.controller.js +122 -0
  8. package/dist/backend/backend/src/controllers/bundle/bundle.controller.js.map +1 -0
  9. package/dist/backend/backend/src/controllers/bundle/bundle.routes.d.ts +25 -0
  10. package/dist/backend/backend/src/controllers/bundle/bundle.routes.d.ts.map +1 -0
  11. package/dist/backend/backend/src/controllers/bundle/bundle.routes.js +33 -0
  12. package/dist/backend/backend/src/controllers/bundle/bundle.routes.js.map +1 -0
  13. package/dist/backend/backend/src/index.d.ts.map +1 -1
  14. package/dist/backend/backend/src/index.js +14 -0
  15. package/dist/backend/backend/src/index.js.map +1 -1
  16. package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
  17. package/dist/backend/backend/src/routes/api.routes.js +4 -0
  18. package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
  19. package/dist/backend/backend/src/services/bundle/bundle-apply.factory.d.ts +62 -0
  20. package/dist/backend/backend/src/services/bundle/bundle-apply.factory.d.ts.map +1 -0
  21. package/dist/backend/backend/src/services/bundle/bundle-apply.factory.js +173 -0
  22. package/dist/backend/backend/src/services/bundle/bundle-apply.factory.js.map +1 -0
  23. package/dist/backend/backend/src/services/bundle/bundle-apply.service.d.ts +359 -0
  24. package/dist/backend/backend/src/services/bundle/bundle-apply.service.d.ts.map +1 -0
  25. package/dist/backend/backend/src/services/bundle/bundle-apply.service.js +888 -0
  26. package/dist/backend/backend/src/services/bundle/bundle-apply.service.js.map +1 -0
  27. package/dist/backend/backend/src/services/bundle/bundle-catalog.d.ts +167 -0
  28. package/dist/backend/backend/src/services/bundle/bundle-catalog.d.ts.map +1 -0
  29. package/dist/backend/backend/src/services/bundle/bundle-catalog.js +248 -0
  30. package/dist/backend/backend/src/services/bundle/bundle-catalog.js.map +1 -0
  31. package/dist/backend/backend/src/services/bundle/bundle-connectors.d.ts +43 -0
  32. package/dist/backend/backend/src/services/bundle/bundle-connectors.d.ts.map +1 -0
  33. package/dist/backend/backend/src/services/bundle/bundle-connectors.js +57 -0
  34. package/dist/backend/backend/src/services/bundle/bundle-connectors.js.map +1 -0
  35. package/dist/backend/backend/src/services/bundle/bundle-deps.d.ts +37 -0
  36. package/dist/backend/backend/src/services/bundle/bundle-deps.d.ts.map +1 -0
  37. package/dist/backend/backend/src/services/bundle/bundle-deps.js +60 -0
  38. package/dist/backend/backend/src/services/bundle/bundle-deps.js.map +1 -0
  39. package/dist/backend/backend/src/services/bundle/bundle-manifest.d.ts +93 -0
  40. package/dist/backend/backend/src/services/bundle/bundle-manifest.d.ts.map +1 -0
  41. package/dist/backend/backend/src/services/bundle/bundle-manifest.js +532 -0
  42. package/dist/backend/backend/src/services/bundle/bundle-manifest.js.map +1 -0
  43. package/dist/backend/backend/src/services/bundle/bundle-placeholders.d.ts +100 -0
  44. package/dist/backend/backend/src/services/bundle/bundle-placeholders.d.ts.map +1 -0
  45. package/dist/backend/backend/src/services/bundle/bundle-placeholders.js +183 -0
  46. package/dist/backend/backend/src/services/bundle/bundle-placeholders.js.map +1 -0
  47. package/dist/backend/backend/src/services/bundle/bundle-runtime.d.ts +36 -0
  48. package/dist/backend/backend/src/services/bundle/bundle-runtime.d.ts.map +1 -0
  49. package/dist/backend/backend/src/services/bundle/bundle-runtime.js +38 -0
  50. package/dist/backend/backend/src/services/bundle/bundle-runtime.js.map +1 -0
  51. package/dist/backend/backend/src/services/bundle/bundle-skill-installer.d.ts +105 -0
  52. package/dist/backend/backend/src/services/bundle/bundle-skill-installer.d.ts.map +1 -0
  53. package/dist/backend/backend/src/services/bundle/bundle-skill-installer.js +144 -0
  54. package/dist/backend/backend/src/services/bundle/bundle-skill-installer.js.map +1 -0
  55. package/dist/backend/backend/src/services/bundle/bundle-state.store.d.ts +48 -0
  56. package/dist/backend/backend/src/services/bundle/bundle-state.store.d.ts.map +1 -0
  57. package/dist/backend/backend/src/services/bundle/bundle-state.store.js +90 -0
  58. package/dist/backend/backend/src/services/bundle/bundle-state.store.js.map +1 -0
  59. package/dist/backend/backend/src/services/bundle/bundle-team.builder.d.ts +81 -0
  60. package/dist/backend/backend/src/services/bundle/bundle-team.builder.d.ts.map +1 -0
  61. package/dist/backend/backend/src/services/bundle/bundle-team.builder.js +172 -0
  62. package/dist/backend/backend/src/services/bundle/bundle-team.builder.js.map +1 -0
  63. package/dist/backend/backend/src/services/bundle/bundle-time.d.ts +59 -0
  64. package/dist/backend/backend/src/services/bundle/bundle-time.d.ts.map +1 -0
  65. package/dist/backend/backend/src/services/bundle/bundle-time.js +98 -0
  66. package/dist/backend/backend/src/services/bundle/bundle-time.js.map +1 -0
  67. package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.d.ts.map +1 -1
  68. package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.js +5 -0
  69. package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.js.map +1 -1
  70. package/dist/backend/backend/src/services/core/storage.service.js +1 -1
  71. package/dist/backend/backend/src/services/core/storage.service.js.map +1 -1
  72. package/dist/backend/backend/src/services/core/teams-backup.service.d.ts.map +1 -1
  73. package/dist/backend/backend/src/services/core/teams-backup.service.js +4 -2
  74. package/dist/backend/backend/src/services/core/teams-backup.service.js.map +1 -1
  75. package/dist/backend/backend/src/services/onboarding/onboarding-checklist.factory.d.ts.map +1 -1
  76. package/dist/backend/backend/src/services/onboarding/onboarding-checklist.factory.js +2 -0
  77. package/dist/backend/backend/src/services/onboarding/onboarding-checklist.factory.js.map +1 -1
  78. package/dist/backend/backend/src/services/onboarding/onboarding-checklist.service.d.ts +14 -2
  79. package/dist/backend/backend/src/services/onboarding/onboarding-checklist.service.d.ts.map +1 -1
  80. package/dist/backend/backend/src/services/onboarding/onboarding-checklist.service.js +37 -1
  81. package/dist/backend/backend/src/services/onboarding/onboarding-checklist.service.js.map +1 -1
  82. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts +21 -0
  83. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  84. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js +85 -0
  85. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  86. package/dist/backend/backend/src/services/template/template.service.d.ts.map +1 -1
  87. package/dist/backend/backend/src/services/template/template.service.js +5 -2
  88. package/dist/backend/backend/src/services/template/template.service.js.map +1 -1
  89. package/dist/backend/backend/src/services/workflow/cron-task.service.d.ts.map +1 -1
  90. package/dist/backend/backend/src/services/workflow/cron-task.service.js +4 -2
  91. package/dist/backend/backend/src/services/workflow/cron-task.service.js.map +1 -1
  92. package/dist/backend/backend/src/types/solution-bundle.types.d.ts +367 -0
  93. package/dist/backend/backend/src/types/solution-bundle.types.d.ts.map +1 -0
  94. package/dist/backend/backend/src/types/solution-bundle.types.js +17 -0
  95. package/dist/backend/backend/src/types/solution-bundle.types.js.map +1 -0
  96. package/dist/backend/backend/src/types/team-template.types.d.ts +8 -0
  97. package/dist/backend/backend/src/types/team-template.types.d.ts.map +1 -1
  98. package/dist/backend/backend/src/types/team-template.types.js.map +1 -1
  99. package/dist/backend/build-info.json +2 -2
  100. package/dist/cli/backend/src/constants.d.ts +82 -0
  101. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  102. package/dist/cli/backend/src/constants.js +87 -0
  103. package/dist/cli/backend/src/constants.js.map +1 -1
  104. package/dist/cli/backend/src/services/bundle/bundle-apply.service.d.ts +359 -0
  105. package/dist/cli/backend/src/services/bundle/bundle-apply.service.d.ts.map +1 -0
  106. package/dist/cli/backend/src/services/bundle/bundle-apply.service.js +888 -0
  107. package/dist/cli/backend/src/services/bundle/bundle-apply.service.js.map +1 -0
  108. package/dist/cli/backend/src/services/bundle/bundle-catalog.d.ts +167 -0
  109. package/dist/cli/backend/src/services/bundle/bundle-catalog.d.ts.map +1 -0
  110. package/dist/cli/backend/src/services/bundle/bundle-catalog.js +248 -0
  111. package/dist/cli/backend/src/services/bundle/bundle-catalog.js.map +1 -0
  112. package/dist/cli/backend/src/services/bundle/bundle-deps.d.ts +37 -0
  113. package/dist/cli/backend/src/services/bundle/bundle-deps.d.ts.map +1 -0
  114. package/dist/cli/backend/src/services/bundle/bundle-deps.js +60 -0
  115. package/dist/cli/backend/src/services/bundle/bundle-deps.js.map +1 -0
  116. package/dist/cli/backend/src/services/bundle/bundle-manifest.d.ts +93 -0
  117. package/dist/cli/backend/src/services/bundle/bundle-manifest.d.ts.map +1 -0
  118. package/dist/cli/backend/src/services/bundle/bundle-manifest.js +532 -0
  119. package/dist/cli/backend/src/services/bundle/bundle-manifest.js.map +1 -0
  120. package/dist/cli/backend/src/services/bundle/bundle-placeholders.d.ts +100 -0
  121. package/dist/cli/backend/src/services/bundle/bundle-placeholders.d.ts.map +1 -0
  122. package/dist/cli/backend/src/services/bundle/bundle-placeholders.js +183 -0
  123. package/dist/cli/backend/src/services/bundle/bundle-placeholders.js.map +1 -0
  124. package/dist/cli/backend/src/services/bundle/bundle-runtime.d.ts +36 -0
  125. package/dist/cli/backend/src/services/bundle/bundle-runtime.d.ts.map +1 -0
  126. package/dist/cli/backend/src/services/bundle/bundle-runtime.js +38 -0
  127. package/dist/cli/backend/src/services/bundle/bundle-runtime.js.map +1 -0
  128. package/dist/cli/backend/src/services/bundle/bundle-skill-installer.d.ts +105 -0
  129. package/dist/cli/backend/src/services/bundle/bundle-skill-installer.d.ts.map +1 -0
  130. package/dist/cli/backend/src/services/bundle/bundle-skill-installer.js +144 -0
  131. package/dist/cli/backend/src/services/bundle/bundle-skill-installer.js.map +1 -0
  132. package/dist/cli/backend/src/services/bundle/bundle-state.store.d.ts +48 -0
  133. package/dist/cli/backend/src/services/bundle/bundle-state.store.d.ts.map +1 -0
  134. package/dist/cli/backend/src/services/bundle/bundle-state.store.js +90 -0
  135. package/dist/cli/backend/src/services/bundle/bundle-state.store.js.map +1 -0
  136. package/dist/cli/backend/src/services/bundle/bundle-team.builder.d.ts +81 -0
  137. package/dist/cli/backend/src/services/bundle/bundle-team.builder.d.ts.map +1 -0
  138. package/dist/cli/backend/src/services/bundle/bundle-team.builder.js +172 -0
  139. package/dist/cli/backend/src/services/bundle/bundle-team.builder.js.map +1 -0
  140. package/dist/cli/backend/src/services/bundle/bundle-time.d.ts +59 -0
  141. package/dist/cli/backend/src/services/bundle/bundle-time.d.ts.map +1 -0
  142. package/dist/cli/backend/src/services/bundle/bundle-time.js +98 -0
  143. package/dist/cli/backend/src/services/bundle/bundle-time.js.map +1 -0
  144. package/dist/cli/backend/src/services/core/storage.service.js +1 -1
  145. package/dist/cli/backend/src/services/core/storage.service.js.map +1 -1
  146. package/dist/cli/backend/src/services/core/teams-backup.service.d.ts.map +1 -1
  147. package/dist/cli/backend/src/services/core/teams-backup.service.js +4 -2
  148. package/dist/cli/backend/src/services/core/teams-backup.service.js.map +1 -1
  149. package/dist/cli/backend/src/services/marketplace/marketplace-installer.service.d.ts +72 -0
  150. package/dist/cli/backend/src/services/marketplace/marketplace-installer.service.d.ts.map +1 -0
  151. package/dist/cli/backend/src/services/marketplace/marketplace-installer.service.js +389 -0
  152. package/dist/cli/backend/src/services/marketplace/marketplace-installer.service.js.map +1 -0
  153. package/dist/cli/backend/src/services/messaging/index.d.ts +15 -0
  154. package/dist/cli/backend/src/services/messaging/index.d.ts.map +1 -0
  155. package/dist/cli/backend/src/services/messaging/index.js +20 -0
  156. package/dist/cli/backend/src/services/messaging/index.js.map +1 -0
  157. package/dist/cli/backend/src/services/messaging/queue-processor.service.d.ts +224 -0
  158. package/dist/cli/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -0
  159. package/dist/cli/backend/src/services/messaging/queue-processor.service.js +969 -0
  160. package/dist/cli/backend/src/services/messaging/queue-processor.service.js.map +1 -0
  161. package/dist/cli/backend/src/services/messaging/response-router.service.d.ts +110 -0
  162. package/dist/cli/backend/src/services/messaging/response-router.service.d.ts.map +1 -0
  163. package/dist/cli/backend/src/services/messaging/response-router.service.js +268 -0
  164. package/dist/cli/backend/src/services/messaging/response-router.service.js.map +1 -0
  165. package/dist/cli/backend/src/services/onboarding/onboarding-checklist.service.d.ts +14 -2
  166. package/dist/cli/backend/src/services/onboarding/onboarding-checklist.service.d.ts.map +1 -1
  167. package/dist/cli/backend/src/services/onboarding/onboarding-checklist.service.js +37 -1
  168. package/dist/cli/backend/src/services/onboarding/onboarding-checklist.service.js.map +1 -1
  169. package/dist/cli/backend/src/services/orchestrator/commitment-approval-guard.d.ts +133 -0
  170. package/dist/cli/backend/src/services/orchestrator/commitment-approval-guard.d.ts.map +1 -0
  171. package/dist/cli/backend/src/services/orchestrator/commitment-approval-guard.js +232 -0
  172. package/dist/cli/backend/src/services/orchestrator/commitment-approval-guard.js.map +1 -0
  173. package/dist/cli/backend/src/services/skill/skill-catalog.service.d.ts +277 -0
  174. package/dist/cli/backend/src/services/skill/skill-catalog.service.d.ts.map +1 -0
  175. package/dist/cli/backend/src/services/skill/skill-catalog.service.js +708 -0
  176. package/dist/cli/backend/src/services/skill/skill-catalog.service.js.map +1 -0
  177. package/dist/cli/backend/src/services/skill-setup/skill-install-job.service.d.ts +243 -0
  178. package/dist/cli/backend/src/services/skill-setup/skill-install-job.service.d.ts.map +1 -0
  179. package/dist/cli/backend/src/services/skill-setup/skill-install-job.service.js +439 -0
  180. package/dist/cli/backend/src/services/skill-setup/skill-install-job.service.js.map +1 -0
  181. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts +21 -0
  182. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  183. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js +85 -0
  184. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  185. package/dist/cli/backend/src/services/template/template.service.d.ts.map +1 -1
  186. package/dist/cli/backend/src/services/template/template.service.js +5 -2
  187. package/dist/cli/backend/src/services/template/template.service.js.map +1 -1
  188. package/dist/cli/backend/src/services/workflow/cron-task.service.d.ts +316 -0
  189. package/dist/cli/backend/src/services/workflow/cron-task.service.d.ts.map +1 -0
  190. package/dist/cli/backend/src/services/workflow/cron-task.service.js +1043 -0
  191. package/dist/cli/backend/src/services/workflow/cron-task.service.js.map +1 -0
  192. package/dist/cli/backend/src/types/cron-task.types.d.ts +95 -0
  193. package/dist/cli/backend/src/types/cron-task.types.d.ts.map +1 -0
  194. package/dist/cli/backend/src/types/cron-task.types.js +10 -0
  195. package/dist/cli/backend/src/types/cron-task.types.js.map +1 -0
  196. package/dist/cli/backend/src/types/solution-bundle.types.d.ts +367 -0
  197. package/dist/cli/backend/src/types/solution-bundle.types.d.ts.map +1 -0
  198. package/dist/cli/backend/src/types/solution-bundle.types.js +17 -0
  199. package/dist/cli/backend/src/types/solution-bundle.types.js.map +1 -0
  200. package/dist/cli/backend/src/types/team-template.types.d.ts +8 -0
  201. package/dist/cli/backend/src/types/team-template.types.d.ts.map +1 -1
  202. package/dist/cli/backend/src/types/team-template.types.js.map +1 -1
  203. package/dist/cli/cli/src/commands/deploy-bundle.d.ts +160 -0
  204. package/dist/cli/cli/src/commands/deploy-bundle.d.ts.map +1 -0
  205. package/dist/cli/cli/src/commands/deploy-bundle.js +386 -0
  206. package/dist/cli/cli/src/commands/deploy-bundle.js.map +1 -0
  207. package/dist/cli/cli/src/commands/onboard.d.ts +32 -1
  208. package/dist/cli/cli/src/commands/onboard.d.ts.map +1 -1
  209. package/dist/cli/cli/src/commands/onboard.js +80 -3
  210. package/dist/cli/cli/src/commands/onboard.js.map +1 -1
  211. package/dist/cli/cli/src/constants.d.ts +5 -0
  212. package/dist/cli/cli/src/constants.d.ts.map +1 -1
  213. package/dist/cli/cli/src/constants.js +5 -0
  214. package/dist/cli/cli/src/constants.js.map +1 -1
  215. package/dist/cli/cli/src/index.js +15 -0
  216. package/dist/cli/cli/src/index.js.map +1 -1
  217. package/frontend/dist/assets/{index-e6c403b6.js → index-97bb17d4.js} +274 -274
  218. package/frontend/dist/index.html +1 -1
  219. package/package.json +1 -1
@@ -0,0 +1,277 @@
1
+ /**
2
+ * Skill Catalog Service
3
+ *
4
+ * Scans skill directories (orchestrator and agent), reads SKILL.md
5
+ * (YAML frontmatter + markdown body) from each, and generates formatted
6
+ * catalog Markdown files at ~/.crewly/skills/.
7
+ *
8
+ * Generates two catalogs:
9
+ * - SKILLS_CATALOG.md for orchestrator skills
10
+ * - AGENT_SKILLS_CATALOG.md for agent skills
11
+ *
12
+ * Each catalog provides a human-readable and LLM-readable reference of all
13
+ * available skills grouped by category, including usage examples and parameter
14
+ * documentation extracted from each skill's SKILL.md body.
15
+ *
16
+ * @module services/skill/skill-catalog.service
17
+ */
18
+ /**
19
+ * Result of the catalog generation process.
20
+ */
21
+ export interface CatalogGenerationResult {
22
+ /** Whether the catalog was successfully generated */
23
+ success: boolean;
24
+ /** Absolute path to the generated catalog file */
25
+ catalogPath: string;
26
+ /** Total number of skills included in the catalog */
27
+ skillCount: number;
28
+ /** Number of distinct categories in the catalog */
29
+ categoryCount: number;
30
+ /** Error message if generation failed */
31
+ error?: string;
32
+ }
33
+ /**
34
+ * Service for generating a Markdown skills catalog from orchestrator skill directories.
35
+ *
36
+ * Scans config/skills/orchestrator/ for subdirectories (skipping _common),
37
+ * reads skill.json and instructions.md from each, groups skills by category,
38
+ * and writes a formatted SKILLS_CATALOG.md to ~/.crewly/skills/.
39
+ *
40
+ * Uses a singleton pattern consistent with other Crewly services.
41
+ *
42
+ * @example
43
+ * ```typescript
44
+ * const catalogService = SkillCatalogService.getInstance('/path/to/project');
45
+ * const result = await catalogService.generateCatalog();
46
+ * console.log(`Generated catalog at ${result.catalogPath} with ${result.skillCount} skills`);
47
+ * ```
48
+ */
49
+ export declare class SkillCatalogService {
50
+ private static instance;
51
+ private readonly logger;
52
+ private readonly projectRoot;
53
+ private readonly catalogDir;
54
+ /**
55
+ * Create a new SkillCatalogService instance.
56
+ *
57
+ * @param projectRoot - Absolute path to the project root directory.
58
+ * Defaults to the current working directory if not provided.
59
+ */
60
+ constructor(projectRoot?: string);
61
+ /**
62
+ * #222: Resolve the Crewly install directory from __dirname or CWD.
63
+ *
64
+ * @returns Absolute path to the Crewly install directory
65
+ */
66
+ private resolveInstallDir;
67
+ /**
68
+ * Get the singleton SkillCatalogService instance.
69
+ *
70
+ * Creates a new instance on first call with the provided project root,
71
+ * or returns the existing instance on subsequent calls.
72
+ *
73
+ * @param projectRoot - Absolute path to the project root directory
74
+ * @returns The shared SkillCatalogService instance
75
+ */
76
+ static getInstance(projectRoot?: string): SkillCatalogService;
77
+ /**
78
+ * Reset the singleton instance.
79
+ *
80
+ * Used primarily for testing to ensure a clean state between test runs.
81
+ */
82
+ static clearInstance(): void;
83
+ /**
84
+ * Generate the skills catalog by scanning skill directories and writing
85
+ * the formatted Markdown file.
86
+ *
87
+ * This method performs the following steps:
88
+ * 1. Ensures the output directory (~/.crewly/skills/) exists
89
+ * 2. Scans config/skills/orchestrator/ for skill subdirectories
90
+ * 3. Reads skill.json and instructions.md from each valid directory
91
+ * 4. Groups loaded skills by their category field
92
+ * 5. Renders a Markdown catalog document
93
+ * 6. Writes the catalog to ~/.crewly/skills/SKILLS_CATALOG.md
94
+ *
95
+ * @returns A result object with success status, path, and counts
96
+ *
97
+ * @example
98
+ * ```typescript
99
+ * const result = await catalogService.generateCatalog();
100
+ * if (result.success) {
101
+ * console.log(`Catalog written to ${result.catalogPath}`);
102
+ * } else {
103
+ * console.error(`Catalog generation failed: ${result.error}`);
104
+ * }
105
+ * ```
106
+ */
107
+ generateCatalog(): Promise<CatalogGenerationResult>;
108
+ /**
109
+ * Generate the agent skills catalog by scanning agent skill directories
110
+ * and writing a formatted Markdown file.
111
+ *
112
+ * This method mirrors generateCatalog() but targets config/skills/agent/
113
+ * and writes to ~/.crewly/skills/AGENT_SKILLS_CATALOG.md.
114
+ *
115
+ * @returns A result object with success status, path, and counts
116
+ *
117
+ * @example
118
+ * ```typescript
119
+ * const result = await catalogService.generateAgentCatalog();
120
+ * if (result.success) {
121
+ * console.log(`Agent catalog written to ${result.catalogPath}`);
122
+ * }
123
+ * ```
124
+ */
125
+ generateAgentCatalog(): Promise<CatalogGenerationResult>;
126
+ /**
127
+ * Get the absolute path where the orchestrator catalog file will be written.
128
+ *
129
+ * @returns Absolute path to ~/.crewly/skills/SKILLS_CATALOG.md
130
+ */
131
+ getCatalogPath(): string;
132
+ /**
133
+ * Get the absolute path where the agent catalog file will be written.
134
+ *
135
+ * @returns Absolute path to ~/.crewly/skills/AGENT_SKILLS_CATALOG.md
136
+ */
137
+ getAgentCatalogPath(): string;
138
+ /**
139
+ * Ensure the catalog output directory exists, creating it recursively
140
+ * if necessary.
141
+ *
142
+ * Uses synchronous mkdirSync since this is a one-time setup operation
143
+ * that must complete before writing the catalog.
144
+ */
145
+ private ensureCatalogDirectory;
146
+ /**
147
+ * Scan the orchestrator skills directory for valid skill subdirectories,
148
+ * plus agent skills whose `assignableRoles` includes `orchestrator`.
149
+ *
150
+ * Pipeline-#4 fix (spec 2026-05-05-request-decompose-pipeline-gap.md, Patch C
151
+ * zero-LOC alternative): some materialisation skills (e.g.
152
+ * `agent/core/break-down-request`) are role-shared between agents and the
153
+ * orchestrator and live under `config/skills/agent/core/`. Without this
154
+ * cross-scan, the orchestrator's catalog would not surface them and the orc
155
+ * would have no discoverable path to materialise WorkItems for a Request,
156
+ * even though the prompt at prompt-builder.service.ts:374 instructs it to.
157
+ *
158
+ * Skills already present under `config/skills/orchestrator/` win on
159
+ * collisions (deduped by name), so adding an explicit orchestrator-side
160
+ * skill later transparently shadows the agent-side one.
161
+ *
162
+ * @returns Array of loaded skills with their definitions and instructions
163
+ */
164
+ private scanSkillDirectories;
165
+ /**
166
+ * Scan a skills directory for valid skill subdirectories.
167
+ *
168
+ * Reads each subdirectory (skipping entries in SKIP_DIRECTORIES),
169
+ * loads skill.json and instructions.md from each, and returns an array
170
+ * of successfully loaded skills. Directories that fail to load are
171
+ * logged as warnings but do not cause the entire scan to fail.
172
+ *
173
+ * When a subdirectory has no skill.json, it is treated as a category
174
+ * directory (e.g. core/, marketplace/) and its children are scanned.
175
+ *
176
+ * @param pathOrRelative - Path to the skills directory. Joined with
177
+ * projectRoot by default; used directly when `options.absolute` is true.
178
+ * @param options - Optional flags to control path resolution and basePath tagging
179
+ * @returns Array of loaded skills with their definitions and instructions
180
+ */
181
+ private scanSkillDirectoriesAt;
182
+ /**
183
+ * Load a single skill from a directory by reading its SKILL.md file
184
+ * (YAML frontmatter + markdown body). Falls back to legacy skill.json
185
+ * + instructions.md format for backward compatibility.
186
+ *
187
+ * @param parentDir - Absolute path to the parent skills directory
188
+ * @param dirName - Name of the skill subdirectory
189
+ * @returns A LoadedSkill object, or null if loading fails
190
+ */
191
+ private loadSkillFromDirectory;
192
+ /**
193
+ * Load a skill from SKILL.md format (YAML frontmatter + markdown body).
194
+ *
195
+ * @param skillDir - Absolute path to the skill directory
196
+ * @param skillMdPath - Path to the SKILL.md file
197
+ * @param dirName - Name of the skill subdirectory
198
+ * @returns A LoadedSkill object, or null if loading fails
199
+ */
200
+ private loadSkillFromSkillMd;
201
+ /**
202
+ * Load a skill from legacy skill.json + instructions.md format.
203
+ *
204
+ * @param skillDir - Absolute path to the skill directory
205
+ * @param skillJsonPath - Path to the skill.json file
206
+ * @param dirName - Name of the skill subdirectory
207
+ * @returns A LoadedSkill object, or null if loading fails
208
+ */
209
+ private loadSkillFromLegacyJson;
210
+ /**
211
+ * Group loaded skills by their category field.
212
+ *
213
+ * Categories are title-cased for display (e.g., "management" becomes "Management").
214
+ * Skills within each category are maintained in their current sorted order.
215
+ *
216
+ * @param skills - Array of loaded skills to group
217
+ * @returns Map of category display name to array of skills in that category
218
+ */
219
+ private groupByCategory;
220
+ /**
221
+ * Format a raw category string into a display-friendly title.
222
+ *
223
+ * Capitalizes the first letter of each word and replaces hyphens/underscores
224
+ * with spaces (e.g., "task-management" becomes "Task Management").
225
+ *
226
+ * @param category - Raw category string from skill.json
227
+ * @returns Formatted category display name
228
+ */
229
+ private formatCategoryName;
230
+ /**
231
+ * Render the complete Markdown catalog document from grouped skills.
232
+ *
233
+ * Delegates to renderCatalogWithConfig() with orchestrator defaults.
234
+ *
235
+ * @param groupedSkills - Map of category name to skills in that category
236
+ * @returns Complete Markdown document as a string
237
+ */
238
+ private renderCatalog;
239
+ /**
240
+ * Render the complete Markdown catalog document from grouped skills
241
+ * with configurable title and path prefix.
242
+ *
243
+ * Produces the full catalog including header, usage instructions,
244
+ * category sections, and individual skill entries with descriptions
245
+ * and parameter documentation extracted from instructions.md.
246
+ *
247
+ * @param groupedSkills - Map of category name to skills in that category
248
+ * @param config - Catalog rendering configuration
249
+ * @param config.title - Catalog title for the Markdown heading
250
+ * @param config.skillsRelativePath - Relative path prefix for skill usage commands
251
+ * @returns Complete Markdown document as a string
252
+ */
253
+ private renderCatalogWithConfig;
254
+ /**
255
+ * Render a single skill entry as Markdown lines.
256
+ *
257
+ * Includes the skill name, description, usage command, and any
258
+ * Parameters section extracted from the skill's instructions.md.
259
+ *
260
+ * @param skill - The loaded skill to render
261
+ * @param skillsRelativePath - Relative path prefix for usage command
262
+ * @returns Array of Markdown lines for this skill entry
263
+ */
264
+ private renderSkillEntry;
265
+ /**
266
+ * Extract the Parameters section from an instructions.md file's content.
267
+ *
268
+ * Uses a line-based approach to find the "## Parameters" heading and capture
269
+ * all content until the next heading of the same or higher level (# or ##)
270
+ * or the end of the file. Returns null if no Parameters section is found.
271
+ *
272
+ * @param instructionsContent - Full content of the instructions.md file
273
+ * @returns The Parameters section content (without the heading), or null
274
+ */
275
+ private extractParametersSection;
276
+ }
277
+ //# sourceMappingURL=skill-catalog.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-catalog.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/skill/skill-catalog.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAoGH;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,qDAAqD;IACrD,OAAO,EAAE,OAAO,CAAC;IACjB,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAoC;IAC3D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IAEpC;;;;;OAKG;gBACS,WAAW,CAAC,EAAE,MAAM;IAOhC;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAazB;;;;;;;;OAQG;WACW,WAAW,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,mBAAmB;IAOpE;;;;OAIG;WACW,aAAa,IAAI,IAAI;IAInC;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACU,eAAe,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAkEhE;;;;;;;;;;;;;;;;OAgBG;IACU,oBAAoB,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAoGrE;;;;OAIG;IACI,cAAc,IAAI,MAAM;IAI/B;;;;OAIG;IACI,mBAAmB,IAAI,MAAM;IAQpC;;;;;;OAMG;IACH,OAAO,CAAC,sBAAsB;IAM9B;;;;;;;;;;;;;;;;;OAiBG;YACW,oBAAoB;IA4BlC;;;;;;;;;;;;;;;OAeG;YACW,sBAAsB;IA2DpC;;;;;;;;OAQG;YACW,sBAAsB;IAqBpC;;;;;;;OAOG;YACW,oBAAoB;IA2ClC;;;;;;;OAOG;YACW,uBAAuB;IAsCrC;;;;;;;;OAQG;IACH,OAAO,CAAC,eAAe;IAkBvB;;;;;;;;OAQG;IACH,OAAO,CAAC,kBAAkB;IAO1B;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa;IASrB;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,uBAAuB;IAmC/B;;;;;;;;;OASG;IACH,OAAO,CAAC,gBAAgB;IA8BxB;;;;;;;;;OASG;IACH,OAAO,CAAC,wBAAwB;CAiCjC"}