nexo-brain 7.17.4 → 7.17.5
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/.claude-plugin/plugin.json +1 -1
- package/README.md +3 -1
- package/package.json +1 -1
- package/src/cli.py +33 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nexo-brain",
|
|
3
|
-
"version": "7.17.
|
|
3
|
+
"version": "7.17.5",
|
|
4
4
|
"description": "Local cognitive runtime for Claude Code \u2014 persistent memory, overnight learning, doctor diagnostics, personal scripts, recovery-aware jobs, startup preflight, and optional dashboard/power helper.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "NEXO Brain",
|
package/README.md
CHANGED
|
@@ -18,7 +18,9 @@
|
|
|
18
18
|
|
|
19
19
|
[Watch the overview video](https://nexo-brain.com/watch/) · [Watch on YouTube](https://www.youtube.com/watch?v=i2lkGhKyVqI) · [Open the infographic](https://nexo-brain.com/assets/nexo-brain-infographic-v5.png)
|
|
20
20
|
|
|
21
|
-
Version `7.17.
|
|
21
|
+
Version `7.17.5` is the current packaged-runtime line. Patch release over v7.17.4 - `nexo --version --json` now returns fast machine-readable update status (`installed`, `latest`, `hasUpdate`, `unknown`, `latestSource`) while the human output keeps the legacy `nexo vX` line plus a compact latest/installed status line for Desktop compatibility.
|
|
22
|
+
|
|
23
|
+
Previously in `7.17.4`: corrective patch over v7.17.3 - automation runners now keep full NEXO discipline for real background agents while strict JSON children stay clean, and runtime doctor/metrics expose caller coverage and Guardian injection telemetry instead of hiding blind spots.
|
|
22
24
|
|
|
23
25
|
Previously in `7.17.3`: corrective patch over v7.17.2 - standalone Brain install/update no longer aborts when the Desktop-only `qwen3-0.6b-q4-local-presence` model is not bundled or already cached locally. Required Brain warmups stay strict; only the optional local-presence GGUF now degrades cleanly.
|
|
24
26
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nexo-brain",
|
|
3
|
-
"version": "7.17.
|
|
3
|
+
"version": "7.17.5",
|
|
4
4
|
"mcpName": "io.github.wazionapps/nexo",
|
|
5
5
|
"description": "NEXO Brain — Shared brain for AI agents. Persistent memory, semantic RAG, natural forgetting, metacognitive guard, trust scoring, 150+ MCP tools. Works with Claude Code, Codex, Claude Desktop & any MCP client. 100% local, free.",
|
|
6
6
|
"homepage": "https://nexo-brain.com",
|
package/src/cli.py
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
Entry points:
|
|
5
5
|
nexo chat [PATH]
|
|
6
|
+
nexo --version [--json]
|
|
6
7
|
nexo export [PATH] [--json]
|
|
7
8
|
nexo import-inspect PATH [--json]
|
|
8
9
|
nexo import PATH [--json]
|
|
@@ -233,17 +234,41 @@ def _version_sort_key(raw: str) -> tuple[tuple[int, ...], int, str]:
|
|
|
233
234
|
return (tuple(parts), 1 if not suffix else 0, suffix)
|
|
234
235
|
|
|
235
236
|
|
|
236
|
-
def
|
|
237
|
+
def _version_status_payload() -> dict:
|
|
237
238
|
installed = _get_version()
|
|
238
239
|
latest = _load_latest_version_cache()
|
|
240
|
+
latest_source = "cache" if latest else ""
|
|
239
241
|
if latest is None and _should_refresh_latest_version():
|
|
240
242
|
latest = _fetch_latest_version()
|
|
243
|
+
latest_source = "npm" if latest else ""
|
|
241
244
|
if latest and installed and _version_sort_key(latest) < _version_sort_key(installed):
|
|
242
245
|
latest = installed
|
|
246
|
+
latest_source = "installed"
|
|
243
247
|
try:
|
|
244
248
|
_save_latest_version_cache(installed)
|
|
245
249
|
except Exception:
|
|
246
250
|
pass
|
|
251
|
+
has_update = bool(
|
|
252
|
+
latest
|
|
253
|
+
and installed
|
|
254
|
+
and _version_sort_key(latest) > _version_sort_key(installed)
|
|
255
|
+
)
|
|
256
|
+
return {
|
|
257
|
+
"ok": True,
|
|
258
|
+
"name": "nexo",
|
|
259
|
+
"package": LATEST_NPM_PACKAGE,
|
|
260
|
+
"installed": installed,
|
|
261
|
+
"latest": latest or "",
|
|
262
|
+
"hasUpdate": has_update,
|
|
263
|
+
"unknown": not bool(installed and latest),
|
|
264
|
+
"latestSource": latest_source,
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
|
|
268
|
+
def _version_status_line(payload: dict | None = None) -> str:
|
|
269
|
+
payload = payload or _version_status_payload()
|
|
270
|
+
installed = str(payload.get("installed") or "?").strip()
|
|
271
|
+
latest = str(payload.get("latest") or "").strip()
|
|
247
272
|
if latest:
|
|
248
273
|
return f"NEXO Latest: v{latest} | Installed: v{installed}"
|
|
249
274
|
return f"NEXO Installed: v{installed}"
|
|
@@ -2823,6 +2848,7 @@ def main():
|
|
|
2823
2848
|
parser = argparse.ArgumentParser(prog="nexo", description="NEXO Runtime CLI", add_help=False)
|
|
2824
2849
|
parser.add_argument("-h", "--help", action="store_true", help="Show help")
|
|
2825
2850
|
parser.add_argument("-v", "--version", action="store_true", help="Show version")
|
|
2851
|
+
parser.add_argument("--json", action="store_true", help="JSON output for --version")
|
|
2826
2852
|
sub = parser.add_subparsers(dest="command")
|
|
2827
2853
|
|
|
2828
2854
|
# -- email (Plan F1 — interactive wizard for email accounts) --
|
|
@@ -3408,7 +3434,12 @@ def main():
|
|
|
3408
3434
|
_print_help()
|
|
3409
3435
|
return 0
|
|
3410
3436
|
if args.version:
|
|
3411
|
-
|
|
3437
|
+
payload = _version_status_payload()
|
|
3438
|
+
if args.json:
|
|
3439
|
+
print(json.dumps(payload, ensure_ascii=False))
|
|
3440
|
+
else:
|
|
3441
|
+
print(f"nexo v{payload.get('installed') or _get_version()}")
|
|
3442
|
+
print(_version_status_line(payload))
|
|
3412
3443
|
return 0
|
|
3413
3444
|
|
|
3414
3445
|
if args.command == "email":
|