@slorenzot/memento-cli 0.1.0 → 0.1.2
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/README.md +422 -0
- package/package.json +2 -2
package/README.md
ADDED
|
@@ -0,0 +1,422 @@
|
|
|
1
|
+
# @slorenzot/memento-cli
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@slorenzot/memento-cli)
|
|
4
|
+
[](https://creativecommons.org/licenses/by-nc-nd/4.0/)
|
|
5
|
+
[](https://www.typescriptlang.org/)
|
|
6
|
+
|
|
7
|
+
> Command line interface for Memento memory system with search, management, and administrative commands for AI coding agents.
|
|
8
|
+
|
|
9
|
+
## 🚀 Instalación
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
# Using Bun (recomendado)
|
|
13
|
+
bun add -g @slorenzot/memento-cli
|
|
14
|
+
|
|
15
|
+
# Using npm
|
|
16
|
+
npm install -g @slorenzot/memento-cli
|
|
17
|
+
|
|
18
|
+
# Using yarn
|
|
19
|
+
yarn global add @slorenzot/memento-cli
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## 💡 Uso Básico
|
|
23
|
+
|
|
24
|
+
### Shell/Bun
|
|
25
|
+
```bash
|
|
26
|
+
# Ver ayuda general
|
|
27
|
+
memento --help
|
|
28
|
+
|
|
29
|
+
# Ver versión
|
|
30
|
+
memento --version
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## 🔧 Comandos Disponibles
|
|
34
|
+
|
|
35
|
+
### Comandos Principales
|
|
36
|
+
|
|
37
|
+
#### `search [query]`
|
|
38
|
+
Busca observaciones en la memoria usando búsqueda full-text.
|
|
39
|
+
|
|
40
|
+
**Parámetros:**
|
|
41
|
+
- `query` (opcional): Texto de búsqueda
|
|
42
|
+
|
|
43
|
+
**Opciones:**
|
|
44
|
+
- `--type, -t`: Filtrar por tipo (`decision|bug|discovery|note`)
|
|
45
|
+
- `--project, -p`: Filtrar por ID de proyecto
|
|
46
|
+
- `--limit, -l`: Número máximo de resultados
|
|
47
|
+
- `--offset, -o`: Paginación de resultados
|
|
48
|
+
|
|
49
|
+
**Ejemplos:**
|
|
50
|
+
```bash
|
|
51
|
+
# Búsqueda simple
|
|
52
|
+
memento search "arquitectura base de datos"
|
|
53
|
+
|
|
54
|
+
# Búsqueda filtrada
|
|
55
|
+
memento search "configuración" --type decision --limit 5
|
|
56
|
+
|
|
57
|
+
# Búsqueda en proyecto específico
|
|
58
|
+
memento search "bug" --project my-app --type bug
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
#### `save [title] [content]`
|
|
64
|
+
Guarda una nueva observación en la memoria.
|
|
65
|
+
|
|
66
|
+
**Parámetros:**
|
|
67
|
+
- `title`: Título de la observación
|
|
68
|
+
- `content`: Contenido de la observación
|
|
69
|
+
|
|
70
|
+
**Opciones:**
|
|
71
|
+
- `--type, -t`: Tipo de observación (`decision|bug|discovery|note`)
|
|
72
|
+
- `--topic, -k`: Tópico o categoría
|
|
73
|
+
- `--project, -p`: ID del proyecto
|
|
74
|
+
- `--metadata, -m`: Metadatos JSON
|
|
75
|
+
|
|
76
|
+
**Ejemplos:**
|
|
77
|
+
```bash
|
|
78
|
+
# Guardar observación simple
|
|
79
|
+
memento save "Decisión importante" "Usar PostgreSQL en producción"
|
|
80
|
+
|
|
81
|
+
# Guardar con tipo y proyecto
|
|
82
|
+
memento save "Bug encontrado" "Error de conexión" --type bug --project my-app
|
|
83
|
+
|
|
84
|
+
# Guardar con metadatos
|
|
85
|
+
memento save "Configuración completada" "Servidor listo" --metadata '{"status":"ready","port":3000}'
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
#### `get [id]`
|
|
91
|
+
Obtiene una observación específica por ID.
|
|
92
|
+
|
|
93
|
+
**Parámetros:**
|
|
94
|
+
- `id`: ID numérico de la observación
|
|
95
|
+
|
|
96
|
+
**Ejemplos:**
|
|
97
|
+
```bash
|
|
98
|
+
# Obtener observación por ID
|
|
99
|
+
memento get 123
|
|
100
|
+
|
|
101
|
+
# La salida mostrará todos los detalles de la observación
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
#### `update <id> [options]`
|
|
107
|
+
Actualiza una observación existente.
|
|
108
|
+
|
|
109
|
+
**Parámetros:**
|
|
110
|
+
- `id`: ID numérico de la observación
|
|
111
|
+
|
|
112
|
+
**Opciones:**
|
|
113
|
+
- `--title, -t`: Nuevo título
|
|
114
|
+
- `--content, -c`: Nuevo contenido
|
|
115
|
+
- `--type`: Nuevo tipo
|
|
116
|
+
- `--topic, -k`: Nuevo tópico
|
|
117
|
+
|
|
118
|
+
**Ejemplos:**
|
|
119
|
+
```bash
|
|
120
|
+
# Actualizar título
|
|
121
|
+
memento update 123 --title "Título corregido"
|
|
122
|
+
|
|
123
|
+
# Actualizar contenido
|
|
124
|
+
memento update 123 --content "Contenido actualizado"
|
|
125
|
+
|
|
126
|
+
# Actualizar múltiples campos
|
|
127
|
+
memento update 123 --title "Nuevo" --type decision
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
#### `delete <id>`
|
|
133
|
+
Elimina una observación por ID.
|
|
134
|
+
|
|
135
|
+
**Parámetros:**
|
|
136
|
+
- `id`: ID numérico de la observación
|
|
137
|
+
|
|
138
|
+
**Ejemplos:**
|
|
139
|
+
```bash
|
|
140
|
+
# Eliminar observación
|
|
141
|
+
memento delete 123
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
### Comandos de Sesiones
|
|
147
|
+
|
|
148
|
+
#### `session start [project]`
|
|
149
|
+
Inicia una nueva sesión de seguimiento.
|
|
150
|
+
|
|
151
|
+
**Parámetros:**
|
|
152
|
+
- `project` (opcional): ID del proyecto
|
|
153
|
+
|
|
154
|
+
**Ejemplos:**
|
|
155
|
+
```bash
|
|
156
|
+
# Iniciar sesión
|
|
157
|
+
memento session start my-app
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
#### `session end <id>`
|
|
163
|
+
Finaliza una sesión activa.
|
|
164
|
+
|
|
165
|
+
**Parámetros:**
|
|
166
|
+
- `id`: ID numérico de la sesión
|
|
167
|
+
|
|
168
|
+
**Ejemplos:**
|
|
169
|
+
```bash
|
|
170
|
+
# Finalizar sesión
|
|
171
|
+
memento session end 456
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
#### `session list [project]`
|
|
177
|
+
Lista sesiones del proyecto.
|
|
178
|
+
|
|
179
|
+
**Parámetros:**
|
|
180
|
+
- `project` (opcional): ID del proyecto
|
|
181
|
+
|
|
182
|
+
**Opciones:**
|
|
183
|
+
- `--limit, -l`: Número máximo de resultados
|
|
184
|
+
|
|
185
|
+
**Ejemplos:**
|
|
186
|
+
```bash
|
|
187
|
+
# Listar todas las sesiones
|
|
188
|
+
memento session list
|
|
189
|
+
|
|
190
|
+
# Listar sesiones de proyecto específico
|
|
191
|
+
memento session list my-app --limit 10
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
### Comandos de Utilidad
|
|
197
|
+
|
|
198
|
+
#### `stats`
|
|
199
|
+
Muestra estadísticas del sistema de memoria.
|
|
200
|
+
|
|
201
|
+
**Ejemplos:**
|
|
202
|
+
```bash
|
|
203
|
+
# Ver estadísticas
|
|
204
|
+
memento stats
|
|
205
|
+
|
|
206
|
+
# Salida esperada:
|
|
207
|
+
# Total observaciones: 150
|
|
208
|
+
# Por tipo: decision: 45, bug: 30, discovery: 50, note: 25
|
|
209
|
+
# Sesiones activas: 3
|
|
210
|
+
# Última actualización: 2024-04-04 10:30:00
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
#### `timeline [project]`
|
|
216
|
+
Muestra una línea temporal de observaciones.
|
|
217
|
+
|
|
218
|
+
**Parámetros:**
|
|
219
|
+
- `project` (opcional): ID del proyecto
|
|
220
|
+
|
|
221
|
+
**Opciones:**
|
|
222
|
+
- `--limit, -l`: Número máximo de resultados
|
|
223
|
+
- `--session, -s`: Filtrar por sesión ID
|
|
224
|
+
|
|
225
|
+
**Ejemplos:**
|
|
226
|
+
```bash
|
|
227
|
+
# Ver timeline completo
|
|
228
|
+
memento timeline
|
|
229
|
+
|
|
230
|
+
# Ver timeline de proyecto específico
|
|
231
|
+
memento timeline my-app --limit 20
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## 📝 API Programática
|
|
237
|
+
|
|
238
|
+
### Uso en Node.js/TypeScript
|
|
239
|
+
|
|
240
|
+
```typescript
|
|
241
|
+
import { CLI } from '@slorenzot/memento-cli';
|
|
242
|
+
|
|
243
|
+
// Crear instancia CLI
|
|
244
|
+
const cli = new CLI('./data/memento.db');
|
|
245
|
+
|
|
246
|
+
// Ejecutar comando programáticamente
|
|
247
|
+
// Nota: Este uso es para integración personalizada
|
|
248
|
+
// Para uso normal, usar los comandos de shell
|
|
249
|
+
|
|
250
|
+
// Los comandos principales se ejecutan a través del método run()
|
|
251
|
+
cli.run(['search', 'arquitectura']);
|
|
252
|
+
|
|
253
|
+
// Cerrar conexión
|
|
254
|
+
cli.close();
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
## ⚡ Ejemplos Prácticos
|
|
258
|
+
|
|
259
|
+
### Ejemplo 1: Flujo de Trabajo Completo
|
|
260
|
+
|
|
261
|
+
```bash
|
|
262
|
+
# Iniciar sesión para seguimiento
|
|
263
|
+
SESSION_ID=$(memento session start my-app | grep "ID:" | cut -d' ' -f2)
|
|
264
|
+
echo "Sesión iniciada: $SESSION_ID"
|
|
265
|
+
|
|
266
|
+
# Guardar observaciones durante el trabajo
|
|
267
|
+
memento save "Decisión de arquitectura" "Usar microservicios" --project my-app
|
|
268
|
+
memento save "Bug encontrado" "Error en autenticación" --type bug --project my-app
|
|
269
|
+
|
|
270
|
+
# Buscar decisiones anteriores
|
|
271
|
+
memento search "arquitectura" --type decision --project my-app
|
|
272
|
+
|
|
273
|
+
# Finalizar sesión
|
|
274
|
+
memento session end $SESSION_ID
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
### Ejemplo 2: Script de Búsqueda y Análisis
|
|
278
|
+
|
|
279
|
+
```bash
|
|
280
|
+
#!/bin/bash
|
|
281
|
+
|
|
282
|
+
# Buscar bugs del proyecto
|
|
283
|
+
echo "=== Buscando bugs en proyecto ==="
|
|
284
|
+
memento search "bug" --type bug --project my-app --limit 10
|
|
285
|
+
|
|
286
|
+
# Buscar decisiones recientes
|
|
287
|
+
echo ""
|
|
288
|
+
echo "=== Decisiones recientes ==="
|
|
289
|
+
memento search --type decision --project my-app --limit 5
|
|
290
|
+
|
|
291
|
+
# Mostrar estadísticas
|
|
292
|
+
echo ""
|
|
293
|
+
echo "=== Estadísticas del sistema ==="
|
|
294
|
+
memento stats
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
### Ejemplo 3: Integración con Git Hooks
|
|
298
|
+
|
|
299
|
+
```bash
|
|
300
|
+
# pre-commit hook
|
|
301
|
+
#!/bin/bash
|
|
302
|
+
|
|
303
|
+
# Guardar commits como observaciones
|
|
304
|
+
MESSAGE=$(git log -1 --pretty=%B)
|
|
305
|
+
memento save "Commit: $(git rev-parse --short HEAD)" "$MESSAGE" --type note
|
|
306
|
+
|
|
307
|
+
echo "Commit guardado en Memento"
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
### Ejemplo 4: Exportación y Backup
|
|
311
|
+
|
|
312
|
+
```bash
|
|
313
|
+
# Exportar observaciones del proyecto
|
|
314
|
+
memento timeline my-app --limit 1000 > backup-observations.txt
|
|
315
|
+
|
|
316
|
+
# Crear backup con metadatos
|
|
317
|
+
echo "Backup creado: $(date)" > backup-info.txt
|
|
318
|
+
memento stats >> backup-info.txt
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
## 🔧 Configuración
|
|
322
|
+
|
|
323
|
+
### Archivo de Configuración
|
|
324
|
+
|
|
325
|
+
La CLI busca configuración en `~/.memento/config.json`:
|
|
326
|
+
|
|
327
|
+
```json
|
|
328
|
+
{
|
|
329
|
+
"databasePath": "./data/memento.db",
|
|
330
|
+
"defaultProject": "my-app",
|
|
331
|
+
"outputFormat": "json",
|
|
332
|
+
"pagination": {
|
|
333
|
+
"limit": 20,
|
|
334
|
+
"offset": 0
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
### Variables de Entorno
|
|
340
|
+
|
|
341
|
+
- `MEMENTO_DB_PATH`: Ruta personalizada de base de datos
|
|
342
|
+
- `MEMENTO_DEFAULT_PROJECT`: Proyecto por defecto
|
|
343
|
+
|
|
344
|
+
**Ejemplos:**
|
|
345
|
+
```bash
|
|
346
|
+
# Usar base de datos personalizada
|
|
347
|
+
export MEMENTO_DB_PATH="/custom/path/database.db"
|
|
348
|
+
memento search "query"
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
## ⚠️ Licencia Restrictiva
|
|
352
|
+
|
|
353
|
+
Este paquete está bajo **Licencia CC BY-NC-ND 4.0**:
|
|
354
|
+
- ✅ **Uso personal y educacional permitido**
|
|
355
|
+
- ✅ **Compartir con atribución al autor**
|
|
356
|
+
- ❌ **Uso comercial NO permitido**
|
|
357
|
+
- ❌ **Modificaciones o forks NO permitidos**
|
|
358
|
+
|
|
359
|
+
**Autor**: Soulberto Lorenzo (slorenzot@gmail.com)
|
|
360
|
+
|
|
361
|
+
## 🔄 Dependencias
|
|
362
|
+
|
|
363
|
+
### Dependencias Principales
|
|
364
|
+
- `@slorenzot/memento-core` - Motor de memoria
|
|
365
|
+
- `commander` - Framework de CLI
|
|
366
|
+
- `chalk` - Colores en terminal
|
|
367
|
+
- `ora` - Indicadores de progreso
|
|
368
|
+
- `ink` - Componentes de UI en terminal
|
|
369
|
+
- `zod` - Validación de esquemas
|
|
370
|
+
|
|
371
|
+
### Peer Dependencies
|
|
372
|
+
- `bun` v1.0+ (recomendado)
|
|
373
|
+
- `node` v20+ (compatible)
|
|
374
|
+
|
|
375
|
+
## 🛠️ Desarrollo
|
|
376
|
+
|
|
377
|
+
```bash
|
|
378
|
+
# Clonar el proyecto
|
|
379
|
+
git clone https://github.com/slorenzot/memento.git
|
|
380
|
+
cd memento/packages/cli
|
|
381
|
+
|
|
382
|
+
# Instalar dependencias
|
|
383
|
+
bun install
|
|
384
|
+
|
|
385
|
+
# Desarrollo
|
|
386
|
+
bun run dev
|
|
387
|
+
|
|
388
|
+
# Build
|
|
389
|
+
bun run build
|
|
390
|
+
|
|
391
|
+
# Tests
|
|
392
|
+
bun test
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
## 📋 Changelog
|
|
396
|
+
|
|
397
|
+
### [0.1.1] - 2024-04-04
|
|
398
|
+
- **Fixed**: Actualización de dependencias core
|
|
399
|
+
- **Fixed**: Mejora en manejo de argumentos CLI
|
|
400
|
+
- **Updated**: Optimización de salida de comandos
|
|
401
|
+
|
|
402
|
+
### [0.1.0] - 2024-04-04
|
|
403
|
+
- **Added**: Versión inicial de la CLI
|
|
404
|
+
- **Added**: Comandos de gestión de memoria
|
|
405
|
+
- **Added**: Comandos de búsqueda y estadísticas
|
|
406
|
+
- **Added**: Soporte completo de colores y progreso
|
|
407
|
+
|
|
408
|
+
## 👤 Autor
|
|
409
|
+
|
|
410
|
+
**Soulberto Lorenzo**
|
|
411
|
+
- GitHub: [@slorenzot](https://github.com/slorenzot)
|
|
412
|
+
- Email: slorenzot@gmail.com
|
|
413
|
+
|
|
414
|
+
## 📄 Licencia
|
|
415
|
+
|
|
416
|
+
Este paquete está bajo Licencia **Creative Commons Attribution-NonCommercial-NoDerivs 4.0 International**.
|
|
417
|
+
|
|
418
|
+
[Ver Licencia Completa](https://github.com/slorenzot/memento/blob/main/LICENSE)
|
|
419
|
+
|
|
420
|
+
---
|
|
421
|
+
|
|
422
|
+
**⚠️ Importante**: Este paquete tiene licencia restrictiva. Respeta los términos de la licencia CC BY-NC-ND 4.0.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@slorenzot/memento-cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "CLI interface for Memento",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"typecheck": "bun tsc --noEmit"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@slorenzot/memento-core": "
|
|
17
|
+
"@slorenzot/memento-core": "^0.1.2",
|
|
18
18
|
"commander": "^12.0.0",
|
|
19
19
|
"ink": "^4.4.1",
|
|
20
20
|
"chalk": "^5.3.0",
|