Rediseño tool results + compactación por step + integración Docker
- Tool results completos en conversación (como Claude Code/Cursor) en vez de resúmenes en system prompt - Parser multi-tool: trackea tool calls por tool_call_id para OpenAI streaming interleaved - Deduplicación por fingerprint + detección de loop cuando todos los calls de un step son duplicados - Compactación inteligente por step: el orquestador decide cuándo comprimir steps anteriores (cambio de agente o >3 steps) - stdio.js lee URLs del .acai como fallback (local_web_url, local_forge_host) - Buffer MCP aumentado a 1MB para respuestas grandes - Dockerfile adaptado para build context desde raíz del proyecto Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -22,9 +22,21 @@ registerResources(server);
|
||||
|
||||
// Static env vars (web_url and website don't change, token does)
|
||||
const projectDir = process.env.ACAI_PROJECT_DIR || "";
|
||||
const website = process.env.ACAI_WEBSITE || "";
|
||||
const webUrl = process.env.ACAI_WEB_URL || "";
|
||||
const acaiFilePath = projectDir ? path.join(projectDir, ".acai") : "";
|
||||
|
||||
// Read .acai once at startup for URL fallbacks
|
||||
let acaiFileData = {};
|
||||
if (acaiFilePath) {
|
||||
try {
|
||||
acaiFileData = JSON.parse(fs.readFileSync(acaiFilePath, "utf-8"));
|
||||
} catch { /* ignore - fall back to env vars */ }
|
||||
}
|
||||
|
||||
const website = process.env.ACAI_WEBSITE || acaiFileData.domain || "";
|
||||
const webUrl = process.env.ACAI_WEB_URL || acaiFileData.local_web_url || "";
|
||||
const derivedForgeHost = (() => {
|
||||
// First check .acai for explicit forge host
|
||||
if (acaiFileData.local_forge_host) return acaiFileData.local_forge_host;
|
||||
if (!webUrl) return "";
|
||||
try {
|
||||
const parsed = new URL(webUrl);
|
||||
@@ -35,7 +47,6 @@ const derivedForgeHost = (() => {
|
||||
})();
|
||||
const apiWebUrl = process.env.ACAI_API_WEB_URL || (derivedForgeHost ? "http://web:80/" : webUrl);
|
||||
const forgeHost = process.env.ACAI_FORGE_HOST || derivedForgeHost;
|
||||
const acaiFilePath = projectDir ? path.join(projectDir, ".acai") : "";
|
||||
|
||||
// Read fresh credentials from .acai file
|
||||
function readFreshCredentials() {
|
||||
|
||||
Reference in New Issue
Block a user