mewkit 1.7.0 → 1.7.1

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 (344) hide show
  1. package/package.json +1 -1
  2. package/dist/commands/budget.d.ts +0 -6
  3. package/dist/commands/budget.d.ts.map +0 -1
  4. package/dist/commands/budget.js +0 -95
  5. package/dist/commands/budget.js.map +0 -1
  6. package/dist/commands/doctor.d.ts +0 -4
  7. package/dist/commands/doctor.d.ts.map +0 -1
  8. package/dist/commands/doctor.js +0 -365
  9. package/dist/commands/doctor.js.map +0 -1
  10. package/dist/commands/init.d.ts +0 -13
  11. package/dist/commands/init.d.ts.map +0 -1
  12. package/dist/commands/init.js +0 -354
  13. package/dist/commands/init.js.map +0 -1
  14. package/dist/commands/memory.d.ts +0 -9
  15. package/dist/commands/memory.d.ts.map +0 -1
  16. package/dist/commands/memory.js +0 -217
  17. package/dist/commands/memory.js.map +0 -1
  18. package/dist/commands/migrate.d.ts +0 -21
  19. package/dist/commands/migrate.d.ts.map +0 -1
  20. package/dist/commands/migrate.js +0 -42
  21. package/dist/commands/migrate.js.map +0 -1
  22. package/dist/commands/setup.d.ts +0 -16
  23. package/dist/commands/setup.d.ts.map +0 -1
  24. package/dist/commands/setup.js +0 -413
  25. package/dist/commands/setup.js.map +0 -1
  26. package/dist/commands/task.d.ts +0 -10
  27. package/dist/commands/task.d.ts.map +0 -1
  28. package/dist/commands/task.js +0 -313
  29. package/dist/commands/task.js.map +0 -1
  30. package/dist/commands/upgrade.d.ts +0 -7
  31. package/dist/commands/upgrade.d.ts.map +0 -1
  32. package/dist/commands/upgrade.js +0 -143
  33. package/dist/commands/upgrade.js.map +0 -1
  34. package/dist/commands/validate.d.ts +0 -2
  35. package/dist/commands/validate.d.ts.map +0 -1
  36. package/dist/commands/validate.js +0 -139
  37. package/dist/commands/validate.js.map +0 -1
  38. package/dist/core/compute-checksums.d.ts +0 -25
  39. package/dist/core/compute-checksums.d.ts.map +0 -1
  40. package/dist/core/compute-checksums.js +0 -105
  41. package/dist/core/compute-checksums.js.map +0 -1
  42. package/dist/core/core-logger.d.ts +0 -9
  43. package/dist/core/core-logger.d.ts.map +0 -1
  44. package/dist/core/core-logger.js +0 -31
  45. package/dist/core/core-logger.js.map +0 -1
  46. package/dist/core/dependency-installer.d.ts +0 -29
  47. package/dist/core/dependency-installer.d.ts.map +0 -1
  48. package/dist/core/dependency-installer.js +0 -150
  49. package/dist/core/dependency-installer.js.map +0 -1
  50. package/dist/core/github-releases.d.ts +0 -32
  51. package/dist/core/github-releases.d.ts.map +0 -1
  52. package/dist/core/github-releases.js +0 -96
  53. package/dist/core/github-releases.js.map +0 -1
  54. package/dist/core/index.d.ts +0 -12
  55. package/dist/core/index.d.ts.map +0 -1
  56. package/dist/core/index.js +0 -12
  57. package/dist/core/index.js.map +0 -1
  58. package/dist/core/merge-settings.d.ts +0 -7
  59. package/dist/core/merge-settings.d.ts.map +0 -1
  60. package/dist/core/merge-settings.js +0 -131
  61. package/dist/core/merge-settings.js.map +0 -1
  62. package/dist/core/skills-dependencies.d.ts +0 -25
  63. package/dist/core/skills-dependencies.d.ts.map +0 -1
  64. package/dist/core/skills-dependencies.js +0 -100
  65. package/dist/core/skills-dependencies.js.map +0 -1
  66. package/dist/core/smart-update-utils.d.ts +0 -10
  67. package/dist/core/smart-update-utils.d.ts.map +0 -1
  68. package/dist/core/smart-update-utils.js +0 -61
  69. package/dist/core/smart-update-utils.js.map +0 -1
  70. package/dist/core/smart-update.d.ts +0 -18
  71. package/dist/core/smart-update.d.ts.map +0 -1
  72. package/dist/core/smart-update.js +0 -177
  73. package/dist/core/smart-update.js.map +0 -1
  74. package/dist/core/substitute-placeholders.d.ts +0 -11
  75. package/dist/core/substitute-placeholders.d.ts.map +0 -1
  76. package/dist/core/substitute-placeholders.js +0 -28
  77. package/dist/core/substitute-placeholders.js.map +0 -1
  78. package/dist/core/validate-install.d.ts +0 -6
  79. package/dist/core/validate-install.d.ts.map +0 -1
  80. package/dist/core/validate-install.js +0 -97
  81. package/dist/core/validate-install.js.map +0 -1
  82. package/dist/index.d.ts +0 -3
  83. package/dist/index.d.ts.map +0 -1
  84. package/dist/index.js +0 -199
  85. package/dist/index.js.map +0 -1
  86. package/dist/lib/system-deps-registry.d.ts +0 -117
  87. package/dist/lib/system-deps-registry.d.ts.map +0 -1
  88. package/dist/lib/system-deps-registry.js +0 -234
  89. package/dist/lib/system-deps-registry.js.map +0 -1
  90. package/dist/logger.d.ts +0 -26
  91. package/dist/logger.js +0 -70
  92. package/dist/logger.js.map +0 -1
  93. package/dist/migrate/__tests__/frontmatter-parser.test.d.ts +0 -2
  94. package/dist/migrate/__tests__/frontmatter-parser.test.d.ts.map +0 -1
  95. package/dist/migrate/__tests__/frontmatter-parser.test.js +0 -73
  96. package/dist/migrate/__tests__/frontmatter-parser.test.js.map +0 -1
  97. package/dist/migrate/__tests__/md-strip-mewkit.test.d.ts +0 -2
  98. package/dist/migrate/__tests__/md-strip-mewkit.test.d.ts.map +0 -1
  99. package/dist/migrate/__tests__/md-strip-mewkit.test.js +0 -55
  100. package/dist/migrate/__tests__/md-strip-mewkit.test.js.map +0 -1
  101. package/dist/migrate/__tests__/migrate-scope-resolver.test.d.ts +0 -2
  102. package/dist/migrate/__tests__/migrate-scope-resolver.test.d.ts.map +0 -1
  103. package/dist/migrate/__tests__/migrate-scope-resolver.test.js +0 -53
  104. package/dist/migrate/__tests__/migrate-scope-resolver.test.js.map +0 -1
  105. package/dist/migrate/__tests__/process-lock.test.d.ts +0 -2
  106. package/dist/migrate/__tests__/process-lock.test.d.ts.map +0 -1
  107. package/dist/migrate/__tests__/process-lock.test.js +0 -63
  108. package/dist/migrate/__tests__/process-lock.test.js.map +0 -1
  109. package/dist/migrate/__tests__/provider-registry.test.d.ts +0 -2
  110. package/dist/migrate/__tests__/provider-registry.test.d.ts.map +0 -1
  111. package/dist/migrate/__tests__/provider-registry.test.js +0 -53
  112. package/dist/migrate/__tests__/provider-registry.test.js.map +0 -1
  113. package/dist/migrate/__tests__/reconciler.test.d.ts +0 -2
  114. package/dist/migrate/__tests__/reconciler.test.d.ts.map +0 -1
  115. package/dist/migrate/__tests__/reconciler.test.js +0 -180
  116. package/dist/migrate/__tests__/reconciler.test.js.map +0 -1
  117. package/dist/migrate/codex-capabilities.d.ts +0 -17
  118. package/dist/migrate/codex-capabilities.d.ts.map +0 -1
  119. package/dist/migrate/codex-capabilities.js +0 -95
  120. package/dist/migrate/codex-capabilities.js.map +0 -1
  121. package/dist/migrate/config-merger/merge-single-sections.d.ts +0 -20
  122. package/dist/migrate/config-merger/merge-single-sections.d.ts.map +0 -1
  123. package/dist/migrate/config-merger/merge-single-sections.js +0 -169
  124. package/dist/migrate/config-merger/merge-single-sections.js.map +0 -1
  125. package/dist/migrate/converters/claude-to-codex-hooks.d.ts +0 -23
  126. package/dist/migrate/converters/claude-to-codex-hooks.d.ts.map +0 -1
  127. package/dist/migrate/converters/claude-to-codex-hooks.js +0 -80
  128. package/dist/migrate/converters/claude-to-codex-hooks.js.map +0 -1
  129. package/dist/migrate/converters/direct-copy.d.ts +0 -3
  130. package/dist/migrate/converters/direct-copy.d.ts.map +0 -1
  131. package/dist/migrate/converters/direct-copy.js +0 -52
  132. package/dist/migrate/converters/direct-copy.js.map +0 -1
  133. package/dist/migrate/converters/fm-strip.d.ts +0 -4
  134. package/dist/migrate/converters/fm-strip.d.ts.map +0 -1
  135. package/dist/migrate/converters/fm-strip.js +0 -36
  136. package/dist/migrate/converters/fm-strip.js.map +0 -1
  137. package/dist/migrate/converters/fm-to-codex-toml.d.ts +0 -19
  138. package/dist/migrate/converters/fm-to-codex-toml.d.ts.map +0 -1
  139. package/dist/migrate/converters/fm-to-codex-toml.js +0 -93
  140. package/dist/migrate/converters/fm-to-codex-toml.js.map +0 -1
  141. package/dist/migrate/converters/fm-to-fm.d.ts +0 -3
  142. package/dist/migrate/converters/fm-to-fm.d.ts.map +0 -1
  143. package/dist/migrate/converters/fm-to-fm.js +0 -142
  144. package/dist/migrate/converters/fm-to-fm.js.map +0 -1
  145. package/dist/migrate/converters/fm-to-json.d.ts +0 -12
  146. package/dist/migrate/converters/fm-to-json.d.ts.map +0 -1
  147. package/dist/migrate/converters/fm-to-json.js +0 -55
  148. package/dist/migrate/converters/fm-to-json.js.map +0 -1
  149. package/dist/migrate/converters/fm-to-yaml.d.ts +0 -4
  150. package/dist/migrate/converters/fm-to-yaml.d.ts.map +0 -1
  151. package/dist/migrate/converters/fm-to-yaml.js +0 -62
  152. package/dist/migrate/converters/fm-to-yaml.js.map +0 -1
  153. package/dist/migrate/converters/gemini-hook-event-map.d.ts +0 -6
  154. package/dist/migrate/converters/gemini-hook-event-map.d.ts.map +0 -1
  155. package/dist/migrate/converters/gemini-hook-event-map.js +0 -41
  156. package/dist/migrate/converters/gemini-hook-event-map.js.map +0 -1
  157. package/dist/migrate/converters/index.d.ts +0 -12
  158. package/dist/migrate/converters/index.d.ts.map +0 -1
  159. package/dist/migrate/converters/index.js +0 -66
  160. package/dist/migrate/converters/index.js.map +0 -1
  161. package/dist/migrate/converters/md-strip.d.ts +0 -19
  162. package/dist/migrate/converters/md-strip.d.ts.map +0 -1
  163. package/dist/migrate/converters/md-strip.js +0 -290
  164. package/dist/migrate/converters/md-strip.js.map +0 -1
  165. package/dist/migrate/converters/md-to-kiro-steering.d.ts +0 -3
  166. package/dist/migrate/converters/md-to-kiro-steering.d.ts.map +0 -1
  167. package/dist/migrate/converters/md-to-kiro-steering.js +0 -90
  168. package/dist/migrate/converters/md-to-kiro-steering.js.map +0 -1
  169. package/dist/migrate/converters/md-to-mdc.d.ts +0 -3
  170. package/dist/migrate/converters/md-to-mdc.d.ts.map +0 -1
  171. package/dist/migrate/converters/md-to-mdc.js +0 -19
  172. package/dist/migrate/converters/md-to-mdc.js.map +0 -1
  173. package/dist/migrate/converters/md-to-toml.d.ts +0 -4
  174. package/dist/migrate/converters/md-to-toml.d.ts.map +0 -1
  175. package/dist/migrate/converters/md-to-toml.js +0 -25
  176. package/dist/migrate/converters/md-to-toml.js.map +0 -1
  177. package/dist/migrate/converters/skill-md.d.ts +0 -3
  178. package/dist/migrate/converters/skill-md.d.ts.map +0 -1
  179. package/dist/migrate/converters/skill-md.js +0 -18
  180. package/dist/migrate/converters/skill-md.js.map +0 -1
  181. package/dist/migrate/discovery/agents-discovery.d.ts +0 -3
  182. package/dist/migrate/discovery/agents-discovery.d.ts.map +0 -1
  183. package/dist/migrate/discovery/agents-discovery.js +0 -42
  184. package/dist/migrate/discovery/agents-discovery.js.map +0 -1
  185. package/dist/migrate/discovery/commands-discovery.d.ts +0 -3
  186. package/dist/migrate/discovery/commands-discovery.d.ts.map +0 -1
  187. package/dist/migrate/discovery/commands-discovery.js +0 -60
  188. package/dist/migrate/discovery/commands-discovery.js.map +0 -1
  189. package/dist/migrate/discovery/config-discovery.d.ts +0 -3
  190. package/dist/migrate/discovery/config-discovery.d.ts.map +0 -1
  191. package/dist/migrate/discovery/config-discovery.js +0 -17
  192. package/dist/migrate/discovery/config-discovery.js.map +0 -1
  193. package/dist/migrate/discovery/exclusions.d.ts +0 -5
  194. package/dist/migrate/discovery/exclusions.d.ts.map +0 -1
  195. package/dist/migrate/discovery/exclusions.js +0 -31
  196. package/dist/migrate/discovery/exclusions.js.map +0 -1
  197. package/dist/migrate/discovery/handlers-json-filter.d.ts +0 -17
  198. package/dist/migrate/discovery/handlers-json-filter.d.ts.map +0 -1
  199. package/dist/migrate/discovery/handlers-json-filter.js +0 -48
  200. package/dist/migrate/discovery/handlers-json-filter.js.map +0 -1
  201. package/dist/migrate/discovery/hooks-discovery.d.ts +0 -7
  202. package/dist/migrate/discovery/hooks-discovery.d.ts.map +0 -1
  203. package/dist/migrate/discovery/hooks-discovery.js +0 -45
  204. package/dist/migrate/discovery/hooks-discovery.js.map +0 -1
  205. package/dist/migrate/discovery/index.d.ts +0 -10
  206. package/dist/migrate/discovery/index.d.ts.map +0 -1
  207. package/dist/migrate/discovery/index.js +0 -10
  208. package/dist/migrate/discovery/index.js.map +0 -1
  209. package/dist/migrate/discovery/rules-discovery.d.ts +0 -3
  210. package/dist/migrate/discovery/rules-discovery.d.ts.map +0 -1
  211. package/dist/migrate/discovery/rules-discovery.js +0 -53
  212. package/dist/migrate/discovery/rules-discovery.js.map +0 -1
  213. package/dist/migrate/discovery/skills-discovery.d.ts +0 -5
  214. package/dist/migrate/discovery/skills-discovery.d.ts.map +0 -1
  215. package/dist/migrate/discovery/skills-discovery.js +0 -73
  216. package/dist/migrate/discovery/skills-discovery.js.map +0 -1
  217. package/dist/migrate/discovery/source-paths.d.ts +0 -13
  218. package/dist/migrate/discovery/source-paths.d.ts.map +0 -1
  219. package/dist/migrate/discovery/source-paths.js +0 -63
  220. package/dist/migrate/discovery/source-paths.js.map +0 -1
  221. package/dist/migrate/frontmatter-parser.d.ts +0 -4
  222. package/dist/migrate/frontmatter-parser.d.ts.map +0 -1
  223. package/dist/migrate/frontmatter-parser.js +0 -99
  224. package/dist/migrate/frontmatter-parser.js.map +0 -1
  225. package/dist/migrate/hooks/codex-features-flag.d.ts +0 -8
  226. package/dist/migrate/hooks/codex-features-flag.d.ts.map +0 -1
  227. package/dist/migrate/hooks/codex-features-flag.js +0 -146
  228. package/dist/migrate/hooks/codex-features-flag.js.map +0 -1
  229. package/dist/migrate/hooks/codex-hook-wrapper.d.ts +0 -10
  230. package/dist/migrate/hooks/codex-hook-wrapper.d.ts.map +0 -1
  231. package/dist/migrate/hooks/codex-hook-wrapper.js +0 -166
  232. package/dist/migrate/hooks/codex-hook-wrapper.js.map +0 -1
  233. package/dist/migrate/hooks/codex-path-safety.d.ts +0 -5
  234. package/dist/migrate/hooks/codex-path-safety.d.ts.map +0 -1
  235. package/dist/migrate/hooks/codex-path-safety.js +0 -99
  236. package/dist/migrate/hooks/codex-path-safety.js.map +0 -1
  237. package/dist/migrate/hooks/codex-toml-installer.d.ts +0 -15
  238. package/dist/migrate/hooks/codex-toml-installer.d.ts.map +0 -1
  239. package/dist/migrate/hooks/codex-toml-installer.js +0 -124
  240. package/dist/migrate/hooks/codex-toml-installer.js.map +0 -1
  241. package/dist/migrate/hooks/hooks-settings-merger.d.ts +0 -20
  242. package/dist/migrate/hooks/hooks-settings-merger.d.ts.map +0 -1
  243. package/dist/migrate/hooks/hooks-settings-merger.js +0 -273
  244. package/dist/migrate/hooks/hooks-settings-merger.js.map +0 -1
  245. package/dist/migrate/hooks/index.d.ts +0 -7
  246. package/dist/migrate/hooks/index.d.ts.map +0 -1
  247. package/dist/migrate/hooks/index.js +0 -7
  248. package/dist/migrate/hooks/index.js.map +0 -1
  249. package/dist/migrate/hooks/opencode-config-installer.d.ts +0 -31
  250. package/dist/migrate/hooks/opencode-config-installer.d.ts.map +0 -1
  251. package/dist/migrate/hooks/opencode-config-installer.js +0 -116
  252. package/dist/migrate/hooks/opencode-config-installer.js.map +0 -1
  253. package/dist/migrate/index.d.ts +0 -15
  254. package/dist/migrate/index.d.ts.map +0 -1
  255. package/dist/migrate/index.js +0 -15
  256. package/dist/migrate/index.js.map +0 -1
  257. package/dist/migrate/migrate-discover.d.ts +0 -28
  258. package/dist/migrate/migrate-discover.d.ts.map +0 -1
  259. package/dist/migrate/migrate-discover.js +0 -52
  260. package/dist/migrate/migrate-discover.js.map +0 -1
  261. package/dist/migrate/migrate-mode-resolver.d.ts +0 -10
  262. package/dist/migrate/migrate-mode-resolver.d.ts.map +0 -1
  263. package/dist/migrate/migrate-mode-resolver.js +0 -123
  264. package/dist/migrate/migrate-mode-resolver.js.map +0 -1
  265. package/dist/migrate/migrate-orchestrator.d.ts +0 -9
  266. package/dist/migrate/migrate-orchestrator.d.ts.map +0 -1
  267. package/dist/migrate/migrate-orchestrator.js +0 -204
  268. package/dist/migrate/migrate-orchestrator.js.map +0 -1
  269. package/dist/migrate/migrate-scope-resolver.d.ts +0 -19
  270. package/dist/migrate/migrate-scope-resolver.d.ts.map +0 -1
  271. package/dist/migrate/migrate-scope-resolver.js +0 -81
  272. package/dist/migrate/migrate-scope-resolver.js.map +0 -1
  273. package/dist/migrate/migrate-ui-summary.d.ts +0 -14
  274. package/dist/migrate/migrate-ui-summary.d.ts.map +0 -1
  275. package/dist/migrate/migrate-ui-summary.js +0 -65
  276. package/dist/migrate/migrate-ui-summary.js.map +0 -1
  277. package/dist/migrate/model-taxonomy.d.ts +0 -16
  278. package/dist/migrate/model-taxonomy.d.ts.map +0 -1
  279. package/dist/migrate/model-taxonomy.js +0 -58
  280. package/dist/migrate/model-taxonomy.js.map +0 -1
  281. package/dist/migrate/portable-installer.d.ts +0 -14
  282. package/dist/migrate/portable-installer.d.ts.map +0 -1
  283. package/dist/migrate/portable-installer.js +0 -159
  284. package/dist/migrate/portable-installer.js.map +0 -1
  285. package/dist/migrate/provider-overrides.d.ts +0 -8
  286. package/dist/migrate/provider-overrides.d.ts.map +0 -1
  287. package/dist/migrate/provider-overrides.js +0 -40
  288. package/dist/migrate/provider-overrides.js.map +0 -1
  289. package/dist/migrate/provider-registry-utils.d.ts +0 -23
  290. package/dist/migrate/provider-registry-utils.d.ts.map +0 -1
  291. package/dist/migrate/provider-registry-utils.js +0 -67
  292. package/dist/migrate/provider-registry-utils.js.map +0 -1
  293. package/dist/migrate/provider-registry.d.ts +0 -5
  294. package/dist/migrate/provider-registry.d.ts.map +0 -1
  295. package/dist/migrate/provider-registry.js +0 -327
  296. package/dist/migrate/provider-registry.js.map +0 -1
  297. package/dist/migrate/reconcile/checksum-utils.d.ts +0 -8
  298. package/dist/migrate/reconcile/checksum-utils.d.ts.map +0 -1
  299. package/dist/migrate/reconcile/checksum-utils.js +0 -32
  300. package/dist/migrate/reconcile/checksum-utils.js.map +0 -1
  301. package/dist/migrate/reconcile/conflict-resolver.d.ts +0 -8
  302. package/dist/migrate/reconcile/conflict-resolver.d.ts.map +0 -1
  303. package/dist/migrate/reconcile/conflict-resolver.js +0 -59
  304. package/dist/migrate/reconcile/conflict-resolver.js.map +0 -1
  305. package/dist/migrate/reconcile/diff-display.d.ts +0 -6
  306. package/dist/migrate/reconcile/diff-display.d.ts.map +0 -1
  307. package/dist/migrate/reconcile/diff-display.js +0 -40
  308. package/dist/migrate/reconcile/diff-display.js.map +0 -1
  309. package/dist/migrate/reconcile/index.d.ts +0 -10
  310. package/dist/migrate/reconcile/index.d.ts.map +0 -1
  311. package/dist/migrate/reconcile/index.js +0 -10
  312. package/dist/migrate/reconcile/index.js.map +0 -1
  313. package/dist/migrate/reconcile/output-sanitizer.d.ts +0 -3
  314. package/dist/migrate/reconcile/output-sanitizer.d.ts.map +0 -1
  315. package/dist/migrate/reconcile/output-sanitizer.js +0 -42
  316. package/dist/migrate/reconcile/output-sanitizer.js.map +0 -1
  317. package/dist/migrate/reconcile/portable-registry.d.ts +0 -142
  318. package/dist/migrate/reconcile/portable-registry.d.ts.map +0 -1
  319. package/dist/migrate/reconcile/portable-registry.js +0 -224
  320. package/dist/migrate/reconcile/portable-registry.js.map +0 -1
  321. package/dist/migrate/reconcile/process-lock.d.ts +0 -15
  322. package/dist/migrate/reconcile/process-lock.d.ts.map +0 -1
  323. package/dist/migrate/reconcile/process-lock.js +0 -77
  324. package/dist/migrate/reconcile/process-lock.js.map +0 -1
  325. package/dist/migrate/reconcile/reconcile-state-builders.d.ts +0 -24
  326. package/dist/migrate/reconcile/reconcile-state-builders.d.ts.map +0 -1
  327. package/dist/migrate/reconcile/reconcile-state-builders.js +0 -185
  328. package/dist/migrate/reconcile/reconcile-state-builders.js.map +0 -1
  329. package/dist/migrate/reconcile/reconcile-types.d.ts +0 -113
  330. package/dist/migrate/reconcile/reconcile-types.d.ts.map +0 -1
  331. package/dist/migrate/reconcile/reconcile-types.js +0 -42
  332. package/dist/migrate/reconcile/reconcile-types.js.map +0 -1
  333. package/dist/migrate/reconcile/reconciler.d.ts +0 -3
  334. package/dist/migrate/reconcile/reconciler.d.ts.map +0 -1
  335. package/dist/migrate/reconcile/reconciler.js +0 -445
  336. package/dist/migrate/reconcile/reconciler.js.map +0 -1
  337. package/dist/migrate/skill-directory-installer.d.ts +0 -23
  338. package/dist/migrate/skill-directory-installer.d.ts.map +0 -1
  339. package/dist/migrate/skill-directory-installer.js +0 -55
  340. package/dist/migrate/skill-directory-installer.js.map +0 -1
  341. package/dist/migrate/types.d.ts +0 -172
  342. package/dist/migrate/types.d.ts.map +0 -1
  343. package/dist/migrate/types.js +0 -45
  344. package/dist/migrate/types.js.map +0 -1
@@ -1,25 +0,0 @@
1
- /** File layer determines update behavior */
2
- export type FileLayer = "core" | "skill" | "user";
3
- export interface ManifestEntry {
4
- sha256: string;
5
- layer: FileLayer;
6
- }
7
- export interface Manifest {
8
- version: string;
9
- generatedAt: string;
10
- checksums: Record<string, ManifestEntry>;
11
- }
12
- /** Compute SHA-256 hash of a file */
13
- export declare function hashFile(filePath: string): string;
14
- /** Determine the layer of a file based on its path relative to the project root */
15
- export declare function classifyLayer(relativePath: string): FileLayer;
16
- /**
17
- * Build a manifest by scanning all files in the .claude/ directory.
18
- * All MeowKit files live inside .claude/ — no root-level scanning.
19
- */
20
- export declare function buildManifest(claudeDir: string): Manifest;
21
- /** Write manifest to disk */
22
- export declare function writeManifest(targetDir: string, manifest: Manifest): void;
23
- /** Read existing manifest from disk. Returns null if not found or invalid. */
24
- export declare function readManifest(targetDir: string): Manifest | null;
25
- //# sourceMappingURL=compute-checksums.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compute-checksums.d.ts","sourceRoot":"","sources":["../../src/core/compute-checksums.ts"],"names":[],"mappings":"AAIA,4CAA4C;AAC5C,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAElD,MAAM,WAAW,aAAa;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,QAAQ;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CACzC;AAsBD,qCAAqC;AACrC,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGjD;AAED,mFAAmF;AACnF,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAe7D;AA0BD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAkBzD;AAED,6BAA6B;AAC7B,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAGzE;AAED,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAQ/D"}
@@ -1,105 +0,0 @@
1
- import { createHash } from "node:crypto";
2
- import { readFileSync, writeFileSync, existsSync, readdirSync, statSync } from "node:fs";
3
- import { join, relative } from "node:path";
4
- const MANIFEST_FILENAME = "meowkit.manifest.json";
5
- /** Directories classified as "core" — overwritten on update if unchanged */
6
- const CORE_DIRS = new Set(["agents", "commands", "hooks", "modes", "rules", "scripts"]);
7
- /** Files classified as "user" — never overwritten */
8
- const USER_FILES = new Set([
9
- "CLAUDE.md",
10
- "meowkit.config.json",
11
- ".env",
12
- "env.example",
13
- "mcp.json.example",
14
- "mcp.json",
15
- "gitignore.meowkit",
16
- "meowkit.manifest.json",
17
- ]);
18
- /** Directories classified as "user" — never overwritten */
19
- const USER_DIRS = new Set(["memory", "logs"]);
20
- /** Compute SHA-256 hash of a file */
21
- export function hashFile(filePath) {
22
- const content = readFileSync(filePath);
23
- return createHash("sha256").update(content).digest("hex");
24
- }
25
- /** Determine the layer of a file based on its path relative to the project root */
26
- export function classifyLayer(relativePath) {
27
- // User-level files at project root
28
- const basename = relativePath.split("/").pop() ?? "";
29
- if (USER_FILES.has(basename) || USER_FILES.has(relativePath))
30
- return "user";
31
- // Check path segments for directory-based classification
32
- const parts = relativePath.split("/");
33
- const topDir = parts[0];
34
- if (USER_DIRS.has(topDir))
35
- return "user";
36
- if (topDir === "skills")
37
- return "skill";
38
- if (CORE_DIRS.has(topDir))
39
- return "core";
40
- if (topDir === "settings.json")
41
- return "core";
42
- return "user";
43
- }
44
- /**
45
- * Recursively collect all files in a directory, returning paths relative to baseDir.
46
- * Skips __pycache__, node_modules, .DS_Store, .meowkit.manifest.json.
47
- */
48
- function collectFiles(dir, baseDir) {
49
- const files = [];
50
- if (!existsSync(dir))
51
- return files;
52
- const SKIP = new Set(["__pycache__", "node_modules", ".DS_Store", MANIFEST_FILENAME]);
53
- const entries = readdirSync(dir);
54
- for (const entry of entries) {
55
- if (SKIP.has(entry))
56
- continue;
57
- const fullPath = join(dir, entry);
58
- const stat = statSync(fullPath);
59
- if (stat.isDirectory()) {
60
- files.push(...collectFiles(fullPath, baseDir));
61
- }
62
- else {
63
- files.push(relative(baseDir, fullPath));
64
- }
65
- }
66
- return files;
67
- }
68
- /**
69
- * Build a manifest by scanning all files in the .claude/ directory.
70
- * All MeowKit files live inside .claude/ — no root-level scanning.
71
- */
72
- export function buildManifest(claudeDir) {
73
- const checksums = {};
74
- const files = collectFiles(claudeDir, claudeDir);
75
- for (const relPath of files) {
76
- const fullPath = join(claudeDir, relPath);
77
- checksums[relPath] = {
78
- sha256: hashFile(fullPath),
79
- layer: classifyLayer(relPath),
80
- };
81
- }
82
- return {
83
- version: "0.1.0",
84
- generatedAt: new Date().toISOString(),
85
- checksums,
86
- };
87
- }
88
- /** Write manifest to disk */
89
- export function writeManifest(targetDir, manifest) {
90
- const path = join(targetDir, MANIFEST_FILENAME);
91
- writeFileSync(path, JSON.stringify(manifest, null, 2) + "\n", "utf-8");
92
- }
93
- /** Read existing manifest from disk. Returns null if not found or invalid. */
94
- export function readManifest(targetDir) {
95
- const path = join(targetDir, MANIFEST_FILENAME);
96
- if (!existsSync(path))
97
- return null;
98
- try {
99
- return JSON.parse(readFileSync(path, "utf-8"));
100
- }
101
- catch {
102
- return null;
103
- }
104
- }
105
- //# sourceMappingURL=compute-checksums.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compute-checksums.js","sourceRoot":"","sources":["../../src/core/compute-checksums.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- export declare function setVerbose(v: boolean): void;
2
- export declare function info(msg: string): void;
3
- export declare function success(msg: string): void;
4
- export declare function warn(msg: string): void;
5
- export declare function error(msg: string): void;
6
- export declare function debug(msg: string): void;
7
- /** No-op: structured data is not used in mewkit's console-based output */
8
- export declare function setData(_key: string, _value: unknown): void;
9
- //# sourceMappingURL=core-logger.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"core-logger.d.ts","sourceRoot":"","sources":["../../src/core/core-logger.ts"],"names":[],"mappings":"AAQA,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAE3C;AAED,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEtC;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEzC;AAED,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEtC;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEvC;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAIvC;AAED,0EAA0E;AAC1E,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAE3D"}
@@ -1,31 +0,0 @@
1
- /**
2
- * Thin logger shim for core modules.
3
- * Maps the logger API to console calls — mewkit uses console directly.
4
- */
5
- import pc from "picocolors";
6
- let verbose = false;
7
- export function setVerbose(v) {
8
- verbose = v;
9
- }
10
- export function info(msg) {
11
- console.log(msg);
12
- }
13
- export function success(msg) {
14
- console.log(`${pc.green("✓")} ${msg}`);
15
- }
16
- export function warn(msg) {
17
- console.warn(pc.yellow(`⚠ ${msg}`));
18
- }
19
- export function error(msg) {
20
- console.error(pc.red(`✗ ${msg}`));
21
- }
22
- export function debug(msg) {
23
- if (verbose) {
24
- console.log(pc.dim(`[debug] ${msg}`));
25
- }
26
- }
27
- /** No-op: structured data is not used in mewkit's console-based output */
28
- export function setData(_key, _value) {
29
- // No-op in mewkit context
30
- }
31
- //# sourceMappingURL=core-logger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"core-logger.js","sourceRoot":"","sources":["../../src/core/core-logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,IAAI,OAAO,GAAG,KAAK,CAAC;AAEpB,MAAM,UAAU,UAAU,CAAC,CAAU;IACpC,OAAO,GAAG,CAAC,CAAC;AACb,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,GAAW;IAC/B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,GAAW;IAClC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,GAAW;IAC/B,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,GAAW;IAChC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,GAAW;IAChC,IAAI,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC;IACvC,CAAC;AACF,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,OAAO,CAAC,IAAY,EAAE,MAAe;IACpD,0BAA0B;AAC3B,CAAC"}
@@ -1,29 +0,0 @@
1
- /** Dependency installer — venv creation, pip install, package verification */
2
- import type { SkillsDependency } from "./skills-dependencies.js";
3
- export interface InstallResult {
4
- name: string;
5
- success: boolean;
6
- error?: string;
7
- }
8
- export interface PackageVerification {
9
- name: string;
10
- installed: boolean;
11
- }
12
- /** Check if a command exists in PATH. Cross-platform: `where` on Windows, `which` on Unix. */
13
- export declare function commandAvailable(cmd: string): boolean;
14
- /** Find python command. Returns "python3", "python", "py" (Windows), or null. */
15
- export declare function findPython(): string | null;
16
- /** Get platform-correct pip binary path inside the venv */
17
- export declare function getPipPath(projectDir: string): string;
18
- /** Get platform-correct python binary path inside the venv */
19
- export declare function getVenvPythonPath(projectDir: string): string;
20
- /** Ensure the skills venv exists. Creates it if missing. */
21
- export declare function ensureVenv(projectDir: string): {
22
- venvDir: string;
23
- created: boolean;
24
- };
25
- /** Install pip packages sequentially into the venv */
26
- export declare function installPipPackages(projectDir: string, packages: readonly SkillsDependency[]): Promise<InstallResult[]>;
27
- /** Verify which packages are installed in the venv */
28
- export declare function verifyPackages(projectDir: string, packages: readonly SkillsDependency[]): PackageVerification[];
29
- //# sourceMappingURL=dependency-installer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dependency-installer.d.ts","sourceRoot":"","sources":["../../src/core/dependency-installer.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAM9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAGjE,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;CACnB;AAaD,8FAA8F;AAC9F,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAQrD;AAED,iFAAiF;AACjF,wBAAgB,UAAU,IAAI,MAAM,GAAG,IAAI,CAS1C;AAED,2DAA2D;AAC3D,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAKrD;AAED,8DAA8D;AAC9D,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAM5D;AAED,4DAA4D;AAC5D,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAWpF;AAoCD,sDAAsD;AACtD,wBAAsB,kBAAkB,CACvC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,SAAS,gBAAgB,EAAE,GACnC,OAAO,CAAC,aAAa,EAAE,CAAC,CAY1B;AASD,sDAAsD;AACtD,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,gBAAgB,EAAE,GAAG,mBAAmB,EAAE,CA0B/G"}
@@ -1,150 +0,0 @@
1
- /** Dependency installer — venv creation, pip install, package verification */
2
- import { existsSync } from "node:fs";
3
- import { join, resolve } from "node:path";
4
- import { execFileSync, spawn } from "node:child_process";
5
- import pc from "picocolors";
6
- import { validatePackageName, getBasePackageName } from "./skills-dependencies.js";
7
- const VENV_RELATIVE = join(".claude", "skills", ".venv");
8
- const PIP_TIMEOUT_MS = 120_000;
9
- /** Validate a path stays inside the .claude directory */
10
- function validateInsideClaude(projectDir, targetPath) {
11
- const claudeDir = resolve(projectDir, ".claude");
12
- if (!resolve(targetPath).startsWith(claudeDir)) {
13
- throw new Error(`Path escapes .claude directory: ${targetPath}`);
14
- }
15
- }
16
- /** Check if a command exists in PATH. Cross-platform: `where` on Windows, `which` on Unix. */
17
- export function commandAvailable(cmd) {
18
- const whichCmd = process.platform === "win32" ? "where" : "which";
19
- try {
20
- execFileSync(whichCmd, [cmd], { stdio: "pipe" });
21
- return true;
22
- }
23
- catch {
24
- return false;
25
- }
26
- }
27
- /** Find python command. Returns "python3", "python", "py" (Windows), or null. */
28
- export function findPython() {
29
- if (process.platform === "win32") {
30
- if (commandAvailable("py"))
31
- return "py";
32
- if (commandAvailable("python"))
33
- return "python";
34
- }
35
- else {
36
- if (commandAvailable("python3"))
37
- return "python3";
38
- if (commandAvailable("python"))
39
- return "python";
40
- }
41
- return null;
42
- }
43
- /** Get platform-correct pip binary path inside the venv */
44
- export function getPipPath(projectDir) {
45
- const venvDir = join(projectDir, VENV_RELATIVE);
46
- const pipPath = process.platform === "win32" ? join(venvDir, "Scripts", "pip.exe") : join(venvDir, "bin", "pip");
47
- validateInsideClaude(projectDir, pipPath);
48
- return pipPath;
49
- }
50
- /** Get platform-correct python binary path inside the venv */
51
- export function getVenvPythonPath(projectDir) {
52
- const venvDir = join(projectDir, VENV_RELATIVE);
53
- const pythonPath = process.platform === "win32" ? join(venvDir, "Scripts", "python.exe") : join(venvDir, "bin", "python3");
54
- validateInsideClaude(projectDir, pythonPath);
55
- return pythonPath;
56
- }
57
- /** Ensure the skills venv exists. Creates it if missing. */
58
- export function ensureVenv(projectDir) {
59
- const venvDir = join(projectDir, VENV_RELATIVE);
60
- validateInsideClaude(projectDir, venvDir);
61
- if (existsSync(venvDir))
62
- return { venvDir, created: false };
63
- const python = findPython();
64
- if (!python)
65
- throw new Error("python3 not found in PATH. Install Python 3.9+ first.");
66
- console.log(pc.dim(" Creating Python venv..."));
67
- execFileSync(python, ["-m", "venv", venvDir], { stdio: "pipe" });
68
- return { venvDir, created: true };
69
- }
70
- /** Install a single pip package with timeout */
71
- function installOnePackage(pipPath, packageName) {
72
- if (!validatePackageName(packageName)) {
73
- return Promise.resolve({ name: packageName, success: false, error: "Invalid package name" });
74
- }
75
- return new Promise((done) => {
76
- const proc = spawn(pipPath, ["install", packageName], { stdio: ["ignore", "pipe", "pipe"] });
77
- let stderr = "";
78
- const timer = setTimeout(() => {
79
- proc.kill("SIGTERM");
80
- stderr += "\nTimeout: exceeded 120s";
81
- }, PIP_TIMEOUT_MS);
82
- proc.stderr.on("data", (chunk) => {
83
- stderr += chunk.toString();
84
- });
85
- proc.stdout.on("data", (chunk) => {
86
- process.stdout.write(pc.dim(` ${chunk.toString().trim()}\n`));
87
- });
88
- proc.on("close", (code) => {
89
- clearTimeout(timer);
90
- done(code === 0
91
- ? { name: packageName, success: true }
92
- : { name: packageName, success: false, error: stderr.trim().split("\n").pop() || "Unknown error" });
93
- });
94
- proc.on("error", (err) => {
95
- clearTimeout(timer);
96
- done({ name: packageName, success: false, error: err.message });
97
- });
98
- });
99
- }
100
- /** Install pip packages sequentially into the venv */
101
- export async function installPipPackages(projectDir, packages) {
102
- const pipPath = getPipPath(projectDir);
103
- if (!existsSync(pipPath))
104
- throw new Error(`pip not found at ${pipPath}. Run 'mewkit setup --only=venv' first.`);
105
- const results = [];
106
- for (const pkg of packages) {
107
- console.log(` ${pc.cyan(">")} Installing ${pc.bold(pkg.name)}...`);
108
- const result = await installOnePackage(pipPath, pkg.name);
109
- results.push(result);
110
- console.log(result.success ? ` ${pc.green("✓")} ${pkg.name}` : ` ${pc.red("✗")} ${pkg.name}: ${result.error}`);
111
- }
112
- return results;
113
- }
114
- /** Map pip package names to Python import names */
115
- const IMPORT_NAME_MAP = {
116
- pillow: "PIL",
117
- "python-dotenv": "dotenv",
118
- "google-genai": "google.genai",
119
- };
120
- /** Verify which packages are installed in the venv */
121
- export function verifyPackages(projectDir, packages) {
122
- const pythonPath = getVenvPythonPath(projectDir);
123
- if (!existsSync(pythonPath))
124
- return packages.map((p) => ({ name: p.name, installed: false }));
125
- const pipPath = getPipPath(projectDir);
126
- return packages.map((pkg) => {
127
- const basePkgName = getBasePackageName(pkg.name);
128
- const importName = IMPORT_NAME_MAP[basePkgName];
129
- if (importName) {
130
- if (!/^[a-zA-Z0-9][a-zA-Z0-9._]*$/.test(importName))
131
- return { name: pkg.name, installed: false };
132
- try {
133
- execFileSync(pythonPath, ["-c", `import ${importName}`], { stdio: "pipe" });
134
- return { name: pkg.name, installed: true };
135
- }
136
- catch {
137
- return { name: pkg.name, installed: false };
138
- }
139
- }
140
- // Unknown package — pip show fallback
141
- try {
142
- execFileSync(pipPath, ["show", basePkgName], { stdio: "pipe" });
143
- return { name: pkg.name, installed: true };
144
- }
145
- catch {
146
- return { name: pkg.name, installed: false };
147
- }
148
- });
149
- }
150
- //# sourceMappingURL=dependency-installer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dependency-installer.js","sourceRoot":"","sources":["../../src/core/dependency-installer.ts"],"names":[],"mappings":"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"}
@@ -1,32 +0,0 @@
1
- export interface ReleaseInfo {
2
- tag: string;
3
- version: string;
4
- isBeta: boolean;
5
- downloadUrl: string;
6
- publishedAt: string;
7
- }
8
- /**
9
- * Fetch available releases from GitHub API.
10
- * Returns stable and beta releases, sorted by newest first.
11
- */
12
- export declare function fetchReleases(): Promise<ReleaseInfo[]>;
13
- /**
14
- * Get the latest stable release.
15
- */
16
- export declare function getLatestStable(): Promise<ReleaseInfo | null>;
17
- /**
18
- * Get the latest beta release.
19
- */
20
- export declare function getLatestBeta(): Promise<ReleaseInfo | null>;
21
- /**
22
- * Download a release zip and extract to a temp directory.
23
- * Returns the path to the extracted directory.
24
- */
25
- export declare function downloadRelease(release: ReleaseInfo): Promise<string>;
26
- /**
27
- * Clean up a downloaded release temp directory.
28
- * Uses fs.rmSync (Node 14.14+) instead of `rm -rf` so it works on Windows,
29
- * where cmd.exe has no `rm -rf` equivalent.
30
- */
31
- export declare function cleanupDownload(tempDir: string): void;
32
- //# sourceMappingURL=github-releases.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"github-releases.d.ts","sourceRoot":"","sources":["../../src/core/github-releases.ts"],"names":[],"mappings":"AAuBA,MAAM,WAAW,WAAW;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CA6B5D;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAGnE;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAGjE;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAiC3E;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAMrD"}
@@ -1,96 +0,0 @@
1
- import { mkdirSync, writeFileSync, rmSync } from "node:fs";
2
- import { join } from "node:path";
3
- import { tmpdir } from "node:os";
4
- import AdmZip from "adm-zip";
5
- import * as log from "./core-logger.js";
6
- /** GitHub repository for MeowKit releases */
7
- const GITHUB_OWNER = "ngocsangyem";
8
- const GITHUB_REPO = "MeowKit";
9
- /**
10
- * Fetch available releases from GitHub API.
11
- * Returns stable and beta releases, sorted by newest first.
12
- */
13
- export async function fetchReleases() {
14
- const url = `https://api.github.com/repos/${GITHUB_OWNER}/${GITHUB_REPO}/releases`;
15
- const response = await fetch(url, {
16
- headers: {
17
- Accept: "application/vnd.github.v3+json",
18
- "User-Agent": "mewkit",
19
- },
20
- });
21
- if (!response.ok) {
22
- throw new Error(`GitHub API error: ${response.status} ${response.statusText}`);
23
- }
24
- const releases = (await response.json());
25
- return releases
26
- .filter((r) => !r.draft)
27
- .map((r) => {
28
- // Find the release zip asset
29
- const zipAsset = r.assets.find((a) => a.name.endsWith(".zip"));
30
- return {
31
- tag: r.tag_name,
32
- version: r.tag_name.replace(/^v/, ""),
33
- isBeta: r.prerelease,
34
- downloadUrl: zipAsset?.browser_download_url ?? "",
35
- publishedAt: r.published_at,
36
- };
37
- })
38
- .filter((r) => r.downloadUrl !== "");
39
- }
40
- /**
41
- * Get the latest stable release.
42
- */
43
- export async function getLatestStable() {
44
- const releases = await fetchReleases();
45
- return releases.find((r) => !r.isBeta) ?? null;
46
- }
47
- /**
48
- * Get the latest beta release.
49
- */
50
- export async function getLatestBeta() {
51
- const releases = await fetchReleases();
52
- return releases.find((r) => r.isBeta) ?? null;
53
- }
54
- /**
55
- * Download a release zip and extract to a temp directory.
56
- * Returns the path to the extracted directory.
57
- */
58
- export async function downloadRelease(release) {
59
- const tempDir = join(tmpdir(), `meowkit-release-${release.version}-${Date.now()}`);
60
- mkdirSync(tempDir, { recursive: true });
61
- const zipPath = join(tempDir, "release.zip");
62
- log.debug(`Downloading ${release.downloadUrl}`);
63
- // Download the zip
64
- const response = await fetch(release.downloadUrl, {
65
- headers: { "User-Agent": "mewkit" },
66
- redirect: "follow",
67
- });
68
- if (!response.ok) {
69
- throw new Error(`Download failed: ${response.status} ${response.statusText}`);
70
- }
71
- const buffer = Buffer.from(await response.arrayBuffer());
72
- writeFileSync(zipPath, buffer);
73
- log.debug(`Downloaded ${buffer.length} bytes to ${zipPath}`);
74
- // Extract the zip — pure JS, works identically on macOS, Linux, Windows.
75
- // (Previous `unzip` shell call failed on Windows which has no unzip by default.)
76
- const extractDir = join(tempDir, "extracted");
77
- mkdirSync(extractDir, { recursive: true });
78
- const zip = new AdmZip(zipPath);
79
- zip.extractAllTo(extractDir, /* overwrite */ true);
80
- log.debug(`Extracted to ${extractDir}`);
81
- return extractDir;
82
- }
83
- /**
84
- * Clean up a downloaded release temp directory.
85
- * Uses fs.rmSync (Node 14.14+) instead of `rm -rf` so it works on Windows,
86
- * where cmd.exe has no `rm -rf` equivalent.
87
- */
88
- export function cleanupDownload(tempDir) {
89
- try {
90
- rmSync(tempDir, { recursive: true, force: true });
91
- }
92
- catch {
93
- // Best effort cleanup
94
- }
95
- }
96
- //# sourceMappingURL=github-releases.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"github-releases.js","sourceRoot":"","sources":["../../src/core/github-releases.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- /** Core modules — shared by init and upgrade commands */
2
- export * from "./github-releases.js";
3
- export * from "./compute-checksums.js";
4
- export * from "./merge-settings.js";
5
- export * from "./substitute-placeholders.js";
6
- export * from "./validate-install.js";
7
- export * from "./smart-update.js";
8
- export * from "./smart-update-utils.js";
9
- export * from "./core-logger.js";
10
- export * from "./skills-dependencies.js";
11
- export * from "./dependency-installer.js";
12
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC"}
@@ -1,12 +0,0 @@
1
- /** Core modules — shared by init and upgrade commands */
2
- export * from "./github-releases.js";
3
- export * from "./compute-checksums.js";
4
- export * from "./merge-settings.js";
5
- export * from "./substitute-placeholders.js";
6
- export * from "./validate-install.js";
7
- export * from "./smart-update.js";
8
- export * from "./smart-update-utils.js";
9
- export * from "./core-logger.js";
10
- export * from "./skills-dependencies.js";
11
- export * from "./dependency-installer.js";
12
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Merge template settings.json into existing user settings.json.
3
- * Strategy: append-only — add new hooks/permissions, never modify existing.
4
- * Returns true if merge succeeded, false if skipped or failed.
5
- */
6
- export declare function mergeSettingsFile(templatePath: string, destPath: string, dryRun: boolean): boolean;
7
- //# sourceMappingURL=merge-settings.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"merge-settings.d.ts","sourceRoot":"","sources":["../../src/core/merge-settings.ts"],"names":[],"mappings":"AA2BA;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAsDlG"}