src / config.ts
import { createConfigSchematics } from "@lmstudio/sdk";
/**
* ConfiguraciΓ³n del plugin arkantu-core-tools.
*
* DiseΓ±ado para el setup Khazad-dum (Intel Arc 94 GB iGPU) +
* LMLink β RPi5-raspberrypi5-3-gpu (RX 480 8 GB).
*
* Nota sobre LMLink:
* LMLink transparenta los modelos remotos a travΓ©s del endpoint
* LOCAL de LM Studio (localhost:1234). No hay que configurar
* ningΓΊn endpoint separado β simplemente se selecciona el modelo
* por ID y LM Studio enruta automΓ‘ticamente al hardware correcto.
*/
export const pluginConfig = createConfigSchematics()
// ββ Workspace βββββββββββββββββββββββββββββββββββββββββββββββββ
.field("workspacePath", "string", {
displayName: "Ruta del workspace",
subtitle: "Directorio raΓz de trabajo. Por defecto: /home/arkantu/workspace",
}, "/home/arkantu/workspace")
// ββ Herramientas de filesystem βββββββββββββββββββββββββββββββββ
.field("enableFilesystem", "boolean", {
displayName: "Herramientas de archivos",
subtitle: "Leer, escribir, buscar y navegar archivos del workspace.",
}, true)
// ββ EjecuciΓ³n de comandos ββββββββββββββββββββββββββββββββββββββ
.field("enableShell", "boolean", {
displayName: "EjecuciΓ³n de shell",
subtitle: "Ejecutar comandos de terminal (bash). Necesario para builds, npm, pytest, etc.",
}, false)
.field("enablePython", "boolean", {
displayName: "EjecuciΓ³n de Python",
subtitle: "Ejecutar scripts Python del sistema.",
}, false)
// ββ Git ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
.field("enableGit", "boolean", {
displayName: "Herramientas Git",
subtitle: "git status, diff, add, commit, log, checkout.",
}, true)
// ββ Web ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
.field("enableWeb", "boolean", {
displayName: "BΓΊsqueda web",
subtitle: "web_search (DuckDuckGo) y fetch_page para obtener contenido de URLs.",
}, true)
// ββ Agente remoto LMLink βββββββββββββββββββββββββββββββββββββββ
// LMLink enruta transparentemente a travΓ©s de localhost:1234.
// No se necesita endpoint separado β LM Studio gestiona el routing.
.field("enableLMLink", "boolean", {
displayName: "Agente LMLink (RPi5 / RX480)",
subtitle: "Activa ask_remote_agent para delegar tareas al modelo cargado en el nodo remoto (RX 480). LMLink lo enruta vΓa localhost.",
}, true)
// ββ Sistema ββββββββββββββββββββββββββββββββββββββββββββββββββββ
.field("enableSystemInfo", "boolean", {
displayName: "Info del sistema",
subtitle: "get_system_info: muestra hardware (CPUs, RAM, GPU) del nodo local.",
}, true)
// ββ Notificaciones βββββββββββββββββββββββββββββββββββββββββββββ
.field("enableNotifications", "boolean", {
displayName: "Notificaciones de escritorio",
subtitle: "send_notification: alerta al usuario cuando finaliza una tarea larga.",
}, true)
// ββ Zotero RAG ββββββββββββββββββββββββββββββββββββββββββ
.field("enableZotero", "boolean", {
displayName: "GestiΓ³n Zotero",
subtitle: "Activa herramientas para buscar papers, ver metadatos y leer PDFs de tu biblioteca Zotero.",
}, true)
.field("zoteroDbPath", "string", {
displayName: "Ruta de zotero.sqlite",
subtitle: "Ruta al archivo de base de datos de Zotero. Por defecto: /home/arkantu/Zotero/zotero.sqlite",
}, "/home/arkantu/Zotero/zotero.sqlite")
.field("zoteroStoragePath", "string", {
displayName: "Ruta del storage de Zotero",
subtitle: "Carpeta donde Zotero guarda los PDFs adjuntos. Por defecto: /home/arkantu/Zotero/storage",
}, "/home/arkantu/Zotero/storage")
// ββ Contexto compacto ββββββββββββββββββββββββββββββββββββ
.field("compactSystemPrompt", "boolean", {
displayName: "System prompt compacto",
subtitle: "Inyecta sΓ³lo la lista de herramientas activas en lugar del manual completo. Reduce tokens.",
}, false)
.build();