@askexenow/exe-os 0.8.70 → 0.8.71

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.
@@ -3079,32 +3079,58 @@ function buildLaunchPlan(agent, behaviorsPath, passthrough, _hasAgentFlag, _prov
3079
3079
  }
3080
3080
  }
3081
3081
  const effectiveIdPath = existsSync6(idPath) ? idPath : effectiveCcPath;
3082
- if (!effectiveIdPath) {
3082
+ let identityContent = null;
3083
+ if (effectiveIdPath && existsSync6(effectiveIdPath)) {
3084
+ try {
3085
+ const content = readFileSync4(effectiveIdPath, "utf-8");
3086
+ if (content.trim().length > 0) identityContent = content;
3087
+ } catch {
3088
+ }
3089
+ }
3090
+ if (!identityContent) {
3091
+ try {
3092
+ const rosterPath = path7.join(os5.homedir(), ".exe-os", "exe-employees.json");
3093
+ if (existsSync6(rosterPath)) {
3094
+ const roster = JSON.parse(readFileSync4(rosterPath, "utf8"));
3095
+ const emp = roster.find((e) => e.name.toLowerCase() === agent.toLowerCase());
3096
+ if (emp?.systemPrompt && emp.systemPrompt.trim().length > 20) {
3097
+ identityContent = emp.systemPrompt;
3098
+ try {
3099
+ const dir = path7.dirname(idPath);
3100
+ if (!existsSync6(dir)) mkdirSync4(dir, { recursive: true });
3101
+ writeFileSync4(idPath, identityContent, "utf-8");
3102
+ process.stderr.write(`[exe-launch-agent] self-healed missing identity file: ${idPath}
3103
+ `);
3104
+ } catch {
3105
+ }
3106
+ }
3107
+ }
3108
+ } catch {
3109
+ }
3110
+ }
3111
+ if (!identityContent) {
3083
3112
  process.stderr.write(
3084
3113
  `
3085
- \u26A0\uFE0F No identity file found for agent "${agent}".
3114
+ \u26A0\uFE0F No identity found for agent "${agent}".
3086
3115
  Checked: ${idPath}
3087
- Checked: ${ccAgentPath}
3116
+ Checked: roster systemPrompt
3088
3117
  Claude will boot without agent identity.
3089
- Fix: run exe-os setup (option 2) to sync from cloud, or copy the identity file manually.
3118
+ Fix: run exe-os setup (option 2) to sync from cloud.
3090
3119
 
3091
3120
  `
3092
3121
  );
3093
3122
  }
3094
- if (effectiveIdPath && existsSync6(effectiveIdPath)) {
3123
+ if (identityContent) {
3095
3124
  if (ccSupportsFlag("--system-prompt")) {
3125
+ args.push("--system-prompt", getSessionPrompt(identityContent));
3126
+ } else {
3096
3127
  try {
3097
- const identity = readFileSync4(effectiveIdPath, "utf-8");
3098
- if (identity.trim().length > 0) {
3099
- args.push("--system-prompt", getSessionPrompt(identity));
3100
- }
3128
+ const tmpPath = path7.join(os5.homedir(), ".exe-os", "session-cache", `${agent}-identity.md`);
3129
+ mkdirSync4(path7.dirname(tmpPath), { recursive: true });
3130
+ writeFileSync4(tmpPath, identityContent, "utf-8");
3131
+ args.push("--append-system-prompt-file", tmpPath);
3101
3132
  } catch {
3102
- if (existsSync6(effectiveIdPath)) {
3103
- args.push("--append-system-prompt-file", effectiveIdPath);
3104
- }
3105
3133
  }
3106
- } else {
3107
- args.push("--append-system-prompt-file", effectiveIdPath);
3108
3134
  }
3109
3135
  }
3110
3136
  if (behaviorsPath && existsSync6(behaviorsPath)) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@askexenow/exe-os",
3
- "version": "0.8.70",
3
+ "version": "0.8.71",
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",