UNPKG

consortium

Version:

Remote control and session sharing CLI for AI coding agents

73 lines (70 loc) 2.35 kB
import { existsSync, mkdirSync, writeFileSync, readFileSync } from 'node:fs'; import { join } from 'node:path'; import { homedir } from 'node:os'; import { l as logger } from './types-DETLaopx.mjs'; import { DEFAULT_PI_MODEL, getDefaultPiProvider, PI_CODING_AGENT_DIR_ENV } from './constants-Ca5m6O9r.mjs'; import 'axios'; import 'chalk'; import 'fs'; import 'node:events'; import 'socket.io-client'; import 'zod'; import 'node:crypto'; import 'tweetnacl'; import 'child_process'; import 'util'; import 'fs/promises'; import 'crypto'; import 'path'; import 'url'; import 'os'; import 'node:child_process'; import 'node:fs/promises'; import 'node:module'; import 'node:util'; import 'expo-server-sdk'; function getPiAgentDir() { const envDir = process.env[PI_CODING_AGENT_DIR_ENV]; if (envDir && envDir.trim().length > 0) return envDir; return join(homedir(), ".pi", "agent"); } function getSettingsPath() { return join(getPiAgentDir(), "settings.json"); } function readPiSettings() { const path = getSettingsPath(); if (!existsSync(path)) return {}; try { return JSON.parse(readFileSync(path, "utf-8")); } catch (err) { logger.debug(`[Pi] Failed to parse settings at ${path}:`, err); return {}; } } function getInitialPiProviderAndModel() { const settings = readPiSettings(); return { provider: settings.defaultProvider ?? getDefaultPiProvider(), model: settings.defaultModel ?? DEFAULT_PI_MODEL, thinking: settings.defaultThinking }; } function savePiDefaults(patch) { const dir = getPiAgentDir(); const path = getSettingsPath(); try { if (!existsSync(dir)) mkdirSync(dir, { recursive: true }); const current = readPiSettings(); const next = { ...current, ...patch.provider !== void 0 && { defaultProvider: patch.provider }, ...patch.model !== void 0 && { defaultModel: patch.model } }; if (patch.thinking) next.defaultThinking = patch.thinking; writeFileSync(path, JSON.stringify(next, null, 2), "utf-8"); logger.debug(`[Pi] Saved defaults to ${path}: ${patch.provider ?? "(unchanged)"}/${patch.model ?? "(unchanged)"}${patch.thinking ? `/${patch.thinking}` : ""}`); } catch (err) { logger.debug(`[Pi] Failed to save defaults to ${path}:`, err); } } export { getInitialPiProviderAndModel, getPiAgentDir, readPiSettings, savePiDefaults };