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
This commit is contained in:
commit
e989413018
76 files changed
+8386
No files matched your search
@@ -0,0 +1,19 @@
|
||||
// OpenWolf plugin entry — implementation lives in ./openwolf/.
|
||||
import {OpenWolf as installed} from "./openwolf/index.js"
|
||||
import {pinRuntime, scheduleUpdate} from "./openwolf/runtime-updates.js"
|
||||
import {pathToFileURL} from "node:url"
|
||||
import * as path from "node:path"
|
||||
import type {Plugin} from "@opencode-ai/plugin"
|
||||
export const OpenWolf: Plugin = async (ctx) => {
|
||||
scheduleUpdate(ctx.directory)
|
||||
// The server's plugin instance remains fixed; no reload during a session.
|
||||
let pkg: string | undefined
|
||||
try { pkg = pinRuntime(ctx.directory, "opencode-server:" + process.pid + ":" + Date.now()) } catch {}
|
||||
if (pkg) {
|
||||
try {
|
||||
const next = await import(pathToFileURL(path.join(pkg,"src/templates/opencode-plugin/index.ts")).href)
|
||||
return await next.OpenWolf(ctx)
|
||||
} catch {} // retain the installed plugin if the staged module cannot load
|
||||
}
|
||||
return installed(ctx)
|
||||
}
|
||||
Reference in new issue
Block a user