UNPKG

consortium

Version:

Remote control and session sharing CLI for AI coding agents

109 lines (105 loc) • 3.29 kB
'use strict'; var fs = require('node:fs'); var path = require('node:path'); var os = require('node:os'); var persistence = require('./types-BYXHizYk.cjs'); var index = require('./index-BXjnng_s.cjs'); require('axios'); require('chalk'); require('fs'); require('node:events'); require('socket.io-client'); require('zod'); require('node:crypto'); require('tweetnacl'); require('node:module'); require('child_process'); require('util'); require('fs/promises'); require('os'); require('crypto'); require('path'); require('url'); require('node:child_process'); require('node:fs/promises'); require('node:util'); require('http'); require('net'); require('expo-server-sdk'); require('node:net'); require('node:readline'); require('ink'); require('react'); require('node:url'); require('node:http'); require('node:https'); require('node:stream/promises'); require('tar'); require('ps-list'); require('cross-spawn'); require('tmp'); require('qrcode-terminal'); require('open'); require('fastify'); require('fastify-type-provider-zod'); require('ws'); require('playwright-core'); require('imapflow'); require('mailparser'); require('yaml'); require('@modelcontextprotocol/sdk/client/index.js'); require('@modelcontextprotocol/sdk/client/streamableHttp.js'); require('readline'); require('@modelcontextprotocol/sdk/server/mcp.js'); require('@modelcontextprotocol/sdk/server/streamableHttp.js'); require('libsodium-wrappers'); require('pixelmatch'); require('pngjs'); function getPiAgentDir() { const envDir = process.env[index.PI_CODING_AGENT_DIR_ENV]; if (envDir && envDir.trim().length > 0) return envDir; return path.join(os.homedir(), ".pi", "agent"); } function getSettingsPath() { return path.join(getPiAgentDir(), "settings.json"); } function readPiSettings() { const path = getSettingsPath(); if (!fs.existsSync(path)) return {}; try { return JSON.parse(fs.readFileSync(path, "utf-8")); } catch (err) { persistence.logger.debug(`[Pi] Failed to parse settings at ${path}:`, err); return {}; } } function getInitialPiProviderAndModel() { const settings = readPiSettings(); return { provider: settings.defaultProvider ?? index.getDefaultPiProvider(), model: settings.defaultModel ?? index.DEFAULT_PI_MODEL, thinking: settings.defaultThinking }; } function savePiDefaults(patch) { const dir = getPiAgentDir(); const path = getSettingsPath(); try { if (!fs.existsSync(dir)) fs.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; fs.writeFileSync(path, JSON.stringify(next, null, 2), "utf-8"); persistence.logger.debug(`[Pi] Saved defaults to ${path}: ${patch.provider ?? "(unchanged)"}/${patch.model ?? "(unchanged)"}${patch.thinking ? `/${patch.thinking}` : ""}`); } catch (err) { persistence.logger.debug(`[Pi] Failed to save defaults to ${path}:`, err); } } exports.getInitialPiProviderAndModel = getInitialPiProviderAndModel; exports.getPiAgentDir = getPiAgentDir; exports.readPiSettings = readPiSettings; exports.savePiDefaults = savePiDefaults;