@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.
- package/dist/bin/exe-launch-agent.js +37 -4
- package/package.json +1 -1
|
@@ -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
|
-
|
|
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
|
-
|
|
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