@lzg14/mimo-cli 0.1.3 → 0.1.4

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.
Files changed (2) hide show
  1. package/dist/mimo.js +1 -1
  2. package/package.json +1 -1
package/dist/mimo.js CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  var C={SUCCESS:0,ERROR:1,USAGE:2,DATAERR:3};var r=class extends Error{constructor(t,i="ERROR",n=C.ERROR){super(t);this.code=i;this.exitCode=n;this.name="CLIError"}};function d(e){return`\x1B[2m${e}\x1B[0m`}function p(e){return`\x1B[1m${e}\x1B[0m`}function M(e){return`\x1B[32m${e}\x1B[0m`}function I(e){e instanceof r&&(console.error(`error: ${e.message}`),process.exit(e.exitCode)),e instanceof Error?(process.env.DEBUG?console.error(d(e.stack||e.message)):console.error(d(e.message)),console.error(p(`
3
- Run with --verbose for more details.`))):console.error("Unknown error:",e),process.exit(C.ERROR)}var b="0.1.0";var w=class{root={children:new Map};constructor(o){for(let[t,i]of Object.entries(o))this.register(t,i)}register(o,t){let i=o.split(" "),n=this.root;for(let s of i)n.children.has(s)||n.children.set(s,{children:new Map}),n=n.children.get(s);n.command=t}getAllCommands(){let o=[],t=i=>{i.command&&o.push(i.command);for(let n of i.children.values())t(n)};return t(this.root),o}resolve(o){let t=this.root,i=[];for(let n of o){let s=t.children.get(n);if(!s)break;if(t=s,i.push(n),t.command)return{command:t.command,extra:o.slice(i.length)}}return t.command?{command:t.command,extra:o.slice(i.length)}:null}getSuggestions(o){let t=this.root,i=[];for(let n of o){let s=t.children.get(n);if(!s)return i;t=s}for(let[n,s]of t.children)s.command?i.push(` ${n}`):i.push(` ${n}`);return i}};import{readFileSync as F,writeFileSync as D,existsSync as j}from"fs";import{dirname as J}from"path";import{mkdirSync as G}from"fs";var $={baseUrl:"https://api.xiaomimimo.com",model:"MiniMax-M2.7",output:"text",timeout:120,quiet:!1,verbose:!1};function k(){return`${process.env.HOME||process.env.USERPROFILE||""}/.mimo/config.json`}var f=null;function u(){if(f)return f;let e=k();if(!j(e))return f={...$},f;try{let o=F(e,"utf-8"),t=JSON.parse(o);f={...$,...t}}catch{f={...$}}return f}function y(e){let o=k(),t=J(o);j(t)||G(t,{recursive:!0});let n={...u(),...e};D(o,JSON.stringify(n,null,2),"utf-8"),f=n}var H={name:"chat",description:"Chat with MiMo models",usage:"mimo chat [options] [message]",examples:['mimo chat "Hello, who are you?"','mimo chat --model MiniMax-M2.7 "Explain quantum computing"',"mimo chat --no-stream"],options:[{flag:"--model <model>",description:"Model to use"},{flag:"--system <text>",description:"System prompt"},{flag:"--stream",description:"Enable streaming (default)"},{flag:"--no-stream",description:"Disable streaming"},{flag:"--json",description:"Output as JSON"}],async execute(e,o){let t=u(),i=o["api-key"]||t.apiKey;if(!i)throw new r('API key not found. Run "mimo auth login --api-key <key>" first.');let n=e.join(" ")||o.message||"";if(!n)throw new r('Message is required. Usage: mimo chat "your message"');let s=o.model||t.model||"MiniMax-M2.7",a=o.stream!==!1&&o["no-stream"]!==!0,c=o.json===!0,g=o["base-url"]||t.baseUrl||"https://api.xiaomimimo.com",l=await fetch(`${g}/v1/chat/completions`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${i}`},body:JSON.stringify({model:s,messages:[{role:"user",content:n}],stream:a})});if(!l.ok){let m=await l.text();throw new r(`API error: ${l.status} ${l.statusText}
3
+ Run with --verbose for more details.`))):console.error("Unknown error:",e),process.exit(C.ERROR)}var b="0.1.4";var w=class{root={children:new Map};constructor(o){for(let[t,i]of Object.entries(o))this.register(t,i)}register(o,t){let i=o.split(" "),n=this.root;for(let s of i)n.children.has(s)||n.children.set(s,{children:new Map}),n=n.children.get(s);n.command=t}getAllCommands(){let o=[],t=i=>{i.command&&o.push(i.command);for(let n of i.children.values())t(n)};return t(this.root),o}resolve(o){let t=this.root,i=[];for(let n of o){let s=t.children.get(n);if(!s)break;if(t=s,i.push(n),t.command)return{command:t.command,extra:o.slice(i.length)}}return t.command?{command:t.command,extra:o.slice(i.length)}:null}getSuggestions(o){let t=this.root,i=[];for(let n of o){let s=t.children.get(n);if(!s)return i;t=s}for(let[n,s]of t.children)s.command?i.push(` ${n}`):i.push(` ${n}`);return i}};import{readFileSync as F,writeFileSync as D,existsSync as j}from"fs";import{dirname as J}from"path";import{mkdirSync as G}from"fs";var $={baseUrl:"https://api.xiaomimimo.com",model:"MiniMax-M2.7",output:"text",timeout:120,quiet:!1,verbose:!1};function k(){return`${process.env.HOME||process.env.USERPROFILE||""}/.mimo/config.json`}var f=null;function u(){if(f)return f;let e=k();if(!j(e))return f={...$},f;try{let o=F(e,"utf-8"),t=JSON.parse(o);f={...$,...t}}catch{f={...$}}return f}function y(e){let o=k(),t=J(o);j(t)||G(t,{recursive:!0});let n={...u(),...e};D(o,JSON.stringify(n,null,2),"utf-8"),f=n}var H={name:"chat",description:"Chat with MiMo models",usage:"mimo chat [options] [message]",examples:['mimo chat "Hello, who are you?"','mimo chat --model MiniMax-M2.7 "Explain quantum computing"',"mimo chat --no-stream"],options:[{flag:"--model <model>",description:"Model to use"},{flag:"--system <text>",description:"System prompt"},{flag:"--stream",description:"Enable streaming (default)"},{flag:"--no-stream",description:"Disable streaming"},{flag:"--json",description:"Output as JSON"}],async execute(e,o){let t=u(),i=o["api-key"]||t.apiKey;if(!i)throw new r('API key not found. Run "mimo auth login --api-key <key>" first.');let n=e.join(" ")||o.message||"";if(!n)throw new r('Message is required. Usage: mimo chat "your message"');let s=o.model||t.model||"MiniMax-M2.7",a=o.stream!==!1&&o["no-stream"]!==!0,c=o.json===!0,g=o["base-url"]||t.baseUrl||"https://api.xiaomimimo.com",l=await fetch(`${g}/v1/chat/completions`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${i}`},body:JSON.stringify({model:s,messages:[{role:"user",content:n}],stream:a})});if(!l.ok){let m=await l.text();throw new r(`API error: ${l.status} ${l.statusText}
4
4
  ${m}`)}if(a){let m=l.body?.getReader();if(!m)throw new r("No response body");process.stdout.write(`
5
5
  `);let h=new TextDecoder,x="";for(;;){let{done:v,value:B}=await m.read();if(v)break;let S=h.decode(B,{stream:!0});x+=S,process.stdout.write(S)}process.stdout.write(`
6
6
  `),c&&console.log(JSON.stringify({response:x,model:s,usage:{}}))}else{let m=await l.json(),h=m.choices?.[0]?.message?.content||"";console.log(c?JSON.stringify({response:h,model:s,usage:m.usage}):h)}}},A=H;var V={name:"models",description:"List available MiMo models",usage:"mimo models",async execute(e,o){let t=u(),i=o["api-key"]||t.apiKey;if(!i)throw new r('API key not found. Run "mimo auth login --api-key <key>" first.');let n=o["base-url"]||t.baseUrl||"https://api.xiaomimimo.com";console.log(`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lzg14/mimo-cli",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "Command-line tool for Xiaomi MiMo models",
5
5
  "type": "module",
6
6
  "engines": {