aibroker 0.33.1 → 0.33.3
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.
|
@@ -81,15 +81,34 @@ export interface DecideOptions {
|
|
|
81
81
|
export declare function decide(state: WatchdogState, verdict: Verdict, now: number, opts?: DecideOptions): Decision;
|
|
82
82
|
/** The `tailscale` binary, or undefined when it is not installed here. */
|
|
83
83
|
export declare function tailscaleBinary(): string | undefined;
|
|
84
|
+
export interface CliResult {
|
|
85
|
+
ok: boolean;
|
|
86
|
+
stdout?: string;
|
|
87
|
+
error?: string;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Run the client, and report failure rather than swallowing it.
|
|
91
|
+
*
|
|
92
|
+
* The macOS app's CLI is not always usable from a background process: it wants
|
|
93
|
+
* to talk to the GUI app and answers "The Tailscale GUI failed to start" when
|
|
94
|
+
* it cannot. The first version of this file treated that error as "no funnel
|
|
95
|
+
* configured", so the watchdog returned quietly and looked exactly like a
|
|
96
|
+
* watchdog that was working — the precise failure it exists to prevent.
|
|
97
|
+
*/
|
|
98
|
+
export declare function runTailscale(bin: string, args: string[]): CliResult;
|
|
84
99
|
/**
|
|
85
100
|
* The node's funnel hostname, read from the client rather than configured.
|
|
86
101
|
*
|
|
87
102
|
* Hard-coding it would put one machine's name in the source and go stale the
|
|
88
103
|
* first time the node is renamed.
|
|
89
104
|
*/
|
|
90
|
-
export declare function funnelHostname(bin?: string | undefined):
|
|
105
|
+
export declare function funnelHostname(bin?: string | undefined): CliResult & {
|
|
106
|
+
hostname?: string;
|
|
107
|
+
};
|
|
91
108
|
/** Is a funnel even configured? Nothing to watch when it is not. */
|
|
92
|
-
export declare function funnelConfigured(bin?: string | undefined):
|
|
109
|
+
export declare function funnelConfigured(bin?: string | undefined): CliResult & {
|
|
110
|
+
configured?: boolean;
|
|
111
|
+
};
|
|
93
112
|
/** Public ingress addresses for the funnel hostname, via a public resolver. */
|
|
94
113
|
export declare function resolveIngress(hostname: string): Promise<string[]>;
|
|
95
114
|
/** One request to one ingress address, with SNI set to the funnel hostname. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"funnel-watchdog.d.ts","sourceRoot":"","sources":["../../src/daemon/funnel-watchdog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;
|
|
1
|
+
{"version":3,"file":"funnel-watchdog.d.ts","sourceRoot":"","sources":["../../src/daemon/funnel-watchdog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAqCH,MAAM,MAAM,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,6EAA6E;IAC7E,eAAe,EAAE,MAAM,CAAC;IACxB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,YAAY,IAAI,aAAa,CAE5C;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,OAAO,CAIxD;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,wBAAgB,MAAM,CACpB,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,aAAkB,GACvB,QAAQ,CAyCV;AAED,0EAA0E;AAC1E,wBAAgB,eAAe,IAAI,MAAM,GAAG,SAAS,CAEpD;AAED,MAAM,WAAW,SAAS;IAAG,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CAAE;AAM5E;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CASnE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,qBAAoB,GAAG,SAAS,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAoBzF;AAED,oEAAoE;AACpE,wBAAgB,gBAAgB,CAAC,GAAG,qBAAoB,GAAG,SAAS,GAAG;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,CAY9F;AAED,+EAA+E;AAC/E,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAUxE;AAED,+EAA+E;AAC/E,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,SAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAuBvF;AAED,6CAA6C;AAC7C,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAI3E;AAED,+DAA+D;AAC/D,wBAAgB,SAAS,CAAC,GAAG,qBAAoB,GAAG,OAAO,CAU1D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,GAAE;IACxC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACrD,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACd,GAAG,MAAM,IAAI,CAoHlB"}
|
|
@@ -43,11 +43,22 @@ import { log } from "../core/log.js";
|
|
|
43
43
|
import { audit } from "./audit.js";
|
|
44
44
|
/** Public resolvers, tried in order. The local one cannot be trusted here. */
|
|
45
45
|
const PUBLIC_RESOLVERS = ["1.1.1.1", "8.8.8.8"];
|
|
46
|
-
/**
|
|
46
|
+
/**
|
|
47
|
+
* Where `tailscale` might live, best first. The daemon's PATH under launchd is
|
|
48
|
+
* minimal, so these are absolute.
|
|
49
|
+
*
|
|
50
|
+
* ORDER MATTERS, and not for the reason it usually does. The macOS app ships a
|
|
51
|
+
* single binary that behaves as the GUI or as the CLI, and invoking it inside
|
|
52
|
+
* the bundle from a background process answers "The Tailscale GUI failed to
|
|
53
|
+
* start" — on stdout, with exit status 0, so it reads as success and parses as
|
|
54
|
+
* nothing. The `/usr/local/bin` wrapper the app installs does work from there.
|
|
55
|
+
* Prefer it; the bundle stays as a last resort for a machine that has no
|
|
56
|
+
* wrapper.
|
|
57
|
+
*/
|
|
47
58
|
const TAILSCALE_CANDIDATES = [
|
|
48
|
-
"/Applications/Tailscale.app/Contents/MacOS/Tailscale",
|
|
49
59
|
"/usr/local/bin/tailscale",
|
|
50
60
|
"/opt/homebrew/bin/tailscale",
|
|
61
|
+
"/Applications/Tailscale.app/Contents/MacOS/Tailscale",
|
|
51
62
|
];
|
|
52
63
|
const HEALTHY_INTERVAL_MS = 5 * 60_000;
|
|
53
64
|
/** Once a probe fails, look again soon — to confirm or clear it quickly. */
|
|
@@ -120,6 +131,29 @@ export function decide(state, verdict, now, opts = {}) {
|
|
|
120
131
|
export function tailscaleBinary() {
|
|
121
132
|
return TAILSCALE_CANDIDATES.find((p) => existsSync(p));
|
|
122
133
|
}
|
|
134
|
+
function firstLine(s) {
|
|
135
|
+
return (s ?? "").trim().split("\n")[0].slice(0, 160) || "(no output)";
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Run the client, and report failure rather than swallowing it.
|
|
139
|
+
*
|
|
140
|
+
* The macOS app's CLI is not always usable from a background process: it wants
|
|
141
|
+
* to talk to the GUI app and answers "The Tailscale GUI failed to start" when
|
|
142
|
+
* it cannot. The first version of this file treated that error as "no funnel
|
|
143
|
+
* configured", so the watchdog returned quietly and looked exactly like a
|
|
144
|
+
* watchdog that was working — the precise failure it exists to prevent.
|
|
145
|
+
*/
|
|
146
|
+
export function runTailscale(bin, args) {
|
|
147
|
+
try {
|
|
148
|
+
const stdout = execFileSync(bin, args, { encoding: "utf8", timeout: 15_000, stdio: ["ignore", "pipe", "pipe"] });
|
|
149
|
+
return { ok: true, stdout };
|
|
150
|
+
}
|
|
151
|
+
catch (e) {
|
|
152
|
+
const err = e;
|
|
153
|
+
const text = (typeof err.stderr === "string" ? err.stderr : err.stderr?.toString()) || err.message || "unknown error";
|
|
154
|
+
return { ok: false, error: text.trim().split("\n")[0] };
|
|
155
|
+
}
|
|
156
|
+
}
|
|
123
157
|
/**
|
|
124
158
|
* The node's funnel hostname, read from the client rather than configured.
|
|
125
159
|
*
|
|
@@ -127,28 +161,44 @@ export function tailscaleBinary() {
|
|
|
127
161
|
* first time the node is renamed.
|
|
128
162
|
*/
|
|
129
163
|
export function funnelHostname(bin = tailscaleBinary()) {
|
|
164
|
+
// An explicit override keeps the probe running where the client cannot be
|
|
165
|
+
// queried. Watching is worth having on its own: it is what turns a silent
|
|
166
|
+
// outage into a log line, even when this process cannot pull the lever.
|
|
167
|
+
const override = process.env.AIBROKER_FUNNEL_HOST;
|
|
168
|
+
if (override)
|
|
169
|
+
return { ok: true, hostname: override };
|
|
130
170
|
if (!bin)
|
|
131
|
-
return
|
|
171
|
+
return { ok: false, error: "no tailscale binary" };
|
|
172
|
+
const r = runTailscale(bin, ["status", "--json"]);
|
|
173
|
+
if (!r.ok)
|
|
174
|
+
return r;
|
|
132
175
|
try {
|
|
133
|
-
const
|
|
134
|
-
|
|
135
|
-
|
|
176
|
+
const name = JSON.parse(r.stdout ?? "")?.Self?.DNSName;
|
|
177
|
+
return typeof name === "string" && name
|
|
178
|
+
? { ok: true, hostname: name.replace(/\.$/, "") }
|
|
179
|
+
: { ok: false, error: "client reported no DNS name" };
|
|
136
180
|
}
|
|
137
181
|
catch {
|
|
138
|
-
|
|
182
|
+
// Quote what it actually said: this is where a client that "succeeded"
|
|
183
|
+
// while printing an error message gets caught.
|
|
184
|
+
return { ok: false, error: `unparseable status output — ${firstLine(r.stdout)}` };
|
|
139
185
|
}
|
|
140
186
|
}
|
|
141
187
|
/** Is a funnel even configured? Nothing to watch when it is not. */
|
|
142
188
|
export function funnelConfigured(bin = tailscaleBinary()) {
|
|
189
|
+
if (process.env.AIBROKER_FUNNEL_HOST)
|
|
190
|
+
return { ok: true, configured: true };
|
|
143
191
|
if (!bin)
|
|
144
|
-
return false;
|
|
192
|
+
return { ok: false, error: "no tailscale binary" };
|
|
193
|
+
const r = runTailscale(bin, ["serve", "status", "--json"]);
|
|
194
|
+
if (!r.ok)
|
|
195
|
+
return r;
|
|
145
196
|
try {
|
|
146
|
-
const
|
|
147
|
-
|
|
148
|
-
return Boolean(cfg?.AllowFunnel && Object.keys(cfg.AllowFunnel).length > 0);
|
|
197
|
+
const cfg = JSON.parse(r.stdout ?? "");
|
|
198
|
+
return { ok: true, configured: Boolean(cfg?.AllowFunnel && Object.keys(cfg.AllowFunnel).length > 0) };
|
|
149
199
|
}
|
|
150
200
|
catch {
|
|
151
|
-
return false;
|
|
201
|
+
return { ok: false, error: `unparseable serve output — ${firstLine(r.stdout)}` };
|
|
152
202
|
}
|
|
153
203
|
}
|
|
154
204
|
/** Public ingress addresses for the funnel hostname, via a public resolver. */
|
|
@@ -225,6 +275,7 @@ export function startFunnelWatchdog(opts = {}) {
|
|
|
225
275
|
const state = initialState();
|
|
226
276
|
let stopped = false;
|
|
227
277
|
let watching = false;
|
|
278
|
+
let cliComplained = false;
|
|
228
279
|
let timer;
|
|
229
280
|
const arm = (ms) => {
|
|
230
281
|
if (stopped)
|
|
@@ -236,12 +287,36 @@ export function startFunnelWatchdog(opts = {}) {
|
|
|
236
287
|
if (stopped)
|
|
237
288
|
return;
|
|
238
289
|
try {
|
|
239
|
-
|
|
240
|
-
if (!hostname
|
|
290
|
+
let hostname = opts.hostname;
|
|
291
|
+
if (!hostname) {
|
|
292
|
+
const found = funnelHostname(bin);
|
|
293
|
+
if (!found.ok) {
|
|
294
|
+
// Cannot ask the client. Say it once — quietly returning here is what
|
|
295
|
+
// made the first version of this watchdog indistinguishable from a
|
|
296
|
+
// working one.
|
|
297
|
+
if (!cliComplained) {
|
|
298
|
+
cliComplained = true;
|
|
299
|
+
log(`funnel-watchdog: cannot query the Tailscale client — ${found.error}. ` +
|
|
300
|
+
"Set AIBROKER_FUNNEL_HOST to watch anyway (healing still needs the client).");
|
|
301
|
+
}
|
|
302
|
+
return arm(HEALTHY_INTERVAL_MS);
|
|
303
|
+
}
|
|
304
|
+
hostname = found.hostname;
|
|
305
|
+
}
|
|
306
|
+
const cfg = funnelConfigured(bin);
|
|
307
|
+
if (!cfg.ok) {
|
|
308
|
+
if (!cliComplained) {
|
|
309
|
+
cliComplained = true;
|
|
310
|
+
log(`funnel-watchdog: cannot read the serve config — ${cfg.error}`);
|
|
311
|
+
}
|
|
312
|
+
return arm(HEALTHY_INTERVAL_MS);
|
|
313
|
+
}
|
|
314
|
+
if (!hostname || !cfg.configured) {
|
|
241
315
|
// No funnel to watch. Not an error — the OTA hub and the webhook are
|
|
242
316
|
// both optional — so check again later rather than giving up for good.
|
|
243
317
|
return arm(HEALTHY_INTERVAL_MS);
|
|
244
318
|
}
|
|
319
|
+
cliComplained = false;
|
|
245
320
|
const results = await probe(hostname);
|
|
246
321
|
const verdict = classify(results);
|
|
247
322
|
if (!watching) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"funnel-watchdog.js","sourceRoot":"","sources":["../../src/daemon/funnel-watchdog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,8EAA8E;AAC9E,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAEhD,gFAAgF;AAChF,MAAM,oBAAoB,GAAG;IAC3B,sDAAsD;IACtD,0BAA0B;IAC1B,6BAA6B;CAC9B,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,GAAG,MAAM,CAAC;AACvC,4EAA4E;AAC5E,MAAM,mBAAmB,GAAG,MAAM,CAAC;AACnC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAC/B,MAAM,gBAAgB,GAAG,EAAE,GAAG,MAAM,CAAC;AACrC,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAahC,MAAM,UAAU,YAAY;IAC1B,OAAO,EAAE,eAAe,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAClD,CAAC;AAUD;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAsB;IAC7C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3C,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IACnE,OAAO,MAAM,CAAC;AAChB,CAAC;AAeD;;;;;;GAMG;AACH,MAAM,UAAU,MAAM,CACpB,KAAoB,EACpB,OAAgB,EAChB,GAAW,EACX,OAAsB,EAAE;IAExB,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,IAAI,oBAAoB,CAAC;IAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,IAAI,gBAAgB,CAAC;IACzD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,IAAI,mBAAmB,CAAC;IAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,IAAI,mBAAmB,CAAC;IAE9D,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC;QAC1B,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;QACxB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC5E,CAAC;IAED,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,uEAAuE;QACvE,2EAA2E;QAC3E,qCAAqC;QACrC,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC;QAC1B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,eAAe,IAAI,CAAC,CAAC;IAC3B,IAAI,KAAK,CAAC,eAAe,GAAG,SAAS,EAAE,CAAC;QACtC,OAAO;YACL,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,wBAAwB,KAAK,CAAC,eAAe,IAAI,SAAS,GAAG;SACtE,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC;IACjF,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC;QACrB,OAAO;YACL,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,uCAAuC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,sBAAsB;SAC9F,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC;IACvB,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC;IAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,sCAAsC,EAAE,CAAC;AAC9F,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,eAAe;IAC7B,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,GAAG,GAAG,eAAe,EAAE;IACpD,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3F,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC;QAC5C,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAChF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,gBAAgB,CAAC,GAAG,GAAG,eAAe,EAAE;IACtD,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IACvB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACpG,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,OAAO,CAAC,GAAG,EAAE,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAAgB;IACnD,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,IAAI,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YACrD,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,GAAG,CAAC,MAAM;gBAAE,OAAO,GAAG,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC,CAAC,2BAA2B,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,QAAQ,CAAC,EAAU,EAAE,QAAgB,EAAE,IAAI,GAAG,GAAG;IAC/D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CACvB;YACE,IAAI,EAAE,EAAE;YACR,IAAI,EAAE,GAAG;YACT,IAAI;YACJ,MAAM,EAAE,KAAK;YACb,UAAU,EAAE,QAAQ;YACpB,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,OAAO,EAAE,gBAAgB;SAC1B,EACD,CAAC,GAAG,EAAE,EAAE;YACN,oEAAoE;YACpE,2CAA2C;YAC3C,OAAO,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;YACxC,GAAG,CAAC,MAAM,EAAE,CAAC;QACf,CAAC,CACF,CAAC;QACF,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAwB,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC3F,GAAG,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,6CAA6C;AAC7C,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,QAAgB;IACjD,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,CAAC,GAAG,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAC3B,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,SAAS,CAAC,GAAG,GAAG,eAAe,EAAE;IAC/C,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IACvB,IAAI,CAAC;QACH,YAAY,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAClE,YAAY,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,GAAG,CAAC,uCAAuC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACzF,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAIhC,EAAE;IACJ,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;IAC9B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,GAAG,CAAC,0DAA0D,CAAC,CAAC;QAChE,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,YAAY,CAAC;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,YAAY,EAAE,CAAC;IAC7B,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,KAAiC,CAAC;IAEtC,MAAM,GAAG,GAAG,CAAC,EAAU,EAAE,EAAE;QACzB,IAAI,OAAO;YAAE,OAAO;QACpB,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC7B,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,8BAA8B;IACjD,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;QACtB,IAAI,OAAO;YAAE,OAAO;QACpB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC;YACtD,IAAI,CAAC,QAAQ,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxC,qEAAqE;gBACrE,uEAAuE;gBACvE,OAAO,GAAG,CAAC,mBAAmB,CAAC,CAAC;YAClC,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;YACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;YAElC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,kEAAkE;gBAClE,qEAAqE;gBACrE,0CAA0C;gBAC1C,QAAQ,GAAG,IAAI,CAAC;gBAChB,GAAG,CAAC,mDAAmD,OAAO,CAAC,MAAM,aAAa;oBAC9E,SAAS,IAAI,CAAC,KAAK,CAAC,mBAAmB,GAAG,IAAI,CAAC,iBAAiB,OAAO,EAAE,CAAC,CAAC;YACjF,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAEpD,IAAI,OAAO,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;gBAC3C,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;gBACvB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC/E,GAAG,CAAC,6DAA6D,MAAM,IAAI,sBAAsB,EAAE,CAAC,CAAC;gBACrG,KAAK,CAAC;oBACJ,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ;oBAC9D,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE;iBACnC,CAAC,CAAC;YACL,CAAC;YAED,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC/B,GAAG,CAAC,oBAAoB,QAAQ,CAAC,MAAM,0BAA0B,CAAC,CAAC;gBACnE,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;gBAClB,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC/D,GAAG,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,oBAAoB,KAAK,EAAE,CAAC,CAAC;gBACrF,KAAK,CAAC;oBACJ,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ;oBAC9D,OAAO,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY;oBACpD,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE;iBAC/C,CAAC,CAAC;gBACH,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBACnB,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC;oBAC1B,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;oBACxB,OAAO,GAAG,CAAC,mBAAmB,CAAC,CAAC;gBAClC,CAAC;gBACD,kEAAkE;gBAClE,mEAAmE;gBACnE,0CAA0C;gBAC1C,GAAG,CAAC,mEAAmE;oBACnE,uDAAuD,CAAC,CAAC;gBAC7D,OAAO,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC/B,CAAC;YAED,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,GAAG,CAAC,kCAAkC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACpF,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC,CAAC;IAEF,KAAK,IAAI,EAAE,CAAC,CAAC,yDAAyD;IACtE,OAAO,GAAG,EAAE;QACV,OAAO,GAAG,IAAI,CAAC;QACf,IAAI,KAAK;YAAE,YAAY,CAAC,KAAK,CAAC,CAAC;QAC/B,KAAK,GAAG,SAAS,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"funnel-watchdog.js","sourceRoot":"","sources":["../../src/daemon/funnel-watchdog.ts"],"names":[],"mappings":"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"}
|