@vibecontrols/vibe-plugin-tunnel 2026.428.3 → 2026.429.2

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.
@@ -5,4 +5,3 @@
5
5
  */
6
6
  import type { HostServices } from "./types.js";
7
7
  export declare function registerTunnelCommands(program: any, _hostServices: HostServices): void;
8
- //# sourceMappingURL=commands.d.ts.map
package/dist/index.d.ts CHANGED
@@ -3,4 +3,3 @@ export declare const vibePlugin: VibePlugin;
3
3
  export default vibePlugin;
4
4
  export { TunnelManager } from "./manager.js";
5
5
  export type * from "./types.js";
6
- //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -1,33 +1,2 @@
1
- /**
2
- * @vibecontrols/vibe-plugin-tunnel
3
- *
4
- * Tunnel manager / facade plugin. Owns /api/tunnels/* on the agent and
5
- * dispatches to concrete providers registered in the service registry
6
- * under type "tunnel" (e.g. tunnel-vibetunnels, tunnel-cloudflare).
7
- *
8
- * This plugin does NOT export providers.tunnel — it is not itself a
9
- * provider. It delegates to whichever provider the caller chooses, or
10
- * to the default configured via `vibe tunnel providers set-default`.
11
- */
12
- import { registerTunnelCommands } from "./commands.js";
13
- import { TunnelManager } from "./manager.js";
14
- import { createTunnelManagerRoutes } from "./routes.js";
15
- const manager = new TunnelManager();
16
- export const vibePlugin = {
17
- name: "tunnel",
18
- version: "0.1.0",
19
- description: "VibeTunnels manager — dispatches to registered tunnel providers",
20
- tags: ["backend", "cli", "integration"],
21
- cliCommand: "tunnel",
22
- apiPrefix: "/api/tunnels",
23
- createRoutes: () => createTunnelManagerRoutes(manager),
24
- onServerStart: (_app, hostServices) => {
25
- manager.init(hostServices);
26
- },
27
- onCliSetup: (program, hostServices) => {
28
- registerTunnelCommands(program, hostServices);
29
- },
30
- };
31
- export default vibePlugin;
32
- export { TunnelManager } from "./manager.js";
33
- //# sourceMappingURL=index.js.map
1
+ // @bun
2
+ var __require=import.meta.require;function agentBaseUrl(){return process.env.AGENT_BASE_URL??"http://localhost:3005"}function authHeaders(){let fromEnv=process.env.AGENT_API_KEY??process.env.X_AGENT_API_KEY;if(fromEnv)return{"x-agent-api-key":fromEnv};try{let{readFileSync,existsSync}=__require("fs"),{join,resolve}=__require("path"),dir=process.env.VIBECONTROLS_HOME??join(process.cwd(),".boff","vibecontrols"),configPath=join(resolve(dir),"agents",process.env.VIBECONTROLS_AGENT_ID??"default","config.json");if(existsSync(configPath)){let cfg=JSON.parse(readFileSync(configPath,"utf-8"));if(cfg["static-api-key"])return{"x-agent-api-key":cfg["static-api-key"]}}}catch{}return{}}async function apiGet(path){let res=await fetch(`${agentBaseUrl()}/api/tunnels${path}`,{headers:authHeaders()});if(!res.ok){let text=await res.text().catch(()=>"");throw Error(`GET ${path} failed (${res.status}): ${text}`)}return await res.json()}async function apiPost(path,body){let res=await fetch(`${agentBaseUrl()}/api/tunnels${path}`,{method:"POST",headers:{"Content-Type":"application/json",...authHeaders()},body:body?JSON.stringify(body):void 0});if(!res.ok){let text=await res.text().catch(()=>"");throw Error(`POST ${path} failed (${res.status}): ${text}`)}return await res.json()}async function apiDelete(path){let res=await fetch(`${agentBaseUrl()}/api/tunnels${path}`,{method:"DELETE",headers:authHeaders()});if(!res.ok){let text=await res.text().catch(()=>"");throw Error(`DELETE ${path} failed (${res.status}): ${text}`)}return await res.json()}function registerTunnelCommands(program,_hostServices){let cmd=program.command("tunnel").description("Manage tunnels across providers");cmd.command("list").description("List tunnels (optionally filtered by provider)").option("--provider <name>","Limit to a specific provider").action(async(opts)=>{let qs=opts.provider?`?provider=${encodeURIComponent(opts.provider)}`:"",result=await apiGet(`/${qs}`);if(result.tunnels.length===0){console.log("No tunnels.");return}for(let t of result.tunnels)console.log(`${t.id} ${t.providerName} ${t.status} ${t.url} ${t.protocol}:${t.localPort}`)}),cmd.command("get <tunnelId>").description("Get tunnel status").option("--provider <name>").action(async(tunnelId,opts)=>{let qs=opts.provider?`?provider=${encodeURIComponent(opts.provider)}`:"",result=await apiGet(`/${tunnelId}${qs}`);console.log(JSON.stringify(result,null,2))}),cmd.command("start <tunnelId>").description("Start a prepared tunnel session").option("--provider <name>").action(async(tunnelId,opts)=>{let result=await apiPost(`/${tunnelId}/start`,{provider:opts.provider});console.log(JSON.stringify(result,null,2))}),cmd.command("stop <tunnelId>").description("Stop an active tunnel").option("--provider <name>").action(async(tunnelId,opts)=>{let result=await apiPost(`/${tunnelId}/stop`,{provider:opts.provider});console.log(JSON.stringify(result,null,2))}),cmd.command("delete <tunnelId>").description("Delete a tunnel").option("--provider <name>").action(async(tunnelId,opts)=>{let qs=opts.provider?`?provider=${encodeURIComponent(opts.provider)}`:"",result=await apiDelete(`/${tunnelId}${qs}`);console.log(JSON.stringify(result,null,2))}),cmd.command("sessions <tunnelId>").description("List sessions for a tunnel").option("--provider <name>").action(async(tunnelId,opts)=>{let qs=opts.provider?`?provider=${encodeURIComponent(opts.provider)}`:"",result=await apiGet(`/${tunnelId}/sessions${qs}`);console.log(JSON.stringify(result,null,2))}),cmd.command("status").description("Manager + per-provider health summary").action(async()=>{let result=await apiGet("/health");console.log(JSON.stringify(result,null,2))});let providersCmd=cmd.command("providers").description("Manage tunnel providers");providersCmd.command("list").description("List registered tunnel providers and capabilities").action(async()=>{let result=await apiGet("/providers");for(let p of result.providers){let star=p.isDefault?"* ":" ",ok=p.health.ok?"ok":`error (${p.health.message??""})`;console.log(`${star}${p.name} [${ok}]`)}}),providersCmd.command("set-default <name>").description("Set the default tunnel provider").action(async(name)=>{let result=await apiPost("/default",{provider:name});console.log(JSON.stringify(result,null,2))});let domainsCmd=cmd.command("domains").description("Manage custom domains on a tunnel");domainsCmd.command("add <tunnelId> <domain>").option("--provider <name>").action(async(tunnelId,domain,opts)=>{let result=await apiPost(`/${tunnelId}/domains`,{domain,provider:opts.provider});console.log(JSON.stringify(result,null,2))}),domainsCmd.command("rm <tunnelId> <domain>").option("--provider <name>").action(async(tunnelId,domain,opts)=>{let qs=opts.provider?`?provider=${encodeURIComponent(opts.provider)}`:"",result=await apiDelete(`/${tunnelId}/domains/${encodeURIComponent(domain)}${qs}`);console.log(JSON.stringify(result,null,2))}),cmd.command("doctor").description("Diagnose tunnel providers").action(async()=>{try{let health=await apiGet("/health");console.log(`manager: ${health.manager}`);for(let p of health.providers)console.log(` ${p.name}: ${p.ok?"ok":`fail - ${p.message}`}`)}catch(err){console.error(`Failed to reach agent: ${err}`),process.exitCode=1}})}var DEFAULT_PROVIDER_CONFIG_KEY="provider:default:tunnel";var LOG_SOURCE="tunnel-manager";class TunnelManager{registry;host;log={info:()=>{},warn:()=>{},error:()=>{},debug:()=>{}};init(host){if(this.host=host,this.registry=host.serviceRegistry,host.logger)this.log=host.logger;this.log.info(LOG_SOURCE,"Tunnel manager initialized")}async resolveProvider(name){if(!this.registry)throw Error("Service registry not available");let explicit=name?.trim();if(explicit){let provider2=this.registry.getProviderByName("tunnel",explicit);if(!provider2)throw Error(`Tunnel provider '${explicit}' is not registered`);return provider2}let fallback=await this.defaultProviderName();if(!fallback)throw Error("No default tunnel provider configured and none specified");let provider=this.registry.getProviderByName("tunnel",fallback);if(!provider)throw Error(`Default tunnel provider '${fallback}' is not registered`);return provider}async defaultProviderName(){let fromConfig=await this.host?.getConfig?.(DEFAULT_PROVIDER_CONFIG_KEY);if(fromConfig)return fromConfig;let entries=this.registry?.listProvidersForType("tunnel")??[],flagged=entries.find((e)=>e.isDefault);if(flagged)return flagged.pluginName;if(entries.length===1)return entries[0].pluginName;return}listProviderEntries(){return this.registry?.listProvidersForType("tunnel")??[]}async listAllTunnels(filterProvider){let entries=this.listProviderEntries(),targeted=filterProvider?entries.filter((e)=>e.pluginName===filterProvider):entries,results=[];for(let entry of targeted){let provider=this.registry?.getProviderByName("tunnel",entry.pluginName);if(!provider)continue;try{let tunnels=await provider.list();results.push({provider:entry.pluginName,tunnels})}catch(err){this.log.warn(LOG_SOURCE,`listAllTunnels: ${entry.pluginName} failed`,{error:String(err)})}}return results}async listProviders(){let entries=this.listProviderEntries(),snapshots=[];for(let entry of entries){let provider=this.registry?.getProviderByName("tunnel",entry.pluginName);if(!provider)continue;let health;try{health=await provider.healthCheck()}catch(err){health={ok:!1,message:String(err)}}snapshots.push({name:entry.pluginName,isDefault:entry.isDefault,capabilities:provider.getCapabilities(),health})}return snapshots}async getTunnel(id,opts={}){if(opts.provider){let provider=await this.resolveProvider(opts.provider),tunnel=await provider.getStatus(id);return tunnel?{provider:provider.name,tunnel}:null}for(let entry of this.listProviderEntries()){let provider=this.registry?.getProviderByName("tunnel",entry.pluginName);if(!provider)continue;try{let tunnel=await provider.getStatus(id);if(tunnel)return{provider:entry.pluginName,tunnel}}catch{}}return null}async issueSession(req){let{provider:providerName,...rest}=req,provider=await this.resolveProvider(providerName);return{...await provider.issueSession(rest),provider:provider.name}}async startTunnel(id,opts={}){return(await this.resolveProvider(opts.provider)).start(id)}async stopTunnel(id,opts={}){return(await this.resolveProvider(opts.provider)).stop(id)}async deleteTunnel(id,opts={}){return(await this.resolveProvider(opts.provider)).delete(id)}async rotate(id,opts={}){return(await this.resolveProvider(opts.provider)).rotate(id)}async attachDomain(id,domain,opts={}){return(await this.resolveProvider(opts.provider)).attachCustomDomain(id,domain)}async detachDomain(id,domain,opts={}){return(await this.resolveProvider(opts.provider)).detachCustomDomain(id,domain)}async listSessions(id,opts={}){return(await this.resolveProvider(opts.provider)).listSessions(id)}async getHealth(){let entries=this.listProviderEntries(),providers=[];for(let entry of entries){let provider=this.registry?.getProviderByName("tunnel",entry.pluginName);if(!provider){providers.push({name:entry.pluginName,ok:!1,message:"unavailable"});continue}try{let result=await provider.healthCheck();providers.push({name:entry.pluginName,ok:result.ok,message:result.message})}catch(err){providers.push({name:entry.pluginName,ok:!1,message:String(err)})}}return{manager:"ok",providers}}async setDefault(providerName){if(await this.resolveProvider(providerName),this.registry?.setProviderDefault)this.registry.setProviderDefault("tunnel",providerName);if(this.host?.setConfig)await this.host.setConfig(DEFAULT_PROVIDER_CONFIG_KEY,providerName);this.log.info(LOG_SOURCE,`Default tunnel provider set to ${providerName}`)}}import{Elysia,t}from"elysia";function readProvider(query){return query?.provider??void 0}function createTunnelManagerRoutes(manager){return new Elysia().get("/providers",async({set})=>{try{return{providers:await manager.listProviders()}}catch(err){return set.status=500,{error:"Failed to list providers",details:String(err)}}}).post("/default",async({body,set})=>{try{return await manager.setDefault(body.provider),{success:!0,provider:body.provider}}catch(err){return set.status=400,{error:String(err)}}},{body:t.Object({provider:t.String()})}).get("/health",async({set})=>{try{return await manager.getHealth()}catch(err){return set.status=500,{error:"Failed to get health",details:String(err)}}}).get("/",async({query,set})=>{try{let providerName=readProvider(query),results=await manager.listAllTunnels(providerName);return{tunnels:results.flatMap((r)=>r.tunnels.map((t2)=>({...t2,providerName:r.provider}))),byProvider:results}}catch(err){return set.status=500,{error:"Failed to list tunnels",details:String(err)}}}).post("/issue-session",async({body,set})=>{try{return await manager.issueSession({provider:body.provider,protocol:body.protocol,localPort:body.localPort,localHost:body.localHost,subdomain:body.subdomain,customDomain:body.customDomain,ttlSeconds:body.ttlSeconds,metadata:body.metadata,controlPlanePayload:body.controlPlanePayload})}catch(err){return set.status=500,{error:"Failed to issue session",details:String(err)}}},{body:t.Object({provider:t.Optional(t.String()),protocol:t.Union([t.Literal("http"),t.Literal("https"),t.Literal("tcp"),t.Literal("udp")]),localPort:t.Number(),localHost:t.Optional(t.String()),subdomain:t.Optional(t.String()),customDomain:t.Optional(t.String()),ttlSeconds:t.Optional(t.Number()),metadata:t.Optional(t.Any()),controlPlanePayload:t.Optional(t.Any())})}).get("/:id",async({params,query,set})=>{try{let result=await manager.getTunnel(params.id,{provider:readProvider(query)});if(!result)return set.status=404,{error:"Tunnel not found"};return result}catch(err){return set.status=500,{error:"Failed to get tunnel",details:String(err)}}}).get("/:id/sessions",async({params,query,set})=>{try{return{sessions:await manager.listSessions(params.id,{provider:readProvider(query)})}}catch(err){return set.status=500,{error:"Failed to list sessions",details:String(err)}}}).post("/:id/start",async({params,body,set})=>{try{return{success:!0,tunnel:await manager.startTunnel(params.id,{provider:body?.provider})}}catch(err){return set.status=500,{error:"Failed to start tunnel",details:String(err)}}},{body:t.Optional(t.Object({provider:t.Optional(t.String())}))}).post("/:id/stop",async({params,body,set})=>{try{return await manager.stopTunnel(params.id,{provider:body?.provider}),{success:!0}}catch(err){return set.status=500,{error:"Failed to stop tunnel",details:String(err)}}},{body:t.Optional(t.Object({provider:t.Optional(t.String())}))}).post("/:id/rotate",async({params,body,set})=>{try{return{success:!0,session:await manager.rotate(params.id,{provider:body?.provider})}}catch(err){return set.status=500,{error:"Failed to rotate tunnel",details:String(err)}}},{body:t.Optional(t.Object({provider:t.Optional(t.String())}))}).delete("/:id",async({params,query,set})=>{try{return await manager.deleteTunnel(params.id,{provider:readProvider(query)}),{success:!0}}catch(err){return set.status=500,{error:"Failed to delete tunnel",details:String(err)}}}).post("/:id/domains",async({params,body,set})=>{try{return await manager.attachDomain(params.id,body.domain,{provider:body.provider}),{success:!0}}catch(err){return set.status=500,{error:"Failed to attach domain",details:String(err)}}},{body:t.Object({domain:t.String(),provider:t.Optional(t.String())})}).delete("/:id/domains/:domain",async({params,query,set})=>{try{return await manager.detachDomain(params.id,params.domain,{provider:readProvider(query)}),{success:!0}}catch(err){return set.status=500,{error:"Failed to detach domain",details:String(err)}}})}var manager=new TunnelManager,vibePlugin={name:"tunnel",version:"0.1.0",description:"VibeTunnels manager \u2014 dispatches to registered tunnel providers",tags:["backend","cli","integration"],cliCommand:"tunnel",apiPrefix:"/api/tunnels",createRoutes:()=>createTunnelManagerRoutes(manager),onServerStart:(_app,hostServices)=>{manager.init(hostServices)},onCliSetup:(program,hostServices)=>{registerTunnelCommands(program,hostServices)}},src_default=vibePlugin;export{vibePlugin,src_default as default,TunnelManager};
package/dist/manager.d.ts CHANGED
@@ -55,4 +55,3 @@ export declare class TunnelManager {
55
55
  }>;
56
56
  setDefault(providerName: string): Promise<void>;
57
57
  }
58
- //# sourceMappingURL=manager.d.ts.map
package/dist/routes.d.ts CHANGED
@@ -457,4 +457,3 @@ export declare function createTunnelManagerRoutes(manager: TunnelManager): Elysi
457
457
  standaloneSchema: {};
458
458
  response: {};
459
459
  }>;
460
- //# sourceMappingURL=routes.d.ts.map
package/dist/types.d.ts CHANGED
@@ -123,4 +123,3 @@ export interface VibePlugin {
123
123
  }) => void | Promise<void>;
124
124
  }
125
125
  export declare const DEFAULT_PROVIDER_CONFIG_KEY = "provider:default:tunnel";
126
- //# sourceMappingURL=types.d.ts.map
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@vibecontrols/vibe-plugin-tunnel",
3
- "version": "2026.428.3",
3
+ "version": "2026.429.2",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
7
- "description": "Unified tunnel manager \u2014 routes requests across registered tunnel providers (vibetunnels, cloudflare)",
7
+ "description": "Unified tunnel manager routes requests across registered tunnel providers (vibetunnels, cloudflare)",
8
8
  "engines": {
9
9
  "bun": ">=1.3.0"
10
10
  },
@@ -15,7 +15,7 @@
15
15
  },
16
16
  "license": "SEE LICENSE IN LICENSE",
17
17
  "scripts": {
18
- "build": "tsc",
18
+ "build": "bun build ./src/index.ts --outdir ./dist --target bun --minify-syntax --minify-whitespace --external elysia && tsc --emitDeclarationOnly --declaration --outDir ./dist",
19
19
  "dev": "tsc --watch",
20
20
  "lint": "eslint ./src",
21
21
  "format": "bunx prettier . --write",
@@ -66,11 +66,12 @@
66
66
  },
67
67
  "homepage": "https://vibetunnels.com",
68
68
  "publishConfig": {
69
- "access": "public",
70
- "registry": "https://registry.npmjs.org/"
69
+ "access": "restricted",
70
+ "registry": "https://verdaccio.tooling.internal.burdenoff.com/"
71
71
  },
72
72
  "files": [
73
73
  "dist/**/*",
74
+ "!dist/**/*.map",
74
75
  "README.md",
75
76
  "LICENSE"
76
77
  ],
@@ -1 +0,0 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAyC/C,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,GAAG,EACZ,aAAa,EAAE,YAAY,GAC1B,IAAI,CAkKN"}
package/dist/commands.js DELETED
@@ -1,177 +0,0 @@
1
- const DEFAULT_AGENT_URL = "http://localhost:3005";
2
- function agentBaseUrl() {
3
- return process.env.AGENT_BASE_URL ?? DEFAULT_AGENT_URL;
4
- }
5
- async function apiGet(path) {
6
- const res = await fetch(`${agentBaseUrl()}/api/tunnels${path}`);
7
- if (!res.ok) {
8
- const text = await res.text().catch(() => "");
9
- throw new Error(`GET ${path} failed (${res.status}): ${text}`);
10
- }
11
- return (await res.json());
12
- }
13
- async function apiPost(path, body) {
14
- const res = await fetch(`${agentBaseUrl()}/api/tunnels${path}`, {
15
- method: "POST",
16
- headers: { "Content-Type": "application/json" },
17
- body: body ? JSON.stringify(body) : undefined,
18
- });
19
- if (!res.ok) {
20
- const text = await res.text().catch(() => "");
21
- throw new Error(`POST ${path} failed (${res.status}): ${text}`);
22
- }
23
- return (await res.json());
24
- }
25
- async function apiDelete(path) {
26
- const res = await fetch(`${agentBaseUrl()}/api/tunnels${path}`, {
27
- method: "DELETE",
28
- });
29
- if (!res.ok) {
30
- const text = await res.text().catch(() => "");
31
- throw new Error(`DELETE ${path} failed (${res.status}): ${text}`);
32
- }
33
- return (await res.json());
34
- }
35
- export function registerTunnelCommands(program, _hostServices) {
36
- const cmd = program
37
- .command("tunnel")
38
- .description("Manage tunnels across providers");
39
- cmd
40
- .command("list")
41
- .description("List tunnels (optionally filtered by provider)")
42
- .option("--provider <name>", "Limit to a specific provider")
43
- .action(async (opts) => {
44
- const qs = opts.provider
45
- ? `?provider=${encodeURIComponent(opts.provider)}`
46
- : "";
47
- const result = await apiGet(`/${qs}`);
48
- if (result.tunnels.length === 0) {
49
- console.log("No tunnels.");
50
- return;
51
- }
52
- for (const t of result.tunnels) {
53
- console.log(`${t.id}\t${t.providerName}\t${t.status}\t${t.url}\t${t.protocol}:${t.localPort}`);
54
- }
55
- });
56
- cmd
57
- .command("get <tunnelId>")
58
- .description("Get tunnel status")
59
- .option("--provider <name>")
60
- .action(async (tunnelId, opts) => {
61
- const qs = opts.provider
62
- ? `?provider=${encodeURIComponent(opts.provider)}`
63
- : "";
64
- const result = await apiGet(`/${tunnelId}${qs}`);
65
- console.log(JSON.stringify(result, null, 2));
66
- });
67
- cmd
68
- .command("start <tunnelId>")
69
- .description("Start a prepared tunnel session")
70
- .option("--provider <name>")
71
- .action(async (tunnelId, opts) => {
72
- const result = await apiPost(`/${tunnelId}/start`, {
73
- provider: opts.provider,
74
- });
75
- console.log(JSON.stringify(result, null, 2));
76
- });
77
- cmd
78
- .command("stop <tunnelId>")
79
- .description("Stop an active tunnel")
80
- .option("--provider <name>")
81
- .action(async (tunnelId, opts) => {
82
- const result = await apiPost(`/${tunnelId}/stop`, {
83
- provider: opts.provider,
84
- });
85
- console.log(JSON.stringify(result, null, 2));
86
- });
87
- cmd
88
- .command("delete <tunnelId>")
89
- .description("Delete a tunnel")
90
- .option("--provider <name>")
91
- .action(async (tunnelId, opts) => {
92
- const qs = opts.provider
93
- ? `?provider=${encodeURIComponent(opts.provider)}`
94
- : "";
95
- const result = await apiDelete(`/${tunnelId}${qs}`);
96
- console.log(JSON.stringify(result, null, 2));
97
- });
98
- cmd
99
- .command("sessions <tunnelId>")
100
- .description("List sessions for a tunnel")
101
- .option("--provider <name>")
102
- .action(async (tunnelId, opts) => {
103
- const qs = opts.provider
104
- ? `?provider=${encodeURIComponent(opts.provider)}`
105
- : "";
106
- const result = await apiGet(`/${tunnelId}/sessions${qs}`);
107
- console.log(JSON.stringify(result, null, 2));
108
- });
109
- cmd
110
- .command("status")
111
- .description("Manager + per-provider health summary")
112
- .action(async () => {
113
- const result = await apiGet(`/health`);
114
- console.log(JSON.stringify(result, null, 2));
115
- });
116
- const providersCmd = cmd
117
- .command("providers")
118
- .description("Manage tunnel providers");
119
- providersCmd
120
- .command("list")
121
- .description("List registered tunnel providers and capabilities")
122
- .action(async () => {
123
- const result = await apiGet(`/providers`);
124
- for (const p of result.providers) {
125
- const star = p.isDefault ? "* " : " ";
126
- const ok = p.health.ok ? "ok" : `error (${p.health.message ?? ""})`;
127
- console.log(`${star}${p.name}\t[${ok}]`);
128
- }
129
- });
130
- providersCmd
131
- .command("set-default <name>")
132
- .description("Set the default tunnel provider")
133
- .action(async (name) => {
134
- const result = await apiPost(`/default`, { provider: name });
135
- console.log(JSON.stringify(result, null, 2));
136
- });
137
- const domainsCmd = cmd
138
- .command("domains")
139
- .description("Manage custom domains on a tunnel");
140
- domainsCmd
141
- .command("add <tunnelId> <domain>")
142
- .option("--provider <name>")
143
- .action(async (tunnelId, domain, opts) => {
144
- const result = await apiPost(`/${tunnelId}/domains`, {
145
- domain,
146
- provider: opts.provider,
147
- });
148
- console.log(JSON.stringify(result, null, 2));
149
- });
150
- domainsCmd
151
- .command("rm <tunnelId> <domain>")
152
- .option("--provider <name>")
153
- .action(async (tunnelId, domain, opts) => {
154
- const qs = opts.provider
155
- ? `?provider=${encodeURIComponent(opts.provider)}`
156
- : "";
157
- const result = await apiDelete(`/${tunnelId}/domains/${encodeURIComponent(domain)}${qs}`);
158
- console.log(JSON.stringify(result, null, 2));
159
- });
160
- cmd
161
- .command("doctor")
162
- .description("Diagnose tunnel providers")
163
- .action(async () => {
164
- try {
165
- const health = await apiGet(`/health`);
166
- console.log(`manager: ${health.manager}`);
167
- for (const p of health.providers) {
168
- console.log(` ${p.name}: ${p.ok ? "ok" : `fail - ${p.message}`}`);
169
- }
170
- }
171
- catch (err) {
172
- console.error(`Failed to reach agent: ${err}`);
173
- process.exitCode = 1;
174
- }
175
- });
176
- }
177
- //# sourceMappingURL=commands.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAQA,MAAM,iBAAiB,GAAG,uBAAuB,CAAC;AAElD,SAAS,YAAY;IACnB,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,iBAAiB,CAAC;AACzD,CAAC;AAED,KAAK,UAAU,MAAM,CAAU,IAAY;IACzC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,YAAY,EAAE,eAAe,IAAI,EAAE,CAAC,CAAC;IAChE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,YAAY,GAAG,CAAC,MAAM,MAAM,IAAI,EAAE,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAM,CAAC;AACjC,CAAC;AAED,KAAK,UAAU,OAAO,CAAU,IAAY,EAAE,IAAc;IAC1D,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,YAAY,EAAE,eAAe,IAAI,EAAE,EAAE;QAC9D,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;KAC9C,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,YAAY,GAAG,CAAC,MAAM,MAAM,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAM,CAAC;AACjC,CAAC;AAED,KAAK,UAAU,SAAS,CAAU,IAAY;IAC5C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,YAAY,EAAE,eAAe,IAAI,EAAE,EAAE;QAC9D,MAAM,EAAE,QAAQ;KACjB,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,YAAY,GAAG,CAAC,MAAM,MAAM,IAAI,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAM,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,OAAY,EACZ,aAA2B;IAE3B,MAAM,GAAG,GAAG,OAAO;SAChB,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,iCAAiC,CAAC,CAAC;IAElD,GAAG;SACA,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,gDAAgD,CAAC;SAC7D,MAAM,CAAC,mBAAmB,EAAE,8BAA8B,CAAC;SAC3D,MAAM,CAAC,KAAK,EAAE,IAA2B,EAAE,EAAE;QAC5C,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ;YACtB,CAAC,CAAC,aAAa,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAClD,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,MAAM,GAAG,MAAM,MAAM,CAAqB,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1D,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC3B,OAAO;QACT,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CACT,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS,EAAE,CAClF,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,mBAAmB,CAAC;SAChC,MAAM,CAAC,mBAAmB,CAAC;SAC3B,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,IAA2B,EAAE,EAAE;QAC9D,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ;YACtB,CAAC,CAAC,aAAa,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAClD,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,QAAQ,GAAG,EAAE,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,iCAAiC,CAAC;SAC9C,MAAM,CAAC,mBAAmB,CAAC;SAC3B,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,IAA2B,EAAE,EAAE;QAC9D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,QAAQ,QAAQ,EAAE;YACjD,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,iBAAiB,CAAC;SAC1B,WAAW,CAAC,uBAAuB,CAAC;SACpC,MAAM,CAAC,mBAAmB,CAAC;SAC3B,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,IAA2B,EAAE,EAAE;QAC9D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,QAAQ,OAAO,EAAE;YAChD,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,mBAAmB,CAAC;SAC5B,WAAW,CAAC,iBAAiB,CAAC;SAC9B,MAAM,CAAC,mBAAmB,CAAC;SAC3B,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,IAA2B,EAAE,EAAE;QAC9D,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ;YACtB,CAAC,CAAC,aAAa,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAClD,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,QAAQ,GAAG,EAAE,EAAE,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,qBAAqB,CAAC;SAC9B,WAAW,CAAC,4BAA4B,CAAC;SACzC,MAAM,CAAC,mBAAmB,CAAC;SAC3B,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,IAA2B,EAAE,EAAE;QAC9D,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ;YACtB,CAAC,CAAC,aAAa,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAClD,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,QAAQ,YAAY,EAAE,EAAE,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,uCAAuC,CAAC;SACpD,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEL,MAAM,YAAY,GAAG,GAAG;SACrB,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,yBAAyB,CAAC,CAAC;IAE1C,YAAY;SACT,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,mDAAmD,CAAC;SAChE,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAuB,YAAY,CAAC,CAAC;QAChE,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YACvC,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,GAAG,CAAC;YACpE,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,MAAM,EAAE,GAAG,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,YAAY;SACT,OAAO,CAAC,oBAAoB,CAAC;SAC7B,WAAW,CAAC,iCAAiC,CAAC;SAC9C,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEL,MAAM,UAAU,GAAG,GAAG;SACnB,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,mCAAmC,CAAC,CAAC;IAEpD,UAAU;SACP,OAAO,CAAC,yBAAyB,CAAC;SAClC,MAAM,CAAC,mBAAmB,CAAC;SAC3B,MAAM,CACL,KAAK,EAAE,QAAgB,EAAE,MAAc,EAAE,IAA2B,EAAE,EAAE;QACtE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,QAAQ,UAAU,EAAE;YACnD,MAAM;YACN,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC,CACF,CAAC;IAEJ,UAAU;SACP,OAAO,CAAC,wBAAwB,CAAC;SACjC,MAAM,CAAC,mBAAmB,CAAC;SAC3B,MAAM,CACL,KAAK,EAAE,QAAgB,EAAE,MAAc,EAAE,IAA2B,EAAE,EAAE;QACtE,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ;YACtB,CAAC,CAAC,aAAa,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAClD,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,MAAM,GAAG,MAAM,SAAS,CAC5B,IAAI,QAAQ,YAAY,kBAAkB,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAC1D,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC,CACF,CAAC;IAEJ,GAAG;SACA,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,2BAA2B,CAAC;SACxC,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAM,SAAS,CAAC,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YAC1C,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACjC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,0BAA0B,GAAG,EAAE,CAAC,CAAC;YAC/C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAgB,UAAU,EAAE,MAAM,YAAY,CAAC;AAI3D,eAAO,MAAM,UAAU,EAAE,UAkBxB,CAAC;AAEF,eAAe,UAAU,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,mBAAmB,YAAY,CAAC"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAGxD,MAAM,OAAO,GAAG,IAAI,aAAa,EAAE,CAAC;AAEpC,MAAM,CAAC,MAAM,UAAU,GAAe;IACpC,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,OAAO;IAChB,WAAW,EACT,iEAAiE;IACnE,IAAI,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,aAAa,CAAC;IACvC,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE,cAAc;IAEzB,YAAY,EAAE,GAAG,EAAE,CAAC,yBAAyB,CAAC,OAAO,CAAC;IAEtD,aAAa,EAAE,CAAC,IAAa,EAAE,YAA0B,EAAE,EAAE;QAC3D,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC7B,CAAC;IAED,UAAU,EAAE,CAAC,OAAgB,EAAE,YAA0B,EAAE,EAAE;QAC3D,sBAAsB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAChD,CAAC;CACF,CAAC;AAEF,eAAe,UAAU,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,mBAAmB,EAExB,KAAK,UAAU,EAEf,KAAK,0BAA0B,EAC/B,KAAK,iBAAiB,EACvB,MAAM,YAAY,CAAC;AAIpB,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,0BAA0B,CAAC;IACzC,MAAM,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3C;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,CAAsB;IACvC,OAAO,CAAC,IAAI,CAAC,CAAe;IAC5B,OAAO,CAAC,GAAG,CAKT;IAEF,IAAI,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;YAShB,eAAe;YAmCf,mBAAmB;IAiBjC,OAAO,CAAC,mBAAmB;IASrB,cAAc,CAClB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC,CAAC;IA6BxD,aAAa,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAyB5C,SAAS,CACb,EAAE,EAAE,MAAM,EACV,IAAI,GAAE,qBAA0B,GAC/B,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAE,GAAG,IAAI,CAAC;IAwBrD,YAAY,CAChB,GAAG,EAAE,mBAAmB,GAAG,qBAAqB,GAC/C,OAAO,CAAC,iBAAiB,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAO9C,WAAW,CACf,EAAE,EAAE,MAAM,EACV,IAAI,GAAE,qBAA0B,GAC/B,OAAO,CAAC,UAAU,CAAC;IAKhB,UAAU,CACd,EAAE,EAAE,MAAM,EACV,IAAI,GAAE,qBAA0B,GAC/B,OAAO,CAAC,IAAI,CAAC;IAKV,YAAY,CAChB,EAAE,EAAE,MAAM,EACV,IAAI,GAAE,qBAA0B,GAC/B,OAAO,CAAC,IAAI,CAAC;IAKV,MAAM,CACV,EAAE,EAAE,MAAM,EACV,IAAI,GAAE,qBAA0B,GAC/B,OAAO,CAAC,iBAAiB,CAAC;IAKvB,YAAY,CAChB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,qBAA0B,GAC/B,OAAO,CAAC,IAAI,CAAC;IAKV,YAAY,CAChB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,qBAA0B,GAC/B,OAAO,CAAC,IAAI,CAAC;IAKV,YAAY,CAChB,EAAE,EAAE,MAAM,EACV,IAAI,GAAE,qBAA0B,GAC/B,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAKzB,SAAS,IAAI,OAAO,CAAC;QACzB,OAAO,EAAE,IAAI,CAAC;QACd,SAAS,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,EAAE,EAAE,OAAO,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACnE,CAAC;IAmCI,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAYtD"}
package/dist/manager.js DELETED
@@ -1,212 +0,0 @@
1
- /**
2
- * TunnelManager — facade over registered tunnel providers.
3
- *
4
- * Looks up concrete providers in the agent's service registry by name and
5
- * dispatches each operation to the selected provider. Falls back to the
6
- * configured default provider when no explicit name is given.
7
- */
8
- import { DEFAULT_PROVIDER_CONFIG_KEY, } from "./types.js";
9
- const LOG_SOURCE = "tunnel-manager";
10
- export class TunnelManager {
11
- registry;
12
- host;
13
- log = {
14
- info: () => { },
15
- warn: () => { },
16
- error: () => { },
17
- debug: () => { },
18
- };
19
- init(host) {
20
- this.host = host;
21
- this.registry = host.serviceRegistry;
22
- if (host.logger)
23
- this.log = host.logger;
24
- this.log.info(LOG_SOURCE, "Tunnel manager initialized");
25
- }
26
- // ── Provider resolution ──────────────────────────────────────────────
27
- async resolveProvider(name) {
28
- if (!this.registry) {
29
- throw new Error("Service registry not available");
30
- }
31
- const explicit = name?.trim();
32
- if (explicit) {
33
- const provider = this.registry.getProviderByName("tunnel", explicit);
34
- if (!provider) {
35
- throw new Error(`Tunnel provider '${explicit}' is not registered`);
36
- }
37
- return provider;
38
- }
39
- const fallback = await this.defaultProviderName();
40
- if (!fallback) {
41
- throw new Error("No default tunnel provider configured and none specified");
42
- }
43
- const provider = this.registry.getProviderByName("tunnel", fallback);
44
- if (!provider) {
45
- throw new Error(`Default tunnel provider '${fallback}' is not registered`);
46
- }
47
- return provider;
48
- }
49
- async defaultProviderName() {
50
- const fromConfig = await this.host?.getConfig?.(DEFAULT_PROVIDER_CONFIG_KEY);
51
- if (fromConfig)
52
- return fromConfig;
53
- // Fall back to whichever provider is marked default in the registry
54
- // (the agent runtime may set this automatically from DB).
55
- const entries = this.registry?.listProvidersForType("tunnel") ?? [];
56
- const flagged = entries.find((e) => e.isDefault);
57
- if (flagged)
58
- return flagged.pluginName;
59
- // Finally, first provider in the list if there's only one.
60
- if (entries.length === 1)
61
- return entries[0].pluginName;
62
- return undefined;
63
- }
64
- listProviderEntries() {
65
- return this.registry?.listProvidersForType("tunnel") ?? [];
66
- }
67
- // ── High-level operations ────────────────────────────────────────────
68
- async listAllTunnels(filterProvider) {
69
- const entries = this.listProviderEntries();
70
- const targeted = filterProvider
71
- ? entries.filter((e) => e.pluginName === filterProvider)
72
- : entries;
73
- const results = [];
74
- for (const entry of targeted) {
75
- const provider = this.registry?.getProviderByName("tunnel", entry.pluginName);
76
- if (!provider)
77
- continue;
78
- try {
79
- const tunnels = await provider.list();
80
- results.push({ provider: entry.pluginName, tunnels });
81
- }
82
- catch (err) {
83
- this.log.warn(LOG_SOURCE, `listAllTunnels: ${entry.pluginName} failed`, {
84
- error: String(err),
85
- });
86
- }
87
- }
88
- return results;
89
- }
90
- async listProviders() {
91
- const entries = this.listProviderEntries();
92
- const snapshots = [];
93
- for (const entry of entries) {
94
- const provider = this.registry?.getProviderByName("tunnel", entry.pluginName);
95
- if (!provider)
96
- continue;
97
- let health;
98
- try {
99
- health = await provider.healthCheck();
100
- }
101
- catch (err) {
102
- health = { ok: false, message: String(err) };
103
- }
104
- snapshots.push({
105
- name: entry.pluginName,
106
- isDefault: entry.isDefault,
107
- capabilities: provider.getCapabilities(),
108
- health,
109
- });
110
- }
111
- return snapshots;
112
- }
113
- async getTunnel(id, opts = {}) {
114
- if (opts.provider) {
115
- const provider = await this.resolveProvider(opts.provider);
116
- const tunnel = await provider.getStatus(id);
117
- return tunnel ? { provider: provider.name, tunnel } : null;
118
- }
119
- // Fan out across providers.
120
- for (const entry of this.listProviderEntries()) {
121
- const provider = this.registry?.getProviderByName("tunnel", entry.pluginName);
122
- if (!provider)
123
- continue;
124
- try {
125
- const tunnel = await provider.getStatus(id);
126
- if (tunnel)
127
- return { provider: entry.pluginName, tunnel };
128
- }
129
- catch {
130
- // Ignore per-provider errors during fan-out.
131
- }
132
- }
133
- return null;
134
- }
135
- async issueSession(req) {
136
- const { provider: providerName, ...rest } = req;
137
- const provider = await this.resolveProvider(providerName);
138
- const session = await provider.issueSession(rest);
139
- return { ...session, provider: provider.name };
140
- }
141
- async startTunnel(id, opts = {}) {
142
- const provider = await this.resolveProvider(opts.provider);
143
- return provider.start(id);
144
- }
145
- async stopTunnel(id, opts = {}) {
146
- const provider = await this.resolveProvider(opts.provider);
147
- return provider.stop(id);
148
- }
149
- async deleteTunnel(id, opts = {}) {
150
- const provider = await this.resolveProvider(opts.provider);
151
- return provider.delete(id);
152
- }
153
- async rotate(id, opts = {}) {
154
- const provider = await this.resolveProvider(opts.provider);
155
- return provider.rotate(id);
156
- }
157
- async attachDomain(id, domain, opts = {}) {
158
- const provider = await this.resolveProvider(opts.provider);
159
- return provider.attachCustomDomain(id, domain);
160
- }
161
- async detachDomain(id, domain, opts = {}) {
162
- const provider = await this.resolveProvider(opts.provider);
163
- return provider.detachCustomDomain(id, domain);
164
- }
165
- async listSessions(id, opts = {}) {
166
- const provider = await this.resolveProvider(opts.provider);
167
- return provider.listSessions(id);
168
- }
169
- async getHealth() {
170
- const entries = this.listProviderEntries();
171
- const providers = [];
172
- for (const entry of entries) {
173
- const provider = this.registry?.getProviderByName("tunnel", entry.pluginName);
174
- if (!provider) {
175
- providers.push({
176
- name: entry.pluginName,
177
- ok: false,
178
- message: "unavailable",
179
- });
180
- continue;
181
- }
182
- try {
183
- const result = await provider.healthCheck();
184
- providers.push({
185
- name: entry.pluginName,
186
- ok: result.ok,
187
- message: result.message,
188
- });
189
- }
190
- catch (err) {
191
- providers.push({
192
- name: entry.pluginName,
193
- ok: false,
194
- message: String(err),
195
- });
196
- }
197
- }
198
- return { manager: "ok", providers };
199
- }
200
- async setDefault(providerName) {
201
- // Validate the provider exists.
202
- await this.resolveProvider(providerName);
203
- if (this.registry?.setProviderDefault) {
204
- this.registry.setProviderDefault("tunnel", providerName);
205
- }
206
- if (this.host?.setConfig) {
207
- await this.host.setConfig(DEFAULT_PROVIDER_CONFIG_KEY, providerName);
208
- }
209
- this.log.info(LOG_SOURCE, `Default tunnel provider set to ${providerName}`);
210
- }
211
- }
212
- //# sourceMappingURL=manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAK,MAAM,QAAQ,CAAC;AAEnC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAQlD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAkO5B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GADpC"}
package/dist/routes.js DELETED
@@ -1,207 +0,0 @@
1
- /**
2
- * HTTP routes (Elysia) for the tunnel manager. Mounted under /api/tunnels.
3
- */
4
- import { Elysia, t } from "elysia";
5
- function readProvider(query) {
6
- return query?.["provider"] ?? undefined;
7
- }
8
- export function createTunnelManagerRoutes(manager) {
9
- return (new Elysia()
10
- // List providers + capabilities + health
11
- .get("/providers", async ({ set }) => {
12
- try {
13
- const providers = await manager.listProviders();
14
- return { providers };
15
- }
16
- catch (err) {
17
- set.status = 500;
18
- return { error: "Failed to list providers", details: String(err) };
19
- }
20
- })
21
- // Set default provider
22
- .post("/default", async ({ body, set }) => {
23
- try {
24
- await manager.setDefault(body.provider);
25
- return { success: true, provider: body.provider };
26
- }
27
- catch (err) {
28
- set.status = 400;
29
- return { error: String(err) };
30
- }
31
- }, { body: t.Object({ provider: t.String() }) })
32
- // Manager + per-provider health
33
- .get("/health", async ({ set }) => {
34
- try {
35
- return await manager.getHealth();
36
- }
37
- catch (err) {
38
- set.status = 500;
39
- return { error: "Failed to get health", details: String(err) };
40
- }
41
- })
42
- // List tunnels across every provider (or one via ?provider=...)
43
- .get("/", async ({ query, set }) => {
44
- try {
45
- const providerName = readProvider(query);
46
- const results = await manager.listAllTunnels(providerName);
47
- // Flatten for backward compatibility with the old core plugin
48
- // which returned a single `tunnels` array.
49
- const flat = results.flatMap((r) => r.tunnels.map((t) => ({ ...t, providerName: r.provider })));
50
- return { tunnels: flat, byProvider: results };
51
- }
52
- catch (err) {
53
- set.status = 500;
54
- return { error: "Failed to list tunnels", details: String(err) };
55
- }
56
- })
57
- // Issue a new session
58
- .post("/issue-session", async ({ body, set }) => {
59
- try {
60
- const session = await manager.issueSession({
61
- provider: body.provider,
62
- protocol: body.protocol,
63
- localPort: body.localPort,
64
- localHost: body.localHost,
65
- subdomain: body.subdomain,
66
- customDomain: body.customDomain,
67
- ttlSeconds: body.ttlSeconds,
68
- metadata: body.metadata,
69
- controlPlanePayload: body.controlPlanePayload,
70
- });
71
- return session;
72
- }
73
- catch (err) {
74
- set.status = 500;
75
- return { error: "Failed to issue session", details: String(err) };
76
- }
77
- }, {
78
- body: t.Object({
79
- provider: t.Optional(t.String()),
80
- protocol: t.Union([
81
- t.Literal("http"),
82
- t.Literal("https"),
83
- t.Literal("tcp"),
84
- t.Literal("udp"),
85
- ]),
86
- localPort: t.Number(),
87
- localHost: t.Optional(t.String()),
88
- subdomain: t.Optional(t.String()),
89
- customDomain: t.Optional(t.String()),
90
- ttlSeconds: t.Optional(t.Number()),
91
- metadata: t.Optional(t.Any()),
92
- controlPlanePayload: t.Optional(t.Any()),
93
- }),
94
- })
95
- // Get a single tunnel (fans out if provider unspecified)
96
- .get("/:id", async ({ params, query, set }) => {
97
- try {
98
- const result = await manager.getTunnel(params.id, {
99
- provider: readProvider(query),
100
- });
101
- if (!result) {
102
- set.status = 404;
103
- return { error: "Tunnel not found" };
104
- }
105
- return result;
106
- }
107
- catch (err) {
108
- set.status = 500;
109
- return { error: "Failed to get tunnel", details: String(err) };
110
- }
111
- })
112
- // List sessions for a tunnel
113
- .get("/:id/sessions", async ({ params, query, set }) => {
114
- try {
115
- const sessions = await manager.listSessions(params.id, {
116
- provider: readProvider(query),
117
- });
118
- return { sessions };
119
- }
120
- catch (err) {
121
- set.status = 500;
122
- return { error: "Failed to list sessions", details: String(err) };
123
- }
124
- })
125
- // Start a prepared tunnel session
126
- .post("/:id/start", async ({ params, body, set }) => {
127
- try {
128
- const tunnel = await manager.startTunnel(params.id, {
129
- provider: body?.provider,
130
- });
131
- return { success: true, tunnel };
132
- }
133
- catch (err) {
134
- set.status = 500;
135
- return { error: "Failed to start tunnel", details: String(err) };
136
- }
137
- }, { body: t.Optional(t.Object({ provider: t.Optional(t.String()) })) })
138
- // Stop an active tunnel
139
- .post("/:id/stop", async ({ params, body, set }) => {
140
- try {
141
- await manager.stopTunnel(params.id, { provider: body?.provider });
142
- return { success: true };
143
- }
144
- catch (err) {
145
- set.status = 500;
146
- return { error: "Failed to stop tunnel", details: String(err) };
147
- }
148
- }, { body: t.Optional(t.Object({ provider: t.Optional(t.String()) })) })
149
- // Rotate tunnel credentials
150
- .post("/:id/rotate", async ({ params, body, set }) => {
151
- try {
152
- const session = await manager.rotate(params.id, {
153
- provider: body?.provider,
154
- });
155
- return { success: true, session };
156
- }
157
- catch (err) {
158
- set.status = 500;
159
- return { error: "Failed to rotate tunnel", details: String(err) };
160
- }
161
- }, { body: t.Optional(t.Object({ provider: t.Optional(t.String()) })) })
162
- // Delete a tunnel
163
- .delete("/:id", async ({ params, query, set }) => {
164
- try {
165
- await manager.deleteTunnel(params.id, {
166
- provider: readProvider(query),
167
- });
168
- return { success: true };
169
- }
170
- catch (err) {
171
- set.status = 500;
172
- return { error: "Failed to delete tunnel", details: String(err) };
173
- }
174
- })
175
- // Attach a custom domain to a tunnel
176
- .post("/:id/domains", async ({ params, body, set }) => {
177
- try {
178
- await manager.attachDomain(params.id, body.domain, {
179
- provider: body.provider,
180
- });
181
- return { success: true };
182
- }
183
- catch (err) {
184
- set.status = 500;
185
- return { error: "Failed to attach domain", details: String(err) };
186
- }
187
- }, {
188
- body: t.Object({
189
- domain: t.String(),
190
- provider: t.Optional(t.String()),
191
- }),
192
- })
193
- // Detach a custom domain from a tunnel
194
- .delete("/:id/domains/:domain", async ({ params, query, set }) => {
195
- try {
196
- await manager.detachDomain(params.id, params.domain, {
197
- provider: readProvider(query),
198
- });
199
- return { success: true };
200
- }
201
- catch (err) {
202
- set.status = 500;
203
- return { error: "Failed to detach domain", details: String(err) };
204
- }
205
- }));
206
- }
207
- //# sourceMappingURL=routes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js DELETED
@@ -1,6 +0,0 @@
1
- /**
2
- * Locally-redeclared types so the plugin has no hard dependency on
3
- * @vibecontrols/agent. Keeps plugin bundles self-contained.
4
- */
5
- export const DEFAULT_PROVIDER_CONFIG_KEY = "provider:default:tunnel";
6
- //# sourceMappingURL=types.js.map
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA6JH,MAAM,CAAC,MAAM,2BAA2B,GAAG,yBAAyB,CAAC"}