@askexenow/exe-os 0.8.68 → 0.8.69

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.
@@ -3004,7 +3004,7 @@ function parseBasename(basename) {
3004
3004
  function resolveAgent(argv) {
3005
3005
  const invokedAs = path7.basename(argv[1] ?? "");
3006
3006
  if (invokedAs && invokedAs !== "exe-launch-agent" && !invokedAs.endsWith(".js")) {
3007
- const { agent: agent2, provider } = parseBasename(invokedAs);
3007
+ const { agent: agent2, provider } = parseBasename(invokedAs.toLowerCase());
3008
3008
  return { agent: agent2, provider, passthrough: argv.slice(2) };
3009
3009
  }
3010
3010
  const rest = argv.slice(2);
@@ -3014,7 +3014,7 @@ function resolveAgent(argv) {
3014
3014
  "exe-launch-agent: missing --agent <name>. Invoke via the per-agent symlink (exe/yoshi/tom/mari/sasha) or pass --agent explicitly."
3015
3015
  );
3016
3016
  }
3017
- const agent = rest[agentIdx + 1];
3017
+ const agent = rest[agentIdx + 1].toLowerCase();
3018
3018
  const passthrough = [...rest.slice(0, agentIdx), ...rest.slice(agentIdx + 2)];
3019
3019
  return { agent, provider: DEFAULT_PROVIDER, passthrough };
3020
3020
  }
@@ -3029,7 +3029,16 @@ async function isKnownAgent(agent) {
3029
3029
  }
3030
3030
  }
3031
3031
  function identityPathFor(agent) {
3032
- return path7.join(os5.homedir(), ".exe-os", "identity", `${agent}.md`);
3032
+ const dir = path7.join(os5.homedir(), ".exe-os", "identity");
3033
+ const exactPath = path7.join(dir, `${agent}.md`);
3034
+ if (existsSync6(exactPath)) return exactPath;
3035
+ try {
3036
+ const files = readdirSync4(dir);
3037
+ const match = files.find((f) => f.toLowerCase() === `${agent.toLowerCase()}.md`);
3038
+ if (match) return path7.join(dir, match);
3039
+ } catch {
3040
+ }
3041
+ return exactPath;
3033
3042
  }
3034
3043
  function leanMcpConfigFor(agent) {
3035
3044
  const p = path7.join(os5.homedir(), ".exe-os", "mcp-configs", `${agent}-lean.json`);
@@ -3057,7 +3066,31 @@ function buildLaunchPlan(agent, behaviorsPath, passthrough, _hasAgentFlag, _prov
3057
3066
  const args = ["--dangerously-skip-permissions"];
3058
3067
  const idPath = identityPathFor(agent);
3059
3068
  const ccAgentPath = path7.join(os5.homedir(), ".claude", "agents", `${agent}.md`);
3060
- const effectiveIdPath = existsSync6(idPath) ? idPath : existsSync6(ccAgentPath) ? ccAgentPath : null;
3069
+ let effectiveCcPath = null;
3070
+ if (existsSync6(ccAgentPath)) {
3071
+ effectiveCcPath = ccAgentPath;
3072
+ } else {
3073
+ try {
3074
+ const ccAgentDir = path7.join(os5.homedir(), ".claude", "agents");
3075
+ const ccFiles = readdirSync4(ccAgentDir);
3076
+ const ccMatch = ccFiles.find((f) => f.toLowerCase() === `${agent.toLowerCase()}.md`);
3077
+ if (ccMatch) effectiveCcPath = path7.join(ccAgentDir, ccMatch);
3078
+ } catch {
3079
+ }
3080
+ }
3081
+ const effectiveIdPath = existsSync6(idPath) ? idPath : effectiveCcPath;
3082
+ if (!effectiveIdPath) {
3083
+ process.stderr.write(
3084
+ `
3085
+ \u26A0\uFE0F No identity file found for agent "${agent}".
3086
+ Checked: ${idPath}
3087
+ Checked: ${ccAgentPath}
3088
+ Claude will boot without agent identity.
3089
+ Fix: run exe-os setup (option 2) to sync from cloud, or copy the identity file manually.
3090
+
3091
+ `
3092
+ );
3093
+ }
3061
3094
  if (effectiveIdPath) {
3062
3095
  if (ccSupportsFlag("--system-prompt")) {
3063
3096
  try {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@askexenow/exe-os",
3
- "version": "0.8.68",
3
+ "version": "0.8.69",
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",