@dbx-tools/appkit-mastra 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 +96 -90
- package/index.ts +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +2 -2
- package/package.json +16 -16
package/README.md
CHANGED
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
# @dbx-tools/appkit-mastra
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
Host Mastra agents in a Databricks App with AppKit authentication, streaming
|
|
4
|
+
routes, Lakebase-backed memory, Genie tools, model selection, chart and table
|
|
5
|
+
embeds, MLflow feedback, and MCP exposure.
|
|
5
6
|
|
|
6
|
-
|
|
7
|
-
Databricks authentication, Lakebase-backed memory, Genie tools, model selection,
|
|
8
|
-
chart and table embeds, MLflow feedback, and MCP exposure.
|
|
9
|
-
|
|
10
|
-
## Quick Start
|
|
7
|
+
## Quick start
|
|
11
8
|
|
|
12
9
|
Add an agent and run its command tools in the default Monty runtime:
|
|
13
10
|
|
|
@@ -25,7 +22,7 @@ await createApp({ plugins: [server(), mastra({ agents: { analyst } })] });
|
|
|
25
22
|
Add Lakebase, Genie, Analytics, or other AppKit plugins when the agent needs
|
|
26
23
|
durable threads or workspace tools.
|
|
27
24
|
|
|
28
|
-
## Choose Mastra
|
|
25
|
+
## Choose Mastra, AppKit Agents, or direct Genie
|
|
29
26
|
|
|
30
27
|
Native AppKit Agents is the shorter path for AppKit-native agent definitions,
|
|
31
28
|
streaming chat, threads, cancellation, and approvals. Choose this package when
|
|
@@ -37,13 +34,18 @@ the application already uses Mastra or needs Mastra-specific capabilities:
|
|
|
37
34
|
ToolProvider plugins stay available without rewriting them.
|
|
38
35
|
- Genie as an agent tool that emits typed progress events, result metadata, and
|
|
39
36
|
delayed chart/data markers into the same assistant turn.
|
|
40
|
-
- A paired React client in [
|
|
37
|
+
- A paired React client in [@dbx-tools/ui-mastra](../../ui/mastra) with model
|
|
41
38
|
picking, thread sidebar, approvals, feedback, exports, and inline embeds.
|
|
42
39
|
- Per-request model override and fuzzy endpoint resolution through
|
|
43
|
-
[
|
|
40
|
+
[@dbx-tools/model](../model), instead of binding every agent to a fixed
|
|
44
41
|
endpoint name.
|
|
45
42
|
|
|
46
|
-
|
|
43
|
+
Use direct Genie chat when one Genie space owns the conversation and users don't
|
|
44
|
+
need a supervising agent. Choose Mastra when one turn must combine Genie with
|
|
45
|
+
other tools, memory, approvals, or workflows. Direct Genie keeps conversation
|
|
46
|
+
history in Genie and doesn't write Mastra memory.
|
|
47
|
+
|
|
48
|
+
## Full app example
|
|
47
49
|
|
|
48
50
|
```ts
|
|
49
51
|
import { analytics, createApp, lakebase, server } from "@databricks/appkit";
|
|
@@ -98,7 +100,7 @@ This example provides:
|
|
|
98
100
|
- Lakebase registration automatically enables durable thread storage and vector
|
|
99
101
|
memory unless you opt out.
|
|
100
102
|
|
|
101
|
-
## Agent
|
|
103
|
+
## Agent registration
|
|
102
104
|
|
|
103
105
|
`mastra({ agents })` accepts a single definition, an array, or a record.
|
|
104
106
|
Records are best when clients need stable agent ids:
|
|
@@ -135,7 +137,7 @@ Agents are also told to issue independent tool calls together in one turn and
|
|
|
135
137
|
to keep dependent or conflicting calls sequential. Models that do not support
|
|
136
138
|
parallel tool calls continue through the normal multi-step agent loop.
|
|
137
139
|
|
|
138
|
-
## Typed
|
|
140
|
+
## Typed application request context
|
|
139
141
|
|
|
140
142
|
Use Mastra's native `requestContextSchema` for UI selections that should shape a
|
|
141
143
|
turn, such as a store, workflow, route, or selected entity:
|
|
@@ -174,12 +176,12 @@ so application context cannot change conversation ownership or credentials.
|
|
|
174
176
|
`createAgent({ requireToolApproval })` forwards Mastra's native request-level
|
|
175
177
|
approval gate. It may be an async Classifier-backed function that returns `true`
|
|
176
178
|
for calls still needing human review. A tool's own `requireApproval` remains
|
|
177
|
-
authoritative
|
|
179
|
+
authoritative. Configure that native function on the tool when policy should
|
|
178
180
|
allow some calls. Regular agents do not include Agent Controller's durable
|
|
179
181
|
allow/ask/deny permission store, so remembered decisions remain a caller-owned,
|
|
180
182
|
server-side durable policy rather than browser state.
|
|
181
183
|
|
|
182
|
-
## AppKit
|
|
184
|
+
## AppKit toolkits
|
|
183
185
|
|
|
184
186
|
The `tools(plugins)` callback receives a dynamic index of registered AppKit
|
|
185
187
|
tool-provider plugins. Each entry exposes `.toolkit(opts)` with AppKit's public
|
|
@@ -208,11 +210,11 @@ const agent = agents.createAgent({
|
|
|
208
210
|
});
|
|
209
211
|
```
|
|
210
212
|
|
|
211
|
-
Tool calls dispatch back through the owning AppKit plugin, preserving
|
|
212
|
-
and AppKit telemetry behavior. Optional
|
|
213
|
-
you spread their tools.
|
|
213
|
+
Tool calls dispatch back through the owning AppKit plugin, preserving
|
|
214
|
+
on-behalf-of-user (OBO) authentication and AppKit telemetry behavior. Optional
|
|
215
|
+
plugins should be guarded with `?.` when you spread their tools.
|
|
214
216
|
|
|
215
|
-
### Tools
|
|
217
|
+
### Tools flow in, not out
|
|
216
218
|
|
|
217
219
|
The plugin is a tool _consumer_, not an AppKit `ToolProvider`: it deliberately
|
|
218
220
|
implements neither `getAgentTools()` nor `executeAgentTool()`, so its built-in
|
|
@@ -237,7 +239,7 @@ unless `mcp: { tools: true }` names them explicitly. Approval-gated tools you
|
|
|
237
239
|
register yourself are enforced separately: boot fails if one is registered
|
|
238
240
|
without Mastra storage to persist the suspended run.
|
|
239
241
|
|
|
240
|
-
## Memory
|
|
242
|
+
## Memory and storage
|
|
241
243
|
|
|
242
244
|
The `memory` and `storage` config fields can be `false`, `true`, or a concrete
|
|
243
245
|
Mastra Postgres/PgVector config.
|
|
@@ -252,23 +254,23 @@ mastra({
|
|
|
252
254
|
|
|
253
255
|
With `lakebase()` registered, both default to enabled:
|
|
254
256
|
|
|
255
|
-
-
|
|
256
|
-
-
|
|
257
|
-
-
|
|
257
|
+
- Storage uses a per-agent schema for durable threads and messages.
|
|
258
|
+
- Memory uses a shared vector index for semantic recall.
|
|
259
|
+
- The existing service-principal pool is captured from `lakebase()` during
|
|
258
260
|
startup, so request-scoped OBO credentials never reach storage work and no
|
|
259
261
|
additional PostgreSQL pool is created.
|
|
260
262
|
|
|
261
263
|
Without `lakebase()`, agents are stateless unless you provide explicit storage
|
|
262
264
|
and memory configs.
|
|
263
265
|
|
|
264
|
-
### Add
|
|
266
|
+
### Add external durable memory tools
|
|
265
267
|
|
|
266
268
|
Register `@dbx-tools/appkit-memory` as a sibling plugin and request
|
|
267
269
|
`plugins.memory?.toolkit()` from the agents that need its `remember` and
|
|
268
270
|
`recall_memory` tools. The memory plugin owns Databricks and Graphiti selection.
|
|
269
271
|
Mastra continues to own only its configured PostgresStore and PgVector.
|
|
270
272
|
|
|
271
|
-
## Workspace
|
|
273
|
+
## Workspace capabilities
|
|
272
274
|
|
|
273
275
|
Every `agents.createAgent()` gets a default Mastra `Workspace` from
|
|
274
276
|
`workspaces.databricksWorkspace()`. A workspace can provide file access, skill
|
|
@@ -277,6 +279,13 @@ discovery, a command sandbox, or any combination. The default mounts
|
|
|
277
279
|
configured Assistant skill paths, and provides Monty for isolated Python
|
|
278
280
|
command execution.
|
|
279
281
|
|
|
282
|
+
Use AppKit's Files plugin when application routes and UI components need
|
|
283
|
+
governed upload, download, or volume access. Use a Mastra workspace when the
|
|
284
|
+
agent itself needs files, skills, or command execution during a turn. A
|
|
285
|
+
`FileSystem` from [@dbx-tools/databricks](../databricks) or
|
|
286
|
+
[@dbx-tools/fs](../fs) can be mounted into that workspace with
|
|
287
|
+
`filesystems(fs)`.
|
|
288
|
+
|
|
280
289
|
Pass paths directly when an agent needs a different filesystem scope:
|
|
281
290
|
|
|
282
291
|
```ts
|
|
@@ -318,7 +327,7 @@ const workspace = workspaces.databricksWorkspace({
|
|
|
318
327
|
Paths are file-only unless `skills` lists relative Mastra skill paths within
|
|
319
328
|
that included path. At workspace level, `skills` uses Mastra's native path list
|
|
320
329
|
or resolver. An empty list retains configured mounts without exposing skills.
|
|
321
|
-
`writable` controls whether the filesystem attempts mutations
|
|
330
|
+
`writable` controls whether the filesystem attempts mutations. Databricks
|
|
322
331
|
permissions still decide whether an operation succeeds. `mount` can expose the
|
|
323
332
|
path at a different Mastra path when required.
|
|
324
333
|
|
|
@@ -378,7 +387,7 @@ remote skills use their native tools without duplicating their virtual mounts
|
|
|
378
387
|
in workspace search. Set the workspace's `skills` to an empty list when the
|
|
379
388
|
workspace should expose no skills.
|
|
380
389
|
|
|
381
|
-
### Cache
|
|
390
|
+
### Cache workspace metadata
|
|
382
391
|
|
|
383
392
|
Register `filesCache()` to reuse Databricks directory metadata across page
|
|
384
393
|
refreshes and later turns:
|
|
@@ -405,7 +414,7 @@ const workspace = workspaces.databricksWorkspace({
|
|
|
405
414
|
});
|
|
406
415
|
```
|
|
407
416
|
|
|
408
|
-
### Configure
|
|
417
|
+
### Configure file approvals
|
|
409
418
|
|
|
410
419
|
Workspace tools are enabled and run without approval by default. This applies to
|
|
411
420
|
file mutations and command execution with either Monty or a supplied sandbox
|
|
@@ -434,7 +443,7 @@ are separate, so gate or disable
|
|
|
434
443
|
`WORKSPACE_TOOLS.SANDBOX.EXECUTE_COMMAND` when commands must not bypass file
|
|
435
444
|
policies. Cached metadata never grants Databricks access.
|
|
436
445
|
|
|
437
|
-
## Workspace
|
|
446
|
+
## Workspace sandbox
|
|
438
447
|
|
|
439
448
|
Auto-created workspaces use Monty by default. Supply any native Mastra
|
|
440
449
|
`WorkspaceSandbox` or request-scoped resolver to use a remote transport:
|
|
@@ -486,7 +495,7 @@ const localAgent = agents.createAgent({
|
|
|
486
495
|
An agent-level workspace overrides the plugin-level sandbox setting. Returning
|
|
487
496
|
`undefined` from a workspace resolver disables the workspace for that agent.
|
|
488
497
|
|
|
489
|
-
### Batch
|
|
498
|
+
### Batch tools with Code Mode
|
|
490
499
|
|
|
491
500
|
Mastra Code Mode is enabled by default when an agent has executable tools. It
|
|
492
501
|
adds an `execute_typescript` tool so the model can batch independent calls,
|
|
@@ -508,7 +517,7 @@ calls an exposed Lakebox-backed tool.
|
|
|
508
517
|
|
|
509
518
|
Callers may also use native Mastra `createCodeMode` directly when they want
|
|
510
519
|
multiple explicitly scoped orchestration tools, or when the TypeScript program
|
|
511
|
-
itself must
|
|
520
|
+
itself must run in a supplied Sandbox:
|
|
512
521
|
|
|
513
522
|
```ts
|
|
514
523
|
const sales = createCodeMode({
|
|
@@ -531,11 +540,11 @@ const agent = new Agent({
|
|
|
531
540
|
});
|
|
532
541
|
```
|
|
533
542
|
|
|
534
|
-
This is native Mastra `createCodeMode
|
|
543
|
+
This is native Mastra `createCodeMode`. The plugin does not wrap or re-export it.
|
|
535
544
|
Set plugin `codeMode: false` to disable the automatic Code Mode, or pass
|
|
536
545
|
`{ id, timeout }` to tune its generated tool.
|
|
537
546
|
|
|
538
|
-
## Remote
|
|
547
|
+
## Remote skills
|
|
539
548
|
|
|
540
549
|
Use `remoteSkills` to install a curated skill set when the files are not already
|
|
541
550
|
in the Databricks workspace. Sources can be a GitHub `owner/repo`, a git URL, a
|
|
@@ -615,13 +624,10 @@ mastra({
|
|
|
615
624
|
});
|
|
616
625
|
```
|
|
617
626
|
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
downloads them. That matters because a deployed Databricks App container has no
|
|
623
|
-
`databricks` CLI - the old CLI shell-out simply never produced skills there.
|
|
624
|
-
No Databricks auth is involved either, since the repo is public.
|
|
627
|
+
The source reads the public
|
|
628
|
+
[databricks/databricks-agent-skills](https://github.com/databricks/databricks-agent-skills)
|
|
629
|
+
repository's generated `manifest.json` and downloads the selected skill files.
|
|
630
|
+
It doesn't require the Databricks CLI or Databricks authentication.
|
|
625
631
|
|
|
626
632
|
Per-source options for `"aitools"`:
|
|
627
633
|
|
|
@@ -636,18 +642,18 @@ destination. These trees are supplied to every agent as standard agent-level
|
|
|
636
642
|
skills rather than workspace-search roots. Local filesystem mounts remain
|
|
637
643
|
available below `/.skills` when a Databricks destination is unavailable.
|
|
638
644
|
|
|
639
|
-
## Genie
|
|
645
|
+
## Genie tools
|
|
640
646
|
|
|
641
647
|
`genie.buildGenieTools()` and `plugins.genie.toolkit()` expose tools for:
|
|
642
648
|
|
|
643
|
-
-
|
|
644
|
-
-
|
|
645
|
-
-
|
|
646
|
-
-
|
|
649
|
+
- Asking a configured Genie space.
|
|
650
|
+
- Reading space descriptions and serialized space metadata.
|
|
651
|
+
- Fetching statement rows by `statement_id`.
|
|
652
|
+
- Preparing charts from Genie result sets.
|
|
647
653
|
|
|
648
654
|
The central agent drives those tools directly. Genie events stream through the
|
|
649
655
|
Mastra writer using the shared contract from
|
|
650
|
-
[
|
|
656
|
+
[@dbx-tools/shared-mastra](../../shared/mastra), so clients can show thinking,
|
|
651
657
|
SQL, row counts, summaries, chart markers, and data markers as the turn runs.
|
|
652
658
|
Independent `ask_genie` calls can run in parallel. One invocation owns the
|
|
653
659
|
thread's reusable Genie conversation while overlapping invocations use isolated
|
|
@@ -673,7 +679,7 @@ const agent = agents.createAgent({
|
|
|
673
679
|
});
|
|
674
680
|
```
|
|
675
681
|
|
|
676
|
-
### Direct Genie
|
|
682
|
+
### Direct Genie chat
|
|
677
683
|
|
|
678
684
|
The plugin also exposes a Genie-only transport for the paired Mastra UI. It
|
|
679
685
|
keeps the standard AI SDK `UIMessage` stream and the same tool, thought, table,
|
|
@@ -702,7 +708,7 @@ Direct turns require the
|
|
|
702
708
|
never fall back to the classic start/create/get-message polling flow, and
|
|
703
709
|
history comes only from the Agent API conversation-items endpoint. The GA
|
|
704
710
|
space conversation-list endpoint is used only to discover conversations marked
|
|
705
|
-
`GENIE_CONVERSATION_TYPE_AGENT
|
|
711
|
+
`GENIE_CONVERSATION_TYPE_AGENT`. The GA delete endpoints provide the management
|
|
706
712
|
operations that the Agent API does not expose.
|
|
707
713
|
|
|
708
714
|
Agent Mode receives Genie's visualization tool. When Genie emits a
|
|
@@ -722,7 +728,7 @@ Operational limits:
|
|
|
722
728
|
- Aborting the browser stream cancels that request instead of leaving a durable
|
|
723
729
|
Mastra run to reconnect.
|
|
724
730
|
|
|
725
|
-
## Charts
|
|
731
|
+
## Charts and data embeds
|
|
726
732
|
|
|
727
733
|
`chart.prepareChart()` mints a chart id immediately, caches an in-progress
|
|
728
734
|
record, resolves the data in the background, and stores a terminal chart or
|
|
@@ -758,10 +764,10 @@ Agents can return `[chart:<id>]` and `[data:<statement_id>]` markers in prose.
|
|
|
758
764
|
The embed route resolves them later, which avoids forcing the language model to
|
|
759
765
|
inline large tables or wait for chart planning before continuing its answer.
|
|
760
766
|
Agent Mode and polling query attachments carry statement ids when Databricks
|
|
761
|
-
returns them. Direct Genie chat
|
|
767
|
+
returns them. Direct Genie chat also uses
|
|
762
768
|
`[visualization:<statement_id>]` for AppKit UI's native Genie visualization.
|
|
763
769
|
|
|
764
|
-
### Chart
|
|
770
|
+
### Chart types and hand-written charts
|
|
765
771
|
|
|
766
772
|
The planner does not emit a raw Echarts option. It fills a small plan (chart
|
|
767
773
|
type, categories, series) that `planToEchartsOption` expands, so tooltip,
|
|
@@ -796,10 +802,10 @@ Prefer a listed type whenever one fits. `custom` trades the shared defaults for
|
|
|
796
802
|
reach, so it is the answer for an unsupported chart shape, not a way to restyle
|
|
797
803
|
a supported one.
|
|
798
804
|
|
|
799
|
-
### Brand
|
|
805
|
+
### Brand the charts
|
|
800
806
|
|
|
801
807
|
Pass a `brand` to the plugin to theme every generated chart with your brand's
|
|
802
|
-
palette and font
|
|
808
|
+
palette and font. Omit it for the default Echarts look.
|
|
803
809
|
|
|
804
810
|
```ts
|
|
805
811
|
import { brandUtils } from "@dbx-tools/shared-core";
|
|
@@ -820,24 +826,24 @@ read later in a browser whose light/dark theme the server cannot know, so the
|
|
|
820
826
|
brand's single (light) foreground would produce near-black labels on a dark chat
|
|
821
827
|
surface. The renderer resolves tick labels, axis names, grid lines, and the
|
|
822
828
|
tooltip from AppKit's live CSS tokens instead - see
|
|
823
|
-
[
|
|
824
|
-
same in either mode
|
|
829
|
+
[@dbx-tools/ui-mastra](../../ui/mastra)'s chart theming. Brand identity is the
|
|
830
|
+
same in either mode. Chrome is not.
|
|
825
831
|
|
|
826
|
-
## Model
|
|
832
|
+
## Model selection
|
|
827
833
|
|
|
828
834
|
`model.buildModel()` adapts the generic resolver from
|
|
829
|
-
[
|
|
835
|
+
[@dbx-tools/model](../model) to Mastra, then constructs a request-scoped
|
|
830
836
|
Vercel AI SDK ProviderV4 model through
|
|
831
|
-
[
|
|
837
|
+
[@dbx-tools/model-protocol](../model-protocol). It resolves the model per
|
|
832
838
|
request, so OBO identity and request-specific overrides stay isolated.
|
|
833
839
|
|
|
834
840
|
Model priority is:
|
|
835
841
|
|
|
836
|
-
1.
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
842
|
+
1. Request override (`X-Mastra-Model`, `?model=`, body `model` / `modelId`).
|
|
843
|
+
1. Per-agent `model`.
|
|
844
|
+
1. Plugin `defaultModel`.
|
|
845
|
+
1. `DATABRICKS_SERVING_ENDPOINT_NAME`.
|
|
846
|
+
1. Highest-ranked available GPT from the live workspace catalogue,
|
|
841
847
|
then the highest-ranked live chat model when no GPT is deployed.
|
|
842
848
|
|
|
843
849
|
The unconfigured default is live-only and fails clearly when the workspace has
|
|
@@ -859,7 +865,7 @@ building custom routes that should behave like the plugin's `/models` and stream
|
|
|
859
865
|
routes.
|
|
860
866
|
|
|
861
867
|
The Chat provider uses a provider-local fetch from
|
|
862
|
-
`@dbx-tools/model-protocol
|
|
868
|
+
`@dbx-tools/model-protocol`. Mastra does not patch `globalThis.fetch`. The
|
|
863
869
|
shared fetch repairs provider-specific wire requirements for both
|
|
864
870
|
`fetch(url, { body })` and `fetch(new Request(...))`. In particular,
|
|
865
871
|
Databricks-hosted GPT 5.6 Chat Completions with function tools receives
|
|
@@ -883,14 +889,14 @@ without waiting on the `/models` catalogue (so it never flashes a raw id). A
|
|
|
883
889
|
`:agentId` that is not registered returns `404` with the registered ids, the
|
|
884
890
|
same as the history and threads routes.
|
|
885
891
|
|
|
886
|
-
## Threads,
|
|
892
|
+
## Threads, history, and suggestions
|
|
887
893
|
|
|
888
894
|
When storage is enabled, the plugin provides route helpers and in-process
|
|
889
895
|
functions for conversation management:
|
|
890
896
|
|
|
891
|
-
- `history.loadHistory()` and `history.clearHistory()` read or clear one thread
|
|
897
|
+
- `history.loadHistory()` and `history.clearHistory()` read or clear one thread.
|
|
892
898
|
- `threads.listThreads()`, `threads.renameThread()`, and
|
|
893
|
-
`threads.deleteThread()` operate on the caller's scoped conversations
|
|
899
|
+
`threads.deleteThread()` operate on the caller's scoped conversations.
|
|
894
900
|
- `genie.collectSpaceSuggestions()` reads starter questions from the configured
|
|
895
901
|
Genie space.
|
|
896
902
|
|
|
@@ -898,7 +904,7 @@ The plugin resolves the active thread from `x-mastra-thread-id`, `?threadId=`,
|
|
|
898
904
|
or a per-session fallback cookie. That keeps streaming, history, and clear
|
|
899
905
|
operations aligned around the same conversation id.
|
|
900
906
|
|
|
901
|
-
## Evaluate
|
|
907
|
+
## Evaluate in process
|
|
902
908
|
|
|
903
909
|
`eval.createMastraEvalDriver()` adapts a Mastra agent's native `generate()`
|
|
904
910
|
result to AppKit 0.81's `EvalDriver` contract without reducing a chat stream:
|
|
@@ -970,7 +976,7 @@ On Apps UC traces it reads the experiment's
|
|
|
970
976
|
`mlflow.experiment.databricksTraceDestinationPath` tag (or the spans-table tag)
|
|
971
977
|
so the assessment URI matches the row the experiment UI shows. The response
|
|
972
978
|
header name and request/response schemas live in
|
|
973
|
-
[
|
|
979
|
+
[@dbx-tools/shared-mastra](../../shared/mastra).
|
|
974
980
|
|
|
975
981
|
Outside a Databricks App, an experiment id automatically enables direct MLflow
|
|
976
982
|
tracing. The plugin initializes the MLflow Node SDK, injects
|
|
@@ -1034,7 +1040,7 @@ the global provider AppKit already owns and writes to a different store.
|
|
|
1034
1040
|
|
|
1035
1041
|
Success in the boot log looks like:
|
|
1036
1042
|
|
|
1037
|
-
```
|
|
1043
|
+
```text
|
|
1038
1044
|
[observability] Mastra observability wired through OTel bridge {
|
|
1039
1045
|
otelBase: 'http://localhost:4314', feedback: true, observability: 'mlflow'
|
|
1040
1046
|
}
|
|
@@ -1042,10 +1048,10 @@ Success in the boot log looks like:
|
|
|
1042
1048
|
|
|
1043
1049
|
Verify with SQL against the UC `*_trace_unified` view (the REST
|
|
1044
1050
|
`traces/search` API only covers the experiment store, not UC-backed traces).
|
|
1045
|
-
Schema names with hyphens need backticks
|
|
1051
|
+
Schema names with hyphens need backticks. `attributes` is a `VARIANT`, so use
|
|
1046
1052
|
`attributes:['key']::string` rather than `map_keys()`.
|
|
1047
1053
|
|
|
1048
|
-
## MCP
|
|
1054
|
+
## MCP exposure
|
|
1049
1055
|
|
|
1050
1056
|
`mcp.buildMcpServer()` exposes registered agents as MCP tools by default. The
|
|
1051
1057
|
AppKit plugin publishes clean aliases under its base path:
|
|
@@ -1064,7 +1070,7 @@ mastra({
|
|
|
1064
1070
|
Use `mcp: false` to disable MCP. Turn on `tools: true` only for ambient tools
|
|
1065
1071
|
that are safe outside an in-process chat turn.
|
|
1066
1072
|
|
|
1067
|
-
##
|
|
1073
|
+
## Drive a turn outside the routes
|
|
1068
1074
|
|
|
1069
1075
|
Another plugin (or a scheduled job) can run an agent turn directly, but a raw
|
|
1070
1076
|
`agent.generate(prompt)` loses everything the HTTP middleware stamps - most
|
|
@@ -1087,11 +1093,11 @@ const result = await mastra.getDefault().generate(prompt, { requestContext });
|
|
|
1087
1093
|
The AppKit user, the memory thread / resource pair, and a request id (so the
|
|
1088
1094
|
turn's spans join up in traces) are stamped exactly as the request middleware
|
|
1089
1095
|
stamps them. Call it inside an `asUser(req)` scope to inherit the caller's OBO
|
|
1090
|
-
identity
|
|
1091
|
-
[
|
|
1096
|
+
identity. Outside one it resolves to the service principal.
|
|
1097
|
+
[@dbx-tools/teams](../teams) uses this so a Teams card turn has the same tool
|
|
1092
1098
|
reach - and therefore the same answer - as a chat turn.
|
|
1093
1099
|
|
|
1094
|
-
## API
|
|
1100
|
+
## API gate
|
|
1095
1101
|
|
|
1096
1102
|
The stock `@mastra/express` app has broad management routes. The plugin's
|
|
1097
1103
|
default `apiAccess: "scoped"` allows only the chat, read-only metadata,
|
|
@@ -1104,7 +1110,7 @@ logic that need the same allowlist.
|
|
|
1104
1110
|
## Routes
|
|
1105
1111
|
|
|
1106
1112
|
Mounted under the plugin base path, which is `/api/mastra` unless you override
|
|
1107
|
-
`name`. Product-specific routes use AppKit's `route()` helper
|
|
1113
|
+
`name`. Product-specific routes use AppKit's `route()` helper. Chat and memory
|
|
1108
1114
|
use Mastra's native route surfaces behind the same scoped request-context gate.
|
|
1109
1115
|
|
|
1110
1116
|
| Method | Path | Purpose |
|
|
@@ -1123,12 +1129,12 @@ use Mastra's native route surfaces behind the same scoped request-context gate.
|
|
|
1123
1129
|
| `POST` | `/memory/messages/delete` | Native message deletion used before regenerating a response. |
|
|
1124
1130
|
| `GET` | `/agents/:agentId/suspended-runs` | Native persisted approval discovery after a reload or restart. |
|
|
1125
1131
|
| `POST` | `/route/feedback` | Log a thumbs / comment assessment to the turn's MLflow trace. `404` when feedback is off. |
|
|
1126
|
-
| `GET` | `/route/mlflow-experiment` | Return the experiment URL only when the active viewer has effective `CAN_MANAGE
|
|
1132
|
+
| `GET` | `/route/mlflow-experiment` | Return the experiment URL only when the active viewer has effective `CAN_MANAGE`. Otherwise, return `{ "url": null }`. |
|
|
1127
1133
|
| `POST` / `GET` | `/mcp`, `/sse`, `/messages` | MCP transports, when `mcp` is enabled. |
|
|
1128
1134
|
|
|
1129
1135
|
The UI consumes `/chat/:agentId` with the AI SDK's `DefaultChatTransport`.
|
|
1130
1136
|
|
|
1131
|
-
## Environment
|
|
1137
|
+
## Environment variables
|
|
1132
1138
|
|
|
1133
1139
|
Every value can also be set through plugin config, which wins. These are the
|
|
1134
1140
|
fallbacks, so a deployment that already follows AppKit's Databricks env naming
|
|
@@ -1136,7 +1142,7 @@ needs no extra wiring.
|
|
|
1136
1142
|
|
|
1137
1143
|
| Variable | Effect |
|
|
1138
1144
|
| ------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
1139
|
-
| `DATABRICKS_SERVING_ENDPOINT_NAME` | Optional model override used when neither the agent nor `defaultModel` names one
|
|
1145
|
+
| `DATABRICKS_SERVING_ENDPOINT_NAME` | Optional model override used when neither the agent nor `defaultModel` names one. Omit for live highest-rank selection. |
|
|
1140
1146
|
| `DATABRICKS_GENIE_SPACE_ID` | Genie space registered under the `default` alias. |
|
|
1141
1147
|
| `MASTRA_GENIE_IDENTITY` | `user` (default, OBO), `service-principal`, or `auto` for the agents' Databricks calls. |
|
|
1142
1148
|
| `OTEL_EXPORTER_OTLP_ENDPOINT`, `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT` | Presence of either turns Mastra tracing on when `observability` is unset. On Apps, the telemetry sidecar injects these. |
|
|
@@ -1144,7 +1150,7 @@ needs no extra wiring.
|
|
|
1144
1150
|
| `MLFLOW_EXPERIMENT_ID`, `MLFLOW_EXPERIMENT_NAME` | With an OTLP endpoint, turns MLflow feedback on when `feedback` is unset. Assessments read the experiment's UC trace destination tag. |
|
|
1145
1151
|
| `MLFLOW_UC_TRACE_PREFIX` | Optional override for the UC table prefix. Omit to use the experiment tag. |
|
|
1146
1152
|
|
|
1147
|
-
## Configuration
|
|
1153
|
+
## Configuration reference
|
|
1148
1154
|
|
|
1149
1155
|
The main plugin options are:
|
|
1150
1156
|
|
|
@@ -1155,13 +1161,13 @@ The main plugin options are:
|
|
|
1155
1161
|
- `storage` and `memory` accept `true`, `false`, or concrete Mastra Postgres /
|
|
1156
1162
|
PgVector options. `true` resolves from `lakebase()` when present.
|
|
1157
1163
|
- `sandbox` defaults to Monty for auto-created workspaces. `false` disables
|
|
1158
|
-
command execution
|
|
1164
|
+
command execution. `true` or `"monty"` selects Monty. A native Mastra
|
|
1159
1165
|
sandbox or resolver supplies another transport.
|
|
1160
1166
|
- `codeMode` exposes all executable tools available to the current request,
|
|
1161
1167
|
including enabled native workspace tools, through native Mastra Code Mode. It
|
|
1162
1168
|
defaults on when such tools exist, selecting isolated-vm once at startup and
|
|
1163
1169
|
falling back to QuickJS only when unavailable. Both transports support
|
|
1164
|
-
concurrent external calls without SSH
|
|
1170
|
+
concurrent external calls without SSH. An SSH connection is needed only when
|
|
1165
1171
|
an exposed SSH-backed tool is called. Pass `false` to disable it.
|
|
1166
1172
|
- `workspaceSkills` enables Mastra's native on-demand skill search by default.
|
|
1167
1173
|
Pass `false` to disable it or an object with `topK`, `minScore`, and `ttlMs`
|
|
@@ -1203,7 +1209,7 @@ The main plugin options are:
|
|
|
1203
1209
|
deployed apps.
|
|
1204
1210
|
|
|
1205
1211
|
Clients that call these routes can import the browser-safe schemas from
|
|
1206
|
-
[
|
|
1212
|
+
[@dbx-tools/shared-mastra](../../shared/mastra).
|
|
1207
1213
|
|
|
1208
1214
|
## Modules
|
|
1209
1215
|
|
|
@@ -1232,14 +1238,14 @@ Clients that call these routes can import the browser-safe schemas from
|
|
|
1232
1238
|
- `montySandbox` - Python-only Pydantic Monty fallback using Node subprocess
|
|
1233
1239
|
workers.
|
|
1234
1240
|
- `workspaces` / `filesystems` - native Mastra workspace configuration from
|
|
1235
|
-
Databricks paths, opt-in user-scoped temp paths, and caller-supplied mounts
|
|
1241
|
+
Databricks paths, opt-in user-scoped temp paths, and caller-supplied mounts.
|
|
1236
1242
|
`filesystems(fs)` wraps any `@dbx-tools/shared-fs` `FileSystem` (including
|
|
1237
1243
|
`@dbx-tools/databricks` / `@dbx-tools/fs`) as a Mastra mount.
|
|
1238
1244
|
- `remote-skills` - startup provisioning of remote `SKILL.md` sources. The
|
|
1239
1245
|
`"aitools"` constant reads Databricks' public skill repo through a daily
|
|
1240
1246
|
`@dbx-tools/cache` snapshot and serves one shared in-memory
|
|
1241
1247
|
`/.databricks/skills` tree. Other sources go through the optional `skills` CLI
|
|
1242
|
-
or a direct fetch. Every source keeps a process-memory standard-skill copy
|
|
1248
|
+
or a direct fetch. Every source keeps a process-memory standard-skill copy.
|
|
1243
1249
|
Databricks persistence and read-only local mounts are storage options, not
|
|
1244
1250
|
runtime search roots. `refreshTtlMs` overrides the source default.
|
|
1245
1251
|
- `mcp` - MCP server construction.
|
|
@@ -1249,7 +1255,7 @@ Clients that call these routes can import the browser-safe schemas from
|
|
|
1249
1255
|
and stale chart-id input cleanup.
|
|
1250
1256
|
|
|
1251
1257
|
Browser-facing wire types are in
|
|
1252
|
-
[
|
|
1253
|
-
[
|
|
1254
|
-
are in [
|
|
1255
|
-
surface is [
|
|
1258
|
+
[@dbx-tools/shared-mastra](../../shared/mastra). Genie event contracts are in
|
|
1259
|
+
[@dbx-tools/shared-genie](../../shared/genie). Model request/result contracts
|
|
1260
|
+
are in [@dbx-tools/shared-model](../../shared/model). The matching React chat
|
|
1261
|
+
surface is [@dbx-tools/ui-mastra](../../ui/mastra).
|
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-mastra";
|
|
6
|
-
export const PACKAGE_VERSION = "0.9.
|
|
6
|
+
export const PACKAGE_VERSION = "0.9.132";
|
|
7
7
|
export * as agents from "./src/agents.ts";
|
|
8
8
|
export * as chart from "./src/chart.ts";
|
|
9
9
|
export * as chat from "./src/chat.ts";
|
package/lib/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare const PACKAGE_IDENTIFIER = "@dbx-tools/appkit-mastra";
|
|
2
|
-
export declare const PACKAGE_VERSION = "0.9.
|
|
2
|
+
export declare const PACKAGE_VERSION = "0.9.132";
|
|
3
3
|
export * as agents from "./src/agents.ts";
|
|
4
4
|
export * as chart from "./src/chart.ts";
|
|
5
5
|
export * as chat from "./src/chat.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-mastra";
|
|
5
|
-
export const PACKAGE_VERSION = "0.9.
|
|
5
|
+
export const PACKAGE_VERSION = "0.9.132";
|
|
6
6
|
export * as agents from "./src/agents.js";
|
|
7
7
|
export * as chart from "./src/chart.js";
|
|
8
8
|
export * as chat from "./src/chat.js";
|
|
@@ -60,4 +60,4 @@ export { TITLE_INSTRUCTIONS } from "./src/summarize.js";
|
|
|
60
60
|
export { TRACE_IO_LIMIT, MLFLOW_SPAN_INPUTS_ATTR, MLFLOW_SPAN_OUTPUTS_ATTR, CHAT_MESSAGES_ATTR, CHAT_RESPONSE_ATTR, CHAT_IDENTITY_ATTR, CHAT_GENIE_USED_ATTR, MLFLOW_SPAN_TYPE_ATTR, GEN_AI_OPERATION_NAME_ATTR, MLFLOW_USER_ATTR, MLFLOW_SESSION_ATTR, MLFLOW_SPAN_TYPE_AGENT, MLFLOW_SPAN_TYPE_GENIE, AppMlflowTraceInfoSpanProcessor } from "./src/telemetry.js";
|
|
61
61
|
export { MLFLOW_TRACE_TAG_PREFIX, MLFLOW_AGENT_TAG, MLFLOW_GENIE_TAG, MLFLOW_OBO_AUTH_TAG, MLFLOW_SP_AUTH_TAG, MLFLOW_LOCAL_TAG, MLFLOW_AGENT_TAG_ATTR, MLFLOW_GENIE_TAG_ATTR, APPKIT_AGENT_TRACE_ROOT_ATTR, MLFLOW_OBO_AUTH_TAG_ATTR, MLFLOW_SP_AUTH_TAG_ATTR, MLFLOW_LOCAL_TAG_ATTR } from "./src/trace-attributes.js";
|
|
62
62
|
export { DEFAULT_DATABRICKS_WORKSPACE_PATHS } from "./src/workspaces.js";
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRywwQkFBMEIsQ0FBQztBQUM3RCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLEtBQUssTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEtBQUssSUFBSSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxRQUFRLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxLQUFLLFVBQVUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEtBQUssV0FBVyxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sS0FBSyxLQUFLLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxLQUFLLFNBQVMsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEtBQUssUUFBUSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sS0FBSyxHQUFHLE1BQU0sY0FBYyxDQUFDO0FBQ3BDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEtBQUssS0FBSyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sS0FBSyxZQUFZLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxLQUFLLGFBQWEsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxVQUFVLE1BQU0scUJBQXFCLENBQUM7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QixDQUFDO0FBRXZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLHVCQUF1QixFQUFFLHdCQUF3QixFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLHFCQUFxQixFQUFFLDBCQUEwQixFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLHNCQUFzQixFQUFFLHNCQUFzQixFQUFFLCtCQUErQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFcFcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixFQUFFLDRCQUE0QixFQUFFLHdCQUF3QixFQUFFLHVCQUF1QixFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFelQsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0scUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHRU5FUkFURUQgYnkgcHJvamVuIHdhdGNoIC0gRE8gTk9UIEVESVQuXG4vLyBSZWdlbmVyYXRlZCBmcm9tIHRoZSBleHBvcnRpbmcgbW9kdWxlcyBpbiAuL3NyYy5cbi8vIEhhbmQgZWRpdHMgYXJlIG92ZXJ3cml0dGVuIG9uIHRoZSBuZXh0IHdhdGNoOyB0aGlzIGZpbGUgaXMgcmVhZC1vbmx5LlxuXG5leHBvcnQgY29uc3QgUEFDS0FHRV9JREVOVElGSUVSID0gXCJAZGJ4LXRvb2xzL2FwcGtpdC1tYXN0cmFcIjtcbmV4cG9ydCBjb25zdCBQQUNLQUdFX1ZFUlNJT04gPSBcIjAuOS4xMzFcIjtcbmV4cG9ydCAqIGFzIGFnZW50cyBmcm9tIFwiLi9zcmMvYWdlbnRzLnRzXCI7XG5leHBvcnQgKiBhcyBjaGFydCBmcm9tIFwiLi9zcmMvY2hhcnQudHNcIjtcbmV4cG9ydCAqIGFzIGNoYXQgZnJvbSBcIi4vc3JjL2NoYXQudHNcIjtcbmV4cG9ydCAqIGFzIGNvbmZpZyBmcm9tIFwiLi9zcmMvY29uZmlnLnRzXCI7XG5leHBvcnQgKiBhcyBkZWZhdWx0cyBmcm9tIFwiLi9zcmMvZGVmYXVsdHMudHNcIjtcbmV4cG9ydCAqIGFzIGV2YWx1YXRpb24gZnJvbSBcIi4vc3JjL2V2YWx1YXRpb24udHNcIjtcbmV4cG9ydCAqIGFzIGZpbGVzeXN0ZW1zIGZyb20gXCIuL3NyYy9maWxlc3lzdGVtcy50c1wiO1xuZXhwb3J0ICogYXMgZ2VuaWUgZnJvbSBcIi4vc3JjL2dlbmllLnRzXCI7XG5leHBvcnQgKiBhcyBnZW5pZUNoYXQgZnJvbSBcIi4vc3JjL2dlbmllLWNoYXQudHNcIjtcbmV4cG9ydCAqIGFzIGlkZW50aXR5IGZyb20gXCIuL3NyYy9pZGVudGl0eS50c1wiO1xuZXhwb3J0ICogYXMgbWNwIGZyb20gXCIuL3NyYy9tY3AudHNcIjtcbmV4cG9ydCAqIGFzIG1lbW9yeSBmcm9tIFwiLi9zcmMvbWVtb3J5LnRzXCI7XG5leHBvcnQgKiBhcyBtbGZsb3cgZnJvbSBcIi4vc3JjL21sZmxvdy50c1wiO1xuZXhwb3J0ICogYXMgbW9kZWwgZnJvbSBcIi4vc3JjL21vZGVsLnRzXCI7XG5leHBvcnQgKiBhcyBtb250eVNhbmRib3ggZnJvbSBcIi4vc3JjL21vbnR5LXNhbmRib3gudHNcIjtcbmV4cG9ydCAqIGFzIG9ic2VydmFiaWxpdHkgZnJvbSBcIi4vc3JjL29ic2VydmFiaWxpdHkudHNcIjtcbmV4cG9ydCAqIGFzIHBsdWdpbiBmcm9tIFwiLi9zcmMvcGx1Z2luLnRzXCI7XG5leHBvcnQgKiBhcyBwcm9jZXNzb3JzIGZyb20gXCIuL3NyYy9wcm9jZXNzb3JzLnRzXCI7XG5leHBvcnQgKiBhcyByZW1vdGVTa2lsbHMgZnJvbSBcIi4vc3JjL3JlbW90ZS1za2lsbHMudHNcIjtcbmV4cG9ydCAqIGFzIHJlcXVlc3RDb250ZXh0IGZyb20gXCIuL3NyYy9yZXF1ZXN0LWNvbnRleHQudHNcIjtcbmV4cG9ydCAqIGFzIHJlc3QgZnJvbSBcIi4vc3JjL3Jlc3QudHNcIjtcbmV4cG9ydCAqIGFzIHNlcnZlciBmcm9tIFwiLi9zcmMvc2VydmVyLnRzXCI7XG5leHBvcnQgKiBhcyBzZXJ2aW5nIGZyb20gXCIuL3NyYy9zZXJ2aW5nLnRzXCI7XG5leHBvcnQgKiBhcyBza2lsbFBhdGhzIGZyb20gXCIuL3NyYy9za2lsbC1wYXRocy50c1wiO1xuZXhwb3J0ICogYXMgc3RhdGVtZW50IGZyb20gXCIuL3NyYy9zdGF0ZW1lbnQudHNcIjtcbmV4cG9ydCAqIGFzIHN0b3JhZ2VTY2hlbWEgZnJvbSBcIi4vc3JjL3N0b3JhZ2Utc2NoZW1hLnRzXCI7XG5leHBvcnQgKiBhcyBzdHlsZSBmcm9tIFwiLi9zcmMvc3R5bGUudHNcIjtcbmV4cG9ydCAqIGFzIHN1bW1hcml6ZSBmcm9tIFwiLi9zcmMvc3VtbWFyaXplLnRzXCI7XG5leHBvcnQgKiBhcyB0ZWxlbWV0cnkgZnJvbSBcIi4vc3JjL3RlbGVtZXRyeS50c1wiO1xuZXhwb3J0ICogYXMgdHJhY2VBdHRyaWJ1dGVzIGZyb20gXCIuL3NyYy90cmFjZS1hdHRyaWJ1dGVzLnRzXCI7XG5leHBvcnQgKiBhcyB2YWxpZGF0aW9uIGZyb20gXCIuL3NyYy92YWxpZGF0aW9uLnRzXCI7XG5leHBvcnQgKiBhcyB3b3Jrc3BhY2VzIGZyb20gXCIuL3NyYy93b3Jrc3BhY2VzLnRzXCI7XG5leHBvcnQgKiBhcyB3cml0ZXIgZnJvbSBcIi4vc3JjL3dyaXRlci50c1wiO1xuZXhwb3J0IHsgRkFMTEJBQ0tfQUdFTlRfSUQsIERFRkFVTFRfQUdFTlRfTUFYX1NURVBTLCBERUZBVUxUX1RPT0xfV09SS0ZMT1dfSU5TVFJVQ1RJT05TLCBDT0RFX01PREVfUk9VVElOR19JTlNUUlVDVElPTlMsIERFRkFVTFRfU1RZTEVfSU5TVFJVQ1RJT05TIH0gZnJvbSBcIi4vc3JjL2FnZW50cy50c1wiO1xuZXhwb3J0IHR5cGUgeyBNYXN0cmFUb29scywgQXBwS2l0VG9vbE9wdGlvbnMsIFRvb2xraXRPcHRpb25zLCBNYXN0cmFQbHVnaW5Ub29sa2l0UHJvdmlkZXIsIE1hc3RyYVBsdWdpbnMsIE1hc3RyYVRvb2xzRm4sIE1hc3RyYUFnZW50V29ya3NwYWNlUmVzb2x2ZXIsIE1hc3RyYUFnZW50RGVmaW5pdGlvbiwgQW55TWFzdHJhQWdlbnREZWZpbml0aW9uLCBNYXN0cmFTdG9yYWdlQ29uZmlnT3ZlcnJpZGUsIE1hc3RyYU1lbW9yeUNvbmZpZ092ZXJyaWRlLCBBZ2VudERlZmF1bHRNb2RlbCwgQnVpbHRBZ2VudHMsIE1hc3RyYU91dHB1dFByb2Nlc3NvckZhY3RvcnkgfSBmcm9tIFwiLi9zcmMvYWdlbnRzLnRzXCI7XG5leHBvcnQgeyBjaGFydFBsYW5TY2hlbWEsIGNoYXJ0UGxhbm5lclJlcXVlc3RTY2hlbWEsIGNoYXJ0VG9vbE91dHB1dFNjaGVtYSB9IGZyb20gXCIuL3NyYy9jaGFydC50c1wiO1xuZXhwb3J0IHR5cGUgeyBDaGFydFBsYW5uZXJSZXF1ZXN0LCBDaGFydFRvb2xPdXRwdXQsIFByZXBhcmVDaGFydE9wdGlvbnMsIEZldGNoQ2hhcnRPcHRpb25zIH0gZnJvbSBcIi4vc3JjL2NoYXJ0LnRzXCI7XG5leHBvcnQgeyBNQVNUUkFfVVNFUl9LRVksIE1BU1RSQV9VU0VSX05BTUVfS0VZLCBNQVNUUkFfVVNFUl9FTUFJTF9LRVksIE1BU1RSQV9BVVRIX01PREVfS0VZLCBNQVNUUkFfUkVRVUVTVF9JRF9LRVksIE1BU1RSQV9TQ09QRVNfS0VZLCBUUkFDRV9SRVFVRVNUX0NPTlRFWFRfS0VZUywgTUFTVFJBX0NPTkZJR19TQ0hFTUEgfSBmcm9tIFwiLi9zcmMvY29uZmlnLnRzXCI7XG5leHBvcnQgdHlwZSB7IFVzZXIsIE1hc3RyYU1lbW9yeUNvbmZpZywgTWFzdHJhV29ya3NwYWNlU2tpbGxzQ29uZmlnLCBNYXN0cmFDb2RlTW9kZUNvbmZpZywgTWFzdHJhTWNwQ29uZmlnLCBNYXN0cmFQbHVnaW5Db25maWcgfSBmcm9tIFwiLi9zcmMvY29uZmlnLnRzXCI7XG5leHBvcnQgeyBtb2RlbENhdGFsb2d1ZURlZmF1bHRzLCBnZW5pZVN1Z2dlc3Rpb25EZWZhdWx0cywgZ2VuaWVDb252ZXJzYXRpb25SZWFkRGVmYXVsdHMsIGdlbmllQ29udmVyc2F0aW9uV3JpdGVEZWZhdWx0cywgc3RhdGVtZW50RGF0YURlZmF1bHRzLCBjaGFydEZldGNoRGVmYXVsdHMsIGZlZWRiYWNrV3JpdGVEZWZhdWx0cyB9IGZyb20gXCIuL3NyYy9kZWZhdWx0cy50c1wiO1xuZXhwb3J0IHR5cGUgeyBNYXN0cmFFdmFsRHJpdmVyT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9ldmFsdWF0aW9uLnRzXCI7XG5leHBvcnQgeyBNYXN0cmFGaWxlU3lzdGVtQWRhcHRlciwgTW91bnRlZENvbXBvc2l0ZUZpbGVzeXN0ZW0gfSBmcm9tIFwiLi9zcmMvZmlsZXN5c3RlbXMudHNcIjtcbmV4cG9ydCB0eXBlIHsgTWFzdHJhRmlsZVN5c3RlbUFkYXB0ZXJPcHRpb25zIH0gZnJvbSBcIi4vc3JjL2ZpbGVzeXN0ZW1zLnRzXCI7XG5leHBvcnQgeyBERUZBVUxUX0dFTklFX0FMSUFTLCBHRU5JRV9JTlNUUlVDVElPTlMgfSBmcm9tIFwiLi9zcmMvZ2VuaWUudHNcIjtcbmV4cG9ydCB0eXBlIHsgR2VuaWVTcGFjZUNvbmZpZywgR2VuaWVTcGFjZXNDb25maWcgfSBmcm9tIFwiLi9zcmMvZ2VuaWUudHNcIjtcbmV4cG9ydCB0eXBlIHsgR2VuaWVDaGF0U3BhY2UgfSBmcm9tIFwiLi9zcmMvZ2VuaWUtY2hhdC50c1wiO1xuZXhwb3J0IHsgSURFTlRJVFlfRU5WLCBJREVOVElUWV9NT0RFUywgREVGQVVMVF9JREVOVElUWV9NT0RFLCBVU0VSX0lEX0hFQURFUiwgVVNFUl9FTUFJTF9IRUFERVIsIHJlcXVlc3RVc2VySWQsIHJlcXVlc3RVc2VyRW1haWwsIHVzZVNlcnZpY2VQcmluY2lwYWwgfSBmcm9tIFwiLi9zcmMvaWRlbnRpdHkudHNcIjtcbmV4cG9ydCB0eXBlIHsgTWFzdHJhSWRlbnRpdHlNb2RlIH0gZnJvbSBcIi4vc3JjL2lkZW50aXR5LnRzXCI7XG5leHBvcnQgdHlwZSB7IFJlc29sdmVkTWNwIH0gZnJvbSBcIi4vc3JjL21jcC50c1wiO1xuZXhwb3J0IHsgTWVtb3J5QnVpbGRlciB9IGZyb20gXCIuL3NyYy9tZW1vcnkudHNcIjtcbmV4cG9ydCB7IEFnZW50VHJhY2VTcGFuUHJvY2Vzc29yIH0gZnJvbSBcIi4vc3JjL21sZmxvdy50c1wiO1xuZXhwb3J0IHR5cGUgeyBBcHBNbGZsb3dUcmFjZUluZm8sIExvZ0ZlZWRiYWNrUGFyYW1zIH0gZnJvbSBcIi4vc3JjL21sZmxvdy50c1wiO1xuZXhwb3J0IHsgUkVTUE9OU0VTX1BST1ZJREVSX09QVElPTlMgfSBmcm9tIFwiLi9zcmMvbW9kZWwudHNcIjtcbmV4cG9ydCB0eXBlIHsgQnVpbGRNb2RlbE92ZXJyaWRlcyB9IGZyb20gXCIuL3NyYy9tb2RlbC50c1wiO1xuZXhwb3J0IHsgTW9udHlTYW5kYm94IH0gZnJvbSBcIi4vc3JjL21vbnR5LXNhbmRib3gudHNcIjtcbmV4cG9ydCB0eXBlIHsgTW9udHlTYW5kYm94T3B0aW9ucyB9IGZyb20gXCIuL3NyYy9tb250eS1zYW5kYm94LnRzXCI7XG5leHBvcnQgdHlwZSB7IEJ1aWxkT2JzZXJ2YWJpbGl0eU9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvb2JzZXJ2YWJpbGl0eS50c1wiO1xuZXhwb3J0IHsgTWFzdHJhUGx1Z2luLCBtYXN0cmEgfSBmcm9tIFwiLi9zcmMvcGx1Z2luLnRzXCI7XG5leHBvcnQgeyBzdHJpcFN0YWxlQ2hhcnRzUHJvY2Vzc29yIH0gZnJvbSBcIi4vc3JjL3Byb2Nlc3NvcnMudHNcIjtcbmV4cG9ydCB7IEFJVE9PTFNfU0tJTExTX01PVU5ULCBSRU1PVEVfU0tJTExTX01PVU5ULCBBSVRPT0xTX1JFRlJFU0hfVFRMX01TLCBBSVRPT0xTX1NPVVJDRSB9IGZyb20gXCIuL3NyYy9yZW1vdGUtc2tpbGxzLnRzXCI7XG5leHBvcnQgdHlwZSB7IEFpVG9vbHNTb3VyY2UsIFJlbW90ZVNraWxsU291cmNlT3B0aW9ucywgUmVtb3RlU2tpbGxTb3VyY2UsIFJlbW90ZVNraWxsc09wdGlvbiwgTG9jYWxTa2lsbERpcmVjdG9yeU1vdW50LCBNZW1vcnlTa2lsbE1vdW50LCBMb2NhbFNraWxsTW91bnQsIFByb3Zpc2lvblJlbW90ZVNraWxsc09wdGlvbnMsIFByb3Zpc2lvbmVkUmVtb3RlU2tpbGxzLCBSZW1vdGVTa2lsbENhY2hlRW50cnksIFJlbW90ZVNraWxsc01ldGFkYXRhIH0gZnJvbSBcIi4vc3JjL3JlbW90ZS1za2lsbHMudHNcIjtcbmV4cG9ydCB7IE1BU1RSQV9PUklHSU5fS0VZIH0gZnJvbSBcIi4vc3JjL3JlcXVlc3QtY29udGV4dC50c1wiO1xuZXhwb3J0IHR5cGUgeyBEYXRhYnJpY2tzRmV0Y2hJbml0IH0gZnJvbSBcIi4vc3JjL3Jlc3QudHNcIjtcbmV4cG9ydCB7IE1hc3RyYVNlcnZlciB9IGZyb20gXCIuL3NyYy9zZXJ2ZXIudHNcIjtcbmV4cG9ydCB0eXBlIHsgQXR0cmlidXRlZElkZW50aXR5LCBNYXN0cmFBcGlHYXRlT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9zZXJ2ZXIudHNcIjtcbmV4cG9ydCB7IE1BU1RSQV9NT0RFTF9PVkVSUklERV9LRVksIE1BU1RSQV9SRVNPTFZFRF9NT0RFTF9LRVkgfSBmcm9tIFwiLi9zcmMvc2VydmluZy50c1wiO1xuZXhwb3J0IHR5cGUgeyBNb2RlbE92ZXJyaWRlUmVxdWVzdCB9IGZyb20gXCIuL3NyYy9zZXJ2aW5nLnRzXCI7XG5leHBvcnQgeyBPUkdBTklaQVRJT05fQVNTSVNUQU5UX1BBVEgsIE9SR0FOSVpBVElPTl9TS0lMTFNfUEFUSCB9IGZyb20gXCIuL3NyYy9za2lsbC1wYXRocy50c1wiO1xuZXhwb3J0IHsgU1RBVEVNRU5UX1JPV19DQVAgfSBmcm9tIFwiLi9zcmMvc3RhdGVtZW50LnRzXCI7XG5leHBvcnQgdHlwZSB7IFN0YXRlbWVudEVtYmVkRGF0YSB9IGZyb20gXCIuL3NyYy9zdGF0ZW1lbnQudHNcIjtcbmV4cG9ydCB7IFRZUE9HUkFQSFlfUlVMRSB9IGZyb20gXCIuL3NyYy9zdHlsZS50c1wiO1xuZXhwb3J0IHsgVElUTEVfSU5TVFJVQ1RJT05TIH0gZnJvbSBcIi4vc3JjL3N1bW1hcml6ZS50c1wiO1xuZXhwb3J0IHR5cGUgeyBTdW1tYXJpemVPcHRpb25zIH0gZnJvbSBcIi4vc3JjL3N1bW1hcml6ZS50c1wiO1xuZXhwb3J0IHsgVFJBQ0VfSU9fTElNSVQsIE1MRkxPV19TUEFOX0lOUFVUU19BVFRSLCBNTEZMT1dfU1BBTl9PVVRQVVRTX0FUVFIsIENIQVRfTUVTU0FHRVNfQVRUUiwgQ0hBVF9SRVNQT05TRV9BVFRSLCBDSEFUX0lERU5USVRZX0FUVFIsIENIQVRfR0VOSUVfVVNFRF9BVFRSLCBNTEZMT1dfU1BBTl9UWVBFX0FUVFIsIEdFTl9BSV9PUEVSQVRJT05fTkFNRV9BVFRSLCBNTEZMT1dfVVNFUl9BVFRSLCBNTEZMT1dfU0VTU0lPTl9BVFRSLCBNTEZMT1dfU1BBTl9UWVBFX0FHRU5ULCBNTEZMT1dfU1BBTl9UWVBFX0dFTklFLCBBcHBNbGZsb3dUcmFjZUluZm9TcGFuUHJvY2Vzc29yIH0gZnJvbSBcIi4vc3JjL3RlbGVtZXRyeS50c1wiO1xuZXhwb3J0IHR5cGUgeyBDaGF0VHVyblRlbGVtZXRyeU9wdGlvbnMsIENoYXRUcmFjZVRhZ1ZhbHVlIH0gZnJvbSBcIi4vc3JjL3RlbGVtZXRyeS50c1wiO1xuZXhwb3J0IHsgTUxGTE9XX1RSQUNFX1RBR19QUkVGSVgsIE1MRkxPV19BR0VOVF9UQUcsIE1MRkxPV19HRU5JRV9UQUcsIE1MRkxPV19PQk9fQVVUSF9UQUcsIE1MRkxPV19TUF9BVVRIX1RBRywgTUxGTE9XX0xPQ0FMX1RBRywgTUxGTE9XX0FHRU5UX1RBR19BVFRSLCBNTEZMT1dfR0VOSUVfVEFHX0FUVFIsIEFQUEtJVF9BR0VOVF9UUkFDRV9ST09UX0FUVFIsIE1MRkxPV19PQk9fQVVUSF9UQUdfQVRUUiwgTUxGTE9XX1NQX0FVVEhfVEFHX0FUVFIsIE1MRkxPV19MT0NBTF9UQUdfQVRUUiB9IGZyb20gXCIuL3NyYy90cmFjZS1hdHRyaWJ1dGVzLnRzXCI7XG5leHBvcnQgdHlwZSB7IFNjaGVtYUlzc3VlcyB9IGZyb20gXCIuL3NyYy92YWxpZGF0aW9uLnRzXCI7XG5leHBvcnQgeyBERUZBVUxUX0RBVEFCUklDS1NfV09SS1NQQUNFX1BBVEhTIH0gZnJvbSBcIi4vc3JjL3dvcmtzcGFjZXMudHNcIjtcbmV4cG9ydCB0eXBlIHsgRGF0YWJyaWNrc1dvcmtzcGFjZUNvbnRleHQsIERhdGFicmlja3NXb3Jrc3BhY2VQYXRoT3B0aW9ucywgRGF0YWJyaWNrc1dvcmtzcGFjZVBhdGgsIERhdGFicmlja3NXb3Jrc3BhY2VQYXRoVmFsdWUsIERhdGFicmlja3NXb3Jrc3BhY2VDYWNoZUZpbHRlciwgRGF0YWJyaWNrc1dvcmtzcGFjZUNhY2hlLCBXb3Jrc3BhY2VTYW5kYm94U2VsZWN0aW9uLCBEYXRhYnJpY2tzV29ya3NwYWNlT3B0aW9ucyB9IGZyb20gXCIuL3NyYy93b3Jrc3BhY2VzLnRzXCI7XG4iXX0=
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRywwQkFBMEIsQ0FBQztBQUM3RCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLEtBQUssTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEtBQUssSUFBSSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxRQUFRLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxLQUFLLFVBQVUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEtBQUssV0FBVyxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sS0FBSyxLQUFLLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxLQUFLLFNBQVMsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEtBQUssUUFBUSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sS0FBSyxHQUFHLE1BQU0sY0FBYyxDQUFDO0FBQ3BDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEtBQUssS0FBSyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sS0FBSyxZQUFZLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxLQUFLLGFBQWEsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxVQUFVLE1BQU0scUJBQXFCLENBQUM7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QixDQUFDO0FBRXZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLHVCQUF1QixFQUFFLHdCQUF3QixFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLHFCQUFxQixFQUFFLDBCQUEwQixFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLHNCQUFzQixFQUFFLHNCQUFzQixFQUFFLCtCQUErQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFcFcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixFQUFFLDRCQUE0QixFQUFFLHdCQUF3QixFQUFFLHVCQUF1QixFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFelQsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0scUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHRU5FUkFURUQgYnkgcHJvamVuIHdhdGNoIC0gRE8gTk9UIEVESVQuXG4vLyBSZWdlbmVyYXRlZCBmcm9tIHRoZSBleHBvcnRpbmcgbW9kdWxlcyBpbiAuL3NyYy5cbi8vIEhhbmQgZWRpdHMgYXJlIG92ZXJ3cml0dGVuIG9uIHRoZSBuZXh0IHdhdGNoOyB0aGlzIGZpbGUgaXMgcmVhZC1vbmx5LlxuXG5leHBvcnQgY29uc3QgUEFDS0FHRV9JREVOVElGSUVSID0gXCJAZGJ4LXRvb2xzL2FwcGtpdC1tYXN0cmFcIjtcbmV4cG9ydCBjb25zdCBQQUNLQUdFX1ZFUlNJT04gPSBcIjAuOS4xMzJcIjtcbmV4cG9ydCAqIGFzIGFnZW50cyBmcm9tIFwiLi9zcmMvYWdlbnRzLnRzXCI7XG5leHBvcnQgKiBhcyBjaGFydCBmcm9tIFwiLi9zcmMvY2hhcnQudHNcIjtcbmV4cG9ydCAqIGFzIGNoYXQgZnJvbSBcIi4vc3JjL2NoYXQudHNcIjtcbmV4cG9ydCAqIGFzIGNvbmZpZyBmcm9tIFwiLi9zcmMvY29uZmlnLnRzXCI7XG5leHBvcnQgKiBhcyBkZWZhdWx0cyBmcm9tIFwiLi9zcmMvZGVmYXVsdHMudHNcIjtcbmV4cG9ydCAqIGFzIGV2YWx1YXRpb24gZnJvbSBcIi4vc3JjL2V2YWx1YXRpb24udHNcIjtcbmV4cG9ydCAqIGFzIGZpbGVzeXN0ZW1zIGZyb20gXCIuL3NyYy9maWxlc3lzdGVtcy50c1wiO1xuZXhwb3J0ICogYXMgZ2VuaWUgZnJvbSBcIi4vc3JjL2dlbmllLnRzXCI7XG5leHBvcnQgKiBhcyBnZW5pZUNoYXQgZnJvbSBcIi4vc3JjL2dlbmllLWNoYXQudHNcIjtcbmV4cG9ydCAqIGFzIGlkZW50aXR5IGZyb20gXCIuL3NyYy9pZGVudGl0eS50c1wiO1xuZXhwb3J0ICogYXMgbWNwIGZyb20gXCIuL3NyYy9tY3AudHNcIjtcbmV4cG9ydCAqIGFzIG1lbW9yeSBmcm9tIFwiLi9zcmMvbWVtb3J5LnRzXCI7XG5leHBvcnQgKiBhcyBtbGZsb3cgZnJvbSBcIi4vc3JjL21sZmxvdy50c1wiO1xuZXhwb3J0ICogYXMgbW9kZWwgZnJvbSBcIi4vc3JjL21vZGVsLnRzXCI7XG5leHBvcnQgKiBhcyBtb250eVNhbmRib3ggZnJvbSBcIi4vc3JjL21vbnR5LXNhbmRib3gudHNcIjtcbmV4cG9ydCAqIGFzIG9ic2VydmFiaWxpdHkgZnJvbSBcIi4vc3JjL29ic2VydmFiaWxpdHkudHNcIjtcbmV4cG9ydCAqIGFzIHBsdWdpbiBmcm9tIFwiLi9zcmMvcGx1Z2luLnRzXCI7XG5leHBvcnQgKiBhcyBwcm9jZXNzb3JzIGZyb20gXCIuL3NyYy9wcm9jZXNzb3JzLnRzXCI7XG5leHBvcnQgKiBhcyByZW1vdGVTa2lsbHMgZnJvbSBcIi4vc3JjL3JlbW90ZS1za2lsbHMudHNcIjtcbmV4cG9ydCAqIGFzIHJlcXVlc3RDb250ZXh0IGZyb20gXCIuL3NyYy9yZXF1ZXN0LWNvbnRleHQudHNcIjtcbmV4cG9ydCAqIGFzIHJlc3QgZnJvbSBcIi4vc3JjL3Jlc3QudHNcIjtcbmV4cG9ydCAqIGFzIHNlcnZlciBmcm9tIFwiLi9zcmMvc2VydmVyLnRzXCI7XG5leHBvcnQgKiBhcyBzZXJ2aW5nIGZyb20gXCIuL3NyYy9zZXJ2aW5nLnRzXCI7XG5leHBvcnQgKiBhcyBza2lsbFBhdGhzIGZyb20gXCIuL3NyYy9za2lsbC1wYXRocy50c1wiO1xuZXhwb3J0ICogYXMgc3RhdGVtZW50IGZyb20gXCIuL3NyYy9zdGF0ZW1lbnQudHNcIjtcbmV4cG9ydCAqIGFzIHN0b3JhZ2VTY2hlbWEgZnJvbSBcIi4vc3JjL3N0b3JhZ2Utc2NoZW1hLnRzXCI7XG5leHBvcnQgKiBhcyBzdHlsZSBmcm9tIFwiLi9zcmMvc3R5bGUudHNcIjtcbmV4cG9ydCAqIGFzIHN1bW1hcml6ZSBmcm9tIFwiLi9zcmMvc3VtbWFyaXplLnRzXCI7XG5leHBvcnQgKiBhcyB0ZWxlbWV0cnkgZnJvbSBcIi4vc3JjL3RlbGVtZXRyeS50c1wiO1xuZXhwb3J0ICogYXMgdHJhY2VBdHRyaWJ1dGVzIGZyb20gXCIuL3NyYy90cmFjZS1hdHRyaWJ1dGVzLnRzXCI7XG5leHBvcnQgKiBhcyB2YWxpZGF0aW9uIGZyb20gXCIuL3NyYy92YWxpZGF0aW9uLnRzXCI7XG5leHBvcnQgKiBhcyB3b3Jrc3BhY2VzIGZyb20gXCIuL3NyYy93b3Jrc3BhY2VzLnRzXCI7XG5leHBvcnQgKiBhcyB3cml0ZXIgZnJvbSBcIi4vc3JjL3dyaXRlci50c1wiO1xuZXhwb3J0IHsgRkFMTEJBQ0tfQUdFTlRfSUQsIERFRkFVTFRfQUdFTlRfTUFYX1NURVBTLCBERUZBVUxUX1RPT0xfV09SS0ZMT1dfSU5TVFJVQ1RJT05TLCBDT0RFX01PREVfUk9VVElOR19JTlNUUlVDVElPTlMsIERFRkFVTFRfU1RZTEVfSU5TVFJVQ1RJT05TIH0gZnJvbSBcIi4vc3JjL2FnZW50cy50c1wiO1xuZXhwb3J0IHR5cGUgeyBNYXN0cmFUb29scywgQXBwS2l0VG9vbE9wdGlvbnMsIFRvb2xraXRPcHRpb25zLCBNYXN0cmFQbHVnaW5Ub29sa2l0UHJvdmlkZXIsIE1hc3RyYVBsdWdpbnMsIE1hc3RyYVRvb2xzRm4sIE1hc3RyYUFnZW50V29ya3NwYWNlUmVzb2x2ZXIsIE1hc3RyYUFnZW50RGVmaW5pdGlvbiwgQW55TWFzdHJhQWdlbnREZWZpbml0aW9uLCBNYXN0cmFTdG9yYWdlQ29uZmlnT3ZlcnJpZGUsIE1hc3RyYU1lbW9yeUNvbmZpZ092ZXJyaWRlLCBBZ2VudERlZmF1bHRNb2RlbCwgQnVpbHRBZ2VudHMsIE1hc3RyYU91dHB1dFByb2Nlc3NvckZhY3RvcnkgfSBmcm9tIFwiLi9zcmMvYWdlbnRzLnRzXCI7XG5leHBvcnQgeyBjaGFydFBsYW5TY2hlbWEsIGNoYXJ0UGxhbm5lclJlcXVlc3RTY2hlbWEsIGNoYXJ0VG9vbE91dHB1dFNjaGVtYSB9IGZyb20gXCIuL3NyYy9jaGFydC50c1wiO1xuZXhwb3J0IHR5cGUgeyBDaGFydFBsYW5uZXJSZXF1ZXN0LCBDaGFydFRvb2xPdXRwdXQsIFByZXBhcmVDaGFydE9wdGlvbnMsIEZldGNoQ2hhcnRPcHRpb25zIH0gZnJvbSBcIi4vc3JjL2NoYXJ0LnRzXCI7XG5leHBvcnQgeyBNQVNUUkFfVVNFUl9LRVksIE1BU1RSQV9VU0VSX05BTUVfS0VZLCBNQVNUUkFfVVNFUl9FTUFJTF9LRVksIE1BU1RSQV9BVVRIX01PREVfS0VZLCBNQVNUUkFfUkVRVUVTVF9JRF9LRVksIE1BU1RSQV9TQ09QRVNfS0VZLCBUUkFDRV9SRVFVRVNUX0NPTlRFWFRfS0VZUywgTUFTVFJBX0NPTkZJR19TQ0hFTUEgfSBmcm9tIFwiLi9zcmMvY29uZmlnLnRzXCI7XG5leHBvcnQgdHlwZSB7IFVzZXIsIE1hc3RyYU1lbW9yeUNvbmZpZywgTWFzdHJhV29ya3NwYWNlU2tpbGxzQ29uZmlnLCBNYXN0cmFDb2RlTW9kZUNvbmZpZywgTWFzdHJhTWNwQ29uZmlnLCBNYXN0cmFQbHVnaW5Db25maWcgfSBmcm9tIFwiLi9zcmMvY29uZmlnLnRzXCI7XG5leHBvcnQgeyBtb2RlbENhdGFsb2d1ZURlZmF1bHRzLCBnZW5pZVN1Z2dlc3Rpb25EZWZhdWx0cywgZ2VuaWVDb252ZXJzYXRpb25SZWFkRGVmYXVsdHMsIGdlbmllQ29udmVyc2F0aW9uV3JpdGVEZWZhdWx0cywgc3RhdGVtZW50RGF0YURlZmF1bHRzLCBjaGFydEZldGNoRGVmYXVsdHMsIGZlZWRiYWNrV3JpdGVEZWZhdWx0cyB9IGZyb20gXCIuL3NyYy9kZWZhdWx0cy50c1wiO1xuZXhwb3J0IHR5cGUgeyBNYXN0cmFFdmFsRHJpdmVyT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9ldmFsdWF0aW9uLnRzXCI7XG5leHBvcnQgeyBNYXN0cmFGaWxlU3lzdGVtQWRhcHRlciwgTW91bnRlZENvbXBvc2l0ZUZpbGVzeXN0ZW0gfSBmcm9tIFwiLi9zcmMvZmlsZXN5c3RlbXMudHNcIjtcbmV4cG9ydCB0eXBlIHsgTWFzdHJhRmlsZVN5c3RlbUFkYXB0ZXJPcHRpb25zIH0gZnJvbSBcIi4vc3JjL2ZpbGVzeXN0ZW1zLnRzXCI7XG5leHBvcnQgeyBERUZBVUxUX0dFTklFX0FMSUFTLCBHRU5JRV9JTlNUUlVDVElPTlMgfSBmcm9tIFwiLi9zcmMvZ2VuaWUudHNcIjtcbmV4cG9ydCB0eXBlIHsgR2VuaWVTcGFjZUNvbmZpZywgR2VuaWVTcGFjZXNDb25maWcgfSBmcm9tIFwiLi9zcmMvZ2VuaWUudHNcIjtcbmV4cG9ydCB0eXBlIHsgR2VuaWVDaGF0U3BhY2UgfSBmcm9tIFwiLi9zcmMvZ2VuaWUtY2hhdC50c1wiO1xuZXhwb3J0IHsgSURFTlRJVFlfRU5WLCBJREVOVElUWV9NT0RFUywgREVGQVVMVF9JREVOVElUWV9NT0RFLCBVU0VSX0lEX0hFQURFUiwgVVNFUl9FTUFJTF9IRUFERVIsIHJlcXVlc3RVc2VySWQsIHJlcXVlc3RVc2VyRW1haWwsIHVzZVNlcnZpY2VQcmluY2lwYWwgfSBmcm9tIFwiLi9zcmMvaWRlbnRpdHkudHNcIjtcbmV4cG9ydCB0eXBlIHsgTWFzdHJhSWRlbnRpdHlNb2RlIH0gZnJvbSBcIi4vc3JjL2lkZW50aXR5LnRzXCI7XG5leHBvcnQgdHlwZSB7IFJlc29sdmVkTWNwIH0gZnJvbSBcIi4vc3JjL21jcC50c1wiO1xuZXhwb3J0IHsgTWVtb3J5QnVpbGRlciB9IGZyb20gXCIuL3NyYy9tZW1vcnkudHNcIjtcbmV4cG9ydCB7IEFnZW50VHJhY2VTcGFuUHJvY2Vzc29yIH0gZnJvbSBcIi4vc3JjL21sZmxvdy50c1wiO1xuZXhwb3J0IHR5cGUgeyBBcHBNbGZsb3dUcmFjZUluZm8sIExvZ0ZlZWRiYWNrUGFyYW1zIH0gZnJvbSBcIi4vc3JjL21sZmxvdy50c1wiO1xuZXhwb3J0IHsgUkVTUE9OU0VTX1BST1ZJREVSX09QVElPTlMgfSBmcm9tIFwiLi9zcmMvbW9kZWwudHNcIjtcbmV4cG9ydCB0eXBlIHsgQnVpbGRNb2RlbE92ZXJyaWRlcyB9IGZyb20gXCIuL3NyYy9tb2RlbC50c1wiO1xuZXhwb3J0IHsgTW9udHlTYW5kYm94IH0gZnJvbSBcIi4vc3JjL21vbnR5LXNhbmRib3gudHNcIjtcbmV4cG9ydCB0eXBlIHsgTW9udHlTYW5kYm94T3B0aW9ucyB9IGZyb20gXCIuL3NyYy9tb250eS1zYW5kYm94LnRzXCI7XG5leHBvcnQgdHlwZSB7IEJ1aWxkT2JzZXJ2YWJpbGl0eU9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvb2JzZXJ2YWJpbGl0eS50c1wiO1xuZXhwb3J0IHsgTWFzdHJhUGx1Z2luLCBtYXN0cmEgfSBmcm9tIFwiLi9zcmMvcGx1Z2luLnRzXCI7XG5leHBvcnQgeyBzdHJpcFN0YWxlQ2hhcnRzUHJvY2Vzc29yIH0gZnJvbSBcIi4vc3JjL3Byb2Nlc3NvcnMudHNcIjtcbmV4cG9ydCB7IEFJVE9PTFNfU0tJTExTX01PVU5ULCBSRU1PVEVfU0tJTExTX01PVU5ULCBBSVRPT0xTX1JFRlJFU0hfVFRMX01TLCBBSVRPT0xTX1NPVVJDRSB9IGZyb20gXCIuL3NyYy9yZW1vdGUtc2tpbGxzLnRzXCI7XG5leHBvcnQgdHlwZSB7IEFpVG9vbHNTb3VyY2UsIFJlbW90ZVNraWxsU291cmNlT3B0aW9ucywgUmVtb3RlU2tpbGxTb3VyY2UsIFJlbW90ZVNraWxsc09wdGlvbiwgTG9jYWxTa2lsbERpcmVjdG9yeU1vdW50LCBNZW1vcnlTa2lsbE1vdW50LCBMb2NhbFNraWxsTW91bnQsIFByb3Zpc2lvblJlbW90ZVNraWxsc09wdGlvbnMsIFByb3Zpc2lvbmVkUmVtb3RlU2tpbGxzLCBSZW1vdGVTa2lsbENhY2hlRW50cnksIFJlbW90ZVNraWxsc01ldGFkYXRhIH0gZnJvbSBcIi4vc3JjL3JlbW90ZS1za2lsbHMudHNcIjtcbmV4cG9ydCB7IE1BU1RSQV9PUklHSU5fS0VZIH0gZnJvbSBcIi4vc3JjL3JlcXVlc3QtY29udGV4dC50c1wiO1xuZXhwb3J0IHR5cGUgeyBEYXRhYnJpY2tzRmV0Y2hJbml0IH0gZnJvbSBcIi4vc3JjL3Jlc3QudHNcIjtcbmV4cG9ydCB7IE1hc3RyYVNlcnZlciB9IGZyb20gXCIuL3NyYy9zZXJ2ZXIudHNcIjtcbmV4cG9ydCB0eXBlIHsgQXR0cmlidXRlZElkZW50aXR5LCBNYXN0cmFBcGlHYXRlT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9zZXJ2ZXIudHNcIjtcbmV4cG9ydCB7IE1BU1RSQV9NT0RFTF9PVkVSUklERV9LRVksIE1BU1RSQV9SRVNPTFZFRF9NT0RFTF9LRVkgfSBmcm9tIFwiLi9zcmMvc2VydmluZy50c1wiO1xuZXhwb3J0IHR5cGUgeyBNb2RlbE92ZXJyaWRlUmVxdWVzdCB9IGZyb20gXCIuL3NyYy9zZXJ2aW5nLnRzXCI7XG5leHBvcnQgeyBPUkdBTklaQVRJT05fQVNTSVNUQU5UX1BBVEgsIE9SR0FOSVpBVElPTl9TS0lMTFNfUEFUSCB9IGZyb20gXCIuL3NyYy9za2lsbC1wYXRocy50c1wiO1xuZXhwb3J0IHsgU1RBVEVNRU5UX1JPV19DQVAgfSBmcm9tIFwiLi9zcmMvc3RhdGVtZW50LnRzXCI7XG5leHBvcnQgdHlwZSB7IFN0YXRlbWVudEVtYmVkRGF0YSB9IGZyb20gXCIuL3NyYy9zdGF0ZW1lbnQudHNcIjtcbmV4cG9ydCB7IFRZUE9HUkFQSFlfUlVMRSB9IGZyb20gXCIuL3NyYy9zdHlsZS50c1wiO1xuZXhwb3J0IHsgVElUTEVfSU5TVFJVQ1RJT05TIH0gZnJvbSBcIi4vc3JjL3N1bW1hcml6ZS50c1wiO1xuZXhwb3J0IHR5cGUgeyBTdW1tYXJpemVPcHRpb25zIH0gZnJvbSBcIi4vc3JjL3N1bW1hcml6ZS50c1wiO1xuZXhwb3J0IHsgVFJBQ0VfSU9fTElNSVQsIE1MRkxPV19TUEFOX0lOUFVUU19BVFRSLCBNTEZMT1dfU1BBTl9PVVRQVVRTX0FUVFIsIENIQVRfTUVTU0FHRVNfQVRUUiwgQ0hBVF9SRVNQT05TRV9BVFRSLCBDSEFUX0lERU5USVRZX0FUVFIsIENIQVRfR0VOSUVfVVNFRF9BVFRSLCBNTEZMT1dfU1BBTl9UWVBFX0FUVFIsIEdFTl9BSV9PUEVSQVRJT05fTkFNRV9BVFRSLCBNTEZMT1dfVVNFUl9BVFRSLCBNTEZMT1dfU0VTU0lPTl9BVFRSLCBNTEZMT1dfU1BBTl9UWVBFX0FHRU5ULCBNTEZMT1dfU1BBTl9UWVBFX0dFTklFLCBBcHBNbGZsb3dUcmFjZUluZm9TcGFuUHJvY2Vzc29yIH0gZnJvbSBcIi4vc3JjL3RlbGVtZXRyeS50c1wiO1xuZXhwb3J0IHR5cGUgeyBDaGF0VHVyblRlbGVtZXRyeU9wdGlvbnMsIENoYXRUcmFjZVRhZ1ZhbHVlIH0gZnJvbSBcIi4vc3JjL3RlbGVtZXRyeS50c1wiO1xuZXhwb3J0IHsgTUxGTE9XX1RSQUNFX1RBR19QUkVGSVgsIE1MRkxPV19BR0VOVF9UQUcsIE1MRkxPV19HRU5JRV9UQUcsIE1MRkxPV19PQk9fQVVUSF9UQUcsIE1MRkxPV19TUF9BVVRIX1RBRywgTUxGTE9XX0xPQ0FMX1RBRywgTUxGTE9XX0FHRU5UX1RBR19BVFRSLCBNTEZMT1dfR0VOSUVfVEFHX0FUVFIsIEFQUEtJVF9BR0VOVF9UUkFDRV9ST09UX0FUVFIsIE1MRkxPV19PQk9fQVVUSF9UQUdfQVRUUiwgTUxGTE9XX1NQX0FVVEhfVEFHX0FUVFIsIE1MRkxPV19MT0NBTF9UQUdfQVRUUiB9IGZyb20gXCIuL3NyYy90cmFjZS1hdHRyaWJ1dGVzLnRzXCI7XG5leHBvcnQgdHlwZSB7IFNjaGVtYUlzc3VlcyB9IGZyb20gXCIuL3NyYy92YWxpZGF0aW9uLnRzXCI7XG5leHBvcnQgeyBERUZBVUxUX0RBVEFCUklDS1NfV09SS1NQQUNFX1BBVEhTIH0gZnJvbSBcIi4vc3JjL3dvcmtzcGFjZXMudHNcIjtcbmV4cG9ydCB0eXBlIHsgRGF0YWJyaWNrc1dvcmtzcGFjZUNvbnRleHQsIERhdGFicmlja3NXb3Jrc3BhY2VQYXRoT3B0aW9ucywgRGF0YWJyaWNrc1dvcmtzcGFjZVBhdGgsIERhdGFicmlja3NXb3Jrc3BhY2VQYXRoVmFsdWUsIERhdGFicmlja3NXb3Jrc3BhY2VDYWNoZUZpbHRlciwgRGF0YWJyaWNrc1dvcmtzcGFjZUNhY2hlLCBXb3Jrc3BhY2VTYW5kYm94U2VsZWN0aW9uLCBEYXRhYnJpY2tzV29ya3NwYWNlT3B0aW9ucyB9IGZyb20gXCIuL3NyYy93b3Jrc3BhY2VzLnRzXCI7XG4iXX0=
|
package/package.json
CHANGED
|
@@ -35,21 +35,21 @@
|
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"@databricks/appkit": "0.81.0",
|
|
38
|
-
"@dbx-tools/appkit": "^0.9.
|
|
39
|
-
"@dbx-tools/cache": "^0.9.
|
|
40
|
-
"@dbx-tools/core": "^0.9.
|
|
41
|
-
"@dbx-tools/databricks": "^0.9.
|
|
42
|
-
"@dbx-tools/fs": "^0.9.
|
|
43
|
-
"@dbx-tools/genie": "^0.9.
|
|
44
|
-
"@dbx-tools/model": "^0.9.
|
|
45
|
-
"@dbx-tools/model-protocol": "^0.9.
|
|
46
|
-
"@dbx-tools/path": "^0.9.
|
|
47
|
-
"@dbx-tools/postgres": "^0.9.
|
|
48
|
-
"@dbx-tools/shared-core": "^0.9.
|
|
49
|
-
"@dbx-tools/shared-fs": "^0.9.
|
|
50
|
-
"@dbx-tools/shared-genie": "^0.9.
|
|
51
|
-
"@dbx-tools/shared-mastra": "^0.9.
|
|
52
|
-
"@dbx-tools/shared-model": "^0.9.
|
|
38
|
+
"@dbx-tools/appkit": "^0.9.132",
|
|
39
|
+
"@dbx-tools/cache": "^0.9.132",
|
|
40
|
+
"@dbx-tools/core": "^0.9.132",
|
|
41
|
+
"@dbx-tools/databricks": "^0.9.132",
|
|
42
|
+
"@dbx-tools/fs": "^0.9.132",
|
|
43
|
+
"@dbx-tools/genie": "^0.9.132",
|
|
44
|
+
"@dbx-tools/model": "^0.9.132",
|
|
45
|
+
"@dbx-tools/model-protocol": "^0.9.132",
|
|
46
|
+
"@dbx-tools/path": "^0.9.132",
|
|
47
|
+
"@dbx-tools/postgres": "^0.9.132",
|
|
48
|
+
"@dbx-tools/shared-core": "^0.9.132",
|
|
49
|
+
"@dbx-tools/shared-fs": "^0.9.132",
|
|
50
|
+
"@dbx-tools/shared-genie": "^0.9.132",
|
|
51
|
+
"@dbx-tools/shared-mastra": "^0.9.132",
|
|
52
|
+
"@dbx-tools/shared-model": "^0.9.132",
|
|
53
53
|
"@mastra/ai-sdk": "1.10.5",
|
|
54
54
|
"@mastra/core": "1.71.0",
|
|
55
55
|
"@mastra/express": "1.5.15",
|
|
@@ -223,7 +223,7 @@
|
|
|
223
223
|
"./package.json": "./package.json"
|
|
224
224
|
}
|
|
225
225
|
},
|
|
226
|
-
"version": "0.9.
|
|
226
|
+
"version": "0.9.132",
|
|
227
227
|
"types": "./lib/index.d.ts",
|
|
228
228
|
"dbxToolsConfig": {
|
|
229
229
|
"tags": [
|