chkit 0.1.0-beta.9 → 0.1.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 (299) hide show
  1. package/README.md +38 -2
  2. package/dist/bin/chkit.js +230 -203
  3. package/dist/bin/chkit.js.map +1 -1
  4. package/dist/bin/clickhouse-resource.d.ts +4 -0
  5. package/dist/bin/clickhouse-resource.d.ts.map +1 -0
  6. package/dist/bin/clickhouse-resource.js +11 -0
  7. package/dist/bin/clickhouse-resource.js.map +1 -0
  8. package/dist/bin/command-dispatch.d.ts +13 -0
  9. package/dist/bin/command-dispatch.d.ts.map +1 -0
  10. package/dist/bin/command-dispatch.js +186 -0
  11. package/dist/bin/command-dispatch.js.map +1 -0
  12. package/dist/bin/commands/check.d.ts +1 -1
  13. package/dist/bin/commands/check.d.ts.map +1 -1
  14. package/dist/bin/commands/check.js +157 -107
  15. package/dist/bin/commands/check.js.map +1 -1
  16. package/dist/bin/commands/drift.d.ts +6 -2
  17. package/dist/bin/commands/drift.d.ts.map +1 -1
  18. package/dist/bin/commands/drift.js +49 -8
  19. package/dist/bin/commands/drift.js.map +1 -1
  20. package/dist/bin/commands/generate.d.ts.map +1 -1
  21. package/dist/bin/commands/generate.js +4 -0
  22. package/dist/bin/commands/generate.js.map +1 -1
  23. package/dist/bin/commands/migrate.d.ts.map +1 -1
  24. package/dist/bin/commands/migrate.js +189 -171
  25. package/dist/bin/commands/migrate.js.map +1 -1
  26. package/dist/bin/commands/status.d.ts.map +1 -1
  27. package/dist/bin/commands/status.js +15 -5
  28. package/dist/bin/commands/status.js.map +1 -1
  29. package/dist/bin/config.d.ts.map +1 -1
  30. package/dist/bin/config.js +14 -5
  31. package/dist/bin/config.js.map +1 -1
  32. package/dist/bin/debug.d.ts +3 -0
  33. package/dist/bin/debug.d.ts.map +1 -0
  34. package/dist/bin/debug.js +14 -0
  35. package/dist/bin/debug.js.map +1 -0
  36. package/dist/bin/help.d.ts.map +1 -1
  37. package/dist/bin/help.js +1 -0
  38. package/dist/bin/help.js.map +1 -1
  39. package/dist/bin/internal-plugins/index.d.ts +3 -0
  40. package/dist/bin/internal-plugins/index.d.ts.map +1 -0
  41. package/dist/bin/internal-plugins/index.js +5 -0
  42. package/dist/bin/internal-plugins/index.js.map +1 -0
  43. package/dist/bin/internal-plugins/skill-hint.d.ts +31 -0
  44. package/dist/bin/internal-plugins/skill-hint.d.ts.map +1 -0
  45. package/dist/bin/internal-plugins/skill-hint.js +172 -0
  46. package/dist/bin/internal-plugins/skill-hint.js.map +1 -0
  47. package/dist/bin/journal-store.d.ts +3 -6
  48. package/dist/bin/journal-store.d.ts.map +1 -1
  49. package/dist/bin/journal-store.js +87 -16
  50. package/dist/bin/journal-store.js.map +1 -1
  51. package/dist/bin/json-output.d.ts +2 -5
  52. package/dist/bin/json-output.d.ts.map +1 -1
  53. package/dist/bin/json-output.js +1 -1
  54. package/dist/bin/json-output.js.map +1 -1
  55. package/dist/bin/lib.d.ts +2 -5
  56. package/dist/bin/lib.d.ts.map +1 -1
  57. package/dist/bin/lib.js +2 -5
  58. package/dist/bin/lib.js.map +1 -1
  59. package/dist/bin/logging.d.ts +3 -0
  60. package/dist/bin/logging.d.ts.map +1 -0
  61. package/dist/bin/logging.js +31 -0
  62. package/dist/bin/logging.js.map +1 -0
  63. package/dist/bin/migration-store.d.ts +2 -2
  64. package/dist/bin/migration-store.d.ts.map +1 -1
  65. package/dist/bin/migration-store.js +1 -1
  66. package/dist/bin/migration-store.js.map +1 -1
  67. package/dist/bin/plugin-runtime.d.ts +9 -1
  68. package/dist/bin/plugin-runtime.d.ts.map +1 -1
  69. package/dist/bin/plugin-runtime.js +251 -2
  70. package/dist/bin/plugin-runtime.js.map +1 -1
  71. package/dist/bin/safety-markers.d.ts +3 -4
  72. package/dist/bin/safety-markers.d.ts.map +1 -1
  73. package/dist/bin/safety-markers.js +4 -13
  74. package/dist/bin/safety-markers.js.map +1 -1
  75. package/dist/bin/schema-loader.d.ts +1 -1
  76. package/dist/bin/schema-loader.d.ts.map +1 -1
  77. package/dist/bin/schema-loader.js +7 -2
  78. package/dist/bin/schema-loader.js.map +1 -1
  79. package/dist/bin/table-scope.d.ts +1 -2
  80. package/dist/bin/table-scope.d.ts.map +1 -1
  81. package/dist/bin/table-scope.js +1 -1
  82. package/dist/bin/table-scope.js.map +1 -1
  83. package/dist/commands/check/command.d.ts +3 -0
  84. package/dist/commands/check/command.d.ts.map +1 -0
  85. package/dist/commands/check/command.js +106 -0
  86. package/dist/commands/check/command.js.map +1 -0
  87. package/dist/commands/check/output.d.ts +35 -0
  88. package/dist/commands/check/output.d.ts.map +1 -0
  89. package/dist/commands/check/output.js +105 -0
  90. package/dist/commands/check/output.js.map +1 -0
  91. package/dist/commands/drift/command.d.ts +3 -0
  92. package/dist/commands/drift/command.d.ts.map +1 -0
  93. package/dist/commands/drift/command.js +128 -0
  94. package/dist/commands/drift/command.js.map +1 -0
  95. package/dist/commands/drift/compare.d.ts +66 -0
  96. package/dist/commands/drift/compare.d.ts.map +1 -0
  97. package/dist/commands/drift/compare.js +220 -0
  98. package/dist/commands/drift/compare.js.map +1 -0
  99. package/dist/commands/drift/diff.d.ts +8 -0
  100. package/dist/commands/drift/diff.d.ts.map +1 -0
  101. package/dist/commands/drift/diff.js +46 -0
  102. package/dist/commands/drift/diff.js.map +1 -0
  103. package/dist/commands/drift/payload.d.ts +38 -0
  104. package/dist/commands/drift/payload.d.ts.map +1 -0
  105. package/dist/commands/drift/payload.js +111 -0
  106. package/dist/commands/drift/payload.js.map +1 -0
  107. package/dist/commands/generate/command.d.ts +3 -0
  108. package/dist/commands/generate/command.d.ts.map +1 -0
  109. package/dist/commands/generate/command.js +166 -0
  110. package/dist/commands/generate/command.js.map +1 -0
  111. package/dist/commands/generate/output.d.ts +8 -0
  112. package/dist/commands/generate/output.d.ts.map +1 -0
  113. package/dist/commands/generate/output.js +59 -0
  114. package/dist/commands/generate/output.js.map +1 -0
  115. package/dist/commands/generate/plan-pipeline.d.ts +7 -0
  116. package/dist/commands/generate/plan-pipeline.d.ts.map +1 -0
  117. package/dist/commands/generate/plan-pipeline.js +143 -0
  118. package/dist/commands/generate/plan-pipeline.js.map +1 -0
  119. package/dist/commands/generate/rename-mappings.d.ts +29 -0
  120. package/dist/commands/generate/rename-mappings.d.ts.map +1 -0
  121. package/dist/commands/generate/rename-mappings.js +195 -0
  122. package/dist/commands/generate/rename-mappings.js.map +1 -0
  123. package/dist/commands/init.d.ts +2 -0
  124. package/dist/commands/init.d.ts.map +1 -0
  125. package/dist/commands/init.js +101 -0
  126. package/dist/commands/init.js.map +1 -0
  127. package/dist/commands/migrate/apply.d.ts +33 -0
  128. package/dist/commands/migrate/apply.d.ts.map +1 -0
  129. package/dist/commands/migrate/apply.js +143 -0
  130. package/dist/commands/migrate/apply.js.map +1 -0
  131. package/dist/commands/migrate/async-apply.d.ts +30 -0
  132. package/dist/commands/migrate/async-apply.d.ts.map +1 -0
  133. package/dist/commands/migrate/async-apply.js +258 -0
  134. package/dist/commands/migrate/async-apply.js.map +1 -0
  135. package/dist/commands/migrate/command.d.ts +3 -0
  136. package/dist/commands/migrate/command.d.ts.map +1 -0
  137. package/dist/commands/migrate/command.js +207 -0
  138. package/dist/commands/migrate/command.js.map +1 -0
  139. package/dist/commands/migrate/destructive.d.ts +7 -0
  140. package/dist/commands/migrate/destructive.d.ts.map +1 -0
  141. package/dist/commands/migrate/destructive.js +24 -0
  142. package/dist/commands/migrate/destructive.js.map +1 -0
  143. package/dist/commands/migrate/prompts.d.ts +6 -0
  144. package/dist/commands/migrate/prompts.d.ts.map +1 -0
  145. package/dist/commands/migrate/prompts.js +40 -0
  146. package/dist/commands/migrate/prompts.js.map +1 -0
  147. package/dist/commands/migrate/scope.d.ts +12 -0
  148. package/dist/commands/migrate/scope.d.ts.map +1 -0
  149. package/dist/commands/migrate/scope.js +35 -0
  150. package/dist/commands/migrate/scope.js.map +1 -0
  151. package/dist/commands/plugin.d.ts +3 -0
  152. package/dist/commands/plugin.d.ts.map +1 -0
  153. package/dist/commands/plugin.js +129 -0
  154. package/dist/commands/plugin.js.map +1 -0
  155. package/dist/commands/query.d.ts +17 -0
  156. package/dist/commands/query.d.ts.map +1 -0
  157. package/dist/commands/query.js +155 -0
  158. package/dist/commands/query.js.map +1 -0
  159. package/dist/commands/skills.d.ts +13 -0
  160. package/dist/commands/skills.d.ts.map +1 -0
  161. package/dist/commands/skills.js +25 -0
  162. package/dist/commands/skills.js.map +1 -0
  163. package/dist/commands/status.d.ts +3 -0
  164. package/dist/commands/status.d.ts.map +1 -0
  165. package/dist/commands/status.js +69 -0
  166. package/dist/commands/status.js.map +1 -0
  167. package/dist/drift.d.ts +7 -6
  168. package/dist/drift.d.ts.map +1 -1
  169. package/dist/drift.js +19 -8
  170. package/dist/drift.js.map +1 -1
  171. package/dist/internal-plugins/core/plugin.d.ts +2 -0
  172. package/dist/internal-plugins/core/plugin.d.ts.map +1 -0
  173. package/dist/internal-plugins/core/plugin.js +21 -0
  174. package/dist/internal-plugins/core/plugin.js.map +1 -0
  175. package/dist/internal-plugins/index.d.ts +3 -0
  176. package/dist/internal-plugins/index.d.ts.map +1 -0
  177. package/dist/internal-plugins/index.js +6 -0
  178. package/dist/internal-plugins/index.js.map +1 -0
  179. package/dist/internal-plugins/skill-hint/agent-detect.d.ts +20 -0
  180. package/dist/internal-plugins/skill-hint/agent-detect.d.ts.map +1 -0
  181. package/dist/internal-plugins/skill-hint/agent-detect.js +68 -0
  182. package/dist/internal-plugins/skill-hint/agent-detect.js.map +1 -0
  183. package/dist/internal-plugins/skill-hint/plugin.d.ts +16 -0
  184. package/dist/internal-plugins/skill-hint/plugin.d.ts.map +1 -0
  185. package/dist/internal-plugins/skill-hint/plugin.js +60 -0
  186. package/dist/internal-plugins/skill-hint/plugin.js.map +1 -0
  187. package/dist/internal-plugins/skill-hint/prompt.d.ts +5 -0
  188. package/dist/internal-plugins/skill-hint/prompt.d.ts.map +1 -0
  189. package/dist/internal-plugins/skill-hint/prompt.js +37 -0
  190. package/dist/internal-plugins/skill-hint/prompt.js.map +1 -0
  191. package/dist/internal-plugins/skill-hint/state.d.ts +7 -0
  192. package/dist/internal-plugins/skill-hint/state.d.ts.map +1 -0
  193. package/dist/internal-plugins/skill-hint/state.js +23 -0
  194. package/dist/internal-plugins/skill-hint/state.js.map +1 -0
  195. package/dist/plugins.d.ts +109 -27
  196. package/dist/plugins.d.ts.map +1 -1
  197. package/dist/plugins.js +0 -6
  198. package/dist/plugins.js.map +1 -1
  199. package/dist/runtime/command-dispatch.d.ts +18 -0
  200. package/dist/runtime/command-dispatch.d.ts.map +1 -0
  201. package/dist/runtime/command-dispatch.js +227 -0
  202. package/dist/runtime/command-dispatch.js.map +1 -0
  203. package/dist/runtime/command-registry.d.ts +31 -0
  204. package/dist/runtime/command-registry.d.ts.map +1 -0
  205. package/dist/runtime/command-registry.js +74 -0
  206. package/dist/runtime/command-registry.js.map +1 -0
  207. package/dist/runtime/config-merge.d.ts +4 -0
  208. package/dist/runtime/config-merge.d.ts.map +1 -0
  209. package/dist/runtime/config-merge.js +72 -0
  210. package/dist/runtime/config-merge.js.map +1 -0
  211. package/dist/runtime/config.d.ts +30 -0
  212. package/dist/runtime/config.d.ts.map +1 -0
  213. package/dist/runtime/config.js +173 -0
  214. package/dist/runtime/config.js.map +1 -0
  215. package/dist/runtime/debug.d.ts +3 -0
  216. package/dist/runtime/debug.d.ts.map +1 -0
  217. package/dist/runtime/debug.js +14 -0
  218. package/dist/runtime/debug.js.map +1 -0
  219. package/dist/runtime/deps.d.ts +28 -0
  220. package/dist/runtime/deps.d.ts.map +1 -0
  221. package/dist/runtime/deps.js +91 -0
  222. package/dist/runtime/deps.js.map +1 -0
  223. package/dist/runtime/extract-config-path.d.ts +2 -0
  224. package/dist/runtime/extract-config-path.d.ts.map +1 -0
  225. package/dist/runtime/extract-config-path.js +13 -0
  226. package/dist/runtime/extract-config-path.js.map +1 -0
  227. package/dist/runtime/global-flags.d.ts +16 -0
  228. package/dist/runtime/global-flags.d.ts.map +1 -0
  229. package/dist/runtime/global-flags.js +7 -0
  230. package/dist/runtime/global-flags.js.map +1 -0
  231. package/dist/runtime/help.d.ts +5 -0
  232. package/dist/runtime/help.d.ts.map +1 -0
  233. package/dist/runtime/help.js +94 -0
  234. package/dist/runtime/help.js.map +1 -0
  235. package/dist/runtime/journal-store.d.ts +31 -0
  236. package/dist/runtime/journal-store.d.ts.map +1 -0
  237. package/dist/runtime/journal-store.js +250 -0
  238. package/dist/runtime/journal-store.js.map +1 -0
  239. package/dist/runtime/json-output.d.ts +25 -0
  240. package/dist/runtime/json-output.d.ts.map +1 -0
  241. package/dist/runtime/json-output.js +50 -0
  242. package/dist/runtime/json-output.js.map +1 -0
  243. package/dist/runtime/logging.d.ts +3 -0
  244. package/dist/runtime/logging.d.ts.map +1 -0
  245. package/dist/runtime/logging.js +31 -0
  246. package/dist/runtime/logging.js.map +1 -0
  247. package/dist/runtime/migration-metadata.d.ts +5 -0
  248. package/dist/runtime/migration-metadata.d.ts.map +1 -0
  249. package/dist/runtime/migration-metadata.js +29 -0
  250. package/dist/runtime/migration-metadata.js.map +1 -0
  251. package/dist/runtime/migration-store.d.ts +22 -0
  252. package/dist/runtime/migration-store.d.ts.map +1 -0
  253. package/dist/runtime/migration-store.js +60 -0
  254. package/dist/runtime/migration-store.js.map +1 -0
  255. package/dist/runtime/plugin-runtime/errors.d.ts +3 -0
  256. package/dist/runtime/plugin-runtime/errors.d.ts.map +1 -0
  257. package/dist/runtime/plugin-runtime/errors.js +13 -0
  258. package/dist/runtime/plugin-runtime/errors.js.map +1 -0
  259. package/dist/runtime/plugin-runtime/executor-debug.d.ts +3 -0
  260. package/dist/runtime/plugin-runtime/executor-debug.d.ts.map +1 -0
  261. package/dist/runtime/plugin-runtime/executor-debug.js +65 -0
  262. package/dist/runtime/plugin-runtime/executor-debug.js.map +1 -0
  263. package/dist/runtime/plugin-runtime/hooks.d.ts +23 -0
  264. package/dist/runtime/plugin-runtime/hooks.d.ts.map +1 -0
  265. package/dist/runtime/plugin-runtime/hooks.js +148 -0
  266. package/dist/runtime/plugin-runtime/hooks.js.map +1 -0
  267. package/dist/runtime/plugin-runtime/index.d.ts +9 -0
  268. package/dist/runtime/plugin-runtime/index.d.ts.map +1 -0
  269. package/dist/runtime/plugin-runtime/index.js +184 -0
  270. package/dist/runtime/plugin-runtime/index.js.map +1 -0
  271. package/dist/runtime/plugin-runtime/loader.d.ts +11 -0
  272. package/dist/runtime/plugin-runtime/loader.d.ts.map +1 -0
  273. package/dist/runtime/plugin-runtime/loader.js +37 -0
  274. package/dist/runtime/plugin-runtime/loader.js.map +1 -0
  275. package/dist/runtime/plugin-runtime/null-executor.d.ts +3 -0
  276. package/dist/runtime/plugin-runtime/null-executor.d.ts.map +1 -0
  277. package/dist/runtime/plugin-runtime/null-executor.js +17 -0
  278. package/dist/runtime/plugin-runtime/null-executor.js.map +1 -0
  279. package/dist/runtime/safety-markers.d.ts +56 -0
  280. package/dist/runtime/safety-markers.d.ts.map +1 -0
  281. package/dist/runtime/safety-markers.js +211 -0
  282. package/dist/runtime/safety-markers.js.map +1 -0
  283. package/dist/runtime/schema-loader.d.ts +3 -0
  284. package/dist/runtime/schema-loader.d.ts.map +1 -0
  285. package/dist/runtime/schema-loader.js +11 -0
  286. package/dist/runtime/schema-loader.js.map +1 -0
  287. package/dist/runtime/table-scope.d.ts +33 -0
  288. package/dist/runtime/table-scope.d.ts.map +1 -0
  289. package/dist/runtime/table-scope.js +167 -0
  290. package/dist/runtime/table-scope.js.map +1 -0
  291. package/dist/runtime/user-config.d.ts +4 -0
  292. package/dist/runtime/user-config.d.ts.map +1 -0
  293. package/dist/runtime/user-config.js +11 -0
  294. package/dist/runtime/user-config.js.map +1 -0
  295. package/dist/runtime/version.d.ts +2 -0
  296. package/dist/runtime/version.d.ts.map +1 -0
  297. package/dist/runtime/version.js +5 -0
  298. package/dist/runtime/version.js.map +1 -0
  299. package/package.json +24 -6
package/README.md CHANGED
@@ -19,9 +19,11 @@ Define your ClickHouse schema in TypeScript, generate migrations automatically,
19
19
  ## Install
20
20
 
21
21
  ```bash
22
- bun add -d chkit
22
+ bun add -d chkit @chkit/core
23
23
  ```
24
24
 
25
+ `@chkit/core` provides the `table()` / schema DSL your `*.schema.ts` files import, so it is required alongside the CLI.
26
+
25
27
  ## Usage
26
28
 
27
29
  ```bash
@@ -46,6 +48,11 @@ bunx chkit check
46
48
 
47
49
  All commands support `--json` for machine-readable output and `--config <path>` to specify a custom config file.
48
50
 
51
+ ## Requirements
52
+
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/).
55
+
49
56
  ## Plugins
50
57
 
51
58
  | Plugin | Description |
@@ -55,14 +62,43 @@ All commands support `--json` for machine-readable output and `--config <path>`
55
62
  | [`@chkit/plugin-backfill`](https://www.npmjs.com/package/@chkit/plugin-backfill) | Time-windowed data backfill with checkpoints |
56
63
  | [`@chkit/plugin-obsessiondb`](https://www.npmjs.com/package/@chkit/plugin-obsessiondb) | Auto-rewrite Shared engines for ObsessionDB compatibility |
57
64
 
65
+ ## AI Agent Skill
66
+
67
+ Install the chkit agent skill so AI coding assistants understand chkit:
68
+
69
+ ```bash
70
+ npx skills add obsessiondb/chkit
71
+ ```
72
+
58
73
  ## Documentation
59
74
 
60
75
  See the [chkit documentation](https://chkit.obsessiondb.com).
61
76
 
77
+ ## Versioning & releases
78
+
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.
83
+
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.
97
+
62
98
  ## License
63
99
 
64
100
  [MIT](../../LICENSE)
65
101
 
66
102
  ---
67
103
 
68
- Sponsored by [ObsessionDB](https://obsessiondb.com)
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)).
package/dist/bin/chkit.js CHANGED
@@ -1,65 +1,104 @@
1
1
  #!/usr/bin/env node
2
2
  import process from 'node:process';
3
- import { typedFlags } from '../plugins.js';
4
- import { createCommandRegistry } from './command-registry.js';
5
- import { generateCommand } from './commands/generate.js';
6
- import { migrateCommand } from './commands/migrate.js';
7
- import { statusCommand } from './commands/status.js';
8
- import { driftCommand } from './commands/drift.js';
9
- import { checkCommand } from './commands/check.js';
10
- import { pluginCommand } from './commands/plugin.js';
11
- import { cmdInit } from './commands/init.js';
12
- import { loadConfig, resolveDirs } from './config.js';
13
- import { GLOBAL_FLAGS } from './global-flags.js';
14
- import { formatGlobalHelp, formatCommandHelp } from './help.js';
15
- import { parseFlags, UnknownFlagError, MissingFlagValueError } from '@chkit/core';
16
- import { loadPluginRuntime } from './plugin-runtime.js';
17
- import { resolveTableScope, tableKeysFromDefinitions } from './table-scope.js';
18
- import { loadSchemaDefinitions } from './schema-loader.js';
19
- import { CLI_VERSION } from './version.js';
3
+ import { cmdInit } from '../commands/init.js';
4
+ import { cmdSkills } from '../commands/skills.js';
5
+ import { getInternalPlugins } from '../internal-plugins/index.js';
6
+ import { parseCommandArgs, runResolvedCommand } from '../runtime/command-dispatch.js';
7
+ import { createCommandRegistry } from '../runtime/command-registry.js';
8
+ import { loadConfig } from '../runtime/config.js';
9
+ import { debug } from '../runtime/debug.js';
10
+ import { extractConfigPath } from '../runtime/extract-config-path.js';
11
+ import { GLOBAL_FLAGS } from '../runtime/global-flags.js';
12
+ import { formatCommandHelp, formatGlobalHelp } from '../runtime/help.js';
13
+ import { emitJsonError, hasEmittedJson } from '../runtime/json-output.js';
14
+ import { configureCliLogging } from '../runtime/logging.js';
15
+ import { loadPluginRuntime } from '../runtime/plugin-runtime/index.js';
16
+ import { CLI_VERSION } from '../runtime/version.js';
20
17
  const WELL_KNOWN_PLUGIN_COMMANDS = {
21
18
  codegen: 'Codegen',
22
19
  pull: 'Pull',
23
20
  };
24
- function extractConfigPath(argv) {
25
- const idx = argv.indexOf('--config');
26
- if (idx === -1)
27
- return undefined;
28
- return argv[idx + 1];
29
- }
30
- /** Strip global flags (--config, --json, --table) from argv, returning their values and the rest. */
31
- function stripGlobalFlags(argv) {
32
- const rest = [];
33
- let jsonMode = false;
34
- let tableSelector;
35
- for (let i = 0; i < argv.length; i++) {
21
+ const PROJECT_ONLY_COMMANDS = new Set([
22
+ 'generate',
23
+ 'migrate',
24
+ 'status',
25
+ 'drift',
26
+ 'check',
27
+ 'codegen',
28
+ 'pull',
29
+ ]);
30
+ function firstPluginPositional(argv) {
31
+ const globalFlags = new Map(GLOBAL_FLAGS.map((flag) => [flag.name, flag]));
32
+ for (let i = 1; i < argv.length; i += 1) {
36
33
  const token = argv[i];
37
- if (token === '--json') {
38
- jsonMode = true;
39
- continue;
40
- }
41
- if (token === '--config' && i + 1 < argv.length) {
42
- i++;
34
+ if (!token)
43
35
  continue;
44
- }
45
- if (token === '--table' && i + 1 < argv.length) {
46
- tableSelector = argv[i + 1];
47
- i++;
36
+ const eqIdx = token.startsWith('--') ? token.indexOf('=') : -1;
37
+ const name = eqIdx === -1 ? token : token.slice(0, eqIdx);
38
+ const flag = globalFlags.get(name);
39
+ if (flag) {
40
+ if (flag.type !== 'boolean' && eqIdx === -1)
41
+ i += 1;
48
42
  continue;
49
43
  }
50
- rest.push(token);
44
+ return token;
45
+ }
46
+ }
47
+ function allowsConfiglessObsessionDBBootstrap(commandName, argv) {
48
+ if (commandName === 'obsessiondb')
49
+ return true;
50
+ return commandName === 'plugin' && firstPluginPositional(argv) === 'obsessiondb';
51
+ }
52
+ function formatFatalError(error) {
53
+ if (!(error instanceof Error))
54
+ return String(error);
55
+ if (error.message)
56
+ return error.message;
57
+ if ('errors' in error && Array.isArray(error.errors)) {
58
+ const sub = error.errors;
59
+ const first = sub[0];
60
+ if (first instanceof Error && first.message)
61
+ return first.message;
62
+ }
63
+ if ('code' in error && typeof error.code === 'string') {
64
+ return error.code;
65
+ }
66
+ return String(error) || 'Unknown error';
67
+ }
68
+ function toJsonError(error) {
69
+ const code = error instanceof Error &&
70
+ 'code' in error &&
71
+ typeof error.code === 'string'
72
+ ? error.code
73
+ : 'error';
74
+ return { code, message: formatFatalError(error) };
75
+ }
76
+ /**
77
+ * Report a usage error from a non-throwing early-return path (unknown command,
78
+ * missing project config, plugin not configured). Mirrors the top-level catch:
79
+ * the human message always goes to stderr; in --json mode a parseable error
80
+ * envelope goes to stdout (instead of nothing — or, for unknown commands, help
81
+ * text that would break a `jq` consumer). Sets a failing exit code.
82
+ */
83
+ function reportUsageError(input) {
84
+ console.error(input.message);
85
+ if (input.jsonMode) {
86
+ emitJsonError(input.command, { code: input.code, message: input.message });
51
87
  }
52
- return { jsonMode, tableSelector, rest };
88
+ else {
89
+ input.onText?.();
90
+ }
91
+ process.exitCode = 1;
92
+ }
93
+ function resolveExitCode() {
94
+ if (typeof process.exitCode === 'number')
95
+ return process.exitCode;
96
+ return process.exitCode ? Number(process.exitCode) : 0;
53
97
  }
54
98
  function exitIfNeeded() {
55
- const code = typeof process.exitCode === 'number'
56
- ? process.exitCode
57
- : process.exitCode
58
- ? Number(process.exitCode)
59
- : 0;
60
- if (Number.isFinite(code) && code > 0) {
99
+ const code = resolveExitCode();
100
+ if (Number.isFinite(code) && code > 0)
61
101
  process.exit(code);
62
- }
63
102
  }
64
103
  function collectExtensions(runtime) {
65
104
  return runtime.plugins.flatMap((p) => {
@@ -77,31 +116,13 @@ function collectPluginCommands(runtime) {
77
116
  return [{ pluginName: p.plugin.manifest.name, commands, manifestName: p.plugin.manifest.name }];
78
117
  });
79
118
  }
80
- async function main() {
119
+ async function run() {
120
+ configureCliLogging();
81
121
  const argv = process.argv.slice(2);
82
122
  const commandName = argv[0];
123
+ debug('cli', `chkit ${CLI_VERSION} — argv: [${argv.join(', ')}]`);
83
124
  if (!commandName || commandName === '-h' || commandName === '--help') {
84
- const configPathArg = extractConfigPath(argv);
85
- try {
86
- const { config, path: configPath } = await loadConfig(configPathArg);
87
- const pluginRuntime = await loadPluginRuntime({ config, configPath, cliVersion: CLI_VERSION });
88
- const registry = createCommandRegistry({
89
- coreCommands: [generateCommand, migrateCommand, statusCommand, driftCommand, checkCommand, pluginCommand],
90
- globalFlags: GLOBAL_FLAGS,
91
- pluginExtensions: collectExtensions(pluginRuntime),
92
- pluginCommands: collectPluginCommands(pluginRuntime),
93
- });
94
- console.log(formatGlobalHelp(registry, CLI_VERSION));
95
- }
96
- catch {
97
- const registry = createCommandRegistry({
98
- coreCommands: [generateCommand, migrateCommand, statusCommand, driftCommand, checkCommand, pluginCommand],
99
- globalFlags: GLOBAL_FLAGS,
100
- pluginExtensions: [],
101
- pluginCommands: [],
102
- });
103
- console.log(formatGlobalHelp(registry, CLI_VERSION));
104
- }
125
+ await printGlobalHelp(argv);
105
126
  return;
106
127
  }
107
128
  if (commandName === '-v' || commandName === '--version') {
@@ -109,169 +130,175 @@ async function main() {
109
130
  return;
110
131
  }
111
132
  if (commandName === 'init') {
112
- await cmdInit();
133
+ await cmdInit(argv.slice(1));
134
+ return;
135
+ }
136
+ // `skills` proxies to the external `skills` CLI and needs no project config, so handle it
137
+ // before config loading (like `init`).
138
+ if (commandName === 'skills') {
139
+ process.exitCode = await cmdSkills(argv.slice(1));
113
140
  return;
114
141
  }
115
142
  const configPathArg = extractConfigPath(argv);
116
- const { config, path: configPath } = await loadConfig(configPathArg);
117
- const pluginRuntime = await loadPluginRuntime({ config, configPath, cliVersion: CLI_VERSION });
143
+ const env = { command: commandName, mode: process.env.NODE_ENV };
144
+ const { config, path: configPath, source: configSource } = await loadConfig(configPathArg, env, {
145
+ command: commandName,
146
+ allowSynthesizedProfileConfig: allowsConfiglessObsessionDBBootstrap(commandName, argv),
147
+ });
148
+ if (configSource !== 'project' && PROJECT_ONLY_COMMANDS.has(commandName)) {
149
+ reportUsageError({
150
+ command: commandName,
151
+ code: 'project_config_required',
152
+ message: `Command "${commandName}" requires a project config (clickhouse.config.ts) in the current directory.\n` +
153
+ `You are running chkit from a user profile (no local config found).`,
154
+ jsonMode: argv.includes('--json'),
155
+ });
156
+ return;
157
+ }
158
+ const pluginRuntime = await loadPluginRuntime({
159
+ config,
160
+ configPath,
161
+ cliVersion: CLI_VERSION,
162
+ internalPlugins: getInternalPlugins(),
163
+ });
118
164
  const registry = createCommandRegistry({
119
- coreCommands: [generateCommand, migrateCommand, statusCommand, driftCommand, checkCommand, pluginCommand],
120
165
  globalFlags: GLOBAL_FLAGS,
121
166
  pluginExtensions: collectExtensions(pluginRuntime),
122
167
  pluginCommands: collectPluginCommands(pluginRuntime),
123
168
  });
124
169
  const resolved = registry.get(commandName);
125
- if (!resolved) {
126
- const wellKnown = WELL_KNOWN_PLUGIN_COMMANDS[commandName];
127
- if (wellKnown) {
128
- console.error(`${wellKnown} plugin is not configured. Add it to config.plugins first.`);
129
- process.exitCode = 1;
170
+ let initFlags = {};
171
+ if (resolved &&
172
+ !resolved.subcommands &&
173
+ commandName !== 'plugin' &&
174
+ !argv.includes('--help') &&
175
+ !argv.includes('-h')) {
176
+ const parsed = parseCommandArgs(commandName, argv.slice(1), registry.resolveFlags(commandName));
177
+ if (!parsed)
130
178
  return;
131
- }
132
- console.error(`Unknown command: ${commandName}`);
133
- console.log('');
134
- console.log(formatGlobalHelp(registry, CLI_VERSION));
135
- process.exitCode = 1;
136
- return;
179
+ initFlags = parsed.flags;
137
180
  }
138
- if (argv.includes('--help') || argv.includes('-h')) {
139
- console.log(formatCommandHelp(resolved, registry.globalFlags));
140
- return;
141
- }
142
- if (resolved.isPlugin && !resolved.run) {
143
- const argsAfterCommand = argv.slice(1);
144
- let subcommandName;
145
- if (resolved.subcommands) {
146
- // Match against known subcommand names to avoid confusing flag values
147
- // (e.g., config paths) with subcommand candidates
148
- const matchedSub = resolved.subcommands.find((s) => argsAfterCommand.includes(s.name));
149
- if (matchedSub) {
150
- subcommandName = matchedSub.name;
151
- }
152
- else if (resolved.subcommands.length === 1) {
153
- subcommandName = resolved.subcommands[0]?.name;
154
- }
155
- else {
156
- console.log(formatCommandHelp(resolved, registry.globalFlags));
157
- return;
158
- }
159
- }
160
- const allPluginFlags = registry.resolveFlags(commandName, subcommandName);
161
- let flags;
162
- try {
163
- flags = parseFlags(argsAfterCommand, allPluginFlags);
164
- }
165
- catch (error) {
166
- if (error instanceof UnknownFlagError || error instanceof MissingFlagValueError) {
167
- console.error(error.message);
168
- process.exitCode = 1;
181
+ const initCtx = {
182
+ command: commandName,
183
+ configPath,
184
+ isInteractive: process.stdin.isTTY === true && process.stderr.isTTY === true,
185
+ jsonMode: argv.includes('--json'),
186
+ flags: initFlags,
187
+ config,
188
+ };
189
+ await pluginRuntime.runOnInit(initCtx);
190
+ let completed = false;
191
+ const complete = async (exitCode) => {
192
+ if (completed)
193
+ return;
194
+ completed = true;
195
+ await pluginRuntime.runOnComplete({ ...initCtx, exitCode });
196
+ };
197
+ debug('cli', `command "${commandName}" resolved: ${resolved ? `plugin (${resolved.pluginName ?? '?'})` : 'not found'}`);
198
+ try {
199
+ if (!resolved) {
200
+ const wellKnown = WELL_KNOWN_PLUGIN_COMMANDS[commandName];
201
+ if (wellKnown) {
202
+ reportUsageError({
203
+ command: commandName,
204
+ code: 'plugin_not_configured',
205
+ message: `${wellKnown} plugin is not configured. Add it to config.plugins first.`,
206
+ jsonMode: argv.includes('--json'),
207
+ });
169
208
  return;
170
209
  }
171
- throw error;
172
- }
173
- const gf = typedFlags(flags, GLOBAL_FLAGS);
174
- const jsonMode = gf['--json'] === true;
175
- const tableSelector = gf['--table'];
176
- let tableScope;
177
- try {
178
- const definitions = await loadSchemaDefinitions(config.schema);
179
- tableScope = resolveTableScope(tableSelector, tableKeysFromDefinitions(definitions));
180
- }
181
- catch {
182
- tableScope = resolveTableScope(tableSelector, []);
183
- }
184
- try {
185
- await pluginRuntime.runOnConfigLoaded({
210
+ reportUsageError({
186
211
  command: commandName,
187
- config,
188
- configPath,
189
- tableScope,
190
- flags,
212
+ code: 'unknown_command',
213
+ message: `Unknown command: ${commandName}`,
214
+ jsonMode: argv.includes('--json'),
215
+ onText: () => {
216
+ console.log('');
217
+ console.log(formatGlobalHelp(registry, CLI_VERSION));
218
+ },
191
219
  });
220
+ return;
192
221
  }
193
- catch (error) {
194
- const message = error instanceof Error ? error.message : String(error);
195
- if (jsonMode) {
196
- console.log(JSON.stringify({ ok: false, error: message }));
197
- }
198
- else {
199
- console.error(message);
200
- }
201
- process.exitCode = 2;
202
- exitIfNeeded();
222
+ if (argv.includes('--help') || argv.includes('-h')) {
223
+ console.log(formatCommandHelp(resolved, registry.globalFlags));
203
224
  return;
204
225
  }
205
- const pluginName = resolved.pluginName ?? commandName;
206
- const pluginCommandName = subcommandName ?? commandName;
207
- const { printOutput } = await import('./json-output.js');
208
- const exitCode = await pluginRuntime.runPluginCommand(pluginName, pluginCommandName, {
226
+ await runResolvedCommand({
227
+ argv,
228
+ commandName,
229
+ resolved,
230
+ registry,
209
231
  config,
210
232
  configPath,
211
- jsonMode,
212
- tableScope,
213
- args: [],
214
- flags,
215
- print(value) {
216
- printOutput(value, jsonMode);
233
+ pluginRuntime,
234
+ onAmbiguousPluginSubcommand() {
235
+ console.log(formatCommandHelp(resolved, registry.globalFlags));
217
236
  },
218
237
  });
219
- if (exitCode !== 0)
220
- process.exitCode = exitCode;
221
- exitIfNeeded();
222
- return;
223
238
  }
224
- // For the 'plugin' command, use lenient flag extraction since plugin-specific
225
- // flags are handled by the plugin's own parser
226
- if (commandName === 'plugin') {
227
- const { jsonMode, tableSelector } = stripGlobalFlags(argv.slice(1));
228
- const flags = {};
229
- if (jsonMode)
230
- flags['--json'] = true;
231
- if (tableSelector)
232
- flags['--table'] = tableSelector;
233
- const dirs = resolveDirs(config);
234
- if (!resolved.run)
235
- throw new Error(`Command '${commandName}' has no run handler`);
236
- await resolved.run({
237
- command: commandName,
238
- flags,
239
+ catch (error) {
240
+ try {
241
+ await complete(1);
242
+ }
243
+ catch {
244
+ // onComplete errors must not mask the original error
245
+ }
246
+ throw error;
247
+ }
248
+ await complete(resolveExitCode());
249
+ }
250
+ async function printGlobalHelp(argv) {
251
+ const configPathArg = extractConfigPath(argv);
252
+ let registry;
253
+ try {
254
+ const { config, path: configPath } = await loadConfig(configPathArg);
255
+ const pluginRuntime = await loadPluginRuntime({
239
256
  config,
240
257
  configPath,
241
- dirs,
242
- pluginRuntime,
258
+ cliVersion: CLI_VERSION,
259
+ internalPlugins: getInternalPlugins(),
260
+ });
261
+ registry = createCommandRegistry({
262
+ globalFlags: GLOBAL_FLAGS,
263
+ pluginExtensions: collectExtensions(pluginRuntime),
264
+ pluginCommands: collectPluginCommands(pluginRuntime),
243
265
  });
244
- exitIfNeeded();
245
- return;
246
266
  }
247
- const allFlags = registry.resolveFlags(commandName);
248
- let flags;
249
- try {
250
- flags = parseFlags(argv.slice(1), allFlags);
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
+ });
251
279
  }
252
- catch (error) {
253
- if (error instanceof UnknownFlagError || error instanceof MissingFlagValueError) {
254
- console.error(error.message);
255
- process.exitCode = 1;
256
- return;
280
+ console.log(formatGlobalHelp(registry, CLI_VERSION));
281
+ }
282
+ run()
283
+ .then(exitIfNeeded)
284
+ .catch((error) => {
285
+ debug('cli', 'fatal error', error instanceof Error
286
+ ? {
287
+ message: error.message,
288
+ stack: error.stack,
289
+ ...('code' in error ? { code: error.code } : {}),
257
290
  }
258
- throw error;
291
+ : error);
292
+ const argv = process.argv.slice(2);
293
+ const jsonMode = argv.includes('--json');
294
+ // In --json mode emit a machine-readable envelope to stdout (so a pipe to
295
+ // jq doesn't break on the first error) unless a command already wrote a
296
+ // structured JSON payload. The human-readable message always goes to
297
+ // stderr — stdout stays parseable, stderr stays diagnostic.
298
+ if (jsonMode && !hasEmittedJson()) {
299
+ emitJsonError(argv[0] ?? 'chkit', toJsonError(error));
259
300
  }
260
- const dirs = resolveDirs(config);
261
- if (!resolved.run)
262
- throw new Error(`Command '${commandName}' has no run handler`);
263
- await resolved.run({
264
- command: commandName,
265
- flags,
266
- config,
267
- configPath,
268
- dirs,
269
- pluginRuntime,
270
- });
271
- exitIfNeeded();
272
- }
273
- main().catch((error) => {
274
- console.error(error instanceof Error ? error.message : String(error));
301
+ console.error(formatFatalError(error));
275
302
  process.exit(1);
276
303
  });
277
304
  //# sourceMappingURL=chkit.js.map
@@ -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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"}