@truefoundry/trueforge-core 0.2.0-rc.5 → 0.2.0-rc.6
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/agent-session/ITurnResourceResolver.d.ts +6 -0
- package/dist/agent-session/ITurnResourceResolver.d.ts.map +1 -1
- package/dist/agent-session/ITurnResourceResolver.js.map +1 -1
- package/dist/agent-session/SessionHandle.d.ts.map +1 -1
- package/dist/agent-session/SessionHandle.js +2 -0
- package/dist/agent-session/SessionHandle.js.map +1 -1
- package/dist/agent-session/SessionHandle.mjs +2 -0
- package/dist/agent-session/SessionHandle.mjs.map +1 -1
- package/dist/agent-session/TurnResourceResolver.d.ts +8 -0
- package/dist/agent-session/TurnResourceResolver.d.ts.map +1 -1
- package/dist/agent-session/TurnResourceResolver.js +4 -0
- package/dist/agent-session/TurnResourceResolver.js.map +1 -1
- package/dist/agent-session/TurnResourceResolver.mjs +4 -0
- package/dist/agent-session/TurnResourceResolver.mjs.map +1 -1
- package/dist/agent-session/builtinsFromSpec.d.ts +2 -0
- package/dist/agent-session/builtinsFromSpec.d.ts.map +1 -1
- package/dist/agent-session/builtinsFromSpec.js +5 -1
- package/dist/agent-session/builtinsFromSpec.js.map +1 -1
- package/dist/agent-session/builtinsFromSpec.mjs +5 -1
- package/dist/agent-session/builtinsFromSpec.mjs.map +1 -1
- package/dist/agent-session/index.d.ts +2 -2
- package/dist/agent-session/index.d.ts.map +1 -1
- package/dist/agent-session/index.js +2 -0
- package/dist/agent-session/index.js.map +1 -1
- package/dist/agent-session/index.mjs +3 -1
- package/dist/agent-session/index.mjs.map +1 -1
- package/dist/agent-session/schemas/agentSpec.d.ts +6 -0
- package/dist/agent-session/schemas/agentSpec.d.ts.map +1 -1
- package/dist/agent-session/schemas/agentSpec.js +7 -3
- package/dist/agent-session/schemas/agentSpec.js.map +1 -1
- package/dist/agent-session/schemas/agentSpec.mjs +7 -3
- package/dist/agent-session/schemas/agentSpec.mjs.map +1 -1
- package/dist/agent-session/schemas/events.d.ts +65 -2
- package/dist/agent-session/schemas/events.d.ts.map +1 -1
- package/dist/agent-session/schemas/events.js +32 -2
- package/dist/agent-session/schemas/events.js.map +1 -1
- package/dist/agent-session/schemas/events.mjs +26 -1
- package/dist/agent-session/schemas/events.mjs.map +1 -1
- package/dist/agent-session/schemas/session.d.ts +9 -0
- package/dist/agent-session/schemas/session.d.ts.map +1 -1
- package/dist/core/capabilities/builtins/WebSearch.d.ts +32 -0
- package/dist/core/capabilities/builtins/WebSearch.d.ts.map +1 -0
- package/dist/core/capabilities/builtins/WebSearch.js +137 -0
- package/dist/core/capabilities/builtins/WebSearch.js.map +1 -0
- package/dist/core/capabilities/builtins/WebSearch.mjs +96 -0
- package/dist/core/capabilities/builtins/WebSearch.mjs.map +1 -0
- package/dist/core/index.d.ts +6 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +22 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/index.mjs +20 -0
- package/dist/core/index.mjs.map +1 -1
- package/dist/core/mcp/RemoteMCP.d.ts +2 -0
- package/dist/core/mcp/RemoteMCP.d.ts.map +1 -1
- package/dist/core/mcp/RemoteMCP.js +3 -0
- package/dist/core/mcp/RemoteMCP.js.map +1 -1
- package/dist/core/mcp/RemoteMCP.mjs +4 -0
- package/dist/core/mcp/RemoteMCP.mjs.map +1 -1
- package/dist/core/mcp/ToolSelectorPolicy.d.ts +1 -1
- package/dist/core/mcp/ToolSelectorPolicy.js +1 -1
- package/dist/core/mcp/ToolSelectorPolicy.js.map +1 -1
- package/dist/core/mcp/ToolSelectorPolicy.mjs +1 -1
- package/dist/core/mcp/ToolSelectorPolicy.mjs.map +1 -1
- package/dist/core/mcp/remoteMcpClient.d.ts +5 -0
- package/dist/core/mcp/remoteMcpClient.d.ts.map +1 -1
- package/dist/core/mcp/remoteMcpClient.js +37 -6
- package/dist/core/mcp/remoteMcpClient.js.map +1 -1
- package/dist/core/mcp/remoteMcpClient.mjs +34 -5
- package/dist/core/mcp/remoteMcpClient.mjs.map +1 -1
- package/dist/core/mcp/toolSelectors.d.ts.map +1 -1
- package/dist/core/mcp/toolSelectors.js +1 -1
- package/dist/core/mcp/toolSelectors.js.map +1 -1
- package/dist/core/mcp/toolSelectors.mjs +1 -1
- package/dist/core/mcp/toolSelectors.mjs.map +1 -1
- package/dist/core/web-search/ParallelWebSearchProvider.d.ts +24 -0
- package/dist/core/web-search/ParallelWebSearchProvider.d.ts.map +1 -0
- package/dist/core/web-search/ParallelWebSearchProvider.js +95 -0
- package/dist/core/web-search/ParallelWebSearchProvider.js.map +1 -0
- package/dist/core/web-search/ParallelWebSearchProvider.mjs +62 -0
- package/dist/core/web-search/ParallelWebSearchProvider.mjs.map +1 -0
- package/dist/core/web-search/WebSearchProvider.d.ts +42 -0
- package/dist/core/web-search/WebSearchProvider.d.ts.map +1 -0
- package/dist/core/web-search/WebSearchProvider.js +34 -0
- package/dist/core/web-search/WebSearchProvider.js.map +1 -0
- package/dist/core/web-search/WebSearchProvider.mjs +9 -0
- package/dist/core/web-search/WebSearchProvider.mjs.map +1 -0
- package/package.json +2 -1
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
|
|
30
|
+
// src/core/web-search/ParallelWebSearchProvider.ts
|
|
31
|
+
var ParallelWebSearchProvider_exports = {};
|
|
32
|
+
__export(ParallelWebSearchProvider_exports, {
|
|
33
|
+
ParallelWebSearchProvider: () => ParallelWebSearchProvider
|
|
34
|
+
});
|
|
35
|
+
module.exports = __toCommonJS(ParallelWebSearchProvider_exports);
|
|
36
|
+
var import_parallel_web = __toESM(require("parallel-web"), 1);
|
|
37
|
+
var import_WebSearchProvider = require("./WebSearchProvider.js");
|
|
38
|
+
var PARALLEL_SEARCH_MAX_RESULTS = 5;
|
|
39
|
+
var PARALLEL_SEARCH_MAX_CHARS_PER_RESULT = 500;
|
|
40
|
+
var PARALLEL_SEARCH_MAX_CHARS_TOTAL = 4e3;
|
|
41
|
+
var ParallelWebSearchProvider = class {
|
|
42
|
+
id = import_WebSearchProvider.WebSearchProviders.Parallel;
|
|
43
|
+
#client;
|
|
44
|
+
#mode;
|
|
45
|
+
constructor(options) {
|
|
46
|
+
this.#client = new import_parallel_web.default({ apiKey: options.apiKey });
|
|
47
|
+
this.#mode = options.mode;
|
|
48
|
+
}
|
|
49
|
+
async search(input) {
|
|
50
|
+
const response = await this.#client.search({
|
|
51
|
+
search_queries: input.search_queries,
|
|
52
|
+
...input.objective ? { objective: input.objective } : {},
|
|
53
|
+
mode: this.#mode,
|
|
54
|
+
max_chars_total: PARALLEL_SEARCH_MAX_CHARS_TOTAL,
|
|
55
|
+
advanced_settings: {
|
|
56
|
+
max_results: PARALLEL_SEARCH_MAX_RESULTS,
|
|
57
|
+
excerpt_settings: { max_chars_per_result: PARALLEL_SEARCH_MAX_CHARS_PER_RESULT }
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
return {
|
|
61
|
+
hits: response.results.map((result) => ({
|
|
62
|
+
title: result.title ?? "",
|
|
63
|
+
url: result.url,
|
|
64
|
+
snippet: result.excerpts.join("\n\n"),
|
|
65
|
+
published_at: result.publish_date ?? null
|
|
66
|
+
}))
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
async fetch(input) {
|
|
70
|
+
const response = await this.#client.extract({
|
|
71
|
+
urls: input.urls,
|
|
72
|
+
...input.objective ? { objective: input.objective } : {}
|
|
73
|
+
});
|
|
74
|
+
const pages = [
|
|
75
|
+
...response.results.map((result) => ({
|
|
76
|
+
url: result.url,
|
|
77
|
+
title: result.title ?? null,
|
|
78
|
+
content: result.full_content ?? result.excerpts.join("\n\n"),
|
|
79
|
+
error: null
|
|
80
|
+
})),
|
|
81
|
+
...response.errors.map((err) => ({
|
|
82
|
+
url: err.url,
|
|
83
|
+
title: null,
|
|
84
|
+
content: "",
|
|
85
|
+
error: err.content ?? err.error_type
|
|
86
|
+
}))
|
|
87
|
+
];
|
|
88
|
+
return { pages };
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
92
|
+
0 && (module.exports = {
|
|
93
|
+
ParallelWebSearchProvider
|
|
94
|
+
});
|
|
95
|
+
//# sourceMappingURL=ParallelWebSearchProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/core/web-search/ParallelWebSearchProvider.ts"],"sourcesContent":["import Parallel from 'parallel-web';\nimport {\n WebSearchProviders,\n type IWebSearchProvider,\n type WebFetchPages,\n type WebSearchHits,\n} from './WebSearchProvider';\n\nexport type ParallelSearchMode = 'turbo' | 'fast' | 'basic' | 'advanced';\n\n/** Keep search payloads under the large-tool-response individual threshold (~6k tokens). */\nconst PARALLEL_SEARCH_MAX_RESULTS = 5;\nconst PARALLEL_SEARCH_MAX_CHARS_PER_RESULT = 500;\nconst PARALLEL_SEARCH_MAX_CHARS_TOTAL = 4000;\n\nexport interface ParallelWebSearchProviderOptions {\n apiKey: string;\n /** Parallel Search mode preset. Caller supplies the default (e.g. `turbo`). */\n mode: ParallelSearchMode;\n}\n\n/**\n * Parallel Search + Extract via the official `parallel-web` SDK.\n */\nexport class ParallelWebSearchProvider implements IWebSearchProvider {\n readonly id = WebSearchProviders.Parallel;\n readonly #client: Parallel;\n readonly #mode: ParallelSearchMode;\n\n constructor(options: ParallelWebSearchProviderOptions) {\n this.#client = new Parallel({ apiKey: options.apiKey });\n this.#mode = options.mode;\n }\n\n async search(input: { search_queries: string[]; objective: string | undefined }): Promise<WebSearchHits> {\n const response = await this.#client.search({\n search_queries: input.search_queries,\n ...(input.objective ? { objective: input.objective } : {}),\n mode: this.#mode,\n max_chars_total: PARALLEL_SEARCH_MAX_CHARS_TOTAL,\n advanced_settings: {\n max_results: PARALLEL_SEARCH_MAX_RESULTS,\n excerpt_settings: { max_chars_per_result: PARALLEL_SEARCH_MAX_CHARS_PER_RESULT },\n },\n });\n return {\n hits: response.results.map(result => ({\n title: result.title ?? '',\n url: result.url,\n snippet: result.excerpts.join('\\n\\n'),\n published_at: result.publish_date ?? null,\n })),\n };\n }\n\n async fetch(input: { urls: string[]; objective: string | undefined }): Promise<WebFetchPages> {\n const response = await this.#client.extract({\n urls: input.urls,\n ...(input.objective ? { objective: input.objective } : {}),\n });\n const pages = [\n ...response.results.map(result => ({\n url: result.url,\n title: result.title ?? null,\n content: result.full_content ?? result.excerpts.join('\\n\\n'),\n error: null,\n })),\n ...response.errors.map(err => ({\n url: err.url,\n title: null,\n content: '',\n error: err.content ?? err.error_type,\n })),\n ];\n return { pages };\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAAqB;AACrB,+BAKO;AAKP,IAAM,8BAA8B;AACpC,IAAM,uCAAuC;AAC7C,IAAM,kCAAkC;AAWjC,IAAM,4BAAN,MAA8D;AAAA,EAC1D,KAAK,4CAAmB;AAAA,EACxB;AAAA,EACA;AAAA,EAET,YAAY,SAA2C;AACrD,SAAK,UAAU,IAAI,oBAAAA,QAAS,EAAE,QAAQ,QAAQ,OAAO,CAAC;AACtD,SAAK,QAAQ,QAAQ;AAAA,EACvB;AAAA,EAEA,MAAM,OAAO,OAA4F;AACvG,UAAM,WAAW,MAAM,KAAK,QAAQ,OAAO;AAAA,MACzC,gBAAgB,MAAM;AAAA,MACtB,GAAI,MAAM,YAAY,EAAE,WAAW,MAAM,UAAU,IAAI,CAAC;AAAA,MACxD,MAAM,KAAK;AAAA,MACX,iBAAiB;AAAA,MACjB,mBAAmB;AAAA,QACjB,aAAa;AAAA,QACb,kBAAkB,EAAE,sBAAsB,qCAAqC;AAAA,MACjF;AAAA,IACF,CAAC;AACD,WAAO;AAAA,MACL,MAAM,SAAS,QAAQ,IAAI,aAAW;AAAA,QACpC,OAAO,OAAO,SAAS;AAAA,QACvB,KAAK,OAAO;AAAA,QACZ,SAAS,OAAO,SAAS,KAAK,MAAM;AAAA,QACpC,cAAc,OAAO,gBAAgB;AAAA,MACvC,EAAE;AAAA,IACJ;AAAA,EACF;AAAA,EAEA,MAAM,MAAM,OAAkF;AAC5F,UAAM,WAAW,MAAM,KAAK,QAAQ,QAAQ;AAAA,MAC1C,MAAM,MAAM;AAAA,MACZ,GAAI,MAAM,YAAY,EAAE,WAAW,MAAM,UAAU,IAAI,CAAC;AAAA,IAC1D,CAAC;AACD,UAAM,QAAQ;AAAA,MACZ,GAAG,SAAS,QAAQ,IAAI,aAAW;AAAA,QACjC,KAAK,OAAO;AAAA,QACZ,OAAO,OAAO,SAAS;AAAA,QACvB,SAAS,OAAO,gBAAgB,OAAO,SAAS,KAAK,MAAM;AAAA,QAC3D,OAAO;AAAA,MACT,EAAE;AAAA,MACF,GAAG,SAAS,OAAO,IAAI,UAAQ;AAAA,QAC7B,KAAK,IAAI;AAAA,QACT,OAAO;AAAA,QACP,SAAS;AAAA,QACT,OAAO,IAAI,WAAW,IAAI;AAAA,MAC5B,EAAE;AAAA,IACJ;AACA,WAAO,EAAE,MAAM;AAAA,EACjB;AACF;","names":["Parallel"]}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
// src/core/web-search/ParallelWebSearchProvider.ts
|
|
2
|
+
import Parallel from "parallel-web";
|
|
3
|
+
import {
|
|
4
|
+
WebSearchProviders
|
|
5
|
+
} from "./WebSearchProvider.mjs";
|
|
6
|
+
var PARALLEL_SEARCH_MAX_RESULTS = 5;
|
|
7
|
+
var PARALLEL_SEARCH_MAX_CHARS_PER_RESULT = 500;
|
|
8
|
+
var PARALLEL_SEARCH_MAX_CHARS_TOTAL = 4e3;
|
|
9
|
+
var ParallelWebSearchProvider = class {
|
|
10
|
+
id = WebSearchProviders.Parallel;
|
|
11
|
+
#client;
|
|
12
|
+
#mode;
|
|
13
|
+
constructor(options) {
|
|
14
|
+
this.#client = new Parallel({ apiKey: options.apiKey });
|
|
15
|
+
this.#mode = options.mode;
|
|
16
|
+
}
|
|
17
|
+
async search(input) {
|
|
18
|
+
const response = await this.#client.search({
|
|
19
|
+
search_queries: input.search_queries,
|
|
20
|
+
...input.objective ? { objective: input.objective } : {},
|
|
21
|
+
mode: this.#mode,
|
|
22
|
+
max_chars_total: PARALLEL_SEARCH_MAX_CHARS_TOTAL,
|
|
23
|
+
advanced_settings: {
|
|
24
|
+
max_results: PARALLEL_SEARCH_MAX_RESULTS,
|
|
25
|
+
excerpt_settings: { max_chars_per_result: PARALLEL_SEARCH_MAX_CHARS_PER_RESULT }
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
return {
|
|
29
|
+
hits: response.results.map((result) => ({
|
|
30
|
+
title: result.title ?? "",
|
|
31
|
+
url: result.url,
|
|
32
|
+
snippet: result.excerpts.join("\n\n"),
|
|
33
|
+
published_at: result.publish_date ?? null
|
|
34
|
+
}))
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
async fetch(input) {
|
|
38
|
+
const response = await this.#client.extract({
|
|
39
|
+
urls: input.urls,
|
|
40
|
+
...input.objective ? { objective: input.objective } : {}
|
|
41
|
+
});
|
|
42
|
+
const pages = [
|
|
43
|
+
...response.results.map((result) => ({
|
|
44
|
+
url: result.url,
|
|
45
|
+
title: result.title ?? null,
|
|
46
|
+
content: result.full_content ?? result.excerpts.join("\n\n"),
|
|
47
|
+
error: null
|
|
48
|
+
})),
|
|
49
|
+
...response.errors.map((err) => ({
|
|
50
|
+
url: err.url,
|
|
51
|
+
title: null,
|
|
52
|
+
content: "",
|
|
53
|
+
error: err.content ?? err.error_type
|
|
54
|
+
}))
|
|
55
|
+
];
|
|
56
|
+
return { pages };
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
export {
|
|
60
|
+
ParallelWebSearchProvider
|
|
61
|
+
};
|
|
62
|
+
//# sourceMappingURL=ParallelWebSearchProvider.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/core/web-search/ParallelWebSearchProvider.ts"],"sourcesContent":["import Parallel from 'parallel-web';\nimport {\n WebSearchProviders,\n type IWebSearchProvider,\n type WebFetchPages,\n type WebSearchHits,\n} from './WebSearchProvider';\n\nexport type ParallelSearchMode = 'turbo' | 'fast' | 'basic' | 'advanced';\n\n/** Keep search payloads under the large-tool-response individual threshold (~6k tokens). */\nconst PARALLEL_SEARCH_MAX_RESULTS = 5;\nconst PARALLEL_SEARCH_MAX_CHARS_PER_RESULT = 500;\nconst PARALLEL_SEARCH_MAX_CHARS_TOTAL = 4000;\n\nexport interface ParallelWebSearchProviderOptions {\n apiKey: string;\n /** Parallel Search mode preset. Caller supplies the default (e.g. `turbo`). */\n mode: ParallelSearchMode;\n}\n\n/**\n * Parallel Search + Extract via the official `parallel-web` SDK.\n */\nexport class ParallelWebSearchProvider implements IWebSearchProvider {\n readonly id = WebSearchProviders.Parallel;\n readonly #client: Parallel;\n readonly #mode: ParallelSearchMode;\n\n constructor(options: ParallelWebSearchProviderOptions) {\n this.#client = new Parallel({ apiKey: options.apiKey });\n this.#mode = options.mode;\n }\n\n async search(input: { search_queries: string[]; objective: string | undefined }): Promise<WebSearchHits> {\n const response = await this.#client.search({\n search_queries: input.search_queries,\n ...(input.objective ? { objective: input.objective } : {}),\n mode: this.#mode,\n max_chars_total: PARALLEL_SEARCH_MAX_CHARS_TOTAL,\n advanced_settings: {\n max_results: PARALLEL_SEARCH_MAX_RESULTS,\n excerpt_settings: { max_chars_per_result: PARALLEL_SEARCH_MAX_CHARS_PER_RESULT },\n },\n });\n return {\n hits: response.results.map(result => ({\n title: result.title ?? '',\n url: result.url,\n snippet: result.excerpts.join('\\n\\n'),\n published_at: result.publish_date ?? null,\n })),\n };\n }\n\n async fetch(input: { urls: string[]; objective: string | undefined }): Promise<WebFetchPages> {\n const response = await this.#client.extract({\n urls: input.urls,\n ...(input.objective ? { objective: input.objective } : {}),\n });\n const pages = [\n ...response.results.map(result => ({\n url: result.url,\n title: result.title ?? null,\n content: result.full_content ?? result.excerpts.join('\\n\\n'),\n error: null,\n })),\n ...response.errors.map(err => ({\n url: err.url,\n title: null,\n content: '',\n error: err.content ?? err.error_type,\n })),\n ];\n return { pages };\n }\n}\n"],"mappings":";AAAA,OAAO,cAAc;AACrB;AAAA,EACE;AAAA,OAIK;AAKP,IAAM,8BAA8B;AACpC,IAAM,uCAAuC;AAC7C,IAAM,kCAAkC;AAWjC,IAAM,4BAAN,MAA8D;AAAA,EAC1D,KAAK,mBAAmB;AAAA,EACxB;AAAA,EACA;AAAA,EAET,YAAY,SAA2C;AACrD,SAAK,UAAU,IAAI,SAAS,EAAE,QAAQ,QAAQ,OAAO,CAAC;AACtD,SAAK,QAAQ,QAAQ;AAAA,EACvB;AAAA,EAEA,MAAM,OAAO,OAA4F;AACvG,UAAM,WAAW,MAAM,KAAK,QAAQ,OAAO;AAAA,MACzC,gBAAgB,MAAM;AAAA,MACtB,GAAI,MAAM,YAAY,EAAE,WAAW,MAAM,UAAU,IAAI,CAAC;AAAA,MACxD,MAAM,KAAK;AAAA,MACX,iBAAiB;AAAA,MACjB,mBAAmB;AAAA,QACjB,aAAa;AAAA,QACb,kBAAkB,EAAE,sBAAsB,qCAAqC;AAAA,MACjF;AAAA,IACF,CAAC;AACD,WAAO;AAAA,MACL,MAAM,SAAS,QAAQ,IAAI,aAAW;AAAA,QACpC,OAAO,OAAO,SAAS;AAAA,QACvB,KAAK,OAAO;AAAA,QACZ,SAAS,OAAO,SAAS,KAAK,MAAM;AAAA,QACpC,cAAc,OAAO,gBAAgB;AAAA,MACvC,EAAE;AAAA,IACJ;AAAA,EACF;AAAA,EAEA,MAAM,MAAM,OAAkF;AAC5F,UAAM,WAAW,MAAM,KAAK,QAAQ,QAAQ;AAAA,MAC1C,MAAM,MAAM;AAAA,MACZ,GAAI,MAAM,YAAY,EAAE,WAAW,MAAM,UAAU,IAAI,CAAC;AAAA,IAC1D,CAAC;AACD,UAAM,QAAQ;AAAA,MACZ,GAAG,SAAS,QAAQ,IAAI,aAAW;AAAA,QACjC,KAAK,OAAO;AAAA,QACZ,OAAO,OAAO,SAAS;AAAA,QACvB,SAAS,OAAO,gBAAgB,OAAO,SAAS,KAAK,MAAM;AAAA,QAC3D,OAAO;AAAA,MACT,EAAE;AAAA,MACF,GAAG,SAAS,OAAO,IAAI,UAAQ;AAAA,QAC7B,KAAK,IAAI;AAAA,QACT,OAAO;AAAA,QACP,SAAS;AAAA,QACT,OAAO,IAAI,WAAW,IAAI;AAAA,MAC5B,EAAE;AAAA,IACJ;AACA,WAAO,EAAE,MAAM;AAAA,EACjB;AACF;","names":[]}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/** Supported host web-search backends (env `TRUEFOUNDRY_WEB_SEARCH_PROVIDER.name`). */
|
|
2
|
+
export declare enum WebSearchProviders {
|
|
3
|
+
Parallel = "parallel"
|
|
4
|
+
}
|
|
5
|
+
/** One search hit in the provider-normalized shape. */
|
|
6
|
+
export interface WebSearchHit {
|
|
7
|
+
title: string;
|
|
8
|
+
url: string;
|
|
9
|
+
snippet: string;
|
|
10
|
+
published_at: string | null;
|
|
11
|
+
}
|
|
12
|
+
/** Normalized search response — stable across providers. */
|
|
13
|
+
export interface WebSearchHits {
|
|
14
|
+
hits: WebSearchHit[];
|
|
15
|
+
}
|
|
16
|
+
/** One fetched page (or per-URL error) in the provider-normalized shape. */
|
|
17
|
+
export interface WebFetchPage {
|
|
18
|
+
url: string;
|
|
19
|
+
title: string | null;
|
|
20
|
+
content: string;
|
|
21
|
+
error: string | null;
|
|
22
|
+
}
|
|
23
|
+
/** Normalized fetch/extract response — stable across providers. */
|
|
24
|
+
export interface WebFetchPages {
|
|
25
|
+
pages: WebFetchPage[];
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Host-supplied web search backend. Implementations map vendor APIs onto
|
|
29
|
+
* {@link WebSearchHits} / {@link WebFetchPages} so the capability tools stay provider-agnostic.
|
|
30
|
+
*/
|
|
31
|
+
export interface IWebSearchProvider {
|
|
32
|
+
readonly id: WebSearchProviders;
|
|
33
|
+
search(input: {
|
|
34
|
+
search_queries: string[];
|
|
35
|
+
objective: string | undefined;
|
|
36
|
+
}): Promise<WebSearchHits>;
|
|
37
|
+
fetch(input: {
|
|
38
|
+
urls: string[];
|
|
39
|
+
objective: string | undefined;
|
|
40
|
+
}): Promise<WebFetchPages>;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=WebSearchProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebSearchProvider.d.ts","sourceRoot":"","sources":["../../../src/core/web-search/WebSearchProvider.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,oBAAY,kBAAkB;IAC5B,QAAQ,aAAa;CACtB;AAED,uDAAuD;AACvD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,4DAA4D;AAC5D,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,YAAY,EAAE,CAAC;CACtB;AAED,4EAA4E;AAC5E,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,mEAAmE;AACnE,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,kBAAkB,CAAC;IAChC,MAAM,CAAC,KAAK,EAAE;QAAE,cAAc,EAAE,MAAM,EAAE,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACnG,KAAK,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CACzF"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/core/web-search/WebSearchProvider.ts
|
|
21
|
+
var WebSearchProvider_exports = {};
|
|
22
|
+
__export(WebSearchProvider_exports, {
|
|
23
|
+
WebSearchProviders: () => WebSearchProviders
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(WebSearchProvider_exports);
|
|
26
|
+
var WebSearchProviders = /* @__PURE__ */ ((WebSearchProviders2) => {
|
|
27
|
+
WebSearchProviders2["Parallel"] = "parallel";
|
|
28
|
+
return WebSearchProviders2;
|
|
29
|
+
})(WebSearchProviders || {});
|
|
30
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
31
|
+
0 && (module.exports = {
|
|
32
|
+
WebSearchProviders
|
|
33
|
+
});
|
|
34
|
+
//# sourceMappingURL=WebSearchProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/core/web-search/WebSearchProvider.ts"],"sourcesContent":["/** Supported host web-search backends (env `TRUEFOUNDRY_WEB_SEARCH_PROVIDER.name`). */\nexport enum WebSearchProviders {\n Parallel = 'parallel',\n}\n\n/** One search hit in the provider-normalized shape. */\nexport interface WebSearchHit {\n title: string;\n url: string;\n snippet: string;\n published_at: string | null;\n}\n\n/** Normalized search response — stable across providers. */\nexport interface WebSearchHits {\n hits: WebSearchHit[];\n}\n\n/** One fetched page (or per-URL error) in the provider-normalized shape. */\nexport interface WebFetchPage {\n url: string;\n title: string | null;\n content: string;\n error: string | null;\n}\n\n/** Normalized fetch/extract response — stable across providers. */\nexport interface WebFetchPages {\n pages: WebFetchPage[];\n}\n\n/**\n * Host-supplied web search backend. Implementations map vendor APIs onto\n * {@link WebSearchHits} / {@link WebFetchPages} so the capability tools stay provider-agnostic.\n */\nexport interface IWebSearchProvider {\n readonly id: WebSearchProviders;\n search(input: { search_queries: string[]; objective: string | undefined }): Promise<WebSearchHits>;\n fetch(input: { urls: string[]; objective: string | undefined }): Promise<WebFetchPages>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACO,IAAK,qBAAL,kBAAKA,wBAAL;AACL,EAAAA,oBAAA,cAAW;AADD,SAAAA;AAAA,GAAA;","names":["WebSearchProviders"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// src/core/web-search/WebSearchProvider.ts
|
|
2
|
+
var WebSearchProviders = /* @__PURE__ */ ((WebSearchProviders2) => {
|
|
3
|
+
WebSearchProviders2["Parallel"] = "parallel";
|
|
4
|
+
return WebSearchProviders2;
|
|
5
|
+
})(WebSearchProviders || {});
|
|
6
|
+
export {
|
|
7
|
+
WebSearchProviders
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=WebSearchProvider.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/core/web-search/WebSearchProvider.ts"],"sourcesContent":["/** Supported host web-search backends (env `TRUEFOUNDRY_WEB_SEARCH_PROVIDER.name`). */\nexport enum WebSearchProviders {\n Parallel = 'parallel',\n}\n\n/** One search hit in the provider-normalized shape. */\nexport interface WebSearchHit {\n title: string;\n url: string;\n snippet: string;\n published_at: string | null;\n}\n\n/** Normalized search response — stable across providers. */\nexport interface WebSearchHits {\n hits: WebSearchHit[];\n}\n\n/** One fetched page (or per-URL error) in the provider-normalized shape. */\nexport interface WebFetchPage {\n url: string;\n title: string | null;\n content: string;\n error: string | null;\n}\n\n/** Normalized fetch/extract response — stable across providers. */\nexport interface WebFetchPages {\n pages: WebFetchPage[];\n}\n\n/**\n * Host-supplied web search backend. Implementations map vendor APIs onto\n * {@link WebSearchHits} / {@link WebFetchPages} so the capability tools stay provider-agnostic.\n */\nexport interface IWebSearchProvider {\n readonly id: WebSearchProviders;\n search(input: { search_queries: string[]; objective: string | undefined }): Promise<WebSearchHits>;\n fetch(input: { urls: string[]; objective: string | undefined }): Promise<WebFetchPages>;\n}\n"],"mappings":";AACO,IAAK,qBAAL,kBAAKA,wBAAL;AACL,EAAAA,oBAAA,cAAW;AADD,SAAAA;AAAA,GAAA;","names":["WebSearchProviders"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@truefoundry/trueforge-core",
|
|
3
|
-
"version": "0.2.0-rc.
|
|
3
|
+
"version": "0.2.0-rc.6",
|
|
4
4
|
"description": "TrueForge Agent Harness library.",
|
|
5
5
|
"author": "TrueFoundry",
|
|
6
6
|
"license": "MIT",
|
|
@@ -103,6 +103,7 @@
|
|
|
103
103
|
"ai": "^7.0.82",
|
|
104
104
|
"dedent": "^1.7.2",
|
|
105
105
|
"openai": "^7.5.0",
|
|
106
|
+
"parallel-web": "^1.3.3",
|
|
106
107
|
"ulid": "^3.0.2",
|
|
107
108
|
"undici": "7.29.0",
|
|
108
109
|
"winston": "^3.19.0",
|