@askexenow/exe-os 0.8.11 → 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 CHANGED
@@ -318,10 +318,11 @@ function getEmployee(employees, name) {
318
318
  return employees.find((e) => e.name.toLowerCase() === name.toLowerCase());
319
319
  }
320
320
  function addEmployee(employees, employee) {
321
- if (employees.some((e) => e.name === employee.name)) {
322
- throw new Error(`Employee '${employee.name}' already exists`);
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, employee];
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 = {
@@ -155,10 +155,11 @@ function getEmployee(employees, name) {
155
155
  return employees.find((e) => e.name.toLowerCase() === name.toLowerCase());
156
156
  }
157
157
  function addEmployee(employees, employee) {
158
- if (employees.some((e) => e.name === employee.name)) {
159
- throw new Error(`Employee '${employee.name}' already exists`);
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, employee];
162
+ return [...employees, normalized];
162
163
  }
163
164
  function registerBinSymlinks(name) {
164
165
  const created = [];
@@ -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
- if (employees.some((e) => e.name === employee.name)) {
752
- throw new Error(`Employee '${employee.name}' already exists`);
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, employee];
755
+ return [...employees, normalized];
755
756
  }
756
757
  function registerBinSymlinks(name) {
757
758
  const created = [];
package/dist/bin/setup.js CHANGED
@@ -1012,10 +1012,11 @@ function getEmployee(employees, name) {
1012
1012
  return employees.find((e) => e.name.toLowerCase() === name.toLowerCase());
1013
1013
  }
1014
1014
  function addEmployee(employees, employee) {
1015
- if (employees.some((e) => e.name === employee.name)) {
1016
- throw new Error(`Employee '${employee.name}' already exists`);
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, employee];
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 = {
@@ -131,10 +131,11 @@ function getEmployee(employees, name) {
131
131
  return employees.find((e) => e.name.toLowerCase() === name.toLowerCase());
132
132
  }
133
133
  function addEmployee(employees, employee) {
134
- if (employees.some((e) => e.name === employee.name)) {
135
- throw new Error(`Employee '${employee.name}' already exists`);
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, employee];
138
+ return [...employees, normalized];
138
139
  }
139
140
  function registerBinSymlinks(name) {
140
141
  const created = [];
@@ -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
- if (employees.some((e) => e.name === employee.name)) {
2914
- throw new Error(`Employee '${employee.name}' already exists`);
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, employee];
2917
+ return [...employees, normalized];
2917
2918
  }
2918
2919
  var EMPLOYEES_PATH;
2919
2920
  var init_employees = __esm({
package/dist/tui/App.js CHANGED
@@ -3798,10 +3798,11 @@ function getEmployee(employees, name) {
3798
3798
  return employees.find((e) => e.name.toLowerCase() === name.toLowerCase());
3799
3799
  }
3800
3800
  function addEmployee(employees, employee) {
3801
- if (employees.some((e) => e.name === employee.name)) {
3802
- throw new Error(`Employee '${employee.name}' already exists`);
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, employee];
3805
+ return [...employees, normalized];
3805
3806
  }
3806
3807
  function registerBinSymlinks(name) {
3807
3808
  const created = [];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@askexenow/exe-os",
3
- "version": "0.8.11",
3
+ "version": "0.8.12",
4
4
  "description": "AI employee operating system — persistent memory, task management, and multi-agent coordination for Claude Code.",
5
5
  "license": "CC-BY-NC-4.0",
6
6
  "type": "module",