@longzai-intelligence-bun/cli 0.1.6 → 0.1.7

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/index.js +1 -1
  2. package/package.json +3 -3
package/dist/index.js CHANGED
@@ -204,7 +204,7 @@ ${q.default.gray(gf+mf.repeat(a+2)+_f)}
204
204
  `):process.stdout.write(`${r} ${s}
205
205
  `),m(),i()};return{start:v,stop:y,message:(e=``)=>{s=g(e??s)}}},jf={red:e=>q.default.red(e),green:e=>q.default.green(e),yellow:e=>q.default.yellow(e),blue:e=>q.default.blue(e),cyan:e=>q.default.cyan(e),magenta:e=>q.default.magenta(e),gray:e=>q.default.gray(e),bold:e=>q.default.bold(e),dim:e=>q.default.dim(e)},Mf={async select(e,t){let n=await Ef({message:e,options:t.map(e=>({value:e.value,label:e.label,hint:e.hint}))});return Wd(n)&&(Of(`操作已取消`),process.exit(0)),typeof n==`string`?n:String(n)},async textInput(e,t){let n=await wf({message:e,placeholder:t?.placeholder,defaultValue:t?.defaultValue});return Wd(n)&&(Of(`操作已取消`),process.exit(0)),typeof n==`string`?n:String(n)},async confirm(e,t){let n=await Tf({message:e,initialValue:t?.defaultValue??!1});return Wd(n)&&(Of(`操作已取消`),process.exit(0)),typeof n==`boolean`?n:!!n},spinner(){let e=Af();return{start(t){e.start(t)},stop(t){e.stop(t)}}},note(e,t){Df(e,t)},log:{info(e){kf.info(q.default.blue(e))},success(e){kf.success(q.default.green(e))},warn(e){kf.warn(q.default.yellow(e))},error(e){kf.error(q.default.red(e))},step(e){kf.step(e)}}};function Nf(e){return e.map(e=>{if(typeof e==`string`)return e;if(e instanceof Error)return e.message;try{return JSON.stringify(e)}catch{return String(e)}}).join(` `)}function X(...e){process.stdout.write(`${Nf(e)}\n`)}function Z(...e){process.stderr.write(`${Nf(e)}\n`)}const Pf=/* @__PURE__ */ new Set([`build`,`coverage`,`dist`,`node_modules`,`out`]),Ff=/* @__PURE__ */ new Set([`ENAMETOOLONG`,`EACCES`,`EPERM`,`ENOENT`]),If=Us([Rs(ss()),Vs({packages:Rs(ss())})]),Lf=e=>typeof e!=`object`||!e||!(`code`in e)?!1:typeof e.code==`string`,Rf=e=>{let t=``;for(let n=0;n<e.length;n+=1){let r=e.charAt(n);r===`*`?e[n+1]===`*`?(t+=`.*`,n+=1):t+=`[^/]+`:t+=r.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}return RegExp(`^${t}$`)},zf=e=>{let t={positives:[],negatives:[]};for(let n of e)n.startsWith(`!`)?t.negatives.push(Rf(n.slice(1))):t.positives.push(Rf(n));return t},Bf=e=>{let t=If.safeParse(e);if(t.success)return Array.isArray(t.data)?t.data:t.data.packages},Vf=(e,t)=>e.positives.some(e=>e.test(t))&&!e.negatives.some(e=>e.test(t)),Hf=(e,t)=>e.negatives.some(e=>e.test(t)),Uf=[`bun.lock`,`bun.lockb`],Wf=Vs({name:ss().optional(),workspaces:If.optional()}),Gf=Vs({name:ss().optional()}),Kf=async e=>{try{let t=Gf.safeParse(JSON.parse(await x(e,`utf-8`)));return t.success?t.data.name??null:null}catch{return null}},qf=async e=>{let t={packageDirs:[],lockDirs:[],rootHasLock:!1,scanSkips:[]},n=[{dir:e,depth:0}];for(;n.length>0;){let r=n.shift();if(r===void 0)break;let i;try{i=await S(r.dir,{withFileTypes:!0})}catch(n){if(!Lf(n)||!Ff.has(n.code))throw n;let i=r.depth===0?`.`:r.dir.slice(e.length+1);t.scanSkips.push({path:i,code:n.code});continue}let a=!1,o=!1;for(let e of i)e.isFile()&&Uf.includes(e.name)&&(a=!0),e.isFile()&&e.name===`package.json`&&(o=!0);r.depth===0?t.rootHasLock=a:(a&&t.lockDirs.push(r.dir.slice(e.length+1)),o&&t.packageDirs.push({relPath:r.dir.slice(e.length+1),name:await Kf(u(r.dir,`package.json`))}));for(let e of i)e.isDirectory()&&(e.name.startsWith(`.`)||Pf.has(e.name)||r.depth>=5||n.push({dir:u(r.dir,e.name),depth:r.depth+1}))}return t},Jf=async e=>{let t;try{t=JSON.parse(await x(u(e,`package.json`),`utf-8`))}catch{throw Error(`根 package.json 不存在或不可解析,请在仓库根执行本命令`)}let n=Wf.safeParse(t);if(!n.success)throw Error(`根 package.json 不存在或不可解析,请在仓库根执行本命令`);let r=n.data,i=r.name??null,a=i===null?null:i.includes(`/`)?i.slice(0,i.lastIndexOf(`/`)):`@${i}`,o=Bf(r.workspaces);if(o===void 0)return{rootName:i,scope:a,hasWorkspaces:!1,memberCount:0,violations:[],notices:[],scanSkips:[],ok:!0};let s=zf(o),c=await qf(e),l=[],d=[],f=new Map(c.packageDirs.map(e=>[e.relPath,e.name])),p=c.packageDirs.map(e=>e.relPath).filter(e=>Vf(s,e));c.rootHasLock||l.push({kind:`missing-root-lock`,path:``,message:`仓库根缺少 bun.lock,声明了 workspaces 的 monorepo 锁文件应只存在于根`});let m=/* @__PURE__ */ new Set;for(let e of c.lockDirs){if(Vf(s,e)){m.add(e),l.push({kind:`stray-member-lock`,path:e,message:`${e} 是 workspaces 成员却持有自己的 bun.lock,属游离锁文件`});continue}let t=f.get(e)??null;t===null?d.push({kind:`orphan-lock`,path:e,message:`${e} 存在锁文件但没有 package.json,请确认目录用途`}):Hf(s,e)?d.push({kind:`excluded-standalone`,path:e,message:`${e} 为负向 glob 显式排除的独立安装根,锁文件属合法形态`}):a!==null&&t.startsWith(`${a}/`)?(m.add(e),l.push({kind:`uncovered-same-scope`,path:e,message:`${e}(${t})与根包同作用域却未被 workspaces 覆盖,已按独立安装根长出游离锁`})):d.push({kind:`foreign-scope-lock`,path:e,message:`${e}(${t})不属于根作用域且持有独立锁文件,若为有意保留请以负向 glob 显式排除`})}for(let e of c.packageDirs)p.includes(e.relPath)||Hf(s,e.relPath)||m.has(e.relPath)||a!==null&&e.name!==null&&e.name.startsWith(`${a}/`)&&l.push({kind:`uncovered-same-scope`,path:e.relPath,message:`${e.relPath}(${e.name})与根包同作用域却未被 workspaces 覆盖,请补 glob 或以负向 glob 显式排除`});return{rootName:i,scope:a,hasWorkspaces:!0,memberCount:p.length,violations:l,notices:d,scanSkips:c.scanSkips,ok:l.length===0}},Yf=async()=>{let e=process.cwd();X(`正在扫描 ${e} 下的工作区布局...`);try{let t=await Jf(e);if(!t.hasWorkspaces){X(`未声明 workspaces,非 bun workspaces monorepo,跳过锁文件校验`);return}if(t.scanSkips.length>0){Z(`\n${t.scanSkips.length} 项目录读取降级告警,结论基于其余可读目录:`);for(let e of t.scanSkips)Z(` ${e.path} 读取失败已跳过该子树,错误码 ${e.code}`)}if(X(`根包 ${t.rootName??`未命名`},workspaces 成员 ${t.memberCount} 个`),t.notices.length>0){X(`\n${t.notices.length} 项提示:`);for(let e of t.notices)X(` ${e.message}`)}if(!t.ok){X(`\n发现 ${t.violations.length} 项违规:`);for(let e of t.violations)X(` ${e.message}`);X(`
206
206
  修复指引: 删除成员目录的游离 bun.lock 后在仓库根执行 bun install;覆盖缺口补 workspaces glob,刻意独立的子项目以负向 glob 显式排除`),process.exit(1)}X(`单一锁文件不变量成立,无游离锁文件与覆盖缺口`)}catch(e){Z(`错误: ${e instanceof Error?e.message:String(e)}`),process.exit(1)}},Xf=/* @__PURE__ */ new Set([`.bun`]),Zf=/* @__PURE__ */ new Set([`ENOENT`,`ENOTDIR`]),Qf=Vs({workspaces:If.optional()}),$f=async e=>{let t=[],n=[],r=[{dir:e,depth:0}];for(;r.length>0;){let i=r.shift();if(i===void 0)break;let a;try{a=await S(i.dir,{withFileTypes:!0})}catch(t){if(!Lf(t)||!Ff.has(t.code))throw t;n.push({path:i.dir.slice(e.length+1),code:t.code});continue}a.some(e=>e.isFile()&&e.name===`package.json`)&&t.push(i.dir.slice(e.length+1));for(let e of a)e.isDirectory()&&(e.name.startsWith(`.`)||Pf.has(e.name)||i.depth>=5||r.push({dir:u(i.dir,e.name),depth:i.depth+1}))}return{packageDirPaths:t,scanSkips:n}},ep=async(e,t)=>{let n=[],r=[],i=[e];for(;i.length>0;){let e=i.shift();if(e===void 0)break;let a;try{a=await S(e,{withFileTypes:!0})}catch(n){if(!Lf(n)||!Ff.has(n.code))throw n;r.push({path:e.slice(t.length+1),code:n.code});continue}for(let o of a){let a=u(e,o.name);if(!Xf.has(o.name)){if(o.isSymbolicLink())try{await w(a)}catch(e){if(Lf(e)&&Zf.has(e.code)){n.push({path:a.slice(t.length+1),target:await C(a)});continue}r.push({path:a.slice(t.length+1),code:Lf(e)?e.code:`UNKNOWN`})}else o.isDirectory()&&i.push(a)}}}return{dangling:n,scanSkips:r}},tp=async e=>{let t;try{t=JSON.parse(await x(u(e,`package.json`),`utf-8`))}catch{throw Error(`根 package.json 不存在或不可解析,请在仓库根执行本命令`)}let n=Qf.safeParse(t);if(!n.success)throw Error(`根 package.json 不存在或不可解析,请在仓库根执行本命令`);let r=Bf(n.data.workspaces);if(r===void 0)return{hasWorkspaces:!1,memberCount:0,scannedNodeModulesRoots:0,dangling:[],scanSkips:[],ok:!0};let i=zf(r),a=await $f(e),o=a.packageDirPaths.filter(e=>Vf(i,e)),s=[],c=[...a.scanSkips],l=0;for(let t of[``,...o]){let n=u(e,t,`node_modules`);try{if(!(await w(n)).isDirectory())continue}catch{continue}l+=1;let r=await ep(n,e);s.push(...r.dangling),c.push(...r.scanSkips)}return{hasWorkspaces:!0,memberCount:o.length,scannedNodeModulesRoots:l,dangling:s,scanSkips:c,ok:s.length===0}},np=async(e,t)=>{let n={removed:[],kept:[]};for(let r of t){let t=u(e,r.path);try{if(!(await b(t)).isSymbolicLink()){n.kept.push(r.path);continue}await w(t),n.kept.push(r.path)}catch(e){if(!Lf(e)||!Zf.has(e.code)){n.kept.push(r.path);continue}await T(t),n.removed.push(r.path)}}return n},rp=async()=>{let e=process.cwd();X(`正在扫描 ${e} 下的安装布局...`);try{let t=await tp(e);if(!t.hasWorkspaces){X(`未声明 workspaces,非 bun workspaces monorepo,跳过悬挂链接检测`);return}if(t.scanSkips.length>0){Z(`\n${t.scanSkips.length} 项目录读取降级告警,结论基于其余可读目录:`);for(let e of t.scanSkips)Z(` ${e.path} 读取失败已跳过该子树,错误码 ${e.code}`)}if(X(`workspaces 成员 ${t.memberCount} 个,扫描 ${t.scannedNodeModulesRoots} 个 node_modules 树`),t.dangling.length>0){X(`\n发现 ${t.dangling.length} 根悬挂符号链接:`);for(let e of t.dangling)X(` ${e.path} 指向已不存在的 ${e.target}`);X(`
207
- 修复指引: 执行 lzi-bun node-links fix 回收悬挂死链后重试,有效链接零触碰`),process.exit(Math.min(t.dangling.length,255))}X(`安装布局一致,未发现悬挂符号链接`)}catch(e){Z(`错误: ${e instanceof Error?e.message:String(e)}`),process.exit(1)}},ip=async()=>{let e=process.cwd();X(`正在扫描 ${e} 下的悬挂符号链接...`);try{let t=await tp(e);if(!t.hasWorkspaces){X(`未声明 workspaces,非 bun workspaces monorepo,跳过悬挂链接回收`);return}if(t.dangling.length===0){X(`未发现悬挂符号链接,无需回收,共巡查 ${t.scannedNodeModulesRoots} 个 node_modules 树`);return}X(`发现 ${t.dangling.length} 根悬挂符号链接,开始回收:`);for(let e of t.dangling)X(` ${e.path} 指向已不存在的 ${e.target}`);let n=await np(e,t.dangling);for(let e of n.removed)X(`已回收 ${e}`);for(let e of n.kept)Z(`未能回收 ${e},链接状态已变化,请人工确认`);let r=await tp(e);X(`回收完成,清除 ${n.removed.length} 根,剩余悬挂 ${r.dangling.length} 根,有效链接零触碰`),(r.dangling.length>0||n.kept.length>0)&&process.exit(1)}catch(e){Z(`错误: ${e instanceof Error?e.message:String(e)}`),process.exit(1)}};function ap(e,t=`./src/__tests__/helpers/bootstrap.ts`){let n=[t,...(e?.test?.preload??[]).filter(e=>e!==t)];return{...e,test:{...e?.test,preload:n}}}const op=[`maximum resident set size`,`peak memory footprint`];function sp(e){for(let t of e.split(`
207
+ 修复指引:执行 bunx @longzai-intelligence-bun/cli node-links fix 回收悬挂死链后重试,有效链接零触碰`),process.exit(Math.min(t.dangling.length,255))}X(`安装布局一致,未发现悬挂符号链接`)}catch(e){Z(`错误: ${e instanceof Error?e.message:String(e)}`),process.exit(1)}},ip=async()=>{let e=process.cwd();X(`正在扫描 ${e} 下的悬挂符号链接...`);try{let t=await tp(e);if(!t.hasWorkspaces){X(`未声明 workspaces,非 bun workspaces monorepo,跳过悬挂链接回收`);return}if(t.dangling.length===0){X(`未发现悬挂符号链接,无需回收,共巡查 ${t.scannedNodeModulesRoots} 个 node_modules 树`);return}X(`发现 ${t.dangling.length} 根悬挂符号链接,开始回收:`);for(let e of t.dangling)X(` ${e.path} 指向已不存在的 ${e.target}`);let n=await np(e,t.dangling);for(let e of n.removed)X(`已回收 ${e}`);for(let e of n.kept)Z(`未能回收 ${e},链接状态已变化,请人工确认`);let r=await tp(e);X(`回收完成,清除 ${n.removed.length} 根,剩余悬挂 ${r.dangling.length} 根,有效链接零触碰`),(r.dangling.length>0||n.kept.length>0)&&process.exit(1)}catch(e){Z(`错误: ${e instanceof Error?e.message:String(e)}`),process.exit(1)}};function ap(e,t=`./src/__tests__/helpers/bootstrap.ts`){let n=[t,...(e?.test?.preload??[]).filter(e=>e!==t)];return{...e,test:{...e?.test,preload:n}}}const op=[`maximum resident set size`,`peak memory footprint`];function sp(e){for(let t of e.split(`
208
208
  `)){let e=t.trim();for(let t of op){let n;if(e.startsWith(t)){let t=e.slice(e.indexOf(`:`)+1).trim();n=Number.parseInt(t,10)}else if(e.endsWith(t))n=Number.parseInt(e,10);else continue;if(Number.isInteger(n)&&n>=0)return n}}}function cp(e,t){let n=e=>`${Math.round(e/1048576)} MB`;return[`内存峰值 ${n(e)},预算 ${n(t)}`,`超预算即测试用例形态违例,请合并整页挂载用例的只读断言并把断言下放组件级,预算可经环境变量 LZI_TEST_MEMORY_BUDGET_BYTES 临时覆盖`]}const Q=`https://registry.npmjs.org/`,lp=/* @__PURE__ */ new Map([[`longzai-intelligence`,Q],[`longzai-intelligence-agent-tools`,Q],[`longzai-intelligence-audit`,Q],[`longzai-intelligence-auth`,Q],[`longzai-intelligence-builder`,Q],[`longzai-intelligence-bun`,Q],[`longzai-intelligence-cache`,Q],[`longzai-intelligence-cli`,Q],[`longzai-intelligence-config`,Q],[`longzai-intelligence-dependencies`,Q],[`longzai-intelligence-design-system`,Q],[`longzai-intelligence-dev-tools`,Q],[`longzai-intelligence-electron`,Q],[`longzai-intelligence-error`,Q],[`longzai-intelligence-event-bus`,Q],[`longzai-intelligence-lint`,Q],[`longzai-intelligence-logger`,Q],[`longzai-intelligence-okr`,Q],[`longzai-intelligence-oxfmt`,Q],[`longzai-intelligence-oxlint`,Q],[`longzai-intelligence-plugin`,Q],[`longzai-intelligence-shared-config`,Q],[`longzai-intelligence-shared-kernel`,Q],[`longzai-intelligence-scripts`,Q],[`longzai-intelligence-standards`,Q],[`longzai-intelligence-transport`,Q],[`longzai-intelligence-typescript`,Q],[`longzai-intelligence-vscode`,Q],[`longzai-intelligence-zod`,Q],[`longzai-intelligence-prettier`,Q],[`longzai-intelligence-tsdown`,Q],[`longzai-intelligence-vitest`,Q],[`longzai-intelligence-academy`,Q],[`longzai-intelligence-accounting`,Q],[`longzai-intelligence-activity`,Q],[`longzai-intelligence-administration`,Q],[`longzai-intelligence-agent`,Q],[`longzai-intelligence-agent-broadcast`,Q],[`longzai-intelligence-agent-collaboration`,Q],[`longzai-intelligence-agent-endless`,Q],[`longzai-intelligence-agent-migrator`,Q],[`longzai-intelligence-agent-monitor`,Q],[`longzai-intelligence-agent-prompts`,Q],[`longzai-intelligence-agent-relation`,Q],[`longzai-intelligence-agent-session`,Q],[`longzai-intelligence-agent-swarm`,Q],[`longzai-intelligence-agent-tasks`,Q],[`longzai-intelligence-agent-tasks-data`,Q],[`longzai-intelligence-agent-ui`,Q],[`longzai-intelligence-analytics`,Q],[`longzai-intelligence-api`,Q],[`longzai-intelligence-app-gallery`,Q],[`longzai-intelligence-app-store`,Q],[`longzai-intelligence-architecture`,Q],[`longzai-intelligence-architecture-expert`,Q],[`longzai-intelligence-arkts`,Q],[`longzai-intelligence-art`,Q],[`longzai-intelligence-artifact`,Q],[`longzai-intelligence-artifact-registry`,Q],[`longzai-intelligence-arxiv`,Q],[`longzai-intelligence-arxiv-data`,Q],[`longzai-intelligence-arxiv-markdown`,Q],[`longzai-intelligence-atomic`,Q],[`longzai-intelligence-attention`,Q],[`longzai-intelligence-audio`,Q],[`longzai-intelligence-audio-assistant`,Q],[`longzai-intelligence-augmented-reality`,Q],[`longzai-intelligence-auto-research`,Q],[`longzai-intelligence-automate`,Q],[`longzai-intelligence-benchmark`,Q],[`longzai-intelligence-bilibili`,Q],[`longzai-intelligence-bilibili-data`,Q],[`longzai-intelligence-bilibili-markdown`,Q],[`longzai-intelligence-billing`,Q],[`longzai-intelligence-blackboard`,Q],[`longzai-intelligence-blackboard-data`,Q],[`longzai-intelligence-blackboard-markdown`,Q],[`longzai-intelligence-bluetooth`,Q],[`longzai-intelligence-board`,Q],[`longzai-intelligence-bootstrap`,Q],[`longzai-intelligence-bootstrap-registry`,Q],[`longzai-intelligence-bounty-registry`,Q],[`longzai-intelligence-brawl-stars`,Q],[`longzai-intelligence-broker`,Q],[`longzai-intelligence-bt`,Q],[`longzai-intelligence-business-plan`,Q],[`longzai-intelligence-calendar`,Q],[`longzai-intelligence-camera`,Q],[`longzai-intelligence-canvas`,Q],[`longzai-intelligence-capture`,Q],[`longzai-intelligence-change-maker`,Q],[`longzai-intelligence-changelog`,Q],[`longzai-intelligence-changeset`,Q],[`longzai-intelligence-chat`,Q],[`longzai-intelligence-chess`,Q],[`longzai-intelligence-circuit`,Q],[`longzai-intelligence-claude-code`,Q],[`longzai-intelligence-claude-knowledge`,Q],[`longzai-intelligence-clipboard-share`,Q],[`longzai-intelligence-closed-loop`,Q],[`longzai-intelligence-closed-loop-data`,Q],[`longzai-intelligence-closed-loop-markdown`,Q],[`longzai-intelligence-cloud`,Q],[`longzai-intelligence-code`,Q],[`longzai-intelligence-code-agent`,Q],[`longzai-intelligence-code-reviewer`,Q],[`longzai-intelligence-codebase-research`,Q],[`longzai-intelligence-coding-expert`,Q],[`longzai-intelligence-collaboration`,Q],[`longzai-intelligence-collective`,Q],[`longzai-intelligence-commerce`,Q],[`longzai-intelligence-commit`,Q],[`longzai-intelligence-competition-registry`,Q],[`longzai-intelligence-composer`,Q],[`longzai-intelligence-concrete`,Q],[`longzai-intelligence-concrete-industry`,Q],[`longzai-intelligence-config-registry`,Q],[`longzai-intelligence-context`,Q],[`longzai-intelligence-contract`,Q],[`longzai-intelligence-contract-parity`,Q],[`longzai-intelligence-cookery`,Q],[`longzai-intelligence-country`,Q],[`longzai-intelligence-creativity`,Q],[`longzai-intelligence-cross-platform`,Q],[`longzai-intelligence-crossref`,Q],[`longzai-intelligence-crossref-markdown`,Q],[`longzai-intelligence-crypto`,Q],[`longzai-intelligence-customer-service`,Q],[`longzai-intelligence-cut`,Q],[`longzai-intelligence-dag`,Q],[`longzai-intelligence-dashboard`,Q],[`longzai-intelligence-data`,Q],[`longzai-intelligence-data-science`,Q],[`longzai-intelligence-database`,Q],[`longzai-intelligence-decenterlization`,Q],[`longzai-intelligence-decision`,Q],[`longzai-intelligence-deepseek`,Q],[`longzai-intelligence-deepseek-harness`,Q],[`longzai-intelligence-deepseek-harness-knowledge`,Q],[`longzai-intelligence-delta`,Q],[`longzai-intelligence-deploy`,Q],[`longzai-intelligence-design`,Q],[`longzai-intelligence-design-lab`,Q],[`longzai-intelligence-design-registry`,Q],[`longzai-intelligence-design-trending`,Q],[`longzai-intelligence-device`,Q],[`longzai-intelligence-dimensions`,Q],[`longzai-intelligence-discipline`,Q],[`longzai-intelligence-discovery`,Q],[`longzai-intelligence-disk-space`,Q],[`longzai-intelligence-disk-space-data`,Q],[`longzai-intelligence-disk-space-markdown`,Q],[`longzai-intelligence-distill`,Q],[`longzai-intelligence-docs`,Q],[`longzai-intelligence-docs-registry`,Q],[`longzai-intelligence-document`,Q],[`longzai-intelligence-douyin`,Q],[`longzai-intelligence-douyin-data`,Q],[`longzai-intelligence-douyin-markdown`,Q],[`longzai-intelligence-drone`,Q],[`longzai-intelligence-edge`,Q],[`longzai-intelligence-electrobun`,Q],[`longzai-intelligence-elysia`,Q],[`longzai-intelligence-embodied`,Q],[`longzai-intelligence-empowerment`,Q],[`longzai-intelligence-engineering`,Q],[`longzai-intelligence-env`,Q],[`longzai-intelligence-env-registry`,Q],[`longzai-intelligence-equilibrium`,Q],[`longzai-intelligence-eslint`,Q],[`longzai-intelligence-event`,Q],[`longzai-intelligence-event-tracking`,Q],[`longzai-intelligence-evolution`,Q],[`longzai-intelligence-excel`,Q],[`longzai-intelligence-exchange-rate`,Q],[`longzai-intelligence-execution`,Q],[`longzai-intelligence-experience`,Q],[`longzai-intelligence-expert`,Q],[`longzai-intelligence-expert-thinking`,Q],[`longzai-intelligence-fde`,Q],[`longzai-intelligence-feature-flags`,Q],[`longzai-intelligence-features`,Q],[`longzai-intelligence-federation`,Q],[`longzai-intelligence-feed`,Q],[`longzai-intelligence-feishu`,Q],[`longzai-intelligence-fields-medal-knowledge`,Q],[`longzai-intelligence-file-processing`,Q],[`longzai-intelligence-findings`,Q],[`longzai-intelligence-fitness`,Q],[`longzai-intelligence-font`,Q],[`longzai-intelligence-game`,Q],[`longzai-intelligence-game-studio`,Q],[`longzai-intelligence-gantt`,Q],[`longzai-intelligence-gateway`,Q],[`longzai-intelligence-geo`,Q],[`longzai-intelligence-gesture`,Q],[`longzai-intelligence-git`,Q],[`longzai-intelligence-git-commit`,Q],[`longzai-intelligence-git-insight`,Q],[`longzai-intelligence-git-reviewer`,Q],[`longzai-intelligence-git-swarm`,Q],[`longzai-intelligence-git-swarm-registry`,Q],[`longzai-intelligence-gitcode`,Q],[`longzai-intelligence-github-data`,Q],[`longzai-intelligence-github-markdown`,Q],[`longzai-intelligence-github-trending`,Q],[`longzai-intelligence-github-trending-data`,Q],[`longzai-intelligence-github-trending-markdown`,Q],[`longzai-intelligence-globals`,Q],[`longzai-intelligence-growth`,Q],[`longzai-intelligence-growth-registry`,Q],[`longzai-intelligence-handover`,Q],[`longzai-intelligence-hardware`,Q],[`longzai-intelligence-harness`,Q],[`longzai-intelligence-healthcare`,Q],[`longzai-intelligence-history`,Q],[`longzai-intelligence-horizon`,Q],[`longzai-intelligence-human-resource`,Q],[`longzai-intelligence-i18n`,Q],[`longzai-intelligence-idea`,Q],[`longzai-intelligence-identity`,Q],[`longzai-intelligence-ime`,Q],[`longzai-intelligence-impact-maker`,Q],[`longzai-intelligence-inbox`,Q],[`longzai-intelligence-inbox-registry`,Q],[`longzai-intelligence-input-data`,Q],[`longzai-intelligence-input-markdown`,Q],[`longzai-intelligence-insight`,Q],[`longzai-intelligence-intellectual-property`,Q],[`longzai-intelligence-intent`,Q],[`longzai-intelligence-intentionomics`,Q],[`longzai-intelligence-interview`,Q],[`longzai-intelligence-issues`,Q],[`longzai-intelligence-jev`,Q],[`longzai-intelligence-jev-knowledge`,Q],[`longzai-intelligence-jev-system`,Q],[`longzai-intelligence-journal-of-finance-data`,Q],[`longzai-intelligence-journal-of-financial-and-quantitative-analysis-data`,Q],[`longzai-intelligence-journal-of-financial-economics-data`,Q],[`longzai-intelligence-journals`,Q],[`longzai-intelligence-journals-2026-10`,Q],[`longzai-intelligence-journals-markdown`,Q],[`longzai-intelligence-journals-registry`,Q],[`longzai-intelligence-key-management`,Q],[`longzai-intelligence-knowledge`,Q],[`longzai-intelligence-knowledge-graph`,Q],[`longzai-intelligence-knowledge-markdown`,Q],[`longzai-intelligence-kol`,Q],[`longzai-intelligence-kol-data`,Q],[`longzai-intelligence-kol-markdown`,Q],[`longzai-intelligence-kol-registry`,Q],[`longzai-intelligence-language-model`,Q],[`longzai-intelligence-law`,Q],[`longzai-intelligence-law-data`,Q],[`longzai-intelligence-law-markdown`,Q],[`longzai-intelligence-lean`,Q],[`longzai-intelligence-ledger`,Q],[`longzai-intelligence-legal`,Q],[`longzai-intelligence-liquid-glass`,Q],[`longzai-intelligence-living-previewer`,Q],[`longzai-intelligence-loop`,Q],[`longzai-intelligence-machine-learning`,Q],[`longzai-intelligence-mail`,Q],[`longzai-intelligence-mandala`,Q],[`longzai-intelligence-map`,Q],[`longzai-intelligence-markdown`,Q],[`longzai-intelligence-marketing`,Q],[`longzai-intelligence-marketplace`,Q],[`longzai-intelligence-math`,Q],[`longzai-intelligence-mcn`,Q],[`longzai-intelligence-mcp`,Q],[`longzai-intelligence-mechanisms`,Q],[`longzai-intelligence-mechanisms-registry`,Q],[`longzai-intelligence-media`,Q],[`longzai-intelligence-meditation`,Q],[`longzai-intelligence-meeting-notes`,Q],[`longzai-intelligence-memory`,Q],[`longzai-intelligence-mentor`,Q],[`longzai-intelligence-messaging`,Q],[`longzai-intelligence-mindset`,Q],[`longzai-intelligence-minimax-knowldege`,Q],[`longzai-intelligence-mission-control`,Q],[`longzai-intelligence-model-fusion`,Q],[`longzai-intelligence-model-gateway`,Q],[`longzai-intelligence-moment`,Q],[`longzai-intelligence-montage`,Q],[`longzai-intelligence-movie`,Q],[`longzai-intelligence-music-video`,Q],[`longzai-intelligence-music-video-data`,Q],[`longzai-intelligence-narrative-analyzer`,Q],[`longzai-intelligence-nation`,Q],[`longzai-intelligence-nginx`,Q],[`longzai-intelligence-nginx-cli`,Q],[`longzai-intelligence-nobel-prize-knowledge`,Q],[`longzai-intelligence-notification`,Q],[`longzai-intelligence-npm`,Q],[`longzai-intelligence-npm-registry`,Q],[`longzai-intelligence-npm-registry-data`,Q],[`longzai-intelligence-observability`,Q],[`longzai-intelligence-office-industry`,Q],[`longzai-intelligence-okr-data`,Q],[`longzai-intelligence-okr-markdown`,Q],[`longzai-intelligence-older`,Q],[`longzai-intelligence-one`,Q],[`longzai-intelligence-one-digest`,Q],[`longzai-intelligence-one-digest-data`,Q],[`longzai-intelligence-one-digest-markdown`,Q],[`longzai-intelligence-one-digest-registry`,Q],[`longzai-intelligence-one-trae-works`,Q],[`longzai-intelligence-ontology`,Q],[`longzai-intelligence-open-pencil`,Q],[`longzai-intelligence-open-router`,Q],[`longzai-intelligence-open-router-data`,Q],[`longzai-intelligence-open-router-markdown`,Q],[`longzai-intelligence-opencode`,Q],[`longzai-intelligence-opencode-knowledge`,Q],[`longzai-intelligence-opportunity`,Q],[`longzai-intelligence-orchestry`,Q],[`longzai-intelligence-organization`,Q],[`longzai-intelligence-orm`,Q],[`longzai-intelligence-outfit`,Q],[`longzai-intelligence-outsourcing`,Q],[`longzai-intelligence-overseas`,Q],[`longzai-intelligence-pagination`,Q],[`longzai-intelligence-panel`,Q],[`longzai-intelligence-paper-reader`,Q],[`longzai-intelligence-parametric-industry`,Q],[`longzai-intelligence-partner`,Q],[`longzai-intelligence-pay`,Q],[`longzai-intelligence-payment`,Q],[`longzai-intelligence-permission`,Q],[`longzai-intelligence-personal-assistant`,Q],[`longzai-intelligence-philosophy`,Q],[`longzai-intelligence-philosophy-markdown`,Q],[`longzai-intelligence-philosophy-ontology`,Q],[`longzai-intelligence-pi-knowledge`,Q],[`longzai-intelligence-pii`,Q],[`longzai-intelligence-pipeline`,Q],[`longzai-intelligence-pitfalls`,Q],[`longzai-intelligence-plugin-registry`,Q],[`longzai-intelligence-pm2`,Q],[`longzai-intelligence-policy-research`,Q],[`longzai-intelligence-port`,Q],[`longzai-intelligence-portal`,Q],[`longzai-intelligence-previewer`,Q],[`longzai-intelligence-prezi`,Q],[`longzai-intelligence-prisma`,Q],[`longzai-intelligence-process-monitor`,Q],[`longzai-intelligence-product-requirement`,Q],[`longzai-intelligence-product-research`,Q],[`longzai-intelligence-programming-language`,Q],[`longzai-intelligence-project`,Q],[`longzai-intelligence-project-data`,Q],[`longzai-intelligence-project-markdown`,Q],[`longzai-intelligence-project-portfolio`,Q],[`longzai-intelligence-project-registry`,Q],[`longzai-intelligence-promotion`,Q],[`longzai-intelligence-proposals`,Q],[`longzai-intelligence-prospect`,Q],[`longzai-intelligence-psychoanalyst`,Q],[`longzai-intelligence-publication`,Q],[`longzai-intelligence-qcloud`,Q],[`longzai-intelligence-quant`,Q],[`longzai-intelligence-queue`,Q],[`longzai-intelligence-quick-notes`,Q],[`longzai-intelligence-react-devtools`,Q],[`longzai-intelligence-react-native`,Q],[`longzai-intelligence-reader`,Q],[`longzai-intelligence-reading-distinction`,Q],[`longzai-intelligence-reading-shanhaijing`,Q],[`longzai-intelligence-readme`,Q],[`longzai-intelligence-reasoning`,Q],[`longzai-intelligence-records`,Q],[`longzai-intelligence-recruitment`,Q],[`longzai-intelligence-reflections`,Q],[`longzai-intelligence-release`,Q],[`longzai-intelligence-release-markdown`,Q],[`longzai-intelligence-reliability`,Q],[`longzai-intelligence-remote-desktop`,Q],[`longzai-intelligence-remote-machine`,Q],[`longzai-intelligence-remote-machine-registry`,Q],[`longzai-intelligence-remotion`,Q],[`longzai-intelligence-report`,Q],[`longzai-intelligence-repository`,Q],[`longzai-intelligence-repository-handover`,Q],[`longzai-intelligence-research-report`,Q],[`longzai-intelligence-research-report-data`,Q],[`longzai-intelligence-research-report-markdown`,Q],[`longzai-intelligence-research-report-registry`,Q],[`longzai-intelligence-resilience`,Q],[`longzai-intelligence-reverse-engineering`,Q],[`longzai-intelligence-review-of-financial-studies-data`,Q],[`longzai-intelligence-reviewer`,Q],[`longzai-intelligence-risk`,Q],[`longzai-intelligence-roadmap`,Q],[`longzai-intelligence-roadmap-data`,Q],[`longzai-intelligence-roadmap-markdown`,Q],[`longzai-intelligence-router`,Q],[`longzai-intelligence-rss`,Q],[`longzai-intelligence-rss-markdown`,Q],[`longzai-intelligence-runtime`,Q],[`longzai-intelligence-runtime-registry`,Q],[`longzai-intelligence-sales`,Q],[`longzai-intelligence-scanner`,Q],[`longzai-intelligence-schedule-markdown`,Q],[`longzai-intelligence-schedule-registry`,Q],[`longzai-intelligence-scheduler`,Q],[`longzai-intelligence-schema`,Q],[`longzai-intelligence-scope`,Q],[`longzai-intelligence-scrape`,Q],[`longzai-intelligence-screenshots`,Q],[`longzai-intelligence-scripts-registry`,Q],[`longzai-intelligence-search`,Q],[`longzai-intelligence-security`,Q],[`longzai-intelligence-security-bounty-registry`,Q],[`longzai-intelligence-security-inventory`,Q],[`longzai-intelligence-serverless`,Q],[`longzai-intelligence-share`,Q],[`longzai-intelligence-sheet`,Q],[`longzai-intelligence-short-video`,Q],[`longzai-intelligence-skill`,Q],[`longzai-intelligence-slider`,Q],[`longzai-intelligence-smart-transition`,Q],[`longzai-intelligence-sms`,Q],[`longzai-intelligence-software-factory`,Q],[`longzai-intelligence-soul`,Q],[`longzai-intelligence-specs`,Q],[`longzai-intelligence-spline`,Q],[`longzai-intelligence-sports`,Q],[`longzai-intelligence-ssl`,Q],[`longzai-intelligence-startup`,Q],[`longzai-intelligence-state-machine`,Q],[`longzai-intelligence-storage`,Q],[`longzai-intelligence-strategy`,Q],[`longzai-intelligence-strategy-consulting`,Q],[`longzai-intelligence-strategy-consulting-data`,Q],[`longzai-intelligence-strategy-consulting-markdown`,Q],[`longzai-intelligence-supply-chain`,Q],[`longzai-intelligence-support`,Q],[`longzai-intelligence-survey`,Q],[`longzai-intelligence-system`,Q],[`longzai-intelligence-system-data`,Q],[`longzai-intelligence-system-markdown`,Q],[`longzai-intelligence-system-registry`,Q],[`longzai-intelligence-talk`,Q],[`longzai-intelligence-taro`,Q],[`longzai-intelligence-task`,Q],[`longzai-intelligence-task-data`,Q],[`longzai-intelligence-task-markdown`,Q],[`longzai-intelligence-telemetry`,Q],[`longzai-intelligence-templates`,Q],[`longzai-intelligence-tenant`,Q],[`longzai-intelligence-terminal`,Q],[`longzai-intelligence-testing`,Q],[`longzai-intelligence-thinking`,Q],[`longzai-intelligence-token-exchange`,Q],[`longzai-intelligence-token-finance`,Q],[`longzai-intelligence-token-handover`,Q],[`longzai-intelligence-toolchain`,Q],[`longzai-intelligence-topology`,Q],[`longzai-intelligence-tracking-bennett-brassard`,Q],[`longzai-intelligence-tracking-deng-yu`,Q],[`longzai-intelligence-tracking-hong-wang`,Q],[`longzai-intelligence-tracking-jacob-tsimerman`,Q],[`longzai-intelligence-tracking-john-clarke`,Q],[`longzai-intelligence-tracking-john-martinis`,Q],[`longzai-intelligence-tracking-john-pardon`,Q],[`longzai-intelligence-tracking-michel-devoret`,Q],[`longzai-intelligence-tracking-nation`,Q],[`longzai-intelligence-tracking-qbitai`,Q],[`longzai-intelligence-tracking-terrytao`,Q],[`longzai-intelligence-tracking-xiao-lin`,Q],[`longzai-intelligence-tracking-yu-bo`,Q],[`longzai-intelligence-trader`,Q],[`longzai-intelligence-trae`,Q],[`longzai-intelligence-training-data`,Q],[`longzai-intelligence-translator`,Q],[`longzai-intelligence-travel`,Q],[`longzai-intelligence-trending`,Q],[`longzai-intelligence-tsconfig`,Q],[`longzai-intelligence-tsdoc`,Q],[`longzai-intelligence-tsgo`,Q],[`longzai-intelligence-turbo`,Q],[`longzai-intelligence-turing-award-knowledge`,Q],[`longzai-intelligence-twitter`,Q],[`longzai-intelligence-twitter-data`,Q],[`longzai-intelligence-twitter-markdown`,Q],[`longzai-intelligence-typeorm`,Q],[`longzai-intelligence-usecase`,Q],[`longzai-intelligence-user-experience`,Q],[`longzai-intelligence-user-research`,Q],[`longzai-intelligence-userscript`,Q],[`longzai-intelligence-utils`,Q],[`longzai-intelligence-value-chain`,Q],[`longzai-intelligence-vector-search`,Q],[`longzai-intelligence-vendor`,Q],[`longzai-intelligence-venture-capital`,Q],[`longzai-intelligence-version`,Q],[`longzai-intelligence-video-generation`,Q],[`longzai-intelligence-video-player`,Q],[`longzai-intelligence-vite`,Q],[`longzai-intelligence-voice`,Q],[`longzai-intelligence-voice-recorder`,Q],[`longzai-intelligence-vscode-developer`,Q],[`longzai-intelligence-vuln`,Q],[`longzai-intelligence-vuln-data`,Q],[`longzai-intelligence-vuln-markdown`,Q],[`longzai-intelligence-vuln-registry`,Q],[`longzai-intelligence-warehouse`,Q],[`longzai-intelligence-wealth`,Q],[`longzai-intelligence-web3`,Q],[`longzai-intelligence-webhook`,Q],[`longzai-intelligence-websocket`,Q],[`longzai-intelligence-wechat`,Q],[`longzai-intelligence-wechat-miniprogram`,Q],[`longzai-intelligence-wechat-pay`,Q],[`longzai-intelligence-wifi`,Q],[`longzai-intelligence-wiki`,Q],[`longzai-intelligence-word`,Q],[`longzai-intelligence-work`,Q],[`longzai-intelligence-worker`,Q],[`longzai-intelligence-workflow`,Q],[`longzai-intelligence-workflow-data`,Q],[`longzai-intelligence-workflow-markdown`,Q],[`longzai-intelligence-workflow-registry`,Q],[`longzai-intelligence-workspace`,Q],[`longzai-intelligence-writer`,Q],[`longzai-intelligence-xiaohongshu`,Q],[`longzai-intelligence-xiaohongshu-data`,Q],[`longzai-intelligence-xiaohongshu-markdown`,Q],[`longzai-intelligence-youtube`,Q],[`longzai-intelligence-youtube-data`,Q],[`longzai-intelligence-youtube-markdown`,Q],[`longzai-intelligence-zcode`,Q],[`longzai-intelligence-zcode-cleaner`,Q],[`longzai-intelligence-zcode-commit`,Q],[`longzai-intelligence-zcode-knowledge`,Q],[`longzai-intelligence-zcode-remote`,Q],[`longzai-intelligence-zcode-security`,Q],[`longzai-intelligence-zed-delta-knowledge`,Q],[`longzai-intelligence-zhihu`,Q],[`longzai-intelligence-zhihu-data`,Q],[`longzai-intelligence-zhihu-markdown`,Q]]),up=`LZI_GLOBALS_ROOT`,dp=/^[a-zA-Z0-9][a-zA-Z0-9._-]*$/;var fp=class extends Error{details;constructor(e,t=`install.extraScopes`){super(`${t} 校验失败:\n${e.map(e=>`- ${e}`).join(`
209
209
  `)}`),this.name=`InstallScopesError`,this.details=e}};function pp(e){if(typeof e!=`string`)return!1;try{let t=new URL(e);return t.protocol===`http:`||t.protocol===`https:`}catch{return!1}}function mp(e,t,n,r){let i=e instanceof Map?Object.fromEntries(e):{...e},a=[],o={};for(let[n,i]of Object.entries(t??{})){let t=n.replace(/^@+/,``);t.length===0||!dp.test(t)?a.push(`\`${n}\` 不是合法 scope 名(仅允许字母/数字开头,后接字母/数字与 . _ -,@ 前缀可省略)`):pp(i)?o[t]!==void 0&&o[t]!==i?a.push(`\`${t}\` 在 extraScopes 内重复声明且安装源不一致`):(e instanceof Map?e.has(t):Object.hasOwn(e,t))?a.push(`\`${t}\` 与预定义 scope 冲突(预定义不可覆盖,如需调整请在 ${r} 维护)`):o[t]=i:a.push(`\`${n}\` 的安装源 \`${String(i)}\` 不是合法的 http/https URL`)}let s=/* @__PURE__ */ new Set;for(let e of n??[]){let t=e.replace(/^@+/,``);t.length===0||!dp.test(t)?a.push(`\`${e}\` 不是合法 scope 名(仅允许字母/数字开头,后接字母/数字与 . _ -,@ 前缀可省略)`):o[t]===void 0?s.add(t):a.push(`\`${t}\` 同时出现在 extraScopes 与 privateScopes(追加公网安装源与私有轨声明矛盾)`)}if(a.length>0)throw new fp(a);for(let[e,t]of Object.entries(o))i[e]=t;for(let e of s)delete i[e];return i}function hp(e,t,n,r){let i=mp(e,t,n,`globals 仓 lzi-bun-install.config.ts`),a=r?.replace(/^@+/,``),o=new Set((n??[]).map(e=>e.replace(/^@+/,``)));return a!==void 0&&dp.test(a)&&!Object.hasOwn(i,a)&&!o.has(a)&&(i[a]=`https://registry.npmjs.org/`),i}function gp(e){let t=[];if(typeof e!=`object`||!e)throw new fp([`default export 必须是对象({ scopes: { ... } })`],`globals 预设 lzi-bun-install.config.ts`);let n=typeof e==`object`&&e&&`scopes`in e?e.scopes:void 0;if(typeof n!=`object`||!n||Array.isArray(n))throw new fp([`scopes 必须是 scope → registry 的对象映射`],`globals 预设 lzi-bun-install.config.ts`);let r={};for(let[e,i]of Object.entries(n))dp.test(e)?typeof i!=`string`||!pp(i)?t.push(`\`${e}\` 的安装源 \`${String(i)}\` 不是合法的 http/https URL`):r[e]=i:t.push(`\`${e}\` 不是合法 scope 名(仅允许字母/数字开头,后接字母/数字与 . _ -,不含 @ 前缀)`);if(t.length>0)throw new fp(t,`globals 预设 lzi-bun-install.config.ts`);if(Object.keys(r).length===0)throw new fp([`scopes 清单为空(真源不允许空清单)`],`globals 预设 lzi-bun-install.config.ts`);return r}const _p=/* @__PURE__ */ new Set([`web`,`desktop`,`desktop-host`,`mobile`,`miniprogram`,`ui`]);function vp(e){let t=process.env.LZI_TEST_MEMORY_BUDGET_BYTES;if(t!==void 0){let e=Number.parseInt(t,10);if(Number.isInteger(e)&&e>0)return e}return e!==void 0&&_p.has(e)?1610612736:1073741824}var yp=class extends Error{configPath;constructor(e,t,n){super(e,n),this.name=`SharedConfigError`,this.configPath=t}},bp=class extends yp{searchFrom;constructor(e){super(`未在 ${e} 找到配置文件`,e),this.name=`SharedConfigNotFoundError`,this.searchFrom=e}},xp=class extends yp{issues;constructor(e,t){super(`配置校验失败,共 ${e.length} 个问题`,t),this.name=`SharedConfigValidationError`,this.issues=e}};function Sp(e,t,n,r){let i=e;if(r.schema!==void 0){let e=r.schema.safeParse(i);if(!e.success)throw new xp(e.error.issues,t);i=e.data}return r.transform!==void 0&&(i=r.transform(i,n)),i}function Cp(e){return e instanceof Error&&e.message.length>0?`,底层原因为 ${e.name}: ${e.message}`:``}var wp=class extends yp{cause;constructor(e,t){super(`加载配置文件 ${e} 失败${Cp(t)}`,e,{cause:t}),this.name=`SharedConfigLoadError`,this.cause=t}};function Tp(e){return typeof e==`object`&&!!e}function Ep(e){return typeof e==`object`&&!!e}async function Dp(e,t={}){let n=f(e);if(!r(n))throw new bp(n);let i;try{let e=await import(n);i=Tp(e)?e.default:void 0}catch(e){throw new wp(n,e)}if(i===void 0)throw new wp(n,TypeError(`配置文件缺少默认导出`));if(!Ep(i))throw new wp(n,TypeError(`配置文件的默认导出必须是对象`));return{config:Sp(i,n,l(n),t),configFilePath:n}}function Op(e=process.cwd()){let t=f(e);for(;;){let e=u(t,`lzi.config.ts`);if(r(e))return e;let n=l(t);if(n===t)return null;t=n}}async function kp(e={}){let t=e.cwd??process.cwd(),n=Op(t);if(n===null)throw new bp(t);let r=f(n,`..`),{config:i}=await Dp(n);return{config:i,configPath:r,configFilePath:n}}function Ap(e){return typeof e==`object`&&!!e}async function jp(e){let t;try{t=await S(e)}catch(t){throw new wp(e,t)}let n=t.filter(e=>e.endsWith(`.config.ts`)).sort();if(n.length===0)throw new wp(e,Error(`配置目录内没有 .config.ts 分片文件`));let r={};for(let t of n){let n=await Dp(u(e,t));r={...r,...n.config}}let i=r;if(!Ap(i))throw new wp(e,Error(`配置目录合并结果不是对象形态`));return i}function Mp(e,t=process.cwd()){let n=Array.isArray(e)?e:[e],r=f(t);for(;;){for(let e of n){let t=u(r,e);if(Np(t))return t}let e=l(r);if(e===r)return null;r=e}}function Np(e){try{return s(e).isDirectory()}catch{return!1}}function Pp(e,t=process.cwd()){let n=Array.isArray(e)?e:[e],i=f(t);for(;;){for(let e of n){let t=u(i,e);if(r(t))return t}let e=l(i);if(e===i)return null;i=e}}function Fp(e){return typeof e==`object`&&!!e}function Ip(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}async function Lp(e={}){let t=e.cwd??f(process.cwd());if(e.explicitPath!==void 0){let t=await Dp(e.explicitPath,{schema:e.schema,transform:e.transform});return{success:!0,config:t.config,source:`explicit`,configFilePath:t.configFilePath}}if(e.standaloneFile!==void 0){let n=Pp(e.standaloneFile,t);if(n!==null){let{config:t}=await Dp(n);return{success:!0,config:Sp(t,n,l(n),e),source:`standalone`,configFilePath:n}}}if(e.standaloneDir!==void 0){let n=Mp(e.standaloneDir,t);if(n!==null)return{success:!0,config:Sp(await jp(n),n,n,e),source:`standalone`,configFilePath:n}}if(e.unifiedField!==void 0){let n,r;try{let{config:i,configFilePath:a}=await kp({cwd:t}),o=i;n=Ip(o)?o[e.unifiedField]:void 0,r=a}catch(e){if(!(e instanceof bp))throw e}if(r!==void 0&&n!==void 0&&Fp(n))return{success:!0,config:Sp(n,r,l(r),e),source:`unified`,configFilePath:r}}return{success:!1,configFilePath:null}}const Rp=[`packages/*`,`apps/*`];function zp(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Bp(e){if(Array.isArray(e))return e.every(e=>typeof e==`string`)?e:void 0;if(zp(e)){let t=e.packages;if(Array.isArray(t)&&t.every(e=>typeof e==`string`))return{packages:t}}}function Vp(e){let t=f(e,`package.json`);if(!r(t))throw new bp(e);let n;try{let e=JSON.parse(a(t,`utf8`));n=zp(e)?Bp(e.workspaces):void 0}catch(e){throw new wp(t,e)}let i=Array.isArray(n)?n:n?.packages;return i&&i.length>0?i:Rp}async function Hp(e,t={}){let n=Vp(e),i=/* @__PURE__ */ new Set,o=[];for(let s of n){let n=new Bun.Glob(`${s}/package.json`);for await(let s of n.scan({cwd:e,absolute:!0,onlyFiles:!0})){let e=f(s,`..`);if(i.has(e))continue;let n;try{let e=JSON.parse(a(s,`utf8`));n=typeof e==`object`&&e?e:void 0}catch{continue}n!==void 0&&typeof n.name==`string`&&n.name.length!==0&&(t.configFileName!==void 0&&!r(f(e,t.configFileName))||(i.add(e),o.push({name:n.name,dir:e})))}}return o}var Up=class extends Error{bunfigPath;reason;constructor(e,t){super(`${e} 校验失败:${t};请运行 bun run bun-config:generate 后重试`),this.name=`BunfigDriftError`,this.bunfigPath=e,this.reason=t}},Wp=class extends Error{bunfigPath;constructor(e){super(`${e} 已存在且非 lzi-bun 生成(缺少 @lzi-bun 自动生成,请勿编辑 标记),如需 lzi-bun 接管,请删除该文件或手动合并后重试`),this.name=`BunfigProtectedError`,this.bunfigPath=e}};function Gp(e){return`"${e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`)}"`}function Kp(e,t){let n=e.map(e=>Gp(e)),r=`[${n.join(`, `)}]`;return`${t} = `.length+r.length<=100?r:`[\n${n.map(e=>` ${e},`).join(`
210
210
  `)}\n]`}function qp(e){let t=[`registry = ${Gp(e.registry)}`],n=Yp(`linker`,e.linker);n&&t.push(n);let r=Yp(`globalStore`,e.globalStore);r&&t.push(r);let i=Object.entries(e.scopes).sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>`${Gp(`@${e}`)} = ${Gp(t)}`),a=[`[install]\n${t.join(`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@longzai-intelligence-bun/cli",
3
- "version": "0.1.6",
3
+ "version": "0.1.7",
4
4
  "description": "Longzai Intelligence Bun 工具集 CLI",
5
5
  "keywords": [
6
6
  "bun",
@@ -40,8 +40,8 @@
40
40
  "test:coverage": "lzi-bun test --coverage"
41
41
  },
42
42
  "dependencies": {
43
- "@longzai-intelligence-bun/config": "0.1.6",
44
- "@longzai-intelligence-bun/presets": "0.1.6",
43
+ "@longzai-intelligence-bun/config": "0.1.7",
44
+ "@longzai-intelligence-bun/presets": "0.1.7",
45
45
  "@longzai-intelligence-cli/core": "^0.0.10",
46
46
  "@longzai-intelligence-cli/standard": "^0.0.10",
47
47
  "@longzai-intelligence-logger/node": "^0.1.8",