- sabia-core: descoberta de interfaces, controle de modo monitor/canal via iw (ponte até ter nl80211 nativo), captura crua 802.11 via AF_PACKET (sem libpcap), parsing de radiotap e quadros de gerenciamento (beacon/probe/EAPOL), agregação em tabela de APs/ clientes, escrita de .pcap, trilha de auditoria encadeada por hash, auto-atualização via GitHub releases (curl, sem dependências de rede extras) - sabia-cli: `sabia iface`, `sabia scan`, `sabia update`, `sabia audit-verify`, `sabia ui` (servidor local + navegador, protegido por token, mesma filosofia do Guará) - OpenWolf inicializado para memória de projeto entre agentes
17 lines
812 B
TypeScript
17 lines
812 B
TypeScript
import * as fs from 'node:fs';
|
|
import * as path from 'node:path';
|
|
import {execFileSync} from 'node:child_process';
|
|
/** Only durable bug knowledge is shared. Anatomy, usage, sessions and STATUS
|
|
* always remain in the worktree's own .wolf directory.
|
|
*/
|
|
export function sharedWolfDir(wolfDir: string): string {
|
|
const root=path.dirname(wolfDir);
|
|
try {
|
|
if (!fs.statSync(path.join(root,'.git')).isFile()) return wolfDir;
|
|
const common=execFileSync('git',['rev-parse','--path-format=absolute','--git-common-dir'],{cwd:root,encoding:'utf8',stdio:['ignore','pipe','ignore'],timeout:1000}).trim();
|
|
if (path.basename(common) !== '.git') return wolfDir;
|
|
const shared=path.join(path.dirname(common),'.wolf');
|
|
return fs.statSync(shared).isDirectory() ? shared : wolfDir;
|
|
} catch {return wolfDir;}
|
|
}
|