Files
sabia/.opencode/plugin/openwolf/knowledge-root.ts
T
Lucas e989413018 Esqueleto inicial: sabia-core + sabia-cli + UI local, OpenWolf
- 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
2026-10-23 08:22:04 -03:00

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;}
}