ofiere-openclaw-plugin 3.5.3 → 3.5.4

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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/tools.ts +23 -8
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ofiere-openclaw-plugin",
3
- "version": "3.5.3",
3
+ "version": "3.5.4",
4
4
  "type": "module",
5
5
  "description": "OpenClaw plugin for Ofiere PM - 10 meta-tools covering tasks, agents, projects, scheduling, knowledge, workflows, notifications, memory, prompts, and constellation agent architecture",
6
6
  "keywords": ["openclaw", "ofiere", "project-management", "agents", "plugin"],
package/src/tools.ts CHANGED
@@ -1973,13 +1973,21 @@ function registerConstellationOps(
1973
1973
  api.logger?.info?.(`[ofiere] Auto-registered agent "${agentName}": ${output.slice(0, 200)}`);
1974
1974
  return { success: true, message: `Agent "${agentName}" registered in OpenClaw` };
1975
1975
  } catch (e: any) {
1976
- const msg = e?.stderr || e?.stdout || String(e);
1977
- // Check if already registered
1978
- if (msg.includes("already exists") || msg.includes("duplicate")) {
1976
+ // OpenClaw CLI may exit non-zero due to config warnings even when the
1977
+ // actual operation succeeded. Check the combined stdout+stderr for
1978
+ // success indicators before reporting failure.
1979
+ const combined = [e?.stdout, e?.stderr, e?.output?.join?.("\n"), String(e)]
1980
+ .filter(Boolean).join("\n");
1981
+ // Success indicators: JSON output with agentId, or "already exists"
1982
+ if (combined.includes(`"agentId"`) || combined.includes(`"${agentName}"`)) {
1983
+ api.logger?.info?.(`[ofiere] Auto-registered agent "${agentName}" (exit non-zero but output confirms success)`);
1984
+ return { success: true, message: `Agent "${agentName}" registered in OpenClaw` };
1985
+ }
1986
+ if (combined.includes("already exists") || combined.includes("duplicate")) {
1979
1987
  return { success: true, message: `Agent "${agentName}" was already registered` };
1980
1988
  }
1981
- api.logger?.warn?.(`[ofiere] Auto-registration failed for "${agentName}": ${msg.slice(0, 300)}`);
1982
- return { success: false, message: `Auto-registration failed: ${msg.slice(0, 200)}. CLI path: ${OPENCLAW_CLI}` };
1989
+ api.logger?.warn?.(`[ofiere] Auto-registration failed for "${agentName}": ${combined.slice(0, 300)}`);
1990
+ return { success: false, message: `Auto-registration failed: ${combined.slice(0, 200)}` };
1983
1991
  }
1984
1992
  }
1985
1993
 
@@ -2300,10 +2308,17 @@ function registerConstellationOps(
2300
2308
  try {
2301
2309
  const cmd = `${OPENCLAW_CLI} agents delete ${agentName} --force 2>&1`;
2302
2310
  const output = execSync(cmd, { encoding: "utf8", timeout: 15000 });
2303
- unregResult = { success: true, message: output.slice(0, 200) };
2311
+ unregResult = { success: true, message: `Agent "${agentName}" unregistered from OpenClaw` };
2304
2312
  } catch (e: any) {
2305
- const emsg = e?.stderr || e?.stdout || String(e);
2306
- unregResult = { success: false, message: `Unregistration failed: ${emsg.slice(0, 200)}. CLI path: ${OPENCLAW_CLI}` };
2313
+ // OpenClaw CLI may exit non-zero due to config warnings even when
2314
+ // the delete operation succeeded. Check output for success indicators.
2315
+ const combined = [e?.stdout, e?.stderr, e?.output?.join?.("\n"), String(e)]
2316
+ .filter(Boolean).join("\n");
2317
+ if (combined.includes(`"agentId"`) || combined.includes(`"${agentName}"`)) {
2318
+ unregResult = { success: true, message: `Agent "${agentName}" unregistered from OpenClaw` };
2319
+ } else {
2320
+ unregResult = { success: false, message: `Unregistration may have failed: ${combined.slice(0, 200)}` };
2321
+ }
2307
2322
  }
2308
2323
 
2309
2324
  api.logger?.info?.(`[ofiere] Deleted agent "${agentName}" — ${deletedFiles.length} files removed`);