chkit 0.1.2-beta.5 → 0.2.0-beta.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (305) hide show
  1. package/README.md +69 -56
  2. package/dist/bin/chkit.js +57 -26
  3. package/dist/bin/chkit.js.map +1 -1
  4. package/dist/commands/drift/compare.d.ts +26 -2
  5. package/dist/commands/drift/compare.d.ts.map +1 -1
  6. package/dist/commands/drift/compare.js +147 -41
  7. package/dist/commands/drift/compare.js.map +1 -1
  8. package/dist/commands/drift/payload.d.ts.map +1 -1
  9. package/dist/commands/drift/payload.js +39 -8
  10. package/dist/commands/drift/payload.js.map +1 -1
  11. package/dist/commands/generate/command.d.ts.map +1 -1
  12. package/dist/commands/generate/command.js +20 -22
  13. package/dist/commands/generate/command.js.map +1 -1
  14. package/dist/commands/generate/dictionary-password-warnings.d.ts +3 -0
  15. package/dist/commands/generate/dictionary-password-warnings.d.ts.map +1 -0
  16. package/dist/commands/generate/dictionary-password-warnings.js +7 -0
  17. package/dist/commands/generate/dictionary-password-warnings.js.map +1 -0
  18. package/dist/commands/generate/output.d.ts +2 -2
  19. package/dist/commands/generate/output.d.ts.map +1 -1
  20. package/dist/commands/generate/output.js +8 -2
  21. package/dist/commands/generate/output.js.map +1 -1
  22. package/dist/commands/generate/plan-pipeline.d.ts +2 -1
  23. package/dist/commands/generate/plan-pipeline.d.ts.map +1 -1
  24. package/dist/commands/generate/plan-pipeline.js +69 -27
  25. package/dist/commands/generate/plan-pipeline.js.map +1 -1
  26. package/dist/commands/generate/rename-mappings.d.ts +14 -0
  27. package/dist/commands/generate/rename-mappings.d.ts.map +1 -1
  28. package/dist/commands/generate/rename-mappings.js +131 -19
  29. package/dist/commands/generate/rename-mappings.js.map +1 -1
  30. package/dist/commands/init.d.ts +2 -0
  31. package/dist/commands/init.d.ts.map +1 -1
  32. package/dist/commands/init.js +21 -4
  33. package/dist/commands/init.js.map +1 -1
  34. package/dist/commands/migrate/abandon.d.ts +38 -0
  35. package/dist/commands/migrate/abandon.d.ts.map +1 -0
  36. package/dist/commands/migrate/abandon.js +75 -0
  37. package/dist/commands/migrate/abandon.js.map +1 -0
  38. package/dist/commands/migrate/apply.d.ts +7 -0
  39. package/dist/commands/migrate/apply.d.ts.map +1 -1
  40. package/dist/commands/migrate/apply.js +45 -6
  41. package/dist/commands/migrate/apply.js.map +1 -1
  42. package/dist/commands/migrate/async-apply.d.ts.map +1 -1
  43. package/dist/commands/migrate/async-apply.js +78 -16
  44. package/dist/commands/migrate/async-apply.js.map +1 -1
  45. package/dist/commands/migrate/command.d.ts +44 -1
  46. package/dist/commands/migrate/command.d.ts.map +1 -1
  47. package/dist/commands/migrate/command.js +148 -34
  48. package/dist/commands/migrate/command.js.map +1 -1
  49. package/dist/commands/migrate/empty.d.ts +8 -0
  50. package/dist/commands/migrate/empty.d.ts.map +1 -0
  51. package/dist/commands/migrate/empty.js +17 -0
  52. package/dist/commands/migrate/empty.js.map +1 -0
  53. package/dist/commands/migrate/errors.d.ts +22 -0
  54. package/dist/commands/migrate/errors.d.ts.map +1 -0
  55. package/dist/commands/migrate/errors.js +31 -0
  56. package/dist/commands/migrate/errors.js.map +1 -0
  57. package/dist/commands/migrate/output.d.ts +31 -0
  58. package/dist/commands/migrate/output.d.ts.map +1 -1
  59. package/dist/commands/migrate/output.js +120 -9
  60. package/dist/commands/migrate/output.js.map +1 -1
  61. package/dist/commands/migrate/prompts.d.ts +1 -0
  62. package/dist/commands/migrate/prompts.d.ts.map +1 -1
  63. package/dist/commands/migrate/prompts.js +3 -0
  64. package/dist/commands/migrate/prompts.js.map +1 -1
  65. package/dist/commands/migrate/recovery.d.ts +90 -0
  66. package/dist/commands/migrate/recovery.d.ts.map +1 -0
  67. package/dist/commands/migrate/recovery.js +163 -0
  68. package/dist/commands/migrate/recovery.js.map +1 -0
  69. package/dist/commands/migrate/retry.d.ts +37 -0
  70. package/dist/commands/migrate/retry.d.ts.map +1 -0
  71. package/dist/commands/migrate/retry.js +46 -0
  72. package/dist/commands/migrate/retry.js.map +1 -0
  73. package/dist/commands/plugin.js +3 -1
  74. package/dist/commands/plugin.js.map +1 -1
  75. package/dist/commands/registry.d.ts +2 -0
  76. package/dist/commands/registry.d.ts.map +1 -0
  77. package/dist/commands/registry.js +228 -0
  78. package/dist/commands/registry.js.map +1 -0
  79. package/dist/commands/snapshot/command.d.ts +3 -0
  80. package/dist/commands/snapshot/command.d.ts.map +1 -0
  81. package/dist/commands/snapshot/command.js +32 -0
  82. package/dist/commands/snapshot/command.js.map +1 -0
  83. package/dist/commands/snapshot/output.d.ts +24 -0
  84. package/dist/commands/snapshot/output.d.ts.map +1 -0
  85. package/dist/commands/snapshot/output.js +86 -0
  86. package/dist/commands/snapshot/output.js.map +1 -0
  87. package/dist/commands/snapshot/rebuild.d.ts +19 -0
  88. package/dist/commands/snapshot/rebuild.d.ts.map +1 -0
  89. package/dist/commands/snapshot/rebuild.js +77 -0
  90. package/dist/commands/snapshot/rebuild.js.map +1 -0
  91. package/dist/internal-plugins/core/plugin.d.ts.map +1 -1
  92. package/dist/internal-plugins/core/plugin.js +2 -0
  93. package/dist/internal-plugins/core/plugin.js.map +1 -1
  94. package/dist/registry/build.d.ts +17 -0
  95. package/dist/registry/build.d.ts.map +1 -0
  96. package/dist/registry/build.js +94 -0
  97. package/dist/registry/build.js.map +1 -0
  98. package/dist/registry/dependencies.d.ts +19 -0
  99. package/dist/registry/dependencies.d.ts.map +1 -0
  100. package/dist/registry/dependencies.js +105 -0
  101. package/dist/registry/dependencies.js.map +1 -0
  102. package/dist/registry/files.d.ts +4 -0
  103. package/dist/registry/files.d.ts.map +1 -0
  104. package/dist/registry/files.js +33 -0
  105. package/dist/registry/files.js.map +1 -0
  106. package/dist/registry/install.d.ts +55 -0
  107. package/dist/registry/install.d.ts.map +1 -0
  108. package/dist/registry/install.js +175 -0
  109. package/dist/registry/install.js.map +1 -0
  110. package/dist/registry/model.d.ts +172 -0
  111. package/dist/registry/model.d.ts.map +1 -0
  112. package/dist/registry/model.js +161 -0
  113. package/dist/registry/model.js.map +1 -0
  114. package/dist/registry/project-config.d.ts +18 -0
  115. package/dist/registry/project-config.d.ts.map +1 -0
  116. package/dist/registry/project-config.js +337 -0
  117. package/dist/registry/project-config.js.map +1 -0
  118. package/dist/registry/resolve.d.ts +7 -0
  119. package/dist/registry/resolve.d.ts.map +1 -0
  120. package/dist/registry/resolve.js +129 -0
  121. package/dist/registry/resolve.js.map +1 -0
  122. package/dist/runtime/argv.d.ts +3 -0
  123. package/dist/runtime/argv.d.ts.map +1 -0
  124. package/dist/runtime/argv.js +29 -0
  125. package/dist/runtime/argv.js.map +1 -0
  126. package/dist/runtime/command-dispatch.d.ts.map +1 -1
  127. package/dist/runtime/command-dispatch.js +5 -0
  128. package/dist/runtime/command-dispatch.js.map +1 -1
  129. package/dist/runtime/config-merge.d.ts.map +1 -1
  130. package/dist/runtime/config-merge.js +2 -1
  131. package/dist/runtime/config-merge.js.map +1 -1
  132. package/dist/runtime/global-flags.d.ts +4 -0
  133. package/dist/runtime/global-flags.d.ts.map +1 -1
  134. package/dist/runtime/global-flags.js +1 -0
  135. package/dist/runtime/global-flags.js.map +1 -1
  136. package/dist/runtime/help.d.ts.map +1 -1
  137. package/dist/runtime/help.js +3 -0
  138. package/dist/runtime/help.js.map +1 -1
  139. package/dist/runtime/journal-store.d.ts.map +1 -1
  140. package/dist/runtime/journal-store.js +55 -26
  141. package/dist/runtime/journal-store.js.map +1 -1
  142. package/dist/runtime/json-output.d.ts +1 -1
  143. package/dist/runtime/json-output.d.ts.map +1 -1
  144. package/dist/runtime/json-output.js.map +1 -1
  145. package/dist/runtime/migration-store.d.ts +1 -1
  146. package/dist/runtime/migration-store.d.ts.map +1 -1
  147. package/dist/runtime/migration-store.js +17 -16
  148. package/dist/runtime/migration-store.js.map +1 -1
  149. package/dist/runtime/plugin-runtime/executor-debug.d.ts.map +1 -1
  150. package/dist/runtime/plugin-runtime/executor-debug.js +2 -0
  151. package/dist/runtime/plugin-runtime/executor-debug.js.map +1 -1
  152. package/dist/runtime/plugin-runtime/loader.js +1 -1
  153. package/dist/runtime/plugin-runtime/loader.js.map +1 -1
  154. package/dist/runtime/safety-markers.d.ts.map +1 -1
  155. package/dist/runtime/safety-markers.js +13 -2
  156. package/dist/runtime/safety-markers.js.map +1 -1
  157. package/dist/runtime/schema-loader.d.ts +20 -1
  158. package/dist/runtime/schema-loader.d.ts.map +1 -1
  159. package/dist/runtime/schema-loader.js +26 -0
  160. package/dist/runtime/schema-loader.js.map +1 -1
  161. package/dist/runtime/snapshot-document.d.ts +33 -0
  162. package/dist/runtime/snapshot-document.d.ts.map +1 -0
  163. package/dist/runtime/snapshot-document.js +65 -0
  164. package/dist/runtime/snapshot-document.js.map +1 -0
  165. package/package.json +17 -7
  166. package/dist/bin/clickhouse-resource.d.ts +0 -4
  167. package/dist/bin/clickhouse-resource.d.ts.map +0 -1
  168. package/dist/bin/clickhouse-resource.js +0 -11
  169. package/dist/bin/clickhouse-resource.js.map +0 -1
  170. package/dist/bin/command-dispatch.d.ts +0 -13
  171. package/dist/bin/command-dispatch.d.ts.map +0 -1
  172. package/dist/bin/command-dispatch.js +0 -186
  173. package/dist/bin/command-dispatch.js.map +0 -1
  174. package/dist/bin/command-registry.d.ts +0 -34
  175. package/dist/bin/command-registry.d.ts.map +0 -1
  176. package/dist/bin/command-registry.js +0 -87
  177. package/dist/bin/command-registry.js.map +0 -1
  178. package/dist/bin/commands/check.d.ts +0 -3
  179. package/dist/bin/commands/check.d.ts.map +0 -1
  180. package/dist/bin/commands/check.js +0 -181
  181. package/dist/bin/commands/check.js.map +0 -1
  182. package/dist/bin/commands/codegen.d.ts +0 -2
  183. package/dist/bin/commands/codegen.d.ts.map +0 -1
  184. package/dist/bin/commands/codegen.js +0 -25
  185. package/dist/bin/commands/codegen.js.map +0 -1
  186. package/dist/bin/commands/drift.d.ts +0 -27
  187. package/dist/bin/commands/drift.d.ts.map +0 -1
  188. package/dist/bin/commands/drift.js +0 -220
  189. package/dist/bin/commands/drift.js.map +0 -1
  190. package/dist/bin/commands/generate/output.d.ts +0 -8
  191. package/dist/bin/commands/generate/output.d.ts.map +0 -1
  192. package/dist/bin/commands/generate/output.js +0 -58
  193. package/dist/bin/commands/generate/output.js.map +0 -1
  194. package/dist/bin/commands/generate/plan-pipeline.d.ts +0 -7
  195. package/dist/bin/commands/generate/plan-pipeline.d.ts.map +0 -1
  196. package/dist/bin/commands/generate/plan-pipeline.js +0 -143
  197. package/dist/bin/commands/generate/plan-pipeline.js.map +0 -1
  198. package/dist/bin/commands/generate/rename-mappings.d.ts +0 -29
  199. package/dist/bin/commands/generate/rename-mappings.d.ts.map +0 -1
  200. package/dist/bin/commands/generate/rename-mappings.js +0 -195
  201. package/dist/bin/commands/generate/rename-mappings.js.map +0 -1
  202. package/dist/bin/commands/generate.d.ts +0 -3
  203. package/dist/bin/commands/generate.d.ts.map +0 -1
  204. package/dist/bin/commands/generate.js +0 -158
  205. package/dist/bin/commands/generate.js.map +0 -1
  206. package/dist/bin/commands/init.d.ts +0 -2
  207. package/dist/bin/commands/init.d.ts.map +0 -1
  208. package/dist/bin/commands/init.js +0 -12
  209. package/dist/bin/commands/init.js.map +0 -1
  210. package/dist/bin/commands/migrate.d.ts +0 -3
  211. package/dist/bin/commands/migrate.d.ts.map +0 -1
  212. package/dist/bin/commands/migrate.js +0 -288
  213. package/dist/bin/commands/migrate.js.map +0 -1
  214. package/dist/bin/commands/plugin-like.d.ts +0 -38
  215. package/dist/bin/commands/plugin-like.d.ts.map +0 -1
  216. package/dist/bin/commands/plugin-like.js +0 -101
  217. package/dist/bin/commands/plugin-like.js.map +0 -1
  218. package/dist/bin/commands/plugin.d.ts +0 -3
  219. package/dist/bin/commands/plugin.d.ts.map +0 -1
  220. package/dist/bin/commands/plugin.js +0 -148
  221. package/dist/bin/commands/plugin.js.map +0 -1
  222. package/dist/bin/commands/pull.d.ts +0 -2
  223. package/dist/bin/commands/pull.d.ts.map +0 -1
  224. package/dist/bin/commands/pull.js +0 -25
  225. package/dist/bin/commands/pull.js.map +0 -1
  226. package/dist/bin/commands/status.d.ts +0 -3
  227. package/dist/bin/commands/status.d.ts.map +0 -1
  228. package/dist/bin/commands/status.js +0 -63
  229. package/dist/bin/commands/status.js.map +0 -1
  230. package/dist/bin/commands/typegen.d.ts +0 -2
  231. package/dist/bin/commands/typegen.d.ts.map +0 -1
  232. package/dist/bin/commands/typegen.js +0 -25
  233. package/dist/bin/commands/typegen.js.map +0 -1
  234. package/dist/bin/config.d.ts +0 -13
  235. package/dist/bin/config.d.ts.map +0 -1
  236. package/dist/bin/config.js +0 -48
  237. package/dist/bin/config.js.map +0 -1
  238. package/dist/bin/debug.d.ts +0 -3
  239. package/dist/bin/debug.d.ts.map +0 -1
  240. package/dist/bin/debug.js +0 -14
  241. package/dist/bin/debug.js.map +0 -1
  242. package/dist/bin/global-flags.d.ts +0 -16
  243. package/dist/bin/global-flags.d.ts.map +0 -1
  244. package/dist/bin/global-flags.js +0 -7
  245. package/dist/bin/global-flags.js.map +0 -1
  246. package/dist/bin/help.d.ts +0 -5
  247. package/dist/bin/help.d.ts.map +0 -1
  248. package/dist/bin/help.js +0 -84
  249. package/dist/bin/help.js.map +0 -1
  250. package/dist/bin/internal-plugins/index.d.ts +0 -3
  251. package/dist/bin/internal-plugins/index.d.ts.map +0 -1
  252. package/dist/bin/internal-plugins/index.js +0 -5
  253. package/dist/bin/internal-plugins/index.js.map +0 -1
  254. package/dist/bin/internal-plugins/skill-hint.d.ts +0 -31
  255. package/dist/bin/internal-plugins/skill-hint.d.ts.map +0 -1
  256. package/dist/bin/internal-plugins/skill-hint.js +0 -172
  257. package/dist/bin/internal-plugins/skill-hint.js.map +0 -1
  258. package/dist/bin/journal-store.d.ts +0 -10
  259. package/dist/bin/journal-store.d.ts.map +0 -1
  260. package/dist/bin/journal-store.js +0 -137
  261. package/dist/bin/journal-store.js.map +0 -1
  262. package/dist/bin/json-output.d.ts +0 -5
  263. package/dist/bin/json-output.d.ts.map +0 -1
  264. package/dist/bin/json-output.js +0 -21
  265. package/dist/bin/json-output.js.map +0 -1
  266. package/dist/bin/lib.d.ts +0 -5
  267. package/dist/bin/lib.d.ts.map +0 -1
  268. package/dist/bin/lib.js +0 -5
  269. package/dist/bin/lib.js.map +0 -1
  270. package/dist/bin/logging.d.ts +0 -3
  271. package/dist/bin/logging.d.ts.map +0 -1
  272. package/dist/bin/logging.js +0 -31
  273. package/dist/bin/logging.js.map +0 -1
  274. package/dist/bin/migration-store.d.ts +0 -22
  275. package/dist/bin/migration-store.d.ts.map +0 -1
  276. package/dist/bin/migration-store.js +0 -60
  277. package/dist/bin/migration-store.js.map +0 -1
  278. package/dist/bin/plugin-runtime.d.ts +0 -45
  279. package/dist/bin/plugin-runtime.d.ts.map +0 -1
  280. package/dist/bin/plugin-runtime.js +0 -513
  281. package/dist/bin/plugin-runtime.js.map +0 -1
  282. package/dist/bin/safety-markers.d.ts +0 -23
  283. package/dist/bin/safety-markers.d.ts.map +0 -1
  284. package/dist/bin/safety-markers.js +0 -85
  285. package/dist/bin/safety-markers.js.map +0 -1
  286. package/dist/bin/schema-loader.d.ts +0 -3
  287. package/dist/bin/schema-loader.d.ts.map +0 -1
  288. package/dist/bin/schema-loader.js +0 -11
  289. package/dist/bin/schema-loader.js.map +0 -1
  290. package/dist/bin/table-scope.d.ts +0 -38
  291. package/dist/bin/table-scope.d.ts.map +0 -1
  292. package/dist/bin/table-scope.js +0 -167
  293. package/dist/bin/table-scope.js.map +0 -1
  294. package/dist/bin/version.d.ts +0 -2
  295. package/dist/bin/version.d.ts.map +0 -1
  296. package/dist/bin/version.js +0 -5
  297. package/dist/bin/version.js.map +0 -1
  298. package/dist/drift-diff.d.ts +0 -8
  299. package/dist/drift-diff.d.ts.map +0 -1
  300. package/dist/drift-diff.js +0 -46
  301. package/dist/drift-diff.js.map +0 -1
  302. package/dist/drift.d.ts +0 -66
  303. package/dist/drift.d.ts.map +0 -1
  304. package/dist/drift.js +0 -220
  305. package/dist/drift.js.map +0 -1
@@ -1,25 +0,0 @@
1
- import { buildPluginLikeContext, runPluginLikeCommand } from './plugin-like.js';
2
- export async function cmdPull(args) {
3
- const context = await buildPluginLikeContext({
4
- args,
5
- command: 'pull',
6
- handleInvalidPluginOptions: true,
7
- });
8
- if (!context)
9
- return;
10
- const pluginName = 'pull';
11
- const commandName = 'schema';
12
- await runPluginLikeCommand({
13
- context,
14
- pluginName,
15
- commandName,
16
- commandArgs: context.commandArgs,
17
- missingPluginMessage() {
18
- return 'Pull plugin is not configured. Add a plugin with manifest.name "pull" to config.plugins.';
19
- },
20
- missingCommandMessage({ availableCommands }) {
21
- return `Pull plugin is configured but does not expose command "${commandName}". Available: ${availableCommands.length > 0 ? availableCommands.join(', ') : '(none)'}.`;
22
- },
23
- });
24
- }
25
- //# sourceMappingURL=pull.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pull.js","sourceRoot":"","sources":["../../../src/bin/commands/pull.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAE/E,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAc;IAC1C,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC;QAC3C,IAAI;QACJ,OAAO,EAAE,MAAM;QACf,0BAA0B,EAAE,IAAI;KACjC,CAAC,CAAA;IACF,IAAI,CAAC,OAAO;QAAE,OAAM;IAEpB,MAAM,UAAU,GAAG,MAAM,CAAA;IACzB,MAAM,WAAW,GAAG,QAAQ,CAAA;IAC5B,MAAM,oBAAoB,CAAC;QACzB,OAAO;QACP,UAAU;QACV,WAAW;QACX,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,oBAAoB;YAClB,OAAO,0FAA0F,CAAA;QACnG,CAAC;QACD,qBAAqB,CAAC,EAAE,iBAAiB,EAAE;YACzC,OAAO,0DAA0D,WAAW,iBAAiB,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAA;QACxK,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { CommandDef } from '../../plugins.js';
2
- export declare const statusCommand: CommandDef;
3
- //# sourceMappingURL=status.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/bin/commands/status.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAqB,MAAM,kBAAkB,CAAA;AAMrE,eAAO,MAAM,aAAa,EAAE,UAK3B,CAAA"}
@@ -1,63 +0,0 @@
1
- import { mkdir } from 'node:fs/promises';
2
- import { debug } from '../debug.js';
3
- import { emitJson } from '../json-output.js';
4
- import { createJournalStore } from '../journal-store.js';
5
- import { findChecksumMismatches, listMigrations } from '../migration-store.js';
6
- export const statusCommand = {
7
- name: 'status',
8
- description: 'Show migration status and checksum mismatch information',
9
- flags: [],
10
- run: cmdStatus,
11
- };
12
- async function cmdStatus(runCtx) {
13
- const { flags, config, dirs, ctx } = runCtx;
14
- const jsonMode = flags['--json'] === true;
15
- const { migrationsDir } = dirs;
16
- if (!ctx.hasExecutor) {
17
- throw new Error('clickhouse config is required for status (journal is stored in ClickHouse)');
18
- }
19
- const db = ctx.executor;
20
- const database = config.clickhouse?.database;
21
- const journalStore = createJournalStore(db);
22
- await mkdir(migrationsDir, { recursive: true });
23
- const files = await listMigrations(migrationsDir);
24
- const journal = await journalStore.readJournal();
25
- const appliedNames = new Set(journal.applied.map((entry) => entry.name));
26
- const pending = files.filter((f) => !appliedNames.has(f));
27
- const checksumMismatches = await findChecksumMismatches(migrationsDir, journal);
28
- debug('status', `files=${files.length}, applied=${journal.applied.length}, pending=${pending.length}, checksumMismatches=${checksumMismatches.length}`);
29
- const databaseMissing = journalStore.databaseMissing;
30
- const payload = {
31
- migrationsDir,
32
- total: files.length,
33
- applied: journal.applied.length,
34
- pending: pending.length,
35
- pendingMigrations: pending,
36
- checksumMismatchCount: checksumMismatches.length,
37
- checksumMismatches,
38
- ...(databaseMissing ? { databaseMissing: true, database } : {}),
39
- };
40
- if (jsonMode) {
41
- emitJson('status', payload);
42
- return;
43
- }
44
- if (databaseMissing) {
45
- console.log(`\u26A0 Database "${database ?? ''}" does not exist on the target server.`);
46
- console.log(' It will be created when you run: chkit migrate --apply\n');
47
- }
48
- console.log(`Migrations directory: ${migrationsDir}`);
49
- console.log(`Total migrations: ${files.length}`);
50
- console.log(`Applied: ${journal.applied.length}`);
51
- console.log(`Pending: ${pending.length}`);
52
- if (pending.length > 0) {
53
- console.log('\nPending migrations:');
54
- for (const item of pending)
55
- console.log(`- ${item}`);
56
- }
57
- if (checksumMismatches.length > 0) {
58
- console.log('\nChecksum mismatches on applied migrations:');
59
- for (const item of checksumMismatches)
60
- console.log(`- ${item.name}`);
61
- }
62
- }
63
- //# sourceMappingURL=status.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/bin/commands/status.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare function cmdTypegen(args: string[]): Promise<void>;
2
- //# sourceMappingURL=typegen.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"typegen.d.ts","sourceRoot":"","sources":["../../../src/bin/commands/typegen.ts"],"names":[],"mappings":"AAEA,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsB9D"}
@@ -1,25 +0,0 @@
1
- import { buildPluginLikeContext, runPluginLikeCommand } from './plugin-like.js';
2
- export async function cmdTypegen(args) {
3
- const context = await buildPluginLikeContext({
4
- args,
5
- command: 'typegen',
6
- handleInvalidPluginOptions: true,
7
- });
8
- if (!context)
9
- return;
10
- const pluginName = 'typegen';
11
- const commandName = 'typegen';
12
- await runPluginLikeCommand({
13
- context,
14
- pluginName,
15
- commandName,
16
- commandArgs: context.commandArgs,
17
- missingPluginMessage() {
18
- return 'Typegen plugin is not configured. Add a plugin with manifest.name "typegen" to config.plugins.';
19
- },
20
- missingCommandMessage({ availableCommands }) {
21
- return `Typegen plugin is configured but does not expose command "${commandName}". Available: ${availableCommands.length > 0 ? availableCommands.join(', ') : '(none)'}.`;
22
- },
23
- });
24
- }
25
- //# sourceMappingURL=typegen.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"typegen.js","sourceRoot":"","sources":["../../../src/bin/commands/typegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAE/E,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAc;IAC7C,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC;QAC3C,IAAI;QACJ,OAAO,EAAE,SAAS;QAClB,0BAA0B,EAAE,IAAI;KACjC,CAAC,CAAA;IACF,IAAI,CAAC,OAAO;QAAE,OAAM;IAEpB,MAAM,UAAU,GAAG,SAAS,CAAA;IAC5B,MAAM,WAAW,GAAG,SAAS,CAAA;IAC7B,MAAM,oBAAoB,CAAC;QACzB,OAAO;QACP,UAAU;QACV,WAAW;QACX,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,oBAAoB;YAClB,OAAO,gGAAgG,CAAA;QACzG,CAAC;QACD,qBAAqB,CAAC,EAAE,iBAAiB,EAAE;YACzC,OAAO,6DAA6D,WAAW,iBAAiB,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAA;QAC3K,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
@@ -1,13 +0,0 @@
1
- import { type ChxConfigEnv, type ResolvedChxConfig } from '@chkit/core';
2
- export declare const DEFAULT_CONFIG_FILE = "clickhouse.config.ts";
3
- export declare function loadConfig(configPathArg?: string, env?: ChxConfigEnv): Promise<{
4
- config: ResolvedChxConfig;
5
- path: string;
6
- }>;
7
- export declare function writeIfMissing(filePath: string, content: string): Promise<void>;
8
- export declare function resolveDirs(config: ResolvedChxConfig): {
9
- outDir: string;
10
- migrationsDir: string;
11
- metaDir: string;
12
- };
13
- //# sourceMappingURL=config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/bin/config.ts"],"names":[],"mappings":"AAMA,OAAO,EAGL,KAAK,YAAY,EAGjB,KAAK,iBAAiB,EACvB,MAAM,aAAa,CAAA;AAGpB,eAAO,MAAM,mBAAmB,yBAAyB,CAAA;AAMzD,wBAAsB,UAAU,CAC9B,aAAa,CAAC,EAAE,MAAM,EACtB,GAAG,GAAE,YAAiB,GACrB,OAAO,CAAC;IAAE,MAAM,EAAE,iBAAiB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CA6BtD;AAED,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIrF;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAKjH"}
@@ -1,48 +0,0 @@
1
- import { existsSync } from 'node:fs';
2
- import { mkdir, writeFile } from 'node:fs/promises';
3
- import { dirname, resolve } from 'node:path';
4
- import process from 'node:process';
5
- import { pathToFileURL } from 'node:url';
6
- import { resolveConfig, } from '@chkit/core';
7
- import { debug } from './debug.js';
8
- export const DEFAULT_CONFIG_FILE = 'clickhouse.config.ts';
9
- function isConfigFunction(candidate) {
10
- return typeof candidate === 'function';
11
- }
12
- export async function loadConfig(configPathArg, env = {}) {
13
- const configPath = resolve(process.cwd(), configPathArg ?? DEFAULT_CONFIG_FILE);
14
- debug('config', `resolving config at ${configPath}`);
15
- if (!existsSync(configPath)) {
16
- throw new Error(`Config not found at ${configPath}. Run 'chkit init' first.`);
17
- }
18
- const mod = await import(pathToFileURL(configPath).href);
19
- const candidate = (mod.default ?? mod.config);
20
- if (!candidate) {
21
- throw new Error(`Config file ${configPath} must export a default/config object or a function via defineConfig.`);
22
- }
23
- const isFn = isConfigFunction(candidate);
24
- debug('config', `config export is ${isFn ? 'function' : 'object'}`);
25
- const userConfig = isFn ? await candidate(env) : candidate;
26
- const config = resolveConfig(userConfig);
27
- debug('config', `loaded`, {
28
- schema: config.schema,
29
- outDir: config.outDir,
30
- migrationsDir: config.migrationsDir,
31
- clickhouse: config.clickhouse ? `${config.clickhouse.url} (db: ${config.clickhouse.database ?? 'default'})` : 'not configured',
32
- plugins: (config.plugins ?? []).length,
33
- });
34
- return { config, path: configPath };
35
- }
36
- export async function writeIfMissing(filePath, content) {
37
- if (existsSync(filePath))
38
- return;
39
- await mkdir(dirname(filePath), { recursive: true });
40
- await writeFile(filePath, content, 'utf8');
41
- }
42
- export function resolveDirs(config) {
43
- const outDir = resolve(process.cwd(), config.outDir);
44
- const migrationsDir = resolve(process.cwd(), config.migrationsDir);
45
- const metaDir = resolve(process.cwd(), config.metaDir);
46
- return { outDir, migrationsDir, metaDir };
47
- }
48
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/bin/config.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export declare function debug(category: string, message: string, detail?: unknown): void;
2
- export { isDebugEnabled } from './logging.js';
3
- //# sourceMappingURL=debug.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../src/bin/debug.ts"],"names":[],"mappings":"AAIA,wBAAgB,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAQ/E;AAED,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA"}
package/dist/bin/debug.js DELETED
@@ -1,14 +0,0 @@
1
- import { getLogger } from '@logtape/logtape';
2
- import { isDebugEnabled } from './logging.js';
3
- export function debug(category, message, detail) {
4
- if (!isDebugEnabled())
5
- return;
6
- const logger = getLogger(['chkit', category]);
7
- if (detail !== undefined) {
8
- logger.debug(message, { detail });
9
- return;
10
- }
11
- logger.debug(message);
12
- }
13
- export { isDebugEnabled } from './logging.js';
14
- //# sourceMappingURL=debug.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/bin/debug.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7C,MAAM,UAAU,KAAK,CAAC,QAAgB,EAAE,OAAe,EAAE,MAAgB;IACvE,IAAI,CAAC,cAAc,EAAE;QAAE,OAAM;IAC7B,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAA;IAC7C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;QACjC,OAAM;IACR,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;AACvB,CAAC;AAED,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA"}
@@ -1,16 +0,0 @@
1
- export declare const GLOBAL_FLAGS: readonly [{
2
- readonly name: "--config";
3
- readonly type: "string";
4
- readonly description: "Path to config file";
5
- readonly placeholder: "<path>";
6
- }, {
7
- readonly name: "--json";
8
- readonly type: "boolean";
9
- readonly description: "Emit machine-readable JSON output";
10
- }, {
11
- readonly name: "--table";
12
- readonly type: "string";
13
- readonly description: "Limit command scope to tables by exact name or trailing wildcard prefix";
14
- readonly placeholder: "<selector>";
15
- }];
16
- //# sourceMappingURL=global-flags.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"global-flags.d.ts","sourceRoot":"","sources":["../../src/bin/global-flags.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;EAId,CAAA"}
@@ -1,7 +0,0 @@
1
- import { defineFlags } from '@chkit/core';
2
- export const GLOBAL_FLAGS = defineFlags([
3
- { name: '--config', type: 'string', description: 'Path to config file', placeholder: '<path>' },
4
- { name: '--json', type: 'boolean', description: 'Emit machine-readable JSON output' },
5
- { name: '--table', type: 'string', description: 'Limit command scope to tables by exact name or trailing wildcard prefix', placeholder: '<selector>' },
6
- ]);
7
- //# sourceMappingURL=global-flags.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"global-flags.js","sourceRoot":"","sources":["../../src/bin/global-flags.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC,MAAM,CAAC,MAAM,YAAY,GAAG,WAAW,CAAC;IACtC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE,WAAW,EAAE,QAAQ,EAAE;IAC/F,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,mCAAmC,EAAE;IACrF,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yEAAyE,EAAE,WAAW,EAAE,YAAY,EAAE;CAC9I,CAAC,CAAA"}
@@ -1,5 +0,0 @@
1
- import type { FlagDef } from '../plugins.js';
2
- import type { CommandRegistry, RegisteredCommand } from './command-registry.js';
3
- export declare function formatGlobalHelp(registry: CommandRegistry, version: string): string;
4
- export declare function formatCommandHelp(command: RegisteredCommand, globalFlags: readonly FlagDef[]): string;
5
- //# sourceMappingURL=help.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/bin/help.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAE/E,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CA0CnF;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,SAAS,OAAO,EAAE,GAAG,MAAM,CAuCrG"}
package/dist/bin/help.js DELETED
@@ -1,84 +0,0 @@
1
- export function formatGlobalHelp(registry, version) {
2
- const lines = [];
3
- lines.push(`chkit v${version} - ClickHouse toolkit`);
4
- lines.push('');
5
- lines.push('Usage:');
6
- lines.push(' chkit <command> [options]');
7
- lines.push('');
8
- lines.push('Commands:');
9
- lines.push(` ${'init'.padEnd(14)} Scaffold a new project with config and example schema`);
10
- const coreCommands = registry.commands.filter((c) => !c.isPlugin);
11
- const pluginCommands = registry.commands.filter((c) => c.isPlugin);
12
- for (const cmd of coreCommands) {
13
- lines.push(` ${cmd.name.padEnd(14)} ${cmd.description}`);
14
- }
15
- if (pluginCommands.length > 0) {
16
- lines.push('');
17
- lines.push('Plugin commands:');
18
- for (const cmd of pluginCommands) {
19
- if (cmd.subcommands) {
20
- lines.push(` ${cmd.name.padEnd(14)} ${cmd.description}`);
21
- for (const sub of cmd.subcommands) {
22
- lines.push(` ${sub.name.padEnd(12)} ${sub.description}`);
23
- }
24
- }
25
- else {
26
- lines.push(` ${cmd.name.padEnd(14)} ${cmd.description}`);
27
- }
28
- }
29
- }
30
- lines.push('');
31
- lines.push('Global options:');
32
- for (const flag of registry.globalFlags) {
33
- lines.push(formatFlagLine(flag));
34
- }
35
- lines.push(formatFlagLine({ name: '-h, --help', type: 'boolean', description: 'Show help' }));
36
- lines.push(formatFlagLine({ name: '-v, --version', type: 'boolean', description: 'Show version' }));
37
- return lines.join('\n');
38
- }
39
- export function formatCommandHelp(command, globalFlags) {
40
- const lines = [];
41
- if (command.subcommands) {
42
- lines.push(`chkit ${command.name} <command> [options]`);
43
- lines.push(` ${command.description}`);
44
- lines.push('');
45
- lines.push('Commands:');
46
- for (const sub of command.subcommands) {
47
- lines.push(` ${sub.name.padEnd(14)} ${sub.description}`);
48
- }
49
- }
50
- else {
51
- lines.push(`chkit ${command.name} [options]`);
52
- lines.push(` ${command.description}`);
53
- }
54
- if (command.flags.length > 0) {
55
- lines.push('');
56
- lines.push('Options:');
57
- for (const flag of command.flags) {
58
- lines.push(formatFlagLine(flag));
59
- }
60
- }
61
- for (const pf of command.pluginFlags) {
62
- lines.push('');
63
- lines.push(`Plugin: ${pf.pluginName}`);
64
- for (const flag of pf.flags) {
65
- lines.push(formatFlagLine(flag));
66
- }
67
- }
68
- lines.push('');
69
- lines.push('Global options:');
70
- for (const flag of globalFlags) {
71
- lines.push(formatFlagLine(flag));
72
- }
73
- return lines.join('\n');
74
- }
75
- function formatFlagLine(flag) {
76
- const nameStr = flag.name ?? '';
77
- const placeholder = flag.placeholder ? ` ${flag.placeholder}` : '';
78
- const label = `${nameStr}${placeholder}`;
79
- if (label.length >= 22) {
80
- return ` ${label}\n${''.padEnd(24)}${flag.description}`;
81
- }
82
- return ` ${label.padEnd(22)} ${flag.description}`;
83
- }
84
- //# sourceMappingURL=help.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/bin/help.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { ChxPlugin } from '../../plugins.js';
2
- export declare function getInternalPlugins(): ChxPlugin[];
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/bin/internal-plugins/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAIjD,wBAAgB,kBAAkB,IAAI,SAAS,EAAE,CAEhD"}
@@ -1,5 +0,0 @@
1
- import { createSkillHintPlugin } from './skill-hint.js';
2
- export function getInternalPlugins() {
3
- return [createSkillHintPlugin()];
4
- }
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/bin/internal-plugins/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAEvD,MAAM,UAAU,kBAAkB;IAChC,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAA;AAClC,CAAC"}
@@ -1,31 +0,0 @@
1
- import { type ChxPlugin } from '../../plugins.js';
2
- export type AgentKind = 'claude' | 'cursor' | 'copilot' | 'windsurf' | 'roo' | 'augment' | 'continue' | 'trae' | 'unknown';
3
- interface AgentRootResult {
4
- root: string;
5
- agent: AgentKind;
6
- }
7
- /**
8
- * Walk up from `cwd` to find the best directory for installing agent skills.
9
- *
10
- * 1. Look for agentic markers (.claude/, .cursor/, CLAUDE.md, etc.)
11
- * 2. Fall back to the git root (.git)
12
- * 3. Fall back to `cwd`
13
- */
14
- export declare function findAgentRoot(cwd: string): AgentRootResult;
15
- export declare const SKILL_INSTALL_COMMAND = "npx skills add obsessiondb/chkit";
16
- export declare const HINT_INTERVAL_MS: number;
17
- export interface SkillHintState {
18
- lastDismissed?: string;
19
- }
20
- export interface SkillHintDeps {
21
- detectAgent(): AgentRootResult;
22
- isSkillInstalled(): boolean;
23
- readState(): SkillHintState;
24
- writeState(state: SkillHintState): void;
25
- promptUser(agent: AgentKind): Promise<boolean>;
26
- installSkill(): Promise<boolean>;
27
- now(): number;
28
- }
29
- export declare function createSkillHintPlugin(overrides?: Partial<SkillHintDeps>): ChxPlugin;
30
- export {};
31
- //# sourceMappingURL=skill-hint.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skill-hint.d.ts","sourceRoot":"","sources":["../../../src/bin/internal-plugins/skill-hint.ts"],"names":[],"mappings":"AAKA,OAAO,EAAgB,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAE/D,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,KAAK,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAA;AA4B1H,UAAU,eAAe;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE;AAE5D;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAsB1D;AAED,eAAO,MAAM,qBAAqB,qCAAqC,CAAA;AACvE,eAAO,MAAM,gBAAgB,QAA2B,CAAA;AAExD,MAAM,WAAW,cAAc;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,IAAI,eAAe,CAAA;IAC9B,gBAAgB,IAAI,OAAO,CAAA;IAC3B,SAAS,IAAI,cAAc,CAAA;IAC3B,UAAU,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAAA;IACvC,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC9C,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;IAChC,GAAG,IAAI,MAAM,CAAA;CACd;AA4ED,wBAAgB,qBAAqB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,SAAS,CAsCnF"}
@@ -1,172 +0,0 @@
1
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
2
- import { homedir } from 'node:os';
3
- import { dirname, join } from 'node:path';
4
- import process from 'node:process';
5
- import { definePlugin } from '../../plugins.js';
6
- const AGENT_REGISTRY = {
7
- claude: { name: 'Claude Code', skillsDir: '.claude/skills' },
8
- cursor: { name: 'Cursor', skillsDir: '.agents/skills' },
9
- copilot: { name: 'Copilot', skillsDir: '.agents/skills' },
10
- windsurf: { name: 'Windsurf', skillsDir: '.windsurf/skills' },
11
- roo: { name: 'Roo Code', skillsDir: '.roo/skills' },
12
- augment: { name: 'Augment', skillsDir: '.augment/skills' },
13
- continue: { name: 'Continue', skillsDir: '.continue/skills' },
14
- trae: { name: 'Trae', skillsDir: '.trae/skills' },
15
- };
16
- const AGENT_MARKERS = [
17
- { path: '.claude', agent: 'claude' },
18
- { path: 'CLAUDE.md', agent: 'claude' },
19
- { path: '.cursor', agent: 'cursor' },
20
- { path: '.cursorrules', agent: 'cursor' },
21
- { path: '.github/copilot-instructions.md', agent: 'copilot' },
22
- { path: '.windsurf', agent: 'windsurf' },
23
- { path: '.roo', agent: 'roo' },
24
- { path: '.augment', agent: 'augment' },
25
- { path: '.continue', agent: 'continue' },
26
- { path: '.trae', agent: 'trae' },
27
- ];
28
- /**
29
- * Walk up from `cwd` to find the best directory for installing agent skills.
30
- *
31
- * 1. Look for agentic markers (.claude/, .cursor/, CLAUDE.md, etc.)
32
- * 2. Fall back to the git root (.git)
33
- * 3. Fall back to `cwd`
34
- */
35
- export function findAgentRoot(cwd) {
36
- // Pass 1: look for agentic markers
37
- let dir = cwd;
38
- while (true) {
39
- for (const marker of AGENT_MARKERS) {
40
- if (existsSync(join(dir, marker.path)))
41
- return { root: dir, agent: marker.agent };
42
- }
43
- const parent = dirname(dir);
44
- if (parent === dir)
45
- break;
46
- dir = parent;
47
- }
48
- // Pass 2: look for .git
49
- dir = cwd;
50
- while (true) {
51
- if (existsSync(join(dir, '.git')))
52
- return { root: dir, agent: 'unknown' };
53
- const parent = dirname(dir);
54
- if (parent === dir)
55
- break;
56
- dir = parent;
57
- }
58
- return { root: cwd, agent: 'unknown' };
59
- }
60
- export const SKILL_INSTALL_COMMAND = 'npx skills add obsessiondb/chkit';
61
- export const HINT_INTERVAL_MS = 30 * 24 * 60 * 60 * 1000; // 30 days
62
- function getStateDir() {
63
- return join(homedir(), '.chkit');
64
- }
65
- function getStateFilePath() {
66
- return join(getStateDir(), 'skill-hint.json');
67
- }
68
- const defaultDeps = {
69
- detectAgent() {
70
- return findAgentRoot(process.cwd());
71
- },
72
- isSkillInstalled() {
73
- const { root, agent } = findAgentRoot(process.cwd());
74
- // Check agent-specific skill path
75
- if (agent !== 'unknown') {
76
- const { skillsDir } = AGENT_REGISTRY[agent];
77
- if (existsSync(join(root, skillsDir, 'chkit', 'SKILL.md')))
78
- return true;
79
- }
80
- // Check universal .agents/skills path
81
- if (existsSync(join(root, '.agents', 'skills', 'chkit', 'SKILL.md')))
82
- return true;
83
- // Check global Claude path
84
- if (existsSync(join(homedir(), '.claude', 'skills', 'chkit', 'SKILL.md')))
85
- return true;
86
- return false;
87
- },
88
- readState() {
89
- try {
90
- return JSON.parse(readFileSync(getStateFilePath(), 'utf-8'));
91
- }
92
- catch {
93
- return {};
94
- }
95
- },
96
- writeState(state) {
97
- const dir = getStateDir();
98
- mkdirSync(dir, { recursive: true });
99
- writeFileSync(getStateFilePath(), `${JSON.stringify(state, null, 2)}\n`);
100
- },
101
- async promptUser(agent) {
102
- const { createInterface } = await import('node:readline/promises');
103
- const rl = createInterface({ input: process.stdin, output: process.stderr });
104
- try {
105
- const agentLabel = agent !== 'unknown' ? AGENT_REGISTRY[agent].name : undefined;
106
- console.error('');
107
- console.error(agentLabel
108
- ? `chkit has an AI agent skill for ${agentLabel}.`
109
- : 'chkit has an AI agent skill available.');
110
- console.error(`Install it with: ${SKILL_INSTALL_COMMAND}`);
111
- console.error('');
112
- const answer = await rl.question('Install now? [y/N] ');
113
- return answer.trim().toLowerCase() === 'y' || answer.trim().toLowerCase() === 'yes';
114
- }
115
- finally {
116
- rl.close();
117
- }
118
- },
119
- async installSkill() {
120
- const { execSync } = await import('node:child_process');
121
- try {
122
- console.error('');
123
- execSync(SKILL_INSTALL_COMMAND, { cwd: findAgentRoot(process.cwd()).root, stdio: 'inherit' });
124
- return true;
125
- }
126
- catch {
127
- console.error(`Failed to install. Run manually: ${SKILL_INSTALL_COMMAND}`);
128
- return false;
129
- }
130
- },
131
- now: () => Date.now(),
132
- };
133
- export function createSkillHintPlugin(overrides) {
134
- const deps = { ...defaultDeps, ...overrides };
135
- let pendingMessage;
136
- return definePlugin({
137
- manifest: {
138
- name: '@chkit/internal-skill-hint',
139
- apiVersion: 1,
140
- },
141
- hooks: {
142
- async onInit(ctx) {
143
- if (!ctx.isInteractive || ctx.jsonMode)
144
- return;
145
- if (deps.isSkillInstalled())
146
- return;
147
- const state = deps.readState();
148
- if (state.lastDismissed) {
149
- const elapsed = deps.now() - new Date(state.lastDismissed).getTime();
150
- if (elapsed < HINT_INTERVAL_MS)
151
- return;
152
- }
153
- const { agent } = deps.detectAgent();
154
- const accepted = await deps.promptUser(agent);
155
- if (accepted) {
156
- await deps.installSkill();
157
- }
158
- else {
159
- deps.writeState({ lastDismissed: new Date(deps.now()).toISOString() });
160
- pendingMessage = `You can install it later with: ${SKILL_INSTALL_COMMAND}`;
161
- }
162
- },
163
- onComplete(ctx) {
164
- if (pendingMessage && !ctx.jsonMode && ctx.exitCode === 0) {
165
- console.error('');
166
- console.error(pendingMessage);
167
- }
168
- },
169
- },
170
- });
171
- }
172
- //# sourceMappingURL=skill-hint.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skill-hint.js","sourceRoot":"","sources":["../../../src/bin/internal-plugins/skill-hint.ts"],"names":[],"mappings":"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"}