Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

iped-skills — Skills Hermes para a IPED WebAPI

Pacote de skills Hermes no formato oficial (<nome>/SKILL.md + scripts/) que permite a um agente Hermes (ou a um analista em terminal) interrogar casos IPED indexados atraves da IPED WebAPI local, sem tocar no codigo do IPED. Layout pronto para publicar como tap (urlan/analysis-skills).

iped-skills/                     # raiz do futuro repo tap
├── README.md
├── GIT-GITHUB.md                # como publicar e instalar via tap
├── skills/                      # <-- o que o instalador do Hermes baixa
│   ├── iped-case/               # interrogacao: status/load/categories/search/item/summary
│   │   ├── SKILL.md             # frontmatter oficial (name/description/config...)
│   │   └── scripts/
│   │       ├── iped_client.py   # cliente HTTP da WebAPI (Python 3, stdlib)
│   │       └── iped_report.py
│   └── iped-report/             # pre-relatorio md+HTML por palavras-chave
│       ├── SKILL.md
│       └── scripts/
│           ├── iped_client.py   # copia — cada skill e AUTOCONTIDA
│           └── iped_report.py
└── legacy-scripts/              # arquivos originais da fase SKILL-1/3 (arquivo, nao usar)

Cada skill e autocontida (os dois scripts duplicados dentro dela) porque o instalador de skills do Hermes baixa a pasta da skill inteira — nada pode apontar para fora dela. Os SKILL.md referenciam os scripts por caminho RELATIVO (scripts/iped_client.py, rodando do diretorio da skill), com fallback por variavel IPED_SKILL_DIR.

Instalacao via tap (operador)

Apos publicar este diretorio como urlan/analysis-skills (ver GIT-GITHUB.md):

hermes skills tap add urlan/analysis-skills

# IMPORTANTE: as skills ficam em skills/analysis-skills/ (um nivel
# abaixo do padrao). Depois do "tap add", edite o taps.json do Hermes
# e ajuste o path:
#   {"repo": "urlan/analysis-skills", "path": "skills/analysis-skills/"}
hermes skills install iped-case
hermes skills install iped-report

O instalador coloca cada skill em ~/.hermes/skills/<category>/<nome>/ (category forensics, declarada no frontmatter). Na primeira carga o Hermes pergunta os settings nao-secretos definidos no frontmatter (iped.webapi_url, iped.jar_path, iped.cases_dir — guardados em config.yaml).

Instalacao manual (sem tap)

Copie skills/iped-case e skills/iped-report para ~/.hermes/skills/forensics/ (ou aponte-as la). Alternativa sem Hermes: use os scripts direto em terminal — sao stdlib puro.

Pre-requisitos

  • Jar de release do IPED com layout lib/ (o manifesto do iped-webapi.jar referencia dependencias por Class-Path).
  • Pasta de casos: cada caso e uma pasta contendo subdiretorio IPED-indexacao-* gerado pelo IPED (indice + evidencia localizada).
  • JDK 11 (executavel java), Python 3 (somente stdlib) e pgrep/pkill (o load gerencia o processo do servidor).

Variaveis de ambiente (mapeamento dos settings do Hermes)

Variavel Setting Hermes Default
WEBAPI_BASE_URL iped.webapi_url http://127.0.0.1:8080
IPED_JAR iped.jar_path /iped-research/webapi-tests/iped-release/lib/iped-webapi.jar
IPED_CASES_DIR iped.cases_dir /IPED-INDEXACOES (no ambiente de origem; script default: /iped-research/casos)
JAVA_BIN /opt/data/toolchain/jdk-11/bin/java
IPED_SOURCES_FILE /iped-research/webapi-tests/sources-skill.json
IPED_SKILL_DIR caminho da skill (fallback p/ scripts fora do cwd)

O log do servidor sobe em /iped-research/webapi-tests/skill-server.log (no ambiente de origem).

Uso rapido (a partir do diretorio da skill instalada)

cd ~/.hermes/skills/forensics/iped-case
python3 scripts/iped_client.py status          # servidor/caso/total
python3 scripts/iped_client.py load <caso>     # troca o caso e REINICIA o java
python3 scripts/iped_client.py summary         # retrato do caso
python3 scripts/iped_client.py search <termo> --limit 5
python3 scripts/iped_client.py item <id> --text

cd ~/.hermes/skills/forensics/iped-report
python3 scripts/iped_report.py <caso> --keywords "a,b,c" --out PRE

O iped_report.py reusa o iped_client.py da MESMA pasta; gera PRE.md + PRE.html e aproveita o caso ja carregado (so faz load — com restart do Java — quando o caso pedido e outro).

Detalhes, exemplos reais e a disciplina do /text estao nos SKILL.md de cada skill.

Avisos

  • Um caso por load (default). O load grava um arquivo de sources com UM unico caso e reinicia o servidor (mata o processo java via pkill -x java). Apos o load, ids de buscas anteriores perdem o sentido.
  • Aviso P2-7: carregamento multi-source entre versoes IPED incompativeis falha no bootstrap com erro opaco; multi-source exige caminhos explicitos e validacao manual.
  • O status/search/item nunca sobem servidor: se estiver down, o unico caminho e load.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages