MCPcopy Create free account
hub / github.com/21st-dev/21st-sdk / buildMoatEntryScript

Function buildMoatEntryScript

packages/agent-runtime/src/runtime.ts:415–456  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

413}
414
415function buildMoatEntryScript() {
416 return [
417 'if [ -n "${AGENTS_CLAUDE_CODE_OAUTH_TOKEN:-}" ]; then',
418 ' export CLAUDE_CODE_OAUTH_TOKEN="$AGENTS_CLAUDE_CODE_OAUTH_TOKEN"',
419 " unset ANTHROPIC_API_KEY ANTHROPIC_BASE_URL CLAUDE_API_KEY",
420 "fi",
421 'if [ -n "${AGENTS_ANTHROPIC_API_KEY:-}" ]; then export ANTHROPIC_API_KEY="$AGENTS_ANTHROPIC_API_KEY"; fi',
422 'if [ -n "${AGENTS_CLAUDE_API_KEY:-}" ]; then export CLAUDE_API_KEY="$AGENTS_CLAUDE_API_KEY"; fi',
423 'if [ -n "${AGENTS_ANTHROPIC_BASE_URL:-}" ]; then export ANTHROPIC_BASE_URL="$AGENTS_ANTHROPIC_BASE_URL"; fi',
424 'rewrite_proxy_var() {',
425 ' value=$(printenv "$1" 2>/dev/null || true)',
426 ' if [ -n "$value" ]; then',
427 ' export "$1=$(printf %s "$value" | sed "s#127\\.0\\.0\\.1#host.docker.internal#g")"',
428 " fi",
429 "}",
430 "rewrite_proxy_var HTTP_PROXY",
431 "rewrite_proxy_var HTTPS_PROXY",
432 "rewrite_proxy_var http_proxy",
433 "rewrite_proxy_var https_proxy",
434 'if [ -n "${NO_PROXY:-}" ]; then export NO_PROXY="${NO_PROXY},host.docker.internal"; else export NO_PROXY="host.docker.internal"; fi',
435 'if [ -n "${no_proxy:-}" ]; then export no_proxy="${no_proxy},host.docker.internal"; else export no_proxy="host.docker.internal"; fi',
436 'if [ -n "${AGENTS_MCP_SERVERS_JSON:-}" ]; then',
437 " node - <<'EOF'",
438 'const fs = require("node:fs")',
439 'const path = "/home/moatuser/.claude.json"',
440 "let config = {}",
441 "try { config = JSON.parse(fs.readFileSync(path, 'utf8')) } catch {}",
442 "if (!config || typeof config !== 'object' || Array.isArray(config)) config = {}",
443 "config.mcpServers = JSON.parse(process.env.AGENTS_MCP_SERVERS_JSON)",
444 "if (!config.projects || typeof config.projects !== 'object' || Array.isArray(config.projects)) config.projects = {}",
445 "const project = config.projects['/workspace']",
446 "if (!project || typeof project !== 'object' || Array.isArray(project)) {",
447 " config.projects['/workspace'] = { hasTrustDialogAccepted: true }",
448 "} else {",
449 " config.projects['/workspace'].hasTrustDialogAccepted = true",
450 "}",
451 "fs.writeFileSync(path, JSON.stringify(config, null, 2) + '\\n')",
452 "EOF",
453 "fi",
454 'exec "$0" "$@"',
455 ].join("\n")
456}
457
458function loadPersistentMoatState(): PersistentMoatState {
459 return JSON.parse(readFileSync(PERSISTENT_MOAT_STATE_PATH, "utf8")) as PersistentMoatState

Callers 1

spawnMoatProcessFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected