consortium
Version:
Remote control and session sharing CLI for AI coding agents
78 lines (74 loc) • 2.49 kB
JavaScript
;
var fs = require('node:fs');
var path = require('node:path');
var os = require('node:os');
var persistence = require('./types-B_i6lpTn.cjs');
var constants = require('./constants-E1WsKKcj.cjs');
require('axios');
require('chalk');
require('fs');
require('node:events');
require('socket.io-client');
require('zod');
require('node:crypto');
require('tweetnacl');
require('child_process');
require('util');
require('fs/promises');
require('crypto');
require('path');
require('url');
require('os');
require('node:child_process');
require('node:fs/promises');
require('node:module');
require('node:util');
require('expo-server-sdk');
function getPiAgentDir() {
const envDir = process.env[constants.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 ?? constants.getDefaultPiProvider(),
model: settings.defaultModel ?? constants.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;