@dbx-tools/appkit-web-search 0.9.99 → 0.9.106
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -10
- package/index.ts +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +2 -2
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -2,14 +2,33 @@
|
|
|
2
2
|
|
|
3
3
|
Server-side web-search runtime, Mastra tools, and AppKit plugin.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
Add `web_search` and `web_fetch` to an AppKit or Mastra backend. `web_search`
|
|
6
|
+
runs on the
|
|
7
7
|
[Databricks Model Serving native web-search tool](https://docs.databricks.com/aws/en/machine-learning/model-serving/web-search):
|
|
8
8
|
the model searches the web server-side and returns a synthesized answer plus the
|
|
9
9
|
sources it used - no third-party search API key. `web_fetch` reads a single page
|
|
10
|
-
through [`got-scraping`](https://www.npmjs.com/package/got-scraping)
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
through [`got-scraping`](https://www.npmjs.com/package/got-scraping).
|
|
11
|
+
|
|
12
|
+
## Quick Start
|
|
13
|
+
|
|
14
|
+
Register the plugin and give its tools to an agent:
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
import { createApp, server } from "@databricks/appkit";
|
|
18
|
+
import { webSearch } from "@dbx-tools/appkit-web-search";
|
|
19
|
+
import { agents, mastra } from "@dbx-tools/appkit-mastra";
|
|
20
|
+
|
|
21
|
+
const researcher = agents.createAgent({
|
|
22
|
+
instructions: "Search the web, then read the most relevant sources.",
|
|
23
|
+
async tools(plugins) {
|
|
24
|
+
return { ...(await plugins["web-search"].toolkit()) };
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
await createApp({
|
|
29
|
+
plugins: [server(), webSearch(), mastra({ agents: { researcher } })],
|
|
30
|
+
});
|
|
31
|
+
```
|
|
13
32
|
|
|
14
33
|
**Key features:**
|
|
15
34
|
|
|
@@ -17,7 +36,7 @@ has no equivalent for.
|
|
|
17
36
|
- Two Mastra tools: `web_search` (answer + citations) and `web_fetch` (page
|
|
18
37
|
contents as readable text or raw HTML), plus the same pair as AppKit agent
|
|
19
38
|
tools through the plugin's `ToolProvider`.
|
|
20
|
-
- `web_search` resolves
|
|
39
|
+
- `web_search` resolves a dedicated web-search-capable model - defaulting to Gemini,
|
|
21
40
|
then GPT - independently of the calling agent's chat model (which may not
|
|
22
41
|
support web search). Loose names (`"gemini"`, `"gpt"`) fuzzy-match the live
|
|
23
42
|
catalogue via [`@dbx-tools/model`](../model).
|
|
@@ -33,12 +52,12 @@ has no equivalent for.
|
|
|
33
52
|
whose URL matches a pattern, mapped onto Mastra's `requireApproval`.
|
|
34
53
|
- Every outbound call runs through AppKit's `execute()` chain - per-user cache,
|
|
35
54
|
retry with jittered backoff, timeout, telemetry - and unwinds on an
|
|
36
|
-
`AbortSignal`. Each plugin instance
|
|
55
|
+
`AbortSignal`. Each plugin instance keeps its policy and executor separate, so multiple
|
|
37
56
|
apps in one process remain isolated.
|
|
38
57
|
- Page and fallback-result HTML use parser-backed text conversion and selectors,
|
|
39
58
|
including complete HTML entity decoding and malformed-markup recovery.
|
|
40
59
|
|
|
41
|
-
##
|
|
60
|
+
## Use With Native AppKit
|
|
42
61
|
|
|
43
62
|
AppKit has no first-party web-search or page-fetch surface. Use this package when
|
|
44
63
|
an agent needs to look things up on the open web or read a URL the user pasted,
|
|
@@ -49,7 +68,7 @@ running on any chat model (including one without web search) can still search. I
|
|
|
49
68
|
is a thin add-on in the same shape as [`@dbx-tools/email`](../email): a Mastra
|
|
50
69
|
tool pair plus an AppKit plugin.
|
|
51
70
|
|
|
52
|
-
##
|
|
71
|
+
## Configure The AppKit Plugin
|
|
53
72
|
|
|
54
73
|
```ts
|
|
55
74
|
import { createApp, lakebase, server } from "@databricks/appkit";
|
|
@@ -77,7 +96,7 @@ await createApp({
|
|
|
77
96
|
```
|
|
78
97
|
|
|
79
98
|
`plugin.webSearch()` resolves config (over env), compiles the URL policy, and
|
|
80
|
-
|
|
99
|
+
provides the executor used by its tools. App-integrated Mastra agents can consume
|
|
81
100
|
the native plugin toolkit as shown above, which preserves that plugin's policy,
|
|
82
101
|
OBO scope, and AppKit execution chain. Approval, when enabled, requires Mastra
|
|
83
102
|
storage, so register `lakebase()` or configure storage in the Mastra plugin.
|
package/index.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// Hand edits are overwritten on the next watch; this file is read-only.
|
|
4
4
|
|
|
5
5
|
export const PACKAGE_IDENTIFIER = "@dbx-tools/appkit-web-search";
|
|
6
|
-
export const PACKAGE_VERSION = "0.9.
|
|
6
|
+
export const PACKAGE_VERSION = "0.9.106";
|
|
7
7
|
export * as allowlist from "./src/allowlist.ts";
|
|
8
8
|
export * as config from "./src/config.ts";
|
|
9
9
|
export * as defaults from "./src/defaults.ts";
|
package/lib/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare const PACKAGE_IDENTIFIER = "@dbx-tools/appkit-web-search";
|
|
2
|
-
export declare const PACKAGE_VERSION = "0.9.
|
|
2
|
+
export declare const PACKAGE_VERSION = "0.9.106";
|
|
3
3
|
export * as allowlist from "./src/allowlist.ts";
|
|
4
4
|
export * as config from "./src/config.ts";
|
|
5
5
|
export * as defaults from "./src/defaults.ts";
|
package/lib/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Regenerated from the exporting modules in ./src.
|
|
3
3
|
// Hand edits are overwritten on the next watch; this file is read-only.
|
|
4
4
|
export const PACKAGE_IDENTIFIER = "@dbx-tools/appkit-web-search";
|
|
5
|
-
export const PACKAGE_VERSION = "0.9.
|
|
5
|
+
export const PACKAGE_VERSION = "0.9.106";
|
|
6
6
|
export * as allowlist from "./src/allowlist.js";
|
|
7
7
|
export * as config from "./src/config.js";
|
|
8
8
|
export * as defaults from "./src/defaults.js";
|
|
@@ -20,4 +20,4 @@ export { SEARCH_CACHE_TTL_SECONDS, FETCH_CACHE_TTL_SECONDS, SERVING_RETRY_ATTEMP
|
|
|
20
20
|
export { WebSearchPlugin, webSearch } from "./src/plugin.js";
|
|
21
21
|
export { WebSearchProviderSpecSchema, WEB_SEARCH_PROVIDERS } from "./src/provider.js";
|
|
22
22
|
export { WEB_SEARCH_TOOL_DESCRIPTION, WEB_FETCH_TOOL_DESCRIPTION, webSearchRequestSchema, webSearchToolRequestSchema, webSearchCitationSchema, webSearchResultSchema, webFetchRequestSchema, webFetchResultSchema } from "./src/schema.js";
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyw4QkFBOEIsQ0FBQztBQUNqRSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxTQUFTLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxLQUFLLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEtBQUssUUFBUSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sS0FBSyxLQUFLLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxLQUFLLFFBQVEsTUFBTSxvQkFBb0IsQ0FBQztBQUMvQyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxRQUFRLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEtBQUssSUFBSSxNQUFNLGVBQWUsQ0FBQztBQUV0QyxPQUFPLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixFQUFFLHVCQUF1QixFQUFFLHFCQUFxQixFQUFFLHdCQUF3QixFQUFFLGtCQUFrQixFQUFFLHdCQUF3QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFMUwsT0FBTyxFQUFFLHdCQUF3QixFQUFFLHVCQUF1QixFQUFFLHNCQUFzQixFQUFFLGtCQUFrQixFQUFFLHdCQUF3QixFQUFFLHVCQUF1QixFQUFFLDJCQUEyQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbE4sT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUd0RixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsMEJBQTBCLEVBQUUsc0JBQXNCLEVBQUUsMEJBQTBCLEVBQUUsdUJBQXVCLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEdFTkVSQVRFRCBieSBwcm9qZW4gd2F0Y2ggLSBETyBOT1QgRURJVC5cbi8vIFJlZ2VuZXJhdGVkIGZyb20gdGhlIGV4cG9ydGluZyBtb2R1bGVzIGluIC4vc3JjLlxuLy8gSGFuZCBlZGl0cyBhcmUgb3ZlcndyaXR0ZW4gb24gdGhlIG5leHQgd2F0Y2g7IHRoaXMgZmlsZSBpcyByZWFkLW9ubHkuXG5cbmV4cG9ydCBjb25zdCBQQUNLQUdFX0lERU5USUZJRVIgPSBcIkBkYngtdG9vbHMvYXBwa2l0LXdlYi1zZWFyY2hcIjtcbmV4cG9ydCBjb25zdCBQQUNLQUdFX1ZFUlNJT04gPSBcIjAuOS4xMDZcIjtcbmV4cG9ydCAqIGFzIGFsbG93bGlzdCBmcm9tIFwiLi9zcmMvYWxsb3dsaXN0LnRzXCI7XG5leHBvcnQgKiBhcyBjb25maWcgZnJvbSBcIi4vc3JjL2NvbmZpZy50c1wiO1xuZXhwb3J0ICogYXMgZGVmYXVsdHMgZnJvbSBcIi4vc3JjL2RlZmF1bHRzLnRzXCI7XG5leHBvcnQgKiBhcyBmZXRjaCBmcm9tIFwiLi9zcmMvZmV0Y2gudHNcIjtcbmV4cG9ydCAqIGFzIGh0bWxUZXh0IGZyb20gXCIuL3NyYy9odG1sLXRleHQudHNcIjtcbmV4cG9ydCAqIGFzIHBsdWdpbiBmcm9tIFwiLi9zcmMvcGx1Z2luLnRzXCI7XG5leHBvcnQgKiBhcyBwcm92aWRlciBmcm9tIFwiLi9zcmMvcHJvdmlkZXIudHNcIjtcbmV4cG9ydCAqIGFzIHJ1bnRpbWUgZnJvbSBcIi4vc3JjL3J1bnRpbWUudHNcIjtcbmV4cG9ydCAqIGFzIHNjaGVtYSBmcm9tIFwiLi9zcmMvc2NoZW1hLnRzXCI7XG5leHBvcnQgKiBhcyBzY3JhcGUgZnJvbSBcIi4vc3JjL3NjcmFwZS50c1wiO1xuZXhwb3J0ICogYXMgc2VhcmNoIGZyb20gXCIuL3NyYy9zZWFyY2gudHNcIjtcbmV4cG9ydCAqIGFzIHRvb2wgZnJvbSBcIi4vc3JjL3Rvb2wudHNcIjtcbmV4cG9ydCB0eXBlIHsgVXJsQWxsb3dMaXN0IH0gZnJvbSBcIi4vc3JjL2FsbG93bGlzdC50c1wiO1xuZXhwb3J0IHsgTU9ERUxfRU5WLCBTRVJWSU5HX0VORFBPSU5UX0VOViwgREVGQVVMVF9NT0RFTF9GQUxMQkFDS1MsIERFRkFVTFRfTUFYX0NJVEFUSU9OUywgREVGQVVMVF9GRVRDSF9NQVhfTEVOR1RILCBERUZBVUxUX1RJTUVPVVRfTVMsIFdFQl9TRUFSQ0hfQ09ORklHX1NDSEVNQSB9IGZyb20gXCIuL3NyYy9jb25maWcudHNcIjtcbmV4cG9ydCB0eXBlIHsgQXBwcm92YWxHYXRlLCBBcHByb3ZhbFBvbGljeSwgVXJsUG9saWN5TW9kZSwgTW9kZWxTb3VyY2UsIFdlYlNlYXJjaFBsdWdpbkNvbmZpZywgUmVzb2x2ZWRXZWJTZWFyY2hDb25maWcgfSBmcm9tIFwiLi9zcmMvY29uZmlnLnRzXCI7XG5leHBvcnQgeyBTRUFSQ0hfQ0FDSEVfVFRMX1NFQ09ORFMsIEZFVENIX0NBQ0hFX1RUTF9TRUNPTkRTLCBTRVJWSU5HX1JFVFJZX0FUVEVNUFRTLCBXRUJfUkVUUllfQVRURU1QVFMsIHdlYlNlYXJjaEV4ZWN1dGVEZWZhdWx0cywgd2ViRmV0Y2hFeGVjdXRlRGVmYXVsdHMsIHNjcmFwZVNlYXJjaEV4ZWN1dGVEZWZhdWx0cyB9IGZyb20gXCIuL3NyYy9kZWZhdWx0cy50c1wiO1xuZXhwb3J0IHR5cGUgeyBXZWJTZWFyY2hFeGVjdXRlQ29uZmlnLCBXZWJTZWFyY2hFeGVjdXRpb25TZXR0aW5ncyB9IGZyb20gXCIuL3NyYy9kZWZhdWx0cy50c1wiO1xuZXhwb3J0IHsgV2ViU2VhcmNoUGx1Z2luLCB3ZWJTZWFyY2ggfSBmcm9tIFwiLi9zcmMvcGx1Z2luLnRzXCI7XG5leHBvcnQgeyBXZWJTZWFyY2hQcm92aWRlclNwZWNTY2hlbWEsIFdFQl9TRUFSQ0hfUFJPVklERVJTIH0gZnJvbSBcIi4vc3JjL3Byb3ZpZGVyLnRzXCI7XG5leHBvcnQgdHlwZSB7IFdlYlNlYXJjaFByb3ZpZGVyLCBXZWJTZWFyY2hQcm92aWRlclNwZWMgfSBmcm9tIFwiLi9zcmMvcHJvdmlkZXIudHNcIjtcbmV4cG9ydCB0eXBlIHsgV2ViU2VhcmNoRXhlY3V0b3IsIFdlYlNlYXJjaFJ1bnRpbWUsIFdlYlNlYXJjaFJ1bnRpbWVJbnB1dCB9IGZyb20gXCIuL3NyYy9ydW50aW1lLnRzXCI7XG5leHBvcnQgeyBXRUJfU0VBUkNIX1RPT0xfREVTQ1JJUFRJT04sIFdFQl9GRVRDSF9UT09MX0RFU0NSSVBUSU9OLCB3ZWJTZWFyY2hSZXF1ZXN0U2NoZW1hLCB3ZWJTZWFyY2hUb29sUmVxdWVzdFNjaGVtYSwgd2ViU2VhcmNoQ2l0YXRpb25TY2hlbWEsIHdlYlNlYXJjaFJlc3VsdFNjaGVtYSwgd2ViRmV0Y2hSZXF1ZXN0U2NoZW1hLCB3ZWJGZXRjaFJlc3VsdFNjaGVtYSB9IGZyb20gXCIuL3NyYy9zY2hlbWEudHNcIjtcbmV4cG9ydCB0eXBlIHsgV2ViU2VhcmNoUmVxdWVzdCwgV2ViU2VhcmNoVG9vbFJlcXVlc3QsIFdlYlNlYXJjaENpdGF0aW9uLCBXZWJTZWFyY2hSZXN1bHQsIFdlYkZldGNoUmVxdWVzdCwgV2ViRmV0Y2hSZXN1bHQgfSBmcm9tIFwiLi9zcmMvc2NoZW1hLnRzXCI7XG5leHBvcnQgdHlwZSB7IFdlYlNlYXJjaENvbnRleHQsIFdlYlNlYXJjaE1vZGVsU2VsZWN0aW9uT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9zZWFyY2gudHNcIjtcbmV4cG9ydCB0eXBlIHsgV2ViU2VhcmNoVG9vbE9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvdG9vbC50c1wiO1xuIl19
|
package/package.json
CHANGED
|
@@ -27,12 +27,12 @@
|
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"@databricks/appkit": "0.81.0",
|
|
30
|
-
"@dbx-tools/appkit": "^0.9.
|
|
31
|
-
"@dbx-tools/core": "^0.9.
|
|
32
|
-
"@dbx-tools/model": "^0.9.
|
|
33
|
-
"@dbx-tools/path": "^0.9.
|
|
34
|
-
"@dbx-tools/shared-core": "^0.9.
|
|
35
|
-
"@dbx-tools/shared-model": "^0.9.
|
|
30
|
+
"@dbx-tools/appkit": "^0.9.106",
|
|
31
|
+
"@dbx-tools/core": "^0.9.106",
|
|
32
|
+
"@dbx-tools/model": "^0.9.106",
|
|
33
|
+
"@dbx-tools/path": "^0.9.106",
|
|
34
|
+
"@dbx-tools/shared-core": "^0.9.106",
|
|
35
|
+
"@dbx-tools/shared-model": "^0.9.106",
|
|
36
36
|
"@mastra/core": "1.71.0",
|
|
37
37
|
"cheerio": "^1.2.0",
|
|
38
38
|
"entities": "^4.5.0",
|
|
@@ -102,7 +102,7 @@
|
|
|
102
102
|
"./package.json": "./package.json"
|
|
103
103
|
}
|
|
104
104
|
},
|
|
105
|
-
"version": "0.9.
|
|
105
|
+
"version": "0.9.106",
|
|
106
106
|
"types": "./lib/index.d.ts",
|
|
107
107
|
"dbxToolsConfig": {
|
|
108
108
|
"tags": [
|