@episoda/cli 0.2.200 → 0.2.202
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/daemon/daemon-process.js +22 -5
- package/dist/daemon/daemon-process.js.map +1 -1
- package/dist/index.js +22 -5
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -3051,7 +3051,7 @@ var require_package = __commonJS({
|
|
|
3051
3051
|
"package.json"(exports2, module2) {
|
|
3052
3052
|
module2.exports = {
|
|
3053
3053
|
name: "@episoda/cli",
|
|
3054
|
-
version: "0.2.
|
|
3054
|
+
version: "0.2.202",
|
|
3055
3055
|
description: "CLI tool for Episoda local development workflow orchestration",
|
|
3056
3056
|
main: "dist/index.js",
|
|
3057
3057
|
types: "dist/index.d.ts",
|
|
@@ -4709,6 +4709,7 @@ async function ensureCodexBinary() {
|
|
|
4709
4709
|
}
|
|
4710
4710
|
|
|
4711
4711
|
// src/agent/providers/codex-config.ts
|
|
4712
|
+
var DEFAULT_CODEX_MODEL = "gpt-5.4-codex-high";
|
|
4712
4713
|
function generateCodexAuthJson(credentials) {
|
|
4713
4714
|
if (!credentials.refreshToken) {
|
|
4714
4715
|
throw new Error(
|
|
@@ -4735,7 +4736,9 @@ function generateCodexAuthJson(credentials) {
|
|
|
4735
4736
|
}
|
|
4736
4737
|
function generateCodexConfigToml(projectPath) {
|
|
4737
4738
|
const escapedPath = projectPath.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
|
|
4738
|
-
return `
|
|
4739
|
+
return `model = "${DEFAULT_CODEX_MODEL}"
|
|
4740
|
+
|
|
4741
|
+
[projects."${escapedPath}"]
|
|
4739
4742
|
trust_level = "trusted"
|
|
4740
4743
|
`;
|
|
4741
4744
|
}
|
|
@@ -4752,7 +4755,7 @@ function escapeTomlString(value) {
|
|
|
4752
4755
|
return value.replace(/\\/g, "\\\\").replace(/"/g, '\\"').replace(/\n/g, "\\n").replace(/\r/g, "\\r").replace(/\t/g, "\\t");
|
|
4753
4756
|
}
|
|
4754
4757
|
function generateCodexMcpConfigToml(servers, projectPath) {
|
|
4755
|
-
const lines = [];
|
|
4758
|
+
const lines = [`model = "${DEFAULT_CODEX_MODEL}"`, ""];
|
|
4756
4759
|
if (projectPath) {
|
|
4757
4760
|
const escapedPath = escapeTomlString(projectPath);
|
|
4758
4761
|
lines.push(`[projects."${escapedPath}"]`);
|
|
@@ -7088,6 +7091,7 @@ var CodexProvider = class {
|
|
|
7088
7091
|
args.push("--sandbox", "read-only");
|
|
7089
7092
|
console.log("[CodexProvider] EP1205: Codex read-only mode - using --sandbox read-only");
|
|
7090
7093
|
}
|
|
7094
|
+
args.push("--model", session.credentials.preferredModel || DEFAULT_CODEX_MODEL);
|
|
7091
7095
|
if (resumeSessionId) {
|
|
7092
7096
|
args.push("resume", resumeSessionId);
|
|
7093
7097
|
}
|
|
@@ -15382,6 +15386,9 @@ async function configureGitUser(projectPath, userId, workspaceId, machineId, pro
|
|
|
15382
15386
|
const { execSync: execSync11 } = await import("child_process");
|
|
15383
15387
|
const { gitDir, workDir } = getGitDirs(projectPath);
|
|
15384
15388
|
const gitCmd = gitDir ? `git --git-dir="${gitDir}"` : "git";
|
|
15389
|
+
const gitEmailDomain = process.env.EPISODA_AGENT_GIT_EMAIL_DOMAIN || "users.episoda.dev";
|
|
15390
|
+
const gitIdentityName = `Episoda ${userId}`;
|
|
15391
|
+
const gitIdentityEmail = `${userId}@${gitEmailDomain}`;
|
|
15385
15392
|
execSync11(`${gitCmd} config episoda.userId ${userId}`, {
|
|
15386
15393
|
cwd: workDir,
|
|
15387
15394
|
encoding: "utf8",
|
|
@@ -15409,7 +15416,17 @@ async function configureGitUser(projectPath, userId, workspaceId, machineId, pro
|
|
|
15409
15416
|
stdio: "pipe"
|
|
15410
15417
|
});
|
|
15411
15418
|
}
|
|
15412
|
-
|
|
15419
|
+
execSync11(`${gitCmd} config user.name "${gitIdentityName.replace(/"/g, '\\"')}"`, {
|
|
15420
|
+
cwd: workDir,
|
|
15421
|
+
encoding: "utf8",
|
|
15422
|
+
stdio: "pipe"
|
|
15423
|
+
});
|
|
15424
|
+
execSync11(`${gitCmd} config user.email ${gitIdentityEmail}`, {
|
|
15425
|
+
cwd: workDir,
|
|
15426
|
+
encoding: "utf8",
|
|
15427
|
+
stdio: "pipe"
|
|
15428
|
+
});
|
|
15429
|
+
console.log(`[Daemon] Configured git for project: episoda.userId=${userId}, machineId=${machineId}, projectId=${projectId}, gitIdentity=${gitIdentityEmail}${machineUuid ? `, machineUuid=${machineUuid}` : ""}`);
|
|
15413
15430
|
} catch (error) {
|
|
15414
15431
|
console.warn(`[Daemon] Failed to configure git user for ${projectPath}:`, error instanceof Error ? error.message : error);
|
|
15415
15432
|
}
|
|
@@ -16484,7 +16501,7 @@ var Daemon = class _Daemon {
|
|
|
16484
16501
|
const modeConfig = getDaemonModeConfig();
|
|
16485
16502
|
const environment = modeConfig.mode;
|
|
16486
16503
|
const containerId = process.env.EPISODA_CONTAINER_ID;
|
|
16487
|
-
const capabilities = ["worktree_create_v1"];
|
|
16504
|
+
const capabilities = ["worktree_create_v1", "pty_v1"];
|
|
16488
16505
|
await client.connect(wsEndpoint.wsUrl, config.access_token, this.machineId, {
|
|
16489
16506
|
hostname: os16.hostname(),
|
|
16490
16507
|
osPlatform: os16.platform(),
|