Files
antigravity-skills-reference/skills/context-agent/scripts/models.py
ProgramadorBrasil 61ec71c5c7 feat: add 52 specialized AI agent skills (#217)
New skills covering 10 categories:

**Security & Audit**: 007 (STRIDE/PASTA/OWASP), cred-omega (secrets management)
**AI Personas**: Karpathy, Hinton, Sutskever, LeCun (4 sub-skills), Altman, Musk, Gates, Jobs, Buffett
**Multi-agent Orchestration**: agent-orchestrator, task-intelligence, multi-advisor
**Code Analysis**: matematico-tao (Terence Tao-inspired mathematical code analysis)
**Social & Messaging**: Instagram Graph API, Telegram Bot, WhatsApp Cloud API, social-orchestrator
**Image Generation**: AI Studio (Gemini), Stability AI, ComfyUI Gateway, image-studio router
**Brazilian Domain**: 6 auction specialist modules, 2 legal advisors, auctioneers data scraper
**Product & Growth**: design, invention, monetization, analytics, growth engine
**DevOps & LLM Ops**: Docker/CI-CD/AWS, RAG/embeddings/fine-tuning
**Skill Governance**: installer, sentinel auditor, context management

Each skill includes:
- Standardized YAML frontmatter (name, description, risk, source, tags, tools)
- Structured sections (Overview, When to Use, How it Works, Best Practices)
- Python scripts and reference documentation where applicable
- Cross-platform compatibility (Claude Code, Antigravity, Cursor, Gemini CLI, Codex CLI)

Co-authored-by: ProgramadorBrasil <214873561+ProgramadorBrasil@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 10:04:07 +01:00

104 lines
3.6 KiB
Python

"""
Modelos de dados do Context Agent.
Dataclasses puras sem dependências externas.
"""
from dataclasses import dataclass, field
from datetime import datetime
from typing import Optional
@dataclass
class SessionEntry:
"""Uma entrada individual do log JSONL do Claude Code."""
type: str # "user" | "assistant" | "queue-operation"
timestamp: str # ISO 8601
session_id: str
slug: str = ""
role: str = "" # "user" | "assistant"
content: str = "" # Texto da mensagem
tool_calls: list = field(default_factory=list) # [{name, input}]
token_usage: dict = field(default_factory=dict) # {input, output, cache_read}
model: str = ""
files_modified: list = field(default_factory=list)
@dataclass
class PendingTask:
"""Tarefa pendente identificada em uma sessão."""
description: str
priority: str = "medium" # "high" | "medium" | "low"
source_session: int = 0 # Número da sessão onde foi criada
created_date: str = ""
context: str = "" # Contexto adicional sobre a tarefa
completed: bool = False
@dataclass
class ProjectInfo:
"""Informações de um projeto/skill rastreado."""
name: str
path: str = ""
status: str = "active" # "active" | "paused" | "completed"
last_touched: str = "" # Data da última interação
last_session: int = 0 # Número da última sessão
next_actions: list = field(default_factory=list)
dependencies: list = field(default_factory=list)
@dataclass
class SessionSummary:
"""Resumo estruturado de uma sessão do Claude Code."""
session_number: int
session_id: str = ""
slug: str = ""
date: str = "" # YYYY-MM-DD
start_time: str = "" # HH:MM
end_time: str = "" # HH:MM
duration_minutes: int = 0
model: str = ""
# Conteúdo
topics: list = field(default_factory=list)
decisions: list = field(default_factory=list)
tasks_completed: list = field(default_factory=list)
tasks_pending: list = field(default_factory=list) # list[PendingTask]
files_modified: list = field(default_factory=list) # list[{path, action}]
key_findings: list = field(default_factory=list)
errors_resolved: list = field(default_factory=list) # list[{error, solution}]
open_questions: list = field(default_factory=list)
technical_debt: list = field(default_factory=list)
# Métricas
total_input_tokens: int = 0
total_output_tokens: int = 0
total_cache_tokens: int = 0
message_count: int = 0
tool_call_count: int = 0
# Projetos tocados nesta sessão
projects_touched: list = field(default_factory=list)
@dataclass
class ActiveContext:
"""Contexto ativo consolidado de todas as sessões."""
last_updated: str = ""
projects: list = field(default_factory=list) # list[ProjectInfo]
pending_tasks: list = field(default_factory=list) # list[PendingTask]
recent_decisions: list = field(default_factory=list) # list[{session, text}]
active_blockers: list = field(default_factory=list)
conventions: list = field(default_factory=list)
recent_sessions: list = field(default_factory=list) # list[{number, summary}]
total_sessions: int = 0
@dataclass
class SearchResult:
"""Resultado de busca no histórico de sessões."""
session_number: int
date: str
snippet: str
section: str # Em qual seção foi encontrado
relevance: float = 0.0