chkit 0.1.2-beta.7 → 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 (291) 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 +25 -1
  5. package/dist/commands/drift/compare.d.ts.map +1 -1
  6. package/dist/commands/drift/compare.js +147 -45
  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.js +6 -18
  12. package/dist/commands/generate/command.js.map +1 -1
  13. package/dist/commands/generate/plan-pipeline.d.ts.map +1 -1
  14. package/dist/commands/generate/plan-pipeline.js +35 -36
  15. package/dist/commands/generate/plan-pipeline.js.map +1 -1
  16. package/dist/commands/init.d.ts +2 -0
  17. package/dist/commands/init.d.ts.map +1 -1
  18. package/dist/commands/init.js +21 -4
  19. package/dist/commands/init.js.map +1 -1
  20. package/dist/commands/migrate/abandon.d.ts +38 -0
  21. package/dist/commands/migrate/abandon.d.ts.map +1 -0
  22. package/dist/commands/migrate/abandon.js +75 -0
  23. package/dist/commands/migrate/abandon.js.map +1 -0
  24. package/dist/commands/migrate/apply.d.ts +7 -0
  25. package/dist/commands/migrate/apply.d.ts.map +1 -1
  26. package/dist/commands/migrate/apply.js +45 -6
  27. package/dist/commands/migrate/apply.js.map +1 -1
  28. package/dist/commands/migrate/async-apply.d.ts.map +1 -1
  29. package/dist/commands/migrate/async-apply.js +78 -16
  30. package/dist/commands/migrate/async-apply.js.map +1 -1
  31. package/dist/commands/migrate/command.d.ts +44 -1
  32. package/dist/commands/migrate/command.d.ts.map +1 -1
  33. package/dist/commands/migrate/command.js +148 -34
  34. package/dist/commands/migrate/command.js.map +1 -1
  35. package/dist/commands/migrate/empty.d.ts +8 -0
  36. package/dist/commands/migrate/empty.d.ts.map +1 -0
  37. package/dist/commands/migrate/empty.js +17 -0
  38. package/dist/commands/migrate/empty.js.map +1 -0
  39. package/dist/commands/migrate/errors.d.ts +22 -0
  40. package/dist/commands/migrate/errors.d.ts.map +1 -0
  41. package/dist/commands/migrate/errors.js +31 -0
  42. package/dist/commands/migrate/errors.js.map +1 -0
  43. package/dist/commands/migrate/output.d.ts +31 -0
  44. package/dist/commands/migrate/output.d.ts.map +1 -1
  45. package/dist/commands/migrate/output.js +120 -9
  46. package/dist/commands/migrate/output.js.map +1 -1
  47. package/dist/commands/migrate/prompts.d.ts +1 -0
  48. package/dist/commands/migrate/prompts.d.ts.map +1 -1
  49. package/dist/commands/migrate/prompts.js +3 -0
  50. package/dist/commands/migrate/prompts.js.map +1 -1
  51. package/dist/commands/migrate/recovery.d.ts +90 -0
  52. package/dist/commands/migrate/recovery.d.ts.map +1 -0
  53. package/dist/commands/migrate/recovery.js +163 -0
  54. package/dist/commands/migrate/recovery.js.map +1 -0
  55. package/dist/commands/migrate/retry.d.ts +37 -0
  56. package/dist/commands/migrate/retry.d.ts.map +1 -0
  57. package/dist/commands/migrate/retry.js +46 -0
  58. package/dist/commands/migrate/retry.js.map +1 -0
  59. package/dist/commands/plugin.js +3 -1
  60. package/dist/commands/plugin.js.map +1 -1
  61. package/dist/commands/registry.d.ts +2 -0
  62. package/dist/commands/registry.d.ts.map +1 -0
  63. package/dist/commands/registry.js +228 -0
  64. package/dist/commands/registry.js.map +1 -0
  65. package/dist/commands/snapshot/command.d.ts +3 -0
  66. package/dist/commands/snapshot/command.d.ts.map +1 -0
  67. package/dist/commands/snapshot/command.js +32 -0
  68. package/dist/commands/snapshot/command.js.map +1 -0
  69. package/dist/commands/snapshot/output.d.ts +24 -0
  70. package/dist/commands/snapshot/output.d.ts.map +1 -0
  71. package/dist/commands/snapshot/output.js +86 -0
  72. package/dist/commands/snapshot/output.js.map +1 -0
  73. package/dist/commands/snapshot/rebuild.d.ts +19 -0
  74. package/dist/commands/snapshot/rebuild.d.ts.map +1 -0
  75. package/dist/commands/snapshot/rebuild.js +77 -0
  76. package/dist/commands/snapshot/rebuild.js.map +1 -0
  77. package/dist/internal-plugins/core/plugin.d.ts.map +1 -1
  78. package/dist/internal-plugins/core/plugin.js +2 -0
  79. package/dist/internal-plugins/core/plugin.js.map +1 -1
  80. package/dist/registry/build.d.ts +17 -0
  81. package/dist/registry/build.d.ts.map +1 -0
  82. package/dist/registry/build.js +94 -0
  83. package/dist/registry/build.js.map +1 -0
  84. package/dist/registry/dependencies.d.ts +19 -0
  85. package/dist/registry/dependencies.d.ts.map +1 -0
  86. package/dist/registry/dependencies.js +105 -0
  87. package/dist/registry/dependencies.js.map +1 -0
  88. package/dist/registry/files.d.ts +4 -0
  89. package/dist/registry/files.d.ts.map +1 -0
  90. package/dist/registry/files.js +33 -0
  91. package/dist/registry/files.js.map +1 -0
  92. package/dist/registry/install.d.ts +55 -0
  93. package/dist/registry/install.d.ts.map +1 -0
  94. package/dist/registry/install.js +175 -0
  95. package/dist/registry/install.js.map +1 -0
  96. package/dist/registry/model.d.ts +172 -0
  97. package/dist/registry/model.d.ts.map +1 -0
  98. package/dist/registry/model.js +161 -0
  99. package/dist/registry/model.js.map +1 -0
  100. package/dist/registry/project-config.d.ts +18 -0
  101. package/dist/registry/project-config.d.ts.map +1 -0
  102. package/dist/registry/project-config.js +337 -0
  103. package/dist/registry/project-config.js.map +1 -0
  104. package/dist/registry/resolve.d.ts +7 -0
  105. package/dist/registry/resolve.d.ts.map +1 -0
  106. package/dist/registry/resolve.js +129 -0
  107. package/dist/registry/resolve.js.map +1 -0
  108. package/dist/runtime/argv.d.ts +3 -0
  109. package/dist/runtime/argv.d.ts.map +1 -0
  110. package/dist/runtime/argv.js +29 -0
  111. package/dist/runtime/argv.js.map +1 -0
  112. package/dist/runtime/command-dispatch.d.ts.map +1 -1
  113. package/dist/runtime/command-dispatch.js +5 -0
  114. package/dist/runtime/command-dispatch.js.map +1 -1
  115. package/dist/runtime/config-merge.d.ts.map +1 -1
  116. package/dist/runtime/config-merge.js +2 -1
  117. package/dist/runtime/config-merge.js.map +1 -1
  118. package/dist/runtime/global-flags.d.ts +4 -0
  119. package/dist/runtime/global-flags.d.ts.map +1 -1
  120. package/dist/runtime/global-flags.js +1 -0
  121. package/dist/runtime/global-flags.js.map +1 -1
  122. package/dist/runtime/help.d.ts.map +1 -1
  123. package/dist/runtime/help.js +3 -0
  124. package/dist/runtime/help.js.map +1 -1
  125. package/dist/runtime/journal-store.d.ts.map +1 -1
  126. package/dist/runtime/journal-store.js +55 -26
  127. package/dist/runtime/journal-store.js.map +1 -1
  128. package/dist/runtime/json-output.d.ts +1 -1
  129. package/dist/runtime/json-output.d.ts.map +1 -1
  130. package/dist/runtime/json-output.js.map +1 -1
  131. package/dist/runtime/migration-store.d.ts +1 -1
  132. package/dist/runtime/migration-store.d.ts.map +1 -1
  133. package/dist/runtime/migration-store.js +17 -16
  134. package/dist/runtime/migration-store.js.map +1 -1
  135. package/dist/runtime/plugin-runtime/executor-debug.d.ts.map +1 -1
  136. package/dist/runtime/plugin-runtime/executor-debug.js +2 -0
  137. package/dist/runtime/plugin-runtime/executor-debug.js.map +1 -1
  138. package/dist/runtime/plugin-runtime/loader.js +1 -1
  139. package/dist/runtime/plugin-runtime/loader.js.map +1 -1
  140. package/dist/runtime/safety-markers.d.ts.map +1 -1
  141. package/dist/runtime/safety-markers.js +3 -1
  142. package/dist/runtime/safety-markers.js.map +1 -1
  143. package/dist/runtime/schema-loader.d.ts +20 -1
  144. package/dist/runtime/schema-loader.d.ts.map +1 -1
  145. package/dist/runtime/schema-loader.js +26 -0
  146. package/dist/runtime/schema-loader.js.map +1 -1
  147. package/dist/runtime/snapshot-document.d.ts +33 -0
  148. package/dist/runtime/snapshot-document.d.ts.map +1 -0
  149. package/dist/runtime/snapshot-document.js +65 -0
  150. package/dist/runtime/snapshot-document.js.map +1 -0
  151. package/package.json +17 -7
  152. package/dist/bin/clickhouse-resource.d.ts +0 -4
  153. package/dist/bin/clickhouse-resource.d.ts.map +0 -1
  154. package/dist/bin/clickhouse-resource.js +0 -11
  155. package/dist/bin/clickhouse-resource.js.map +0 -1
  156. package/dist/bin/command-dispatch.d.ts +0 -13
  157. package/dist/bin/command-dispatch.d.ts.map +0 -1
  158. package/dist/bin/command-dispatch.js +0 -186
  159. package/dist/bin/command-dispatch.js.map +0 -1
  160. package/dist/bin/command-registry.d.ts +0 -34
  161. package/dist/bin/command-registry.d.ts.map +0 -1
  162. package/dist/bin/command-registry.js +0 -87
  163. package/dist/bin/command-registry.js.map +0 -1
  164. package/dist/bin/commands/check.d.ts +0 -3
  165. package/dist/bin/commands/check.d.ts.map +0 -1
  166. package/dist/bin/commands/check.js +0 -181
  167. package/dist/bin/commands/check.js.map +0 -1
  168. package/dist/bin/commands/codegen.d.ts +0 -2
  169. package/dist/bin/commands/codegen.d.ts.map +0 -1
  170. package/dist/bin/commands/codegen.js +0 -25
  171. package/dist/bin/commands/codegen.js.map +0 -1
  172. package/dist/bin/commands/drift.d.ts +0 -27
  173. package/dist/bin/commands/drift.d.ts.map +0 -1
  174. package/dist/bin/commands/drift.js +0 -220
  175. package/dist/bin/commands/drift.js.map +0 -1
  176. package/dist/bin/commands/generate/output.d.ts +0 -8
  177. package/dist/bin/commands/generate/output.d.ts.map +0 -1
  178. package/dist/bin/commands/generate/output.js +0 -58
  179. package/dist/bin/commands/generate/output.js.map +0 -1
  180. package/dist/bin/commands/generate/plan-pipeline.d.ts +0 -7
  181. package/dist/bin/commands/generate/plan-pipeline.d.ts.map +0 -1
  182. package/dist/bin/commands/generate/plan-pipeline.js +0 -143
  183. package/dist/bin/commands/generate/plan-pipeline.js.map +0 -1
  184. package/dist/bin/commands/generate/rename-mappings.d.ts +0 -29
  185. package/dist/bin/commands/generate/rename-mappings.d.ts.map +0 -1
  186. package/dist/bin/commands/generate/rename-mappings.js +0 -195
  187. package/dist/bin/commands/generate/rename-mappings.js.map +0 -1
  188. package/dist/bin/commands/generate.d.ts +0 -3
  189. package/dist/bin/commands/generate.d.ts.map +0 -1
  190. package/dist/bin/commands/generate.js +0 -158
  191. package/dist/bin/commands/generate.js.map +0 -1
  192. package/dist/bin/commands/init.d.ts +0 -2
  193. package/dist/bin/commands/init.d.ts.map +0 -1
  194. package/dist/bin/commands/init.js +0 -12
  195. package/dist/bin/commands/init.js.map +0 -1
  196. package/dist/bin/commands/migrate.d.ts +0 -3
  197. package/dist/bin/commands/migrate.d.ts.map +0 -1
  198. package/dist/bin/commands/migrate.js +0 -288
  199. package/dist/bin/commands/migrate.js.map +0 -1
  200. package/dist/bin/commands/plugin-like.d.ts +0 -38
  201. package/dist/bin/commands/plugin-like.d.ts.map +0 -1
  202. package/dist/bin/commands/plugin-like.js +0 -101
  203. package/dist/bin/commands/plugin-like.js.map +0 -1
  204. package/dist/bin/commands/plugin.d.ts +0 -3
  205. package/dist/bin/commands/plugin.d.ts.map +0 -1
  206. package/dist/bin/commands/plugin.js +0 -148
  207. package/dist/bin/commands/plugin.js.map +0 -1
  208. package/dist/bin/commands/pull.d.ts +0 -2
  209. package/dist/bin/commands/pull.d.ts.map +0 -1
  210. package/dist/bin/commands/pull.js +0 -25
  211. package/dist/bin/commands/pull.js.map +0 -1
  212. package/dist/bin/commands/status.d.ts +0 -3
  213. package/dist/bin/commands/status.d.ts.map +0 -1
  214. package/dist/bin/commands/status.js +0 -63
  215. package/dist/bin/commands/status.js.map +0 -1
  216. package/dist/bin/commands/typegen.d.ts +0 -2
  217. package/dist/bin/commands/typegen.d.ts.map +0 -1
  218. package/dist/bin/commands/typegen.js +0 -25
  219. package/dist/bin/commands/typegen.js.map +0 -1
  220. package/dist/bin/config.d.ts +0 -13
  221. package/dist/bin/config.d.ts.map +0 -1
  222. package/dist/bin/config.js +0 -48
  223. package/dist/bin/config.js.map +0 -1
  224. package/dist/bin/debug.d.ts +0 -3
  225. package/dist/bin/debug.d.ts.map +0 -1
  226. package/dist/bin/debug.js +0 -14
  227. package/dist/bin/debug.js.map +0 -1
  228. package/dist/bin/global-flags.d.ts +0 -16
  229. package/dist/bin/global-flags.d.ts.map +0 -1
  230. package/dist/bin/global-flags.js +0 -7
  231. package/dist/bin/global-flags.js.map +0 -1
  232. package/dist/bin/help.d.ts +0 -5
  233. package/dist/bin/help.d.ts.map +0 -1
  234. package/dist/bin/help.js +0 -84
  235. package/dist/bin/help.js.map +0 -1
  236. package/dist/bin/internal-plugins/index.d.ts +0 -3
  237. package/dist/bin/internal-plugins/index.d.ts.map +0 -1
  238. package/dist/bin/internal-plugins/index.js +0 -5
  239. package/dist/bin/internal-plugins/index.js.map +0 -1
  240. package/dist/bin/internal-plugins/skill-hint.d.ts +0 -31
  241. package/dist/bin/internal-plugins/skill-hint.d.ts.map +0 -1
  242. package/dist/bin/internal-plugins/skill-hint.js +0 -172
  243. package/dist/bin/internal-plugins/skill-hint.js.map +0 -1
  244. package/dist/bin/journal-store.d.ts +0 -10
  245. package/dist/bin/journal-store.d.ts.map +0 -1
  246. package/dist/bin/journal-store.js +0 -137
  247. package/dist/bin/journal-store.js.map +0 -1
  248. package/dist/bin/json-output.d.ts +0 -5
  249. package/dist/bin/json-output.d.ts.map +0 -1
  250. package/dist/bin/json-output.js +0 -21
  251. package/dist/bin/json-output.js.map +0 -1
  252. package/dist/bin/lib.d.ts +0 -5
  253. package/dist/bin/lib.d.ts.map +0 -1
  254. package/dist/bin/lib.js +0 -5
  255. package/dist/bin/lib.js.map +0 -1
  256. package/dist/bin/logging.d.ts +0 -3
  257. package/dist/bin/logging.d.ts.map +0 -1
  258. package/dist/bin/logging.js +0 -31
  259. package/dist/bin/logging.js.map +0 -1
  260. package/dist/bin/migration-store.d.ts +0 -22
  261. package/dist/bin/migration-store.d.ts.map +0 -1
  262. package/dist/bin/migration-store.js +0 -60
  263. package/dist/bin/migration-store.js.map +0 -1
  264. package/dist/bin/plugin-runtime.d.ts +0 -45
  265. package/dist/bin/plugin-runtime.d.ts.map +0 -1
  266. package/dist/bin/plugin-runtime.js +0 -513
  267. package/dist/bin/plugin-runtime.js.map +0 -1
  268. package/dist/bin/safety-markers.d.ts +0 -23
  269. package/dist/bin/safety-markers.d.ts.map +0 -1
  270. package/dist/bin/safety-markers.js +0 -85
  271. package/dist/bin/safety-markers.js.map +0 -1
  272. package/dist/bin/schema-loader.d.ts +0 -3
  273. package/dist/bin/schema-loader.d.ts.map +0 -1
  274. package/dist/bin/schema-loader.js +0 -11
  275. package/dist/bin/schema-loader.js.map +0 -1
  276. package/dist/bin/table-scope.d.ts +0 -38
  277. package/dist/bin/table-scope.d.ts.map +0 -1
  278. package/dist/bin/table-scope.js +0 -167
  279. package/dist/bin/table-scope.js.map +0 -1
  280. package/dist/bin/version.d.ts +0 -2
  281. package/dist/bin/version.d.ts.map +0 -1
  282. package/dist/bin/version.js +0 -5
  283. package/dist/bin/version.js.map +0 -1
  284. package/dist/drift-diff.d.ts +0 -8
  285. package/dist/drift-diff.d.ts.map +0 -1
  286. package/dist/drift-diff.js +0 -46
  287. package/dist/drift-diff.js.map +0 -1
  288. package/dist/drift.d.ts +0 -66
  289. package/dist/drift.d.ts.map +0 -1
  290. package/dist/drift.js +0 -220
  291. package/dist/drift.js.map +0 -1
package/README.md CHANGED
@@ -1,99 +1,112 @@
1
1
  # chkit
2
2
 
3
- ClickHouse schema and migration CLI for TypeScript projects.
3
+ **ClickHouse schema management in TypeScript, with Python support in alpha.**
4
4
 
5
- Define your ClickHouse schema in TypeScript, generate migrations automatically, detect drift, and run CI checks -- all from a single CLI.
5
+ chkit is an open-source CLI for defining ClickHouse schemas in code, generating SQL migrations, and checking schema drift. Keep definitions and migration files in your repository, review the SQL before applying it, and verify the live database from the terminal or CI.
6
+
7
+ [Get started](https://chkit.obsessiondb.com/getting-started/) · [First-schema tutorial](https://chkit.obsessiondb.com/tutorials/first-schema/) · [Documentation](https://chkit.obsessiondb.com)
8
+
9
+ ## TL;DR
10
+
11
+ **Define → generate → preview → migrate → check.** TypeScript schemas use `@chkit/core`. Python support is in alpha and uses [`chkit-py`](https://pypi.org/project/chkit-py/), with the same migration SQL, snapshots, and ClickHouse journal.
6
12
 
7
13
  ## Features
8
14
 
9
- - **Schema-as-code** -- Define tables, views, and materialized views in TypeScript using a declarative DSL
10
- - **Automatic migration generation** -- Diff your schema changes and generate timestamped SQL migrations with rename detection
11
- - **Safe migrations** -- Destructive operations are flagged with risk levels and require explicit confirmation
12
- - **Drift detection** -- Compare your local schema against a live ClickHouse instance to catch out-of-band changes
13
- - **CI gate** -- Run `chkit check` to fail builds on pending migrations, checksum mismatches, or schema drift
14
- - **TypeScript codegen** -- Generate row types and optional Zod schemas from your schema definitions (`@chkit/plugin-codegen`)
15
- - **Schema pulling** -- Introspect an existing ClickHouse database into local schema files (`@chkit/plugin-pull`)
16
- - **Data backfill** -- Time-windowed, checkpointed backfill operations with retry logic (`@chkit/plugin-backfill`)
17
- - **JSON output** -- Every command supports `--json` for scripting and automation
15
+ - **Schema as code** — Define tables, views, materialized views, and dictionaries with ClickHouse-native types and options.
16
+ - **Migration generation** — Diff definitions against the previous snapshot and generate timestamped SQL migrations with rename metadata.
17
+ - **Migration risk checks** — Review risk levels and approve destructive operations before applying them.
18
+ - **Drift detection** — Compare the schema snapshot against a live ClickHouse instance to catch out-of-band changes.
19
+ - **CI gate** — Run `chkit check` to fail builds on pending migrations, checksum mismatches, or schema drift.
20
+ - **TypeScript codegen** — Generate row types and optional Zod schemas with `@chkit/plugin-codegen`.
21
+ - **Schema pulling** — Import a live ClickHouse schema into local files with `@chkit/plugin-pull`.
22
+ - **Data backfill (beta)** — Run checkpointed SQL backfills for data migrations with `@chkit/plugin-backfill`.
23
+ - **JSON output** — Use `--json` for scripting and automation.
18
24
 
19
25
  ## Install
20
26
 
21
- ```bash
27
+ ```sh
22
28
  bun add -d chkit @chkit/core
23
29
  ```
24
30
 
25
- `@chkit/core` provides the `table()` / schema DSL your `*.schema.ts` files import, so it is required alongside the CLI.
31
+ Install both packages: the CLI runs commands, and `@chkit/core` provides the schema DSL and config helpers imported by TypeScript projects.
32
+
33
+ ## First migration
26
34
 
27
- ## Usage
35
+ Initialize the config and starter schema:
28
36
 
29
- ```bash
30
- # Scaffold a new project
37
+ ```sh
31
38
  bunx chkit init
39
+ ```
40
+
41
+ Choose a database connection in the prompt, or set `CLICKHOUSE_URL`, `CLICKHOUSE_USER`, and `CLICKHOUSE_PASSWORD` for an existing ClickHouse instance. Edit the starter definition in `src/db/schema/example.ts` to match the intended table, then run the schema workflow:
32
42
 
33
- # Generate a migration from schema changes
34
- bunx chkit generate --name add-users-table
43
+ ```sh
44
+ # Generate SQL from the schema definitions
45
+ bunx chkit generate --name create-events
35
46
 
36
- # Preview and apply pending migrations
47
+ # Review chkit/migrations/*.sql, then preview pending migrations
48
+ bunx chkit migrate --json
49
+
50
+ # Apply the reviewed migrations
37
51
  bunx chkit migrate --apply
38
52
 
39
- # Check migration status
53
+ # Verify migration state and the live schema
40
54
  bunx chkit status
55
+ bunx chkit check
56
+ ```
41
57
 
42
- # Detect schema drift
43
- bunx chkit drift
58
+ Without `--apply`, JSON mode only prints the pending migration plan. Commit the schema definitions, migration files, and `chkit/meta/` together. Repeat the workflow after changing a definition, and use `chkit drift` for a detailed schema comparison.
44
59
 
45
- # CI gate (fails on pending migrations or drift)
46
- bunx chkit check
60
+ All commands support `--json` for machine-readable output and `--config <path>` for a custom config file. The [first-schema tutorial](https://chkit.obsessiondb.com/tutorials/first-schema/) includes a complete definition, database setup, queries, and a schema change.
61
+
62
+ ## Python (alpha)
63
+
64
+ Python support is in alpha. Install the Python implementation and initialize a project:
65
+
66
+ ```sh
67
+ pip install chkit-py
68
+ chkit init
47
69
  ```
48
70
 
49
- All commands support `--json` for machine-readable output and `--config <path>` to specify a custom config file.
71
+ Use Python schema modules and `clickhouse.config.py`, then run the same `generate`, `migrate`, `status`, `drift`, and `check` commands. See the [Python overview](https://chkit.obsessiondb.com/python/overview/).
50
72
 
51
73
  ## Requirements
52
74
 
53
- - **Node 20+** or **Bun** — chkit loads your TypeScript config and schema files on both runtimes.
54
- - **ClickHouse 24.x or newer** — chkit targets recent ClickHouse (self-hosted, ClickHouse Cloud, or ObsessionDB). Some schema features are version-gated; see [ClickHouse compatibility](https://chkit.obsessiondb.com/guides/clickhouse-compatibility/).
75
+ - **Node.js 20+ or Bun 1.3.5+** for TypeScript config and schemas. Python projects require **Python 3.11+** and `chkit-py`.
76
+ - **ClickHouse 24.x or newer**, self-hosted or managed. Some schema features are version-gated; see [ClickHouse compatibility](https://chkit.obsessiondb.com/guides/clickhouse-compatibility/).
55
77
 
56
78
  ## Plugins
57
79
 
58
80
  | Plugin | Description |
59
- |--------|-------------|
81
+ | --- | --- |
60
82
  | [`@chkit/plugin-codegen`](https://www.npmjs.com/package/@chkit/plugin-codegen) | Generate TypeScript row types and Zod schemas |
61
- | [`@chkit/plugin-pull`](https://www.npmjs.com/package/@chkit/plugin-pull) | Pull schemas from a live ClickHouse instance |
62
- | [`@chkit/plugin-backfill`](https://www.npmjs.com/package/@chkit/plugin-backfill) | Time-windowed data backfill with checkpoints |
63
- | [`@chkit/plugin-obsessiondb`](https://www.npmjs.com/package/@chkit/plugin-obsessiondb) | Auto-rewrite Shared engines for ObsessionDB compatibility |
83
+ | [`@chkit/plugin-pull`](https://www.npmjs.com/package/@chkit/plugin-pull) | Pull a live schema into local definitions |
84
+ | [`@chkit/plugin-backfill`](https://www.npmjs.com/package/@chkit/plugin-backfill) | Run checkpointed SQL backfills for data migrations (beta) |
85
+ | [`@chkit/plugin-obsessiondb`](https://www.npmjs.com/package/@chkit/plugin-obsessiondb) | Connect to ObsessionDB and run schema commands remotely |
86
+
87
+ Register plugins in `clickhouse.config.ts`. See the [plugin documentation](https://chkit.obsessiondb.com/plugins/overview/) for setup.
64
88
 
65
- ## AI Agent Skill
89
+ ## AI agent skill
66
90
 
67
- Install the chkit agent skill so AI coding assistants understand chkit:
91
+ Install the schema skill for AI coding assistants:
68
92
 
69
- ```bash
70
- npx skills add obsessiondb/chkit
93
+ ```sh
94
+ npx skills add obsessiondb/chkit --skill chkit
71
95
  ```
72
96
 
73
- ## Documentation
97
+ See [Agent skills](https://chkit.obsessiondb.com/ai-agents/) for supported tools and setup.
98
+
99
+ ## Versioning and releases
74
100
 
75
- See the [chkit documentation](https://chkit.obsessiondb.com).
101
+ chkit is pre-1.0: the public API is still evolving, and releases may contain breaking changes. Pin versions for reproducible installs.
76
102
 
77
- ## Versioning & releases
103
+ - All publishable packages release in lockstep. Install matching versions of `chkit`, `@chkit/core`, and plugins.
104
+ - The supported public API is the CLI, `@chkit/core`, and `@chkit/plugin-*`. `@chkit/clickhouse` and `@chkit/codegen` are internal packages.
105
+ - At 1.0, chkit will follow SemVer with breaking changes in major releases.
78
106
 
79
- chkit is **pre-1.0**. While the version is `0.x`, the public API is still
80
- stabilizing and **any release may contain breaking changes** — this is the
81
- standard [SemVer](https://semver.org/#spec-item-4) `0.x` contract. Pin an exact
82
- version (or a tight range) if you need reproducible installs.
107
+ ## chkit Sync (beta)
83
108
 
84
- - **`latest` tracks the current beta line.** Until 1.0 ships, installing
85
- `chkit` with no tag (`bun add -d chkit`) gives you the latest `0.1.0-beta.x`
86
- build. This is intentional for the pre-1.0 period.
87
- - **All publishable packages release in lockstep.** `chkit`, `create-chkit`,
88
- and every `@chkit/*` package share a single version, so a given chkit version
89
- always lines up with matching plugin and core versions — there is no
90
- cross-package version skew.
91
- - **Public vs. internal surface.** The supported public API is the `chkit` CLI,
92
- `@chkit/core`, and the `@chkit/plugin-*` packages. `@chkit/clickhouse` and
93
- `@chkit/codegen` are internal and not meant to be installed directly.
94
- - **At 1.0** chkit will commit to real SemVer (breaking changes only in major
95
- bumps) and a deprecation policy. Until then, treat minor/patch bumps as
96
- potentially breaking.
109
+ We're also building **chkit Sync**, a beta toolkit for syncing data from business applications into ClickHouse. It builds on chkit's schema management and has its own [Sync documentation](https://chkit.obsessiondb.com/sync/).
97
110
 
98
111
  ## License
99
112
 
@@ -101,4 +114,4 @@ version (or a tight range) if you need reproducible installs.
101
114
 
102
115
  ---
103
116
 
104
- Built and maintained by the team behind [**ObsessionDB**](https://obsessiondb.com) — fully-managed ClickHouse with a first-party chkit integration ([`@chkit/plugin-obsessiondb`](https://www.npmjs.com/package/@chkit/plugin-obsessiondb)).
117
+ The [ObsessionDB](https://obsessiondb.com) team builds and maintains chkit. Connect to its managed ClickHouse service with [`@chkit/plugin-obsessiondb`](https://www.npmjs.com/package/@chkit/plugin-obsessiondb).
package/dist/bin/chkit.js CHANGED
@@ -3,6 +3,7 @@ import process from 'node:process';
3
3
  import { cmdInit } from '../commands/init.js';
4
4
  import { cmdSkills } from '../commands/skills.js';
5
5
  import { getInternalPlugins } from '../internal-plugins/index.js';
6
+ import { normalizeGlobalArgs } from '../runtime/argv.js';
6
7
  import { parseCommandArgs, runResolvedCommand } from '../runtime/command-dispatch.js';
7
8
  import { createCommandRegistry } from '../runtime/command-registry.js';
8
9
  import { loadConfig } from '../runtime/config.js';
@@ -24,9 +25,11 @@ const PROJECT_ONLY_COMMANDS = new Set([
24
25
  'status',
25
26
  'drift',
26
27
  'check',
28
+ 'snapshot',
27
29
  'codegen',
28
30
  'pull',
29
31
  ]);
32
+ let activeCommand = 'chkit';
30
33
  function firstPluginPositional(argv) {
31
34
  const globalFlags = new Map(GLOBAL_FLAGS.map((flag) => [flag.name, flag]));
32
35
  for (let i = 1; i < argv.length; i += 1) {
@@ -116,11 +119,25 @@ function collectPluginCommands(runtime) {
116
119
  return [{ pluginName: p.plugin.manifest.name, commands, manifestName: p.plugin.manifest.name }];
117
120
  });
118
121
  }
122
+ function createInternalRegistry() {
123
+ return createCommandRegistry({
124
+ globalFlags: GLOBAL_FLAGS,
125
+ pluginExtensions: [],
126
+ pluginCommands: getInternalPlugins().map((plugin) => ({
127
+ pluginName: plugin.manifest.name,
128
+ manifestName: plugin.manifest.name,
129
+ commands: plugin.commands ?? [],
130
+ })),
131
+ });
132
+ }
119
133
  async function run() {
120
134
  configureCliLogging();
121
- const argv = process.argv.slice(2);
135
+ const argv = normalizeGlobalArgs(process.argv.slice(2));
122
136
  const commandName = argv[0];
137
+ activeCommand = commandName ?? 'chkit';
123
138
  debug('cli', `chkit ${CLI_VERSION} — argv: [${argv.join(', ')}]`);
139
+ const includePluginHelp = argv.includes('--help-plugins');
140
+ const wantsHelp = includePluginHelp || argv.includes('--help') || argv.includes('-h');
124
141
  if (!commandName || commandName === '-h' || commandName === '--help') {
125
142
  await printGlobalHelp(argv);
126
143
  return;
@@ -130,15 +147,32 @@ async function run() {
130
147
  return;
131
148
  }
132
149
  if (commandName === 'init') {
133
- await cmdInit(argv.slice(1));
150
+ await cmdInit(wantsHelp ? ['--help'] : argv.slice(1));
134
151
  return;
135
152
  }
136
153
  // `skills` proxies to the external `skills` CLI and needs no project config, so handle it
137
154
  // before config loading (like `init`).
138
155
  if (commandName === 'skills') {
139
- process.exitCode = await cmdSkills(argv.slice(1));
156
+ process.exitCode = await cmdSkills(wantsHelp ? ['--help'] : argv.slice(1));
140
157
  return;
141
158
  }
159
+ // Registry discovery and bootstrapping work before a project config exists.
160
+ if (commandName === 'add' || commandName === 'registry') {
161
+ const { cmdRegistry } = await import('../commands/registry.js');
162
+ await cmdRegistry(commandName, wantsHelp ? ['--help'] : argv.slice(1));
163
+ return;
164
+ }
165
+ // Built-in help must work in an empty directory, with missing credentials,
166
+ // or with an invalid config. In particular, do not run initialization hooks
167
+ // (which may connect or bootstrap metadata) just to describe a command.
168
+ if (wantsHelp && !includePluginHelp) {
169
+ const registry = createInternalRegistry();
170
+ const command = registry.get(commandName);
171
+ if (command) {
172
+ console.log(formatCommandHelp(command, registry.globalFlags));
173
+ return;
174
+ }
175
+ }
142
176
  const configPathArg = extractConfigPath(argv);
143
177
  const env = { command: commandName, mode: process.env.NODE_ENV };
144
178
  const { config, path: configPath, source: configSource } = await loadConfig(configPathArg, env, {
@@ -171,8 +205,7 @@ async function run() {
171
205
  if (resolved &&
172
206
  !resolved.subcommands &&
173
207
  commandName !== 'plugin' &&
174
- !argv.includes('--help') &&
175
- !argv.includes('-h')) {
208
+ !wantsHelp) {
176
209
  const parsed = parseCommandArgs(commandName, argv.slice(1), registry.resolveFlags(commandName));
177
210
  if (!parsed)
178
211
  return;
@@ -186,6 +219,21 @@ async function run() {
186
219
  flags: initFlags,
187
220
  config,
188
221
  };
222
+ if (wantsHelp) {
223
+ if (resolved) {
224
+ console.log(formatCommandHelp(resolved, registry.globalFlags));
225
+ }
226
+ else {
227
+ reportUsageError({
228
+ command: commandName,
229
+ code: 'unknown_command',
230
+ message: `Unknown command: ${commandName}`,
231
+ jsonMode: argv.includes('--json'),
232
+ onText: () => console.log(formatGlobalHelp(registry, CLI_VERSION)),
233
+ });
234
+ }
235
+ return;
236
+ }
189
237
  await pluginRuntime.runOnInit(initCtx);
190
238
  let completed = false;
191
239
  const complete = async (exitCode) => {
@@ -219,10 +267,6 @@ async function run() {
219
267
  });
220
268
  return;
221
269
  }
222
- if (argv.includes('--help') || argv.includes('-h')) {
223
- console.log(formatCommandHelp(resolved, registry.globalFlags));
224
- return;
225
- }
226
270
  await runResolvedCommand({
227
271
  argv,
228
272
  commandName,
@@ -248,9 +292,9 @@ async function run() {
248
292
  await complete(resolveExitCode());
249
293
  }
250
294
  async function printGlobalHelp(argv) {
251
- const configPathArg = extractConfigPath(argv);
252
- let registry;
253
- try {
295
+ let registry = createInternalRegistry();
296
+ if (argv.includes('--help-plugins')) {
297
+ const configPathArg = extractConfigPath(argv);
254
298
  const { config, path: configPath } = await loadConfig(configPathArg);
255
299
  const pluginRuntime = await loadPluginRuntime({
256
300
  config,
@@ -264,19 +308,6 @@ async function printGlobalHelp(argv) {
264
308
  pluginCommands: collectPluginCommands(pluginRuntime),
265
309
  });
266
310
  }
267
- catch {
268
- const internal = getInternalPlugins();
269
- registry = createCommandRegistry({
270
- globalFlags: GLOBAL_FLAGS,
271
- pluginExtensions: [],
272
- pluginCommands: internal.flatMap((plugin) => {
273
- const commands = plugin.commands;
274
- if (!commands || commands.length === 0)
275
- return [];
276
- return [{ pluginName: plugin.manifest.name, commands, manifestName: plugin.manifest.name }];
277
- }),
278
- });
279
- }
280
311
  console.log(formatGlobalHelp(registry, CLI_VERSION));
281
312
  }
282
313
  run()
@@ -296,7 +327,7 @@ run()
296
327
  // structured JSON payload. The human-readable message always goes to
297
328
  // stderr — stdout stays parseable, stderr stays diagnostic.
298
329
  if (jsonMode && !hasEmittedJson()) {
299
- emitJsonError(argv[0] ?? 'chkit', toJsonError(error));
330
+ emitJsonError(activeCommand, toJsonError(error));
300
331
  }
301
332
  console.error(formatFatalError(error));
302
333
  process.exit(1);
@@ -1 +1 @@
1
- {"version":3,"file":"chkit.js","sourceRoot":"","sources":["../../src/bin/chkit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chkit.js","sourceRoot":"","sources":["../../src/bin/chkit.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,17 @@
1
1
  import { type ColumnDefinition, type ProjectionDefinition, type SkipIndexDefinition, type TableDefinition } from '@chkit/core';
2
+ /**
3
+ * Canonicalizes SQL fragments to the exact form ClickHouse stores, so a schema
4
+ * fragment compares equal to what a live table reports even when the two are
5
+ * spelled differently (`cityHash64(a,b)` vs `cityHash64(a, b)`, `n*2+1` vs
6
+ * `(n * 2) + 1`, `INTERVAL 5 YEAR` vs `toIntervalYear(5)`). Only ClickHouse's own
7
+ * formatter can produce this, so it is injected by the drift command; when it is
8
+ * absent (offline, or a fragment ClickHouse couldn't parse) each field falls
9
+ * back to plain string normalization (#195).
10
+ */
11
+ export interface SqlCanonicalizer {
12
+ expression(fragment: string): string | null;
13
+ query(fragment: string): string | null;
14
+ }
2
15
  type TableDriftReasonCode = 'missing_column' | 'extra_column' | 'changed_column' | 'setting_mismatch' | 'index_mismatch' | 'ttl_mismatch' | 'engine_mismatch' | 'primary_key_mismatch' | 'order_by_mismatch' | 'partition_by_mismatch' | 'unique_key_mismatch' | 'projection_mismatch';
3
16
  type ObjectDriftReasonCode = 'missing_object' | 'extra_object' | 'kind_mismatch';
4
17
  type DriftReasonCode = ObjectDriftReasonCode | TableDriftReasonCode;
@@ -61,6 +74,17 @@ export declare function summarizeDriftReasons(input: {
61
74
  objectDrift: ObjectDriftDetail[];
62
75
  tableDrift: TableDriftDetail[];
63
76
  }): DriftReasonSummary;
64
- export declare function compareTableShape(expected: TableDefinition, actual: ActualTableShape): TableDriftDetail | null;
77
+ /**
78
+ * Every SQL fragment `compareTableShape` will look up in a `SqlCanonicalizer`,
79
+ * at the exact granularity it looks them up (whole expressions for index/ttl,
80
+ * per-element for key/partition clauses, whole query for SELECT projections).
81
+ * The drift command collects these across all compared tables, formats them in
82
+ * one round-trip, and hands back a map-backed canonicalizer.
83
+ */
84
+ export declare function collectTableSqlFragments(expected: TableDefinition, actual: ActualTableShape): {
85
+ expressions: string[];
86
+ queries: string[];
87
+ };
88
+ export declare function compareTableShape(expected: TableDefinition, actual: ActualTableShape, canonicalizer?: SqlCanonicalizer): TableDriftDetail | null;
65
89
  export {};
66
90
  //# sourceMappingURL=compare.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compare.d.ts","sourceRoot":"","sources":["../../../src/commands/drift/compare.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compare.d.ts","sourceRoot":"","sources":["../../../src/commands/drift/compare.ts"],"names":[],"mappings":"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"}