@x12i/sdk 0.2.0 → 0.4.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/dist/client.d.ts +130 -42
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +544 -31
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +16 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/package.json +15 -9
package/dist/client.d.ts
CHANGED
|
@@ -1,29 +1,38 @@
|
|
|
1
1
|
import { ParserRegistry, type ClassifyCandidate, type FetchResult, type ParsedResult, type Parser } from "@x12i/core";
|
|
2
|
-
import { type FetchOptions } from "@x12i/fetcher";
|
|
2
|
+
import { type FetchOptions, type RetrieveOptions, type RetrieveBatchItem, type FetchCache, type SnapshotStore, type CachedRetrieveOptions, type ChangeCheckRequest, type ChangeCheckResult } from "@x12i/fetcher";
|
|
3
3
|
import { type IngestOptions, type IngestResult } from "@x12i/ingest";
|
|
4
4
|
import { type SearchConfig, type SearchProvider, type WebSearchRequest, type WebSearchResponse } from "@x12i/search";
|
|
5
|
+
import { type CrawlRequest, type CrawlResult } from "@x12i/crawl";
|
|
6
|
+
import { type ResearchPacket, type ResearchRequest } from "@x12i/research";
|
|
7
|
+
import { type ExtractRequest, type ExtractResult, type ExtractionAdapter } from "@x12i/extract";
|
|
8
|
+
import { type RunRecord, type RunStore, type ListItemsOptions, type ListItemsResult } from "@x12i/runs";
|
|
9
|
+
import { type AnalyzeWebChangesRequest, type AnalyzeWebSourceRequest, type AnswerFromWebRequest, type AuditWebResearchRequest, type CompareWebSubjectsRequest, type FuncxExecutor, type WebFunctionBinding } from "@x12i/web-functions";
|
|
5
10
|
export interface WebAgentClientOptions {
|
|
6
|
-
/** Provide your own registry (e.g. to only register a subset of parsers). Defaults to every first-party parser. */
|
|
7
11
|
registry?: ParserRegistry;
|
|
8
|
-
/** Default fetch options applied to every call, overridable per-call. */
|
|
9
12
|
fetchOptions?: FetchOptions;
|
|
10
|
-
/**
|
|
11
|
-
* Reuse a single browser instance across calls instead of launching one
|
|
12
|
-
* per fetch. Recommended for long-lived processes (the API/MCP server).
|
|
13
|
-
* Call `.close()` when done.
|
|
14
|
-
*/
|
|
15
13
|
reuseBrowser?: boolean;
|
|
16
|
-
/** Inject a search provider, or Serper config. Defaults to Serper from env. Pass `null` to disable search. */
|
|
17
14
|
search?: SearchProvider | SearchConfig | null;
|
|
15
|
+
fetchCache?: FetchCache;
|
|
16
|
+
snapshotStore?: SnapshotStore;
|
|
17
|
+
runStore?: RunStore;
|
|
18
|
+
extractionAdapter?: ExtractionAdapter;
|
|
19
|
+
/** When true, client owns and closes default in-memory stores it created. */
|
|
20
|
+
ownsDefaultStores?: boolean;
|
|
21
|
+
/** Injected FuncX executor. When omitted, built from env (default mode: disabled). */
|
|
22
|
+
funcxExecutor?: FuncxExecutor;
|
|
23
|
+
/** Operator-approved web function bindings. */
|
|
24
|
+
webFunctionBindings?: WebFunctionBinding[];
|
|
25
|
+
aiProfiles?: {
|
|
26
|
+
source?: "auto" | "remote" | "bundled";
|
|
27
|
+
catalogLane?: "text";
|
|
28
|
+
};
|
|
29
|
+
/** When true, SDK owns and may close an executor it constructed. Injected executors are never closed. */
|
|
30
|
+
ownsFuncxExecutor?: boolean;
|
|
18
31
|
}
|
|
19
32
|
export interface FetchSearchResultsOptions {
|
|
20
|
-
/** 1-based organic positions to fetch. Ignored when `urls` is set. */
|
|
21
33
|
positions?: number[];
|
|
22
|
-
/** Explicit URLs to fetch (skips position selection). */
|
|
23
34
|
urls?: string[];
|
|
24
|
-
/** Max concurrent page fetches. Default 2. */
|
|
25
35
|
concurrency?: number;
|
|
26
|
-
/** When true, continue fetching after a page failure. Default true. */
|
|
27
36
|
continueOnError?: boolean;
|
|
28
37
|
fetchOptions?: FetchOptions;
|
|
29
38
|
signal?: AbortSignal;
|
|
@@ -36,7 +45,6 @@ export interface FetchedSearchPage {
|
|
|
36
45
|
error?: string;
|
|
37
46
|
}
|
|
38
47
|
export interface SearchAndFetchRequest extends WebSearchRequest {
|
|
39
|
-
/** Fetch the first N organic results. Default 3. Ignored when positions/urls set. */
|
|
40
48
|
top?: number;
|
|
41
49
|
positions?: number[];
|
|
42
50
|
urls?: string[];
|
|
@@ -50,9 +58,8 @@ export interface SearchAndFetchResult {
|
|
|
50
58
|
pages: FetchedSearchPage[];
|
|
51
59
|
}
|
|
52
60
|
/**
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
* JSON using the registered parsers.
|
|
61
|
+
* Canonical programmatic surface: fetch/retrieve/research/crawl/extract/runs.
|
|
62
|
+
* CLI, REST, and MCP are thin adapters around this client.
|
|
56
63
|
*/
|
|
57
64
|
export declare class WebAgentClient {
|
|
58
65
|
readonly registry: ParserRegistry;
|
|
@@ -60,50 +67,131 @@ export declare class WebAgentClient {
|
|
|
60
67
|
private readonly reuseBrowser;
|
|
61
68
|
private readonly searchProvider;
|
|
62
69
|
private browserPromise;
|
|
70
|
+
readonly fetchCache: FetchCache;
|
|
71
|
+
readonly snapshotStore: SnapshotStore;
|
|
72
|
+
readonly runStore: RunStore;
|
|
73
|
+
private readonly extractionAdapter?;
|
|
74
|
+
private readonly ownsCache;
|
|
75
|
+
private readonly ownsSnapshots;
|
|
76
|
+
private readonly ownsRuns;
|
|
77
|
+
private readonly funcxExecutor;
|
|
78
|
+
private readonly ownsFuncxExecutor;
|
|
79
|
+
private webFunctionBindings;
|
|
80
|
+
private readonly hostPolicy;
|
|
81
|
+
private readonly aiProfilesSource;
|
|
82
|
+
private readonly functionCheckpoints;
|
|
83
|
+
private activeRunEventSink?;
|
|
63
84
|
constructor(options?: WebAgentClientOptions);
|
|
64
|
-
|
|
85
|
+
private loadBindingsFromEnv;
|
|
86
|
+
private webFunctionsDeps;
|
|
87
|
+
private buildResearchFunctionHooks;
|
|
65
88
|
use<T>(parser: Parser<T>): this;
|
|
66
|
-
/** Download a URL
|
|
89
|
+
/** Download a URL via Playwright (compatibility default: browser strategy). */
|
|
67
90
|
fetch(url: string, options?: FetchOptions): Promise<FetchResult>;
|
|
68
|
-
/**
|
|
91
|
+
/** Strategy-aware multi-format retrieval (default strategy: auto). */
|
|
92
|
+
retrieve(url: string, options?: RetrieveOptions): Promise<FetchResult>;
|
|
93
|
+
fetchBatch(request: {
|
|
94
|
+
urls: string[];
|
|
95
|
+
concurrency?: number;
|
|
96
|
+
continueOnError?: boolean;
|
|
97
|
+
retrieveOptions?: RetrieveOptions;
|
|
98
|
+
signal?: AbortSignal;
|
|
99
|
+
}): Promise<RetrieveBatchItem[]>;
|
|
100
|
+
retrieveCached(url: string, options?: CachedRetrieveOptions): Promise<FetchResult>;
|
|
69
101
|
classify(url: string, options?: FetchOptions): Promise<ClassifyCandidate[]>;
|
|
70
|
-
/** Fetch a URL, classify it, and parse it with the best-fit parser. */
|
|
71
102
|
parse<T = unknown>(url: string, options?: FetchOptions): Promise<ParsedResult<T>>;
|
|
72
|
-
/** Fetch a URL and force a specific parser by type id, skipping classification. */
|
|
73
103
|
parseAs<T = unknown>(type: string, url: string, options?: FetchOptions): Promise<ParsedResult<T>>;
|
|
74
|
-
/** List every registered parser's type id + description. */
|
|
75
104
|
listParsers(): {
|
|
76
105
|
type: string;
|
|
77
106
|
description?: string;
|
|
78
107
|
version?: string;
|
|
79
108
|
}[];
|
|
80
|
-
/**
|
|
81
|
-
* Ingest a curated list / README URL: follow outbound GitHub skill links
|
|
82
|
-
* one level deep and extract targeted files (SKILL.md, .md, .sh, …).
|
|
83
|
-
* Uses GitHub raw/API — not Playwright.
|
|
84
|
-
*/
|
|
85
109
|
ingest(rootUrl: string, options?: IngestOptions): Promise<IngestResult>;
|
|
86
|
-
/**
|
|
87
|
-
* Search the public web (Serper/Google). Returns ranked results and SERP
|
|
88
|
-
* features — does not fetch page content.
|
|
89
|
-
*/
|
|
90
110
|
search(request: WebSearchRequest, options?: {
|
|
91
111
|
signal?: AbortSignal;
|
|
92
112
|
}): Promise<WebSearchResponse>;
|
|
93
|
-
/** Whether search is configured (API key present or provider injected). */
|
|
94
113
|
searchConfigured(): boolean;
|
|
95
|
-
/**
|
|
96
|
-
* Explicitly fetch selected organic results from a prior `search()` response.
|
|
97
|
-
* Does not run unless called — search never auto-fetches.
|
|
98
|
-
*/
|
|
99
114
|
fetchSearchResults(searchResult: WebSearchResponse, options?: FetchSearchResultsOptions): Promise<FetchedSearchPage[]>;
|
|
100
|
-
/**
|
|
101
|
-
* Search, then fetch the top organic results (or explicit positions/URLs).
|
|
102
|
-
* Convenience composition over `search()` + `fetchSearchResults()`.
|
|
103
|
-
*/
|
|
104
115
|
searchAndFetch(request: SearchAndFetchRequest): Promise<SearchAndFetchResult>;
|
|
116
|
+
research(request: ResearchRequest, options?: {
|
|
117
|
+
signal?: AbortSignal;
|
|
118
|
+
}): Promise<ResearchPacket>;
|
|
119
|
+
startResearch(request: ResearchRequest, opts?: {
|
|
120
|
+
idempotencyKey?: string;
|
|
121
|
+
}): Promise<RunRecord>;
|
|
122
|
+
private runResearchJob;
|
|
123
|
+
crawl(request: CrawlRequest, options?: {
|
|
124
|
+
signal?: AbortSignal;
|
|
125
|
+
}): Promise<CrawlResult>;
|
|
126
|
+
startCrawl(request: CrawlRequest, opts?: {
|
|
127
|
+
idempotencyKey?: string;
|
|
128
|
+
}): Promise<RunRecord>;
|
|
129
|
+
private runCrawlJob;
|
|
130
|
+
extract(request: ExtractRequest): Promise<ExtractResult>;
|
|
131
|
+
checkChanges(request: ChangeCheckRequest & {
|
|
132
|
+
url?: string;
|
|
133
|
+
}): Promise<ChangeCheckResult>;
|
|
134
|
+
analyze(request: AnalyzeWebSourceRequest, opts?: {
|
|
135
|
+
signal?: AbortSignal;
|
|
136
|
+
}): Promise<import("@x12i/web-functions").AnalyzeWebSourceResult>;
|
|
137
|
+
answer(request: AnswerFromWebRequest, opts?: {
|
|
138
|
+
signal?: AbortSignal;
|
|
139
|
+
}): Promise<import("@x12i/web-functions").GroundedAnswer>;
|
|
140
|
+
compare(request: CompareWebSubjectsRequest, opts?: {
|
|
141
|
+
signal?: AbortSignal;
|
|
142
|
+
}): Promise<import("@x12i/web-functions").WebComparison>;
|
|
143
|
+
analyzeChanges(request: AnalyzeWebChangesRequest, opts?: {
|
|
144
|
+
signal?: AbortSignal;
|
|
145
|
+
}): Promise<import("@x12i/web-functions").AnalyzeWebChangesResult>;
|
|
146
|
+
auditResearch(request: AuditWebResearchRequest, opts?: {
|
|
147
|
+
signal?: AbortSignal;
|
|
148
|
+
}): Promise<import("@x12i/web-functions").ResearchAuditResult>;
|
|
149
|
+
listWebFunctions(options?: {
|
|
150
|
+
role?: WebFunctionBinding["role"];
|
|
151
|
+
}): Promise<{
|
|
152
|
+
mode: import("@x12i/web-functions").FuncxExecutorMode;
|
|
153
|
+
bindings: {
|
|
154
|
+
status: "available" | "unavailable" | "incompatible" | "disabled";
|
|
155
|
+
reasons: string[];
|
|
156
|
+
warnings: string[];
|
|
157
|
+
functionVersion?: string;
|
|
158
|
+
catalogSource?: string;
|
|
159
|
+
effectiveSlots?: import("@x12i/web-functions").WebFunctionModelConfig;
|
|
160
|
+
binding: WebFunctionBinding;
|
|
161
|
+
}[];
|
|
162
|
+
}>;
|
|
163
|
+
listWebAIProfiles(options?: {
|
|
164
|
+
role?: string;
|
|
165
|
+
}): Promise<{
|
|
166
|
+
profiles: import("@x12i/ai-profiles").AIProfileSummary[];
|
|
167
|
+
choices: import("@x12i/ai-profiles").AIProfileChoiceSummary[];
|
|
168
|
+
catalogLane: "text";
|
|
169
|
+
source: import("@x12i/ai-profiles").RegistrySourceMode;
|
|
170
|
+
roleHint: string | undefined;
|
|
171
|
+
}>;
|
|
172
|
+
previewWebAIProfile(request: {
|
|
173
|
+
profileChoice: string;
|
|
174
|
+
bindingId?: string;
|
|
175
|
+
}): Promise<{
|
|
176
|
+
profileChoice: string;
|
|
177
|
+
resolved: import("@x12i/ai-profiles").ResolvedAIProfile;
|
|
178
|
+
note: string;
|
|
179
|
+
bindingId: string | undefined;
|
|
180
|
+
slots: import("@x12i/web-functions").WebFunctionModelConfig | undefined;
|
|
181
|
+
}>;
|
|
182
|
+
startAnswer(request: AnswerFromWebRequest, opts?: {
|
|
183
|
+
idempotencyKey?: string;
|
|
184
|
+
}): Promise<RunRecord>;
|
|
185
|
+
private runAnswerJob;
|
|
186
|
+
startCompare(request: CompareWebSubjectsRequest, opts?: {
|
|
187
|
+
idempotencyKey?: string;
|
|
188
|
+
}): Promise<RunRecord>;
|
|
189
|
+
private runCompareJob;
|
|
190
|
+
getRun(runId: string): Promise<RunRecord | undefined>;
|
|
191
|
+
listRunItems(runId: string, options?: ListItemsOptions): Promise<ListItemsResult>;
|
|
192
|
+
cancelRun(runId: string): Promise<RunRecord>;
|
|
193
|
+
resumeRun(runId: string): Promise<RunRecord>;
|
|
105
194
|
private getBrowser;
|
|
106
|
-
/** Close the reused browser, if one was launched. No-op otherwise. */
|
|
107
195
|
close(): Promise<void>;
|
|
108
196
|
}
|
|
109
197
|
//# sourceMappingURL=client.d.ts.map
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,MAAM,EACZ,MAAM,YAAY,CAAC;AACpB,OAAO,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,MAAM,EACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EASL,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAoB,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AACvF,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACvB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAS,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAA+B,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACxG,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACvB,MAAM,eAAe,CAAC;AACvB,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACrB,MAAM,YAAY,CAAC;AACpB,OAAO,EAiBL,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,aAAa,EAClB,KAAK,kBAAkB,EAGxB,MAAM,qBAAqB,CAAC;AAgD7B,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,cAAc,GAAG,YAAY,GAAG,IAAI,CAAC;IAC9C,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,6EAA6E;IAC7E,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,sFAAsF;IACtF,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,+CAA+C;IAC/C,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC3C,UAAU,CAAC,EAAE;QACX,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;QACvC,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,yGAAyG;IACzG,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAsB,SAAQ,gBAAgB;IAC7D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,KAAK,EAAE,iBAAiB,EAAE,CAAC;CAC5B;AAED;;;GAGG;AACH,qBAAa,cAAc;IACzB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAe;IACnD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IACvC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6B;IAC5D,OAAO,CAAC,cAAc,CAA+B;IACrD,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAoB;IACvD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAU;IAC5C,OAAO,CAAC,mBAAmB,CAAuB;IAClD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IACpD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgC;IACjE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAyC;IAC7E,OAAO,CAAC,kBAAkB,CAAC,CAAyD;gBAExE,OAAO,GAAE,qBAA0B;YAqBjC,mBAAmB;IAUjC,OAAO,CAAC,gBAAgB;IA0CxB,OAAO,CAAC,0BAA0B;IA8ElC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI;IAK/B,+EAA+E;IACzE,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,WAAW,CAAC;IAU1E,sEAAsE;IAChE,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,WAAW,CAAC;IAW1E,UAAU,CAAC,OAAO,EAAE;QACxB,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,eAAe,CAAC,EAAE,eAAe,CAAC;QAClC,MAAM,CAAC,EAAE,WAAW,CAAC;KACtB,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAa1B,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,WAAW,CAAC;IAYtF,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAK/E,KAAK,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAKrF,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAK3G,WAAW;;;;;IAIX,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;IAI3E,MAAM,CACJ,OAAO,EAAE,gBAAgB,EACzB,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAO,GACrC,OAAO,CAAC,iBAAiB,CAAC;IAO7B,gBAAgB,IAAI,OAAO;IAIrB,kBAAkB,CACtB,YAAY,EAAE,iBAAiB,EAC/B,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAkCzB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAyB7E,QAAQ,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAO,GAAG,OAAO,CAAC,cAAc,CAAC;IAmBnG,aAAa,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE;YAWlE,cAAc;IAmCtB,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAO,GAAG,OAAO,CAAC,WAAW,CAAC;IAe1F,UAAU,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE;YAW5D,WAAW;IA8BnB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAexD,YAAY,CAAC,OAAO,EAAE,kBAAkB,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAoBxF,OAAO,CAAC,OAAO,EAAE,uBAAuB,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE;IAKzE,MAAM,CAAC,OAAO,EAAE,oBAAoB,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE;IAKrE,OAAO,CAAC,OAAO,EAAE,yBAAyB,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE;IAK3E,cAAc,CAAC,OAAO,EAAE,wBAAwB,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE;IAKjF,aAAa,CAAC,OAAO,EAAE,uBAAuB,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE;IAK/E,gBAAgB,CAAC,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAA;KAAE;;;;;;;;;;;;IAehE,iBAAiB,CAAC,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE;;;;;;;IAQ7C,mBAAmB,CAAC,OAAO,EAAE;QACjC,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB;;;;;;;IASK,WAAW,CAAC,OAAO,EAAE,oBAAoB,EAAE,IAAI,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE;YAWrE,YAAY;IA+CpB,YAAY,CAAC,OAAO,EAAE,yBAAyB,EAAE,IAAI,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE;YAW3E,aAAa;IAsD3B,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAIrD,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IAIjF,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAItC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;YAmBpC,UAAU;IAKlB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAU7B"}
|
package/dist/client.js
CHANGED
|
@@ -1,7 +1,16 @@
|
|
|
1
|
-
import { fetchUrl, launchBrowser } from "@x12i/fetcher";
|
|
1
|
+
import { fetchUrl, launchBrowser, retrieve, retrieveBatch, retrieveWithCache, checkChanges, InMemoryFetchCache, InMemorySnapshotStore, } from "@x12i/fetcher";
|
|
2
2
|
import { ingestRepository } from "@x12i/ingest";
|
|
3
3
|
import { createSerperProvider, loadSearchConfig, search as runSearch, } from "@x12i/search";
|
|
4
|
+
import { crawl } from "@x12i/crawl";
|
|
5
|
+
import { research } from "@x12i/research";
|
|
6
|
+
import { extract, } from "@x12i/extract";
|
|
7
|
+
import { InMemoryRunStore, } from "@x12i/runs";
|
|
8
|
+
import { InMemoryFunctionCheckpointStore, analyzeWebChanges, analyzeWebSource, answerFromWeb, auditWebResearch, compareWebSubjects, createExecutorFromPolicy, evaluateCandidate, listBindings, listWebAIProfiles, loadBindingsFromPath, loadHostPolicyFromEnv, planQueries, previewWebAIProfile, rankEvidenceBlocks, validateBindingCompatibility, } from "@x12i/web-functions";
|
|
9
|
+
import { createHash } from "node:crypto";
|
|
4
10
|
import { createDefaultRegistry } from "./registry.js";
|
|
11
|
+
function requestHash(value) {
|
|
12
|
+
return createHash("sha256").update(JSON.stringify(value)).digest("hex").slice(0, 24);
|
|
13
|
+
}
|
|
5
14
|
/**
|
|
6
15
|
* Per-site fetch defaults so client-rendered pages actually populate before
|
|
7
16
|
* we snapshot HTML. Caller-supplied options still win (spread after this).
|
|
@@ -14,7 +23,6 @@ function siteFetchDefaults(url) {
|
|
|
14
23
|
if ((host === "openrouter.ai" || host.endsWith(".openrouter.ai")) &&
|
|
15
24
|
(path === "/rankings" || path.startsWith("/rankings/"))) {
|
|
16
25
|
return {
|
|
17
|
-
// Live leaderboard rows are CSS-grid divs, not <table>s.
|
|
18
26
|
waitForSelector: "div.grid.grid-cols-12.items-center",
|
|
19
27
|
settleMs: 500,
|
|
20
28
|
};
|
|
@@ -29,7 +37,6 @@ function siteFetchDefaults(url) {
|
|
|
29
37
|
return { waitForSelector: "article h1, h1", settleMs: 800 };
|
|
30
38
|
}
|
|
31
39
|
if (host === "g2.com" || host === "www.g2.com" || host.endsWith(".g2.com")) {
|
|
32
|
-
// G2 often serves a bot-challenge with no product <h1>; don't hard-wait.
|
|
33
40
|
return { settleMs: 1500 };
|
|
34
41
|
}
|
|
35
42
|
}
|
|
@@ -39,9 +46,8 @@ function siteFetchDefaults(url) {
|
|
|
39
46
|
return {};
|
|
40
47
|
}
|
|
41
48
|
/**
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
* JSON using the registered parsers.
|
|
49
|
+
* Canonical programmatic surface: fetch/retrieve/research/crawl/extract/runs.
|
|
50
|
+
* CLI, REST, and MCP are thin adapters around this client.
|
|
45
51
|
*/
|
|
46
52
|
export class WebAgentClient {
|
|
47
53
|
registry;
|
|
@@ -49,18 +55,167 @@ export class WebAgentClient {
|
|
|
49
55
|
reuseBrowser;
|
|
50
56
|
searchProvider;
|
|
51
57
|
browserPromise;
|
|
58
|
+
fetchCache;
|
|
59
|
+
snapshotStore;
|
|
60
|
+
runStore;
|
|
61
|
+
extractionAdapter;
|
|
62
|
+
ownsCache;
|
|
63
|
+
ownsSnapshots;
|
|
64
|
+
ownsRuns;
|
|
65
|
+
funcxExecutor;
|
|
66
|
+
ownsFuncxExecutor;
|
|
67
|
+
webFunctionBindings;
|
|
68
|
+
hostPolicy;
|
|
69
|
+
aiProfilesSource;
|
|
70
|
+
functionCheckpoints = new InMemoryFunctionCheckpointStore();
|
|
71
|
+
activeRunEventSink;
|
|
52
72
|
constructor(options = {}) {
|
|
53
73
|
this.registry = options.registry ?? createDefaultRegistry();
|
|
54
74
|
this.defaultFetchOptions = options.fetchOptions ?? {};
|
|
55
75
|
this.reuseBrowser = options.reuseBrowser ?? false;
|
|
56
76
|
this.searchProvider = resolveSearchProvider(options.search);
|
|
77
|
+
this.ownsCache = !options.fetchCache;
|
|
78
|
+
this.ownsSnapshots = !options.snapshotStore;
|
|
79
|
+
this.ownsRuns = !options.runStore;
|
|
80
|
+
this.fetchCache = options.fetchCache ?? new InMemoryFetchCache();
|
|
81
|
+
this.snapshotStore = options.snapshotStore ?? new InMemorySnapshotStore();
|
|
82
|
+
this.runStore = options.runStore ?? new InMemoryRunStore();
|
|
83
|
+
this.extractionAdapter = options.extractionAdapter;
|
|
84
|
+
this.hostPolicy = loadHostPolicyFromEnv();
|
|
85
|
+
if (options.aiProfiles?.source)
|
|
86
|
+
this.hostPolicy.aiProfilesSource = options.aiProfiles.source;
|
|
87
|
+
this.aiProfilesSource = options.aiProfiles?.source ?? this.hostPolicy.aiProfilesSource ?? "auto";
|
|
88
|
+
this.ownsFuncxExecutor = options.ownsFuncxExecutor ?? !options.funcxExecutor;
|
|
89
|
+
this.funcxExecutor = options.funcxExecutor ?? createExecutorFromPolicy(this.hostPolicy);
|
|
90
|
+
this.webFunctionBindings = options.webFunctionBindings ?? [];
|
|
91
|
+
void this.loadBindingsFromEnv();
|
|
92
|
+
}
|
|
93
|
+
async loadBindingsFromEnv() {
|
|
94
|
+
const path = process.env.WEB_AGENTIC_FUNCTION_BINDINGS;
|
|
95
|
+
if (!path || this.webFunctionBindings.length)
|
|
96
|
+
return;
|
|
97
|
+
try {
|
|
98
|
+
this.webFunctionBindings = await loadBindingsFromPath(path);
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
// Bindings file is optional; function routes report not configured / incompatible.
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
webFunctionsDeps() {
|
|
105
|
+
return {
|
|
106
|
+
bindings: this.webFunctionBindings,
|
|
107
|
+
executor: this.funcxExecutor,
|
|
108
|
+
hostPolicy: this.hostPolicy,
|
|
109
|
+
checkpoints: this.functionCheckpoints,
|
|
110
|
+
onEvent: (type, data) => {
|
|
111
|
+
this.activeRunEventSink?.(type, data);
|
|
112
|
+
},
|
|
113
|
+
resolvePacket: async (runId) => {
|
|
114
|
+
for (const kind of ["research_packet", "packet", "grounded_answer"]) {
|
|
115
|
+
const items = await this.runStore.listItems(runId, { kind, limit: 1 });
|
|
116
|
+
const data = items.items[0]?.data;
|
|
117
|
+
if (kind === "grounded_answer")
|
|
118
|
+
continue;
|
|
119
|
+
if (data)
|
|
120
|
+
return data;
|
|
121
|
+
}
|
|
122
|
+
// Prefer packet item explicitly
|
|
123
|
+
const packetItems = await this.runStore.listItems(runId, { limit: 20 });
|
|
124
|
+
const packet = packetItems.items.find((i) => i.kind === "packet" || i.kind === "research_packet");
|
|
125
|
+
return packet?.data;
|
|
126
|
+
},
|
|
127
|
+
resolveRunSource: async (runId, sourceId) => {
|
|
128
|
+
const packet = await this.webFunctionsDeps().resolvePacket?.(runId);
|
|
129
|
+
return packet?.sources.find((s) => s.sourceId === sourceId);
|
|
130
|
+
},
|
|
131
|
+
retrieveUrl: async (url, opts) => {
|
|
132
|
+
const fetch = await this.retrieve(url, { strategy: "auto", signal: opts?.signal });
|
|
133
|
+
return {
|
|
134
|
+
sourceId: `src_${createHash("sha256").update(url).digest("hex").slice(0, 10)}`,
|
|
135
|
+
title: fetch.title,
|
|
136
|
+
fetch,
|
|
137
|
+
};
|
|
138
|
+
},
|
|
139
|
+
research: (req, opts) => this.research(req, opts),
|
|
140
|
+
checkChanges: async ({ url, againstSnapshotId, signal }) => {
|
|
141
|
+
void signal;
|
|
142
|
+
const previousSnapshot = await this.snapshotStore.get(againstSnapshotId);
|
|
143
|
+
return this.checkChanges({ url, previousSnapshot });
|
|
144
|
+
},
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
buildResearchFunctionHooks(request) {
|
|
148
|
+
if (!request.functions || this.funcxExecutor.mode === "disabled")
|
|
149
|
+
return undefined;
|
|
150
|
+
const fn = request.functions;
|
|
151
|
+
const deps = this.webFunctionsDeps();
|
|
152
|
+
return {
|
|
153
|
+
planQueries: fn.queryPlanBindingId
|
|
154
|
+
? async (input) => planQueries(deps, {
|
|
155
|
+
bindingId: fn.queryPlanBindingId,
|
|
156
|
+
question: input.question,
|
|
157
|
+
constraints: input.constraints,
|
|
158
|
+
profileAlternativeId: input.profileAlternativeId ?? fn.profileAlternativeId,
|
|
159
|
+
signal: input.signal,
|
|
160
|
+
})
|
|
161
|
+
: undefined,
|
|
162
|
+
evaluateCandidate: fn.candidateEvaluateBindingId
|
|
163
|
+
? async (input) => evaluateCandidate(deps, {
|
|
164
|
+
bindingId: fn.candidateEvaluateBindingId,
|
|
165
|
+
candidate: input.candidate,
|
|
166
|
+
profileAlternativeId: input.profileAlternativeId ?? fn.profileAlternativeId,
|
|
167
|
+
signal: input.signal,
|
|
168
|
+
})
|
|
169
|
+
: undefined,
|
|
170
|
+
analyzeSource: fn.sourceAnalyzeBindingId
|
|
171
|
+
? async (input) => {
|
|
172
|
+
const result = await analyzeWebSource(deps, {
|
|
173
|
+
bindingId: fn.sourceAnalyzeBindingId,
|
|
174
|
+
profileAlternativeId: input.profileAlternativeId ?? fn.profileAlternativeId,
|
|
175
|
+
source: { researchSource: input.source },
|
|
176
|
+
includeOriginal: false,
|
|
177
|
+
}, { signal: input.signal });
|
|
178
|
+
return {
|
|
179
|
+
analysis: result.analysis,
|
|
180
|
+
warnings: result.warnings,
|
|
181
|
+
errors: result.errors,
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
: undefined,
|
|
185
|
+
enrichRecord: fn.recordEnrichBindingId
|
|
186
|
+
? async (input) => {
|
|
187
|
+
const result = await analyzeWebSource(deps, {
|
|
188
|
+
bindingId: fn.recordEnrichBindingId,
|
|
189
|
+
profileAlternativeId: input.profileAlternativeId ?? fn.profileAlternativeId,
|
|
190
|
+
source: { researchSource: input.source },
|
|
191
|
+
enrichBindingId: fn.recordEnrichBindingId,
|
|
192
|
+
includeOriginal: true,
|
|
193
|
+
}, { signal: input.signal });
|
|
194
|
+
return {
|
|
195
|
+
original: result.original,
|
|
196
|
+
enriched: result.enriched,
|
|
197
|
+
conflicts: result.conflicts,
|
|
198
|
+
warnings: result.warnings,
|
|
199
|
+
errors: result.errors,
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
: undefined,
|
|
203
|
+
rankEvidence: fn.evidenceRankBindingId
|
|
204
|
+
? async (input) => rankEvidenceBlocks(deps, {
|
|
205
|
+
bindingId: fn.evidenceRankBindingId,
|
|
206
|
+
blocks: input.blocks,
|
|
207
|
+
question: input.question,
|
|
208
|
+
profileAlternativeId: input.profileAlternativeId ?? fn.profileAlternativeId,
|
|
209
|
+
signal: input.signal,
|
|
210
|
+
})
|
|
211
|
+
: undefined,
|
|
212
|
+
};
|
|
57
213
|
}
|
|
58
|
-
/** Register an additional parser on this client's registry. */
|
|
59
214
|
use(parser) {
|
|
60
215
|
this.registry.register(parser);
|
|
61
216
|
return this;
|
|
62
217
|
}
|
|
63
|
-
/** Download a URL
|
|
218
|
+
/** Download a URL via Playwright (compatibility default: browser strategy). */
|
|
64
219
|
async fetch(url, options = {}) {
|
|
65
220
|
const browser = this.reuseBrowser ? await this.getBrowser() : undefined;
|
|
66
221
|
return fetchUrl(url, {
|
|
@@ -70,51 +225,67 @@ export class WebAgentClient {
|
|
|
70
225
|
browser: browser ?? options.browser,
|
|
71
226
|
});
|
|
72
227
|
}
|
|
73
|
-
/**
|
|
228
|
+
/** Strategy-aware multi-format retrieval (default strategy: auto). */
|
|
229
|
+
async retrieve(url, options = {}) {
|
|
230
|
+
const browser = this.reuseBrowser ? await this.getBrowser() : undefined;
|
|
231
|
+
return retrieve(url, {
|
|
232
|
+
...this.defaultFetchOptions,
|
|
233
|
+
...siteFetchDefaults(url),
|
|
234
|
+
strategy: "auto",
|
|
235
|
+
...options,
|
|
236
|
+
browser: browser ?? options.browser,
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
async fetchBatch(request) {
|
|
240
|
+
const browser = this.reuseBrowser ? await this.getBrowser() : undefined;
|
|
241
|
+
return retrieveBatch({
|
|
242
|
+
...request,
|
|
243
|
+
retrieveOptions: {
|
|
244
|
+
...this.defaultFetchOptions,
|
|
245
|
+
strategy: "auto",
|
|
246
|
+
...request.retrieveOptions,
|
|
247
|
+
browser: browser ?? request.retrieveOptions?.browser,
|
|
248
|
+
},
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
async retrieveCached(url, options = {}) {
|
|
252
|
+
const browser = this.reuseBrowser ? await this.getBrowser() : undefined;
|
|
253
|
+
return retrieveWithCache(url, {
|
|
254
|
+
...this.defaultFetchOptions,
|
|
255
|
+
...siteFetchDefaults(url),
|
|
256
|
+
strategy: "auto",
|
|
257
|
+
cache: this.fetchCache,
|
|
258
|
+
...options,
|
|
259
|
+
browser: browser ?? options.browser,
|
|
260
|
+
});
|
|
261
|
+
}
|
|
74
262
|
async classify(url, options = {}) {
|
|
75
263
|
const fetched = await this.fetch(url, options);
|
|
76
264
|
return this.registry.classify(fetched);
|
|
77
265
|
}
|
|
78
|
-
/** Fetch a URL, classify it, and parse it with the best-fit parser. */
|
|
79
266
|
async parse(url, options = {}) {
|
|
80
267
|
const fetched = await this.fetch(url, options);
|
|
81
268
|
return this.registry.parse(fetched);
|
|
82
269
|
}
|
|
83
|
-
/** Fetch a URL and force a specific parser by type id, skipping classification. */
|
|
84
270
|
async parseAs(type, url, options = {}) {
|
|
85
271
|
const fetched = await this.fetch(url, options);
|
|
86
272
|
return this.registry.parseAs(type, fetched);
|
|
87
273
|
}
|
|
88
|
-
/** List every registered parser's type id + description. */
|
|
89
274
|
listParsers() {
|
|
90
275
|
return this.registry.list();
|
|
91
276
|
}
|
|
92
|
-
/**
|
|
93
|
-
* Ingest a curated list / README URL: follow outbound GitHub skill links
|
|
94
|
-
* one level deep and extract targeted files (SKILL.md, .md, .sh, …).
|
|
95
|
-
* Uses GitHub raw/API — not Playwright.
|
|
96
|
-
*/
|
|
97
277
|
ingest(rootUrl, options = {}) {
|
|
98
278
|
return ingestRepository(rootUrl, options);
|
|
99
279
|
}
|
|
100
|
-
/**
|
|
101
|
-
* Search the public web (Serper/Google). Returns ranked results and SERP
|
|
102
|
-
* features — does not fetch page content.
|
|
103
|
-
*/
|
|
104
280
|
search(request, options = {}) {
|
|
105
281
|
return runSearch(request, {
|
|
106
282
|
provider: this.searchProvider ?? null,
|
|
107
283
|
signal: options.signal,
|
|
108
284
|
});
|
|
109
285
|
}
|
|
110
|
-
/** Whether search is configured (API key present or provider injected). */
|
|
111
286
|
searchConfigured() {
|
|
112
287
|
return this.searchProvider !== undefined;
|
|
113
288
|
}
|
|
114
|
-
/**
|
|
115
|
-
* Explicitly fetch selected organic results from a prior `search()` response.
|
|
116
|
-
* Does not run unless called — search never auto-fetches.
|
|
117
|
-
*/
|
|
118
289
|
async fetchSearchResults(searchResult, options = {}) {
|
|
119
290
|
const targets = resolveFetchTargets(searchResult, options);
|
|
120
291
|
const concurrency = Math.max(1, options.concurrency ?? 2);
|
|
@@ -147,10 +318,6 @@ export class WebAgentClient {
|
|
|
147
318
|
}
|
|
148
319
|
return pages;
|
|
149
320
|
}
|
|
150
|
-
/**
|
|
151
|
-
* Search, then fetch the top organic results (or explicit positions/URLs).
|
|
152
|
-
* Convenience composition over `search()` + `fetchSearchResults()`.
|
|
153
|
-
*/
|
|
154
321
|
async searchAndFetch(request) {
|
|
155
322
|
const { top, positions, urls, concurrency, continueOnError, fetchOptions, signal, ...searchRequest } = request;
|
|
156
323
|
const searchResult = await this.search(searchRequest, { signal });
|
|
@@ -164,17 +331,363 @@ export class WebAgentClient {
|
|
|
164
331
|
});
|
|
165
332
|
return { search: searchResult, pages };
|
|
166
333
|
}
|
|
334
|
+
async research(request, options = {}) {
|
|
335
|
+
await this.loadBindingsFromEnv();
|
|
336
|
+
const browser = this.reuseBrowser ? await this.getBrowser() : undefined;
|
|
337
|
+
const deps = {
|
|
338
|
+
searchFn: (req, opts) => this.search(req, opts),
|
|
339
|
+
retrieveFn: (url, ropts) => retrieve(url, {
|
|
340
|
+
...this.defaultFetchOptions,
|
|
341
|
+
strategy: "auto",
|
|
342
|
+
...ropts,
|
|
343
|
+
browser,
|
|
344
|
+
}),
|
|
345
|
+
registry: this.registry,
|
|
346
|
+
signal: options.signal,
|
|
347
|
+
functionHooks: this.buildResearchFunctionHooks(request),
|
|
348
|
+
};
|
|
349
|
+
return research(request, deps);
|
|
350
|
+
}
|
|
351
|
+
async startResearch(request, opts) {
|
|
352
|
+
const run = await this.runStore.create({
|
|
353
|
+
type: "research",
|
|
354
|
+
request,
|
|
355
|
+
requestHash: requestHash(request),
|
|
356
|
+
idempotencyKey: opts?.idempotencyKey,
|
|
357
|
+
});
|
|
358
|
+
void this.runResearchJob(run.id, request);
|
|
359
|
+
return run;
|
|
360
|
+
}
|
|
361
|
+
async runResearchJob(runId, request) {
|
|
362
|
+
await this.runStore.update(runId, { status: "planning" });
|
|
363
|
+
await this.runStore.update(runId, { status: "running", phase: "research" });
|
|
364
|
+
try {
|
|
365
|
+
const packet = await this.research(request);
|
|
366
|
+
const status = packet.status === "completed"
|
|
367
|
+
? "completed"
|
|
368
|
+
: packet.status === "failed"
|
|
369
|
+
? "failed"
|
|
370
|
+
: packet.status === "cancelled"
|
|
371
|
+
? "cancelled"
|
|
372
|
+
: packet.status === "partial"
|
|
373
|
+
? "partial"
|
|
374
|
+
: "completed_with_errors";
|
|
375
|
+
await this.runStore.update(runId, { status });
|
|
376
|
+
await this.runStore.appendItem?.(runId, {
|
|
377
|
+
kind: "packet",
|
|
378
|
+
data: packet,
|
|
379
|
+
});
|
|
380
|
+
}
|
|
381
|
+
catch (err) {
|
|
382
|
+
await this.runStore.update(runId, {
|
|
383
|
+
status: "failed",
|
|
384
|
+
errors: [
|
|
385
|
+
{
|
|
386
|
+
code: "PARSER_FAILED",
|
|
387
|
+
message: err instanceof Error ? err.message : String(err),
|
|
388
|
+
phase: "export",
|
|
389
|
+
retryable: false,
|
|
390
|
+
},
|
|
391
|
+
],
|
|
392
|
+
});
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
async crawl(request, options = {}) {
|
|
396
|
+
const browser = this.reuseBrowser ? await this.getBrowser() : undefined;
|
|
397
|
+
return crawl(request, {
|
|
398
|
+
retrieve: (url, ropts) => retrieve(url, {
|
|
399
|
+
...this.defaultFetchOptions,
|
|
400
|
+
strategy: "auto",
|
|
401
|
+
includeLinks: true,
|
|
402
|
+
...ropts,
|
|
403
|
+
browser,
|
|
404
|
+
}),
|
|
405
|
+
signal: options.signal,
|
|
406
|
+
});
|
|
407
|
+
}
|
|
408
|
+
async startCrawl(request, opts) {
|
|
409
|
+
const run = await this.runStore.create({
|
|
410
|
+
type: "crawl",
|
|
411
|
+
request,
|
|
412
|
+
requestHash: requestHash(request),
|
|
413
|
+
idempotencyKey: opts?.idempotencyKey,
|
|
414
|
+
});
|
|
415
|
+
void this.runCrawlJob(run.id, request);
|
|
416
|
+
return run;
|
|
417
|
+
}
|
|
418
|
+
async runCrawlJob(runId, request) {
|
|
419
|
+
await this.runStore.update(runId, { status: "running", phase: "crawl" });
|
|
420
|
+
try {
|
|
421
|
+
const result = await this.crawl(request);
|
|
422
|
+
await this.runStore.update(runId, {
|
|
423
|
+
status: result.terminationReason === "cancelled" ? "cancelled" : "completed",
|
|
424
|
+
usage: {
|
|
425
|
+
pagesFetched: result.usage.pagesFetched,
|
|
426
|
+
bytesFetched: result.usage.bytesFetched,
|
|
427
|
+
},
|
|
428
|
+
});
|
|
429
|
+
await this.runStore.appendItem?.(runId, {
|
|
430
|
+
kind: "crawl_result",
|
|
431
|
+
data: result,
|
|
432
|
+
});
|
|
433
|
+
}
|
|
434
|
+
catch (err) {
|
|
435
|
+
await this.runStore.update(runId, {
|
|
436
|
+
status: "failed",
|
|
437
|
+
errors: [
|
|
438
|
+
{
|
|
439
|
+
code: "PARSER_FAILED",
|
|
440
|
+
message: err instanceof Error ? err.message : String(err),
|
|
441
|
+
phase: "crawl",
|
|
442
|
+
retryable: false,
|
|
443
|
+
},
|
|
444
|
+
],
|
|
445
|
+
});
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
async extract(request) {
|
|
449
|
+
const browser = this.reuseBrowser ? await this.getBrowser() : undefined;
|
|
450
|
+
return extract(request, {
|
|
451
|
+
registry: this.registry,
|
|
452
|
+
adapter: this.extractionAdapter,
|
|
453
|
+
retrieveFn: (url, opts) => retrieve(url, {
|
|
454
|
+
...this.defaultFetchOptions,
|
|
455
|
+
strategy: "auto",
|
|
456
|
+
...opts,
|
|
457
|
+
browser,
|
|
458
|
+
}),
|
|
459
|
+
});
|
|
460
|
+
}
|
|
461
|
+
async checkChanges(request) {
|
|
462
|
+
let current = request.current;
|
|
463
|
+
if (!current && request.url) {
|
|
464
|
+
current = await this.retrieve(request.url, { strategy: "auto" });
|
|
465
|
+
if (current.canonicalUrl) {
|
|
466
|
+
await this.snapshotStore.put({
|
|
467
|
+
canonicalUrl: current.canonicalUrl,
|
|
468
|
+
markdown: current.markdown,
|
|
469
|
+
rawContentHash: current.rawContentHash,
|
|
470
|
+
normalizedContentHash: current.normalizedContentHash,
|
|
471
|
+
});
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
let previousSnapshot = request.previousSnapshot;
|
|
475
|
+
if (!previousSnapshot && !request.previous && current?.canonicalUrl) {
|
|
476
|
+
previousSnapshot = await this.snapshotStore.latestForUrl(current.canonicalUrl);
|
|
477
|
+
}
|
|
478
|
+
return checkChanges({ ...request, current, previousSnapshot });
|
|
479
|
+
}
|
|
480
|
+
async analyze(request, opts) {
|
|
481
|
+
await this.loadBindingsFromEnv();
|
|
482
|
+
return analyzeWebSource(this.webFunctionsDeps(), request, opts);
|
|
483
|
+
}
|
|
484
|
+
async answer(request, opts) {
|
|
485
|
+
await this.loadBindingsFromEnv();
|
|
486
|
+
return answerFromWeb(this.webFunctionsDeps(), request, opts);
|
|
487
|
+
}
|
|
488
|
+
async compare(request, opts) {
|
|
489
|
+
await this.loadBindingsFromEnv();
|
|
490
|
+
return compareWebSubjects(this.webFunctionsDeps(), request, opts);
|
|
491
|
+
}
|
|
492
|
+
async analyzeChanges(request, opts) {
|
|
493
|
+
await this.loadBindingsFromEnv();
|
|
494
|
+
return analyzeWebChanges(this.webFunctionsDeps(), request, opts);
|
|
495
|
+
}
|
|
496
|
+
async auditResearch(request, opts) {
|
|
497
|
+
await this.loadBindingsFromEnv();
|
|
498
|
+
return auditWebResearch(this.webFunctionsDeps(), request, opts);
|
|
499
|
+
}
|
|
500
|
+
async listWebFunctions(options) {
|
|
501
|
+
await this.loadBindingsFromEnv();
|
|
502
|
+
const listed = listBindings(this.webFunctionBindings, { role: options?.role });
|
|
503
|
+
const statuses = await Promise.all(listed.map(async (binding) => {
|
|
504
|
+
const compat = await validateBindingCompatibility(binding, this.funcxExecutor, this.hostPolicy);
|
|
505
|
+
return { binding, ...compat };
|
|
506
|
+
}));
|
|
507
|
+
return {
|
|
508
|
+
mode: this.funcxExecutor.mode,
|
|
509
|
+
bindings: statuses,
|
|
510
|
+
};
|
|
511
|
+
}
|
|
512
|
+
async listWebAIProfiles(options) {
|
|
513
|
+
return listWebAIProfiles({
|
|
514
|
+
role: options?.role,
|
|
515
|
+
source: this.aiProfilesSource,
|
|
516
|
+
catalogLane: "text",
|
|
517
|
+
});
|
|
518
|
+
}
|
|
519
|
+
async previewWebAIProfile(request) {
|
|
520
|
+
return previewWebAIProfile({
|
|
521
|
+
profileChoice: request.profileChoice,
|
|
522
|
+
bindingId: request.bindingId,
|
|
523
|
+
source: this.aiProfilesSource,
|
|
524
|
+
hostPolicy: this.hostPolicy,
|
|
525
|
+
});
|
|
526
|
+
}
|
|
527
|
+
async startAnswer(request, opts) {
|
|
528
|
+
const run = await this.runStore.create({
|
|
529
|
+
type: "answer",
|
|
530
|
+
request,
|
|
531
|
+
requestHash: requestHash(request),
|
|
532
|
+
idempotencyKey: opts?.idempotencyKey,
|
|
533
|
+
});
|
|
534
|
+
void this.runAnswerJob(run.id, request);
|
|
535
|
+
return run;
|
|
536
|
+
}
|
|
537
|
+
async runAnswerJob(runId, request) {
|
|
538
|
+
await this.runStore.update(runId, { status: "running", phase: "function" });
|
|
539
|
+
this.activeRunEventSink = (type, data) => {
|
|
540
|
+
void this.runStore.appendEvent(runId, { type: type, data });
|
|
541
|
+
};
|
|
542
|
+
await this.runStore.appendEvent(runId, { type: "function_started", data: { bindingId: request.synthesisBindingId } });
|
|
543
|
+
try {
|
|
544
|
+
// Resume reuse: if a completed grounded_answer already exists, return it.
|
|
545
|
+
const existing = await this.runStore.listItems(runId, { kind: "grounded_answer", limit: 1 });
|
|
546
|
+
if (existing.items[0]?.data) {
|
|
547
|
+
const result = existing.items[0].data;
|
|
548
|
+
await this.runStore.update(runId, {
|
|
549
|
+
status: result.status === "failed"
|
|
550
|
+
? "failed"
|
|
551
|
+
: result.status === "completed_with_errors"
|
|
552
|
+
? "completed_with_errors"
|
|
553
|
+
: "completed",
|
|
554
|
+
});
|
|
555
|
+
return;
|
|
556
|
+
}
|
|
557
|
+
const result = await this.answer(request);
|
|
558
|
+
await this.runStore.appendItem?.(runId, { kind: "grounded_answer", data: result });
|
|
559
|
+
await this.runStore.appendEvent(runId, {
|
|
560
|
+
type: result.audit ? "audit_completed" : "function_completed",
|
|
561
|
+
data: { status: result.status },
|
|
562
|
+
});
|
|
563
|
+
await this.runStore.update(runId, {
|
|
564
|
+
status: result.status === "failed" ? "failed" : result.status === "completed_with_errors" ? "completed_with_errors" : "completed",
|
|
565
|
+
});
|
|
566
|
+
}
|
|
567
|
+
catch (err) {
|
|
568
|
+
await this.runStore.update(runId, {
|
|
569
|
+
status: "failed",
|
|
570
|
+
errors: [
|
|
571
|
+
{
|
|
572
|
+
code: "FUNCTION_INVOCATION_FAILED",
|
|
573
|
+
message: err instanceof Error ? err.message : String(err),
|
|
574
|
+
phase: "function",
|
|
575
|
+
retryable: false,
|
|
576
|
+
},
|
|
577
|
+
],
|
|
578
|
+
});
|
|
579
|
+
}
|
|
580
|
+
finally {
|
|
581
|
+
this.activeRunEventSink = undefined;
|
|
582
|
+
}
|
|
583
|
+
}
|
|
584
|
+
async startCompare(request, opts) {
|
|
585
|
+
const run = await this.runStore.create({
|
|
586
|
+
type: "compare",
|
|
587
|
+
request,
|
|
588
|
+
requestHash: requestHash(request),
|
|
589
|
+
idempotencyKey: opts?.idempotencyKey,
|
|
590
|
+
});
|
|
591
|
+
void this.runCompareJob(run.id, request);
|
|
592
|
+
return run;
|
|
593
|
+
}
|
|
594
|
+
async runCompareJob(runId, request) {
|
|
595
|
+
await this.runStore.update(runId, { status: "running", phase: "function" });
|
|
596
|
+
this.activeRunEventSink = (type, data) => {
|
|
597
|
+
void this.runStore.appendEvent(runId, { type: type, data });
|
|
598
|
+
};
|
|
599
|
+
await this.runStore.appendEvent(runId, {
|
|
600
|
+
type: "function_started",
|
|
601
|
+
data: { bindingId: request.comparisonBindingId },
|
|
602
|
+
});
|
|
603
|
+
try {
|
|
604
|
+
const existing = await this.runStore.listItems(runId, { kind: "web_comparison", limit: 1 });
|
|
605
|
+
if (existing.items[0]?.data) {
|
|
606
|
+
const result = existing.items[0].data;
|
|
607
|
+
await this.runStore.update(runId, {
|
|
608
|
+
status: result.status === "failed"
|
|
609
|
+
? "failed"
|
|
610
|
+
: result.status === "completed_with_errors"
|
|
611
|
+
? "completed_with_errors"
|
|
612
|
+
: "completed",
|
|
613
|
+
});
|
|
614
|
+
return;
|
|
615
|
+
}
|
|
616
|
+
const result = await this.compare(request);
|
|
617
|
+
await this.runStore.appendItem?.(runId, { kind: "web_comparison", data: result });
|
|
618
|
+
await this.runStore.appendEvent(runId, {
|
|
619
|
+
type: result.audit ? "audit_completed" : "function_completed",
|
|
620
|
+
data: { status: result.status },
|
|
621
|
+
});
|
|
622
|
+
await this.runStore.update(runId, {
|
|
623
|
+
status: result.status === "failed"
|
|
624
|
+
? "failed"
|
|
625
|
+
: result.status === "completed_with_errors"
|
|
626
|
+
? "completed_with_errors"
|
|
627
|
+
: "completed",
|
|
628
|
+
});
|
|
629
|
+
}
|
|
630
|
+
catch (err) {
|
|
631
|
+
await this.runStore.update(runId, {
|
|
632
|
+
status: "failed",
|
|
633
|
+
errors: [
|
|
634
|
+
{
|
|
635
|
+
code: "FUNCTION_INVOCATION_FAILED",
|
|
636
|
+
message: err instanceof Error ? err.message : String(err),
|
|
637
|
+
phase: "function",
|
|
638
|
+
retryable: false,
|
|
639
|
+
},
|
|
640
|
+
],
|
|
641
|
+
});
|
|
642
|
+
}
|
|
643
|
+
finally {
|
|
644
|
+
this.activeRunEventSink = undefined;
|
|
645
|
+
}
|
|
646
|
+
}
|
|
647
|
+
getRun(runId) {
|
|
648
|
+
return this.runStore.get(runId);
|
|
649
|
+
}
|
|
650
|
+
listRunItems(runId, options) {
|
|
651
|
+
return this.runStore.listItems(runId, options);
|
|
652
|
+
}
|
|
653
|
+
cancelRun(runId) {
|
|
654
|
+
return this.runStore.requestCancel(runId);
|
|
655
|
+
}
|
|
656
|
+
async resumeRun(runId) {
|
|
657
|
+
const run = await this.runStore.get(runId);
|
|
658
|
+
if (!run)
|
|
659
|
+
throw new Error("RUN_NOT_FOUND");
|
|
660
|
+
if (!["partial", "cancelled", "failed"].includes(run.status)) {
|
|
661
|
+
throw new Error("RUN_NOT_RESUMABLE");
|
|
662
|
+
}
|
|
663
|
+
await this.runStore.update(runId, { status: "queued", cancellationRequested: false });
|
|
664
|
+
if (run.type === "research") {
|
|
665
|
+
void this.runResearchJob(runId, run.request);
|
|
666
|
+
}
|
|
667
|
+
else if (run.type === "crawl") {
|
|
668
|
+
void this.runCrawlJob(runId, run.request);
|
|
669
|
+
}
|
|
670
|
+
else if (run.type === "answer") {
|
|
671
|
+
void this.runAnswerJob(runId, run.request);
|
|
672
|
+
}
|
|
673
|
+
else if (run.type === "compare") {
|
|
674
|
+
void this.runCompareJob(runId, run.request);
|
|
675
|
+
}
|
|
676
|
+
return (await this.runStore.get(runId));
|
|
677
|
+
}
|
|
167
678
|
async getBrowser() {
|
|
168
679
|
this.browserPromise ??= launchBrowser(this.defaultFetchOptions.executablePath);
|
|
169
680
|
return this.browserPromise;
|
|
170
681
|
}
|
|
171
|
-
/** Close the reused browser, if one was launched. No-op otherwise. */
|
|
172
682
|
async close() {
|
|
173
683
|
if (this.browserPromise) {
|
|
174
684
|
const browser = await this.browserPromise;
|
|
175
685
|
await browser.close();
|
|
176
686
|
this.browserPromise = undefined;
|
|
177
687
|
}
|
|
688
|
+
void this.ownsCache;
|
|
689
|
+
void this.ownsSnapshots;
|
|
690
|
+
void this.ownsRuns;
|
|
178
691
|
}
|
|
179
692
|
}
|
|
180
693
|
function resolveSearchProvider(search) {
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,22 @@
|
|
|
1
1
|
export * from "./client.js";
|
|
2
2
|
export * from "./registry.js";
|
|
3
3
|
export * from "@x12i/core";
|
|
4
|
-
export type { FetchOptions } from "@x12i/fetcher";
|
|
4
|
+
export type { FetchOptions, RetrieveOptions, RetrieveBatchItem, FetchCache, SnapshotStore, FreshnessMode, ChangeCheckRequest, ChangeCheckResult, } from "@x12i/fetcher";
|
|
5
|
+
export { InMemoryFetchCache, InMemorySnapshotStore, retrieve, retrieveBatch, checkChanges, } from "@x12i/fetcher";
|
|
5
6
|
export type { IngestOptions, IngestResult, IngestedAsset, ExtractedFile, IngestProgressEvent, } from "@x12i/ingest";
|
|
6
|
-
export type { WebSearchRequest, WebSearchResponse, OrganicSearchResult, SearchConfig, SearchProvider, SearchErrorCode, } from "@x12i/search";
|
|
7
|
-
export { SearchError, isSearchConfigured, loadEnvFile, loadSearchConfig, searchCapabilityStatus, } from "@x12i/search";
|
|
7
|
+
export type { WebSearchRequest, WebSearchResponse, OrganicSearchResult, SearchConfig, SearchProvider, SearchErrorCode, SearchCandidate, SelectionOptions, } from "@x12i/search";
|
|
8
|
+
export { SearchError, isSearchConfigured, loadEnvFile, loadSearchConfig, searchCapabilityStatus, mergeSearchCandidates, selectCandidates, normalizeQueries, } from "@x12i/search";
|
|
9
|
+
export type { ResearchRequest, ResearchPacket } from "@x12i/research";
|
|
10
|
+
export { research } from "@x12i/research";
|
|
11
|
+
export type { CrawlRequest, CrawlResult } from "@x12i/crawl";
|
|
12
|
+
export { crawl } from "@x12i/crawl";
|
|
13
|
+
export type { ExtractRequest, ExtractResult, ExtractionAdapter, ExtractionMode, } from "@x12i/extract";
|
|
14
|
+
export { extract } from "@x12i/extract";
|
|
15
|
+
export type { EvidenceBlock } from "@x12i/evidence";
|
|
16
|
+
export { splitEvidence, rankEvidence, buildCitationMarkdown } from "@x12i/evidence";
|
|
17
|
+
export type { RunRecord, RunStore, RunStatus } from "@x12i/runs";
|
|
18
|
+
export { InMemoryRunStore, IdempotencyConflictError } from "@x12i/runs";
|
|
19
|
+
export type { WebFunctionBinding, WebFunctionRole, AnalyzeWebSourceRequest, AnswerFromWebRequest, CompareWebSubjectsRequest, AnalyzeWebChangesRequest, AuditWebResearchRequest, GroundedAnswer, WebComparison, FuncxExecutor, } from "@x12i/web-functions";
|
|
20
|
+
export { createMockFuncxExecutor, createDisabledExecutor, parseBindingsJson, loadHostPolicyFromEnv, } from "@x12i/web-functions";
|
|
8
21
|
export { META_PARSER_TYPE, buildLlmBrief, createMetaParser, defaultSchemaCatalog, findSchema, metaLlmBriefParser, type MetaLlmBriefData, type PageSchema, } from "@x12i/parsers-meta";
|
|
9
22
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,YAAY,EACV,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,QAAQ,EACR,aAAa,EACb,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,aAAa,EACb,YAAY,EACZ,aAAa,EACb,aAAa,EACb,mBAAmB,GACpB,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,cAAc,EACd,eAAe,EACf,eAAe,EACf,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,YAAY,EACV,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACpF,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AACxE,YAAY,EACV,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,oBAAoB,EACpB,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,EACvB,cAAc,EACd,aAAa,EACb,aAAa,GACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,UAAU,EACV,kBAAkB,EAClB,KAAK,gBAAgB,EACrB,KAAK,UAAU,GAChB,MAAM,oBAAoB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
export * from "./client.js";
|
|
2
2
|
export * from "./registry.js";
|
|
3
3
|
export * from "@x12i/core";
|
|
4
|
-
export {
|
|
4
|
+
export { InMemoryFetchCache, InMemorySnapshotStore, retrieve, retrieveBatch, checkChanges, } from "@x12i/fetcher";
|
|
5
|
+
export { SearchError, isSearchConfigured, loadEnvFile, loadSearchConfig, searchCapabilityStatus, mergeSearchCandidates, selectCandidates, normalizeQueries, } from "@x12i/search";
|
|
6
|
+
export { research } from "@x12i/research";
|
|
7
|
+
export { crawl } from "@x12i/crawl";
|
|
8
|
+
export { extract } from "@x12i/extract";
|
|
9
|
+
export { splitEvidence, rankEvidence, buildCitationMarkdown } from "@x12i/evidence";
|
|
10
|
+
export { InMemoryRunStore, IdempotencyConflictError } from "@x12i/runs";
|
|
11
|
+
export { createMockFuncxExecutor, createDisabledExecutor, parseBindingsJson, loadHostPolicyFromEnv, } from "@x12i/web-functions";
|
|
5
12
|
export { META_PARSER_TYPE, buildLlmBrief, createMetaParser, defaultSchemaCatalog, findSchema, metaLlmBriefParser, } from "@x12i/parsers-meta";
|
|
6
13
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAW3B,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,QAAQ,EACR,aAAa,EACb,YAAY,GACb,MAAM,eAAe,CAAC;AAkBvB,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAOpC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAEpF,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAaxE,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,UAAU,EACV,kBAAkB,GAGnB,MAAM,oBAAoB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@x12i/sdk",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Programmatic client: fetch
|
|
3
|
+
"version": "0.4.0",
|
|
4
|
+
"description": "Programmatic client: fetch, retrieve, research, crawl, extract — the CLI, REST API, and MCP server wrap this.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
@@ -13,13 +13,19 @@
|
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"playwright": "^1.49.1",
|
|
16
|
-
"@x12i/
|
|
17
|
-
"@x12i/
|
|
18
|
-
"@x12i/
|
|
19
|
-
"@x12i/
|
|
20
|
-
"@x12i/
|
|
21
|
-
"@x12i/
|
|
22
|
-
"@x12i/
|
|
16
|
+
"@x12i/core": "0.4.0",
|
|
17
|
+
"@x12i/search": "0.4.0",
|
|
18
|
+
"@x12i/ingest": "0.4.0",
|
|
19
|
+
"@x12i/fetcher": "0.4.0",
|
|
20
|
+
"@x12i/crawl": "0.4.0",
|
|
21
|
+
"@x12i/runs": "0.4.0",
|
|
22
|
+
"@x12i/evidence": "0.4.0",
|
|
23
|
+
"@x12i/web-functions": "0.4.0",
|
|
24
|
+
"@x12i/extract": "0.4.0",
|
|
25
|
+
"@x12i/research": "0.4.0",
|
|
26
|
+
"@x12i/parser-openrouter": "0.4.0",
|
|
27
|
+
"@x12i/parsers-meta": "0.4.0",
|
|
28
|
+
"@x12i/parsers-web": "0.4.0"
|
|
23
29
|
},
|
|
24
30
|
"devDependencies": {
|
|
25
31
|
"typescript": "^5.7.3",
|