@opendatalabs/connect 0.8.0 → 0.8.1-canary.03023c2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/README.md +78 -0
  2. package/dist/cli/bin.d.ts +3 -0
  3. package/dist/cli/bin.d.ts.map +1 -0
  4. package/dist/cli/bin.js +15 -0
  5. package/dist/cli/bin.js.map +1 -0
  6. package/dist/cli/index.d.ts +2 -0
  7. package/dist/cli/index.d.ts.map +1 -0
  8. package/dist/cli/index.js +2741 -0
  9. package/dist/cli/index.js.map +1 -0
  10. package/dist/cli/main.d.ts +2 -0
  11. package/dist/cli/main.d.ts.map +1 -0
  12. package/dist/cli/main.js +10 -0
  13. package/dist/cli/main.js.map +1 -0
  14. package/dist/cli/render/capabilities.d.ts +9 -0
  15. package/dist/cli/render/capabilities.d.ts.map +1 -0
  16. package/dist/cli/render/capabilities.js +24 -0
  17. package/dist/cli/render/capabilities.js.map +1 -0
  18. package/dist/cli/render/format.d.ts +22 -0
  19. package/dist/cli/render/format.d.ts.map +1 -0
  20. package/dist/cli/render/format.js +77 -0
  21. package/dist/cli/render/format.js.map +1 -0
  22. package/dist/cli/render/index.d.ts +6 -0
  23. package/dist/cli/render/index.d.ts.map +1 -0
  24. package/dist/cli/render/index.js +6 -0
  25. package/dist/cli/render/index.js.map +1 -0
  26. package/dist/cli/render/progress.d.ts +11 -0
  27. package/dist/cli/render/progress.d.ts.map +1 -0
  28. package/dist/cli/render/progress.js +56 -0
  29. package/dist/cli/render/progress.js.map +1 -0
  30. package/dist/cli/render/symbols.d.ts +11 -0
  31. package/dist/cli/render/symbols.d.ts.map +1 -0
  32. package/dist/cli/render/symbols.js +21 -0
  33. package/dist/cli/render/symbols.js.map +1 -0
  34. package/dist/cli/render/theme.d.ts +15 -0
  35. package/dist/cli/render/theme.d.ts.map +1 -0
  36. package/dist/cli/render/theme.js +41 -0
  37. package/dist/cli/render/theme.js.map +1 -0
  38. package/dist/connectors/index.d.ts +2 -0
  39. package/dist/connectors/index.d.ts.map +1 -0
  40. package/dist/connectors/index.js +2 -0
  41. package/dist/connectors/index.js.map +1 -0
  42. package/dist/connectors/registry.d.ts +30 -0
  43. package/dist/connectors/registry.d.ts.map +1 -0
  44. package/dist/connectors/registry.js +166 -0
  45. package/dist/connectors/registry.js.map +1 -0
  46. package/dist/core/cli-types.d.ts +595 -0
  47. package/dist/core/cli-types.d.ts.map +1 -0
  48. package/dist/core/cli-types.js +284 -0
  49. package/dist/core/cli-types.js.map +1 -0
  50. package/dist/core/index.d.ts +3 -0
  51. package/dist/core/index.d.ts.map +1 -1
  52. package/dist/core/index.js +3 -0
  53. package/dist/core/index.js.map +1 -1
  54. package/dist/core/paths.d.ts +8 -0
  55. package/dist/core/paths.d.ts.map +1 -0
  56. package/dist/core/paths.js +25 -0
  57. package/dist/core/paths.js.map +1 -0
  58. package/dist/core/state-store.d.ts +22 -0
  59. package/dist/core/state-store.d.ts.map +1 -0
  60. package/dist/core/state-store.js +87 -0
  61. package/dist/core/state-store.js.map +1 -0
  62. package/dist/core/types.d.ts +4 -0
  63. package/dist/core/types.d.ts.map +1 -1
  64. package/dist/personal-server/index.d.ts +8 -0
  65. package/dist/personal-server/index.d.ts.map +1 -0
  66. package/dist/personal-server/index.js +76 -0
  67. package/dist/personal-server/index.js.map +1 -0
  68. package/dist/react/useVanaData.d.ts +1 -1
  69. package/dist/react/useVanaData.d.ts.map +1 -1
  70. package/dist/react/useVanaData.js +22 -9
  71. package/dist/react/useVanaData.js.map +1 -1
  72. package/dist/runtime/core/contracts.d.ts +83 -0
  73. package/dist/runtime/core/contracts.d.ts.map +1 -0
  74. package/dist/runtime/core/contracts.js +2 -0
  75. package/dist/runtime/core/contracts.js.map +1 -0
  76. package/dist/runtime/core/index.d.ts +2 -0
  77. package/dist/runtime/core/index.d.ts.map +1 -0
  78. package/dist/runtime/core/index.js +2 -0
  79. package/dist/runtime/core/index.js.map +1 -0
  80. package/dist/runtime/index.d.ts +4 -0
  81. package/dist/runtime/index.d.ts.map +1 -0
  82. package/dist/runtime/index.js +3 -0
  83. package/dist/runtime/index.js.map +1 -0
  84. package/dist/runtime/managed-playwright.d.ts +38 -0
  85. package/dist/runtime/managed-playwright.d.ts.map +1 -0
  86. package/dist/runtime/managed-playwright.js +172 -0
  87. package/dist/runtime/managed-playwright.js.map +1 -0
  88. package/dist/runtime/playwright/browser.d.ts +12 -0
  89. package/dist/runtime/playwright/browser.d.ts.map +1 -0
  90. package/dist/runtime/playwright/browser.js +218 -0
  91. package/dist/runtime/playwright/browser.js.map +1 -0
  92. package/dist/runtime/playwright/in-process-run.d.ts +6 -0
  93. package/dist/runtime/playwright/in-process-run.d.ts.map +1 -0
  94. package/dist/runtime/playwright/in-process-run.js +576 -0
  95. package/dist/runtime/playwright/in-process-run.js.map +1 -0
  96. package/dist/runtime/playwright/index.d.ts +3 -0
  97. package/dist/runtime/playwright/index.d.ts.map +1 -0
  98. package/dist/runtime/playwright/index.js +3 -0
  99. package/dist/runtime/playwright/index.js.map +1 -0
  100. package/dist/runtime/repo-paths.d.ts +2 -0
  101. package/dist/runtime/repo-paths.d.ts.map +1 -0
  102. package/dist/runtime/repo-paths.js +36 -0
  103. package/dist/runtime/repo-paths.js.map +1 -0
  104. package/dist/server/config.d.ts +2 -0
  105. package/dist/server/config.d.ts.map +1 -1
  106. package/dist/server/config.js +1 -0
  107. package/dist/server/config.js.map +1 -1
  108. package/dist/server/connect.d.ts.map +1 -1
  109. package/dist/server/connect.js +7 -0
  110. package/dist/server/connect.js.map +1 -1
  111. package/package.json +48 -4
@@ -0,0 +1,576 @@
1
+ import fs from "node:fs";
2
+ import fsp from "node:fs/promises";
3
+ import os from "node:os";
4
+ import path from "node:path";
5
+ import { ensureParentDir, getLastResultPath } from "../../core/index.js";
6
+ import { getDefaultUserDataDir, importChromeCookies, isSystemChrome, launchPersistentContext, resolveBrowserPath, } from "./browser.js";
7
+ class NeedsInputError extends Error {
8
+ constructor() {
9
+ super("Connector requires additional input.");
10
+ }
11
+ }
12
+ class LegacyAuthError extends Error {
13
+ constructor(method) {
14
+ super(`${method} is not supported by the in-process runtime.`);
15
+ }
16
+ }
17
+ function setupNetworkCapture(page, networkCaptures, capturedResponses, writeLog) {
18
+ page.on("response", async (response) => {
19
+ const url = response.url();
20
+ for (const [key, config] of networkCaptures.entries()) {
21
+ if (config.urlPattern && !url.includes(config.urlPattern)) {
22
+ continue;
23
+ }
24
+ try {
25
+ const request = response.request();
26
+ const postData = request.postData() || "";
27
+ if (config.bodyPattern) {
28
+ const patterns = config.bodyPattern.split("|");
29
+ if (!patterns.some((pattern) => postData.includes(pattern))) {
30
+ continue;
31
+ }
32
+ }
33
+ const body = await response.json().catch(() => null);
34
+ if (body) {
35
+ capturedResponses.set(key, {
36
+ url,
37
+ data: body,
38
+ timestamp: Date.now(),
39
+ });
40
+ writeLog(`[network] captured ${key} from ${url}`);
41
+ }
42
+ }
43
+ catch {
44
+ // Ignore non-JSON responses.
45
+ }
46
+ }
47
+ });
48
+ }
49
+ async function reopenContext(runState, networkCaptures, capturedResponses, headless, writeLog, pushEvent, source, logPath) {
50
+ if (runState.context && !runState.browserClosed) {
51
+ runState.browserClosedByConnector = true;
52
+ await runState.context.close().catch(() => { });
53
+ runState.context = null;
54
+ runState.page = null;
55
+ }
56
+ runState.browserClosed = false;
57
+ runState.browserClosedByConnector = false;
58
+ runState.headless = headless;
59
+ runState.context = await launchPersistentContext(runState.userDataDir, headless, runState.browserPath);
60
+ runState.page =
61
+ runState.context.pages()[0] || (await runState.context.newPage());
62
+ runState.context.browser()?.on("disconnected", () => {
63
+ runState.browserClosed = true;
64
+ runState.context = null;
65
+ runState.page = null;
66
+ if (!runState.connectorCompleted && !runState.browserClosedByConnector) {
67
+ pushEvent({
68
+ type: "runtime-error",
69
+ source,
70
+ message: "Browser session ended before the connector completed.",
71
+ logPath,
72
+ });
73
+ }
74
+ });
75
+ if (runState.page) {
76
+ setupNetworkCapture(runState.page, networkCaptures, capturedResponses, writeLog);
77
+ }
78
+ writeLog(`[browser] launched ${headless ? "headless" : "headed"} context at ${runState.userDataDir}`);
79
+ }
80
+ async function ensureHeadedBrowser(runState, source, logPath, pushEvent, writeLog, networkCaptures, capturedResponses, url) {
81
+ if (!runState.allowHeaded) {
82
+ writeLog("[browser] headed interaction requested but prompting is disabled");
83
+ throw new LegacyAuthError(url ? "showBrowser" : "promptUser");
84
+ }
85
+ if (process.platform === "linux" &&
86
+ !process.env.DISPLAY &&
87
+ !process.env.WAYLAND_DISPLAY) {
88
+ throw new Error("This source needs a manual browser step, but no local display server is available. Run this command in a desktop session or use xvfb-run.");
89
+ }
90
+ if (runState.headless || runState.browserClosed || !runState.context) {
91
+ pushEvent({
92
+ type: "headed-required",
93
+ source,
94
+ message: "This source needs a manual browser step. Opening a local browser session on this machine.",
95
+ logPath,
96
+ url,
97
+ });
98
+ await reopenContext(runState, networkCaptures, capturedResponses, false, writeLog, pushEvent, source, logPath);
99
+ }
100
+ if (url && runState.page) {
101
+ await runState.page.goto(url, { waitUntil: "domcontentloaded" });
102
+ }
103
+ return true;
104
+ }
105
+ export function startInProcessConnectorRun({ request, logPath, }) {
106
+ const runId = `${path.basename(request.connectorPath, path.extname(request.connectorPath))}-${Date.now()}`;
107
+ const pendingInputPath = path.join(os.homedir(), ".dataconnect", `pending-input-${runId}.json`);
108
+ const responseInputPath = path.join(os.homedir(), ".dataconnect", `input-response-${runId}.json`);
109
+ const logStream = fs.createWriteStream(logPath);
110
+ const queue = [];
111
+ let resolveQueue = null;
112
+ let settled = false;
113
+ let activeContext = null;
114
+ let activeRunState = null;
115
+ const flushQueue = () => {
116
+ resolveQueue?.();
117
+ resolveQueue = null;
118
+ };
119
+ const pushEvent = (event) => {
120
+ queue.push(event);
121
+ flushQueue();
122
+ };
123
+ const writeLog = (message) => {
124
+ logStream.write(`${message}\n`);
125
+ };
126
+ const runPromise = (async () => {
127
+ pushEvent({
128
+ type: "run-started",
129
+ source: request.source,
130
+ logPath,
131
+ });
132
+ const slug = path.basename(request.connectorPath, path.extname(request.connectorPath));
133
+ const runState = {
134
+ context: null,
135
+ page: null,
136
+ userDataDir: getDefaultUserDataDir(slug),
137
+ browserPath: null,
138
+ browserClosed: false,
139
+ browserClosedByConnector: false,
140
+ connectorCompleted: false,
141
+ headless: true,
142
+ allowHeaded: !request.noInput,
143
+ hasResult: false,
144
+ resultPath: null,
145
+ cookies: [],
146
+ legacyAuthTriggered: false,
147
+ };
148
+ activeRunState = runState;
149
+ if (request.signal) {
150
+ request.signal.addEventListener("abort", () => {
151
+ void runState.context?.close().catch(() => { });
152
+ });
153
+ }
154
+ try {
155
+ const connectorCode = await fsp.readFile(request.connectorPath, "utf8");
156
+ runState.browserPath = resolveBrowserPath();
157
+ writeLog(`[runtime] Using browser: ${runState.browserPath}`);
158
+ const markerFile = path.join(runState.userDataDir, ".cookies-imported");
159
+ if (isSystemChrome(runState.browserPath) && !fs.existsSync(markerFile)) {
160
+ writeLog("[runtime] Initializing browser profile before cookie import");
161
+ const tempContext = await launchPersistentContext(runState.userDataDir, true, runState.browserPath);
162
+ await tempContext.close();
163
+ importChromeCookies(runState.userDataDir, runState.browserPath);
164
+ }
165
+ await reopenContext(runState, new Map(), new Map(), true, writeLog, pushEvent, request.source, logPath);
166
+ activeContext = runState.context;
167
+ const pageApi = createPageApi({
168
+ request,
169
+ runState,
170
+ logPath,
171
+ pendingInputPath,
172
+ responseInputPath,
173
+ pushEvent,
174
+ writeLog,
175
+ });
176
+ await runState.page?.goto("about:blank", {
177
+ waitUntil: "domcontentloaded",
178
+ });
179
+ const connectorFunction = buildConnectorFunction(connectorCode);
180
+ const result = await connectorFunction.call(null, pageApi);
181
+ if (runState.legacyAuthTriggered) {
182
+ return;
183
+ }
184
+ if (!runState.hasResult && result != null) {
185
+ const exportData = result &&
186
+ typeof result === "object" &&
187
+ "success" in result &&
188
+ "data" in result
189
+ ? result.data
190
+ : result;
191
+ const resultPath = getLastResultPath();
192
+ await ensureParentDir(resultPath);
193
+ await fsp.writeFile(resultPath, `${JSON.stringify(exportData, null, 2)}\n`, "utf8");
194
+ pushEvent({
195
+ type: "collection-complete",
196
+ source: request.source,
197
+ resultPath,
198
+ logPath,
199
+ });
200
+ runState.hasResult = true;
201
+ runState.resultPath = resultPath;
202
+ }
203
+ runState.connectorCompleted = true;
204
+ if (!runState.browserClosed && runState.context) {
205
+ await runState.context.close().catch(() => { });
206
+ }
207
+ }
208
+ catch (error) {
209
+ if (error instanceof NeedsInputError) {
210
+ return;
211
+ }
212
+ pushEvent(classifyRuntimeError(error, request.source, logPath));
213
+ }
214
+ finally {
215
+ settled = true;
216
+ activeContext = runState.context;
217
+ await activeContext?.close().catch(() => { });
218
+ logStream.end();
219
+ flushQueue();
220
+ }
221
+ })();
222
+ return {
223
+ source: request.source,
224
+ logPath,
225
+ async *events() {
226
+ try {
227
+ while (!settled || queue.length > 0) {
228
+ if (queue.length === 0) {
229
+ await new Promise((resolve) => {
230
+ resolveQueue = resolve;
231
+ });
232
+ continue;
233
+ }
234
+ yield queue.shift();
235
+ }
236
+ }
237
+ finally {
238
+ await runPromise.catch(() => { });
239
+ }
240
+ },
241
+ stop() {
242
+ void (activeRunState?.context ?? activeContext)?.close().catch(() => { });
243
+ if (!settled) {
244
+ pushEvent({
245
+ type: "runtime-error",
246
+ source: request.source,
247
+ message: "Connector run stopped.",
248
+ logPath,
249
+ });
250
+ }
251
+ },
252
+ };
253
+ }
254
+ function buildConnectorFunction(connectorCode) {
255
+ let modifiedCode = connectorCode;
256
+ const iifePattern = /\n\(async\s*\(\)\s*=>\s*\{/g;
257
+ const matches = [...modifiedCode.matchAll(iifePattern)];
258
+ if (matches.length > 0) {
259
+ const lastMatch = matches[matches.length - 1];
260
+ modifiedCode =
261
+ modifiedCode.slice(0, lastMatch.index) +
262
+ "\nreturn (async () => {" +
263
+ modifiedCode.slice(lastMatch.index + lastMatch[0].length);
264
+ }
265
+ const AsyncFunction = Object.getPrototypeOf(async function () { })
266
+ .constructor;
267
+ return new AsyncFunction("page", modifiedCode);
268
+ }
269
+ function createPageApi({ request, runState, logPath, pendingInputPath, responseInputPath, pushEvent, writeLog, }) {
270
+ const networkCaptures = new Map();
271
+ const capturedResponses = new Map();
272
+ function requirePage() {
273
+ if (runState.browserClosed || !runState.page) {
274
+ throw new Error("Browser is closed. Use page.httpFetch() for HTTP requests.");
275
+ }
276
+ return runState.page;
277
+ }
278
+ if (runState.page) {
279
+ setupNetworkCapture(runState.page, networkCaptures, capturedResponses, writeLog);
280
+ }
281
+ return {
282
+ goto: async (url, options = {}) => {
283
+ const page = requirePage();
284
+ const gotoOptions = {
285
+ waitUntil: options.waitUntil ?? "domcontentloaded",
286
+ };
287
+ if (options.timeout != null) {
288
+ gotoOptions.timeout = options.timeout;
289
+ }
290
+ writeLog(`[page] goto ${url}`);
291
+ await page.goto(url, gotoOptions);
292
+ },
293
+ evaluate: async (script) => {
294
+ return requirePage().evaluate(script);
295
+ },
296
+ screenshot: async () => {
297
+ const buffer = await requirePage().screenshot({
298
+ type: "jpeg",
299
+ quality: 70,
300
+ timeout: 5000,
301
+ });
302
+ return buffer.toString("base64");
303
+ },
304
+ requestInput: async (payload) => {
305
+ const fields = Object.keys(payload.schema?.properties ?? {});
306
+ const inputRequest = {
307
+ message: payload.message ?? "Additional input is required.",
308
+ schema: payload.schema,
309
+ fields,
310
+ responseInputPath,
311
+ };
312
+ if (request.noInput || !request.onNeedInput) {
313
+ await writePendingInput({
314
+ pendingInputPath,
315
+ responseInputPath,
316
+ message: inputRequest.message ?? "Additional input is required.",
317
+ schema: inputRequest.schema,
318
+ });
319
+ pushEvent({
320
+ type: "needs-input",
321
+ source: request.source,
322
+ message: inputRequest.message ?? "Additional input is required.",
323
+ fields: inputRequest.fields,
324
+ schema: inputRequest.schema,
325
+ responseInputPath,
326
+ logPath,
327
+ });
328
+ throw new NeedsInputError();
329
+ }
330
+ const input = await request.onNeedInput(inputRequest);
331
+ await ensureParentDir(responseInputPath);
332
+ await fsp.writeFile(responseInputPath, `${JSON.stringify(input)}\n`, "utf8");
333
+ await fsp.rm(pendingInputPath, { force: true });
334
+ return input;
335
+ },
336
+ sleep: (ms) => new Promise((resolve) => setTimeout(resolve, ms)),
337
+ setData: async (key, value) => {
338
+ if (key === "status" && typeof value === "string") {
339
+ pushEvent({
340
+ type: "status-update",
341
+ source: request.source,
342
+ logPath,
343
+ message: value,
344
+ });
345
+ }
346
+ if (key === "result") {
347
+ if (!runState.hasResult) {
348
+ const resultPath = getLastResultPath();
349
+ await ensureParentDir(resultPath);
350
+ await fsp.writeFile(resultPath, `${JSON.stringify(value, null, 2)}\n`, "utf8");
351
+ runState.hasResult = true;
352
+ runState.resultPath = resultPath;
353
+ pushEvent({
354
+ type: "collection-complete",
355
+ source: request.source,
356
+ resultPath,
357
+ logPath,
358
+ });
359
+ }
360
+ }
361
+ writeLog(`[data] ${key}=${typeof value === "string" ? value : JSON.stringify(value)}`);
362
+ },
363
+ setProgress: async ({ phase, message, count, }) => {
364
+ pushEvent({
365
+ type: "progress-update",
366
+ source: request.source,
367
+ logPath,
368
+ phase,
369
+ message,
370
+ count,
371
+ });
372
+ writeLog(`[progress] ${JSON.stringify({
373
+ phase,
374
+ message,
375
+ count,
376
+ })}`);
377
+ },
378
+ promptUser: async (message, checkFn, interval = 2000) => {
379
+ writeLog(`[prompt] ${message}`);
380
+ if (request.noInput) {
381
+ if (!runState.legacyAuthTriggered) {
382
+ pushEvent({
383
+ type: "legacy-auth",
384
+ source: request.source,
385
+ message: "This source needs a manual browser step, but prompting is disabled in --no-input mode.",
386
+ logPath,
387
+ });
388
+ }
389
+ runState.legacyAuthTriggered = true;
390
+ return;
391
+ }
392
+ await ensureHeadedBrowser(runState, request.source, logPath, pushEvent, writeLog, networkCaptures, capturedResponses, runState.page?.url());
393
+ pushEvent({
394
+ type: "headed-required",
395
+ source: request.source,
396
+ message,
397
+ logPath,
398
+ url: runState.page?.url(),
399
+ });
400
+ while (true) {
401
+ await new Promise((resolve) => setTimeout(resolve, interval));
402
+ if (request.signal?.aborted ||
403
+ runState.browserClosed ||
404
+ !runState.page) {
405
+ throw new Error("Browser session ended before manual interaction completed.");
406
+ }
407
+ try {
408
+ const result = await checkFn();
409
+ if (result) {
410
+ writeLog("[prompt] User action completed");
411
+ return;
412
+ }
413
+ }
414
+ catch {
415
+ // Keep waiting until the connector's condition passes.
416
+ }
417
+ }
418
+ },
419
+ captureNetwork: async (config) => {
420
+ networkCaptures.set(config.key, {
421
+ urlPattern: config.urlPattern || "",
422
+ bodyPattern: config.bodyPattern || "",
423
+ });
424
+ },
425
+ getCapturedResponse: async (key) => {
426
+ return capturedResponses.get(key) ?? null;
427
+ },
428
+ clearNetworkCaptures: async () => {
429
+ networkCaptures.clear();
430
+ capturedResponses.clear();
431
+ },
432
+ hasCapturedResponse: (key) => capturedResponses.has(key),
433
+ closeBrowser: async () => {
434
+ if (runState.browserClosed) {
435
+ return;
436
+ }
437
+ if (runState.context) {
438
+ try {
439
+ runState.cookies = await runState.context.cookies();
440
+ }
441
+ catch {
442
+ runState.cookies = [];
443
+ }
444
+ }
445
+ runState.browserClosed = true;
446
+ runState.browserClosedByConnector = true;
447
+ await runState.context?.close().catch(() => { });
448
+ runState.context = null;
449
+ runState.page = null;
450
+ writeLog("[browser] closed by connector");
451
+ },
452
+ showBrowser: async (url) => {
453
+ if (request.noInput) {
454
+ if (!runState.legacyAuthTriggered) {
455
+ pushEvent({
456
+ type: "legacy-auth",
457
+ source: request.source,
458
+ message: "This source needs a manual browser step, but prompting is disabled in --no-input mode.",
459
+ logPath,
460
+ });
461
+ }
462
+ runState.legacyAuthTriggered = true;
463
+ return { headed: false };
464
+ }
465
+ await ensureHeadedBrowser(runState, request.source, logPath, pushEvent, writeLog, networkCaptures, capturedResponses, url);
466
+ return { headed: true };
467
+ },
468
+ goHeadless: async () => {
469
+ await reopenContext(runState, networkCaptures, capturedResponses, true, writeLog, pushEvent, request.source, logPath);
470
+ if (runState.page) {
471
+ await runState.page.goto("https://chatgpt.com/", {
472
+ waitUntil: "domcontentloaded",
473
+ });
474
+ }
475
+ },
476
+ httpFetch: async (url, options = {}) => {
477
+ const { timeout = 30000, ...fetchOptions } = options;
478
+ if (runState.cookies.length > 0) {
479
+ try {
480
+ const urlObject = new URL(url);
481
+ const relevantCookies = runState.cookies
482
+ .filter((cookie) => {
483
+ const cookieDomain = cookie.domain.startsWith(".")
484
+ ? cookie.domain.slice(1)
485
+ : cookie.domain;
486
+ return (urlObject.hostname === cookieDomain ||
487
+ urlObject.hostname.endsWith(`.${cookieDomain}`));
488
+ })
489
+ .map((cookie) => `${cookie.name}=${cookie.value}`)
490
+ .join("; ");
491
+ if (relevantCookies) {
492
+ fetchOptions.headers = {
493
+ ...(fetchOptions.headers || {}),
494
+ cookie: relevantCookies,
495
+ };
496
+ }
497
+ }
498
+ catch {
499
+ // Ignore cookie injection failures.
500
+ }
501
+ }
502
+ const controller = new AbortController();
503
+ const timeoutId = setTimeout(() => controller.abort(), timeout);
504
+ try {
505
+ const response = await fetch(url, {
506
+ ...fetchOptions,
507
+ signal: controller.signal,
508
+ });
509
+ clearTimeout(timeoutId);
510
+ const text = await response.text();
511
+ let json = null;
512
+ try {
513
+ json = JSON.parse(text);
514
+ }
515
+ catch {
516
+ json = null;
517
+ }
518
+ return {
519
+ ok: response.ok,
520
+ status: response.status,
521
+ headers: Object.fromEntries(response.headers.entries()),
522
+ text,
523
+ json,
524
+ error: null,
525
+ };
526
+ }
527
+ catch (error) {
528
+ clearTimeout(timeoutId);
529
+ return {
530
+ ok: false,
531
+ status: 0,
532
+ headers: {},
533
+ text: "",
534
+ json: null,
535
+ error: error instanceof Error ? error.message : String(error),
536
+ };
537
+ }
538
+ },
539
+ };
540
+ }
541
+ function classifyRuntimeError(error, source, logPath) {
542
+ const message = error instanceof Error ? error.message : String(error);
543
+ if (message.includes("showBrowser") || message.includes("promptUser")) {
544
+ return {
545
+ type: "legacy-auth",
546
+ source,
547
+ message: "This source needs a manual browser step, but prompting is disabled in --no-input mode.",
548
+ logPath,
549
+ };
550
+ }
551
+ if (message.includes("Missing X server or $DISPLAY") ||
552
+ message.includes("headed browser without having a XServer running")) {
553
+ return {
554
+ type: "runtime-error",
555
+ source,
556
+ message: "This source needs a manual browser step, but no local display server is available. Run this command in a desktop session or use xvfb-run.",
557
+ logPath,
558
+ };
559
+ }
560
+ return {
561
+ type: "runtime-error",
562
+ source,
563
+ message,
564
+ logPath,
565
+ };
566
+ }
567
+ async function writePendingInput({ pendingInputPath, responseInputPath, message, schema, }) {
568
+ await ensureParentDir(pendingInputPath);
569
+ await fsp.writeFile(pendingInputPath, `${JSON.stringify({
570
+ message,
571
+ schema: schema ?? {},
572
+ responseInputPath,
573
+ timestamp: new Date().toISOString(),
574
+ }, null, 2)}\n`, "utf8");
575
+ }
576
+ //# sourceMappingURL=in-process-run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"in-process-run.js","sourceRoot":"","sources":["../../../src/runtime/playwright/in-process-run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { startInProcessConnectorRun } from "./in-process-run.js";
2
+ export { getBrowserCacheDir, getDefaultUserDataDir, getDownloadedChromiumPath, getSystemChromePath, importChromeCookies, isSystemChrome, launchPersistentContext, resolveBrowserPath, } from "./browser.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/playwright/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,yBAAyB,EACzB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,cAAc,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { startInProcessConnectorRun } from "./in-process-run.js";
2
+ export { getBrowserCacheDir, getDefaultUserDataDir, getDownloadedChromiumPath, getSystemChromePath, importChromeCookies, isSystemChrome, launchPersistentContext, resolveBrowserPath, } from "./browser.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/playwright/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,yBAAyB,EACzB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,cAAc,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function findDataConnectorsDir(cwd?: string): string | null;
2
+ //# sourceMappingURL=repo-paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repo-paths.d.ts","sourceRoot":"","sources":["../../src/runtime/repo-paths.ts"],"names":[],"mappings":"AAGA,wBAAgB,qBAAqB,CAAC,GAAG,SAAgB,GAAG,MAAM,GAAG,IAAI,CAwCxE"}
@@ -0,0 +1,36 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ export function findDataConnectorsDir(cwd = process.cwd()) {
4
+ const candidates = [];
5
+ const seen = new Set();
6
+ const pushCandidate = (value) => {
7
+ if (!value) {
8
+ return;
9
+ }
10
+ const resolved = path.resolve(value);
11
+ if (seen.has(resolved)) {
12
+ return;
13
+ }
14
+ seen.add(resolved);
15
+ candidates.push(resolved);
16
+ };
17
+ pushCandidate(process.env.VANA_DATA_CONNECTORS_DIR);
18
+ let currentDir = path.resolve(cwd);
19
+ while (true) {
20
+ pushCandidate(currentDir);
21
+ pushCandidate(path.join(currentDir, "data-connectors"));
22
+ const parentDir = path.dirname(currentDir);
23
+ if (parentDir === currentDir) {
24
+ break;
25
+ }
26
+ currentDir = parentDir;
27
+ }
28
+ for (const candidate of candidates) {
29
+ if (fs.existsSync(path.join(candidate, "registry.json")) &&
30
+ fs.existsSync(path.join(candidate, "skills", "vana-connect", "scripts"))) {
31
+ return candidate;
32
+ }
33
+ }
34
+ return null;
35
+ }
36
+ //# sourceMappingURL=repo-paths.js.map