create-kuckit-app 0.1.1 → 0.2.0

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 (92) hide show
  1. package/dist/bin.js +1 -1
  2. package/dist/{create-project-DTm05G7D.js → create-project-CP-h4Ygi.js} +7 -5
  3. package/dist/index.js +1 -1
  4. package/package.json +3 -2
  5. package/templates/base/.claude/CLAUDE.md +44 -0
  6. package/templates/base/.claude/agents/daidalos.md +76 -0
  7. package/templates/base/.claude/agents/episteme.md +79 -0
  8. package/templates/base/.claude/agents/librarian.md +132 -0
  9. package/templates/base/.claude/agents/oracle.md +210 -0
  10. package/templates/base/.claude/commands/create-plan.md +159 -0
  11. package/templates/base/.claude/commands/file-beads.md +98 -0
  12. package/templates/base/.claude/commands/review-beads.md +161 -0
  13. package/templates/base/.claude/settings.json +11 -0
  14. package/templates/base/.claude/skills/kuckit/SKILL.md +436 -0
  15. package/templates/base/.claude/skills/kuckit/references/ARCHITECTURE.md +388 -0
  16. package/templates/base/.claude/skills/kuckit/references/CLI-COMMANDS.md +365 -0
  17. package/templates/base/.claude/skills/kuckit/references/MODULE-DEVELOPMENT.md +581 -0
  18. package/templates/base/.claude/skills/kuckit/references/PACKAGES.md +112 -0
  19. package/templates/base/.claude/skills/kuckit/references/PUBLISHING.md +231 -0
  20. package/templates/base/.env.example +13 -0
  21. package/templates/base/.github/workflows/ci.yml +28 -0
  22. package/templates/base/.husky/pre-commit +1 -0
  23. package/templates/base/.prettierignore +5 -0
  24. package/templates/base/.prettierrc +8 -0
  25. package/templates/base/AGENTS.md +148 -0
  26. package/templates/base/apps/server/.env.example +18 -0
  27. package/templates/base/apps/server/AGENTS.md +37 -0
  28. package/templates/base/apps/server/package.json +13 -2
  29. package/templates/base/apps/server/src/app.ts +20 -0
  30. package/templates/base/apps/server/src/auth.ts +10 -0
  31. package/templates/base/apps/server/src/config/modules.ts +22 -0
  32. package/templates/base/apps/server/src/container.ts +81 -0
  33. package/templates/base/apps/server/src/health.ts +27 -0
  34. package/templates/base/apps/server/src/middleware/container.ts +41 -0
  35. package/templates/base/apps/server/src/rpc-router-registry.ts +26 -0
  36. package/templates/base/apps/server/src/rpc.ts +31 -0
  37. package/templates/base/apps/server/src/server.ts +42 -14
  38. package/templates/base/apps/web/.env.example +4 -0
  39. package/templates/base/apps/web/AGENTS.md +53 -0
  40. package/templates/base/apps/web/index.html +1 -1
  41. package/templates/base/apps/web/package.json +15 -2
  42. package/templates/base/apps/web/src/lib/kuckit-router.ts +42 -0
  43. package/templates/base/apps/web/src/main.tsx +26 -14
  44. package/templates/base/apps/web/src/providers/KuckitProvider.tsx +147 -0
  45. package/templates/base/apps/web/src/providers/ServicesProvider.tsx +47 -0
  46. package/templates/base/apps/web/src/routeTree.gen.ts +91 -0
  47. package/templates/base/apps/web/src/routes/__root.tsx +31 -0
  48. package/templates/base/apps/web/src/routes/index.tsx +46 -0
  49. package/templates/base/apps/web/src/routes/login.tsx +108 -0
  50. package/templates/base/apps/web/src/services/auth-client.ts +12 -0
  51. package/templates/base/apps/web/src/services/index.ts +3 -0
  52. package/templates/base/apps/web/src/services/rpc.ts +29 -0
  53. package/templates/base/apps/web/src/services/types.ts +14 -0
  54. package/templates/base/apps/web/vite.config.ts +2 -1
  55. package/templates/base/docker-compose.yml +23 -0
  56. package/templates/base/eslint.config.js +18 -0
  57. package/templates/base/package.json +32 -2
  58. package/templates/base/packages/api/AGENTS.md +27 -0
  59. package/templates/base/packages/api/package.json +35 -0
  60. package/templates/base/packages/api/src/context.ts +48 -0
  61. package/templates/base/packages/api/src/index.ts +22 -0
  62. package/templates/base/packages/api/tsconfig.json +8 -0
  63. package/templates/base/packages/auth/AGENTS.md +45 -0
  64. package/templates/base/packages/auth/package.json +27 -0
  65. package/templates/base/packages/auth/src/index.ts +22 -0
  66. package/templates/base/packages/auth/tsconfig.json +8 -0
  67. package/templates/base/packages/db/AGENTS.md +59 -0
  68. package/templates/base/packages/db/drizzle.config.ts +19 -0
  69. package/templates/base/packages/db/package.json +36 -0
  70. package/templates/base/packages/db/src/connection.ts +40 -0
  71. package/templates/base/packages/db/src/index.ts +4 -0
  72. package/templates/base/packages/db/src/migrations/0000_init.sql +54 -0
  73. package/templates/base/packages/db/src/migrations/meta/_journal.json +13 -0
  74. package/templates/base/packages/db/src/schema/auth.ts +51 -0
  75. package/templates/base/packages/db/tsconfig.json +8 -0
  76. package/templates/base/packages/items-module/AGENTS.md +112 -0
  77. package/templates/base/packages/items-module/package.json +32 -0
  78. package/templates/base/packages/items-module/src/adapters/item.drizzle.ts +66 -0
  79. package/templates/base/packages/items-module/src/api/items.router.ts +47 -0
  80. package/templates/base/packages/items-module/src/client-module.ts +39 -0
  81. package/templates/base/packages/items-module/src/domain/item.entity.ts +36 -0
  82. package/templates/base/packages/items-module/src/index.ts +15 -0
  83. package/templates/base/packages/items-module/src/module.ts +53 -0
  84. package/templates/base/packages/items-module/src/ports/item.repository.ts +13 -0
  85. package/templates/base/packages/items-module/src/ui/ItemsPage.tsx +162 -0
  86. package/templates/base/packages/items-module/src/usecases/create-item.ts +25 -0
  87. package/templates/base/packages/items-module/src/usecases/delete-item.ts +18 -0
  88. package/templates/base/packages/items-module/src/usecases/get-item.ts +19 -0
  89. package/templates/base/packages/items-module/src/usecases/list-items.ts +21 -0
  90. package/templates/base/packages/items-module/tsconfig.json +9 -0
  91. package/templates/base/turbo.json +13 -1
  92. package/templates/base/apps/web/src/App.tsx +0 -16
@@ -0,0 +1,365 @@
1
+ # Kuckit CLI Command Reference
2
+
3
+ Complete reference for all `kuckit` CLI commands.
4
+
5
+ ## Module Commands
6
+
7
+ ### `kuckit generate module <name>`
8
+
9
+ Scaffold a new Kuckit module with proper structure.
10
+
11
+ ```bash
12
+ bunx kuckit generate module billing
13
+ bunx kuckit generate module billing --org acme
14
+ bunx kuckit generate module billing --dir packages/modules
15
+ ```
16
+
17
+ **Options:**
18
+
19
+ - `--org <name>` - Organization prefix (default: `kuckit`)
20
+ - `--dir <path>` - Output directory (default: `packages`)
21
+
22
+ **Generated Structure:**
23
+
24
+ ```
25
+ packages/billing-module/
26
+ ├── src/
27
+ │ ├── module.ts # Server module definition
28
+ │ ├── client/
29
+ │ │ └── module.ts # Client module definition
30
+ │ └── index.ts
31
+ ├── package.json
32
+ └── tsconfig.json
33
+ ```
34
+
35
+ ### `kuckit add <package>`
36
+
37
+ Install and wire a Kuckit module into your project.
38
+
39
+ ```bash
40
+ bunx kuckit add @acme/billing-module
41
+ bunx kuckit add @acme/billing-module --skip-install
42
+ ```
43
+
44
+ **Options:**
45
+
46
+ - `--skip-install` - Skip npm/bun install
47
+
48
+ **Actions:**
49
+
50
+ 1. Detects package manager from lock file
51
+ 2. Installs the package
52
+ 3. Reads `kuckit` metadata from package.json
53
+ 4. Updates `kuckit.config.ts`
54
+ 5. Wires client module if applicable
55
+
56
+ ### `kuckit search <keyword>`
57
+
58
+ Search npm registry for Kuckit-compatible modules.
59
+
60
+ ```bash
61
+ bunx kuckit search billing
62
+ bunx kuckit search auth --limit 20
63
+ bunx kuckit search --json
64
+ ```
65
+
66
+ **Options:**
67
+
68
+ - `--limit <n>` - Number of results (default: 10)
69
+ - `--json` - Output as JSON
70
+
71
+ ### `kuckit discover`
72
+
73
+ Find installed but unconfigured Kuckit modules.
74
+
75
+ ```bash
76
+ bunx kuckit discover
77
+ bunx kuckit discover --json
78
+ bunx kuckit discover --interactive
79
+ ```
80
+
81
+ **Options:**
82
+
83
+ - `--json` - Output as JSON
84
+ - `--interactive` - Prompt to enable discovered modules
85
+
86
+ **Scans:**
87
+
88
+ - `packages/` directory for local modules
89
+ - `node_modules/` for packages with `kuckit` metadata
90
+
91
+ ### `kuckit doctor`
92
+
93
+ Validate project setup and module configuration.
94
+
95
+ ```bash
96
+ bunx kuckit doctor
97
+ bunx kuckit doctor --json
98
+ ```
99
+
100
+ **Checks:**
101
+
102
+ 1. Config file exists
103
+ 2. Config parses correctly
104
+ 3. Modules configured
105
+ 4. Packages installed
106
+ 5. Kuckit metadata valid
107
+ 6. Module exports exist
108
+ 7. SDK packages available
109
+
110
+ ---
111
+
112
+ ## Database Commands
113
+
114
+ ### `kuckit db push`
115
+
116
+ Push all module schemas to database using Drizzle Kit.
117
+
118
+ ```bash
119
+ bunx kuckit db push
120
+ bunx kuckit db push --url postgres://...
121
+ ```
122
+
123
+ ### `kuckit db generate`
124
+
125
+ Generate migration files for module schemas.
126
+
127
+ ```bash
128
+ bunx kuckit db generate
129
+ ```
130
+
131
+ ### `kuckit db studio`
132
+
133
+ Open Drizzle Studio with all module schemas.
134
+
135
+ ```bash
136
+ bunx kuckit db studio
137
+ ```
138
+
139
+ **Common Options:**
140
+
141
+ - `--url <url>` - Database connection URL
142
+
143
+ ---
144
+
145
+ ## Authentication Commands
146
+
147
+ ### `kuckit auth login`
148
+
149
+ Authenticate using OAuth device flow.
150
+
151
+ ```bash
152
+ bunx kuckit auth login
153
+ bunx kuckit auth login --server https://api.example.com
154
+ bunx kuckit auth login --scopes read,write
155
+ ```
156
+
157
+ **Options:**
158
+
159
+ - `-s, --server <url>` - Server URL
160
+ - `--scopes <scopes>` - Comma-separated scopes
161
+
162
+ **Flow:**
163
+
164
+ 1. Initiates device flow with server
165
+ 2. Displays user code
166
+ 3. Auto-opens browser
167
+ 4. Polls for approval
168
+ 5. Stores token in `~/.kuckit/config.json`
169
+
170
+ ### `kuckit auth logout`
171
+
172
+ Clear stored credentials.
173
+
174
+ ```bash
175
+ bunx kuckit auth logout
176
+ ```
177
+
178
+ ### `kuckit auth whoami`
179
+
180
+ Show current authentication status.
181
+
182
+ ```bash
183
+ bunx kuckit auth whoami
184
+ ```
185
+
186
+ ---
187
+
188
+ ## Infrastructure Commands
189
+
190
+ All infrastructure commands require authentication and use Pulumi for GCP deployment.
191
+
192
+ ### `kuckit infra init`
193
+
194
+ Initialize base infrastructure (Cloud SQL, Redis, Artifact Registry).
195
+
196
+ ```bash
197
+ bunx kuckit infra init
198
+ bunx kuckit infra init --provider gcp --project my-project --region us-central1 --env dev
199
+ bunx kuckit infra init -y # Skip prompts
200
+ ```
201
+
202
+ **Options:**
203
+
204
+ - `-p, --provider <provider>` - Cloud provider (only 'gcp' supported)
205
+ - `--project <id>` - GCP project ID
206
+ - `--region <region>` - Deployment region (default: us-central1)
207
+ - `-e, --env <env>` - Environment (dev/prod)
208
+ - `-y, --yes` - Skip prompts
209
+
210
+ **Creates:**
211
+
212
+ - Artifact Registry repository
213
+ - Cloud SQL PostgreSQL instance
214
+ - Memorystore Redis instance
215
+ - Secrets in Secret Manager
216
+ - VPC networking
217
+
218
+ ### `kuckit infra deploy`
219
+
220
+ Build and deploy to Cloud Run.
221
+
222
+ ```bash
223
+ bunx kuckit infra deploy --env dev
224
+ bunx kuckit infra deploy --env dev --preview
225
+ bunx kuckit infra deploy --env dev --skip-build
226
+ bunx kuckit infra deploy --env dev --image gcr.io/my-project/app:tag
227
+ ```
228
+
229
+ **Options:**
230
+
231
+ - `-e, --env <env>` - Environment
232
+ - `--preview` - Preview only (no apply)
233
+ - `--skip-build` - Use existing image
234
+ - `--image <url>` - Use specific image
235
+
236
+ ### `kuckit infra destroy`
237
+
238
+ Destroy infrastructure resources.
239
+
240
+ ```bash
241
+ bunx kuckit infra destroy --env dev
242
+ bunx kuckit infra destroy --env dev --app-only
243
+ bunx kuckit infra destroy --env dev --force
244
+ ```
245
+
246
+ **Options:**
247
+
248
+ - `--app-only` - Only destroy Cloud Run, keep DB/Redis
249
+ - `--force` - Skip confirmation
250
+
251
+ ### `kuckit infra repair`
252
+
253
+ Repair infrastructure state issues.
254
+
255
+ ```bash
256
+ bunx kuckit infra repair --env dev
257
+ bunx kuckit infra repair --env dev --refresh
258
+ bunx kuckit infra repair --env dev --cancel
259
+ ```
260
+
261
+ **Options:**
262
+
263
+ - `--refresh` - Refresh state from cloud
264
+ - `--cancel` - Cancel stuck operations
265
+
266
+ ### `kuckit infra db:push`
267
+
268
+ Push database schema to Cloud SQL.
269
+
270
+ ```bash
271
+ bunx kuckit infra db:push --env dev
272
+ bunx kuckit infra db:push --env dev --force
273
+ bunx kuckit infra db:push --env dev --public-ip
274
+ ```
275
+
276
+ **Options:**
277
+
278
+ - `--force` - Skip confirmation
279
+ - `--public-ip` - Use public IP
280
+
281
+ ### `kuckit infra db:migrate`
282
+
283
+ Run database migrations on Cloud SQL.
284
+
285
+ ```bash
286
+ bunx kuckit infra db:migrate --env dev
287
+ bunx kuckit infra db:migrate --env dev --dry-run
288
+ bunx kuckit infra db:migrate --env dev --rollback
289
+ ```
290
+
291
+ **Options:**
292
+
293
+ - `--dry-run` - Show without applying
294
+ - `--rollback` - Rollback last migration
295
+
296
+ ### `kuckit infra rollback`
297
+
298
+ Rollback Cloud Run to previous revision.
299
+
300
+ ```bash
301
+ bunx kuckit infra rollback --env dev
302
+ ```
303
+
304
+ ### `kuckit infra logs`
305
+
306
+ View Cloud Run service logs.
307
+
308
+ ```bash
309
+ bunx kuckit infra logs --env dev
310
+ bunx kuckit infra logs --env dev -f
311
+ bunx kuckit infra logs --env dev --since 1h
312
+ bunx kuckit infra logs --env dev --severity ERROR
313
+ ```
314
+
315
+ **Options:**
316
+
317
+ - `-f, --follow` - Stream logs
318
+ - `--since <duration>` - Time range (e.g., 1h, 30m)
319
+ - `--severity <level>` - Filter by severity
320
+
321
+ ### `kuckit infra status`
322
+
323
+ Show current infrastructure state.
324
+
325
+ ```bash
326
+ bunx kuckit infra status --env dev
327
+ ```
328
+
329
+ ### `kuckit infra outputs`
330
+
331
+ Display infrastructure outputs (URLs, connection strings).
332
+
333
+ ```bash
334
+ bunx kuckit infra outputs --env dev
335
+ ```
336
+
337
+ ---
338
+
339
+ ## Package Manager Detection
340
+
341
+ The CLI detects package manager from lock files:
342
+
343
+ | Lock File | Package Manager |
344
+ | ------------------- | --------------- |
345
+ | `bun.lock` | bun |
346
+ | `yarn.lock` | yarn |
347
+ | `pnpm-lock.yaml` | pnpm |
348
+ | `package-lock.json` | npm |
349
+
350
+ ---
351
+
352
+ ## Programmatic Usage
353
+
354
+ ```typescript
355
+ import { generateModule, addModule, discoverModules } from '@kuckit/cli'
356
+
357
+ // Generate module
358
+ await generateModule('billing', { org: 'acme', dir: 'packages' })
359
+
360
+ // Add module
361
+ await addModule('@acme/billing-module', { skipInstall: false })
362
+
363
+ // Discover modules
364
+ await discoverModules({ json: true, interactive: false })
365
+ ```