create-kuckit-app 0.1.1 → 0.2.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.
- package/dist/bin.js +1 -1
- package/dist/{create-project-DTm05G7D.js → create-project-CP-h4Ygi.js} +7 -5
- package/dist/index.js +1 -1
- package/package.json +3 -2
- package/templates/base/.claude/CLAUDE.md +44 -0
- package/templates/base/.claude/agents/daidalos.md +76 -0
- package/templates/base/.claude/agents/episteme.md +79 -0
- package/templates/base/.claude/agents/librarian.md +132 -0
- package/templates/base/.claude/agents/oracle.md +210 -0
- package/templates/base/.claude/commands/create-plan.md +159 -0
- package/templates/base/.claude/commands/file-beads.md +98 -0
- package/templates/base/.claude/commands/review-beads.md +161 -0
- package/templates/base/.claude/settings.json +11 -0
- package/templates/base/.claude/skills/kuckit/SKILL.md +436 -0
- package/templates/base/.claude/skills/kuckit/references/ARCHITECTURE.md +388 -0
- package/templates/base/.claude/skills/kuckit/references/CLI-COMMANDS.md +365 -0
- package/templates/base/.claude/skills/kuckit/references/MODULE-DEVELOPMENT.md +581 -0
- package/templates/base/.claude/skills/kuckit/references/PACKAGES.md +112 -0
- package/templates/base/.claude/skills/kuckit/references/PUBLISHING.md +231 -0
- package/templates/base/.env.example +13 -0
- package/templates/base/.github/workflows/ci.yml +28 -0
- package/templates/base/.husky/pre-commit +1 -0
- package/templates/base/.prettierignore +5 -0
- package/templates/base/.prettierrc +8 -0
- package/templates/base/AGENTS.md +351 -0
- package/templates/base/apps/server/.env.example +18 -0
- package/templates/base/apps/server/AGENTS.md +93 -0
- package/templates/base/apps/server/package.json +13 -2
- package/templates/base/apps/server/src/app.ts +20 -0
- package/templates/base/apps/server/src/auth.ts +10 -0
- package/templates/base/apps/server/src/config/modules.ts +22 -0
- package/templates/base/apps/server/src/container.ts +81 -0
- package/templates/base/apps/server/src/health.ts +27 -0
- package/templates/base/apps/server/src/middleware/container.ts +41 -0
- package/templates/base/apps/server/src/rpc-router-registry.ts +26 -0
- package/templates/base/apps/server/src/rpc.ts +31 -0
- package/templates/base/apps/server/src/server.ts +42 -14
- package/templates/base/apps/web/.env.example +4 -0
- package/templates/base/apps/web/AGENTS.md +127 -0
- package/templates/base/apps/web/index.html +1 -1
- package/templates/base/apps/web/package.json +15 -2
- package/templates/base/apps/web/src/components/KuckitModuleRoute.tsx +82 -0
- package/templates/base/apps/web/src/lib/kuckit-router.ts +42 -0
- package/templates/base/apps/web/src/main.tsx +26 -14
- package/templates/base/apps/web/src/modules.client.ts +4 -3
- package/templates/base/apps/web/src/providers/KuckitProvider.tsx +147 -0
- package/templates/base/apps/web/src/providers/ServicesProvider.tsx +47 -0
- package/templates/base/apps/web/src/routeTree.gen.ts +91 -0
- package/templates/base/apps/web/src/routes/$.tsx +14 -0
- package/templates/base/apps/web/src/routes/__root.tsx +31 -0
- package/templates/base/apps/web/src/routes/index.tsx +46 -0
- package/templates/base/apps/web/src/routes/login.tsx +108 -0
- package/templates/base/apps/web/src/services/auth-client.ts +12 -0
- package/templates/base/apps/web/src/services/index.ts +3 -0
- package/templates/base/apps/web/src/services/rpc.ts +29 -0
- package/templates/base/apps/web/src/services/types.ts +14 -0
- package/templates/base/apps/web/tsconfig.json +5 -1
- package/templates/base/apps/web/vite.config.ts +8 -1
- package/templates/base/docker-compose.yml +23 -0
- package/templates/base/eslint.config.js +18 -0
- package/templates/base/package.json +32 -2
- package/templates/base/packages/api/AGENTS.md +66 -0
- package/templates/base/packages/api/package.json +35 -0
- package/templates/base/packages/api/src/context.ts +48 -0
- package/templates/base/packages/api/src/index.ts +22 -0
- package/templates/base/packages/api/tsconfig.json +8 -0
- package/templates/base/packages/auth/AGENTS.md +61 -0
- package/templates/base/packages/auth/package.json +27 -0
- package/templates/base/packages/auth/src/index.ts +22 -0
- package/templates/base/packages/auth/tsconfig.json +8 -0
- package/templates/base/packages/db/AGENTS.md +74 -0
- package/templates/base/packages/db/drizzle.config.ts +19 -0
- package/templates/base/packages/db/package.json +36 -0
- package/templates/base/packages/db/src/connection.ts +40 -0
- package/templates/base/packages/db/src/index.ts +4 -0
- package/templates/base/packages/db/src/migrations/0000_init.sql +54 -0
- package/templates/base/packages/db/src/migrations/meta/_journal.json +13 -0
- package/templates/base/packages/db/src/schema/auth.ts +51 -0
- package/templates/base/packages/db/tsconfig.json +8 -0
- package/templates/base/packages/items-module/AGENTS.md +210 -0
- package/templates/base/packages/items-module/package.json +32 -0
- package/templates/base/packages/items-module/src/adapters/item.drizzle.ts +66 -0
- package/templates/base/packages/items-module/src/api/items.router.ts +47 -0
- package/templates/base/packages/items-module/src/client-module.ts +39 -0
- package/templates/base/packages/items-module/src/domain/item.entity.ts +36 -0
- package/templates/base/packages/items-module/src/index.ts +15 -0
- package/templates/base/packages/items-module/src/module.ts +53 -0
- package/templates/base/packages/items-module/src/ports/item.repository.ts +13 -0
- package/templates/base/packages/items-module/src/ui/ItemsPage.tsx +144 -0
- package/templates/base/packages/items-module/src/usecases/create-item.ts +25 -0
- package/templates/base/packages/items-module/src/usecases/delete-item.ts +18 -0
- package/templates/base/packages/items-module/src/usecases/get-item.ts +19 -0
- package/templates/base/packages/items-module/src/usecases/list-items.ts +21 -0
- package/templates/base/packages/items-module/tsconfig.json +9 -0
- package/templates/base/turbo.json +13 -1
- 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
|
+
```
|