agents-inc 0.149.2 → 0.151.0

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 (572) hide show
  1. package/CHANGELOG.md +2287 -0
  2. package/LICENSE +21 -0
  3. package/README.md +136 -19
  4. package/assets/demo.gif +0 -0
  5. package/assets/demo.tape +266 -0
  6. package/assets/logo.svg +75 -0
  7. package/dist/chunk-2RSNKBXC.js +84 -0
  8. package/dist/chunk-2RSNKBXC.js.map +1 -0
  9. package/dist/chunk-3LIU2ZEF.js +1355 -0
  10. package/dist/chunk-3LIU2ZEF.js.map +1 -0
  11. package/dist/chunk-3XFUQ6OL.js +68 -0
  12. package/dist/chunk-3XFUQ6OL.js.map +1 -0
  13. package/dist/chunk-3YGUHWLR.js +258 -0
  14. package/dist/chunk-3YGUHWLR.js.map +1 -0
  15. package/dist/chunk-44LLPS2N.js +1135 -0
  16. package/dist/chunk-44LLPS2N.js.map +1 -0
  17. package/dist/chunk-4R6PGHQQ.js +300 -0
  18. package/dist/chunk-4R6PGHQQ.js.map +1 -0
  19. package/dist/chunk-5V2O6C3T.js +112 -0
  20. package/dist/chunk-5V2O6C3T.js.map +1 -0
  21. package/dist/chunk-6RBQBOBS.js +287 -0
  22. package/dist/chunk-6RBQBOBS.js.map +1 -0
  23. package/dist/chunk-7QIHKQL5.js +181 -0
  24. package/dist/chunk-7QIHKQL5.js.map +1 -0
  25. package/dist/chunk-BNE4HHIH.js +28 -0
  26. package/dist/chunk-BNE4HHIH.js.map +1 -0
  27. package/dist/chunk-C55DN7GE.js +35 -0
  28. package/dist/chunk-C55DN7GE.js.map +1 -0
  29. package/dist/chunk-DAG2ULNF.js +125 -0
  30. package/dist/chunk-DAG2ULNF.js.map +1 -0
  31. package/dist/chunk-DG2NGZ7S.js +10929 -0
  32. package/dist/chunk-DG2NGZ7S.js.map +1 -0
  33. package/dist/chunk-DIBCRIMR.js +36 -0
  34. package/dist/chunk-DIBCRIMR.js.map +1 -0
  35. package/dist/chunk-DUVWGO6E.js +54 -0
  36. package/dist/chunk-DUVWGO6E.js.map +1 -0
  37. package/dist/chunk-EKWAUOQB.js +96 -0
  38. package/dist/chunk-EKWAUOQB.js.map +1 -0
  39. package/dist/chunk-ES3NJZON.js +31 -0
  40. package/dist/chunk-ES3NJZON.js.map +1 -0
  41. package/dist/chunk-EVXG3X6G.js +179 -0
  42. package/dist/chunk-EVXG3X6G.js.map +1 -0
  43. package/dist/chunk-EZ7STXUV.js +349 -0
  44. package/dist/chunk-EZ7STXUV.js.map +1 -0
  45. package/dist/chunk-FYPUUYSG.js +31 -0
  46. package/dist/chunk-FYPUUYSG.js.map +1 -0
  47. package/dist/chunk-GYG5SE2D.js +81 -0
  48. package/dist/chunk-GYG5SE2D.js.map +1 -0
  49. package/dist/chunk-I3XKEGHM.js +16383 -0
  50. package/dist/chunk-I3XKEGHM.js.map +1 -0
  51. package/dist/chunk-IHO75PMZ.js +40 -0
  52. package/dist/chunk-IHO75PMZ.js.map +1 -0
  53. package/dist/chunk-IOJR5TOY.js +47 -0
  54. package/dist/chunk-IOJR5TOY.js.map +1 -0
  55. package/dist/chunk-K3OU6TGX.js +77 -0
  56. package/dist/chunk-K3OU6TGX.js.map +1 -0
  57. package/dist/chunk-KIR7VYQD.js +63 -0
  58. package/dist/chunk-KIR7VYQD.js.map +1 -0
  59. package/dist/chunk-KOPEM3Q7.js +27 -0
  60. package/dist/chunk-KOPEM3Q7.js.map +1 -0
  61. package/dist/chunk-KSZ6PCY4.js +43 -0
  62. package/dist/chunk-KSZ6PCY4.js.map +1 -0
  63. package/dist/chunk-LAXAQ3PZ.js +235 -0
  64. package/dist/chunk-LAXAQ3PZ.js.map +1 -0
  65. package/dist/chunk-LYYXX2W5.js +87 -0
  66. package/dist/chunk-LYYXX2W5.js.map +1 -0
  67. package/dist/chunk-NGLQ5W7U.js +339 -0
  68. package/dist/chunk-NGLQ5W7U.js.map +1 -0
  69. package/dist/chunk-NHCGC6DG.js +111 -0
  70. package/dist/chunk-NHCGC6DG.js.map +1 -0
  71. package/dist/chunk-NIKUMXE7.js +24 -0
  72. package/dist/chunk-NIKUMXE7.js.map +1 -0
  73. package/dist/chunk-NM3EDGB5.js +300 -0
  74. package/dist/chunk-NM3EDGB5.js.map +1 -0
  75. package/dist/chunk-O5ASLZ2K.js +270 -0
  76. package/dist/chunk-O5ASLZ2K.js.map +1 -0
  77. package/dist/chunk-OJIESW5B.js +174 -0
  78. package/dist/chunk-OJIESW5B.js.map +1 -0
  79. package/dist/chunk-OZZGXBCN.js +15 -0
  80. package/dist/chunk-OZZGXBCN.js.map +1 -0
  81. package/dist/chunk-P3PN5SVI.js +27 -0
  82. package/dist/chunk-P3PN5SVI.js.map +1 -0
  83. package/dist/chunk-P56WJ5FA.js +50 -0
  84. package/dist/chunk-P56WJ5FA.js.map +1 -0
  85. package/dist/chunk-PG4G4IIK.js +24 -0
  86. package/dist/chunk-PG4G4IIK.js.map +1 -0
  87. package/dist/chunk-PV2HNW4I.js +382 -0
  88. package/dist/chunk-PV2HNW4I.js.map +1 -0
  89. package/dist/chunk-QQLRX4KI.js +41 -0
  90. package/dist/chunk-QQLRX4KI.js.map +1 -0
  91. package/dist/chunk-QTFQEYDA.js +789 -0
  92. package/dist/chunk-QTFQEYDA.js.map +1 -0
  93. package/dist/chunk-RBHYLCUB.js +31 -0
  94. package/dist/chunk-RBHYLCUB.js.map +1 -0
  95. package/dist/chunk-SHHOMVWC.js +62 -0
  96. package/dist/chunk-SHHOMVWC.js.map +1 -0
  97. package/dist/chunk-SI5FOARI.js +42 -0
  98. package/dist/chunk-SI5FOARI.js.map +1 -0
  99. package/dist/chunk-SYUOXSPU.js +510 -0
  100. package/dist/chunk-SYUOXSPU.js.map +1 -0
  101. package/dist/chunk-THKIOI32.js +939 -0
  102. package/dist/chunk-THKIOI32.js.map +1 -0
  103. package/dist/chunk-TVHRMRD3.js +6014 -0
  104. package/dist/chunk-TVHRMRD3.js.map +1 -0
  105. package/dist/chunk-TYJLR32W.js +128 -0
  106. package/dist/chunk-TYJLR32W.js.map +1 -0
  107. package/dist/chunk-UFURYGD3.js +20 -0
  108. package/dist/chunk-UFURYGD3.js.map +1 -0
  109. package/dist/chunk-UTFN6UJS.js +253 -0
  110. package/dist/chunk-UTFN6UJS.js.map +1 -0
  111. package/dist/chunk-V7QOSGQA.js +298 -0
  112. package/dist/chunk-V7QOSGQA.js.map +1 -0
  113. package/dist/chunk-VEP23B5W.js +27 -0
  114. package/dist/chunk-VEP23B5W.js.map +1 -0
  115. package/dist/chunk-VG2TVBFN.js +52 -0
  116. package/dist/chunk-VG2TVBFN.js.map +1 -0
  117. package/dist/chunk-WFWCZEMS.js +92 -0
  118. package/dist/chunk-WFWCZEMS.js.map +1 -0
  119. package/dist/chunk-WK4J2CHH.js +430 -0
  120. package/dist/chunk-WK4J2CHH.js.map +1 -0
  121. package/dist/chunk-XA57SX4T.js +115 -0
  122. package/dist/chunk-XA57SX4T.js.map +1 -0
  123. package/dist/chunk-Y4CXDA3I.js +181 -0
  124. package/dist/chunk-Y4CXDA3I.js.map +1 -0
  125. package/dist/chunk-YA4QQKKE.js +51 -0
  126. package/dist/chunk-YA4QQKKE.js.map +1 -0
  127. package/dist/chunk-YBVA7GPW.js +27 -0
  128. package/dist/chunk-YBVA7GPW.js.map +1 -0
  129. package/dist/chunk-YU2VGX5R.js +4205 -0
  130. package/dist/chunk-YU2VGX5R.js.map +1 -0
  131. package/dist/commands/build/marketplace.js +250 -0
  132. package/dist/commands/build/marketplace.js.map +1 -0
  133. package/dist/commands/build/plugins.js +176 -0
  134. package/dist/commands/build/plugins.js.map +1 -0
  135. package/dist/commands/compile.js +331 -0
  136. package/dist/commands/compile.js.map +1 -0
  137. package/dist/commands/doctor.js +475 -0
  138. package/dist/commands/doctor.js.map +1 -0
  139. package/dist/commands/edit.js +765 -0
  140. package/dist/commands/edit.js.map +1 -0
  141. package/dist/commands/eject.js +393 -0
  142. package/dist/commands/eject.js.map +1 -0
  143. package/dist/commands/import/skill.js +349 -0
  144. package/dist/commands/import/skill.js.map +1 -0
  145. package/dist/commands/init.js +66 -0
  146. package/dist/commands/init.js.map +1 -0
  147. package/dist/commands/list.js +115 -0
  148. package/dist/commands/list.js.map +1 -0
  149. package/dist/commands/new/agent.js +304 -0
  150. package/dist/commands/new/agent.js.map +1 -0
  151. package/dist/commands/new/marketplace.js +315 -0
  152. package/dist/commands/new/marketplace.js.map +1 -0
  153. package/dist/commands/new/skill.js +28 -0
  154. package/dist/commands/new/skill.js.map +1 -0
  155. package/dist/commands/search.js +176 -0
  156. package/dist/commands/search.js.map +1 -0
  157. package/dist/commands/uninstall.js +570 -0
  158. package/dist/commands/uninstall.js.map +1 -0
  159. package/dist/commands/update.js +368 -0
  160. package/dist/commands/update.js.map +1 -0
  161. package/dist/commands/validate.js +581 -0
  162. package/dist/commands/validate.js.map +1 -0
  163. package/dist/components/common/confirm.js +9 -0
  164. package/dist/components/common/confirm.js.map +1 -0
  165. package/dist/components/common/confirm.test.js +203 -0
  166. package/dist/components/common/confirm.test.js.map +1 -0
  167. package/dist/components/common/prompt-confirm.js +11 -0
  168. package/dist/components/common/prompt-confirm.js.map +1 -0
  169. package/dist/components/common/select-list.js +11 -0
  170. package/dist/components/common/select-list.js.map +1 -0
  171. package/dist/components/common/spinner.js +9 -0
  172. package/dist/components/common/spinner.js.map +1 -0
  173. package/dist/components/wizard/category-grid.js +16 -0
  174. package/dist/components/wizard/category-grid.js.map +1 -0
  175. package/dist/components/wizard/category-grid.test.js +1253 -0
  176. package/dist/components/wizard/category-grid.test.js.map +1 -0
  177. package/dist/components/wizard/checkbox-grid.js +14 -0
  178. package/dist/components/wizard/checkbox-grid.js.map +1 -0
  179. package/dist/components/wizard/checkbox-grid.test.js +264 -0
  180. package/dist/components/wizard/checkbox-grid.test.js.map +1 -0
  181. package/dist/components/wizard/domain-selection.js +22 -0
  182. package/dist/components/wizard/domain-selection.js.map +1 -0
  183. package/dist/components/wizard/run-wizard-session.js +47 -0
  184. package/dist/components/wizard/run-wizard-session.js.map +1 -0
  185. package/dist/components/wizard/scroll-affordance.js +10 -0
  186. package/dist/components/wizard/scroll-affordance.js.map +1 -0
  187. package/dist/components/wizard/search-modal.js +14 -0
  188. package/dist/components/wizard/search-modal.js.map +1 -0
  189. package/dist/components/wizard/search-modal.test.js +212 -0
  190. package/dist/components/wizard/search-modal.test.js.map +1 -0
  191. package/dist/components/wizard/selection-card.js +10 -0
  192. package/dist/components/wizard/selection-card.js.map +1 -0
  193. package/dist/components/wizard/skill-agent-summary.js +16 -0
  194. package/dist/components/wizard/skill-agent-summary.js.map +1 -0
  195. package/dist/components/wizard/source-grid.js +23 -0
  196. package/dist/components/wizard/source-grid.js.map +1 -0
  197. package/dist/components/wizard/source-grid.test.js +1094 -0
  198. package/dist/components/wizard/source-grid.test.js.map +1 -0
  199. package/dist/components/wizard/stack-selection.js +20 -0
  200. package/dist/components/wizard/stack-selection.js.map +1 -0
  201. package/dist/components/wizard/step-agents.js +22 -0
  202. package/dist/components/wizard/step-agents.js.map +1 -0
  203. package/dist/components/wizard/step-agents.test.js +204 -0
  204. package/dist/components/wizard/step-agents.test.js.map +1 -0
  205. package/dist/components/wizard/step-build.js +22 -0
  206. package/dist/components/wizard/step-build.js.map +1 -0
  207. package/dist/components/wizard/step-build.test.js +552 -0
  208. package/dist/components/wizard/step-build.test.js.map +1 -0
  209. package/dist/components/wizard/step-confirm.js +21 -0
  210. package/dist/components/wizard/step-confirm.js.map +1 -0
  211. package/dist/components/wizard/step-confirm.test.js +744 -0
  212. package/dist/components/wizard/step-confirm.test.js.map +1 -0
  213. package/dist/components/wizard/step-settings.js +19 -0
  214. package/dist/components/wizard/step-settings.js.map +1 -0
  215. package/dist/components/wizard/step-settings.test.js +244 -0
  216. package/dist/components/wizard/step-settings.test.js.map +1 -0
  217. package/dist/components/wizard/step-sources.js +28 -0
  218. package/dist/components/wizard/step-sources.js.map +1 -0
  219. package/dist/components/wizard/step-sources.test.js +155 -0
  220. package/dist/components/wizard/step-sources.test.js.map +1 -0
  221. package/dist/components/wizard/step-stack.js +21 -0
  222. package/dist/components/wizard/step-stack.js.map +1 -0
  223. package/dist/components/wizard/step-stack.test.js +262 -0
  224. package/dist/components/wizard/step-stack.test.js.map +1 -0
  225. package/dist/components/wizard/summary-panel.js +20 -0
  226. package/dist/components/wizard/summary-panel.js.map +1 -0
  227. package/dist/components/wizard/summary-panel.test.js +317 -0
  228. package/dist/components/wizard/summary-panel.test.js.map +1 -0
  229. package/dist/components/wizard/toast.js +10 -0
  230. package/dist/components/wizard/toast.js.map +1 -0
  231. package/dist/components/wizard/wizard-layout.js +26 -0
  232. package/dist/components/wizard/wizard-layout.js.map +1 -0
  233. package/dist/components/wizard/wizard-layout.test.js +200 -0
  234. package/dist/components/wizard/wizard-layout.test.js.map +1 -0
  235. package/dist/components/wizard/wizard-tabs.js +20 -0
  236. package/dist/components/wizard/wizard-tabs.js.map +1 -0
  237. package/dist/components/wizard/wizard-tabs.test.js +290 -0
  238. package/dist/components/wizard/wizard-tabs.test.js.map +1 -0
  239. package/dist/components/wizard/wizard.js +48 -0
  240. package/dist/components/wizard/wizard.js.map +1 -0
  241. package/dist/config-exports.js +20 -0
  242. package/dist/config-exports.js.map +1 -0
  243. package/dist/copy-local-skills-UPA2GUZV.js +15 -0
  244. package/dist/copy-local-skills-UPA2GUZV.js.map +1 -0
  245. package/dist/dist-VNJNNJK7.js +550 -0
  246. package/dist/dist-VNJNNJK7.js.map +1 -0
  247. package/dist/hooks/init.js +90 -0
  248. package/dist/hooks/init.js.map +1 -0
  249. package/dist/index.js +10 -0
  250. package/dist/index.js.map +1 -0
  251. package/dist/load-agent-defs-SB4XAOVB.js +16 -0
  252. package/dist/load-agent-defs-SB4XAOVB.js.map +1 -0
  253. package/dist/loader-E2ERJYVA.js +23 -0
  254. package/dist/loader-E2ERJYVA.js.map +1 -0
  255. package/dist/magic-string.es-5TV73NJD.js +1316 -0
  256. package/dist/magic-string.es-5TV73NJD.js.map +1 -0
  257. package/dist/recompile-project-agents-U4ZY2GDX.js +20 -0
  258. package/dist/recompile-project-agents-U4ZY2GDX.js.map +1 -0
  259. package/dist/source-loader-5UNRU7EZ.js +20 -0
  260. package/dist/source-loader-5UNRU7EZ.js.map +1 -0
  261. package/dist/source-manager-3O54SIIB.js +18 -0
  262. package/dist/source-manager-3O54SIIB.js.map +1 -0
  263. package/dist/src/agents/_templates/agent.liquid +161 -0
  264. package/dist/src/agents/_templates/methodologies/anti-over-engineering.liquid +121 -0
  265. package/dist/src/agents/_templates/methodologies/context-management.liquid +162 -0
  266. package/dist/src/agents/_templates/methodologies/improvement-protocol.liquid +150 -0
  267. package/dist/src/agents/_templates/methodologies/investigation-requirements.liquid +49 -0
  268. package/dist/src/agents/_templates/methodologies/success-criteria.liquid +111 -0
  269. package/dist/src/agents/_templates/methodologies/write-verification.liquid +43 -0
  270. package/dist/src/agents/developer/ai-developer/critical-reminders.md +54 -0
  271. package/dist/src/agents/developer/ai-developer/critical-requirements.md +59 -0
  272. package/dist/src/agents/developer/ai-developer/identity.md +51 -0
  273. package/dist/src/agents/developer/ai-developer/metadata.yaml +12 -0
  274. package/dist/src/agents/developer/ai-developer/output.md +366 -0
  275. package/dist/src/agents/developer/ai-developer/playbook.md +335 -0
  276. package/dist/src/agents/developer/api-developer/critical-reminders.md +46 -0
  277. package/dist/src/agents/developer/api-developer/critical-requirements.md +44 -0
  278. package/dist/src/agents/developer/api-developer/identity.md +49 -0
  279. package/dist/src/agents/developer/api-developer/metadata.yaml +12 -0
  280. package/dist/src/agents/developer/api-developer/output.md +432 -0
  281. package/dist/src/agents/developer/api-developer/playbook.md +352 -0
  282. package/dist/src/agents/developer/cli-developer/critical-reminders.md +51 -0
  283. package/dist/src/agents/developer/cli-developer/critical-requirements.md +51 -0
  284. package/dist/src/agents/developer/cli-developer/identity.md +51 -0
  285. package/dist/src/agents/developer/cli-developer/metadata.yaml +12 -0
  286. package/dist/src/agents/developer/cli-developer/output.md +285 -0
  287. package/dist/src/agents/developer/cli-developer/playbook.md +386 -0
  288. package/dist/src/agents/developer/web-architecture/critical-reminders.md +48 -0
  289. package/dist/src/agents/developer/web-architecture/critical-requirements.md +65 -0
  290. package/dist/src/agents/developer/web-architecture/identity.md +64 -0
  291. package/dist/src/agents/developer/web-architecture/metadata.yaml +12 -0
  292. package/dist/src/agents/developer/web-architecture/output.md +449 -0
  293. package/dist/src/agents/developer/web-architecture/playbook.md +481 -0
  294. package/dist/src/agents/developer/web-developer/critical-reminders.md +40 -0
  295. package/dist/src/agents/developer/web-developer/critical-requirements.md +39 -0
  296. package/dist/src/agents/developer/web-developer/identity.md +32 -0
  297. package/dist/src/agents/developer/web-developer/metadata.yaml +12 -0
  298. package/dist/src/agents/developer/web-developer/output.md +323 -0
  299. package/dist/src/agents/developer/web-developer/playbook.md +349 -0
  300. package/dist/src/agents/meta/agent-summoner/critical-reminders.md +45 -0
  301. package/dist/src/agents/meta/agent-summoner/critical-requirements.md +52 -0
  302. package/dist/src/agents/meta/agent-summoner/identity.md +34 -0
  303. package/dist/src/agents/meta/agent-summoner/metadata.yaml +12 -0
  304. package/dist/src/agents/meta/agent-summoner/output.md +296 -0
  305. package/dist/src/agents/meta/agent-summoner/playbook.md +1469 -0
  306. package/dist/src/agents/meta/codex-keeper/critical-reminders.md +39 -0
  307. package/dist/src/agents/meta/codex-keeper/critical-requirements.md +29 -0
  308. package/dist/src/agents/meta/codex-keeper/identity.md +45 -0
  309. package/dist/src/agents/meta/codex-keeper/metadata.yaml +12 -0
  310. package/dist/src/agents/meta/codex-keeper/output.md +384 -0
  311. package/dist/src/agents/meta/codex-keeper/playbook.md +1183 -0
  312. package/dist/src/agents/meta/convention-keeper/critical-reminders.md +32 -0
  313. package/dist/src/agents/meta/convention-keeper/critical-requirements.md +32 -0
  314. package/dist/src/agents/meta/convention-keeper/identity.md +33 -0
  315. package/dist/src/agents/meta/convention-keeper/metadata.yaml +12 -0
  316. package/dist/src/agents/meta/convention-keeper/output.md +206 -0
  317. package/dist/src/agents/meta/convention-keeper/playbook.md +180 -0
  318. package/dist/src/agents/meta/skill-summoner/critical-reminders.md +112 -0
  319. package/dist/src/agents/meta/skill-summoner/critical-requirements.md +62 -0
  320. package/dist/src/agents/meta/skill-summoner/identity.md +31 -0
  321. package/dist/src/agents/meta/skill-summoner/metadata.yaml +13 -0
  322. package/dist/src/agents/meta/skill-summoner/output.md +390 -0
  323. package/dist/src/agents/meta/skill-summoner/playbook.md +1457 -0
  324. package/dist/src/agents/pattern/pattern-scout/critical-reminders.md +71 -0
  325. package/dist/src/agents/pattern/pattern-scout/critical-requirements.md +31 -0
  326. package/dist/src/agents/pattern/pattern-scout/identity.md +25 -0
  327. package/dist/src/agents/pattern/pattern-scout/metadata.yaml +10 -0
  328. package/dist/src/agents/pattern/pattern-scout/output.md +290 -0
  329. package/dist/src/agents/pattern/pattern-scout/playbook.md +1806 -0
  330. package/dist/src/agents/pattern/web-pattern-critique/critical-reminders.md +30 -0
  331. package/dist/src/agents/pattern/web-pattern-critique/critical-requirements.md +28 -0
  332. package/dist/src/agents/pattern/web-pattern-critique/identity.md +41 -0
  333. package/dist/src/agents/pattern/web-pattern-critique/metadata.yaml +12 -0
  334. package/dist/src/agents/pattern/web-pattern-critique/output.md +314 -0
  335. package/dist/src/agents/pattern/web-pattern-critique/playbook.md +572 -0
  336. package/dist/src/agents/planning/api-pm/critical-reminders.md +48 -0
  337. package/dist/src/agents/planning/api-pm/critical-requirements.md +41 -0
  338. package/dist/src/agents/planning/api-pm/identity.md +39 -0
  339. package/dist/src/agents/planning/api-pm/metadata.yaml +12 -0
  340. package/dist/src/agents/planning/api-pm/output.md +475 -0
  341. package/dist/src/agents/planning/api-pm/playbook.md +129 -0
  342. package/dist/src/agents/planning/web-pm/critical-reminders.md +36 -0
  343. package/dist/src/agents/planning/web-pm/critical-requirements.md +32 -0
  344. package/dist/src/agents/planning/web-pm/identity.md +26 -0
  345. package/dist/src/agents/planning/web-pm/metadata.yaml +12 -0
  346. package/dist/src/agents/planning/web-pm/output.md +314 -0
  347. package/dist/src/agents/planning/web-pm/playbook.md +318 -0
  348. package/dist/src/agents/researcher/api-researcher/critical-reminders.md +27 -0
  349. package/dist/src/agents/researcher/api-researcher/critical-requirements.md +28 -0
  350. package/dist/src/agents/researcher/api-researcher/identity.md +71 -0
  351. package/dist/src/agents/researcher/api-researcher/metadata.yaml +10 -0
  352. package/dist/src/agents/researcher/api-researcher/output.md +254 -0
  353. package/dist/src/agents/researcher/api-researcher/playbook.md +201 -0
  354. package/dist/src/agents/researcher/web-researcher/critical-reminders.md +39 -0
  355. package/dist/src/agents/researcher/web-researcher/critical-requirements.md +26 -0
  356. package/dist/src/agents/researcher/web-researcher/identity.md +69 -0
  357. package/dist/src/agents/researcher/web-researcher/metadata.yaml +10 -0
  358. package/dist/src/agents/researcher/web-researcher/output.md +241 -0
  359. package/dist/src/agents/researcher/web-researcher/playbook.md +217 -0
  360. package/dist/src/agents/reviewer/ai-reviewer/critical-reminders.md +40 -0
  361. package/dist/src/agents/reviewer/ai-reviewer/critical-requirements.md +37 -0
  362. package/dist/src/agents/reviewer/ai-reviewer/identity.md +51 -0
  363. package/dist/src/agents/reviewer/ai-reviewer/metadata.yaml +10 -0
  364. package/dist/src/agents/reviewer/ai-reviewer/output.md +395 -0
  365. package/dist/src/agents/reviewer/ai-reviewer/playbook.md +90 -0
  366. package/dist/src/agents/reviewer/api-reviewer/critical-reminders.md +31 -0
  367. package/dist/src/agents/reviewer/api-reviewer/critical-requirements.md +27 -0
  368. package/dist/src/agents/reviewer/api-reviewer/identity.md +51 -0
  369. package/dist/src/agents/reviewer/api-reviewer/metadata.yaml +12 -0
  370. package/dist/src/agents/reviewer/api-reviewer/output.md +343 -0
  371. package/dist/src/agents/reviewer/api-reviewer/playbook.md +288 -0
  372. package/dist/src/agents/reviewer/cli-reviewer/critical-reminders.md +33 -0
  373. package/dist/src/agents/reviewer/cli-reviewer/critical-requirements.md +30 -0
  374. package/dist/src/agents/reviewer/cli-reviewer/identity.md +44 -0
  375. package/dist/src/agents/reviewer/cli-reviewer/metadata.yaml +12 -0
  376. package/dist/src/agents/reviewer/cli-reviewer/output.md +414 -0
  377. package/dist/src/agents/reviewer/cli-reviewer/playbook.md +218 -0
  378. package/dist/src/agents/reviewer/infra-reviewer/critical-reminders.md +38 -0
  379. package/dist/src/agents/reviewer/infra-reviewer/critical-requirements.md +38 -0
  380. package/dist/src/agents/reviewer/infra-reviewer/identity.md +53 -0
  381. package/dist/src/agents/reviewer/infra-reviewer/metadata.yaml +10 -0
  382. package/dist/src/agents/reviewer/infra-reviewer/output.md +364 -0
  383. package/dist/src/agents/reviewer/infra-reviewer/playbook.md +161 -0
  384. package/dist/src/agents/reviewer/web-reviewer/critical-reminders.md +31 -0
  385. package/dist/src/agents/reviewer/web-reviewer/critical-requirements.md +26 -0
  386. package/dist/src/agents/reviewer/web-reviewer/identity.md +40 -0
  387. package/dist/src/agents/reviewer/web-reviewer/metadata.yaml +12 -0
  388. package/dist/src/agents/reviewer/web-reviewer/output.md +333 -0
  389. package/dist/src/agents/reviewer/web-reviewer/playbook.md +156 -0
  390. package/dist/src/agents/tester/api-tester/critical-reminders.md +41 -0
  391. package/dist/src/agents/tester/api-tester/critical-requirements.md +41 -0
  392. package/dist/src/agents/tester/api-tester/identity.md +47 -0
  393. package/dist/src/agents/tester/api-tester/metadata.yaml +12 -0
  394. package/dist/src/agents/tester/api-tester/output.md +284 -0
  395. package/dist/src/agents/tester/api-tester/playbook.md +275 -0
  396. package/dist/src/agents/tester/cli-tester/critical-reminders.md +36 -0
  397. package/dist/src/agents/tester/cli-tester/critical-requirements.md +36 -0
  398. package/dist/src/agents/tester/cli-tester/identity.md +43 -0
  399. package/dist/src/agents/tester/cli-tester/metadata.yaml +12 -0
  400. package/dist/src/agents/tester/cli-tester/output.md +313 -0
  401. package/dist/src/agents/tester/cli-tester/playbook.md +221 -0
  402. package/dist/src/agents/tester/web-tester/critical-reminders.md +31 -0
  403. package/dist/src/agents/tester/web-tester/critical-requirements.md +28 -0
  404. package/dist/src/agents/tester/web-tester/identity.md +41 -0
  405. package/dist/src/agents/tester/web-tester/metadata.yaml +12 -0
  406. package/dist/src/agents/tester/web-tester/output.md +321 -0
  407. package/dist/src/agents/tester/web-tester/playbook.md +428 -0
  408. package/dist/stores/d227-same-scope-tombstone-duplicate.test.js +118 -0
  409. package/dist/stores/d227-same-scope-tombstone-duplicate.test.js.map +1 -0
  410. package/dist/stores/wizard-store.js +21 -0
  411. package/dist/stores/wizard-store.js.map +1 -0
  412. package/dist/stores/wizard-store.test.js +3053 -0
  413. package/dist/stores/wizard-store.test.js.map +1 -0
  414. package/package.json +130 -12
  415. package/src/agents/_templates/agent.liquid +161 -0
  416. package/src/agents/_templates/methodologies/anti-over-engineering.liquid +121 -0
  417. package/src/agents/_templates/methodologies/context-management.liquid +162 -0
  418. package/src/agents/_templates/methodologies/improvement-protocol.liquid +150 -0
  419. package/src/agents/_templates/methodologies/investigation-requirements.liquid +49 -0
  420. package/src/agents/_templates/methodologies/success-criteria.liquid +111 -0
  421. package/src/agents/_templates/methodologies/write-verification.liquid +43 -0
  422. package/src/agents/developer/ai-developer/critical-reminders.md +54 -0
  423. package/src/agents/developer/ai-developer/critical-requirements.md +59 -0
  424. package/src/agents/developer/ai-developer/identity.md +51 -0
  425. package/src/agents/developer/ai-developer/metadata.yaml +12 -0
  426. package/src/agents/developer/ai-developer/output.md +366 -0
  427. package/src/agents/developer/ai-developer/playbook.md +335 -0
  428. package/src/agents/developer/api-developer/critical-reminders.md +46 -0
  429. package/src/agents/developer/api-developer/critical-requirements.md +44 -0
  430. package/src/agents/developer/api-developer/identity.md +49 -0
  431. package/src/agents/developer/api-developer/metadata.yaml +12 -0
  432. package/src/agents/developer/api-developer/output.md +432 -0
  433. package/src/agents/developer/api-developer/playbook.md +352 -0
  434. package/src/agents/developer/cli-developer/critical-reminders.md +51 -0
  435. package/src/agents/developer/cli-developer/critical-requirements.md +51 -0
  436. package/src/agents/developer/cli-developer/identity.md +51 -0
  437. package/src/agents/developer/cli-developer/metadata.yaml +12 -0
  438. package/src/agents/developer/cli-developer/output.md +285 -0
  439. package/src/agents/developer/cli-developer/playbook.md +386 -0
  440. package/src/agents/developer/web-architecture/critical-reminders.md +48 -0
  441. package/src/agents/developer/web-architecture/critical-requirements.md +65 -0
  442. package/src/agents/developer/web-architecture/identity.md +64 -0
  443. package/src/agents/developer/web-architecture/metadata.yaml +12 -0
  444. package/src/agents/developer/web-architecture/output.md +449 -0
  445. package/src/agents/developer/web-architecture/playbook.md +481 -0
  446. package/src/agents/developer/web-developer/critical-reminders.md +40 -0
  447. package/src/agents/developer/web-developer/critical-requirements.md +39 -0
  448. package/src/agents/developer/web-developer/identity.md +32 -0
  449. package/src/agents/developer/web-developer/metadata.yaml +12 -0
  450. package/src/agents/developer/web-developer/output.md +323 -0
  451. package/src/agents/developer/web-developer/playbook.md +349 -0
  452. package/src/agents/meta/agent-summoner/critical-reminders.md +45 -0
  453. package/src/agents/meta/agent-summoner/critical-requirements.md +52 -0
  454. package/src/agents/meta/agent-summoner/identity.md +34 -0
  455. package/src/agents/meta/agent-summoner/metadata.yaml +12 -0
  456. package/src/agents/meta/agent-summoner/output.md +296 -0
  457. package/src/agents/meta/agent-summoner/playbook.md +1469 -0
  458. package/src/agents/meta/codex-keeper/critical-reminders.md +39 -0
  459. package/src/agents/meta/codex-keeper/critical-requirements.md +29 -0
  460. package/src/agents/meta/codex-keeper/identity.md +45 -0
  461. package/src/agents/meta/codex-keeper/metadata.yaml +12 -0
  462. package/src/agents/meta/codex-keeper/output.md +384 -0
  463. package/src/agents/meta/codex-keeper/playbook.md +1183 -0
  464. package/src/agents/meta/convention-keeper/critical-reminders.md +32 -0
  465. package/src/agents/meta/convention-keeper/critical-requirements.md +32 -0
  466. package/src/agents/meta/convention-keeper/identity.md +33 -0
  467. package/src/agents/meta/convention-keeper/metadata.yaml +12 -0
  468. package/src/agents/meta/convention-keeper/output.md +206 -0
  469. package/src/agents/meta/convention-keeper/playbook.md +180 -0
  470. package/src/agents/meta/skill-summoner/critical-reminders.md +112 -0
  471. package/src/agents/meta/skill-summoner/critical-requirements.md +62 -0
  472. package/src/agents/meta/skill-summoner/identity.md +31 -0
  473. package/src/agents/meta/skill-summoner/metadata.yaml +13 -0
  474. package/src/agents/meta/skill-summoner/output.md +390 -0
  475. package/src/agents/meta/skill-summoner/playbook.md +1457 -0
  476. package/src/agents/pattern/pattern-scout/critical-reminders.md +71 -0
  477. package/src/agents/pattern/pattern-scout/critical-requirements.md +31 -0
  478. package/src/agents/pattern/pattern-scout/identity.md +25 -0
  479. package/src/agents/pattern/pattern-scout/metadata.yaml +10 -0
  480. package/src/agents/pattern/pattern-scout/output.md +290 -0
  481. package/src/agents/pattern/pattern-scout/playbook.md +1806 -0
  482. package/src/agents/pattern/web-pattern-critique/critical-reminders.md +30 -0
  483. package/src/agents/pattern/web-pattern-critique/critical-requirements.md +28 -0
  484. package/src/agents/pattern/web-pattern-critique/identity.md +41 -0
  485. package/src/agents/pattern/web-pattern-critique/metadata.yaml +12 -0
  486. package/src/agents/pattern/web-pattern-critique/output.md +314 -0
  487. package/src/agents/pattern/web-pattern-critique/playbook.md +572 -0
  488. package/src/agents/planning/api-pm/critical-reminders.md +48 -0
  489. package/src/agents/planning/api-pm/critical-requirements.md +41 -0
  490. package/src/agents/planning/api-pm/identity.md +39 -0
  491. package/src/agents/planning/api-pm/metadata.yaml +12 -0
  492. package/src/agents/planning/api-pm/output.md +475 -0
  493. package/src/agents/planning/api-pm/playbook.md +129 -0
  494. package/src/agents/planning/web-pm/critical-reminders.md +36 -0
  495. package/src/agents/planning/web-pm/critical-requirements.md +32 -0
  496. package/src/agents/planning/web-pm/identity.md +26 -0
  497. package/src/agents/planning/web-pm/metadata.yaml +12 -0
  498. package/src/agents/planning/web-pm/output.md +314 -0
  499. package/src/agents/planning/web-pm/playbook.md +318 -0
  500. package/src/agents/researcher/api-researcher/critical-reminders.md +27 -0
  501. package/src/agents/researcher/api-researcher/critical-requirements.md +28 -0
  502. package/src/agents/researcher/api-researcher/identity.md +71 -0
  503. package/src/agents/researcher/api-researcher/metadata.yaml +10 -0
  504. package/src/agents/researcher/api-researcher/output.md +254 -0
  505. package/src/agents/researcher/api-researcher/playbook.md +201 -0
  506. package/src/agents/researcher/web-researcher/critical-reminders.md +39 -0
  507. package/src/agents/researcher/web-researcher/critical-requirements.md +26 -0
  508. package/src/agents/researcher/web-researcher/identity.md +69 -0
  509. package/src/agents/researcher/web-researcher/metadata.yaml +10 -0
  510. package/src/agents/researcher/web-researcher/output.md +241 -0
  511. package/src/agents/researcher/web-researcher/playbook.md +217 -0
  512. package/src/agents/reviewer/ai-reviewer/critical-reminders.md +40 -0
  513. package/src/agents/reviewer/ai-reviewer/critical-requirements.md +37 -0
  514. package/src/agents/reviewer/ai-reviewer/identity.md +51 -0
  515. package/src/agents/reviewer/ai-reviewer/metadata.yaml +10 -0
  516. package/src/agents/reviewer/ai-reviewer/output.md +395 -0
  517. package/src/agents/reviewer/ai-reviewer/playbook.md +90 -0
  518. package/src/agents/reviewer/api-reviewer/critical-reminders.md +31 -0
  519. package/src/agents/reviewer/api-reviewer/critical-requirements.md +27 -0
  520. package/src/agents/reviewer/api-reviewer/identity.md +51 -0
  521. package/src/agents/reviewer/api-reviewer/metadata.yaml +12 -0
  522. package/src/agents/reviewer/api-reviewer/output.md +343 -0
  523. package/src/agents/reviewer/api-reviewer/playbook.md +288 -0
  524. package/src/agents/reviewer/cli-reviewer/critical-reminders.md +33 -0
  525. package/src/agents/reviewer/cli-reviewer/critical-requirements.md +30 -0
  526. package/src/agents/reviewer/cli-reviewer/identity.md +44 -0
  527. package/src/agents/reviewer/cli-reviewer/metadata.yaml +12 -0
  528. package/src/agents/reviewer/cli-reviewer/output.md +414 -0
  529. package/src/agents/reviewer/cli-reviewer/playbook.md +218 -0
  530. package/src/agents/reviewer/infra-reviewer/critical-reminders.md +38 -0
  531. package/src/agents/reviewer/infra-reviewer/critical-requirements.md +38 -0
  532. package/src/agents/reviewer/infra-reviewer/identity.md +53 -0
  533. package/src/agents/reviewer/infra-reviewer/metadata.yaml +10 -0
  534. package/src/agents/reviewer/infra-reviewer/output.md +364 -0
  535. package/src/agents/reviewer/infra-reviewer/playbook.md +161 -0
  536. package/src/agents/reviewer/web-reviewer/critical-reminders.md +31 -0
  537. package/src/agents/reviewer/web-reviewer/critical-requirements.md +26 -0
  538. package/src/agents/reviewer/web-reviewer/identity.md +40 -0
  539. package/src/agents/reviewer/web-reviewer/metadata.yaml +12 -0
  540. package/src/agents/reviewer/web-reviewer/output.md +333 -0
  541. package/src/agents/reviewer/web-reviewer/playbook.md +156 -0
  542. package/src/agents/tester/api-tester/critical-reminders.md +41 -0
  543. package/src/agents/tester/api-tester/critical-requirements.md +41 -0
  544. package/src/agents/tester/api-tester/identity.md +47 -0
  545. package/src/agents/tester/api-tester/metadata.yaml +12 -0
  546. package/src/agents/tester/api-tester/output.md +284 -0
  547. package/src/agents/tester/api-tester/playbook.md +275 -0
  548. package/src/agents/tester/cli-tester/critical-reminders.md +36 -0
  549. package/src/agents/tester/cli-tester/critical-requirements.md +36 -0
  550. package/src/agents/tester/cli-tester/identity.md +43 -0
  551. package/src/agents/tester/cli-tester/metadata.yaml +12 -0
  552. package/src/agents/tester/cli-tester/output.md +313 -0
  553. package/src/agents/tester/cli-tester/playbook.md +221 -0
  554. package/src/agents/tester/web-tester/critical-reminders.md +31 -0
  555. package/src/agents/tester/web-tester/critical-requirements.md +28 -0
  556. package/src/agents/tester/web-tester/identity.md +41 -0
  557. package/src/agents/tester/web-tester/metadata.yaml +12 -0
  558. package/src/agents/tester/web-tester/output.md +321 -0
  559. package/src/agents/tester/web-tester/playbook.md +428 -0
  560. package/src/schemas/agent-frontmatter.schema.json +88 -0
  561. package/src/schemas/agent.schema.json +103 -0
  562. package/src/schemas/custom-metadata.schema.json +74 -0
  563. package/src/schemas/hooks.schema.json +47 -0
  564. package/src/schemas/marketplace.schema.json +119 -0
  565. package/src/schemas/metadata.schema.json +387 -0
  566. package/src/schemas/plugin.schema.json +127 -0
  567. package/src/schemas/project-config.schema.json +189 -0
  568. package/src/schemas/project-source-config.schema.json +96 -0
  569. package/src/schemas/skill-frontmatter.schema.json +42 -0
  570. package/src/schemas/stack.schema.json +191 -0
  571. package/src/schemas/stacks.schema.json +107 -0
  572. package/bin/run.js +0 -3
@@ -0,0 +1,368 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ Confirm
4
+ } from "../chunk-ES3NJZON.js";
5
+ import {
6
+ promptConfirm
7
+ } from "../chunk-C55DN7GE.js";
8
+ import {
9
+ ERROR_MESSAGES,
10
+ INFO_MESSAGES,
11
+ STATUS_MESSAGES,
12
+ SUCCESS_MESSAGES
13
+ } from "../chunk-GYG5SE2D.js";
14
+ import {
15
+ loadSource
16
+ } from "../chunk-Y4CXDA3I.js";
17
+ import {
18
+ collectScopedSkillDirs,
19
+ compareSkillsWithSource,
20
+ compileAgents,
21
+ discoverInstalledSkills,
22
+ findSkillMatch,
23
+ recompilePropagatedProjectAgents
24
+ } from "../chunk-4R6PGHQQ.js";
25
+ import "../chunk-3XFUQ6OL.js";
26
+ import "../chunk-YBVA7GPW.js";
27
+ import "../chunk-NGLQ5W7U.js";
28
+ import {
29
+ BaseCommand,
30
+ EXIT_CODES
31
+ } from "../chunk-7QIHKQL5.js";
32
+ import "../chunk-SYUOXSPU.js";
33
+ import "../chunk-P3PN5SVI.js";
34
+ import {
35
+ injectForkedFromMetadata,
36
+ loadProjectConfigFromDir,
37
+ normalizeProjectPath
38
+ } from "../chunk-TVHRMRD3.js";
39
+ import {
40
+ copy,
41
+ getErrorMessage
42
+ } from "../chunk-3LIU2ZEF.js";
43
+ import "../chunk-DG2NGZ7S.js";
44
+ import "../chunk-VEP23B5W.js";
45
+ import {
46
+ CLI_INVOKE_COMMAND,
47
+ LOCAL_SKILLS_PATH,
48
+ SOURCE_SRC_DIR
49
+ } from "../chunk-O5ASLZ2K.js";
50
+ import "../chunk-YU2VGX5R.js";
51
+ import {
52
+ init_esm_shims
53
+ } from "../chunk-P56WJ5FA.js";
54
+
55
+ // src/cli/commands/update.tsx
56
+ init_esm_shims();
57
+ import { Flags, Args } from "@oclif/core";
58
+ import { printTable } from "@oclif/table";
59
+ import os from "os";
60
+ import path from "path";
61
+ import { jsx } from "react/jsx-runtime";
62
+ var UpdateConfirm = ({ onConfirm, onCancel }) => {
63
+ return /* @__PURE__ */ jsx(
64
+ Confirm,
65
+ {
66
+ message: "Proceed with update?",
67
+ onConfirm,
68
+ onCancel,
69
+ defaultValue: false
70
+ }
71
+ );
72
+ };
73
+ var Update = class _Update extends BaseCommand {
74
+ static summary = "Update local skills from source";
75
+ static description = "Update local skills from the source repository. By default, checks all skills for updates. Specify a skill name to update only that skill.";
76
+ static args = {
77
+ skill: Args.string({
78
+ description: "Specific skill to update (optional)",
79
+ required: false
80
+ })
81
+ };
82
+ static flags = {
83
+ ...BaseCommand.baseFlags,
84
+ yes: Flags.boolean({
85
+ char: "y",
86
+ description: "Skip confirmation prompt",
87
+ default: false
88
+ })
89
+ };
90
+ static examples = [
91
+ "<%= config.bin %> <%= command.id %>",
92
+ "<%= config.bin %> <%= command.id %> my-skill",
93
+ "<%= config.bin %> <%= command.id %> --yes",
94
+ "<%= config.bin %> <%= command.id %> --source /path/to/marketplace"
95
+ ];
96
+ async run() {
97
+ const { args, flags } = await this.parse(_Update);
98
+ const projectDir = process.cwd();
99
+ try {
100
+ const context = await this.loadContext(flags, projectDir);
101
+ if (!context) return;
102
+ const outdatedSkills = this.resolveTargetSkills(args.skill, context);
103
+ if (!outdatedSkills) return;
104
+ this.printUpdateTable(outdatedSkills);
105
+ const confirmed = flags.yes || await this.confirmUpdate();
106
+ if (!confirmed) return;
107
+ this.log("");
108
+ const updateResult = await this.executeUpdates(outdatedSkills, context);
109
+ this.printUpdateResults(updateResult);
110
+ const recompiledAgents = await this.recompileAfterUpdate(updateResult, context);
111
+ await this.refreshRegisteredProjects(updateResult, context);
112
+ this.printCompletionSummary(updateResult, recompiledAgents);
113
+ } catch (error) {
114
+ const message = getErrorMessage(error);
115
+ this.error(`Update failed: ${message}`, { exit: EXIT_CODES.ERROR });
116
+ }
117
+ }
118
+ async loadContext(flags, projectDir) {
119
+ const homeDir = os.homedir();
120
+ const { hasProject, hasGlobal } = await collectScopedSkillDirs(projectDir);
121
+ if (!hasProject && !hasGlobal) {
122
+ this.warn(ERROR_MESSAGES.NO_LOCAL_SKILLS);
123
+ return null;
124
+ }
125
+ this.log(STATUS_MESSAGES.LOADING_SKILLS);
126
+ const { sourceResult } = await loadSource({
127
+ sourceFlag: flags.source,
128
+ projectDir
129
+ });
130
+ this.log(
131
+ `Loaded from ${sourceResult.isLocal ? "local" : "remote"}: ${sourceResult.sourcePath}`
132
+ );
133
+ const comparison = await compareSkillsWithSource(
134
+ projectDir,
135
+ sourceResult.sourcePath,
136
+ sourceResult.matrix
137
+ );
138
+ const skillBaseDir = new Map([
139
+ ...comparison.globalResults.map((r) => [r.id, homeDir]),
140
+ ...comparison.projectResults.map((r) => [r.id, projectDir])
141
+ ]);
142
+ return {
143
+ projectDir,
144
+ homeDir,
145
+ sourceResult,
146
+ allResults: comparison.merged,
147
+ skillBaseDir
148
+ };
149
+ }
150
+ resolveTargetSkills(skillArg, context) {
151
+ if (skillArg) {
152
+ const { match: foundSkill, similar } = findSkillMatch(skillArg, context.allResults);
153
+ if (!foundSkill) {
154
+ this.log("");
155
+ this.log(`Error: Skill "${skillArg}" not found.`);
156
+ this.log("");
157
+ if (similar.length > 0) {
158
+ this.log("Did you mean one of these?");
159
+ for (const name of similar) {
160
+ this.log(` - ${name}`);
161
+ }
162
+ this.log("");
163
+ }
164
+ this.log(`Run \`${CLI_INVOKE_COMMAND} search ${skillArg}\` to search available skills.`);
165
+ this.log("");
166
+ this.error(ERROR_MESSAGES.SKILL_NOT_FOUND, { exit: EXIT_CODES.ERROR });
167
+ }
168
+ if (foundSkill.status === "current") {
169
+ this.log("");
170
+ this.log(`Skill "${foundSkill.id}" is already up to date.`);
171
+ this.log("");
172
+ this.log(` Local hash: ${foundSkill.localHash}`);
173
+ this.log(` Source hash: ${foundSkill.sourceHash}`);
174
+ this.log("");
175
+ return null;
176
+ }
177
+ if (foundSkill.status === "local-only") {
178
+ this.log("");
179
+ this.log(`Skill "${foundSkill.id}" is a local-only skill (not forked from source).`);
180
+ this.log("Cannot update local-only skills.");
181
+ this.log("");
182
+ return null;
183
+ }
184
+ return [foundSkill];
185
+ }
186
+ const outdatedSkills = context.allResults.filter((r) => r.status === "outdated");
187
+ if (outdatedSkills.length === 0) {
188
+ this.log("");
189
+ this.logSuccess(SUCCESS_MESSAGES.ALL_SKILLS_UP_TO_DATE);
190
+ this.log("");
191
+ return null;
192
+ }
193
+ return outdatedSkills;
194
+ }
195
+ printUpdateTable(outdatedSkills) {
196
+ this.log("");
197
+ this.log("The following skills will be updated:");
198
+ this.log("");
199
+ printTable({
200
+ data: outdatedSkills.map((skill) => ({
201
+ skill: skill.id,
202
+ localHash: skill.localHash ?? "-",
203
+ sourceHash: skill.sourceHash ?? "-"
204
+ })),
205
+ columns: [
206
+ { key: "skill", name: "Skill" },
207
+ { key: "localHash", name: "Local Hash" },
208
+ { key: "sourceHash", name: "Source Hash" }
209
+ ],
210
+ headerOptions: { bold: true }
211
+ });
212
+ this.log("");
213
+ this.log(`${outdatedSkills.length} skill(s) will be updated.`);
214
+ this.log("");
215
+ }
216
+ async confirmUpdate() {
217
+ const outcome = await promptConfirm(({ onConfirm, onCancel }) => /* @__PURE__ */ jsx(UpdateConfirm, { onConfirm, onCancel }));
218
+ if (outcome === "cancelled") {
219
+ this.log("Update cancelled");
220
+ this.exit(EXIT_CODES.CANCELLED);
221
+ }
222
+ return true;
223
+ }
224
+ async executeUpdates(outdatedSkills, context) {
225
+ return updateLocalSkills({
226
+ skills: outdatedSkills,
227
+ sourceResult: context.sourceResult,
228
+ skillBaseDir: context.skillBaseDir,
229
+ onProgress: (skillId) => this.log(`Updating ${skillId}...`)
230
+ });
231
+ }
232
+ printUpdateResults(updateResult) {
233
+ for (const item of updateResult.updated) {
234
+ this.log(` Updated ${item.id}`);
235
+ }
236
+ for (const item of updateResult.failed) {
237
+ this.log(` Failed to update ${item.id}: ${item.error}`);
238
+ }
239
+ }
240
+ async recompileAfterUpdate(updateResult, context) {
241
+ if (updateResult.updated.length === 0) return [];
242
+ this.log("");
243
+ this.log(STATUS_MESSAGES.RECOMPILING_AGENTS);
244
+ try {
245
+ const { allSkills } = await discoverInstalledSkills(context.projectDir);
246
+ const recompileResult = await compileAgents({
247
+ projectDir: context.projectDir,
248
+ sourcePath: context.sourceResult.sourcePath,
249
+ skills: allSkills
250
+ });
251
+ const recompiledAgents = recompileResult.compiled;
252
+ if (recompiledAgents.length > 0) {
253
+ this.log("Agents recompiled");
254
+ for (const agent of recompiledAgents) {
255
+ this.log(` Recompiled: ${agent}`);
256
+ }
257
+ } else {
258
+ this.log(INFO_MESSAGES.NO_AGENTS_TO_RECOMPILE);
259
+ }
260
+ if (recompileResult.warnings.length > 0) {
261
+ for (const warning of recompileResult.warnings) {
262
+ this.warn(warning);
263
+ }
264
+ }
265
+ return recompiledAgents;
266
+ } catch (error) {
267
+ this.warn("Agent recompilation failed");
268
+ this.warn(`Could not recompile agents: ${getErrorMessage(error)}`);
269
+ return [];
270
+ }
271
+ }
272
+ /**
273
+ * Recompiles the agents of every OTHER registered project.
274
+ *
275
+ * `update` replaces the skill directories under `~/.claude/skills/` in place.
276
+ * Every registered project compiled its own `.claude/agents/*.md` from those
277
+ * same directories, so the moment the new content lands those agents are
278
+ * quoting guidance the source no longer contains — with nothing to signal it.
279
+ * This is the content twin of the config fan-out the gate performs for a global
280
+ * CONFIG change, and it reuses the same helper.
281
+ *
282
+ * It writes NO config pair — a skill's content changes nothing any config
283
+ * declares — so it deliberately does not go through config-gate.
284
+ *
285
+ * The cwd is excluded: `recompileAfterUpdate` has already compiled it. Failure
286
+ * is warned, never fatal — the skills were updated either way.
287
+ */
288
+ async refreshRegisteredProjects(updateResult, context) {
289
+ if (updateResult.updated.length === 0) return;
290
+ try {
291
+ const registered = await this.registeredProjectsToRefresh(context);
292
+ if (registered.length === 0) return;
293
+ const { recompiledCount, failedCount, warnings } = await recompilePropagatedProjectAgents(registered);
294
+ for (const warning of warnings) {
295
+ this.warn(warning);
296
+ }
297
+ const failureSuffix = failedCount > 0 ? ` (${failedCount} failed)` : "";
298
+ this.log(`Recompiled agents in ${recompiledCount} registered projects${failureSuffix}
299
+ `);
300
+ } catch (error) {
301
+ this.warn(
302
+ `Could not refresh registered projects \u2014 their compiled agents may still quote the pre-update content: ${getErrorMessage(error)}`
303
+ );
304
+ }
305
+ }
306
+ /**
307
+ * The registered project paths this run still owes a recompile: everything in
308
+ * the global config's `projects` registry except the directory the command ran
309
+ * in. Compared through `normalizeProjectPath`, the same rule the registrations
310
+ * were stored under, so a cwd reached via a symlink still matches its entry.
311
+ */
312
+ async registeredProjectsToRefresh(context) {
313
+ const loaded = await loadProjectConfigFromDir(context.homeDir);
314
+ const projects = loaded?.config.projects ?? [];
315
+ if (projects.length === 0) return [];
316
+ const current = normalizeProjectPath(context.projectDir);
317
+ return projects.filter((projectPath) => projectPath !== current);
318
+ }
319
+ printCompletionSummary(updateResult, recompiledAgents) {
320
+ this.log("");
321
+ if (updateResult.failed.length === 0) {
322
+ const agentMsg = recompiledAgents.length > 0 ? `, ${recompiledAgents.length} agent(s) recompiled` : "";
323
+ this.logSuccess(
324
+ `Update complete! ${updateResult.updated.length} skill(s) updated${agentMsg}.`
325
+ );
326
+ } else {
327
+ this.warn(
328
+ `Update finished with errors: ${updateResult.updated.length} updated, ${updateResult.failed.length} failed.`
329
+ );
330
+ }
331
+ this.log("");
332
+ if (updateResult.failed.length > 0) {
333
+ this.error("Some updates failed", { exit: EXIT_CODES.ERROR });
334
+ }
335
+ }
336
+ };
337
+ async function updateLocalSkills(options) {
338
+ const { skills, sourceResult, skillBaseDir, onProgress } = options;
339
+ const updated = [];
340
+ const failed = [];
341
+ for (const skill of skills) {
342
+ onProgress?.(skill.id);
343
+ if (!skill.sourcePath || !skill.sourceHash) {
344
+ failed.push({
345
+ id: skill.id,
346
+ newHash: null,
347
+ error: "No source path available"
348
+ });
349
+ continue;
350
+ }
351
+ const baseDir = skillBaseDir.get(skill.id) ?? process.cwd();
352
+ const localSkillsPath = path.join(baseDir, LOCAL_SKILLS_PATH);
353
+ const destPath = path.join(localSkillsPath, skill.dirName);
354
+ const srcPath = path.join(sourceResult.sourcePath, SOURCE_SRC_DIR, skill.sourcePath);
355
+ try {
356
+ await copy(srcPath, destPath);
357
+ await injectForkedFromMetadata(destPath, skill.id, skill.sourceHash);
358
+ updated.push({ id: skill.id, newHash: skill.sourceHash });
359
+ } catch (error) {
360
+ failed.push({ id: skill.id, newHash: null, error: getErrorMessage(error) });
361
+ }
362
+ }
363
+ return { updated, failed };
364
+ }
365
+ export {
366
+ Update as default
367
+ };
368
+ //# sourceMappingURL=update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/cli/commands/update.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { Flags, Args } from \"@oclif/core\";\nimport { printTable } from \"@oclif/table\";\nimport os from \"os\";\nimport path from \"path\";\n\nimport { BaseCommand } from \"../base-command.js\";\nimport { getErrorMessage } from \"../utils/errors.js\";\nimport { copy } from \"../utils/fs.js\";\nimport { EXIT_CODES } from \"../lib/exit-codes.js\";\nimport {\n loadSource,\n compareSkillsWithSource,\n compileAgents,\n collectScopedSkillDirs,\n findSkillMatch,\n discoverInstalledSkills,\n recompilePropagatedProjectAgents,\n} from \"../lib/operations/index.js\";\nimport { normalizeProjectPath } from \"../lib/config-gate/index.js\";\nimport { loadProjectConfigFromDir } from \"../lib/configuration/project-config.js\";\nimport { CLI_INVOKE_COMMAND, LOCAL_SKILLS_PATH, SOURCE_SRC_DIR } from \"../consts.js\";\nimport {\n ERROR_MESSAGES,\n SUCCESS_MESSAGES,\n STATUS_MESSAGES,\n INFO_MESSAGES,\n} from \"../utils/messages.js\";\nimport { Confirm } from \"../components/common/confirm.js\";\nimport { promptConfirm } from \"../components/common/prompt-confirm.js\";\nimport { injectForkedFromMetadata, type SkillComparisonResult } from \"../lib/skills/index.js\";\nimport type { SourceLoadResult } from \"../lib/loading/source-loader.js\";\nimport type { AgentName, SkillId } from \"../types/index.js\";\n\ntype UpdateConfirmProps = {\n onConfirm: () => void;\n onCancel: () => void;\n};\n\nconst UpdateConfirm: React.FC<UpdateConfirmProps> = ({ onConfirm, onCancel }) => {\n return (\n <Confirm\n message=\"Proceed with update?\"\n onConfirm={onConfirm}\n onCancel={onCancel}\n defaultValue={false}\n />\n );\n};\n\ntype UpdateContext = {\n projectDir: string;\n homeDir: string;\n sourceResult: SourceLoadResult;\n allResults: SkillComparisonResult[];\n skillBaseDir: Map<SkillId, string>;\n};\n\nexport default class Update extends BaseCommand {\n static summary = \"Update local skills from source\";\n\n static description =\n \"Update local skills from the source repository. By default, checks all skills for updates. Specify a skill name to update only that skill.\";\n\n static args = {\n skill: Args.string({\n description: \"Specific skill to update (optional)\",\n required: false,\n }),\n };\n\n static flags = {\n ...BaseCommand.baseFlags,\n yes: Flags.boolean({\n char: \"y\",\n description: \"Skip confirmation prompt\",\n default: false,\n }),\n };\n\n static examples = [\n \"<%= config.bin %> <%= command.id %>\",\n \"<%= config.bin %> <%= command.id %> my-skill\",\n \"<%= config.bin %> <%= command.id %> --yes\",\n \"<%= config.bin %> <%= command.id %> --source /path/to/marketplace\",\n ];\n\n async run(): Promise<void> {\n const { args, flags } = await this.parse(Update);\n const projectDir = process.cwd();\n\n try {\n const context = await this.loadContext(flags, projectDir);\n if (!context) return;\n\n const outdatedSkills = this.resolveTargetSkills(args.skill, context);\n if (!outdatedSkills) return;\n\n this.printUpdateTable(outdatedSkills);\n\n const confirmed = flags.yes || (await this.confirmUpdate());\n if (!confirmed) return;\n\n this.log(\"\");\n\n const updateResult = await this.executeUpdates(outdatedSkills, context);\n this.printUpdateResults(updateResult);\n\n const recompiledAgents = await this.recompileAfterUpdate(updateResult, context);\n await this.refreshRegisteredProjects(updateResult, context);\n\n this.printCompletionSummary(updateResult, recompiledAgents);\n } catch (error) {\n const message = getErrorMessage(error);\n this.error(`Update failed: ${message}`, { exit: EXIT_CODES.ERROR });\n }\n }\n\n private async loadContext(\n flags: { source?: string },\n projectDir: string,\n ): Promise<UpdateContext | null> {\n const homeDir = os.homedir();\n const { hasProject, hasGlobal } = await collectScopedSkillDirs(projectDir);\n\n if (!hasProject && !hasGlobal) {\n this.warn(ERROR_MESSAGES.NO_LOCAL_SKILLS);\n return null;\n }\n\n this.log(STATUS_MESSAGES.LOADING_SKILLS);\n\n const { sourceResult } = await loadSource({\n sourceFlag: flags.source,\n projectDir,\n });\n\n this.log(\n `Loaded from ${sourceResult.isLocal ? \"local\" : \"remote\"}: ${sourceResult.sourcePath}`,\n );\n\n const comparison = await compareSkillsWithSource(\n projectDir,\n sourceResult.sourcePath,\n sourceResult.matrix,\n );\n\n // Later entries overwrite earlier ones, so project wins on duplicate ids.\n const skillBaseDir = new Map<SkillId, string>([\n ...comparison.globalResults.map((r) => [r.id, homeDir] as const),\n ...comparison.projectResults.map((r) => [r.id, projectDir] as const),\n ]);\n\n return {\n projectDir,\n homeDir,\n sourceResult,\n allResults: comparison.merged,\n skillBaseDir,\n };\n }\n\n private resolveTargetSkills(\n skillArg: string | undefined,\n context: UpdateContext,\n ): SkillComparisonResult[] | null {\n if (skillArg) {\n const { match: foundSkill, similar } = findSkillMatch(skillArg, context.allResults);\n\n if (!foundSkill) {\n this.log(\"\");\n this.log(`Error: Skill \"${skillArg}\" not found.`);\n this.log(\"\");\n\n if (similar.length > 0) {\n this.log(\"Did you mean one of these?\");\n for (const name of similar) {\n this.log(` - ${name}`);\n }\n this.log(\"\");\n }\n\n this.log(`Run \\`${CLI_INVOKE_COMMAND} search ${skillArg}\\` to search available skills.`);\n this.log(\"\");\n this.error(ERROR_MESSAGES.SKILL_NOT_FOUND, { exit: EXIT_CODES.ERROR });\n }\n\n if (foundSkill.status === \"current\") {\n this.log(\"\");\n this.log(`Skill \"${foundSkill.id}\" is already up to date.`);\n this.log(\"\");\n this.log(` Local hash: ${foundSkill.localHash}`);\n this.log(` Source hash: ${foundSkill.sourceHash}`);\n this.log(\"\");\n return null;\n }\n\n if (foundSkill.status === \"local-only\") {\n this.log(\"\");\n this.log(`Skill \"${foundSkill.id}\" is a local-only skill (not forked from source).`);\n this.log(\"Cannot update local-only skills.\");\n this.log(\"\");\n return null;\n }\n\n return [foundSkill];\n }\n\n const outdatedSkills = context.allResults.filter((r) => r.status === \"outdated\");\n if (outdatedSkills.length === 0) {\n this.log(\"\");\n this.logSuccess(SUCCESS_MESSAGES.ALL_SKILLS_UP_TO_DATE);\n this.log(\"\");\n return null;\n }\n\n return outdatedSkills;\n }\n\n private printUpdateTable(outdatedSkills: SkillComparisonResult[]): void {\n this.log(\"\");\n this.log(\"The following skills will be updated:\");\n this.log(\"\");\n\n printTable({\n data: outdatedSkills.map((skill) => ({\n skill: skill.id,\n localHash: skill.localHash ?? \"-\",\n sourceHash: skill.sourceHash ?? \"-\",\n })),\n columns: [\n { key: \"skill\", name: \"Skill\" },\n { key: \"localHash\", name: \"Local Hash\" },\n { key: \"sourceHash\", name: \"Source Hash\" },\n ],\n headerOptions: { bold: true },\n });\n\n this.log(\"\");\n this.log(`${outdatedSkills.length} skill(s) will be updated.`);\n this.log(\"\");\n }\n\n private async confirmUpdate(): Promise<boolean> {\n const outcome = await promptConfirm(({ onConfirm, onCancel }) => (\n <UpdateConfirm onConfirm={onConfirm} onCancel={onCancel} />\n ));\n\n if (outcome === \"cancelled\") {\n this.log(\"Update cancelled\");\n this.exit(EXIT_CODES.CANCELLED);\n }\n\n return true;\n }\n\n private async executeUpdates(\n outdatedSkills: SkillComparisonResult[],\n context: UpdateContext,\n ): Promise<UpdateLocalSkillsResult> {\n return updateLocalSkills({\n skills: outdatedSkills,\n sourceResult: context.sourceResult,\n skillBaseDir: context.skillBaseDir,\n onProgress: (skillId) => this.log(`Updating ${skillId}...`),\n });\n }\n\n private printUpdateResults(updateResult: UpdateLocalSkillsResult): void {\n for (const item of updateResult.updated) {\n this.log(` Updated ${item.id}`);\n }\n for (const item of updateResult.failed) {\n this.log(` Failed to update ${item.id}: ${item.error}`);\n }\n }\n\n private async recompileAfterUpdate(\n updateResult: UpdateLocalSkillsResult,\n context: UpdateContext,\n ): Promise<AgentName[]> {\n if (updateResult.updated.length === 0) return [];\n\n this.log(\"\");\n this.log(STATUS_MESSAGES.RECOMPILING_AGENTS);\n\n try {\n const { allSkills } = await discoverInstalledSkills(context.projectDir);\n const recompileResult = await compileAgents({\n projectDir: context.projectDir,\n sourcePath: context.sourceResult.sourcePath,\n skills: allSkills,\n });\n\n const recompiledAgents = recompileResult.compiled;\n\n if (recompiledAgents.length > 0) {\n this.log(\"Agents recompiled\");\n for (const agent of recompiledAgents) {\n this.log(` Recompiled: ${agent}`);\n }\n } else {\n this.log(INFO_MESSAGES.NO_AGENTS_TO_RECOMPILE);\n }\n\n if (recompileResult.warnings.length > 0) {\n for (const warning of recompileResult.warnings) {\n this.warn(warning);\n }\n }\n\n return recompiledAgents;\n } catch (error) {\n this.warn(\"Agent recompilation failed\");\n this.warn(`Could not recompile agents: ${getErrorMessage(error)}`);\n return [];\n }\n }\n\n /**\n * Recompiles the agents of every OTHER registered project.\n *\n * `update` replaces the skill directories under `~/.claude/skills/` in place.\n * Every registered project compiled its own `.claude/agents/*.md` from those\n * same directories, so the moment the new content lands those agents are\n * quoting guidance the source no longer contains — with nothing to signal it.\n * This is the content twin of the config fan-out the gate performs for a global\n * CONFIG change, and it reuses the same helper.\n *\n * It writes NO config pair — a skill's content changes nothing any config\n * declares — so it deliberately does not go through config-gate.\n *\n * The cwd is excluded: `recompileAfterUpdate` has already compiled it. Failure\n * is warned, never fatal — the skills were updated either way.\n */\n private async refreshRegisteredProjects(\n updateResult: UpdateLocalSkillsResult,\n context: UpdateContext,\n ): Promise<void> {\n if (updateResult.updated.length === 0) return;\n\n try {\n const registered = await this.registeredProjectsToRefresh(context);\n if (registered.length === 0) return;\n\n const { recompiledCount, failedCount, warnings } =\n await recompilePropagatedProjectAgents(registered);\n\n for (const warning of warnings) {\n this.warn(warning);\n }\n\n const failureSuffix = failedCount > 0 ? ` (${failedCount} failed)` : \"\";\n this.log(`Recompiled agents in ${recompiledCount} registered projects${failureSuffix}\\n`);\n } catch (error) {\n this.warn(\n `Could not refresh registered projects — their compiled agents may still quote the pre-update content: ${getErrorMessage(error)}`,\n );\n }\n }\n\n /**\n * The registered project paths this run still owes a recompile: everything in\n * the global config's `projects` registry except the directory the command ran\n * in. Compared through `normalizeProjectPath`, the same rule the registrations\n * were stored under, so a cwd reached via a symlink still matches its entry.\n */\n private async registeredProjectsToRefresh(context: UpdateContext): Promise<string[]> {\n const loaded = await loadProjectConfigFromDir(context.homeDir);\n const projects = loaded?.config.projects ?? [];\n if (projects.length === 0) return [];\n\n const current = normalizeProjectPath(context.projectDir);\n return projects.filter((projectPath) => projectPath !== current);\n }\n\n private printCompletionSummary(\n updateResult: UpdateLocalSkillsResult,\n recompiledAgents: AgentName[],\n ): void {\n this.log(\"\");\n if (updateResult.failed.length === 0) {\n const agentMsg =\n recompiledAgents.length > 0 ? `, ${recompiledAgents.length} agent(s) recompiled` : \"\";\n this.logSuccess(\n `Update complete! ${updateResult.updated.length} skill(s) updated${agentMsg}.`,\n );\n } else {\n this.warn(\n `Update finished with errors: ${updateResult.updated.length} updated, ${updateResult.failed.length} failed.`,\n );\n }\n this.log(\"\");\n\n if (updateResult.failed.length > 0) {\n this.error(\"Some updates failed\", { exit: EXIT_CODES.ERROR });\n }\n }\n}\n\ntype SkillUpdateResult = {\n id: SkillId;\n newHash: string | null;\n error?: string;\n};\n\ntype UpdateLocalSkillsResult = {\n updated: SkillUpdateResult[];\n failed: SkillUpdateResult[];\n};\n\ntype UpdateLocalSkillsOptions = {\n skills: SkillComparisonResult[];\n sourceResult: SourceLoadResult;\n skillBaseDir: Map<SkillId, string>;\n /** Called before each skill update starts. Use for progress logging. */\n onProgress?: (skillId: string) => void;\n};\n\n/**\n * Updates local skills by copying from source and injecting metadata.\n *\n * For each outdated skill, copies the source version to the local skills\n * directory and injects forked-from metadata for change tracking.\n */\nasync function updateLocalSkills(\n options: UpdateLocalSkillsOptions,\n): Promise<UpdateLocalSkillsResult> {\n const { skills, sourceResult, skillBaseDir, onProgress } = options;\n const updated: SkillUpdateResult[] = [];\n const failed: SkillUpdateResult[] = [];\n\n for (const skill of skills) {\n onProgress?.(skill.id);\n if (!skill.sourcePath || !skill.sourceHash) {\n failed.push({\n id: skill.id,\n newHash: null,\n error: \"No source path available\",\n });\n continue;\n }\n\n const baseDir = skillBaseDir.get(skill.id) ?? process.cwd();\n const localSkillsPath = path.join(baseDir, LOCAL_SKILLS_PATH);\n const destPath = path.join(localSkillsPath, skill.dirName);\n const srcPath = path.join(sourceResult.sourcePath, SOURCE_SRC_DIR, skill.sourcePath);\n\n try {\n await copy(srcPath, destPath);\n await injectForkedFromMetadata(destPath, skill.id, skill.sourceHash);\n updated.push({ id: skill.id, newHash: skill.sourceHash });\n } catch (error) {\n failed.push({ id: skill.id, newHash: null, error: getErrorMessage(error) });\n }\n }\n\n return { updated, failed };\n}\n"],"mappings":"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","names":[]}