@askexenow/exe-os 0.8.10 → 0.8.12
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 +8 -7
- package/dist/bin/exe-agent.js +1 -1
- package/dist/bin/exe-assign.js +1 -1
- package/dist/bin/exe-call.js +5 -4
- package/dist/bin/exe-launch-agent.js +1 -1
- package/dist/bin/exe-new-employee.js +4 -3
- package/dist/bin/exe-review.js +1 -1
- package/dist/bin/exe-session-cleanup.js +1 -1
- package/dist/bin/setup.js +8 -7
- package/dist/hooks/prompt-submit.js +1 -1
- package/dist/lib/employees.js +5 -4
- package/dist/lib/exe-daemon.js +1 -1
- package/dist/mcp/server.js +4 -3
- package/dist/tui/App.js +5 -4
- package/package.json +1 -1
package/dist/bin/cli.js
CHANGED
|
@@ -315,13 +315,14 @@ async function saveEmployees(employees, employeesPath = EMPLOYEES_PATH) {
|
|
|
315
315
|
await writeFile2(employeesPath, JSON.stringify(employees, null, 2) + "\n", "utf-8");
|
|
316
316
|
}
|
|
317
317
|
function getEmployee(employees, name) {
|
|
318
|
-
return employees.find((e) => e.name === name);
|
|
318
|
+
return employees.find((e) => e.name.toLowerCase() === name.toLowerCase());
|
|
319
319
|
}
|
|
320
320
|
function addEmployee(employees, employee) {
|
|
321
|
-
|
|
322
|
-
|
|
321
|
+
const normalized = { ...employee, name: employee.name.toLowerCase() };
|
|
322
|
+
if (employees.some((e) => e.name.toLowerCase() === normalized.name)) {
|
|
323
|
+
throw new Error(`Employee '${normalized.name}' already exists`);
|
|
323
324
|
}
|
|
324
|
-
return [...employees,
|
|
325
|
+
return [...employees, normalized];
|
|
325
326
|
}
|
|
326
327
|
function registerBinSymlinks(name) {
|
|
327
328
|
const created = [];
|
|
@@ -5020,7 +5021,7 @@ async function runSetupWizard(opts = {}) {
|
|
|
5020
5021
|
log("You talk to them. They coordinate everyone else.");
|
|
5021
5022
|
log("");
|
|
5022
5023
|
const cooNameInput = await ask(rl, "Name your COO (default: exe): ");
|
|
5023
|
-
const cooName = cooNameInput || "exe";
|
|
5024
|
+
const cooName = (cooNameInput || "exe").toLowerCase();
|
|
5024
5025
|
let employees = await loadEmployees2(EMPLOYEES_PATH2).catch(() => []);
|
|
5025
5026
|
if (!employees.some((e) => e.name === cooName)) {
|
|
5026
5027
|
const { DEFAULT_EXE: DEFAULT_EXE2 } = await Promise.resolve().then(() => (init_employee_templates(), employee_templates_exports));
|
|
@@ -5106,7 +5107,7 @@ async function runSetupWizard(opts = {}) {
|
|
|
5106
5107
|
const createCto = await ask(rl, "Create your CTO? (Y/n): ");
|
|
5107
5108
|
if (createCto.toLowerCase() !== "n") {
|
|
5108
5109
|
const ctoNameInput = await ask(rl, "Name your CTO (default: yoshi): ");
|
|
5109
|
-
const ctoName = ctoNameInput || "yoshi";
|
|
5110
|
+
const ctoName = (ctoNameInput || "yoshi").toLowerCase();
|
|
5110
5111
|
if (!employees.some((e) => e.name === ctoName)) {
|
|
5111
5112
|
const ctoTemplate = getEmployeeTemplate("yoshi");
|
|
5112
5113
|
const ctoEmployee = {
|
|
@@ -5132,7 +5133,7 @@ async function runSetupWizard(opts = {}) {
|
|
|
5132
5133
|
const createCmo = await ask(rl, "Create your CMO? (Y/n): ");
|
|
5133
5134
|
if (createCmo.toLowerCase() !== "n") {
|
|
5134
5135
|
const cmoNameInput = await ask(rl, "Name your CMO (default: mari): ");
|
|
5135
|
-
const cmoName = cmoNameInput || "mari";
|
|
5136
|
+
const cmoName = (cmoNameInput || "mari").toLowerCase();
|
|
5136
5137
|
if (!employees.some((e) => e.name === cmoName)) {
|
|
5137
5138
|
const cmoTemplate = getEmployeeTemplate("mari");
|
|
5138
5139
|
const cmoEmployee = {
|
package/dist/bin/exe-agent.js
CHANGED
|
@@ -1910,7 +1910,7 @@ function loadEmployee(name) {
|
|
|
1910
1910
|
try {
|
|
1911
1911
|
const rosterPath = path7.join(os2.homedir(), ".exe-os", "exe-employees.json");
|
|
1912
1912
|
const roster = JSON.parse(readFileSync(rosterPath, "utf8"));
|
|
1913
|
-
return roster.find((e) => e.name === name) ?? null;
|
|
1913
|
+
return roster.find((e) => e.name.toLowerCase() === name.toLowerCase()) ?? null;
|
|
1914
1914
|
} catch {
|
|
1915
1915
|
return null;
|
|
1916
1916
|
}
|
package/dist/bin/exe-assign.js
CHANGED
|
@@ -465,7 +465,7 @@ async function loadEmployees(employeesPath = EMPLOYEES_PATH) {
|
|
|
465
465
|
}
|
|
466
466
|
}
|
|
467
467
|
function getEmployee(employees, name) {
|
|
468
|
-
return employees.find((e) => e.name === name);
|
|
468
|
+
return employees.find((e) => e.name.toLowerCase() === name.toLowerCase());
|
|
469
469
|
}
|
|
470
470
|
|
|
471
471
|
// src/lib/task-router.ts
|
package/dist/bin/exe-call.js
CHANGED
|
@@ -152,13 +152,14 @@ async function saveEmployees(employees, employeesPath = EMPLOYEES_PATH) {
|
|
|
152
152
|
await writeFile2(employeesPath, JSON.stringify(employees, null, 2) + "\n", "utf-8");
|
|
153
153
|
}
|
|
154
154
|
function getEmployee(employees, name) {
|
|
155
|
-
return employees.find((e) => e.name === name);
|
|
155
|
+
return employees.find((e) => e.name.toLowerCase() === name.toLowerCase());
|
|
156
156
|
}
|
|
157
157
|
function addEmployee(employees, employee) {
|
|
158
|
-
|
|
159
|
-
|
|
158
|
+
const normalized = { ...employee, name: employee.name.toLowerCase() };
|
|
159
|
+
if (employees.some((e) => e.name.toLowerCase() === normalized.name)) {
|
|
160
|
+
throw new Error(`Employee '${normalized.name}' already exists`);
|
|
160
161
|
}
|
|
161
|
-
return [...employees,
|
|
162
|
+
return [...employees, normalized];
|
|
162
163
|
}
|
|
163
164
|
function registerBinSymlinks(name) {
|
|
164
165
|
const created = [];
|
|
@@ -1695,7 +1695,7 @@ async function isKnownAgent(agent) {
|
|
|
1695
1695
|
if (BUILTIN_AGENTS.includes(agent)) return true;
|
|
1696
1696
|
try {
|
|
1697
1697
|
const employees = await loadEmployees();
|
|
1698
|
-
return employees.some((e) => e.name === agent);
|
|
1698
|
+
return employees.some((e) => e.name.toLowerCase() === agent.toLowerCase());
|
|
1699
1699
|
} catch {
|
|
1700
1700
|
return false;
|
|
1701
1701
|
}
|
|
@@ -748,10 +748,11 @@ async function saveEmployees(employees, employeesPath = EMPLOYEES_PATH) {
|
|
|
748
748
|
await writeFile2(employeesPath, JSON.stringify(employees, null, 2) + "\n", "utf-8");
|
|
749
749
|
}
|
|
750
750
|
function addEmployee(employees, employee) {
|
|
751
|
-
|
|
752
|
-
|
|
751
|
+
const normalized = { ...employee, name: employee.name.toLowerCase() };
|
|
752
|
+
if (employees.some((e) => e.name.toLowerCase() === normalized.name)) {
|
|
753
|
+
throw new Error(`Employee '${normalized.name}' already exists`);
|
|
753
754
|
}
|
|
754
|
-
return [...employees,
|
|
755
|
+
return [...employees, normalized];
|
|
755
756
|
}
|
|
756
757
|
function registerBinSymlinks(name) {
|
|
757
758
|
const created = [];
|
package/dist/bin/exe-review.js
CHANGED
|
@@ -468,7 +468,7 @@ async function loadEmployees(employeesPath = EMPLOYEES_PATH) {
|
|
|
468
468
|
}
|
|
469
469
|
}
|
|
470
470
|
function getEmployee(employees, name) {
|
|
471
|
-
return employees.find((e) => e.name === name);
|
|
471
|
+
return employees.find((e) => e.name.toLowerCase() === name.toLowerCase());
|
|
472
472
|
}
|
|
473
473
|
|
|
474
474
|
// src/types/memory.ts
|
|
@@ -1805,7 +1805,7 @@ async function loadEmployees(employeesPath = EMPLOYEES_PATH) {
|
|
|
1805
1805
|
}
|
|
1806
1806
|
}
|
|
1807
1807
|
function getEmployee(employees, name) {
|
|
1808
|
-
return employees.find((e) => e.name === name);
|
|
1808
|
+
return employees.find((e) => e.name.toLowerCase() === name.toLowerCase());
|
|
1809
1809
|
}
|
|
1810
1810
|
var EMPLOYEES_PATH;
|
|
1811
1811
|
var init_employees = __esm({
|
package/dist/bin/setup.js
CHANGED
|
@@ -1009,13 +1009,14 @@ async function saveEmployees(employees, employeesPath = EMPLOYEES_PATH) {
|
|
|
1009
1009
|
await writeFile3(employeesPath, JSON.stringify(employees, null, 2) + "\n", "utf-8");
|
|
1010
1010
|
}
|
|
1011
1011
|
function getEmployee(employees, name) {
|
|
1012
|
-
return employees.find((e) => e.name === name);
|
|
1012
|
+
return employees.find((e) => e.name.toLowerCase() === name.toLowerCase());
|
|
1013
1013
|
}
|
|
1014
1014
|
function addEmployee(employees, employee) {
|
|
1015
|
-
|
|
1016
|
-
|
|
1015
|
+
const normalized = { ...employee, name: employee.name.toLowerCase() };
|
|
1016
|
+
if (employees.some((e) => e.name.toLowerCase() === normalized.name)) {
|
|
1017
|
+
throw new Error(`Employee '${normalized.name}' already exists`);
|
|
1017
1018
|
}
|
|
1018
|
-
return [...employees,
|
|
1019
|
+
return [...employees, normalized];
|
|
1019
1020
|
}
|
|
1020
1021
|
function registerBinSymlinks(name) {
|
|
1021
1022
|
const created = [];
|
|
@@ -2521,7 +2522,7 @@ async function runSetupWizard(opts = {}) {
|
|
|
2521
2522
|
log("You talk to them. They coordinate everyone else.");
|
|
2522
2523
|
log("");
|
|
2523
2524
|
const cooNameInput = await ask(rl, "Name your COO (default: exe): ");
|
|
2524
|
-
const cooName = cooNameInput || "exe";
|
|
2525
|
+
const cooName = (cooNameInput || "exe").toLowerCase();
|
|
2525
2526
|
let employees = await loadEmployees2(EMPLOYEES_PATH2).catch(() => []);
|
|
2526
2527
|
if (!employees.some((e) => e.name === cooName)) {
|
|
2527
2528
|
const { DEFAULT_EXE: DEFAULT_EXE2 } = await Promise.resolve().then(() => (init_employee_templates(), employee_templates_exports));
|
|
@@ -2607,7 +2608,7 @@ async function runSetupWizard(opts = {}) {
|
|
|
2607
2608
|
const createCto = await ask(rl, "Create your CTO? (Y/n): ");
|
|
2608
2609
|
if (createCto.toLowerCase() !== "n") {
|
|
2609
2610
|
const ctoNameInput = await ask(rl, "Name your CTO (default: yoshi): ");
|
|
2610
|
-
const ctoName = ctoNameInput || "yoshi";
|
|
2611
|
+
const ctoName = (ctoNameInput || "yoshi").toLowerCase();
|
|
2611
2612
|
if (!employees.some((e) => e.name === ctoName)) {
|
|
2612
2613
|
const ctoTemplate = getEmployeeTemplate("yoshi");
|
|
2613
2614
|
const ctoEmployee = {
|
|
@@ -2633,7 +2634,7 @@ async function runSetupWizard(opts = {}) {
|
|
|
2633
2634
|
const createCmo = await ask(rl, "Create your CMO? (Y/n): ");
|
|
2634
2635
|
if (createCmo.toLowerCase() !== "n") {
|
|
2635
2636
|
const cmoNameInput = await ask(rl, "Name your CMO (default: mari): ");
|
|
2636
|
-
const cmoName = cmoNameInput || "mari";
|
|
2637
|
+
const cmoName = (cmoNameInput || "mari").toLowerCase();
|
|
2637
2638
|
if (!employees.some((e) => e.name === cmoName)) {
|
|
2638
2639
|
const cmoTemplate = getEmployeeTemplate("mari");
|
|
2639
2640
|
const cmoEmployee = {
|
|
@@ -3097,7 +3097,7 @@ async function loadEmployees(employeesPath = EMPLOYEES_PATH) {
|
|
|
3097
3097
|
}
|
|
3098
3098
|
}
|
|
3099
3099
|
function getEmployee(employees, name) {
|
|
3100
|
-
return employees.find((e) => e.name === name);
|
|
3100
|
+
return employees.find((e) => e.name.toLowerCase() === name.toLowerCase());
|
|
3101
3101
|
}
|
|
3102
3102
|
var EMPLOYEES_PATH;
|
|
3103
3103
|
var init_employees = __esm({
|
package/dist/lib/employees.js
CHANGED
|
@@ -128,13 +128,14 @@ async function saveEmployees(employees, employeesPath = EMPLOYEES_PATH) {
|
|
|
128
128
|
await writeFile2(employeesPath, JSON.stringify(employees, null, 2) + "\n", "utf-8");
|
|
129
129
|
}
|
|
130
130
|
function getEmployee(employees, name) {
|
|
131
|
-
return employees.find((e) => e.name === name);
|
|
131
|
+
return employees.find((e) => e.name.toLowerCase() === name.toLowerCase());
|
|
132
132
|
}
|
|
133
133
|
function addEmployee(employees, employee) {
|
|
134
|
-
|
|
135
|
-
|
|
134
|
+
const normalized = { ...employee, name: employee.name.toLowerCase() };
|
|
135
|
+
if (employees.some((e) => e.name.toLowerCase() === normalized.name)) {
|
|
136
|
+
throw new Error(`Employee '${normalized.name}' already exists`);
|
|
136
137
|
}
|
|
137
|
-
return [...employees,
|
|
138
|
+
return [...employees, normalized];
|
|
138
139
|
}
|
|
139
140
|
function registerBinSymlinks(name) {
|
|
140
141
|
const created = [];
|
package/dist/lib/exe-daemon.js
CHANGED
|
@@ -2358,7 +2358,7 @@ async function loadEmployees(employeesPath = EMPLOYEES_PATH) {
|
|
|
2358
2358
|
}
|
|
2359
2359
|
}
|
|
2360
2360
|
function getEmployee(employees, name) {
|
|
2361
|
-
return employees.find((e) => e.name === name);
|
|
2361
|
+
return employees.find((e) => e.name.toLowerCase() === name.toLowerCase());
|
|
2362
2362
|
}
|
|
2363
2363
|
var EMPLOYEES_PATH;
|
|
2364
2364
|
var init_employees = __esm({
|
package/dist/mcp/server.js
CHANGED
|
@@ -2910,10 +2910,11 @@ async function saveEmployees(employees, employeesPath = EMPLOYEES_PATH) {
|
|
|
2910
2910
|
await writeFile3(employeesPath, JSON.stringify(employees, null, 2) + "\n", "utf-8");
|
|
2911
2911
|
}
|
|
2912
2912
|
function addEmployee(employees, employee) {
|
|
2913
|
-
|
|
2914
|
-
|
|
2913
|
+
const normalized = { ...employee, name: employee.name.toLowerCase() };
|
|
2914
|
+
if (employees.some((e) => e.name.toLowerCase() === normalized.name)) {
|
|
2915
|
+
throw new Error(`Employee '${normalized.name}' already exists`);
|
|
2915
2916
|
}
|
|
2916
|
-
return [...employees,
|
|
2917
|
+
return [...employees, normalized];
|
|
2917
2918
|
}
|
|
2918
2919
|
var EMPLOYEES_PATH;
|
|
2919
2920
|
var init_employees = __esm({
|
package/dist/tui/App.js
CHANGED
|
@@ -3795,13 +3795,14 @@ async function saveEmployees(employees, employeesPath = EMPLOYEES_PATH) {
|
|
|
3795
3795
|
await writeFile2(employeesPath, JSON.stringify(employees, null, 2) + "\n", "utf-8");
|
|
3796
3796
|
}
|
|
3797
3797
|
function getEmployee(employees, name) {
|
|
3798
|
-
return employees.find((e) => e.name === name);
|
|
3798
|
+
return employees.find((e) => e.name.toLowerCase() === name.toLowerCase());
|
|
3799
3799
|
}
|
|
3800
3800
|
function addEmployee(employees, employee) {
|
|
3801
|
-
|
|
3802
|
-
|
|
3801
|
+
const normalized = { ...employee, name: employee.name.toLowerCase() };
|
|
3802
|
+
if (employees.some((e) => e.name.toLowerCase() === normalized.name)) {
|
|
3803
|
+
throw new Error(`Employee '${normalized.name}' already exists`);
|
|
3803
3804
|
}
|
|
3804
|
-
return [...employees,
|
|
3805
|
+
return [...employees, normalized];
|
|
3805
3806
|
}
|
|
3806
3807
|
function registerBinSymlinks(name) {
|
|
3807
3808
|
const created = [];
|
package/package.json
CHANGED