@dbx-tools/appkit-web-search 0.9.5 → 0.9.7

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/lib/src/plugin.js CHANGED
@@ -14,9 +14,10 @@
14
14
  *
15
15
  * @module
16
16
  */
17
- import { Plugin, ResourceType, toPlugin, } from "@databricks/appkit";
18
- import { defineTool, executeFromRegistry, toolsFromRegistry, } from "@databricks/appkit/beta";
19
- import { log, string } from "@dbx-tools/shared-core";
17
+ import { ResourceType, toPlugin, } from "@databricks/appkit";
18
+ import { defineTool } from "@databricks/appkit/beta";
19
+ import { ToolRegistryPlugin } from "@dbx-tools/appkit";
20
+ import { log, stringUtils } from "@dbx-tools/shared-core";
20
21
  import { MODEL_ENV, SERVING_ENDPOINT_ENV, WEB_SEARCH_CONFIG_SCHEMA, } from "./config.js";
21
22
  import { runWebFetch } from "./fetch.js";
22
23
  import { createWebSearchRuntime } from "./runtime.js";
@@ -56,12 +57,12 @@ const SERVING_ENDPOINT_RESOURCE = {
56
57
  * @example
57
58
  * ```ts
58
59
  * import { createApp, server } from "@databricks/appkit";
59
- * import { plugin as webSearchPlugin } from "@dbx-tools/appkit-web-search";
60
+ * import { webSearch } from "@dbx-tools/appkit-web-search";
60
61
  *
61
62
  * await createApp({
62
63
  * plugins: [
63
64
  * server(),
64
- * webSearchPlugin.webSearch({
65
+ * webSearch({
65
66
  * model: "gemini",
66
67
  * urlPolicy: "allowlist",
67
68
  * allowedUrls: ["*.databricks.com"],
@@ -70,7 +71,7 @@ const SERVING_ENDPOINT_RESOURCE = {
70
71
  * });
71
72
  * ```
72
73
  */
73
- export class WebSearchPlugin extends Plugin {
74
+ export class WebSearchPlugin extends ToolRegistryPlugin {
74
75
  static manifest = {
75
76
  name: "web-search",
76
77
  displayName: "Web Search",
@@ -93,9 +94,9 @@ export class WebSearchPlugin extends Plugin {
93
94
  * the live catalogue on its own.
94
95
  */
95
96
  static getResourceRequirements(config) {
96
- const pinned = string.trimToNull(config.model) ??
97
- string.trimToNull(process.env[MODEL_ENV]) ??
98
- string.trimToNull(process.env[SERVING_ENDPOINT_ENV]);
97
+ const pinned = stringUtils.trimToNull(config.model) ??
98
+ stringUtils.trimToNull(process.env[MODEL_ENV]) ??
99
+ stringUtils.trimToNull(process.env[SERVING_ENDPOINT_ENV]);
99
100
  return pinned === null ? [] : [{ ...SERVING_ENDPOINT_RESOURCE, required: true }];
100
101
  }
101
102
  /**
@@ -112,7 +113,7 @@ export class WebSearchPlugin extends Plugin {
112
113
  * against the same schema first, but re-parsing is what gives the body typed
113
114
  * arguments instead of `unknown`.
114
115
  */
115
- tools = {
116
+ toolRegistry = {
116
117
  web_search: defineTool({
117
118
  description: WEB_SEARCH_TOOL_DESCRIPTION,
118
119
  schema: webSearchRequestSchema,
@@ -157,18 +158,6 @@ export class WebSearchPlugin extends Plugin {
157
158
  abortActiveOperations() {
158
159
  super.abortActiveOperations();
159
160
  }
160
- /** AppKit `ToolProvider`: the tool definitions offered to an agent. */
161
- getAgentTools() {
162
- return toolsFromRegistry(this.tools);
163
- }
164
- /**
165
- * AppKit `ToolProvider`: run one tool call. Arguments are validated against
166
- * the tool's schema first, and a validation failure comes back as an
167
- * LLM-friendly string so the model can correct itself on the next turn.
168
- */
169
- async executeAgentTool(name, args, signal) {
170
- return executeFromRegistry(this.tools, name, args, signal);
171
- }
172
161
  exports() {
173
162
  return {
174
163
  /**
@@ -197,8 +186,8 @@ export class WebSearchPlugin extends Plugin {
197
186
  * @example
198
187
  * ```ts
199
188
  * import { createApp, server } from "@databricks/appkit";
200
- * import { plugin as webSearchPlugin } from "@dbx-tools/appkit-web-search";
201
- * import { agents, plugin as mastraPlugin } from "@dbx-tools/appkit-mastra";
189
+ * import { webSearch } from "@dbx-tools/appkit-web-search";
190
+ * import { agents, mastra } from "@dbx-tools/appkit-mastra";
202
191
  *
203
192
  * const researcher = agents.createAgent({
204
193
  * instructions: "Research questions with web_search, then read sources with web_fetch.",
@@ -210,11 +199,11 @@ export class WebSearchPlugin extends Plugin {
210
199
  * await createApp({
211
200
  * plugins: [
212
201
  * server(),
213
- * webSearchPlugin.webSearch({ model: "gemini" }),
214
- * mastraPlugin.mastra({ agents: researcher }),
202
+ * webSearch({ model: "gemini" }),
203
+ * mastra({ agents: researcher }),
215
204
  * ],
216
205
  * });
217
206
  * ```
218
207
  */
219
208
  export const webSearch = toPlugin(WebSearchPlugin);
220
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixRQUFRLEdBR1QsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQ0wsVUFBVSxFQUNWLG1CQUFtQixFQUNuQixpQkFBaUIsR0FJbEIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFDTCxTQUFTLEVBQ1Qsb0JBQW9CLEVBQ3BCLHdCQUF3QixHQUV6QixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxzQkFBc0IsRUFBeUIsTUFBTSxjQUFjLENBQUM7QUFDN0UsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixzQkFBc0IsRUFDdEIsMEJBQTBCLEVBQzFCLDJCQUEyQixHQUM1QixNQUFNLGFBQWEsQ0FBQztBQU9yQixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXBFLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7QUFFeEM7Ozs7OztHQU1HO0FBQ0gsTUFBTSx5QkFBeUIsR0FBRztJQUNoQyxJQUFJLEVBQUUsWUFBWSxDQUFDLGdCQUFnQjtJQUNuQyxLQUFLLEVBQUUscUJBQXFCO0lBQzVCLFdBQVcsRUFBRSxxQkFBcUI7SUFDbEMsV0FBVyxFQUNULHlGQUF5RjtRQUN6RixvRUFBb0U7SUFDdEUsVUFBVSxFQUFFLFdBQVc7SUFDdkIsTUFBTSxFQUFFO1FBQ04sSUFBSSxFQUFFO1lBQ0osR0FBRyxFQUFFLG9CQUFvQjtZQUN6QixXQUFXLEVBQUUs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QyxLQUFLLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQztTQUM5QixDQUFDO0lBQ0osQ0FBQztJQUVPLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBeUIsRUFBRSxNQUFvQjtRQUNsRSxPQUFPLFlBQVksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLHVCQUF1QixFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUVPLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBd0IsRUFBRSxNQUFvQjtRQUNoRSxPQUFPLFdBQVcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNwRCxDQUFDOztBQUdIOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3Qkc7QUFDSCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBcHBLaXQgcGx1Z2luIChyZWdpc3RlcmVkIG5hbWU6IGB3ZWItc2VhcmNoYCkgdGhhdCBvd25zIHRoZSByZXNvbHZlZFxuICogd2ViLXNlYXJjaCBydW50aW1lIC0gdGhlIFVSTCBwb2xpY3ksIHJlc3VsdCAvIGxlbmd0aCBjYXBzLCB0aW1lb3V0LCBhbmRcbiAqIGRlZmF1bHQgYXBwcm92YWwgZ2F0ZSBpdHMgdG9vbHMgcmVhZC4gUmVnaXN0ZXJpbmcgaXQgcmVzb2x2ZXMgYW5kIGxvZ3MgdGhlXG4gKiBlZmZlY3RpdmUgY29uZmlnICh3aGljaCBVUkwgcG9saWN5IGlzIGluIGZvcmNlLCB0aGUgY2Fwcykgc28gYVxuICogbWlzY29uZmlndXJhdGlvbiBpcyB2aXNpYmxlIGluIHRoZSBib290IGxvZ3MgcmF0aGVyIHRoYW4gb24gdGhlIGZpcnN0XG4gKiBzZWFyY2guIFRoZSBwbHVnaW4ncyBgZXhlY3V0ZSgpYCBpcyBjYXB0dXJlZCBieSBpdHMgb3duIHJ1bnRpbWUgc28gZXZlcnlcbiAqIG91dGJvdW5kIGNhbGwgcGlja3MgdXAgQXBwS2l0J3MgY2FjaGUgLyByZXRyeSAvIHRpbWVvdXQgLyB0ZWxlbWV0cnkgY2hhaW4uXG4gKlxuICogVGhlIHBsdWdpbiBhbHNvIGltcGxlbWVudHMgQXBwS2l0J3MgYFRvb2xQcm92aWRlcmAsIHNvIGFuIEFwcEtpdCBhZ2VudCBnZXRzXG4gKiBgd2ViX3NlYXJjaGAgLyBgd2ViX2ZldGNoYCB3aXRob3V0IGdvaW5nIHRocm91Z2ggTWFzdHJhLiBBcHAtaW50ZWdyYXRlZFxuICogTWFzdHJhIGFnZW50cyBjb25zdW1lIHRoaXMgcHJvdmlkZXIgdGhyb3VnaCBgcGx1Z2luc1tcIndlYi1zZWFyY2hcIl0udG9vbGtpdCgpYDtcbiAqIHN0YW5kYWxvbmUgZmFjdG9yaWVzIGluIGB0b29sLnRzYCB1c2UgdGhlaXIgb3duIGV4cGxpY2l0IHJ1bnRpbWUgb3IgY29uZmlnLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQge1xuICBQbHVnaW4sXG4gIFJlc291cmNlVHlwZSxcbiAgdG9QbHVnaW4sXG4gIHR5cGUgUGx1Z2luTWFuaWZlc3QsXG4gIHR5cGUgUmVzb3VyY2VSZXF1aXJlbWVudCxcbn0gZnJvbSBcIkBkYXRhYnJpY2tzL2FwcGtpdFwiO1xuaW1wb3J0IHtcbiAgZGVmaW5lVG9vbCxcbiAgZXhlY3V0ZUZyb21SZWdpc3RyeSxcbiAgdG9vbHNGcm9tUmVnaXN0cnksXG4gIHR5cGUgQWdlbnRUb29sRGVmaW5pdGlvbixcbiAgdHlwZSBUb29sUHJvdmlkZXIsXG4gIHR5cGUgVG9vbFJlZ2lzdHJ5LFxufSBmcm9tIFwiQGRhdGFicmlja3MvYXBwa2l0L2JldGFcIjtcbmltcG9ydCB7IGxvZywgc3RyaW5nIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcbmltcG9ydCB7XG4gIE1PREVMX0VOVixcbiAgU0VSVklOR19FTkRQT0lOVF9FTlYsXG4gIFdFQl9TRUFSQ0hfQ09ORklHX1NDSEVNQSxcbiAgdHlwZSBXZWJTZWFyY2hQbHVnaW5Db25maWcsXG59IGZyb20gXCIuL2NvbmZpZy50c1wiO1xuaW1wb3J0IHsgcnVuV2ViRmV0Y2ggfSBmcm9tIFwiLi9mZXRjaC50c1wiO1xuaW1wb3J0IHsgY3JlYXRlV2ViU2VhcmNoUnVudGltZSwgdHlwZSBXZWJTZWFyY2hSdW50aW1lIH0gZnJvbSBcIi4vcnVudGltZS50c1wiO1xuaW1wb3J0IHtcbiAgd2ViRmV0Y2hSZXF1ZXN0U2NoZW1hLFxuICB3ZWJTZWFyY2hSZXF1ZXN0U2NoZW1hLFxuICBXRUJfRkVUQ0hfVE9PTF9ERVNDUklQVElPTixcbiAgV0VCX1NFQVJDSF9UT09MX0RFU0NSSVBUSU9OLFxufSBmcm9tIFwiLi9zY2hlbWEudHNcIjtcbmltcG9ydCB0eXBlIHtcbiAgV2ViRmV0Y2hSZXF1ZXN0LFxuICBXZWJGZXRjaFJlc3VsdCxcbiAgV2ViU2VhcmNoUmVxdWVzdCxcbiAgV2ViU2VhcmNoUmVzdWx0LFxufSBmcm9tIFwiLi9zY2hlbWEudHNcIjtcbmltcG9ydCB7IHJlc29sdmVXZWJTZWFyY2hDb250ZXh0LCBydW5XZWJTZWFyY2ggfSBmcm9tIFwiLi9zZWFyY2gudHNcIjtcblxuY29uc3QgbG9nZ2VyID0gbG9nLmxvZ2dlcihcIndlYi1zZWFyY2hcIik7XG5cbi8qKlxuICogVGhlIE1vZGVsIFNlcnZpbmcgZW5kcG9pbnQgdGhlIG5hdGl2ZSB3ZWItc2VhcmNoIHRvb2wgcnVucyBvbi4gRGVjbGFyZWRcbiAqIG9wdGlvbmFsIGJlY2F1c2UgdGhlIHBsdWdpbiByZXNvbHZlcyBhIHdlYi1zZWFyY2gtY2FwYWJsZSBlbmRwb2ludCBmcm9tIHRoZVxuICogbGl2ZSBjYXRhbG9ndWUgd2hlbiBub3RoaW5nIGlzIHBpbm5lZDsge0BsaW5rIFdlYlNlYXJjaFBsdWdpbi5nZXRSZXNvdXJjZVJlcXVpcmVtZW50c31cbiAqIHByb21vdGVzIGl0IHRvIHJlcXVpcmVkIG9uY2UgYSBkZXBsb3ltZW50IG5hbWVzIG9uZS4gYENBTl9RVUVSWWAgaXMgdGhlXG4gKiB3ZWFrZXN0IHBlcm1pc3Npb24gdGhhdCBjYW4gaW52b2tlIGFuIGVuZHBvaW50LlxuICovXG5jb25zdCBTRVJWSU5HX0VORFBPSU5UX1JFU09VUkNFID0ge1xuICB0eXBlOiBSZXNvdXJjZVR5cGUuU0VSVklOR19FTkRQT0lOVCxcbiAgYWxpYXM6IFwiV2ViIFNlYXJjaCBFbmRwb2ludFwiLFxuICByZXNvdXJjZUtleTogXCJ3ZWItc2VhcmNoLWVuZHBvaW50XCIsXG4gIGRlc2NyaXB0aW9uOlxuICAgIFwiTW9kZWwgU2VydmluZyBlbmRwb2ludCBydW5uaW5nIHRoZSBuYXRpdmUgd2ViLXNlYXJjaCB0b29sLiBPcHRpb25hbDogcmVzb2x2ZWQgZnJvbSB0aGUgXCIgK1xuICAgIFwid29ya3NwYWNlIGNhdGFsb2d1ZSAoR2VtaW5pLCB0aGVuIEdQVCkgd2hlbiBubyBlbmRwb2ludCBpcyBwaW5uZWQuXCIsXG4gIHBlcm1pc3Npb246IFwiQ0FOX1FVRVJZXCIsXG4gIGZpZWxkczoge1xuICAgIG5hbWU6IHtcbiAgICAgIGVudjogU0VSVklOR19FTkRQT0lOVF9FTlYsXG4gICAgICBkZXNjcmlwdGlvbjogYFNlcnZpbmcgZW5kcG9pbnQgbmFtZSBmb3Igd2ViIHNlYXJjaC4gJHtNT0RFTF9FTlZ9IG92ZXJyaWRlcyBpdC5gLFxuICAgICAgZGlzY292ZXJ5OiB7XG4gICAgICAgIHR5cGU6IFwiY2xpXCIsXG4gICAgICAgIGNsaUNvbW1hbmQ6IFwiZGF0YWJyaWNrcyBzZXJ2aW5nLWVuZHBvaW50cyBsaXN0IC0tcHJvZmlsZSA8UFJPRklMRT4gLS1vdXRwdXQganNvblwiLFxuICAgICAgICBzZWxlY3RGaWVsZDogXCIubmFtZVwiLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxufSBzYXRpc2ZpZXMgT21pdDxSZXNvdXJjZVJlcXVpcmVtZW50LCBcInJlcXVpcmVkXCI+O1xuXG4vKipcbiAqIEFwcEtpdCBwbHVnaW4gdGhhdCByZXNvbHZlcyBhbmQgaG9sZHMgdGhlIHdlYi1zZWFyY2ggcnVudGltZSBjb25maWcgdXNlZFxuICogYnkgdGhlIGB3ZWJfc2VhcmNoYCAvIGB3ZWJfZmV0Y2hgIHRvb2xzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgY3JlYXRlQXBwLCBzZXJ2ZXIgfSBmcm9tIFwiQGRhdGFicmlja3MvYXBwa2l0XCI7XG4gKiBpbXBvcnQgeyBwbHVnaW4gYXMgd2ViU2VhcmNoUGx1Z2luIH0gZnJvbSBcIkBkYngtdG9vbHMvYXBwa2l0LXdlYi1zZWFyY2hcIjtcbiAqXG4gKiBhd2FpdCBjcmVhdGVBcHAoe1xuICogICBwbHVnaW5zOiBbXG4gKiAgICAgc2VydmVyKCksXG4gKiAgICAgd2ViU2VhcmNoUGx1Z2luLndlYlNlYXJjaCh7XG4gKiAgICAgICBtb2RlbDogXCJnZW1pbmlcIixcbiAqICAgICAgIHVybFBvbGljeTogXCJhbGxvd2xpc3RcIixcbiAqICAgICAgIGFsbG93ZWRVcmxzOiBbXCIqLmRhdGFicmlja3MuY29tXCJdLFxuICogICAgIH0pLFxuICogICBdLFxuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIFdlYlNlYXJjaFBsdWdpbiBleHRlbmRzIFBsdWdpbjxXZWJTZWFyY2hQbHVnaW5Db25maWc+IGltcGxlbWVudHMgVG9vbFByb3ZpZGVyIHtcbiAgc3RhdGljIG1hbmlmZXN0ID0ge1xuICAgIG5hbWU6IFwid2ViLXNlYXJjaFwiLFxuICAgIGRpc3BsYXlOYW1lOiBcIldlYiBTZWFyY2hcIixcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgIFwiU2VhcmNoZXMgdGhlIHdlYiB0aHJvdWdoIHRoZSBEYXRhYnJpY2tzIG5hdGl2ZSB3ZWItc2VhcmNoIHRvb2wgb24gaXRzIG93biBcIiArXG4gICAgICBcIndlYi1jYXBhYmxlIHNlcnZpbmcgZW5kcG9pbnQsIGFuZCBmZXRjaGVzIHBhZ2VzIHZpYSBnb3Qtc2NyYXBpbmcsIGJlaGluZCBhbiBcIiArXG4gICAgICBcIm9wdGlvbmFsIFVSTCBhbGxvdy1saXN0IGFuZCBwZXItdG9vbCBhcHByb3ZhbCBnYXRpbmcuXCIsXG4gICAgc3RhYmlsaXR5OiBcImJldGFcIixcbiAgICByZXNvdXJjZXM6IHtcbiAgICAgIHJlcXVpcmVkOiBbXSxcbiAgICAgIG9wdGlvbmFsOiBbU0VSVklOR19FTkRQT0lOVF9SRVNPVVJDRV0sXG4gICAgfSxcbiAgICBjb25maWc6IHsgc2NoZW1hOiBXRUJfU0VBUkNIX0NPTkZJR19TQ0hFTUEgfSxcbiAgfSBzYXRpc2ZpZXMgUGx1Z2luTWFuaWZlc3Q8XCJ3ZWItc2VhcmNoXCI+O1xuXG4gIC8qKiBSdW50aW1lIG93bmVkIGV4Y2x1c2l2ZWx5IGJ5IHRoaXMgcGx1Z2luIGluc3RhbmNlLiAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHJ1bnRpbWU6IFdlYlNlYXJjaFJ1bnRpbWUgPSBjcmVhdGVXZWJTZWFyY2hSdW50aW1lKHRoaXMuY29uZmlnLCAoZm4sIHNldHRpbmdzKSA9PlxuICAgIHRoaXMuZXhlY3V0ZShmbiwgc2V0dGluZ3MpLFxuICApO1xuXG4gIC8qKlxuICAgKiBQcm9tb3RlIHRoZSBzZXJ2aW5nIGVuZHBvaW50IHRvIGEgcmVxdWlyZWQgcmVzb3VyY2Ugb25jZSBhIGRlcGxveW1lbnRcbiAgICogcGlucyBvbmUsIHRocm91Z2ggcGx1Z2luIGNvbmZpZyBvciBlaXRoZXIgZW52aXJvbm1lbnQgbmFtZS4gTGVmdCBvcHRpb25hbFxuICAgKiBvdGhlcndpc2UsIGJlY2F1c2UgdGhlIHBsdWdpbiBwaWNrcyBhIHdlYi1zZWFyY2gtY2FwYWJsZSBlbmRwb2ludCBvdXQgb2ZcbiAgICogdGhlIGxpdmUgY2F0YWxvZ3VlIG9uIGl0cyBvd24uXG4gICAqL1xuICBzdGF0aWMgZ2V0UmVzb3VyY2VSZXF1aXJlbWVudHMoY29uZmlnOiBXZWJTZWFyY2hQbHVnaW5Db25maWcpOiBSZXNvdXJjZVJlcXVpcmVtZW50W10ge1xuICAgIGNvbnN0IHBpbm5lZCA9XG4gICAgICBzdHJpbmcudHJpbVRvTnVsbChjb25maWcubW9kZWwpID8/XG4gICAgICBzdHJpbmcudHJpbVRvTnVsbChwcm9jZXNzLmVudltNT0RFTF9FTlZdKSA/P1xuICAgICAgc3RyaW5nLnRyaW1Ub051bGwocHJvY2Vzcy5lbnZbU0VSVklOR19FTkRQT0lOVF9FTlZdKTtcbiAgICByZXR1cm4gcGlubmVkID09PSBudWxsID8gW10gOiBbeyAuLi5TRVJWSU5HX0VORFBPSU5UX1JFU09VUkNFLCByZXF1aXJlZDogdHJ1ZSB9XTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdG9vbHMgdGhpcyBwbHVnaW4gb2ZmZXJzIHRvIGFuIEFwcEtpdCBhZ2VudC4gQm90aCBhcmUgcmVhZHMgYW5kIGJvdGhcbiAgICogcnVuIHVuZGVyIHRoZSBjYWxsZXIncyBpZGVudGl0eS5cbiAgICpcbiAgICogTmVpdGhlciBpcyBgYXV0b0luaGVyaXRhYmxlYC4gYHdlYl9mZXRjaGAgcmVhY2hlcyBhIFVSTCB0aGUgbW9kZWwgY2hvc2UsXG4gICAqIHdoaWNoIGlzIHJlYWNoYWJsZSBmcm9tIGluc2lkZSB0aGUgd29ya3NwYWNlIG5ldHdvcmssIHNvIGl0IG11c3Qgb25seVxuICAgKiBhcHBlYXIgaW4gYW4gYWdlbnQgdGhhdCBhc2tlZCBmb3IgaXQgYW5kIGFjY2VwdGVkIHRoZSBVUkwgcG9saWN5IHRoYXRcbiAgICogY29tZXMgd2l0aCBpdC4gYHdlYl9zZWFyY2hgIGlzIHNhZmVyIGJ1dCBzdGlsbCBzcGVuZHMgc2VydmluZyB0b2tlbnMgb25cbiAgICogZXZlcnkgY2FsbCwgc28gaXQgaXMgb3B0LWluIGZvciBjb3N0IHJhdGhlciB0aGFuIGZvciBzYWZldHkuXG4gICAqXG4gICAqIGBleGVjdXRlYCByZS1wYXJzZXMgaXRzIGFyZ3VtZW50cyB3aXRoIHRoZSBsb2NhbCBzY2hlbWE6IEFwcEtpdCB2YWxpZGF0ZXNcbiAgICogYWdhaW5zdCB0aGUgc2FtZSBzY2hlbWEgZmlyc3QsIGJ1dCByZS1wYXJzaW5nIGlzIHdoYXQgZ2l2ZXMgdGhlIGJvZHkgdHlwZWRcbiAgICogYXJndW1lbnRzIGluc3RlYWQgb2YgYHVua25vd25gLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSB0b29sczogVG9vbFJlZ2lzdHJ5ID0ge1xuICAgIHdlYl9zZWFyY2g6IGRlZmluZVRvb2woe1xuICAgICAgZGVzY3JpcHRpb246IFdFQl9TRUFSQ0hfVE9PTF9ERVNDUklQVElPTixcbiAgICAgIHNjaGVtYTogd2ViU2VhcmNoUmVxdWVzdFNjaGVtYSxcbiAgICAgIGFubm90YXRpb25zOiB7IGVmZmVjdDogXCJyZWFkXCIsIHJlcXVpcmVzVXNlckNvbnRleHQ6IHRydWUgfSxcbiAgICAgIGF1dG9Jbmhlcml0YWJsZTogZmFsc2UsXG4gICAgICBleGVjdXRlOiBhc3luYyAoYXJncywgc2lnbmFsKSA9PiB0aGlzLnNlYXJjaCh3ZWJTZWFyY2hSZXF1ZXN0U2NoZW1hLnBhcnNlKGFyZ3MpLCBzaWduYWwpLFxuICAgIH0pLFxuICAgIHdlYl9mZXRjaDogZGVmaW5lVG9vbCh7XG4gICAgICBkZXNjcmlwdGlvbjogV0VCX0ZFVENIX1RPT0xfREVTQ1JJUFRJT04sXG4gICAgICBzY2hlbWE6IHdlYkZldGNoUmVxdWVzdFNjaGVtYSxcbiAgICAgIGFubm90YXRpb25zOiB7IGVmZmVjdDogXCJyZWFkXCIsIHJlcXVpcmVzVXNlckNvbnRleHQ6IHRydWUgfSxcbiAgICAgIGF1dG9Jbmhlcml0YWJsZTogZmFsc2UsXG4gICAgICBleGVjdXRlOiBhc3luYyAoYXJncywgc2lnbmFsKSA9PiB0aGlzLmZldGNoKHdlYkZldGNoUmVxdWVzdFNjaGVtYS5wYXJzZShhcmdzKSwgc2lnbmFsKSxcbiAgICB9KSxcbiAgfTtcblxuICAvKipcbiAgICogTG9nIHRoZSBlZmZlY3RpdmUgcG9saWN5IHNvIGFuIGFjdGl2ZSBhbGxvdy1saXN0IGFuZCBjYXBzIGFyZSBvYnZpb3VzIGF0XG4gICAqIGJvb3QuIFJ1bnRpbWUgY29uc3RydWN0aW9uIGFscmVhZHkgcmVzb2x2ZWQgY29uZmlnIGFuZCBjYXB0dXJlZCB0aGlzXG4gICAqIHBsdWdpbidzIGludGVyY2VwdG9yIGNoYWluLlxuICAgKi9cbiAgb3ZlcnJpZGUgYXN5bmMgc2V0dXAoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBjb25maWcgfSA9IHRoaXMucnVudGltZTtcbiAgICBsb2dnZXIuaW5mbyhcInJlYWR5XCIsIHtcbiAgICAgIG1vZGVsOiBjb25maWcubW9kZWwgPz8gYGZhbGxiYWNrczpbJHtjb25maWcubW9kZWxGYWxsYmFja3Muam9pbihcIiwgXCIpfV1gLFxuICAgICAgbW9kZWxTb3VyY2U6IGNvbmZpZy5tb2RlbFNvdXJjZSxcbiAgICAgIHVybFBvbGljeTogY29uZmlnLnVybFBvbGljeSxcbiAgICAgIC4uLihjb25maWcuYWxsb3dMaXN0LnJlc3RyaWN0ZWQgPyB7IGFsbG93ZWRVcmxzOiBjb25maWcuYWxsb3dMaXN0LnBhdHRlcm5zIH0gOiB7fSksXG4gICAgICBtYXhDaXRhdGlvbnM6IGNvbmZpZy5tYXhDaXRhdGlvbnMsXG4gICAgICBmZXRjaE1heExlbmd0aDogY29uZmlnLmZldGNoTWF4TGVuZ3RoLFxuICAgICAgYXBwcm92YWw6IGNvbmZpZy5hcHByb3ZhbC5tb2RlLFxuICAgICAgc2NyYXBlRmFsbGJhY2s6IGNvbmZpZy5zY3JhcGVGYWxsYmFjayxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBObyBydW50aW1lIHJlc291cmNlcyByZXF1aXJlIGRyYWluaW5nLiBUaGUgaW5zdGFuY2Utb3duZWQgY29uZmlnIGFuZFxuICAgKiBleGVjdXRvciBiZWNvbWUgdW5yZWFjaGFibGUgd2l0aCB0aGlzIHBsdWdpbi5cbiAgICovXG4gIHNodXRkb3duKCk6IHZvaWQge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKiBBYm9ydCBpbi1mbGlnaHQgd29yayBvd25lZCBieSB0aGlzIHBsdWdpbiBpbnN0YW5jZS4gKi9cbiAgb3ZlcnJpZGUgYWJvcnRBY3RpdmVPcGVyYXRpb25zKCk6IHZvaWQge1xuICAgIHN1cGVyLmFib3J0QWN0aXZlT3BlcmF0aW9ucygpO1xuICB9XG5cbiAgLyoqIEFwcEtpdCBgVG9vbFByb3ZpZGVyYDogdGhlIHRvb2wgZGVmaW5pdGlvbnMgb2ZmZXJlZCB0byBhbiBhZ2VudC4gKi9cbiAgZ2V0QWdlbnRUb29scygpOiBBZ2VudFRvb2xEZWZpbml0aW9uW10ge1xuICAgIHJldHVybiB0b29sc0Zyb21SZWdpc3RyeSh0aGlzLnRvb2xzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBLaXQgYFRvb2xQcm92aWRlcmA6IHJ1biBvbmUgdG9vbCBjYWxsLiBBcmd1bWVudHMgYXJlIHZhbGlkYXRlZCBhZ2FpbnN0XG4gICAqIHRoZSB0b29sJ3Mgc2NoZW1hIGZpcnN0LCBhbmQgYSB2YWxpZGF0aW9uIGZhaWx1cmUgY29tZXMgYmFjayBhcyBhblxuICAgKiBMTE0tZnJpZW5kbHkgc3RyaW5nIHNvIHRoZSBtb2RlbCBjYW4gY29ycmVjdCBpdHNlbGYgb24gdGhlIG5leHQgdHVybi5cbiAgICovXG4gIGFzeW5jIGV4ZWN1dGVBZ2VudFRvb2wobmFtZTogc3RyaW5nLCBhcmdzOiB1bmtub3duLCBzaWduYWw/OiBBYm9ydFNpZ25hbCk6IFByb21pc2U8dW5rbm93bj4ge1xuICAgIHJldHVybiBleGVjdXRlRnJvbVJlZ2lzdHJ5KHRoaXMudG9vbHMsIG5hbWUsIGFyZ3MsIHNpZ25hbCk7XG4gIH1cblxuICBvdmVycmlkZSBleHBvcnRzKCkge1xuICAgIHJldHVybiB7XG4gICAgICAvKipcbiAgICAgICAqIFJ1biBhIHdlYiBzZWFyY2ggZGlyZWN0bHkgKGJ5cGFzc2luZyB0aGUgYWdlbnQgdG9vbCkuIFJlc29sdmVzIHRoZVxuICAgICAgICogT0JPIGNsaWVudCBmcm9tIHRoZSBhY3RpdmUgZXhlY3V0aW9uIGNvbnRleHQgYW5kIHJlYWRzIHRoaXMgcGx1Z2luJ3NcbiAgICAgICAqIHJ1bnRpbWUgY29uZmlnLlxuICAgICAgICovXG4gICAgICBzZWFyY2g6IChyZXF1ZXN0OiBXZWJTZWFyY2hSZXF1ZXN0LCBzaWduYWw/OiBBYm9ydFNpZ25hbCk6IFByb21pc2U8V2ViU2VhcmNoUmVzdWx0PiA9PlxuICAgICAgICB0aGlzLnNlYXJjaChyZXF1ZXN0LCBzaWduYWwpLFxuICAgICAgLyoqXG4gICAgICAgKiBGZXRjaCBvbmUgVVJMIGRpcmVjdGx5IChieXBhc3NpbmcgdGhlIGFnZW50IHRvb2wpLiBFbmZvcmNlcyB0aGVcbiAgICAgICAqIGNvbmZpZ3VyZWQgVVJMIHBvbGljeS5cbiAgICAgICAqL1xuICAgICAgZmV0Y2g6IChyZXF1ZXN0OiBXZWJGZXRjaFJlcXVlc3QsIHNpZ25hbD86IEFib3J0U2lnbmFsKTogUHJvbWlzZTxXZWJGZXRjaFJlc3VsdD4gPT5cbiAgICAgICAgdGhpcy5mZXRjaChyZXF1ZXN0LCBzaWduYWwpLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNlYXJjaChyZXF1ZXN0OiBXZWJTZWFyY2hSZXF1ZXN0LCBzaWduYWw/OiBBYm9ydFNpZ25hbCk6IFByb21pc2U8V2ViU2VhcmNoUmVzdWx0PiB7XG4gICAgcmV0dXJuIHJ1bldlYlNlYXJjaChyZXF1ZXN0LCB0aGlzLnJ1bnRpbWUsIGF3YWl0IHJlc29sdmVXZWJTZWFyY2hDb250ZXh0KCksIHNpZ25hbCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGZldGNoKHJlcXVlc3Q6IFdlYkZldGNoUmVxdWVzdCwgc2lnbmFsPzogQWJvcnRTaWduYWwpOiBQcm9taXNlPFdlYkZldGNoUmVzdWx0PiB7XG4gICAgcmV0dXJuIHJ1bldlYkZldGNoKHJlcXVlc3QsIHRoaXMucnVudGltZSwgc2lnbmFsKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlZ2lzdGVyIHRoZSB3ZWItc2VhcmNoIHJ1bnRpbWUgd2l0aCBBcHBLaXQuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBjcmVhdGVBcHAsIHNlcnZlciB9IGZyb20gXCJAZGF0YWJyaWNrcy9hcHBraXRcIjtcbiAqIGltcG9ydCB7IHBsdWdpbiBhcyB3ZWJTZWFyY2hQbHVnaW4gfSBmcm9tIFwiQGRieC10b29scy9hcHBraXQtd2ViLXNlYXJjaFwiO1xuICogaW1wb3J0IHsgYWdlbnRzLCBwbHVnaW4gYXMgbWFzdHJhUGx1Z2luIH0gZnJvbSBcIkBkYngtdG9vbHMvYXBwa2l0LW1hc3RyYVwiO1xuICpcbiAqIGNvbnN0IHJlc2VhcmNoZXIgPSBhZ2VudHMuY3JlYXRlQWdlbnQoe1xuICogICBpbnN0cnVjdGlvbnM6IFwiUmVzZWFyY2ggcXVlc3Rpb25zIHdpdGggd2ViX3NlYXJjaCwgdGhlbiByZWFkIHNvdXJjZXMgd2l0aCB3ZWJfZmV0Y2guXCIsXG4gKiAgIGFzeW5jIHRvb2xzKHBsdWdpbnMpIHtcbiAqICAgICByZXR1cm4geyAuLi4oYXdhaXQgcGx1Z2luc1tcIndlYi1zZWFyY2hcIl0udG9vbGtpdCgpKSB9O1xuICogICB9LFxuICogfSk7XG4gKlxuICogYXdhaXQgY3JlYXRlQXBwKHtcbiAqICAgcGx1Z2luczogW1xuICogICAgIHNlcnZlcigpLFxuICogICAgIHdlYlNlYXJjaFBsdWdpbi53ZWJTZWFyY2goeyBtb2RlbDogXCJnZW1pbmlcIiB9KSxcbiAqICAgICBtYXN0cmFQbHVnaW4ubWFzdHJhKHsgYWdlbnRzOiByZXNlYXJjaGVyIH0pLFxuICogICBdLFxuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IHdlYlNlYXJjaCA9IHRvUGx1Z2luKFdlYlNlYXJjaFBsdWdpbik7XG4iXX0=
209
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQ0wsWUFBWSxFQUNaLFFBQVEsR0FHVCxNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxVQUFVLEVBQXFCLE1BQU0seUJBQXlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQ0wsU0FBUyxFQUNULG9CQUFvQixFQUNwQix3QkFBd0IsR0FFekIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN6QyxPQUFPLEVBQUUsc0JBQXNCLEVBQXlCLE1BQU0sY0FBYyxDQUFDO0FBQzdFLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsc0JBQXNCLEVBQ3RCLDBCQUEwQixFQUMxQiwyQkFBMkIsR0FDNUIsTUFBTSxhQUFhLENBQUM7QUFPckIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVwRSxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBRXhDOzs7Ozs7R0FNRztBQUNILE1BQU0seUJBQXlCLEdBQUc7SUFDaEMsSUFBSSxFQUFFLFlBQVksQ0FBQyxnQkFBZ0I7SUFDbkMsS0FBSyxFQUFFLHFCQUFxQjtJQUM1QixXQUFXLEVBQUUscUJBQXFCO0lBQ2xDLFdBQVcsRUFDVCx5RkFBeUY7UUFDekYsb0VBQW9FO0lBQ3RFLFVBQVUsRUFBRSxXQUFXO0lBQ3ZCLE1BQU0sRUFBRTtRQUNOLElBQUksRUFBRTtZQUNKLEdBQUcsRUFBRSxvQkFBb0I7WUFDekIs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LEVBQUUsTUFBb0I7UUFDaEUsT0FBTyxXQUFXLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDcEQsQ0FBQzs7QUFHSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0JHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQXBwS2l0IHBsdWdpbiAocmVnaXN0ZXJlZCBuYW1lOiBgd2ViLXNlYXJjaGApIHRoYXQgb3ducyB0aGUgcmVzb2x2ZWRcbiAqIHdlYi1zZWFyY2ggcnVudGltZSAtIHRoZSBVUkwgcG9saWN5LCByZXN1bHQgLyBsZW5ndGggY2FwcywgdGltZW91dCwgYW5kXG4gKiBkZWZhdWx0IGFwcHJvdmFsIGdhdGUgaXRzIHRvb2xzIHJlYWQuIFJlZ2lzdGVyaW5nIGl0IHJlc29sdmVzIGFuZCBsb2dzIHRoZVxuICogZWZmZWN0aXZlIGNvbmZpZyAod2hpY2ggVVJMIHBvbGljeSBpcyBpbiBmb3JjZSwgdGhlIGNhcHMpIHNvIGFcbiAqIG1pc2NvbmZpZ3VyYXRpb24gaXMgdmlzaWJsZSBpbiB0aGUgYm9vdCBsb2dzIHJhdGhlciB0aGFuIG9uIHRoZSBmaXJzdFxuICogc2VhcmNoLiBUaGUgcGx1Z2luJ3MgYGV4ZWN1dGUoKWAgaXMgY2FwdHVyZWQgYnkgaXRzIG93biBydW50aW1lIHNvIGV2ZXJ5XG4gKiBvdXRib3VuZCBjYWxsIHBpY2tzIHVwIEFwcEtpdCdzIGNhY2hlIC8gcmV0cnkgLyB0aW1lb3V0IC8gdGVsZW1ldHJ5IGNoYWluLlxuICpcbiAqIFRoZSBwbHVnaW4gYWxzbyBpbXBsZW1lbnRzIEFwcEtpdCdzIGBUb29sUHJvdmlkZXJgLCBzbyBhbiBBcHBLaXQgYWdlbnQgZ2V0c1xuICogYHdlYl9zZWFyY2hgIC8gYHdlYl9mZXRjaGAgd2l0aG91dCBnb2luZyB0aHJvdWdoIE1hc3RyYS4gQXBwLWludGVncmF0ZWRcbiAqIE1hc3RyYSBhZ2VudHMgY29uc3VtZSB0aGlzIHByb3ZpZGVyIHRocm91Z2ggYHBsdWdpbnNbXCJ3ZWItc2VhcmNoXCJdLnRvb2xraXQoKWA7XG4gKiBzdGFuZGFsb25lIGZhY3RvcmllcyBpbiBgdG9vbC50c2AgdXNlIHRoZWlyIG93biBleHBsaWNpdCBydW50aW1lIG9yIGNvbmZpZy5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHtcbiAgUmVzb3VyY2VUeXBlLFxuICB0b1BsdWdpbixcbiAgdHlwZSBQbHVnaW5NYW5pZmVzdCxcbiAgdHlwZSBSZXNvdXJjZVJlcXVpcmVtZW50LFxufSBmcm9tIFwiQGRhdGFicmlja3MvYXBwa2l0XCI7XG5pbXBvcnQgeyBkZWZpbmVUb29sLCB0eXBlIFRvb2xSZWdpc3RyeSB9IGZyb20gXCJAZGF0YWJyaWNrcy9hcHBraXQvYmV0YVwiO1xuaW1wb3J0IHsgVG9vbFJlZ2lzdHJ5UGx1Z2luIH0gZnJvbSBcIkBkYngtdG9vbHMvYXBwa2l0XCI7XG5pbXBvcnQgeyBsb2csIHN0cmluZ1V0aWxzIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcbmltcG9ydCB7XG4gIE1PREVMX0VOVixcbiAgU0VSVklOR19FTkRQT0lOVF9FTlYsXG4gIFdFQl9TRUFSQ0hfQ09ORklHX1NDSEVNQSxcbiAgdHlwZSBXZWJTZWFyY2hQbHVnaW5Db25maWcsXG59IGZyb20gXCIuL2NvbmZpZy50c1wiO1xuaW1wb3J0IHsgcnVuV2ViRmV0Y2ggfSBmcm9tIFwiLi9mZXRjaC50c1wiO1xuaW1wb3J0IHsgY3JlYXRlV2ViU2VhcmNoUnVudGltZSwgdHlwZSBXZWJTZWFyY2hSdW50aW1lIH0gZnJvbSBcIi4vcnVudGltZS50c1wiO1xuaW1wb3J0IHtcbiAgd2ViRmV0Y2hSZXF1ZXN0U2NoZW1hLFxuICB3ZWJTZWFyY2hSZXF1ZXN0U2NoZW1hLFxuICBXRUJfRkVUQ0hfVE9PTF9ERVNDUklQVElPTixcbiAgV0VCX1NFQVJDSF9UT09MX0RFU0NSSVBUSU9OLFxufSBmcm9tIFwiLi9zY2hlbWEudHNcIjtcbmltcG9ydCB0eXBlIHtcbiAgV2ViRmV0Y2hSZXF1ZXN0LFxuICBXZWJGZXRjaFJlc3VsdCxcbiAgV2ViU2VhcmNoUmVxdWVzdCxcbiAgV2ViU2VhcmNoUmVzdWx0LFxufSBmcm9tIFwiLi9zY2hlbWEudHNcIjtcbmltcG9ydCB7IHJlc29sdmVXZWJTZWFyY2hDb250ZXh0LCBydW5XZWJTZWFyY2ggfSBmcm9tIFwiLi9zZWFyY2gudHNcIjtcblxuY29uc3QgbG9nZ2VyID0gbG9nLmxvZ2dlcihcIndlYi1zZWFyY2hcIik7XG5cbi8qKlxuICogVGhlIE1vZGVsIFNlcnZpbmcgZW5kcG9pbnQgdGhlIG5hdGl2ZSB3ZWItc2VhcmNoIHRvb2wgcnVucyBvbi4gRGVjbGFyZWRcbiAqIG9wdGlvbmFsIGJlY2F1c2UgdGhlIHBsdWdpbiByZXNvbHZlcyBhIHdlYi1zZWFyY2gtY2FwYWJsZSBlbmRwb2ludCBmcm9tIHRoZVxuICogbGl2ZSBjYXRhbG9ndWUgd2hlbiBub3RoaW5nIGlzIHBpbm5lZDsge0BsaW5rIFdlYlNlYXJjaFBsdWdpbi5nZXRSZXNvdXJjZVJlcXVpcmVtZW50c31cbiAqIHByb21vdGVzIGl0IHRvIHJlcXVpcmVkIG9uY2UgYSBkZXBsb3ltZW50IG5hbWVzIG9uZS4gYENBTl9RVUVSWWAgaXMgdGhlXG4gKiB3ZWFrZXN0IHBlcm1pc3Npb24gdGhhdCBjYW4gaW52b2tlIGFuIGVuZHBvaW50LlxuICovXG5jb25zdCBTRVJWSU5HX0VORFBPSU5UX1JFU09VUkNFID0ge1xuICB0eXBlOiBSZXNvdXJjZVR5cGUuU0VSVklOR19FTkRQT0lOVCxcbiAgYWxpYXM6IFwiV2ViIFNlYXJjaCBFbmRwb2ludFwiLFxuICByZXNvdXJjZUtleTogXCJ3ZWItc2VhcmNoLWVuZHBvaW50XCIsXG4gIGRlc2NyaXB0aW9uOlxuICAgIFwiTW9kZWwgU2VydmluZyBlbmRwb2ludCBydW5uaW5nIHRoZSBuYXRpdmUgd2ViLXNlYXJjaCB0b29sLiBPcHRpb25hbDogcmVzb2x2ZWQgZnJvbSB0aGUgXCIgK1xuICAgIFwid29ya3NwYWNlIGNhdGFsb2d1ZSAoR2VtaW5pLCB0aGVuIEdQVCkgd2hlbiBubyBlbmRwb2ludCBpcyBwaW5uZWQuXCIsXG4gIHBlcm1pc3Npb246IFwiQ0FOX1FVRVJZXCIsXG4gIGZpZWxkczoge1xuICAgIG5hbWU6IHtcbiAgICAgIGVudjogU0VSVklOR19FTkRQT0lOVF9FTlYsXG4gICAgICBkZXNjcmlwdGlvbjogYFNlcnZpbmcgZW5kcG9pbnQgbmFtZSBmb3Igd2ViIHNlYXJjaC4gJHtNT0RFTF9FTlZ9IG92ZXJyaWRlcyBpdC5gLFxuICAgICAgZGlzY292ZXJ5OiB7XG4gICAgICAgIHR5cGU6IFwiY2xpXCIsXG4gICAgICAgIGNsaUNvbW1hbmQ6IFwiZGF0YWJyaWNrcyBzZXJ2aW5nLWVuZHBvaW50cyBsaXN0IC0tcHJvZmlsZSA8UFJPRklMRT4gLS1vdXRwdXQganNvblwiLFxuICAgICAgICBzZWxlY3RGaWVsZDogXCIubmFtZVwiLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxufSBzYXRpc2ZpZXMgT21pdDxSZXNvdXJjZVJlcXVpcmVtZW50LCBcInJlcXVpcmVkXCI+O1xuXG4vKipcbiAqIEFwcEtpdCBwbHVnaW4gdGhhdCByZXNvbHZlcyBhbmQgaG9sZHMgdGhlIHdlYi1zZWFyY2ggcnVudGltZSBjb25maWcgdXNlZFxuICogYnkgdGhlIGB3ZWJfc2VhcmNoYCAvIGB3ZWJfZmV0Y2hgIHRvb2xzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgY3JlYXRlQXBwLCBzZXJ2ZXIgfSBmcm9tIFwiQGRhdGFicmlja3MvYXBwa2l0XCI7XG4gKiBpbXBvcnQgeyB3ZWJTZWFyY2ggfSBmcm9tIFwiQGRieC10b29scy9hcHBraXQtd2ViLXNlYXJjaFwiO1xuICpcbiAqIGF3YWl0IGNyZWF0ZUFwcCh7XG4gKiAgIHBsdWdpbnM6IFtcbiAqICAgICBzZXJ2ZXIoKSxcbiAqICAgICB3ZWJTZWFyY2goe1xuICogICAgICAgbW9kZWw6IFwiZ2VtaW5pXCIsXG4gKiAgICAgICB1cmxQb2xpY3k6IFwiYWxsb3dsaXN0XCIsXG4gKiAgICAgICBhbGxvd2VkVXJsczogW1wiKi5kYXRhYnJpY2tzLmNvbVwiXSxcbiAqICAgICB9KSxcbiAqICAgXSxcbiAqIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBXZWJTZWFyY2hQbHVnaW4gZXh0ZW5kcyBUb29sUmVnaXN0cnlQbHVnaW48V2ViU2VhcmNoUGx1Z2luQ29uZmlnPiB7XG4gIHN0YXRpYyBtYW5pZmVzdCA9IHtcbiAgICBuYW1lOiBcIndlYi1zZWFyY2hcIixcbiAgICBkaXNwbGF5TmFtZTogXCJXZWIgU2VhcmNoXCIsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICBcIlNlYXJjaGVzIHRoZSB3ZWIgdGhyb3VnaCB0aGUgRGF0YWJyaWNrcyBuYXRpdmUgd2ViLXNlYXJjaCB0b29sIG9uIGl0cyBvd24gXCIgK1xuICAgICAgXCJ3ZWItY2FwYWJsZSBzZXJ2aW5nIGVuZHBvaW50LCBhbmQgZmV0Y2hlcyBwYWdlcyB2aWEgZ290LXNjcmFwaW5nLCBiZWhpbmQgYW4gXCIgK1xuICAgICAgXCJvcHRpb25hbCBVUkwgYWxsb3ctbGlzdCBhbmQgcGVyLXRvb2wgYXBwcm92YWwgZ2F0aW5nLlwiLFxuICAgIHN0YWJpbGl0eTogXCJiZXRhXCIsXG4gICAgcmVzb3VyY2VzOiB7XG4gICAgICByZXF1aXJlZDogW10sXG4gICAgICBvcHRpb25hbDogW1NFUlZJTkdfRU5EUE9JTlRfUkVTT1VSQ0VdLFxuICAgIH0sXG4gICAgY29uZmlnOiB7IHNjaGVtYTogV0VCX1NFQVJDSF9DT05GSUdfU0NIRU1BIH0sXG4gIH0gc2F0aXNmaWVzIFBsdWdpbk1hbmlmZXN0PFwid2ViLXNlYXJjaFwiPjtcblxuICAvKiogUnVudGltZSBvd25lZCBleGNsdXNpdmVseSBieSB0aGlzIHBsdWdpbiBpbnN0YW5jZS4gKi9cbiAgcHJpdmF0ZSByZWFkb25seSBydW50aW1lOiBXZWJTZWFyY2hSdW50aW1lID0gY3JlYXRlV2ViU2VhcmNoUnVudGltZSh0aGlzLmNvbmZpZywgKGZuLCBzZXR0aW5ncykgPT5cbiAgICB0aGlzLmV4ZWN1dGUoZm4sIHNldHRpbmdzKSxcbiAgKTtcblxuICAvKipcbiAgICogUHJvbW90ZSB0aGUgc2VydmluZyBlbmRwb2ludCB0byBhIHJlcXVpcmVkIHJlc291cmNlIG9uY2UgYSBkZXBsb3ltZW50XG4gICAqIHBpbnMgb25lLCB0aHJvdWdoIHBsdWdpbiBjb25maWcgb3IgZWl0aGVyIGVudmlyb25tZW50IG5hbWUuIExlZnQgb3B0aW9uYWxcbiAgICogb3RoZXJ3aXNlLCBiZWNhdXNlIHRoZSBwbHVnaW4gcGlja3MgYSB3ZWItc2VhcmNoLWNhcGFibGUgZW5kcG9pbnQgb3V0IG9mXG4gICAqIHRoZSBsaXZlIGNhdGFsb2d1ZSBvbiBpdHMgb3duLlxuICAgKi9cbiAgc3RhdGljIGdldFJlc291cmNlUmVxdWlyZW1lbnRzKGNvbmZpZzogV2ViU2VhcmNoUGx1Z2luQ29uZmlnKTogUmVzb3VyY2VSZXF1aXJlbWVudFtdIHtcbiAgICBjb25zdCBwaW5uZWQgPVxuICAgICAgc3RyaW5nVXRpbHMudHJpbVRvTnVsbChjb25maWcubW9kZWwpID8/XG4gICAgICBzdHJpbmdVdGlscy50cmltVG9OdWxsKHByb2Nlc3MuZW52W01PREVMX0VOVl0pID8/XG4gICAgICBzdHJpbmdVdGlscy50cmltVG9OdWxsKHByb2Nlc3MuZW52W1NFUlZJTkdfRU5EUE9JTlRfRU5WXSk7XG4gICAgcmV0dXJuIHBpbm5lZCA9PT0gbnVsbCA/IFtdIDogW3sgLi4uU0VSVklOR19FTkRQT0lOVF9SRVNPVVJDRSwgcmVxdWlyZWQ6IHRydWUgfV07XG4gIH1cblxuICAvKipcbiAgICogVGhlIHRvb2xzIHRoaXMgcGx1Z2luIG9mZmVycyB0byBhbiBBcHBLaXQgYWdlbnQuIEJvdGggYXJlIHJlYWRzIGFuZCBib3RoXG4gICAqIHJ1biB1bmRlciB0aGUgY2FsbGVyJ3MgaWRlbnRpdHkuXG4gICAqXG4gICAqIE5laXRoZXIgaXMgYGF1dG9Jbmhlcml0YWJsZWAuIGB3ZWJfZmV0Y2hgIHJlYWNoZXMgYSBVUkwgdGhlIG1vZGVsIGNob3NlLFxuICAgKiB3aGljaCBpcyByZWFjaGFibGUgZnJvbSBpbnNpZGUgdGhlIHdvcmtzcGFjZSBuZXR3b3JrLCBzbyBpdCBtdXN0IG9ubHlcbiAgICogYXBwZWFyIGluIGFuIGFnZW50IHRoYXQgYXNrZWQgZm9yIGl0IGFuZCBhY2NlcHRlZCB0aGUgVVJMIHBvbGljeSB0aGF0XG4gICAqIGNvbWVzIHdpdGggaXQuIGB3ZWJfc2VhcmNoYCBpcyBzYWZlciBidXQgc3RpbGwgc3BlbmRzIHNlcnZpbmcgdG9rZW5zIG9uXG4gICAqIGV2ZXJ5IGNhbGwsIHNvIGl0IGlzIG9wdC1pbiBmb3IgY29zdCByYXRoZXIgdGhhbiBmb3Igc2FmZXR5LlxuICAgKlxuICAgKiBgZXhlY3V0ZWAgcmUtcGFyc2VzIGl0cyBhcmd1bWVudHMgd2l0aCB0aGUgbG9jYWwgc2NoZW1hOiBBcHBLaXQgdmFsaWRhdGVzXG4gICAqIGFnYWluc3QgdGhlIHNhbWUgc2NoZW1hIGZpcnN0LCBidXQgcmUtcGFyc2luZyBpcyB3aGF0IGdpdmVzIHRoZSBib2R5IHR5cGVkXG4gICAqIGFyZ3VtZW50cyBpbnN0ZWFkIG9mIGB1bmtub3duYC5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSB0b29sUmVnaXN0cnk6IFRvb2xSZWdpc3RyeSA9IHtcbiAgICB3ZWJfc2VhcmNoOiBkZWZpbmVUb29sKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBXRUJfU0VBUkNIX1RPT0xfREVTQ1JJUFRJT04sXG4gICAgICBzY2hlbWE6IHdlYlNlYXJjaFJlcXVlc3RTY2hlbWEsXG4gICAgICBhbm5vdGF0aW9uczogeyBlZmZlY3Q6IFwicmVhZFwiLCByZXF1aXJlc1VzZXJDb250ZXh0OiB0cnVlIH0sXG4gICAgICBhdXRvSW5oZXJpdGFibGU6IGZhbHNlLFxuICAgICAgZXhlY3V0ZTogYXN5bmMgKGFyZ3MsIHNpZ25hbCkgPT4gdGhpcy5zZWFyY2god2ViU2VhcmNoUmVxdWVzdFNjaGVtYS5wYXJzZShhcmdzKSwgc2lnbmFsKSxcbiAgICB9KSxcbiAgICB3ZWJfZmV0Y2g6IGRlZmluZVRvb2woe1xuICAgICAgZGVzY3JpcHRpb246IFdFQl9GRVRDSF9UT09MX0RFU0NSSVBUSU9OLFxuICAgICAgc2NoZW1hOiB3ZWJGZXRjaFJlcXVlc3RTY2hlbWEsXG4gICAgICBhbm5vdGF0aW9uczogeyBlZmZlY3Q6IFwicmVhZFwiLCByZXF1aXJlc1VzZXJDb250ZXh0OiB0cnVlIH0sXG4gICAgICBhdXRvSW5oZXJpdGFibGU6IGZhbHNlLFxuICAgICAgZXhlY3V0ZTogYXN5bmMgKGFyZ3MsIHNpZ25hbCkgPT4gdGhpcy5mZXRjaCh3ZWJGZXRjaFJlcXVlc3RTY2hlbWEucGFyc2UoYXJncyksIHNpZ25hbCksXG4gICAgfSksXG4gIH07XG5cbiAgLyoqXG4gICAqIExvZyB0aGUgZWZmZWN0aXZlIHBvbGljeSBzbyBhbiBhY3RpdmUgYWxsb3ctbGlzdCBhbmQgY2FwcyBhcmUgb2J2aW91cyBhdFxuICAgKiBib290LiBSdW50aW1lIGNvbnN0cnVjdGlvbiBhbHJlYWR5IHJlc29sdmVkIGNvbmZpZyBhbmQgY2FwdHVyZWQgdGhpc1xuICAgKiBwbHVnaW4ncyBpbnRlcmNlcHRvciBjaGFpbi5cbiAgICovXG4gIG92ZXJyaWRlIGFzeW5jIHNldHVwKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgY29uZmlnIH0gPSB0aGlzLnJ1bnRpbWU7XG4gICAgbG9nZ2VyLmluZm8oXCJyZWFkeVwiLCB7XG4gICAgICBtb2RlbDogY29uZmlnLm1vZGVsID8/IGBmYWxsYmFja3M6WyR7Y29uZmlnLm1vZGVsRmFsbGJhY2tzLmpvaW4oXCIsIFwiKX1dYCxcbiAgICAgIG1vZGVsU291cmNlOiBjb25maWcubW9kZWxTb3VyY2UsXG4gICAgICB1cmxQb2xpY3k6IGNvbmZpZy51cmxQb2xpY3ksXG4gICAgICAuLi4oY29uZmlnLmFsbG93TGlzdC5yZXN0cmljdGVkID8geyBhbGxvd2VkVXJsczogY29uZmlnLmFsbG93TGlzdC5wYXR0ZXJucyB9IDoge30pLFxuICAgICAgbWF4Q2l0YXRpb25zOiBjb25maWcubWF4Q2l0YXRpb25zLFxuICAgICAgZmV0Y2hNYXhMZW5ndGg6IGNvbmZpZy5mZXRjaE1heExlbmd0aCxcbiAgICAgIGFwcHJvdmFsOiBjb25maWcuYXBwcm92YWwubW9kZSxcbiAgICAgIHNjcmFwZUZhbGxiYWNrOiBjb25maWcuc2NyYXBlRmFsbGJhY2ssXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTm8gcnVudGltZSByZXNvdXJjZXMgcmVxdWlyZSBkcmFpbmluZy4gVGhlIGluc3RhbmNlLW93bmVkIGNvbmZpZyBhbmRcbiAgICogZXhlY3V0b3IgYmVjb21lIHVucmVhY2hhYmxlIHdpdGggdGhpcyBwbHVnaW4uXG4gICAqL1xuICBzaHV0ZG93bigpOiB2b2lkIHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKiogQWJvcnQgaW4tZmxpZ2h0IHdvcmsgb3duZWQgYnkgdGhpcyBwbHVnaW4gaW5zdGFuY2UuICovXG4gIG92ZXJyaWRlIGFib3J0QWN0aXZlT3BlcmF0aW9ucygpOiB2b2lkIHtcbiAgICBzdXBlci5hYm9ydEFjdGl2ZU9wZXJhdGlvbnMoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGV4cG9ydHMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC8qKlxuICAgICAgICogUnVuIGEgd2ViIHNlYXJjaCBkaXJlY3RseSAoYnlwYXNzaW5nIHRoZSBhZ2VudCB0b29sKS4gUmVzb2x2ZXMgdGhlXG4gICAgICAgKiBPQk8gY2xpZW50IGZyb20gdGhlIGFjdGl2ZSBleGVjdXRpb24gY29udGV4dCBhbmQgcmVhZHMgdGhpcyBwbHVnaW4nc1xuICAgICAgICogcnVudGltZSBjb25maWcuXG4gICAgICAgKi9cbiAgICAgIHNlYXJjaDogKHJlcXVlc3Q6IFdlYlNlYXJjaFJlcXVlc3QsIHNpZ25hbD86IEFib3J0U2lnbmFsKTogUHJvbWlzZTxXZWJTZWFyY2hSZXN1bHQ+ID0+XG4gICAgICAgIHRoaXMuc2VhcmNoKHJlcXVlc3QsIHNpZ25hbCksXG4gICAgICAvKipcbiAgICAgICAqIEZldGNoIG9uZSBVUkwgZGlyZWN0bHkgKGJ5cGFzc2luZyB0aGUgYWdlbnQgdG9vbCkuIEVuZm9yY2VzIHRoZVxuICAgICAgICogY29uZmlndXJlZCBVUkwgcG9saWN5LlxuICAgICAgICovXG4gICAgICBmZXRjaDogKHJlcXVlc3Q6IFdlYkZldGNoUmVxdWVzdCwgc2lnbmFsPzogQWJvcnRTaWduYWwpOiBQcm9taXNlPFdlYkZldGNoUmVzdWx0PiA9PlxuICAgICAgICB0aGlzLmZldGNoKHJlcXVlc3QsIHNpZ25hbCksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc2VhcmNoKHJlcXVlc3Q6IFdlYlNlYXJjaFJlcXVlc3QsIHNpZ25hbD86IEFib3J0U2lnbmFsKTogUHJvbWlzZTxXZWJTZWFyY2hSZXN1bHQ+IHtcbiAgICByZXR1cm4gcnVuV2ViU2VhcmNoKHJlcXVlc3QsIHRoaXMucnVudGltZSwgYXdhaXQgcmVzb2x2ZVdlYlNlYXJjaENvbnRleHQoKSwgc2lnbmFsKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZmV0Y2gocmVxdWVzdDogV2ViRmV0Y2hSZXF1ZXN0LCBzaWduYWw/OiBBYm9ydFNpZ25hbCk6IFByb21pc2U8V2ViRmV0Y2hSZXN1bHQ+IHtcbiAgICByZXR1cm4gcnVuV2ViRmV0Y2gocmVxdWVzdCwgdGhpcy5ydW50aW1lLCBzaWduYWwpO1xuICB9XG59XG5cbi8qKlxuICogUmVnaXN0ZXIgdGhlIHdlYi1zZWFyY2ggcnVudGltZSB3aXRoIEFwcEtpdC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGltcG9ydCB7IGNyZWF0ZUFwcCwgc2VydmVyIH0gZnJvbSBcIkBkYXRhYnJpY2tzL2FwcGtpdFwiO1xuICogaW1wb3J0IHsgd2ViU2VhcmNoIH0gZnJvbSBcIkBkYngtdG9vbHMvYXBwa2l0LXdlYi1zZWFyY2hcIjtcbiAqIGltcG9ydCB7IGFnZW50cywgbWFzdHJhIH0gZnJvbSBcIkBkYngtdG9vbHMvYXBwa2l0LW1hc3RyYVwiO1xuICpcbiAqIGNvbnN0IHJlc2VhcmNoZXIgPSBhZ2VudHMuY3JlYXRlQWdlbnQoe1xuICogICBpbnN0cnVjdGlvbnM6IFwiUmVzZWFyY2ggcXVlc3Rpb25zIHdpdGggd2ViX3NlYXJjaCwgdGhlbiByZWFkIHNvdXJjZXMgd2l0aCB3ZWJfZmV0Y2guXCIsXG4gKiAgIGFzeW5jIHRvb2xzKHBsdWdpbnMpIHtcbiAqICAgICByZXR1cm4geyAuLi4oYXdhaXQgcGx1Z2luc1tcIndlYi1zZWFyY2hcIl0udG9vbGtpdCgpKSB9O1xuICogICB9LFxuICogfSk7XG4gKlxuICogYXdhaXQgY3JlYXRlQXBwKHtcbiAqICAgcGx1Z2luczogW1xuICogICAgIHNlcnZlcigpLFxuICogICAgIHdlYlNlYXJjaCh7IG1vZGVsOiBcImdlbWluaVwiIH0pLFxuICogICAgIG1hc3RyYSh7IGFnZW50czogcmVzZWFyY2hlciB9KSxcbiAqICAgXSxcbiAqIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCB3ZWJTZWFyY2ggPSB0b1BsdWdpbihXZWJTZWFyY2hQbHVnaW4pO1xuIl19
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * @module
9
9
  */
10
- import { type ExecutionResult } from "@databricks/appkit";
10
+ import type { ExecutionResult } from "@databricks/appkit";
11
11
  import { type ResolvedWebSearchConfig, type WebSearchPluginConfig } from "./config.ts";
12
12
  import type { WebSearchExecutionSettings } from "./defaults.ts";
13
13
  /**
@@ -29,26 +29,8 @@ export declare function createWebSearchRuntime(overrides?: WebSearchPluginConfig
29
29
  export declare function createResolvedWebSearchRuntime(config: ResolvedWebSearchConfig, execute?: WebSearchExecutor): WebSearchRuntime;
30
30
  /** Normalize an explicit runtime or legacy resolved config for one operation. */
31
31
  export declare function toWebSearchRuntime(input: WebSearchRuntimeInput): WebSearchRuntime;
32
- /**
33
- * Build an isolated standalone runtime.
34
- *
35
- * @deprecated Use {@link createWebSearchRuntime}. This compatibility helper
36
- * returns a new runtime on every call and never reads or updates plugin state.
37
- */
38
- export declare function getWebSearchRuntime(overrides?: WebSearchPluginConfig): WebSearchRuntime;
39
32
  /** Install an executor on an explicit runtime. */
40
33
  export declare function setWebSearchExecutor(runtime: WebSearchRuntime, execute: WebSearchExecutor): void;
41
- /**
42
- * @deprecated Process-global executor registration is no longer supported.
43
- * Pass a runtime as the first argument or provide the executor to
44
- * {@link createWebSearchRuntime}.
45
- */
46
- export declare function setWebSearchExecutor(execute: WebSearchExecutor): never;
47
- /**
48
- * @deprecated Plugin runtimes are instance-owned and need no global reset.
49
- * This compatibility helper is intentionally a no-op.
50
- */
51
- export declare function resetWebSearchRuntime(): void;
52
34
  /**
53
35
  * Run one idempotent read through the runtime executor and unwrap it.
54
36
  *
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * @module
9
9
  */
10
- import { ExecutionError } from "@databricks/appkit";
10
+ import { pluginExecution } from "@dbx-tools/appkit";
11
11
  import { execution, log } from "@dbx-tools/shared-core";
12
12
  import { resolveWebSearchConfig, } from "./config.js";
13
13
  const logger = log.logger("web-search/runtime");
@@ -29,29 +29,9 @@ export function createResolvedWebSearchRuntime(config, execute = directExecute)
29
29
  export function toWebSearchRuntime(input) {
30
30
  return "execute" in input ? input : createResolvedWebSearchRuntime(input);
31
31
  }
32
- /**
33
- * Build an isolated standalone runtime.
34
- *
35
- * @deprecated Use {@link createWebSearchRuntime}. This compatibility helper
36
- * returns a new runtime on every call and never reads or updates plugin state.
37
- */
38
- export function getWebSearchRuntime(overrides) {
39
- return createWebSearchRuntime(overrides);
40
- }
41
- export function setWebSearchExecutor(runtimeOrExecute, execute) {
42
- if (typeof runtimeOrExecute === "function") {
43
- throw new TypeError("setWebSearchExecutor requires an explicit runtime; use createWebSearchRuntime(config, executor)");
44
- }
45
- if (!execute)
46
- throw new TypeError("setWebSearchExecutor requires an executor");
47
- runtimeOrExecute.execute = execute;
48
- }
49
- /**
50
- * @deprecated Plugin runtimes are instance-owned and need no global reset.
51
- * This compatibility helper is intentionally a no-op.
52
- */
53
- export function resetWebSearchRuntime() {
54
- return;
32
+ /** Install an executor on an explicit runtime. */
33
+ export function setWebSearchExecutor(runtime, execute) {
34
+ runtime.execute = execute;
55
35
  }
56
36
  /**
57
37
  * Run one idempotent read through the runtime executor and unwrap it.
@@ -64,23 +44,14 @@ export function resetWebSearchRuntime() {
64
44
  * interceptor supplies so either one unwinds the I/O.
65
45
  */
66
46
  export async function executeRead(runtime, operation, settings, fn, signal) {
67
- return execution.run({
47
+ return pluginExecution.runPluginExecution({
48
+ plugin: "web-search",
49
+ logger,
68
50
  operation,
69
51
  settings,
70
52
  execute: runtime.execute,
71
53
  fn,
72
54
  signal,
73
- canceled: ExecutionError.canceled,
74
- failed: (failure) => {
75
- logger.warn("execution-failed", {
76
- operation: failure.operation,
77
- status: failure.status,
78
- error: failure.message,
79
- });
80
- return new ExecutionError(`web-search: ${failure.operation} failed`, {
81
- context: { operation: failure.operation, status: failure.status },
82
- });
83
- },
84
55
  });
85
56
  }
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydW50aW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFFLGNBQWMsRUFBd0IsTUFBTSxvQkFBb0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFDTCxzQkFBc0IsR0FHdkIsTUFBTSxhQUFhLENBQUM7QUFHckIsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0FBcUJoRDs7OztHQUlHO0FBQ0gsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDLGNBQWMsRUFBOEIsQ0FBQztBQUU3RSxnRkFBZ0Y7QUFDaEYsTUFBTSxVQUFVLHNCQUFzQixDQUNwQyxTQUFpQyxFQUNqQyxVQUE2QixhQUFhO0lBRTFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsc0JBQXNCLENBQUMsU0FBUyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUM7QUFDaEUsQ0FBQztBQUVELDRFQUE0RTtBQUM1RSxNQUFNLFVBQVUsOEJBQThCLENBQzVDLE1BQStCLEVBQy9CLFVBQTZCLGFBQWE7SUFFMUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQztBQUM3QixDQUFDO0FBRUQsaUZBQWlGO0FBQ2pGLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxLQUE0QjtJQUM3RCxPQUFPLFNBQVMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsOEJBQThCLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDNUUsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUFDLFNBQWlDO0lBQ25FLE9BQU8sc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDM0MsQ0FBQztBQVVELE1BQU0sVUFBVSxvQkFBb0IsQ0FDbEMsZ0JBQXNELEVBQ3RELE9BQTJCO0lBRTNCLElBQUksT0FBTyxnQkFBZ0IsS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUMzQyxNQUFNLElBQUksU0FBUyxDQUNqQixpR0FBaUcsQ0FDbEcsQ0FBQztJQUNKLENBQUM7SUFDRCxJQUFJLENBQUMsT0FBTztRQUFFLE1BQU0sSUFBSSxTQUFTLENBQUMsMkNBQTJDLENBQUMsQ0FBQztJQUMvRSxnQkFBZ0IsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0FBQ3JDLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUscUJBQXFCO0lBQ25DLE9BQU87QUFDVCxDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxXQUFXLENBQy9CLE9BQXlCLEVBQ3pCLFNBQWlCLEVBQ2pCLFFBQW9DLEVBQ3BDLEVBQXdDLEVBQ3hDLE1BQW9CO0lBRXBCLE9BQU8sU0FBUyxDQUFDLEdBQUcsQ0FBQztRQUNuQixTQUFTO1FBQ1QsUUFBUTtRQUNSLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztRQUN4QixFQUFFO1FBQ0YsTUFBTTtRQUNOLFFBQVEsRUFBRSxjQUFjLENBQUMsUUFBUTtRQUNqQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNsQixNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO2dCQUM5QixTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVM7Z0JBQzVCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtnQkFDdEIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxPQUFPO2FBQ3ZCLENBQUMsQ0FBQztZQUNILE9BQU8sSUFBSSxjQUFjLENBQUMsZUFBZSxPQUFPLENBQUMsU0FBUyxTQUFTLEVBQUU7Z0JBQ25FLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxFQUFFO2FBQ2xFLENBQUMsQ0FBQztRQUNMLENBQUM7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBXZWItc2VhcmNoIHJ1bnRpbWUgY29uc3RydWN0aW9uIGFuZCBleGVjdXRpb24gaGVscGVycy5cbiAqXG4gKiBFYWNoIHBsdWdpbiBpbnN0YW5jZSBvd25zIG9uZSBydW50aW1lLiBTdGFuZGFsb25lIHRvb2wgZmFjdG9yaWVzIGNyZWF0ZSB0aGVpclxuICogb3duIHJ1bnRpbWUsIHNvIHNlcGFyYXRlIGFwcHMgYW5kIGRpcmVjdCBjb25zdW1lcnMgY2Fubm90IG92ZXJ3cml0ZSBlYWNoXG4gKiBvdGhlcidzIHBvbGljeSBvciBleGVjdXRvci5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHsgRXhlY3V0aW9uRXJyb3IsIHR5cGUgRXhlY3V0aW9uUmVzdWx0IH0gZnJvbSBcIkBkYXRhYnJpY2tzL2FwcGtpdFwiO1xuaW1wb3J0IHsgZXhlY3V0aW9uLCBsb2cgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuaW1wb3J0IHtcbiAgcmVzb2x2ZVdlYlNlYXJjaENvbmZpZyxcbiAgdHlwZSBSZXNvbHZlZFdlYlNlYXJjaENvbmZpZyxcbiAgdHlwZSBXZWJTZWFyY2hQbHVnaW5Db25maWcsXG59IGZyb20gXCIuL2NvbmZpZy50c1wiO1xuaW1wb3J0IHR5cGUgeyBXZWJTZWFyY2hFeGVjdXRpb25TZXR0aW5ncyB9IGZyb20gXCIuL2RlZmF1bHRzLnRzXCI7XG5cbmNvbnN0IGxvZ2dlciA9IGxvZy5sb2dnZXIoXCJ3ZWItc2VhcmNoL3J1bnRpbWVcIik7XG5cbi8qKlxuICogUnVucyBvbmUgb3V0Ym91bmQgY2FsbCB0aHJvdWdoIEFwcEtpdCdzIGludGVyY2VwdG9yIGNoYWluLiBNYXRjaGVzXG4gKiBgUGx1Z2luLmV4ZWN1dGUoKWAsIHdoaWNoIG5ldmVyIHRocm93czogYSBmYWlsdXJlIGNvbWVzIGJhY2sgYXNcbiAqIGB7IG9rOiBmYWxzZSB9YC5cbiAqL1xuZXhwb3J0IHR5cGUgV2ViU2VhcmNoRXhlY3V0b3IgPSA8VD4oXG4gIGZuOiAoc2lnbmFsPzogQWJvcnRTaWduYWwpID0+IFByb21pc2U8VD4sXG4gIHNldHRpbmdzOiBXZWJTZWFyY2hFeGVjdXRpb25TZXR0aW5ncyxcbikgPT4gUHJvbWlzZTxFeGVjdXRpb25SZXN1bHQ8VD4+O1xuXG4vKiogVGhlIHJlc29sdmVkIGNvbmZpZyBwbHVzIHRoZSBleGVjdXRvciBvdXRib3VuZCBjYWxscyBydW4gdGhyb3VnaC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2ViU2VhcmNoUnVudGltZSB7XG4gIGNvbmZpZzogUmVzb2x2ZWRXZWJTZWFyY2hDb25maWc7XG4gIGV4ZWN1dGU6IFdlYlNlYXJjaEV4ZWN1dG9yO1xufVxuXG4vKiogUnVudGltZS1hd2FyZSBvcGVyYXRpb24gaW5wdXQsIHJldGFpbmluZyByZXNvbHZlZC1jb25maWcgY29tcGF0aWJpbGl0eS4gKi9cbmV4cG9ydCB0eXBlIFdlYlNlYXJjaFJ1bnRpbWVJbnB1dCA9IFdlYlNlYXJjaFJ1bnRpbWUgfCBSZXNvbHZlZFdlYlNlYXJjaENvbmZpZztcblxuLyoqXG4gKiBFeGVjdXRvciB1c2VkIGJ5IHN0YW5kYWxvbmUgcnVudGltZXM6IHJ1biB0aGUgY2FsbCBkaXJlY3RseSwgbWFwcGluZyBhIHRocm93XG4gKiBvbnRvIHRoZSBzYW1lIHtAbGluayBFeGVjdXRpb25SZXN1bHR9IHNoYXBlIHNvIGNhbGwgc2l0ZXMgYnJhbmNoIG9uIGBva2BcbiAqIGVpdGhlciB3YXkuXG4gKi9cbmNvbnN0IGRpcmVjdEV4ZWN1dGUgPSBleGVjdXRpb24uZGlyZWN0RXhlY3V0b3I8V2ViU2VhcmNoRXhlY3V0aW9uU2V0dGluZ3M+KCk7XG5cbi8qKiBCdWlsZCBhbiBpc29sYXRlZCBydW50aW1lIGZvciBvbmUgcGx1Z2luIGluc3RhbmNlIG9yIHN0YW5kYWxvbmUgdG9vbCBzZXQuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlV2ViU2VhcmNoUnVudGltZShcbiAgb3ZlcnJpZGVzPzogV2ViU2VhcmNoUGx1Z2luQ29uZmlnLFxuICBleGVjdXRlOiBXZWJTZWFyY2hFeGVjdXRvciA9IGRpcmVjdEV4ZWN1dGUsXG4pOiBXZWJTZWFyY2hSdW50aW1lIHtcbiAgcmV0dXJuIHsgY29uZmlnOiByZXNvbHZlV2ViU2VhcmNoQ29uZmlnKG92ZXJyaWRlcyksIGV4ZWN1dGUgfTtcbn1cblxuLyoqIEJ1aWxkIGFuIGlzb2xhdGVkIHJ1bnRpbWUgZnJvbSBjb25maWcgdGhhdCBoYXMgYWxyZWFkeSBiZWVuIHJlc29sdmVkLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJlc29sdmVkV2ViU2VhcmNoUnVudGltZShcbiAgY29uZmlnOiBSZXNvbHZlZFdlYlNlYXJjaENvbmZpZyxcbiAgZXhlY3V0ZTogV2ViU2VhcmNoRXhlY3V0b3IgPSBkaXJlY3RFeGVjdXRlLFxuKTogV2ViU2VhcmNoUnVudGltZSB7XG4gIHJldHVybiB7IGNvbmZpZywgZXhlY3V0ZSB9O1xufVxuXG4vKiogTm9ybWFsaXplIGFuIGV4cGxpY2l0IHJ1bnRpbWUgb3IgbGVnYWN5IHJlc29sdmVkIGNvbmZpZyBmb3Igb25lIG9wZXJhdGlvbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1dlYlNlYXJjaFJ1bnRpbWUoaW5wdXQ6IFdlYlNlYXJjaFJ1bnRpbWVJbnB1dCk6IFdlYlNlYXJjaFJ1bnRpbWUge1xuICByZXR1cm4gXCJleGVjdXRlXCIgaW4gaW5wdXQgPyBpbnB1dCA6IGNyZWF0ZVJlc29sdmVkV2ViU2VhcmNoUnVudGltZShpbnB1dCk7XG59XG5cbi8qKlxuICogQnVpbGQgYW4gaXNvbGF0ZWQgc3RhbmRhbG9uZSBydW50aW1lLlxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSB7QGxpbmsgY3JlYXRlV2ViU2VhcmNoUnVudGltZX0uIFRoaXMgY29tcGF0aWJpbGl0eSBoZWxwZXJcbiAqIHJldHVybnMgYSBuZXcgcnVudGltZSBvbiBldmVyeSBjYWxsIGFuZCBuZXZlciByZWFkcyBvciB1cGRhdGVzIHBsdWdpbiBzdGF0ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFdlYlNlYXJjaFJ1bnRpbWUob3ZlcnJpZGVzPzogV2ViU2VhcmNoUGx1Z2luQ29uZmlnKTogV2ViU2VhcmNoUnVudGltZSB7XG4gIHJldHVybiBjcmVhdGVXZWJTZWFyY2hSdW50aW1lKG92ZXJyaWRlcyk7XG59XG5cbi8qKiBJbnN0YWxsIGFuIGV4ZWN1dG9yIG9uIGFuIGV4cGxpY2l0IHJ1bnRpbWUuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0V2ViU2VhcmNoRXhlY3V0b3IocnVudGltZTogV2ViU2VhcmNoUnVudGltZSwgZXhlY3V0ZTogV2ViU2VhcmNoRXhlY3V0b3IpOiB2b2lkO1xuLyoqXG4gKiBAZGVwcmVjYXRlZCBQcm9jZXNzLWdsb2JhbCBleGVjdXRvciByZWdpc3RyYXRpb24gaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZC5cbiAqIFBhc3MgYSBydW50aW1lIGFzIHRoZSBmaXJzdCBhcmd1bWVudCBvciBwcm92aWRlIHRoZSBleGVjdXRvciB0b1xuICoge0BsaW5rIGNyZWF0ZVdlYlNlYXJjaFJ1bnRpbWV9LlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0V2ViU2VhcmNoRXhlY3V0b3IoZXhlY3V0ZTogV2ViU2VhcmNoRXhlY3V0b3IpOiBuZXZlcjtcbmV4cG9ydCBmdW5jdGlvbiBzZXRXZWJTZWFyY2hFeGVjdXRvcihcbiAgcnVudGltZU9yRXhlY3V0ZTogV2ViU2VhcmNoUnVudGltZSB8IFdlYlNlYXJjaEV4ZWN1dG9yLFxuICBleGVjdXRlPzogV2ViU2VhcmNoRXhlY3V0b3IsXG4pOiB2b2lkIHtcbiAgaWYgKHR5cGVvZiBydW50aW1lT3JFeGVjdXRlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgXCJzZXRXZWJTZWFyY2hFeGVjdXRvciByZXF1aXJlcyBhbiBleHBsaWNpdCBydW50aW1lOyB1c2UgY3JlYXRlV2ViU2VhcmNoUnVudGltZShjb25maWcsIGV4ZWN1dG9yKVwiLFxuICAgICk7XG4gIH1cbiAgaWYgKCFleGVjdXRlKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwic2V0V2ViU2VhcmNoRXhlY3V0b3IgcmVxdWlyZXMgYW4gZXhlY3V0b3JcIik7XG4gIHJ1bnRpbWVPckV4ZWN1dGUuZXhlY3V0ZSA9IGV4ZWN1dGU7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgUGx1Z2luIHJ1bnRpbWVzIGFyZSBpbnN0YW5jZS1vd25lZCBhbmQgbmVlZCBubyBnbG9iYWwgcmVzZXQuXG4gKiBUaGlzIGNvbXBhdGliaWxpdHkgaGVscGVyIGlzIGludGVudGlvbmFsbHkgYSBuby1vcC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc2V0V2ViU2VhcmNoUnVudGltZSgpOiB2b2lkIHtcbiAgcmV0dXJuO1xufVxuXG4vKipcbiAqIFJ1biBvbmUgaWRlbXBvdGVudCByZWFkIHRocm91Z2ggdGhlIHJ1bnRpbWUgZXhlY3V0b3IgYW5kIHVud3JhcCBpdC5cbiAqXG4gKiBgZXhlY3V0ZSgpYCBuZXZlciB0aHJvd3MsIHNvIGEgZmFpbGVkIGNhbGwgYXJyaXZlcyBhcyBgeyBvazogZmFsc2UgfWAgd2l0aFxuICogYSBzdGF0dXMgdGhlIGludGVyY2VwdG9ycyBhbHJlYWR5IHNhbml0aXplZDsgaXQgaXMgbG9nZ2VkIGhlcmUgYW5kIHJlLXJhaXNlZFxuICogYXMgYSBzdGFibGUge0BsaW5rIEV4ZWN1dGlvbkVycm9yfSBzbyBhbiB1cHN0cmVhbSBtZXNzYWdlIG5ldmVyIGJlY29tZXMgdGhlXG4gKiBjYWxsZXIncyBlcnJvciB0ZXh0LiBgc2lnbmFsYCBpcyB0aGUgY2FsbGVyJ3Mgb3duIGNhbmNlbGxhdGlvbiAoYW4gYWdlbnRcbiAqIHJ1biwgYSByZXF1ZXN0IHRlYXJkb3duKTsgaXQgaXMgbWVyZ2VkIHdpdGggdGhlIHNpZ25hbCB0aGUgdGltZW91dFxuICogaW50ZXJjZXB0b3Igc3VwcGxpZXMgc28gZWl0aGVyIG9uZSB1bndpbmRzIHRoZSBJL08uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBleGVjdXRlUmVhZDxUPihcbiAgcnVudGltZTogV2ViU2VhcmNoUnVudGltZSxcbiAgb3BlcmF0aW9uOiBzdHJpbmcsXG4gIHNldHRpbmdzOiBXZWJTZWFyY2hFeGVjdXRpb25TZXR0aW5ncyxcbiAgZm46IChzaWduYWw/OiBBYm9ydFNpZ25hbCkgPT4gUHJvbWlzZTxUPixcbiAgc2lnbmFsPzogQWJvcnRTaWduYWwsXG4pOiBQcm9taXNlPFQ+IHtcbiAgcmV0dXJuIGV4ZWN1dGlvbi5ydW4oe1xuICAgIG9wZXJhdGlvbixcbiAgICBzZXR0aW5ncyxcbiAgICBleGVjdXRlOiBydW50aW1lLmV4ZWN1dGUsXG4gICAgZm4sXG4gICAgc2lnbmFsLFxuICAgIGNhbmNlbGVkOiBFeGVjdXRpb25FcnJvci5jYW5jZWxlZCxcbiAgICBmYWlsZWQ6IChmYWlsdXJlKSA9PiB7XG4gICAgICBsb2dnZXIud2FybihcImV4ZWN1dGlvbi1mYWlsZWRcIiwge1xuICAgICAgICBvcGVyYXRpb246IGZhaWx1cmUub3BlcmF0aW9uLFxuICAgICAgICBzdGF0dXM6IGZhaWx1cmUuc3RhdHVzLFxuICAgICAgICBlcnJvcjogZmFpbHVyZS5tZXNzYWdlLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gbmV3IEV4ZWN1dGlvbkVycm9yKGB3ZWItc2VhcmNoOiAke2ZhaWx1cmUub3BlcmF0aW9ufSBmYWlsZWRgLCB7XG4gICAgICAgIGNvbnRleHQ6IHsgb3BlcmF0aW9uOiBmYWlsdXJlLm9wZXJhdGlvbiwgc3RhdHVzOiBmYWlsdXJlLnN0YXR1cyB9LFxuICAgICAgfSk7XG4gICAgfSxcbiAgfSk7XG59XG4iXX0=
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydW50aW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBR0gsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUNMLHNCQUFzQixHQUd2QixNQUFNLGFBQWEsQ0FBQztBQUdyQixNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7QUFxQmhEOzs7O0dBSUc7QUFDSCxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUMsY0FBYyxFQUE4QixDQUFDO0FBRTdFLGdGQUFnRjtBQUNoRixNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLFNBQWlDLEVBQ2pDLFVBQTZCLGFBQWE7SUFFMUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQztBQUNoRSxDQUFDO0FBRUQsNEVBQTRFO0FBQzVFLE1BQU0sVUFBVSw4QkFBOEIsQ0FDNUMsTUFBK0IsRUFDL0IsVUFBNkIsYUFBYTtJQUUxQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDO0FBQzdCLENBQUM7QUFFRCxpRkFBaUY7QUFDakYsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEtBQTRCO0lBQzdELE9BQU8sU0FBUyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyw4QkFBOEIsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM1RSxDQUFDO0FBRUQsa0RBQWtEO0FBQ2xELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxPQUF5QixFQUFFLE9BQTBCO0lBQ3hGLE9BQU8sQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0FBQzVCLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFdBQVcsQ0FDL0IsT0FBeUIsRUFDekIsU0FBaUIsRUFDakIsUUFBb0MsRUFDcEMsRUFBd0MsRUFDeEMsTUFBb0I7SUFFcEIsT0FBTyxlQUFlLENBQUMsa0JBQWtCLENBQUM7UUFDeEMsTUFBTSxFQUFFLFlBQVk7UUFDcEIsTUFBTTtRQUNOLFNBQVM7UUFDVCxRQUFRO1FBQ1IsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO1FBQ3hCLEVBQUU7UUFDRixNQUFNO0tBQ1AsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogV2ViLXNlYXJjaCBydW50aW1lIGNvbnN0cnVjdGlvbiBhbmQgZXhlY3V0aW9uIGhlbHBlcnMuXG4gKlxuICogRWFjaCBwbHVnaW4gaW5zdGFuY2Ugb3ducyBvbmUgcnVudGltZS4gU3RhbmRhbG9uZSB0b29sIGZhY3RvcmllcyBjcmVhdGUgdGhlaXJcbiAqIG93biBydW50aW1lLCBzbyBzZXBhcmF0ZSBhcHBzIGFuZCBkaXJlY3QgY29uc3VtZXJzIGNhbm5vdCBvdmVyd3JpdGUgZWFjaFxuICogb3RoZXIncyBwb2xpY3kgb3IgZXhlY3V0b3IuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB0eXBlIHsgRXhlY3V0aW9uUmVzdWx0IH0gZnJvbSBcIkBkYXRhYnJpY2tzL2FwcGtpdFwiO1xuaW1wb3J0IHsgcGx1Z2luRXhlY3V0aW9uIH0gZnJvbSBcIkBkYngtdG9vbHMvYXBwa2l0XCI7XG5pbXBvcnQgeyBleGVjdXRpb24sIGxvZyB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQge1xuICByZXNvbHZlV2ViU2VhcmNoQ29uZmlnLFxuICB0eXBlIFJlc29sdmVkV2ViU2VhcmNoQ29uZmlnLFxuICB0eXBlIFdlYlNlYXJjaFBsdWdpbkNvbmZpZyxcbn0gZnJvbSBcIi4vY29uZmlnLnRzXCI7XG5pbXBvcnQgdHlwZSB7IFdlYlNlYXJjaEV4ZWN1dGlvblNldHRpbmdzIH0gZnJvbSBcIi4vZGVmYXVsdHMudHNcIjtcblxuY29uc3QgbG9nZ2VyID0gbG9nLmxvZ2dlcihcIndlYi1zZWFyY2gvcnVudGltZVwiKTtcblxuLyoqXG4gKiBSdW5zIG9uZSBvdXRib3VuZCBjYWxsIHRocm91Z2ggQXBwS2l0J3MgaW50ZXJjZXB0b3IgY2hhaW4uIE1hdGNoZXNcbiAqIGBQbHVnaW4uZXhlY3V0ZSgpYCwgd2hpY2ggbmV2ZXIgdGhyb3dzOiBhIGZhaWx1cmUgY29tZXMgYmFjayBhc1xuICogYHsgb2s6IGZhbHNlIH1gLlxuICovXG5leHBvcnQgdHlwZSBXZWJTZWFyY2hFeGVjdXRvciA9IDxUPihcbiAgZm46IChzaWduYWw/OiBBYm9ydFNpZ25hbCkgPT4gUHJvbWlzZTxUPixcbiAgc2V0dGluZ3M6IFdlYlNlYXJjaEV4ZWN1dGlvblNldHRpbmdzLFxuKSA9PiBQcm9taXNlPEV4ZWN1dGlvblJlc3VsdDxUPj47XG5cbi8qKiBUaGUgcmVzb2x2ZWQgY29uZmlnIHBsdXMgdGhlIGV4ZWN1dG9yIG91dGJvdW5kIGNhbGxzIHJ1biB0aHJvdWdoLiAqL1xuZXhwb3J0IGludGVyZmFjZSBXZWJTZWFyY2hSdW50aW1lIHtcbiAgY29uZmlnOiBSZXNvbHZlZFdlYlNlYXJjaENvbmZpZztcbiAgZXhlY3V0ZTogV2ViU2VhcmNoRXhlY3V0b3I7XG59XG5cbi8qKiBSdW50aW1lLWF3YXJlIG9wZXJhdGlvbiBpbnB1dCwgcmV0YWluaW5nIHJlc29sdmVkLWNvbmZpZyBjb21wYXRpYmlsaXR5LiAqL1xuZXhwb3J0IHR5cGUgV2ViU2VhcmNoUnVudGltZUlucHV0ID0gV2ViU2VhcmNoUnVudGltZSB8IFJlc29sdmVkV2ViU2VhcmNoQ29uZmlnO1xuXG4vKipcbiAqIEV4ZWN1dG9yIHVzZWQgYnkgc3RhbmRhbG9uZSBydW50aW1lczogcnVuIHRoZSBjYWxsIGRpcmVjdGx5LCBtYXBwaW5nIGEgdGhyb3dcbiAqIG9udG8gdGhlIHNhbWUge0BsaW5rIEV4ZWN1dGlvblJlc3VsdH0gc2hhcGUgc28gY2FsbCBzaXRlcyBicmFuY2ggb24gYG9rYFxuICogZWl0aGVyIHdheS5cbiAqL1xuY29uc3QgZGlyZWN0RXhlY3V0ZSA9IGV4ZWN1dGlvbi5kaXJlY3RFeGVjdXRvcjxXZWJTZWFyY2hFeGVjdXRpb25TZXR0aW5ncz4oKTtcblxuLyoqIEJ1aWxkIGFuIGlzb2xhdGVkIHJ1bnRpbWUgZm9yIG9uZSBwbHVnaW4gaW5zdGFuY2Ugb3Igc3RhbmRhbG9uZSB0b29sIHNldC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVXZWJTZWFyY2hSdW50aW1lKFxuICBvdmVycmlkZXM/OiBXZWJTZWFyY2hQbHVnaW5Db25maWcsXG4gIGV4ZWN1dGU6IFdlYlNlYXJjaEV4ZWN1dG9yID0gZGlyZWN0RXhlY3V0ZSxcbik6IFdlYlNlYXJjaFJ1bnRpbWUge1xuICByZXR1cm4geyBjb25maWc6IHJlc29sdmVXZWJTZWFyY2hDb25maWcob3ZlcnJpZGVzKSwgZXhlY3V0ZSB9O1xufVxuXG4vKiogQnVpbGQgYW4gaXNvbGF0ZWQgcnVudGltZSBmcm9tIGNvbmZpZyB0aGF0IGhhcyBhbHJlYWR5IGJlZW4gcmVzb2x2ZWQuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUmVzb2x2ZWRXZWJTZWFyY2hSdW50aW1lKFxuICBjb25maWc6IFJlc29sdmVkV2ViU2VhcmNoQ29uZmlnLFxuICBleGVjdXRlOiBXZWJTZWFyY2hFeGVjdXRvciA9IGRpcmVjdEV4ZWN1dGUsXG4pOiBXZWJTZWFyY2hSdW50aW1lIHtcbiAgcmV0dXJuIHsgY29uZmlnLCBleGVjdXRlIH07XG59XG5cbi8qKiBOb3JtYWxpemUgYW4gZXhwbGljaXQgcnVudGltZSBvciBsZWdhY3kgcmVzb2x2ZWQgY29uZmlnIGZvciBvbmUgb3BlcmF0aW9uLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvV2ViU2VhcmNoUnVudGltZShpbnB1dDogV2ViU2VhcmNoUnVudGltZUlucHV0KTogV2ViU2VhcmNoUnVudGltZSB7XG4gIHJldHVybiBcImV4ZWN1dGVcIiBpbiBpbnB1dCA/IGlucHV0IDogY3JlYXRlUmVzb2x2ZWRXZWJTZWFyY2hSdW50aW1lKGlucHV0KTtcbn1cblxuLyoqIEluc3RhbGwgYW4gZXhlY3V0b3Igb24gYW4gZXhwbGljaXQgcnVudGltZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRXZWJTZWFyY2hFeGVjdXRvcihydW50aW1lOiBXZWJTZWFyY2hSdW50aW1lLCBleGVjdXRlOiBXZWJTZWFyY2hFeGVjdXRvcik6IHZvaWQge1xuICBydW50aW1lLmV4ZWN1dGUgPSBleGVjdXRlO1xufVxuXG4vKipcbiAqIFJ1biBvbmUgaWRlbXBvdGVudCByZWFkIHRocm91Z2ggdGhlIHJ1bnRpbWUgZXhlY3V0b3IgYW5kIHVud3JhcCBpdC5cbiAqXG4gKiBgZXhlY3V0ZSgpYCBuZXZlciB0aHJvd3MsIHNvIGEgZmFpbGVkIGNhbGwgYXJyaXZlcyBhcyBgeyBvazogZmFsc2UgfWAgd2l0aFxuICogYSBzdGF0dXMgdGhlIGludGVyY2VwdG9ycyBhbHJlYWR5IHNhbml0aXplZDsgaXQgaXMgbG9nZ2VkIGhlcmUgYW5kIHJlLXJhaXNlZFxuICogYXMgYSBzdGFibGUge0BsaW5rIEV4ZWN1dGlvbkVycm9yfSBzbyBhbiB1cHN0cmVhbSBtZXNzYWdlIG5ldmVyIGJlY29tZXMgdGhlXG4gKiBjYWxsZXIncyBlcnJvciB0ZXh0LiBgc2lnbmFsYCBpcyB0aGUgY2FsbGVyJ3Mgb3duIGNhbmNlbGxhdGlvbiAoYW4gYWdlbnRcbiAqIHJ1biwgYSByZXF1ZXN0IHRlYXJkb3duKTsgaXQgaXMgbWVyZ2VkIHdpdGggdGhlIHNpZ25hbCB0aGUgdGltZW91dFxuICogaW50ZXJjZXB0b3Igc3VwcGxpZXMgc28gZWl0aGVyIG9uZSB1bndpbmRzIHRoZSBJL08uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBleGVjdXRlUmVhZDxUPihcbiAgcnVudGltZTogV2ViU2VhcmNoUnVudGltZSxcbiAgb3BlcmF0aW9uOiBzdHJpbmcsXG4gIHNldHRpbmdzOiBXZWJTZWFyY2hFeGVjdXRpb25TZXR0aW5ncyxcbiAgZm46IChzaWduYWw/OiBBYm9ydFNpZ25hbCkgPT4gUHJvbWlzZTxUPixcbiAgc2lnbmFsPzogQWJvcnRTaWduYWwsXG4pOiBQcm9taXNlPFQ+IHtcbiAgcmV0dXJuIHBsdWdpbkV4ZWN1dGlvbi5ydW5QbHVnaW5FeGVjdXRpb24oe1xuICAgIHBsdWdpbjogXCJ3ZWItc2VhcmNoXCIsXG4gICAgbG9nZ2VyLFxuICAgIG9wZXJhdGlvbixcbiAgICBzZXR0aW5ncyxcbiAgICBleGVjdXRlOiBydW50aW1lLmV4ZWN1dGUsXG4gICAgZm4sXG4gICAgc2lnbmFsLFxuICB9KTtcbn1cbiJdfQ==
package/lib/src/schema.js CHANGED
@@ -16,13 +16,13 @@
16
16
  *
17
17
  * @module
18
18
  */
19
- import { string } from "@dbx-tools/shared-core";
19
+ import { stringUtils } from "@dbx-tools/shared-core";
20
20
  import { z } from "zod";
21
21
  /**
22
22
  * Description the model reads for `web_search`. Shared by the Mastra tool and
23
23
  * the AppKit tool provider so both hosts describe the tool identically.
24
24
  */
25
- export const WEB_SEARCH_TOOL_DESCRIPTION = string.toDescription(`
25
+ export const WEB_SEARCH_TOOL_DESCRIPTION = stringUtils.toDescription(`
26
26
  Search the web for current information and get an answer synthesized from
27
27
  live results, with the sources it used. Pass a natural-language query;
28
28
  the search runs inside a web-search-capable model (chosen independently
@@ -31,7 +31,7 @@ export const WEB_SEARCH_TOOL_DESCRIPTION = string.toDescription(`
31
31
  information you don't already have.
32
32
  `);
33
33
  /** Description the model reads for `web_fetch`. Shared like {@link WEB_SEARCH_TOOL_DESCRIPTION}. */
34
- export const WEB_FETCH_TOOL_DESCRIPTION = string.toDescription(`
34
+ export const WEB_FETCH_TOOL_DESCRIPTION = stringUtils.toDescription(`
35
35
  Fetch a single web page and return its readable contents. Pass an
36
36
  absolute URL (including https://); set format to "html" for raw markup
37
37
  instead of extracted text. Use it to read a page returned by web_search
@@ -46,7 +46,7 @@ export const webSearchRequestSchema = z.object({
46
46
  model: z
47
47
  .string()
48
48
  .optional()
49
- .describe(string.toDescription(`
49
+ .describe(stringUtils.toDescription(`
50
50
  Optional web-search-capable model to use (a Databricks serving
51
51
  endpoint name like "databricks-gemini-3-pro", a loose name like "gpt"
52
52
  or "gemini", or a capability class). Defaults to the plugin's
@@ -78,7 +78,7 @@ export const webFetchRequestSchema = z.object({
78
78
  format: z
79
79
  .enum(["text", "html"])
80
80
  .optional()
81
- .describe(string.toDescription(`
81
+ .describe(stringUtils.toDescription(`
82
82
  Return format: "text" (default) strips the page to readable plain
83
83
  text; "html" returns the raw response body. Prefer "text" unless you
84
84
  need the markup.
@@ -99,4 +99,4 @@ export const webFetchResultSchema = z.object({
99
99
  content: z.string().describe("The page content in the requested format (text or html)."),
100
100
  truncated: z.boolean().describe("True when `content` was cut off at the length cap."),
101
101
  });
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4Qjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDOzs7Ozs7O0NBTy9ELENBQUMsQ0FBQztBQUVILG9HQUFvRztBQUNwRyxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDOzs7Ozs7Q0FNOUQsQ0FBQyxDQUFDO0FBRUgsOENBQThDO0FBQzlDLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDN0MsS0FBSyxFQUFFLENBQUM7U0FDTCxNQUFNLEVBQUU7U0FDUixRQUFRLENBQ1AsNEhBQTRILENBQzdIO0lBQ0gsS0FBSyxFQUFFLENBQUM7U0FDTCxNQUFNLEVBQUU7U0FDUixRQUFRLEVBQUU7U0FDVixRQUFRLENBQ1AsTUFBTSxDQUFDLGFBQWEsQ0FBQzs7Ozs7OztPQU9wQixDQUFDLENBQ0g7Q0FDSixDQUFDLENBQUM7QUFLSCxrRUFBa0U7QUFDbEUsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM5QyxHQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxvQ0FBb0MsQ0FBQztJQUM5RCxLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyx3Q0FBd0MsQ0FBQztJQUMvRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxrREFBa0QsQ0FBQztDQUM1RixDQUFDLENBQUM7QUFLSCwrQ0FBK0M7QUFDL0MsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM1QyxLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxzQ0FBc0MsQ0FBQztJQUNsRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyx3REFBd0QsQ0FBQztJQUNyRixTQUFTLEVBQUUsQ0FBQztTQUNULEtBQUssQ0FBQyx1QkFBdUIsQ0FBQztTQUM5QixRQUFRLENBQ1AsMEhBQTBILENBQzNIO0lBQ0gsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsZ0RBQWdELENBQUM7Q0FDN0UsQ0FBQyxDQUFDO0FBS0gsNkNBQTZDO0FBQzdDLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDNUMsR0FBRyxFQUFFLENBQUM7U0FDSCxNQUFNLEVBQUU7U0FDUixRQUFRLENBQ1AsNElBQTRJLENBQzdJO0lBQ0gsTUFBTSxFQUFFLENBQUM7U0FDTixJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDdEIsUUFBUSxFQUFFO1NBQ1YsUUFBUSxDQUNQLE1BQU0sQ0FBQyxhQUFhLENBQUM7Ozs7T0FJcEIsQ0FBQyxDQUNIO0lBQ0gsU0FBUyxFQUFFLENBQUM7U0FDVCxNQUFNLEVBQUU7U0FDUixHQUFHLEVBQUU7U0FDTCxRQUFRLEVBQUU7U0FDVixRQUFRLEVBQUU7U0FDVixRQUFRLENBQ1AsK0dBQStHLENBQ2hIO0NBQ0osQ0FBQyxDQUFDO0FBS0gsOENBQThDO0FBQzlDLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDM0MsR0FBRyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsMENBQTBDLENBQUM7SUFDcEUsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsbUNBQW1DLENBQUM7SUFDaEUsV0FBVyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsb0RBQW9ELENBQUM7SUFDakcsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMseUNBQXlDLENBQUM7SUFDaEYsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsMERBQTBELENBQUM7SUFDeEYsU0FBUyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMsb0RBQW9ELENBQUM7Q0FDdEYsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBXaXJlLWZvcm1hdCBjb250cmFjdCBmb3IgdGhlIHdlYi1zZWFyY2ggYWRkLW9uOiB0aGUgdHdvIHRvb2wgaW5wdXRzIGFcbiAqIG1vZGVsIGZpbGxzIGluIChgd2ViX3NlYXJjaGAsIGB3ZWJfZmV0Y2hgKSBhbmQgdGhlIHJlc3VsdHMgaGFuZGVkIGJhY2suXG4gKiBQdXJlIHpvZCArIGluZmVycmVkIHR5cGVzIChubyBOb2RlLW9ubHkgaW1wb3J0cykgc28gdGhlIHRvb2wgbGF5ZXIsIHRoZVxuICogcGx1Z2luLCBhbmQgYW55IGZ1dHVyZSBVSSB2YWxpZGF0ZSAvIHR5cGUgYWdhaW5zdCBvbmUgZGVmaW5pdGlvbi5cbiAqXG4gKiBgd2ViX3NlYXJjaGAgaXMgYmFja2VkIGJ5IHRoZSBEYXRhYnJpY2tzIE1vZGVsIFNlcnZpbmcgbmF0aXZlIHdlYi1zZWFyY2hcbiAqIHRvb2wgKHNlZSBgcHJvdmlkZXIudHNgKTogdGhlIG1vZGVsIHNlYXJjaGVzIHRoZSB3ZWIgc2VydmVyLXNpZGUgYW5kXG4gKiByZXR1cm5zIGEgc3ludGhlc2l6ZWQgYW5zd2VyIHBsdXMgdGhlIHNvdXJjZXMgaXQgdXNlZC4gYHdlYl9mZXRjaGAgcmVhZHMgYVxuICogc2luZ2xlIHBhZ2UncyBjb250ZW50cyB2aWEgZ290LXNjcmFwaW5nLlxuICpcbiAqIEFycmF5IGZpZWxkcyBpbnRlbnRpb25hbGx5IGF2b2lkIGAubWluKClgIC8gYC5ub25lbXB0eSgpYDogdGhvc2UgZW1pdFxuICogYG1pbkl0ZW1zYCBpbiB0aGUgSlNPTiBzY2hlbWEsIHdoaWNoIHNvbWUgTW9kZWwgU2VydmluZyBlbmRwb2ludHMgcmVqZWN0XG4gKiAoXCJhcnJheSB0eXBlcyBkbyBub3Qgc3VwcG9ydCBtaW5JdGVtc1wiKSB3aGVuIHRoZSBzY2hlbWEgaXMgZm9yd2FyZGVkIGFzIGFcbiAqIHRvb2wgZGVmaW5pdGlvbiAtIHRoZSBzYW1lIGNvbnN0cmFpbnQgdGhlIGVtYWlsIGFkZC1vbiBkb2N1bWVudHMuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IHN0cmluZyB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiO1xuXG4vKipcbiAqIERlc2NyaXB0aW9uIHRoZSBtb2RlbCByZWFkcyBmb3IgYHdlYl9zZWFyY2hgLiBTaGFyZWQgYnkgdGhlIE1hc3RyYSB0b29sIGFuZFxuICogdGhlIEFwcEtpdCB0b29sIHByb3ZpZGVyIHNvIGJvdGggaG9zdHMgZGVzY3JpYmUgdGhlIHRvb2wgaWRlbnRpY2FsbHkuXG4gKi9cbmV4cG9ydCBjb25zdCBXRUJfU0VBUkNIX1RPT0xfREVTQ1JJUFRJT04gPSBzdHJpbmcudG9EZXNjcmlwdGlvbihgXG4gIFNlYXJjaCB0aGUgd2ViIGZvciBjdXJyZW50IGluZm9ybWF0aW9uIGFuZCBnZXQgYW4gYW5zd2VyIHN5bnRoZXNpemVkIGZyb21cbiAgbGl2ZSByZXN1bHRzLCB3aXRoIHRoZSBzb3VyY2VzIGl0IHVzZWQuIFBhc3MgYSBuYXR1cmFsLWxhbmd1YWdlIHF1ZXJ5O1xuICB0aGUgc2VhcmNoIHJ1bnMgaW5zaWRlIGEgd2ViLXNlYXJjaC1jYXBhYmxlIG1vZGVsIChjaG9zZW4gaW5kZXBlbmRlbnRseVxuICBvZiB5b3VyIG93biBtb2RlbCkuIE9wdGlvbmFsbHkgcGFzcyBhIG1vZGVsIG5hbWUgdG8gdXNlIGEgc3BlY2lmaWNcbiAgd2ViLXNlYXJjaCBtb2RlbC4gVXNlIGl0IHdoZW5ldmVyIGEgcXVlc3Rpb24gbmVlZHMgdXAtdG8tZGF0ZSBvciBleHRlcm5hbFxuICBpbmZvcm1hdGlvbiB5b3UgZG9uJ3QgYWxyZWFkeSBoYXZlLlxuYCk7XG5cbi8qKiBEZXNjcmlwdGlvbiB0aGUgbW9kZWwgcmVhZHMgZm9yIGB3ZWJfZmV0Y2hgLiBTaGFyZWQgbGlrZSB7QGxpbmsgV0VCX1NFQVJDSF9UT09MX0RFU0NSSVBUSU9OfS4gKi9cbmV4cG9ydCBjb25zdCBXRUJfRkVUQ0hfVE9PTF9ERVNDUklQVElPTiA9IHN0cmluZy50b0Rlc2NyaXB0aW9uKGBcbiAgRmV0Y2ggYSBzaW5nbGUgd2ViIHBhZ2UgYW5kIHJldHVybiBpdHMgcmVhZGFibGUgY29udGVudHMuIFBhc3MgYW5cbiAgYWJzb2x1dGUgVVJMIChpbmNsdWRpbmcgaHR0cHM6Ly8pOyBzZXQgZm9ybWF0IHRvIFwiaHRtbFwiIGZvciByYXcgbWFya3VwXG4gIGluc3RlYWQgb2YgZXh0cmFjdGVkIHRleHQuIFVzZSBpdCB0byByZWFkIGEgcGFnZSByZXR1cm5lZCBieSB3ZWJfc2VhcmNoXG4gIG9yIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLiBDb250ZW50IGlzIGxlbmd0aC1jYXBwZWQ7IGZldGNoaW5nIGEgVVJMIG91dHNpZGVcbiAgdGhlIGNvbmZpZ3VyZWQgYWxsb3ctbGlzdCBpcyByZWZ1c2VkLlxuYCk7XG5cbi8qKiBTY2hlbWEgZm9yIHRoZSBgd2ViX3NlYXJjaGAgdG9vbCBpbnB1dC4gKi9cbmV4cG9ydCBjb25zdCB3ZWJTZWFyY2hSZXF1ZXN0U2NoZW1hID0gei5vYmplY3Qoe1xuICBxdWVyeTogelxuICAgIC5zdHJpbmcoKVxuICAgIC5kZXNjcmliZShcbiAgICAgIFwiV2hhdCB0byBzZWFyY2ggdGhlIHdlYiBmb3IsIHBocmFzZWQgYXMgYSBuYXR1cmFsLWxhbmd1YWdlIHF1ZXN0aW9uIG9yIHJlcXVlc3QuIFRoZSBtb2RlbCBzZWFyY2hlcyBhbmQgYW5zd2VycyBpbiBvbmUgc3RlcC5cIixcbiAgICApLFxuICBtb2RlbDogelxuICAgIC5zdHJpbmcoKVxuICAgIC5vcHRpb25hbCgpXG4gICAgLmRlc2NyaWJlKFxuICAgICAgc3RyaW5nLnRvRGVzY3JpcHRpb24oYFxuICAgICAgICBPcHRpb25hbCB3ZWItc2VhcmNoLWNhcGFibGUgbW9kZWwgdG8gdXNlIChhIERhdGFicmlja3Mgc2VydmluZ1xuICAgICAgICBlbmRwb2ludCBuYW1lIGxpa2UgXCJkYXRhYnJpY2tzLWdlbWluaS0zLXByb1wiLCBhIGxvb3NlIG5hbWUgbGlrZSBcImdwdFwiXG4gICAgICAgIG9yIFwiZ2VtaW5pXCIsIG9yIGEgY2FwYWJpbGl0eSBjbGFzcykuIERlZmF1bHRzIHRvIHRoZSBwbHVnaW4nc1xuICAgICAgICBjb25maWd1cmVkIHdlYi1zZWFyY2ggbW9kZWwuIFRoZSB3ZWItc2VhcmNoIHRvb2wgcmVzb2x2ZXMgaXRzIG93blxuICAgICAgICBtb2RlbCBpbmRlcGVuZGVudGx5IG9mIHRoZSBjYWxsaW5nIGFnZW50J3MgY2hhdCBtb2RlbCwgc2luY2Ugbm90XG4gICAgICAgIGV2ZXJ5IGNoYXQgbW9kZWwgc3VwcG9ydHMgd2ViIHNlYXJjaC5cbiAgICAgIGApLFxuICAgICksXG59KTtcblxuLyoqIEEgdmFsaWRhdGVkIGB3ZWJfc2VhcmNoYCByZXF1ZXN0LiAqL1xuZXhwb3J0IHR5cGUgV2ViU2VhcmNoUmVxdWVzdCA9IHouaW5mZXI8dHlwZW9mIHdlYlNlYXJjaFJlcXVlc3RTY2hlbWE+O1xuXG4vKiogU2NoZW1hIGZvciBhIHNpbmdsZSBzb3VyY2UgdGhlIG1vZGVsIGNpdGVkIHdoaWxlIGFuc3dlcmluZy4gKi9cbmV4cG9ydCBjb25zdCB3ZWJTZWFyY2hDaXRhdGlvblNjaGVtYSA9IHoub2JqZWN0KHtcbiAgdXJsOiB6LnN0cmluZygpLmRlc2NyaWJlKFwiVGhlIHNvdXJjZSBVUkwgdGhlIGFuc3dlciBkcmV3IG9uLlwiKSxcbiAgdGl0bGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKS5kZXNjcmliZShcIlRoZSBzb3VyY2UgcGFnZSB0aXRsZSwgd2hlbiBhdmFpbGFibGUuXCIpLFxuICBzbmlwcGV0OiB6LnN0cmluZygpLm9wdGlvbmFsKCkuZGVzY3JpYmUoXCJBIHNob3J0IGV4Y2VycHQgZnJvbSB0aGUgc291cmNlLCB3aGVuIGF2YWlsYWJsZS5cIiksXG59KTtcblxuLyoqIEEgc2luZ2xlIGNpdGVkIHNvdXJjZSAoe0BsaW5rIHdlYlNlYXJjaENpdGF0aW9uU2NoZW1hfSkuICovXG5leHBvcnQgdHlwZSBXZWJTZWFyY2hDaXRhdGlvbiA9IHouaW5mZXI8dHlwZW9mIHdlYlNlYXJjaENpdGF0aW9uU2NoZW1hPjtcblxuLyoqIFNjaGVtYSBmb3IgdGhlIGB3ZWJfc2VhcmNoYCB0b29sIG91dHB1dC4gKi9cbmV4cG9ydCBjb25zdCB3ZWJTZWFyY2hSZXN1bHRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHF1ZXJ5OiB6LnN0cmluZygpLmRlc2NyaWJlKFwiRWNobyBvZiB0aGUgcXVlcnkgdGhhdCB3YXMgc2VhcmNoZWQuXCIpLFxuICBhbnN3ZXI6IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJUaGUgbW9kZWwncyBhbnN3ZXIsIHN5bnRoZXNpemVkIGZyb20gbGl2ZSB3ZWIgcmVzdWx0cy5cIiksXG4gIGNpdGF0aW9uczogelxuICAgIC5hcnJheSh3ZWJTZWFyY2hDaXRhdGlvblNjaGVtYSlcbiAgICAuZGVzY3JpYmUoXG4gICAgICBcIlNvdXJjZXMgdGhlIGFuc3dlciBkcmV3IG9uLiBXaGVuIGFuIGFsbG93LWxpc3QgaXMgY29uZmlndXJlZCwgY2l0YXRpb25zIHdob3NlIFVSTCBpcyBub3QgcGVybWl0dGVkIGFyZSBzaWxlbnRseSBvbWl0dGVkLlwiLFxuICAgICksXG4gIG1vZGVsOiB6LnN0cmluZygpLmRlc2NyaWJlKFwiVGhlIHNlcnZpbmcgZW5kcG9pbnQgdGhhdCBwcm9kdWNlZCB0aGUgYW5zd2VyLlwiKSxcbn0pO1xuXG4vKiogVGhlIG91dGNvbWUgb2YgYSBgd2ViX3NlYXJjaGAgY2FsbCAoe0BsaW5rIHdlYlNlYXJjaFJlc3VsdFNjaGVtYX0pLiAqL1xuZXhwb3J0IHR5cGUgV2ViU2VhcmNoUmVzdWx0ID0gei5pbmZlcjx0eXBlb2Ygd2ViU2VhcmNoUmVzdWx0U2NoZW1hPjtcblxuLyoqIFNjaGVtYSBmb3IgdGhlIGB3ZWJfZmV0Y2hgIHRvb2wgaW5wdXQuICovXG5leHBvcnQgY29uc3Qgd2ViRmV0Y2hSZXF1ZXN0U2NoZW1hID0gei5vYmplY3Qoe1xuICB1cmw6IHpcbiAgICAuc3RyaW5nKClcbiAgICAuZGVzY3JpYmUoXG4gICAgICBcIlRoZSBhYnNvbHV0ZSBVUkwgdG8gZmV0Y2ggKG11c3QgaW5jbHVkZSB0aGUgc2NoZW1lLCBlLmcuIGh0dHBzOi8vKS4gV2hlbiBhbiBhbGxvdy1saXN0IGlzIGNvbmZpZ3VyZWQsIGEgVVJMIGl0IGRvZXMgbm90IHBlcm1pdCBpcyByZWZ1c2VkLlwiLFxuICAgICksXG4gIGZvcm1hdDogelxuICAgIC5lbnVtKFtcInRleHRcIiwgXCJodG1sXCJdKVxuICAgIC5vcHRpb25hbCgpXG4gICAgLmRlc2NyaWJlKFxuICAgICAgc3RyaW5nLnRvRGVzY3JpcHRpb24oYFxuICAgICAgICBSZXR1cm4gZm9ybWF0OiBcInRleHRcIiAoZGVmYXVsdCkgc3RyaXBzIHRoZSBwYWdlIHRvIHJlYWRhYmxlIHBsYWluXG4gICAgICAgIHRleHQ7IFwiaHRtbFwiIHJldHVybnMgdGhlIHJhdyByZXNwb25zZSBib2R5LiBQcmVmZXIgXCJ0ZXh0XCIgdW5sZXNzIHlvdVxuICAgICAgICBuZWVkIHRoZSBtYXJrdXAuXG4gICAgICBgKSxcbiAgICApLFxuICBtYXhMZW5ndGg6IHpcbiAgICAubnVtYmVyKClcbiAgICAuaW50KClcbiAgICAucG9zaXRpdmUoKVxuICAgIC5vcHRpb25hbCgpXG4gICAgLmRlc2NyaWJlKFxuICAgICAgXCJUcnVuY2F0ZSB0aGUgcmV0dXJuZWQgY29udGVudCB0byBhdCBtb3N0IHRoaXMgbWFueSBjaGFyYWN0ZXJzICh0aGUgcGx1Z2luIGNhcHMgdGhpcyBhdCBpdHMgY29uZmlndXJlZCBsaW1pdCkuXCIsXG4gICAgKSxcbn0pO1xuXG4vKiogQSB2YWxpZGF0ZWQgYHdlYl9mZXRjaGAgcmVxdWVzdC4gKi9cbmV4cG9ydCB0eXBlIFdlYkZldGNoUmVxdWVzdCA9IHouaW5mZXI8dHlwZW9mIHdlYkZldGNoUmVxdWVzdFNjaGVtYT47XG5cbi8qKiBTY2hlbWEgZm9yIHRoZSBgd2ViX2ZldGNoYCB0b29sIG91dHB1dC4gKi9cbmV4cG9ydCBjb25zdCB3ZWJGZXRjaFJlc3VsdFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgdXJsOiB6LnN0cmluZygpLmRlc2NyaWJlKFwiVGhlIGZpbmFsIFVSTCBmZXRjaGVkIChhZnRlciByZWRpcmVjdHMpLlwiKSxcbiAgc3RhdHVzOiB6Lm51bWJlcigpLmRlc2NyaWJlKFwiSFRUUCBzdGF0dXMgY29kZSBvZiB0aGUgcmVzcG9uc2UuXCIpLFxuICBjb250ZW50VHlwZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLmRlc2NyaWJlKFwiUmVzcG9uc2UgYENvbnRlbnQtVHlwZWAsIHdoZW4gdGhlIHNlcnZlciBzZW50IG9uZS5cIiksXG4gIHRpdGxlOiB6LnN0cmluZygpLm9wdGlvbmFsKCkuZGVzY3JpYmUoXCJUaGUgcGFnZSA8dGl0bGU+LCB3aGVuIG9uZSB3YXMgcHJlc2VudC5cIiksXG4gIGNvbnRlbnQ6IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJUaGUgcGFnZSBjb250ZW50IGluIHRoZSByZXF1ZXN0ZWQgZm9ybWF0ICh0ZXh0IG9yIGh0bWwpLlwiKSxcbiAgdHJ1bmNhdGVkOiB6LmJvb2xlYW4oKS5kZXNjcmliZShcIlRydWUgd2hlbiBgY29udGVudGAgd2FzIGN1dCBvZmYgYXQgdGhlIGxlbmd0aCBjYXAuXCIpLFxufSk7XG5cbi8qKiBUaGUgb3V0Y29tZSBvZiBhIGB3ZWJfZmV0Y2hgIGNhbGwgKHtAbGluayB3ZWJGZXRjaFJlc3VsdFNjaGVtYX0pLiAqL1xuZXhwb3J0IHR5cGUgV2ViRmV0Y2hSZXN1bHQgPSB6LmluZmVyPHR5cGVvZiB3ZWJGZXRjaFJlc3VsdFNjaGVtYT47XG4iXX0=
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFFSCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4Qjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDOzs7Ozs7O0NBT3BFLENBQUMsQ0FBQztBQUVILG9HQUFvRztBQUNwRyxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDOzs7Ozs7Q0FNbkUsQ0FBQyxDQUFDO0FBRUgsOENBQThDO0FBQzlDLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDN0MsS0FBSyxFQUFFLENBQUM7U0FDTCxNQUFNLEVBQUU7U0FDUixRQUFRLENBQ1AsNEhBQTRILENBQzdIO0lBQ0gsS0FBSyxFQUFFLENBQUM7U0FDTCxNQUFNLEVBQUU7U0FDUixRQUFRLEVBQUU7U0FDVixRQUFRLENBQ1AsV0FBVyxDQUFDLGFBQWEsQ0FBQzs7Ozs7OztPQU96QixDQUFDLENBQ0g7Q0FDSixDQUFDLENBQUM7QUFLSCxrRUFBa0U7QUFDbEUsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM5QyxHQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxvQ0FBb0MsQ0FBQztJQUM5RCxLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyx3Q0FBd0MsQ0FBQztJQUMvRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxrREFBa0QsQ0FBQztDQUM1RixDQUFDLENBQUM7QUFLSCwrQ0FBK0M7QUFDL0MsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM1QyxLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxzQ0FBc0MsQ0FBQztJQUNsRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyx3REFBd0QsQ0FBQztJQUNyRixTQUFTLEVBQUUsQ0FBQztTQUNULEtBQUssQ0FBQyx1QkFBdUIsQ0FBQztTQUM5QixRQUFRLENBQ1AsMEhBQTBILENBQzNIO0lBQ0gsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsZ0RBQWdELENBQUM7Q0FDN0UsQ0FBQyxDQUFDO0FBS0gsNkNBQTZDO0FBQzdDLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDNUMsR0FBRyxFQUFFLENBQUM7U0FDSCxNQUFNLEVBQUU7U0FDUixRQUFRLENBQ1AsNElBQTRJLENBQzdJO0lBQ0gsTUFBTSxFQUFFLENBQUM7U0FDTixJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDdEIsUUFBUSxFQUFFO1NBQ1YsUUFBUSxDQUNQLFdBQVcsQ0FBQyxhQUFhLENBQUM7Ozs7T0FJekIsQ0FBQyxDQUNIO0lBQ0gsU0FBUyxFQUFFLENBQUM7U0FDVCxNQUFNLEVBQUU7U0FDUixHQUFHLEVBQUU7U0FDTCxRQUFRLEVBQUU7U0FDVixRQUFRLEVBQUU7U0FDVixRQUFRLENBQ1AsK0dBQStHLENBQ2hIO0NBQ0osQ0FBQyxDQUFDO0FBS0gsOENBQThDO0FBQzlDLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDM0MsR0FBRyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsMENBQTBDLENBQUM7SUFDcEUsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsbUNBQW1DLENBQUM7SUFDaEUsV0FBVyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsb0RBQW9ELENBQUM7SUFDakcsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMseUNBQXlDLENBQUM7SUFDaEYsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsMERBQTBELENBQUM7SUFDeEYsU0FBUyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMsb0RBQW9ELENBQUM7Q0FDdEYsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBXaXJlLWZvcm1hdCBjb250cmFjdCBmb3IgdGhlIHdlYi1zZWFyY2ggYWRkLW9uOiB0aGUgdHdvIHRvb2wgaW5wdXRzIGFcbiAqIG1vZGVsIGZpbGxzIGluIChgd2ViX3NlYXJjaGAsIGB3ZWJfZmV0Y2hgKSBhbmQgdGhlIHJlc3VsdHMgaGFuZGVkIGJhY2suXG4gKiBQdXJlIHpvZCArIGluZmVycmVkIHR5cGVzIChubyBOb2RlLW9ubHkgaW1wb3J0cykgc28gdGhlIHRvb2wgbGF5ZXIsIHRoZVxuICogcGx1Z2luLCBhbmQgYW55IGZ1dHVyZSBVSSB2YWxpZGF0ZSAvIHR5cGUgYWdhaW5zdCBvbmUgZGVmaW5pdGlvbi5cbiAqXG4gKiBgd2ViX3NlYXJjaGAgaXMgYmFja2VkIGJ5IHRoZSBEYXRhYnJpY2tzIE1vZGVsIFNlcnZpbmcgbmF0aXZlIHdlYi1zZWFyY2hcbiAqIHRvb2wgKHNlZSBgcHJvdmlkZXIudHNgKTogdGhlIG1vZGVsIHNlYXJjaGVzIHRoZSB3ZWIgc2VydmVyLXNpZGUgYW5kXG4gKiByZXR1cm5zIGEgc3ludGhlc2l6ZWQgYW5zd2VyIHBsdXMgdGhlIHNvdXJjZXMgaXQgdXNlZC4gYHdlYl9mZXRjaGAgcmVhZHMgYVxuICogc2luZ2xlIHBhZ2UncyBjb250ZW50cyB2aWEgZ290LXNjcmFwaW5nLlxuICpcbiAqIEFycmF5IGZpZWxkcyBpbnRlbnRpb25hbGx5IGF2b2lkIGAubWluKClgIC8gYC5ub25lbXB0eSgpYDogdGhvc2UgZW1pdFxuICogYG1pbkl0ZW1zYCBpbiB0aGUgSlNPTiBzY2hlbWEsIHdoaWNoIHNvbWUgTW9kZWwgU2VydmluZyBlbmRwb2ludHMgcmVqZWN0XG4gKiAoXCJhcnJheSB0eXBlcyBkbyBub3Qgc3VwcG9ydCBtaW5JdGVtc1wiKSB3aGVuIHRoZSBzY2hlbWEgaXMgZm9yd2FyZGVkIGFzIGFcbiAqIHRvb2wgZGVmaW5pdGlvbiAtIHRoZSBzYW1lIGNvbnN0cmFpbnQgdGhlIGVtYWlsIGFkZC1vbiBkb2N1bWVudHMuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IHN0cmluZ1V0aWxzIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcbmltcG9ydCB7IHogfSBmcm9tIFwiem9kXCI7XG5cbi8qKlxuICogRGVzY3JpcHRpb24gdGhlIG1vZGVsIHJlYWRzIGZvciBgd2ViX3NlYXJjaGAuIFNoYXJlZCBieSB0aGUgTWFzdHJhIHRvb2wgYW5kXG4gKiB0aGUgQXBwS2l0IHRvb2wgcHJvdmlkZXIgc28gYm90aCBob3N0cyBkZXNjcmliZSB0aGUgdG9vbCBpZGVudGljYWxseS5cbiAqL1xuZXhwb3J0IGNvbnN0IFdFQl9TRUFSQ0hfVE9PTF9ERVNDUklQVElPTiA9IHN0cmluZ1V0aWxzLnRvRGVzY3JpcHRpb24oYFxuICBTZWFyY2ggdGhlIHdlYiBmb3IgY3VycmVudCBpbmZvcm1hdGlvbiBhbmQgZ2V0IGFuIGFuc3dlciBzeW50aGVzaXplZCBmcm9tXG4gIGxpdmUgcmVzdWx0cywgd2l0aCB0aGUgc291cmNlcyBpdCB1c2VkLiBQYXNzIGEgbmF0dXJhbC1sYW5ndWFnZSBxdWVyeTtcbiAgdGhlIHNlYXJjaCBydW5zIGluc2lkZSBhIHdlYi1zZWFyY2gtY2FwYWJsZSBtb2RlbCAoY2hvc2VuIGluZGVwZW5kZW50bHlcbiAgb2YgeW91ciBvd24gbW9kZWwpLiBPcHRpb25hbGx5IHBhc3MgYSBtb2RlbCBuYW1lIHRvIHVzZSBhIHNwZWNpZmljXG4gIHdlYi1zZWFyY2ggbW9kZWwuIFVzZSBpdCB3aGVuZXZlciBhIHF1ZXN0aW9uIG5lZWRzIHVwLXRvLWRhdGUgb3IgZXh0ZXJuYWxcbiAgaW5mb3JtYXRpb24geW91IGRvbid0IGFscmVhZHkgaGF2ZS5cbmApO1xuXG4vKiogRGVzY3JpcHRpb24gdGhlIG1vZGVsIHJlYWRzIGZvciBgd2ViX2ZldGNoYC4gU2hhcmVkIGxpa2Uge0BsaW5rIFdFQl9TRUFSQ0hfVE9PTF9ERVNDUklQVElPTn0uICovXG5leHBvcnQgY29uc3QgV0VCX0ZFVENIX1RPT0xfREVTQ1JJUFRJT04gPSBzdHJpbmdVdGlscy50b0Rlc2NyaXB0aW9uKGBcbiAgRmV0Y2ggYSBzaW5nbGUgd2ViIHBhZ2UgYW5kIHJldHVybiBpdHMgcmVhZGFibGUgY29udGVudHMuIFBhc3MgYW5cbiAgYWJzb2x1dGUgVVJMIChpbmNsdWRpbmcgaHR0cHM6Ly8pOyBzZXQgZm9ybWF0IHRvIFwiaHRtbFwiIGZvciByYXcgbWFya3VwXG4gIGluc3RlYWQgb2YgZXh0cmFjdGVkIHRleHQuIFVzZSBpdCB0byByZWFkIGEgcGFnZSByZXR1cm5lZCBieSB3ZWJfc2VhcmNoXG4gIG9yIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLiBDb250ZW50IGlzIGxlbmd0aC1jYXBwZWQ7IGZldGNoaW5nIGEgVVJMIG91dHNpZGVcbiAgdGhlIGNvbmZpZ3VyZWQgYWxsb3ctbGlzdCBpcyByZWZ1c2VkLlxuYCk7XG5cbi8qKiBTY2hlbWEgZm9yIHRoZSBgd2ViX3NlYXJjaGAgdG9vbCBpbnB1dC4gKi9cbmV4cG9ydCBjb25zdCB3ZWJTZWFyY2hSZXF1ZXN0U2NoZW1hID0gei5vYmplY3Qoe1xuICBxdWVyeTogelxuICAgIC5zdHJpbmcoKVxuICAgIC5kZXNjcmliZShcbiAgICAgIFwiV2hhdCB0byBzZWFyY2ggdGhlIHdlYiBmb3IsIHBocmFzZWQgYXMgYSBuYXR1cmFsLWxhbmd1YWdlIHF1ZXN0aW9uIG9yIHJlcXVlc3QuIFRoZSBtb2RlbCBzZWFyY2hlcyBhbmQgYW5zd2VycyBpbiBvbmUgc3RlcC5cIixcbiAgICApLFxuICBtb2RlbDogelxuICAgIC5zdHJpbmcoKVxuICAgIC5vcHRpb25hbCgpXG4gICAgLmRlc2NyaWJlKFxuICAgICAgc3RyaW5nVXRpbHMudG9EZXNjcmlwdGlvbihgXG4gICAgICAgIE9wdGlvbmFsIHdlYi1zZWFyY2gtY2FwYWJsZSBtb2RlbCB0byB1c2UgKGEgRGF0YWJyaWNrcyBzZXJ2aW5nXG4gICAgICAgIGVuZHBvaW50IG5hbWUgbGlrZSBcImRhdGFicmlja3MtZ2VtaW5pLTMtcHJvXCIsIGEgbG9vc2UgbmFtZSBsaWtlIFwiZ3B0XCJcbiAgICAgICAgb3IgXCJnZW1pbmlcIiwgb3IgYSBjYXBhYmlsaXR5IGNsYXNzKS4gRGVmYXVsdHMgdG8gdGhlIHBsdWdpbidzXG4gICAgICAgIGNvbmZpZ3VyZWQgd2ViLXNlYXJjaCBtb2RlbC4gVGhlIHdlYi1zZWFyY2ggdG9vbCByZXNvbHZlcyBpdHMgb3duXG4gICAgICAgIG1vZGVsIGluZGVwZW5kZW50bHkgb2YgdGhlIGNhbGxpbmcgYWdlbnQncyBjaGF0IG1vZGVsLCBzaW5jZSBub3RcbiAgICAgICAgZXZlcnkgY2hhdCBtb2RlbCBzdXBwb3J0cyB3ZWIgc2VhcmNoLlxuICAgICAgYCksXG4gICAgKSxcbn0pO1xuXG4vKiogQSB2YWxpZGF0ZWQgYHdlYl9zZWFyY2hgIHJlcXVlc3QuICovXG5leHBvcnQgdHlwZSBXZWJTZWFyY2hSZXF1ZXN0ID0gei5pbmZlcjx0eXBlb2Ygd2ViU2VhcmNoUmVxdWVzdFNjaGVtYT47XG5cbi8qKiBTY2hlbWEgZm9yIGEgc2luZ2xlIHNvdXJjZSB0aGUgbW9kZWwgY2l0ZWQgd2hpbGUgYW5zd2VyaW5nLiAqL1xuZXhwb3J0IGNvbnN0IHdlYlNlYXJjaENpdGF0aW9uU2NoZW1hID0gei5vYmplY3Qoe1xuICB1cmw6IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJUaGUgc291cmNlIFVSTCB0aGUgYW5zd2VyIGRyZXcgb24uXCIpLFxuICB0aXRsZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLmRlc2NyaWJlKFwiVGhlIHNvdXJjZSBwYWdlIHRpdGxlLCB3aGVuIGF2YWlsYWJsZS5cIiksXG4gIHNuaXBwZXQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKS5kZXNjcmliZShcIkEgc2hvcnQgZXhjZXJwdCBmcm9tIHRoZSBzb3VyY2UsIHdoZW4gYXZhaWxhYmxlLlwiKSxcbn0pO1xuXG4vKiogQSBzaW5nbGUgY2l0ZWQgc291cmNlICh7QGxpbmsgd2ViU2VhcmNoQ2l0YXRpb25TY2hlbWF9KS4gKi9cbmV4cG9ydCB0eXBlIFdlYlNlYXJjaENpdGF0aW9uID0gei5pbmZlcjx0eXBlb2Ygd2ViU2VhcmNoQ2l0YXRpb25TY2hlbWE+O1xuXG4vKiogU2NoZW1hIGZvciB0aGUgYHdlYl9zZWFyY2hgIHRvb2wgb3V0cHV0LiAqL1xuZXhwb3J0IGNvbnN0IHdlYlNlYXJjaFJlc3VsdFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgcXVlcnk6IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJFY2hvIG9mIHRoZSBxdWVyeSB0aGF0IHdhcyBzZWFyY2hlZC5cIiksXG4gIGFuc3dlcjogei5zdHJpbmcoKS5kZXNjcmliZShcIlRoZSBtb2RlbCdzIGFuc3dlciwgc3ludGhlc2l6ZWQgZnJvbSBsaXZlIHdlYiByZXN1bHRzLlwiKSxcbiAgY2l0YXRpb25zOiB6XG4gICAgLmFycmF5KHdlYlNlYXJjaENpdGF0aW9uU2NoZW1hKVxuICAgIC5kZXNjcmliZShcbiAgICAgIFwiU291cmNlcyB0aGUgYW5zd2VyIGRyZXcgb24uIFdoZW4gYW4gYWxsb3ctbGlzdCBpcyBjb25maWd1cmVkLCBjaXRhdGlvbnMgd2hvc2UgVVJMIGlzIG5vdCBwZXJtaXR0ZWQgYXJlIHNpbGVudGx5IG9taXR0ZWQuXCIsXG4gICAgKSxcbiAgbW9kZWw6IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJUaGUgc2VydmluZyBlbmRwb2ludCB0aGF0IHByb2R1Y2VkIHRoZSBhbnN3ZXIuXCIpLFxufSk7XG5cbi8qKiBUaGUgb3V0Y29tZSBvZiBhIGB3ZWJfc2VhcmNoYCBjYWxsICh7QGxpbmsgd2ViU2VhcmNoUmVzdWx0U2NoZW1hfSkuICovXG5leHBvcnQgdHlwZSBXZWJTZWFyY2hSZXN1bHQgPSB6LmluZmVyPHR5cGVvZiB3ZWJTZWFyY2hSZXN1bHRTY2hlbWE+O1xuXG4vKiogU2NoZW1hIGZvciB0aGUgYHdlYl9mZXRjaGAgdG9vbCBpbnB1dC4gKi9cbmV4cG9ydCBjb25zdCB3ZWJGZXRjaFJlcXVlc3RTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHVybDogelxuICAgIC5zdHJpbmcoKVxuICAgIC5kZXNjcmliZShcbiAgICAgIFwiVGhlIGFic29sdXRlIFVSTCB0byBmZXRjaCAobXVzdCBpbmNsdWRlIHRoZSBzY2hlbWUsIGUuZy4gaHR0cHM6Ly8pLiBXaGVuIGFuIGFsbG93LWxpc3QgaXMgY29uZmlndXJlZCwgYSBVUkwgaXQgZG9lcyBub3QgcGVybWl0IGlzIHJlZnVzZWQuXCIsXG4gICAgKSxcbiAgZm9ybWF0OiB6XG4gICAgLmVudW0oW1widGV4dFwiLCBcImh0bWxcIl0pXG4gICAgLm9wdGlvbmFsKClcbiAgICAuZGVzY3JpYmUoXG4gICAgICBzdHJpbmdVdGlscy50b0Rlc2NyaXB0aW9uKGBcbiAgICAgICAgUmV0dXJuIGZvcm1hdDogXCJ0ZXh0XCIgKGRlZmF1bHQpIHN0cmlwcyB0aGUgcGFnZSB0byByZWFkYWJsZSBwbGFpblxuICAgICAgICB0ZXh0OyBcImh0bWxcIiByZXR1cm5zIHRoZSByYXcgcmVzcG9uc2UgYm9keS4gUHJlZmVyIFwidGV4dFwiIHVubGVzcyB5b3VcbiAgICAgICAgbmVlZCB0aGUgbWFya3VwLlxuICAgICAgYCksXG4gICAgKSxcbiAgbWF4TGVuZ3RoOiB6XG4gICAgLm51bWJlcigpXG4gICAgLmludCgpXG4gICAgLnBvc2l0aXZlKClcbiAgICAub3B0aW9uYWwoKVxuICAgIC5kZXNjcmliZShcbiAgICAgIFwiVHJ1bmNhdGUgdGhlIHJldHVybmVkIGNvbnRlbnQgdG8gYXQgbW9zdCB0aGlzIG1hbnkgY2hhcmFjdGVycyAodGhlIHBsdWdpbiBjYXBzIHRoaXMgYXQgaXRzIGNvbmZpZ3VyZWQgbGltaXQpLlwiLFxuICAgICksXG59KTtcblxuLyoqIEEgdmFsaWRhdGVkIGB3ZWJfZmV0Y2hgIHJlcXVlc3QuICovXG5leHBvcnQgdHlwZSBXZWJGZXRjaFJlcXVlc3QgPSB6LmluZmVyPHR5cGVvZiB3ZWJGZXRjaFJlcXVlc3RTY2hlbWE+O1xuXG4vKiogU2NoZW1hIGZvciB0aGUgYHdlYl9mZXRjaGAgdG9vbCBvdXRwdXQuICovXG5leHBvcnQgY29uc3Qgd2ViRmV0Y2hSZXN1bHRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHVybDogei5zdHJpbmcoKS5kZXNjcmliZShcIlRoZSBmaW5hbCBVUkwgZmV0Y2hlZCAoYWZ0ZXIgcmVkaXJlY3RzKS5cIiksXG4gIHN0YXR1czogei5udW1iZXIoKS5kZXNjcmliZShcIkhUVFAgc3RhdHVzIGNvZGUgb2YgdGhlIHJlc3BvbnNlLlwiKSxcbiAgY29udGVudFR5cGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKS5kZXNjcmliZShcIlJlc3BvbnNlIGBDb250ZW50LVR5cGVgLCB3aGVuIHRoZSBzZXJ2ZXIgc2VudCBvbmUuXCIpLFxuICB0aXRsZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLmRlc2NyaWJlKFwiVGhlIHBhZ2UgPHRpdGxlPiwgd2hlbiBvbmUgd2FzIHByZXNlbnQuXCIpLFxuICBjb250ZW50OiB6LnN0cmluZygpLmRlc2NyaWJlKFwiVGhlIHBhZ2UgY29udGVudCBpbiB0aGUgcmVxdWVzdGVkIGZvcm1hdCAodGV4dCBvciBodG1sKS5cIiksXG4gIHRydW5jYXRlZDogei5ib29sZWFuKCkuZGVzY3JpYmUoXCJUcnVlIHdoZW4gYGNvbnRlbnRgIHdhcyBjdXQgb2ZmIGF0IHRoZSBsZW5ndGggY2FwLlwiKSxcbn0pO1xuXG4vKiogVGhlIG91dGNvbWUgb2YgYSBgd2ViX2ZldGNoYCBjYWxsICh7QGxpbmsgd2ViRmV0Y2hSZXN1bHRTY2hlbWF9KS4gKi9cbmV4cG9ydCB0eXBlIFdlYkZldGNoUmVzdWx0ID0gei5pbmZlcjx0eXBlb2Ygd2ViRmV0Y2hSZXN1bHRTY2hlbWE+O1xuIl19
@@ -20,14 +20,16 @@
20
20
  *
21
21
  * @module
22
22
  */
23
- import { invoke, serving } from "@dbx-tools/model";
23
+ import { invoke, modelCatalog } from "@dbx-tools/model";
24
24
  import { type WebSearchRuntimeInput } from "./runtime.ts";
25
25
  import type { WebSearchRequest, WebSearchResult } from "./schema.ts";
26
- type WorkspaceClientLike = serving.WorkspaceClientLike & invoke.AuthenticatingClientLike;
26
+ type WorkspaceClientLike = modelCatalog.WorkspaceClientLike & invoke.AuthenticatingClientLike;
27
27
  /** Context a search needs from the caller: the OBO client + workspace host. */
28
28
  export interface WebSearchContext {
29
29
  client: WorkspaceClientLike;
30
30
  host: string;
31
+ /** Trusted identity of the credential carried by `client`. */
32
+ cacheIdentity?: string;
31
33
  }
32
34
  /**
33
35
  * Resolve the OBO workspace client + host from the active AppKit execution