@ornexus/neocortex 4.60.62 → 4.60.63

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 @@
1
+ {"type":"module"}
@@ -1,4 +1,5 @@
1
1
  import type { DirectYoloSetupReceipt } from '../git/direct-yolo-checkpoint.js';
2
+ export declare function privateYoloRootOnlySetupReady(story: unknown): boolean;
2
3
  /** Call immediately before root C01 setup; a dirty or ambiguous checkout fails closed. */
3
4
  export declare function capturePrivateYoloCleanHead(projectRoot: string): string;
4
5
  /** Persist only after physical setup succeeded without changing the clean HEAD. */
@@ -1,2 +1,2 @@
1
- import{execFileSync as j}from"node:child_process";import{createHash as y}from"node:crypto";import{existsSync as D,lstatSync as W,readFileSync as w}from"node:fs";import{join as v,resolve as f}from"node:path";import{assertGitLifecyclePrivateFile as S,ensureGitLifecyclePrivateChildDirectory as x,gitLifecycleRuntimeDirectory as E,readGitLifecycleRuntimeSync as g}from"../git/git-lifecycle-store.js";import{anchoredAtomicWriteFile as z}from"../git/secure-filesystem-boundary.js";function d(i,e){const t=JSON.parse(i);if(!t||typeof t!="object"||Array.isArray(t))throw new Error("private-execution-clean-baseline-write-set-invalid");const r=t.stories,o=r&&typeof r=="object"&&!Array.isArray(r)?r[e]:void 0,n=o&&typeof o=="object"&&!Array.isArray(o)?o.files_to_modify:void 0;if(n!==void 0&&(!Array.isArray(n)||n.length>1024||n.some(c=>typeof c!="string"||c.length===0||c.length>1024||c.startsWith("/")||c.includes("\\")||c.includes("\0")||c.startsWith(".git/")||c.split("/").includes(".."))))throw new Error("private-execution-clean-baseline-write-set-invalid");if(!o)throw new Error("private-execution-clean-baseline-write-set-invalid");return[...new Set(n??[])].sort()}function m(i,e){const t=d(i,e);return y("sha256").update("private-yolo-authorized-write-set-v1\0").update(JSON.stringify(t)).digest("hex")}function I(i,e){const t=v(i,".neocortex","state.json"),r=W(t);if(!r.isFile()||r.isSymbolicLink())throw new Error("private-execution-clean-baseline-write-set-invalid");return m(w(t,"utf8"),e)}function b(i,e){return m(p(i,["show","HEAD:.neocortex/state.json"],16*1024*1024).toString("utf8"),e)}function p(i,e,t=1024*1024){const r={...process.env};for(const o of["GIT_DIR","GIT_WORK_TREE","GIT_INDEX_FILE","GIT_OBJECT_DIRECTORY","GIT_ALTERNATE_OBJECT_DIRECTORIES","GIT_COMMON_DIR","GIT_NAMESPACE","GIT_CEILING_DIRECTORIES"])delete r[o];return j("git",[...e],{cwd:i,env:r,stdio:["ignore","pipe","pipe"],timeout:15e3,maxBuffer:t})}function l(i){return p(i,["rev-parse","HEAD"]).toString("utf8").trim()}function A(i){return p(i,["symbolic-ref","--quiet","--short","HEAD"]).toString("utf8").trim()}function _(i,e,t){const o=g(i,{required:!0}).epics[e]?.branch_lease,n=o&&typeof o=="object"&&!Array.isArray(o)?o:void 0,c=n?.ownerStoryId===t?n.sessionId:void 0;if(typeof c!="string"||!/^setup-[a-f0-9]{64}$/.test(c)||c!==n?.idempotencyKey||typeof n?.expiresAt!="string"||!Number.isFinite(Date.parse(n.expiresAt))||Date.parse(n.expiresAt)<=Date.now())throw new Error("private-execution-clean-baseline-lease-invalid");return c}async function R(i,e){const t=await E(i),r=await x(t,"private-execution"),o=`baseline-${y("sha256").update(e).digest("hex")}.json`;return{parent:r,name:o,path:v(r,o)}}async function O(i,e,t,r){try{const o=await E(i),n=await x(o,"private-execution"),c=`session-${y("sha256").update(e).digest("hex")}.json`,h=v(n,c);if(!D(h))return!1;await S(h,n);const s=JSON.parse(w(h,"utf8"));if(!s||typeof s!="object"||Array.isArray(s))return!1;const a=s,u=a.workspace&&typeof a.workspace=="object"&&!Array.isArray(a.workspace)?a.workspace:void 0;return a.schemaVersion===1&&a.kind==="private-yolo-isolated-session"&&a.storyId===e&&a.initialGraphRevision===t.graphRevision&&a.graphRevision===r&&a.setupSessionId===t.setupSessionId&&Array.isArray(a.graphHistory)&&a.graphHistory.length>1&&a.graphHistory.length<=65&&a.graphHistory[0]===t.graphRevision&&a.graphHistory[a.graphHistory.length-1]===r&&new Set(a.graphHistory).size===a.graphHistory.length&&Number.isSafeInteger(a.sequence)&&Number(a.sequence)>0&&typeof a.snapshotSha=="string"&&/^[a-f0-9]{40,64}$/.test(a.snapshotSha)&&u?.sourceRoot===i&&u.baseSha===t.headSha&&u.executionBranch===t.executionBranch}catch{return!1}}function L(i){const e=f(i);try{const t=l(e);if(p(e,["status","--porcelain=v1","-z","--untracked-files=all"]).byteLength!==0)throw new Error("private-execution-checkout-dirty");if(l(e)!==t)throw new Error("private-execution-checkout-raced");return t}catch(t){throw t instanceof Error&&/^private-execution-[a-z-]+$/.test(t.message)?t:new Error("private-execution-checkout-unverified")}}async function $(i,e,t){const r=f(i);if(!/^[a-f0-9]{40,64}$/.test(t)||e.kind!=="direct-yolo-setup-receipt"||e.originHeadSha!==t||l(r)!==t||A(r)!==e.executionBranch||p(r,["status","--porcelain=v1","-z","--untracked-files=all"]).byteLength!==0)throw new Error("private-execution-clean-baseline-raced");const o=b(r,e.storyId);if(o!==I(r,e.storyId)||l(r)!==t)throw new Error("private-execution-clean-baseline-raced");const n=g(r,{required:!0}).epics[e.epicId]?.graph_revision;if(typeof n!="string"||!/^[a-f0-9]{64}$/.test(n))throw new Error("private-execution-clean-baseline-graph-invalid");const c=Object.freeze({schemaVersion:3,kind:"private-yolo-clean-baseline",storyId:e.storyId,epicId:e.epicId,executionBranch:e.executionBranch,headSha:t,setupSessionId:_(r,e.epicId,e.storyId),graphRevision:n,authorizedWriteSetSha256:o}),h=await R(r,e.storyId);await z(h.parent,h.name,`${JSON.stringify(c)}
2
- `)}async function k(i,e,t,r,o){const n=f(i);try{const c=await R(n,e);await S(c.path,c.parent);const h=JSON.parse(w(c.path,"utf8"));if(!h||typeof h!="object"||Array.isArray(h))throw new Error("private-execution-clean-baseline-invalid");const s=h,a=g(n,{required:!0}).epics[s.epicId]?.graph_revision,u=a===s.graphRevision||o===s.graphRevision&&a===r||typeof a=="string"&&await O(n,e,s,a);if(Object.keys(s).sort().join(",")!==["schemaVersion","kind","storyId","epicId","executionBranch","headSha","setupSessionId","graphRevision","authorizedWriteSetSha256"].sort().join(",")||s.schemaVersion!==3||s.kind!=="private-yolo-clean-baseline"||s.storyId!==e||s.executionBranch!==t||s.epicId!==e.split(".")[0]||typeof s.headSha!="string"||!/^[a-f0-9]{40,64}$/.test(s.headSha)||typeof s.authorizedWriteSetSha256!="string"||!/^[a-f0-9]{64}$/.test(s.authorizedWriteSetSha256)||typeof s.graphRevision!="string"||!/^[a-f0-9]{64}$/.test(s.graphRevision)||r!==void 0&&a!==r||!u||s.authorizedWriteSetSha256!==b(n,e)||s.authorizedWriteSetSha256!==I(n,e)||s.setupSessionId!==_(n,s.epicId,e)||l(n)!==s.headSha||A(n)!==t)throw new Error("private-execution-clean-baseline-invalid")}catch{throw new Error("private-execution-clean-baseline-unverified")}}async function T(i,e,t,r){return k(i,e,t,r)}async function P(i,e,t,r){await T(i,e,t,r);try{const o=d(p(f(i),["show","HEAD:.neocortex/state.json"],16777216).toString("utf8"),e);if(o.length===0)throw new Error("write-set-empty");return Object.freeze([...o])}catch{throw new Error("private-execution-clean-baseline-unverified")}}async function Y(i,e,t,r,o){await k(i,e,t,o,r);try{const n=d(p(f(i),["show","HEAD:.neocortex/state.json"],16777216).toString("utf8"),e);if(n.length===0)throw new Error("write-set-empty");return Object.freeze([...n])}catch{throw new Error("private-execution-clean-baseline-unverified")}}function J(i,e,t){try{const r=d(i,e);if(r.length!==t.length||r.some((o,n)=>o!==t[n]))throw new Error("write-set-drift")}catch{throw new Error("private-execution-clean-baseline-write-set-unverified")}}export{L as capturePrivateYoloCleanHead,P as readPrivateYoloFrozenWriteSet,Y as readPrivateYoloFrozenWriteSetForTransition,$ as recordPrivateYoloCleanBaseline,J as verifyPrivateYoloCandidateWriteSet,T as verifyPrivateYoloCleanBaseline};
1
+ import{execFileSync as D}from"node:child_process";import{createHash as d}from"node:crypto";import{existsSync as W,lstatSync as z,readFileSync as g}from"node:fs";import{join as v,resolve as l}from"node:path";import{assertGitLifecyclePrivateFile as x,ensureGitLifecyclePrivateChildDirectory as E,gitLifecycleRuntimeDirectory as b,readGitLifecycleRuntimeSync as y}from"../git/git-lifecycle-store.js";import{anchoredAtomicWriteFile as H}from"../git/secure-filesystem-boundary.js";const C="809db253d486b5d2620d318666219e8a2b4df05016174ba3c8a33fa17b65802a";function N(r){if(!r||typeof r!="object"||Array.isArray(r))return!1;const e=r,t=e.steps_completed;return e.status!=="branch-ready"||typeof e.last_step!="string"||!Array.isArray(t)||t.length!==1||typeof t[0]!="string"||e.last_step.length>128||t[0].length>128||e.last_step!==t[0]?!1:d("sha256").update(e.last_step).digest("hex")===C}function w(r,e){const t=JSON.parse(r);if(!t||typeof t!="object"||Array.isArray(t))throw new Error("private-execution-clean-baseline-write-set-invalid");const i=t.stories,a=i&&typeof i=="object"&&!Array.isArray(i)?i[e]:void 0,n=a&&typeof a=="object"&&!Array.isArray(a)?a.files_to_modify:void 0;if(n!==void 0&&(!Array.isArray(n)||n.length>1024||n.some(c=>typeof c!="string"||c.length===0||c.length>1024||c.startsWith("/")||c.includes("\\")||c.includes("\0")||c.startsWith(".git/")||c.split("/").includes(".."))))throw new Error("private-execution-clean-baseline-write-set-invalid");if(!a)throw new Error("private-execution-clean-baseline-write-set-invalid");return[...new Set(n??[])].sort()}function m(r,e){const t=w(r,e);return d("sha256").update("private-yolo-authorized-write-set-v1\0").update(JSON.stringify(t)).digest("hex")}function A(r,e){const t=v(r,".neocortex","state.json"),i=z(t);if(!i.isFile()||i.isSymbolicLink())throw new Error("private-execution-clean-baseline-write-set-invalid");return m(g(t,"utf8"),e)}function I(r,e){return m(p(r,["show","HEAD:.neocortex/state.json"],16*1024*1024).toString("utf8"),e)}function p(r,e,t=1024*1024){const i={...process.env};for(const a of["GIT_DIR","GIT_WORK_TREE","GIT_INDEX_FILE","GIT_OBJECT_DIRECTORY","GIT_ALTERNATE_OBJECT_DIRECTORIES","GIT_COMMON_DIR","GIT_NAMESPACE","GIT_CEILING_DIRECTORIES"])delete i[a];return D("git",[...e],{cwd:r,env:i,stdio:["ignore","pipe","pipe"],timeout:15e3,maxBuffer:t})}function f(r){return p(r,["rev-parse","HEAD"]).toString("utf8").trim()}function _(r){return p(r,["symbolic-ref","--quiet","--short","HEAD"]).toString("utf8").trim()}function R(r,e,t){const a=y(r,{required:!0}).epics[e]?.branch_lease,n=a&&typeof a=="object"&&!Array.isArray(a)?a:void 0,c=n?.ownerStoryId===t?n.sessionId:void 0;if(typeof c!="string"||!/^setup-[a-f0-9]{64}$/.test(c)||c!==n?.idempotencyKey||typeof n?.expiresAt!="string"||!Number.isFinite(Date.parse(n.expiresAt))||Date.parse(n.expiresAt)<=Date.now())throw new Error("private-execution-clean-baseline-lease-invalid");return c}async function O(r,e){const t=await b(r),i=await E(t,"private-execution"),a=`baseline-${d("sha256").update(e).digest("hex")}.json`;return{parent:i,name:a,path:v(i,a)}}async function G(r,e,t,i){try{const a=await b(r),n=await E(a,"private-execution"),c=`session-${d("sha256").update(e).digest("hex")}.json`,h=v(n,c);if(!W(h))return!1;await x(h,n);const s=JSON.parse(g(h,"utf8"));if(!s||typeof s!="object"||Array.isArray(s))return!1;const o=s,u=o.workspace&&typeof o.workspace=="object"&&!Array.isArray(o.workspace)?o.workspace:void 0,S=Number(o.sequence),j=y(r,{required:!0}).stories[e],k=S===0&&o.lastPatchSha256===null&&o.snapshotSha===u?.baseSha&&Array.isArray(o.graphHistory)&&o.graphHistory.length===2&&N(j);return o.schemaVersion===1&&o.kind==="private-yolo-isolated-session"&&o.storyId===e&&o.initialGraphRevision===t.graphRevision&&o.graphRevision===i&&o.setupSessionId===t.setupSessionId&&Array.isArray(o.graphHistory)&&o.graphHistory.length>1&&o.graphHistory.length<=65&&o.graphHistory[0]===t.graphRevision&&o.graphHistory[o.graphHistory.length-1]===i&&new Set(o.graphHistory).size===o.graphHistory.length&&Number.isSafeInteger(o.sequence)&&(S>0||k)&&typeof o.snapshotSha=="string"&&/^[a-f0-9]{40,64}$/.test(o.snapshotSha)&&u?.sourceRoot===r&&u.baseSha===t.headSha&&u.executionBranch===t.executionBranch}catch{return!1}}function J(r){const e=l(r);try{const t=f(e);if(p(e,["status","--porcelain=v1","-z","--untracked-files=all"]).byteLength!==0)throw new Error("private-execution-checkout-dirty");if(f(e)!==t)throw new Error("private-execution-checkout-raced");return t}catch(t){throw t instanceof Error&&/^private-execution-[a-z-]+$/.test(t.message)?t:new Error("private-execution-checkout-unverified")}}async function M(r,e,t){const i=l(r);if(!/^[a-f0-9]{40,64}$/.test(t)||e.kind!=="direct-yolo-setup-receipt"||e.originHeadSha!==t||f(i)!==t||_(i)!==e.executionBranch||p(i,["status","--porcelain=v1","-z","--untracked-files=all"]).byteLength!==0)throw new Error("private-execution-clean-baseline-raced");const a=I(i,e.storyId);if(a!==A(i,e.storyId)||f(i)!==t)throw new Error("private-execution-clean-baseline-raced");const n=y(i,{required:!0}).epics[e.epicId]?.graph_revision;if(typeof n!="string"||!/^[a-f0-9]{64}$/.test(n))throw new Error("private-execution-clean-baseline-graph-invalid");const c=Object.freeze({schemaVersion:3,kind:"private-yolo-clean-baseline",storyId:e.storyId,epicId:e.epicId,executionBranch:e.executionBranch,headSha:t,setupSessionId:R(i,e.epicId,e.storyId),graphRevision:n,authorizedWriteSetSha256:a}),h=await O(i,e.storyId);await H(h.parent,h.name,`${JSON.stringify(c)}
2
+ `)}async function T(r,e,t,i,a){const n=l(r);try{const c=await O(n,e);await x(c.path,c.parent);const h=JSON.parse(g(c.path,"utf8"));if(!h||typeof h!="object"||Array.isArray(h))throw new Error("private-execution-clean-baseline-invalid");const s=h,o=y(n,{required:!0}).epics[s.epicId]?.graph_revision,u=o===s.graphRevision||a===s.graphRevision&&o===i||typeof o=="string"&&await G(n,e,s,o);if(Object.keys(s).sort().join(",")!==["schemaVersion","kind","storyId","epicId","executionBranch","headSha","setupSessionId","graphRevision","authorizedWriteSetSha256"].sort().join(",")||s.schemaVersion!==3||s.kind!=="private-yolo-clean-baseline"||s.storyId!==e||s.executionBranch!==t||s.epicId!==e.split(".")[0]||typeof s.headSha!="string"||!/^[a-f0-9]{40,64}$/.test(s.headSha)||typeof s.authorizedWriteSetSha256!="string"||!/^[a-f0-9]{64}$/.test(s.authorizedWriteSetSha256)||typeof s.graphRevision!="string"||!/^[a-f0-9]{64}$/.test(s.graphRevision)||i!==void 0&&o!==i||!u||s.authorizedWriteSetSha256!==I(n,e)||s.authorizedWriteSetSha256!==A(n,e)||s.setupSessionId!==R(n,s.epicId,e)||f(n)!==s.headSha||_(n)!==t)throw new Error("private-execution-clean-baseline-invalid")}catch{throw new Error("private-execution-clean-baseline-unverified")}}async function P(r,e,t,i){return T(r,e,t,i)}async function V(r,e,t,i){await P(r,e,t,i);try{const a=w(p(l(r),["show","HEAD:.neocortex/state.json"],16777216).toString("utf8"),e);if(a.length===0)throw new Error("write-set-empty");return Object.freeze([...a])}catch{throw new Error("private-execution-clean-baseline-unverified")}}async function K(r,e,t,i,a){await T(r,e,t,a,i);try{const n=w(p(l(r),["show","HEAD:.neocortex/state.json"],16777216).toString("utf8"),e);if(n.length===0)throw new Error("write-set-empty");return Object.freeze([...n])}catch{throw new Error("private-execution-clean-baseline-unverified")}}function U(r,e,t){try{const i=w(r,e);if(i.length!==t.length||i.some((a,n)=>a!==t[n]))throw new Error("write-set-drift")}catch{throw new Error("private-execution-clean-baseline-write-set-unverified")}}export{J as capturePrivateYoloCleanHead,N as privateYoloRootOnlySetupReady,V as readPrivateYoloFrozenWriteSet,K as readPrivateYoloFrozenWriteSetForTransition,M as recordPrivateYoloCleanBaseline,U as verifyPrivateYoloCandidateWriteSet,P as verifyPrivateYoloCleanBaseline};
@@ -1,2 +1,2 @@
1
- import{execFileSync as k,spawnSync as A}from"node:child_process";import{createHash as x}from"node:crypto";import{existsSync as q,mkdirSync as C,readFileSync as D}from"node:fs";import{homedir as z}from"node:os";import{join as T,resolve as p}from"node:path";import{acquireGitLifecyclePhysicalIntegrationLock as N,assertGitLifecyclePrivateFile as B,ensureGitLifecyclePrivateChildDirectory as j,gitLifecycleRuntimeDirectory as H,readGitLifecycleRuntimeSync as L,releaseGitLifecyclePhysicalIntegrationLock as $}from"../git/git-lifecycle-store.js";import{anchoredAtomicWriteFile as Y}from"../git/secure-filesystem-boundary.js";import{readPrivateYoloFrozenWriteSet as d,readPrivateYoloFrozenWriteSetForTransition as F}from"./clean-baseline.js";import{admitPrivateYoloFrozenWorkspace as M,verifyPrivateYoloSnapshotBoundary as m}from"./isolated-admission.js";import{preparePrivateYoloIsolatedWorkspace as J}from"./isolated-workspace.js";function l(n,t){const e={...process.env};for(const s of["GIT_DIR","GIT_WORK_TREE","GIT_INDEX_FILE","GIT_OBJECT_DIRECTORY","GIT_ALTERNATE_OBJECT_DIRECTORIES","GIT_COMMON_DIR","GIT_NAMESPACE","GIT_CEILING_DIRECTORIES"])delete e[s];return k("git",[...t],{cwd:n,env:e,encoding:"utf8",stdio:["ignore","pipe","pipe"],timeout:3e4,maxBuffer:16*1024*1024}).trim()}function y(n,t){const e={...process.env};for(const s of["GIT_DIR","GIT_WORK_TREE","GIT_INDEX_FILE","GIT_OBJECT_DIRECTORY","GIT_ALTERNATE_OBJECT_DIRECTORIES","GIT_COMMON_DIR","GIT_NAMESPACE","GIT_CEILING_DIRECTORIES"])delete e[s];return k("git",[...t],{cwd:n,env:e,stdio:["ignore","pipe","pipe"],timeout:3e4,maxBuffer:16*1024*1024})}function b(n,t){const e={...process.env};for(const o of["GIT_DIR","GIT_WORK_TREE","GIT_INDEX_FILE","GIT_OBJECT_DIRECTORY","GIT_ALTERNATE_OBJECT_DIRECTORIES","GIT_COMMON_DIR","GIT_NAMESPACE","GIT_CEILING_DIRECTORIES"])delete e[o];const s=A("git",[...t],{cwd:n,env:e,stdio:"ignore",timeout:3e4});if(s.error||s.signal)throw new Error("git-unverified");return s.status===0}async function P(n,t){const e=await H(n),s=await j(e,"private-execution"),o=`session-${x("sha256").update(t).digest("hex")}.json`;return{parent:s,name:o,path:T(s,o)}}function h(n,t){const e=t.split(".")[0],o=L(n,{required:!0}).epics[e]?.branch_lease,i=o&&typeof o=="object"&&!Array.isArray(o)?o:void 0,r=i?.sessionId;if(i?.ownerStoryId!==t||typeof r!="string"||!/^setup-[a-f0-9]{64}$/.test(r)||r!==i.idempotencyKey)throw new Error("session-lease-invalid");return r}function W(n){const t=JSON.parse(n);if(!t||typeof t!="object"||Array.isArray(t))throw new Error("session-invalid");const e=t,s=e.workspace;if(Object.keys(e).sort().join(",")!==["schemaVersion","kind","storyId","initialGraphRevision","graphRevision","graphHistory","setupSessionId","workspace","snapshotSha","sequence","lastPatchSha256"].sort().join(",")||e.schemaVersion!==1||e.kind!=="private-yolo-isolated-session"||typeof e.storyId!="string"||!/^[A-Za-z][A-Za-z0-9_-]*\.[A-Za-z0-9._-]+$/.test(e.storyId)||typeof e.initialGraphRevision!="string"||!/^[a-f0-9]{64}$/.test(e.initialGraphRevision)||typeof e.graphRevision!="string"||!/^[a-f0-9]{64}$/.test(e.graphRevision)||!Array.isArray(e.graphHistory)||e.graphHistory.length<1||e.graphHistory.length>65||e.graphHistory.some(i=>typeof i!="string"||!/^[a-f0-9]{64}$/.test(i))||new Set(e.graphHistory).size!==e.graphHistory.length||e.graphHistory[0]!==e.initialGraphRevision||e.graphHistory[e.graphHistory.length-1]!==e.graphRevision||typeof e.setupSessionId!="string"||!/^setup-[a-f0-9]{64}$/.test(e.setupSessionId)||typeof e.snapshotSha!="string"||!/^[a-f0-9]{40,64}$/.test(e.snapshotSha)||!Number.isSafeInteger(e.sequence)||Number(e.sequence)<0||Number(e.sequence)>64||Number(e.sequence)===0&&e.initialGraphRevision!==e.graphRevision||Number(e.sequence)===0&&e.lastPatchSha256!==null||Number(e.sequence)>0&&e.lastPatchSha256===null||e.lastPatchSha256!==null&&(typeof e.lastPatchSha256!="string"||!/^[a-f0-9]{64}$/.test(e.lastPatchSha256))||!s||typeof s!="object"||Array.isArray(s))throw new Error("session-invalid");const o=s;if(Object.keys(o).sort().join(",")!==["schemaVersion","sourceRoot","workspacePath","baseSha","executionBranch"].sort().join(",")||o.schemaVersion!==1||typeof o.sourceRoot!="string"||typeof o.workspacePath!="string"||typeof o.baseSha!="string"||!/^[a-f0-9]{40,64}$/.test(o.baseSha)||typeof o.executionBranch!="string"||!o.executionBranch)throw new Error("session-invalid");return e}async function f(n,t){const e=await P(n,t);if(q(e.path))return await B(e.path,e.parent),W(D(e.path,"utf8"))}async function v(n,t){const e=await P(n,t.storyId);await Y(e.parent,e.name,`${JSON.stringify(t)}
2
- `)}async function E(n,t,e,s){const o=await N(n,{kind:"direct",storyId:t,sessionId:e,idempotencyKey:e,expiresAt:new Date(Date.now()+3e5).toISOString(),persistent:!1});if(!o.ok)throw new Error("private-execution-isolated-session-backpressure");try{return await s()}finally{if(!await $(o.path,o.owner))throw new Error("private-execution-isolated-session-lock-unverified")}}async function g(n,t,e,s){G(n,t,e,s);const o=await d(t,e,n.workspace.executionBranch,s);m(n.workspace,o,n.snapshotSha)}function G(n,t,e,s){if(n.storyId!==e||n.graphRevision!==s||n.workspace.sourceRoot!==t||n.setupSessionId!==h(t,e)||n.sequence===0&&n.snapshotSha!==n.workspace.baseSha||n.sequence>0&&n.snapshotSha===n.workspace.baseSha)throw new Error("session-binding-invalid")}async function ie(n,t,e){const s=p(n.sourceRoot);try{const o=h(s,t);return await E(s,t,o,async()=>{const i=await f(s,t);if(i){if(await g(i,s,t,e),i.workspace.workspacePath!==n.workspacePath)throw new Error("session-replacement-denied");return i}const r=await d(s,t,n.executionBranch,e);m(n,r,n.baseSha);const c=Object.freeze({schemaVersion:1,kind:"private-yolo-isolated-session",storyId:t,initialGraphRevision:e,graphRevision:e,graphHistory:[e],setupSessionId:o,workspace:n,snapshotSha:n.baseSha,sequence:0,lastPatchSha256:null});return await v(s,c),c})}catch{throw new Error("private-execution-isolated-session-unverified")}}async function R(n,t,e,s){if(n.graphRevision===s)return await g(n,t,e,s),n;if(n.storyId!==e||n.workspace.sourceRoot!==t||n.setupSessionId!==h(t,e)||n.sequence===0||n.lastPatchSha256===null||n.graphHistory.includes(s)||n.graphHistory.length>=65)throw new Error("session-graph-transition-invalid");const o=await F(t,e,n.workspace.executionBranch,n.initialGraphRevision,s);m(n.workspace,o,n.snapshotSha);const i=Object.freeze({...n,graphRevision:s,graphHistory:Object.freeze([...n.graphHistory,s])});return await v(t,i),await g(i,t,e,s),i}async function oe(n,t,e){const s=p(n);try{const o=h(s,t);return await E(s,t,o,async()=>{const i=await f(s,t);if(!i)throw new Error("session-missing");return R(i,s,t,e)})}catch{throw new Error("private-execution-isolated-session-unverified")}}async function ae(n,t,e,s){const o=p(n);try{const i=h(o,t);return await E(o,t,i,async()=>{const r=await f(o,t);if(r)return R(r,o,t,e);const c=s??T(z(),".local","share","neocortex","private-yolo-workspaces");s===void 0&&C(c,{recursive:!0,mode:448});const a=J(o,c),u=await d(o,t,a.executionBranch,e);m(a,u,a.baseSha);const w=Object.freeze({schemaVersion:1,kind:"private-yolo-isolated-session",storyId:t,initialGraphRevision:e,graphRevision:e,graphHistory:[e],setupSessionId:i,workspace:a,snapshotSha:a.baseSha,sequence:0,lastPatchSha256:null});return await v(o,w),w})}catch{throw new Error("private-execution-isolated-session-unverified")}}async function re(n,t,e){const s=p(n);try{const o=await f(s,t);if(!o)throw new Error("session-missing");return await g(o,s,t,e),o}catch{throw new Error("private-execution-isolated-session-unverified")}}async function ce(n,t,e){const s=p(n);try{const o=h(s,t);return await E(s,t,o,async()=>{const i=await f(s,t);if(!i)throw new Error("session-missing");G(i,s,t,e);const r=await M(i.workspace,t,e,i.snapshotSha,i.sequence===0);l(i.workspace.workspacePath,["add","-A","--",...r.changedPaths]),l(i.workspace.workspacePath,["-c","core.hooksPath=/dev/null","-c","commit.gpgsign=false","-c","user.name=Neocortex Private Session","-c","user.email=private-session@neocortex.invalid","commit","-q","-m",`private snapshot ${t} ${i.sequence+1}`]);const c=l(i.workspace.workspacePath,["rev-parse","HEAD"]),a=await d(s,t,i.workspace.executionBranch,e);m(i.workspace,a,c);const u=Object.freeze({...i,snapshotSha:c,sequence:i.sequence+1,lastPatchSha256:r.patchSha256});return await v(s,u),{session:u,admission:r}})}catch{throw new Error("private-execution-isolated-session-unverified")}}async function he(n,t,e){const s=p(n);try{const o=h(s,t);return await E(s,t,o,async()=>{const i=await f(s,t);if(!i||i.sequence<1)throw new Error("session-incomplete");await g(i,s,t,e);const r=await d(s,t,i.workspace.executionBranch,e),c=i.workspace.workspacePath,a=y(c,["diff","--name-only","-z",i.workspace.baseSha,i.snapshotSha]).toString("utf8").split("\0").filter(Boolean).sort(),u=[".neocortex/state.json",`docs/stories/${t}.story.md`,`.neocortex/stories/${t}/qa-gate-result.json`,`.neocortex/stories/${t}/validation-evidence.md`,`.neocortex/stories/${t}/review.md`];if(a.length===0||a.length>1024||new Set(a).size!==a.length||a.some(S=>!r.includes(S))||u.some(S=>!a.includes(S)))throw new Error("bundle-incomplete");if(!b(s,["diff","--cached","--quiet"])||y(s,["ls-files","-u","-z"]).byteLength!==0)throw new Error("index-not-clean");const w=y(c,["diff","--binary","--full-index",i.workspace.baseSha,i.snapshotSha]);if(w.byteLength===0)throw new Error("bundle-empty");l(s,["add","-A","--",...a]);const I=y(s,["diff","--cached","--binary","--full-index"]),_=y(s,["diff","--cached","--name-only","-z"]).toString("utf8").split("\0").filter(Boolean).sort();if(!I.equals(w)||_.length!==a.length||_.some((S,O)=>S!==a[O])||!b(s,["diff","--quiet"])||l(s,["rev-parse","HEAD"])!==i.workspace.baseSha||l(s,["symbolic-ref","--quiet","--short","HEAD"])!==i.workspace.executionBranch)throw new Error("bundle-raced");return Object.freeze({schemaVersion:1,outcome:"staged-unverified",snapshotSha:i.snapshotSha,bundleSha256:x("sha256").update(I).digest("hex"),changedPaths:Object.freeze(a)})})}catch{throw new Error("private-execution-root-stage-unverified")}}export{ce as admitPrivateYoloIsolatedSessionStep,ie as beginPrivateYoloIsolatedSession,ae as ensurePrivateYoloIsolatedSession,oe as reconcilePrivateYoloIsolatedSession,re as resumePrivateYoloIsolatedSession,he as stagePrivateYoloIsolatedSessionBundle};
1
+ import{execFileSync as k,spawnSync as C}from"node:child_process";import{createHash as x}from"node:crypto";import{existsSync as D,mkdirSync as z,readFileSync as N}from"node:fs";import{homedir as B}from"node:os";import{join as T,resolve as p}from"node:path";import{acquireGitLifecyclePhysicalIntegrationLock as H,assertGitLifecyclePrivateFile as j,ensureGitLifecyclePrivateChildDirectory as L,gitLifecycleRuntimeDirectory as $,readGitLifecycleRuntimeSync as b,releaseGitLifecyclePhysicalIntegrationLock as Y}from"../git/git-lifecycle-store.js";import{anchoredAtomicWriteFile as F}from"../git/secure-filesystem-boundary.js";import{privateYoloRootOnlySetupReady as M,readPrivateYoloFrozenWriteSet as y,readPrivateYoloFrozenWriteSetForTransition as J}from"./clean-baseline.js";import{admitPrivateYoloFrozenWorkspace as W,verifyPrivateYoloSnapshotBoundary as m}from"./isolated-admission.js";import{preparePrivateYoloIsolatedWorkspace as V}from"./isolated-workspace.js";function l(s,t){const e={...process.env};for(const n of["GIT_DIR","GIT_WORK_TREE","GIT_INDEX_FILE","GIT_OBJECT_DIRECTORY","GIT_ALTERNATE_OBJECT_DIRECTORIES","GIT_COMMON_DIR","GIT_NAMESPACE","GIT_CEILING_DIRECTORIES"])delete e[n];return k("git",[...t],{cwd:s,env:e,encoding:"utf8",stdio:["ignore","pipe","pipe"],timeout:3e4,maxBuffer:16*1024*1024}).trim()}function d(s,t){const e={...process.env};for(const n of["GIT_DIR","GIT_WORK_TREE","GIT_INDEX_FILE","GIT_OBJECT_DIRECTORY","GIT_ALTERNATE_OBJECT_DIRECTORIES","GIT_COMMON_DIR","GIT_NAMESPACE","GIT_CEILING_DIRECTORIES"])delete e[n];return k("git",[...t],{cwd:s,env:e,stdio:["ignore","pipe","pipe"],timeout:3e4,maxBuffer:16*1024*1024})}function P(s,t){const e={...process.env};for(const i of["GIT_DIR","GIT_WORK_TREE","GIT_INDEX_FILE","GIT_OBJECT_DIRECTORY","GIT_ALTERNATE_OBJECT_DIRECTORIES","GIT_COMMON_DIR","GIT_NAMESPACE","GIT_CEILING_DIRECTORIES"])delete e[i];const n=C("git",[...t],{cwd:s,env:e,stdio:"ignore",timeout:3e4});if(n.error||n.signal)throw new Error("git-unverified");return n.status===0}async function G(s,t){const e=await $(s),n=await L(e,"private-execution"),i=`session-${x("sha256").update(t).digest("hex")}.json`;return{parent:n,name:i,path:T(n,i)}}function h(s,t){const e=t.split(".")[0],i=b(s,{required:!0}).epics[e]?.branch_lease,a=i&&typeof i=="object"&&!Array.isArray(i)?i:void 0,r=a?.sessionId;if(a?.ownerStoryId!==t||typeof r!="string"||!/^setup-[a-f0-9]{64}$/.test(r)||r!==a.idempotencyKey)throw new Error("session-lease-invalid");return r}function R(s,t){const e=b(s,{required:!0}).stories[t];return M(e)}function K(s){const t=JSON.parse(s);if(!t||typeof t!="object"||Array.isArray(t))throw new Error("session-invalid");const e=t,n=e.workspace;if(Object.keys(e).sort().join(",")!==["schemaVersion","kind","storyId","initialGraphRevision","graphRevision","graphHistory","setupSessionId","workspace","snapshotSha","sequence","lastPatchSha256"].sort().join(",")||e.schemaVersion!==1||e.kind!=="private-yolo-isolated-session"||typeof e.storyId!="string"||!/^[A-Za-z][A-Za-z0-9_-]*\.[A-Za-z0-9._-]+$/.test(e.storyId)||typeof e.initialGraphRevision!="string"||!/^[a-f0-9]{64}$/.test(e.initialGraphRevision)||typeof e.graphRevision!="string"||!/^[a-f0-9]{64}$/.test(e.graphRevision)||!Array.isArray(e.graphHistory)||e.graphHistory.length<1||e.graphHistory.length>65||e.graphHistory.some(a=>typeof a!="string"||!/^[a-f0-9]{64}$/.test(a))||new Set(e.graphHistory).size!==e.graphHistory.length||e.graphHistory[0]!==e.initialGraphRevision||e.graphHistory[e.graphHistory.length-1]!==e.graphRevision||typeof e.setupSessionId!="string"||!/^setup-[a-f0-9]{64}$/.test(e.setupSessionId)||typeof e.snapshotSha!="string"||!/^[a-f0-9]{40,64}$/.test(e.snapshotSha)||!Number.isSafeInteger(e.sequence)||Number(e.sequence)<0||Number(e.sequence)>64||Number(e.sequence)===0&&e.initialGraphRevision!==e.graphRevision&&e.graphHistory.length!==2||Number(e.sequence)===0&&e.lastPatchSha256!==null||Number(e.sequence)>0&&e.lastPatchSha256===null||e.lastPatchSha256!==null&&(typeof e.lastPatchSha256!="string"||!/^[a-f0-9]{64}$/.test(e.lastPatchSha256))||!n||typeof n!="object"||Array.isArray(n))throw new Error("session-invalid");const i=n;if(Object.keys(i).sort().join(",")!==["schemaVersion","sourceRoot","workspacePath","baseSha","executionBranch"].sort().join(",")||i.schemaVersion!==1||typeof i.sourceRoot!="string"||typeof i.workspacePath!="string"||typeof i.baseSha!="string"||!/^[a-f0-9]{40,64}$/.test(i.baseSha)||typeof i.executionBranch!="string"||!i.executionBranch)throw new Error("session-invalid");return e}async function f(s,t){const e=await G(s,t);if(D(e.path))return await j(e.path,e.parent),K(N(e.path,"utf8"))}async function v(s,t){const e=await G(s,t.storyId);await F(e.parent,e.name,`${JSON.stringify(t)}
2
+ `)}async function g(s,t,e,n){const i=await H(s,{kind:"direct",storyId:t,sessionId:e,idempotencyKey:e,expiresAt:new Date(Date.now()+3e5).toISOString(),persistent:!1});if(!i.ok)throw new Error("private-execution-isolated-session-backpressure");try{return await n()}finally{if(!await Y(i.path,i.owner))throw new Error("private-execution-isolated-session-lock-unverified")}}async function E(s,t,e,n){O(s,t,e,n);const i=await y(t,e,s.workspace.executionBranch,n);m(s.workspace,i,s.snapshotSha)}function O(s,t,e,n){if(s.storyId!==e||s.graphRevision!==n||s.workspace.sourceRoot!==t||s.setupSessionId!==h(t,e)||s.sequence===0&&s.snapshotSha!==s.workspace.baseSha||s.sequence===0&&s.graphHistory.length>1&&!R(t,e)||s.sequence>0&&s.snapshotSha===s.workspace.baseSha)throw new Error("session-binding-invalid")}async function oe(s,t,e){const n=p(s.sourceRoot);try{const i=h(n,t);return await g(n,t,i,async()=>{const a=await f(n,t);if(a){if(await E(a,n,t,e),a.workspace.workspacePath!==s.workspacePath)throw new Error("session-replacement-denied");return a}const r=await y(n,t,s.executionBranch,e);m(s,r,s.baseSha);const c=Object.freeze({schemaVersion:1,kind:"private-yolo-isolated-session",storyId:t,initialGraphRevision:e,graphRevision:e,graphHistory:[e],setupSessionId:i,workspace:s,snapshotSha:s.baseSha,sequence:0,lastPatchSha256:null});return await v(n,c),c})}catch{throw new Error("private-execution-isolated-session-unverified")}}async function A(s,t,e,n){if(s.graphRevision===n)return await E(s,t,e,n),s;if(s.storyId!==e||s.workspace.sourceRoot!==t||s.setupSessionId!==h(t,e)||s.sequence===0&&(s.graphHistory.length!==1||s.lastPatchSha256!==null||!R(t,e))||s.sequence>0&&s.lastPatchSha256===null||s.graphHistory.includes(n)||s.graphHistory.length>=65)throw new Error("session-graph-transition-invalid");const i=await J(t,e,s.workspace.executionBranch,s.initialGraphRevision,n);m(s.workspace,i,s.snapshotSha);const a=Object.freeze({...s,graphRevision:n,graphHistory:Object.freeze([...s.graphHistory,n])});return await v(t,a),await E(a,t,e,n),a}async function re(s,t,e){const n=p(s);try{const i=h(n,t);return await g(n,t,i,async()=>{const a=await f(n,t);if(!a)throw new Error("session-missing");return A(a,n,t,e)})}catch{throw new Error("private-execution-isolated-session-unverified")}}async function ce(s,t,e,n){const i=p(s);try{const a=h(i,t);return await g(i,t,a,async()=>{const r=await f(i,t);if(r)return A(r,i,t,e);const c=n??T(B(),".local","share","neocortex","private-yolo-workspaces");n===void 0&&z(c,{recursive:!0,mode:448});const o=V(i,c),u=await y(i,t,o.executionBranch,e);m(o,u,o.baseSha);const w=Object.freeze({schemaVersion:1,kind:"private-yolo-isolated-session",storyId:t,initialGraphRevision:e,graphRevision:e,graphHistory:[e],setupSessionId:a,workspace:o,snapshotSha:o.baseSha,sequence:0,lastPatchSha256:null});return await v(i,w),w})}catch{throw new Error("private-execution-isolated-session-unverified")}}async function he(s,t,e){const n=p(s);try{const i=await f(n,t);if(!i)throw new Error("session-missing");return await E(i,n,t,e),i}catch{throw new Error("private-execution-isolated-session-unverified")}}async function ue(s,t,e){const n=p(s);try{const i=h(n,t);return await g(n,t,i,async()=>{const a=await f(n,t);if(!a)throw new Error("session-missing");O(a,n,t,e);const r=await W(a.workspace,t,e,a.snapshotSha);l(a.workspace.workspacePath,["add","-A","--",...r.changedPaths]),l(a.workspace.workspacePath,["-c","core.hooksPath=/dev/null","-c","commit.gpgsign=false","-c","user.name=Neocortex Private Session","-c","user.email=private-session@neocortex.invalid","commit","-q","-m",`private snapshot ${t} ${a.sequence+1}`]);const c=l(a.workspace.workspacePath,["rev-parse","HEAD"]),o=await y(n,t,a.workspace.executionBranch,e);m(a.workspace,o,c);const u=Object.freeze({...a,snapshotSha:c,sequence:a.sequence+1,lastPatchSha256:r.patchSha256});return await v(n,u),{session:u,admission:r}})}catch{throw new Error("private-execution-isolated-session-unverified")}}async function pe(s,t,e){const n=p(s);try{const i=h(n,t);return await g(n,t,i,async()=>{const a=await f(n,t);if(!a||a.sequence<1)throw new Error("session-incomplete");await E(a,n,t,e);const r=await y(n,t,a.workspace.executionBranch,e),c=a.workspace.workspacePath,o=d(c,["diff","--name-only","-z",a.workspace.baseSha,a.snapshotSha]).toString("utf8").split("\0").filter(Boolean).sort(),u=[".neocortex/state.json",`docs/stories/${t}.story.md`,`.neocortex/stories/${t}/qa-gate-result.json`,`.neocortex/stories/${t}/validation-evidence.md`,`.neocortex/stories/${t}/review.md`];if(o.length===0||o.length>1024||new Set(o).size!==o.length||o.some(S=>!r.includes(S))||u.some(S=>!o.includes(S)))throw new Error("bundle-incomplete");if(!P(n,["diff","--cached","--quiet"])||d(n,["ls-files","-u","-z"]).byteLength!==0)throw new Error("index-not-clean");const w=d(c,["diff","--binary","--full-index",a.workspace.baseSha,a.snapshotSha]);if(w.byteLength===0)throw new Error("bundle-empty");l(n,["add","-A","--",...o]);const I=d(n,["diff","--cached","--binary","--full-index"]),_=d(n,["diff","--cached","--name-only","-z"]).toString("utf8").split("\0").filter(Boolean).sort();if(!I.equals(w)||_.length!==o.length||_.some((S,q)=>S!==o[q])||!P(n,["diff","--quiet"])||l(n,["rev-parse","HEAD"])!==a.workspace.baseSha||l(n,["symbolic-ref","--quiet","--short","HEAD"])!==a.workspace.executionBranch)throw new Error("bundle-raced");return Object.freeze({schemaVersion:1,outcome:"staged-unverified",snapshotSha:a.snapshotSha,bundleSha256:x("sha256").update(I).digest("hex"),changedPaths:Object.freeze(o)})})}catch{throw new Error("private-execution-root-stage-unverified")}}export{ue as admitPrivateYoloIsolatedSessionStep,oe as beginPrivateYoloIsolatedSession,ce as ensurePrivateYoloIsolatedSession,re as reconcilePrivateYoloIsolatedSession,he as resumePrivateYoloIsolatedSession,pe as stagePrivateYoloIsolatedSessionBundle};
@@ -0,0 +1 @@
1
+ {"type":"module"}
@@ -1,4 +1,4 @@
1
- # 🧠 Neocortex v4.60.62 | OrNexus Team
1
+ # 🧠 Neocortex v4.60.63 | 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.62 | OrNexus Team"
3
+ description: "🧠 Neocortex v4.60.63 | OrNexus Team"
4
4
  ---
5
5
 
6
6
  <!--
@@ -4,7 +4,7 @@ agent:
4
4
  name: 'Neocortex Root Agent'
5
5
  title: 'Development Orchestrator (Root)'
6
6
  icon: '>'
7
- version: '4.60.62'
7
+ version: '4.60.63'
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.62 | OrNexus Team"
3
+ description: "🧠 Neocortex Root Agent v4.60.63 | 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.62 │
111
+ │ ### ######## v4.60.63 │
112
112
  │ ######### ##### │
113
113
  │ ## ############## Development Orchestrator │
114
114
  │ ## ### ###### ## OrNexus Team │
@@ -4,7 +4,7 @@ agent:
4
4
  name: 'Neocortex'
5
5
  title: 'Development Orchestrator'
6
6
  icon: '>'
7
- version: '4.60.62'
7
+ version: '4.60.63'
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.62 | OrNexus Team"
3
+ description: "🧠 Neocortex v4.60.63 | 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.62 │
107
+ │ ### ######## v4.60.63 │
108
108
  │ ######### ##### │
109
109
  │ ## ############## Development Orchestrator │
110
110
  │ ## ### ###### ## OrNexus Team │
@@ -28,7 +28,7 @@ Codex built-in commands or actions.
28
28
 
29
29
  <!-- END: Plugin Conflict Prevention -->
30
30
 
31
- # Neocortex v4.60.62 | OrNexus Team
31
+ # Neocortex v4.60.63 | OrNexus Team
32
32
 
33
33
  You are a Development Orchestrator. All orchestration logic is delivered by the remote Neocortex server.
34
34
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: neocortex
3
- description: "🧠 Neocortex v4.60.62 | OrNexus Team"
3
+ description: "🧠 Neocortex v4.60.63 | 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.62 │
67
+ │ ### ######## v4.60.63 │
68
68
  │ ######### ##### │
69
69
  │ ## ############## Development Orchestrator │
70
70
  │ ## ### ###### ## OrNexus Team │
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: neocortex-root
3
- description: "🧠 Neocortex v4.60.62 | OrNexus Team"
3
+ description: "🧠 Neocortex v4.60.63 | 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.62 │
65
+ │ ### ######## v4.60.63 │
66
66
  │ ######### ##### │
67
67
  │ ## ############## Development Orchestrator │
68
68
  │ ## ### ###### ## OrNexus Team │
@@ -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.62 │
61
+ │ ### ######## v4.60.63 │
62
62
  │ ######### ##### │
63
63
  │ ## ############## Development Orchestrator │
64
64
  │ ## ### ###### ## OrNexus Team │
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: "neocortex"
3
- description: "Neocortex v4.60.62 | OrNexus Team"
3
+ description: "Neocortex v4.60.63 | 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.62 │
71
+ │ ### ######## v4.60.63 │
72
72
  │ ######### ##### │
73
73
  │ ## ############## Development Orchestrator │
74
74
  │ ## ### ###### ## OrNexus Team │