@debriefer/core 2.0.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.
Files changed (98) hide show
  1. package/README.md +86 -0
  2. package/dist/__tests__/base-source.test.d.ts +2 -0
  3. package/dist/__tests__/base-source.test.d.ts.map +1 -0
  4. package/dist/__tests__/base-source.test.js +333 -0
  5. package/dist/__tests__/base-source.test.js.map +1 -0
  6. package/dist/__tests__/batch-runner.test.d.ts +2 -0
  7. package/dist/__tests__/batch-runner.test.d.ts.map +1 -0
  8. package/dist/__tests__/batch-runner.test.js +217 -0
  9. package/dist/__tests__/batch-runner.test.js.map +1 -0
  10. package/dist/__tests__/cache.test.d.ts +2 -0
  11. package/dist/__tests__/cache.test.d.ts.map +1 -0
  12. package/dist/__tests__/cache.test.js +127 -0
  13. package/dist/__tests__/cache.test.js.map +1 -0
  14. package/dist/__tests__/confidence.test.d.ts +2 -0
  15. package/dist/__tests__/confidence.test.d.ts.map +1 -0
  16. package/dist/__tests__/confidence.test.js +81 -0
  17. package/dist/__tests__/confidence.test.js.map +1 -0
  18. package/dist/__tests__/cost-tracker.test.d.ts +2 -0
  19. package/dist/__tests__/cost-tracker.test.d.ts.map +1 -0
  20. package/dist/__tests__/cost-tracker.test.js +149 -0
  21. package/dist/__tests__/cost-tracker.test.js.map +1 -0
  22. package/dist/__tests__/orchestrator.test.d.ts +2 -0
  23. package/dist/__tests__/orchestrator.test.d.ts.map +1 -0
  24. package/dist/__tests__/orchestrator.test.js +751 -0
  25. package/dist/__tests__/orchestrator.test.js.map +1 -0
  26. package/dist/__tests__/rate-limiter.test.d.ts +2 -0
  27. package/dist/__tests__/rate-limiter.test.d.ts.map +1 -0
  28. package/dist/__tests__/rate-limiter.test.js +83 -0
  29. package/dist/__tests__/rate-limiter.test.js.map +1 -0
  30. package/dist/__tests__/reliability.test.d.ts +2 -0
  31. package/dist/__tests__/reliability.test.d.ts.map +1 -0
  32. package/dist/__tests__/reliability.test.js +207 -0
  33. package/dist/__tests__/reliability.test.js.map +1 -0
  34. package/dist/__tests__/synthesizer.test.d.ts +2 -0
  35. package/dist/__tests__/synthesizer.test.d.ts.map +1 -0
  36. package/dist/__tests__/synthesizer.test.js +50 -0
  37. package/dist/__tests__/synthesizer.test.js.map +1 -0
  38. package/dist/__tests__/telemetry.test.d.ts +2 -0
  39. package/dist/__tests__/telemetry.test.d.ts.map +1 -0
  40. package/dist/__tests__/telemetry.test.js +81 -0
  41. package/dist/__tests__/telemetry.test.js.map +1 -0
  42. package/dist/__tests__/types.test.d.ts +2 -0
  43. package/dist/__tests__/types.test.d.ts.map +1 -0
  44. package/dist/__tests__/types.test.js +708 -0
  45. package/dist/__tests__/types.test.js.map +1 -0
  46. package/dist/base-source.d.ts +91 -0
  47. package/dist/base-source.d.ts.map +1 -0
  48. package/dist/base-source.js +144 -0
  49. package/dist/base-source.js.map +1 -0
  50. package/dist/batch-runner.d.ts +40 -0
  51. package/dist/batch-runner.d.ts.map +1 -0
  52. package/dist/batch-runner.js +65 -0
  53. package/dist/batch-runner.js.map +1 -0
  54. package/dist/cache/in-memory.d.ts +26 -0
  55. package/dist/cache/in-memory.d.ts.map +1 -0
  56. package/dist/cache/in-memory.js +51 -0
  57. package/dist/cache/in-memory.js.map +1 -0
  58. package/dist/confidence.d.ts +13 -0
  59. package/dist/confidence.d.ts.map +1 -0
  60. package/dist/confidence.js +29 -0
  61. package/dist/confidence.js.map +1 -0
  62. package/dist/cost-tracker.d.ts +37 -0
  63. package/dist/cost-tracker.d.ts.map +1 -0
  64. package/dist/cost-tracker.js +62 -0
  65. package/dist/cost-tracker.js.map +1 -0
  66. package/dist/index.d.ts +25 -0
  67. package/dist/index.d.ts.map +1 -0
  68. package/dist/index.js +28 -0
  69. package/dist/index.js.map +1 -0
  70. package/dist/orchestrator.d.ts +92 -0
  71. package/dist/orchestrator.d.ts.map +1 -0
  72. package/dist/orchestrator.js +373 -0
  73. package/dist/orchestrator.js.map +1 -0
  74. package/dist/rate-limiter.d.ts +31 -0
  75. package/dist/rate-limiter.d.ts.map +1 -0
  76. package/dist/rate-limiter.js +79 -0
  77. package/dist/rate-limiter.js.map +1 -0
  78. package/dist/reliability.d.ts +49 -0
  79. package/dist/reliability.d.ts.map +1 -0
  80. package/dist/reliability.js +67 -0
  81. package/dist/reliability.js.map +1 -0
  82. package/dist/synthesizer.d.ts +31 -0
  83. package/dist/synthesizer.d.ts.map +1 -0
  84. package/dist/synthesizer.js +47 -0
  85. package/dist/synthesizer.js.map +1 -0
  86. package/dist/telemetry/console.d.ts +7 -0
  87. package/dist/telemetry/console.d.ts.map +1 -0
  88. package/dist/telemetry/console.js +21 -0
  89. package/dist/telemetry/console.js.map +1 -0
  90. package/dist/telemetry/noop.d.ts +7 -0
  91. package/dist/telemetry/noop.d.ts.map +1 -0
  92. package/dist/telemetry/noop.js +12 -0
  93. package/dist/telemetry/noop.js.map +1 -0
  94. package/dist/types.d.ts +417 -0
  95. package/dist/types.d.ts.map +1 -0
  96. package/dist/types.js +102 -0
  97. package/dist/types.js.map +1 -0
  98. package/package.json +46 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.test.js","sourceRoot":"","sources":["../../src/__tests__/types.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Abstract base class for all research source implementations.
3
+ *
4
+ * Provides common functionality: rate limiting via injected SourceRateLimiter,
5
+ * caching via injected CacheProvider, timeout signal creation, and confidence
6
+ * calculation delegation.
7
+ *
8
+ * Key design differences from deadonfilm's BaseDataSource / BaseBiographySource:
9
+ * - No hardcoded New Relic — uses injected TelemetryProvider
10
+ * - No hardcoded cache module — uses injected CacheProvider
11
+ * - No DataSourceType enum — uses plain string `type`
12
+ * - Keyword lists passed via constructor options, not hardcoded
13
+ * - `buildQuery()` is a simple default consumers override
14
+ * - Generic over TSubject
15
+ */
16
+ import type { ReliabilityTier } from "./reliability.js";
17
+ import type { ResearchSubject, RawFinding, MinimalSource, CacheProvider, TelemetryProvider } from "./types.js";
18
+ import type { SourceRateLimiter } from "./rate-limiter.js";
19
+ export interface BaseSourceOptions {
20
+ /** Keywords — at least one must be present for non-zero confidence */
21
+ requiredKeywords?: string[];
22
+ /** Keywords that increase confidence when found */
23
+ bonusKeywords?: string[];
24
+ /** Minimum delay between requests to this source's domain (ms) */
25
+ rateLimitMs?: number;
26
+ /** Request timeout in ms (default: 30000) */
27
+ timeoutMs?: number;
28
+ /** Whether to ignore cache and make fresh requests */
29
+ ignoreCache?: boolean;
30
+ /** Cache TTL in seconds (default: 86400 = 24 hours) */
31
+ cacheTtlSeconds?: number;
32
+ /**
33
+ * Custom confidence scorer that replaces keyword-based heuristics.
34
+ * Called when result.confidence is -1 (source delegated scoring).
35
+ * Takes precedence over keyword-based scoring when provided.
36
+ *
37
+ * @param text - The extracted text content from the source
38
+ * @param subject - The research subject being investigated
39
+ * @returns Confidence score from 0.0 to 1.0
40
+ */
41
+ confidenceScorer?: (text: string, subject: ResearchSubject) => Promise<number> | number;
42
+ }
43
+ /**
44
+ * Abstract base class for research sources.
45
+ *
46
+ * Subclasses must implement:
47
+ * - `name`, `type`, `reliabilityTier`, `domain`, `isFree`, `estimatedCostPerQuery` (abstract properties)
48
+ * - `fetchResult()` (abstract method) — the actual data fetching logic
49
+ *
50
+ * The `lookup()` method orchestrates caching, rate limiting, timeout signals,
51
+ * confidence calculation, and telemetry around the subclass's `fetchResult()`.
52
+ */
53
+ export declare abstract class BaseResearchSource<TSubject extends ResearchSubject> implements MinimalSource<TSubject> {
54
+ abstract readonly name: string;
55
+ abstract readonly type: string;
56
+ abstract readonly reliabilityTier: ReliabilityTier;
57
+ abstract readonly domain: string;
58
+ abstract readonly isFree: boolean;
59
+ abstract readonly estimatedCostPerQuery: number;
60
+ /** Numeric reliability score (0.0-1.0) derived from the tier */
61
+ get reliabilityScore(): number;
62
+ protected rateLimiter?: SourceRateLimiter;
63
+ protected cache?: CacheProvider;
64
+ protected telemetry?: TelemetryProvider;
65
+ protected options: BaseSourceOptions;
66
+ constructor(options?: BaseSourceOptions);
67
+ /** Inject rate limiter (called by orchestrator) */
68
+ setRateLimiter(limiter: SourceRateLimiter): void;
69
+ /** Inject cache provider (called by orchestrator) */
70
+ setCache(cache: CacheProvider): void;
71
+ /** Inject telemetry provider (called by orchestrator) */
72
+ setTelemetry(telemetry: TelemetryProvider): void;
73
+ /** Override to check if required API keys/config are available */
74
+ isAvailable(): boolean;
75
+ /**
76
+ * Main entry point. Handles caching, rate limiting, timeout, and telemetry.
77
+ * Subclasses implement fetchResult() for the actual lookup.
78
+ *
79
+ * @param subject - The research subject to look up
80
+ * @param signal - Caller-provided abort signal (combined with timeout signal)
81
+ * @returns The raw finding, or null if no relevant data was found or an error occurred
82
+ */
83
+ lookup(subject: TSubject, signal: AbortSignal): Promise<RawFinding | null>;
84
+ /** Subclasses implement this — the actual data fetching logic */
85
+ protected abstract fetchResult(subject: TSubject, signal: AbortSignal): Promise<RawFinding | null>;
86
+ /** Build search query string for this subject. Override for domain-specific queries. */
87
+ buildQuery(subject: TSubject): string;
88
+ /** Build a cache key for this subject + source combination */
89
+ protected buildCacheKey(subject: TSubject): string;
90
+ }
91
+ //# sourceMappingURL=base-source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-source.d.ts","sourceRoot":"","sources":["../src/base-source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAEvD,OAAO,KAAK,EACV,eAAe,EACf,UAAU,EACV,aAAa,EACb,aAAa,EACb,iBAAiB,EAClB,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAM1D,MAAM,WAAW,iBAAiB;IAChC,sEAAsE;IACtE,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,mDAAmD;IACnD,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,sDAAsD;IACtD,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,uDAAuD;IACvD,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;;;;;;;OAQG;IACH,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAA;CACxF;AAMD;;;;;;;;;GASG;AACH,8BAAsB,kBAAkB,CACtC,QAAQ,SAAS,eAAe,CAChC,YAAW,aAAa,CAAC,QAAQ,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAA;IAClD,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAA;IAE/C,gEAAgE;IAChE,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAED,SAAS,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAA;IACzC,SAAS,CAAC,KAAK,CAAC,EAAE,aAAa,CAAA;IAC/B,SAAS,CAAC,SAAS,CAAC,EAAE,iBAAiB,CAAA;IACvC,SAAS,CAAC,OAAO,EAAE,iBAAiB,CAAA;gBAExB,OAAO,GAAE,iBAAsB;IAU3C,mDAAmD;IACnD,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAIhD,qDAAqD;IACrD,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAIpC,yDAAyD;IACzD,YAAY,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAIhD,kEAAkE;IAClE,WAAW,IAAI,OAAO;IAItB;;;;;;;OAOG;IACG,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IA4EhF,iEAAiE;IACjE,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAElG,wFAAwF;IACxF,UAAU,CAAC,OAAO,EAAE,QAAQ,GAAG,MAAM;IAIrC,8DAA8D;IAC9D,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,GAAG,MAAM;CAGnD"}
@@ -0,0 +1,144 @@
1
+ /**
2
+ * Abstract base class for all research source implementations.
3
+ *
4
+ * Provides common functionality: rate limiting via injected SourceRateLimiter,
5
+ * caching via injected CacheProvider, timeout signal creation, and confidence
6
+ * calculation delegation.
7
+ *
8
+ * Key design differences from deadonfilm's BaseDataSource / BaseBiographySource:
9
+ * - No hardcoded New Relic — uses injected TelemetryProvider
10
+ * - No hardcoded cache module — uses injected CacheProvider
11
+ * - No DataSourceType enum — uses plain string `type`
12
+ * - Keyword lists passed via constructor options, not hardcoded
13
+ * - `buildQuery()` is a simple default consumers override
14
+ * - Generic over TSubject
15
+ */
16
+ import { calculateConfidence } from "./confidence.js";
17
+ import { getReliabilityScore } from "./reliability.js";
18
+ // ============================================================================
19
+ // Base Class
20
+ // ============================================================================
21
+ /**
22
+ * Abstract base class for research sources.
23
+ *
24
+ * Subclasses must implement:
25
+ * - `name`, `type`, `reliabilityTier`, `domain`, `isFree`, `estimatedCostPerQuery` (abstract properties)
26
+ * - `fetchResult()` (abstract method) — the actual data fetching logic
27
+ *
28
+ * The `lookup()` method orchestrates caching, rate limiting, timeout signals,
29
+ * confidence calculation, and telemetry around the subclass's `fetchResult()`.
30
+ */
31
+ export class BaseResearchSource {
32
+ /** Numeric reliability score (0.0-1.0) derived from the tier */
33
+ get reliabilityScore() {
34
+ return getReliabilityScore(this.reliabilityTier);
35
+ }
36
+ rateLimiter;
37
+ cache;
38
+ telemetry;
39
+ options;
40
+ constructor(options = {}) {
41
+ this.options = {
42
+ rateLimitMs: 1000,
43
+ timeoutMs: 30000,
44
+ ignoreCache: false,
45
+ cacheTtlSeconds: 86400,
46
+ ...options,
47
+ };
48
+ }
49
+ /** Inject rate limiter (called by orchestrator) */
50
+ setRateLimiter(limiter) {
51
+ this.rateLimiter = limiter;
52
+ }
53
+ /** Inject cache provider (called by orchestrator) */
54
+ setCache(cache) {
55
+ this.cache = cache;
56
+ }
57
+ /** Inject telemetry provider (called by orchestrator) */
58
+ setTelemetry(telemetry) {
59
+ this.telemetry = telemetry;
60
+ }
61
+ /** Override to check if required API keys/config are available */
62
+ isAvailable() {
63
+ return true;
64
+ }
65
+ /**
66
+ * Main entry point. Handles caching, rate limiting, timeout, and telemetry.
67
+ * Subclasses implement fetchResult() for the actual lookup.
68
+ *
69
+ * @param subject - The research subject to look up
70
+ * @param signal - Caller-provided abort signal (combined with timeout signal)
71
+ * @returns The raw finding, or null if no relevant data was found or an error occurred
72
+ */
73
+ async lookup(subject, signal) {
74
+ const cacheKey = this.buildCacheKey(subject);
75
+ // Check cache
76
+ if (this.cache && !this.options.ignoreCache) {
77
+ const cached = await this.cache.get(cacheKey);
78
+ if (cached) {
79
+ try {
80
+ return JSON.parse(cached);
81
+ }
82
+ catch {
83
+ // Invalid cache entry, proceed with fresh lookup
84
+ }
85
+ }
86
+ }
87
+ // Rate limit
88
+ if (this.rateLimiter) {
89
+ await this.rateLimiter.acquire(this.domain, this.options.rateLimitMs);
90
+ }
91
+ // Create timeout signal and combine with caller signal
92
+ const timeoutSignal = AbortSignal.timeout(this.options.timeoutMs);
93
+ const combinedSignal = signal ? AbortSignal.any([signal, timeoutSignal]) : timeoutSignal;
94
+ // Execute lookup with telemetry
95
+ const span = this.telemetry?.startSpan(`source:${this.name}`);
96
+ try {
97
+ const result = await this.fetchResult(subject, combinedSignal);
98
+ // Calculate confidence if not already set by the source (confidence === -1)
99
+ // Priority: confidenceScorer callback > keyword heuristics
100
+ if (result && result.confidence === -1) {
101
+ if (this.options.confidenceScorer) {
102
+ try {
103
+ const raw = await this.options.confidenceScorer(result.text, subject);
104
+ result.confidence = Math.max(0, Math.min(1, Number.isFinite(raw) ? raw : 0));
105
+ }
106
+ catch (scorerError) {
107
+ // Scorer failed — record via telemetry and fall through to keyword heuristics
108
+ this.telemetry?.recordError(scorerError instanceof Error ? scorerError : new Error(String(scorerError)), { source: this.name, subject: subject.name, phase: "confidenceScorer" });
109
+ if (this.options.requiredKeywords) {
110
+ result.confidence = calculateConfidence(result.text, this.options.requiredKeywords, this.options.bonusKeywords);
111
+ }
112
+ }
113
+ }
114
+ else if (this.options.requiredKeywords) {
115
+ result.confidence = calculateConfidence(result.text, this.options.requiredKeywords, this.options.bonusKeywords);
116
+ }
117
+ }
118
+ // Cache successful result
119
+ if (this.cache && result) {
120
+ await this.cache.set(cacheKey, JSON.stringify(result), this.options.cacheTtlSeconds);
121
+ }
122
+ return result;
123
+ }
124
+ catch (error) {
125
+ this.telemetry?.recordError(error instanceof Error ? error : new Error(String(error)), {
126
+ source: this.name,
127
+ subject: subject.name,
128
+ });
129
+ return null;
130
+ }
131
+ finally {
132
+ span?.end();
133
+ }
134
+ }
135
+ /** Build search query string for this subject. Override for domain-specific queries. */
136
+ buildQuery(subject) {
137
+ return subject.name;
138
+ }
139
+ /** Build a cache key for this subject + source combination */
140
+ buildCacheKey(subject) {
141
+ return `debriefer:${this.type}:${subject.id}:${this.buildQuery(subject)}`;
142
+ }
143
+ }
144
+ //# sourceMappingURL=base-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-source.js","sourceRoot":"","sources":["../src/base-source.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /** Progress info emitted after each item completes or fails */
2
+ export interface BatchProgress {
3
+ completed: number;
4
+ total: number;
5
+ inFlight: number;
6
+ }
7
+ /** Result entry for a single item in the batch */
8
+ export interface BatchResult<T, R> {
9
+ item: T;
10
+ result: R | null;
11
+ error?: Error;
12
+ }
13
+ export interface ParallelBatchRunnerOptions<T, R> {
14
+ /** Max concurrent items (default: 5) */
15
+ concurrency: number;
16
+ /** Optional abort signal for cancellation */
17
+ signal?: AbortSignal;
18
+ /** Called after each item completes successfully */
19
+ onItemComplete?: (item: T, result: R, progress: BatchProgress) => void | Promise<void>;
20
+ /** Called when an item throws (item still counts as completed) */
21
+ onItemError?: (item: T, error: Error, progress: BatchProgress) => void;
22
+ }
23
+ /**
24
+ * Generic concurrency-limited batch processor.
25
+ *
26
+ * Processes items in parallel with bounded concurrency using p-limit.
27
+ * Results are returned in input order. Failed items have result: null
28
+ * and include the error. Supports abort signals for cancellation and
29
+ * progress callbacks for monitoring.
30
+ */
31
+ export declare class ParallelBatchRunner<T, R> {
32
+ private options;
33
+ constructor(options: ParallelBatchRunnerOptions<T, R>);
34
+ /**
35
+ * Process items in parallel with bounded concurrency.
36
+ * Results are returned in input order. Failed items have result: null.
37
+ */
38
+ run(items: T[], processItem: (item: T) => Promise<R>): Promise<Array<BatchResult<T, R>>>;
39
+ }
40
+ //# sourceMappingURL=batch-runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch-runner.d.ts","sourceRoot":"","sources":["../src/batch-runner.ts"],"names":[],"mappings":"AAEA,+DAA+D;AAC/D,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,kDAAkD;AAClD,MAAM,WAAW,WAAW,CAAC,CAAC,EAAE,CAAC;IAC/B,IAAI,EAAE,CAAC,CAAA;IACP,MAAM,EAAE,CAAC,GAAG,IAAI,CAAA;IAChB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd;AAED,MAAM,WAAW,0BAA0B,CAAC,CAAC,EAAE,CAAC;IAC9C,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAA;IACnB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,oDAAoD;IACpD,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACtF,kEAAkE;IAClE,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAA;CACvE;AAED;;;;;;;GAOG;AACH,qBAAa,mBAAmB,CAAC,CAAC,EAAE,CAAC;IACnC,OAAO,CAAC,OAAO,CAAkC;gBAErC,OAAO,EAAE,0BAA0B,CAAC,CAAC,EAAE,CAAC,CAAC;IAIrD;;;OAGG;IACG,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CAqD/F"}
@@ -0,0 +1,65 @@
1
+ import pLimit from "p-limit";
2
+ /**
3
+ * Generic concurrency-limited batch processor.
4
+ *
5
+ * Processes items in parallel with bounded concurrency using p-limit.
6
+ * Results are returned in input order. Failed items have result: null
7
+ * and include the error. Supports abort signals for cancellation and
8
+ * progress callbacks for monitoring.
9
+ */
10
+ export class ParallelBatchRunner {
11
+ options;
12
+ constructor(options) {
13
+ this.options = options;
14
+ }
15
+ /**
16
+ * Process items in parallel with bounded concurrency.
17
+ * Results are returned in input order. Failed items have result: null.
18
+ */
19
+ async run(items, processItem) {
20
+ if (items.length === 0)
21
+ return [];
22
+ const { concurrency, signal, onItemComplete, onItemError } = this.options;
23
+ const limit = pLimit(concurrency);
24
+ const results = new Array(items.length);
25
+ let completed = 0;
26
+ let inFlight = 0;
27
+ const promises = items.map((item, index) => limit(async () => {
28
+ // Check abort before starting
29
+ if (signal?.aborted) {
30
+ results[index] = { item, result: null };
31
+ return;
32
+ }
33
+ inFlight++;
34
+ try {
35
+ const result = await processItem(item);
36
+ results[index] = { item, result };
37
+ completed++;
38
+ inFlight--;
39
+ if (onItemComplete) {
40
+ await onItemComplete(item, result, {
41
+ completed,
42
+ total: items.length,
43
+ inFlight,
44
+ });
45
+ }
46
+ }
47
+ catch (err) {
48
+ const error = err instanceof Error ? err : new Error(String(err));
49
+ results[index] = { item, result: null, error };
50
+ completed++;
51
+ inFlight--;
52
+ if (onItemError) {
53
+ onItemError(item, error, {
54
+ completed,
55
+ total: items.length,
56
+ inFlight,
57
+ });
58
+ }
59
+ }
60
+ }));
61
+ await Promise.allSettled(promises);
62
+ return results;
63
+ }
64
+ }
65
+ //# sourceMappingURL=batch-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch-runner.js","sourceRoot":"","sources":["../src/batch-runner.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,SAAS,CAAA;AA2B5B;;;;;;;GAOG;AACH,MAAM,OAAO,mBAAmB;IACtB,OAAO,CAAkC;IAEjD,YAAY,OAAyC;QACnD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,GAAG,CAAC,KAAU,EAAE,WAAoC;QACxD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAA;QAEjC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO,CAAA;QACzE,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,CAAA;QACjC,MAAM,OAAO,GAA6B,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACjE,IAAI,SAAS,GAAG,CAAC,CAAA;QACjB,IAAI,QAAQ,GAAG,CAAC,CAAA;QAEhB,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACzC,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,8BAA8B;YAC9B,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBACvC,OAAM;YACR,CAAC;YAED,QAAQ,EAAE,CAAA;YACV,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAA;gBACtC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;gBAEjC,SAAS,EAAE,CAAA;gBACX,QAAQ,EAAE,CAAA;gBAEV,IAAI,cAAc,EAAE,CAAC;oBACnB,MAAM,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE;wBACjC,SAAS;wBACT,KAAK,EAAE,KAAK,CAAC,MAAM;wBACnB,QAAQ;qBACT,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;gBACjE,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;gBAE9C,SAAS,EAAE,CAAA;gBACX,QAAQ,EAAE,CAAA;gBAEV,IAAI,WAAW,EAAE,CAAC;oBAChB,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE;wBACvB,SAAS;wBACT,KAAK,EAAE,KAAK,CAAC,MAAM;wBACnB,QAAQ;qBACT,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CACH,CAAA;QAED,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;QAClC,OAAO,OAAO,CAAA;IAChB,CAAC;CACF"}
@@ -0,0 +1,26 @@
1
+ import type { CacheProvider } from "../types.js";
2
+ /**
3
+ * Simple in-memory cache with optional TTL expiration.
4
+ *
5
+ * Suitable for development, testing, and small batch jobs. For large batches
6
+ * (10,000+ subjects), use RedisCache or call `clear()` between batches to
7
+ * prevent unbounded memory growth — entries are only evicted lazily on read.
8
+ *
9
+ * @param maxSize - Optional maximum number of entries. When exceeded, oldest
10
+ * entries are evicted (FIFO). Defaults to unlimited.
11
+ */
12
+ export declare class InMemoryCache implements CacheProvider {
13
+ private store;
14
+ private maxSize;
15
+ constructor(options?: {
16
+ maxSize?: number;
17
+ });
18
+ get(key: string): Promise<string | null>;
19
+ set(key: string, value: string, ttlSeconds?: number): Promise<void>;
20
+ delete(key: string): Promise<void>;
21
+ /** Number of entries (including expired but not yet evicted) */
22
+ get size(): number;
23
+ /** Clear all entries */
24
+ clear(): void;
25
+ }
26
+ //# sourceMappingURL=in-memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"in-memory.d.ts","sourceRoot":"","sources":["../../src/cache/in-memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAOhD;;;;;;;;;GASG;AACH,qBAAa,aAAc,YAAW,aAAa;IACjD,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,OAAO,CAAQ;gBAEX,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;IAIpC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAUxC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAanE,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,gEAAgE;IAChE,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,wBAAwB;IACxB,KAAK,IAAI,IAAI;CAGd"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Simple in-memory cache with optional TTL expiration.
3
+ *
4
+ * Suitable for development, testing, and small batch jobs. For large batches
5
+ * (10,000+ subjects), use RedisCache or call `clear()` between batches to
6
+ * prevent unbounded memory growth — entries are only evicted lazily on read.
7
+ *
8
+ * @param maxSize - Optional maximum number of entries. When exceeded, oldest
9
+ * entries are evicted (FIFO). Defaults to unlimited.
10
+ */
11
+ export class InMemoryCache {
12
+ store = new Map();
13
+ maxSize;
14
+ constructor(options) {
15
+ this.maxSize = options?.maxSize ?? Infinity;
16
+ }
17
+ async get(key) {
18
+ const entry = this.store.get(key);
19
+ if (!entry)
20
+ return null;
21
+ if (entry.expiresAt !== null && Date.now() > entry.expiresAt) {
22
+ this.store.delete(key);
23
+ return null;
24
+ }
25
+ return entry.value;
26
+ }
27
+ async set(key, value, ttlSeconds) {
28
+ // Evict oldest entry if at capacity (FIFO via Map insertion order)
29
+ if (this.store.size >= this.maxSize && !this.store.has(key)) {
30
+ const oldest = this.store.keys().next().value;
31
+ if (oldest !== undefined)
32
+ this.store.delete(oldest);
33
+ }
34
+ this.store.set(key, {
35
+ value,
36
+ expiresAt: ttlSeconds ? Date.now() + ttlSeconds * 1000 : null,
37
+ });
38
+ }
39
+ async delete(key) {
40
+ this.store.delete(key);
41
+ }
42
+ /** Number of entries (including expired but not yet evicted) */
43
+ get size() {
44
+ return this.store.size;
45
+ }
46
+ /** Clear all entries */
47
+ clear() {
48
+ this.store.clear();
49
+ }
50
+ }
51
+ //# sourceMappingURL=in-memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"in-memory.js","sourceRoot":"","sources":["../../src/cache/in-memory.ts"],"names":[],"mappings":"AAOA;;;;;;;;;GASG;AACH,MAAM,OAAO,aAAa;IAChB,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAA;IACrC,OAAO,CAAQ;IAEvB,YAAY,OAA8B;QACxC,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,QAAQ,CAAA;IAC7C,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACjC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAA;QACvB,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;YAC7D,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACtB,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,KAAK,CAAC,KAAK,CAAA;IACpB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAa,EAAE,UAAmB;QACvD,mEAAmE;QACnE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAA;YAC7C,IAAI,MAAM,KAAK,SAAS;gBAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACrD,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;YAClB,KAAK;YACL,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI;SAC9D,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;IAED,gEAAgE;IAChE,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAA;IACxB,CAAC;IAED,wBAAwB;IACxB,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Calculate content confidence score based on keyword presence in text.
3
+ *
4
+ * This measures "does this text contain information relevant to our query?"
5
+ * It is independent from source reliability (how trustworthy the publisher is).
6
+ *
7
+ * @param text - The text to analyze
8
+ * @param requiredKeywords - At least one must be present for non-zero confidence
9
+ * @param bonusKeywords - Additional keywords that increase confidence
10
+ * @returns Score from 0.0 to 1.0
11
+ */
12
+ export declare function calculateConfidence(text: string, requiredKeywords: string[], bonusKeywords?: string[]): number;
13
+ //# sourceMappingURL=confidence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confidence.d.ts","sourceRoot":"","sources":["../src/confidence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,MAAM,EAAE,EAC1B,aAAa,GAAE,MAAM,EAAO,GAC3B,MAAM,CAmBR"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Calculate content confidence score based on keyword presence in text.
3
+ *
4
+ * This measures "does this text contain information relevant to our query?"
5
+ * It is independent from source reliability (how trustworthy the publisher is).
6
+ *
7
+ * @param text - The text to analyze
8
+ * @param requiredKeywords - At least one must be present for non-zero confidence
9
+ * @param bonusKeywords - Additional keywords that increase confidence
10
+ * @returns Score from 0.0 to 1.0
11
+ */
12
+ export function calculateConfidence(text, requiredKeywords, bonusKeywords = []) {
13
+ if (!text || text.length === 0)
14
+ return 0;
15
+ const lowerText = text.toLowerCase();
16
+ // Check if any required keyword is present
17
+ const hasRequired = requiredKeywords.some((kw) => lowerText.includes(kw.toLowerCase()));
18
+ if (!hasRequired)
19
+ return 0;
20
+ // Base confidence from having required keyword
21
+ let confidence = 0.5;
22
+ // Bonus from additional keywords (up to +0.5)
23
+ if (bonusKeywords.length > 0) {
24
+ const matchCount = bonusKeywords.filter((kw) => lowerText.includes(kw.toLowerCase())).length;
25
+ confidence += 0.5 * (matchCount / bonusKeywords.length);
26
+ }
27
+ return Math.min(1.0, confidence);
28
+ }
29
+ //# sourceMappingURL=confidence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confidence.js","sourceRoot":"","sources":["../src/confidence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAAY,EACZ,gBAA0B,EAC1B,gBAA0B,EAAE;IAE5B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAA;IAExC,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;IAEpC,2CAA2C;IAC3C,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;IACvF,IAAI,CAAC,WAAW;QAAE,OAAO,CAAC,CAAA;IAE1B,+CAA+C;IAC/C,IAAI,UAAU,GAAG,GAAG,CAAA;IAEpB,8CAA8C;IAC9C,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,MAAM,CAAA;QAC5F,UAAU,IAAI,GAAG,GAAG,CAAC,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;IACzD,CAAC;IAED,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;AAClC,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * BatchCostTracker — tracks costs across a batch enrichment run.
3
+ *
4
+ * Supports per-subject cost limits (e.g., maxCostPerSubject) and a global
5
+ * total cost limit. Also records cost-by-source for reporting.
6
+ */
7
+ export declare class BatchCostTracker {
8
+ private totalCost;
9
+ private subjectCosts;
10
+ private costBySource;
11
+ private readonly maxTotalCost;
12
+ private readonly maxCostPerSubject;
13
+ constructor(options?: {
14
+ maxTotalCost?: number;
15
+ maxCostPerSubject?: number;
16
+ });
17
+ /**
18
+ * Add cost to a subject's running total.
19
+ * Returns whether any limit (total or per-subject) is now exceeded.
20
+ */
21
+ addSubjectCost(subjectId: string | number, cost: number): boolean;
22
+ /** Track cost by source type for reporting. */
23
+ addSourceCost(sourceType: string, cost: number): void;
24
+ /** Get total cost across all subjects. */
25
+ getTotalCost(): number;
26
+ /** Get cost for a specific subject. */
27
+ getSubjectCost(subjectId: string | number): number;
28
+ /** Check if total limit is exceeded. Returns false when no limit is set. */
29
+ isTotalLimitExceeded(): boolean;
30
+ /** Check if a specific subject's limit is exceeded. Returns false when no limit is set. */
31
+ isSubjectLimitExceeded(subjectId: string | number): boolean;
32
+ /** Get cost breakdown by source type. Returns a shallow copy. */
33
+ getCostBySource(): Record<string, number>;
34
+ /** Reset all tracking state. */
35
+ reset(): void;
36
+ }
37
+ //# sourceMappingURL=cost-tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cost-tracker.d.ts","sourceRoot":"","sources":["../src/cost-tracker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAAI;IACrB,OAAO,CAAC,YAAY,CAAqC;IACzD,OAAO,CAAC,YAAY,CAA6B;IAEjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;gBAE1C,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;KAAE;IAK3E;;;OAGG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAOjE,+CAA+C;IAC/C,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAIrD,0CAA0C;IAC1C,YAAY,IAAI,MAAM;IAItB,uCAAuC;IACvC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;IAIlD,4EAA4E;IAC5E,oBAAoB,IAAI,OAAO;IAK/B,2FAA2F;IAC3F,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO;IAK3D,iEAAiE;IACjE,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIzC,gCAAgC;IAChC,KAAK,IAAI,IAAI;CAKd"}