Lines 1-46javascript
1import{createRequire as lW}from"node:module";var pW=Object.defineProperty;var dW=($)=>$;function iW($,f){this[$]=dW.bind(null,f)}var U0=($,f)=>{for(var Z in f)pW($,Z,{get:f[Z],enumerable:!0,configurable:!0,set:iW.bind(f,Z)})};var O=($,f)=>()=>($&&(f=$($=0)),f);var tW=lW(import.meta.url);import{writeFile as aW,rename as sW,unlink as eW}from"fs/promises";import{writeFileSync as $H,renameSync as fH,unlinkSync as ZH}from"fs";import{randomBytes as zH}from"crypto";import S3 from"path";function P8($){return S3.join(S3.dirname($),`.${S3.basename($)}.${process.pid}.${zH(4).toString("hex")}.tmp`)}async ...
2 `),Z=Xz().map((J)=>`(subpath ${Zz(L0.resolve(J))})`).join(`
3 `),z=$.network==="deny"?"(deny network*)":"";return`(version 1)
6(allow file-write-data (literal "/dev/null"))
14`}function Fz(){if(pf("/usr/bin/bwrap"))return"/usr/bin/bwrap";return"/usr/local/bin/bwrap"}function qz($,f,Z){let z=["--die-with-parent","--ro-bind","/","/","--dev","/dev","--proc","/proc"],J=new Set;for(let K of g4($)){let Q=process.platform==="win32"?K.toLowerCase():K;if(J.has(Q))continue;if(J.add(Q),pf(K))z.push("--bind",K,K)}if($.network==="deny")z.push("--unshare-net");return z.push("--chdir",f,"/bin/sh","-c",Z),z}function x4($){if($==="off"||r3()!=="none")return null;return $==="strict"?"⚠ Command-level sandboxing isn't supported on this platform (requires macOS sandbox-exec or Linux bw ...
15${Jz}`:zz,P}function h4($){return $==="off"?"off":$==="strict"?"strict":"workspace"}function Nz($){return $===
16\x1B[33m❓ ${z} (no interactive terminal — skipped)\x1B[0m`),null;if(console.log(),console.log(`\x1B[33m❓ ${z}\x1B[0m`),K){for(let G=0;G<K.length;G++)console.log(`\x1B[90m ${G+1}. ${K[G]}\x1B[0m`);if(Z)console.log("\x1B[90m (可勾选多项;最后一项可自己输入)\x1B[0m")}return new Promise((G)=>{let Y=yH.createInterface({input:process.stdin,output:process.stdout});Y.question("\x1B[36m → \x1B[0m",(P)=>{Y.close(),G(P.trim()||"(no answer)")})})}async function x$($){let f=N8.getStore();if(f){if(f.autoApprove)return!0;if(f.onConfirm)return f.onConfirm($);return!1}if(qf())return!0;if($9)return $9($);if(!process.std ...
17\x1B[33m⚠ Rejected (no interactive terminal): ${$}\x1B[0m`),!1;return e3?.pause(),process.stdout.write(`
18\x1B[90m┌─ 即将执行 ─────────────────────────────────\x1B[0m
19`),process.stdout.write(`\x1B[90m│\x1B[0m ${$}
20`),process.stdout.write(`\x1B[90m└────────────────────────────────────────────\x1B[0m
21`),process.stdout.write(`
22`),new Promise((Z)=>{let z=process.stdin.isRaw,J=process.stdin.readableEncoding;if(process.stdin.isTTY)process.stdin.setRawMode(!0);process.stdin.resume(),process.stdin.setEncoding("utf8");let K=1
24`),e3?.resume(),Z(M)};X();let H=(M)=>{Q+=M;while(Q.length>0){if(Q[0]==="\x1B"){if(Q[1]==="["){let q=Q.slice(2).search(/[A-Za-z~]/);if(q===-1)return;let U=Q[2+q];Q=Q.slice(3+q),P(U);continue}if(Q[1]==="O"){if(Q.length<3)return;let q=Q[2];Q=Q.slice(3),P(q);continue}if(Q.length===1){setTimeout(()=>{if(Q==="\x1B")Q="",W(!1)},50).unref?.();return}Q=Q.slice(1),W(!1);return}let F=Q[0];if(Q=Q.slice(1),F===`
25`&&!G)continue;if(F==="\r"||F===`
26`){if(!G)continue;W(K===0);return}if(F==="y"||F==="Y"){W(!0);return}if(F==="n"||F==="N"){W(!1);return}}};process.stdin.on("data",H)})}function K9($){return[/\brm\s+(-[a-z]*[rf][a-z]*|--recursive)\s/,/\bsudo\b/,/\bmkfs\b/,/\bdd\s+/,/\b(shutdown|reboot|halt|poweroff)\b/,/\bgit\s+(push|reset\s+--hard|clean\s+-[a-z]*f|rebase)/,/\bnpm
27 → ${$.hint}`:`✖ ${$.message}`;return`✖ ${$ instanceof Error?$.message:String($)}`}function Y9($){
28`),images:Z}}function jU($){if(s0($))return $;if(typeof $!=="string"||!$.trim())return{};try{let f=JSON
30`}function IU($){let f=new TextDecoder,Z=new TextEncoder,z=$.getReader(),J={sentRole:!1},K="";return new ReadableStream({async pull(Q){for(;;){let{done:G,value:Y}=await z.read();if(G){K+=f.decode();let H=K.trim();if(H)try{let M=JSON.parse(H);if(s0(M))Q.enqueue(Z.encode(MJ(HJ(M,J))))}catch{}Q.enqueue(Z.encode(`data: [DONE]
32`)),Q.close();return}K+=f.decode(Y,{stream:!0});let P=K.lastIndexOf(`
33`);if(P<0)continue;let X=K.slice(0,P+1);K=K.slice(P+1);let W=[];for(let H of X.split(`
34`)){let M=H.trim();if(!M)continue;try{let F=JSON.parse(M);if(s0(F))W.push(MJ(HJ(F,J)))}catch{}}if(W.length>0){Q.enqueue(Z.encode(W.join("")));return}}},cancel(Q){return z.cancel(Q)}})}function kU($){let f=new Headers($);return f.set("content-type","application/json"),f}function nU($){let f=new Headers($);return f.set("content-type","text/event-stream"),f.delete("content-length"),f}async function VJ($,f,Z,z,J){let K=LU(f);if(!_U(K))return $(f,{...Z,body:JSON.stringify(z)});let Q=typeof z.model==="string"?z.model:"",G=h1(Q,K),Y=TU(z,{numCtx:YJ(Q,K),think:GJ(J,G?.thinking??null)}),P=await $(DU(K) ...
35(${$.length-w9} older memories not shown — use memory_search to find them.)`:"";return[f,...z,J].filter(Boolean).join(`
36`)}function k9($){if(!f1($))return"";let f=L$("project"),Z=L$("global");if(f.length===0&&Z
37`)}function n9(){let $=C9({description:"Save a memory for future conversations. Use this when the user shares preferences, project conventions, important context, or asks you to remember something. Memories persist across sessions and are injected as background reference, not as work to resume. Do not store secrets, API keys, or passwords. Use scope project for this repository, global for all projects.",inputSchema:O9({type:"object",properties:{content:{type:"string",description:"The information to remember"},tags:{type:"array",items:{type:"string"},description:"Optional tags for categorizatio ...
38`)}}),Z=C9({description:"Delete a memory by its number. Use memory_search first to find the index and scope.",inputSchema:O9({type:"object",properties:{index:{type:"number",description:"The memory number to delete (1-based)"},scope:{type:"string",enum:["global","project"],description:"Which store the number belongs to. Defaults to project when .min-agent exists, otherwise global. Project requires .min-agent/ in cwd (created by min-agent init)."}},required:["index"]}),execute:async({index
39`)});function KM($){return $==="cli"?"this run":$==="project"?"project":$==="global"?"global":"default"}function R8($){let
40`)});function QM($){return $==="cli"?"this run":$==="project"?"project":$==="global"?"global":"default"}function v8($){let{scope:f,rest:Z}=c$($.positionals),z=f??$.scope??"global";if(Z[0]==="--help"||Z[0]==="-h")return{ok:!0,lines:[S8]};if(Z.length===1){let Q=R0(Z[0]);if(!Q)return{ok:!1,lines:[S8]};return m1(Q,z),$4(Q),{ok:!0,lines:[`✓ Thinking set to ${B$(Q)} (${P$(z)})`]}}if(Z.length>1)return{ok:!1,lines:[S8]};if($.flagEffort)return m1($.flagEffort,z),$4($.flagEffort),{ok:!0,lines:[`✓ Thinking set to ${B$($.flagEffort)} (${P$(z)})`]};let{thinking:J,source:K}=e$();return{ok:!0,lines:[`Current ...
41`)});function E8($){let{scope:f,rest:Z}=c$($.positionals),z=f??$.scope??"global";if(Z[0]==="--help"||Z[0]==="-h")return{ok:!0,lines:[u8]};if(Z.length===1){let Q=g0(Z[0]);if(!Q)return{ok:!1,lines:[u8]};return J4(Q,z),I8(Q),{ok:!0,lines:[`✓ Memory set to ${r1(Q)} (${P$(z)})`]}}if(Z.length>1)return{ok:!1,lines:[u8]};if($.flagMode)return J4($.flagMode,z),I8($.flagMode),{ok:!0,lines:[`✓ Memory set to ${r1($.flagMode)} (${P$(z)})`]};let{memory:J,source:K}=Lf();return{ok:!0,lines:[`Current memory: ${r1(J)} (${$2(K)})`,u8]}}var u8;var E9=O(()=>{V1();u8=["Usage: min-agent memory [on|off] [--project|--g ...
42`)});var rJ={};U0(rJ,{runWriteConfig:()=>GM});async function GM($){let f=[],Z=!0;if($.sandbox!==void 0||$.network
43`)),!Z)process.exitCode=1}var oJ=O(()=>{S9();v9();u9();E9()});function g8($,f,Z){let z=$==="openai"?"openai":$==="ollama"?"ollama":YM(f)??"provider";return PM(z,Z)}function x8($){let f=$.trim();if(!f||f.includes("/")||f.includes(":"))return"名称不能为空,且不能包含 / 或 :。";return null}function g9($){if($.length<4)return"****";return`…${$.slice(-4)}`}function pJ($,f){let Z=$.trim().toLowerCase();if(!Z)return[...f];return f.filter((z)=>z.toLowerCase().includes(Z))}function h8($,f,Z){let z=x8(f.name);if(z)return{error:z};let J=f.name.trim(),K=[...$.providers??[]],Q=K.findIndex((Y)=>Y.name===J);if(Q>=0&&!Z.ov ...
44`)?1:0);if(W>0)Y+=`\x1B[${W}A\x1B[${P.column}G`,f=W}let X=typeof z===
45`);for(let Q=0;Q<K.length;Q++){for(let G of l0(K[Q],f,Z))z.push({text:G,startIndex:J}),J+=Array.from(G).length;if(Q<K.length-1)J+=1}return z}function bf($,f,Z){let z=Array.from($).length;return Math.min(Math.max(f+Z,0),z)}function t9($,f,Z,z,J){let K=$[f];if(!K)return 0;let Q=Z-z;if(Q<=0)return K.startIndex;let G=0,Y=0;for(let{text:P,width:X}of _$(K.text,J)){if(G+X>Q){if(J?.(P)!==void 0)return K.startIndex+Y;return K.startIndex+Y+(Q-G<X/2?0:Array.from(P).length)}G+=X,Y+=Array.from(P).length}return K.startIndex+Y}function e0($,f,Z){let z=Array.from($);return z.splice(f,0,...Array.from(Z)),{valu ...
46`)z--;return z+1}function K2($,f){let Z=Array.from($),z=f;while(z<Z.length&&Z[z]!==
Long lines were clipped for display.