Lines 1-46javascript
1import{createRequire as sW}from"node:module";var lW=Object.defineProperty;var tW=($)=>$;function aW($,f){this[$]=tW.bind(null,f)}var U0=($,f)=>{for(var Z in f)lW($,Z,{get:f[Z],enumerable:!0,configurable:!0,set:aW.bind(f,Z)})};var C=($,f)=>()=>($&&(f=$($=0)),f);var eW=sW(import.meta.url);import{writeFile as $H,rename as fH,unlink as ZH}from"fs/promises";import{writeFileSync as zH,renameSync as JH,unlinkSync as KH}from"fs";import{randomBytes as QH}from"crypto";import g3 from"path";function H6($){return g3.join(g3.dirname($),`.${g3.basename($)}.${process.pid}.${QH(4).toString("hex")}.tmp`)}async ...
2 `),Z=Mz().map((J)=>`(subpath ${Qz(L0.resolve(J))})`).join(`
3 `),z=$.network==="deny"?"(deny network*)":"";return`(version 1)
6(allow file-write-data (literal "/dev/null"))
14`}function Vz(){if(d4("/usr/bin/bwrap"))return"/usr/bin/bwrap";return"/usr/local/bin/bwrap"}function Lz($,f,Z){let z=["--die-with-parent","--ro-bind","/","/","--dev","/dev","--proc","/proc"],J=new Set;for(let K of h2($)){let Q=process.platform==="win32"?K.toLowerCase():K;if(J.has(Q))continue;if(J.add(Q),d4(K))z.push("--bind",K,K)}if($.network==="deny")z.push("--unshare-net");return z.push("--chdir",f,"/bin/sh","-c",Z),z}function m2($){if($==="off"||i3()!=="none")return null;return $==="strict"?"⚠ Command-level sandboxing isn't supported on this platform (requires macOS sandbox-exec or Linux bw ...
15${Yz}`:Gz,P}function c2($){return $==="off"?"off":$==="strict"?"strict":"workspace"}function _z($){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=kH.createInterface({input:process.stdin,output:process.stdout});Y.question("\x1B[36m → \x1B[0m",(P)=>{Y.close(),G(P.trim()||"(no answer)")})})}async function h$($){let f=_6.getStore();if(f){if(f.autoApprove)return!0;if(f.onConfirm)return f.onConfirm($);return!1}if(N4())return!0;if(J9)return J9($);if(!process.std ...
17\x1B[33m⚠ Rejected (no interactive terminal): ${$}\x1B[0m`),!1;return z9?.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`),z9?.resume(),Z(M)};X();let H=(M)=>{Q+=M;while(Q.length>0){if(Q[0]==="\x1B"){if(Q[1]==="["){let F=Q.slice(2).search(/[A-Za-z~]/);if(F===-1)return;let q=Q[2+F];Q=Q.slice(3+F),P(q);continue}if(Q[1]==="O"){if(Q.length<3)return;let F=Q[2];Q=Q.slice(3),P(F);continue}if(Q.length===1){setTimeout(()=>{if(Q==="\x1B")Q="",W(!1)},50).unref?.();return}Q=Q.slice(1),W(!1);return}let U=Q[0];if(Q=Q.slice(1),U===`
25`&&!G)continue;if(U==="\r"||U===`
26`){if(!G)continue;W(K===0);return}if(U==="y"||U==="Y"){W(!0);return}if(U==="n"||U==="N"){W(!1);return}}};process.stdin.on("data",H)})}function P9($){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 H9($){
28`),images:Z}}function wU($){if(s0($))return $;if(typeof $!=="string"||!$.trim())return{};try{let f=JSON
30`}function SU($){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(NJ(qJ(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 U=JSON.parse(M);if(s0(U))W.push(NJ(qJ(U,J)))}catch{}}if(W.length>0){Q.enqueue(Z.encode(W.join("")));return}}},cancel(Q){return z.cancel(Q)}})}function vU($){let f=new Headers($);return f.set("content-type","application/json"),f}function EU($){let f=new Headers($);return f.set("content-type","text/event-stream"),f.delete("content-length"),f}async function DJ($,f,Z,z,J){let K=bU(f);if(!AU(K))return $(f,{...Z,body:JSON.stringify(z)});let Q=typeof z.model==="string"?z.model:"",G=m1(Q,K),Y=RU(z,{numCtx:WJ(Q,K),think:XJ(J,G?.thinking??null)}),P=await $(jU(K) ...
35(${$.length-k9} older memories not shown — use memory_search to find them.)`:"";return[f,...z,J].filter(Boolean).join(`
36`)}function E9($){if(!Z1($))return"";let f=_$("project"),Z=_$("global");if(f.length===0&&Z
37`)}function u9(){let $=y9({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:I9({type:"object",properties:{content:{type:"string",description:"The information to remember"},tags:{type:"array",items:{type:"string"},description:"Optional tags for categorizatio ...
38`)}}),Z=y9({description:"Delete a memory by its number. Use memory_search first to find the index and scope.",inputSchema:I9({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 YM($){return $==="cli"?"this run":$==="project"?"project":$==="global"?"global":"default"}function x6($){let
40`)});function PM($){return $==="cli"?"this run":$==="project"?"project":$==="global"?"global":"default"}function n6($){let{scope:f,rest:Z}=c$($.positionals),z=f??$.scope??"global";if(Z[0]==="--help"||Z[0]==="-h")return{ok:!0,lines:[g6]};if(Z.length===1){let Q=S0(Z[0]);if(!Q)return{ok:!1,lines:[g6]};return p1(Q,z),Z2(Q),{ok:!0,lines:[`✓ Thinking set to ${V$(Q)} (${X$(z)})`]}}if(Z.length>1)return{ok:!1,lines:[g6]};if($.flagEffort)return p1($.flagEffort,z),Z2($.flagEffort),{ok:!0,lines:[`✓ Thinking set to ${V$($.flagEffort)} (${X$(z)})`]};let{thinking:J,source:K}=$1();return{ok:!0,lines:[`Current ...
41`)});function m6($){let{scope:f,rest:Z}=c$($.positionals),z=f??$.scope??"global";if(Z[0]==="--help"||Z[0]==="-h")return{ok:!0,lines:[h6]};if(Z.length===1){let Q=g0(Z[0]);if(!Q)return{ok:!1,lines:[h6]};return Q2(Q,z),v6(Q),{ok:!0,lines:[`✓ Memory set to ${o1(Q)} (${X$(z)})`]}}if(Z.length>1)return{ok:!1,lines:[h6]};if($.flagMode)return Q2($.flagMode,z),v6($.flagMode),{ok:!0,lines:[`✓ Memory set to ${o1($.flagMode)} (${X$(z)})`]};let{memory:J,source:K}=_4();return{ok:!0,lines:[`Current memory: ${o1(J)} (${Zf(K)})`,h6]}}var h6;var m9=C(()=>{L1();h6=["Usage: min-agent memory [on|off] [--project|--g ...
42`)});var dJ={};U0(dJ,{runWriteConfig:()=>XM});async function XM($){let f=[],Z=!0;if($.sandbox!==void 0||$.network
43`)),!Z)process.exitCode=1}var iJ=C(()=>{g9();n9();h9();m9()});function c6($,f,Z){let z=$==="openai"?"openai":$==="ollama"?"ollama":WM(f)??"provider";return HM(z,Z)}function p6($){let f=$.trim();if(!f||f.includes("/")||f.includes(":"))return"名称不能为空,且不能包含 / 或 :。";return null}function c9($){if($.length<4)return"****";return`…${$.slice(-4)}`}function lJ($,f){let Z=$.trim().toLowerCase();if(!Z)return[...f];return f.filter((z)=>z.toLowerCase().includes(Z))}function o6($,f,Z){let z=p6(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 A4($,f,Z){let z=Array.from($).length;return Math.min(Math.max(f+Z,0),z)}function $5($,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 D$(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 Gf($,f){let Z=Array.from($),z=f;while(z<Z.length&&Z[z]!==
Long lines were clipped for display.