Files
takana/crates/hammer-cli/Cargo.toml
T
Sergio 80319d9bab takana: etapa 2 del renombre + los dos puntos de la hoja de marca
Etapa 2 (ADR 0016): el binario canónico es `takana` y `hammer` se sigue
emitiendo. Son DOS [[bin]] al mismo main.rs, no un symlink: la siembra de la
granja excluye /target (un symlink del hub no existiría en el worker) y
`cargo clean` lo borraría. Ningún llamador tocado; los 124 siguen andando.

Adoptados los dos puntos de la hoja de marca que chocaban con contratos:

- `forja` como ALIAS de clap sobre `build`, no como reemplazo. El canónico
  sigue siendo el inglés, que es lo que usan scripts, cron y runbooks. Y se
  enmienda la regla 4 de CLAUDE.md en el mismo commit: cambiar el
  comportamiento dejando escrito el contrato viejo es lo peor de las dos
  opciones, porque el otro agente del repo aplica lo que lee.

- `.tkn` como extensión de paquete. Salió barato y por una razón medida: la
  extensión no es lógica sino salida — se escribe en UN solo lugar
  (main.rs:1800) y el descubrimiento va por índice, no por glob
  (PackageEntry.file, repo.rs:75). Los repos con entradas .swm siguen
  resolviendo y un repo mixto es válido; cero ficheros .swm versionados.
  Los tipos Swm/SwmBuild/swm_bridge no se tocan: son internos, van en la
  etapa 4.

287 tests en verde (hammer-cli + hammer-core), incluidos los que fabrican
repos con nombres .swm a mano — que son justamente la prueba de que la
compatibilidad hacia atrás se sostiene.
2026-09-09 18:22:15 +00:00

53 lines
1.5 KiB
TOML

[package]
name = "hammer-cli"
version.workspace = true
edition.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
description = "El binario `takana`: orquesta build, hydrate, try/commit, apply/export y ctl."
# ADR 0016 — renombre hammer→takana, etapa 2. Los DOS binarios se emiten a
# propósito, en vez de un symlink: la siembra de la granja excluye `/target`, así
# que un symlink hecho en el hub no existiría en el worker, y `cargo clean` lo
# borra. Dos `[[bin]]` sobreviven a las dos cosas. `hammer` se retira en la etapa 6.
[[bin]]
name = "takana"
path = "src/main.rs"
[[bin]]
name = "hammer"
path = "src/main.rs"
[features]
default = []
# Activa el traductor LLM real (Claude API) detrás del flag `hammer ai --llm`.
# Sin esta feature, `--llm` falla con un mensaje claro pidiendo recompilar.
llm-claude = ["hammer-agent/llm-claude"]
[dependencies]
hammer-core.workspace = true
hammer-build.workspace = true
hammer-bootstrap.workspace = true
hammer-mirror.workspace = true
hammer-upgrade.workspace = true
hammer-overlay.workspace = true
hammer-journal.workspace = true
hammer-agent.workspace = true
serde.workspace = true
serde_json.workspace = true
toml.workspace = true
nix.workspace = true
base64.workspace = true
anyhow.workspace = true
clap.workspace = true
tracing.workspace = true
tracing-subscriber.workspace = true
tempfile.workspace = true
[dev-dependencies]
tempfile.workspace = true
base64.workspace = true
sha2.workspace = true
hex.workspace = true