@framers/agentos-ext-deep-research 0.1.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/LICENSE +98 -0
- package/dist/ResearchService.d.ts +106 -0
- package/dist/ResearchService.d.ts.map +1 -0
- package/dist/ResearchService.js +450 -0
- package/dist/ResearchService.js.map +1 -0
- package/dist/engine/DeepResearchEngine.d.ts +40 -0
- package/dist/engine/DeepResearchEngine.d.ts.map +1 -0
- package/dist/engine/DeepResearchEngine.js +557 -0
- package/dist/engine/DeepResearchEngine.js.map +1 -0
- package/dist/engine/DeepResearchTool.d.ts +27 -0
- package/dist/engine/DeepResearchTool.d.ts.map +1 -0
- package/dist/engine/DeepResearchTool.js +118 -0
- package/dist/engine/DeepResearchTool.js.map +1 -0
- package/dist/engine/FirecrawlClient.d.ts +49 -0
- package/dist/engine/FirecrawlClient.d.ts.map +1 -0
- package/dist/engine/FirecrawlClient.js +101 -0
- package/dist/engine/FirecrawlClient.js.map +1 -0
- package/dist/engine/ResearchBudgetTracker.d.ts +36 -0
- package/dist/engine/ResearchBudgetTracker.d.ts.map +1 -0
- package/dist/engine/ResearchBudgetTracker.js +68 -0
- package/dist/engine/ResearchBudgetTracker.js.map +1 -0
- package/dist/engine/index.d.ts +9 -0
- package/dist/engine/index.d.ts.map +1 -0
- package/dist/engine/index.js +34 -0
- package/dist/engine/index.js.map +1 -0
- package/dist/engine/prompts.d.ts +14 -0
- package/dist/engine/prompts.d.ts.map +1 -0
- package/dist/engine/prompts.js +67 -0
- package/dist/engine/prompts.js.map +1 -0
- package/dist/engine/types.d.ts +133 -0
- package/dist/engine/types.d.ts.map +1 -0
- package/dist/engine/types.js +18 -0
- package/dist/engine/types.js.map +1 -0
- package/dist/index.d.ts +53 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +161 -0
- package/dist/index.js.map +1 -0
- package/dist/tools/academic.d.ts +41 -0
- package/dist/tools/academic.d.ts.map +1 -0
- package/dist/tools/academic.js +42 -0
- package/dist/tools/academic.js.map +1 -0
- package/dist/tools/aggregate.d.ts +44 -0
- package/dist/tools/aggregate.d.ts.map +1 -0
- package/dist/tools/aggregate.js +39 -0
- package/dist/tools/aggregate.js.map +1 -0
- package/dist/tools/investigate.d.ts +44 -0
- package/dist/tools/investigate.d.ts.map +1 -0
- package/dist/tools/investigate.js +39 -0
- package/dist/tools/investigate.js.map +1 -0
- package/dist/tools/scrape.d.ts +36 -0
- package/dist/tools/scrape.d.ts.map +1 -0
- package/dist/tools/scrape.js +38 -0
- package/dist/tools/scrape.js.map +1 -0
- package/dist/tools/trending.d.ts +35 -0
- package/dist/tools/trending.d.ts.map +1 -0
- package/dist/tools/trending.js +37 -0
- package/dist/tools/trending.js.map +1 -0
- package/manifest.json +25 -0
- package/package.json +35 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeepResearchEngine.js","sourceRoot":"","sources":["../../src/engine/DeepResearchEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview ITool wrapper for the Deep Research Engine.
|
|
3
|
+
*
|
|
4
|
+
* Exposes the engine as a single `deep_research` tool call that agents
|
|
5
|
+
* can invoke to conduct comprehensive, multi-source research.
|
|
6
|
+
*/
|
|
7
|
+
import type { ITool, JSONSchemaObject, ToolExecutionContext, ToolExecutionResult } from '@framers/agentos';
|
|
8
|
+
import type { DeepResearchInput, DeepResearchOutput } from './types.js';
|
|
9
|
+
import { DeepResearchEngine } from './DeepResearchEngine.js';
|
|
10
|
+
export declare class DeepResearchTool implements ITool<DeepResearchInput, DeepResearchOutput> {
|
|
11
|
+
private readonly engine;
|
|
12
|
+
readonly id = "deep-research-v1";
|
|
13
|
+
readonly name = "deep_research";
|
|
14
|
+
readonly displayName = "Deep Research";
|
|
15
|
+
readonly description: string;
|
|
16
|
+
readonly category = "research";
|
|
17
|
+
readonly hasSideEffects = false;
|
|
18
|
+
readonly inputSchema: JSONSchemaObject;
|
|
19
|
+
readonly requiredCapabilities: string[];
|
|
20
|
+
constructor(engine: DeepResearchEngine);
|
|
21
|
+
execute(input: DeepResearchInput, context: ToolExecutionContext): Promise<ToolExecutionResult<DeepResearchOutput>>;
|
|
22
|
+
validateArgs(input: Record<string, any>): {
|
|
23
|
+
isValid: boolean;
|
|
24
|
+
errors?: any[];
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=DeepResearchTool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeepResearchTool.d.ts","sourceRoot":"","sources":["../../src/engine/DeepResearchTool.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC3G,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAwC,MAAM,YAAY,CAAC;AAC9G,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAY7D,qBAAa,gBAAiB,YAAW,KAAK,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;IA+CvE,OAAO,CAAC,QAAQ,CAAC,MAAM;IA9CnC,SAAgB,EAAE,sBAAsB;IACxC,SAAgB,IAAI,mBAAmB;IACvC,SAAgB,WAAW,mBAAmB;IAC9C,SAAgB,WAAW,SAGqE;IAChG,SAAgB,QAAQ,cAAc;IACtC,SAAgB,cAAc,SAAS;IAEvC,SAAgB,WAAW,EAAE,gBAAgB,CAgC3C;IAEF,SAAgB,oBAAoB,WAA6B;gBAEpC,MAAM,EAAE,kBAAkB;IAEjD,OAAO,CACX,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;IA6BnD,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAA;KAAE;CAyB/E"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// @ts-nocheck
|
|
3
|
+
/**
|
|
4
|
+
* @fileoverview ITool wrapper for the Deep Research Engine.
|
|
5
|
+
*
|
|
6
|
+
* Exposes the engine as a single `deep_research` tool call that agents
|
|
7
|
+
* can invoke to conduct comprehensive, multi-source research.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.DeepResearchTool = void 0;
|
|
11
|
+
/** Human-readable labels for each research phase. */
|
|
12
|
+
const PHASE_LABELS = {
|
|
13
|
+
decomposing: 'Decomposing query into sub-questions',
|
|
14
|
+
searching: 'Searching sources',
|
|
15
|
+
extracting: 'Extracting content from sources',
|
|
16
|
+
analyzing_gaps: 'Analyzing knowledge gaps',
|
|
17
|
+
synthesizing: 'Synthesizing report',
|
|
18
|
+
complete: 'Research complete',
|
|
19
|
+
};
|
|
20
|
+
class DeepResearchTool {
|
|
21
|
+
constructor(engine) {
|
|
22
|
+
this.engine = engine;
|
|
23
|
+
this.id = 'deep-research-v1';
|
|
24
|
+
this.name = 'deep_research';
|
|
25
|
+
this.displayName = 'Deep Research';
|
|
26
|
+
this.description = 'Conduct comprehensive multi-source research. Recursively decomposes queries, ' +
|
|
27
|
+
'searches web/academic/news, extracts content, identifies gaps, and synthesizes a ' +
|
|
28
|
+
'detailed report with citations. Use for complex questions requiring thorough investigation.';
|
|
29
|
+
this.category = 'research';
|
|
30
|
+
this.hasSideEffects = false;
|
|
31
|
+
this.inputSchema = {
|
|
32
|
+
type: 'object',
|
|
33
|
+
required: ['query'],
|
|
34
|
+
properties: {
|
|
35
|
+
query: {
|
|
36
|
+
type: 'string',
|
|
37
|
+
description: 'Research question or topic to investigate',
|
|
38
|
+
},
|
|
39
|
+
depth: {
|
|
40
|
+
type: 'string',
|
|
41
|
+
enum: ['quick', 'moderate', 'deep'],
|
|
42
|
+
default: 'moderate',
|
|
43
|
+
description: 'Research depth — quick (30s, 10 searches), moderate (2min, 20 searches), deep (9min, 50 searches)',
|
|
44
|
+
},
|
|
45
|
+
maxIterations: {
|
|
46
|
+
type: 'integer',
|
|
47
|
+
minimum: 1,
|
|
48
|
+
maximum: 10,
|
|
49
|
+
description: 'Maximum search-extract-analyze iterations',
|
|
50
|
+
},
|
|
51
|
+
sources: {
|
|
52
|
+
type: 'array',
|
|
53
|
+
items: { type: 'string', enum: ['web', 'academic', 'news', 'social'] },
|
|
54
|
+
description: 'Source types to search',
|
|
55
|
+
},
|
|
56
|
+
focusAreas: {
|
|
57
|
+
type: 'array',
|
|
58
|
+
items: { type: 'string' },
|
|
59
|
+
description: 'Specific aspects to focus on',
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
additionalProperties: false,
|
|
63
|
+
};
|
|
64
|
+
this.requiredCapabilities = ['capability:web_search'];
|
|
65
|
+
}
|
|
66
|
+
async execute(input, context) {
|
|
67
|
+
// Build a per-call progress bridge: translate ResearchProgressEvent into
|
|
68
|
+
// the generic onToolProgress shape expected by the wunderland runtime.
|
|
69
|
+
const ctxAny = context;
|
|
70
|
+
const runtimeProgressCb = typeof ctxAny['onToolProgress'] === 'function'
|
|
71
|
+
? ctxAny['onToolProgress']
|
|
72
|
+
: null;
|
|
73
|
+
const onProgress = runtimeProgressCb
|
|
74
|
+
? (event) => {
|
|
75
|
+
const label = PHASE_LABELS[event.phase] ?? event.phase;
|
|
76
|
+
const detail = event.currentQuery ? ` "${event.currentQuery}"` : '';
|
|
77
|
+
const sources = event.sourcesCount > 0 ? `, ${event.sourcesCount} sources` : '';
|
|
78
|
+
const message = `${label}${detail} (iter ${event.iteration}/${event.totalIterations}, ${event.findingsCount} findings${sources})`;
|
|
79
|
+
const progress = event.totalIterations > 0
|
|
80
|
+
? Math.min(event.iteration / event.totalIterations, 1)
|
|
81
|
+
: undefined;
|
|
82
|
+
runtimeProgressCb({ phase: event.phase, message, progress });
|
|
83
|
+
}
|
|
84
|
+
: undefined;
|
|
85
|
+
try {
|
|
86
|
+
const result = await this.engine.research(input, onProgress);
|
|
87
|
+
return { success: true, output: result };
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
return { success: false, error: error?.message || String(error) };
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
validateArgs(input) {
|
|
94
|
+
const errors = [];
|
|
95
|
+
if (!input.query) {
|
|
96
|
+
errors.push('query is required');
|
|
97
|
+
}
|
|
98
|
+
else if (typeof input.query !== 'string') {
|
|
99
|
+
errors.push('query must be a string');
|
|
100
|
+
}
|
|
101
|
+
else if (input.query.length < 3) {
|
|
102
|
+
errors.push('query must be at least 3 characters');
|
|
103
|
+
}
|
|
104
|
+
if (input.depth !== undefined) {
|
|
105
|
+
if (!['quick', 'moderate', 'deep'].includes(input.depth)) {
|
|
106
|
+
errors.push('depth must be quick, moderate, or deep');
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
if (input.maxIterations !== undefined) {
|
|
110
|
+
if (typeof input.maxIterations !== 'number' || input.maxIterations < 1 || input.maxIterations > 10) {
|
|
111
|
+
errors.push('maxIterations must be 1-10');
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return errors.length === 0 ? { isValid: true } : { isValid: false, errors };
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
exports.DeepResearchTool = DeepResearchTool;
|
|
118
|
+
//# sourceMappingURL=DeepResearchTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeepResearchTool.js","sourceRoot":"","sources":["../../src/engine/DeepResearchTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Firecrawl API client for deep research content extraction and crawling.
|
|
3
|
+
*
|
|
4
|
+
* Provides two capabilities:
|
|
5
|
+
* - scrape(): Extract clean markdown from a single URL (JS-rendered, anti-bot)
|
|
6
|
+
* - crawl(): Multi-page site crawl with status polling (deep research only)
|
|
7
|
+
*
|
|
8
|
+
* @see https://docs.firecrawl.dev/api-reference
|
|
9
|
+
* @module deep-research/engine/FirecrawlClient
|
|
10
|
+
*/
|
|
11
|
+
/** Extracted content from a Firecrawl scrape. */
|
|
12
|
+
export interface ScrapedContent {
|
|
13
|
+
url: string;
|
|
14
|
+
title: string;
|
|
15
|
+
content: string;
|
|
16
|
+
wordCount: number;
|
|
17
|
+
}
|
|
18
|
+
/** Result of a Firecrawl crawl job. */
|
|
19
|
+
export interface CrawlResult {
|
|
20
|
+
pages: ScrapedContent[];
|
|
21
|
+
totalPages: number;
|
|
22
|
+
completedAt: string;
|
|
23
|
+
}
|
|
24
|
+
/** Configuration for the Firecrawl client. */
|
|
25
|
+
export interface FirecrawlConfig {
|
|
26
|
+
apiKey: string;
|
|
27
|
+
/** Max pages per crawl job. Default: 10. */
|
|
28
|
+
maxCrawlPages?: number;
|
|
29
|
+
/** Crawl job timeout in ms. Default: 120000 (2 minutes). */
|
|
30
|
+
crawlTimeoutMs?: number;
|
|
31
|
+
/** Poll interval for crawl status in ms. Default: 3000. */
|
|
32
|
+
pollIntervalMs?: number;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Firecrawl API client for scraping and crawling.
|
|
36
|
+
* Used by DeepResearchEngine when Firecrawl is configured.
|
|
37
|
+
*/
|
|
38
|
+
export declare class FirecrawlClient {
|
|
39
|
+
private readonly apiKey;
|
|
40
|
+
private readonly maxCrawlPages;
|
|
41
|
+
private readonly crawlTimeoutMs;
|
|
42
|
+
private readonly pollIntervalMs;
|
|
43
|
+
constructor(config: FirecrawlConfig);
|
|
44
|
+
/** Scrape a single URL and return clean markdown content. */
|
|
45
|
+
scrape(url: string): Promise<ScrapedContent>;
|
|
46
|
+
/** Crawl a domain and return multiple pages of content. Polls until completion. */
|
|
47
|
+
crawl(url: string): Promise<CrawlResult>;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=FirecrawlClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FirecrawlClient.d.ts","sourceRoot":"","sources":["../../src/engine/FirecrawlClient.ts"],"names":[],"mappings":"AACA;;;;;;;;;GASG;AAEH,iDAAiD;AACjD,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,uCAAuC;AACvC,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,8CAA8C;AAC9C,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4DAA4D;IAC5D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2DAA2D;IAC3D,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;gBAE5B,MAAM,EAAE,eAAe;IAOnC,6DAA6D;IACvD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAkClD,mFAAmF;IAC7E,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CAsD/C"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// @ts-nocheck
|
|
3
|
+
/**
|
|
4
|
+
* @fileoverview Firecrawl API client for deep research content extraction and crawling.
|
|
5
|
+
*
|
|
6
|
+
* Provides two capabilities:
|
|
7
|
+
* - scrape(): Extract clean markdown from a single URL (JS-rendered, anti-bot)
|
|
8
|
+
* - crawl(): Multi-page site crawl with status polling (deep research only)
|
|
9
|
+
*
|
|
10
|
+
* @see https://docs.firecrawl.dev/api-reference
|
|
11
|
+
* @module deep-research/engine/FirecrawlClient
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.FirecrawlClient = void 0;
|
|
15
|
+
/**
|
|
16
|
+
* Firecrawl API client for scraping and crawling.
|
|
17
|
+
* Used by DeepResearchEngine when Firecrawl is configured.
|
|
18
|
+
*/
|
|
19
|
+
class FirecrawlClient {
|
|
20
|
+
constructor(config) {
|
|
21
|
+
this.apiKey = config.apiKey;
|
|
22
|
+
this.maxCrawlPages = config.maxCrawlPages ?? 10;
|
|
23
|
+
this.crawlTimeoutMs = config.crawlTimeoutMs ?? 120000;
|
|
24
|
+
this.pollIntervalMs = config.pollIntervalMs ?? 3000;
|
|
25
|
+
}
|
|
26
|
+
/** Scrape a single URL and return clean markdown content. */
|
|
27
|
+
async scrape(url) {
|
|
28
|
+
const controller = new AbortController();
|
|
29
|
+
const timeout = setTimeout(() => controller.abort(), 30000);
|
|
30
|
+
try {
|
|
31
|
+
const res = await fetch('https://api.firecrawl.dev/v1/scrape', {
|
|
32
|
+
method: 'POST',
|
|
33
|
+
headers: {
|
|
34
|
+
'Content-Type': 'application/json',
|
|
35
|
+
'Authorization': `Bearer ${this.apiKey}`,
|
|
36
|
+
},
|
|
37
|
+
body: JSON.stringify({ url, formats: ['markdown'] }),
|
|
38
|
+
signal: controller.signal,
|
|
39
|
+
});
|
|
40
|
+
if (!res.ok)
|
|
41
|
+
throw new Error(`Firecrawl scrape error: ${res.status}`);
|
|
42
|
+
const data = (await res.json());
|
|
43
|
+
const markdown = data.data?.markdown ?? '';
|
|
44
|
+
return {
|
|
45
|
+
url,
|
|
46
|
+
title: data.data?.metadata?.title ?? url,
|
|
47
|
+
content: markdown,
|
|
48
|
+
wordCount: markdown.split(/\s+/).length,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
finally {
|
|
52
|
+
clearTimeout(timeout);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/** Crawl a domain and return multiple pages of content. Polls until completion. */
|
|
56
|
+
async crawl(url) {
|
|
57
|
+
const startRes = await fetch('https://api.firecrawl.dev/v1/crawl', {
|
|
58
|
+
method: 'POST',
|
|
59
|
+
headers: {
|
|
60
|
+
'Content-Type': 'application/json',
|
|
61
|
+
'Authorization': `Bearer ${this.apiKey}`,
|
|
62
|
+
},
|
|
63
|
+
body: JSON.stringify({
|
|
64
|
+
url,
|
|
65
|
+
limit: this.maxCrawlPages,
|
|
66
|
+
scrapeOptions: { formats: ['markdown'] },
|
|
67
|
+
}),
|
|
68
|
+
});
|
|
69
|
+
if (!startRes.ok)
|
|
70
|
+
throw new Error(`Firecrawl crawl start error: ${startRes.status}`);
|
|
71
|
+
const { id: jobId } = (await startRes.json());
|
|
72
|
+
const startTime = Date.now();
|
|
73
|
+
while (Date.now() - startTime < this.crawlTimeoutMs) {
|
|
74
|
+
await new Promise((r) => setTimeout(r, this.pollIntervalMs));
|
|
75
|
+
const statusRes = await fetch(`https://api.firecrawl.dev/v1/crawl/${jobId}`, {
|
|
76
|
+
headers: { 'Authorization': `Bearer ${this.apiKey}` },
|
|
77
|
+
});
|
|
78
|
+
if (!statusRes.ok)
|
|
79
|
+
continue;
|
|
80
|
+
const status = (await statusRes.json());
|
|
81
|
+
if (status.status === 'completed' && status.data) {
|
|
82
|
+
const pages = status.data.map((page) => {
|
|
83
|
+
const markdown = page.markdown ?? '';
|
|
84
|
+
return {
|
|
85
|
+
url: page.metadata?.sourceURL ?? url,
|
|
86
|
+
title: page.metadata?.title ?? '',
|
|
87
|
+
content: markdown,
|
|
88
|
+
wordCount: markdown.split(/\s+/).length,
|
|
89
|
+
};
|
|
90
|
+
});
|
|
91
|
+
return { pages, totalPages: pages.length, completedAt: new Date().toISOString() };
|
|
92
|
+
}
|
|
93
|
+
if (status.status === 'failed') {
|
|
94
|
+
throw new Error('Firecrawl crawl job failed');
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
throw new Error(`Firecrawl crawl timed out after ${this.crawlTimeoutMs}ms`);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
exports.FirecrawlClient = FirecrawlClient;
|
|
101
|
+
//# sourceMappingURL=FirecrawlClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FirecrawlClient.js","sourceRoot":"","sources":["../../src/engine/FirecrawlClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Budget enforcement for the Deep Research Engine.
|
|
3
|
+
*
|
|
4
|
+
* Tracks search queries, page extractions, LLM calls, and wall-clock time
|
|
5
|
+
* against hard caps defined by {@link ResearchBudget}.
|
|
6
|
+
*/
|
|
7
|
+
import type { ResearchBudget } from './types.js';
|
|
8
|
+
export declare class ResearchBudgetTracker {
|
|
9
|
+
private readonly budget;
|
|
10
|
+
private searchesUsed;
|
|
11
|
+
private extractionsUsed;
|
|
12
|
+
private llmCallsUsed;
|
|
13
|
+
private readonly startTime;
|
|
14
|
+
constructor(budget: ResearchBudget);
|
|
15
|
+
canSearch(): boolean;
|
|
16
|
+
canExtract(): boolean;
|
|
17
|
+
canCallLLM(): boolean;
|
|
18
|
+
isTimedOut(): boolean;
|
|
19
|
+
isExhausted(): boolean;
|
|
20
|
+
recordSearch(): void;
|
|
21
|
+
recordExtraction(): void;
|
|
22
|
+
recordLLMCall(): void;
|
|
23
|
+
getUsed(): {
|
|
24
|
+
searchesUsed: number;
|
|
25
|
+
extractionsUsed: number;
|
|
26
|
+
llmCallsUsed: number;
|
|
27
|
+
};
|
|
28
|
+
getRemaining(): {
|
|
29
|
+
searches: number;
|
|
30
|
+
extractions: number;
|
|
31
|
+
llmCalls: number;
|
|
32
|
+
timeMs: number;
|
|
33
|
+
};
|
|
34
|
+
getElapsedMs(): number;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=ResearchBudgetTracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResearchBudgetTracker.d.ts","sourceRoot":"","sources":["../../src/engine/ResearchBudgetTracker.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,qBAAa,qBAAqB;IAMpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IALnC,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEN,MAAM,EAAE,cAAc;IAMnD,SAAS,IAAI,OAAO;IAIpB,UAAU,IAAI,OAAO;IAIrB,UAAU,IAAI,OAAO;IAIrB,UAAU,IAAI,OAAO;IAIrB,WAAW,IAAI,OAAO;IAUtB,YAAY,IAAI,IAAI;IAIpB,gBAAgB,IAAI,IAAI;IAIxB,aAAa,IAAI,IAAI;IAMrB,OAAO;;;;;IAQP,YAAY;;;;;;IASZ,YAAY,IAAI,MAAM;CAGvB"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// @ts-nocheck
|
|
3
|
+
/**
|
|
4
|
+
* @fileoverview Budget enforcement for the Deep Research Engine.
|
|
5
|
+
*
|
|
6
|
+
* Tracks search queries, page extractions, LLM calls, and wall-clock time
|
|
7
|
+
* against hard caps defined by {@link ResearchBudget}.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.ResearchBudgetTracker = void 0;
|
|
11
|
+
class ResearchBudgetTracker {
|
|
12
|
+
constructor(budget) {
|
|
13
|
+
this.budget = budget;
|
|
14
|
+
this.searchesUsed = 0;
|
|
15
|
+
this.extractionsUsed = 0;
|
|
16
|
+
this.llmCallsUsed = 0;
|
|
17
|
+
this.startTime = Date.now();
|
|
18
|
+
}
|
|
19
|
+
// ── Queries ──
|
|
20
|
+
canSearch() {
|
|
21
|
+
return this.searchesUsed < this.budget.maxSearchQueries && !this.isTimedOut();
|
|
22
|
+
}
|
|
23
|
+
canExtract() {
|
|
24
|
+
return this.extractionsUsed < this.budget.maxPageExtractions && !this.isTimedOut();
|
|
25
|
+
}
|
|
26
|
+
canCallLLM() {
|
|
27
|
+
return this.llmCallsUsed < this.budget.maxLLMCalls && !this.isTimedOut();
|
|
28
|
+
}
|
|
29
|
+
isTimedOut() {
|
|
30
|
+
return Date.now() - this.startTime >= this.budget.maxTotalTimeMs;
|
|
31
|
+
}
|
|
32
|
+
isExhausted() {
|
|
33
|
+
return (this.isTimedOut() ||
|
|
34
|
+
(this.searchesUsed >= this.budget.maxSearchQueries &&
|
|
35
|
+
this.extractionsUsed >= this.budget.maxPageExtractions));
|
|
36
|
+
}
|
|
37
|
+
// ── Mutations ──
|
|
38
|
+
recordSearch() {
|
|
39
|
+
this.searchesUsed++;
|
|
40
|
+
}
|
|
41
|
+
recordExtraction() {
|
|
42
|
+
this.extractionsUsed++;
|
|
43
|
+
}
|
|
44
|
+
recordLLMCall() {
|
|
45
|
+
this.llmCallsUsed++;
|
|
46
|
+
}
|
|
47
|
+
// ── Snapshot ──
|
|
48
|
+
getUsed() {
|
|
49
|
+
return {
|
|
50
|
+
searchesUsed: this.searchesUsed,
|
|
51
|
+
extractionsUsed: this.extractionsUsed,
|
|
52
|
+
llmCallsUsed: this.llmCallsUsed,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
getRemaining() {
|
|
56
|
+
return {
|
|
57
|
+
searches: Math.max(0, this.budget.maxSearchQueries - this.searchesUsed),
|
|
58
|
+
extractions: Math.max(0, this.budget.maxPageExtractions - this.extractionsUsed),
|
|
59
|
+
llmCalls: Math.max(0, this.budget.maxLLMCalls - this.llmCallsUsed),
|
|
60
|
+
timeMs: Math.max(0, this.budget.maxTotalTimeMs - (Date.now() - this.startTime)),
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
getElapsedMs() {
|
|
64
|
+
return Date.now() - this.startTime;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
exports.ResearchBudgetTracker = ResearchBudgetTracker;
|
|
68
|
+
//# sourceMappingURL=ResearchBudgetTracker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResearchBudgetTracker.js","sourceRoot":"","sources":["../../src/engine/ResearchBudgetTracker.ts"],"names":[],"mappings":";AAAA,cAAc;AACd;;;;;GAKG;;;AAIH,MAAa,qBAAqB;IAMhC,YAA6B,MAAsB;QAAtB,WAAM,GAAN,MAAM,CAAgB;QAL3C,iBAAY,GAAG,CAAC,CAAC;QACjB,oBAAe,GAAG,CAAC,CAAC;QACpB,iBAAY,GAAG,CAAC,CAAC;QAIvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC9B,CAAC;IAED,gBAAgB;IAEhB,SAAS;QACP,OAAO,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;IAChF,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;IACrF,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;IAC3E,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;IACnE,CAAC;IAED,WAAW;QACT,OAAO,CACL,IAAI,CAAC,UAAU,EAAE;YACjB,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB;gBAChD,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAC1D,CAAC;IACJ,CAAC;IAED,kBAAkB;IAElB,YAAY;QACV,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,aAAa;QACX,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED,iBAAiB;IAEjB,OAAO;QACL,OAAO;YACL,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC;IACJ,CAAC;IAED,YAAY;QACV,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC;YACvE,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC;YAC/E,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;YAClE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;SAChF,CAAC;IACJ,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;IACrC,CAAC;CACF;AAxED,sDAwEC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Barrel exports for the Deep Research Engine.
|
|
3
|
+
*/
|
|
4
|
+
export { DeepResearchEngine } from './DeepResearchEngine.js';
|
|
5
|
+
export { DeepResearchTool } from './DeepResearchTool.js';
|
|
6
|
+
export { ResearchBudgetTracker } from './ResearchBudgetTracker.js';
|
|
7
|
+
export * from './types.js';
|
|
8
|
+
export { parseJsonArray, DECOMPOSITION_PROMPT, GAP_ANALYSIS_PROMPT, SYNTHESIS_PROMPT } from './prompts.js';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"AACA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// @ts-nocheck
|
|
3
|
+
/**
|
|
4
|
+
* @fileoverview Barrel exports for the Deep Research Engine.
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
18
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
19
|
+
};
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.SYNTHESIS_PROMPT = exports.GAP_ANALYSIS_PROMPT = exports.DECOMPOSITION_PROMPT = exports.parseJsonArray = exports.ResearchBudgetTracker = exports.DeepResearchTool = exports.DeepResearchEngine = void 0;
|
|
22
|
+
var DeepResearchEngine_js_1 = require("./DeepResearchEngine.js");
|
|
23
|
+
Object.defineProperty(exports, "DeepResearchEngine", { enumerable: true, get: function () { return DeepResearchEngine_js_1.DeepResearchEngine; } });
|
|
24
|
+
var DeepResearchTool_js_1 = require("./DeepResearchTool.js");
|
|
25
|
+
Object.defineProperty(exports, "DeepResearchTool", { enumerable: true, get: function () { return DeepResearchTool_js_1.DeepResearchTool; } });
|
|
26
|
+
var ResearchBudgetTracker_js_1 = require("./ResearchBudgetTracker.js");
|
|
27
|
+
Object.defineProperty(exports, "ResearchBudgetTracker", { enumerable: true, get: function () { return ResearchBudgetTracker_js_1.ResearchBudgetTracker; } });
|
|
28
|
+
__exportStar(require("./types.js"), exports);
|
|
29
|
+
var prompts_js_1 = require("./prompts.js");
|
|
30
|
+
Object.defineProperty(exports, "parseJsonArray", { enumerable: true, get: function () { return prompts_js_1.parseJsonArray; } });
|
|
31
|
+
Object.defineProperty(exports, "DECOMPOSITION_PROMPT", { enumerable: true, get: function () { return prompts_js_1.DECOMPOSITION_PROMPT; } });
|
|
32
|
+
Object.defineProperty(exports, "GAP_ANALYSIS_PROMPT", { enumerable: true, get: function () { return prompts_js_1.GAP_ANALYSIS_PROMPT; } });
|
|
33
|
+
Object.defineProperty(exports, "SYNTHESIS_PROMPT", { enumerable: true, get: function () { return prompts_js_1.SYNTHESIS_PROMPT; } });
|
|
34
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":";AAAA,cAAc;AACd;;GAEG;;;;;;;;;;;;;;;;;AAEH,iEAA6D;AAApD,2HAAA,kBAAkB,OAAA;AAC3B,6DAAyD;AAAhD,uHAAA,gBAAgB,OAAA;AACzB,uEAAmE;AAA1D,iIAAA,qBAAqB,OAAA;AAC9B,6CAA2B;AAC3B,2CAA2G;AAAlG,4GAAA,cAAc,OAAA;AAAE,kHAAA,oBAAoB,OAAA;AAAE,iHAAA,mBAAmB,OAAA;AAAE,8GAAA,gBAAgB,OAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Prompt templates for the Deep Research Engine's LLM calls.
|
|
3
|
+
*
|
|
4
|
+
* All prompts request JSON output for reliable parsing.
|
|
5
|
+
* Fallback: line-by-line extraction if JSON parse fails.
|
|
6
|
+
*/
|
|
7
|
+
export declare const DECOMPOSITION_PROMPT = "You are a research planner. Break the following research query into 3-5 specific, searchable sub-questions that together would provide a comprehensive answer.\n\nResearch query: \"{query}\"\n{focusAreas}\n\nReply with ONLY a JSON array of strings. Example:\n[\"What is X?\", \"How does X affect Y?\", \"What are the latest statistics on X?\"]\n\nSub-questions:";
|
|
8
|
+
export declare const GAP_ANALYSIS_PROMPT = "You are a research analyst reviewing findings so far. Identify 2-3 important aspects that are still missing, under-explored, or need verification.\n\nOriginal query: \"{query}\"\n\nFindings so far:\n{findings}\n\nReply with ONLY a JSON array of follow-up search queries to fill the gaps. Example:\n[\"What are the counter-arguments to X?\", \"What do recent studies say about Y?\"]\n\nFollow-up queries:";
|
|
9
|
+
export declare const SYNTHESIS_PROMPT = "You are a senior research analyst. Synthesize the following research findings into a comprehensive, well-structured report.\n\nOriginal query: \"{query}\"\n\nCollected evidence (with source URLs):\n{evidence}\n\nWrite a report with these sections:\n1. **Executive Summary** (2-3 sentences answering the query directly)\n2. **Detailed Findings** (organized by theme, with inline citations like [Source: url])\n3. **Knowledge Gaps** (what couldn't be fully answered)\n\nBe factual. Cite sources inline. If evidence is conflicting, note both sides. Do not fabricate information beyond what the evidence shows.";
|
|
10
|
+
/**
|
|
11
|
+
* Parses a JSON array from LLM output, with fallback to line-by-line extraction.
|
|
12
|
+
*/
|
|
13
|
+
export declare function parseJsonArray(text: string): string[];
|
|
14
|
+
//# sourceMappingURL=prompts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/engine/prompts.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AAEH,eAAO,MAAM,oBAAoB,6WAQlB,CAAC;AAEhB,eAAO,MAAM,mBAAmB,wZAUb,CAAC;AAEpB,eAAO,MAAM,gBAAgB,mmBAY8G,CAAC;AAE5I;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAkBrD"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// @ts-nocheck
|
|
3
|
+
/**
|
|
4
|
+
* @fileoverview Prompt templates for the Deep Research Engine's LLM calls.
|
|
5
|
+
*
|
|
6
|
+
* All prompts request JSON output for reliable parsing.
|
|
7
|
+
* Fallback: line-by-line extraction if JSON parse fails.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.SYNTHESIS_PROMPT = exports.GAP_ANALYSIS_PROMPT = exports.DECOMPOSITION_PROMPT = void 0;
|
|
11
|
+
exports.parseJsonArray = parseJsonArray;
|
|
12
|
+
exports.DECOMPOSITION_PROMPT = `You are a research planner. Break the following research query into 3-5 specific, searchable sub-questions that together would provide a comprehensive answer.
|
|
13
|
+
|
|
14
|
+
Research query: "{query}"
|
|
15
|
+
{focusAreas}
|
|
16
|
+
|
|
17
|
+
Reply with ONLY a JSON array of strings. Example:
|
|
18
|
+
["What is X?", "How does X affect Y?", "What are the latest statistics on X?"]
|
|
19
|
+
|
|
20
|
+
Sub-questions:`;
|
|
21
|
+
exports.GAP_ANALYSIS_PROMPT = `You are a research analyst reviewing findings so far. Identify 2-3 important aspects that are still missing, under-explored, or need verification.
|
|
22
|
+
|
|
23
|
+
Original query: "{query}"
|
|
24
|
+
|
|
25
|
+
Findings so far:
|
|
26
|
+
{findings}
|
|
27
|
+
|
|
28
|
+
Reply with ONLY a JSON array of follow-up search queries to fill the gaps. Example:
|
|
29
|
+
["What are the counter-arguments to X?", "What do recent studies say about Y?"]
|
|
30
|
+
|
|
31
|
+
Follow-up queries:`;
|
|
32
|
+
exports.SYNTHESIS_PROMPT = `You are a senior research analyst. Synthesize the following research findings into a comprehensive, well-structured report.
|
|
33
|
+
|
|
34
|
+
Original query: "{query}"
|
|
35
|
+
|
|
36
|
+
Collected evidence (with source URLs):
|
|
37
|
+
{evidence}
|
|
38
|
+
|
|
39
|
+
Write a report with these sections:
|
|
40
|
+
1. **Executive Summary** (2-3 sentences answering the query directly)
|
|
41
|
+
2. **Detailed Findings** (organized by theme, with inline citations like [Source: url])
|
|
42
|
+
3. **Knowledge Gaps** (what couldn't be fully answered)
|
|
43
|
+
|
|
44
|
+
Be factual. Cite sources inline. If evidence is conflicting, note both sides. Do not fabricate information beyond what the evidence shows.`;
|
|
45
|
+
/**
|
|
46
|
+
* Parses a JSON array from LLM output, with fallback to line-by-line extraction.
|
|
47
|
+
*/
|
|
48
|
+
function parseJsonArray(text) {
|
|
49
|
+
// Try JSON parse first
|
|
50
|
+
const jsonMatch = text.match(/\[[\s\S]*?\]/);
|
|
51
|
+
if (jsonMatch) {
|
|
52
|
+
try {
|
|
53
|
+
const parsed = JSON.parse(jsonMatch[0]);
|
|
54
|
+
if (Array.isArray(parsed) && parsed.every(item => typeof item === 'string')) {
|
|
55
|
+
return parsed.filter(s => s.trim().length > 0);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
catch { /* fall through */ }
|
|
59
|
+
}
|
|
60
|
+
// Fallback: extract lines that look like questions/queries
|
|
61
|
+
return text
|
|
62
|
+
.split('\n')
|
|
63
|
+
.map(line => line.replace(/^[\s\-*\d.)"]+/, '').replace(/["]+$/g, '').trim())
|
|
64
|
+
.filter(line => line.length > 10 && line.length < 200)
|
|
65
|
+
.slice(0, 5);
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/engine/prompts.ts"],"names":[],"mappings":";AAAA,cAAc;AACd;;;;;GAKG;;;AAyCH,wCAkBC;AAzDY,QAAA,oBAAoB,GAAG;;;;;;;;eAQrB,CAAC;AAEH,QAAA,mBAAmB,GAAG;;;;;;;;;;mBAUhB,CAAC;AAEP,QAAA,gBAAgB,GAAG;;;;;;;;;;;;2IAY2G,CAAC;AAE5I;;GAEG;AACH,SAAgB,cAAc,CAAC,IAAY;IACzC,uBAAuB;IACvB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC7C,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YACxC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;gBAC5E,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAChC,CAAC;IAED,2DAA2D;IAC3D,OAAO,IAAI;SACR,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;SAC5E,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;SACrD,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACjB,CAAC"}
|