crewly 1.0.8 → 1.0.11

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 (249) hide show
  1. package/config/constants.ts +59 -0
  2. package/config/index.ts +2 -0
  3. package/config/roles/architect/prompt.md +8 -5
  4. package/config/roles/backend-developer/prompt.md +24 -5
  5. package/config/roles/designer/prompt.md +6 -5
  6. package/config/roles/developer/prompt.md +27 -5
  7. package/config/roles/frontend-developer/prompt.md +24 -5
  8. package/config/roles/fullstack-dev/prompt.md +24 -5
  9. package/config/roles/generalist/prompt.md +9 -5
  10. package/config/roles/orchestrator/prompt.md +126 -15
  11. package/config/roles/product-manager/prompt.md +6 -5
  12. package/config/roles/qa/prompt.md +24 -5
  13. package/config/roles/qa-engineer/prompt.md +24 -5
  14. package/config/roles/sales/prompt.md +6 -5
  15. package/config/roles/support/prompt.md +6 -5
  16. package/config/roles/tpm/prompt.md +6 -5
  17. package/config/skills/agent/_common/lib.sh +4 -0
  18. package/config/skills/agent/core/accept-task/execute.sh +21 -0
  19. package/config/skills/agent/core/accept-task/instructions.md +20 -0
  20. package/config/skills/agent/core/accept-task/skill.json +20 -0
  21. package/config/skills/agent/core/block-task/execute.sh +26 -0
  22. package/config/skills/agent/core/block-task/instructions.md +22 -0
  23. package/config/skills/agent/core/block-task/skill.json +20 -0
  24. package/config/skills/agent/core/check-quality-gates/execute.sh +20 -0
  25. package/config/skills/agent/core/check-quality-gates/instructions.md +23 -0
  26. package/config/skills/agent/core/check-quality-gates/skill.json +20 -0
  27. package/config/skills/agent/core/complete-task/execute.sh +29 -0
  28. package/config/skills/agent/core/complete-task/instructions.md +53 -0
  29. package/config/skills/agent/core/complete-task/skill.json +20 -0
  30. package/config/skills/agent/core/get-my-context/execute.sh +23 -0
  31. package/config/skills/agent/core/get-my-context/instructions.md +21 -0
  32. package/config/skills/agent/core/get-my-context/skill.json +20 -0
  33. package/config/skills/agent/core/get-sops/execute.sh +24 -0
  34. package/config/skills/agent/core/get-sops/instructions.md +21 -0
  35. package/config/skills/agent/core/get-sops/skill.json +20 -0
  36. package/config/skills/agent/core/get-team-status/execute.sh +8 -0
  37. package/config/skills/agent/core/get-team-status/instructions.md +17 -0
  38. package/config/skills/agent/core/get-team-status/skill.json +20 -0
  39. package/config/skills/agent/core/heartbeat/execute.sh +22 -0
  40. package/config/skills/agent/core/heartbeat/instructions.md +23 -0
  41. package/config/skills/agent/core/heartbeat/skill.json +20 -0
  42. package/config/skills/agent/core/manage-knowledge/execute.sh +60 -0
  43. package/config/skills/agent/core/manage-knowledge/instructions.md +46 -0
  44. package/config/skills/agent/core/marketplace-search/execute.sh +77 -0
  45. package/config/skills/agent/core/marketplace-search/instructions.md +59 -0
  46. package/config/skills/agent/core/marketplace-search/skill.json +20 -0
  47. package/config/skills/agent/core/query-knowledge/execute.sh +30 -0
  48. package/config/skills/agent/core/query-knowledge/instructions.md +47 -0
  49. package/config/skills/agent/core/query-knowledge/skill.json +20 -0
  50. package/config/skills/agent/core/read-task/execute.sh +15 -0
  51. package/config/skills/agent/core/read-task/instructions.md +19 -0
  52. package/config/skills/agent/core/read-task/skill.json +20 -0
  53. package/config/skills/agent/core/recall/execute.sh +24 -0
  54. package/config/skills/agent/core/recall/instructions.md +23 -0
  55. package/config/skills/agent/core/recall/skill.json +20 -0
  56. package/config/skills/agent/core/record-learning/execute.sh +29 -0
  57. package/config/skills/agent/core/record-learning/instructions.md +24 -0
  58. package/config/skills/agent/core/record-learning/skill.json +20 -0
  59. package/config/skills/agent/core/register-self/execute.sh +28 -0
  60. package/config/skills/agent/core/register-self/instructions.md +18 -0
  61. package/config/skills/agent/core/register-self/skill.json +20 -0
  62. package/config/skills/agent/core/remember/execute.sh +29 -0
  63. package/config/skills/agent/core/remember/instructions.md +24 -0
  64. package/config/skills/agent/core/remember/skill.json +20 -0
  65. package/config/skills/agent/core/report-progress/execute.sh +28 -0
  66. package/config/skills/agent/core/report-progress/instructions.md +25 -0
  67. package/config/skills/agent/core/report-progress/skill.json +20 -0
  68. package/config/skills/agent/core/report-status/execute.sh +35 -0
  69. package/config/skills/agent/core/report-status/instructions.md +36 -0
  70. package/config/skills/agent/core/report-status/skill.json +20 -0
  71. package/config/skills/agent/core/send-chat-response/execute.sh +26 -0
  72. package/config/skills/agent/core/send-chat-response/instructions.md +22 -0
  73. package/config/skills/agent/core/send-chat-response/skill.json +20 -0
  74. package/config/skills/agent/core/send-message/execute.sh +17 -0
  75. package/config/skills/agent/core/send-message/instructions.md +20 -0
  76. package/config/skills/agent/core/send-message/skill.json +20 -0
  77. package/config/skills/orchestrator/delegate-task/execute.sh +1 -1
  78. package/config/skills/orchestrator/schedule-check/instructions.md +6 -0
  79. package/config/skills/registry.json +850 -0
  80. package/config/templates/research-team.json +2 -2
  81. package/dist/backend/backend/src/constants.d.ts +89 -4
  82. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  83. package/dist/backend/backend/src/constants.js +84 -6
  84. package/dist/backend/backend/src/constants.js.map +1 -1
  85. package/dist/backend/backend/src/controllers/marketplace/index.d.ts +1 -1
  86. package/dist/backend/backend/src/controllers/marketplace/index.d.ts.map +1 -1
  87. package/dist/backend/backend/src/controllers/marketplace/index.js +1 -1
  88. package/dist/backend/backend/src/controllers/marketplace/index.js.map +1 -1
  89. package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.d.ts +64 -8
  90. package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.d.ts.map +1 -1
  91. package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.js +194 -96
  92. package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.js.map +1 -1
  93. package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.d.ts.map +1 -1
  94. package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.js +7 -2
  95. package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.js.map +1 -1
  96. package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
  97. package/dist/backend/backend/src/controllers/team/team.controller.js +30 -13
  98. package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
  99. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  100. package/dist/backend/backend/src/services/agent/agent-registration.service.js +37 -0
  101. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  102. package/dist/backend/backend/src/services/agent/context-window-monitor.service.d.ts +51 -8
  103. package/dist/backend/backend/src/services/agent/context-window-monitor.service.d.ts.map +1 -1
  104. package/dist/backend/backend/src/services/agent/context-window-monitor.service.js +201 -11
  105. package/dist/backend/backend/src/services/agent/context-window-monitor.service.js.map +1 -1
  106. package/dist/backend/backend/src/services/agent/gemini-runtime.service.d.ts +16 -1
  107. package/dist/backend/backend/src/services/agent/gemini-runtime.service.d.ts.map +1 -1
  108. package/dist/backend/backend/src/services/agent/gemini-runtime.service.js +99 -9
  109. package/dist/backend/backend/src/services/agent/gemini-runtime.service.js.map +1 -1
  110. package/dist/backend/backend/src/services/agent/idle-detection.service.d.ts.map +1 -1
  111. package/dist/backend/backend/src/services/agent/idle-detection.service.js +11 -4
  112. package/dist/backend/backend/src/services/agent/idle-detection.service.js.map +1 -1
  113. package/dist/backend/backend/src/services/agent/pty-activity-tracker.service.d.ts +11 -0
  114. package/dist/backend/backend/src/services/agent/pty-activity-tracker.service.d.ts.map +1 -1
  115. package/dist/backend/backend/src/services/agent/pty-activity-tracker.service.js +18 -0
  116. package/dist/backend/backend/src/services/agent/pty-activity-tracker.service.js.map +1 -1
  117. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
  118. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js +13 -0
  119. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -1
  120. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts +21 -0
  121. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
  122. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js +227 -91
  123. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
  124. package/dist/backend/backend/src/services/chat/chat.service.d.ts +12 -0
  125. package/dist/backend/backend/src/services/chat/chat.service.d.ts.map +1 -1
  126. package/dist/backend/backend/src/services/chat/chat.service.js +23 -1
  127. package/dist/backend/backend/src/services/chat/chat.service.js.map +1 -1
  128. package/dist/backend/backend/src/services/continuation/patterns/waiting-patterns.d.ts +6 -0
  129. package/dist/backend/backend/src/services/continuation/patterns/waiting-patterns.d.ts.map +1 -1
  130. package/dist/backend/backend/src/services/continuation/patterns/waiting-patterns.js +10 -0
  131. package/dist/backend/backend/src/services/continuation/patterns/waiting-patterns.js.map +1 -1
  132. package/dist/backend/backend/src/services/marketplace/index.d.ts +1 -0
  133. package/dist/backend/backend/src/services/marketplace/index.d.ts.map +1 -1
  134. package/dist/backend/backend/src/services/marketplace/index.js +2 -0
  135. package/dist/backend/backend/src/services/marketplace/index.js.map +1 -1
  136. package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.d.ts +10 -9
  137. package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.d.ts.map +1 -1
  138. package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.js +262 -73
  139. package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.js.map +1 -1
  140. package/dist/backend/backend/src/services/marketplace/marketplace-submission.service.d.ts +71 -0
  141. package/dist/backend/backend/src/services/marketplace/marketplace-submission.service.d.ts.map +1 -0
  142. package/dist/backend/backend/src/services/marketplace/marketplace-submission.service.js +339 -0
  143. package/dist/backend/backend/src/services/marketplace/marketplace-submission.service.js.map +1 -0
  144. package/dist/backend/backend/src/services/marketplace/marketplace.service.d.ts +4 -15
  145. package/dist/backend/backend/src/services/marketplace/marketplace.service.d.ts.map +1 -1
  146. package/dist/backend/backend/src/services/marketplace/marketplace.service.js +172 -27
  147. package/dist/backend/backend/src/services/marketplace/marketplace.service.js.map +1 -1
  148. package/dist/backend/backend/src/services/messaging/message-queue.service.d.ts +30 -2
  149. package/dist/backend/backend/src/services/messaging/message-queue.service.d.ts.map +1 -1
  150. package/dist/backend/backend/src/services/messaging/message-queue.service.js +79 -3
  151. package/dist/backend/backend/src/services/messaging/message-queue.service.js.map +1 -1
  152. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
  153. package/dist/backend/backend/src/services/messaging/queue-processor.service.js +57 -4
  154. package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  155. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.d.ts.map +1 -1
  156. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js +20 -1
  157. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js.map +1 -1
  158. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.d.ts.map +1 -1
  159. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.js +31 -0
  160. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.js.map +1 -1
  161. package/dist/backend/backend/src/services/runtime-adapter.d.ts +20 -0
  162. package/dist/backend/backend/src/services/runtime-adapter.d.ts.map +1 -1
  163. package/dist/backend/backend/src/services/runtime-adapter.js +22 -1
  164. package/dist/backend/backend/src/services/runtime-adapter.js.map +1 -1
  165. package/dist/backend/backend/src/services/session/pty/pty-session-backend.d.ts +19 -0
  166. package/dist/backend/backend/src/services/session/pty/pty-session-backend.d.ts.map +1 -1
  167. package/dist/backend/backend/src/services/session/pty/pty-session-backend.js +31 -2
  168. package/dist/backend/backend/src/services/session/pty/pty-session-backend.js.map +1 -1
  169. package/dist/backend/backend/src/services/session/session-backend.interface.d.ts +14 -0
  170. package/dist/backend/backend/src/services/session/session-backend.interface.d.ts.map +1 -1
  171. package/dist/backend/backend/src/services/session/session-backend.interface.js.map +1 -1
  172. package/dist/backend/backend/src/services/session/session-command-helper.d.ts +9 -0
  173. package/dist/backend/backend/src/services/session/session-command-helper.d.ts.map +1 -1
  174. package/dist/backend/backend/src/services/session/session-command-helper.js +24 -1
  175. package/dist/backend/backend/src/services/session/session-command-helper.js.map +1 -1
  176. package/dist/backend/backend/src/services/skill/skill-catalog.service.d.ts +7 -13
  177. package/dist/backend/backend/src/services/skill/skill-catalog.service.d.ts.map +1 -1
  178. package/dist/backend/backend/src/services/skill/skill-catalog.service.js +38 -47
  179. package/dist/backend/backend/src/services/skill/skill-catalog.service.js.map +1 -1
  180. package/dist/backend/backend/src/services/skill/skill.service.d.ts +3 -0
  181. package/dist/backend/backend/src/services/skill/skill.service.d.ts.map +1 -1
  182. package/dist/backend/backend/src/services/skill/skill.service.js +17 -0
  183. package/dist/backend/backend/src/services/skill/skill.service.js.map +1 -1
  184. package/dist/backend/backend/src/types/chat.types.d.ts +5 -5
  185. package/dist/backend/backend/src/types/chat.types.d.ts.map +1 -1
  186. package/dist/backend/backend/src/types/chat.types.js +21 -1
  187. package/dist/backend/backend/src/types/chat.types.js.map +1 -1
  188. package/dist/backend/backend/src/types/marketplace.types.d.ts +37 -0
  189. package/dist/backend/backend/src/types/marketplace.types.d.ts.map +1 -1
  190. package/dist/backend/backend/src/websocket/terminal.gateway.d.ts.map +1 -1
  191. package/dist/backend/backend/src/websocket/terminal.gateway.js +3 -5
  192. package/dist/backend/backend/src/websocket/terminal.gateway.js.map +1 -1
  193. package/dist/backend/config/constants.d.ts +41 -0
  194. package/dist/backend/config/constants.d.ts.map +1 -1
  195. package/dist/backend/config/constants.js +57 -0
  196. package/dist/backend/config/constants.js.map +1 -1
  197. package/dist/backend/config/index.d.ts +2 -2
  198. package/dist/backend/config/index.d.ts.map +1 -1
  199. package/dist/backend/config/index.js +2 -2
  200. package/dist/backend/config/index.js.map +1 -1
  201. package/dist/cli/backend/src/constants.d.ts +89 -4
  202. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  203. package/dist/cli/backend/src/constants.js +84 -6
  204. package/dist/cli/backend/src/constants.js.map +1 -1
  205. package/dist/cli/backend/src/services/continuation/patterns/waiting-patterns.d.ts +40 -0
  206. package/dist/cli/backend/src/services/continuation/patterns/waiting-patterns.d.ts.map +1 -0
  207. package/dist/cli/backend/src/services/continuation/patterns/waiting-patterns.js +74 -0
  208. package/dist/cli/backend/src/services/continuation/patterns/waiting-patterns.js.map +1 -0
  209. package/dist/cli/backend/src/types/chat.types.d.ts +5 -5
  210. package/dist/cli/backend/src/types/chat.types.d.ts.map +1 -1
  211. package/dist/cli/backend/src/types/chat.types.js +21 -1
  212. package/dist/cli/backend/src/types/chat.types.js.map +1 -1
  213. package/dist/cli/cli/src/commands/onboard.d.ts +11 -1
  214. package/dist/cli/cli/src/commands/onboard.d.ts.map +1 -1
  215. package/dist/cli/cli/src/commands/onboard.js +118 -18
  216. package/dist/cli/cli/src/commands/onboard.js.map +1 -1
  217. package/dist/cli/cli/src/commands/publish.d.ts +14 -6
  218. package/dist/cli/cli/src/commands/publish.d.ts.map +1 -1
  219. package/dist/cli/cli/src/commands/publish.js +32 -8
  220. package/dist/cli/cli/src/commands/publish.js.map +1 -1
  221. package/dist/cli/cli/src/commands/seed-marketplace.d.ts +28 -0
  222. package/dist/cli/cli/src/commands/seed-marketplace.d.ts.map +1 -0
  223. package/dist/cli/cli/src/commands/seed-marketplace.js +148 -0
  224. package/dist/cli/cli/src/commands/seed-marketplace.js.map +1 -0
  225. package/dist/cli/cli/src/index.js +9 -0
  226. package/dist/cli/cli/src/index.js.map +1 -1
  227. package/dist/cli/cli/src/utils/marketplace.d.ts +17 -4
  228. package/dist/cli/cli/src/utils/marketplace.d.ts.map +1 -1
  229. package/dist/cli/cli/src/utils/marketplace.js +172 -58
  230. package/dist/cli/cli/src/utils/marketplace.js.map +1 -1
  231. package/dist/cli/config/constants.d.ts +41 -0
  232. package/dist/cli/config/constants.d.ts.map +1 -1
  233. package/dist/cli/config/constants.js +57 -0
  234. package/dist/cli/config/constants.js.map +1 -1
  235. package/dist/cli/config/index.d.ts +2 -2
  236. package/dist/cli/config/index.d.ts.map +1 -1
  237. package/dist/cli/config/index.js +2 -2
  238. package/dist/cli/config/index.js.map +1 -1
  239. package/frontend/dist/assets/{index-68d1eb5a.js → index-0a245b0d.js} +242 -242
  240. package/frontend/dist/assets/{index-c5043a83.css → index-6972eeee.css} +1 -1
  241. package/frontend/dist/index.html +2 -2
  242. package/package.json +2 -2
  243. package/config/skills/chrome-browser/instructions.md +0 -42
  244. package/config/skills/chrome-browser/skill.json +0 -39
  245. package/config/skills/nano-banana-image/generate.sh +0 -73
  246. package/config/skills/nano-banana-image/instructions.md +0 -50
  247. package/config/skills/nano-banana-image/skill.json +0 -39
  248. package/config/skills/playwright-chrome-browser/instructions.md +0 -95
  249. package/config/skills/playwright-chrome-browser/skill.json +0 -44
@@ -1 +1 @@
1
- {"version":3,"file":"chat.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/chat/chat.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/chat/chat.service.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,11 @@ export declare const OTHER_AGENT_WAITING_PATTERNS: RegExp[];
22
22
  * Patterns indicating agent is asking a question
23
23
  */
24
24
  export declare const QUESTION_PATTERNS: RegExp[];
25
+ /**
26
+ * Patterns indicating agent is stuck in plan mode
27
+ * (Claude Code's interactive approval prompt that cannot be resolved via PTY input)
28
+ */
29
+ export declare const PLAN_MODE_PATTERNS: RegExp[];
25
30
  /**
26
31
  * All waiting pattern categories
27
32
  */
@@ -30,5 +35,6 @@ export declare const WAITING_PATTERNS: {
30
35
  readonly approval: RegExp[];
31
36
  readonly otherAgent: RegExp[];
32
37
  readonly question: RegExp[];
38
+ readonly planMode: RegExp[];
33
39
  };
34
40
  //# sourceMappingURL=waiting-patterns.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"waiting-patterns.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/continuation/patterns/waiting-patterns.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,EAU1C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,MAAM,EAO7C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,4BAA4B,EAAE,MAAM,EAMhD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,EAOrC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;CAKnB,CAAC"}
1
+ {"version":3,"file":"waiting-patterns.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/continuation/patterns/waiting-patterns.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,EAU1C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,MAAM,EAO7C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,4BAA4B,EAAE,MAAM,EAMhD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,EAOrC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,EAItC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;CAMnB,CAAC"}
@@ -52,6 +52,15 @@ export const QUESTION_PATTERNS = [
52
52
  /can\s+you\s+clarify/i,
53
53
  /what\s+would\s+you\s+prefer/i,
54
54
  ];
55
+ /**
56
+ * Patterns indicating agent is stuck in plan mode
57
+ * (Claude Code's interactive approval prompt that cannot be resolved via PTY input)
58
+ */
59
+ export const PLAN_MODE_PATTERNS = [
60
+ /shift\+tab\s+to\s+cycle/i,
61
+ /ExitPlanMode/,
62
+ /Plan mode/,
63
+ ];
55
64
  /**
56
65
  * All waiting pattern categories
57
66
  */
@@ -60,5 +69,6 @@ export const WAITING_PATTERNS = {
60
69
  approval: APPROVAL_WAITING_PATTERNS,
61
70
  otherAgent: OTHER_AGENT_WAITING_PATTERNS,
62
71
  question: QUESTION_PATTERNS,
72
+ planMode: PLAN_MODE_PATTERNS,
63
73
  };
64
74
  //# sourceMappingURL=waiting-patterns.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"waiting-patterns.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/continuation/patterns/waiting-patterns.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAa;IAC9C,gBAAgB;IAChB,mBAAmB;IACnB,qBAAqB;IACrB,SAAS,EAA2B,0BAA0B;IAC9D,oBAAoB;IACpB,uBAAuB;IACvB,mBAAmB;IACnB,cAAc;IACd,mBAAmB;CACpB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAa;IACjD,oCAAoC;IACpC,6BAA6B;IAC7B,uBAAuB;IACvB,oBAAoB;IACpB,mBAAmB;IACnB,sBAAsB;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAa;IACpD,0BAA0B,EAAU,uCAAuC;IAC3E,eAAe;IACf,eAAe;IACf,qCAAqC;IACrC,oBAAoB;CACrB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAa;IACzC,MAAM;IACN,aAAa;IACb,kBAAkB;IAClB,qBAAqB;IACrB,sBAAsB;IACtB,8BAA8B;CAC/B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,KAAK,EAAE,sBAAsB;IAC7B,QAAQ,EAAE,yBAAyB;IACnC,UAAU,EAAE,4BAA4B;IACxC,QAAQ,EAAE,iBAAiB;CACnB,CAAC"}
1
+ {"version":3,"file":"waiting-patterns.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/continuation/patterns/waiting-patterns.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAa;IAC9C,gBAAgB;IAChB,mBAAmB;IACnB,qBAAqB;IACrB,SAAS,EAA2B,0BAA0B;IAC9D,oBAAoB;IACpB,uBAAuB;IACvB,mBAAmB;IACnB,cAAc;IACd,mBAAmB;CACpB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAa;IACjD,oCAAoC;IACpC,6BAA6B;IAC7B,uBAAuB;IACvB,oBAAoB;IACpB,mBAAmB;IACnB,sBAAsB;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAa;IACpD,0BAA0B,EAAU,uCAAuC;IAC3E,eAAe;IACf,eAAe;IACf,qCAAqC;IACrC,oBAAoB;CACrB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAa;IACzC,MAAM;IACN,aAAa;IACb,kBAAkB;IAClB,qBAAqB;IACrB,sBAAsB;IACtB,8BAA8B;CAC/B,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAa;IAC1C,0BAA0B;IAC1B,cAAc;IACd,WAAW;CACZ,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,KAAK,EAAE,sBAAsB;IAC7B,QAAQ,EAAE,yBAAyB;IACnC,UAAU,EAAE,4BAA4B;IACxC,QAAQ,EAAE,iBAAiB;IAC3B,QAAQ,EAAE,kBAAkB;CACpB,CAAC"}
@@ -8,4 +8,5 @@
8
8
  */
9
9
  export { fetchRegistry, loadManifest, saveManifest, getItem, listItems, getUpdatableItems, getInstalledItems, searchItems, getInstallPath, resetRegistryCache, } from './marketplace.service.js';
10
10
  export { installItem, uninstallItem, updateItem, } from './marketplace-installer.service.js';
11
+ export { submitSkill, listSubmissions, getSubmission, reviewSubmission, loadSubmissionsManifest, saveSubmissionsManifest, } from './marketplace-submission.service.js';
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/marketplace/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EACL,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,SAAS,EACT,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,WAAW,EACX,aAAa,EACb,UAAU,GACX,MAAM,oCAAoC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/marketplace/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EACL,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,SAAS,EACT,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,WAAW,EACX,aAAa,EACb,UAAU,GACX,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EACL,WAAW,EACX,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,qCAAqC,CAAC"}
@@ -10,4 +10,6 @@
10
10
  export { fetchRegistry, loadManifest, saveManifest, getItem, listItems, getUpdatableItems, getInstalledItems, searchItems, getInstallPath, resetRegistryCache, } from './marketplace.service.js';
11
11
  // Marketplace installation operations
12
12
  export { installItem, uninstallItem, updateItem, } from './marketplace-installer.service.js';
13
+ // Marketplace submission operations
14
+ export { submitSkill, listSubmissions, getSubmission, reviewSubmission, loadSubmissionsManifest, saveSubmissionsManifest, } from './marketplace-submission.service.js';
13
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../backend/src/services/marketplace/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,oCAAoC;AACpC,OAAO,EACL,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,SAAS,EACT,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAElC,sCAAsC;AACtC,OAAO,EACL,WAAW,EACX,aAAa,EACb,UAAU,GACX,MAAM,oCAAoC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../backend/src/services/marketplace/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,oCAAoC;AACpC,OAAO,EACL,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,SAAS,EACT,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAElC,sCAAsC;AACtC,OAAO,EACL,WAAW,EACX,aAAa,EACb,UAAU,GACX,MAAM,oCAAoC,CAAC;AAE5C,oCAAoC;AACpC,OAAO,EACL,WAAW,EACX,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,qCAAqC,CAAC"}
@@ -16,12 +16,10 @@ import { MarketplaceItem, MarketplaceOperationResult } from '../../types/marketp
16
16
  *
17
17
  * Performs the following steps:
18
18
  * 1. Resolves the downloadable asset (archive or model)
19
- * 2. Downloads the asset from the Crewly CDN
20
- * 3. Verifies the SHA-256 checksum if provided
21
- * 4. Extracts tar.gz archives to the install directory (skills),
22
- * or writes raw files for non-archive assets (models)
23
- * 5. Ensures _common/lib.sh files exist for skill items
24
- * 6. Updates the installed-items manifest
19
+ * 2. Determines the source type (GitHub directory or CDN archive)
20
+ * 3. Delegates to `installFromGitHub` or `downloadAndExtractAsset`
21
+ * 4. Calls `finalizeInstall` to update manifest and refresh registrations
22
+ * 5. Cleans up partial install on failure
25
23
  *
26
24
  * @param item - The marketplace item to install
27
25
  * @returns Operation result indicating success or failure with a message
@@ -40,10 +38,13 @@ export declare function installItem(item: MarketplaceItem): Promise<MarketplaceO
40
38
  */
41
39
  export declare function uninstallItem(id: string): Promise<MarketplaceOperationResult>;
42
40
  /**
43
- * Updates a marketplace item to the latest version.
41
+ * Updates a marketplace item to the latest version using a safe
42
+ * install-to-temp-then-swap strategy.
44
43
  *
45
- * Performs an uninstall followed by a fresh install. If the uninstall
46
- * step fails, the update is aborted and the error is reported.
44
+ * Performs the following steps:
45
+ * 1. Installs the new version to a temporary path (suffixed with -update-tmp)
46
+ * 2. On success: uninstalls the old version, renames temp to final path
47
+ * 3. On failure: cleans up the temp path without touching the old version
47
48
  *
48
49
  * @param item - The marketplace item with the latest version info
49
50
  * @returns Operation result indicating success or failure with a message
@@ -1 +1 @@
1
- {"version":3,"file":"marketplace-installer.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/marketplace/marketplace-installer.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAUH,OAAO,EACL,eAAe,EACf,0BAA0B,EAE3B,MAAM,kCAAkC,CAAC;AAW1C;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAwE5F;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAoBnF;AAED;;;;;;;;GAQG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAM3F;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CA0BtD"}
1
+ {"version":3,"file":"marketplace-installer.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/marketplace/marketplace-installer.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAUH,OAAO,EACL,eAAe,EACf,0BAA0B,EAE3B,MAAM,kCAAkC,CAAC;AAgF1C;;;;;;;;;;;;GAYG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,0BAA0B,CAAC,CA+B5F;AA+ID;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAEnF;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAoD3F;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CA0BtD"}
@@ -12,7 +12,7 @@
12
12
  */
13
13
  import path from 'path';
14
14
  import { homedir } from 'os';
15
- import { mkdir, rm, copyFile } from 'fs/promises';
15
+ import { mkdir, rm, copyFile, readFile, writeFile, rename } from 'fs/promises';
16
16
  import { existsSync } from 'fs';
17
17
  import { createHash } from 'crypto';
18
18
  import { Readable } from 'stream';
@@ -20,19 +20,79 @@ import { pipeline } from 'stream/promises';
20
20
  import * as tar from 'tar';
21
21
  import { loadManifest, saveManifest, getInstallPath, } from './marketplace.service.js';
22
22
  import { findPackageRoot } from '../../utils/package-root.js';
23
- const MARKETPLACE_BASE_URL = 'https://crewly.stevesprompt.com';
24
- const ASSETS_ENDPOINT = '/api/assets';
23
+ import { getSkillService } from '../skill/skill.service.js';
24
+ import { SkillCatalogService } from '../skill/skill-catalog.service.js';
25
+ import { MARKETPLACE_CONSTANTS } from '../../constants.js';
26
+ /**
27
+ * Downloads an asset (archive or raw file), verifies its checksum,
28
+ * and extracts/writes it into the given install directory.
29
+ *
30
+ * Shared helper used by both `installItem` and `installToPath` to
31
+ * eliminate duplicated download/verify/extract logic.
32
+ *
33
+ * @param item - The marketplace item whose asset is being downloaded
34
+ * @param installPath - Local directory to write/extract the asset into
35
+ * @param assetPath - Relative path to the asset (archive or model file)
36
+ * @returns Operation result indicating success or failure with a message
37
+ */
38
+ async function downloadAndExtractAsset(item, installPath, assetPath) {
39
+ const localAssetsDir = path.join(homedir(), '.crewly', MARKETPLACE_CONSTANTS.DIR_NAME, 'assets');
40
+ const localAssetPath = path.join(localAssetsDir, assetPath);
41
+ let data;
42
+ if (existsSync(localAssetPath)) {
43
+ data = await readFile(localAssetPath);
44
+ }
45
+ else {
46
+ // Fall back to remote download (premium CDN)
47
+ const url = `${MARKETPLACE_CONSTANTS.PREMIUM_BASE_URL}${MARKETPLACE_CONSTANTS.ASSETS_ENDPOINT}/${assetPath}`;
48
+ const res = await fetch(url, { signal: AbortSignal.timeout(MARKETPLACE_CONSTANTS.DOWNLOAD_TIMEOUT) });
49
+ if (!res.ok) {
50
+ return { success: false, message: `Download failed: ${res.status} ${res.statusText}` };
51
+ }
52
+ data = Buffer.from(await res.arrayBuffer());
53
+ }
54
+ // Verify checksum if provided
55
+ if (item.assets.checksum) {
56
+ const colonIdx = item.assets.checksum.indexOf(':');
57
+ if (colonIdx === -1) {
58
+ return { success: false, message: `Invalid checksum format (expected "algo:hash"): ${item.assets.checksum}` };
59
+ }
60
+ const algo = item.assets.checksum.slice(0, colonIdx);
61
+ const expected = item.assets.checksum.slice(colonIdx + 1);
62
+ if (algo !== 'sha256') {
63
+ return { success: false, message: `Unsupported checksum algorithm "${algo}". Only sha256 is supported.` };
64
+ }
65
+ const actual = createHash('sha256').update(data).digest('hex');
66
+ if (actual !== expected) {
67
+ return {
68
+ success: false,
69
+ message: `Checksum mismatch: expected ${expected}, got ${actual}`,
70
+ };
71
+ }
72
+ }
73
+ // Write to install path
74
+ await mkdir(installPath, { recursive: true });
75
+ if (item.assets.archive && assetPath.endsWith('.tar.gz')) {
76
+ // Extract tar.gz archive contents into install directory
77
+ const readable = Readable.from(data);
78
+ await pipeline(readable, tar.x({ cwd: installPath, strip: 1 }));
79
+ }
80
+ else {
81
+ // Non-archive asset (e.g., model file) — write raw
82
+ const filename = path.basename(assetPath);
83
+ await writeFile(path.join(installPath, filename), data);
84
+ }
85
+ return { success: true, message: `Installed ${item.name} v${item.version}` };
86
+ }
25
87
  /**
26
88
  * Downloads and installs a marketplace item.
27
89
  *
28
90
  * Performs the following steps:
29
91
  * 1. Resolves the downloadable asset (archive or model)
30
- * 2. Downloads the asset from the Crewly CDN
31
- * 3. Verifies the SHA-256 checksum if provided
32
- * 4. Extracts tar.gz archives to the install directory (skills),
33
- * or writes raw files for non-archive assets (models)
34
- * 5. Ensures _common/lib.sh files exist for skill items
35
- * 6. Updates the installed-items manifest
92
+ * 2. Determines the source type (GitHub directory or CDN archive)
93
+ * 3. Delegates to `installFromGitHub` or `downloadAndExtractAsset`
94
+ * 4. Calls `finalizeInstall` to update manifest and refresh registrations
95
+ * 5. Cleans up partial install on failure
36
96
  *
37
97
  * @param item - The marketplace item to install
38
98
  * @returns Operation result indicating success or failure with a message
@@ -40,80 +100,121 @@ const ASSETS_ENDPOINT = '/api/assets';
40
100
  export async function installItem(item) {
41
101
  const installPath = getInstallPath(item.type, item.id);
42
102
  try {
43
- // Download the asset
44
103
  const assetPath = item.assets.archive || item.assets.model;
45
104
  if (!assetPath) {
46
105
  return { success: false, message: `No downloadable asset for ${item.id}` };
47
106
  }
48
- const url = `${MARKETPLACE_BASE_URL}${ASSETS_ENDPOINT}/${assetPath}`;
49
- const res = await fetch(url);
50
- if (!res.ok) {
51
- return { success: false, message: `Download failed: ${res.status} ${res.statusText}` };
52
- }
53
- const data = Buffer.from(await res.arrayBuffer());
54
- // Verify checksum if provided
55
- if (item.assets.checksum) {
56
- const [algo, expected] = item.assets.checksum.split(':');
57
- if (algo === 'sha256') {
58
- const actual = createHash('sha256').update(data).digest('hex');
59
- if (actual !== expected) {
60
- return {
61
- success: false,
62
- message: `Checksum mismatch: expected ${expected}, got ${actual}`,
63
- };
64
- }
65
- }
66
- }
67
- // Write to install path
68
- await mkdir(installPath, { recursive: true });
69
- if (item.assets.archive && assetPath.endsWith('.tar.gz')) {
70
- // Extract tar.gz archive contents into install directory
71
- const readable = Readable.from(data);
72
- await pipeline(readable, tar.x({ cwd: installPath, strip: 1 }));
73
- }
74
- else {
75
- // Non-archive asset (e.g., model file) — write raw
76
- const filename = path.basename(assetPath);
77
- const { writeFile } = await import('fs/promises');
78
- await writeFile(path.join(installPath, filename), data);
107
+ // Determine if this is a GitHub-sourced skill (directory path, not a .tar.gz)
108
+ const isGitHubSource = assetPath.startsWith('config/skills/') && !assetPath.endsWith('.tar.gz');
109
+ if (isGitHubSource) {
110
+ // Download individual skill files from GitHub raw content
111
+ return await installFromGitHub(item, installPath, assetPath);
79
112
  }
80
- // Ensure _common/lib.sh files are present for skill items
81
- if (item.type === 'skill') {
82
- await ensureCommonLibs();
113
+ // Archive-based install (local assets or premium CDN)
114
+ const downloadResult = await downloadAndExtractAsset(item, installPath, assetPath);
115
+ if (!downloadResult.success) {
116
+ return downloadResult;
83
117
  }
84
- // Update manifest
85
- const record = {
86
- id: item.id,
87
- type: item.type,
88
- name: item.name,
89
- version: item.version,
90
- installedAt: new Date().toISOString(),
91
- installPath,
92
- checksum: item.assets.checksum,
93
- };
94
- const manifest = await loadManifest();
95
- manifest.items = manifest.items.filter((r) => r.id !== item.id);
96
- manifest.items.push(record);
97
- await saveManifest(manifest);
98
- return { success: true, message: `Installed ${item.name} v${item.version}`, item: record };
118
+ // Post-install: update manifest, ensure common libs, refresh registrations
119
+ return await finalizeInstall(item, installPath);
99
120
  }
100
121
  catch (error) {
122
+ // Clean up partial install on failure
123
+ await rm(installPath, { recursive: true, force: true }).catch(() => { });
101
124
  const msg = error instanceof Error ? error.message : String(error);
102
125
  return { success: false, message: `Installation failed: ${msg}` };
103
126
  }
104
127
  }
105
128
  /**
106
- * Uninstalls a marketplace item by removing its directory and manifest entry.
129
+ * Installs a skill by downloading individual files from GitHub raw content
130
+ * in parallel.
107
131
  *
108
- * Performs the following steps:
109
- * 1. Looks up the item in the local manifest
110
- * 2. Removes the item's install directory from disk
111
- * 3. Removes the item's entry from the manifest
132
+ * Public skills in the crewly repo are stored as directories (not archives).
133
+ * This function downloads the essential skill files (skill.json, execute.sh,
134
+ * instructions.md) concurrently from GitHub. skill.json and execute.sh are
135
+ * required; instructions.md is optional.
136
+ *
137
+ * @param item - The marketplace item to install
138
+ * @param installPath - Local directory to install to
139
+ * @param sourcePath - Relative path in the GitHub repo (e.g. config/skills/agent/code-review)
140
+ * @returns Operation result
141
+ */
142
+ async function installFromGitHub(item, installPath, sourcePath) {
143
+ const baseUrl = MARKETPLACE_CONSTANTS.PUBLIC_CDN_BASE;
144
+ const filesToDownload = ['skill.json', 'execute.sh', 'instructions.md'];
145
+ await mkdir(installPath, { recursive: true });
146
+ // Download all files in parallel
147
+ const results = await Promise.allSettled(filesToDownload.map(async (file) => {
148
+ const url = `${baseUrl}/${sourcePath}/${file}`;
149
+ const res = await fetch(url, { signal: AbortSignal.timeout(MARKETPLACE_CONSTANTS.GITHUB_FILE_TIMEOUT) });
150
+ if (!res.ok) {
151
+ return { file, ok: false, status: res.status, statusText: res.statusText };
152
+ }
153
+ const content = Buffer.from(await res.arrayBuffer());
154
+ return { file, ok: true, content };
155
+ }));
156
+ // Process results: skill.json and execute.sh are required, instructions.md is optional
157
+ for (let i = 0; i < filesToDownload.length; i++) {
158
+ const file = filesToDownload[i];
159
+ const result = results[i];
160
+ const isOptional = file === 'instructions.md';
161
+ if (result.status === 'rejected') {
162
+ if (!isOptional) {
163
+ return { success: false, message: `Failed to download ${file}: ${result.reason}` };
164
+ }
165
+ continue;
166
+ }
167
+ const value = result.value;
168
+ if (!value.ok) {
169
+ if (!isOptional) {
170
+ return { success: false, message: `Failed to download ${file}: ${value.status} ${value.statusText}` };
171
+ }
172
+ continue;
173
+ }
174
+ await writeFile(path.join(installPath, file), value.content);
175
+ }
176
+ // Post-install: update manifest, ensure common libs, refresh registrations
177
+ return await finalizeInstall(item, installPath);
178
+ }
179
+ /**
180
+ * Shared post-install steps: update the installed-items manifest,
181
+ * ensure _common/lib.sh files exist for skills, and refresh
182
+ * skill registrations so the item is immediately discoverable.
183
+ *
184
+ * @param item - The marketplace item that was just installed
185
+ * @param installPath - Local directory where the item was installed
186
+ * @returns Operation result indicating success
187
+ */
188
+ async function finalizeInstall(item, installPath) {
189
+ if (item.type === 'skill') {
190
+ await ensureCommonLibs();
191
+ }
192
+ const record = {
193
+ id: item.id,
194
+ type: item.type,
195
+ name: item.name,
196
+ version: item.version,
197
+ installedAt: new Date().toISOString(),
198
+ installPath,
199
+ checksum: item.assets.checksum,
200
+ };
201
+ const manifest = await loadManifest();
202
+ manifest.items = manifest.items.filter((r) => r.id !== item.id);
203
+ manifest.items.push(record);
204
+ await saveManifest(manifest);
205
+ if (item.type === 'skill') {
206
+ await refreshSkillRegistrations();
207
+ }
208
+ return { success: true, message: `Installed ${item.name} v${item.version}`, item: record };
209
+ }
210
+ /**
211
+ * Internal uninstall with options. Used by updateItem to skip redundant refreshes.
112
212
  *
113
213
  * @param id - The ID of the marketplace item to uninstall
214
+ * @param options - Optional flags (skipRefresh: skip skill registration refresh)
114
215
  * @returns Operation result indicating success or failure with a message
115
216
  */
116
- export async function uninstallItem(id) {
217
+ async function uninstallItemInternal(id, options) {
117
218
  try {
118
219
  const manifest = await loadManifest();
119
220
  const record = manifest.items.find((r) => r.id === id);
@@ -125,6 +226,10 @@ export async function uninstallItem(id) {
125
226
  // Update manifest
126
227
  manifest.items = manifest.items.filter((r) => r.id !== id);
127
228
  await saveManifest(manifest);
229
+ // Refresh skill service and catalog after removal (unless skipped)
230
+ if (record.type === 'skill' && !options?.skipRefresh) {
231
+ await refreshSkillRegistrations();
232
+ }
128
233
  return { success: true, message: `Uninstalled ${record.name}` };
129
234
  }
130
235
  catch (error) {
@@ -133,20 +238,77 @@ export async function uninstallItem(id) {
133
238
  }
134
239
  }
135
240
  /**
136
- * Updates a marketplace item to the latest version.
241
+ * Uninstalls a marketplace item by removing its directory and manifest entry.
242
+ *
243
+ * Performs the following steps:
244
+ * 1. Looks up the item in the local manifest
245
+ * 2. Removes the item's install directory from disk
246
+ * 3. Removes the item's entry from the manifest
247
+ *
248
+ * @param id - The ID of the marketplace item to uninstall
249
+ * @returns Operation result indicating success or failure with a message
250
+ */
251
+ export async function uninstallItem(id) {
252
+ return uninstallItemInternal(id);
253
+ }
254
+ /**
255
+ * Updates a marketplace item to the latest version using a safe
256
+ * install-to-temp-then-swap strategy.
137
257
  *
138
- * Performs an uninstall followed by a fresh install. If the uninstall
139
- * step fails, the update is aborted and the error is reported.
258
+ * Performs the following steps:
259
+ * 1. Installs the new version to a temporary path (suffixed with -update-tmp)
260
+ * 2. On success: uninstalls the old version, renames temp to final path
261
+ * 3. On failure: cleans up the temp path without touching the old version
140
262
  *
141
263
  * @param item - The marketplace item with the latest version info
142
264
  * @returns Operation result indicating success or failure with a message
143
265
  */
144
266
  export async function updateItem(item) {
145
- const uninstallResult = await uninstallItem(item.id);
146
- if (!uninstallResult.success) {
147
- return { success: false, message: `Update failed during uninstall: ${uninstallResult.message}` };
267
+ const finalPath = getInstallPath(item.type, item.id);
268
+ const tempPath = finalPath + '-update-tmp';
269
+ // Install new version to temp path by temporarily overriding getInstallPath behavior
270
+ // We create the temp item that installFromTemp will use
271
+ try {
272
+ // Manually perform the install steps to the temp path
273
+ const assetPath = item.assets.archive || item.assets.model;
274
+ if (!assetPath) {
275
+ return { success: false, message: `No downloadable asset for ${item.id}` };
276
+ }
277
+ const isGitHubSource = assetPath.startsWith('config/skills/') && !assetPath.endsWith('.tar.gz');
278
+ let installResult;
279
+ if (isGitHubSource) {
280
+ installResult = await installFromGitHub(item, tempPath, assetPath);
281
+ }
282
+ else {
283
+ installResult = await downloadAndExtractAsset(item, tempPath, assetPath);
284
+ }
285
+ if (!installResult.success) {
286
+ // Clean up temp path on failure
287
+ await rm(tempPath, { recursive: true, force: true }).catch(() => { });
288
+ return { success: false, message: `Update failed during install: ${installResult.message}` };
289
+ }
290
+ // New version installed successfully to temp path
291
+ // Now uninstall the old version (removes old dir + manifest entry)
292
+ const uninstallResult = await uninstallItemInternal(item.id, { skipRefresh: true });
293
+ if (!uninstallResult.success) {
294
+ // If uninstall fails because item wasn't installed, that's OK for an update
295
+ if (!uninstallResult.message.includes('not installed')) {
296
+ await rm(tempPath, { recursive: true, force: true }).catch(() => { });
297
+ return { success: false, message: `Update failed during uninstall: ${uninstallResult.message}` };
298
+ }
299
+ }
300
+ // Rename temp to final path
301
+ // Remove any existing final path first (in case uninstall didn't fully clean up)
302
+ await rm(finalPath, { recursive: true, force: true }).catch(() => { });
303
+ await rename(tempPath, finalPath);
304
+ // Finalize: update manifest and refresh registrations
305
+ return await finalizeInstall(item, finalPath);
306
+ }
307
+ catch (error) {
308
+ await rm(tempPath, { recursive: true, force: true }).catch(() => { });
309
+ const msg = error instanceof Error ? error.message : String(error);
310
+ return { success: false, message: `Update failed: ${msg}` };
148
311
  }
149
- return installItem(item);
150
312
  }
151
313
  /**
152
314
  * Ensures the shared _common/lib.sh files exist in the marketplace directory.
@@ -175,7 +337,7 @@ export async function ensureCommonLibs() {
175
337
  // In compiled mode, __dirname may not resolve — try from cwd
176
338
  packageRoot = findPackageRoot(process.cwd());
177
339
  }
178
- const mpBase = path.join(homedir(), '.crewly', 'marketplace');
340
+ const mpBase = path.join(homedir(), '.crewly', MARKETPLACE_CONSTANTS.DIR_NAME);
179
341
  // Copy agent _common/lib.sh
180
342
  const agentCommonSrc = path.join(packageRoot, 'config', 'skills', 'agent', '_common', 'lib.sh');
181
343
  const agentCommonDest = path.join(mpBase, 'skills', '_common');
@@ -191,4 +353,31 @@ export async function ensureCommonLibs() {
191
353
  await copyFile(rootCommonSrc, path.join(rootCommonDest, 'lib.sh'));
192
354
  }
193
355
  }
356
+ /**
357
+ * Refreshes the SkillService cache and regenerates the agent skill catalog
358
+ * after a marketplace install or uninstall operation.
359
+ *
360
+ * This ensures newly installed skills are immediately available to agents
361
+ * without requiring a server restart.
362
+ */
363
+ async function refreshSkillRegistrations() {
364
+ try {
365
+ const skillService = getSkillService();
366
+ await skillService.refresh();
367
+ }
368
+ catch (error) {
369
+ // Skill service may not be initialized yet (e.g., during CLI usage)
370
+ const msg = error instanceof Error ? error.message : String(error);
371
+ console.debug(`[marketplace] Failed to refresh skill service: ${msg}`);
372
+ }
373
+ try {
374
+ const catalogService = SkillCatalogService.getInstance();
375
+ await catalogService.generateAgentCatalog();
376
+ }
377
+ catch (error) {
378
+ // Catalog service may not be available in all contexts
379
+ const msg = error instanceof Error ? error.message : String(error);
380
+ console.debug(`[marketplace] Failed to regenerate agent catalog: ${msg}`);
381
+ }
382
+ }
194
383
  //# sourceMappingURL=marketplace-installer.service.js.map