ccjk 12.0.7 → 12.0.8

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 (299) hide show
  1. package/package.json +1 -1
  2. package/dist/chunks/agent-teams.mjs +0 -136
  3. package/dist/chunks/agent.mjs +0 -1439
  4. package/dist/chunks/agents.mjs +0 -3778
  5. package/dist/chunks/api-cli.mjs +0 -132
  6. package/dist/chunks/api-providers.mjs +0 -129
  7. package/dist/chunks/api.mjs +0 -112
  8. package/dist/chunks/auto-bootstrap.mjs +0 -358
  9. package/dist/chunks/auto-init.mjs +0 -7584
  10. package/dist/chunks/auto-updater.mjs +0 -410
  11. package/dist/chunks/banner.mjs +0 -188
  12. package/dist/chunks/bash.mjs +0 -187
  13. package/dist/chunks/boost.mjs +0 -397
  14. package/dist/chunks/ccjk-agents.mjs +0 -414
  15. package/dist/chunks/ccjk-all.mjs +0 -1028
  16. package/dist/chunks/ccjk-config.mjs +0 -261
  17. package/dist/chunks/ccjk-hooks.mjs +0 -1074
  18. package/dist/chunks/ccjk-mcp.mjs +0 -761
  19. package/dist/chunks/ccjk-setup.mjs +0 -763
  20. package/dist/chunks/ccjk-skills.mjs +0 -514
  21. package/dist/chunks/ccr.mjs +0 -98
  22. package/dist/chunks/ccu.mjs +0 -40
  23. package/dist/chunks/check-updates.mjs +0 -108
  24. package/dist/chunks/claude-code-config-manager.mjs +0 -750
  25. package/dist/chunks/claude-code-incremental-manager.mjs +0 -623
  26. package/dist/chunks/claude-config.mjs +0 -236
  27. package/dist/chunks/claude-wrapper.mjs +0 -85
  28. package/dist/chunks/cleanup-migration.mjs +0 -20
  29. package/dist/chunks/cli-hook.mjs +0 -2285
  30. package/dist/chunks/cloud-sync.mjs +0 -29
  31. package/dist/chunks/codex-config-switch.mjs +0 -451
  32. package/dist/chunks/codex-provider-manager.mjs +0 -236
  33. package/dist/chunks/codex-uninstaller.mjs +0 -404
  34. package/dist/chunks/codex.mjs +0 -2077
  35. package/dist/chunks/commands.mjs +0 -108
  36. package/dist/chunks/commands2.mjs +0 -413
  37. package/dist/chunks/commit.mjs +0 -138
  38. package/dist/chunks/completion.mjs +0 -515
  39. package/dist/chunks/config-consolidator.mjs +0 -172
  40. package/dist/chunks/config-switch.mjs +0 -317
  41. package/dist/chunks/config.mjs +0 -379
  42. package/dist/chunks/config2.mjs +0 -477
  43. package/dist/chunks/config3.mjs +0 -470
  44. package/dist/chunks/constants.mjs +0 -133
  45. package/dist/chunks/context-loader.mjs +0 -343
  46. package/dist/chunks/context.mjs +0 -372
  47. package/dist/chunks/convoy-manager.mjs +0 -880
  48. package/dist/chunks/dashboard.mjs +0 -476
  49. package/dist/chunks/doctor.mjs +0 -964
  50. package/dist/chunks/evolution.mjs +0 -382
  51. package/dist/chunks/features.mjs +0 -698
  52. package/dist/chunks/fish.mjs +0 -181
  53. package/dist/chunks/fs-operations.mjs +0 -192
  54. package/dist/chunks/health-alerts.mjs +0 -304
  55. package/dist/chunks/health-check.mjs +0 -532
  56. package/dist/chunks/help.mjs +0 -340
  57. package/dist/chunks/hook-installer.mjs +0 -45
  58. package/dist/chunks/index.mjs +0 -24
  59. package/dist/chunks/index10.mjs +0 -1171
  60. package/dist/chunks/index11.mjs +0 -1008
  61. package/dist/chunks/index12.mjs +0 -193
  62. package/dist/chunks/index13.mjs +0 -218
  63. package/dist/chunks/index14.mjs +0 -663
  64. package/dist/chunks/index2.mjs +0 -19
  65. package/dist/chunks/index3.mjs +0 -19092
  66. package/dist/chunks/index4.mjs +0 -8
  67. package/dist/chunks/index5.mjs +0 -7600
  68. package/dist/chunks/index6.mjs +0 -171
  69. package/dist/chunks/index7.mjs +0 -3583
  70. package/dist/chunks/index8.mjs +0 -19
  71. package/dist/chunks/index9.mjs +0 -616
  72. package/dist/chunks/init.mjs +0 -1606
  73. package/dist/chunks/installer.mjs +0 -690
  74. package/dist/chunks/installer2.mjs +0 -179
  75. package/dist/chunks/interview.mjs +0 -2927
  76. package/dist/chunks/json-config.mjs +0 -60
  77. package/dist/chunks/linux.mjs +0 -3863
  78. package/dist/chunks/macos.mjs +0 -69
  79. package/dist/chunks/main.mjs +0 -635
  80. package/dist/chunks/manager.mjs +0 -1048
  81. package/dist/chunks/marketplace.mjs +0 -949
  82. package/dist/chunks/mcp-cli.mjs +0 -204
  83. package/dist/chunks/mcp-performance.mjs +0 -187
  84. package/dist/chunks/mcp.mjs +0 -1231
  85. package/dist/chunks/menu.mjs +0 -652
  86. package/dist/chunks/metrics-display.mjs +0 -153
  87. package/dist/chunks/migrator.mjs +0 -178
  88. package/dist/chunks/monitor.mjs +0 -1856
  89. package/dist/chunks/notification.mjs +0 -1864
  90. package/dist/chunks/onboarding.mjs +0 -385
  91. package/dist/chunks/package.mjs +0 -3
  92. package/dist/chunks/paradigm.mjs +0 -74
  93. package/dist/chunks/permission-manager.mjs +0 -132
  94. package/dist/chunks/permissions.mjs +0 -265
  95. package/dist/chunks/persistence-manager.mjs +0 -794
  96. package/dist/chunks/persistence.mjs +0 -667
  97. package/dist/chunks/platform.mjs +0 -391
  98. package/dist/chunks/plugin.mjs +0 -1936
  99. package/dist/chunks/powershell.mjs +0 -213
  100. package/dist/chunks/prompts.mjs +0 -241
  101. package/dist/chunks/providers.mjs +0 -260
  102. package/dist/chunks/quick-actions.mjs +0 -320
  103. package/dist/chunks/quick-provider.mjs +0 -682
  104. package/dist/chunks/quick-setup.mjs +0 -412
  105. package/dist/chunks/remote.mjs +0 -497
  106. package/dist/chunks/session.mjs +0 -878
  107. package/dist/chunks/sessions.mjs +0 -106
  108. package/dist/chunks/silent-updater.mjs +0 -396
  109. package/dist/chunks/simple-config.mjs +0 -98
  110. package/dist/chunks/skill.mjs +0 -117
  111. package/dist/chunks/skill2.mjs +0 -9003
  112. package/dist/chunks/skills-sync.mjs +0 -6460
  113. package/dist/chunks/skills.mjs +0 -567
  114. package/dist/chunks/slash-commands.mjs +0 -207
  115. package/dist/chunks/smart-defaults.mjs +0 -412
  116. package/dist/chunks/smart-guide.mjs +0 -194
  117. package/dist/chunks/startup.mjs +0 -487
  118. package/dist/chunks/stats.mjs +0 -410
  119. package/dist/chunks/status.mjs +0 -289
  120. package/dist/chunks/team.mjs +0 -63
  121. package/dist/chunks/thinking.mjs +0 -626
  122. package/dist/chunks/trace.mjs +0 -57
  123. package/dist/chunks/uninstall.mjs +0 -849
  124. package/dist/chunks/update.mjs +0 -167
  125. package/dist/chunks/upgrade-manager.mjs +0 -204
  126. package/dist/chunks/version-checker.mjs +0 -881
  127. package/dist/chunks/vim.mjs +0 -903
  128. package/dist/chunks/windows.mjs +0 -14
  129. package/dist/chunks/workflows.mjs +0 -633
  130. package/dist/chunks/wsl.mjs +0 -129
  131. package/dist/chunks/zero-config.mjs +0 -374
  132. package/dist/chunks/zsh.mjs +0 -182
  133. package/dist/cli.d.mts +0 -1
  134. package/dist/cli.d.ts +0 -1
  135. package/dist/cli.mjs +0 -2199
  136. package/dist/i18n/locales/en/agent-teams.json +0 -18
  137. package/dist/i18n/locales/en/agentBrowser.json +0 -79
  138. package/dist/i18n/locales/en/agents.json +0 -135
  139. package/dist/i18n/locales/en/api.json +0 -63
  140. package/dist/i18n/locales/en/ccjk-agents.json +0 -33
  141. package/dist/i18n/locales/en/ccjk-all.json +0 -23
  142. package/dist/i18n/locales/en/ccjk-skills.json +0 -22
  143. package/dist/i18n/locales/en/ccjk.json +0 -276
  144. package/dist/i18n/locales/en/ccr.json +0 -65
  145. package/dist/i18n/locales/en/claude-md.json +0 -73
  146. package/dist/i18n/locales/en/cli.json +0 -152
  147. package/dist/i18n/locales/en/cloud-setup.json +0 -31
  148. package/dist/i18n/locales/en/cloud-sync.json +0 -147
  149. package/dist/i18n/locales/en/cloud.json +0 -40
  150. package/dist/i18n/locales/en/cloudPlugins.json +0 -118
  151. package/dist/i18n/locales/en/codex.json +0 -127
  152. package/dist/i18n/locales/en/cometix.json +0 -29
  153. package/dist/i18n/locales/en/common.json +0 -68
  154. package/dist/i18n/locales/en/config.json +0 -108
  155. package/dist/i18n/locales/en/configuration.json +0 -226
  156. package/dist/i18n/locales/en/context.json +0 -85
  157. package/dist/i18n/locales/en/dashboard.json +0 -78
  158. package/dist/i18n/locales/en/errors.json +0 -26
  159. package/dist/i18n/locales/en/evolution.json +0 -54
  160. package/dist/i18n/locales/en/hooks.json +0 -74
  161. package/dist/i18n/locales/en/hooksSync.json +0 -133
  162. package/dist/i18n/locales/en/installation.json +0 -83
  163. package/dist/i18n/locales/en/interview.json +0 -104
  164. package/dist/i18n/locales/en/language.json +0 -19
  165. package/dist/i18n/locales/en/lsp.json +0 -78
  166. package/dist/i18n/locales/en/marketplace.json +0 -116
  167. package/dist/i18n/locales/en/mcp.json +0 -178
  168. package/dist/i18n/locales/en/memory.json +0 -92
  169. package/dist/i18n/locales/en/menu.json +0 -143
  170. package/dist/i18n/locales/en/multi-config.json +0 -79
  171. package/dist/i18n/locales/en/notification.json +0 -307
  172. package/dist/i18n/locales/en/permissions.json +0 -95
  173. package/dist/i18n/locales/en/persistence.json +0 -127
  174. package/dist/i18n/locales/en/plugins.json +0 -146
  175. package/dist/i18n/locales/en/quick-actions.json +0 -78
  176. package/dist/i18n/locales/en/registry.json +0 -54
  177. package/dist/i18n/locales/en/remote.json +0 -93
  178. package/dist/i18n/locales/en/sandbox.json +0 -44
  179. package/dist/i18n/locales/en/setup.json +0 -44
  180. package/dist/i18n/locales/en/shencha.json +0 -14
  181. package/dist/i18n/locales/en/skills.json +0 -100
  182. package/dist/i18n/locales/en/skillsSync.json +0 -74
  183. package/dist/i18n/locales/en/smartGuide.json +0 -49
  184. package/dist/i18n/locales/en/stats.json +0 -20
  185. package/dist/i18n/locales/en/subagent.json +0 -69
  186. package/dist/i18n/locales/en/superpowers.json +0 -117
  187. package/dist/i18n/locales/en/team.json +0 -7
  188. package/dist/i18n/locales/en/thinking.json +0 -65
  189. package/dist/i18n/locales/en/tools.json +0 -42
  190. package/dist/i18n/locales/en/uninstall.json +0 -56
  191. package/dist/i18n/locales/en/updater.json +0 -29
  192. package/dist/i18n/locales/en/vim.json +0 -169
  193. package/dist/i18n/locales/en/workflow.json +0 -55
  194. package/dist/i18n/locales/en/workspace.json +0 -108
  195. package/dist/i18n/locales/zh-CN/agent-teams.json +0 -18
  196. package/dist/i18n/locales/zh-CN/agentBrowser.json +0 -79
  197. package/dist/i18n/locales/zh-CN/agents.json +0 -135
  198. package/dist/i18n/locales/zh-CN/api.json +0 -63
  199. package/dist/i18n/locales/zh-CN/ccjk-agents.json +0 -33
  200. package/dist/i18n/locales/zh-CN/ccjk-all.json +0 -23
  201. package/dist/i18n/locales/zh-CN/ccjk-skills.json +0 -22
  202. package/dist/i18n/locales/zh-CN/ccjk.json +0 -276
  203. package/dist/i18n/locales/zh-CN/ccr.json +0 -65
  204. package/dist/i18n/locales/zh-CN/claude-md.json +0 -73
  205. package/dist/i18n/locales/zh-CN/cli.json +0 -152
  206. package/dist/i18n/locales/zh-CN/cloud-setup.json +0 -31
  207. package/dist/i18n/locales/zh-CN/cloud-sync.json +0 -147
  208. package/dist/i18n/locales/zh-CN/cloud.json +0 -40
  209. package/dist/i18n/locales/zh-CN/cloudPlugins.json +0 -118
  210. package/dist/i18n/locales/zh-CN/codex.json +0 -127
  211. package/dist/i18n/locales/zh-CN/cometix.json +0 -29
  212. package/dist/i18n/locales/zh-CN/common.json +0 -68
  213. package/dist/i18n/locales/zh-CN/config.json +0 -108
  214. package/dist/i18n/locales/zh-CN/configuration.json +0 -224
  215. package/dist/i18n/locales/zh-CN/context.json +0 -85
  216. package/dist/i18n/locales/zh-CN/dashboard.json +0 -78
  217. package/dist/i18n/locales/zh-CN/errors.json +0 -26
  218. package/dist/i18n/locales/zh-CN/evolution.json +0 -54
  219. package/dist/i18n/locales/zh-CN/hooks.json +0 -74
  220. package/dist/i18n/locales/zh-CN/hooksSync.json +0 -133
  221. package/dist/i18n/locales/zh-CN/installation.json +0 -83
  222. package/dist/i18n/locales/zh-CN/interview.json +0 -104
  223. package/dist/i18n/locales/zh-CN/language.json +0 -19
  224. package/dist/i18n/locales/zh-CN/lsp.json +0 -78
  225. package/dist/i18n/locales/zh-CN/marketplace.json +0 -116
  226. package/dist/i18n/locales/zh-CN/mcp.json +0 -178
  227. package/dist/i18n/locales/zh-CN/memory.json +0 -92
  228. package/dist/i18n/locales/zh-CN/menu.json +0 -143
  229. package/dist/i18n/locales/zh-CN/multi-config.json +0 -79
  230. package/dist/i18n/locales/zh-CN/notification.json +0 -307
  231. package/dist/i18n/locales/zh-CN/permissions.json +0 -95
  232. package/dist/i18n/locales/zh-CN/persistence.json +0 -127
  233. package/dist/i18n/locales/zh-CN/plugins.json +0 -146
  234. package/dist/i18n/locales/zh-CN/quick-actions.json +0 -78
  235. package/dist/i18n/locales/zh-CN/registry.json +0 -54
  236. package/dist/i18n/locales/zh-CN/remote.json +0 -93
  237. package/dist/i18n/locales/zh-CN/sandbox.json +0 -44
  238. package/dist/i18n/locales/zh-CN/setup.json +0 -44
  239. package/dist/i18n/locales/zh-CN/shencha.json +0 -14
  240. package/dist/i18n/locales/zh-CN/skills.json +0 -100
  241. package/dist/i18n/locales/zh-CN/skillsSync.json +0 -74
  242. package/dist/i18n/locales/zh-CN/smartGuide.json +0 -49
  243. package/dist/i18n/locales/zh-CN/stats.json +0 -20
  244. package/dist/i18n/locales/zh-CN/subagent.json +0 -69
  245. package/dist/i18n/locales/zh-CN/superpowers.json +0 -117
  246. package/dist/i18n/locales/zh-CN/team.json +0 -7
  247. package/dist/i18n/locales/zh-CN/thinking.json +0 -65
  248. package/dist/i18n/locales/zh-CN/tools.json +0 -42
  249. package/dist/i18n/locales/zh-CN/uninstall.json +0 -56
  250. package/dist/i18n/locales/zh-CN/updater.json +0 -29
  251. package/dist/i18n/locales/zh-CN/vim.json +0 -169
  252. package/dist/i18n/locales/zh-CN/workflow.json +0 -55
  253. package/dist/i18n/locales/zh-CN/workspace.json +0 -108
  254. package/dist/index.d.mts +0 -5295
  255. package/dist/index.d.ts +0 -5295
  256. package/dist/index.mjs +0 -4941
  257. package/dist/shared/ccjk.B364Fu0N.mjs +0 -1819
  258. package/dist/shared/ccjk.BAGoDD49.mjs +0 -36
  259. package/dist/shared/ccjk.BBtCGd_g.mjs +0 -899
  260. package/dist/shared/ccjk.BFQ7yr5S.mjs +0 -16
  261. package/dist/shared/ccjk.BFxsJM0k.mjs +0 -599
  262. package/dist/shared/ccjk.BIxuVL3_.mjs +0 -25
  263. package/dist/shared/ccjk.BRZ9ww8S.mjs +0 -142
  264. package/dist/shared/ccjk.BoApaI4j.mjs +0 -28
  265. package/dist/shared/ccjk.BrPUmTqm.mjs +0 -266
  266. package/dist/shared/ccjk.BtB1e5jm.mjs +0 -171
  267. package/dist/shared/ccjk.BwfbSKN2.mjs +0 -1051
  268. package/dist/shared/ccjk.BxSmJ8B7.mjs +0 -243
  269. package/dist/shared/ccjk.Bx_rmYfN.mjs +0 -69
  270. package/dist/shared/ccjk.C2jHOZVP.mjs +0 -52
  271. package/dist/shared/ccjk.CL4Yat0G.mjs +0 -303
  272. package/dist/shared/ccjk.COweQ1RR.mjs +0 -5
  273. package/dist/shared/ccjk.CePkJq2S.mjs +0 -223
  274. package/dist/shared/ccjk.CfKKcvWy.mjs +0 -126
  275. package/dist/shared/ccjk.Cjgrln_h.mjs +0 -297
  276. package/dist/shared/ccjk.Cjj8SVrn.mjs +0 -54
  277. package/dist/shared/ccjk.CxpGa6MC.mjs +0 -2724
  278. package/dist/shared/ccjk.D5MFQT7w.mjs +0 -400
  279. package/dist/shared/ccjk.D6ycHbak.mjs +0 -270
  280. package/dist/shared/ccjk.D8ZLYSZZ.mjs +0 -299
  281. package/dist/shared/ccjk.DG_o24cZ.mjs +0 -88
  282. package/dist/shared/ccjk.DLLw-h4Y.mjs +0 -460
  283. package/dist/shared/ccjk.DOwtZMk8.mjs +0 -4019
  284. package/dist/shared/ccjk.DS7UESmF.mjs +0 -2451
  285. package/dist/shared/ccjk.DTdjs-qK.mjs +0 -1447
  286. package/dist/shared/ccjk.DXRAZcix.mjs +0 -66
  287. package/dist/shared/ccjk.DsYaCCx4.mjs +0 -317
  288. package/dist/shared/ccjk.J8YiPsOw.mjs +0 -259
  289. package/dist/shared/ccjk.KfSWcGlE.mjs +0 -38
  290. package/dist/shared/ccjk.RyizuzOI.mjs +0 -21
  291. package/dist/shared/ccjk.SPoXMvZD.mjs +0 -1242
  292. package/dist/shared/ccjk.T_cX87dY.mjs +0 -15
  293. package/dist/shared/ccjk.UIvifqNE.mjs +0 -1486
  294. package/dist/shared/ccjk._dESH4Rk.mjs +0 -111
  295. package/dist/shared/ccjk.bQ7Dh1g4.mjs +0 -249
  296. package/dist/shared/ccjk.c-ETfBZ_.mjs +0 -617
  297. package/dist/shared/ccjk.gDEDGD_t.mjs +0 -38
  298. package/dist/shared/ccjk.hoqrwWdN.mjs +0 -333
  299. package/dist/shared/ccjk.waa2ikKJ.mjs +0 -351
@@ -1,1048 +0,0 @@
1
- import { existsSync, unlinkSync, mkdirSync, readdirSync, readFileSync } from 'node:fs';
2
- import 'node:os';
3
- import { CCJK_SKILLS_DIR } from './constants.mjs';
4
- import { browserSkill } from './skill.mjs';
5
- import { writeFileAtomic } from './fs-operations.mjs';
6
- import { j as join } from '../shared/ccjk.bQ7Dh1g4.mjs';
7
- import './index5.mjs';
8
- import 'node:process';
9
- import 'node:url';
10
- import 'node:crypto';
11
- import 'node:fs/promises';
12
-
13
- const cloudSyncSkill = {
14
- id: "cloud-sync",
15
- name: {
16
- "en": "Cloud Sync",
17
- "zh-CN": "\u4E91\u540C\u6B65\u7BA1\u7406"
18
- },
19
- description: {
20
- "en": "Cross-device synchronization for configurations, skills, and workflows",
21
- "zh-CN": "\u8DE8\u8BBE\u5907\u540C\u6B65\u914D\u7F6E\u3001\u6280\u80FD\u548C\u5DE5\u4F5C\u6D41"
22
- },
23
- category: "devops",
24
- triggers: ["/sync", "/cloud", "/backup", "/restore"],
25
- enabled: true,
26
- version: "1.0.0",
27
- author: "CCJK Team",
28
- tags: ["cloud", "sync", "backup", "restore", "configuration"],
29
- template: `# Cloud Sync Management
30
-
31
- ## Overview
32
-
33
- Cloud Sync provides seamless cross-device synchronization for your CCJK environment.
34
- Keep your configurations, skills, and workflows in sync across all your development machines.
35
-
36
- ## Features
37
-
38
- ### Configuration Sync
39
- - Synchronize CCJK settings across devices
40
- - Preserve API configurations securely
41
- - Sync MCP service configurations
42
-
43
- ### Skills Sync
44
- - Share custom skills between machines
45
- - Version control for skill updates
46
- - Conflict resolution for concurrent edits
47
-
48
- ### Workflow Sync
49
- - Sync workflow states and progress
50
- - Share workflow templates
51
- - Collaborative workflow management
52
-
53
- ### Conflict Resolution
54
- - Intelligent merge for non-conflicting changes
55
- - Manual resolution UI for conflicts
56
- - Version history for rollback
57
-
58
- ## Commands
59
-
60
- ### Sync Status
61
- \`\`\`bash
62
- /sync status
63
- \`\`\`
64
- View current synchronization status, pending changes, and last sync time.
65
-
66
- ### Push Changes
67
- \`\`\`bash
68
- /sync push # Push all pending changes
69
- /sync push --config # Push configuration only
70
- /sync push --skills # Push skills only
71
- /sync push --workflows # Push workflows only
72
- \`\`\`
73
-
74
- ### Pull Changes
75
- \`\`\`bash
76
- /sync pull # Pull all remote changes
77
- /sync pull --force # Force pull, overwrite local
78
- /sync pull --merge # Merge with local changes
79
- \`\`\`
80
-
81
- ### Configure Cloud Storage
82
- \`\`\`bash
83
- /sync config # Interactive configuration
84
- /sync config github # Configure GitHub Gist
85
- /sync config webdav # Configure WebDAV
86
- /sync config local # Configure local folder sync
87
- \`\`\`
88
-
89
- ### Backup Management
90
- \`\`\`bash
91
- /backup create # Create full backup
92
- /backup create --name "v1.0" # Create named backup
93
- /backup list # List all backups
94
- /backup restore <id> # Restore from backup
95
- /backup delete <id> # Delete a backup
96
- \`\`\`
97
-
98
- ### Conflict Management
99
- \`\`\`bash
100
- /sync conflicts # List all conflicts
101
- /sync resolve <id> --local # Keep local version
102
- /sync resolve <id> --remote # Keep remote version
103
- /sync resolve <id> --merge # Manual merge
104
- \`\`\`
105
-
106
- ## Supported Cloud Storage
107
-
108
- ### GitHub Gist (Recommended)
109
- - Free and reliable
110
- - Version history built-in
111
- - Easy to set up with personal access token
112
-
113
- \`\`\`bash
114
- /sync config github
115
- # Enter your GitHub personal access token
116
- # Token needs 'gist' scope
117
- \`\`\`
118
-
119
- ### WebDAV
120
- Compatible with:
121
- - Nutstore (\u575A\u679C\u4E91)
122
- - Nextcloud
123
- - ownCloud
124
- - Any WebDAV server
125
-
126
- \`\`\`bash
127
- /sync config webdav
128
- # Enter WebDAV URL, username, and password
129
- \`\`\`
130
-
131
- ### Local Folder
132
- For manual sync via Dropbox, OneDrive, etc.
133
-
134
- \`\`\`bash
135
- /sync config local
136
- # Enter path to sync folder
137
- \`\`\`
138
-
139
- ## Usage Examples
140
-
141
- ### First-Time Setup
142
- \`\`\`bash
143
- # 1. Configure cloud storage
144
- /sync config github
145
-
146
- # 2. Push initial configuration
147
- /sync push --all
148
-
149
- # 3. Verify sync status
150
- /sync status
151
- \`\`\`
152
-
153
- ### Daily Workflow
154
- \`\`\`bash
155
- # Start of day: pull latest changes
156
- /sync pull
157
-
158
- # End of day: push your changes
159
- /sync push
160
- \`\`\`
161
-
162
- ### Handling Conflicts
163
- \`\`\`bash
164
- # Check for conflicts after pull
165
- /sync conflicts
166
-
167
- # Review and resolve each conflict
168
- /sync resolve skill-123 --merge
169
- \`\`\`
170
-
171
- ### Backup Before Major Changes
172
- \`\`\`bash
173
- # Create backup before risky operations
174
- /backup create --name "before-upgrade"
175
-
176
- # If something goes wrong
177
- /backup restore before-upgrade
178
- \`\`\`
179
-
180
- ## Security
181
-
182
- ### Sensitive Data Handling
183
- - API keys are encrypted before sync
184
- - OAuth tokens are never synced (re-authenticate on each device)
185
- - Local encryption key derived from device-specific identifier
186
-
187
- ### Access Control
188
- - GitHub: Uses personal access token with minimal scope
189
- - WebDAV: Supports app-specific passwords
190
- - All connections use HTTPS/TLS
191
-
192
- ## Best Practices
193
-
194
- 1. **Regular Syncing**: Sync at least daily to avoid large conflicts
195
- 2. **Named Backups**: Create named backups before major changes
196
- 3. **Review Conflicts**: Don't auto-resolve conflicts without review
197
- 4. **Secure Tokens**: Use app-specific passwords when available
198
- 5. **Test Restore**: Periodically test backup restoration
199
-
200
- ## Troubleshooting
201
-
202
- ### Sync Failed
203
- \`\`\`bash
204
- # Check connection
205
- /sync status --verbose
206
-
207
- # Force re-authentication
208
- /sync config github --reauth
209
- \`\`\`
210
-
211
- ### Conflicts Won't Resolve
212
- \`\`\`bash
213
- # Reset sync state
214
- /sync reset
215
-
216
- # Re-initialize from remote
217
- /sync pull --force
218
- \`\`\`
219
-
220
- ### Backup Corrupted
221
- \`\`\`bash
222
- # List all backups with integrity check
223
- /backup list --verify
224
-
225
- # Delete corrupted backup
226
- /backup delete <corrupted-id>
227
- \`\`\`
228
- `
229
- };
230
-
231
- const marketplaceSkill = {
232
- id: "mcp-marketplace",
233
- name: {
234
- "en": "MCP Marketplace",
235
- "zh-CN": "MCP \u63D2\u4EF6\u5E02\u573A"
236
- },
237
- description: {
238
- "en": "Discover, install and manage MCP plugins",
239
- "zh-CN": "\u53D1\u73B0\u3001\u5B89\u88C5\u548C\u7BA1\u7406 MCP \u63D2\u4EF6"
240
- },
241
- category: "dev",
242
- triggers: ["/market", "/mcp", "/plugins", "/install"],
243
- enabled: true,
244
- version: "1.0.0",
245
- author: "CCJK Team",
246
- tags: ["mcp", "marketplace", "plugins", "extensions", "install"],
247
- template: `# MCP Marketplace Skill
248
-
249
- ## Overview
250
-
251
- The MCP Marketplace provides a centralized hub for discovering, installing, and managing
252
- Model Context Protocol (MCP) plugins. It integrates seamlessly with Claude Code and CCJK
253
- to enhance your AI-assisted development workflow.
254
-
255
- ## Features
256
-
257
- - **Browse Marketplace**: Discover trending and recommended plugins
258
- - **Search Plugins**: Search by name, category, or tags
259
- - **Install Management**: One-click install, update, and uninstall
260
- - **Security Scanning**: Automatic security checks before installation
261
- - **Dependency Resolution**: Automatic handling of plugin dependencies
262
-
263
- ## Commands
264
-
265
- ### Search Plugins
266
- \`\`\`bash
267
- # Search by keyword
268
- ccjk market search <query>
269
-
270
- # Search with filters
271
- ccjk market search <query> --category ai-tools
272
- ccjk market search <query> --tag productivity
273
- \`\`\`
274
-
275
- ### Browse Marketplace
276
- \`\`\`bash
277
- # View trending plugins
278
- ccjk market trending
279
-
280
- # Browse by category
281
- ccjk market browse --category dev-tools
282
- ccjk market browse --category ai-tools
283
- ccjk market browse --category data-processing
284
- \`\`\`
285
-
286
- ### Install Plugins
287
- \`\`\`bash
288
- # Install a plugin
289
- ccjk market install <plugin-id>
290
-
291
- # Install specific version
292
- ccjk market install <plugin-id>@1.2.0
293
-
294
- # Install with dependencies
295
- ccjk market install <plugin-id> --with-deps
296
-
297
- # Force reinstall
298
- ccjk market install <plugin-id> --force
299
- \`\`\`
300
-
301
- ### Update Plugins
302
- \`\`\`bash
303
- # Update all plugins
304
- ccjk market update
305
-
306
- # Update specific plugin
307
- ccjk market update <plugin-id>
308
-
309
- # Check for updates
310
- ccjk market check-updates
311
- \`\`\`
312
-
313
- ### Manage Installed Plugins
314
- \`\`\`bash
315
- # List installed plugins
316
- ccjk market list
317
-
318
- # Show plugin details
319
- ccjk market info <plugin-id>
320
-
321
- # Uninstall plugin
322
- ccjk market uninstall <plugin-id>
323
-
324
- # Enable/disable plugin
325
- ccjk market enable <plugin-id>
326
- ccjk market disable <plugin-id>
327
- \`\`\`
328
-
329
- ## Categories
330
-
331
- ### AI Tools
332
- AI-enhanced functionality for code generation, analysis, and optimization.
333
- - Code completion enhancers
334
- - AI-powered refactoring
335
- - Intelligent code review
336
-
337
- ### Development Tools
338
- Tools to assist with coding and development workflows.
339
- - Language servers
340
- - Linters and formatters
341
- - Build tool integrations
342
-
343
- ### Productivity Tools
344
- Enhance your development efficiency.
345
- - Task automation
346
- - Snippet managers
347
- - Documentation generators
348
-
349
- ### Data Processing
350
- Data transformation and analysis tools.
351
- - Data converters
352
- - Schema validators
353
- - API integrators
354
-
355
- ### Integrations
356
- Third-party service integrations.
357
- - Cloud service connectors
358
- - Database integrations
359
- - CI/CD tool bridges
360
-
361
- ## Security
362
-
363
- All plugins undergo security scanning before installation:
364
-
365
- ### Security Checks
366
- - **Permission Analysis**: Detects dangerous permission requests
367
- - **Vulnerability Scanning**: Checks against known CVE databases
368
- - **Code Pattern Analysis**: Identifies suspicious code patterns
369
- - **Dependency Audit**: Scans dependencies for vulnerabilities
370
-
371
- ### Security Levels
372
- - \`verified\` - Officially verified by CCJK team
373
- - \`community\` - Community-reviewed plugin
374
- - \`unverified\` - New or unreviewed plugin
375
-
376
- ### Skip Security (Not Recommended)
377
- \`\`\`bash
378
- ccjk market install <plugin-id> --skip-verification
379
- \`\`\`
380
-
381
- ## Configuration
382
-
383
- ### Plugin Settings
384
- \`\`\`bash
385
- # Configure plugin
386
- ccjk market config <plugin-id> --set key=value
387
-
388
- # View plugin config
389
- ccjk market config <plugin-id> --list
390
-
391
- # Reset plugin config
392
- ccjk market config <plugin-id> --reset
393
- \`\`\`
394
-
395
- ### Global Settings
396
- \`\`\`bash
397
- # Set default registry
398
- ccjk market registry set <url>
399
-
400
- # Enable auto-updates
401
- ccjk market settings --auto-update true
402
-
403
- # Set security level
404
- ccjk market settings --security-level strict
405
- \`\`\`
406
-
407
- ## Plugin Development
408
-
409
- ### Create a Plugin
410
- \`\`\`bash
411
- ccjk market create <plugin-name>
412
- \`\`\`
413
-
414
- ### Publish to Marketplace
415
- \`\`\`bash
416
- ccjk market publish
417
- \`\`\`
418
-
419
- ### Plugin Manifest Example
420
- \`\`\`json
421
- {
422
- "packageId": "my-plugin",
423
- "name": "My Plugin",
424
- "version": "1.0.0",
425
- "description": "A useful MCP plugin",
426
- "author": "Your Name",
427
- "license": "MIT",
428
- "keywords": ["mcp", "plugin"],
429
- "mcpServer": {
430
- "command": "node",
431
- "args": ["dist/server.js"]
432
- }
433
- }
434
- \`\`\`
435
-
436
- ## Troubleshooting
437
-
438
- ### Installation Issues
439
- \`\`\`bash
440
- # Clear cache and retry
441
- ccjk market cache clear
442
- ccjk market install <plugin-id>
443
-
444
- # Verbose installation
445
- ccjk market install <plugin-id> --verbose
446
- \`\`\`
447
-
448
- ### Dependency Conflicts
449
- \`\`\`bash
450
- # Check dependencies
451
- ccjk market deps <plugin-id>
452
-
453
- # Force resolve conflicts
454
- ccjk market install <plugin-id> --force-deps
455
- \`\`\`
456
-
457
- ### Rollback
458
- \`\`\`bash
459
- # Rollback to previous version
460
- ccjk market rollback <plugin-id>
461
-
462
- # Rollback to specific version
463
- ccjk market rollback <plugin-id>@1.0.0
464
- \`\`\`
465
-
466
- ## Best Practices
467
-
468
- 1. **Review Before Install**: Always check plugin ratings and reviews
469
- 2. **Keep Updated**: Regularly update plugins for security patches
470
- 3. **Minimal Plugins**: Only install plugins you actively use
471
- 4. **Backup Config**: Export your plugin configuration before major changes
472
- 5. **Report Issues**: Help improve the ecosystem by reporting bugs
473
-
474
- ## Integration with Claude Code
475
-
476
- The marketplace integrates directly with Claude Code's MCP system:
477
-
478
- \`\`\`bash
479
- # Installed plugins are automatically available in Claude Code
480
- claude --mcp-list # Shows marketplace-installed plugins
481
-
482
- # Plugins can be used in conversations
483
- # Example: Using a database plugin
484
- "Connect to my PostgreSQL database and show tables"
485
- \`\`\`
486
- `
487
- };
488
-
489
- const workflowSkill = {
490
- id: "workflow-automation",
491
- name: {
492
- "en": "Workflow Automation",
493
- "zh-CN": "\u5DE5\u4F5C\u6D41\u81EA\u52A8\u5316"
494
- },
495
- description: {
496
- "en": "Subagent-driven development workflow with two-stage review",
497
- "zh-CN": "Subagent \u9A71\u52A8\u7684\u4E24\u9636\u6BB5\u5BA1\u67E5\u5F00\u53D1\u5DE5\u4F5C\u6D41"
498
- },
499
- category: "dev",
500
- triggers: ["/workflow", "/wf", "/flow"],
501
- enabled: true,
502
- version: "1.0.0",
503
- author: "CCJK",
504
- tags: ["workflow", "subagent", "review", "automation", "ci"],
505
- template: `# Workflow Automation Skill
506
-
507
- ## Overview
508
-
509
- This skill provides Subagent-driven development workflows with automatic two-stage review.
510
- Inspired by Anthropic's Superpowers architecture for autonomous agent collaboration.
511
-
512
- ## Core Concepts
513
-
514
- ### Two-Stage Review
515
- 1. **Draft Stage**: Subagents work on tasks in parallel
516
- 2. **Review Stage**: Automated quality checks and validation
517
- 3. **Finalize Stage**: Merge approved changes
518
-
519
- ### Workflow States
520
- - \`idle\` \u2192 \`planning\` \u2192 \`executing\` \u2192 \`reviewing\` \u2192 \`finalizing\` \u2192 \`completed\`
521
-
522
- ## Quick Start
523
-
524
- ### Create a Workflow
525
- \`\`\`bash
526
- ccjk workflow create "Implement user authentication"
527
- \`\`\`
528
-
529
- ### Start Workflow Execution
530
- \`\`\`bash
531
- ccjk workflow start <workflow-id>
532
- \`\`\`
533
-
534
- ### Check Workflow Status
535
- \`\`\`bash
536
- ccjk workflow status <workflow-id>
537
- ccjk workflow list
538
- \`\`\`
539
-
540
- ## Task Management
541
-
542
- ### Add Tasks to Workflow
543
- \`\`\`bash
544
- ccjk workflow task add <workflow-id> "Create login component"
545
- ccjk workflow task add <workflow-id> "Add authentication API" --depends-on task-1
546
- \`\`\`
547
-
548
- ### Task Priorities
549
- \`\`\`bash
550
- ccjk workflow task add <workflow-id> "Fix security bug" --priority critical
551
- ccjk workflow task add <workflow-id> "Add tests" --priority high
552
- \`\`\`
553
-
554
- ### View Task Dependencies
555
- \`\`\`bash
556
- ccjk workflow tasks <workflow-id> --graph
557
- \`\`\`
558
-
559
- ## Subagent Scheduling
560
-
561
- ### Automatic Scheduling
562
- The scheduler automatically:
563
- - Assigns tasks to available subagents
564
- - Respects task dependencies
565
- - Balances workload across agents
566
- - Handles failures with retry logic
567
-
568
- ### Manual Assignment
569
- \`\`\`bash
570
- ccjk workflow assign <task-id> <subagent-id>
571
- \`\`\`
572
-
573
- ### View Subagent Status
574
- \`\`\`bash
575
- ccjk workflow agents
576
- ccjk workflow agent <agent-id> --tasks
577
- \`\`\`
578
-
579
- ## Review System
580
-
581
- ### Automatic Review
582
- When tasks complete, the system automatically:
583
- 1. Runs requirement verification
584
- 2. Performs code quality checks
585
- 3. Validates test coverage
586
- 4. Checks for security issues
587
-
588
- ### Review Results
589
- \`\`\`bash
590
- ccjk workflow review <workflow-id>
591
- ccjk workflow review <task-id> --detailed
592
- \`\`\`
593
-
594
- ### Manual Review Override
595
- \`\`\`bash
596
- ccjk workflow approve <task-id>
597
- ccjk workflow reject <task-id> --reason "Missing tests"
598
- \`\`\`
599
-
600
- ## Quality Checks
601
-
602
- ### Built-in Checks
603
- - **Naming Conventions**: camelCase, PascalCase validation
604
- - **Code Structure**: Function length, nesting depth
605
- - **Error Handling**: Try-catch coverage
606
- - **Documentation**: JSDoc/TSDoc presence
607
- - **Style**: Consistent formatting
608
-
609
- ### Custom Checks
610
- \`\`\`bash
611
- ccjk workflow check add "No console.log" --pattern "console\\.log"
612
- ccjk workflow check add "Max file size" --max-lines 500
613
- \`\`\`
614
-
615
- ## Workflow Templates
616
-
617
- ### Feature Development
618
- \`\`\`bash
619
- ccjk workflow create --template feature "Add dark mode"
620
- \`\`\`
621
-
622
- ### Bug Fix
623
- \`\`\`bash
624
- ccjk workflow create --template bugfix "Fix login timeout"
625
- \`\`\`
626
-
627
- ### Refactoring
628
- \`\`\`bash
629
- ccjk workflow create --template refactor "Migrate to TypeScript"
630
- \`\`\`
631
-
632
- ## Events and Hooks
633
-
634
- ### Available Events
635
- - \`workflow:created\`
636
- - \`workflow:started\`
637
- - \`task:assigned\`
638
- - \`task:completed\`
639
- - \`review:passed\`
640
- - \`review:failed\`
641
- - \`workflow:completed\`
642
-
643
- ### Add Hooks
644
- \`\`\`bash
645
- ccjk workflow hook add task:completed "npm test"
646
- ccjk workflow hook add review:passed "npm run lint"
647
- \`\`\`
648
-
649
- ## Best Practices
650
-
651
- ### 1. Break Down Large Tasks
652
- Split complex features into smaller, independent tasks that can run in parallel.
653
-
654
- ### 2. Define Clear Dependencies
655
- Use \`--depends-on\` to ensure tasks run in the correct order.
656
-
657
- ### 3. Set Appropriate Priorities
658
- - \`critical\`: Security fixes, blocking issues
659
- - \`high\`: Important features, bugs
660
- - \`medium\`: Regular development
661
- - \`low\`: Nice-to-have improvements
662
-
663
- ### 4. Review Before Merge
664
- Always check review results before finalizing:
665
- \`\`\`bash
666
- ccjk workflow review <workflow-id> --summary
667
- \`\`\`
668
-
669
- ### 5. Use Templates
670
- Create custom templates for recurring workflow patterns.
671
-
672
- ## Integration with Git
673
-
674
- ### Automatic Branch Management
675
- \`\`\`bash
676
- ccjk workflow create "Feature X" --branch feature/x
677
- \`\`\`
678
-
679
- ### Worktree Support
680
- Each subagent can work in isolated git worktrees:
681
- \`\`\`bash
682
- ccjk workflow start <id> --worktree
683
- \`\`\`
684
-
685
- ## Troubleshooting
686
-
687
- ### Stuck Workflow
688
- \`\`\`bash
689
- ccjk workflow diagnose <workflow-id>
690
- ccjk workflow retry <task-id>
691
- \`\`\`
692
-
693
- ### Cancel Workflow
694
- \`\`\`bash
695
- ccjk workflow cancel <workflow-id>
696
- ccjk workflow cancel <workflow-id> --force
697
- \`\`\`
698
-
699
- ### View Logs
700
- \`\`\`bash
701
- ccjk workflow logs <workflow-id>
702
- ccjk workflow logs <task-id> --tail 100
703
- \`\`\`
704
- `
705
- };
706
-
707
- const BUILTIN_SKILLS = [
708
- cloudSyncSkill,
709
- browserSkill,
710
- marketplaceSkill,
711
- workflowSkill
712
- ];
713
- let registry = null;
714
- function ensureSkillsDir() {
715
- if (!existsSync(CCJK_SKILLS_DIR)) {
716
- mkdirSync(CCJK_SKILLS_DIR, { recursive: true });
717
- }
718
- }
719
- function getRegistry() {
720
- if (!registry) {
721
- registry = loadRegistry();
722
- }
723
- return registry;
724
- }
725
- function loadRegistry() {
726
- ensureSkillsDir();
727
- const skills = /* @__PURE__ */ new Map();
728
- const categories = /* @__PURE__ */ new Map();
729
- for (const skill of BUILTIN_SKILLS) {
730
- skills.set(skill.id, skill);
731
- const categorySkills = categories.get(skill.category) || [];
732
- categorySkills.push(skill.id);
733
- categories.set(skill.category, categorySkills);
734
- }
735
- const files = readdirSync(CCJK_SKILLS_DIR).filter((f) => f.endsWith(".json"));
736
- for (const file of files) {
737
- try {
738
- const content = readFileSync(join(CCJK_SKILLS_DIR, file), "utf-8");
739
- const skill = JSON.parse(content);
740
- skills.set(skill.id, skill);
741
- const categorySkills = categories.get(skill.category) || [];
742
- categorySkills.push(skill.id);
743
- categories.set(skill.category, categorySkills);
744
- } catch {
745
- }
746
- }
747
- return {
748
- skills,
749
- categories,
750
- lastUpdated: /* @__PURE__ */ new Date()
751
- };
752
- }
753
- function refreshRegistry() {
754
- registry = loadRegistry();
755
- }
756
- function getAllSkills() {
757
- return Array.from(getRegistry().skills.values());
758
- }
759
- function getSkill(id) {
760
- return getRegistry().skills.get(id);
761
- }
762
- function searchSkills(options) {
763
- let skills = getAllSkills();
764
- if (options.category) {
765
- skills = skills.filter((s) => s.category === options.category);
766
- }
767
- if (options.enabled !== void 0) {
768
- skills = skills.filter((s) => s.enabled === options.enabled);
769
- }
770
- if (options.tags && options.tags.length > 0) {
771
- skills = skills.filter(
772
- (s) => s.tags && options.tags.some((tag) => s.tags.includes(tag))
773
- );
774
- }
775
- if (options.query) {
776
- const query = options.query.toLowerCase();
777
- skills = skills.filter((s) => {
778
- const nameEn = typeof s.name === "string" ? s.name : s.name?.en || "";
779
- const nameZh = typeof s.name === "string" ? s.name : s.name?.["zh-CN"] || "";
780
- return s.id.toLowerCase().includes(query) || nameEn.toLowerCase().includes(query) || nameZh.toLowerCase().includes(query) || s.triggers.some((t) => t.toLowerCase().includes(query));
781
- });
782
- }
783
- if (options.limit) {
784
- skills = skills.slice(0, options.limit);
785
- }
786
- return skills;
787
- }
788
- function addSkill(skill) {
789
- ensureSkillsDir();
790
- try {
791
- const filePath = join(CCJK_SKILLS_DIR, `${skill.id}.json`);
792
- writeFileAtomic(filePath, JSON.stringify(skill, null, 2));
793
- refreshRegistry();
794
- return {
795
- skillId: skill.id,
796
- success: true,
797
- path: filePath
798
- };
799
- } catch (error) {
800
- return {
801
- skillId: skill.id,
802
- success: false,
803
- error: error instanceof Error ? error.message : "Unknown error"
804
- };
805
- }
806
- }
807
- function removeSkill(id) {
808
- const filePath = join(CCJK_SKILLS_DIR, `${id}.json`);
809
- if (existsSync(filePath)) {
810
- unlinkSync(filePath);
811
- refreshRegistry();
812
- return true;
813
- }
814
- return false;
815
- }
816
- function setSkillEnabled(id, enabled) {
817
- const skill = getSkill(id);
818
- if (!skill)
819
- return false;
820
- skill.enabled = enabled;
821
- addSkill(skill);
822
- return true;
823
- }
824
- const BATCH_TEMPLATES = {
825
- typescript: {
826
- category: "dev",
827
- skills: [
828
- {
829
- id: "ts-debug",
830
- name: { "en": "TypeScript Debug", "zh-CN": "TypeScript \u8C03\u8BD5" },
831
- description: { "en": "Debug TypeScript code", "zh-CN": "\u8C03\u8BD5 TypeScript \u4EE3\u7801" },
832
- triggers: ["/ts-debug", "/tsd"],
833
- templateFile: "ts-debug.md",
834
- tags: ["typescript", "debug"]
835
- },
836
- {
837
- id: "ts-refactor",
838
- name: { "en": "TypeScript Refactor", "zh-CN": "TypeScript \u91CD\u6784" },
839
- description: { "en": "Refactor TypeScript code", "zh-CN": "\u91CD\u6784 TypeScript \u4EE3\u7801" },
840
- triggers: ["/ts-refactor", "/tsr"],
841
- templateFile: "ts-refactor.md",
842
- tags: ["typescript", "refactor"]
843
- },
844
- {
845
- id: "ts-test",
846
- name: { "en": "TypeScript Test", "zh-CN": "TypeScript \u6D4B\u8BD5" },
847
- description: { "en": "Generate TypeScript tests", "zh-CN": "\u751F\u6210 TypeScript \u6D4B\u8BD5" },
848
- triggers: ["/ts-test", "/tst"],
849
- templateFile: "ts-test.md",
850
- tags: ["typescript", "testing"]
851
- },
852
- {
853
- id: "ts-type-check",
854
- name: { "en": "TypeScript Type Check", "zh-CN": "TypeScript \u7C7B\u578B\u68C0\u67E5" },
855
- description: { "en": "Fix TypeScript type errors", "zh-CN": "\u4FEE\u590D TypeScript \u7C7B\u578B\u9519\u8BEF" },
856
- triggers: ["/ts-type", "/tstc"],
857
- templateFile: "ts-type-check.md",
858
- tags: ["typescript", "types"]
859
- },
860
- {
861
- id: "ts-migrate",
862
- name: { "en": "TypeScript Migration", "zh-CN": "TypeScript \u8FC1\u79FB" },
863
- description: { "en": "Migrate JS to TypeScript", "zh-CN": "\u4ECE JS \u8FC1\u79FB\u5230 TypeScript" },
864
- triggers: ["/ts-migrate", "/tsm"],
865
- templateFile: "ts-migrate.md",
866
- tags: ["typescript", "migration"]
867
- }
868
- ]
869
- },
870
- python: {
871
- category: "dev",
872
- skills: [
873
- {
874
- id: "py-debug",
875
- name: { "en": "Python Debug", "zh-CN": "Python \u8C03\u8BD5" },
876
- description: { "en": "Debug Python code", "zh-CN": "\u8C03\u8BD5 Python \u4EE3\u7801" },
877
- triggers: ["/py-debug", "/pyd"],
878
- templateFile: "py-debug.md",
879
- tags: ["python", "debug"]
880
- },
881
- {
882
- id: "py-refactor",
883
- name: { "en": "Python Refactor", "zh-CN": "Python \u91CD\u6784" },
884
- description: { "en": "Refactor Python code", "zh-CN": "\u91CD\u6784 Python \u4EE3\u7801" },
885
- triggers: ["/py-refactor", "/pyr"],
886
- templateFile: "py-refactor.md",
887
- tags: ["python", "refactor"]
888
- },
889
- {
890
- id: "py-test",
891
- name: { "en": "Python Test", "zh-CN": "Python \u6D4B\u8BD5" },
892
- description: { "en": "Generate Python tests", "zh-CN": "\u751F\u6210 Python \u6D4B\u8BD5" },
893
- triggers: ["/py-test", "/pyt"],
894
- templateFile: "py-test.md",
895
- tags: ["python", "testing"]
896
- }
897
- ]
898
- },
899
- seo: {
900
- category: "seo",
901
- skills: [
902
- {
903
- id: "seo-meta",
904
- name: { "en": "SEO Meta Optimization", "zh-CN": "SEO \u5143\u6570\u636E\u4F18\u5316" },
905
- description: { "en": "Optimize meta tags for SEO", "zh-CN": "\u4F18\u5316 SEO \u5143\u6807\u7B7E" },
906
- triggers: ["/seo-meta", "/meta"],
907
- templateFile: "seo-meta.md",
908
- tags: ["seo", "meta"]
909
- },
910
- {
911
- id: "seo-sitemap",
912
- name: { "en": "Sitemap Generator", "zh-CN": "\u7AD9\u70B9\u5730\u56FE\u751F\u6210" },
913
- description: { "en": "Generate XML sitemap", "zh-CN": "\u751F\u6210 XML \u7AD9\u70B9\u5730\u56FE" },
914
- triggers: ["/sitemap", "/seo-sitemap"],
915
- templateFile: "seo-sitemap.md",
916
- tags: ["seo", "sitemap"]
917
- },
918
- {
919
- id: "seo-schema",
920
- name: { "en": "Schema Markup", "zh-CN": "\u7ED3\u6784\u5316\u6570\u636E\u6807\u8BB0" },
921
- description: { "en": "Add structured data markup", "zh-CN": "\u6DFB\u52A0\u7ED3\u6784\u5316\u6570\u636E\u6807\u8BB0" },
922
- triggers: ["/schema", "/seo-schema"],
923
- templateFile: "seo-schema.md",
924
- tags: ["seo", "schema"]
925
- },
926
- {
927
- id: "seo-cwv",
928
- name: { "en": "Core Web Vitals", "zh-CN": "\u6838\u5FC3\u7F51\u9875\u6307\u6807" },
929
- description: { "en": "Optimize Core Web Vitals", "zh-CN": "\u4F18\u5316\u6838\u5FC3\u7F51\u9875\u6307\u6807" },
930
- triggers: ["/cwv", "/seo-cwv"],
931
- templateFile: "seo-cwv.md",
932
- tags: ["seo", "performance"]
933
- }
934
- ]
935
- },
936
- devops: {
937
- category: "devops",
938
- skills: [
939
- {
940
- id: "devops-docker",
941
- name: { "en": "Docker Setup", "zh-CN": "Docker \u914D\u7F6E" },
942
- description: { "en": "Set up Docker configuration", "zh-CN": "\u914D\u7F6E Docker" },
943
- triggers: ["/docker", "/devops-docker"],
944
- templateFile: "devops-docker.md",
945
- tags: ["devops", "docker"]
946
- },
947
- {
948
- id: "devops-ci",
949
- name: { "en": "CI Pipeline", "zh-CN": "CI \u6D41\u6C34\u7EBF" },
950
- description: { "en": "Set up CI pipeline", "zh-CN": "\u914D\u7F6E CI \u6D41\u6C34\u7EBF" },
951
- triggers: ["/ci", "/devops-ci"],
952
- templateFile: "devops-ci.md",
953
- tags: ["devops", "ci"]
954
- },
955
- {
956
- id: "devops-deploy",
957
- name: { "en": "Deploy Script", "zh-CN": "\u90E8\u7F72\u811A\u672C" },
958
- description: { "en": "Create deployment script", "zh-CN": "\u521B\u5EFA\u90E8\u7F72\u811A\u672C" },
959
- triggers: ["/deploy", "/devops-deploy"],
960
- templateFile: "devops-deploy.md",
961
- tags: ["devops", "deploy"]
962
- },
963
- {
964
- id: "devops-monitor",
965
- name: { "en": "Monitoring Setup", "zh-CN": "\u76D1\u63A7\u914D\u7F6E" },
966
- description: { "en": "Set up monitoring", "zh-CN": "\u914D\u7F6E\u76D1\u63A7" },
967
- triggers: ["/monitor", "/devops-monitor"],
968
- templateFile: "devops-monitor.md",
969
- tags: ["devops", "monitoring"]
970
- }
971
- ]
972
- }
973
- };
974
- function createBatchSkills(options) {
975
- const results = [];
976
- const extractStr = (val, fallback) => {
977
- if (!val)
978
- return fallback;
979
- if (typeof val === "string")
980
- return val;
981
- return val.en || val["zh-CN"] || Object.values(val)[0] || fallback;
982
- };
983
- if (options.lang) {
984
- const template = BATCH_TEMPLATES[options.lang];
985
- if (template) {
986
- for (const skillDef of template.skills) {
987
- const nameStr = extractStr(skillDef.name, skillDef.id);
988
- const descStr = extractStr(skillDef.description, "");
989
- const skill = {
990
- ...skillDef,
991
- category: template.category,
992
- enabled: true,
993
- version: "1.0.0",
994
- template: `# ${nameStr}
995
-
996
- ${descStr}
997
-
998
- This is a placeholder template.`
999
- };
1000
- results.push(addSkill(skill));
1001
- }
1002
- }
1003
- }
1004
- if (options.seo) {
1005
- const template = BATCH_TEMPLATES.seo;
1006
- for (const skillDef of template.skills) {
1007
- const nameStr = extractStr(skillDef.name, skillDef.id);
1008
- const descStr = extractStr(skillDef.description, "");
1009
- const skill = {
1010
- ...skillDef,
1011
- category: template.category,
1012
- enabled: true,
1013
- version: "1.0.0",
1014
- template: `# ${nameStr}
1015
-
1016
- ${descStr}
1017
-
1018
- This is a placeholder template.`
1019
- };
1020
- results.push(addSkill(skill));
1021
- }
1022
- }
1023
- if (options.devops) {
1024
- const template = BATCH_TEMPLATES.devops;
1025
- for (const skillDef of template.skills) {
1026
- const nameStr = extractStr(skillDef.name, skillDef.id);
1027
- const descStr = extractStr(skillDef.description, "");
1028
- const skill = {
1029
- ...skillDef,
1030
- category: template.category,
1031
- enabled: true,
1032
- version: "1.0.0",
1033
- template: `# ${nameStr}
1034
-
1035
- ${descStr}
1036
-
1037
- This is a placeholder template.`
1038
- };
1039
- results.push(addSkill(skill));
1040
- }
1041
- }
1042
- return results;
1043
- }
1044
- function getBatchCategories() {
1045
- return Object.keys(BATCH_TEMPLATES);
1046
- }
1047
-
1048
- export { addSkill, createBatchSkills, ensureSkillsDir, getAllSkills, getBatchCategories, getRegistry, getSkill, refreshRegistry, removeSkill, searchSkills, setSkillEnabled };