@askexenow/exe-os 0.9.1 → 0.9.3

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/bin/cli.js CHANGED
@@ -1322,20 +1322,39 @@ function setupGhostty(home) {
1322
1322
  const configPath = path5.join(configDir, "config");
1323
1323
  const backupPath = path5.join(configDir, "config.backup");
1324
1324
  mkdirSync3(configDir, { recursive: true });
1325
+ const START_MARKER = "# \u2500\u2500 exe-os:ghostty-start \u2500\u2500";
1326
+ const END_MARKER = "# \u2500\u2500 exe-os:ghostty-end \u2500\u2500";
1327
+ const assetContent = readFileSync4(assetPath, "utf8").trim();
1328
+ const markedSection = `${START_MARKER}
1329
+ ${assetContent}
1330
+ ${END_MARKER}`;
1325
1331
  if (existsSync5(configPath)) {
1326
1332
  const existing = readFileSync4(configPath, "utf8");
1327
- if (existing.includes("Exe OS")) {
1328
- copyFileSync(assetPath, configPath);
1333
+ if (existing.includes(START_MARKER) && existing.includes(END_MARKER)) {
1334
+ const before = existing.slice(0, existing.indexOf(START_MARKER));
1335
+ const after = existing.slice(existing.indexOf(END_MARKER) + END_MARKER.length);
1336
+ writeFileSync3(configPath, `${before}${markedSection}${after}`);
1337
+ } else if (existing.includes("Exe OS")) {
1338
+ if (!existsSync5(backupPath)) {
1339
+ copyFileSync(configPath, backupPath);
1340
+ process.stderr.write(`exe-os: backed up existing Ghostty config to ${backupPath}
1341
+ `);
1342
+ }
1343
+ writeFileSync3(configPath, `${markedSection}
1344
+ `);
1329
1345
  } else {
1330
1346
  if (!existsSync5(backupPath)) {
1331
1347
  copyFileSync(configPath, backupPath);
1332
1348
  process.stderr.write(`exe-os: backed up existing Ghostty config to ${backupPath}
1333
1349
  `);
1334
1350
  }
1335
- copyFileSync(assetPath, configPath);
1351
+ writeFileSync3(configPath, `${markedSection}
1352
+
1353
+ ${existing}`);
1336
1354
  }
1337
1355
  } else {
1338
- copyFileSync(assetPath, configPath);
1356
+ writeFileSync3(configPath, `${markedSection}
1357
+ `);
1339
1358
  }
1340
1359
  process.stderr.write("exe-os: Ghostty config installed\n");
1341
1360
  }
@@ -13555,10 +13574,11 @@ async function runUpdate(cliArgs) {
13555
13574
  console.log(" Skipped (non-critical)");
13556
13575
  }
13557
13576
  console.log("\u{1F4E5} Installing @askexenow/exe-os@latest...");
13577
+ console.log(" This may take a minute...\n");
13558
13578
  try {
13559
13579
  execSync12("npm install -g @askexenow/exe-os@latest", {
13560
- stdio: ["pipe", "pipe", "pipe"],
13561
- timeout: 12e4
13580
+ stdio: ["pipe", "pipe", "inherit"],
13581
+ timeout: 3e5
13562
13582
  });
13563
13583
  } catch (err) {
13564
13584
  console.error("\n\u274C Update failed.");
@@ -114,7 +114,7 @@ var DEFAULT_RUNTIME = "claude";
114
114
  var AGENT_CONFIG_PATH = path2.join(EXE_AI_DIR, "agent-config.json");
115
115
  var KNOWN_RUNTIMES = {
116
116
  claude: ["claude-opus-4", "claude-sonnet-4", "claude-haiku-4.5"],
117
- codex: ["gpt-5.4", "gpt-5.5", "o3", "o4-mini"],
117
+ codex: ["gpt-5.4", "gpt-5.5", "gpt-5.3-codex-spark", "o3", "o4-mini"],
118
118
  opencode: ["anthropic/claude-sonnet-4-6", "openai/gpt-5.4", "google/gemini-2.5-pro", "deepseek/deepseek-r3", "minimax/minimax-m2.5"]
119
119
  };
120
120
  var DEFAULT_MODELS = {
@@ -1178,7 +1178,7 @@ var init_agent_config = __esm({
1178
1178
  AGENT_CONFIG_PATH = path3.join(EXE_AI_DIR, "agent-config.json");
1179
1179
  KNOWN_RUNTIMES = {
1180
1180
  claude: ["claude-opus-4", "claude-sonnet-4", "claude-haiku-4.5"],
1181
- codex: ["gpt-5.4", "gpt-5.5", "o3", "o4-mini"],
1181
+ codex: ["gpt-5.4", "gpt-5.5", "gpt-5.3-codex-spark", "o3", "o4-mini"],
1182
1182
  opencode: ["anthropic/claude-sonnet-4-6", "openai/gpt-5.4", "google/gemini-2.5-pro", "deepseek/deepseek-r3", "minimax/minimax-m2.5"]
1183
1183
  };
1184
1184
  RUNTIME_LABELS = {
@@ -1735,20 +1735,39 @@ function setupGhostty(home) {
1735
1735
  const configPath = path9.join(configDir, "config");
1736
1736
  const backupPath = path9.join(configDir, "config.backup");
1737
1737
  mkdirSync6(configDir, { recursive: true });
1738
+ const START_MARKER = "# \u2500\u2500 exe-os:ghostty-start \u2500\u2500";
1739
+ const END_MARKER = "# \u2500\u2500 exe-os:ghostty-end \u2500\u2500";
1740
+ const assetContent = readFileSync8(assetPath, "utf8").trim();
1741
+ const markedSection = `${START_MARKER}
1742
+ ${assetContent}
1743
+ ${END_MARKER}`;
1738
1744
  if (existsSync9(configPath)) {
1739
1745
  const existing = readFileSync8(configPath, "utf8");
1740
- if (existing.includes("Exe OS")) {
1741
- copyFileSync(assetPath, configPath);
1746
+ if (existing.includes(START_MARKER) && existing.includes(END_MARKER)) {
1747
+ const before = existing.slice(0, existing.indexOf(START_MARKER));
1748
+ const after = existing.slice(existing.indexOf(END_MARKER) + END_MARKER.length);
1749
+ writeFileSync6(configPath, `${before}${markedSection}${after}`);
1750
+ } else if (existing.includes("Exe OS")) {
1751
+ if (!existsSync9(backupPath)) {
1752
+ copyFileSync(configPath, backupPath);
1753
+ process.stderr.write(`exe-os: backed up existing Ghostty config to ${backupPath}
1754
+ `);
1755
+ }
1756
+ writeFileSync6(configPath, `${markedSection}
1757
+ `);
1742
1758
  } else {
1743
1759
  if (!existsSync9(backupPath)) {
1744
1760
  copyFileSync(configPath, backupPath);
1745
1761
  process.stderr.write(`exe-os: backed up existing Ghostty config to ${backupPath}
1746
1762
  `);
1747
1763
  }
1748
- copyFileSync(assetPath, configPath);
1764
+ writeFileSync6(configPath, `${markedSection}
1765
+
1766
+ ${existing}`);
1749
1767
  }
1750
1768
  } else {
1751
- copyFileSync(assetPath, configPath);
1769
+ writeFileSync6(configPath, `${markedSection}
1770
+ `);
1752
1771
  }
1753
1772
  process.stderr.write("exe-os: Ghostty config installed\n");
1754
1773
  }
@@ -342,7 +342,7 @@ var DEFAULT_RUNTIME = "claude";
342
342
  var AGENT_CONFIG_PATH = path6.join(EXE_AI_DIR, "agent-config.json");
343
343
  var KNOWN_RUNTIMES = {
344
344
  claude: ["claude-opus-4", "claude-sonnet-4", "claude-haiku-4.5"],
345
- codex: ["gpt-5.4", "gpt-5.5", "o3", "o4-mini"],
345
+ codex: ["gpt-5.4", "gpt-5.5", "gpt-5.3-codex-spark", "o3", "o4-mini"],
346
346
  opencode: ["anthropic/claude-sonnet-4-6", "openai/gpt-5.4", "google/gemini-2.5-pro", "deepseek/deepseek-r3", "minimax/minimax-m2.5"]
347
347
  };
348
348
  var RUNTIME_LABELS = {
@@ -1123,20 +1123,39 @@ function setupGhostty(home) {
1123
1123
  const configPath = path5.join(configDir, "config");
1124
1124
  const backupPath = path5.join(configDir, "config.backup");
1125
1125
  mkdirSync3(configDir, { recursive: true });
1126
+ const START_MARKER = "# \u2500\u2500 exe-os:ghostty-start \u2500\u2500";
1127
+ const END_MARKER = "# \u2500\u2500 exe-os:ghostty-end \u2500\u2500";
1128
+ const assetContent = readFileSync4(assetPath, "utf8").trim();
1129
+ const markedSection = `${START_MARKER}
1130
+ ${assetContent}
1131
+ ${END_MARKER}`;
1126
1132
  if (existsSync5(configPath)) {
1127
1133
  const existing = readFileSync4(configPath, "utf8");
1128
- if (existing.includes("Exe OS")) {
1129
- copyFileSync(assetPath, configPath);
1134
+ if (existing.includes(START_MARKER) && existing.includes(END_MARKER)) {
1135
+ const before = existing.slice(0, existing.indexOf(START_MARKER));
1136
+ const after = existing.slice(existing.indexOf(END_MARKER) + END_MARKER.length);
1137
+ writeFileSync3(configPath, `${before}${markedSection}${after}`);
1138
+ } else if (existing.includes("Exe OS")) {
1139
+ if (!existsSync5(backupPath)) {
1140
+ copyFileSync(configPath, backupPath);
1141
+ process.stderr.write(`exe-os: backed up existing Ghostty config to ${backupPath}
1142
+ `);
1143
+ }
1144
+ writeFileSync3(configPath, `${markedSection}
1145
+ `);
1130
1146
  } else {
1131
1147
  if (!existsSync5(backupPath)) {
1132
1148
  copyFileSync(configPath, backupPath);
1133
1149
  process.stderr.write(`exe-os: backed up existing Ghostty config to ${backupPath}
1134
1150
  `);
1135
1151
  }
1136
- copyFileSync(assetPath, configPath);
1152
+ writeFileSync3(configPath, `${markedSection}
1153
+
1154
+ ${existing}`);
1137
1155
  }
1138
1156
  } else {
1139
- copyFileSync(assetPath, configPath);
1157
+ writeFileSync3(configPath, `${markedSection}
1158
+ `);
1140
1159
  }
1141
1160
  process.stderr.write("exe-os: Ghostty config installed\n");
1142
1161
  }
@@ -596,10 +596,11 @@ async function runUpdate(cliArgs) {
596
596
  console.log(" Skipped (non-critical)");
597
597
  }
598
598
  console.log("\u{1F4E5} Installing @askexenow/exe-os@latest...");
599
+ console.log(" This may take a minute...\n");
599
600
  try {
600
601
  execSync2("npm install -g @askexenow/exe-os@latest", {
601
- stdio: ["pipe", "pipe", "pipe"],
602
- timeout: 12e4
602
+ stdio: ["pipe", "pipe", "inherit"],
603
+ timeout: 3e5
603
604
  });
604
605
  } catch (err) {
605
606
  console.error("\n\u274C Update failed.");
@@ -4513,7 +4513,7 @@ var init_agent_config = __esm({
4513
4513
  AGENT_CONFIG_PATH = path11.join(EXE_AI_DIR, "agent-config.json");
4514
4514
  KNOWN_RUNTIMES = {
4515
4515
  claude: ["claude-opus-4", "claude-sonnet-4", "claude-haiku-4.5"],
4516
- codex: ["gpt-5.4", "gpt-5.5", "o3", "o4-mini"],
4516
+ codex: ["gpt-5.4", "gpt-5.5", "gpt-5.3-codex-spark", "o3", "o4-mini"],
4517
4517
  opencode: ["anthropic/claude-sonnet-4-6", "openai/gpt-5.4", "google/gemini-2.5-pro", "deepseek/deepseek-r3", "minimax/minimax-m2.5"]
4518
4518
  };
4519
4519
  RUNTIME_LABELS = {
@@ -112,7 +112,7 @@ var DEFAULT_RUNTIME = "claude";
112
112
  var AGENT_CONFIG_PATH = path2.join(EXE_AI_DIR, "agent-config.json");
113
113
  var KNOWN_RUNTIMES = {
114
114
  claude: ["claude-opus-4", "claude-sonnet-4", "claude-haiku-4.5"],
115
- codex: ["gpt-5.4", "gpt-5.5", "o3", "o4-mini"],
115
+ codex: ["gpt-5.4", "gpt-5.5", "gpt-5.3-codex-spark", "o3", "o4-mini"],
116
116
  opencode: ["anthropic/claude-sonnet-4-6", "openai/gpt-5.4", "google/gemini-2.5-pro", "deepseek/deepseek-r3", "minimax/minimax-m2.5"]
117
117
  };
118
118
  var RUNTIME_LABELS = {
@@ -773,7 +773,7 @@ var init_agent_config = __esm({
773
773
  AGENT_CONFIG_PATH = path3.join(EXE_AI_DIR, "agent-config.json");
774
774
  KNOWN_RUNTIMES = {
775
775
  claude: ["claude-opus-4", "claude-sonnet-4", "claude-haiku-4.5"],
776
- codex: ["gpt-5.4", "gpt-5.5", "o3", "o4-mini"],
776
+ codex: ["gpt-5.4", "gpt-5.5", "gpt-5.3-codex-spark", "o3", "o4-mini"],
777
777
  opencode: ["anthropic/claude-sonnet-4-6", "openai/gpt-5.4", "google/gemini-2.5-pro", "deepseek/deepseek-r3", "minimax/minimax-m2.5"]
778
778
  };
779
779
  RUNTIME_LABELS = {