@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/cli/main.js +258 -258
- package/dist/sdk/index.js +1 -1
- package/dist/server/main.js +1 -1
- package/package.json +1 -1
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={};
|
|
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.":""}
|
package/dist/server/main.js
CHANGED
|
@@ -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={};
|
|
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.":""}
|