@vibecontrols/agent 2026.602.2 → 2026.602.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.
- package/dist/{agent-config-85pskv43.js → agent-config-4ppenhqp.js} +1 -1
- package/dist/{agent-ready-tracker-zp6p8e6f.js → agent-ready-tracker-kgs7td6t.js} +1 -1
- package/dist/app-8qe1gw9z.js +2 -0
- package/dist/bootstrap-workspace-qgs6d5f0.js +2 -0
- package/dist/bootstrap.service-vg72w8pa.js +2 -0
- package/dist/{bridge-client-341r9rry.js → bridge-client-1fxza4p7.js} +1 -1
- package/dist/cli.js +1 -1
- package/dist/daemon-profile-gwdcqx0q.js +2 -0
- package/dist/esm-6f3dfn6v.js +2 -0
- package/dist/{finalize-retry-handle-registry-vv241fsq.js → finalize-retry-handle-registry-xnm9kxry.js} +1 -1
- package/dist/{finalize-retry-worker-xp1nhv3c.js → finalize-retry-worker-dvykrzed.js} +1 -1
- package/dist/gateway-client-9kwnmk89.js +2 -0
- package/dist/{getMachineId-bsd-a56s0v8c.js → getMachineId-bsd-753751sw.js} +1 -1
- package/dist/{getMachineId-darwin-w9k0yw9r.js → getMachineId-darwin-na1pranq.js} +1 -1
- package/dist/{getMachineId-linux-anh31jbf.js → getMachineId-linux-dmn0ncdm.js} +1 -1
- package/dist/{getMachineId-unsupported-5hv3pwca.js → getMachineId-unsupported-yv77j894.js} +1 -1
- package/dist/{getMachineId-win-njb8tery.js → getMachineId-win-9hmyqmm0.js} +1 -1
- package/dist/highlights-00fcgwwq.js +2 -0
- package/dist/highlights-23bc8zge.js +2 -0
- package/dist/highlights-4mhb2pb0.js +2 -0
- package/dist/highlights-q7w64nwb.js +2 -0
- package/dist/highlights-xwdw5xay.js +2 -0
- package/dist/{index-678rwfc0.js → index-0924jp9m.js} +1 -1
- package/dist/{index-z5a4yxzz.js → index-1mppacnx.js} +3 -3
- package/dist/{index-g8zv1gta.js → index-1zf3r23y.js} +1 -1
- package/dist/{index-jw1k4vbk.js → index-4qq083yd.js} +1 -1
- package/dist/index-5amvpjqx.js +11 -0
- package/dist/{index-d5ysy1yn.js → index-5dysvvjv.js} +1 -1
- package/dist/{index-n7qyrdr1.js → index-5wpck4aw.js} +1 -1
- package/dist/{index-5mw3eshk.js → index-8nqp3a4d.js} +1 -1
- package/dist/{index-2xs9cvjn.js → index-8sdrhr3q.js} +2 -2
- package/dist/{index-6mprnf7p.js → index-97mq40rr.js} +1 -1
- package/dist/{index-0cn9bv8z.js → index-a4854mwz.js} +1 -1
- package/dist/{index-tp4y9jde.js → index-a9ejdv22.js} +1 -1
- package/dist/{index-fzzwprvk.js → index-aq81xmn0.js} +5 -5
- package/dist/{index-xjzmb1pn.js → index-b6x6a4xp.js} +2 -2
- package/dist/{index-yy1mm8zs.js → index-c7554sg7.js} +1 -1
- package/dist/{index-mtm8cfyt.js → index-ca5c245v.js} +2 -2
- package/dist/{index-2gsarrbn.js → index-d1xjj001.js} +1 -1
- package/dist/{index-h8a8s8sn.js → index-ebwwtwwc.js} +1 -1
- package/dist/{index-8sm0nkh8.js → index-ep3zb271.js} +1 -1
- package/dist/{index-g2raeeh4.js → index-h74va4wd.js} +2 -2
- package/dist/{index-v9fx5wab.js → index-hvjqgb97.js} +1 -1
- package/dist/{index-9bqd8veb.js → index-js1xn4sq.js} +3 -3
- package/dist/{index-x1h8r7pr.js → index-kt5zxp42.js} +1 -1
- package/dist/{index-ssjmzqcz.js → index-nmk7cbj5.js} +1 -1
- package/dist/{index-rdp5xq4r.js → index-nrsqzcfc.js} +1 -1
- package/dist/index-p23tet7a.js +2 -0
- package/dist/{index-04n4qgvd.js → index-pgew6sge.js} +3 -3
- package/dist/{index-1zw3kea7.js → index-qwtspxw8.js} +1 -1
- package/dist/index-qzwphe3q.js +26 -0
- package/dist/index-rqq0k5fc.js +16 -0
- package/dist/{index-6jq17k9s.js → index-rv6h14n8.js} +1 -1
- package/dist/{index-qfz9fy56.js → index-rw9x93zb.js} +1 -1
- package/dist/{index-dm6yjmgq.js → index-rzpaqrhx.js} +2 -2
- package/dist/{index-g3ap3xpr.js → index-s2xpdnsj.js} +4 -4
- package/dist/{index-vdahdt49.js → index-tgrt61qr.js} +1 -1
- package/dist/{index-ef95xr4z.js → index-thammzct.js} +2 -2
- package/dist/{index-scsjyj4m.js → index-x649afed.js} +2 -2
- package/dist/{index-8kvc8ttn.js → index-xrs52f2c.js} +1 -1
- package/dist/{index-yrgm89r8.js → index-ydc0tk17.js} +1 -1
- package/dist/{index-1hnw0rhc.js → index-ytgmhxsj.js} +31 -31
- package/dist/{index-0248afsn.js → index-z5s398n0.js} +1 -1
- package/dist/index.js +2 -2
- package/dist/injections-x3xya90r.js +2 -0
- package/dist/interactive-qc1j66mq.js +2 -0
- package/dist/key.cmd-972133dv.js +2 -0
- package/dist/log-shipper-hjnn1d5p.js +2 -0
- package/dist/{path-utils-35re7qf9.js → path-utils-hxdyv2zn.js} +1 -1
- package/dist/{plugin-system-c916v9an.js → plugin-system-cwznxqx5.js} +1 -1
- package/dist/prereqs-runner-27x3j1md.js +2 -0
- package/dist/profile-mount-8dc9jwt5.js +2 -0
- package/dist/prune-stale-shims-23y0stm8.js +2 -0
- package/dist/register-core-0d4adnqp.js +2 -0
- package/dist/secondary-profile-attach-qk5tde9n.js +2 -0
- package/dist/subprocess-1nna3d3x.js +2 -0
- package/dist/telemetry-8jfdyt51.js +2 -0
- package/dist/tree-sitter-javascript-q22gvtms.js +2 -0
- package/dist/tree-sitter-markdown-pntsjzm3.js +2 -0
- package/dist/tree-sitter-markdown_inline-g1wzqf7k.js +2 -0
- package/dist/tree-sitter-typescript-m9yfes10.js +2 -0
- package/dist/tree-sitter-zig-jmh62j90.js +2 -0
- package/dist/tunnel-bootstrap-5wgt9a1h.js +2 -0
- package/package.json +1 -1
- package/dist/app-y4yzq7yw.js +0 -2
- package/dist/bootstrap-workspace-zpm20zez.js +0 -2
- package/dist/bootstrap.service-pjmnpxha.js +0 -2
- package/dist/daemon-profile-vas1vf2t.js +0 -2
- package/dist/esm-9fpye77x.js +0 -2
- package/dist/gateway-client-43gzvj5s.js +0 -2
- package/dist/highlights-8d9mgr01.js +0 -2
- package/dist/highlights-jwvdxm9x.js +0 -2
- package/dist/highlights-qbx2vnme.js +0 -2
- package/dist/highlights-r3m83kn9.js +0 -2
- package/dist/highlights-s7mqapt6.js +0 -2
- package/dist/index-01qzsnwd.js +0 -16
- package/dist/index-hrdamx5j.js +0 -2
- package/dist/index-tmrbs96r.js +0 -11
- package/dist/index-z2yjbq9a.js +0 -26
- package/dist/injections-srewsjcz.js +0 -2
- package/dist/interactive-22ta89hc.js +0 -2
- package/dist/key.cmd-wgcq6kt8.js +0 -2
- package/dist/log-shipper-k24m8yw5.js +0 -2
- package/dist/prereqs-runner-ca4kt803.js +0 -2
- package/dist/profile-mount-npcknw6v.js +0 -2
- package/dist/prune-stale-shims-nkx9vq5m.js +0 -2
- package/dist/register-core-xhrk6ay5.js +0 -2
- package/dist/secondary-profile-attach-db5cr3e1.js +0 -2
- package/dist/subprocess-g9sk1ep9.js +0 -2
- package/dist/telemetry-tnq47dcs.js +0 -2
- package/dist/tree-sitter-javascript-3h25c6bs.js +0 -2
- package/dist/tree-sitter-markdown-3nemcjhe.js +0 -2
- package/dist/tree-sitter-markdown_inline-16ftwa53.js +0 -2
- package/dist/tree-sitter-typescript-f6mq6ze6.js +0 -2
- package/dist/tree-sitter-zig-s2trkm2d.js +0 -2
- package/dist/tunnel-bootstrap-2kg79ng8.js +0 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{d as m,e as H2}from"./index-0248afsn.js";import{z as u}from"./index-1hnw0rhc.js";import"./index-2gsarrbn.js";import"./index-tp4y9jde.js";import"./index-4wgjx8bf.js";import{Ja as Z2,Ka as $2,La as z2,Na as W2,Ta as d}from"./index-g3ap3xpr.js";import"./index-0ckffygp.js";import"./index-v9fx5wab.js";import"./index-01qzsnwd.js";import{Qb as X2,Rb as Y2}from"./index-d5ysy1yn.js";import{Tb as J,Ub as V2}from"./index-04n4qgvd.js";import{ic as l,jc as t,kc as R}from"./index-5mw3eshk.js";import{nc as N,pc as q,qc as O,rc as I,sc as S,tc as _,uc as k,vc as A,xc as i}from"./index-z5a4yxzz.js";import{Fc as s,Gc as G2}from"./index-ef95xr4z.js";import{Kc as U,Mc as E,Nc as n,Oc as D}from"./index-xjzmb1pn.js";import"./index-g2raeeh4.js";import{Nd as c}from"./index-9bqd8veb.js";import"./index-0cn9bv8z.js";import"./index-jw1k4vbk.js";import{he as L}from"./index-yy1mm8zs.js";import{timingSafeEqual as j2}from"crypto";async function a(V,B){try{let z=Bun.spawn({cmd:["npm","view",`${V}@${B}`,"dist.integrity","--json"],stdout:"pipe",stderr:"pipe"});if(await z.exited!==0)return null;let X=(await new Response(z.stdout).text()).trim();if(!X)return null;if(X.startsWith('"'))try{let $=JSON.parse(X);return typeof $==="string"?$:null}catch{return null}return X}catch{return null}}function e(V,B){let z=Buffer.from(V),K=Buffer.from(B);if(z.length!==K.length)return!1;try{return j2(z,K)}catch{return!1}}var U2=$2.map((V)=>({packageName:V.packageName,name:V.pluginName,description:V.description,cliCommand:V.cliCommand,apiPrefix:V.apiPrefix,installed:!1,category:V.category})),y=new Map;function w(V,B){let K=(y.get(V)??Promise.resolve()).then(B,B),Q=K.then(()=>{return},()=>{return});return y.set(V,Q),Q.finally(()=>{if(y.get(V)===Q)y.delete(V)}),K}function K2(V){return y.has(V)}function Q2(V){let B=V.getPluginDetails(),z=new Set(B.map((K)=>K.packageName));return{plugins:U2.map((K)=>({...K,installed:z.has(K.packageName)}))}}function B2(V){let{pluginManager:B}=V;return new V2().get("/",()=>{let z=B.getPluginDetails();return{plugins:z,count:z.length}}).get("/available",()=>Q2(B)).get("/catalog",()=>Q2(B)).get("/contributions",({query:z})=>{let K=typeof z?.mountPoint==="string"&&z.mountPoint?z.mountPoint:null,Q=[],X=new Map;for(let $ of B.getPluginDetails())X.set($.pluginName,$.packageName);for(let $ of B.getAllPlugins()){let x=$.ui;if(!x||!x.contributions||x.contributions.length===0)continue;let Y=x.capabilities??{restPaths:[],wsTopics:[],rpcMethods:[]};for(let W of x.contributions){if(K&&W.mountPoint!==K)continue;let Z=W.meta,H=Z&&typeof Z.url==="string"?Z.url:null,F=H&&H.startsWith("/")&&!H.startsWith("//")&&!H.includes("\x00")&&!H.includes("..")?H:null;Q.push({pluginKey:$.name,pluginPackageName:X.get($.name),contribution:W,capabilities:W.capabilities??Y,url:F??`/ui/${encodeURIComponent($.name)}`})}}return{contributions:Q,count:Q.length}}).post("/install",async({body:z,set:K})=>{if(!z.packageName||typeof z.packageName!=="string")return K.status=400,{error:"Missing required field: packageName"};if(z.packageName.startsWith("@burdenoff/"))z.packageName=z.packageName.replace(/^@burdenoff\//,"@vibecontrols/");if(!W2(z.packageName))return K.status=403,{error:"Plugin package is not in the trusted VibeControls catalog"};try{let Q=d(z.packageName);if(K2(Q)){let X=Q.split("/").pop()?.replace("vibe-plugin-","");if(B.getAllPlugins().some((x)=>x.name===X))return{success:!0,message:`Plugin ${Q} is already installed`,packageName:Q,alreadyInstalled:!0};return K.status=409,{error:"Install for this package is already in progress. Wait for it to finish.",packageName:Q}}return await w(Q,async()=>{let X=Q.split("/").pop()?.replace("vibe-plugin-",""),$=X?.startsWith("ai-")?X.slice(3):void 0,x=B.getAllPlugins().find((C)=>C.name===X||C.name===$),Y=!!x,W=await B.install(Q),Z=z2(Q);if(Z?.integrity){let C=await a(Q,W.version);if(!C||!e(Z.integrity,C)){try{await B.remove(Q,V.hostServices)}catch(G){console.warn(`[plugin-mgr] integrity rollback uninstall failed for ${Q}:`,G)}return c().audit.emit("agent","plugin.install.rejected",{packageName:Q,version:W.version,reason:"integrity_mismatch",expected:Z.integrity,actual:C}),K.status=400,{error:"integrity mismatch",expected:Z.integrity,actual:C}}}else console.warn(`[plugin-mgr] plugin ${Q} has no pinned integrity \u2014 accepting npm registry's hash`);let H=B.getAllPlugins().find((C)=>C.name===W.pluginName);if(H){let C=[];if(V.mountPlugin)V.mountPlugin(H);if(V.hostServices){if(Y&&x?.onServerStop)try{await x.onServerStop()}catch(G){C.push(`onServerStop failed: ${G instanceof Error?G.message:String(G)}`)}if(B.registerProviders(H,V.hostServices),H.onServerStart&&V.app)try{await H.onServerStart(V.app,V.hostServices),B.registerProviders(H,V.hostServices)}catch(G){C.push(`onServerStart failed: ${G instanceof Error?G.message:String(G)}`)}if(H.onServerReady&&V.app)try{await H.onServerReady(V.app,V.hostServices)}catch(G){C.push(`onServerReady failed: ${G instanceof Error?G.message:String(G)}`)}}if(V.rebuildPluginSurfaces?.(),C.length>0)return K.status=500,{success:!1,message:`Plugin ${Q} installed but failed to start`,lifecycleErrors:C,restartRequired:!0}}let F;if(H&&V.app)try{F=await m(H,Q,V.app,V.db,{skipInstall:!!z.skipPrereqs})}catch(C){F=void 0,console.warn(`[plugin-mgr] prereq run failed for ${Q}:`,C)}return u(V.db),c().audit.emit("agent","plugin.installed",{packageName:Q,version:W.version,pluginName:W.pluginName,wasRunning:Y}),{success:!0,message:`Plugin ${Q} installed and loaded successfully`,prereqs:F?{satisfied:F.satisfied,missing:F.status?.missing??[],pendingSudo:F.pendingSudo,skipped:!!z.skipPrereqs}:void 0}})}catch(Q){return K.status=500,{error:"Failed to install plugin",details:String(Q)}}},{body:J.Object({packageName:J.String(),skipPrereqs:J.Optional(J.Boolean())})}).post("/prereqs/status",async({body:z,set:K})=>{if(!z.packageName)return K.status=400,{error:"Missing packageName"};let Q=z.packageName,X=B.getAllPlugins().find(($)=>$.name===Q||B.getLoaded(Q)?.name===$.name);if(!X||!V.app)return await H2(V.db,Q)??{satisfied:!0,missing:[]};try{let $=await m(X,Q,V.app,V.db,{skipInstall:!0});return{satisfied:$.satisfied,missing:$.status?.missing??[],noProtocol:$.noProtocol}}catch($){return K.status=500,{error:String($)}}},{body:J.Object({packageName:J.String()})}).post("/prereqs/install",async({body:z,set:K})=>{if(!z.packageName)return K.status=400,{error:"Missing packageName"};let Q=z.packageName,X=B.getAllPlugins().find(($)=>$.name===Q||B.getLoaded(Q)?.name===$.name);if(!X||!V.app)return K.status=404,{error:"Plugin not loaded"};try{let $=await m(X,Q,V.app,V.db,{skipInstall:!1});return{satisfied:$.satisfied,installed:$.install?.installed??[],pendingSudo:$.pendingSudo,errors:$.install?.errors??[],noProtocol:$.noProtocol}}catch($){return K.status=500,{error:String($)}}},{body:J.Object({packageName:J.String(),approveSudo:J.Optional(J.Boolean())})}).post("/prereqs/uninstall",async({body:z,set:K})=>{if(!z.packageName)return K.status=400,{error:"Missing packageName"};let Q=z.packageName,X=B.getAllPlugins().find((W)=>W.name===Q);if(!X||!X.apiPrefix||!V.app)return K.status=404,{error:"Plugin not loaded"};let $=V.app.handle;if(typeof $!=="function")return K.status=500,{error:"App handle unavailable"};let x=`${X.apiPrefix.replace(/\/+$/,"")}/prereqs/uninstall`,Y=await $.call(V.app,new Request(`http://agent.local${x}`,{method:"POST",headers:{"x-vc-profile-rewrite":"1",[X2]:Y2()}}));if(Y.status===404)return K.status=404,{error:"Plugin has no prereqs/uninstall endpoint"};return Y.json()},{body:J.Object({packageName:J.String()})}).post("/nuke",async({body:z,set:K})=>{if(!V.hostServices)return K.status=503,{error:"hostServices unavailable"};let Q=V.hostServices.getDataDir?.();return{ok:!0,...await B.runPluginNuke(z.packageName,V.hostServices,{agentDir:Q,dryRun:!!z.dryRun})}},{body:J.Object({packageName:J.Optional(J.String()),dryRun:J.Optional(J.Boolean())})}).post("/remove",async({body:z,set:K})=>{if(!z.packageName||typeof z.packageName!=="string")return K.status=400,{error:"Missing required field: packageName"};if(z.packageName.startsWith("@burdenoff/"))z.packageName=z.packageName.replace(/^@burdenoff\//,"@vibecontrols/");if(Z2(z.packageName))return{success:!0,message:`Plugin ${z.packageName} is critical and cannot be removed; treating remove as a no-op.`,skipped:!0};try{let Q=d(z.packageName);return await w(Q,async()=>{return await B.remove(Q,V.hostServices),V.rebuildPluginSurfaces?.(),u(V.db),c().audit.emit("agent","plugin.removed",{packageName:Q}),{success:!0,message:`Plugin ${Q} removed successfully`}})}catch(Q){return K.status=500,{error:"Failed to remove plugin",details:String(Q)}}},{body:J.Object({packageName:J.String()})}).post("/update",async({body:z,set:K})=>{if(!z.packageName||typeof z.packageName!=="string")return K.status=400,{error:"Missing required field: packageName"};let Q=typeof z.version==="string"&&z.version.trim()?z.version.trim():void 0;if(Q&&!/^[0-9][0-9A-Za-z.+-]{0,63}$/.test(Q))return K.status=400,{error:`Invalid version "${Q}"`};try{let X=d(z.packageName);return await w(X,async()=>{let $=B.getLoaded(X);if($?.onServerStop)await $.onServerStop({reason:"reload"});if($&&V.hostServices)V.hostServices.serviceRegistry.unregisterPlugin($.name);let x=await B.update(X,Q),Y=B.getLoaded(X);if(Y&&V.hostServices){if(B.registerProviders(Y,V.hostServices),Y.onServerStart&&V.app)await Y.onServerStart(V.app,V.hostServices),B.registerProviders(Y,V.hostServices);if(Y.onServerReady&&V.app)await Y.onServerReady(V.app,V.hostServices)}return V.rebuildPluginSurfaces?.(),u(V.db),{success:!0,message:`Plugin ${X} updated to v${x.version}`,version:x.version}})}catch(X){return K.status=500,{error:"Failed to update plugin",details:String(X)}}},{body:J.Object({packageName:J.String(),version:J.Optional(J.String())})}).post("/update-all",async({set:z})=>{try{let K=await w("*",()=>B.updateAll());return{success:!0,results:K,message:`Updated ${K.filter((Q)=>Q.success).length}/${K.length} plugin(s)`}}catch(K){return z.status=500,{error:"Failed to update all plugins",details:String(K)}}}).post("/remove-all",async({set:z})=>{try{let K=await w("*",async()=>{let Q=await B.removeAll(V.hostServices);return V.rebuildPluginSurfaces?.(),Q});return{success:!0,results:K,message:`Removed ${K.filter((Q)=>Q.success).length}/${K.length} plugin(s)`}}catch(K){return z.status=500,{error:"Failed to remove all plugins",details:String(K)}}}).post("/reload",async({set:z})=>{try{if(!V.app||!V.hostServices)return z.status=503,{error:"Plugin lifecycle services are not ready"};let K=await w("*",async()=>{return await B.reloadAll(V.app,V.hostServices),V.rebuildPluginSurfaces?.(),B.getPluginDetails()});return{success:!0,plugins:K,message:`Reloaded ${K.length} plugin(s)`}}catch(K){return z.status=500,{error:"Failed to reload plugins",details:String(K)}}}).post("/:name/reload",async({params:z,set:K})=>{if(!V.app||!V.hostServices)return K.status=503,{error:"Plugin lifecycle services are not ready"};let Q=z.name,X=B.getAllPlugins().find((Y)=>Y.name===Q);if(!X)return K.status=404,{error:`Plugin "${Q}" not found`};let x=B.getPluginDetails().find((Y)=>Y.pluginName===Q)?.packageName??`core:${Q}`;if(K2(x))return K.status=409,{error:"Plugin lifecycle in progress; try again shortly",packageName:x};try{return await w(x,async()=>{if(X.onServerStop)try{await X.onServerStop({reason:"reload"})}catch(Y){console.warn(`[plugin-mgr] onServerStop during reload of ${Q}:`,Y)}if(V.hostServices)V.hostServices.serviceRegistry.unregisterPlugin(X.name);if(B.registerProviders(X,V.hostServices),X.onServerStart)await X.onServerStart(V.app,V.hostServices),B.registerProviders(X,V.hostServices);if(X.onServerReady)await X.onServerReady(V.app,V.hostServices);return V.rebuildPluginSurfaces?.(),{success:!0,message:`Plugin ${Q} reloaded`,version:X.version}})}catch(Y){return K.status=500,{error:"Failed to reload plugin",details:String(Y)}}},{params:J.Object({name:J.String()})})}import{mkdirSync as o,writeFileSync as v,existsSync as x2}from"fs";import{isAbsolute as D2,join as T,relative as h2,resolve as g}from"path";var h="http://localhost:3005",A2=/^[a-z0-9][a-z0-9-]{0,63}$/,v2=new Set(["backend","frontend","cli","provider","adapter","integration"]);function C2(V,B){let z=h2(V,B);if(z.startsWith("..")||D2(z))throw Error("Plugin scaffold path escapes the selected directory.")}function M(V){return JSON.stringify(V)}function J2(V){let B=V.command("plugin").description("Manage plugins");B.command("list").description("List installed plugins").option("--agent-url <url>","Agent URL",h).option("--profile <name>","Target a specific profile by name").option("--json","Emit JSON").option("--plain","Force plain text output").action(async(K)=>{try{let Q={...V.opts(),...K},X=U(K),$=encodeURIComponent(E(Q)),x=async()=>{try{return(await n(X,`/api/profiles/${$}/plugins`)).plugins||[]}catch{S("Agent not reachable. Attempting local plugin registry...");let{PluginManager:Z}=await import("./plugin-system-c916v9an.js");return new Z().getPluginDetails()||[]}},Y=(Z)=>Z.status??(Z.loaded===!0||Z.enabled===!0?"enabled":"disabled"),W=(Z)=>Z.pluginName||Z.name||Z.packageName||Z.package||"-";await t({mode:l(Q),fetchData:x,plain:(Z)=>{if(!Z.length){_("No plugins installed.");return}k("Installed Plugins"),i(Z.map((H)=>({Name:W(H),Version:H.version||"-",Status:Y(H),Description:H.description||"-"})))},interactive:async(Z)=>{if(!Z.length){k("Installed Plugins"),_("No plugins installed.");return}let H=Z.map((F)=>{let C=W(F),G=Y(F),b=[`${N.bold(C)} ${G==="enabled"?N.green(G):N.dim(G)}`,"",` Version: ${F.version||"-"}`,` Description: ${F.description||"-"}`];if(F.tags&&Array.isArray(F.tags))b.push(` Tags: ${F.tags.join(", ")}`);if(F.cliCommand)b.push(` CLI command: vibe ${F.cliCommand}`);return{id:C,label:C,hint:G,detail:b.join(`
|
|
3
|
-
`)}});await s({title:`vibe plugin \u2014 ${Z.length} installed`,rows:H,footer:"\u2191/\u2193 navigate \xB7 q to quit"})},json:(Z)=>Z.map((H)=>({name:W(H),version:H.version??null,status:Y(H),description:H.description??null,tags:H.tags??null,cliCommand:H.cliCommand??null}))})}catch(Q){q(O(Q))}}),B.command("install").description("Install a plugin").argument("<package>","NPM package name to install").option("--agent-url <url>","Agent URL",h).option("--profile <name>","Target a specific profile by name").option("--skip-prereqs","Skip running the plugin's prereqs/install",!1).option("--json","Emit JSON result").action(async(K,Q)=>{try{let X={...V.opts(),...Q},$=U(Q),x=encodeURIComponent(E(X));try{let Y=await D($,`/api/profiles/${x}/plugins/install`,{packageName:K,skipPrereqs:!!Q.skipPrereqs});if(R(X,{ok:!0,action:"install",package:K,version:Y?.version??null,prereqs:Y?.prereqs??null}))return;if(I(`Plugin "${K}" installed.`),Y?.version)A("Version",Y.version);if(Y?.prereqs){let W=Y.prereqs;if(W.skipped)S(`Prerequisite install skipped. Run \`vibe plugin prereqs ${K} install\` later.`);else if(!W.satisfied)S(`Prerequisites not yet satisfied: ${(W.missing||[]).map((Z)=>Z.name).join(", ")||"(unknown)"}`);if((W.pendingSudo||[]).length>0){S(`${W.pendingSudo.length} command(s) need sudo. Run them and re-check with \`vibe plugin prereqs ${K} status\`:`);for(let Z of W.pendingSudo)A(` ${Z.name}`,Z.command)}}}catch{S("Agent not reachable. Attempting local install...");try{let{PluginManager:Y}=await import("./plugin-system-
|
|
2
|
+
import{d as m,e as H2}from"./index-z5s398n0.js";import{z as u}from"./index-ytgmhxsj.js";import"./index-d1xjj001.js";import"./index-a9ejdv22.js";import"./index-4wgjx8bf.js";import{Ja as Z2,Ka as $2,La as z2,Na as W2,Ta as d}from"./index-s2xpdnsj.js";import"./index-0ckffygp.js";import"./index-hvjqgb97.js";import"./index-rqq0k5fc.js";import{Rb as X2,Sb as Y2}from"./index-5dysvvjv.js";import{Ub as J,Vb as V2}from"./index-pgew6sge.js";import{jc as l,kc as t,lc as R}from"./index-8nqp3a4d.js";import{oc as N,qc as q,rc as O,sc as I,tc as S,uc as _,vc as k,wc as A,yc as i}from"./index-1mppacnx.js";import{Gc as s,Hc as G2}from"./index-thammzct.js";import{Lc as U,Nc as E,Oc as n,Pc as D}from"./index-b6x6a4xp.js";import"./index-h74va4wd.js";import{Od as c}from"./index-js1xn4sq.js";import"./index-a4854mwz.js";import"./index-4qq083yd.js";import{ie as L}from"./index-c7554sg7.js";import{timingSafeEqual as j2}from"crypto";async function a(V,B){try{let z=Bun.spawn({cmd:["npm","view",`${V}@${B}`,"dist.integrity","--json"],stdout:"pipe",stderr:"pipe"});if(await z.exited!==0)return null;let X=(await new Response(z.stdout).text()).trim();if(!X)return null;if(X.startsWith('"'))try{let $=JSON.parse(X);return typeof $==="string"?$:null}catch{return null}return X}catch{return null}}function e(V,B){let z=Buffer.from(V),K=Buffer.from(B);if(z.length!==K.length)return!1;try{return j2(z,K)}catch{return!1}}var U2=$2.map((V)=>({packageName:V.packageName,name:V.pluginName,description:V.description,cliCommand:V.cliCommand,apiPrefix:V.apiPrefix,installed:!1,category:V.category})),y=new Map;function w(V,B){let K=(y.get(V)??Promise.resolve()).then(B,B),Q=K.then(()=>{return},()=>{return});return y.set(V,Q),Q.finally(()=>{if(y.get(V)===Q)y.delete(V)}),K}function K2(V){return y.has(V)}function Q2(V){let B=V.getPluginDetails(),z=new Set(B.map((K)=>K.packageName));return{plugins:U2.map((K)=>({...K,installed:z.has(K.packageName)}))}}function B2(V){let{pluginManager:B}=V;return new V2().get("/",()=>{let z=B.getPluginDetails();return{plugins:z,count:z.length}}).get("/available",()=>Q2(B)).get("/catalog",()=>Q2(B)).get("/contributions",({query:z})=>{let K=typeof z?.mountPoint==="string"&&z.mountPoint?z.mountPoint:null,Q=[],X=new Map;for(let $ of B.getPluginDetails())X.set($.pluginName,$.packageName);for(let $ of B.getAllPlugins()){let x=$.ui;if(!x||!x.contributions||x.contributions.length===0)continue;let Y=x.capabilities??{restPaths:[],wsTopics:[],rpcMethods:[]};for(let W of x.contributions){if(K&&W.mountPoint!==K)continue;let Z=W.meta,H=Z&&typeof Z.url==="string"?Z.url:null,F=H&&H.startsWith("/")&&!H.startsWith("//")&&!H.includes("\x00")&&!H.includes("..")?H:null;Q.push({pluginKey:$.name,pluginPackageName:X.get($.name),contribution:W,capabilities:W.capabilities??Y,url:F??`/ui/${encodeURIComponent($.name)}`})}}return{contributions:Q,count:Q.length}}).post("/install",async({body:z,set:K})=>{if(!z.packageName||typeof z.packageName!=="string")return K.status=400,{error:"Missing required field: packageName"};if(z.packageName.startsWith("@burdenoff/"))z.packageName=z.packageName.replace(/^@burdenoff\//,"@vibecontrols/");if(!W2(z.packageName))return K.status=403,{error:"Plugin package is not in the trusted VibeControls catalog"};try{let Q=d(z.packageName);if(K2(Q)){let X=Q.split("/").pop()?.replace("vibe-plugin-","");if(B.getAllPlugins().some((x)=>x.name===X))return{success:!0,message:`Plugin ${Q} is already installed`,packageName:Q,alreadyInstalled:!0};return K.status=409,{error:"Install for this package is already in progress. Wait for it to finish.",packageName:Q}}return await w(Q,async()=>{let X=Q.split("/").pop()?.replace("vibe-plugin-",""),$=X?.startsWith("ai-")?X.slice(3):void 0,x=B.getAllPlugins().find((C)=>C.name===X||C.name===$),Y=!!x,W=await B.install(Q),Z=z2(Q);if(Z?.integrity){let C=await a(Q,W.version);if(!C||!e(Z.integrity,C)){try{await B.remove(Q,V.hostServices)}catch(G){console.warn(`[plugin-mgr] integrity rollback uninstall failed for ${Q}:`,G)}return c().audit.emit("agent","plugin.install.rejected",{packageName:Q,version:W.version,reason:"integrity_mismatch",expected:Z.integrity,actual:C}),K.status=400,{error:"integrity mismatch",expected:Z.integrity,actual:C}}}else console.warn(`[plugin-mgr] plugin ${Q} has no pinned integrity \u2014 accepting npm registry's hash`);let H=B.getAllPlugins().find((C)=>C.name===W.pluginName);if(H){let C=[];if(V.mountPlugin)V.mountPlugin(H);if(V.hostServices){if(Y&&x?.onServerStop)try{await x.onServerStop()}catch(G){C.push(`onServerStop failed: ${G instanceof Error?G.message:String(G)}`)}if(B.registerProviders(H,V.hostServices),H.onServerStart&&V.app)try{await H.onServerStart(V.app,V.hostServices),B.registerProviders(H,V.hostServices)}catch(G){C.push(`onServerStart failed: ${G instanceof Error?G.message:String(G)}`)}if(H.onServerReady&&V.app)try{await H.onServerReady(V.app,V.hostServices)}catch(G){C.push(`onServerReady failed: ${G instanceof Error?G.message:String(G)}`)}}if(V.rebuildPluginSurfaces?.(),C.length>0)return K.status=500,{success:!1,message:`Plugin ${Q} installed but failed to start`,lifecycleErrors:C,restartRequired:!0}}let F;if(H&&V.app)try{F=await m(H,Q,V.app,V.db,{skipInstall:!!z.skipPrereqs})}catch(C){F=void 0,console.warn(`[plugin-mgr] prereq run failed for ${Q}:`,C)}return u(V.db),c().audit.emit("agent","plugin.installed",{packageName:Q,version:W.version,pluginName:W.pluginName,wasRunning:Y}),{success:!0,message:`Plugin ${Q} installed and loaded successfully`,prereqs:F?{satisfied:F.satisfied,missing:F.status?.missing??[],pendingSudo:F.pendingSudo,skipped:!!z.skipPrereqs}:void 0}})}catch(Q){return K.status=500,{error:"Failed to install plugin",details:String(Q)}}},{body:J.Object({packageName:J.String(),skipPrereqs:J.Optional(J.Boolean())})}).post("/prereqs/status",async({body:z,set:K})=>{if(!z.packageName)return K.status=400,{error:"Missing packageName"};let Q=z.packageName,X=B.getAllPlugins().find(($)=>$.name===Q||B.getLoaded(Q)?.name===$.name);if(!X||!V.app)return await H2(V.db,Q)??{satisfied:!0,missing:[]};try{let $=await m(X,Q,V.app,V.db,{skipInstall:!0});return{satisfied:$.satisfied,missing:$.status?.missing??[],noProtocol:$.noProtocol}}catch($){return K.status=500,{error:String($)}}},{body:J.Object({packageName:J.String()})}).post("/prereqs/install",async({body:z,set:K})=>{if(!z.packageName)return K.status=400,{error:"Missing packageName"};let Q=z.packageName,X=B.getAllPlugins().find(($)=>$.name===Q||B.getLoaded(Q)?.name===$.name);if(!X||!V.app)return K.status=404,{error:"Plugin not loaded"};try{let $=await m(X,Q,V.app,V.db,{skipInstall:!1});return{satisfied:$.satisfied,installed:$.install?.installed??[],pendingSudo:$.pendingSudo,errors:$.install?.errors??[],noProtocol:$.noProtocol}}catch($){return K.status=500,{error:String($)}}},{body:J.Object({packageName:J.String(),approveSudo:J.Optional(J.Boolean())})}).post("/prereqs/uninstall",async({body:z,set:K})=>{if(!z.packageName)return K.status=400,{error:"Missing packageName"};let Q=z.packageName,X=B.getAllPlugins().find((W)=>W.name===Q);if(!X||!X.apiPrefix||!V.app)return K.status=404,{error:"Plugin not loaded"};let $=V.app.handle;if(typeof $!=="function")return K.status=500,{error:"App handle unavailable"};let x=`${X.apiPrefix.replace(/\/+$/,"")}/prereqs/uninstall`,Y=await $.call(V.app,new Request(`http://agent.local${x}`,{method:"POST",headers:{"x-vc-profile-rewrite":"1",[X2]:Y2()}}));if(Y.status===404)return K.status=404,{error:"Plugin has no prereqs/uninstall endpoint"};return Y.json()},{body:J.Object({packageName:J.String()})}).post("/nuke",async({body:z,set:K})=>{if(!V.hostServices)return K.status=503,{error:"hostServices unavailable"};let Q=V.hostServices.getDataDir?.();return{ok:!0,...await B.runPluginNuke(z.packageName,V.hostServices,{agentDir:Q,dryRun:!!z.dryRun})}},{body:J.Object({packageName:J.Optional(J.String()),dryRun:J.Optional(J.Boolean())})}).post("/remove",async({body:z,set:K})=>{if(!z.packageName||typeof z.packageName!=="string")return K.status=400,{error:"Missing required field: packageName"};if(z.packageName.startsWith("@burdenoff/"))z.packageName=z.packageName.replace(/^@burdenoff\//,"@vibecontrols/");if(Z2(z.packageName))return{success:!0,message:`Plugin ${z.packageName} is critical and cannot be removed; treating remove as a no-op.`,skipped:!0};try{let Q=d(z.packageName);return await w(Q,async()=>{return await B.remove(Q,V.hostServices),V.rebuildPluginSurfaces?.(),u(V.db),c().audit.emit("agent","plugin.removed",{packageName:Q}),{success:!0,message:`Plugin ${Q} removed successfully`}})}catch(Q){return K.status=500,{error:"Failed to remove plugin",details:String(Q)}}},{body:J.Object({packageName:J.String()})}).post("/update",async({body:z,set:K})=>{if(!z.packageName||typeof z.packageName!=="string")return K.status=400,{error:"Missing required field: packageName"};let Q=typeof z.version==="string"&&z.version.trim()?z.version.trim():void 0;if(Q&&!/^[0-9][0-9A-Za-z.+-]{0,63}$/.test(Q))return K.status=400,{error:`Invalid version "${Q}"`};try{let X=d(z.packageName);return await w(X,async()=>{let $=B.getLoaded(X);if($?.onServerStop)await $.onServerStop({reason:"reload"});if($&&V.hostServices)V.hostServices.serviceRegistry.unregisterPlugin($.name);let x=await B.update(X,Q),Y=B.getLoaded(X);if(Y&&V.hostServices){if(B.registerProviders(Y,V.hostServices),Y.onServerStart&&V.app)await Y.onServerStart(V.app,V.hostServices),B.registerProviders(Y,V.hostServices);if(Y.onServerReady&&V.app)await Y.onServerReady(V.app,V.hostServices)}return V.rebuildPluginSurfaces?.(),u(V.db),{success:!0,message:`Plugin ${X} updated to v${x.version}`,version:x.version}})}catch(X){return K.status=500,{error:"Failed to update plugin",details:String(X)}}},{body:J.Object({packageName:J.String(),version:J.Optional(J.String())})}).post("/update-all",async({set:z})=>{try{let K=await w("*",()=>B.updateAll());return{success:!0,results:K,message:`Updated ${K.filter((Q)=>Q.success).length}/${K.length} plugin(s)`}}catch(K){return z.status=500,{error:"Failed to update all plugins",details:String(K)}}}).post("/remove-all",async({set:z})=>{try{let K=await w("*",async()=>{let Q=await B.removeAll(V.hostServices);return V.rebuildPluginSurfaces?.(),Q});return{success:!0,results:K,message:`Removed ${K.filter((Q)=>Q.success).length}/${K.length} plugin(s)`}}catch(K){return z.status=500,{error:"Failed to remove all plugins",details:String(K)}}}).post("/reload",async({set:z})=>{try{if(!V.app||!V.hostServices)return z.status=503,{error:"Plugin lifecycle services are not ready"};let K=await w("*",async()=>{return await B.reloadAll(V.app,V.hostServices),V.rebuildPluginSurfaces?.(),B.getPluginDetails()});return{success:!0,plugins:K,message:`Reloaded ${K.length} plugin(s)`}}catch(K){return z.status=500,{error:"Failed to reload plugins",details:String(K)}}}).post("/:name/reload",async({params:z,set:K})=>{if(!V.app||!V.hostServices)return K.status=503,{error:"Plugin lifecycle services are not ready"};let Q=z.name,X=B.getAllPlugins().find((Y)=>Y.name===Q);if(!X)return K.status=404,{error:`Plugin "${Q}" not found`};let x=B.getPluginDetails().find((Y)=>Y.pluginName===Q)?.packageName??`core:${Q}`;if(K2(x))return K.status=409,{error:"Plugin lifecycle in progress; try again shortly",packageName:x};try{return await w(x,async()=>{if(X.onServerStop)try{await X.onServerStop({reason:"reload"})}catch(Y){console.warn(`[plugin-mgr] onServerStop during reload of ${Q}:`,Y)}if(V.hostServices)V.hostServices.serviceRegistry.unregisterPlugin(X.name);if(B.registerProviders(X,V.hostServices),X.onServerStart)await X.onServerStart(V.app,V.hostServices),B.registerProviders(X,V.hostServices);if(X.onServerReady)await X.onServerReady(V.app,V.hostServices);return V.rebuildPluginSurfaces?.(),{success:!0,message:`Plugin ${Q} reloaded`,version:X.version}})}catch(Y){return K.status=500,{error:"Failed to reload plugin",details:String(Y)}}},{params:J.Object({name:J.String()})})}import{mkdirSync as o,writeFileSync as v,existsSync as x2}from"fs";import{isAbsolute as D2,join as T,relative as h2,resolve as g}from"path";var h="http://localhost:3005",A2=/^[a-z0-9][a-z0-9-]{0,63}$/,v2=new Set(["backend","frontend","cli","provider","adapter","integration"]);function C2(V,B){let z=h2(V,B);if(z.startsWith("..")||D2(z))throw Error("Plugin scaffold path escapes the selected directory.")}function M(V){return JSON.stringify(V)}function J2(V){let B=V.command("plugin").description("Manage plugins");B.command("list").description("List installed plugins").option("--agent-url <url>","Agent URL",h).option("--profile <name>","Target a specific profile by name").option("--json","Emit JSON").option("--plain","Force plain text output").action(async(K)=>{try{let Q={...V.opts(),...K},X=U(K),$=encodeURIComponent(E(Q)),x=async()=>{try{return(await n(X,`/api/profiles/${$}/plugins`)).plugins||[]}catch{S("Agent not reachable. Attempting local plugin registry...");let{PluginManager:Z}=await import("./plugin-system-cwznxqx5.js");return new Z().getPluginDetails()||[]}},Y=(Z)=>Z.status??(Z.loaded===!0||Z.enabled===!0?"enabled":"disabled"),W=(Z)=>Z.pluginName||Z.name||Z.packageName||Z.package||"-";await t({mode:l(Q),fetchData:x,plain:(Z)=>{if(!Z.length){_("No plugins installed.");return}k("Installed Plugins"),i(Z.map((H)=>({Name:W(H),Version:H.version||"-",Status:Y(H),Description:H.description||"-"})))},interactive:async(Z)=>{if(!Z.length){k("Installed Plugins"),_("No plugins installed.");return}let H=Z.map((F)=>{let C=W(F),G=Y(F),b=[`${N.bold(C)} ${G==="enabled"?N.green(G):N.dim(G)}`,"",` Version: ${F.version||"-"}`,` Description: ${F.description||"-"}`];if(F.tags&&Array.isArray(F.tags))b.push(` Tags: ${F.tags.join(", ")}`);if(F.cliCommand)b.push(` CLI command: vibe ${F.cliCommand}`);return{id:C,label:C,hint:G,detail:b.join(`
|
|
3
|
+
`)}});await s({title:`vibe plugin \u2014 ${Z.length} installed`,rows:H,footer:"\u2191/\u2193 navigate \xB7 q to quit"})},json:(Z)=>Z.map((H)=>({name:W(H),version:H.version??null,status:Y(H),description:H.description??null,tags:H.tags??null,cliCommand:H.cliCommand??null}))})}catch(Q){q(O(Q))}}),B.command("install").description("Install a plugin").argument("<package>","NPM package name to install").option("--agent-url <url>","Agent URL",h).option("--profile <name>","Target a specific profile by name").option("--skip-prereqs","Skip running the plugin's prereqs/install",!1).option("--json","Emit JSON result").action(async(K,Q)=>{try{let X={...V.opts(),...Q},$=U(Q),x=encodeURIComponent(E(X));try{let Y=await D($,`/api/profiles/${x}/plugins/install`,{packageName:K,skipPrereqs:!!Q.skipPrereqs});if(R(X,{ok:!0,action:"install",package:K,version:Y?.version??null,prereqs:Y?.prereqs??null}))return;if(I(`Plugin "${K}" installed.`),Y?.version)A("Version",Y.version);if(Y?.prereqs){let W=Y.prereqs;if(W.skipped)S(`Prerequisite install skipped. Run \`vibe plugin prereqs ${K} install\` later.`);else if(!W.satisfied)S(`Prerequisites not yet satisfied: ${(W.missing||[]).map((Z)=>Z.name).join(", ")||"(unknown)"}`);if((W.pendingSudo||[]).length>0){S(`${W.pendingSudo.length} command(s) need sudo. Run them and re-check with \`vibe plugin prereqs ${K} status\`:`);for(let Z of W.pendingSudo)A(` ${Z.name}`,Z.command)}}}catch{S("Agent not reachable. Attempting local install...");try{let{PluginManager:Y}=await import("./plugin-system-cwznxqx5.js");if(await new Y().install(K),R(X,{ok:!0,action:"install",package:K,local:!0}))return;I(`Plugin "${K}" installed locally.`)}catch(Y){q(`Could not install plugin via agent or locally: ${O(Y)}`)}}}catch(X){q(O(X))}}),B.command("remove").description("Remove a plugin").argument("<package>","NPM package name to remove").option("--agent-url <url>","Agent URL",h).option("--profile <name>","Target a specific profile by name").option("--json","Emit JSON result").action(async(K,Q)=>{try{let X={...V.opts(),...Q},$=U(Q),x=encodeURIComponent(E(X));try{if(await D($,`/api/profiles/${x}/plugins/remove`,{packageName:K}),R(X,{ok:!0,action:"remove",package:K}))return;I(`Plugin "${K}" removed.`)}catch{S("Agent not reachable. Attempting local removal...");try{let{PluginManager:Y}=await import("./plugin-system-cwznxqx5.js");if(await new Y().remove(K),R(X,{ok:!0,action:"remove",package:K,local:!0}))return;I(`Plugin "${K}" removed locally.`)}catch(Y){q(`Could not remove plugin via agent or locally: ${O(Y)}`)}}}catch(X){q(O(X))}}),B.command("update").description("Update a plugin (or all plugins with --all)").argument("[package]","NPM package name to update").option("--all","Update all installed plugins",!1).option("--agent-url <url>","Agent URL",h).option("--profile <name>","Target a specific profile by name").option("--json","Emit JSON result").action(async(K,Q)=>{try{let X={...V.opts(),...Q},$=U(Q),x=encodeURIComponent(E(X));if(Q.all){_("Updating all plugins...");try{let Y=await D($,`/api/profiles/${x}/plugins/update-all`,{}),W=Y?.results||[];if(R(X,{ok:!0,action:"update-all",results:W}))return;for(let Z of W)if(Z.success)I(`Updated ${Z.packageName}${Z.version?` to v${Z.version}`:""}`);else S(`Failed to update ${Z.packageName}: ${Z.error}`);I(Y?.message||"Done.")}catch{S("Agent not reachable. Attempting local update...");try{let{PluginManager:Y}=await import("./plugin-system-cwznxqx5.js"),Z=await new Y().updateAll();if(R(X,{ok:!0,action:"update-all",results:Z,local:!0}))return;for(let H of Z)if(H.success)I(`Updated ${H.packageName}${H.version?` to v${H.version}`:""}`);else S(`Failed to update ${H.packageName}: ${H.error}`)}catch(Y){q(`Could not update plugins: ${O(Y)}`)}}}else if(K){_(`Updating ${K}...`);try{let Y=await D($,`/api/profiles/${x}/plugins/update`,{packageName:K});if(R(X,{ok:!0,action:"update",package:K,version:Y?.version??null,message:Y?.message??null}))return;I(Y?.message||`Plugin "${K}" updated.`)}catch{S("Agent not reachable. Attempting local update...");try{let{PluginManager:Y}=await import("./plugin-system-cwznxqx5.js"),Z=await new Y().update(K);if(R(X,{ok:!0,action:"update",package:K,version:Z.version,local:!0}))return;I(`Plugin "${K}" updated to v${Z.version}.`)}catch(Y){q(`Could not update plugin: ${O(Y)}`)}}}else q("Provide a package name to update, or use --all to update all plugins.")}catch(X){q(O(X))}}),B.command("uninstall").description("Uninstall a plugin (or all plugins with --all)").argument("[package]","NPM package name to uninstall").option("--all","Uninstall all external plugins",!1).option("--agent-url <url>","Agent URL",h).option("--profile <name>","Target a specific profile by name").option("--json","Emit JSON result").action(async(K,Q)=>{try{let X={...V.opts(),...Q},$=U(Q),x=encodeURIComponent(E(X));if(Q.all){_("Uninstalling all plugins...");try{let Y=await D($,`/api/profiles/${x}/plugins/remove-all`,{}),W=Y?.results||[];if(R(X,{ok:!0,action:"uninstall-all",results:W}))return;for(let Z of W)if(Z.success)I(`Removed ${Z.packageName}`);else S(`Failed to remove ${Z.packageName}: ${Z.error}`);I(Y?.message||"Done.")}catch{S("Agent not reachable. Attempting local removal...");try{let{PluginManager:Y}=await import("./plugin-system-cwznxqx5.js"),Z=await new Y().removeAll();if(R(X,{ok:!0,action:"uninstall-all",results:Z,local:!0}))return;for(let H of Z)if(H.success)I(`Removed ${H.packageName}`);else S(`Failed to remove ${H.packageName}: ${H.error}`)}catch(Y){q(`Could not uninstall plugins: ${O(Y)}`)}}}else if(K)try{if(await D($,`/api/profiles/${x}/plugins/remove`,{packageName:K}),R(X,{ok:!0,action:"uninstall",package:K}))return;I(`Plugin "${K}" uninstalled.`)}catch{S("Agent not reachable. Attempting local removal...");try{let{PluginManager:Y}=await import("./plugin-system-cwznxqx5.js");if(await new Y().remove(K),R(X,{ok:!0,action:"uninstall",package:K,local:!0}))return;I(`Plugin "${K}" uninstalled locally.`)}catch(Y){q(`Could not uninstall plugin: ${O(Y)}`)}}else q("Provide a package name to uninstall, or use --all to uninstall all plugins.")}catch(X){q(O(X))}}),B.command("reload").description("Reload all plugins").option("--agent-url <url>","Agent URL",h).option("--profile <name>","Target a specific profile by name").option("--json","Emit JSON result").action(async(K)=>{try{let Q={...V.opts(),...K},X=U(K),$=encodeURIComponent(E(Q));if(await D(X,`/api/profiles/${$}/plugins/reload`,{}),R(Q,{ok:!0,action:"reload"}))return;I("Plugins reloaded.")}catch(Q){q(O(Q))}}),B.command("available").description("Show available plugins").option("--agent-url <url>","Agent URL",h).option("--profile <name>","Target a specific profile by name").option("--json","Emit JSON").option("--plain","Force plain text output").action(async(K)=>{try{let Q={...V.opts(),...K},X=U(K),$=encodeURIComponent(E(Q)),x=async()=>{return(await n(X,`/api/profiles/${$}/plugins/available`)).plugins||[]},Y=(Z)=>Z.name||Z.package||"-",W=(Z)=>Z.version||Z.latestVersion||"-";await t({mode:l(Q),fetchData:x,plain:(Z)=>{if(!Z||Z.length===0){_("No available plugins found.");return}k("Available Plugins"),i(Z.map((H)=>({Name:Y(H),Version:W(H),Description:H.description||"-"})))},interactive:async(Z)=>{if(!Z||Z.length===0){k("Available Plugins"),_("No available plugins found.");return}let H=Z.map((F)=>{let C=Y(F),G=[N.bold(C),"",` Version: ${W(F)}`,` Description: ${F.description||"-"}`];return{id:C,label:C,hint:W(F),detail:G.join(`
|
|
4
4
|
`)}});await s({title:`vibe plugin available \u2014 ${Z.length} plugin(s)`,rows:H,footer:"\u2191/\u2193 navigate \xB7 q to quit"})},json:(Z)=>Z.map((H)=>({name:Y(H),version:W(H),description:H.description??null}))})}catch(Q){q(O(Q))}});let z=B.command("prereqs").description("Inspect or run a plugin's prerequisite-install protocol").argument("<package>","NPM package name (or short plugin name)");z.command("status",{isDefault:!0}).description("Show the plugin's prereq status").option("--agent-url <url>","Agent URL",h).option("--profile <name>","Target a specific profile by name").option("--json","Emit JSON").option("--plain","Force plain text output").action(async(K,Q)=>{let X=Q.parent?.args?.[0];if(!X){q("Missing plugin package argument.");return}try{let $={...V.opts(),...K},x=U(K),Y=async()=>D(x,"/api/plugins/prereqs/status",{packageName:X});await t({mode:l($),fetchData:Y,plain:(W)=>{if(A("Plugin",X),A("Satisfied",W?.satisfied?"yes":"no"),Array.isArray(W?.missing)&&W.missing.length>0)A("Missing",W.missing.map((Z)=>Z.name).join(", "))},interactive:async(W)=>{let Z=[`Plugin: ${X}`,`Satisfied: ${W?.satisfied?"yes":"no"}`];if(Array.isArray(W?.missing)&&W.missing.length>0)Z.push(`Missing: ${W.missing.map((H)=>H.name).join(", ")}`);await G2({title:`Prereqs: ${X}`,body:Z.join(`
|
|
5
5
|
`),footer:"q / Esc to quit"})},json:(W)=>({plugin:X,satisfied:!!W?.satisfied,missing:Array.isArray(W?.missing)?W.missing:[],pendingSudo:Array.isArray(W?.pendingSudo)?W.pendingSudo:[]})})}catch($){q(`Could not read prereq status: ${O($)}`)}}),z.command("install").description("Run the plugin's prerequisite install endpoint").option("--agent-url <url>","Agent URL",h).option("--profile <name>","Target a specific profile by name").option("--approve-sudo","Auto-approve sudo commands the plugin returns",!1).option("--json","Emit JSON result").action(async(K,Q)=>{let X=Q.parent?.args?.[0];if(!X){q("Missing plugin package argument.");return}try{let $={...V.opts(),...K},x=U(K),Y=await D(x,"/api/plugins/prereqs/install",{packageName:X,approveSudo:!!K.approveSudo});if(R($,{ok:!0,action:"prereqs-install",plugin:X,satisfied:!!Y?.satisfied,pendingSudo:Y?.pendingSudo??[]}))return;if(Y?.satisfied)I(`Prerequisites satisfied for ${X}.`);else S(`Prerequisites still missing for ${X}.`);if(Array.isArray(Y?.pendingSudo)&&Y.pendingSudo.length>0){S(`${Y.pendingSudo.length} command(s) require sudo:`);for(let W of Y.pendingSudo)A(` ${W.name}`,W.command)}}catch($){q(`Prereq install failed: ${O($)}`)}}),z.command("uninstall").description("Run the plugin's prerequisite uninstall endpoint (if supported)").option("--agent-url <url>","Agent URL",h).option("--profile <name>","Target a specific profile by name").option("--json","Emit JSON result").action(async(K,Q)=>{let X=Q.parent?.args?.[0];if(!X){q("Missing plugin package argument.");return}try{let $={...V.opts(),...K},x=U(K);if(await D(x,"/api/plugins/prereqs/uninstall",{packageName:X}),R($,{ok:!0,action:"prereqs-uninstall",plugin:X}))return;I(`Prereq uninstall completed for ${X}.`)}catch($){S(`Prereq uninstall not supported or failed: ${O($)}`)}}),B.command("create").description("Scaffold a new plugin project").argument("<name>",'Plugin name (e.g. "docker" \u2192 vibe-plugin-docker)').option("-d, --dir <directory>","Parent directory",".").option("--tag <tag>","Plugin tag (backend, frontend, cli, provider, adapter, integration)","backend").option("--with-ui","Include a companion UI plugin scaffold",!1).option("--json","Emit JSON result").action(async(K,Q)=>{try{let X={...V.opts(),...Q},$=K.startsWith("vibe-plugin-")?K.slice(12):K;if(!A2.test($)){q("Plugin name must use lowercase letters, numbers, and dashes only.");return}let x=Q.tag;if(!v2.has(x)){q("Invalid plugin tag.");return}let Y=`vibe-plugin-${$}`,W=g(Q.dir),Z=g(W,Y);if(C2(W,Z),x2(Z)){q(`Directory "${Z}" already exists.`);return}_(`Scaffolding ${Y}...`),o(T(Z,"src"),{recursive:!0}),o(T(Z,"dist"),{recursive:!0});let H=`VibeControls plugin: ${$}`,F={name:`@vibecontrols/${Y}`,version:"0.1.0",main:"./dist/index.js",type:"module",engines:{bun:">=1.3.0"},scripts:{build:"bun build ./src/index.ts --outdir ./dist --target bun",lint:"eslint ./src",format:"bunx prettier . --write","format:check":"bunx prettier . --check","type:check":"tsc --noEmit",clean:"rimraf dist",prebuild:"bun run clean",prepublishOnly:"bun run build",sanity:"bun run format:check && bun run lint && bun run type:check && bun run build"},keywords:["vibecontrols","vibe","vibe-plugin",$,"bun"],author:{name:"Your Name",email:"you@example.com"},license:"SEE LICENSE IN LICENSE",description:H,devDependencies:{"@types/bun":"^1.2.16","bun-types":"^1.3.9",commander:"^14.0.3",eslint:"^9.30.1",prettier:"^3.6.2",rimraf:"^6.0.1",typescript:"^5.8.3","typescript-eslint":"^8.56.0"},peerDependencies:{"@vibecontrols/agent":">=2.0.0"},peerDependenciesMeta:{"@vibecontrols/agent":{optional:!0}},publishConfig:{access:"public",registry:"https://registry.npmjs.org/"},files:["dist/**/*","README.md","LICENSE"]};v(T(Z,"package.json"),JSON.stringify(F,null,2)+`
|
|
6
6
|
`);let C={compilerOptions:{target:"ES2022",module:"ES2022",moduleResolution:"bundler",types:["bun-types"],strict:!0,esModuleInterop:!0,skipLibCheck:!0,outDir:"./dist",rootDir:"./src",declaration:!0,sourceMap:!0},include:["src/**/*.ts"],exclude:["node_modules","dist"]};v(T(Z,"tsconfig.json"),JSON.stringify(C,null,2)+`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{
|
|
2
|
+
import{Od as Q}from"./index-js1xn4sq.js";import{$d as K}from"./index-a4854mwz.js";import{existsSync as X,mkdirSync as C,readFileSync as G,renameSync as I,writeFileSync as M}from"fs";import{dirname as R,join as U}from"path";var V="prereqs-installed.json",W="prereqs-installed";function Y(q){return U(q??K(),V)}function Z(q){let v=Y(q);if(!X(v))return[];try{let z=JSON.parse(G(v,"utf8"));if(!Array.isArray(z))return[];return z.filter((B)=>!!B&&typeof B==="object"&&typeof B.name==="string"&&typeof B.pluginPackageName==="string")}catch(z){return Q().logger.warn(W,`Failed to read tracker at ${v}: ${z}`),[]}}function x(q,v){let z=Y(v),B=R(z);if(!X(B))C(B,{recursive:!0});let J=`${z}.${process.pid}.tmp`;M(J,`${JSON.stringify(q,null,2)}
|
|
3
3
|
`,{encoding:"utf8",mode:384}),I(J,z)}function j(q,v){if(v.length===0)return;let B=Z().filter((H)=>!(H.pluginPackageName===q&&v.some((b)=>b.name===H.name))),J=new Date().toISOString(),$=v.map((H)=>({name:H.name,kind:H.kind,installedAt:J,pluginPackageName:q}));x([...B,...$])}function E(q){return Z(q)}
|
|
4
4
|
export{j as K,E as L};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{E as A,G as N}from"./index-6jzsthh9.js";import{
|
|
2
|
+
import{E as A,G as N}from"./index-6jzsthh9.js";import{Ub as l,Vb as T}from"./index-pgew6sge.js";import{jc as G,kc as D,lc as f}from"./index-8nqp3a4d.js";import{Dc as y,qc as d,rc as r,sc as j,uc as J,vc as U,wc as w,yc as P,zc as v}from"./index-1mppacnx.js";import{Gc as E}from"./index-thammzct.js";import{Lc as p,Nc as g,Oc as L,Pc as x,Qc as S,Rc as O}from"./index-b6x6a4xp.js";import"./index-h74va4wd.js";import"./index-js1xn4sq.js";import"./index-a4854mwz.js";import"./index-4qq083yd.js";import"./index-c7554sg7.js";import{promises as R}from"fs";import C from"path";async function M(a){try{let n=await R.readdir(a);if(n.includes("package.json")){try{let i=JSON.parse(await R.readFile(C.join(a,"package.json"),"utf8")),o={...i.dependencies,...i.devDependencies};if(o.react||o["@types/react"])return"react";if(o.vue||o["@vue/cli"])return"vue";if(o.angular||o["@angular/core"])return"angular";if(o.next||o["@types/next"])return"nextjs";if(o.nuxt||o["@nuxt/core"])return"nuxtjs";if(o.svelte||o["@sveltejs/kit"])return"svelte";if(o.express||o.fastify||o.koa)return"nodejs-backend";if(o.electron)return"electron";if(o.vite)return"vite"}catch{}return"nodejs"}if(n.includes("setup.py")||n.includes("requirements.txt")||n.includes("pyproject.toml")||n.includes("Pipfile")){if(n.includes("manage.py"))return"django";if(n.includes("app.py"))return"flask";return"python"}if(n.includes("go.mod"))return"go";if(n.includes("Cargo.toml"))return"rust";if(n.includes("pom.xml"))return"maven";if(n.includes("build.gradle")||n.includes("build.gradle.kts"))return"gradle";if(n.includes("Gemfile"))return"ruby";if(n.includes("composer.json"))return"php";if(n.some((i)=>i.endsWith(".csproj")||i.endsWith(".sln")))return"dotnet";if(n.includes("CMakeLists.txt")||n.includes("Makefile"))return"cpp";if(n.includes("Package.swift"))return"swift";if(n.includes("pubspec.yaml"))return"flutter";if(n.some((i)=>i.endsWith(".tf")))return"terraform";if(n.includes("Dockerfile"))return"docker"}catch{}return}async function V(a){try{let n=["vite.config.ts","vite.config.js"];for(let i of n)try{let t=(await R.readFile(C.join(a,i),"utf-8")).match(/port:\s*(\d+)/);if(t)return parseInt(t[1],10)}catch{}}catch{}return}var Y=new Set([".git","node_modules","__pycache__",".venv","venv","dist","build"]),F=parseInt(process.env.VIBECONTROLS_GIT_SCAN_MAX_DEPTH??"8",10),z=parseInt(process.env.VIBECONTROLS_GIT_SCAN_MAX_DIRECTORIES??"5000",10);async function k(a,n,i,o={visited:0},t=0){let u=[];if(t>F||o.visited>=z)return u;o.visited+=1;try{let e=await N(a);if(e.some((c)=>c.name===".git"&&c.isDirectory())){if(u.push({path:a,name:C.basename(a),parentPath:i,isSubmodule:!!i,projectType:await M(a),vitePort:await V(a)}),!n)return u;i=a}for(let c of e)if(c.isDirectory()&&!c.isSymbolicLink()&&!Y.has(c.name)&&!c.name.startsWith(".")){let s=C.join(a,c.name),$=await k(s,n,i,o,t+1);u.push(...$)}}catch{}return u}function I(a){let{db:n}=a;return new T().get("/",async()=>{return{repositories:await n.getAllGitRepositories()}}).get("/:id",async({params:i,set:o})=>{let t=await n.getGitRepository(i.id);if(!t)return o.status=404,{error:"Repository not found"};return{repository:t}}).post("/scan",async({body:i,set:o})=>{try{let t=(await A(i.directory,{mustExist:!0})).path;if(!(await R.stat(t)).isDirectory())return o.status=400,{error:"Path is not a directory"};let e=await k(t,i.includeSubmodules??!0),m=[];for(let c of e){let s=await n.getGitRepositoryByPath(c.path);if(s)await n.updateGitRepository(s.id,c),m.push({...s,...c});else{let $=await n.createGitRepository({id:globalThis.crypto.randomUUID(),...c});m.push($)}}return{repositories:m,scannedPath:t,totalFound:m.length}}catch(t){return o.status=500,{error:"Failed to scan directory",details:String(t)}}},{body:l.Object({directory:l.String(),includeSubmodules:l.Optional(l.Boolean())})}).put("/:id",async({params:i,body:o,set:t})=>{if(!await n.getGitRepository(i.id))return t.status=404,{error:"Repository not found"};try{return await n.updateGitRepository(i.id,o),{success:!0}}catch(e){return t.status=500,{error:"Failed to update repository",details:String(e)}}},{body:l.Object({name:l.Optional(l.String()),projectType:l.Optional(l.String()),vitePort:l.Optional(l.Number())})}).delete("/:id",async({params:i,set:o})=>{if(!await n.getGitRepository(i.id))return o.status=404,{error:"Repository not found"};try{return await n.deleteGitRepository(i.id),{success:!0}}catch(u){return o.status=500,{error:"Failed to delete repository",details:String(u)}}}).post("/fix-hierarchy",async({set:i})=>{try{let o=await n.fixGitHierarchy(),t=await n.getAllGitRepositories();return{success:!0,fixed:o.fixed,total:t.length}}catch(o){return i.status=500,{error:"Failed to fix hierarchy",details:String(o)}}})}var h="http://localhost:3005";function q(a){let n=a.command("git").description("Manage git repositories");n.command("list").description("List discovered git repositories").option("--agent-url <url>","Agent URL",h).option("--json","Emit JSON").option("--plain","Force plain text output").action(async function(i){let o={...a.opts(),...i};try{let t=p(i),u=encodeURIComponent(g(o));await D({mode:G(o),fetchData:async()=>{return(await L(t,`/api/profiles/${u}/git`)).repositories||[]},plain:(e)=>{if(!e||e.length===0){J("No git repositories found.");return}U("Git Repositories"),P(e.map((m)=>({ID:y(m.id),Name:m.name||"-",Path:m.path||"-",Type:m.type||m.projectType||"-",Submodule:m.isSubmodule?"Yes":"No",Scanned:m.scannedAt?v(m.scannedAt):"-"})))},interactive:async(e)=>{if(!e||e.length===0){U("Git Repositories"),J("No git repositories found.");return}let m=e.map((c)=>({id:String(c.id),label:c.name||y(c.id),hint:c.type||c.projectType||"",detail:[`ID: ${c.id}`,`Name: ${c.name??"-"}`,`Path: ${c.path??"-"}`,`Type: ${c.type??c.projectType??"-"}`,`Submodule: ${c.isSubmodule?"Yes":"No"}`,`Scanned: ${c.scannedAt?v(c.scannedAt):"-"}`].join(`
|
|
3
3
|
`)}));await E({title:`vibe git list \u2014 ${e.length} repo(s)`,rows:m})},json:(e)=>e.map((m)=>({id:m.id,name:m.name??null,path:m.path??null,type:m.type??m.projectType??null,isSubmodule:!!m.isSubmodule,scannedAt:m.scannedAt??null}))})}catch(t){d(r(t))}}),n.command("scan").description("Scan a directory for git repositories").requiredOption("--dir <directory>","Directory to scan").option("--depth <depth>","Scan depth","3").option("--agent-url <url>","Agent URL",h).option("--json","Emit JSON").action(async function(i){let o={...a.opts(),...i};try{let t=p(i),u=encodeURIComponent(g(o)),e=await x(t,`/api/profiles/${u}/git/scan`,{directory:i.dir,depth:parseInt(i.depth,10)});if(f(o,{ok:!0,found:e?.found??e?.repositories?.length??0}))return;if(j("Git scan completed."),e?.found!==void 0)w("Repositories found",e.found);if(e?.repositories)w("Repositories found",e.repositories.length)}catch(t){if(o.json){f(o,{ok:!1,error:r(t)});return}d(r(t))}}),n.command("update").description("Update a git repository entry").requiredOption("-i, --id <id>","Repository ID").option("--vite-port <port>","Vite dev server port").option("--project-type <type>","Project type").option("--agent-url <url>","Agent URL",h).option("--json","Emit JSON").action(async function(i){let o={...a.opts(),...i};try{let t=p(i),u=encodeURIComponent(g(o)),e={};if(i.vitePort)e.vitePort=parseInt(i.vitePort,10);if(i.projectType)e.projectType=i.projectType;if(await S(t,`/api/profiles/${u}/git/${i.id}`,e),f(o,{ok:!0,id:i.id}))return;j(`Repository ${y(i.id)} updated.`)}catch(t){if(o.json){f(o,{ok:!1,error:r(t)});return}d(r(t))}}),n.command("delete").description("Delete a git repository entry").requiredOption("-i, --id <id>","Repository ID").option("--agent-url <url>","Agent URL",h).option("--json","Emit JSON").action(async function(i){let o={...a.opts(),...i};try{let t=p(i),u=encodeURIComponent(g(o));if(await O(t,`/api/profiles/${u}/git/${i.id}`),f(o,{ok:!0,id:i.id}))return;j(`Repository ${y(i.id)} deleted.`)}catch(t){if(o.json){f(o,{ok:!1,error:r(t)});return}d(r(t))}}),n.command("fix-hierarchy").description("Fix repository parent-child hierarchy").option("--agent-url <url>","Agent URL",h).option("--json","Emit JSON").action(async function(i){let o={...a.opts(),...i};try{let t=p(i),u=encodeURIComponent(g(o)),e=await x(t,`/api/profiles/${u}/git/fix-hierarchy`,{});if(f(o,{ok:!0,fixed:e?.fixed??null}))return;if(j("Hierarchy fix completed."),e?.fixed!==void 0)w("Fixed",e.fixed)}catch(t){if(o.json){f(o,{ok:!1,error:r(t)});return}d(r(t))}})}function H(a,n){q(a)}function eo(a){return{name:"git",version:"2.2.0",description:"Git repository scanning, tracking, and hierarchy management",capabilities:{storage:"rw",subprocess:!0,audit:!0,telemetry:!0},tags:["backend","cli"],cliCommand:"git",apiPrefix:"/api/git",createRoutes:(n)=>I(n),onCliSetup:async(n,i)=>{H(n,i)}}}export{eo as createPlugin};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{
|
|
2
|
+
import{ge as q,ie as b}from"./index-c7554sg7.js";var z=q((f)=>{Object.defineProperty(f,"__esModule",{value:!0});f.execAsync=void 0;var v=b("child_process"),w=b("util");f.execAsync=w.promisify(v.exec)});
|
|
3
3
|
export{z as f};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{
|
|
2
|
+
import{Od as p}from"./index-js1xn4sq.js";import{$d as wq,Rd as K,Yd as Mq,ce as j}from"./index-a4854mwz.js";import{existsSync as G,mkdirSync as u,readdirSync as mq,readFileSync as B,renameSync as P,rmSync as oq,writeFileSync as D}from"fs";import{dirname as k,join as v}from"path";import{randomUUID as pq}from"crypto";import{existsSync as b,mkdirSync as d,readFileSync as Zq,renameSync as Jq,unlinkSync as Tq,writeFileSync as F}from"fs";import{dirname as E,join as V}from"path";import{spawnSync as r}from"child_process";import{hostname as Lq,networkInterfaces as xq,platform as Xq,userInfo as Cq}from"os";import{createCipheriv as Fq,createDecipheriv as Nq,pbkdf2Sync as Aq,randomBytes as Rq}from"crypto";var n="secrets:fallback",Wq="secrets:index",t=10,uq=100,a=new Map;function Hq(q,Q){let $=`${q}:${Q}`,z=(a.get($)??0)+1;if(a.set($,z),z<=t)return!0;return(z-t)%uq===0}var C="vibecontrols-agent",Yq=".libsecret-install-attempted",jq="secrets.json";function Pq(){return globalThis.Bun?.secrets??null}class S{api;kind="bun-secrets";constructor(q){this.api=q}async get(q){return this.api.get({service:C,name:q})}async set(q,Q){await this.api.set({service:C,name:q,value:Q}),await yq(q)}async delete(q){let Q=await this.api.delete({service:C,name:q});return await lq(q),Q}async list(q){return Eq(q)}}var Gq=".secrets-encrypted-v1",kq=1e5,vq=32,Iq="sha256",L=null,e=null;function _q(){let q=xq();for(let Q of Object.values(q)){if(!Q)continue;for(let $ of Q){let z=$?.mac;if(z&&z!=="00:00:00:00:00:00")return z}}return"no-mac"}function qq(){if(e!==null)return e;let q;try{q=Cq().username||"unknown"}catch{q=process.env.USER||process.env.USERNAME||"unknown"}return`${Lq()}|${q}|${_q()}`}function Vq(){if(L)return L;let q=`vibecontrols-agent::${qq()}`;return L=Aq(q,qq(),kq,vq,Iq),L}function Qq(q){let Q=Rq(12),$=Fq("aes-256-gcm",Vq(),Q),z=Buffer.concat([$.update(q,"utf8"),$.final()]),Z=$.getAuthTag();return`${Q.toString("hex")}:${Z.toString("hex")}:${z.toString("hex")}`}function hq(q){let Q=q.split(":");if(Q.length!==3)return!1;let[$,z,Z]=Q;return/^[0-9a-f]+$/i.test($)&&$.length===24&&/^[0-9a-f]+$/i.test(z)&&z.length===32&&/^[0-9a-f]*$/i.test(Z)}function gq(q){if(!hq(q))return null;try{let[Q,$,z]=q.split(":"),Z=Nq("aes-256-gcm",Vq(),Buffer.from(Q,"hex"));return Z.setAuthTag(Buffer.from($,"hex")),Buffer.concat([Z.update(Buffer.from(z,"hex")),Z.final()]).toString("utf8")}catch{return null}}class Kq{kind="json-fallback";path;constructor(){this.path=V(j(),jq)}async get(q){let{plain:Q}=this.readWithMigration(),$=Q[q];return typeof $==="string"?$:null}async set(q,Q){await K(n,async()=>{let{encrypted:$}=this.readWithMigration();$[q]=Qq(Q),this.writeEncrypted($)})}async delete(q){return K(n,async()=>{let{encrypted:Q}=this.readWithMigration();if(!(q in Q))return!1;return delete Q[q],this.writeEncrypted(Q),!0})}async list(q){let{encrypted:Q}=this.readWithMigration(),$=Object.keys(Q);return(q?$.filter((Z)=>Z.startsWith(q)):$).sort().map((Z)=>({name:Z}))}readWithMigration(){if(!b(this.path))return{encrypted:{},plain:{}};let q;try{q=Zq(this.path,"utf8")}catch{return{encrypted:{},plain:{}}}let Q;try{Q=JSON.parse(q)}catch{return{encrypted:{},plain:{}}}if(!Q||typeof Q!=="object"||Array.isArray(Q))return{encrypted:{},plain:{}};let $={},z={},Z=!1;for(let[J,X]of Object.entries(Q)){if(typeof X!=="string")continue;let Y=gq(X);if(Y!==null){$[J]=X,z[J]=Y;continue}$[J]=Qq(X),z[J]=X,Z=!0}if(Z)try{this.writeEncrypted($),this.writeMarker()}catch{}return{encrypted:$,plain:z}}writeEncrypted(q){d(E(this.path),{recursive:!0});let Q=`${this.path}.${process.pid}.tmp`;if(F(Q,`${JSON.stringify(q,null,2)}
|
|
3
3
|
`,{mode:384}),Jq(Q,this.path),!b(this.markerPath()))this.writeMarker()}markerPath(){return V(E(this.path),Gq)}writeMarker(){try{F(this.markerPath(),`${new Date().toISOString()}
|
|
4
4
|
`,{mode:384})}catch{}}}var fq=".secrets-index.json";function m(){return V(j(),fq)}function o(){let q=m();if(!b(q))return new Set;try{let Q=Zq(q,"utf8"),$=JSON.parse(Q);if(Array.isArray($))return new Set($.filter((z)=>typeof z==="string"))}catch{}return new Set}function Uq(q){let Q=m();d(E(Q),{recursive:!0});let $=`${Q}.${process.pid}.tmp`;F($,`${JSON.stringify([...q].sort(),null,2)}
|
|
5
5
|
`,{mode:384}),Jq($,Q)}async function yq(q){await K(Wq,()=>{let Q=o();if(Q.has(q))return;Q.add(q),Uq(Q)})}async function lq(q){await K(Wq,()=>{let Q=o();if(!Q.delete(q))return;Uq(Q)})}function Eq(q){let $=[...o()];return(q?$.filter((Z)=>Z.startsWith(q)):$).sort().map((Z)=>({name:Z}))}function Sq(){if(Xq()!=="linux")return{ok:!1};if(process.env.CI==="true")return{ok:!1,warning:"CI/test environment detected; using JSON fallback"};if(process.env.VIBE_SKIP_LIBSECRET_INSTALL==="1")return{ok:!1,warning:"VIBE_SKIP_LIBSECRET_INSTALL=1 set; using JSON fallback"};let q=j(),Q=V(q,Yq);if(b(Q))return{ok:!1,warning:"previous attempt failed; not retrying"};try{d(q,{recursive:!0}),F(Q,`${new Date().toISOString()}
|
|
@@ -8,4 +8,4 @@ import{Nd as p}from"./index-9bqd8veb.js";import{Qd as K,Xd as Mq,_d as wq,be as
|
|
|
8
8
|
`,{mode:384}),P(X,z),Z}function FQ(q){let Q=g(q);if(!G(Q))return!1;return oq(Q,{force:!0}),!0}function qQ(q,Q={}){let $=Oq[q];return{schemaVersion:M,globalGatewayUrl:$.globalGatewayUrl,workspaceGatewayUrl:$.workspaceGatewayUrl,...Q}}function QQ(){let q={created:[],activeWritten:null};for(let Q of Object.keys(Oq))if(!G(g(Q)))eq(Q,qQ(Q)),q.created.push(Q);if(!G(c()))tq(O),q.activeWritten=O;return q}function $Q(){return{..._}}function s(q){let Q=q?.dir??wq();return v(Q,"config.json")}function zQ(){return{..._}}function NQ(q={}){let Q=$Q();return{schemaVersion:M,globalGatewayUrl:Q.globalGatewayUrl,workspaceGatewayUrl:Q.workspaceGatewayUrl,...q}}function f(q){try{let Q=JSON.parse(q);if(Q&&typeof Q==="object")return Q}catch{}return{}}function i(q){let Q=s(q);if(!G(Q))return{};let $;try{$=f(B(Q,"utf8"))}catch{return{}}if(($.schemaVersion??0)>=M)return $;for(let Z of sq){if(Z.from<($.schemaVersion??0))continue;$=Z.apply($),$.schemaVersion=Z.to}if($.schemaVersion!==M)$.schemaVersion=M;try{D(Q,JSON.stringify($,null,2),{mode:384})}catch{}return $}function AQ(q){let Q=i(q);if(Q.agentInstanceId)return Q.agentInstanceId;let $=pq();return ZQ({agentInstanceId:$},q),$}function ZQ(q,Q){let $=s(Q);u(k($),{recursive:!0});let z=G($)?f(B($,"utf8")):{},Z={...z},J={...z};for(let W of T)delete J[W];let X=Q?.scope??I();for(let[W,H]of Object.entries(q)){if(H===void 0||H==="")continue;if(Z[W]=H,bq(W)&&typeof H==="string"){R(w(X,W),H).catch(()=>{});continue}J[W]=H}let Y=`${$}.${process.pid}.tmp`;return D(Y,`${JSON.stringify(J,null,2)}
|
|
9
9
|
`,{mode:384}),P(Y,$),Z}async function RQ(q,Q){let $=s(Q);return K(cq($),async()=>{u(k($),{recursive:!0});let z=G($)?f(B($,"utf8")):{},Z={...z},J={...z};for(let H of T)delete J[H];let X=Q?.scope??I(),Y=[];for(let[H,U]of Object.entries(q)){if(U===void 0||U==="")continue;if(Z[H]=U,bq(H)&&typeof U==="string"){Y.push(R(w(X,H),U));continue}J[H]=U}await Promise.all(Y);let W=`${$}.${process.pid}.tmp`;return D(W,`${JSON.stringify(J,null,2)}
|
|
10
10
|
`,{mode:384}),P(W,$),Z})}async function uQ(q){let Q=i(q?{dir:q.dir}:void 0),$=q?.scope??I();for(let z of T){if(Q[z])continue;try{let Z=await A(w($,z));if(Z)Q[z]=Z}catch{}}return Q}function JQ(){return aq(nq())}function PQ(){try{QQ()}catch{}let q=JQ(),Q=i(),$={...q,...Q},z=(J,X)=>{if(!process.env[J]&&X)process.env[J]=X};z("VIBE_WORKSPACE_ID",$.workspaceId),z("VIBE_ORGANIZATION_ID",$.organizationId);let Z=zQ();return z("VIBE_GLOBAL_GATEWAY_URL",$.globalGatewayUrl??Z.globalGatewayUrl),z("VIBE_WORKSPACE_GATEWAY_URL",$.workspaceGatewayUrl??Z.workspaceGatewayUrl),z("VIBE_STORAGE_ADAPTER",$.storageAdapter),z("VIBECONTROLS_PLUGIN_INSTALL_SCOPE",$.pluginInstallScope),$}async function kQ(){let q=($,z)=>{if(!process.env[$]&&z)process.env[$]=z},Q=I();try{let $=await A(w(Q,"clientId"));q("VIBE_CLIENT_ID",$??void 0)}catch{}try{let $=await A(w(Q,"clientSecret"));q("VIBE_CLIENT_SECRET",$??void 0)}catch{}}
|
|
11
|
-
export{A as
|
|
11
|
+
export{A as Sc,R as Tc,UQ as Uc,MQ as Vc,M as Wc,Oq as Xc,xQ as Yc,O as Zc,h as _c,Dq as $c,c as ad,g as bd,nq as cd,tq as dd,CQ as ed,aq as fd,eq as gd,FQ as hd,qQ as id,QQ as jd,$Q as kd,s as ld,zQ as md,NQ as nd,i as od,AQ as pd,ZQ as qd,RQ as rd,uQ as sd,JQ as td,PQ as ud,kQ as vd};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Bb as k,Cb as a,Db as y,
|
|
2
|
+
import{Bb as k,Cb as a,Db as y,Lb as T,Mb as x,tb as r,yb as v}from"./index-rqq0k5fc.js";import{Vb as B}from"./index-pgew6sge.js";import{Kd as e,Od as j}from"./index-js1xn4sq.js";function w(Q,J){let $=new B,Z=[],G=new Set;function Y(z){return z.endsWith("/")&&z!=="/"?z.slice(0,-1):z}function U(z,H){if(!H.startsWith("/"))return null;if(H==="/"||H.includes("..")||H.includes("*"))return null;let F=Y(z),X=Y(`${F}${H}`);if(X===F||!X.startsWith(`${F}/`))return null;return X}function V(z){if(!z.createRoutes)return!1;if(G.has(z.name))return!1;let H=z.apiPrefix||`/api/${z.name}`;try{let F=z.createRoutes(J);if(j().logger.info("plugin-router",`Plugin '${z.name}' registered routes`,{prefix:H}),$.use(new B({prefix:H}).derive(()=>({pluginContext:{chain:[z.name],parentPlugin:void 0,activePlugin:z.name}})).use(F)),z.publicPaths)for(let X of z.publicPaths){let K=U(H,X);if(!K){j().logger.warn("plugin-router",`Ignoring unsafe public path from plugin '${z.name}'`,{publicPath:X,prefix:H});continue}Z.push(K)}return G.add(z.name),!0}catch(F){return j().logger.error("plugin-router",`Failed to mount routes for plugin '${z.name}'`,{error:String(F)}),!1}}for(let z of Q.getAllPlugins())V(z);return{routes:$,getPublicPaths:()=>[...Z],mountPlugin:V}}import{EventEmitter as VJ}from"events";var u=1e4;function L(Q,J){let $=process.env[Q];if(!$)return J;let Z=Number.parseInt($,10);return Number.isFinite(Z)&&Z>0?Z:J}function ZJ(){return[{name:"health",match:(Q)=>Q.startsWith("/health"),perMinute:L("VIBECONTROLS_RATELIMIT_HEALTH",1000)},{name:"gateway-auth",match:(Q)=>Q.startsWith("/api/agent/gateway-auth"),perMinute:L("VIBECONTROLS_RATELIMIT_GATEWAY_AUTH",10)},{name:"plugin-install",match:(Q)=>Q.startsWith("/api/plugins/install"),perMinute:L("VIBECONTROLS_RATELIMIT_PLUGIN_INSTALL",5)},{name:"alias-exec",match:(Q)=>/^\/api\/aliases\/[^/]+\/execute/.test(Q),perMinute:L("VIBECONTROLS_RATELIMIT_ALIAS_EXEC",30)},{name:"api",match:(Q)=>Q.startsWith("/api/"),perMinute:L("VIBECONTROLS_RATELIMIT_API",100)}]}function $J(Q,J,$){for(let Z of Q)if(Z.match(J,$))return Z;return null}function R(Q){if(!Q)return!1;return Q==="127.0.0.1"||Q==="::1"||Q==="::ffff:127.0.0.1"||Q.startsWith("127.")}function GJ(Q=Date.now){let J=new Map,$=(Z,G)=>{J.delete(Z),J.set(Z,G)};return{take(Z,G,Y){let U=Q(),V=J.get(Z);if(!V)V={tokens:G,lastRefillMs:U,capacity:G,refillPerSec:Y};else{let H=(U-V.lastRefillMs)/1000;V.tokens=Math.min(G,V.tokens+H*Y),V.lastRefillMs=U,V.capacity=G,V.refillPerSec=Y}let z=V.tokens>=1;if(z)V.tokens-=1;if($(Z,V),J.size>u){let H=J.keys();while(J.size>u){let F=H.next();if(F.done)break;J.delete(F.value)}}return z},retryAfterSec(Z){let G=J.get(Z);if(!G)return 1;if(G.refillPerSec<=0)return 60;let Y=1-G.tokens;if(Y<=0)return 0;return Math.max(1,Math.ceil(Y/G.refillPerSec))},size(){return J.size},reset(){J.clear()}}}function SJ(Q={}){let J=Q.classes??ZJ(),$=Q.store??GJ();return new B({name:"plugin/rate-limit"}).onRequest(({request:Z,set:G,server:Y})=>{let U;try{U=Y?.requestIP(Z)?.address??null}catch{U=null}if(R(U))return;let V=new URL(Z.url),z=$J(J,V.pathname,Z.method);if(!z)return;let F=`${U??"unknown"}|${z.name}`,X=z.perMinute/60;if(!$.take(F,z.perMinute,X)){let K=$.retryAfterSec(F);G.status=429;let P=G.headers??={};return P["Retry-After"]=String(K),{error:"rate_limited",message:`Too many requests for ${z.name}; retry after ${K}s.`,retryAfterSec:K}}}).as("global")}var YJ=(()=>{let Q=process.env.VIBECONTROLS_WS_MAX_PER_IP,J=Q?Number.parseInt(Q,10):NaN;return Number.isFinite(J)&&J>0?J:5})();function C(Q=YJ){let J=new Map;return{accept($,Z){if(R($))return!0;let G=$??"unknown",Y=J.get(G);if(!Y)Y=new Set,J.set(G,Y);if(Y.size>=Q)return!1;return Y.add(Z),!0},release($,Z){if(R($))return;let G=$??"unknown",Y=J.get(G);if(!Y)return;if(Y.delete(Z),Y.size===0)J.delete(G)},size($){let Z=$??"unknown";return J.get(Z)?.size??0}}}function c(Q){let J=new Set,$=new Map,Z=new Map;return{accept(G,Y,U){if(J.size>=Q.maxGlobal)return!1;let V=$.get(G)??new Set;if(V.size>=Q.maxPerKey)return!1;let z=Y??"unknown";if(!R(Y)){let H=Z.get(z)??new Set;if(H.size>=Q.maxPerIp)return!1;H.add(U),Z.set(z,H)}return J.add(U),V.add(U),$.set(G,V),!0},release(G,Y,U){J.delete(U);let V=$.get(G);if(V){if(V.delete(U),V.size===0)$.delete(G)}if(!R(Y)){let z=Y??"unknown",H=Z.get(z);if(H){if(H.delete(U),H.size===0)Z.delete(z)}}},globalCount(){return J.size},keyCount(G){return $.get(G)?.size??0}}}function _(Q,J){let $=process.env[Q];if(!$)return J;let Z=Number.parseInt($,10);return Number.isFinite(Z)&&Z>0?Z:J}var m={maxGlobal:_("VIBE_TERMINAL_WS_MAX_GLOBAL",64),maxPerKey:_("VIBE_TERMINAL_WS_MAX_PER_SESSION",4),maxPerIp:_("VIBE_TERMINAL_WS_MAX_PER_IP",16)},LJ={maxGlobal:_("VIBE_CODE_SERVER_WS_MAX_GLOBAL",64),maxPerKey:_("VIBE_CODE_SERVER_WS_MAX_PER_SESSION",8),maxPerIp:_("VIBE_CODE_SERVER_WS_MAX_PER_IP",16)};function UJ(Q){if(!Q)return new Set;let J=new Set;for(let $ of Q.split(",")){let Z=$.trim();if(Z)J.add(Z)}return J}var D=null;function zJ(){let Q=process.env.VIBE_TRUSTED_PROXIES;if(!D||D.raw!==Q)D={raw:Q,set:UJ(Q)};return D.set}function E(Q,J){let $=zJ();if(!!Q&&(R(Q)||$.has(Q))&&J){let G=J["x-forwarded-for"];if(G){let U=G.split(",")[0]?.trim();if(U)return U}let Y=J["x-real-ip"];if(Y)return Y}return Q}var d=C(),h=new VJ;h.setMaxListeners(100);function b(Q,J){let $={type:Q,payload:J,timestamp:new Date().toISOString()};h.emit("ws:event",$)}var p=(()=>{let Q=process.env.VIBECONTROLS_MAX_WS_CLIENTS,J=Q?Number.parseInt(Q,10):NaN;return Number.isFinite(J)&&J>0?J:200})(),HJ=(()=>{let Q=process.env.VIBECONTROLS_MAX_WS_BUFFER_PER_CLIENT,J=Q?Number.parseInt(Q,10):NaN;return Number.isFinite(J)&&J>0?J:100})();function XJ(){let Q=new Set;return h.on("ws:event",(J)=>{let $=JSON.stringify(J);for(let Z of Q){if(Z.pendingSends>=HJ){if(Z.drops+=1,Z.drops===1||Z.drops%100===0)j().logger.warn("ws-events",`Dropping events for slow client (${Z.drops} dropped)`);continue}try{Z.send($)}catch{}}}),new B().ws("/ws/events",{open(J){if(Q.size>=p){j().logger.warn("ws-events",`MAX_WS_CLIENTS exceeded (${Q.size}/${p}); refusing new connection`),J.close(1013,"Server overloaded");return}let $=J.data,Z=T($.headers??{});if(!x(Z)){J.close(1008,"Unauthorized: invalid or missing API key");return}let G=J.remoteAddress??null,Y=E(G,$.headers);if(!d.accept(Y??null,J)){J.close(1008,"too many connections");return}J._remoteIp=Y??null;let U={ws:J,channels:new Set,pendingSends:0,drops:0,send:(V)=>{U.pendingSends+=1;try{J.send(V)}finally{queueMicrotask(()=>{U.pendingSends=Math.max(0,U.pendingSends-1)})}}};Q.add(U),J._client=U,j().logger.debug("ws-events","Client connected",{id:String(J.id||"unknown")}),J.send(JSON.stringify({type:"connected",timestamp:new Date().toISOString()}))},message(J,$){try{let Z=typeof $==="string"?JSON.parse($):$;switch(Z.type){case"subscribe":{let G=J._client;if(G)G.channels.add(Z.channel);j().logger.debug("ws-events",`Subscribed to ${Z.channel}`);break}case"unsubscribe":{let G=J._client;if(G)G.channels.delete(Z.channel);j().logger.debug("ws-events",`Unsubscribed from ${Z.channel}`);break}case"ping":J.send(JSON.stringify({type:"pong",timestamp:new Date().toISOString()}));break;default:j().logger.debug("ws-events",`Unknown message type: ${Z.type}`)}}catch{j().logger.warn("ws-events","Failed to parse incoming message")}},close(J){let $=J._client;if($)Q.delete($);let Z=J._remoteIp;d.release(Z??null,J),j().logger.debug("ws-events","Client disconnected")}})}var g=c(m),FJ=256,jJ=1048576,KJ=1e4;async function l(Q,J,$,Z,G,Y){let U={};for(let[z,H]of Object.entries(G))if(H&&!["host","connection"].includes(z.toLowerCase()))U[z]=H;let V={method:Z,headers:U};if(Z!=="GET"&&Z!=="HEAD"&&Y)V.body=typeof Y==="string"?Y:JSON.stringify(Y);return fetch(`http://${Q}:${J}${$}`,V)}async function I(Q,J){let $=Q.listProvidersForType("session");for(let{pluginName:Z}of $){let G=Q.getProviderByName("session",Z);if(!G)continue;let Y=await G.getTerminalInfo(J);if(!Y)continue;try{process.kill(Y.pid,0)}catch{continue}let U=Y;return{host:U.host??"127.0.0.1",port:Y.port,wsPath:U.wsPath??"/ws",subprotocols:U.subprotocols??["tty"]}}return null}var M=new Map,NJ=0,q=new Map,o=30000;function A(Q){g.release(Q.sessionId,Q.remoteIp,Q.capRef)}function BJ(Q){return typeof Q==="string"?Buffer.byteLength(Q):Q.byteLength}function n(Q){let J=new Headers(Q.headers);return J.set("Permissions-Policy","clipboard-read=(self), clipboard-write=(self)"),J.delete("X-Frame-Options"),new Response(Q.body,{status:Q.status,headers:J})}function i(Q){return`<!doctype html>
|
|
3
3
|
<html>
|
|
4
4
|
<head>
|
|
5
5
|
<meta charset="utf-8">
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{
|
|
2
|
+
import{$d as l,Yd as c,Zd as i,ce as n}from"./index-a4854mwz.js";import{ee as g}from"./index-4qq083yd.js";import{ie as p}from"./index-c7554sg7.js";import{join as UJ}from"path";import{AsyncLocalStorage as IJ}from"async_hooks";import{mkdirSync as _J}from"fs";import{join as u}from"path";import{appendFileSync as r,existsSync as P,mkdirSync as e,readFileSync as JJ,readdirSync as ZJ,statSync as $J,unlinkSync as v}from"fs";import{join as F}from"path";var QJ=30,XJ=104857600,WJ=/secret|password|token|key|email/i,h=/^audit-(\d{4}-\d{2}-\d{2})\.log$/;function y(J=new Date){let Z=J.getUTCFullYear(),$=String(J.getUTCMonth()+1).padStart(2,"0"),Q=String(J.getUTCDate()).padStart(2,"0");return`${Z}-${$}-${Q}`}function k(J){if(Array.isArray(J))return J.map(k);if(J&&typeof J==="object"){let Z={};for(let[$,Q]of Object.entries(J)){if(WJ.test($)){Z[$]="[redacted]";continue}Z[$]=k(Q)}return Z}return J}function KJ(J,Z){if(!Z)return!0;if(Z.includes("*"))return new RegExp(`^${Z.replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*")}$`).test(J);return J.includes(Z)}class I{profile;auditDir;constructor(J,Z){this.profile=J,this.auditDir=F(Z,"audit")}ensureDir(){if(!P(this.auditDir))e(this.auditDir,{recursive:!0});return this.auditDir}activeFilePath(){return F(this.ensureDir(),`audit-${y()}.log`)}emit(J,Z,$={}){let Q=k($),X={timestamp:new Date().toISOString(),source:J,event:Z,payload:{...Q,profile:this.profile}};try{r(this.activeFilePath(),`${JSON.stringify(X)}
|
|
3
3
|
`,{mode:384})}catch{}}listLogFiles(){if(!P(this.auditDir))return[];return ZJ(this.auditDir).filter((J)=>h.test(J)).sort()}listEvents(J={}){let Z=Math.max(1,Math.min(J.limit??200,5000)),$=J.since?Date.parse(J.since):null,Q=J.event??"",X=this.listLogFiles(),W=[];for(let K=X.length-1;K>=0&&W.length<Z;K--){let V=X[K],z;try{z=JJ(F(this.auditDir,V),"utf8")}catch{continue}let Y=z.split(`
|
|
4
4
|
`);for(let M=Y.length-1;M>=0&&W.length<Z;M--){let q=Y[M];if(!q)continue;let H;try{H=JSON.parse(q)}catch{continue}if($!==null&&Number.isFinite($)&&Date.parse(H.timestamp)<$)continue;if(!KJ(H.event,Q))continue;W.push(H)}}return W}runRetention(J=new Date){if(!P(this.auditDir))return;let Z=J.getTime()-QJ*24*60*60*1000,$=this.listLogFiles(),Q=[];for(let K of $){let V=h.exec(K);if(!V)continue;let z=Date.parse(`${V[1]}T00:00:00Z`),Y=F(this.auditDir,K);try{let M=$J(Y);if(Number.isFinite(z)&&z<Z){v(Y);continue}Q.push({name:K,size:M.size,mtime:M.mtimeMs})}catch{}}let X=Q.reduce((K,V)=>K+V.size,0),W=`audit-${y(J)}.log`;Q.sort((K,V)=>K.name.localeCompare(V.name));for(let K of Q){if(X<=XJ)break;if(K.name===W)continue;try{v(F(this.auditDir,K.name)),X-=K.size}catch{}}}__getAuditDirForTests(){return this.auditDir}}class _{profile;cryptoKey=null;apiKeyHash=null;constructor(J){this.profile=J}async load(J){if(J.byteLength!==32)throw Error(`KeyVault expects 32-byte key, got ${J.byteLength}`);let Z=new Uint8Array(J);try{this.cryptoKey=await crypto.subtle.importKey("raw",Z,{name:"AES-GCM"},!1,["encrypt","decrypt"])}finally{J.fill(0),Z.fill(0)}}async bindApiKey(J){let Z=new TextEncoder().encode(J);this.apiKeyHash=await crypto.subtle.digest("SHA-256",Z),Z.fill(0)}async match(J){if(!this.apiKeyHash)return!1;let Z=new TextEncoder().encode(J),$=await crypto.subtle.digest("SHA-256",Z);return Z.fill(0),VJ(this.apiKeyHash,$)}hasKey(){return this.cryptoKey!==null}getCryptoKey(){return this.cryptoKey}shutdown(){this.cryptoKey=null,this.apiKeyHash=null}}function VJ(J,Z){if(J.byteLength!==Z.byteLength)return!1;let $=new Uint8Array(J),Q=new Uint8Array(Z),X=0;for(let W=0;W<$.length;W++)X|=($[W]??0)^(Q[W]??0);return X===0}import{existsSync as N,mkdirSync as MJ,statSync as HJ,copyFileSync as BJ,truncateSync as CJ,renameSync as qJ,unlinkSync as NJ,createReadStream as DJ}from"fs";import{join as FJ}from"path";import{EventEmitter as jJ}from"events";import{createInterface as GJ}from"readline";import{AsyncLocalStorage as zJ}from"async_hooks";var f=new zJ,YJ=/^[A-Za-z0-9._:-]{8,128}$/;function lJ(){let J=globalThis.crypto;if(J?.randomUUID)return J.randomUUID();let Z=new Uint8Array(16);return J?.getRandomValues?.(Z),[...Z].map(($)=>$.toString(16).padStart(2,"0")).join("")}function nJ(J){let Z=(Q)=>{if(J instanceof Headers)return J.get(Q)??void 0;return J[Q]??J[Q.toLowerCase()]??J[Q.toUpperCase()]},$=Z("x-request-id")??Z("X-Request-Id");if(!$)return;return YJ.test($)?$:void 0}function oJ(J){f.enterWith(J)}function G(){return f.getStore()?.requestId}var bJ=10485760,m=7,OJ=60000,b={debug:0,info:1,warn:2,error:3},PJ={debug:"\x1B[90m",info:"\x1B[36m",warn:"\x1B[33m",error:"\x1B[31m"},kJ="\x1B[0m";class L extends jJ{logDir;logFile;currentDay="";minLevel;isDaemon;emitOutput;prettyOutput;rotationTimer=null;constructor(J){super();this.setMaxListeners(100),this.logDir=J.logDir;let Z=process.env.AGENT_LOG_FILE;this.logFile=Z&&Z.length>0?Z:J.logFile??FJ(this.logDir,"default.log"),this.minLevel=process.env.LOG_LEVEL??"info",this.isDaemon=Boolean(process.env.AGENT_LOG_FILE);let $=process.env.VIBE_FOREGROUND==="1"||process.argv.some((Q)=>Q==="-f"||Q==="--foreground");if(this.emitOutput=this.isDaemon||$||process.env.LOG_CONSOLE==="true"||!1,this.prettyOutput=this.emitOutput&&!this.isDaemon&&Boolean(process.stdout.isTTY),this.ensureLogDir(),this.currentDay=new Date().toISOString().split("T")[0]??"",this.isDaemon)this.rotationTimer=setInterval(()=>this.checkRotation(),OJ),this.rotationTimer.unref?.()}debug(J,Z,$){this.log("debug",J,Z,$)}info(J,Z,$){this.log("info",J,Z,$)}warn(J,Z,$){this.log("warn",J,Z,$)}error(J,Z,$){this.log("error",J,Z,$)}setLevel(J){this.minLevel=J}async readHistory(J){let{level:Z,source:$,from:Q,to:X,limit:W=200,offset:K=0}=J??{},V=[];if(!N(this.logFile))return V;return new Promise((z)=>{let Y=GJ({input:DJ(this.logFile,"utf8")}),M=0;Y.on("line",(q)=>{if(V.length>=W){Y.close();return}try{let H=JSON.parse(q);if(Z&&b[H.level]<b[Z])return;if($&&!H.source.includes($))return;if(Q&&H.timestamp<Q)return;if(X&&H.timestamp>X)return;if(M<K){M++;return}V.push(H)}catch{}}),Y.on("close",()=>z(V)),Y.on("error",()=>z(V))})}close(){if(this.rotationTimer)clearInterval(this.rotationTimer),this.rotationTimer=null}log(J,Z,$,Q){if(b[J]<b[this.minLevel])return;let X=G(),W=X!==void 0?{requestId:X,...Q??{}}:Q,K={timestamp:new Date().toISOString(),level:J,source:Z,message:$,...W&&Object.keys(W).length>0?{metadata:W}:{}};if(this.emitOutput)if(this.prettyOutput){let V=PJ[J],z=J.toUpperCase().padEnd(5),Y=Z?` [${Z}]`:"",M=W&&Object.keys(W).length>0?` ${JSON.stringify(W)}`:"",q=K.timestamp.split("T")[1]?.slice(0,12)??K.timestamp;process.stdout.write(`${V}${q} ${z}${kJ}${Y} ${$}${M}
|
|
5
5
|
`)}else process.stdout.write(JSON.stringify(K)+`
|
|
6
|
-
`);this.emit("log",K),g.enqueue(K)}checkRotation(){let J=new Date().toISOString().split("T")[0];if(this.currentDay&&this.currentDay!==J){this.rotate(),this.currentDay=J;return}this.currentDay=J;try{if(N(this.logFile)){if(HJ(this.logFile).size>=bJ)this.rotate()}}catch{}}rotate(){try{for(let J=m-1;J>=1;J--){let Z=`${this.logFile}.${J}`,$=`${this.logFile}.${J+1}`;if(N(Z)){if(J+1>m&&N($))NJ($);qJ(Z,$)}}if(N(this.logFile))BJ(this.logFile,`${this.logFile}.1`),CJ(this.logFile,0)}catch{}}ensureLogDir(){if(!N(this.logDir))MJ(this.logDir,{recursive:!0})}}var LJ={maxFileDescriptors:4096,maxChildProcesses:256,maxMemoryMB:4096},U=new IJ;function M2(J){U.enterWith(J)}class x{name;dataDir;spawnOwnerKey;keyVault;audit;logger;budget;db=null;serviceRegistry=null;pluginManager=null;lifecycle=null;hostServices=null;tunnel={url:null,child:null,externalUrl:!1};_gatewayClient=null;state="awaiting-config";degradedReasons=[];listeners=new Set;lastFinalizeError=null;constructor(J){this.name=J.name,this.dataDir=J.dataDir,this.spawnOwnerKey=`profile/${J.name}`,this.budget=J.budget??LJ,_J(this.dataDir,{recursive:!0}),this.keyVault=new _(J.name),this.audit=new I(J.name,J.dataDir),this.logger=new L({logDir:u(J.dataDir,"logs")})}run(J){return U.run(this,J)}get gatewayClient(){if(!this._gatewayClient)this._gatewayClient=new R;return this._gatewayClient}attachServices(J){this.db=J.db,this.serviceRegistry=J.serviceRegistry,this.pluginManager=J.pluginManager,this.lifecycle=J.lifecycle,this.hostServices=J.hostServices}getBootState(){return this.state}setBootState(J){if(this.state===J)return;if(this.state=J,J!=="degraded")this.degradedReasons.length=0;for(let Z of this.listeners)try{Z(J)}catch{}}recordDegradedReason(J,Z){if(this.degradedReasons.push({plugin:J,message:Z}),this.state==="ready")this.setBootState("degraded");(async()=>{try{let{telemetryService:$}=await import("./telemetry-
|
|
6
|
+
`);this.emit("log",K),g.enqueue(K)}checkRotation(){let J=new Date().toISOString().split("T")[0];if(this.currentDay&&this.currentDay!==J){this.rotate(),this.currentDay=J;return}this.currentDay=J;try{if(N(this.logFile)){if(HJ(this.logFile).size>=bJ)this.rotate()}}catch{}}rotate(){try{for(let J=m-1;J>=1;J--){let Z=`${this.logFile}.${J}`,$=`${this.logFile}.${J+1}`;if(N(Z)){if(J+1>m&&N($))NJ($);qJ(Z,$)}}if(N(this.logFile))BJ(this.logFile,`${this.logFile}.1`),CJ(this.logFile,0)}catch{}}ensureLogDir(){if(!N(this.logDir))MJ(this.logDir,{recursive:!0})}}var LJ={maxFileDescriptors:4096,maxChildProcesses:256,maxMemoryMB:4096},U=new IJ;function M2(J){U.enterWith(J)}class x{name;dataDir;spawnOwnerKey;keyVault;audit;logger;budget;db=null;serviceRegistry=null;pluginManager=null;lifecycle=null;hostServices=null;tunnel={url:null,child:null,externalUrl:!1};_gatewayClient=null;state="awaiting-config";degradedReasons=[];listeners=new Set;lastFinalizeError=null;constructor(J){this.name=J.name,this.dataDir=J.dataDir,this.spawnOwnerKey=`profile/${J.name}`,this.budget=J.budget??LJ,_J(this.dataDir,{recursive:!0}),this.keyVault=new _(J.name),this.audit=new I(J.name,J.dataDir),this.logger=new L({logDir:u(J.dataDir,"logs")})}run(J){return U.run(this,J)}get gatewayClient(){if(!this._gatewayClient)this._gatewayClient=new R;return this._gatewayClient}attachServices(J){this.db=J.db,this.serviceRegistry=J.serviceRegistry,this.pluginManager=J.pluginManager,this.lifecycle=J.lifecycle,this.hostServices=J.hostServices}getBootState(){return this.state}setBootState(J){if(this.state===J)return;if(this.state=J,J!=="degraded")this.degradedReasons.length=0;for(let Z of this.listeners)try{Z(J)}catch{}}recordDegradedReason(J,Z){if(this.degradedReasons.push({plugin:J,message:Z}),this.state==="ready")this.setBootState("degraded");(async()=>{try{let{telemetryService:$}=await import("./telemetry-8jfdyt51.js");$.emit("health.degraded",{reason_class:RJ(Z)})}catch{}})()}getDegradedReasons(){return this.degradedReasons.slice()}recordFinalizeError(J,Z){this.lastFinalizeError={message:J,at:new Date().toISOString(),attempt:Z}}clearFinalizeError(){this.lastFinalizeError=null}getLastFinalizeError(){return this.lastFinalizeError}onBootStateChange(J){return this.listeners.add(J),()=>this.listeners.delete(J)}async shutdown(){this.setBootState("shutting-down");try{let{unmountProfileRoutes:J}=await import("./profile-mount-8dc9jwt5.js");J(this.name)}catch{}try{if(this.pluginManager)await this.pluginManager.dispatchServerStop({reason:"shutdown"})}catch{}try{if(this.db)await this.db.close()}catch{}this.lifecycle=null,this.pluginManager=null,this.hostServices=null,this.serviceRegistry=null,this.db=null,this._gatewayClient=null,this.tunnel={url:null,child:null,externalUrl:!1},this.keyVault.shutdown(),this.listeners.clear()}subdir(J){return u(this.dataDir,J)}}function d(){return U.getStore()??null}function RJ(J){let Z=J.toLowerCase();if(Z.includes("timeout"))return"timeout";if(Z.includes("econn")||Z.includes("network"))return"network";if(Z.includes("permission")||Z.includes("eacces"))return"permission";if(Z.includes("not found")||Z.includes("enoent"))return"not_found";if(Z.includes("plugin"))return"plugin";return"other"}class A{profiles=new Map;create(J){if(this.profiles.has(J.name))throw Error(`profile already registered: ${J.name}`);let Z=new x(J);return this.profiles.set(J.name,Z),this.refreshProcessTitle(),Z}refreshProcessTitle(){try{let Z=[...this.profiles.keys()].sort().join(","),$=Z.length>96?`${Z.slice(0,93)}...`:Z;process.title=`vibe-daemon[${$}]`}catch{}}get(J){return this.profiles.get(J)}list(){return[...this.profiles.values()]}names(){return[...this.profiles.keys()]}has(J){return this.profiles.has(J)}size(){return this.profiles.size}async destroy(J){let Z=this.profiles.get(J);if(!Z)return;await Z.shutdown(),this.profiles.delete(J),this.refreshProcessTitle()}async destroyAll(){let J=[...this.profiles.keys()];for(let Z of J)await this.destroy(Z)}}var j=new A,D=null;function xJ(){if(D)return D;let J=c(),Z=j.get(J);if(Z)return D=Z,Z;return D=j.create({name:J,dataDir:l()}),D}function B(){return xJ()}function F2(J){let Z=i(J),$=j.get(Z);if($)return $;return j.create({name:Z,dataDir:UJ(n(),"agents",Z)})}async function j2(){D=null,await j.destroyAll()}var O=new Set(["localhost","127.0.0.1","0.0.0.0","::1","[::1]","host.docker.internal"]),AJ=new Set(["4000","4001","4002","4003"]),TJ=new Set(["gw-global.local.burdenoff.com","gw-global-int.local.burdenoff.com","gw-wspace.local.burdenoff.com","gw-wspace-int.local.burdenoff.com"]),EJ=new Set(["graphql.burdenoff.com","graphqlworkspaces.burdenoff.com","alphagraphql.burdenoff.com","alphagraphqlworkspaces.burdenoff.com"]);function C(J){return J.toLowerCase().replace(/^\[|\]$/g,"")}function o(J){let Z=C(J.hostname);if(!O.has(Z))return!1;if(process.env.VIBECONTROLS_ALLOW_UNTRUSTED_GATEWAYS==="1")return!0;return AJ.has(J.port)}function s(J){try{let Z=new URL(J.trim());if(Z.protocol!=="https:"&&Z.protocol!=="http:")return!1;if(o(Z))return!0;let $=C(Z.hostname);if(TJ.has($))return Z.protocol==="https:";if(Z.protocol!=="https:")return!1;return EJ.has($)}catch{return!1}}function T(J,Z){let $=J.trim();if(!s($))throw Error(`${Z} is not an allowed gateway URL. Use a trusted Burdenoff gateway, approved gw-*.local.burdenoff.com host, or localhost gateway ports 4000-4003.`);return $.replace(/\/+$/,"")}var E=new Set([".vibecontrols.com"]);function b2(J){let Z=J.trim().toLowerCase();if(!Z)return;E.add(Z.startsWith(".")?Z:`.${Z}`)}function SJ(J){try{let Z=new URL(J.trim()),$=C(Z.hostname);if(O.has($))return Z.protocol==="http:"||Z.protocol==="https:";if(Z.protocol!=="https:")return!1;for(let Q of E)if($.endsWith(Q))return!0;return!1}catch{return!1}}function O2(J){if(!J)return null;let Z=J.trim().replace(/\/+$/,"");return SJ(Z)?Z:null}var wJ=new Set([".trycloudflare.com"]);function vJ(J){try{let Z=new URL(J.trim()),$=C(Z.hostname);if(O.has($))return Z.protocol==="http:"||Z.protocol==="https:";if(Z.protocol!=="https:")return!1;for(let Q of E)if($.endsWith(Q))return!0;for(let Q of wJ)if($.endsWith(Q))return!0;return!1}catch{return!1}}function P2(J){if(!J)return null;let Z=J.trim().replace(/\/+$/,"");return vJ(Z)?Z:null}function hJ(J){try{let Z=new URL(J.trim()),$=C(Z.hostname);if(O.has($))return Z.protocol==="http:"||Z.protocol==="https:";return Z.protocol==="https:"}catch{return!1}}function k2(J){if(!J)return null;let Z=J.trim().replace(/\/+$/,"");return hJ(Z)?Z:null}function I2(J,Z){try{let $=new URL(J.trim());if($.protocol!=="https:"&&!o($))return!1;let Q=C($.hostname);for(let X of Z){if(!X)continue;let W=new URL(X);if(Q===C(W.hostname))return!0}return s(J)}catch{return!1}}var yJ=/(?:\/(?:global|workspaces))?\/graphql$/i,fJ=1048576;function w(J){return J.trim().replace(/\/+$/,"").replace(yJ,"")}function a(J,Z){return`${w(J)}/${Z}/graphql`}function t(J){return J instanceof Error?J.message:String(J)}async function mJ(J,Z){let $=J.headers.get("content-length");if($){let z=Number.parseInt($,10);if(Number.isInteger(z)&&z>Z)throw Error(`Gateway response is too large (${z} bytes)`)}if(!J.body)return"";let Q=J.body.getReader(),X=[],W=0;try{while(!0){let{done:z,value:Y}=await Q.read();if(z)break;if(!Y)continue;if(W+=Y.byteLength,W>Z)throw await Q.cancel().catch(()=>{return}),Error(`Gateway response exceeds ${Z} bytes`);X.push(Y)}}finally{Q.releaseLock()}let K=new Uint8Array(W),V=0;for(let z of X)K.set(z,V),V+=z.byteLength;return new TextDecoder().decode(K)}class R{config=null;token=null;authInFlight=null;configGeneration=0;configure(J){let Z=w(T(J.globalGatewayUrl,"globalGatewayUrl")),$=J.workspaceGatewayUrl?w(T(J.workspaceGatewayUrl,"workspaceGatewayUrl")):void 0,Q=J.clientId.trim(),X=J.clientSecret.trim();if(!Z)throw Error("globalGatewayUrl is required");if(!Q)throw Error("clientId is required");if(!X)throw Error("clientSecret is required");this.configGeneration+=1,this.config={...J,globalGatewayUrl:Z,workspaceGatewayUrl:$,clientId:Q,clientSecret:X,scopes:J.scopes?.map((W)=>W.trim()).filter(Boolean),workspaceId:J.workspaceId?.trim()||void 0,organizationId:J.organizationId?.trim()||void 0},this.token=null,this.authInFlight=null,B().logger.info("gateway-client","Gateway client configured",{globalGatewayUrl:this.config.globalGatewayUrl,workspaceGatewayUrl:this.config.workspaceGatewayUrl,clientId:this.config.clientId})}isConfigured(){return this.config!==null}getConfig(){if(!this.config)return null;let{clientSecret:J,...Z}=this.config;return Z}async getAccessToken(){let{token:J,config:Z}=await this.ensureToken();return{token:J,workspaceGatewayUrl:Z.workspaceGatewayUrl??"",globalGatewayUrl:Z.globalGatewayUrl??"",workspaceId:Z.workspaceId??""}}async globalQuery(J,Z){return this.executeQuery("global",J,Z)}async workspaceQuery(J,Z){return this.executeQuery("workspaces",J,Z)}async lookupPeerAgent(J,Z){if(!this.isConfigured())return null;try{let Q=(await this.workspaceQuery(`query AgentNetworkLookup($targetAgentRecordId: ID!, $operation: String!) {
|
|
7
7
|
vibecontrolsAgentNetworkLookup(targetAgentRecordId: $targetAgentRecordId, operation: $operation) {
|
|
8
8
|
tunnelUrl
|
|
9
9
|
peerApiKey
|
|
@@ -18,4 +18,4 @@ import{Xd as c,Yd as i,_d as l,be as n}from"./index-0cn9bv8z.js";import{de as g}
|
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
`,variables:{input:{clientId:J.clientId,clientSecret:J.clientSecret,scopes:J.scopes??[]}}});if(Q.errors?.length||!Q.data?.authenticateApp){let K=Q.errors?.[0]?.message??"Authentication failed";throw B().logger.error("gateway-client",`Authentication failed: ${K}`),Error(`Gateway authentication failed: ${K}`)}let X=Q.data.authenticateApp,W={accessToken:X.accessToken,expiresAt:Date.now()+X.expiresIn*1000,scopes:X.scopes};if(Z!==this.configGeneration||J!==this.config)throw Error("Gateway configuration changed during authentication");return this.token=W,B().logger.info("gateway-client","Authenticated successfully",{expiresIn:X.expiresIn,scopes:X.scopes}),W.accessToken}async postGraphQL(J,Z,$){let Q;try{Q=await fetch(J,{method:"POST",headers:Z,body:JSON.stringify($),signal:AbortSignal.timeout(15000)})}catch(X){throw Error(`Could not reach gateway at ${J}: ${t(X)}`,{cause:X})}try{let X=await mJ(Q,fJ),W={};if(X)try{W=JSON.parse(X)}catch{let K=X.slice(0,240).replace(/\s+/g," ");throw Error(`Gateway returned a non-JSON response (${Q.status} ${Q.statusText}) from ${J}${K?`: ${K}`:""}`)}if(!Q.ok){let K=W.errors?.[0]?.message??`${Q.status} ${Q.statusText}`;throw Error(`Gateway request failed at ${J}: ${K} (${Q.status})`)}return W}catch(X){if(X instanceof Error)throw X;throw Error(`Failed to process gateway response from ${J}: ${t(X)}`,{cause:X})}}}function S(){let J=d();if(J)return J.gatewayClient;return B().gatewayClient}var gJ=new Proxy({},{get(J,Z,$){let Q=S(),X=Q[Z];return typeof X==="function"?X.bind(Q):X},set(J,Z,$){let Q=S();return Q[Z]=$,!0},has(J,Z){return Z in S()}}),T2=gJ;
|
|
21
|
-
export{lJ as
|
|
21
|
+
export{lJ as wd,nJ as xd,oJ as yd,G as zd,T as Ad,b2 as Bd,O2 as Cd,P2 as Dd,k2 as Ed,I2 as Fd,w as Gd,R as Hd,gJ as Id,T2 as Jd,M2 as Kd,d as Ld,j as Md,xJ as Nd,B as Od,F2 as Pd,j2 as Qd};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{fe as $}from"./index-yy1mm8zs.js";var v=$((Eq)=>{Object.defineProperty(Eq,"__esModule",{value:!0});Eq.VERSION=void 0;Eq.VERSION="1.9.1"});var Sq=$((Pq)=>{Object.defineProperty(Pq,"__esModule",{value:!0});Pq.isCompatible=Pq._makeCompatibilityCheck=void 0;var jZ=v(),Tq=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;function yq(q){let z=new Set([q]),J=new Set,Z=q.match(Tq);if(!Z)return()=>!1;let Q={major:+Z[1],minor:+Z[2],patch:+Z[3],prerelease:Z[4]};if(Q.prerelease!=null)return function(Y){return Y===q};function X(G){return J.add(G),!1}function H(G){return z.add(G),!0}return function(Y){if(z.has(Y))return!0;if(J.has(Y))return!1;let w=Y.match(Tq);if(!w)return X(Y);let F={major:+w[1],minor:+w[2],patch:+w[3],prerelease:w[4]};if(F.prerelease!=null)return X(Y);if(Q.major!==F.major)return X(Y);if(Q.major===0){if(Q.minor===F.minor&&Q.patch<=F.patch)return H(Y);return X(Y)}if(Q.minor<=F.minor)return H(Y);return X(Y)}}Pq._makeCompatibilityCheck=yq;Pq.isCompatible=yq(jZ.VERSION)});var O=$((vq)=>{Object.defineProperty(vq,"__esModule",{value:!0});vq.unregisterGlobal=vq.getGlobal=vq.registerGlobal=void 0;var K=v(),DZ=Sq(),IZ=K.VERSION.split(".")[0],k=Symbol.for(`opentelemetry.js.api.${IZ}`),D=typeof globalThis==="object"?globalThis:typeof self==="object"?self:typeof window==="object"?window:typeof global==="object"?global:{};function VZ(q,z,J,Z=!1){var Q;let X=D[k]=(Q=D[k])!==null&&Q!==void 0?Q:{version:K.VERSION};if(!Z&&X[q]){let H=Error(`@opentelemetry/api: Attempted duplicate registration of API: ${q}`);return J.error(H.stack||H.message),!1}if(X.version!==K.VERSION){let H=Error(`@opentelemetry/api: Registration of version v${X.version} for ${q} does not match previously registered API v${K.VERSION}`);return J.error(H.stack||H.message),!1}return X[q]=z,J.debug(`@opentelemetry/api: Registered a global for ${q} v${K.VERSION}.`),!0}vq.registerGlobal=VZ;function NZ(q){var z,J;let Z=(z=D[k])===null||z===void 0?void 0:z.version;if(!Z||!(0,DZ.isCompatible)(Z))return;return(J=D[k])===null||J===void 0?void 0:J[q]}vq.getGlobal=NZ;function bZ(q,z){z.debug(`@opentelemetry/api: Unregistering a global for ${q} v${K.VERSION}.`);let J=D[k];if(J)delete J[q]}vq.unregisterGlobal=bZ});var _q=$((dq)=>{Object.defineProperty(dq,"__esModule",{value:!0});dq.DiagComponentLogger=void 0;var EZ=O();class uq{constructor(q){this._namespace=q.namespace||"DiagComponentLogger"}debug(...q){return I("debug",this._namespace,q)}error(...q){return I("error",this._namespace,q)}info(...q){return I("info",this._namespace,q)}warn(...q){return I("warn",this._namespace,q)}verbose(...q){return I("verbose",this._namespace,q)}}dq.DiagComponentLogger=uq;function I(q,z,J){let Z=(0,EZ.getGlobal)("diag");if(!Z)return;return Z[q](z,...J)}});var C=$((xq)=>{Object.defineProperty(xq,"__esModule",{value:!0});xq.DiagLogLevel=void 0;var AZ;(function(q){q[q.NONE=0]="NONE",q[q.ERROR=30]="ERROR",q[q.WARN=50]="WARN",q[q.INFO=60]="INFO",q[q.DEBUG=70]="DEBUG",q[q.VERBOSE=80]="VERBOSE",q[q.ALL=9999]="ALL"})(AZ=xq.DiagLogLevel||(xq.DiagLogLevel={}))});var gq=$((cq)=>{Object.defineProperty(cq,"__esModule",{value:!0});cq.createLogLevelDiagLogger=void 0;var h=C();function TZ(q,z){if(q<h.DiagLogLevel.NONE)q=h.DiagLogLevel.NONE;else if(q>h.DiagLogLevel.ALL)q=h.DiagLogLevel.ALL;z=z||{};function J(Z,Q){let X=z[Z];if(typeof X==="function"&&q>=Q)return X.bind(z);return function(){}}return{error:J("error",h.DiagLogLevel.ERROR),warn:J("warn",h.DiagLogLevel.WARN),info:J("info",h.DiagLogLevel.INFO),debug:J("debug",h.DiagLogLevel.DEBUG),verbose:J("verbose",h.DiagLogLevel.VERBOSE)}}cq.createLogLevelDiagLogger=TZ});var B=$((pq)=>{Object.defineProperty(pq,"__esModule",{value:!0});pq.DiagAPI=void 0;var yZ=_q(),PZ=gq(),iq=C(),R=O(),MZ="diag";class u{static instance(){if(!this._instance)this._instance=new u;return this._instance}constructor(){function q(Z){return function(...Q){let X=(0,R.getGlobal)("diag");if(!X)return;return X[Z](...Q)}}let z=this,J=(Z,Q={logLevel:iq.DiagLogLevel.INFO})=>{var X,H,G;if(Z===z){let F=Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return z.error((X=F.stack)!==null&&X!==void 0?X:F.message),!1}if(typeof Q==="number")Q={logLevel:Q};let Y=(0,R.getGlobal)("diag"),w=(0,PZ.createLogLevelDiagLogger)((H=Q.logLevel)!==null&&H!==void 0?H:iq.DiagLogLevel.INFO,Z);if(Y&&!Q.suppressOverrideMessage){let F=(G=Error().stack)!==null&&G!==void 0?G:"<failed to generate stacktrace>";Y.warn(`Current logger will be overwritten from ${F}`),w.warn(`Current logger will overwrite one already registered from ${F}`)}return(0,R.registerGlobal)("diag",w,z,!0)};z.setLogger=J,z.disable=()=>{(0,R.unregisterGlobal)(MZ,z)},z.createComponentLogger=(Z)=>{return new yZ.DiagComponentLogger(Z)},z.verbose=q("verbose"),z.debug=q("debug"),z.info=q("info"),z.warn=q("warn"),z.error=q("error")}}pq.DiagAPI=u});var oq=$((sq)=>{Object.defineProperty(sq,"__esModule",{value:!0});sq.BaggageImpl=void 0;class f{constructor(q){this._entries=q?new Map(q):new Map}getEntry(q){let z=this._entries.get(q);if(!z)return;return Object.assign({},z)}getAllEntries(){return Array.from(this._entries.entries())}setEntry(q,z){let J=new f(this._entries);return J._entries.set(q,z),J}removeEntry(q){let z=new f(this._entries);return z._entries.delete(q),z}removeEntries(...q){let z=new f(this._entries);for(let J of q)z._entries.delete(J);return z}clear(){return new f}}sq.BaggageImpl=f});var eq=$((tq)=>{Object.defineProperty(tq,"__esModule",{value:!0});tq.baggageEntryMetadataSymbol=void 0;tq.baggageEntryMetadataSymbol=Symbol("BaggageEntryMetadata")});var d=$((qz)=>{Object.defineProperty(qz,"__esModule",{value:!0});qz.baggageEntryMetadataFromString=qz.createBaggage=void 0;var SZ=B(),vZ=oq(),mZ=eq(),uZ=SZ.DiagAPI.instance();function dZ(q={}){return new vZ.BaggageImpl(new Map(Object.entries(q)))}qz.createBaggage=dZ;function LZ(q){if(typeof q!=="string")uZ.error(`Cannot create baggage metadata from unknown type: ${typeof q}`),q="";return{__TYPE__:mZ.baggageEntryMetadataSymbol,toString(){return q}}}qz.baggageEntryMetadataFromString=LZ});var V=$((Jz)=>{Object.defineProperty(Jz,"__esModule",{value:!0});Jz.ROOT_CONTEXT=Jz.createContextKey=void 0;function xZ(q){return Symbol.for(q)}Jz.createContextKey=xZ;class E{constructor(q){let z=this;z._currentContext=q?new Map(q):new Map,z.getValue=(J)=>z._currentContext.get(J),z.setValue=(J,Z)=>{let Q=new E(z._currentContext);return Q._currentContext.set(J,Z),Q},z.deleteValue=(J)=>{let Z=new E(z._currentContext);return Z._currentContext.delete(J),Z}}}Jz.ROOT_CONTEXT=new E});var Xz=$((Qz)=>{Object.defineProperty(Qz,"__esModule",{value:!0});Qz.DiagConsoleLogger=Qz._originalConsoleMethods=void 0;var L=[{n:"error",c:"error"},{n:"warn",c:"warn"},{n:"info",c:"info"},{n:"debug",c:"debug"},{n:"verbose",c:"trace"}];Qz._originalConsoleMethods={};if(typeof console<"u"){let q=["error","warn","info","debug","trace","log"];for(let z of q)if(typeof console[z]==="function")Qz._originalConsoleMethods[z]=console[z]}class $z{constructor(){function q(z){return function(...J){let Z=Qz._originalConsoleMethods[z];if(typeof Z!=="function")Z=Qz._originalConsoleMethods.log;if(typeof Z!=="function"&&console){if(Z=console[z],typeof Z!=="function")Z=console.log}if(typeof Z==="function")return Z.apply(console,J)}}for(let z=0;z<L.length;z++)this[L[z].n]=q(L[z].c)}}Qz.DiagConsoleLogger=$z});var s=$((Hz)=>{Object.defineProperty(Hz,"__esModule",{value:!0});Hz.createNoopMeter=Hz.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=Hz.NOOP_OBSERVABLE_GAUGE_METRIC=Hz.NOOP_OBSERVABLE_COUNTER_METRIC=Hz.NOOP_UP_DOWN_COUNTER_METRIC=Hz.NOOP_HISTOGRAM_METRIC=Hz.NOOP_GAUGE_METRIC=Hz.NOOP_COUNTER_METRIC=Hz.NOOP_METER=Hz.NoopObservableUpDownCounterMetric=Hz.NoopObservableGaugeMetric=Hz.NoopObservableCounterMetric=Hz.NoopObservableMetric=Hz.NoopHistogramMetric=Hz.NoopGaugeMetric=Hz.NoopUpDownCounterMetric=Hz.NoopCounterMetric=Hz.NoopMetric=Hz.NoopMeter=void 0;class _{constructor(){}createGauge(q,z){return Hz.NOOP_GAUGE_METRIC}createHistogram(q,z){return Hz.NOOP_HISTOGRAM_METRIC}createCounter(q,z){return Hz.NOOP_COUNTER_METRIC}createUpDownCounter(q,z){return Hz.NOOP_UP_DOWN_COUNTER_METRIC}createObservableGauge(q,z){return Hz.NOOP_OBSERVABLE_GAUGE_METRIC}createObservableCounter(q,z){return Hz.NOOP_OBSERVABLE_COUNTER_METRIC}createObservableUpDownCounter(q,z){return Hz.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC}addBatchObservableCallback(q,z){}removeBatchObservableCallback(q){}}Hz.NoopMeter=_;class U{}Hz.NoopMetric=U;class x extends U{add(q,z){}}Hz.NoopCounterMetric=x;class c extends U{add(q,z){}}Hz.NoopUpDownCounterMetric=c;class l extends U{record(q,z){}}Hz.NoopGaugeMetric=l;class g extends U{record(q,z){}}Hz.NoopHistogramMetric=g;class N{addCallback(q){}removeCallback(q){}}Hz.NoopObservableMetric=N;class i extends N{}Hz.NoopObservableCounterMetric=i;class p extends N{}Hz.NoopObservableGaugeMetric=p;class n extends N{}Hz.NoopObservableUpDownCounterMetric=n;Hz.NOOP_METER=new _;Hz.NOOP_COUNTER_METRIC=new x;Hz.NOOP_GAUGE_METRIC=new l;Hz.NOOP_HISTOGRAM_METRIC=new g;Hz.NOOP_UP_DOWN_COUNTER_METRIC=new c;Hz.NOOP_OBSERVABLE_COUNTER_METRIC=new i;Hz.NOOP_OBSERVABLE_GAUGE_METRIC=new p;Hz.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=new n;function lZ(){return Hz.NOOP_METER}Hz.createNoopMeter=lZ});var jz=$((Uz)=>{Object.defineProperty(Uz,"__esModule",{value:!0});Uz.ValueType=void 0;var q0;(function(q){q[q.INT=0]="INT",q[q.DOUBLE=1]="DOUBLE"})(q0=Uz.ValueType||(Uz.ValueType={}))});var o=$((kz)=>{Object.defineProperty(kz,"__esModule",{value:!0});kz.defaultTextMapSetter=kz.defaultTextMapGetter=void 0;kz.defaultTextMapGetter={get(q,z){if(q==null)return;return q[z]},keys(q){if(q==null)return[];return Object.keys(q)}};kz.defaultTextMapSetter={set(q,z,J){if(q==null)return;q[z]=J}}});var bz=$((Vz)=>{Object.defineProperty(Vz,"__esModule",{value:!0});Vz.NoopContextManager=void 0;var J0=V();class Iz{active(){return J0.ROOT_CONTEXT}with(q,z,J,...Z){return z.call(J,...Z)}bind(q,z){return z}enable(){return this}disable(){return this}}Vz.NoopContextManager=Iz});var b=$((Rz)=>{Object.defineProperty(Rz,"__esModule",{value:!0});Rz.ContextAPI=void 0;var Z0=bz(),t=O(),Cz=B(),a="context",$0=new Z0.NoopContextManager;class e{constructor(){}static getInstance(){if(!this._instance)this._instance=new e;return this._instance}setGlobalContextManager(q){return(0,t.registerGlobal)(a,q,Cz.DiagAPI.instance())}active(){return this._getContextManager().active()}with(q,z,J,...Z){return this._getContextManager().with(q,z,J,...Z)}bind(q,z){return this._getContextManager().bind(q,z)}_getContextManager(){return(0,t.getGlobal)(a)||$0}disable(){this._getContextManager().disable(),(0,t.unregisterGlobal)(a,Cz.DiagAPI.instance())}}Rz.ContextAPI=e});var zq=$((Az)=>{Object.defineProperty(Az,"__esModule",{value:!0});Az.TraceFlags=void 0;var Q0;(function(q){q[q.NONE=0]="NONE",q[q.SAMPLED=1]="SAMPLED"})(Q0=Az.TraceFlags||(Az.TraceFlags={}))});var T=$((Tz)=>{Object.defineProperty(Tz,"__esModule",{value:!0});Tz.INVALID_SPAN_CONTEXT=Tz.INVALID_TRACEID=Tz.INVALID_SPANID=void 0;var W0=zq();Tz.INVALID_SPANID="0000000000000000";Tz.INVALID_TRACEID="00000000000000000000000000000000";Tz.INVALID_SPAN_CONTEXT={traceId:Tz.INVALID_TRACEID,spanId:Tz.INVALID_SPANID,traceFlags:W0.TraceFlags.NONE}});var y=$((vz)=>{Object.defineProperty(vz,"__esModule",{value:!0});vz.NonRecordingSpan=void 0;var X0=T();class Sz{constructor(q=X0.INVALID_SPAN_CONTEXT){this._spanContext=q}spanContext(){return this._spanContext}setAttribute(q,z){return this}setAttributes(q){return this}addEvent(q,z){return this}addLink(q){return this}addLinks(q){return this}setStatus(q){return this}updateName(q){return this}end(q){}isRecording(){return!1}recordException(q,z){}}vz.NonRecordingSpan=Sz});var $q=$((dz)=>{Object.defineProperty(dz,"__esModule",{value:!0});dz.getSpanContext=dz.setSpanContext=dz.deleteSpan=dz.setSpan=dz.getActiveSpan=dz.getSpan=void 0;var H0=V(),Y0=y(),G0=b(),Jq=(0,H0.createContextKey)("OpenTelemetry Context Key SPAN");function Zq(q){return q.getValue(Jq)||void 0}dz.getSpan=Zq;function F0(){return Zq(G0.ContextAPI.getInstance().active())}dz.getActiveSpan=F0;function uz(q,z){return q.setValue(Jq,z)}dz.setSpan=uz;function w0(q){return q.deleteValue(Jq)}dz.deleteSpan=w0;function h0(q,z){return uz(q,new Y0.NonRecordingSpan(z))}dz.setSpanContext=h0;function O0(q){var z;return(z=Zq(q))===null||z===void 0?void 0:z.spanContext()}dz.getSpanContext=O0});var M=$((gz)=>{Object.defineProperty(gz,"__esModule",{value:!0});gz.wrapSpanContext=gz.isSpanContextValid=gz.isValidSpanId=gz.isValidTraceId=void 0;var _z=T(),k0=y(),P=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1]);function xz(q,z){if(typeof q!=="string"||q.length!==z)return!1;let J=0;for(let Z=0;Z<q.length;Z+=4)J+=(P[q.charCodeAt(Z)]|0)+(P[q.charCodeAt(Z+1)]|0)+(P[q.charCodeAt(Z+2)]|0)+(P[q.charCodeAt(Z+3)]|0);return J===z}function cz(q){return xz(q,32)&&q!==_z.INVALID_TRACEID}gz.isValidTraceId=cz;function lz(q){return xz(q,16)&&q!==_z.INVALID_SPANID}gz.isValidSpanId=lz;function D0(q){return cz(q.traceId)&&lz(q.spanId)}gz.isSpanContextValid=D0;function I0(q){return new k0.NonRecordingSpan(q)}gz.wrapSpanContext=I0});var Xq=$((sz)=>{Object.defineProperty(sz,"__esModule",{value:!0});sz.NoopTracer=void 0;var C0=b(),pz=$q(),Qq=y(),R0=M(),Wq=C0.ContextAPI.getInstance();class nz{startSpan(q,z,J=Wq.active()){if(Boolean(z===null||z===void 0?void 0:z.root))return new Qq.NonRecordingSpan;let Q=J&&(0,pz.getSpanContext)(J);if(E0(Q)&&(0,R0.isSpanContextValid)(Q))return new Qq.NonRecordingSpan(Q);else return new Qq.NonRecordingSpan}startActiveSpan(q,z,J,Z){let Q,X,H;if(arguments.length<2)return;else if(arguments.length===2)H=z;else if(arguments.length===3)Q=z,H=J;else Q=z,X=J,H=Z;let G=X!==null&&X!==void 0?X:Wq.active(),Y=this.startSpan(q,Q,G),w=(0,pz.setSpan)(G,Y);return Wq.with(w,H,void 0,Y)}}sz.NoopTracer=nz;function E0(q){return q!==null&&typeof q==="object"&&"spanId"in q&&typeof q.spanId==="string"&&"traceId"in q&&typeof q.traceId==="string"&&"traceFlags"in q&&typeof q.traceFlags==="number"}});var Hq=$((tz)=>{Object.defineProperty(tz,"__esModule",{value:!0});tz.ProxyTracer=void 0;var A0=Xq(),T0=new A0.NoopTracer;class oz{constructor(q,z,J,Z){this._provider=q,this.name=z,this.version=J,this.options=Z}startSpan(q,z,J){return this._getTracer().startSpan(q,z,J)}startActiveSpan(q,z,J,Z){let Q=this._getTracer();return Reflect.apply(Q.startActiveSpan,Q,arguments)}_getTracer(){if(this._delegate)return this._delegate;let q=this._provider.getDelegateTracer(this.name,this.version,this.options);if(!q)return T0;return this._delegate=q,this._delegate}}tz.ProxyTracer=oz});var JJ=$((qJ)=>{Object.defineProperty(qJ,"__esModule",{value:!0});qJ.NoopTracerProvider=void 0;var y0=Xq();class ez{getTracer(q,z,J){return new y0.NoopTracer}}qJ.NoopTracerProvider=ez});var Yq=$(($J)=>{Object.defineProperty($J,"__esModule",{value:!0});$J.ProxyTracerProvider=void 0;var P0=Hq(),M0=JJ(),S0=new M0.NoopTracerProvider;class ZJ{getTracer(q,z,J){var Z;return(Z=this.getDelegateTracer(q,z,J))!==null&&Z!==void 0?Z:new P0.ProxyTracer(this,q,z,J)}getDelegate(){var q;return(q=this._delegate)!==null&&q!==void 0?q:S0}setDelegate(q){this._delegate=q}getDelegateTracer(q,z,J){var Z;return(Z=this._delegate)===null||Z===void 0?void 0:Z.getTracer(q,z,J)}}$J.ProxyTracerProvider=ZJ});var XJ=$((WJ)=>{Object.defineProperty(WJ,"__esModule",{value:!0});WJ.SamplingDecision=void 0;var v0;(function(q){q[q.NOT_RECORD=0]="NOT_RECORD",q[q.RECORD=1]="RECORD",q[q.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"})(v0=WJ.SamplingDecision||(WJ.SamplingDecision={}))});var YJ=$((HJ)=>{Object.defineProperty(HJ,"__esModule",{value:!0});HJ.SpanKind=void 0;var m0;(function(q){q[q.INTERNAL=0]="INTERNAL",q[q.SERVER=1]="SERVER",q[q.CLIENT=2]="CLIENT",q[q.PRODUCER=3]="PRODUCER",q[q.CONSUMER=4]="CONSUMER"})(m0=HJ.SpanKind||(HJ.SpanKind={}))});var FJ=$((GJ)=>{Object.defineProperty(GJ,"__esModule",{value:!0});GJ.SpanStatusCode=void 0;var u0;(function(q){q[q.UNSET=0]="UNSET",q[q.OK=1]="OK",q[q.ERROR=2]="ERROR"})(u0=GJ.SpanStatusCode||(GJ.SpanStatusCode={}))});var OJ=$((wJ)=>{Object.defineProperty(wJ,"__esModule",{value:!0});wJ.validateValue=wJ.validateKey=void 0;var hq="[_0-9a-z-*/]",d0=`[a-z]${hq}{0,255}`,L0=`[a-z0-9]${hq}{0,240}@[a-z]${hq}{0,13}`,_0=new RegExp(`^(?:${d0}|${L0})$`),x0=/^[ -~]{0,255}[!-~]$/,c0=/,|=/;function l0(q){return _0.test(q)}wJ.validateKey=l0;function g0(q){return x0.test(q)&&!c0.test(q)}wJ.validateValue=g0});var DJ=$((jJ)=>{Object.defineProperty(jJ,"__esModule",{value:!0});jJ.TraceStateImpl=void 0;var BJ=OJ(),KJ=32,p0=512,fJ=",",UJ="=";class Oq{constructor(q){if(this._internalState=new Map,q)this._parse(q)}set(q,z){let J=this._clone();if(J._internalState.has(q))J._internalState.delete(q);return J._internalState.set(q,z),J}unset(q){let z=this._clone();return z._internalState.delete(q),z}get(q){return this._internalState.get(q)}serialize(){return Array.from(this._internalState.keys()).reduceRight((q,z)=>{return q.push(z+UJ+this.get(z)),q},[]).join(fJ)}_parse(q){if(q.length>p0)return;if(this._internalState=q.split(fJ).reduceRight((z,J)=>{let Z=J.trim(),Q=Z.indexOf(UJ);if(Q!==-1){let X=Z.slice(0,Q),H=Z.slice(Q+1,J.length);if((0,BJ.validateKey)(X)&&(0,BJ.validateValue)(H))z.set(X,H)}return z},new Map),this._internalState.size>KJ)this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,KJ))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let q=new Oq;return q._internalState=new Map(this._internalState),q}}jJ.TraceStateImpl=Oq});var NJ=$((IJ)=>{Object.defineProperty(IJ,"__esModule",{value:!0});IJ.createTraceState=void 0;var n0=DJ();function s0(q){return new n0.TraceStateImpl(q)}IJ.createTraceState=s0});var RJ=$((bJ)=>{Object.defineProperty(bJ,"__esModule",{value:!0});bJ.context=void 0;var r0=b();bJ.context=r0.ContextAPI.getInstance()});var TJ=$((EJ)=>{Object.defineProperty(EJ,"__esModule",{value:!0});EJ.diag=void 0;var o0=B();EJ.diag=o0.DiagAPI.instance()});var MJ=$((yJ)=>{Object.defineProperty(yJ,"__esModule",{value:!0});yJ.NOOP_METER_PROVIDER=yJ.NoopMeterProvider=void 0;var t0=s();class Bq{getMeter(q,z,J){return t0.NOOP_METER}}yJ.NoopMeterProvider=Bq;yJ.NOOP_METER_PROVIDER=new Bq});var uJ=$((vJ)=>{Object.defineProperty(vJ,"__esModule",{value:!0});vJ.MetricsAPI=void 0;var e0=MJ(),Kq=O(),SJ=B(),fq="metrics";class Uq{constructor(){}static getInstance(){if(!this._instance)this._instance=new Uq;return this._instance}setGlobalMeterProvider(q){return(0,Kq.registerGlobal)(fq,q,SJ.DiagAPI.instance())}getMeterProvider(){return(0,Kq.getGlobal)(fq)||e0.NOOP_METER_PROVIDER}getMeter(q,z,J){return this.getMeterProvider().getMeter(q,z,J)}disable(){(0,Kq.unregisterGlobal)(fq,SJ.DiagAPI.instance())}}vJ.MetricsAPI=Uq});var _J=$((dJ)=>{Object.defineProperty(dJ,"__esModule",{value:!0});dJ.metrics=void 0;var q1=uJ();dJ.metrics=q1.MetricsAPI.getInstance()});var gJ=$((cJ)=>{Object.defineProperty(cJ,"__esModule",{value:!0});cJ.NoopTextMapPropagator=void 0;class xJ{inject(q,z){}extract(q,z){return q}fields(){return[]}}cJ.NoopTextMapPropagator=xJ});var sJ=$((pJ)=>{Object.defineProperty(pJ,"__esModule",{value:!0});pJ.deleteBaggage=pJ.setBaggage=pJ.getActiveBaggage=pJ.getBaggage=void 0;var z1=b(),J1=V(),jq=(0,J1.createContextKey)("OpenTelemetry Baggage Key");function iJ(q){return q.getValue(jq)||void 0}pJ.getBaggage=iJ;function Z1(){return iJ(z1.ContextAPI.getInstance().active())}pJ.getActiveBaggage=Z1;function $1(q,z){return q.setValue(jq,z)}pJ.setBaggage=$1;function Q1(q){return q.deleteValue(jq)}pJ.deleteBaggage=Q1});var eJ=$((tJ)=>{Object.defineProperty(tJ,"__esModule",{value:!0});tJ.PropagationAPI=void 0;var kq=O(),Y1=gJ(),rJ=o(),S=sJ(),G1=d(),oJ=B(),Dq="propagation",F1=new Y1.NoopTextMapPropagator;class Iq{constructor(){this.createBaggage=G1.createBaggage,this.getBaggage=S.getBaggage,this.getActiveBaggage=S.getActiveBaggage,this.setBaggage=S.setBaggage,this.deleteBaggage=S.deleteBaggage}static getInstance(){if(!this._instance)this._instance=new Iq;return this._instance}setGlobalPropagator(q){return(0,kq.registerGlobal)(Dq,q,oJ.DiagAPI.instance())}inject(q,z,J=rJ.defaultTextMapSetter){return this._getGlobalPropagator().inject(q,z,J)}extract(q,z,J=rJ.defaultTextMapGetter){return this._getGlobalPropagator().extract(q,z,J)}fields(){return this._getGlobalPropagator().fields()}disable(){(0,kq.unregisterGlobal)(Dq,oJ.DiagAPI.instance())}_getGlobalPropagator(){return(0,kq.getGlobal)(Dq)||F1}}tJ.PropagationAPI=Iq});var JZ=$((qZ)=>{Object.defineProperty(qZ,"__esModule",{value:!0});qZ.propagation=void 0;var w1=eJ();qZ.propagation=w1.PropagationAPI.getInstance()});var HZ=$((WZ)=>{Object.defineProperty(WZ,"__esModule",{value:!0});WZ.TraceAPI=void 0;var Vq=O(),ZZ=Yq(),$Z=M(),j=$q(),QZ=B(),Nq="trace";class bq{constructor(){this._proxyTracerProvider=new ZZ.ProxyTracerProvider,this.wrapSpanContext=$Z.wrapSpanContext,this.isSpanContextValid=$Z.isSpanContextValid,this.deleteSpan=j.deleteSpan,this.getSpan=j.getSpan,this.getActiveSpan=j.getActiveSpan,this.getSpanContext=j.getSpanContext,this.setSpan=j.setSpan,this.setSpanContext=j.setSpanContext}static getInstance(){if(!this._instance)this._instance=new bq;return this._instance}setGlobalTracerProvider(q){let z=(0,Vq.registerGlobal)(Nq,this._proxyTracerProvider,QZ.DiagAPI.instance());if(z)this._proxyTracerProvider.setDelegate(q);return z}getTracerProvider(){return(0,Vq.getGlobal)(Nq)||this._proxyTracerProvider}getTracer(q,z){return this.getTracerProvider().getTracer(q,z)}disable(){(0,Vq.unregisterGlobal)(Nq,QZ.DiagAPI.instance()),this._proxyTracerProvider=new ZZ.ProxyTracerProvider}}WZ.TraceAPI=bq});var FZ=$((YZ)=>{Object.defineProperty(YZ,"__esModule",{value:!0});YZ.trace=void 0;var h1=HZ();YZ.trace=h1.TraceAPI.getInstance()});var E1=$((W)=>{Object.defineProperty(W,"__esModule",{value:!0});W.trace=W.propagation=W.metrics=W.diag=W.context=W.INVALID_SPAN_CONTEXT=W.INVALID_TRACEID=W.INVALID_SPANID=W.isValidSpanId=W.isValidTraceId=W.isSpanContextValid=W.createTraceState=W.TraceFlags=W.SpanStatusCode=W.SpanKind=W.SamplingDecision=W.ProxyTracerProvider=W.ProxyTracer=W.defaultTextMapSetter=W.defaultTextMapGetter=W.ValueType=W.createNoopMeter=W.DiagLogLevel=W.DiagConsoleLogger=W.ROOT_CONTEXT=W.createContextKey=W.baggageEntryMetadataFromString=void 0;var O1=d();Object.defineProperty(W,"baggageEntryMetadataFromString",{enumerable:!0,get:function(){return O1.baggageEntryMetadataFromString}});var wZ=V();Object.defineProperty(W,"createContextKey",{enumerable:!0,get:function(){return wZ.createContextKey}});Object.defineProperty(W,"ROOT_CONTEXT",{enumerable:!0,get:function(){return wZ.ROOT_CONTEXT}});var B1=Xz();Object.defineProperty(W,"DiagConsoleLogger",{enumerable:!0,get:function(){return B1.DiagConsoleLogger}});var K1=C();Object.defineProperty(W,"DiagLogLevel",{enumerable:!0,get:function(){return K1.DiagLogLevel}});var f1=s();Object.defineProperty(W,"createNoopMeter",{enumerable:!0,get:function(){return f1.createNoopMeter}});var U1=jz();Object.defineProperty(W,"ValueType",{enumerable:!0,get:function(){return U1.ValueType}});var hZ=o();Object.defineProperty(W,"defaultTextMapGetter",{enumerable:!0,get:function(){return hZ.defaultTextMapGetter}});Object.defineProperty(W,"defaultTextMapSetter",{enumerable:!0,get:function(){return hZ.defaultTextMapSetter}});var j1=Hq();Object.defineProperty(W,"ProxyTracer",{enumerable:!0,get:function(){return j1.ProxyTracer}});var k1=Yq();Object.defineProperty(W,"ProxyTracerProvider",{enumerable:!0,get:function(){return k1.ProxyTracerProvider}});var D1=XJ();Object.defineProperty(W,"SamplingDecision",{enumerable:!0,get:function(){return D1.SamplingDecision}});var I1=YJ();Object.defineProperty(W,"SpanKind",{enumerable:!0,get:function(){return I1.SpanKind}});var V1=FJ();Object.defineProperty(W,"SpanStatusCode",{enumerable:!0,get:function(){return V1.SpanStatusCode}});var N1=zq();Object.defineProperty(W,"TraceFlags",{enumerable:!0,get:function(){return N1.TraceFlags}});var b1=NJ();Object.defineProperty(W,"createTraceState",{enumerable:!0,get:function(){return b1.createTraceState}});var Cq=M();Object.defineProperty(W,"isSpanContextValid",{enumerable:!0,get:function(){return Cq.isSpanContextValid}});Object.defineProperty(W,"isValidTraceId",{enumerable:!0,get:function(){return Cq.isValidTraceId}});Object.defineProperty(W,"isValidSpanId",{enumerable:!0,get:function(){return Cq.isValidSpanId}});var Rq=T();Object.defineProperty(W,"INVALID_SPANID",{enumerable:!0,get:function(){return Rq.INVALID_SPANID}});Object.defineProperty(W,"INVALID_TRACEID",{enumerable:!0,get:function(){return Rq.INVALID_TRACEID}});Object.defineProperty(W,"INVALID_SPAN_CONTEXT",{enumerable:!0,get:function(){return Rq.INVALID_SPAN_CONTEXT}});var OZ=RJ();Object.defineProperty(W,"context",{enumerable:!0,get:function(){return OZ.context}});var BZ=TJ();Object.defineProperty(W,"diag",{enumerable:!0,get:function(){return BZ.diag}});var KZ=_J();Object.defineProperty(W,"metrics",{enumerable:!0,get:function(){return KZ.metrics}});var fZ=JZ();Object.defineProperty(W,"propagation",{enumerable:!0,get:function(){return fZ.propagation}});var UZ=FZ();Object.defineProperty(W,"trace",{enumerable:!0,get:function(){return UZ.trace}});W.default={context:OZ.context,diag:BZ.diag,metrics:KZ.metrics,propagation:fZ.propagation,trace:UZ.trace}});
|
|
2
|
+
import{ge as $}from"./index-c7554sg7.js";var v=$((Eq)=>{Object.defineProperty(Eq,"__esModule",{value:!0});Eq.VERSION=void 0;Eq.VERSION="1.9.1"});var Sq=$((Pq)=>{Object.defineProperty(Pq,"__esModule",{value:!0});Pq.isCompatible=Pq._makeCompatibilityCheck=void 0;var jZ=v(),Tq=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;function yq(q){let z=new Set([q]),J=new Set,Z=q.match(Tq);if(!Z)return()=>!1;let Q={major:+Z[1],minor:+Z[2],patch:+Z[3],prerelease:Z[4]};if(Q.prerelease!=null)return function(Y){return Y===q};function X(G){return J.add(G),!1}function H(G){return z.add(G),!0}return function(Y){if(z.has(Y))return!0;if(J.has(Y))return!1;let w=Y.match(Tq);if(!w)return X(Y);let F={major:+w[1],minor:+w[2],patch:+w[3],prerelease:w[4]};if(F.prerelease!=null)return X(Y);if(Q.major!==F.major)return X(Y);if(Q.major===0){if(Q.minor===F.minor&&Q.patch<=F.patch)return H(Y);return X(Y)}if(Q.minor<=F.minor)return H(Y);return X(Y)}}Pq._makeCompatibilityCheck=yq;Pq.isCompatible=yq(jZ.VERSION)});var O=$((vq)=>{Object.defineProperty(vq,"__esModule",{value:!0});vq.unregisterGlobal=vq.getGlobal=vq.registerGlobal=void 0;var K=v(),DZ=Sq(),IZ=K.VERSION.split(".")[0],k=Symbol.for(`opentelemetry.js.api.${IZ}`),D=typeof globalThis==="object"?globalThis:typeof self==="object"?self:typeof window==="object"?window:typeof global==="object"?global:{};function VZ(q,z,J,Z=!1){var Q;let X=D[k]=(Q=D[k])!==null&&Q!==void 0?Q:{version:K.VERSION};if(!Z&&X[q]){let H=Error(`@opentelemetry/api: Attempted duplicate registration of API: ${q}`);return J.error(H.stack||H.message),!1}if(X.version!==K.VERSION){let H=Error(`@opentelemetry/api: Registration of version v${X.version} for ${q} does not match previously registered API v${K.VERSION}`);return J.error(H.stack||H.message),!1}return X[q]=z,J.debug(`@opentelemetry/api: Registered a global for ${q} v${K.VERSION}.`),!0}vq.registerGlobal=VZ;function NZ(q){var z,J;let Z=(z=D[k])===null||z===void 0?void 0:z.version;if(!Z||!(0,DZ.isCompatible)(Z))return;return(J=D[k])===null||J===void 0?void 0:J[q]}vq.getGlobal=NZ;function bZ(q,z){z.debug(`@opentelemetry/api: Unregistering a global for ${q} v${K.VERSION}.`);let J=D[k];if(J)delete J[q]}vq.unregisterGlobal=bZ});var _q=$((dq)=>{Object.defineProperty(dq,"__esModule",{value:!0});dq.DiagComponentLogger=void 0;var EZ=O();class uq{constructor(q){this._namespace=q.namespace||"DiagComponentLogger"}debug(...q){return I("debug",this._namespace,q)}error(...q){return I("error",this._namespace,q)}info(...q){return I("info",this._namespace,q)}warn(...q){return I("warn",this._namespace,q)}verbose(...q){return I("verbose",this._namespace,q)}}dq.DiagComponentLogger=uq;function I(q,z,J){let Z=(0,EZ.getGlobal)("diag");if(!Z)return;return Z[q](z,...J)}});var C=$((xq)=>{Object.defineProperty(xq,"__esModule",{value:!0});xq.DiagLogLevel=void 0;var AZ;(function(q){q[q.NONE=0]="NONE",q[q.ERROR=30]="ERROR",q[q.WARN=50]="WARN",q[q.INFO=60]="INFO",q[q.DEBUG=70]="DEBUG",q[q.VERBOSE=80]="VERBOSE",q[q.ALL=9999]="ALL"})(AZ=xq.DiagLogLevel||(xq.DiagLogLevel={}))});var gq=$((cq)=>{Object.defineProperty(cq,"__esModule",{value:!0});cq.createLogLevelDiagLogger=void 0;var h=C();function TZ(q,z){if(q<h.DiagLogLevel.NONE)q=h.DiagLogLevel.NONE;else if(q>h.DiagLogLevel.ALL)q=h.DiagLogLevel.ALL;z=z||{};function J(Z,Q){let X=z[Z];if(typeof X==="function"&&q>=Q)return X.bind(z);return function(){}}return{error:J("error",h.DiagLogLevel.ERROR),warn:J("warn",h.DiagLogLevel.WARN),info:J("info",h.DiagLogLevel.INFO),debug:J("debug",h.DiagLogLevel.DEBUG),verbose:J("verbose",h.DiagLogLevel.VERBOSE)}}cq.createLogLevelDiagLogger=TZ});var B=$((pq)=>{Object.defineProperty(pq,"__esModule",{value:!0});pq.DiagAPI=void 0;var yZ=_q(),PZ=gq(),iq=C(),R=O(),MZ="diag";class u{static instance(){if(!this._instance)this._instance=new u;return this._instance}constructor(){function q(Z){return function(...Q){let X=(0,R.getGlobal)("diag");if(!X)return;return X[Z](...Q)}}let z=this,J=(Z,Q={logLevel:iq.DiagLogLevel.INFO})=>{var X,H,G;if(Z===z){let F=Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return z.error((X=F.stack)!==null&&X!==void 0?X:F.message),!1}if(typeof Q==="number")Q={logLevel:Q};let Y=(0,R.getGlobal)("diag"),w=(0,PZ.createLogLevelDiagLogger)((H=Q.logLevel)!==null&&H!==void 0?H:iq.DiagLogLevel.INFO,Z);if(Y&&!Q.suppressOverrideMessage){let F=(G=Error().stack)!==null&&G!==void 0?G:"<failed to generate stacktrace>";Y.warn(`Current logger will be overwritten from ${F}`),w.warn(`Current logger will overwrite one already registered from ${F}`)}return(0,R.registerGlobal)("diag",w,z,!0)};z.setLogger=J,z.disable=()=>{(0,R.unregisterGlobal)(MZ,z)},z.createComponentLogger=(Z)=>{return new yZ.DiagComponentLogger(Z)},z.verbose=q("verbose"),z.debug=q("debug"),z.info=q("info"),z.warn=q("warn"),z.error=q("error")}}pq.DiagAPI=u});var oq=$((sq)=>{Object.defineProperty(sq,"__esModule",{value:!0});sq.BaggageImpl=void 0;class f{constructor(q){this._entries=q?new Map(q):new Map}getEntry(q){let z=this._entries.get(q);if(!z)return;return Object.assign({},z)}getAllEntries(){return Array.from(this._entries.entries())}setEntry(q,z){let J=new f(this._entries);return J._entries.set(q,z),J}removeEntry(q){let z=new f(this._entries);return z._entries.delete(q),z}removeEntries(...q){let z=new f(this._entries);for(let J of q)z._entries.delete(J);return z}clear(){return new f}}sq.BaggageImpl=f});var eq=$((tq)=>{Object.defineProperty(tq,"__esModule",{value:!0});tq.baggageEntryMetadataSymbol=void 0;tq.baggageEntryMetadataSymbol=Symbol("BaggageEntryMetadata")});var d=$((qz)=>{Object.defineProperty(qz,"__esModule",{value:!0});qz.baggageEntryMetadataFromString=qz.createBaggage=void 0;var SZ=B(),vZ=oq(),mZ=eq(),uZ=SZ.DiagAPI.instance();function dZ(q={}){return new vZ.BaggageImpl(new Map(Object.entries(q)))}qz.createBaggage=dZ;function LZ(q){if(typeof q!=="string")uZ.error(`Cannot create baggage metadata from unknown type: ${typeof q}`),q="";return{__TYPE__:mZ.baggageEntryMetadataSymbol,toString(){return q}}}qz.baggageEntryMetadataFromString=LZ});var V=$((Jz)=>{Object.defineProperty(Jz,"__esModule",{value:!0});Jz.ROOT_CONTEXT=Jz.createContextKey=void 0;function xZ(q){return Symbol.for(q)}Jz.createContextKey=xZ;class E{constructor(q){let z=this;z._currentContext=q?new Map(q):new Map,z.getValue=(J)=>z._currentContext.get(J),z.setValue=(J,Z)=>{let Q=new E(z._currentContext);return Q._currentContext.set(J,Z),Q},z.deleteValue=(J)=>{let Z=new E(z._currentContext);return Z._currentContext.delete(J),Z}}}Jz.ROOT_CONTEXT=new E});var Xz=$((Qz)=>{Object.defineProperty(Qz,"__esModule",{value:!0});Qz.DiagConsoleLogger=Qz._originalConsoleMethods=void 0;var L=[{n:"error",c:"error"},{n:"warn",c:"warn"},{n:"info",c:"info"},{n:"debug",c:"debug"},{n:"verbose",c:"trace"}];Qz._originalConsoleMethods={};if(typeof console<"u"){let q=["error","warn","info","debug","trace","log"];for(let z of q)if(typeof console[z]==="function")Qz._originalConsoleMethods[z]=console[z]}class $z{constructor(){function q(z){return function(...J){let Z=Qz._originalConsoleMethods[z];if(typeof Z!=="function")Z=Qz._originalConsoleMethods.log;if(typeof Z!=="function"&&console){if(Z=console[z],typeof Z!=="function")Z=console.log}if(typeof Z==="function")return Z.apply(console,J)}}for(let z=0;z<L.length;z++)this[L[z].n]=q(L[z].c)}}Qz.DiagConsoleLogger=$z});var s=$((Hz)=>{Object.defineProperty(Hz,"__esModule",{value:!0});Hz.createNoopMeter=Hz.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=Hz.NOOP_OBSERVABLE_GAUGE_METRIC=Hz.NOOP_OBSERVABLE_COUNTER_METRIC=Hz.NOOP_UP_DOWN_COUNTER_METRIC=Hz.NOOP_HISTOGRAM_METRIC=Hz.NOOP_GAUGE_METRIC=Hz.NOOP_COUNTER_METRIC=Hz.NOOP_METER=Hz.NoopObservableUpDownCounterMetric=Hz.NoopObservableGaugeMetric=Hz.NoopObservableCounterMetric=Hz.NoopObservableMetric=Hz.NoopHistogramMetric=Hz.NoopGaugeMetric=Hz.NoopUpDownCounterMetric=Hz.NoopCounterMetric=Hz.NoopMetric=Hz.NoopMeter=void 0;class _{constructor(){}createGauge(q,z){return Hz.NOOP_GAUGE_METRIC}createHistogram(q,z){return Hz.NOOP_HISTOGRAM_METRIC}createCounter(q,z){return Hz.NOOP_COUNTER_METRIC}createUpDownCounter(q,z){return Hz.NOOP_UP_DOWN_COUNTER_METRIC}createObservableGauge(q,z){return Hz.NOOP_OBSERVABLE_GAUGE_METRIC}createObservableCounter(q,z){return Hz.NOOP_OBSERVABLE_COUNTER_METRIC}createObservableUpDownCounter(q,z){return Hz.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC}addBatchObservableCallback(q,z){}removeBatchObservableCallback(q){}}Hz.NoopMeter=_;class U{}Hz.NoopMetric=U;class x extends U{add(q,z){}}Hz.NoopCounterMetric=x;class c extends U{add(q,z){}}Hz.NoopUpDownCounterMetric=c;class l extends U{record(q,z){}}Hz.NoopGaugeMetric=l;class g extends U{record(q,z){}}Hz.NoopHistogramMetric=g;class N{addCallback(q){}removeCallback(q){}}Hz.NoopObservableMetric=N;class i extends N{}Hz.NoopObservableCounterMetric=i;class p extends N{}Hz.NoopObservableGaugeMetric=p;class n extends N{}Hz.NoopObservableUpDownCounterMetric=n;Hz.NOOP_METER=new _;Hz.NOOP_COUNTER_METRIC=new x;Hz.NOOP_GAUGE_METRIC=new l;Hz.NOOP_HISTOGRAM_METRIC=new g;Hz.NOOP_UP_DOWN_COUNTER_METRIC=new c;Hz.NOOP_OBSERVABLE_COUNTER_METRIC=new i;Hz.NOOP_OBSERVABLE_GAUGE_METRIC=new p;Hz.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=new n;function lZ(){return Hz.NOOP_METER}Hz.createNoopMeter=lZ});var jz=$((Uz)=>{Object.defineProperty(Uz,"__esModule",{value:!0});Uz.ValueType=void 0;var q0;(function(q){q[q.INT=0]="INT",q[q.DOUBLE=1]="DOUBLE"})(q0=Uz.ValueType||(Uz.ValueType={}))});var o=$((kz)=>{Object.defineProperty(kz,"__esModule",{value:!0});kz.defaultTextMapSetter=kz.defaultTextMapGetter=void 0;kz.defaultTextMapGetter={get(q,z){if(q==null)return;return q[z]},keys(q){if(q==null)return[];return Object.keys(q)}};kz.defaultTextMapSetter={set(q,z,J){if(q==null)return;q[z]=J}}});var bz=$((Vz)=>{Object.defineProperty(Vz,"__esModule",{value:!0});Vz.NoopContextManager=void 0;var J0=V();class Iz{active(){return J0.ROOT_CONTEXT}with(q,z,J,...Z){return z.call(J,...Z)}bind(q,z){return z}enable(){return this}disable(){return this}}Vz.NoopContextManager=Iz});var b=$((Rz)=>{Object.defineProperty(Rz,"__esModule",{value:!0});Rz.ContextAPI=void 0;var Z0=bz(),t=O(),Cz=B(),a="context",$0=new Z0.NoopContextManager;class e{constructor(){}static getInstance(){if(!this._instance)this._instance=new e;return this._instance}setGlobalContextManager(q){return(0,t.registerGlobal)(a,q,Cz.DiagAPI.instance())}active(){return this._getContextManager().active()}with(q,z,J,...Z){return this._getContextManager().with(q,z,J,...Z)}bind(q,z){return this._getContextManager().bind(q,z)}_getContextManager(){return(0,t.getGlobal)(a)||$0}disable(){this._getContextManager().disable(),(0,t.unregisterGlobal)(a,Cz.DiagAPI.instance())}}Rz.ContextAPI=e});var zq=$((Az)=>{Object.defineProperty(Az,"__esModule",{value:!0});Az.TraceFlags=void 0;var Q0;(function(q){q[q.NONE=0]="NONE",q[q.SAMPLED=1]="SAMPLED"})(Q0=Az.TraceFlags||(Az.TraceFlags={}))});var T=$((Tz)=>{Object.defineProperty(Tz,"__esModule",{value:!0});Tz.INVALID_SPAN_CONTEXT=Tz.INVALID_TRACEID=Tz.INVALID_SPANID=void 0;var W0=zq();Tz.INVALID_SPANID="0000000000000000";Tz.INVALID_TRACEID="00000000000000000000000000000000";Tz.INVALID_SPAN_CONTEXT={traceId:Tz.INVALID_TRACEID,spanId:Tz.INVALID_SPANID,traceFlags:W0.TraceFlags.NONE}});var y=$((vz)=>{Object.defineProperty(vz,"__esModule",{value:!0});vz.NonRecordingSpan=void 0;var X0=T();class Sz{constructor(q=X0.INVALID_SPAN_CONTEXT){this._spanContext=q}spanContext(){return this._spanContext}setAttribute(q,z){return this}setAttributes(q){return this}addEvent(q,z){return this}addLink(q){return this}addLinks(q){return this}setStatus(q){return this}updateName(q){return this}end(q){}isRecording(){return!1}recordException(q,z){}}vz.NonRecordingSpan=Sz});var $q=$((dz)=>{Object.defineProperty(dz,"__esModule",{value:!0});dz.getSpanContext=dz.setSpanContext=dz.deleteSpan=dz.setSpan=dz.getActiveSpan=dz.getSpan=void 0;var H0=V(),Y0=y(),G0=b(),Jq=(0,H0.createContextKey)("OpenTelemetry Context Key SPAN");function Zq(q){return q.getValue(Jq)||void 0}dz.getSpan=Zq;function F0(){return Zq(G0.ContextAPI.getInstance().active())}dz.getActiveSpan=F0;function uz(q,z){return q.setValue(Jq,z)}dz.setSpan=uz;function w0(q){return q.deleteValue(Jq)}dz.deleteSpan=w0;function h0(q,z){return uz(q,new Y0.NonRecordingSpan(z))}dz.setSpanContext=h0;function O0(q){var z;return(z=Zq(q))===null||z===void 0?void 0:z.spanContext()}dz.getSpanContext=O0});var M=$((gz)=>{Object.defineProperty(gz,"__esModule",{value:!0});gz.wrapSpanContext=gz.isSpanContextValid=gz.isValidSpanId=gz.isValidTraceId=void 0;var _z=T(),k0=y(),P=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1]);function xz(q,z){if(typeof q!=="string"||q.length!==z)return!1;let J=0;for(let Z=0;Z<q.length;Z+=4)J+=(P[q.charCodeAt(Z)]|0)+(P[q.charCodeAt(Z+1)]|0)+(P[q.charCodeAt(Z+2)]|0)+(P[q.charCodeAt(Z+3)]|0);return J===z}function cz(q){return xz(q,32)&&q!==_z.INVALID_TRACEID}gz.isValidTraceId=cz;function lz(q){return xz(q,16)&&q!==_z.INVALID_SPANID}gz.isValidSpanId=lz;function D0(q){return cz(q.traceId)&&lz(q.spanId)}gz.isSpanContextValid=D0;function I0(q){return new k0.NonRecordingSpan(q)}gz.wrapSpanContext=I0});var Xq=$((sz)=>{Object.defineProperty(sz,"__esModule",{value:!0});sz.NoopTracer=void 0;var C0=b(),pz=$q(),Qq=y(),R0=M(),Wq=C0.ContextAPI.getInstance();class nz{startSpan(q,z,J=Wq.active()){if(Boolean(z===null||z===void 0?void 0:z.root))return new Qq.NonRecordingSpan;let Q=J&&(0,pz.getSpanContext)(J);if(E0(Q)&&(0,R0.isSpanContextValid)(Q))return new Qq.NonRecordingSpan(Q);else return new Qq.NonRecordingSpan}startActiveSpan(q,z,J,Z){let Q,X,H;if(arguments.length<2)return;else if(arguments.length===2)H=z;else if(arguments.length===3)Q=z,H=J;else Q=z,X=J,H=Z;let G=X!==null&&X!==void 0?X:Wq.active(),Y=this.startSpan(q,Q,G),w=(0,pz.setSpan)(G,Y);return Wq.with(w,H,void 0,Y)}}sz.NoopTracer=nz;function E0(q){return q!==null&&typeof q==="object"&&"spanId"in q&&typeof q.spanId==="string"&&"traceId"in q&&typeof q.traceId==="string"&&"traceFlags"in q&&typeof q.traceFlags==="number"}});var Hq=$((tz)=>{Object.defineProperty(tz,"__esModule",{value:!0});tz.ProxyTracer=void 0;var A0=Xq(),T0=new A0.NoopTracer;class oz{constructor(q,z,J,Z){this._provider=q,this.name=z,this.version=J,this.options=Z}startSpan(q,z,J){return this._getTracer().startSpan(q,z,J)}startActiveSpan(q,z,J,Z){let Q=this._getTracer();return Reflect.apply(Q.startActiveSpan,Q,arguments)}_getTracer(){if(this._delegate)return this._delegate;let q=this._provider.getDelegateTracer(this.name,this.version,this.options);if(!q)return T0;return this._delegate=q,this._delegate}}tz.ProxyTracer=oz});var JJ=$((qJ)=>{Object.defineProperty(qJ,"__esModule",{value:!0});qJ.NoopTracerProvider=void 0;var y0=Xq();class ez{getTracer(q,z,J){return new y0.NoopTracer}}qJ.NoopTracerProvider=ez});var Yq=$(($J)=>{Object.defineProperty($J,"__esModule",{value:!0});$J.ProxyTracerProvider=void 0;var P0=Hq(),M0=JJ(),S0=new M0.NoopTracerProvider;class ZJ{getTracer(q,z,J){var Z;return(Z=this.getDelegateTracer(q,z,J))!==null&&Z!==void 0?Z:new P0.ProxyTracer(this,q,z,J)}getDelegate(){var q;return(q=this._delegate)!==null&&q!==void 0?q:S0}setDelegate(q){this._delegate=q}getDelegateTracer(q,z,J){var Z;return(Z=this._delegate)===null||Z===void 0?void 0:Z.getTracer(q,z,J)}}$J.ProxyTracerProvider=ZJ});var XJ=$((WJ)=>{Object.defineProperty(WJ,"__esModule",{value:!0});WJ.SamplingDecision=void 0;var v0;(function(q){q[q.NOT_RECORD=0]="NOT_RECORD",q[q.RECORD=1]="RECORD",q[q.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"})(v0=WJ.SamplingDecision||(WJ.SamplingDecision={}))});var YJ=$((HJ)=>{Object.defineProperty(HJ,"__esModule",{value:!0});HJ.SpanKind=void 0;var m0;(function(q){q[q.INTERNAL=0]="INTERNAL",q[q.SERVER=1]="SERVER",q[q.CLIENT=2]="CLIENT",q[q.PRODUCER=3]="PRODUCER",q[q.CONSUMER=4]="CONSUMER"})(m0=HJ.SpanKind||(HJ.SpanKind={}))});var FJ=$((GJ)=>{Object.defineProperty(GJ,"__esModule",{value:!0});GJ.SpanStatusCode=void 0;var u0;(function(q){q[q.UNSET=0]="UNSET",q[q.OK=1]="OK",q[q.ERROR=2]="ERROR"})(u0=GJ.SpanStatusCode||(GJ.SpanStatusCode={}))});var OJ=$((wJ)=>{Object.defineProperty(wJ,"__esModule",{value:!0});wJ.validateValue=wJ.validateKey=void 0;var hq="[_0-9a-z-*/]",d0=`[a-z]${hq}{0,255}`,L0=`[a-z0-9]${hq}{0,240}@[a-z]${hq}{0,13}`,_0=new RegExp(`^(?:${d0}|${L0})$`),x0=/^[ -~]{0,255}[!-~]$/,c0=/,|=/;function l0(q){return _0.test(q)}wJ.validateKey=l0;function g0(q){return x0.test(q)&&!c0.test(q)}wJ.validateValue=g0});var DJ=$((jJ)=>{Object.defineProperty(jJ,"__esModule",{value:!0});jJ.TraceStateImpl=void 0;var BJ=OJ(),KJ=32,p0=512,fJ=",",UJ="=";class Oq{constructor(q){if(this._internalState=new Map,q)this._parse(q)}set(q,z){let J=this._clone();if(J._internalState.has(q))J._internalState.delete(q);return J._internalState.set(q,z),J}unset(q){let z=this._clone();return z._internalState.delete(q),z}get(q){return this._internalState.get(q)}serialize(){return Array.from(this._internalState.keys()).reduceRight((q,z)=>{return q.push(z+UJ+this.get(z)),q},[]).join(fJ)}_parse(q){if(q.length>p0)return;if(this._internalState=q.split(fJ).reduceRight((z,J)=>{let Z=J.trim(),Q=Z.indexOf(UJ);if(Q!==-1){let X=Z.slice(0,Q),H=Z.slice(Q+1,J.length);if((0,BJ.validateKey)(X)&&(0,BJ.validateValue)(H))z.set(X,H)}return z},new Map),this._internalState.size>KJ)this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,KJ))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let q=new Oq;return q._internalState=new Map(this._internalState),q}}jJ.TraceStateImpl=Oq});var NJ=$((IJ)=>{Object.defineProperty(IJ,"__esModule",{value:!0});IJ.createTraceState=void 0;var n0=DJ();function s0(q){return new n0.TraceStateImpl(q)}IJ.createTraceState=s0});var RJ=$((bJ)=>{Object.defineProperty(bJ,"__esModule",{value:!0});bJ.context=void 0;var r0=b();bJ.context=r0.ContextAPI.getInstance()});var TJ=$((EJ)=>{Object.defineProperty(EJ,"__esModule",{value:!0});EJ.diag=void 0;var o0=B();EJ.diag=o0.DiagAPI.instance()});var MJ=$((yJ)=>{Object.defineProperty(yJ,"__esModule",{value:!0});yJ.NOOP_METER_PROVIDER=yJ.NoopMeterProvider=void 0;var t0=s();class Bq{getMeter(q,z,J){return t0.NOOP_METER}}yJ.NoopMeterProvider=Bq;yJ.NOOP_METER_PROVIDER=new Bq});var uJ=$((vJ)=>{Object.defineProperty(vJ,"__esModule",{value:!0});vJ.MetricsAPI=void 0;var e0=MJ(),Kq=O(),SJ=B(),fq="metrics";class Uq{constructor(){}static getInstance(){if(!this._instance)this._instance=new Uq;return this._instance}setGlobalMeterProvider(q){return(0,Kq.registerGlobal)(fq,q,SJ.DiagAPI.instance())}getMeterProvider(){return(0,Kq.getGlobal)(fq)||e0.NOOP_METER_PROVIDER}getMeter(q,z,J){return this.getMeterProvider().getMeter(q,z,J)}disable(){(0,Kq.unregisterGlobal)(fq,SJ.DiagAPI.instance())}}vJ.MetricsAPI=Uq});var _J=$((dJ)=>{Object.defineProperty(dJ,"__esModule",{value:!0});dJ.metrics=void 0;var q1=uJ();dJ.metrics=q1.MetricsAPI.getInstance()});var gJ=$((cJ)=>{Object.defineProperty(cJ,"__esModule",{value:!0});cJ.NoopTextMapPropagator=void 0;class xJ{inject(q,z){}extract(q,z){return q}fields(){return[]}}cJ.NoopTextMapPropagator=xJ});var sJ=$((pJ)=>{Object.defineProperty(pJ,"__esModule",{value:!0});pJ.deleteBaggage=pJ.setBaggage=pJ.getActiveBaggage=pJ.getBaggage=void 0;var z1=b(),J1=V(),jq=(0,J1.createContextKey)("OpenTelemetry Baggage Key");function iJ(q){return q.getValue(jq)||void 0}pJ.getBaggage=iJ;function Z1(){return iJ(z1.ContextAPI.getInstance().active())}pJ.getActiveBaggage=Z1;function $1(q,z){return q.setValue(jq,z)}pJ.setBaggage=$1;function Q1(q){return q.deleteValue(jq)}pJ.deleteBaggage=Q1});var eJ=$((tJ)=>{Object.defineProperty(tJ,"__esModule",{value:!0});tJ.PropagationAPI=void 0;var kq=O(),Y1=gJ(),rJ=o(),S=sJ(),G1=d(),oJ=B(),Dq="propagation",F1=new Y1.NoopTextMapPropagator;class Iq{constructor(){this.createBaggage=G1.createBaggage,this.getBaggage=S.getBaggage,this.getActiveBaggage=S.getActiveBaggage,this.setBaggage=S.setBaggage,this.deleteBaggage=S.deleteBaggage}static getInstance(){if(!this._instance)this._instance=new Iq;return this._instance}setGlobalPropagator(q){return(0,kq.registerGlobal)(Dq,q,oJ.DiagAPI.instance())}inject(q,z,J=rJ.defaultTextMapSetter){return this._getGlobalPropagator().inject(q,z,J)}extract(q,z,J=rJ.defaultTextMapGetter){return this._getGlobalPropagator().extract(q,z,J)}fields(){return this._getGlobalPropagator().fields()}disable(){(0,kq.unregisterGlobal)(Dq,oJ.DiagAPI.instance())}_getGlobalPropagator(){return(0,kq.getGlobal)(Dq)||F1}}tJ.PropagationAPI=Iq});var JZ=$((qZ)=>{Object.defineProperty(qZ,"__esModule",{value:!0});qZ.propagation=void 0;var w1=eJ();qZ.propagation=w1.PropagationAPI.getInstance()});var HZ=$((WZ)=>{Object.defineProperty(WZ,"__esModule",{value:!0});WZ.TraceAPI=void 0;var Vq=O(),ZZ=Yq(),$Z=M(),j=$q(),QZ=B(),Nq="trace";class bq{constructor(){this._proxyTracerProvider=new ZZ.ProxyTracerProvider,this.wrapSpanContext=$Z.wrapSpanContext,this.isSpanContextValid=$Z.isSpanContextValid,this.deleteSpan=j.deleteSpan,this.getSpan=j.getSpan,this.getActiveSpan=j.getActiveSpan,this.getSpanContext=j.getSpanContext,this.setSpan=j.setSpan,this.setSpanContext=j.setSpanContext}static getInstance(){if(!this._instance)this._instance=new bq;return this._instance}setGlobalTracerProvider(q){let z=(0,Vq.registerGlobal)(Nq,this._proxyTracerProvider,QZ.DiagAPI.instance());if(z)this._proxyTracerProvider.setDelegate(q);return z}getTracerProvider(){return(0,Vq.getGlobal)(Nq)||this._proxyTracerProvider}getTracer(q,z){return this.getTracerProvider().getTracer(q,z)}disable(){(0,Vq.unregisterGlobal)(Nq,QZ.DiagAPI.instance()),this._proxyTracerProvider=new ZZ.ProxyTracerProvider}}WZ.TraceAPI=bq});var FZ=$((YZ)=>{Object.defineProperty(YZ,"__esModule",{value:!0});YZ.trace=void 0;var h1=HZ();YZ.trace=h1.TraceAPI.getInstance()});var E1=$((W)=>{Object.defineProperty(W,"__esModule",{value:!0});W.trace=W.propagation=W.metrics=W.diag=W.context=W.INVALID_SPAN_CONTEXT=W.INVALID_TRACEID=W.INVALID_SPANID=W.isValidSpanId=W.isValidTraceId=W.isSpanContextValid=W.createTraceState=W.TraceFlags=W.SpanStatusCode=W.SpanKind=W.SamplingDecision=W.ProxyTracerProvider=W.ProxyTracer=W.defaultTextMapSetter=W.defaultTextMapGetter=W.ValueType=W.createNoopMeter=W.DiagLogLevel=W.DiagConsoleLogger=W.ROOT_CONTEXT=W.createContextKey=W.baggageEntryMetadataFromString=void 0;var O1=d();Object.defineProperty(W,"baggageEntryMetadataFromString",{enumerable:!0,get:function(){return O1.baggageEntryMetadataFromString}});var wZ=V();Object.defineProperty(W,"createContextKey",{enumerable:!0,get:function(){return wZ.createContextKey}});Object.defineProperty(W,"ROOT_CONTEXT",{enumerable:!0,get:function(){return wZ.ROOT_CONTEXT}});var B1=Xz();Object.defineProperty(W,"DiagConsoleLogger",{enumerable:!0,get:function(){return B1.DiagConsoleLogger}});var K1=C();Object.defineProperty(W,"DiagLogLevel",{enumerable:!0,get:function(){return K1.DiagLogLevel}});var f1=s();Object.defineProperty(W,"createNoopMeter",{enumerable:!0,get:function(){return f1.createNoopMeter}});var U1=jz();Object.defineProperty(W,"ValueType",{enumerable:!0,get:function(){return U1.ValueType}});var hZ=o();Object.defineProperty(W,"defaultTextMapGetter",{enumerable:!0,get:function(){return hZ.defaultTextMapGetter}});Object.defineProperty(W,"defaultTextMapSetter",{enumerable:!0,get:function(){return hZ.defaultTextMapSetter}});var j1=Hq();Object.defineProperty(W,"ProxyTracer",{enumerable:!0,get:function(){return j1.ProxyTracer}});var k1=Yq();Object.defineProperty(W,"ProxyTracerProvider",{enumerable:!0,get:function(){return k1.ProxyTracerProvider}});var D1=XJ();Object.defineProperty(W,"SamplingDecision",{enumerable:!0,get:function(){return D1.SamplingDecision}});var I1=YJ();Object.defineProperty(W,"SpanKind",{enumerable:!0,get:function(){return I1.SpanKind}});var V1=FJ();Object.defineProperty(W,"SpanStatusCode",{enumerable:!0,get:function(){return V1.SpanStatusCode}});var N1=zq();Object.defineProperty(W,"TraceFlags",{enumerable:!0,get:function(){return N1.TraceFlags}});var b1=NJ();Object.defineProperty(W,"createTraceState",{enumerable:!0,get:function(){return b1.createTraceState}});var Cq=M();Object.defineProperty(W,"isSpanContextValid",{enumerable:!0,get:function(){return Cq.isSpanContextValid}});Object.defineProperty(W,"isValidTraceId",{enumerable:!0,get:function(){return Cq.isValidTraceId}});Object.defineProperty(W,"isValidSpanId",{enumerable:!0,get:function(){return Cq.isValidSpanId}});var Rq=T();Object.defineProperty(W,"INVALID_SPANID",{enumerable:!0,get:function(){return Rq.INVALID_SPANID}});Object.defineProperty(W,"INVALID_TRACEID",{enumerable:!0,get:function(){return Rq.INVALID_TRACEID}});Object.defineProperty(W,"INVALID_SPAN_CONTEXT",{enumerable:!0,get:function(){return Rq.INVALID_SPAN_CONTEXT}});var OZ=RJ();Object.defineProperty(W,"context",{enumerable:!0,get:function(){return OZ.context}});var BZ=TJ();Object.defineProperty(W,"diag",{enumerable:!0,get:function(){return BZ.diag}});var KZ=_J();Object.defineProperty(W,"metrics",{enumerable:!0,get:function(){return KZ.metrics}});var fZ=JZ();Object.defineProperty(W,"propagation",{enumerable:!0,get:function(){return fZ.propagation}});var UZ=FZ();Object.defineProperty(W,"trace",{enumerable:!0,get:function(){return UZ.trace}});W.default={context:OZ.context,diag:BZ.diag,metrics:KZ.metrics,propagation:fZ.propagation,trace:UZ.trace}});
|
|
3
3
|
export{E1 as g};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Da as D}from"./index-
|
|
2
|
+
import{Da as D}from"./index-s2xpdnsj.js";import{Xa as V}from"./index-0ckffygp.js";import{$d as A,Sd as _,Td as w,Ud as x,Vd as N,Wd as j,Zd as X,ce as I}from"./index-a4854mwz.js";import{ie as S}from"./index-c7554sg7.js";import{existsSync as $,readdirSync as v,readFileSync as O,writeFileSync as M,mkdirSync as E,openSync as T,closeSync as b,unlinkSync as R}from"fs";import{join as Q}from"path";import{tmpdir as F}from"os";import{spawn as h}from"child_process";class P{registryPath;logsDir;productDir;constructor(){let q=I();this.productDir=q,this.registryPath=Q(q,"agents.json");let z=A();this.logsDir=Q(z,"logs"),E(q,{recursive:!0}),E(z,{recursive:!0}),E(this.logsDir,{recursive:!0})}async startDaemon(q){return X(q.name),this.withInstanceLock(q.name,async()=>{let z=await this.findProcessByName(q.name);if(z&&z.status==="running"){let U=z.version,W=D();if(U===W){console.log(`\u26A0\uFE0F Agent '${q.name}' is already running on port ${z.port}`);return}console.log(`\uD83D\uDD04 Agent '${q.name}' is running an older build (${U??"unknown"} \u2192 ${W}) \u2014 restarting to apply the update`);try{await this.stopInternal(q.name)}catch(Z){console.log(`\u26A0\uFE0F Could not cleanly stop the stale daemon (${Z instanceof Error?Z.message:String(Z)}); proceeding to start the new build`)}}let B=Q(this.logsDir,`${q.name}.log`),C=T(B,"a"),H=Q(import.meta.dir,"index.js"),G=Q(import.meta.dir,"..","index.ts"),L=$(H)?H:G,K=h(process.execPath,["run",L],{detached:!0,windowsHide:!0,stdio:["ignore",C,C],env:{...process.env,VIBECONTROLS_PROFILE:q.profile||"default",PORT:q.port.toString(),DB_PATH:q.dbPath,NODE_ENV:"production",AGENT_LOG_FILE:B}});K.on("error",()=>{}),b(C),await new Promise((U)=>setTimeout(U,2000));let J=K.pid;if(!(J!==void 0&&await this.isProcessRunning(J))){let U="";try{U=O(B,"utf8").split(/\r?\n/).filter((k)=>k.trim()).slice(-25).join(`
|
|
3
3
|
`)}catch{}let W=`See ${B}`;throw Error(U?`Failed to start agent '${q.name}'. ${W}
|
|
4
4
|
--- last log lines ---
|
|
5
5
|
${U}`:`Failed to start agent '${q.name}'. ${W}`)}K.unref(),await this.saveProcessInfo(q.name,J,q),console.log(`\uD83D\uDE80 Agent '${q.name}' started (PID: ${J}, Port: ${q.port})`)})}async stop(q){return X(q),this.withInstanceLock(q,()=>this.stopInternal(q))}async stopInternal(q){let z=await this.findProcessByName(q);if(!z||z.status!=="running"){console.log(`\u26A0\uFE0F Agent '${q}' is not running`);return}try{if(process.kill(z.pid,"SIGTERM"),await new Promise((C)=>setTimeout(C,3000)),await this.isProcessRunning(z.pid))process.kill(z.pid,"SIGKILL");await this.updateProcessStatus(q,"stopped"),console.log(`\u2705 Agent '${q}' stopped (tunnel + API key preserved)`)}catch(B){throw Error(`Failed to stop agent '${q}': ${B}`,{cause:B})}}async restart(q,z){X(q),X(z.name);let B=await this.findProcessByName(q);if(B&&B.status==="running")await this.stop(q);await this.startDaemon(z),console.log(`\uD83D\uDD04 Agent '${q}' restarted (tunnel + API key preserved)`)}async kill(q){return X(q),this.withInstanceLock(q,async()=>{let z=await this.findProcessByName(q);if(!z||z.status!=="running"){console.log(`\u26A0\uFE0F Agent '${q}' is not running`);return}let B=Q(F(),`.boff-vibecontrols-kill-${z.pid}`);try{await Bun.write(B,"kill")}catch{}try{process.kill(z.pid,"SIGTERM"),await new Promise((H)=>setTimeout(H,5000))}catch{}if(await this.isProcessRunning(z.pid))await this.killProcessTree(z.pid);await this.updateProcessStatus(q,"stopped"),console.log(`\uD83D\uDC80 Agent '${q}' killed (tunnel + state torn down)`)})}async getStatus(q){return X(q),this.findProcessByName(q)}discoverRuntimeInstances(){let q=Q(this.productDir,"agents");if(!$(q))return[];let z;try{z=v(q,{withFileTypes:!0}).filter((C)=>C.isDirectory()).map((C)=>C.name)}catch{return[]}let B=[];for(let C of z){let H=Q(q,C,"runtime.json");if(!$(H))continue;try{let G=JSON.parse(O(H,"utf8"));if(typeof G.pid!=="number"||typeof G.port!=="number")continue;let L=G.profile||C;try{X(L)}catch{continue}B.push({name:L,pid:G.pid,port:G.port,config:{name:L,port:G.port,daemon:!0,dbPath:Q(q,C,"agent-db"),host:G.host,profile:L},startTime:G.startedAt??new Date(0).toISOString(),status:"unknown",version:G.version})}catch{}}return B}async getStatusAll(){let q=this.loadRegistry(),z=new Set(q.map((G)=>G.name)),B=[...q];for(let G of this.discoverRuntimeInstances())if(!z.has(G.name))B.push(G);let C=[];for(let G of B){let L=await this.isManagedProcessRunning(G);if(!z.has(G.name)&&!L)continue;C.push({...G,status:L?"running":"stopped"})}let H=C.filter((G)=>G.status==="running"&&!z.has(G.name));if(H.length>0)try{await _(()=>{let G=this.loadRegistry(),L=new Set(G.map((J)=>J.name)),K=H.filter((J)=>!L.has(J.name));if(K.length>0)this.saveRegistry([...G,...K.map((J)=>({...J,status:"running"}))])})}catch{}return C}async listInstances(){return this.getStatusAll()}getDefaultProfile(){return N()}setDefaultProfile(q){j(X(q))}async showLogs(q,z){X(q);let B=Q(this.logsDir,`${q}.log`);if(!$(B)){console.log(`No logs found for agent '${q}'`);return}if(z.follow)try{let C=async(J)=>{let Y=await Bun.file(B).text(),W=Y.split(`
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{
|
|
2
|
+
import{Vb as U}from"./index-pgew6sge.js";import"./index-8nqp3a4d.js";import{oc as i,qc as w,rc as C,uc as b,vc as v,xc as G,zc as J}from"./index-1mppacnx.js";import"./index-thammzct.js";import{Lc as y,Mc as M,Nc as h,Oc as T}from"./index-b6x6a4xp.js";import"./index-h74va4wd.js";import{Od as $}from"./index-js1xn4sq.js";import"./index-a4854mwz.js";import"./index-4qq083yd.js";import"./index-c7554sg7.js";var x={debug:0,info:1,warn:2,error:3};function j(o){if(!o)return;return o==="debug"||o==="info"||o==="warn"||o==="error"?o:void 0}function A(o,n,e,t){if(!o)return n;let r=parseInt(o,10);if(!Number.isInteger(r))return n;return Math.min(t,Math.max(e,r))}function L(o){return new U().get("/",async({query:n,set:e})=>{let t=n,r=j(t.level);if(t.level&&!r)return e.status=400,{error:"Invalid log level"};let m=await $().logger.readHistory({level:r,source:t.source,from:t.from,to:t.to,limit:A(t.limit,200,1,1000),offset:A(t.offset,0,0,1e5)});return{entries:m,count:m.length}}).get("/stream",({query:n,set:e})=>{let t=n,r=j(t.level);if(t.level&&!r)return e.status=400,{error:"Invalid log level"};let m=r??"info",a=t.source??"";return e.headers["Content-Type"]="text/event-stream",e.headers["Cache-Control"]="no-cache",e.headers.Connection="keep-alive",e.headers["X-Accel-Buffering"]="no",new ReadableStream({start(u){let c=new TextEncoder;u.enqueue(c.encode(`: connected
|
|
3
3
|
|
|
4
4
|
`));let s=(g)=>{if(x[g.level]<x[m])return;if(a&&!g.source.includes(a))return;try{u.enqueue(c.encode(`event: log
|
|
5
5
|
data: ${JSON.stringify(g)}
|