@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.
- package/README.md +86 -0
- package/dist/__tests__/base-source.test.d.ts +2 -0
- package/dist/__tests__/base-source.test.d.ts.map +1 -0
- package/dist/__tests__/base-source.test.js +333 -0
- package/dist/__tests__/base-source.test.js.map +1 -0
- package/dist/__tests__/batch-runner.test.d.ts +2 -0
- package/dist/__tests__/batch-runner.test.d.ts.map +1 -0
- package/dist/__tests__/batch-runner.test.js +217 -0
- package/dist/__tests__/batch-runner.test.js.map +1 -0
- package/dist/__tests__/cache.test.d.ts +2 -0
- package/dist/__tests__/cache.test.d.ts.map +1 -0
- package/dist/__tests__/cache.test.js +127 -0
- package/dist/__tests__/cache.test.js.map +1 -0
- package/dist/__tests__/confidence.test.d.ts +2 -0
- package/dist/__tests__/confidence.test.d.ts.map +1 -0
- package/dist/__tests__/confidence.test.js +81 -0
- package/dist/__tests__/confidence.test.js.map +1 -0
- package/dist/__tests__/cost-tracker.test.d.ts +2 -0
- package/dist/__tests__/cost-tracker.test.d.ts.map +1 -0
- package/dist/__tests__/cost-tracker.test.js +149 -0
- package/dist/__tests__/cost-tracker.test.js.map +1 -0
- package/dist/__tests__/orchestrator.test.d.ts +2 -0
- package/dist/__tests__/orchestrator.test.d.ts.map +1 -0
- package/dist/__tests__/orchestrator.test.js +751 -0
- package/dist/__tests__/orchestrator.test.js.map +1 -0
- package/dist/__tests__/rate-limiter.test.d.ts +2 -0
- package/dist/__tests__/rate-limiter.test.d.ts.map +1 -0
- package/dist/__tests__/rate-limiter.test.js +83 -0
- package/dist/__tests__/rate-limiter.test.js.map +1 -0
- package/dist/__tests__/reliability.test.d.ts +2 -0
- package/dist/__tests__/reliability.test.d.ts.map +1 -0
- package/dist/__tests__/reliability.test.js +207 -0
- package/dist/__tests__/reliability.test.js.map +1 -0
- package/dist/__tests__/synthesizer.test.d.ts +2 -0
- package/dist/__tests__/synthesizer.test.d.ts.map +1 -0
- package/dist/__tests__/synthesizer.test.js +50 -0
- package/dist/__tests__/synthesizer.test.js.map +1 -0
- package/dist/__tests__/telemetry.test.d.ts +2 -0
- package/dist/__tests__/telemetry.test.d.ts.map +1 -0
- package/dist/__tests__/telemetry.test.js +81 -0
- package/dist/__tests__/telemetry.test.js.map +1 -0
- package/dist/__tests__/types.test.d.ts +2 -0
- package/dist/__tests__/types.test.d.ts.map +1 -0
- package/dist/__tests__/types.test.js +708 -0
- package/dist/__tests__/types.test.js.map +1 -0
- package/dist/base-source.d.ts +91 -0
- package/dist/base-source.d.ts.map +1 -0
- package/dist/base-source.js +144 -0
- package/dist/base-source.js.map +1 -0
- package/dist/batch-runner.d.ts +40 -0
- package/dist/batch-runner.d.ts.map +1 -0
- package/dist/batch-runner.js +65 -0
- package/dist/batch-runner.js.map +1 -0
- package/dist/cache/in-memory.d.ts +26 -0
- package/dist/cache/in-memory.d.ts.map +1 -0
- package/dist/cache/in-memory.js +51 -0
- package/dist/cache/in-memory.js.map +1 -0
- package/dist/confidence.d.ts +13 -0
- package/dist/confidence.d.ts.map +1 -0
- package/dist/confidence.js +29 -0
- package/dist/confidence.js.map +1 -0
- package/dist/cost-tracker.d.ts +37 -0
- package/dist/cost-tracker.d.ts.map +1 -0
- package/dist/cost-tracker.js +62 -0
- package/dist/cost-tracker.js.map +1 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +28 -0
- package/dist/index.js.map +1 -0
- package/dist/orchestrator.d.ts +92 -0
- package/dist/orchestrator.d.ts.map +1 -0
- package/dist/orchestrator.js +373 -0
- package/dist/orchestrator.js.map +1 -0
- package/dist/rate-limiter.d.ts +31 -0
- package/dist/rate-limiter.d.ts.map +1 -0
- package/dist/rate-limiter.js +79 -0
- package/dist/rate-limiter.js.map +1 -0
- package/dist/reliability.d.ts +49 -0
- package/dist/reliability.d.ts.map +1 -0
- package/dist/reliability.js +67 -0
- package/dist/reliability.js.map +1 -0
- package/dist/synthesizer.d.ts +31 -0
- package/dist/synthesizer.d.ts.map +1 -0
- package/dist/synthesizer.js +47 -0
- package/dist/synthesizer.js.map +1 -0
- package/dist/telemetry/console.d.ts +7 -0
- package/dist/telemetry/console.d.ts.map +1 -0
- package/dist/telemetry/console.js +21 -0
- package/dist/telemetry/console.js.map +1 -0
- package/dist/telemetry/noop.d.ts +7 -0
- package/dist/telemetry/noop.d.ts.map +1 -0
- package/dist/telemetry/noop.js +12 -0
- package/dist/telemetry/noop.js.map +1 -0
- package/dist/types.d.ts +417 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +102 -0
- package/dist/types.js.map +1 -0
- 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"}
|