@jmanuelcorral/openteam 0.1.27 → 0.1.28

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.
@@ -0,0 +1,11 @@
1
+ import type { StorageProvider } from "./provider";
2
+ /**
3
+ * `StorageProvider` sobre `node:fs/promises`. Mapea rutas virtuales POSIX a
4
+ * disco bajo `root`. Es el adapter por defecto en producción.
5
+ *
6
+ * Semántica: `read`/`stat` devuelven `undefined` ante ENOENT; `write`/`append`
7
+ * crean directorios intermedios; `list` devuelve `[]` si el directorio no
8
+ * existe; `delete` es idempotente (usa `rm` con `force`).
9
+ */
10
+ export declare function createFsStorageProvider(root: string): StorageProvider;
11
+ //# sourceMappingURL=fsStorageProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fsStorageProvider.d.ts","sourceRoot":"","sources":["../../src/storage/fsStorageProvider.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,eAAe,EAAe,MAAM,YAAY,CAAC;AAW/D;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAgFrE"}
@@ -0,0 +1,5 @@
1
+ export { createFsStorageProvider } from "./fsStorageProvider";
2
+ export { createMemoryStorageProvider } from "./memoryStorageProvider";
3
+ export { joinVirtualPath, normalizeVirtualPath, parentVirtualPath, StoragePathError, splitVirtualPath, } from "./path";
4
+ export type { StorageProvider, StorageStat } from "./provider";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,QAAQ,CAAC;AAChB,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { StorageProvider } from "./provider";
2
+ /**
3
+ * `StorageProvider` en memoria basado en `Map`. Determinista y sin I/O real:
4
+ * pensado para tests y como implementación de referencia del contrato.
5
+ *
6
+ * Los directorios son implícitos (derivados de los ficheros existentes) pero
7
+ * también pueden crearse vacíos con `mkdir`. Un contador monótono provee
8
+ * `mtimeMs` reproducible por secuencia de operaciones.
9
+ */
10
+ export declare function createMemoryStorageProvider(): StorageProvider;
11
+ //# sourceMappingURL=memoryStorageProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memoryStorageProvider.d.ts","sourceRoot":"","sources":["../../src/storage/memoryStorageProvider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAe,MAAM,YAAY,CAAC;AAE/D;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,IAAI,eAAe,CAwH7D"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Normalización **pura** de rutas virtuales del `StorageProvider`.
3
+ *
4
+ * Las rutas son POSIX (`/`), relativas a la raíz lógica del provider. No hay
5
+ * I/O aquí: solo manipulación de strings determinista. La raíz se representa
6
+ * como cadena vacía `""`.
7
+ */
8
+ /** Error lanzado cuando una ruta intenta escapar por encima de la raíz. */
9
+ export declare class StoragePathError extends Error {
10
+ constructor(message: string);
11
+ }
12
+ /**
13
+ * Normaliza una ruta virtual a POSIX relativa sin `.`/`..` ni segmentos vacíos.
14
+ * Acepta separadores `\` o `/`. Un `..` que escape por encima de la raíz lanza
15
+ * `StoragePathError`. La raíz (`""`, `"/"`, `"."`) se normaliza a `""`.
16
+ */
17
+ export declare function normalizeVirtualPath(input: string): string;
18
+ /** Une segmentos y normaliza el resultado a una ruta virtual. */
19
+ export declare function joinVirtualPath(...segments: string[]): string;
20
+ /**
21
+ * Devuelve el directorio padre de una ruta virtual normalizada (`""` si es un
22
+ * hijo directo de la raíz o la propia raíz).
23
+ */
24
+ export declare function parentVirtualPath(path: string): string;
25
+ /** Descompone una ruta virtual normalizada en sus segmentos (`[]` para la raíz). */
26
+ export declare function splitVirtualPath(path: string): string[];
27
+ //# sourceMappingURL=path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../src/storage/path.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,2EAA2E;AAC3E,qBAAa,gBAAiB,SAAQ,KAAK;gBAC7B,OAAO,EAAE,MAAM;CAI5B;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAkB1D;AAED,iEAAiE;AACjE,wBAAgB,eAAe,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAE7D;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAItD;AAED,oFAAoF;AACpF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAGvD"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * `StorageProvider` — boundary de persistencia de openteam.
3
+ *
4
+ * Modela un **sistema de ficheros virtual** (`path → content`) con rutas POSIX
5
+ * relativas a una raíz lógica (ver `path.ts`). Es la única superficie de I/O
6
+ * para artefactos del equipo (roster/decisions/backlog en Markdown y logs de
7
+ * sesión en JSONL). Los adapters concretos (`fsStorageProvider`,
8
+ * `memoryStorageProvider`, futuros remotos) implementan este contrato.
9
+ *
10
+ * Reglas del contrato (verificadas por `tests/storage/contract.ts`):
11
+ * - `read`/`stat` devuelven `undefined` si la ruta no existe (nunca lanzan por
12
+ * fichero inexistente).
13
+ * - `write`/`append` crean los directorios intermedios necesarios.
14
+ * - `list` devuelve los nombres de los hijos **inmediatos** (no recursivo),
15
+ * ordenados alfabéticamente, y `[]` si el directorio no existe.
16
+ * - `mkdir` es idempotente y recursivo.
17
+ * - `delete` es idempotente (no lanza si la ruta no existe).
18
+ *
19
+ * Este módulo **no** contiene I/O: solo tipos. `router/` nunca lo importa.
20
+ */
21
+ /** Metadatos de una entrada del storage. */
22
+ export type StorageStat = {
23
+ /** Tamaño en bytes del contenido (0 para directorios). */
24
+ size: number;
25
+ /** Última modificación en epoch ms. */
26
+ mtimeMs: number;
27
+ /** `true` si la entrada es un directorio. */
28
+ isDirectory: boolean;
29
+ };
30
+ /** Contrato de persistencia con semántica de sistema de ficheros virtual. */
31
+ export interface StorageProvider {
32
+ /** Lee el contenido de un fichero; `undefined` si no existe. */
33
+ read(path: string): Promise<string | undefined>;
34
+ /** Escribe (sobrescribe) un fichero, creando directorios intermedios. */
35
+ write(path: string, content: string): Promise<void>;
36
+ /** Añade contenido al final de un fichero, creándolo si no existe. */
37
+ append(path: string, content: string): Promise<void>;
38
+ /** `true` si la ruta existe como fichero o directorio. */
39
+ exists(path: string): Promise<boolean>;
40
+ /** Nombres de los hijos inmediatos de un directorio, ordenados; `[]` si no existe. */
41
+ list(dir: string): Promise<string[]>;
42
+ /** `true` solo si la ruta existe y es un directorio. */
43
+ isDirectory(path: string): Promise<boolean>;
44
+ /** Crea un directorio (recursivo, idempotente). */
45
+ mkdir(dir: string): Promise<void>;
46
+ /** Borra un fichero; idempotente si no existe. */
47
+ delete(path: string): Promise<void>;
48
+ /** Metadatos de la entrada; `undefined` si no existe. */
49
+ stat(path: string): Promise<StorageStat | undefined>;
50
+ }
51
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/storage/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,4CAA4C;AAC5C,MAAM,MAAM,WAAW,GAAG;IACxB,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,6EAA6E;AAC7E,MAAM,WAAW,eAAe;IAC9B,gEAAgE;IAChE,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAChD,yEAAyE;IACzE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,sEAAsE;IACtE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,0DAA0D;IAC1D,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,sFAAsF;IACtF,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACrC,wDAAwD;IACxD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5C,mDAAmD;IACnD,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,kDAAkD;IAClD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,yDAAyD;IACzD,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;CACtD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jmanuelcorral/openteam",
3
- "version": "0.1.27",
3
+ "version": "0.1.28",
4
4
  "description": "Plugin opencode de routing coste-consciente local-first con orquestación Squad.",
5
5
  "license": "MIT",
6
6
  "author": "Jose Manuel Corral",