@tpsdev-ai/flair 0.16.0 → 0.16.1

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/dist/cli.js +29 -2
  2. package/package.json +1 -1
package/dist/cli.js CHANGED
@@ -1158,6 +1158,17 @@ export function probeOpenclawPluginVersion(extensionName) {
1158
1158
  return null;
1159
1159
  }
1160
1160
  }
1161
+ /**
1162
+ * Whether a package's status line should be printed in the default `flair
1163
+ * upgrade` listing. Suppresses optional-because-openclaw-is-absent lines
1164
+ * (ops-p42n) — pure noise on machines without openclaw — unless `--all`
1165
+ * (showAll) is set. All other statuses always print.
1166
+ */
1167
+ export function shouldPrintUpgradeLine(status, showAll) {
1168
+ if (status === "optional" && !showAll)
1169
+ return false;
1170
+ return true;
1171
+ }
1161
1172
  /**
1162
1173
  * Order a soul key→count map for display: highest count first, ties broken
1163
1174
  * alphabetically for stable output. Soul entries are keyed identity facts
@@ -5871,7 +5882,13 @@ program
5871
5882
  {
5872
5883
  name: "@tpsdev-ai/flair-mcp",
5873
5884
  kind: "bin",
5874
- probe: () => probeBinVersion(execFileSync, "flair-mcp"),
5885
+ // Older flair-mcp installs (e.g. 0.10.0) either aren't on PATH or
5886
+ // don't support `--version`, so the bin probe returns null even when
5887
+ // the package IS globally installed (ops-p42n). Fall back to the lib
5888
+ // probe, which require.resolves the package.json from a sibling global
5889
+ // install regardless of PATH or --version support. kind stays "bin" so
5890
+ // it remains npm-upgradeable (npm install -g), not the openclaw path.
5891
+ probe: () => probeBinVersion(execFileSync, "flair-mcp") ?? probeLibVersion("@tpsdev-ai/flair-mcp"),
5875
5892
  },
5876
5893
  {
5877
5894
  name: "@tpsdev-ai/openclaw-flair",
@@ -5909,6 +5926,13 @@ program
5909
5926
  status = "outdated";
5910
5927
  }
5911
5928
  findings.push({ name, installed, latest, status, kind });
5929
+ // Suppress the line for openclaw plugins that are optional-because-
5930
+ // openclaw-is-absent (ops-p42n): on machines without openclaw the
5931
+ // "○ … not installed (openclaw not detected) → … (install via …)"
5932
+ // line is pure noise. Still print it when openclaw IS installed
5933
+ // (current/outdated) or under --all.
5934
+ if (!shouldPrintUpgradeLine(status, showAll))
5935
+ continue;
5912
5936
  const icon = status === "current" ? "✅"
5913
5937
  : status === "outdated" ? "⬆️"
5914
5938
  : status === "optional" ? "○"
@@ -5922,6 +5946,9 @@ program
5922
5946
  }
5923
5947
  catch { /* skip unavailable packages */ }
5924
5948
  }
5949
+ // Scope footer (ops-p42n): make explicit what `flair upgrade` does and
5950
+ // doesn't cover, so "were the others checked?" has a one-line answer.
5951
+ console.log("\nScope: npm-global packages (flair, flair-mcp) + openclaw plugins. Other integrations (pi-flair, langgraph-flair, n8n-nodes-flair, hermes-flair) upgrade in their own ecosystems (pi / pip / n8n).");
5925
5952
  const outdated = findings.filter((f) => f.status === "outdated");
5926
5953
  const missing = findings.filter((f) => f.status === "missing");
5927
5954
  // openclaw plugins upgrade through `openclaw plugins install`, not `npm
@@ -6009,7 +6036,7 @@ program
6009
6036
  }
6010
6037
  }
6011
6038
  else {
6012
- console.log("\nRun: flair restart to use the new version");
6039
+ console.log("\nRun: flair restart to use the new version");
6013
6040
  }
6014
6041
  });
6015
6042
  // ─── flair stop ───────────────────────────────────────────────────────────────
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tpsdev-ai/flair",
3
- "version": "0.16.0",
3
+ "version": "0.16.1",
4
4
  "description": "Identity, memory, and soul for AI agents. Cryptographic identity (Ed25519), semantic memory with local embeddings, and persistent personality — all in a single process.",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",