crewly 1.0.3 → 1.0.5

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 (189) hide show
  1. package/config/roles/orchestrator/prompt.md +61 -2
  2. package/config/skills/orchestrator/remember/instructions.md +8 -1
  3. package/config/skills/orchestrator/update-team/execute.sh +16 -0
  4. package/config/skills/orchestrator/update-team/instructions.md +21 -0
  5. package/config/skills/orchestrator/update-team/skill.json +20 -0
  6. package/dist/backend/backend/src/controllers/messaging/delivery-logs.controller.d.ts.map +1 -1
  7. package/dist/backend/backend/src/controllers/messaging/delivery-logs.controller.js +4 -2
  8. package/dist/backend/backend/src/controllers/messaging/delivery-logs.controller.js.map +1 -1
  9. package/dist/backend/backend/src/controllers/messaging/scheduled-messages.controller.d.ts.map +1 -1
  10. package/dist/backend/backend/src/controllers/messaging/scheduled-messages.controller.js +10 -8
  11. package/dist/backend/backend/src/controllers/messaging/scheduled-messages.controller.js.map +1 -1
  12. package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.d.ts.map +1 -1
  13. package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.js +28 -26
  14. package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.js.map +1 -1
  15. package/dist/backend/backend/src/controllers/project/git.controller.d.ts.map +1 -1
  16. package/dist/backend/backend/src/controllers/project/git.controller.js +9 -7
  17. package/dist/backend/backend/src/controllers/project/git.controller.js.map +1 -1
  18. package/dist/backend/backend/src/controllers/project/project.controller.d.ts.map +1 -1
  19. package/dist/backend/backend/src/controllers/project/project.controller.js +52 -50
  20. package/dist/backend/backend/src/controllers/project/project.controller.js.map +1 -1
  21. package/dist/backend/backend/src/controllers/skill/skill.controller.d.ts.map +1 -1
  22. package/dist/backend/backend/src/controllers/skill/skill.controller.js +3 -1
  23. package/dist/backend/backend/src/controllers/skill/skill.controller.js.map +1 -1
  24. package/dist/backend/backend/src/controllers/slack/slack-thread.controller.d.ts.map +1 -1
  25. package/dist/backend/backend/src/controllers/slack/slack-thread.controller.js +3 -1
  26. package/dist/backend/backend/src/controllers/slack/slack-thread.controller.js.map +1 -1
  27. package/dist/backend/backend/src/controllers/system/config.controller.d.ts.map +1 -1
  28. package/dist/backend/backend/src/controllers/system/config.controller.js +3 -1
  29. package/dist/backend/backend/src/controllers/system/config.controller.js.map +1 -1
  30. package/dist/backend/backend/src/controllers/system/errors.controller.d.ts.map +1 -1
  31. package/dist/backend/backend/src/controllers/system/errors.controller.js +7 -5
  32. package/dist/backend/backend/src/controllers/system/errors.controller.js.map +1 -1
  33. package/dist/backend/backend/src/controllers/system/scheduler.controller.d.ts.map +1 -1
  34. package/dist/backend/backend/src/controllers/system/scheduler.controller.js +6 -4
  35. package/dist/backend/backend/src/controllers/system/scheduler.controller.js.map +1 -1
  36. package/dist/backend/backend/src/controllers/system/system.controller.d.ts.map +1 -1
  37. package/dist/backend/backend/src/controllers/system/system.controller.js +20 -19
  38. package/dist/backend/backend/src/controllers/system/system.controller.js.map +1 -1
  39. package/dist/backend/backend/src/controllers/task-management/assignments.controller.d.ts.map +1 -1
  40. package/dist/backend/backend/src/controllers/task-management/assignments.controller.js +4 -2
  41. package/dist/backend/backend/src/controllers/task-management/assignments.controller.js.map +1 -1
  42. package/dist/backend/backend/src/controllers/task-management/in-progress-tasks.controller.d.ts.map +1 -1
  43. package/dist/backend/backend/src/controllers/task-management/in-progress-tasks.controller.js +3 -1
  44. package/dist/backend/backend/src/controllers/task-management/in-progress-tasks.controller.js.map +1 -1
  45. package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts.map +1 -1
  46. package/dist/backend/backend/src/controllers/task-management/task-management.controller.js +30 -28
  47. package/dist/backend/backend/src/controllers/task-management/task-management.controller.js.map +1 -1
  48. package/dist/backend/backend/src/controllers/task-management/tasks.controller.d.ts.map +1 -1
  49. package/dist/backend/backend/src/controllers/task-management/tasks.controller.js +7 -5
  50. package/dist/backend/backend/src/controllers/task-management/tasks.controller.js.map +1 -1
  51. package/dist/backend/backend/src/controllers/task-management/tickets.controller.d.ts.map +1 -1
  52. package/dist/backend/backend/src/controllers/task-management/tickets.controller.js +12 -10
  53. package/dist/backend/backend/src/controllers/task-management/tickets.controller.js.map +1 -1
  54. package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
  55. package/dist/backend/backend/src/controllers/team/team.controller.js +44 -42
  56. package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
  57. package/dist/backend/backend/src/controllers/team/team.routes.d.ts.map +1 -1
  58. package/dist/backend/backend/src/controllers/team/team.routes.js +1 -0
  59. package/dist/backend/backend/src/controllers/team/team.routes.js.map +1 -1
  60. package/dist/backend/backend/src/index.d.ts.map +1 -1
  61. package/dist/backend/backend/src/index.js +5 -1
  62. package/dist/backend/backend/src/index.js.map +1 -1
  63. package/dist/backend/backend/src/routes/factory.routes.d.ts.map +1 -1
  64. package/dist/backend/backend/src/routes/factory.routes.js +4 -2
  65. package/dist/backend/backend/src/routes/factory.routes.js.map +1 -1
  66. package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.d.ts.map +1 -1
  67. package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.js +8 -2
  68. package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.js.map +1 -1
  69. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +6 -0
  70. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  71. package/dist/backend/backend/src/services/agent/agent-registration.service.js +29 -6
  72. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  73. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
  74. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js +22 -8
  75. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -1
  76. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
  77. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js +9 -3
  78. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
  79. package/dist/backend/backend/src/services/ai/context-loader.service.d.ts +1 -0
  80. package/dist/backend/backend/src/services/ai/context-loader.service.d.ts.map +1 -1
  81. package/dist/backend/backend/src/services/ai/context-loader.service.js +9 -7
  82. package/dist/backend/backend/src/services/ai/context-loader.service.js.map +1 -1
  83. package/dist/backend/backend/src/services/ai/prompt-template.service.d.ts +1 -0
  84. package/dist/backend/backend/src/services/ai/prompt-template.service.d.ts.map +1 -1
  85. package/dist/backend/backend/src/services/ai/prompt-template.service.js +7 -5
  86. package/dist/backend/backend/src/services/ai/prompt-template.service.js.map +1 -1
  87. package/dist/backend/backend/src/services/core/config.service.d.ts +6 -0
  88. package/dist/backend/backend/src/services/core/config.service.d.ts.map +1 -1
  89. package/dist/backend/backend/src/services/core/config.service.js +25 -5
  90. package/dist/backend/backend/src/services/core/config.service.js.map +1 -1
  91. package/dist/backend/backend/src/services/core/storage.service.d.ts +10 -2
  92. package/dist/backend/backend/src/services/core/storage.service.d.ts.map +1 -1
  93. package/dist/backend/backend/src/services/core/storage.service.js +45 -29
  94. package/dist/backend/backend/src/services/core/storage.service.js.map +1 -1
  95. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts.map +1 -1
  96. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js +50 -33
  97. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js.map +1 -1
  98. package/dist/backend/backend/src/services/monitoring/team-activity-websocket.service.d.ts +4 -1
  99. package/dist/backend/backend/src/services/monitoring/team-activity-websocket.service.d.ts.map +1 -1
  100. package/dist/backend/backend/src/services/monitoring/team-activity-websocket.service.js +28 -14
  101. package/dist/backend/backend/src/services/monitoring/team-activity-websocket.service.js.map +1 -1
  102. package/dist/backend/backend/src/services/orchestrator/improvement-startup.service.d.ts +1 -0
  103. package/dist/backend/backend/src/services/orchestrator/improvement-startup.service.d.ts.map +1 -1
  104. package/dist/backend/backend/src/services/orchestrator/improvement-startup.service.js +22 -20
  105. package/dist/backend/backend/src/services/orchestrator/improvement-startup.service.js.map +1 -1
  106. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.d.ts.map +1 -1
  107. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js +11 -2
  108. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js.map +1 -1
  109. package/dist/backend/backend/src/services/orchestrator/safe-restart.service.d.ts +1 -0
  110. package/dist/backend/backend/src/services/orchestrator/safe-restart.service.d.ts.map +1 -1
  111. package/dist/backend/backend/src/services/orchestrator/safe-restart.service.js +25 -23
  112. package/dist/backend/backend/src/services/orchestrator/safe-restart.service.js.map +1 -1
  113. package/dist/backend/backend/src/services/orchestrator/self-improvement.service.d.ts +1 -0
  114. package/dist/backend/backend/src/services/orchestrator/self-improvement.service.d.ts.map +1 -1
  115. package/dist/backend/backend/src/services/orchestrator/self-improvement.service.js +12 -10
  116. package/dist/backend/backend/src/services/orchestrator/self-improvement.service.js.map +1 -1
  117. package/dist/backend/backend/src/services/orchestrator/slack-bridge-lazy.d.ts +17 -0
  118. package/dist/backend/backend/src/services/orchestrator/slack-bridge-lazy.d.ts.map +1 -0
  119. package/dist/backend/backend/src/services/orchestrator/slack-bridge-lazy.js +30 -0
  120. package/dist/backend/backend/src/services/orchestrator/slack-bridge-lazy.js.map +1 -0
  121. package/dist/backend/backend/src/services/orchestrator/state-persistence.service.d.ts +1 -0
  122. package/dist/backend/backend/src/services/orchestrator/state-persistence.service.d.ts.map +1 -1
  123. package/dist/backend/backend/src/services/orchestrator/state-persistence.service.js +14 -12
  124. package/dist/backend/backend/src/services/orchestrator/state-persistence.service.js.map +1 -1
  125. package/dist/backend/backend/src/services/project/active-projects.service.d.ts +1 -0
  126. package/dist/backend/backend/src/services/project/active-projects.service.d.ts.map +1 -1
  127. package/dist/backend/backend/src/services/project/active-projects.service.js +8 -6
  128. package/dist/backend/backend/src/services/project/active-projects.service.js.map +1 -1
  129. package/dist/backend/backend/src/services/project/task-tracking.service.d.ts +1 -0
  130. package/dist/backend/backend/src/services/project/task-tracking.service.d.ts.map +1 -1
  131. package/dist/backend/backend/src/services/project/task-tracking.service.js +18 -16
  132. package/dist/backend/backend/src/services/project/task-tracking.service.js.map +1 -1
  133. package/dist/backend/backend/src/services/project/ticket-editor.service.d.ts +1 -0
  134. package/dist/backend/backend/src/services/project/ticket-editor.service.d.ts.map +1 -1
  135. package/dist/backend/backend/src/services/project/ticket-editor.service.js +6 -4
  136. package/dist/backend/backend/src/services/project/ticket-editor.service.js.map +1 -1
  137. package/dist/backend/backend/src/services/settings/role.service.d.ts +1 -0
  138. package/dist/backend/backend/src/services/settings/role.service.d.ts.map +1 -1
  139. package/dist/backend/backend/src/services/settings/role.service.js +3 -1
  140. package/dist/backend/backend/src/services/settings/role.service.js.map +1 -1
  141. package/dist/backend/backend/src/services/skill/skill-executor.service.d.ts +1 -0
  142. package/dist/backend/backend/src/services/skill/skill-executor.service.d.ts.map +1 -1
  143. package/dist/backend/backend/src/services/skill/skill-executor.service.js +4 -2
  144. package/dist/backend/backend/src/services/skill/skill-executor.service.js.map +1 -1
  145. package/dist/backend/backend/src/services/skill/skill.service.d.ts +1 -0
  146. package/dist/backend/backend/src/services/skill/skill.service.d.ts.map +1 -1
  147. package/dist/backend/backend/src/services/skill/skill.service.js +7 -5
  148. package/dist/backend/backend/src/services/skill/skill.service.js.map +1 -1
  149. package/dist/backend/backend/src/services/slack/slack-image.service.d.ts +1 -0
  150. package/dist/backend/backend/src/services/slack/slack-image.service.d.ts.map +1 -1
  151. package/dist/backend/backend/src/services/slack/slack-image.service.js +6 -4
  152. package/dist/backend/backend/src/services/slack/slack-image.service.js.map +1 -1
  153. package/dist/backend/backend/src/services/slack/slack-initializer.d.ts.map +1 -1
  154. package/dist/backend/backend/src/services/slack/slack-initializer.js +7 -5
  155. package/dist/backend/backend/src/services/slack/slack-initializer.js.map +1 -1
  156. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts +1 -0
  157. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  158. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +25 -20
  159. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  160. package/dist/backend/backend/src/services/slack/slack.service.d.ts +1 -0
  161. package/dist/backend/backend/src/services/slack/slack.service.d.ts.map +1 -1
  162. package/dist/backend/backend/src/services/slack/slack.service.js +19 -15
  163. package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
  164. package/dist/backend/backend/src/utils/process-recovery.d.ts +1 -0
  165. package/dist/backend/backend/src/utils/process-recovery.d.ts.map +1 -1
  166. package/dist/backend/backend/src/utils/process-recovery.js +40 -37
  167. package/dist/backend/backend/src/utils/process-recovery.js.map +1 -1
  168. package/dist/backend/backend/src/utils/prompt-resolver.d.ts.map +1 -1
  169. package/dist/backend/backend/src/utils/prompt-resolver.js +3 -1
  170. package/dist/backend/backend/src/utils/prompt-resolver.js.map +1 -1
  171. package/dist/backend/backend/src/utils/resource-monitor.d.ts +2 -1
  172. package/dist/backend/backend/src/utils/resource-monitor.d.ts.map +1 -1
  173. package/dist/backend/backend/src/utils/resource-monitor.js +34 -24
  174. package/dist/backend/backend/src/utils/resource-monitor.js.map +1 -1
  175. package/dist/cli/cli/src/commands/onboard.d.ts +89 -0
  176. package/dist/cli/cli/src/commands/onboard.d.ts.map +1 -0
  177. package/dist/cli/cli/src/commands/onboard.js +268 -0
  178. package/dist/cli/cli/src/commands/onboard.js.map +1 -0
  179. package/dist/cli/cli/src/index.js +5 -0
  180. package/dist/cli/cli/src/index.js.map +1 -1
  181. package/dist/cli/cli/src/utils/marketplace.d.ts +22 -0
  182. package/dist/cli/cli/src/utils/marketplace.d.ts.map +1 -1
  183. package/dist/cli/cli/src/utils/marketplace.js +43 -0
  184. package/dist/cli/cli/src/utils/marketplace.js.map +1 -1
  185. package/frontend/dist/assets/{index-4c56763b.js → index-419da091.js} +2 -2
  186. package/frontend/dist/assets/index-5adb4dff.css +33 -0
  187. package/frontend/dist/index.html +2 -2
  188. package/package.json +2 -1
  189. package/frontend/dist/assets/index-c1dd0b10.css +0 -33
@@ -0,0 +1,89 @@
1
+ /**
2
+ * CLI Onboard Command
3
+ *
4
+ * Interactive setup wizard that walks new users through configuring Crewly.
5
+ * Detects AI providers, installs missing tools, and installs agent skills
6
+ * from the marketplace.
7
+ *
8
+ * Used directly via `crewly onboard`, by the curl install script, and
9
+ * by the Electron desktop app.
10
+ *
11
+ * @module cli/commands/onboard
12
+ */
13
+ import { type Interface as ReadlineInterface } from 'readline';
14
+ /** Provider choice returned by the selection step */
15
+ export type ProviderChoice = 'claude' | 'gemini' | 'both' | 'skip';
16
+ /**
17
+ * Prints the Crewly ASCII art banner to stdout.
18
+ */
19
+ export declare function printBanner(): void;
20
+ /**
21
+ * Creates a readline interface attached to stdin/stdout.
22
+ *
23
+ * @returns A readline interface
24
+ */
25
+ export declare function createReadlineInterface(): ReadlineInterface;
26
+ /**
27
+ * Asks the user which AI coding assistant they use.
28
+ *
29
+ * Displays a numbered menu and returns the user's choice.
30
+ *
31
+ * @param rl - Readline interface
32
+ * @returns The selected provider choice
33
+ */
34
+ export declare function selectProvider(rl: ReadlineInterface): Promise<ProviderChoice>;
35
+ /**
36
+ * Checks whether a CLI tool is installed by running `which <command>`.
37
+ *
38
+ * @param command - The command name to look for (e.g. "claude")
39
+ * @returns True if the command is found on the PATH
40
+ */
41
+ export declare function checkToolInstalled(command: string): boolean;
42
+ /**
43
+ * Gets the version of an installed CLI tool.
44
+ *
45
+ * @param command - The command name
46
+ * @param versionFlag - The flag to get version (default: "--version")
47
+ * @returns The version string or null if not determinable
48
+ */
49
+ export declare function getToolVersion(command: string, versionFlag?: string): string | null;
50
+ /**
51
+ * Installs a tool via npm globally.
52
+ *
53
+ * @param displayName - Human-readable tool name for output
54
+ * @param npmPackage - The npm package name to install
55
+ * @returns True if installation succeeded
56
+ */
57
+ export declare function installTool(displayName: string, npmPackage: string): boolean;
58
+ /**
59
+ * Checks for and optionally installs the tools needed for the selected provider.
60
+ *
61
+ * For each required tool, checks if it's on the PATH. If missing, asks the user
62
+ * whether to install it via npm.
63
+ *
64
+ * @param rl - Readline interface
65
+ * @param provider - The chosen provider
66
+ */
67
+ export declare function ensureTools(rl: ReadlineInterface, provider: ProviderChoice): Promise<void>;
68
+ /**
69
+ * Checks for and installs agent skills from the marketplace.
70
+ *
71
+ * If skills are already installed, reports the count. Otherwise, downloads
72
+ * and installs all skills with progress feedback.
73
+ */
74
+ export declare function ensureSkills(): Promise<void>;
75
+ /**
76
+ * Prints the setup-complete summary with next-step instructions.
77
+ */
78
+ export declare function printSummary(): void;
79
+ /**
80
+ * Runs the interactive onboarding wizard.
81
+ *
82
+ * Walks the user through 4 steps:
83
+ * 1. Choose an AI provider (Claude Code, Gemini CLI, both, or skip)
84
+ * 2. Detect / install the chosen tool(s)
85
+ * 3. Install agent skills from the marketplace
86
+ * 4. Print a success summary
87
+ */
88
+ export declare function onboardCommand(): Promise<void>;
89
+ //# sourceMappingURL=onboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboard.d.ts","sourceRoot":"","sources":["../../../../../cli/src/commands/onboard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAmB,KAAK,SAAS,IAAI,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAQhF,qDAAqD;AACrD,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAInE;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAUlC;AAID;;;;GAIG;AACH,wBAAgB,uBAAuB,IAAI,iBAAiB,CAK3D;AAmBD;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,EAAE,EAAE,iBAAiB,GAAG,OAAO,CAAC,cAAc,CAAC,CAwBnF;AAID;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAO3D;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,SAAc,GAAG,MAAM,GAAG,IAAI,CAYxF;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAc5E;AAwBD;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAAC,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BhG;AAID;;;;;GAKG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CA4BlD;AAID;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAMnC;AAID;;;;;;;;GAQG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAoBpD"}
@@ -0,0 +1,268 @@
1
+ /**
2
+ * CLI Onboard Command
3
+ *
4
+ * Interactive setup wizard that walks new users through configuring Crewly.
5
+ * Detects AI providers, installs missing tools, and installs agent skills
6
+ * from the marketplace.
7
+ *
8
+ * Used directly via `crewly onboard`, by the curl install script, and
9
+ * by the Electron desktop app.
10
+ *
11
+ * @module cli/commands/onboard
12
+ */
13
+ import { createInterface } from 'readline';
14
+ import { execSync } from 'child_process';
15
+ import chalk from 'chalk';
16
+ import { checkSkillsInstalled, installAllSkills, } from '../utils/marketplace.js';
17
+ // ========================= Banner =========================
18
+ /**
19
+ * Prints the Crewly ASCII art banner to stdout.
20
+ */
21
+ export function printBanner() {
22
+ console.log(chalk.cyan(`
23
+ ____ _
24
+ / ___|_ __ _____ _| |_ _
25
+ | | | '__/ _ \\ \\ /\\ / / | | | |
26
+ | |___| | | __/\\ V V /| | |_| |
27
+ \\____|_| \\___| \\_/\\_/ |_|\\__, |
28
+ |___/
29
+ `));
30
+ console.log(chalk.bold(' Welcome to Crewly! Let\'s get you set up.\n'));
31
+ }
32
+ // ========================= Readline helpers =========================
33
+ /**
34
+ * Creates a readline interface attached to stdin/stdout.
35
+ *
36
+ * @returns A readline interface
37
+ */
38
+ export function createReadlineInterface() {
39
+ return createInterface({
40
+ input: process.stdin,
41
+ output: process.stdout,
42
+ });
43
+ }
44
+ /**
45
+ * Prompts the user with a question and returns their answer.
46
+ *
47
+ * @param rl - Readline interface
48
+ * @param question - The prompt text
49
+ * @returns The user's response string
50
+ */
51
+ function ask(rl, question) {
52
+ return new Promise((resolve) => {
53
+ rl.question(question, (answer) => {
54
+ resolve(answer.trim());
55
+ });
56
+ });
57
+ }
58
+ // ========================= Step 1: Provider selection =========================
59
+ /**
60
+ * Asks the user which AI coding assistant they use.
61
+ *
62
+ * Displays a numbered menu and returns the user's choice.
63
+ *
64
+ * @param rl - Readline interface
65
+ * @returns The selected provider choice
66
+ */
67
+ export async function selectProvider(rl) {
68
+ console.log(chalk.bold(' Step 1/4: AI Provider'));
69
+ console.log(' Which AI coding assistant do you use?\n');
70
+ console.log(' 1. Claude Code (Anthropic)');
71
+ console.log(' 2. Gemini CLI (Google)');
72
+ console.log(' 3. Both');
73
+ console.log(' 4. Skip\n');
74
+ const choices = {
75
+ '1': 'claude',
76
+ '2': 'gemini',
77
+ '3': 'both',
78
+ '4': 'skip',
79
+ };
80
+ while (true) {
81
+ const answer = await ask(rl, ' Enter choice (1-4): ');
82
+ const choice = choices[answer];
83
+ if (choice) {
84
+ console.log('');
85
+ return choice;
86
+ }
87
+ console.log(chalk.yellow(' Please enter 1, 2, 3, or 4.'));
88
+ }
89
+ }
90
+ // ========================= Step 2: Tool detection & install =========================
91
+ /**
92
+ * Checks whether a CLI tool is installed by running `which <command>`.
93
+ *
94
+ * @param command - The command name to look for (e.g. "claude")
95
+ * @returns True if the command is found on the PATH
96
+ */
97
+ export function checkToolInstalled(command) {
98
+ try {
99
+ execSync(`which ${command}`, { stdio: 'pipe' });
100
+ return true;
101
+ }
102
+ catch {
103
+ return false;
104
+ }
105
+ }
106
+ /**
107
+ * Gets the version of an installed CLI tool.
108
+ *
109
+ * @param command - The command name
110
+ * @param versionFlag - The flag to get version (default: "--version")
111
+ * @returns The version string or null if not determinable
112
+ */
113
+ export function getToolVersion(command, versionFlag = '--version') {
114
+ try {
115
+ const output = execSync(`${command} ${versionFlag} 2>/dev/null`, {
116
+ stdio: 'pipe',
117
+ timeout: 10000,
118
+ }).toString().trim();
119
+ // Extract first version-like pattern
120
+ const match = output.match(/\d+\.\d+[\w.-]*/);
121
+ return match ? match[0] : output.split('\n')[0];
122
+ }
123
+ catch {
124
+ return null;
125
+ }
126
+ }
127
+ /**
128
+ * Installs a tool via npm globally.
129
+ *
130
+ * @param displayName - Human-readable tool name for output
131
+ * @param npmPackage - The npm package name to install
132
+ * @returns True if installation succeeded
133
+ */
134
+ export function installTool(displayName, npmPackage) {
135
+ try {
136
+ console.log(chalk.blue(` Installing ${displayName}...`));
137
+ execSync(`npm install -g ${npmPackage}`, {
138
+ stdio: 'pipe',
139
+ timeout: 120000,
140
+ });
141
+ console.log(chalk.green(` ✓ ${displayName} installed`));
142
+ return true;
143
+ }
144
+ catch (error) {
145
+ const msg = error instanceof Error ? error.message : String(error);
146
+ console.log(chalk.red(` ✗ Failed to install ${displayName}: ${msg}`));
147
+ return false;
148
+ }
149
+ }
150
+ /** Map of provider choices to the tools they require */
151
+ const PROVIDER_TOOLS = {
152
+ claude: [
153
+ { displayName: 'Claude Code', command: 'claude', npmPackage: '@anthropic-ai/claude-code' },
154
+ ],
155
+ gemini: [
156
+ { displayName: 'Gemini CLI', command: 'gemini', npmPackage: '@anthropic-ai/gemini-cli' },
157
+ ],
158
+ both: [
159
+ { displayName: 'Claude Code', command: 'claude', npmPackage: '@anthropic-ai/claude-code' },
160
+ { displayName: 'Gemini CLI', command: 'gemini', npmPackage: '@anthropic-ai/gemini-cli' },
161
+ ],
162
+ skip: [],
163
+ };
164
+ /**
165
+ * Checks for and optionally installs the tools needed for the selected provider.
166
+ *
167
+ * For each required tool, checks if it's on the PATH. If missing, asks the user
168
+ * whether to install it via npm.
169
+ *
170
+ * @param rl - Readline interface
171
+ * @param provider - The chosen provider
172
+ */
173
+ export async function ensureTools(rl, provider) {
174
+ console.log(chalk.bold(' Step 2/4: Tool Installation'));
175
+ const tools = PROVIDER_TOOLS[provider] || [];
176
+ if (tools.length === 0) {
177
+ console.log(chalk.gray(' Skipped tool installation.\n'));
178
+ return;
179
+ }
180
+ for (const tool of tools) {
181
+ if (checkToolInstalled(tool.command)) {
182
+ const version = getToolVersion(tool.command);
183
+ const versionStr = version ? ` (v${version})` : '';
184
+ console.log(chalk.green(` ✓ ${tool.displayName} detected${versionStr}`));
185
+ }
186
+ else {
187
+ console.log(chalk.yellow(` ⚠ ${tool.displayName} not found.`));
188
+ const answer = await ask(rl, ` Install ${tool.displayName} now? [Y/n] `);
189
+ if (answer === '' || answer.toLowerCase() === 'y' || answer.toLowerCase() === 'yes') {
190
+ installTool(tool.displayName, tool.npmPackage);
191
+ }
192
+ else {
193
+ console.log(chalk.gray(` Skipped ${tool.displayName} installation.`));
194
+ }
195
+ }
196
+ }
197
+ console.log('');
198
+ }
199
+ // ========================= Step 3: Skills =========================
200
+ /**
201
+ * Checks for and installs agent skills from the marketplace.
202
+ *
203
+ * If skills are already installed, reports the count. Otherwise, downloads
204
+ * and installs all skills with progress feedback.
205
+ */
206
+ export async function ensureSkills() {
207
+ console.log(chalk.bold(' Step 3/4: Agent Skills'));
208
+ try {
209
+ const { installed, total } = await checkSkillsInstalled();
210
+ if (installed >= total && total > 0) {
211
+ console.log(chalk.green(` ✓ ${installed} agent skills already installed\n`));
212
+ return;
213
+ }
214
+ if (total === 0) {
215
+ console.log(chalk.yellow(' No skills available in the marketplace.\n'));
216
+ return;
217
+ }
218
+ console.log(chalk.blue(` Installing ${total} agent skills from marketplace...`));
219
+ const count = await installAllSkills((name, index, skillTotal) => {
220
+ console.log(chalk.gray(` [${index}/${skillTotal}] ${name}`));
221
+ });
222
+ console.log(chalk.green(` ✓ ${count} skills installed\n`));
223
+ }
224
+ catch (error) {
225
+ const msg = error instanceof Error ? error.message : String(error);
226
+ console.log(chalk.yellow(` ⚠ Could not install skills: ${msg}`));
227
+ console.log(chalk.gray(' Run \'crewly install --all\' later to install skills.\n'));
228
+ }
229
+ }
230
+ // ========================= Step 4: Summary =========================
231
+ /**
232
+ * Prints the setup-complete summary with next-step instructions.
233
+ */
234
+ export function printSummary() {
235
+ console.log(chalk.bold(' Step 4/4: Done!'));
236
+ console.log(chalk.green(' ✓ Setup complete!\n'));
237
+ console.log(' To get started:');
238
+ console.log(chalk.cyan(' cd your-project/'));
239
+ console.log(chalk.cyan(' crewly start\n'));
240
+ }
241
+ // ========================= Main command =========================
242
+ /**
243
+ * Runs the interactive onboarding wizard.
244
+ *
245
+ * Walks the user through 4 steps:
246
+ * 1. Choose an AI provider (Claude Code, Gemini CLI, both, or skip)
247
+ * 2. Detect / install the chosen tool(s)
248
+ * 3. Install agent skills from the marketplace
249
+ * 4. Print a success summary
250
+ */
251
+ export async function onboardCommand() {
252
+ printBanner();
253
+ const rl = createReadlineInterface();
254
+ try {
255
+ // Step 1: Provider selection
256
+ const provider = await selectProvider(rl);
257
+ // Step 2: Tool installation
258
+ await ensureTools(rl, provider);
259
+ // Step 3: Skills
260
+ await ensureSkills();
261
+ // Step 4: Summary
262
+ printSummary();
263
+ }
264
+ finally {
265
+ rl.close();
266
+ }
267
+ }
268
+ //# sourceMappingURL=onboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboard.js","sourceRoot":"","sources":["../../../../../cli/src/commands/onboard.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ import { logsCommand } from './commands/logs.js';
8
8
  import { upgradeCommand } from './commands/upgrade.js';
9
9
  import { installCommand } from './commands/install.js';
10
10
  import { searchCommand } from './commands/search.js';
11
+ import { onboardCommand } from './commands/onboard.js';
11
12
  import { DEFAULT_WEB_PORT } from './constants.js';
12
13
  import { getLocalVersion } from './utils/version-check.js';
13
14
  const program = new Command();
@@ -60,6 +61,10 @@ program
60
61
  .description('Search the Crewly skill marketplace')
61
62
  .option('--type <type>', 'Filter by type (skill, model, role)')
62
63
  .action(searchCommand);
64
+ program
65
+ .command('onboard')
66
+ .description('Interactive setup wizard for new Crewly users')
67
+ .action(onboardCommand);
63
68
  // Error handling
64
69
  program.exitOverride();
65
70
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../cli/src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,IAAI,UAAU,GAAG,OAAO,CAAC;AACzB,IAAI,CAAC;IACH,UAAU,GAAG,eAAe,EAAE,CAAC;AACjC,CAAC;AAAC,MAAM,CAAC;IACP,6DAA6D;AAC/D,CAAC;AAED,OAAO;KACJ,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CAAC,6EAA6E,CAAC;KAC1F,OAAO,CAAC,UAAU,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,yCAAyC,CAAC;KACtD,MAAM,CAAC,mBAAmB,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAC;KAC3E,MAAM,CAAC,cAAc,EAAE,mCAAmC,CAAC;KAC3D,MAAM,CAAC,gBAAgB,EAAE,qEAAqE,CAAC;KAC/F,MAAM,CAAC,YAAY,CAAC,CAAC;AAExB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,uCAAuC,CAAC;KACpD,MAAM,CAAC,SAAS,EAAE,0BAA0B,CAAC;KAC7C,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,wCAAwC,CAAC;KACrD,MAAM,CAAC,WAAW,EAAE,2BAA2B,CAAC;KAChD,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,wCAAwC,CAAC;KACrD,MAAM,CAAC,cAAc,EAAE,mBAAmB,CAAC;KAC3C,MAAM,CAAC,sBAAsB,EAAE,yBAAyB,EAAE,IAAI,CAAC;KAC/D,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,sCAAsC,CAAC;KACnD,MAAM,CAAC,SAAS,EAAE,sCAAsC,CAAC;KACzD,MAAM,CAAC,cAAc,CAAC,CAAC;AAE1B,OAAO;KACJ,OAAO,CAAC,cAAc,CAAC;KACvB,WAAW,CAAC,6CAA6C,CAAC;KAC1D,MAAM,CAAC,OAAO,EAAE,0BAA0B,CAAC;KAC3C,MAAM,CAAC,cAAc,CAAC,CAAC;AAE1B,OAAO;KACJ,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,qCAAqC,CAAC;KAClD,MAAM,CAAC,eAAe,EAAE,qCAAqC,CAAC;KAC9D,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,iBAAiB;AACjB,OAAO,CAAC,YAAY,EAAE,CAAC;AAEvB,IAAI,CAAC;IACH,OAAO,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC;AAAC,OAAO,GAAG,EAAE,CAAC;IACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;IACzF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../cli/src/index.ts"],"names":[],"mappings":"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"}
@@ -101,6 +101,28 @@ export declare function downloadAndInstall(item: MarketplaceItem): Promise<{
101
101
  * package into the marketplace directory so installed skills can source them.
102
102
  */
103
103
  export declare function ensureCommonLibs(): Promise<void>;
104
+ /**
105
+ * Checks how many marketplace skills are installed locally.
106
+ *
107
+ * Compares the remote registry against the local manifest to determine
108
+ * how many skills are already present.
109
+ *
110
+ * @returns Object with `installed` and `total` counts
111
+ */
112
+ export declare function checkSkillsInstalled(): Promise<{
113
+ installed: number;
114
+ total: number;
115
+ }>;
116
+ /**
117
+ * Installs all skills from the marketplace registry.
118
+ *
119
+ * Downloads and installs each skill sequentially. An optional progress
120
+ * callback is invoked after each skill to allow callers to display progress.
121
+ *
122
+ * @param onProgress - Optional callback invoked with (skillName, currentIndex, totalCount)
123
+ * @returns The number of successfully installed skills
124
+ */
125
+ export declare function installAllSkills(onProgress?: (name: string, index: number, total: number) => void): Promise<number>;
104
126
  /**
105
127
  * Formats a byte count into a human-readable string.
106
128
  *
@@ -1 +1 @@
1
- {"version":3,"file":"marketplace.d.ts","sourceRoot":"","sources":["../../../../../cli/src/utils/marketplace.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA2BH,gDAAgD;AAChD,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE;QACN,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,iCAAiC;AACjC,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B;AAED,oCAAoC;AACpC,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,8CAA8C;AAC9C,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,mBAAmB,EAAE,CAAC;CAC9B;AAID;;;;;GAKG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAMlE;AAID;;;;;GAKG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,sBAAsB,CAAC,CAOpE;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAGlF;AAID;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAG/D;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA4D9G;AAkCD;;;;;GAKG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAuBtD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIjD"}
1
+ {"version":3,"file":"marketplace.d.ts","sourceRoot":"","sources":["../../../../../cli/src/utils/marketplace.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA2BH,gDAAgD;AAChD,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE;QACN,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,iCAAiC;AACjC,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B;AAED,oCAAoC;AACpC,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,8CAA8C;AAC9C,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,mBAAmB,EAAE,CAAC;CAC9B;AAID;;;;;GAKG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAMlE;AAID;;;;;GAKG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,sBAAsB,CAAC,CAOpE;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAGlF;AAID;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAG/D;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA4D9G;AAkCD;;;;;GAKG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAuBtD;AAID;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAO1F;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAChE,OAAO,CAAC,MAAM,CAAC,CAiBjB;AAID;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIjD"}
@@ -193,6 +193,49 @@ export async function ensureCommonLibs() {
193
193
  await copyFile(rootCommonSrc, path.join(rootCommonDest, 'lib.sh'));
194
194
  }
195
195
  }
196
+ // ========================= Convenience =========================
197
+ /**
198
+ * Checks how many marketplace skills are installed locally.
199
+ *
200
+ * Compares the remote registry against the local manifest to determine
201
+ * how many skills are already present.
202
+ *
203
+ * @returns Object with `installed` and `total` counts
204
+ */
205
+ export async function checkSkillsInstalled() {
206
+ const manifest = await loadManifest();
207
+ const registry = await fetchRegistry();
208
+ const skills = registry.items.filter((i) => i.type === 'skill');
209
+ const installedIds = new Set(manifest.items.filter((r) => r.type === 'skill').map((r) => r.id));
210
+ const installed = skills.filter((s) => installedIds.has(s.id)).length;
211
+ return { installed, total: skills.length };
212
+ }
213
+ /**
214
+ * Installs all skills from the marketplace registry.
215
+ *
216
+ * Downloads and installs each skill sequentially. An optional progress
217
+ * callback is invoked after each skill to allow callers to display progress.
218
+ *
219
+ * @param onProgress - Optional callback invoked with (skillName, currentIndex, totalCount)
220
+ * @returns The number of successfully installed skills
221
+ */
222
+ export async function installAllSkills(onProgress) {
223
+ const registry = await fetchRegistry();
224
+ const skills = registry.items.filter((i) => i.type === 'skill');
225
+ let installed = 0;
226
+ for (let i = 0; i < skills.length; i++) {
227
+ const skill = skills[i];
228
+ const result = await downloadAndInstall(skill);
229
+ if (result.success) {
230
+ installed++;
231
+ }
232
+ if (onProgress) {
233
+ onProgress(skill.name, i + 1, skills.length);
234
+ }
235
+ }
236
+ return installed;
237
+ }
238
+ // ========================= Formatting =========================
196
239
  /**
197
240
  * Formats a byte count into a human-readable string.
198
241
  *
@@ -1 +1 @@
1
- {"version":3,"file":"marketplace.js","sourceRoot":"","sources":["../../../../../cli/src/utils/marketplace.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAE3B,gEAAgE;AAEhE,MAAM,YAAY,GAAG,8CAA8C,CAAC;AACpE,MAAM,WAAW,GAAG,4CAA4C,CAAC;AAEjE,iFAAiF;AACjF,SAAS,iBAAiB;IACxB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,eAAe;IACtB,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,eAAe,CAAC,CAAC;AACzD,CAAC;AAsDD,+DAA+D;AAE/D;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,CAAC;IACtC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAwB,CAAC;AACnD,CAAC;AAED,+DAA+D;AAE/D;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,eAAe,EAAE,EAAE,OAAO,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAA2B,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IACzC,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,QAAgC;IACjE,MAAM,KAAK,CAAC,iBAAiB,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,MAAM,SAAS,CAAC,eAAe,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAC/E,CAAC;AAED,8DAA8D;AAE9D;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,EAAU;IACrD,MAAM,OAAO,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IACpF,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;AACrD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAqB;IAC5D,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAEvD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC3D,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,6BAA6B,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;IAC7E,CAAC;IAED,MAAM,GAAG,GAAG,GAAG,WAAW,IAAI,SAAS,EAAE,CAAC;IAC1C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,oBAAoB,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC;IACzF,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IAElD,8BAA8B;IAC9B,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACzB,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC/D,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACxB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,yBAAyB,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;YACzE,CAAC;QACH,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,MAAM,KAAK,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE9C,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACzD,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAClE,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;IAED,mCAAmC;IACnC,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC1B,MAAM,gBAAgB,EAAE,CAAC;IAC3B,CAAC;IAED,kBAAkB;IAClB,MAAM,MAAM,GAAwB;QAClC,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,WAAW;QACX,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;KAC/B,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;IACtC,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;IAChE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;IAE7B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;AAC/E,CAAC;AAED,kEAAkE;AAElE;;;;;GAKG;AACH,SAAS,eAAe,CAAC,QAAgB;IACvC,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAErC,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACnD,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;gBACvD,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC1B,OAAO,OAAO,CAAC;gBACjB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,iBAAiB;YACnB,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,MAAM,WAAW,GAAG,eAAe,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACjF,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IAEjE,4BAA4B;IAC5B,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAChG,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC/D,IAAI,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QAC/B,MAAM,KAAK,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,MAAM,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,2BAA2B;IAC3B,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IACtF,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACpD,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9B,MAAM,KAAK,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,MAAM,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;IACrE,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,IAAI,KAAK,GAAG,IAAI;QAAE,OAAO,GAAG,KAAK,IAAI,CAAC;IACtC,IAAI,KAAK,GAAG,IAAI,GAAG,IAAI;QAAE,OAAO,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IAClE,OAAO,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"marketplace.js","sourceRoot":"","sources":["../../../../../cli/src/utils/marketplace.ts"],"names":[],"mappings":"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"}