@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 +26 -6
- package/dist/bin/exe-agent-config.js +1 -1
- package/dist/bin/exe-call.js +1 -1
- package/dist/bin/exe-new-employee.js +23 -4
- package/dist/bin/exe-settings.js +1 -1
- package/dist/bin/install.js +23 -4
- package/dist/bin/update.js +3 -2
- package/dist/hooks/prompt-submit.js +1 -1
- package/dist/lib/agent-config.js +1 -1
- package/dist/lib/exe-daemon.js +1 -1
- package/dist/mcp/server.js +657 -209
- package/package.json +1 -1
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(
|
|
1328
|
-
|
|
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
|
-
|
|
1351
|
+
writeFileSync3(configPath, `${markedSection}
|
|
1352
|
+
|
|
1353
|
+
${existing}`);
|
|
1336
1354
|
}
|
|
1337
1355
|
} else {
|
|
1338
|
-
|
|
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", "
|
|
13561
|
-
timeout:
|
|
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 = {
|
package/dist/bin/exe-call.js
CHANGED
|
@@ -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(
|
|
1741
|
-
|
|
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
|
-
|
|
1764
|
+
writeFileSync6(configPath, `${markedSection}
|
|
1765
|
+
|
|
1766
|
+
${existing}`);
|
|
1749
1767
|
}
|
|
1750
1768
|
} else {
|
|
1751
|
-
|
|
1769
|
+
writeFileSync6(configPath, `${markedSection}
|
|
1770
|
+
`);
|
|
1752
1771
|
}
|
|
1753
1772
|
process.stderr.write("exe-os: Ghostty config installed\n");
|
|
1754
1773
|
}
|
package/dist/bin/exe-settings.js
CHANGED
|
@@ -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 = {
|
package/dist/bin/install.js
CHANGED
|
@@ -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(
|
|
1129
|
-
|
|
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
|
-
|
|
1152
|
+
writeFileSync3(configPath, `${markedSection}
|
|
1153
|
+
|
|
1154
|
+
${existing}`);
|
|
1137
1155
|
}
|
|
1138
1156
|
} else {
|
|
1139
|
-
|
|
1157
|
+
writeFileSync3(configPath, `${markedSection}
|
|
1158
|
+
`);
|
|
1140
1159
|
}
|
|
1141
1160
|
process.stderr.write("exe-os: Ghostty config installed\n");
|
|
1142
1161
|
}
|
package/dist/bin/update.js
CHANGED
|
@@ -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", "
|
|
602
|
-
timeout:
|
|
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 = {
|
package/dist/lib/agent-config.js
CHANGED
|
@@ -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 = {
|
package/dist/lib/exe-daemon.js
CHANGED
|
@@ -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 = {
|