@ornexus/neocortex 4.60.69 → 4.60.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.
@@ -0,0 +1,54 @@
1
+ export declare const REGISTRY_RECONCILIATION_REASON_CODES: Readonly<{
2
+ readonly VERSION_INVALID: "REGISTRY_RECONCILIATION_VERSION_INVALID";
3
+ readonly PROJECT_INVALID: "REGISTRY_RECONCILIATION_PROJECT_INVALID";
4
+ readonly DOWNGRADE_BLOCKED: "REGISTRY_RECONCILIATION_DOWNGRADE_BLOCKED";
5
+ readonly ARTIFACT_UNAVAILABLE: "REGISTRY_RECONCILIATION_ARTIFACT_UNAVAILABLE";
6
+ readonly ARTIFACT_MISMATCH: "REGISTRY_RECONCILIATION_ARTIFACT_MISMATCH";
7
+ readonly INSTALL_FAILED: "REGISTRY_RECONCILIATION_INSTALL_FAILED";
8
+ }>;
9
+ export interface RegistryIdentity {
10
+ readonly version: string;
11
+ readonly checksum: string;
12
+ }
13
+ export interface ProjectRegistryIdentity extends RegistryIdentity {
14
+ readonly packageVersion: string;
15
+ }
16
+ export interface PublishedRegistryIdentity extends ProjectRegistryIdentity {
17
+ readonly packageName: '@ornexus/neocortex';
18
+ }
19
+ export interface RegistryReconciliationResult {
20
+ readonly status: 'current' | 'updated' | 'not-applicable';
21
+ readonly selectedVersion: string;
22
+ readonly source: 'project' | 'latest' | 'installed';
23
+ }
24
+ export declare class RegistryReconciliationError extends Error {
25
+ readonly reasonCode: string;
26
+ readonly remediation: string;
27
+ constructor(reasonCode: string, remediation: string);
28
+ }
29
+ interface ParsedSemver {
30
+ readonly major: number;
31
+ readonly minor: number;
32
+ readonly patch: number;
33
+ readonly prerelease: readonly (number | string)[];
34
+ }
35
+ export declare function parseExactSemver(value: string): ParsedSemver | undefined;
36
+ export declare function compareExactSemver(left: string, right: string): number | undefined;
37
+ /** Read only a Neocortex source checkout. Ordinary projects are not candidates. */
38
+ export declare function readProjectRegistryIdentity(projectRoot: string): ProjectRegistryIdentity | undefined;
39
+ /** Validate an npm-installed fixture without trusting lifecycle output. */
40
+ export declare function readPublishedPackageIdentityFromPrefix(prefix: string): PublishedRegistryIdentity;
41
+ export interface RegistryReconciliationDependencies {
42
+ readonly readProject?: (projectRoot: string) => ProjectRegistryIdentity | undefined;
43
+ readonly readLatestVersion?: () => string;
44
+ readonly inspectPublished?: (version: string) => PublishedRegistryIdentity;
45
+ readonly installGlobal?: (version: string) => void;
46
+ }
47
+ export declare function reconcileRegistry(options: {
48
+ readonly projectRoot: string;
49
+ readonly installedVersion: string;
50
+ readonly installedIdentity: RegistryIdentity;
51
+ readonly checkLatest?: boolean;
52
+ readonly dependencies?: RegistryReconciliationDependencies;
53
+ }): RegistryReconciliationResult;
54
+ export {};
@@ -0,0 +1 @@
1
+ import{execFileSync as p}from"node:child_process";import{existsSync as g,mkdtempSync as E,readFileSync as I,rmSync as T}from"node:fs";import{tmpdir as N}from"node:os";import{join as u,resolve as h}from"node:path";const a=Object.freeze({VERSION_INVALID:"REGISTRY_RECONCILIATION_VERSION_INVALID",PROJECT_INVALID:"REGISTRY_RECONCILIATION_PROJECT_INVALID",DOWNGRADE_BLOCKED:"REGISTRY_RECONCILIATION_DOWNGRADE_BLOCKED",ARTIFACT_UNAVAILABLE:"REGISTRY_RECONCILIATION_ARTIFACT_UNAVAILABLE",ARTIFACT_MISMATCH:"REGISTRY_RECONCILIATION_ARTIFACT_MISMATCH",INSTALL_FAILED:"REGISTRY_RECONCILIATION_INSTALL_FAILED"});class o extends Error{reasonCode;remediation;constructor(r,e){super(`${r}: ${e}`),this.reasonCode=r,this.remediation=e,this.name="RegistryReconciliationError"}}const _=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?$/u,V=/^[A-Za-z0-9][A-Za-z0-9._-]{0,31}$/u,C=/^[a-f0-9]{64}$/u;function f(t){const r=_.exec(t);if(!r)return;const e=[r[1],r[2],r[3]].map(Number);if(e.some(i=>!Number.isSafeInteger(i)))return;const n=r[4]?.split(".")??[];if(n.some(i=>/^\d+$/u.test(i)&&!/^(0|[1-9]\d*)$/u.test(i)))return;const s=n.map(i=>/^(0|[1-9]\d*)$/u.test(i)?Number(i):i);return{major:e[0],minor:e[1],patch:e[2],prerelease:s}}function y(t,r){const e=f(t),n=f(r);if(!e||!n)return;for(const i of["major","minor","patch"])if(e[i]!==n[i])return e[i]>n[i]?1:-1;if(e.prerelease.length===0||n.prerelease.length===0)return e.prerelease.length===n.prerelease.length?0:e.prerelease.length===0?1:-1;const s=Math.max(e.prerelease.length,n.prerelease.length);for(let i=0;i<s;i+=1){const c=e.prerelease[i],l=n.prerelease[i];if(c===void 0||l===void 0)return c===l?0:c===void 0?-1:1;if(c!==l)return typeof c=="number"&&typeof l=="string"?-1:typeof c=="string"&&typeof l=="number"||c>l?1:-1}return 0}function A(t,r){if(!t||typeof t!="object"||Array.isArray(t))throw new o(r,"Regenerate the local command registry and retry.");const e=t;if(typeof e.registryVersion!="string"||!V.test(e.registryVersion)||typeof e.registryChecksum!="string"||!C.test(e.registryChecksum))throw new o(r,"Regenerate the local command registry and retry.");return{version:e.registryVersion,checksum:e.registryChecksum}}function x(t){const r=u(h(t),"package.json");if(!g(r))return;let e;try{e=JSON.parse(I(r,"utf8"))}catch{return}if(e.name!=="@ornexus/neocortex")return;if(typeof e.version!="string"||!f(e.version))throw new o(a.PROJECT_INVALID,"Set the local @ornexus/neocortex package to an exact valid version and retry.");const n=u(h(t),"generated","command-registry","manifest.json");if(!g(n))throw new o(a.PROJECT_INVALID,"Run the repository command-registry generator, then retry.");try{return{...A(JSON.parse(I(n,"utf8")),a.PROJECT_INVALID),packageVersion:e.version}}catch(s){throw s instanceof o?s:new o(a.PROJECT_INVALID,"Regenerate the local command registry and retry.")}}function S(t){const r=t.match(/COMMAND_REGISTRY_VERSION\s*=\s*["']([^"']+)["']/u)?.[1]??t.match(/registryVersion\s*:\s*["']([^"']+)["']/u)?.[1],e=t.match(/COMMAND_REGISTRY_CHECKSUM\s*=\s*["']([a-f0-9]{64})["']/u)?.[1]??t.match(/registryChecksum\s*:\s*["']([a-f0-9]{64})["']/u)?.[1];return A({registryVersion:r,registryChecksum:e},a.ARTIFACT_MISMATCH)}function O(t){const r=u(t,"node_modules","@ornexus","neocortex");try{const e=JSON.parse(I(u(r,"package.json"),"utf8"));if(e.name!=="@ornexus/neocortex"||typeof e.version!="string"||!f(e.version))throw new Error("invalid package identity");const n=u(r,"packages","client","dist","generated","command-registry.generated.js"),s=S(I(n,"utf8"));return{packageName:"@ornexus/neocortex",packageVersion:e.version,...s}}catch{throw new o(a.ARTIFACT_MISMATCH,"The published package does not contain a valid client registry projection; do not invoke.")}}function L(){return p("npm",["view","@ornexus/neocortex","version"],{encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:3e4}).trim()}function w(t){const r=E(u(N(),"neocortex-registry-reconcile-"));try{p("npm",["install","--prefix",r,"--ignore-scripts","--no-audit","--no-fund","--package-lock=false",`@ornexus/neocortex@${t}`],{stdio:"ignore",timeout:12e4});const e=O(r);if(e.packageVersion!==t)throw new Error("npm resolved a different version");return e}catch(e){throw e instanceof o?e:new o(a.ARTIFACT_UNAVAILABLE,`Verify public npm access, then install explicitly: npm install -g @ornexus/neocortex@${t}`)}finally{T(r,{recursive:!0,force:!0})}}function k(t){try{p("npm",["install","-g",`@ornexus/neocortex@${t}`],{stdio:"ignore",timeout:12e4})}catch{throw new o(a.INSTALL_FAILED,`Install the verified compatible client explicitly: npm install -g @ornexus/neocortex@${t}`)}}function R(t,r){return t.version===r.version&&t.checksum===r.checksum}function M(t){if(!f(t.installedVersion))throw new o(a.VERSION_INVALID,"Reinstall an exact published client version and retry.");const e=t.dependencies??{},n=(e.readProject??x)(t.projectRoot);let s,i,c="installed";if(n){if(R(n,t.installedIdentity))return{status:"current",selectedVersion:t.installedVersion,source:"project"};const d=y(n.packageVersion,t.installedVersion);if(d===void 0)throw new o(a.VERSION_INVALID,"Use exact valid installed and project versions, then retry.");if(d<0)throw new o(a.DOWNGRADE_BLOCKED,`The project requires ${n.packageVersion}, older than installed ${t.installedVersion}. Use a matching checkout or explicitly select a client version; automatic downgrade was refused.`);s=n.packageVersion,i=n,c="project"}else if(t.checkLatest){let d;try{d=(e.readLatestVersion??L)().trim()}catch{return{status:"not-applicable",selectedVersion:t.installedVersion,source:"installed"}}const m=y(d,t.installedVersion);if(m===void 0)throw new o(a.VERSION_INVALID,"The public latest or installed version is invalid; no update was attempted.");if(m<=0)return{status:"current",selectedVersion:t.installedVersion,source:"installed"};s=d,c="latest"}else return{status:"not-applicable",selectedVersion:t.installedVersion,source:"installed"};const l=(e.inspectPublished??w)(s);if(l.packageVersion!==s||i&&!R(l,i))throw new o(a.ARTIFACT_MISMATCH,`The public ${s} artifact does not match the local registry projection. Regenerate/release a matching artifact; no global package was changed.`);return(e.installGlobal??k)(s),{status:"updated",selectedVersion:s,source:c}}export{a as REGISTRY_RECONCILIATION_REASON_CODES,o as RegistryReconciliationError,y as compareExactSemver,f as parseExactSemver,x as readProjectRegistryIdentity,O as readPublishedPackageIdentityFromPrefix,M as reconcileRegistry};
@@ -1,4 +1,4 @@
1
- # 🧠 Neocortex v4.60.69 | OrNexus Team
1
+ # 🧠 Neocortex v4.60.71 | OrNexus Team
2
2
 
3
3
  This project uses Neocortex, a Development Orchestrator.
4
4
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: neocortex
3
- description: "🧠 Neocortex v4.60.69 | OrNexus Team"
3
+ description: "🧠 Neocortex v4.60.71 | OrNexus Team"
4
4
  ---
5
5
 
6
6
  <!--
@@ -51,11 +51,8 @@ UPDATE_MARKER="$HOME/.neocortex/.update-check"
51
51
  if [ -f "$UPDATE_MARKER" ] && [ "$(find "$UPDATE_MARKER" -mmin -1440 2>/dev/null)" ]; then
52
52
  : # Recently checked, skip
53
53
  else
54
- INSTALLED=$(neocortex --version 2>/dev/null | head -1 | grep -oE '[0-9]+\.[0-9]+\.[0-9]+')
55
- LATEST=$(npm view @ornexus/neocortex version 2>/dev/null)
56
- if [ -n "$INSTALLED" ] && [ -n "$LATEST" ] && [ "$INSTALLED" != "$LATEST" ]; then
57
- npm install -g @ornexus/neocortex@latest 2>/dev/null
58
- fi
54
+ PROJECT_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd -P)
55
+ neocortex-client reconcile-registry --project-root "$PROJECT_ROOT" --check-latest >/dev/null 2>&1
59
56
  mkdir -p "$HOME/.neocortex" && touch "$UPDATE_MARKER" 2>/dev/null
60
57
  fi
61
58
  ```
@@ -4,7 +4,7 @@ agent:
4
4
  name: 'Neocortex Root Agent'
5
5
  title: 'Development Orchestrator (Root)'
6
6
  icon: '>'
7
- version: '4.60.69'
7
+ version: '4.60.71'
8
8
  architecture: 'thin-client'
9
9
  module: stand-alone
10
10
  hasSidecar: false
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: neocortex-root
3
- description: "🧠 Neocortex Root Agent v4.60.69 | OrNexus Team"
3
+ description: "🧠 Neocortex Root Agent v4.60.71 | OrNexus Team"
4
4
  model: opus
5
5
  color: blue
6
6
  tools:
@@ -108,7 +108,7 @@ SEMPRE que este agente for invocado, imprima o banner abaixo como PRIMEIRO outpu
108
108
  ┌────────────────────────────────────────────────────────────┐
109
109
  │ │
110
110
  │ ####### N E O C O R T E X │
111
- │ ### ######## v4.60.69 │
111
+ │ ### ######## v4.60.71 │
112
112
  │ ######### ##### │
113
113
  │ ## ############## Development Orchestrator │
114
114
  │ ## ### ###### ## OrNexus Team │
@@ -133,11 +133,8 @@ UPDATE_MARKER="$HOME/.neocortex/.update-check"
133
133
  if [ -f "$UPDATE_MARKER" ] && [ "$(find "$UPDATE_MARKER" -mmin -1440 2>/dev/null)" ]; then
134
134
  : # Recently checked, skip
135
135
  else
136
- INSTALLED=$(neocortex --version 2>/dev/null | head -1 | grep -oE '[0-9]+\.[0-9]+\.[0-9]+')
137
- LATEST=$(npm view @ornexus/neocortex version 2>/dev/null)
138
- if [ -n "$INSTALLED" ] && [ -n "$LATEST" ] && [ "$INSTALLED" != "$LATEST" ]; then
139
- npm install -g @ornexus/neocortex@latest 2>/dev/null
140
- fi
136
+ PROJECT_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd -P)
137
+ neocortex-client reconcile-registry --project-root "$PROJECT_ROOT" --check-latest >/dev/null 2>&1
141
138
  mkdir -p "$HOME/.neocortex" && touch "$UPDATE_MARKER" 2>/dev/null
142
139
  fi
143
140
  ```
@@ -4,7 +4,7 @@ agent:
4
4
  name: 'Neocortex'
5
5
  title: 'Development Orchestrator'
6
6
  icon: '>'
7
- version: '4.60.69'
7
+ version: '4.60.71'
8
8
  architecture: 'thin-client'
9
9
  module: stand-alone
10
10
  hasSidecar: false
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: neocortex
3
- description: "🧠 Neocortex v4.60.69 | OrNexus Team"
3
+ description: "🧠 Neocortex v4.60.71 | OrNexus Team"
4
4
  model: opus
5
5
  color: blue
6
6
  permissionMode: bypassPermissions
@@ -104,7 +104,7 @@ SEMPRE que este agente for invocado, imprima o banner abaixo como PRIMEIRO outpu
104
104
  ┌────────────────────────────────────────────────────────────┐
105
105
  │ │
106
106
  │ ####### N E O C O R T E X │
107
- │ ### ######## v4.60.69 │
107
+ │ ### ######## v4.60.71 │
108
108
  │ ######### ##### │
109
109
  │ ## ############## Development Orchestrator │
110
110
  │ ## ### ###### ## OrNexus Team │
@@ -129,11 +129,8 @@ UPDATE_MARKER="$HOME/.neocortex/.update-check"
129
129
  if [ -f "$UPDATE_MARKER" ] && [ "$(find "$UPDATE_MARKER" -mmin -1440 2>/dev/null)" ]; then
130
130
  : # Recently checked, skip
131
131
  else
132
- INSTALLED=$(neocortex --version 2>/dev/null | head -1 | grep -oE '[0-9]+\.[0-9]+\.[0-9]+')
133
- LATEST=$(npm view @ornexus/neocortex version 2>/dev/null)
134
- if [ -n "$INSTALLED" ] && [ -n "$LATEST" ] && [ "$INSTALLED" != "$LATEST" ]; then
135
- npm install -g @ornexus/neocortex@latest 2>/dev/null
136
- fi
132
+ PROJECT_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd -P)
133
+ neocortex-client reconcile-registry --project-root "$PROJECT_ROOT" --check-latest >/dev/null 2>&1
137
134
  mkdir -p "$HOME/.neocortex" && touch "$UPDATE_MARKER" 2>/dev/null
138
135
  fi
139
136
  ```
@@ -28,7 +28,7 @@ Codex built-in commands or actions.
28
28
 
29
29
  <!-- END: Plugin Conflict Prevention -->
30
30
 
31
- # Neocortex v4.60.69 | OrNexus Team
31
+ # Neocortex v4.60.71 | OrNexus Team
32
32
 
33
33
  You are a Development Orchestrator. All orchestration logic is delivered by the remote Neocortex server.
34
34
 
@@ -41,11 +41,8 @@ UPDATE_MARKER="$HOME/.neocortex/.update-check"
41
41
  if [ -f "$UPDATE_MARKER" ] && [ "$(find "$UPDATE_MARKER" -mmin -1440 2>/dev/null)" ]; then
42
42
  : # Recently checked, skip
43
43
  else
44
- INSTALLED=$(neocortex --version 2>/dev/null | head -1 | grep -oE '[0-9]+\.[0-9]+\.[0-9]+')
45
- LATEST=$(npm view @ornexus/neocortex version 2>/dev/null)
46
- if [ -n "$INSTALLED" ] && [ -n "$LATEST" ] && [ "$INSTALLED" != "$LATEST" ]; then
47
- npm install -g @ornexus/neocortex@latest 2>/dev/null
48
- fi
44
+ PROJECT_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd -P)
45
+ neocortex-client reconcile-registry --project-root "$PROJECT_ROOT" --check-latest >/dev/null 2>&1
49
46
  mkdir -p "$HOME/.neocortex" && touch "$UPDATE_MARKER" 2>/dev/null
50
47
  fi
51
48
  ```
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: neocortex
3
- description: "🧠 Neocortex v4.60.69 | OrNexus Team"
3
+ description: "🧠 Neocortex v4.60.71 | OrNexus Team"
4
4
  model: inherit
5
5
  readonly: false
6
6
  is_background: false
@@ -64,7 +64,7 @@ SEMPRE que este agente for invocado, imprima o banner abaixo como PRIMEIRO outpu
64
64
  ┌────────────────────────────────────────────────────────────┐
65
65
  │ │
66
66
  │ ####### N E O C O R T E X │
67
- │ ### ######## v4.60.69 │
67
+ │ ### ######## v4.60.71 │
68
68
  │ ######### ##### │
69
69
  │ ## ############## Development Orchestrator │
70
70
  │ ## ### ###### ## OrNexus Team │
@@ -89,11 +89,8 @@ UPDATE_MARKER="$HOME/.neocortex/.update-check"
89
89
  if [ -f "$UPDATE_MARKER" ] && [ "$(find "$UPDATE_MARKER" -mmin -1440 2>/dev/null)" ]; then
90
90
  : # Recently checked, skip
91
91
  else
92
- INSTALLED=$(neocortex --version 2>/dev/null | head -1 | grep -oE '[0-9]+\.[0-9]+\.[0-9]+')
93
- LATEST=$(npm view @ornexus/neocortex version 2>/dev/null)
94
- if [ -n "$INSTALLED" ] && [ -n "$LATEST" ] && [ "$INSTALLED" != "$LATEST" ]; then
95
- npm install -g @ornexus/neocortex@latest 2>/dev/null
96
- fi
92
+ PROJECT_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd -P)
93
+ neocortex-client reconcile-registry --project-root "$PROJECT_ROOT" --check-latest >/dev/null 2>&1
97
94
  mkdir -p "$HOME/.neocortex" && touch "$UPDATE_MARKER" 2>/dev/null
98
95
  fi
99
96
  ```
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: neocortex-root
3
- description: "🧠 Neocortex v4.60.69 | OrNexus Team"
3
+ description: "🧠 Neocortex v4.60.71 | OrNexus Team"
4
4
  kind: local
5
5
  tools:
6
6
  # File operations (Gemini CLI built-ins)
@@ -62,7 +62,7 @@ SEMPRE que este agente for invocado, imprima o banner abaixo como PRIMEIRO outpu
62
62
  ┌────────────────────────────────────────────────────────────┐
63
63
  │ │
64
64
  │ ####### N E O C O R T E X │
65
- │ ### ######## v4.60.69 │
65
+ │ ### ######## v4.60.71 │
66
66
  │ ######### ##### │
67
67
  │ ## ############## Development Orchestrator │
68
68
  │ ## ### ###### ## OrNexus Team │
@@ -87,11 +87,8 @@ UPDATE_MARKER="$HOME/.neocortex/.update-check"
87
87
  if [ -f "$UPDATE_MARKER" ] && [ "$(find "$UPDATE_MARKER" -mmin -1440 2>/dev/null)" ]; then
88
88
  : # Recently checked, skip
89
89
  else
90
- INSTALLED=$(neocortex --version 2>/dev/null | head -1 | grep -oE '[0-9]+\.[0-9]+\.[0-9]+')
91
- LATEST=$(npm view @ornexus/neocortex version 2>/dev/null)
92
- if [ -n "$INSTALLED" ] && [ -n "$LATEST" ] && [ "$INSTALLED" != "$LATEST" ]; then
93
- npm install -g @ornexus/neocortex@latest 2>/dev/null
94
- fi
90
+ PROJECT_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd -P)
91
+ neocortex-client reconcile-registry --project-root "$PROJECT_ROOT" --check-latest >/dev/null 2>&1
95
92
  mkdir -p "$HOME/.neocortex" && touch "$UPDATE_MARKER" 2>/dev/null
96
93
  fi
97
94
  ```
@@ -58,7 +58,7 @@ explicit server opt-in rather than a local assumption.
58
58
  ┌────────────────────────────────────────────────────────────┐
59
59
  │ │
60
60
  │ ####### N E O C O R T E X │
61
- │ ### ######## v4.60.69 │
61
+ │ ### ######## v4.60.71 │
62
62
  │ ######### ##### │
63
63
  │ ## ############## Development Orchestrator │
64
64
  │ ## ### ###### ## OrNexus Team │
@@ -82,11 +82,8 @@ UPDATE_MARKER="$HOME/.neocortex/.update-check"
82
82
  if [ -f "$UPDATE_MARKER" ] && [ "$(find "$UPDATE_MARKER" -mmin -1440 2>/dev/null)" ]; then
83
83
  : # Recently checked, skip
84
84
  else
85
- INSTALLED=$(neocortex --version 2>/dev/null | head -1 | grep -oE '[0-9]+\.[0-9]+\.[0-9]+')
86
- LATEST=$(npm view @ornexus/neocortex version 2>/dev/null)
87
- if [ -n "$INSTALLED" ] && [ -n "$LATEST" ] && [ "$INSTALLED" != "$LATEST" ]; then
88
- npm install -g @ornexus/neocortex@latest 2>/dev/null
89
- fi
85
+ PROJECT_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd -P)
86
+ neocortex-client reconcile-registry --project-root "$PROJECT_ROOT" --check-latest >/dev/null 2>&1
90
87
  mkdir -p "$HOME/.neocortex" && touch "$UPDATE_MARKER" 2>/dev/null
91
88
  fi
92
89
  ```
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: "neocortex"
3
- description: "Neocortex v4.60.69 | OrNexus Team"
3
+ description: "Neocortex v4.60.71 | OrNexus Team"
4
4
  tools:
5
5
  # Read / Edit (built-in tool sets)
6
6
  - read
@@ -68,7 +68,7 @@ SEMPRE que este agente for invocado, imprima o banner abaixo como PRIMEIRO outpu
68
68
  ┌────────────────────────────────────────────────────────────┐
69
69
  │ │
70
70
  │ ####### N E O C O R T E X │
71
- │ ### ######## v4.60.69 │
71
+ │ ### ######## v4.60.71 │
72
72
  │ ######### ##### │
73
73
  │ ## ############## Development Orchestrator │
74
74
  │ ## ### ###### ## OrNexus Team │
@@ -93,11 +93,8 @@ UPDATE_MARKER="$HOME/.neocortex/.update-check"
93
93
  if [ -f "$UPDATE_MARKER" ] && [ "$(find "$UPDATE_MARKER" -mmin -1440 2>/dev/null)" ]; then
94
94
  : # Recently checked, skip
95
95
  else
96
- INSTALLED=$(neocortex --version 2>/dev/null | head -1 | grep -oE '[0-9]+\.[0-9]+\.[0-9]+')
97
- LATEST=$(npm view @ornexus/neocortex version 2>/dev/null)
98
- if [ -n "$INSTALLED" ] && [ -n "$LATEST" ] && [ "$INSTALLED" != "$LATEST" ]; then
99
- npm install -g @ornexus/neocortex@latest 2>/dev/null
100
- fi
96
+ PROJECT_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd -P)
97
+ neocortex-client reconcile-registry --project-root "$PROJECT_ROOT" --check-latest >/dev/null 2>&1
101
98
  mkdir -p "$HOME/.neocortex" && touch "$UPDATE_MARKER" 2>/dev/null
102
99
  fi
103
100
  ```