@lmctl-ai/lmctl 0.1.171 → 0.1.173
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/index.js +1 -1
- package/package.json +4 -1
package/dist/cli/index.js
CHANGED
|
@@ -2210,7 +2210,7 @@ ${qT.replace(/^error: [^\n]*\n\n/,"")}`),2):wF(t.slice(1),e)}async function wF(t
|
|
|
2210
2210
|
`),...t.terminalSessionManager!==void 0?{terminalSessionManager:t.terminalSessionManager}:{},...t.persistentSessionManager!==void 0?{persistentSessionManager:t.persistentSessionManager}:{}}):await OT({...t.mailbox,log:r=>t.io?.stderr.write(`${r}
|
|
2211
2211
|
`),...t.terminalSessionManager!==void 0?{terminalSessionManager:t.terminalSessionManager}:{},...t.persistentSessionManager!==void 0?{persistentSessionManager:t.persistentSessionManager}:{}}),e.fetchClient.onRequest(xh({app:t.app,log:r=>t.io?.stderr.write(`${r}
|
|
2212
2212
|
`)})),t.io?.stderr.write(`[mailbox] dg-2 agent runtime started (identity=${e.identityId})
|
|
2213
|
-
`)}catch(r){let n=r instanceof Error?r.message:String(r);t.io?.stderr.write(`[mailbox]
|
|
2213
|
+
`)}catch(r){let n=r instanceof Error?r.message:String(r);t.io?.stderr.write(`[mailbox] WARNING: cloud mailbox auto-delivery is DISABLED; daemon continues without remote inbox relay: ${n}
|
|
2214
2214
|
`)}return{...e!==void 0?{mailbox:e}:{},async stop(){e!==void 0&&await e.stop()}}}function zT(t){let{dal:e,cli:r,env:n,parsed:s,io:i}=t,o=[],a,l=e.getConfig("api.port");if(r.portCli!==void 0)a=r.portCli;else if(l!==null){let m=Number(l);if(!Number.isInteger(m)||m<=0||m>65535)throw new Error(`invalid api.port in lmctl_config: ${l}`);a=m}else if(n.LMCTL_API_PORT!==void 0&&n.LMCTL_API_PORT.length>0){let m=Number(n.LMCTL_API_PORT);if(!Number.isInteger(m)||m<=0||m>65535)throw new Error(`invalid LMCTL_API_PORT: ${n.LMCTL_API_PORT}`);a=m,o.push("api.port")}else a=s.port;let c,d=e.getConfig("api.token");n.LMCTL_API_TOKEN!==void 0&&n.LMCTL_API_TOKEN.length>0?(c=n.LMCTL_API_TOKEN,d===null?o.push("api.token"):d!==c&&i.stderr.write(`note: LMCTL_API_TOKEN env var overrides lmctl_config api.token for this serve process.
|
|
2215
2215
|
`)):d!==null?c=d:(c=_F(32).toString("hex"),e.setConfig("api.token",c),i.stdout.write("Generated initial api.token; view via `lmctl api config get api.token`\n"));let u,f=e.getConfig("api.url");f!==null?u=f:n.LMCTL_API_URL!==void 0&&n.LMCTL_API_URL.length>0?(u=n.LMCTL_API_URL,o.push("api.url")):(u=`http://127.0.0.1:${a}`,e.setConfig("api.url",u));for(let m of o)i.stderr.write(`note: ${NF(m)} env var used as fallback for ${m}; consider \`lmctl api config set ${m} ...\` to make this DB-canonical.
|
|
2216
2216
|
`);return{port:a,apiUrl:u,apiToken:c}}function NF(t){switch(t){case"api.port":return"LMCTL_API_PORT";case"api.token":return"LMCTL_API_TOKEN";case"api.url":return"LMCTL_API_URL";default:return`LMCTL_${t.replaceAll(".","_").toUpperCase()}`}}async function xF(t){let e;try{e=await import("node-pty")}catch(r){let n=r instanceof Error?r.message:String(r);t.log(`[dt-2] node-pty not available; terminal routes will return 503 (${n})`);return}return new Ko({pty:{spawn:e.spawn.bind(e)},publish:async()=>{throw new Error("terminal_publish_not_wired: mailbox runtime has not bound the publish hook yet")},log:t.log})}function ZT(t,e){let r=t!==void 0&&t!==""?t:e.LMCTL_LOCAL_WEBUI_DIR!==void 0&&e.LMCTL_LOCAL_WEBUI_DIR!==""?e.LMCTL_LOCAL_WEBUI_DIR:void 0;if(r===void 0)return null;let n=JT(r)?r:qu(process.cwd(),r);return HT(`${n}/index.html`)?n:null}function QT(t){let e=t.LMCTL_LOCAL_MAILBOX_DIR;return e!==void 0&&e!==""?JT(e)?e:qu(process.cwd(),e):qu(hF(),".lmctl","local-mailbox")}function AF(t){for(let e=0;e<t.length;e+=1)if(t[e]==="--port"){let r=t[e+1];if(r!==void 0&&!r.startsWith("--")){let n=Number(r);if(Number.isInteger(n)&&n>0&&n<=65535)return n}}}function eb(t,e=process.env){let r=LF(t);return typeof r=="string"?r:!RF(r.bind)&&!r.insecureNoAuth&&!e.LMCTL_API_TOKEN?`auth required for non-loopback --bind ${r.bind}; set LMCTL_API_TOKEN or pass --insecure-no-auth`:r}function RF(t){let e=t.trim().toLowerCase();if(e==="localhost"||e==="::1")return!0;if(e.startsWith("::ffff:")){let r=e.slice(7);return BT(r)===4&&r.split(".")[0]==="127"}return BT(e)===4&&e.split(".")[0]==="127"}function LF(t){let e={port:8787,bind:"127.0.0.1",noDaemon:!1,insecureNoAuth:!1};for(let r=0;r<t.length;r+=1){let n=t[r];if(n==="--port"){let s=t[++r];if(s===void 0||s.startsWith("--"))return"missing value for --port";let i=Number(s);if(!Number.isInteger(i)||i<=0||i>65535)return`invalid --port: ${s}`;e.port=i;continue}if(n==="--bind"){let s=t[++r];if(s===void 0||s.startsWith("--"))return"missing value for --bind";e.bind=s;continue}if(n==="--no-daemon"){e.noDaemon=!0;continue}if(n==="--insecure-no-auth"){e.insecureNoAuth=!0;continue}if(n==="--webui"){let s=t[r+1];s!==void 0&&!s.startsWith("--")?(e.localWebui={dir:s},r+=1):e.localWebui={dir:void 0};continue}return`unknown argument: ${n}`}return e}var gF,qT,Hu,bF,vF,kF,rb=E(()=>{"use strict";Qe();Zw();mu();WE();td();Mu();gu();Hd();Jd();jT();Wu();We();Yn();Dc();WT();gF=`usage: lmctl serve <start|status|stop> [options]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lmctl-ai/lmctl",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.173",
|
|
4
4
|
"description": "A provider-agnostic control plane for teams of AI coding agents — across providers, with independent review and durable memory.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"homepage": "https://lmctl.com",
|
|
@@ -41,5 +41,8 @@
|
|
|
41
41
|
"marked": "^18.0.3",
|
|
42
42
|
"write-excel-file": "^4.1.1",
|
|
43
43
|
"zod": "4.4.3"
|
|
44
|
+
},
|
|
45
|
+
"optionalDependencies": {
|
|
46
|
+
"node-pty": "^1.1.0"
|
|
44
47
|
}
|
|
45
48
|
}
|