@dbx-tools/appkit-web-search 0.9.131 → 0.9.132

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 CHANGED
@@ -1,15 +1,13 @@
1
1
  # @dbx-tools/appkit-web-search
2
2
 
3
- Server-side web-search runtime, Mastra tools, and AppKit plugin.
4
-
5
3
  Add `web_search` and `web_fetch` to an AppKit or Mastra backend. `web_search`
6
4
  runs on the
7
5
  [Databricks Model Serving native web-search tool](https://docs.databricks.com/aws/en/machine-learning/model-serving/web-search):
8
6
  the model searches the web server-side and returns a synthesized answer plus the
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).
7
+ sources it used without a third-party search API key. `web_fetch` reads a single page
8
+ through [got-scraping](https://www.npmjs.com/package/got-scraping).
11
9
 
12
- ## Quick Start
10
+ ## Quick start
13
11
 
14
12
  Register the plugin and give its tools to an agent:
15
13
 
@@ -30,7 +28,7 @@ await createApp({
30
28
  });
31
29
  ```
32
30
 
33
- **Key features:**
31
+ Registration provides:
34
32
 
35
33
  - AppKit plugin registration that resolves and logs the effective policy at boot.
36
34
  - Two Mastra tools: `web_search` (answer + citations) and `web_fetch` (page
@@ -39,13 +37,13 @@ await createApp({
39
37
  - `web_search` resolves a dedicated web-search-capable model - defaulting to Gemini,
40
38
  then GPT - independently of the calling agent's chat model (which may not
41
39
  support web search). Loose names (`"gemini"`, `"gpt"`) fuzzy-match the live
42
- catalogue via [`@dbx-tools/model`](../model).
40
+ catalogue through [@dbx-tools/model](../model).
43
41
  - A built-in provider -> request-fragment map (OpenAI Responses API
44
42
  `{"tools":[{"type":"web_search"}]}`, Gemini Chat Completions
45
43
  `{"google_search":{}}`),
46
- overridable per provider via the `WEB_SEARCH_TOOLS` setting.
47
- - A named URL policy (`allowlist` or `unrestricted`) over a glob allow-list
48
- built on [`@dbx-tools/path`](../path)'s `match` matcher: `web_search` silently
44
+ overridable per provider with the `WEB_SEARCH_TOOLS` setting.
45
+ - A named URL policy (`allowlist` or `unrestricted`) over a glob allowlist
46
+ built on [@dbx-tools/path](../path)'s `match` matcher: `web_search` silently
49
47
  filters disallowed citations, `web_fetch` refuses a disallowed URL, and the
50
48
  mode in force is logged at boot.
51
49
  - Per-tool approval gating: gate every call, or (for `web_fetch`) only calls
@@ -57,18 +55,24 @@ await createApp({
57
55
  - Page and fallback-result HTML use parser-backed text conversion and selectors,
58
56
  including complete HTML entity decoding and malformed-markup recovery.
59
57
 
60
- ## Use With Native AppKit
58
+ ## Choose a web provider
61
59
 
62
60
  AppKit has no first-party web-search or page-fetch surface. Use this package when
63
61
  an agent needs to look things up on the open web or read a URL the user pasted,
64
- with a policy layer (allow-list + optional approval) around it so a deployment
65
- controls which sites are reachable and which calls pause for a human. Crucially,
66
- the web-search tool resolves its own web-search-capable model, so an agent
62
+ with a policy layer (allowlist + optional approval) around it so a deployment
63
+ controls which sites are reachable and which calls pause for a human. The
64
+ web-search tool resolves its own web-search-capable model, so an agent
67
65
  running on any chat model (including one without web search) can still search. It
68
- is a thin add-on in the same shape as [`@dbx-tools/email`](../email): a Mastra
69
- tool pair plus an AppKit plugin.
66
+ provides a Mastra tool pair and an AppKit plugin, like
67
+ [@dbx-tools/email](../email).
68
+
69
+ Use native Databricks web search when a supported GPT or Gemini endpoint is
70
+ deployed. Use the DuckDuckGo scrape fallback only when no capable endpoint is
71
+ available and unsynthesized search results are acceptable. Use `web_fetch` for a
72
+ specific public HTTPS page. For indexed application data, use
73
+ [@dbx-tools/search](../search) instead.
70
74
 
71
- ## Configure The AppKit Plugin
75
+ ## Configure the AppKit plugin
72
76
 
73
77
  ```ts
74
78
  import { createApp, lakebase, server } from "@databricks/appkit";
@@ -101,7 +105,7 @@ the native plugin toolkit as shown above, which preserves that plugin's policy,
101
105
  OBO scope, and AppKit execution chain. Approval, when enabled, requires Mastra
102
106
  storage, so register `lakebase()` or configure storage in the Mastra plugin.
103
107
 
104
- The plugin is also an AppKit `ToolProvider`, so a simple native code agent can
108
+ The plugin is also an AppKit `ToolProvider`, so a native code agent can
105
109
  take the same two tools without Mastra. Put the definition at
106
110
  `server/agents/researcher/agent.ts` so AppKit discovers it:
107
111
 
@@ -132,16 +136,16 @@ Both tools are annotated `effect: "read"` and require user context, and neither
132
136
  is auto-inheritable: an agent has to ask for them, because `web_fetch` reaches
133
137
  whatever URL the model produces.
134
138
 
135
- Native volume skills currently execute as the service principal; the 0.81
139
+ Native volume skills run as the service principal. The 0.81
136
140
  `skillCredentialMode: "obo"` option is not wired. Keep request-scoped writable
137
141
  skills, remote sources, asynchronous Graphiti discovery, Sandbox/Monty,
138
142
  Mastra memory, and durable approvals on `@dbx-tools/appkit-mastra`.
139
143
 
140
- ## Choose The Web-Search Model
144
+ ## Choose the web-search model
141
145
 
142
146
  The native web-search tool only runs on certain models, and it is provider-
143
147
  specific. This package resolves deployed endpoints through
144
- [`@dbx-tools/model`](../model) and applies this order:
148
+ [@dbx-tools/model](../model) and applies this order:
145
149
 
146
150
  1. Highest-ranked web-search-capable **Gemini**.
147
151
  2. Without Gemini, a capable **GPT** matching the calling/requested model.
@@ -159,26 +163,26 @@ Serving binding, and it is the field the plugin declares in its manifest, so
159
163
  The request's `model`, plugin `model`, and environment model values are used to
160
164
  match the calling GPT after Gemini availability is checked.
161
165
  When the tool runs through `@dbx-tools/appkit-mastra`, the host injects the
162
- actual resolved chat model, overriding any different model argument generated
166
+ resolved chat model, overriding any different model argument generated
163
167
  by the LLM.
164
168
 
165
- Model resolution runs against the LIVE workspace catalogue (via
166
- [`@dbx-tools/model`](../model)), so it only ever picks an endpoint that is
169
+ Model resolution runs against the live workspace catalogue through
170
+ [@dbx-tools/model](../model), so it only picks an endpoint that is
167
171
  actually deployed - a configured id that doesn't exist is never called.
168
172
 
169
- ### Scrape Fallback
173
+ ### Scrape fallback
170
174
 
171
- The native tool is always preferred. But when the workspace has NO deployed
175
+ The native tool is preferred. When the workspace has no deployed
172
176
  GPT/Gemini endpoint (so native web search can't run at all), the tool falls
173
- back to a DuckDuckGo scrape (via `got-scraping`) so it still returns results
177
+ back to a DuckDuckGo scrape using `got-scraping` so it still returns results
174
178
  instead of erroring. Fallback results set `model` to `"scrape:duckduckgo"` and
175
179
  carry the substance in `citations` (there is no model synthesizing an answer,
176
- so `answer` is a lead-in over the top results). It is enabled by default; set
180
+ so `answer` is a lead-in over the top results). It is enabled by default. Set
177
181
  `scrapeFallback: false` (or `WEB_SEARCH_SCRAPE_FALLBACK=0`) to require a native
178
182
  model and error when none is deployed.
179
183
 
180
- The right provider request fragment is selected automatically from the resolved model:
181
- OpenAI GPT uses the Responses API `{"tools":[{"type":"web_search"}]}`; Gemini
184
+ The plugin selects the provider request fragment from the resolved model:
185
+ OpenAI GPT uses the Responses API `{"tools":[{"type":"web_search"}]}`. Gemini
182
186
  uses the top-level Chat Completions field `{"google_search":{}}`. Override or extend that map per provider with
183
187
  the `webSearchTools` setting (env `WEB_SEARCH_TOOLS`, JSON) as the platform
184
188
  evolves:
@@ -190,7 +194,7 @@ plugin.webSearch({
190
194
  });
191
195
  ```
192
196
 
193
- ## Search And Fetch Without An Agent
197
+ ## Search and fetch without an agent
194
198
 
195
199
  ```ts
196
200
  import { search, fetch, runtime, tool } from "@dbx-tools/appkit-web-search";
@@ -217,7 +221,7 @@ const page = await fetch.runWebFetch({ url: result.citations[0]!.url, format: "t
217
221
 
218
222
  Use direct calls for operational lookups, tests, or admin flows where a model is
219
223
  not involved. Standalone Mastra tool factories likewise accept `runtime` or
220
- `config`; they never discover or attach to a process-global plugin:
224
+ `config`. They never discover or attach to a process-global plugin:
221
225
 
222
226
  ```ts
223
227
  const webRuntime = runtime.createWebSearchRuntime({
@@ -233,7 +237,7 @@ const tools = {
233
237
  Pass the runtime explicitly or provide the executor to
234
238
  `createWebSearchRuntime`.
235
239
 
236
- ## Restrict Which URLs Are Reachable
240
+ ## Restrict reachable URLs
237
241
 
238
242
  ```ts
239
243
  import { allowlist } from "@dbx-tools/appkit-web-search";
@@ -246,9 +250,9 @@ list.allows("https://docs.databricks.com/aws/en/index.html"); // true
246
250
  list.allows("https://evil.example.com/"); // false
247
251
  ```
248
252
 
249
- Each entry is a glob compiled by [`@dbx-tools/path`](../path)'s `match` matcher.
250
- A host entry (no path, e.g. `databricks.com` or `*.databricks.com`) matches the
251
- URL's hostname, and a bare host also matches its subdomains; a path entry
253
+ Each entry is a glob compiled by [@dbx-tools/path](../path)'s `match` matcher.
254
+ A host entry (no path, for example `databricks.com` or `*.databricks.com`) matches the
255
+ URL's hostname, and a bare host also matches its subdomains. A path entry
252
256
  (`docs.example.com/api/**`) matches host + pathname. Enforcement is asymmetric by
253
257
  design: `web_search` citations are silently filtered to the permitted set (the
254
258
  model never surfaces a source it then can't fetch), while an explicit `web_fetch`
@@ -277,10 +281,10 @@ plugin.webSearch({ urlPolicy: "unrestricted" });
277
281
  plugin.webSearch({ urlPolicy: "allowlist", allowedUrls: ["*.databricks.com"] });
278
282
  ```
279
283
 
280
- ## Gate Calls For Approval
284
+ ## Gate calls for approval
281
285
 
282
286
  Both tools run without approval by default. Pass `approval` to a tool (or set it
283
- plugin-wide) to require a human click. `true` gates every call; a URL pattern (or
287
+ plugin-wide) to require approval. `true` gates every call. A URL pattern (or
284
288
  list) gates only calls whose URL matches - a `web_fetch` is evaluated precisely
285
289
  against its target URL, while a `web_search` (whose result URLs are unknown
286
290
  before the call) treats a pattern gate as "gate every call".
@@ -307,7 +311,7 @@ tool.webFetchTool({ config: { approval: ["*.internal.example.com"] } });
307
311
  Every spelling normalizes to one of three modes - `{ mode: "none" }`,
308
312
  `{ mode: "always" }`, `{ mode: "urls", patterns }` - which is what the resolved
309
313
  config carries and the boot log reports. Approval uses the same glob syntax as
310
- the allow-list, so the two policies read identically.
314
+ the allowlist, so the two policies read identically.
311
315
 
312
316
  ## Configuration
313
317
 
@@ -334,7 +338,7 @@ built-in default.
334
338
  | `WEB_SEARCH_MODEL` | `model` (dedicated override, wins over the binding below) |
335
339
  | `DATABRICKS_SERVING_ENDPOINT_NAME` | `model` (AppKit's Model Serving binding, treated as a preference) |
336
340
  | `WEB_SEARCH_MODEL_FALLBACKS` | `modelFallbacks` (comma/space-separated) |
337
- | `WEB_SEARCH_TOOLS` | `webSearchTools` (JSON object; anything else fails at boot) |
341
+ | `WEB_SEARCH_TOOLS` | `webSearchTools` (JSON object. Any other value fails at boot.) |
338
342
  | `WEB_SEARCH_FUZZY` | `modelFuzzyMatch` |
339
343
  | `WEB_SEARCH_FUZZY_THRESHOLD` | `modelFuzzyThreshold` |
340
344
  | `WEB_SEARCH_MAX_CITATIONS` | `maxCitations` |
@@ -355,10 +359,10 @@ TTLs and retry budgets and why each was chosen.
355
359
 
356
360
  OpenAI Responses web searches stream native search, page-read, and completion
357
361
  status through the Mastra tool writer. The common tool-session pill updates
358
- while the search runs; the completed Responses payload remains the tool result.
362
+ while the search runs. The completed Responses payload remains the tool result.
359
363
 
360
364
  Requirements: the native web-search tool runs on pay-per-token GPT / Gemini
361
- serving endpoints with cross-region processing enabled; it is unavailable on
365
+ serving endpoints with cross-region processing enabled. It is unavailable on
362
366
  provisioned throughput, for external models, or under HIPAA/BAA compliance. See
363
367
  the [Databricks docs](https://docs.databricks.com/aws/en/machine-learning/model-serving/web-search).
364
368
 
@@ -381,9 +385,9 @@ the [Databricks docs](https://docs.databricks.com/aws/en/machine-learning/model-
381
385
  and `executeRead()`.
382
386
  - `config` - config types, JSON schema, `resolveWebSearchConfig()`, URL policy
383
387
  and approval helpers.
384
- - `allowlist` - URL allow-list parsing/compiling on top of `@dbx-tools/path`.
388
+ - `allowlist` - URL allowlist parsing/compiling on top of `@dbx-tools/path`.
385
389
  - `schema` - zod tool contracts and inferred types.
386
390
 
387
- Pair this package with [`@dbx-tools/appkit-mastra`](../appkit-mastra) to spread
388
- the tools into an agent (and resolve its own model via [`@dbx-tools/model`](../model)),
389
- and [`@dbx-tools/email`](../email) for the sibling approval-gated tool pattern.
391
+ Pair this package with [@dbx-tools/appkit-mastra](../appkit-mastra) to add
392
+ the tools to an agent and resolve its model through [@dbx-tools/model](../model).
393
+ Use [@dbx-tools/email](../email) for the sibling approval-gated tool pattern.
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.131";
6
+ export const PACKAGE_VERSION = "0.9.132";
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.131";
2
+ export declare const PACKAGE_VERSION = "0.9.132";
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.131";
5
+ export const PACKAGE_VERSION = "0.9.132";
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyw4QkFBOEIsQ0FBQztBQUNqRSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxTQUFTLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxLQUFLLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEtBQUssUUFBUSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sS0FBSyxLQUFLLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxLQUFLLFFBQVEsTUFBTSxvQkFBb0IsQ0FBQztBQUMvQyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxRQUFRLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEtBQUssSUFBSSxNQUFNLGVBQWUsQ0FBQztBQUV0QyxPQUFPLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixFQUFFLHVCQUF1QixFQUFFLHFCQUFxQixFQUFFLHdCQUF3QixFQUFFLGtCQUFrQixFQUFFLHdCQUF3QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFMUwsT0FBTyxFQUFFLHdCQUF3QixFQUFFLHVCQUF1QixFQUFFLHNCQUFzQixFQUFFLGtCQUFrQixFQUFFLHdCQUF3QixFQUFFLHVCQUF1QixFQUFFLDJCQUEyQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbE4sT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUd0RixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsMEJBQTBCLEVBQUUsc0JBQXNCLEVBQUUsMEJBQTBCLEVBQUUsdUJBQXVCLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEdFTkVSQVRFRCBieSBwcm9qZW4gd2F0Y2ggLSBETyBOT1QgRURJVC5cbi8vIFJlZ2VuZXJhdGVkIGZyb20gdGhlIGV4cG9ydGluZyBtb2R1bGVzIGluIC4vc3JjLlxuLy8gSGFuZCBlZGl0cyBhcmUgb3ZlcndyaXR0ZW4gb24gdGhlIG5leHQgd2F0Y2g7IHRoaXMgZmlsZSBpcyByZWFkLW9ubHkuXG5cbmV4cG9ydCBjb25zdCBQQUNLQUdFX0lERU5USUZJRVIgPSBcIkBkYngtdG9vbHMvYXBwa2l0LXdlYi1zZWFyY2hcIjtcbmV4cG9ydCBjb25zdCBQQUNLQUdFX1ZFUlNJT04gPSBcIjAuOS4xMzFcIjtcbmV4cG9ydCAqIGFzIGFsbG93bGlzdCBmcm9tIFwiLi9zcmMvYWxsb3dsaXN0LnRzXCI7XG5leHBvcnQgKiBhcyBjb25maWcgZnJvbSBcIi4vc3JjL2NvbmZpZy50c1wiO1xuZXhwb3J0ICogYXMgZGVmYXVsdHMgZnJvbSBcIi4vc3JjL2RlZmF1bHRzLnRzXCI7XG5leHBvcnQgKiBhcyBmZXRjaCBmcm9tIFwiLi9zcmMvZmV0Y2gudHNcIjtcbmV4cG9ydCAqIGFzIGh0bWxUZXh0IGZyb20gXCIuL3NyYy9odG1sLXRleHQudHNcIjtcbmV4cG9ydCAqIGFzIHBsdWdpbiBmcm9tIFwiLi9zcmMvcGx1Z2luLnRzXCI7XG5leHBvcnQgKiBhcyBwcm92aWRlciBmcm9tIFwiLi9zcmMvcHJvdmlkZXIudHNcIjtcbmV4cG9ydCAqIGFzIHJ1bnRpbWUgZnJvbSBcIi4vc3JjL3J1bnRpbWUudHNcIjtcbmV4cG9ydCAqIGFzIHNjaGVtYSBmcm9tIFwiLi9zcmMvc2NoZW1hLnRzXCI7XG5leHBvcnQgKiBhcyBzY3JhcGUgZnJvbSBcIi4vc3JjL3NjcmFwZS50c1wiO1xuZXhwb3J0ICogYXMgc2VhcmNoIGZyb20gXCIuL3NyYy9zZWFyY2gudHNcIjtcbmV4cG9ydCAqIGFzIHRvb2wgZnJvbSBcIi4vc3JjL3Rvb2wudHNcIjtcbmV4cG9ydCB0eXBlIHsgVXJsQWxsb3dMaXN0IH0gZnJvbSBcIi4vc3JjL2FsbG93bGlzdC50c1wiO1xuZXhwb3J0IHsgTU9ERUxfRU5WLCBTRVJWSU5HX0VORFBPSU5UX0VOViwgREVGQVVMVF9NT0RFTF9GQUxMQkFDS1MsIERFRkFVTFRfTUFYX0NJVEFUSU9OUywgREVGQVVMVF9GRVRDSF9NQVhfTEVOR1RILCBERUZBVUxUX1RJTUVPVVRfTVMsIFdFQl9TRUFSQ0hfQ09ORklHX1NDSEVNQSB9IGZyb20gXCIuL3NyYy9jb25maWcudHNcIjtcbmV4cG9ydCB0eXBlIHsgQXBwcm92YWxHYXRlLCBBcHByb3ZhbFBvbGljeSwgVXJsUG9saWN5TW9kZSwgTW9kZWxTb3VyY2UsIFdlYlNlYXJjaFBsdWdpbkNvbmZpZywgUmVzb2x2ZWRXZWJTZWFyY2hDb25maWcgfSBmcm9tIFwiLi9zcmMvY29uZmlnLnRzXCI7XG5leHBvcnQgeyBTRUFSQ0hfQ0FDSEVfVFRMX1NFQ09ORFMsIEZFVENIX0NBQ0hFX1RUTF9TRUNPTkRTLCBTRVJWSU5HX1JFVFJZX0FUVEVNUFRTLCBXRUJfUkVUUllfQVRURU1QVFMsIHdlYlNlYXJjaEV4ZWN1dGVEZWZhdWx0cywgd2ViRmV0Y2hFeGVjdXRlRGVmYXVsdHMsIHNjcmFwZVNlYXJjaEV4ZWN1dGVEZWZhdWx0cyB9IGZyb20gXCIuL3NyYy9kZWZhdWx0cy50c1wiO1xuZXhwb3J0IHR5cGUgeyBXZWJTZWFyY2hFeGVjdXRlQ29uZmlnLCBXZWJTZWFyY2hFeGVjdXRpb25TZXR0aW5ncyB9IGZyb20gXCIuL3NyYy9kZWZhdWx0cy50c1wiO1xuZXhwb3J0IHsgV2ViU2VhcmNoUGx1Z2luLCB3ZWJTZWFyY2ggfSBmcm9tIFwiLi9zcmMvcGx1Z2luLnRzXCI7XG5leHBvcnQgeyBXZWJTZWFyY2hQcm92aWRlclNwZWNTY2hlbWEsIFdFQl9TRUFSQ0hfUFJPVklERVJTIH0gZnJvbSBcIi4vc3JjL3Byb3ZpZGVyLnRzXCI7XG5leHBvcnQgdHlwZSB7IFdlYlNlYXJjaFByb3ZpZGVyLCBXZWJTZWFyY2hQcm92aWRlclNwZWMgfSBmcm9tIFwiLi9zcmMvcHJvdmlkZXIudHNcIjtcbmV4cG9ydCB0eXBlIHsgV2ViU2VhcmNoRXhlY3V0b3IsIFdlYlNlYXJjaFJ1bnRpbWUsIFdlYlNlYXJjaFJ1bnRpbWVJbnB1dCB9IGZyb20gXCIuL3NyYy9ydW50aW1lLnRzXCI7XG5leHBvcnQgeyBXRUJfU0VBUkNIX1RPT0xfREVTQ1JJUFRJT04sIFdFQl9GRVRDSF9UT09MX0RFU0NSSVBUSU9OLCB3ZWJTZWFyY2hSZXF1ZXN0U2NoZW1hLCB3ZWJTZWFyY2hUb29sUmVxdWVzdFNjaGVtYSwgd2ViU2VhcmNoQ2l0YXRpb25TY2hlbWEsIHdlYlNlYXJjaFJlc3VsdFNjaGVtYSwgd2ViRmV0Y2hSZXF1ZXN0U2NoZW1hLCB3ZWJGZXRjaFJlc3VsdFNjaGVtYSB9IGZyb20gXCIuL3NyYy9zY2hlbWEudHNcIjtcbmV4cG9ydCB0eXBlIHsgV2ViU2VhcmNoUmVxdWVzdCwgV2ViU2VhcmNoVG9vbFJlcXVlc3QsIFdlYlNlYXJjaENpdGF0aW9uLCBXZWJTZWFyY2hSZXN1bHQsIFdlYkZldGNoUmVxdWVzdCwgV2ViRmV0Y2hSZXN1bHQgfSBmcm9tIFwiLi9zcmMvc2NoZW1hLnRzXCI7XG5leHBvcnQgdHlwZSB7IFdlYlNlYXJjaENvbnRleHQsIFdlYlNlYXJjaE1vZGVsU2VsZWN0aW9uT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9zZWFyY2gudHNcIjtcbmV4cG9ydCB0eXBlIHsgV2ViU2VhcmNoVG9vbE9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvdG9vbC50c1wiO1xuIl19
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyw4QkFBOEIsQ0FBQztBQUNqRSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxTQUFTLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxLQUFLLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEtBQUssUUFBUSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sS0FBSyxLQUFLLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxLQUFLLFFBQVEsTUFBTSxvQkFBb0IsQ0FBQztBQUMvQyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxRQUFRLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEtBQUssSUFBSSxNQUFNLGVBQWUsQ0FBQztBQUV0QyxPQUFPLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixFQUFFLHVCQUF1QixFQUFFLHFCQUFxQixFQUFFLHdCQUF3QixFQUFFLGtCQUFrQixFQUFFLHdCQUF3QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFMUwsT0FBTyxFQUFFLHdCQUF3QixFQUFFLHVCQUF1QixFQUFFLHNCQUFzQixFQUFFLGtCQUFrQixFQUFFLHdCQUF3QixFQUFFLHVCQUF1QixFQUFFLDJCQUEyQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbE4sT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUd0RixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsMEJBQTBCLEVBQUUsc0JBQXNCLEVBQUUsMEJBQTBCLEVBQUUsdUJBQXVCLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEdFTkVSQVRFRCBieSBwcm9qZW4gd2F0Y2ggLSBETyBOT1QgRURJVC5cbi8vIFJlZ2VuZXJhdGVkIGZyb20gdGhlIGV4cG9ydGluZyBtb2R1bGVzIGluIC4vc3JjLlxuLy8gSGFuZCBlZGl0cyBhcmUgb3ZlcndyaXR0ZW4gb24gdGhlIG5leHQgd2F0Y2g7IHRoaXMgZmlsZSBpcyByZWFkLW9ubHkuXG5cbmV4cG9ydCBjb25zdCBQQUNLQUdFX0lERU5USUZJRVIgPSBcIkBkYngtdG9vbHMvYXBwa2l0LXdlYi1zZWFyY2hcIjtcbmV4cG9ydCBjb25zdCBQQUNLQUdFX1ZFUlNJT04gPSBcIjAuOS4xMzJcIjtcbmV4cG9ydCAqIGFzIGFsbG93bGlzdCBmcm9tIFwiLi9zcmMvYWxsb3dsaXN0LnRzXCI7XG5leHBvcnQgKiBhcyBjb25maWcgZnJvbSBcIi4vc3JjL2NvbmZpZy50c1wiO1xuZXhwb3J0ICogYXMgZGVmYXVsdHMgZnJvbSBcIi4vc3JjL2RlZmF1bHRzLnRzXCI7XG5leHBvcnQgKiBhcyBmZXRjaCBmcm9tIFwiLi9zcmMvZmV0Y2gudHNcIjtcbmV4cG9ydCAqIGFzIGh0bWxUZXh0IGZyb20gXCIuL3NyYy9odG1sLXRleHQudHNcIjtcbmV4cG9ydCAqIGFzIHBsdWdpbiBmcm9tIFwiLi9zcmMvcGx1Z2luLnRzXCI7XG5leHBvcnQgKiBhcyBwcm92aWRlciBmcm9tIFwiLi9zcmMvcHJvdmlkZXIudHNcIjtcbmV4cG9ydCAqIGFzIHJ1bnRpbWUgZnJvbSBcIi4vc3JjL3J1bnRpbWUudHNcIjtcbmV4cG9ydCAqIGFzIHNjaGVtYSBmcm9tIFwiLi9zcmMvc2NoZW1hLnRzXCI7XG5leHBvcnQgKiBhcyBzY3JhcGUgZnJvbSBcIi4vc3JjL3NjcmFwZS50c1wiO1xuZXhwb3J0ICogYXMgc2VhcmNoIGZyb20gXCIuL3NyYy9zZWFyY2gudHNcIjtcbmV4cG9ydCAqIGFzIHRvb2wgZnJvbSBcIi4vc3JjL3Rvb2wudHNcIjtcbmV4cG9ydCB0eXBlIHsgVXJsQWxsb3dMaXN0IH0gZnJvbSBcIi4vc3JjL2FsbG93bGlzdC50c1wiO1xuZXhwb3J0IHsgTU9ERUxfRU5WLCBTRVJWSU5HX0VORFBPSU5UX0VOViwgREVGQVVMVF9NT0RFTF9GQUxMQkFDS1MsIERFRkFVTFRfTUFYX0NJVEFUSU9OUywgREVGQVVMVF9GRVRDSF9NQVhfTEVOR1RILCBERUZBVUxUX1RJTUVPVVRfTVMsIFdFQl9TRUFSQ0hfQ09ORklHX1NDSEVNQSB9IGZyb20gXCIuL3NyYy9jb25maWcudHNcIjtcbmV4cG9ydCB0eXBlIHsgQXBwcm92YWxHYXRlLCBBcHByb3ZhbFBvbGljeSwgVXJsUG9saWN5TW9kZSwgTW9kZWxTb3VyY2UsIFdlYlNlYXJjaFBsdWdpbkNvbmZpZywgUmVzb2x2ZWRXZWJTZWFyY2hDb25maWcgfSBmcm9tIFwiLi9zcmMvY29uZmlnLnRzXCI7XG5leHBvcnQgeyBTRUFSQ0hfQ0FDSEVfVFRMX1NFQ09ORFMsIEZFVENIX0NBQ0hFX1RUTF9TRUNPTkRTLCBTRVJWSU5HX1JFVFJZX0FUVEVNUFRTLCBXRUJfUkVUUllfQVRURU1QVFMsIHdlYlNlYXJjaEV4ZWN1dGVEZWZhdWx0cywgd2ViRmV0Y2hFeGVjdXRlRGVmYXVsdHMsIHNjcmFwZVNlYXJjaEV4ZWN1dGVEZWZhdWx0cyB9IGZyb20gXCIuL3NyYy9kZWZhdWx0cy50c1wiO1xuZXhwb3J0IHR5cGUgeyBXZWJTZWFyY2hFeGVjdXRlQ29uZmlnLCBXZWJTZWFyY2hFeGVjdXRpb25TZXR0aW5ncyB9IGZyb20gXCIuL3NyYy9kZWZhdWx0cy50c1wiO1xuZXhwb3J0IHsgV2ViU2VhcmNoUGx1Z2luLCB3ZWJTZWFyY2ggfSBmcm9tIFwiLi9zcmMvcGx1Z2luLnRzXCI7XG5leHBvcnQgeyBXZWJTZWFyY2hQcm92aWRlclNwZWNTY2hlbWEsIFdFQl9TRUFSQ0hfUFJPVklERVJTIH0gZnJvbSBcIi4vc3JjL3Byb3ZpZGVyLnRzXCI7XG5leHBvcnQgdHlwZSB7IFdlYlNlYXJjaFByb3ZpZGVyLCBXZWJTZWFyY2hQcm92aWRlclNwZWMgfSBmcm9tIFwiLi9zcmMvcHJvdmlkZXIudHNcIjtcbmV4cG9ydCB0eXBlIHsgV2ViU2VhcmNoRXhlY3V0b3IsIFdlYlNlYXJjaFJ1bnRpbWUsIFdlYlNlYXJjaFJ1bnRpbWVJbnB1dCB9IGZyb20gXCIuL3NyYy9ydW50aW1lLnRzXCI7XG5leHBvcnQgeyBXRUJfU0VBUkNIX1RPT0xfREVTQ1JJUFRJT04sIFdFQl9GRVRDSF9UT09MX0RFU0NSSVBUSU9OLCB3ZWJTZWFyY2hSZXF1ZXN0U2NoZW1hLCB3ZWJTZWFyY2hUb29sUmVxdWVzdFNjaGVtYSwgd2ViU2VhcmNoQ2l0YXRpb25TY2hlbWEsIHdlYlNlYXJjaFJlc3VsdFNjaGVtYSwgd2ViRmV0Y2hSZXF1ZXN0U2NoZW1hLCB3ZWJGZXRjaFJlc3VsdFNjaGVtYSB9IGZyb20gXCIuL3NyYy9zY2hlbWEudHNcIjtcbmV4cG9ydCB0eXBlIHsgV2ViU2VhcmNoUmVxdWVzdCwgV2ViU2VhcmNoVG9vbFJlcXVlc3QsIFdlYlNlYXJjaENpdGF0aW9uLCBXZWJTZWFyY2hSZXN1bHQsIFdlYkZldGNoUmVxdWVzdCwgV2ViRmV0Y2hSZXN1bHQgfSBmcm9tIFwiLi9zcmMvc2NoZW1hLnRzXCI7XG5leHBvcnQgdHlwZSB7IFdlYlNlYXJjaENvbnRleHQsIFdlYlNlYXJjaE1vZGVsU2VsZWN0aW9uT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9zZWFyY2gudHNcIjtcbmV4cG9ydCB0eXBlIHsgV2ViU2VhcmNoVG9vbE9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvdG9vbC50c1wiO1xuIl19
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.131",
31
- "@dbx-tools/core": "^0.9.131",
32
- "@dbx-tools/model": "^0.9.131",
33
- "@dbx-tools/path": "^0.9.131",
34
- "@dbx-tools/shared-core": "^0.9.131",
35
- "@dbx-tools/shared-model": "^0.9.131",
30
+ "@dbx-tools/appkit": "^0.9.132",
31
+ "@dbx-tools/core": "^0.9.132",
32
+ "@dbx-tools/model": "^0.9.132",
33
+ "@dbx-tools/path": "^0.9.132",
34
+ "@dbx-tools/shared-core": "^0.9.132",
35
+ "@dbx-tools/shared-model": "^0.9.132",
36
36
  "@mastra/core": "1.71.0",
37
37
  "cheerio": "^1.2.0",
38
38
  "entities": "^4.5.0",
@@ -106,7 +106,7 @@
106
106
  "./package.json": "./package.json"
107
107
  }
108
108
  },
109
- "version": "0.9.131",
109
+ "version": "0.9.132",
110
110
  "types": "./lib/index.d.ts",
111
111
  "dbxToolsConfig": {
112
112
  "tags": [