feat(core): brahman-card-wit — extractor opcional de contratos WIT
Crate nuevo crates/core/brahman-card-wit que parsea texto WIT con
wit-parser y devuelve un Vec<WitInterface> (de brahman-card),
listo para acoplarse a una ResolvedCard::from_conscious(card, wit).
Ámbito intencional: sólo parsing texto, no toca wasm-tools ni
wit-component. Es opt-in: brahman-card no depende de éste.
API pública:
- parse_wit(source: &str) -> Result<Vec<WitInterface>, WitError>
- parse_wit_file(path: impl AsRef<Path>) -> Result<...>
Cada WitInterface incluye: package, world, imports, exports.
Las interfaces importadas/exportadas (no sólo funciones) se
resuelven por nombre via resolve.interfaces[id].name; las
funciones inline aparecen como WorldKey::Name directo.
Example CLI: brahman-wit-info <ruta.wit> imprime los worlds.
$ brahman-wit-info shared_wit/protocol.wit
2 world(s):
package: brahman:protocol@0.1.0
world: module
imports: types, handshake, lifecycle
exports: run
...
Tests: 4/4 (inline + archivo real + parse error + world vacío).
Workspace: 0 errores.
CHANGELOG.md actualizado con la entrada nueva y la del commit
anterior (7b589b8) que faltaba.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -6,6 +6,25 @@ ratio/diff ver `git show <sha>`.
|
||||
|
||||
## 2026-05-08
|
||||
|
||||
### feat(core): brahman-card-wit — extractor opcional de contratos WIT
|
||||
- Crate nuevo `crates/core/brahman-card-wit` con `wit-parser = "0.230"`.
|
||||
- API: `parse_wit(source)` y `parse_wit_file(path)` devuelven
|
||||
`Vec<WitInterface>` (uno por `world` declarado).
|
||||
- Interfaces importadas/exportadas (no sólo funciones) se resuelven
|
||||
por nombre via `resolve.interfaces[id].name`.
|
||||
- Example `crates/core/brahman-card-wit/examples/brahman-wit-info.rs`
|
||||
CLI: `brahman-wit-info shared_wit/protocol.wit` → lista paquete,
|
||||
worlds, imports y exports.
|
||||
- 4 tests: inline, archivo real (`shared_wit/protocol.wit`), parse
|
||||
error, world vacío.
|
||||
- Validado contra `protocol.wit`: detecta worlds `module` y
|
||||
`admin-host` con sus imports/exports correctos.
|
||||
|
||||
### `7b589b8` chore: agrega CHANGELOG.md retroactivo
|
||||
- `CHANGELOG.md` en la raíz con los 11 commits previos documentados
|
||||
acción por acción. A partir de este punto, cada cambio sustantivo
|
||||
actualiza también este archivo en el mismo commit.
|
||||
|
||||
### `8a83a26` feat(handshake): notificación push de matches
|
||||
- Frame `MatchEvent { kind: Available | Lost, ... }` añadido al protocolo.
|
||||
- `Session::run_post_handshake` usa `tokio::select!` para multiplexar
|
||||
|
||||
Reference in New Issue
Block a user