@mk-co/neox-cli 2.0.83 → 2.0.85

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/dist/sdk/index.js CHANGED
@@ -1793,7 +1793,7 @@ Error: ${e}
1793
1793
  Suggestions:
1794
1794
  1. Re-read with readfile(path, for_edit=true)
1795
1795
  2. Ensure old_string matches exactly (spaces, newlines)
1796
- 3. If failing repeatedly, consider rewriting with write_file`}gt();gt();var XN=class{history=[];maxHistory=20;interventionCount=0;hashArgs(e,t){let A={};e==="readfile"?Object.assign(A,t):e==="edit_file"||e==="Edit"?(A.file_path=t.file_path||t.path,t.old_string&&typeof t.old_string=="string"&&(A.old_string_prefix=t.old_string.substring(0,200))):e==="write_file"||e==="Write"?A.file_path=t.file_path||t.path:t.file_path?A.file_path=t.file_path:t.path?A.path=t.path:t.directory?A.directory=t.directory:Object.assign(A,t);let i=`${e}:${JSON.stringify(A)}`;return createHash("sha256").update(i).digest("hex").substring(0,16)}record(e,t,A){let i=this.hashArgs(e,t),s=t.file_path||t.path||t.directory;process.env.CLI_DEBUG==="1"&&Q.debug("LOOP_DETECTOR",`Recording ${e}:`,{hash:i.substring(0,8),argsPreview:JSON.stringify(t).substring(0,150),historyLengthBefore:this.history.length}),this.history.push({hash:i,toolName:e,args:t,timestamp:Date.now(),resultStatus:A,filePath:s}),this.history.length>this.maxHistory&&this.history.shift();}updateLastStatus(e){this.history.length>0&&(this.history[this.history.length-1].resultStatus=e);}detect(e,t){let A=this.hashArgs(e,t),i=this.history.filter(a=>a.hash===A),s=this.history.filter(a=>a.toolName===e).slice(-6),n=s.filter(a=>a.resultStatus==="error"||a.resultStatus===void 0).length,o=s.some(a=>a.resultStatus==="success"||a.resultStatus==="already_done");return process.env.CLI_DEBUG==="1"&&Q.debug("LOOP_DETECTOR",`Detecting loop for ${e}:`,{hash:A.substring(0,8),historyCount:this.history.length,sameHashCount:i.length,sameToolRecent:s.length,sameToolFailures:n,sameToolHasSuccess:o,args:JSON.stringify(t).substring(0,100)}),i.length>=4?4:s.length>=4&&!o&&n>=3||i.length>=3?3:i.length>=2?2:0}wasLastSuccessful(e,t){let A=this.hashArgs(e,t),i=[...this.history].reverse().find(s=>s.hash===A);return i?.resultStatus==="success"||i?.resultStatus==="already_done"}getLastFilePath(e,t){let A=this.hashArgs(e,t);return [...this.history].reverse().find(s=>s.hash===A)?.filePath}didSwitchTool(e){return this.history.length<2?true:this.history[this.history.length-1]?.toolName!==e}incrementIntervention(){return ++this.interventionCount}getInterventionCount(){return this.interventionCount}generateIntervention(e,t,A){let i=this.getLastFilePath(t,A)||A.file_path||A.path||A.directory,s=this.wasLastSuccessful(t,A),n=this.getVerifyCommand(t,i),o=this.getAlternativeAction(t,i);switch(e){case 2:return {level:e,wasSuccessful:s,shouldTerminate:false,message:`
1796
+ 3. If failing repeatedly, consider rewriting with write_file`}gt();gt();var XN=class{history=[];maxHistory=20;interventionCount=0;hashArgs(e,t){let A={},i=e.toLowerCase(),s=t;i==="readfile"||i==="read"?Object.assign(A,s):i==="edit_file"||i==="edit"?(A.file_path=s.file_path||s.path,s.old_string&&typeof s.old_string=="string"&&(A.old_string_prefix=s.old_string.substring(0,200))):i==="write_file"||i==="write"?A.file_path=s.file_path||s.path:i==="search"||i==="search_files"||i==="glob"||i==="grep"?(A.path=s.path||s.file_path||s.directory,A.mode=s.mode,A.pattern=s.pattern,A.query=s.query,A.regex=s.regex,A.case_insensitive=s.case_insensitive,Array.isArray(s.keywords)&&(A.keywords=s.keywords.map(o=>String(o))),Array.isArray(s.queries)&&(A.queries=s.queries.map(o=>({pattern:o?.pattern,op:o?.op,regex:o?.regex})))):s.file_path?A.file_path=s.file_path:s.path?A.path=s.path:s.directory?A.directory=s.directory:Object.assign(A,s);let n=`${i}:${JSON.stringify(A)}`;return createHash("sha256").update(n).digest("hex").substring(0,16)}record(e,t,A){let i=this.hashArgs(e,t),s=t.file_path||t.path||t.directory;process.env.CLI_DEBUG==="1"&&Q.debug("LOOP_DETECTOR",`Recording ${e}:`,{hash:i.substring(0,8),argsPreview:JSON.stringify(t).substring(0,150),historyLengthBefore:this.history.length}),this.history.push({hash:i,toolName:e,args:t,timestamp:Date.now(),resultStatus:A,filePath:s}),this.history.length>this.maxHistory&&this.history.shift();}updateLastStatus(e){this.history.length>0&&(this.history[this.history.length-1].resultStatus=e);}detect(e,t){let A=this.hashArgs(e,t),i=this.history.filter(a=>a.hash===A),s=this.history.filter(a=>a.toolName===e).slice(-6),n=s.filter(a=>a.resultStatus==="error"||a.resultStatus===void 0).length,o=s.some(a=>a.resultStatus==="success"||a.resultStatus==="already_done");return process.env.CLI_DEBUG==="1"&&Q.debug("LOOP_DETECTOR",`Detecting loop for ${e}:`,{hash:A.substring(0,8),historyCount:this.history.length,sameHashCount:i.length,sameToolRecent:s.length,sameToolFailures:n,sameToolHasSuccess:o,args:JSON.stringify(t).substring(0,100)}),i.length>=4?4:s.length>=4&&!o&&n>=3||i.length>=3?3:i.length>=2?2:0}wasLastSuccessful(e,t){let A=this.hashArgs(e,t),i=[...this.history].reverse().find(s=>s.hash===A);return i?.resultStatus==="success"||i?.resultStatus==="already_done"}getLastFilePath(e,t){let A=this.hashArgs(e,t);return [...this.history].reverse().find(s=>s.hash===A)?.filePath}didSwitchTool(e){return this.history.length<2?true:this.history[this.history.length-1]?.toolName!==e}incrementIntervention(){return ++this.interventionCount}getInterventionCount(){return this.interventionCount}generateIntervention(e,t,A){let i=this.getLastFilePath(t,A)||A.file_path||A.path||A.directory,s=this.wasLastSuccessful(t,A),n=this.getVerifyCommand(t,i),o=this.getAlternativeAction(t,i);switch(e){case 2:return {level:e,wasSuccessful:s,shouldTerminate:false,message:`
1797
1797
  [SYSTEM NOTICE]
1798
1798
  You have called "${t}" ${this.getCallCount(t,A)} times with similar arguments.
1799
1799
  ${s?"\u26A0\uFE0F Previous calls already returned SUCCESS.":""}
@@ -980,7 +980,7 @@ You are producing plain text that will later be styled by the CLI. Follow these
980
980
  * Optionally include line/column (1\u2011based): :line[:column] or #Lline[Ccolumn] (column defaults to 1).
981
981
  * Do not use URIs like file://, vscode://, or https://.
982
982
  * Do not provide range of lines
983
- * Examples: src/app.ts, src/app.ts:42, b/server/index.js#L10, C:\\repo\\project\\main.rs:12:5`;});function i6(){return new __}var __,s6=P(()=>{Fe();__=class{history=[];maxHistory=20;interventionCount=0;hashArgs(e,t){let r={};e==="readfile"?Object.assign(r,t):e==="edit_file"||e==="Edit"?(r.file_path=t.file_path||t.path,t.old_string&&typeof t.old_string=="string"&&(r.old_string_prefix=t.old_string.substring(0,200))):e==="write_file"||e==="Write"?r.file_path=t.file_path||t.path:t.file_path?r.file_path=t.file_path:t.path?r.path=t.path:t.directory?r.directory=t.directory:Object.assign(r,t);let i=`${e}:${JSON.stringify(r)}`;return createHash("sha256").update(i).digest("hex").substring(0,16)}record(e,t,r){let i=this.hashArgs(e,t),n=t.file_path||t.path||t.directory;process.env.CLI_DEBUG==="1"&&m.debug("LOOP_DETECTOR",`Recording ${e}:`,{hash:i.substring(0,8),argsPreview:JSON.stringify(t).substring(0,150),historyLengthBefore:this.history.length}),this.history.push({hash:i,toolName:e,args:t,timestamp:Date.now(),resultStatus:r,filePath:n}),this.history.length>this.maxHistory&&this.history.shift();}updateLastStatus(e){this.history.length>0&&(this.history[this.history.length-1].resultStatus=e);}detect(e,t){let r=this.hashArgs(e,t),i=this.history.filter(a=>a.hash===r),n=this.history.filter(a=>a.toolName===e).slice(-6),o=n.filter(a=>a.resultStatus==="error"||a.resultStatus===void 0).length,A=n.some(a=>a.resultStatus==="success"||a.resultStatus==="already_done");return process.env.CLI_DEBUG==="1"&&m.debug("LOOP_DETECTOR",`Detecting loop for ${e}:`,{hash:r.substring(0,8),historyCount:this.history.length,sameHashCount:i.length,sameToolRecent:n.length,sameToolFailures:o,sameToolHasSuccess:A,args:JSON.stringify(t).substring(0,100)}),i.length>=4?4:n.length>=4&&!A&&o>=3||i.length>=3?3:i.length>=2?2:0}wasLastSuccessful(e,t){let r=this.hashArgs(e,t),i=[...this.history].reverse().find(n=>n.hash===r);return i?.resultStatus==="success"||i?.resultStatus==="already_done"}getLastFilePath(e,t){let r=this.hashArgs(e,t);return [...this.history].reverse().find(n=>n.hash===r)?.filePath}didSwitchTool(e){return this.history.length<2?true:this.history[this.history.length-1]?.toolName!==e}incrementIntervention(){return ++this.interventionCount}getInterventionCount(){return this.interventionCount}generateIntervention(e,t,r){let i=this.getLastFilePath(t,r)||r.file_path||r.path||r.directory,n=this.wasLastSuccessful(t,r),o=this.getVerifyCommand(t,i),A=this.getAlternativeAction(t,i);switch(e){case 2:return {level:e,wasSuccessful:n,shouldTerminate:false,message:`
983
+ * Examples: src/app.ts, src/app.ts:42, b/server/index.js#L10, C:\\repo\\project\\main.rs:12:5`;});function i6(){return new __}var __,s6=P(()=>{Fe();__=class{history=[];maxHistory=20;interventionCount=0;hashArgs(e,t){let r={},i=e.toLowerCase(),n=t;i==="readfile"||i==="read"?Object.assign(r,n):i==="edit_file"||i==="edit"?(r.file_path=n.file_path||n.path,n.old_string&&typeof n.old_string=="string"&&(r.old_string_prefix=n.old_string.substring(0,200))):i==="write_file"||i==="write"?r.file_path=n.file_path||n.path:i==="search"||i==="search_files"||i==="glob"||i==="grep"?(r.path=n.path||n.file_path||n.directory,r.mode=n.mode,r.pattern=n.pattern,r.query=n.query,r.regex=n.regex,r.case_insensitive=n.case_insensitive,Array.isArray(n.keywords)&&(r.keywords=n.keywords.map(A=>String(A))),Array.isArray(n.queries)&&(r.queries=n.queries.map(A=>({pattern:A?.pattern,op:A?.op,regex:A?.regex})))):n.file_path?r.file_path=n.file_path:n.path?r.path=n.path:n.directory?r.directory=n.directory:Object.assign(r,n);let o=`${i}:${JSON.stringify(r)}`;return createHash("sha256").update(o).digest("hex").substring(0,16)}record(e,t,r){let i=this.hashArgs(e,t),n=t.file_path||t.path||t.directory;process.env.CLI_DEBUG==="1"&&m.debug("LOOP_DETECTOR",`Recording ${e}:`,{hash:i.substring(0,8),argsPreview:JSON.stringify(t).substring(0,150),historyLengthBefore:this.history.length}),this.history.push({hash:i,toolName:e,args:t,timestamp:Date.now(),resultStatus:r,filePath:n}),this.history.length>this.maxHistory&&this.history.shift();}updateLastStatus(e){this.history.length>0&&(this.history[this.history.length-1].resultStatus=e);}detect(e,t){let r=this.hashArgs(e,t),i=this.history.filter(a=>a.hash===r),n=this.history.filter(a=>a.toolName===e).slice(-6),o=n.filter(a=>a.resultStatus==="error"||a.resultStatus===void 0).length,A=n.some(a=>a.resultStatus==="success"||a.resultStatus==="already_done");return process.env.CLI_DEBUG==="1"&&m.debug("LOOP_DETECTOR",`Detecting loop for ${e}:`,{hash:r.substring(0,8),historyCount:this.history.length,sameHashCount:i.length,sameToolRecent:n.length,sameToolFailures:o,sameToolHasSuccess:A,args:JSON.stringify(t).substring(0,100)}),i.length>=4?4:n.length>=4&&!A&&o>=3||i.length>=3?3:i.length>=2?2:0}wasLastSuccessful(e,t){let r=this.hashArgs(e,t),i=[...this.history].reverse().find(n=>n.hash===r);return i?.resultStatus==="success"||i?.resultStatus==="already_done"}getLastFilePath(e,t){let r=this.hashArgs(e,t);return [...this.history].reverse().find(n=>n.hash===r)?.filePath}didSwitchTool(e){return this.history.length<2?true:this.history[this.history.length-1]?.toolName!==e}incrementIntervention(){return ++this.interventionCount}getInterventionCount(){return this.interventionCount}generateIntervention(e,t,r){let i=this.getLastFilePath(t,r)||r.file_path||r.path||r.directory,n=this.wasLastSuccessful(t,r),o=this.getVerifyCommand(t,i),A=this.getAlternativeAction(t,i);switch(e){case 2:return {level:e,wasSuccessful:n,shouldTerminate:false,message:`
984
984
  [SYSTEM NOTICE]
985
985
  You have called "${t}" ${this.getCallCount(t,r)} times with similar arguments.
986
986
  ${n?"\u26A0\uFE0F Previous calls already returned SUCCESS.":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mk-co/neox-cli",
3
- "version": "2.0.83",
3
+ "version": "2.0.85",
4
4
  "description": "Professional AI code assistant CLI powered by Node.js",
5
5
  "type": "module",
6
6
  "main": "dist/cli/main.js",