sedd 0.1.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 (90) hide show
  1. package/README.md +504 -0
  2. package/bin/sedd.js +6 -0
  3. package/commands/sedd.clarify.md +435 -0
  4. package/commands/sedd.dashboard.md +145 -0
  5. package/commands/sedd.implement.md +326 -0
  6. package/commands/sedd.migrate.md +249 -0
  7. package/commands/sedd.specify.md +198 -0
  8. package/commands/sedd.tasks.md +176 -0
  9. package/dist/cli/check.d.ts +6 -0
  10. package/dist/cli/check.d.ts.map +1 -0
  11. package/dist/cli/check.js +134 -0
  12. package/dist/cli/check.js.map +1 -0
  13. package/dist/cli/clarify.d.ts +2 -0
  14. package/dist/cli/clarify.d.ts.map +1 -0
  15. package/dist/cli/clarify.js +116 -0
  16. package/dist/cli/clarify.js.map +1 -0
  17. package/dist/cli/index.d.ts +8 -0
  18. package/dist/cli/index.d.ts.map +1 -0
  19. package/dist/cli/index.js +175 -0
  20. package/dist/cli/index.js.map +1 -0
  21. package/dist/cli/init.d.ts +9 -0
  22. package/dist/cli/init.d.ts.map +1 -0
  23. package/dist/cli/init.js +236 -0
  24. package/dist/cli/init.js.map +1 -0
  25. package/dist/cli/migrate.d.ts +7 -0
  26. package/dist/cli/migrate.d.ts.map +1 -0
  27. package/dist/cli/migrate.js +197 -0
  28. package/dist/cli/migrate.js.map +1 -0
  29. package/dist/cli/specify.d.ts +7 -0
  30. package/dist/cli/specify.d.ts.map +1 -0
  31. package/dist/cli/specify.js +131 -0
  32. package/dist/cli/specify.js.map +1 -0
  33. package/dist/cli/status.d.ts +6 -0
  34. package/dist/cli/status.d.ts.map +1 -0
  35. package/dist/cli/status.js +118 -0
  36. package/dist/cli/status.js.map +1 -0
  37. package/dist/cli/tasks.d.ts +7 -0
  38. package/dist/cli/tasks.d.ts.map +1 -0
  39. package/dist/cli/tasks.js +165 -0
  40. package/dist/cli/tasks.js.map +1 -0
  41. package/dist/core/changelog.d.ts +30 -0
  42. package/dist/core/changelog.d.ts.map +1 -0
  43. package/dist/core/changelog.js +97 -0
  44. package/dist/core/changelog.js.map +1 -0
  45. package/dist/core/file-splitter.d.ts +39 -0
  46. package/dist/core/file-splitter.d.ts.map +1 -0
  47. package/dist/core/file-splitter.js +162 -0
  48. package/dist/core/file-splitter.js.map +1 -0
  49. package/dist/core/migration-manager.d.ts +76 -0
  50. package/dist/core/migration-manager.d.ts.map +1 -0
  51. package/dist/core/migration-manager.js +230 -0
  52. package/dist/core/migration-manager.js.map +1 -0
  53. package/dist/core/timestamps.d.ts +17 -0
  54. package/dist/core/timestamps.d.ts.map +1 -0
  55. package/dist/core/timestamps.js +37 -0
  56. package/dist/core/timestamps.js.map +1 -0
  57. package/dist/index.d.ts +8 -0
  58. package/dist/index.d.ts.map +1 -0
  59. package/dist/index.js +7 -0
  60. package/dist/index.js.map +1 -0
  61. package/dist/types/index.d.ts +102 -0
  62. package/dist/types/index.d.ts.map +1 -0
  63. package/dist/types/index.js +83 -0
  64. package/dist/types/index.js.map +1 -0
  65. package/dist/utils/git.d.ts +63 -0
  66. package/dist/utils/git.d.ts.map +1 -0
  67. package/dist/utils/git.js +179 -0
  68. package/dist/utils/git.js.map +1 -0
  69. package/hooks/README.md +220 -0
  70. package/hooks/check-roadmap.js +231 -0
  71. package/hooks/check-roadmap.ps1 +343 -0
  72. package/package.json +60 -0
  73. package/scripts/bash/sedd-clarify.sh +142 -0
  74. package/scripts/bash/sedd-complete-task.sh +108 -0
  75. package/scripts/bash/sedd-specify.sh +147 -0
  76. package/scripts/powershell/sedd-clarify.ps1 +222 -0
  77. package/scripts/powershell/sedd-complete-task.ps1 +143 -0
  78. package/scripts/powershell/sedd-specify.ps1 +192 -0
  79. package/scripts/powershell/sedd-status.ps1 +153 -0
  80. package/scripts/powershell/sedd-tasks.ps1 +176 -0
  81. package/templates/changelog-template.md +6 -0
  82. package/templates/clarify-template.md +66 -0
  83. package/templates/config-template.json +20 -0
  84. package/templates/decisions-template.md +56 -0
  85. package/templates/interfaces-template.ts +131 -0
  86. package/templates/meta-template.json +12 -0
  87. package/templates/progress-template.md +61 -0
  88. package/templates/sedd.schema.json +95 -0
  89. package/templates/spec-template.md +114 -0
  90. package/templates/tasks-template.md +58 -0
package/README.md ADDED
@@ -0,0 +1,504 @@
1
+ # SEDD - Spec & Expectation Driven Development
2
+
3
+ > Desenvolvimento orientado por especificações **e expectativas** com sistema de migrations incrementais.
4
+
5
+ [![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
6
+ [![Node.js](https://img.shields.io/badge/node-%3E%3D18-brightgreen.svg)](https://nodejs.org)
7
+
8
+ ## O que é SEDD?
9
+
10
+ SEDD é um toolkit que transforma a forma como você desenvolve software com AI assistants. Em vez de apenas especificar *o que* construir, você também captura *como espera que funcione* - suas expectativas como desenvolvedor.
11
+
12
+ ```
13
+ SEDD = Spec Driven Development + Expectativas do Dev
14
+ ```
15
+
16
+ ### Compatível com
17
+
18
+ <p>
19
+ <img src="https://img.shields.io/badge/Claude_Code-blueviolet?style=for-the-badge&logo=anthropic" alt="Claude Code" />
20
+ <img src="https://img.shields.io/badge/Cursor-000000?style=for-the-badge&logo=cursor" alt="Cursor" />
21
+ <img src="https://img.shields.io/badge/GitHub_Copilot-000000?style=for-the-badge&logo=github" alt="GitHub Copilot" />
22
+ <img src="https://img.shields.io/badge/Windsurf-0066FF?style=for-the-badge" alt="Windsurf" />
23
+ <img src="https://img.shields.io/badge/Gemini_CLI-4285F4?style=for-the-badge&logo=google" alt="Gemini CLI" />
24
+ </p>
25
+
26
+ ---
27
+
28
+ ## Por que SEDD?
29
+
30
+ ### A Evolução do Spec Driven Development
31
+
32
+ **Spec Driven Development (SDD)** já era poderoso: você documenta o que vai construir antes de codar. Mas ao trabalhar com AI assistants, percebemos que specs sozinhas não bastavam.
33
+
34
+ Faltava capturar as **expectativas do desenvolvedor** - aquele conhecimento tácito que fica na cabeça:
35
+
36
+ - *"Eu espero que isso seja rápido, tipo < 100ms"*
37
+ - *"Eu imagino que o usuário vai clicar aqui primeiro"*
38
+ - *"Na minha cabeça, isso funciona parecido com o Stripe"*
39
+
40
+ Essas expectativas raramente são documentadas. Ficam implícitas. E quando você trabalha com uma AI, ela não tem como adivinhar.
41
+
42
+ ### O Superpoder
43
+
44
+ SEDD captura três dimensões:
45
+
46
+ | Dimensão | Pergunta | Artefato |
47
+ |----------|----------|----------|
48
+ | **Spec** | O que o sistema faz? | `spec.md` |
49
+ | **Expectation** | Como você espera que funcione? | `clarify.md` |
50
+ | **Decision** | Por que foi decidido assim? | `decisions.md` |
51
+
52
+ Quando você clarifica uma feature no SEDD, não está só respondendo perguntas técnicas. Está **externalizando suas expectativas** para que a AI (e você mesmo no futuro) entenda o *espírito* do que você quer construir.
53
+
54
+ ---
55
+
56
+ ## O Problema que Resolvemos
57
+
58
+ Ao trabalhar com AI assistants em projetos de desenvolvimento:
59
+
60
+ | Problema | Sem SEDD | Com SEDD |
61
+ |----------|----------|----------|
62
+ | **Contexto perdido** | AI "esquece" decisões anteriores | Tudo documentado em migrations |
63
+ | **Falta de rastreabilidade** | "Por que fizemos assim?" | `decisions.md` com timestamps |
64
+ | **Specs vagas** | Retrabalho constante | Clarificação interativa |
65
+ | **Tasks desorganizadas** | Espalhadas ou esquecidas | `tasks.md` com IDs únicos |
66
+ | **Difícil retomar** | Onde parei? O que falta? | `progress.md` atualizado |
67
+
68
+ ---
69
+
70
+ ## Como Funciona
71
+
72
+ ### Fluxo em 4 Passos
73
+
74
+ ```
75
+ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
76
+ │ 1. SPECIFY │ → │ 2. CLARIFY │ → │ 3. TASKS │ → │ 4. IMPLEMENT│
77
+ │ │ │ │ │ │ │ │
78
+ │ O que? │ │ Como? │ │ Quanto? │ │ Fazer! │
79
+ │ spec.md │ │ clarify.md │ │ tasks.md │ │ código │
80
+ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
81
+ ```
82
+
83
+ ### 1. Specify - Defina o que construir
84
+
85
+ ```bash
86
+ /sedd.specify "Add dark mode toggle to settings"
87
+ ```
88
+
89
+ Cria a especificação base com:
90
+ - `spec.md` - Requisitos funcionais
91
+ - `interfaces.ts` - Entidades do domínio
92
+ - `ui-mockups/` - ASCII mockups (se UI)
93
+
94
+ ### 2. Clarify - Capture expectativas
95
+
96
+ ```bash
97
+ /sedd.clarify
98
+ ```
99
+
100
+ **Modo de discussão flexível** - você controla o ritmo:
101
+
102
+ ```
103
+ 📝 Clarification Session - Migration 001
104
+
105
+ Você pode:
106
+ • Explicar livremente o que precisa
107
+ • Adicionar notas e decisões
108
+ • Responder perguntas
109
+
110
+ Comandos:
111
+ ┌───────────┬────────────────────────────────────┐
112
+ │ continue │ Continuar explicando (mais, +) │
113
+ │ pergunta │ AI faz próxima pergunta (q, ?) │
114
+ │ tasks │ Gerar tasks e finalizar (done) │
115
+ └───────────┴────────────────────────────────────┘
116
+ ```
117
+
118
+ Cada clarificação cria uma **migration** com timestamp:
119
+ - `clarify.md` - O que foi discutido
120
+ - `decisions.md` - Decisões tomadas
121
+ - `tasks.md` - Tarefas geradas
122
+
123
+ ### 3. Tasks - Quebre em tarefas
124
+
125
+ Tasks são geradas automaticamente no `/sedd.clarify`, mas você pode adicionar mais:
126
+
127
+ ```bash
128
+ /sedd.tasks
129
+ ```
130
+
131
+ Formato das tasks:
132
+ ```
133
+ T001-001 = Migration 001, Task 1
134
+ T001-002 = Migration 001, Task 2
135
+ T002-001 = Migration 002, Task 1
136
+ ```
137
+
138
+ ### 4. Implement - Execute
139
+
140
+ ```bash
141
+ /sedd.implement # Pergunta entre migrations
142
+ /sedd.implement --all # Executa tudo sem parar
143
+ /sedd.implement 001 # Só migration específica
144
+ ```
145
+
146
+ A AI executa cada task, atualiza `progress.md`, e marca como concluída.
147
+
148
+ ---
149
+
150
+ ## Migrations: O Diferencial
151
+
152
+ O grande diferencial do SEDD é o sistema de **migrations incrementais**.
153
+
154
+ ### Por que Migrations?
155
+
156
+ Você não precisa saber tudo no início. Pode clarificar aos poucos:
157
+
158
+ ```
159
+ /sedd.clarify → Migration 001 (5 tasks)
160
+ /sedd.implement 001
161
+ /sedd.clarify → Migration 002 (3 tasks mais)
162
+ /sedd.implement 002
163
+ /sedd.clarify → Migration 003 (ajustes)
164
+ ...
165
+ ```
166
+
167
+ ### Estrutura
168
+
169
+ ```
170
+ specs/024-dark-mode/
171
+ ├── _meta.json # Metadados
172
+ ├── spec.md # Spec base (imutável)
173
+ ├── interfaces.ts # Entidades
174
+
175
+ ├── 001_2026-01-10_14-30-45/ # Migration 1
176
+ │ ├── clarify.md # Discussão
177
+ │ ├── decisions.md # Decisões
178
+ │ └── tasks.md # Tasks T001-XXX
179
+
180
+ ├── 002_2026-01-10_16-45-22/ # Migration 2
181
+ │ ├── clarify.md
182
+ │ ├── decisions.md
183
+ │ └── tasks.md # Tasks T002-XXX
184
+
185
+ └── progress.md # Progresso geral
186
+ ```
187
+
188
+ ### Benefícios
189
+
190
+ - **Histórico completo**: Cada decisão tem timestamp e contexto
191
+ - **Rastreabilidade**: Task T002-003 → Migration 002 → Decisão D002-003
192
+ - **Flexibilidade**: Implemente migration 001, depois clarifica mais
193
+ - **Retomada fácil**: Volte semanas depois e saiba exatamente onde parou
194
+
195
+ ---
196
+
197
+ ## Fases de Desenvolvimento
198
+
199
+ SEDD funciona em qualquer fase do projeto:
200
+
201
+ ### 🌱 Greenfield (Projeto Novo)
202
+
203
+ Comece do zero com especificações claras:
204
+
205
+ ```bash
206
+ npx sedd init my-project
207
+ cd my-project
208
+ git checkout -b 001-auth-system
209
+ /sedd.specify "User authentication with OAuth"
210
+ /sedd.clarify
211
+ /sedd.implement --all
212
+ ```
213
+
214
+ ### 🔧 Brownfield (Projeto Existente)
215
+
216
+ Adicione features incrementalmente:
217
+
218
+ ```bash
219
+ git checkout -b 042-dark-mode
220
+ /sedd.specify "Add dark mode to existing settings"
221
+ # SEDD analisa código existente e sugere integrações
222
+ /sedd.clarify
223
+ /sedd.implement
224
+ ```
225
+
226
+ ### 🔄 Refactoring
227
+
228
+ Documente antes de refatorar:
229
+
230
+ ```bash
231
+ git checkout -b 050-refactor-auth
232
+ /sedd.specify "Refactor auth to use JWT instead of sessions"
233
+ /sedd.clarify # Capture todas as decisões de migração
234
+ /sedd.implement --all
235
+ ```
236
+
237
+ ---
238
+
239
+ ## Quick Start
240
+
241
+ ### Instalação
242
+
243
+ ```bash
244
+ npm install -g sedd
245
+ # ou use diretamente com npx
246
+ ```
247
+
248
+ ### Projeto Existente (Recomendado)
249
+
250
+ ```bash
251
+ # Navegar para seu projeto
252
+ cd meu-projeto
253
+
254
+ # SEDD detecta automaticamente o package.json
255
+ sedd init
256
+
257
+ # Output:
258
+ # 🔍 Detected project: meu-projeto
259
+ # 🚀 Initializing SEDD...
260
+ ```
261
+
262
+ ### Projeto Novo
263
+
264
+ ```bash
265
+ # Criar projeto primeiro
266
+ mkdir meu-projeto && cd meu-projeto
267
+ npm init -y
268
+
269
+ # Depois inicializar SEDD
270
+ sedd init
271
+ ```
272
+
273
+ ### Se não houver projeto
274
+
275
+ ```bash
276
+ sedd init
277
+
278
+ # Output:
279
+ # ⚠️ No project detected in current directory.
280
+ #
281
+ # SEDD works best inside a project. Try one of these:
282
+ # 1. Run npm init -y to create a package.json
283
+ # 2. Run sedd init my-project to specify a project name
284
+ # 3. Navigate to an existing project folder
285
+ #
286
+ # ? Initialize SEDD anyway in current directory? (y/N)
287
+ ```
288
+
289
+ ### Workflow Completo
290
+
291
+ ```bash
292
+ # 1. Navegar para projeto existente
293
+ cd meu-projeto
294
+
295
+ # 2. Inicializar SEDD (detecta package.json)
296
+ sedd init
297
+
298
+ # 3. Criar branch da feature
299
+ git checkout -b 001-user-auth
300
+
301
+ # 4. Especificar (no Claude Code / Cursor)
302
+ /sedd.specify "User authentication with email and password"
303
+
304
+ # 5. Clarificar (modo interativo)
305
+ /sedd.clarify
306
+ # → Explique suas expectativas
307
+ # → Responda perguntas
308
+ # → Digite "tasks" quando pronto
309
+
310
+ # 6. Implementar
311
+ /sedd.implement --all
312
+ ```
313
+
314
+ ---
315
+
316
+ ## Comandos
317
+
318
+ ### CLI (Terminal)
319
+
320
+ | Comando | Descrição |
321
+ |---------|-----------|
322
+ | `sedd init` | Inicializar (detecta package.json automaticamente) |
323
+ | `sedd init meu-projeto` | Inicializar com nome específico |
324
+ | `sedd init --force` | Atualizar arquivos existentes |
325
+ | `sedd check` | Verificar estrutura |
326
+ | `sedd status` | Ver status atual |
327
+ | `sedd clarify` | Criar nova migration |
328
+ | `sedd tasks '<json>'` | Adicionar tasks |
329
+ | `sedd complete T001-001` | Marcar task completa |
330
+
331
+ ### Slash Commands (AI Assistants)
332
+
333
+ | Comando | Descrição |
334
+ |---------|-----------|
335
+ | `/sedd.specify` | Criar spec base |
336
+ | `/sedd.clarify` | Clarificar e gerar tasks |
337
+ | `/sedd.tasks` | Adicionar tasks à migration |
338
+ | `/sedd.implement` | Executar tasks |
339
+ | `/sedd.implement --all` | Executar tudo sem parar |
340
+ | `/sedd.migrate` | Migrar specs antigas |
341
+
342
+ ---
343
+
344
+ ## Hooks: Contexto Automático para AI
345
+
346
+ SEDD inclui **hooks inteligentes** que injetam contexto automaticamente nas suas conversas com AI.
347
+
348
+ ### Como Funciona
349
+
350
+ Quando você digita algo no AI assistant, o hook analisa e injeta:
351
+
352
+ ```
353
+ You: "vamos implementar a próxima task"
354
+
355
+ ⎿ UserPromptSubmit says:
356
+ <sedd-context>
357
+ **Branch: 023-agent-executor** | Migration: 002 | Progress: 69/110 tasks
358
+
359
+ Pending tasks:
360
+ - T001-054: [Polish] Remove all // TODO comments
361
+ - T001-055: [Polish] Remove deprecated modals
362
+ - T001-056: [Polish] Update tool.service.ts
363
+ ... and 36 more
364
+
365
+ Use `/sedd.implement` to execute tasks.
366
+ </sedd-context>
367
+ ```
368
+
369
+ A AI recebe automaticamente:
370
+ - Branch atual e migration ativa
371
+ - Progresso geral (X/Y tasks)
372
+ - Lista de tasks pendentes
373
+ - Sugestão do próximo comando
374
+
375
+ ### Ativação de Skills
376
+
377
+ O hook também detecta contexto e sugere skills relevantes:
378
+
379
+ ```
380
+ You: "estou tendo erro no langgraph"
381
+
382
+ ⎿ Hook detected: LangChain/LangGraph context
383
+ Suggesting: langchain-expert skill
384
+ ```
385
+
386
+ ### Instalação dos Hooks
387
+
388
+ Os hooks são copiados automaticamente no `sedd init`:
389
+
390
+ ```
391
+ .claude/hooks/
392
+ └── check-roadmap.js # Hook principal
393
+ ```
394
+
395
+ Ou copie manualmente de `node_modules/sedd/hooks/`.
396
+
397
+ ---
398
+
399
+ ## Configuração
400
+
401
+ `sedd.config.json`:
402
+
403
+ ```json
404
+ {
405
+ "specsDir": ".sedd",
406
+ "branchPattern": "{{id}}-{{name}}",
407
+ "scriptRunner": "auto",
408
+ "autoSplit": {
409
+ "enabled": true,
410
+ "maxLines": 400
411
+ },
412
+ "commit": {
413
+ "askBeforeCommit": true
414
+ }
415
+ }
416
+ ```
417
+
418
+ | Opção | Default | Descrição |
419
+ |-------|---------|-----------|
420
+ | `specsDir` | `.sedd` | Pasta das specs (use `specs` para legacy) |
421
+ | `branchPattern` | `{{id}}-{{name}}` | Formato do nome da branch |
422
+ | `scriptRunner` | `auto` | `auto`, `powershell`, ou `bash` |
423
+ | `autoSplit.maxLines` | `400` | Auto-split de arquivos grandes |
424
+ | `commit.askBeforeCommit` | `true` | Perguntar antes de commitar |
425
+
426
+ ### Script Runner
427
+
428
+ Por padrão (`auto`), SEDD detecta o OS e usa:
429
+ - **Windows** → PowerShell (`.ps1`)
430
+ - **macOS/Linux** → Bash (`.sh`)
431
+
432
+ Para forçar um runner específico (ex: usar Bash no Windows via WSL/Git Bash):
433
+
434
+ ```json
435
+ {
436
+ "scriptRunner": "bash"
437
+ }
438
+ ```
439
+
440
+ ---
441
+
442
+ ## Filosofia
443
+
444
+ ### Princípios
445
+
446
+ 1. **Expectativas primeiro** - Não só o que, mas como você espera que funcione
447
+ 2. **Nada acontece sem task** - Toda implementação deve estar rastreada
448
+ 3. **Decisões são documentadas** - Não confie na memória, documente
449
+ 4. **Incremental > Big Bang** - Clarifica aos poucos, implementa aos poucos
450
+ 5. **AI como parceiro** - Ferramentas pensadas para colaboração AI-humano
451
+
452
+ ### Comparação
453
+
454
+ | Aspecto | Vibe Coding | Spec-Driven | SEDD |
455
+ |---------|-------------|-------------|------|
456
+ | Especificação | ❌ Nenhuma | ✅ Detalhada | ✅ Detalhada |
457
+ | Expectativas | ❌ Implícitas | ❌ Implícitas | ✅ **Explícitas** |
458
+ | Histórico | ❌ Nenhum | ⚠️ Limitado | ✅ **Migrations** |
459
+ | Clarificação | ❌ Ad-hoc | ⚠️ Única vez | ✅ **Incremental** |
460
+ | Retomada | ❌ Difícil | ⚠️ Possível | ✅ **progress.md** |
461
+
462
+ ---
463
+
464
+ ## Migração de Projetos
465
+
466
+ Se você já tem specs em formato antigo:
467
+
468
+ ```bash
469
+ npx sedd migrate
470
+ # ou
471
+ /sedd.migrate
472
+ ```
473
+
474
+ ---
475
+
476
+ ## Contribuindo
477
+
478
+ Contribuições são bem-vindas! Veja [CONTRIBUTING.md](CONTRIBUTING.md) para guidelines.
479
+
480
+ ---
481
+
482
+ ## Licença
483
+
484
+ MIT
485
+
486
+ ---
487
+
488
+ <p align="center">
489
+ <i>
490
+ SEDD nasceu da evolução do Spec Driven Development para incluir o que realmente importa: <b>suas expectativas como desenvolvedor</b>.
491
+ </i>
492
+ </p>
493
+
494
+ <p align="center">
495
+ <i>
496
+ Se você já teve que explicar a mesma coisa 3 vezes para uma AI, ou se já perdeu horas porque a AI não entendeu o "espírito" do que você queria — este projeto é para você.
497
+ </i>
498
+ </p>
499
+
500
+ <p align="center">
501
+ <b>Porque especificações dizem O QUE construir.<br>
502
+ Expectativas dizem COMO você imagina que deve funcionar.<br>
503
+ E juntas, elas são o superpoder que faltava.</b>
504
+ </p>
package/bin/sedd.js ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env node
2
+
3
+ import('../dist/cli/index.js').catch((err) => {
4
+ console.error('Failed to start SEDD CLI:', err.message);
5
+ process.exit(1);
6
+ });