@detiq/crawler 0.1.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.
- package/Dockerfile +49 -0
- package/README.md +11 -0
- package/dist/accessibility-auditor.d.ts +29 -0
- package/dist/accessibility-auditor.js +57 -0
- package/dist/accessibility-auditor.js.map +7 -0
- package/dist/ai-login.d.ts +32 -0
- package/dist/ai-login.js +177 -0
- package/dist/ai-login.js.map +7 -0
- package/dist/auth-token-rotator.d.ts +47 -0
- package/dist/auth-token-rotator.js +58 -0
- package/dist/auth-token-rotator.js.map +7 -0
- package/dist/auth.d.ts +20 -0
- package/dist/auth.js +329 -0
- package/dist/auth.js.map +7 -0
- package/dist/browser-extension.d.ts +37 -0
- package/dist/browser-extension.js +113 -0
- package/dist/browser-extension.js.map +7 -0
- package/dist/captcha-solver.d.ts +16 -0
- package/dist/captcha-solver.js +105 -0
- package/dist/captcha-solver.js.map +7 -0
- package/dist/color-contrast.d.ts +30 -0
- package/dist/color-contrast.js +78 -0
- package/dist/color-contrast.js.map +7 -0
- package/dist/content-chunker.d.ts +18 -0
- package/dist/content-chunker.js +152 -0
- package/dist/content-chunker.js.map +7 -0
- package/dist/content-dedup.d.ts +23 -0
- package/dist/content-dedup.js +60 -0
- package/dist/content-dedup.js.map +7 -0
- package/dist/cookie-consent.d.ts +25 -0
- package/dist/cookie-consent.js +78 -0
- package/dist/cookie-consent.js.map +7 -0
- package/dist/cookie-jar.d.ts +20 -0
- package/dist/cookie-jar.js +61 -0
- package/dist/cookie-jar.js.map +7 -0
- package/dist/crawler.d.ts +179 -0
- package/dist/crawler.js +3672 -0
- package/dist/crawler.js.map +7 -0
- package/dist/custom-js-injector.d.ts +42 -0
- package/dist/custom-js-injector.js +50 -0
- package/dist/custom-js-injector.js.map +7 -0
- package/dist/dark-mode-capture.d.ts +23 -0
- package/dist/dark-mode-capture.js +75 -0
- package/dist/dark-mode-capture.js.map +7 -0
- package/dist/dead-link-detector.d.ts +37 -0
- package/dist/dead-link-detector.js +50 -0
- package/dist/dead-link-detector.js.map +7 -0
- package/dist/element-hash.d.ts +9 -0
- package/dist/element-hash.js +9 -0
- package/dist/element-hash.js.map +7 -0
- package/dist/email-otp.d.ts +42 -0
- package/dist/email-otp.js +177 -0
- package/dist/email-otp.js.map +7 -0
- package/dist/engine-router.d.ts +47 -0
- package/dist/engine-router.js +94 -0
- package/dist/engine-router.js.map +7 -0
- package/dist/export/bulk-export.d.ts +26 -0
- package/dist/export/bulk-export.js +76 -0
- package/dist/export/bulk-export.js.map +7 -0
- package/dist/export/vector-export.d.ts +76 -0
- package/dist/export/vector-export.js +85 -0
- package/dist/export/vector-export.js.map +7 -0
- package/dist/extractors/advanced.d.ts +54 -0
- package/dist/extractors/advanced.js +245 -0
- package/dist/extractors/advanced.js.map +7 -0
- package/dist/extractors/artifact-envelope.d.ts +63 -0
- package/dist/extractors/artifact-envelope.js +63 -0
- package/dist/extractors/artifact-envelope.js.map +7 -0
- package/dist/failure-analysis-agent.d.ts +16 -0
- package/dist/failure-analysis-agent.js +40 -0
- package/dist/failure-analysis-agent.js.map +7 -0
- package/dist/feature-flag-detector.d.ts +30 -0
- package/dist/feature-flag-detector.js +55 -0
- package/dist/feature-flag-detector.js.map +7 -0
- package/dist/form-detector.d.ts +34 -0
- package/dist/form-detector.js +58 -0
- package/dist/form-detector.js.map +7 -0
- package/dist/frontier.d.ts +32 -0
- package/dist/frontier.js +83 -0
- package/dist/frontier.js.map +7 -0
- package/dist/gap-pass.d.ts +35 -0
- package/dist/gap-pass.js +81 -0
- package/dist/gap-pass.js.map +7 -0
- package/dist/graphql-detector.d.ts +39 -0
- package/dist/graphql-detector.js +86 -0
- package/dist/graphql-detector.js.map +7 -0
- package/dist/http-engine.d.ts +80 -0
- package/dist/http-engine.js +304 -0
- package/dist/http-engine.js.map +7 -0
- package/dist/incremental-diff.d.ts +59 -0
- package/dist/incremental-diff.js +61 -0
- package/dist/incremental-diff.js.map +7 -0
- package/dist/index.d.ts +35 -0
- package/dist/index.js +61 -0
- package/dist/index.js.map +7 -0
- package/dist/input-fuzzer.d.ts +30 -0
- package/dist/input-fuzzer.js +105 -0
- package/dist/input-fuzzer.js.map +7 -0
- package/dist/interactive-probe.d.ts +104 -0
- package/dist/interactive-probe.js +442 -0
- package/dist/interactive-probe.js.map +7 -0
- package/dist/job-queue.d.ts +171 -0
- package/dist/job-queue.js +2256 -0
- package/dist/job-queue.js.map +7 -0
- package/dist/js-coverage.d.ts +29 -0
- package/dist/js-coverage.js +56 -0
- package/dist/js-coverage.js.map +7 -0
- package/dist/js-router-detector.d.ts +17 -0
- package/dist/js-router-detector.js +90 -0
- package/dist/js-router-detector.js.map +7 -0
- package/dist/language-detector.d.ts +22 -0
- package/dist/language-detector.js +57 -0
- package/dist/language-detector.js.map +7 -0
- package/dist/link-classifier.d.ts +23 -0
- package/dist/link-classifier.js +40 -0
- package/dist/link-classifier.js.map +7 -0
- package/dist/live-view.d.ts +36 -0
- package/dist/live-view.js +100 -0
- package/dist/live-view.js.map +7 -0
- package/dist/logger.d.ts +2 -0
- package/dist/logger.js +10 -0
- package/dist/logger.js.map +7 -0
- package/dist/markdown-extract.d.ts +8 -0
- package/dist/markdown-extract.js +54 -0
- package/dist/markdown-extract.js.map +7 -0
- package/dist/native-crawler.d.ts +69 -0
- package/dist/native-crawler.js +839 -0
- package/dist/native-crawler.js.map +7 -0
- package/dist/network-observer.d.ts +49 -0
- package/dist/network-observer.js +149 -0
- package/dist/network-observer.js.map +7 -0
- package/dist/network-throttle.d.ts +25 -0
- package/dist/network-throttle.js +34 -0
- package/dist/network-throttle.js.map +7 -0
- package/dist/openapi-generator.d.ts +49 -0
- package/dist/openapi-generator.js +89 -0
- package/dist/openapi-generator.js.map +7 -0
- package/dist/pdf-extractor.d.ts +28 -0
- package/dist/pdf-extractor.js +81 -0
- package/dist/pdf-extractor.js.map +7 -0
- package/dist/performance-metrics.d.ts +53 -0
- package/dist/performance-metrics.js +83 -0
- package/dist/performance-metrics.js.map +7 -0
- package/dist/phash.d.ts +38 -0
- package/dist/phash.js +115 -0
- package/dist/phash.js.map +7 -0
- package/dist/pii-scrubber.d.ts +21 -0
- package/dist/pii-scrubber.js +75 -0
- package/dist/pii-scrubber.js.map +7 -0
- package/dist/playwright-recorder.d.ts +39 -0
- package/dist/playwright-recorder.js +123 -0
- package/dist/playwright-recorder.js.map +7 -0
- package/dist/policies/crawl-safety.d.ts +9 -0
- package/dist/policies/crawl-safety.js +37 -0
- package/dist/policies/crawl-safety.js.map +7 -0
- package/dist/profiles/domain-profile.d.ts +19 -0
- package/dist/profiles/domain-profile.js +140 -0
- package/dist/profiles/domain-profile.js.map +7 -0
- package/dist/proxy.d.ts +50 -0
- package/dist/proxy.js +165 -0
- package/dist/proxy.js.map +7 -0
- package/dist/rate-limiter.d.ts +31 -0
- package/dist/rate-limiter.js +64 -0
- package/dist/rate-limiter.js.map +7 -0
- package/dist/redirect-tracker.d.ts +37 -0
- package/dist/redirect-tracker.js +65 -0
- package/dist/redirect-tracker.js.map +7 -0
- package/dist/redis-frontier.d.ts +48 -0
- package/dist/redis-frontier.js +126 -0
- package/dist/redis-frontier.js.map +7 -0
- package/dist/redis-queue.d.ts +48 -0
- package/dist/redis-queue.js +165 -0
- package/dist/redis-queue.js.map +7 -0
- package/dist/response-cache.d.ts +38 -0
- package/dist/response-cache.js +140 -0
- package/dist/response-cache.js.map +7 -0
- package/dist/responsive-detector.d.ts +29 -0
- package/dist/responsive-detector.js +46 -0
- package/dist/responsive-detector.js.map +7 -0
- package/dist/retry-policy.d.ts +20 -0
- package/dist/retry-policy.js +54 -0
- package/dist/retry-policy.js.map +7 -0
- package/dist/robots-txt.d.ts +9 -0
- package/dist/robots-txt.js +77 -0
- package/dist/robots-txt.js.map +7 -0
- package/dist/screen-reader.d.ts +16 -0
- package/dist/screen-reader.js +46 -0
- package/dist/screen-reader.js.map +7 -0
- package/dist/screenshot-masker.d.ts +28 -0
- package/dist/screenshot-masker.js +62 -0
- package/dist/screenshot-masker.js.map +7 -0
- package/dist/seo-checker.d.ts +33 -0
- package/dist/seo-checker.js +91 -0
- package/dist/seo-checker.js.map +7 -0
- package/dist/session-capture.d.ts +35 -0
- package/dist/session-capture.js +267 -0
- package/dist/session-capture.js.map +7 -0
- package/dist/session-export.d.ts +49 -0
- package/dist/session-export.js +117 -0
- package/dist/session-export.js.map +7 -0
- package/dist/sitemap-writer.d.ts +21 -0
- package/dist/sitemap-writer.js +47 -0
- package/dist/sitemap-writer.js.map +7 -0
- package/dist/sitemap.d.ts +51 -0
- package/dist/sitemap.js +152 -0
- package/dist/sitemap.js.map +7 -0
- package/dist/skyvern.d.ts +56 -0
- package/dist/skyvern.js +129 -0
- package/dist/skyvern.js.map +7 -0
- package/dist/sqs-queue.d.ts +2 -0
- package/dist/sqs-queue.js +47 -0
- package/dist/sqs-queue.js.map +7 -0
- package/dist/sso-token.d.ts +29 -0
- package/dist/sso-token.js +76 -0
- package/dist/sso-token.js.map +7 -0
- package/dist/stealth/human-behavior.d.ts +20 -0
- package/dist/stealth/human-behavior.js +168 -0
- package/dist/stealth/human-behavior.js.map +7 -0
- package/dist/telemetry.d.ts +34 -0
- package/dist/telemetry.js +77 -0
- package/dist/telemetry.js.map +7 -0
- package/dist/test-executor.d.ts +67 -0
- package/dist/test-executor.js +311 -0
- package/dist/test-executor.js.map +7 -0
- package/dist/tls-fingerprint.d.ts +50 -0
- package/dist/tls-fingerprint.js +81 -0
- package/dist/tls-fingerprint.js.map +7 -0
- package/dist/url-pattern-completer.d.ts +28 -0
- package/dist/url-pattern-completer.js +87 -0
- package/dist/url-pattern-completer.js.map +7 -0
- package/dist/visual-diff-verdict.d.ts +40 -0
- package/dist/visual-diff-verdict.js +25 -0
- package/dist/visual-diff-verdict.js.map +7 -0
- package/dist/webhook-notifier.d.ts +30 -0
- package/dist/webhook-notifier.js +76 -0
- package/dist/webhook-notifier.js.map +7 -0
- package/dist/websocket-detector.d.ts +24 -0
- package/dist/websocket-detector.js +60 -0
- package/dist/websocket-detector.js.map +7 -0
- package/dist/worker.d.ts +1 -0
- package/dist/worker.js +33 -0
- package/dist/worker.js.map +7 -0
- package/package.json +45 -0
- package/src/accessibility-auditor.ts +102 -0
- package/src/ai-login.ts +218 -0
- package/src/auth-token-rotator.ts +89 -0
- package/src/auth.ts +396 -0
- package/src/browser-extension.ts +186 -0
- package/src/captcha-solver.ts +143 -0
- package/src/color-contrast.ts +116 -0
- package/src/content-chunker.ts +170 -0
- package/src/content-dedup.ts +99 -0
- package/src/cookie-consent.ts +106 -0
- package/src/cookie-jar.ts +91 -0
- package/src/crawler.ts +4305 -0
- package/src/custom-js-injector.ts +93 -0
- package/src/dark-mode-capture.ts +110 -0
- package/src/dead-link-detector.ts +76 -0
- package/src/element-hash.ts +16 -0
- package/src/email-otp.ts +252 -0
- package/src/engine-router.ts +141 -0
- package/src/export/bulk-export.ts +85 -0
- package/src/export/vector-export.ts +160 -0
- package/src/extractors/advanced.ts +283 -0
- package/src/extractors/artifact-envelope.ts +111 -0
- package/src/failure-analysis-agent.ts +49 -0
- package/src/feature-flag-detector.ts +97 -0
- package/src/form-detector.ts +103 -0
- package/src/frontier.test.ts +64 -0
- package/src/frontier.ts +112 -0
- package/src/gap-pass.ts +122 -0
- package/src/graphql-detector.ts +129 -0
- package/src/http-engine.ts +433 -0
- package/src/incremental-diff.ts +121 -0
- package/src/index.ts +35 -0
- package/src/input-fuzzer.ts +129 -0
- package/src/interactive-probe.ts +623 -0
- package/src/job-queue.test.ts +120 -0
- package/src/job-queue.ts +2701 -0
- package/src/js-coverage.ts +87 -0
- package/src/js-router-detector.ts +112 -0
- package/src/language-detector.ts +82 -0
- package/src/link-classifier.ts +65 -0
- package/src/live-view.ts +141 -0
- package/src/logger.ts +9 -0
- package/src/markdown-extract.test.ts +73 -0
- package/src/markdown-extract.ts +76 -0
- package/src/native-crawler.ts +1106 -0
- package/src/network-observer.ts +204 -0
- package/src/network-throttle.ts +69 -0
- package/src/openapi-generator.ts +135 -0
- package/src/pdf-extractor.ts +123 -0
- package/src/performance-metrics.ts +134 -0
- package/src/phash.ts +151 -0
- package/src/pii-scrubber.ts +99 -0
- package/src/playwright-recorder.ts +170 -0
- package/src/policies/crawl-safety.ts +46 -0
- package/src/profiles/domain-profile.ts +167 -0
- package/src/proxy.ts +238 -0
- package/src/rate-limiter.ts +87 -0
- package/src/redirect-tracker.ts +97 -0
- package/src/redis-frontier.ts +143 -0
- package/src/redis-queue.ts +208 -0
- package/src/response-cache.ts +150 -0
- package/src/responsive-detector.ts +92 -0
- package/src/retry-policy.ts +87 -0
- package/src/robots-txt.ts +96 -0
- package/src/screen-reader.ts +89 -0
- package/src/screenshot-masker.ts +98 -0
- package/src/seo-checker.ts +134 -0
- package/src/session-capture.ts +325 -0
- package/src/session-export.test.ts +75 -0
- package/src/session-export.ts +172 -0
- package/src/sitemap-writer.ts +65 -0
- package/src/sitemap.test.ts +131 -0
- package/src/sitemap.ts +224 -0
- package/src/skyvern.ts +199 -0
- package/src/sqs-queue.ts +49 -0
- package/src/sso-token.ts +120 -0
- package/src/stealth/human-behavior.ts +191 -0
- package/src/telemetry.ts +122 -0
- package/src/test-executor.test.ts +72 -0
- package/src/test-executor.ts +424 -0
- package/src/tls-fingerprint.ts +111 -0
- package/src/url-pattern-completer.ts +114 -0
- package/src/visual-diff-verdict.test.ts +80 -0
- package/src/visual-diff-verdict.ts +57 -0
- package/src/webhook-notifier.ts +109 -0
- package/src/websocket-detector.ts +83 -0
- package/src/worker.ts +48 -0
- package/tsconfig.json +13 -0
- package/types/accessibility-auditor.d.ts +29 -0
- package/types/ai-login.d.ts +32 -0
- package/types/auth-token-rotator.d.ts +47 -0
- package/types/auth.d.ts +20 -0
- package/types/browser-extension.d.ts +37 -0
- package/types/bull-worker.d.ts +6 -0
- package/types/captcha-solver.d.ts +16 -0
- package/types/color-contrast.d.ts +30 -0
- package/types/content-chunker.d.ts +18 -0
- package/types/content-dedup.d.ts +23 -0
- package/types/cookie-consent.d.ts +25 -0
- package/types/cookie-jar.d.ts +20 -0
- package/types/crawler.d.ts +179 -0
- package/types/custom-js-injector.d.ts +42 -0
- package/types/dark-mode-capture.d.ts +23 -0
- package/types/dead-link-detector.d.ts +37 -0
- package/types/element-hash.d.ts +9 -0
- package/types/email-otp.d.ts +42 -0
- package/types/engine-router.d.ts +47 -0
- package/types/export/bulk-export.d.ts +26 -0
- package/types/export/vector-export.d.ts +76 -0
- package/types/extractors/advanced.d.ts +54 -0
- package/types/extractors/artifact-envelope.d.ts +63 -0
- package/types/failure-analysis-agent.d.ts +16 -0
- package/types/feature-flag-detector.d.ts +30 -0
- package/types/form-detector.d.ts +34 -0
- package/types/frontier.d.ts +32 -0
- package/types/gap-pass.d.ts +35 -0
- package/types/graphql-detector.d.ts +39 -0
- package/types/http-engine.d.ts +80 -0
- package/types/incremental-diff.d.ts +59 -0
- package/types/index.d.ts +35 -0
- package/types/input-fuzzer.d.ts +30 -0
- package/types/interactive-probe.d.ts +104 -0
- package/types/job-queue.d.ts +171 -0
- package/types/js-coverage.d.ts +29 -0
- package/types/js-router-detector.d.ts +17 -0
- package/types/language-detector.d.ts +22 -0
- package/types/link-classifier.d.ts +23 -0
- package/types/live-view.d.ts +36 -0
- package/types/logger.d.ts +2 -0
- package/types/markdown-extract.d.ts +8 -0
- package/types/native-crawler.d.ts +69 -0
- package/types/network-observer.d.ts +49 -0
- package/types/network-throttle.d.ts +25 -0
- package/types/openapi-generator.d.ts +49 -0
- package/types/pdf-extractor.d.ts +28 -0
- package/types/performance-metrics.d.ts +53 -0
- package/types/phash.d.ts +38 -0
- package/types/pii-scrubber.d.ts +21 -0
- package/types/playwright-recorder.d.ts +39 -0
- package/types/policies/crawl-safety.d.ts +9 -0
- package/types/profiles/domain-profile.d.ts +19 -0
- package/types/proxy.d.ts +50 -0
- package/types/rate-limiter.d.ts +31 -0
- package/types/redirect-tracker.d.ts +37 -0
- package/types/redis-frontier.d.ts +48 -0
- package/types/redis-queue.d.ts +48 -0
- package/types/response-cache.d.ts +38 -0
- package/types/responsive-detector.d.ts +29 -0
- package/types/retry-policy.d.ts +20 -0
- package/types/robots-txt.d.ts +9 -0
- package/types/screen-reader.d.ts +16 -0
- package/types/screenshot-masker.d.ts +28 -0
- package/types/seo-checker.d.ts +33 -0
- package/types/session-capture.d.ts +38 -0
- package/types/session-export.d.ts +49 -0
- package/types/sitemap-writer.d.ts +21 -0
- package/types/sitemap.d.ts +51 -0
- package/types/skyvern.d.ts +56 -0
- package/types/sqs-queue.d.ts +2 -0
- package/types/sso-token.d.ts +29 -0
- package/types/stealth/human-behavior.d.ts +20 -0
- package/types/telemetry.d.ts +34 -0
- package/types/test-executor.d.ts +67 -0
- package/types/tls-fingerprint.d.ts +50 -0
- package/types/url-pattern-completer.d.ts +28 -0
- package/types/visual-diff-verdict.d.ts +40 -0
- package/types/webhook-notifier.d.ts +30 -0
- package/types/websocket-detector.d.ts +24 -0
- package/types/worker.d.ts +1 -0
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ZeTa-AI Background Job Queue
|
|
3
|
+
*
|
|
4
|
+
* Postgres-backed durable queue. Each job becomes a PlatformJob record.
|
|
5
|
+
* enqueueJob() writes it QUEUED and, for same-process responsiveness, kicks
|
|
6
|
+
* an immediate best-effort claim attempt — but durability comes from
|
|
7
|
+
* startJobWorkerLoop()'s poll: it atomically claims QUEUED jobs (Postgres
|
|
8
|
+
* `FOR UPDATE SKIP LOCKED`, safe across any number of concurrent worker
|
|
9
|
+
* processes/containers) and requeues jobs whose heartbeat went stale,
|
|
10
|
+
* so a crashed/restarted worker never silently loses a job.
|
|
11
|
+
*
|
|
12
|
+
* CRAWL-type jobs additionally support AWS SQS as an alternate transport
|
|
13
|
+
* (JOB_QUEUE_BACKEND=sqs, see sqs-queue.ts) for horizontally-scaled crawler
|
|
14
|
+
* fleets; every other job type always goes through the DB-backed queue.
|
|
15
|
+
*/
|
|
16
|
+
export declare function generateTOTP(secret: string): string;
|
|
17
|
+
export interface PlatformJobConfig {
|
|
18
|
+
tenantId: string;
|
|
19
|
+
projectId: string;
|
|
20
|
+
appUrl?: string;
|
|
21
|
+
credentials?: {
|
|
22
|
+
username: string;
|
|
23
|
+
password: string;
|
|
24
|
+
oneTimeCode?: string;
|
|
25
|
+
};
|
|
26
|
+
/** Decrypted Playwright storageState JSON — if present, session is restored without AI login. */
|
|
27
|
+
storageState?: string;
|
|
28
|
+
screenshotDir?: string;
|
|
29
|
+
maxScreens?: number;
|
|
30
|
+
/** Seed URLs added to the initial crawl queue — link discovery still runs from each page. */
|
|
31
|
+
startUrls?: string[];
|
|
32
|
+
/** When provided, crawl ONLY these exact URLs (no link-following). Used for selected-screen recrawl. */
|
|
33
|
+
selectiveUrls?: string[];
|
|
34
|
+
/** Device profiles for multi-viewport screenshot pass after main DESKTOP crawl. */
|
|
35
|
+
deviceProfiles?: string[];
|
|
36
|
+
/** HTTP Basic Auth credentials — injected as Authorization header on same-origin requests. */
|
|
37
|
+
httpBasicUsername?: string;
|
|
38
|
+
httpBasicPassword?: string;
|
|
39
|
+
/** Bearer/API token — injected as a request header and into localStorage. Skips AI login. */
|
|
40
|
+
authToken?: string;
|
|
41
|
+
/** Header name for authToken (default: 'Authorization'). */
|
|
42
|
+
authTokenHeader?: string;
|
|
43
|
+
/** Prefix for authToken value (default: 'Bearer '). */
|
|
44
|
+
authTokenPrefix?: string;
|
|
45
|
+
/** CAPTCHA solving API key (2captcha or CapSolver). */
|
|
46
|
+
captchaSolverApiKey?: string;
|
|
47
|
+
/** CAPTCHA solving service provider (default: '2captcha'). */
|
|
48
|
+
captchaSolverProvider?: '2captcha' | 'capsolver';
|
|
49
|
+
/**
|
|
50
|
+
* Path to a Chrome user data directory for profile inheritance (local deployments only).
|
|
51
|
+
* When set, the crawler exports the existing session from this profile and injects it.
|
|
52
|
+
*/
|
|
53
|
+
chromeProfilePath?: string;
|
|
54
|
+
/** MailSlurp API key for email OTP auto-retrieval. */
|
|
55
|
+
mailslurpApiKey?: string;
|
|
56
|
+
/** MailSlurp inbox ID to poll for OTP emails. */
|
|
57
|
+
mailslurpInboxId?: string;
|
|
58
|
+
/** SSO provider ('okta' | 'azure_ad' | 'generic_oidc'). */
|
|
59
|
+
ssoProvider?: string;
|
|
60
|
+
/** SSO domain or tenant ID. */
|
|
61
|
+
ssoDomain?: string;
|
|
62
|
+
/** SSO OAuth2 client ID. */
|
|
63
|
+
ssoClientId?: string;
|
|
64
|
+
/** SSO OAuth2 client secret (decrypted). */
|
|
65
|
+
ssoClientSecret?: string;
|
|
66
|
+
/** SSO scopes (space-separated). Default: 'openid profile'. */
|
|
67
|
+
ssoScope?: string;
|
|
68
|
+
/** HTTP/HTTPS/SOCKS5 proxy URL — routes browser through this proxy for bot-protected sites. */
|
|
69
|
+
proxyUrl?: string;
|
|
70
|
+
}
|
|
71
|
+
type ClaimedJob = {
|
|
72
|
+
id: string;
|
|
73
|
+
tenantId: string;
|
|
74
|
+
projectId: string;
|
|
75
|
+
type: string;
|
|
76
|
+
config: any;
|
|
77
|
+
};
|
|
78
|
+
/** Atomically claims one specific QUEUED job for this worker. Returns null if it was already claimed. */
|
|
79
|
+
export declare function claimSpecificJob(jobId: string): Promise<ClaimedJob | null>;
|
|
80
|
+
/** Atomically claims the oldest QUEUED job across all tenants. SKIP LOCKED makes this
|
|
81
|
+
* race-safe against any number of other pollers doing the same thing concurrently. */
|
|
82
|
+
export declare function claimNextQueuedJob(): Promise<ClaimedJob | null>;
|
|
83
|
+
/** Requeues RUNNING jobs whose heartbeat has gone stale — the worker that claimed them
|
|
84
|
+
* died (crash, restart, OOM) without ever marking them DONE/FAILED. Idempotent and
|
|
85
|
+
* safe to run from every worker process; only affects rows past the timeout. */
|
|
86
|
+
export declare function requeueStaleRunningJobs(): Promise<void>;
|
|
87
|
+
/**
|
|
88
|
+
* Starts the durable job worker poll loop. This is what makes job processing
|
|
89
|
+
* survive a restart — enqueueJob()'s immediate same-process claim attempt is
|
|
90
|
+
* only a latency optimization; if the process dies before that fires (or
|
|
91
|
+
* mid-job), this loop's next tick claims/requeues it. Call once at process
|
|
92
|
+
* startup (API server and/or a dedicated crawler worker process — safe to
|
|
93
|
+
* run in both, and safe to run in many container replicas at once).
|
|
94
|
+
*/
|
|
95
|
+
export declare function startJobWorkerLoop(opts?: {
|
|
96
|
+
pollIntervalMs?: number;
|
|
97
|
+
concurrency?: number;
|
|
98
|
+
}): void;
|
|
99
|
+
/** Stops the poll loop. Mainly for tests. */
|
|
100
|
+
export declare function stopJobWorkerLoop(): void;
|
|
101
|
+
/** Create a job record that tracks a synchronous operation (telemetry only, no background processor). */
|
|
102
|
+
export declare function createTrackedJob(type: string, config: {
|
|
103
|
+
tenantId: string;
|
|
104
|
+
projectId: string;
|
|
105
|
+
[k: string]: any;
|
|
106
|
+
}): Promise<string>;
|
|
107
|
+
/** Mark a tracked job DONE or FAILED. Safe to call in finally — swallows errors. */
|
|
108
|
+
export declare function finishTrackedJob(tenantId: string, jobId: string, error?: string): Promise<void>;
|
|
109
|
+
/** Enqueue a generic platform job — returns the job ID immediately. */
|
|
110
|
+
export declare function enqueueJob(type: string, config: any): Promise<string>;
|
|
111
|
+
/** Get the current state of a platform job. */
|
|
112
|
+
export declare function getJob(tenantId: string, jobId: string): Promise<{
|
|
113
|
+
progress: number;
|
|
114
|
+
error: string | null;
|
|
115
|
+
type: string;
|
|
116
|
+
status: string;
|
|
117
|
+
tenantId: string;
|
|
118
|
+
projectId: string;
|
|
119
|
+
name: string | null;
|
|
120
|
+
result: import("@prisma/client/runtime/library").JsonValue | null;
|
|
121
|
+
id: string;
|
|
122
|
+
config: import("@prisma/client/runtime/library").JsonValue;
|
|
123
|
+
queuedAt: Date;
|
|
124
|
+
startedAt: Date | null;
|
|
125
|
+
finishedAt: Date | null;
|
|
126
|
+
workerId: string | null;
|
|
127
|
+
heartbeatAt: Date | null;
|
|
128
|
+
totalPromptTokens: number | null;
|
|
129
|
+
totalCompletionTokens: number | null;
|
|
130
|
+
totalCacheReadTokens: number | null;
|
|
131
|
+
totalEstimatedCostUsd: number | null;
|
|
132
|
+
llmCallCount: number;
|
|
133
|
+
} | null>;
|
|
134
|
+
/** List recent jobs for a project. */
|
|
135
|
+
export declare function listJobs(tenantId: string, projectId: string): Promise<{
|
|
136
|
+
progress: number;
|
|
137
|
+
error: string | null;
|
|
138
|
+
type: string;
|
|
139
|
+
status: string;
|
|
140
|
+
tenantId: string;
|
|
141
|
+
projectId: string;
|
|
142
|
+
name: string | null;
|
|
143
|
+
result: import("@prisma/client/runtime/library").JsonValue | null;
|
|
144
|
+
id: string;
|
|
145
|
+
config: import("@prisma/client/runtime/library").JsonValue;
|
|
146
|
+
queuedAt: Date;
|
|
147
|
+
startedAt: Date | null;
|
|
148
|
+
finishedAt: Date | null;
|
|
149
|
+
workerId: string | null;
|
|
150
|
+
heartbeatAt: Date | null;
|
|
151
|
+
totalPromptTokens: number | null;
|
|
152
|
+
totalCompletionTokens: number | null;
|
|
153
|
+
totalCacheReadTokens: number | null;
|
|
154
|
+
totalEstimatedCostUsd: number | null;
|
|
155
|
+
llmCallCount: number;
|
|
156
|
+
}[]>;
|
|
157
|
+
/** Cancel a RUNNING or QUEUED job. Aborts the in-process crawl and marks DB CANCELLED. */
|
|
158
|
+
export declare function cancelJob(tenantId: string, jobId: string): Promise<void>;
|
|
159
|
+
/** Re-enqueue a job using the same config as a previous job. */
|
|
160
|
+
export declare function rerunJob(tenantId: string, jobId: string): Promise<string>;
|
|
161
|
+
export declare function resumeJob(tenantId: string, jobId: string): Promise<string>;
|
|
162
|
+
/** Update progress percentage and current step label on a running job (non-fatal). */
|
|
163
|
+
export declare function updateJobProgress(tenantId: string, jobId: string, progress: number, step: string): Promise<void>;
|
|
164
|
+
export interface ProcessJobOpts {
|
|
165
|
+
onProgress?: (pct: number) => Promise<void>;
|
|
166
|
+
}
|
|
167
|
+
export declare function processJob(jobId: string, config: any, opts?: ProcessJobOpts): Promise<void>;
|
|
168
|
+
/** After a job finishes, sum LLMCallLog entries for that project during the job window. */
|
|
169
|
+
export declare function aggregateJobTokens(tenantId: string, jobId: string, projectId: string, startedAt: Date): Promise<void>;
|
|
170
|
+
export declare function processDataRetentionPurge(): Promise<void>;
|
|
171
|
+
export {};
|