@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.
Files changed (87) hide show
  1. package/dist/agent-session/ITurnResourceResolver.d.ts +6 -0
  2. package/dist/agent-session/ITurnResourceResolver.d.ts.map +1 -1
  3. package/dist/agent-session/ITurnResourceResolver.js.map +1 -1
  4. package/dist/agent-session/SessionHandle.d.ts.map +1 -1
  5. package/dist/agent-session/SessionHandle.js +2 -0
  6. package/dist/agent-session/SessionHandle.js.map +1 -1
  7. package/dist/agent-session/SessionHandle.mjs +2 -0
  8. package/dist/agent-session/SessionHandle.mjs.map +1 -1
  9. package/dist/agent-session/TurnResourceResolver.d.ts +8 -0
  10. package/dist/agent-session/TurnResourceResolver.d.ts.map +1 -1
  11. package/dist/agent-session/TurnResourceResolver.js +4 -0
  12. package/dist/agent-session/TurnResourceResolver.js.map +1 -1
  13. package/dist/agent-session/TurnResourceResolver.mjs +4 -0
  14. package/dist/agent-session/TurnResourceResolver.mjs.map +1 -1
  15. package/dist/agent-session/builtinsFromSpec.d.ts +2 -0
  16. package/dist/agent-session/builtinsFromSpec.d.ts.map +1 -1
  17. package/dist/agent-session/builtinsFromSpec.js +5 -1
  18. package/dist/agent-session/builtinsFromSpec.js.map +1 -1
  19. package/dist/agent-session/builtinsFromSpec.mjs +5 -1
  20. package/dist/agent-session/builtinsFromSpec.mjs.map +1 -1
  21. package/dist/agent-session/index.d.ts +2 -2
  22. package/dist/agent-session/index.d.ts.map +1 -1
  23. package/dist/agent-session/index.js +2 -0
  24. package/dist/agent-session/index.js.map +1 -1
  25. package/dist/agent-session/index.mjs +3 -1
  26. package/dist/agent-session/index.mjs.map +1 -1
  27. package/dist/agent-session/schemas/agentSpec.d.ts +6 -0
  28. package/dist/agent-session/schemas/agentSpec.d.ts.map +1 -1
  29. package/dist/agent-session/schemas/agentSpec.js +7 -3
  30. package/dist/agent-session/schemas/agentSpec.js.map +1 -1
  31. package/dist/agent-session/schemas/agentSpec.mjs +7 -3
  32. package/dist/agent-session/schemas/agentSpec.mjs.map +1 -1
  33. package/dist/agent-session/schemas/events.d.ts +65 -2
  34. package/dist/agent-session/schemas/events.d.ts.map +1 -1
  35. package/dist/agent-session/schemas/events.js +32 -2
  36. package/dist/agent-session/schemas/events.js.map +1 -1
  37. package/dist/agent-session/schemas/events.mjs +26 -1
  38. package/dist/agent-session/schemas/events.mjs.map +1 -1
  39. package/dist/agent-session/schemas/session.d.ts +9 -0
  40. package/dist/agent-session/schemas/session.d.ts.map +1 -1
  41. package/dist/core/capabilities/builtins/WebSearch.d.ts +32 -0
  42. package/dist/core/capabilities/builtins/WebSearch.d.ts.map +1 -0
  43. package/dist/core/capabilities/builtins/WebSearch.js +137 -0
  44. package/dist/core/capabilities/builtins/WebSearch.js.map +1 -0
  45. package/dist/core/capabilities/builtins/WebSearch.mjs +96 -0
  46. package/dist/core/capabilities/builtins/WebSearch.mjs.map +1 -0
  47. package/dist/core/index.d.ts +6 -0
  48. package/dist/core/index.d.ts.map +1 -1
  49. package/dist/core/index.js +22 -0
  50. package/dist/core/index.js.map +1 -1
  51. package/dist/core/index.mjs +20 -0
  52. package/dist/core/index.mjs.map +1 -1
  53. package/dist/core/mcp/RemoteMCP.d.ts +2 -0
  54. package/dist/core/mcp/RemoteMCP.d.ts.map +1 -1
  55. package/dist/core/mcp/RemoteMCP.js +3 -0
  56. package/dist/core/mcp/RemoteMCP.js.map +1 -1
  57. package/dist/core/mcp/RemoteMCP.mjs +4 -0
  58. package/dist/core/mcp/RemoteMCP.mjs.map +1 -1
  59. package/dist/core/mcp/ToolSelectorPolicy.d.ts +1 -1
  60. package/dist/core/mcp/ToolSelectorPolicy.js +1 -1
  61. package/dist/core/mcp/ToolSelectorPolicy.js.map +1 -1
  62. package/dist/core/mcp/ToolSelectorPolicy.mjs +1 -1
  63. package/dist/core/mcp/ToolSelectorPolicy.mjs.map +1 -1
  64. package/dist/core/mcp/remoteMcpClient.d.ts +5 -0
  65. package/dist/core/mcp/remoteMcpClient.d.ts.map +1 -1
  66. package/dist/core/mcp/remoteMcpClient.js +37 -6
  67. package/dist/core/mcp/remoteMcpClient.js.map +1 -1
  68. package/dist/core/mcp/remoteMcpClient.mjs +34 -5
  69. package/dist/core/mcp/remoteMcpClient.mjs.map +1 -1
  70. package/dist/core/mcp/toolSelectors.d.ts.map +1 -1
  71. package/dist/core/mcp/toolSelectors.js +1 -1
  72. package/dist/core/mcp/toolSelectors.js.map +1 -1
  73. package/dist/core/mcp/toolSelectors.mjs +1 -1
  74. package/dist/core/mcp/toolSelectors.mjs.map +1 -1
  75. package/dist/core/web-search/ParallelWebSearchProvider.d.ts +24 -0
  76. package/dist/core/web-search/ParallelWebSearchProvider.d.ts.map +1 -0
  77. package/dist/core/web-search/ParallelWebSearchProvider.js +95 -0
  78. package/dist/core/web-search/ParallelWebSearchProvider.js.map +1 -0
  79. package/dist/core/web-search/ParallelWebSearchProvider.mjs +62 -0
  80. package/dist/core/web-search/ParallelWebSearchProvider.mjs.map +1 -0
  81. package/dist/core/web-search/WebSearchProvider.d.ts +42 -0
  82. package/dist/core/web-search/WebSearchProvider.d.ts.map +1 -0
  83. package/dist/core/web-search/WebSearchProvider.js +34 -0
  84. package/dist/core/web-search/WebSearchProvider.js.map +1 -0
  85. package/dist/core/web-search/WebSearchProvider.mjs +9 -0
  86. package/dist/core/web-search/WebSearchProvider.mjs.map +1 -0
  87. 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.5",
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",