feat(cybersecurity): auto-commit con 48 cambios
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
---
|
||||
name: identity
|
||||
lang: go
|
||||
domain: cybersecurity
|
||||
version: "1.0.0"
|
||||
algebraic: product
|
||||
definition: |
|
||||
type Identity struct {
|
||||
SignPub []byte
|
||||
SignPriv []byte
|
||||
KexPub []byte
|
||||
KexPriv []byte
|
||||
}
|
||||
description: "Identidad criptográfica dual de un participante en el bus de mensajería. Contiene un par Ed25519 para firma (SignPub/SignPriv) y un par X25519 para intercambio de claves (KexPub/KexPriv)."
|
||||
tags: [messaging, e2e-crypto, crypto, identity, ed25519, x25519, e2e-messaging]
|
||||
uses_types: []
|
||||
file_path: "functions/cybersecurity/generate_identity.go"
|
||||
---
|
||||
|
||||
## Notas
|
||||
|
||||
- `SignPub` (32 bytes) y `SignPriv` (64 bytes): par Ed25519. SignPriv concatena seed (32) + pubkey (32).
|
||||
- `KexPub` (32 bytes) y `KexPriv` (32 bytes): par Curve25519 para sealed box anónimo.
|
||||
- Generado exclusivamente con `GenerateIdentity()`. No construir manualmente.
|
||||
- Publicar solo `SignPub` + `KexPub` en el directorio de participantes; nunca las claves privadas.
|
||||
@@ -0,0 +1,27 @@
|
||||
---
|
||||
name: claude_tui_parse
|
||||
lang: go
|
||||
domain: tui
|
||||
version: "1.0.0"
|
||||
algebraic: product
|
||||
definition: |
|
||||
type ClaudeTUIParse struct {
|
||||
Turns []ClaudeTurn `json:"turns"`
|
||||
Answer string `json:"answer"`
|
||||
}
|
||||
description: "Resultado del parseo de una pantalla capturada de la TUI de Claude Code. Turns contiene todos los bloques de conversación visibles en orden (user, assistant, tool_use, tool_result). Answer es la concatenación de los bloques assistant que siguen al último turno user — equivalente al output de `claude -p`."
|
||||
tags: [terminal-capture, claude, tui, conversation]
|
||||
uses_types:
|
||||
- claude_turn_go_tui
|
||||
file_path: "functions/tui/parse_claude_tui.go"
|
||||
---
|
||||
|
||||
## Notas
|
||||
|
||||
`Answer` se calcula así:
|
||||
1. Localizar el último turno con `Role == user`.
|
||||
2. Concatenar con `\n` el `Text` de todos los turnos `assistant` (no `tool_use`, no `tool_result`) que aparecen después.
|
||||
3. Si no hay ningún turno `user`, concatenar todos los `assistant`.
|
||||
4. Hacer trim del resultado.
|
||||
|
||||
Este valor es el equivalente programático de lo que imprime `claude -p` cuando la respuesta termina. Es vacío si la pantalla capturada no contiene respuesta del asistente (por ejemplo, captura prematura durante el streaming).
|
||||
@@ -0,0 +1,36 @@
|
||||
---
|
||||
name: claude_turn
|
||||
lang: go
|
||||
domain: tui
|
||||
version: "1.0.0"
|
||||
algebraic: product
|
||||
definition: |
|
||||
type ClaudeTurnRole string
|
||||
|
||||
const (
|
||||
ClaudeTurnUser ClaudeTurnRole = "user"
|
||||
ClaudeTurnAssistant ClaudeTurnRole = "assistant"
|
||||
ClaudeTurnToolUse ClaudeTurnRole = "tool_use"
|
||||
ClaudeTurnToolResult ClaudeTurnRole = "tool_result"
|
||||
)
|
||||
|
||||
type ClaudeTurn struct {
|
||||
Role ClaudeTurnRole `json:"role"`
|
||||
Text string `json:"text"`
|
||||
ToolName string `json:"tool_name,omitempty"`
|
||||
}
|
||||
description: "Un bloque de la conversación extraído de la pantalla renderizada de la TUI de Claude Code. El campo Role clasifica el tipo de turno; Text contiene el contenido textual (multilinea unido con \\n); ToolName solo se rellena cuando Role == tool_use."
|
||||
tags: [terminal-capture, claude, tui, conversation]
|
||||
uses_types: []
|
||||
file_path: "functions/tui/parse_claude_tui.go"
|
||||
---
|
||||
|
||||
## Notas
|
||||
|
||||
`ClaudeTurnRole` es un string enum con cuatro valores:
|
||||
- `user` — mensaje escrito por el usuario (línea que empieza con `❯`).
|
||||
- `assistant` — bloque de texto de respuesta del asistente (línea que empieza con `●` y no es una llamada a herramienta).
|
||||
- `tool_use` — llamada a herramienta `● ToolName(args)`. `ToolName` contiene el identificador de la herramienta.
|
||||
- `tool_result` — resultado de herramienta `⎿ ...`. Asociado al `tool_use` inmediatamente anterior.
|
||||
|
||||
El tipo vive en `functions/tui/parse_claude_tui.go` junto al resto de la función, en el mismo paquete `tui`.
|
||||
Reference in New Issue
Block a user