@lobu/connector-worker 7.0.0 → 7.2.0

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.
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Heartbeat coverage for the action + embed_backfill executor lanes.
3
+ *
4
+ * lobu#860: PR #859 narrowed the gateway's stale-run reaper to lanes that
5
+ * actually emit `client.heartbeat()` (sync, auth). This test asserts the
6
+ * other two connector-worker lanes — `action` (executeActionRun) and
7
+ * `embed_backfill` (executeEmbedBackfillRun) — now heartbeat on the same
8
+ * 30s cadence so the reaper can be widened back to all four lanes.
9
+ *
10
+ * Strategy: mock the heavy collaborators (`executeCompiledConnector`,
11
+ * `batchGenerateEmbeddings`) so the executor body resolves quickly, and
12
+ * drive the registered setInterval manually to simulate the 70s window
13
+ * (the heartbeat fires at t=30 and t=60, so we should see at least 2
14
+ * calls to `client.heartbeat`).
15
+ */
16
+ export {};
17
+ //# sourceMappingURL=executor-heartbeat.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor-heartbeat.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/executor-heartbeat.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG"}
@@ -0,0 +1,195 @@
1
+ /**
2
+ * Heartbeat coverage for the action + embed_backfill executor lanes.
3
+ *
4
+ * lobu#860: PR #859 narrowed the gateway's stale-run reaper to lanes that
5
+ * actually emit `client.heartbeat()` (sync, auth). This test asserts the
6
+ * other two connector-worker lanes — `action` (executeActionRun) and
7
+ * `embed_backfill` (executeEmbedBackfillRun) — now heartbeat on the same
8
+ * 30s cadence so the reaper can be widened back to all four lanes.
9
+ *
10
+ * Strategy: mock the heavy collaborators (`executeCompiledConnector`,
11
+ * `batchGenerateEmbeddings`) so the executor body resolves quickly, and
12
+ * drive the registered setInterval manually to simulate the 70s window
13
+ * (the heartbeat fires at t=30 and t=60, so we should see at least 2
14
+ * calls to `client.heartbeat`).
15
+ */
16
+ import { afterEach, beforeEach, describe, expect, mock, spyOn, test } from 'bun:test';
17
+ const executeCompiledConnectorMock = mock(async () => ({
18
+ contents: [],
19
+ checkpoint: null,
20
+ }));
21
+ const batchGenerateEmbeddingsMock = mock(async (texts) => texts.map(() => [0.1, 0.2, 0.3]));
22
+ mock.module('../executor/runtime.js', () => ({
23
+ executeCompiledConnector: executeCompiledConnectorMock,
24
+ getActionOutput: () => ({ ok: true }),
25
+ normalizeEventEnvelope: (e) => e,
26
+ }));
27
+ mock.module('../embeddings.js', () => ({
28
+ batchGenerateEmbeddings: batchGenerateEmbeddingsMock,
29
+ generateEmbedding: async () => [0, 0, 0],
30
+ }));
31
+ mock.module('../compile-connector.js', () => ({
32
+ compileConnectorFromFile: async () => 'compiled-code',
33
+ findBundledConnectorFile: () => '/fake/path',
34
+ }));
35
+ mock.module('../executor/subprocess.js', () => ({
36
+ SubprocessExecutor: class {
37
+ // biome-ignore lint/suspicious/noExplicitAny: test stub
38
+ constructor(_opts) { }
39
+ },
40
+ }));
41
+ import { executeRun } from '../daemon/executor.js';
42
+ function makeStubClient() {
43
+ const client = {
44
+ id: 'test-worker',
45
+ version: 'test',
46
+ __heartbeats: 0,
47
+ async heartbeat(_runId) {
48
+ client.__heartbeats += 1;
49
+ },
50
+ async stream() { },
51
+ async complete() { },
52
+ async completeAction() { },
53
+ async completeEmbeddings() { },
54
+ async completeAuth() { },
55
+ async emitAuthArtifact() { },
56
+ async pollAuthSignal() {
57
+ return { signal: null };
58
+ },
59
+ async fetchEventsForEmbedding(ids) {
60
+ return ids.map((id) => ({ id, title: 't', content: 'c' }));
61
+ },
62
+ };
63
+ return client;
64
+ }
65
+ describe('executor heartbeats (lobu#860)', () => {
66
+ // biome-ignore lint/suspicious/noExplicitAny: spy refs
67
+ let setIntervalSpy;
68
+ let scheduledIntervals;
69
+ let intervalsEverScheduledMs;
70
+ let nextId;
71
+ beforeEach(() => {
72
+ nextId = 1;
73
+ scheduledIntervals = [];
74
+ executeCompiledConnectorMock.mockClear();
75
+ batchGenerateEmbeddingsMock.mockClear();
76
+ intervalsEverScheduledMs = [];
77
+ setIntervalSpy = spyOn(globalThis, 'setInterval').mockImplementation(
78
+ // biome-ignore lint/suspicious/noExplicitAny: test seam
79
+ ((fn, ms) => {
80
+ const id = nextId++;
81
+ scheduledIntervals.push({ fn, ms, id });
82
+ intervalsEverScheduledMs.push(ms);
83
+ return id;
84
+ // biome-ignore lint/suspicious/noExplicitAny: cast for setInterval typing
85
+ }));
86
+ spyOn(globalThis, 'clearInterval').mockImplementation(
87
+ // biome-ignore lint/suspicious/noExplicitAny: test seam
88
+ ((id) => {
89
+ scheduledIntervals = scheduledIntervals.filter((s) => s.id !== id);
90
+ }));
91
+ });
92
+ afterEach(() => {
93
+ setIntervalSpy?.mockRestore();
94
+ // biome-ignore lint/suspicious/noExplicitAny: cleanup
95
+ globalThis.clearInterval.mockRestore?.();
96
+ });
97
+ // Drive each registered interval `tickCount` times by invoking the
98
+ // function directly. The executor's setInterval is the only one we
99
+ // scheduled (via the spy), so this is the heartbeat tick.
100
+ async function fireIntervalTicks(tickCount) {
101
+ for (let i = 0; i < tickCount; i++) {
102
+ for (const s of [...scheduledIntervals]) {
103
+ await s.fn();
104
+ }
105
+ }
106
+ }
107
+ test('executeActionRun heartbeats at least twice over a 70s simulated run', async () => {
108
+ const client = makeStubClient();
109
+ // Make executeCompiledConnector return only AFTER 2 heartbeat ticks
110
+ // have fired — simulates the action body taking 60+ seconds.
111
+ executeCompiledConnectorMock.mockImplementationOnce(async () => {
112
+ await fireIntervalTicks(2);
113
+ return { contents: [{ result: { ok: true } }], checkpoint: null };
114
+ });
115
+ const job = {
116
+ run_id: 100,
117
+ run_type: 'action',
118
+ connector_key: 'fake',
119
+ action_key: 'do_thing',
120
+ action_input: {},
121
+ compiled_code: 'compiled-code',
122
+ // biome-ignore lint/suspicious/noExplicitAny: minimal job shape
123
+ };
124
+ // biome-ignore lint/suspicious/noExplicitAny: minimal env
125
+ const result = await executeRun(client, job, {});
126
+ expect(result.error).toBeUndefined();
127
+ expect(client.__heartbeats).toBeGreaterThanOrEqual(2);
128
+ // 30s cadence is the contract with the gateway reaper (default
129
+ // RUNS_REAPER_STALE_AFTER_SECONDS=120 ÷ 4 ≈ 30s). Assert that
130
+ // executeActionRun actually used 30_000ms for its setInterval.
131
+ // `intervalsEverScheduledMs` accumulates across the run, so even
132
+ // after `finally` clears the interval the registration is still
133
+ // recorded here.
134
+ expect(intervalsEverScheduledMs).toContain(30_000);
135
+ });
136
+ test('executeEmbedBackfillRun heartbeats at least twice over a 70s simulated run', async () => {
137
+ const client = makeStubClient();
138
+ batchGenerateEmbeddingsMock.mockImplementationOnce(async (texts) => {
139
+ await fireIntervalTicks(2);
140
+ return texts.map(() => [0.1, 0.2, 0.3]);
141
+ });
142
+ const job = {
143
+ run_id: 200,
144
+ run_type: 'embed_backfill',
145
+ action_input: { event_ids: [1, 2, 3] },
146
+ compiled_code: 'compiled-code',
147
+ // biome-ignore lint/suspicious/noExplicitAny: minimal job
148
+ };
149
+ // biome-ignore lint/suspicious/noExplicitAny: minimal env
150
+ const result = await executeRun(client, job, {});
151
+ expect(result.error).toBeUndefined();
152
+ expect(client.__heartbeats).toBeGreaterThanOrEqual(2);
153
+ });
154
+ test('heartbeat interval is cleared after a successful action run', async () => {
155
+ const client = makeStubClient();
156
+ executeCompiledConnectorMock.mockImplementationOnce(async () => ({
157
+ contents: [{ result: { ok: true } }],
158
+ checkpoint: null,
159
+ }));
160
+ const job = {
161
+ run_id: 300,
162
+ run_type: 'action',
163
+ connector_key: 'fake',
164
+ action_key: 'do_thing',
165
+ action_input: {},
166
+ compiled_code: 'compiled-code',
167
+ // biome-ignore lint/suspicious/noExplicitAny: minimal job
168
+ };
169
+ // biome-ignore lint/suspicious/noExplicitAny: minimal env
170
+ await executeRun(client, job, {});
171
+ // After the run, the heartbeat interval should be cleared on every
172
+ // path via `finally`.
173
+ expect(scheduledIntervals.length).toBe(0);
174
+ });
175
+ test('heartbeat interval is cleared after a failed action run', async () => {
176
+ const client = makeStubClient();
177
+ executeCompiledConnectorMock.mockImplementationOnce(async () => {
178
+ throw new Error('boom');
179
+ });
180
+ const job = {
181
+ run_id: 400,
182
+ run_type: 'action',
183
+ connector_key: 'fake',
184
+ action_key: 'do_thing',
185
+ action_input: {},
186
+ compiled_code: 'compiled-code',
187
+ // biome-ignore lint/suspicious/noExplicitAny: minimal job
188
+ };
189
+ // biome-ignore lint/suspicious/noExplicitAny: minimal env
190
+ const result = await executeRun(client, job, {});
191
+ expect(result.error).toContain('boom');
192
+ expect(scheduledIntervals.length).toBe(0);
193
+ });
194
+ });
195
+ //# sourceMappingURL=executor-heartbeat.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor-heartbeat.test.js","sourceRoot":"","sources":["../../src/__tests__/executor-heartbeat.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Worker-side connector compiler.
3
+ *
4
+ * Until lobu#771's perf brainstorm, the gateway compiled connector bundles
5
+ * via esbuild and shipped the ~13 MB output inline in every `/api/workers/poll`
6
+ * response. The gateway pod held all ~29 connector bundles in its
7
+ * compile cache (~384 MB, dominant heap occupant under the 1 GiB limit;
8
+ * see lobu#771 for the heap-snapshot trail).
9
+ *
10
+ * For fleet workers (and embedded mode where worker + gateway share a host),
11
+ * the bundled connector .ts source is on disk in both pods — the gateway
12
+ * doesn't need to compile or ship it. The gateway now sends
13
+ * `connector_source_path` (the absolute path that `findBundledConnectorFile`
14
+ * resolved) and this module compiles locally in the worker process.
15
+ *
16
+ * Device workers (Lobu Mac Bridge, etc.) keep getting `compiled_code` inline
17
+ * — they don't have the connectors directory on disk.
18
+ *
19
+ * This file mirrors the server's `utils/connector-catalog.ts` compile pipeline.
20
+ * Kept here (rather than shared) so the connector-worker package doesn't take
21
+ * a runtime dep on the server package's bundle layout.
22
+ */
23
+ export declare function findBundledConnectorFile(key: string): string | null;
24
+ export declare function compileConnectorFromFile(filePath: string): Promise<string>;
25
+ //# sourceMappingURL=compile-connector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile-connector.d.ts","sourceRoot":"","sources":["../src/compile-connector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAkCH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAwBnE;AA6CD,wBAAsB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAyChF"}
@@ -0,0 +1,162 @@
1
+ /**
2
+ * Worker-side connector compiler.
3
+ *
4
+ * Until lobu#771's perf brainstorm, the gateway compiled connector bundles
5
+ * via esbuild and shipped the ~13 MB output inline in every `/api/workers/poll`
6
+ * response. The gateway pod held all ~29 connector bundles in its
7
+ * compile cache (~384 MB, dominant heap occupant under the 1 GiB limit;
8
+ * see lobu#771 for the heap-snapshot trail).
9
+ *
10
+ * For fleet workers (and embedded mode where worker + gateway share a host),
11
+ * the bundled connector .ts source is on disk in both pods — the gateway
12
+ * doesn't need to compile or ship it. The gateway now sends
13
+ * `connector_source_path` (the absolute path that `findBundledConnectorFile`
14
+ * resolved) and this module compiles locally in the worker process.
15
+ *
16
+ * Device workers (Lobu Mac Bridge, etc.) keep getting `compiled_code` inline
17
+ * — they don't have the connectors directory on disk.
18
+ *
19
+ * This file mirrors the server's `utils/connector-catalog.ts` compile pipeline.
20
+ * Kept here (rather than shared) so the connector-worker package doesn't take
21
+ * a runtime dep on the server package's bundle layout.
22
+ */
23
+ import { existsSync } from 'node:fs';
24
+ import { mkdtemp, readFile, rm, stat } from 'node:fs/promises';
25
+ import { createRequire } from 'node:module';
26
+ import { tmpdir } from 'node:os';
27
+ import { join, resolve } from 'node:path';
28
+ import { fileURLToPath } from 'node:url';
29
+ import { build } from 'esbuild';
30
+ import { EXTERNAL_RUNTIME_DEPS } from './runtime-deps.js';
31
+ // Worker-side resolver for the bundled connectors directory. The gateway's
32
+ // `findBundledConnectorFile` resolves to paths that exist in the gateway
33
+ // image (e.g. /app/packages/server/dist/connectors); those paths do not
34
+ // exist in the worker image, which has the sources at
35
+ // /app/packages/connectors. Each side resolves locally instead of trusting
36
+ // gateway-supplied absolute paths.
37
+ const HERE = fileURLToPath(new URL('.', import.meta.url));
38
+ const WORKER_CONNECTOR_DIR_CANDIDATES = [
39
+ resolve(HERE, '../../../connectors/src'),
40
+ resolve(HERE, '../../../connectors/dist'),
41
+ resolve(HERE, '../../connectors/src'),
42
+ resolve(HERE, '../../connectors/dist'),
43
+ resolve(HERE, '../connectors/src'),
44
+ resolve(process.cwd(), 'packages/connectors/src'),
45
+ resolve(process.cwd(), 'connectors'),
46
+ ];
47
+ // Strict regex for connector_key: lowercase letters/digits, optional dots
48
+ // for namespacing, underscores for word separators. Defense-in-depth even
49
+ // though keys come from a trusted DB column — we're about to use the value
50
+ // to construct a filesystem path.
51
+ const CONNECTOR_KEY_RE = /^[a-z][a-z0-9]*(?:[._][a-z0-9]+)*$/;
52
+ export function findBundledConnectorFile(key) {
53
+ if (!CONNECTOR_KEY_RE.test(key))
54
+ return null;
55
+ // Two filename conventions:
56
+ // - Subdirectory layout (preferred for grouped primitives): the dot in
57
+ // `browser.evaluate` maps to `browser/evaluate.ts`. Lets us co-locate
58
+ // related connectors without renaming the key.
59
+ // - Flat-with-underscores (existing convention): `chrome.tabs` →
60
+ // `chrome_tabs.ts`, `apple_health` → `apple_health.ts`.
61
+ // Try subdirectory first so newer primitives win when both happen to exist.
62
+ const candidates = [
63
+ `${key.replace(/\./g, '/')}.ts`,
64
+ `${key.replace(/\./g, '_')}.ts`,
65
+ ];
66
+ for (const dir of WORKER_CONNECTOR_DIR_CANDIDATES) {
67
+ for (const fileName of candidates) {
68
+ const filePath = resolve(dir, fileName);
69
+ // Belt-and-braces: the resolved path must stay under the candidate
70
+ // dir. CONNECTOR_KEY_RE already forbids `..`, but the regex doesn't
71
+ // know about our path-joining choices.
72
+ if (!filePath.startsWith(`${dir}/`))
73
+ continue;
74
+ if (existsSync(filePath))
75
+ return filePath;
76
+ }
77
+ }
78
+ return null;
79
+ }
80
+ const require_ = createRequire(import.meta.url);
81
+ const SDK_ENTRY = require_.resolve('@lobu/connector-sdk');
82
+ // Connectors declare runtime npm deps via `import x from 'npm:foo@1.2.3'`.
83
+ // Strip the prefix so esbuild resolves the bare name against node_modules;
84
+ // when the package isn't installed here, mark it external so the bundle
85
+ // still emits. The worker image is expected to provide it.
86
+ const npmSpecifierPlugin = {
87
+ name: 'npm-specifier',
88
+ setup(b) {
89
+ b.onResolve({ filter: /^npm:/ }, async (args) => {
90
+ const bare = args.path
91
+ .slice(4)
92
+ .replace(/^(@[^/]+\/[^/@]+)@[^/]*/, '$1')
93
+ .replace(/^([^/@]+)@[^/]*/, '$1');
94
+ const resolved = await b.resolve(bare, {
95
+ resolveDir: args.resolveDir,
96
+ kind: args.kind,
97
+ });
98
+ if (resolved.errors.length > 0) {
99
+ return { path: bare, external: true, errors: [], warnings: [] };
100
+ }
101
+ return resolved;
102
+ });
103
+ },
104
+ };
105
+ // LRU-capped cache. Worker daemon is long-lived; one entry per recently-used
106
+ // connector. See the matching cache in
107
+ // `packages/server/src/utils/connector-catalog.ts` for the cap rationale.
108
+ const COMPILED_FILE_CACHE_MAX = 8;
109
+ const compiledFileCache = new Map();
110
+ function touchCacheEntry(filePath, entry) {
111
+ compiledFileCache.delete(filePath);
112
+ compiledFileCache.set(filePath, entry);
113
+ while (compiledFileCache.size > COMPILED_FILE_CACHE_MAX) {
114
+ const oldest = compiledFileCache.keys().next().value;
115
+ if (oldest === undefined)
116
+ break;
117
+ compiledFileCache.delete(oldest);
118
+ }
119
+ }
120
+ export async function compileConnectorFromFile(filePath) {
121
+ let mtimeMs = null;
122
+ try {
123
+ mtimeMs = (await stat(filePath)).mtimeMs;
124
+ const cached = compiledFileCache.get(filePath);
125
+ if (cached && cached.mtimeMs === mtimeMs) {
126
+ touchCacheEntry(filePath, cached);
127
+ return cached.code;
128
+ }
129
+ }
130
+ catch {
131
+ // stat failed — let the build surface the real error.
132
+ }
133
+ const tmpDir = await mkdtemp(join(tmpdir(), 'lobu-connector-worker-'));
134
+ const outPath = join(tmpDir, 'out.mjs');
135
+ try {
136
+ await build({
137
+ entryPoints: [filePath],
138
+ outfile: outPath,
139
+ bundle: true,
140
+ format: 'esm',
141
+ platform: 'node',
142
+ target: 'node20',
143
+ alias: { lobu: SDK_ENTRY, '@lobu/connector-sdk': SDK_ENTRY },
144
+ banner: {
145
+ js: `import { createRequire as __createRequire } from 'module'; const require = __createRequire(import.meta.url);`,
146
+ },
147
+ plugins: [npmSpecifierPlugin],
148
+ external: [...EXTERNAL_RUNTIME_DEPS],
149
+ write: true,
150
+ minify: false,
151
+ sourcemap: false,
152
+ });
153
+ const code = await readFile(outPath, 'utf-8');
154
+ if (mtimeMs !== null)
155
+ touchCacheEntry(filePath, { mtimeMs, code });
156
+ return code;
157
+ }
158
+ finally {
159
+ await rm(tmpDir, { recursive: true, force: true });
160
+ }
161
+ }
162
+ //# sourceMappingURL=compile-connector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile-connector.js","sourceRoot":"","sources":["../src/compile-connector.ts"],"names":[],"mappings":"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"}
@@ -64,7 +64,16 @@ export interface PollResponse {
64
64
  connection_id?: number;
65
65
  /** Feed ID (for sync runs) */
66
66
  feed_id?: number;
67
- /** Compiled connector code */
67
+ /**
68
+ * Compiled connector code, shipped inline. Used for device workers and
69
+ * DB-only user-uploaded connectors that don't have the connector source
70
+ * on disk. Fleet workers receive a bare `connector_key` only (no
71
+ * inline code) and resolve + compile the source from their own
72
+ * filesystem to keep poll responses small — see worker-api.ts handler
73
+ * comment + lobu#772 review for why we send the key and not an absolute
74
+ * path (gateway and worker images have different paths to the same
75
+ * sources).
76
+ */
68
77
  compiled_code?: string;
69
78
  /** Connection session state (browser cookies, etc.) */
70
79
  session_state?: Record<string, unknown>;
@@ -201,6 +210,7 @@ export declare class WorkerClient implements ExecutorClient {
201
210
  version?: string;
202
211
  });
203
212
  private authHeaders;
213
+ private post;
204
214
  private requestJson;
205
215
  private requestVoid;
206
216
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/daemon/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/daemon/client.ts"],"names":[],"mappings":"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"}
@@ -27,11 +27,9 @@ export class WorkerClient {
27
27
  this.version = config.version ?? '1.0.0';
28
28
  }
29
29
  authHeaders() {
30
- if (!this.authToken)
31
- return {};
32
- return { Authorization: `Bearer ${this.authToken}` };
30
+ return this.authToken ? { Authorization: `Bearer ${this.authToken}` } : {};
33
31
  }
34
- async requestJson(path, body) {
32
+ async post(path, body) {
35
33
  const response = await fetch(`${this.apiUrl}${path}`, {
36
34
  method: 'POST',
37
35
  headers: {
@@ -44,21 +42,14 @@ export class WorkerClient {
44
42
  const responseText = await response.text();
45
43
  throw new Error(`${path} failed: ${response.status} ${response.statusText} ${responseText}`);
46
44
  }
45
+ return response;
46
+ }
47
+ async requestJson(path, body) {
48
+ const response = await this.post(path, body);
47
49
  return response.json();
48
50
  }
49
51
  async requestVoid(path, body) {
50
- const response = await fetch(`${this.apiUrl}${path}`, {
51
- method: 'POST',
52
- headers: {
53
- 'Content-Type': 'application/json',
54
- ...this.authHeaders(),
55
- },
56
- body: JSON.stringify(body),
57
- });
58
- if (!response.ok) {
59
- const responseText = await response.text();
60
- throw new Error(`${path} failed: ${response.status} ${response.statusText} ${responseText}`);
61
- }
52
+ await this.post(path, body);
62
53
  }
63
54
  /**
64
55
  * Poll for available runs
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/daemon/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/daemon/client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/daemon/executor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAuB,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAQpE,OAAO,KAAK,EAAe,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE7E,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;CACzB;AAUD;;;;GAIG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,YAAY,EACjB,GAAG,EAAE,GAAG,EACR,MAAM,GAAE,OAAO,CAAC,cAAc,CAAM,GACnC,OAAO,CAAC;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAuBrD"}
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/daemon/executor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAuB,GAAG,EAAE,MAAM,qBAAqB,CAAC;AASpE,OAAO,KAAK,EAAe,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AA8C7E,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;CACzB;AAUD;;;;GAIG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,YAAY,EACjB,GAAG,EAAE,GAAG,EACR,MAAM,GAAE,OAAO,CAAC,cAAc,CAAM,GACnC,OAAO,CAAC;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAqBrD"}