@dbx-tools/appkit-mastra 0.6.15 → 0.6.36
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 +87 -11
- package/index.ts +6 -3
- package/lib/index.d.ts +6 -3
- package/lib/index.js +5 -2
- package/lib/src/chart.d.ts +39 -9
- package/lib/src/chart.js +460 -77
- package/lib/src/genie.js +24 -24
- package/lib/src/plugin.js +29 -3
- package/lib/src/remote-skills.js +10 -10
- package/lib/src/skill-paths.d.ts +15 -0
- package/lib/src/skill-paths.js +18 -0
- package/lib/src/workspaces.d.ts +85 -15
- package/lib/src/workspaces.js +128 -64
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +13 -13
- package/src/chart.ts +519 -83
- package/src/genie.ts +24 -23
- package/src/plugin.ts +28 -2
- package/src/remote-skills.ts +10 -11
- package/src/skill-paths.ts +19 -0
- package/src/workspaces.ts +194 -84
package/README.md
CHANGED
|
@@ -210,11 +210,39 @@ Every `agents.createAgent()` gets a default Mastra `Workspace` from
|
|
|
210
210
|
current OBO user's `WorkspaceClient`, so Mastra can discover Assistant-style
|
|
211
211
|
`SKILL.md` files at request time.
|
|
212
212
|
|
|
213
|
+
Locations are a named map (`skillFolders`), so an app refers to a tree by name
|
|
214
|
+
rather than repeating a path. Each name mounts at `/<name>` in the workspace
|
|
215
|
+
namespace (override with `mount`) and carries its own policy: `readable`
|
|
216
|
+
(scanned for `SKILL.md`, default `true`) and `writable` (default `false`).
|
|
217
|
+
`DEFAULT_SKILL_FOLDERS` supplies these:
|
|
218
|
+
|
|
219
|
+
| Name | Location | Readable | Writable |
|
|
220
|
+
| -------------------- | ---------------------------------- | -------- | -------- |
|
|
221
|
+
| `workspace-team` | `/Workspace/.assistant/skills` | yes | no |
|
|
222
|
+
| `workspace-team-app` | `/Users/<email>/.assistant/skills` | yes | yes |
|
|
223
|
+
|
|
224
|
+
A consuming library merges over that map: a matching name overrides the
|
|
225
|
+
default, `false` disables it, and any other name adds a location. A folder
|
|
226
|
+
points at a Databricks `path` (a literal, or a function resolving one per
|
|
227
|
+
request) or supplies a ready `filesystem` for anything the OBO client cannot
|
|
228
|
+
reach.
|
|
229
|
+
|
|
213
230
|
```ts
|
|
214
231
|
const agent = agents.createAgent({
|
|
215
232
|
instructions: "Use mounted workspace skills when relevant.",
|
|
216
233
|
workspace: workspaces.createWorkspace({
|
|
217
|
-
|
|
234
|
+
skillFolders: {
|
|
235
|
+
// Point an existing name somewhere else.
|
|
236
|
+
"workspace-team": { path: "/Workspace/Shared/team-skills" },
|
|
237
|
+
// Drop a default entirely.
|
|
238
|
+
"workspace-team-app": false,
|
|
239
|
+
// Add an app-owned tree the agent may write back to.
|
|
240
|
+
runbooks: { path: "/Workspace/Shared/runbooks/skills", writable: true },
|
|
241
|
+
// Mount for file tools without adding it to skill discovery.
|
|
242
|
+
templates: { path: "/Workspace/Shared/templates", readable: false },
|
|
243
|
+
// Any Mastra filesystem works, including per-request ones.
|
|
244
|
+
volume: { filesystem: ({ requestContext }) => volumeFor(requestContext) },
|
|
245
|
+
},
|
|
218
246
|
mounts: [
|
|
219
247
|
async () => ({
|
|
220
248
|
mounts: { "/reference": myFilesystem },
|
|
@@ -225,9 +253,12 @@ const agent = agents.createAgent({
|
|
|
225
253
|
});
|
|
226
254
|
```
|
|
227
255
|
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
256
|
+
A folder whose location resolves to `undefined` is skipped for that request,
|
|
257
|
+
which is how `workspace-team-app` drops out when no user email is stamped.
|
|
258
|
+
`assistantSkills: false` starts from an empty map, leaving only the
|
|
259
|
+
`skillFolders` given. Production workspace mounts require a forwarded token
|
|
260
|
+
with `workspace`, `workspace.workspace`, or `all-apis` scope. Development mode
|
|
261
|
+
skips that gate for local iteration.
|
|
231
262
|
|
|
232
263
|
## Remote Skills
|
|
233
264
|
|
|
@@ -409,6 +440,41 @@ Agents can return `[chart:<id>]` and `[data:<statement_id>]` markers in prose.
|
|
|
409
440
|
The embed route resolves them later, which avoids forcing the language model to
|
|
410
441
|
inline large tables or wait for chart planning before continuing its answer.
|
|
411
442
|
|
|
443
|
+
### Chart Types And Hand-Written Charts
|
|
444
|
+
|
|
445
|
+
The planner does not emit a raw Echarts option. It fills a small plan (chart
|
|
446
|
+
type, categories, series) that `planToEchartsOption` expands, so tooltip,
|
|
447
|
+
legend, grid, and brand defaults stay consistent and a fast model has few ways
|
|
448
|
+
to go wrong. The vocabulary is `bar`, `horizontalBar`, `line`, `area`, `combo`,
|
|
449
|
+
`waterfall`, `scatter`, `heatmap`, `radar`, `pie`, `funnel`, `treemap`.
|
|
450
|
+
|
|
451
|
+
Some of those are Echarts series types and some are not. `heatmap`, `radar`,
|
|
452
|
+
`pie`, `funnel`, `treemap`, and `scatter` map to native series. `area` compiles
|
|
453
|
+
to a line with an `areaStyle`, `horizontalBar` to a bar with swapped axes,
|
|
454
|
+
`combo` to per-series types, and `waterfall` to the stacked transparent-helper
|
|
455
|
+
bars Echarts documents, since it has no waterfall series.
|
|
456
|
+
|
|
457
|
+
For a chart the plan cannot express at all - sankey, boxplot, candlestick,
|
|
458
|
+
sunburst, gauge, network graph, calendar, parallel coordinates, a `custom`
|
|
459
|
+
series - the planner picks `custom` and hand-writes the entire Echarts option
|
|
460
|
+
into the plan's `option` field. That option is passed through as-is: no axes,
|
|
461
|
+
tooltip, or legend are grafted on, and only a centered title is filled in when
|
|
462
|
+
the object omits one. A configured `brand` theme still applies underneath, so
|
|
463
|
+
anything the option sets wins over it.
|
|
464
|
+
|
|
465
|
+
`option` is a JSON object encoded in a **string**, not a nested object, and
|
|
466
|
+
that is deliberate. The plan is the planner's provider-enforced structured
|
|
467
|
+
output, so a free-form object would become an unconstrained
|
|
468
|
+
`additionalProperties` schema, which strict OpenAI and Gemini serving endpoints
|
|
469
|
+
reject outright. That would break every chart rather than one. A string is
|
|
470
|
+
universally representable, and a malformed one fails only its own chart. Values
|
|
471
|
+
must be plain JSON: a string-valued Echarts formatter is treated as a template,
|
|
472
|
+
and nothing in the option is ever evaluated as code.
|
|
473
|
+
|
|
474
|
+
Prefer a listed type whenever one fits. `custom` trades the shared defaults for
|
|
475
|
+
reach, so it is the answer for an unsupported chart shape, not a way to restyle
|
|
476
|
+
a supported one.
|
|
477
|
+
|
|
412
478
|
### Brand The Charts
|
|
413
479
|
|
|
414
480
|
Pass a `brand` to the plugin to theme every generated chart with your brand's
|
|
@@ -424,9 +490,17 @@ plugin.mastra({ agents, storage: true, brand: brand.defaultBrandContext });
|
|
|
424
490
|
libraries, so charts, email, and the chat UI theme from one source. The chart
|
|
425
491
|
planner derives an Echarts theme from it: a series color cycle seeded from
|
|
426
492
|
`colors.primary` / `colors.accent` (plus a colorblind-friendly spread so
|
|
427
|
-
many-series charts stay legible) and
|
|
428
|
-
|
|
429
|
-
|
|
493
|
+
many-series charts stay legible) and the `typography.sans` font stack. Charts
|
|
494
|
+
render to canvas, so this is applied server-side on the Echarts option rather
|
|
495
|
+
than through the browser `[data-brand]` CSS bridge.
|
|
496
|
+
|
|
497
|
+
What the planner does **not** set is any text color. A spec is planned here and
|
|
498
|
+
read later in a browser whose light/dark theme the server cannot know, so the
|
|
499
|
+
brand's single (light) foreground would produce near-black labels on a dark chat
|
|
500
|
+
surface. The renderer resolves tick labels, axis names, grid lines, and the
|
|
501
|
+
tooltip from AppKit's live CSS tokens instead - see
|
|
502
|
+
[`@dbx-tools/ui-mastra`](../../ui/mastra)'s chart theming. Brand identity is the
|
|
503
|
+
same in either mode; chrome is not.
|
|
430
504
|
|
|
431
505
|
## Model Selection
|
|
432
506
|
|
|
@@ -716,10 +790,12 @@ client that talks to these routes.
|
|
|
716
790
|
- `defaults` - cache / retry / timeout settings for the plugin's own outbound
|
|
717
791
|
calls, one constant per call site with its reasoning.
|
|
718
792
|
- `memory` / `storageSchema` - Lakebase-backed Mastra store/vector setup.
|
|
719
|
-
- `workspaces` / `filesystems` - Mastra workspace creation
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
`
|
|
793
|
+
- `workspaces` / `filesystems` - Mastra workspace creation with named
|
|
794
|
+
`skillFolders` (defaults `workspace-team` / `workspace-team-app`, overridable
|
|
795
|
+
by consumers); `filesystems(fs)` wraps any `@dbx-tools/shared-fs`
|
|
796
|
+
`FileSystem` (including `@dbx-tools/databricks` / `@dbx-tools/fs`) as a
|
|
797
|
+
Mastra mount, with `scratchFilesystem` (fresh `tmpFS` + random id) when no
|
|
798
|
+
other mount resolves.
|
|
723
799
|
- `remote-skills` - startup provisioning of remote `SKILL.md` sources into the
|
|
724
800
|
Databricks Assistant skills tree (or a local temp dir): the `"aitools"`
|
|
725
801
|
constant reads Databricks' own skill repo directly, and any other source goes
|
package/index.ts
CHANGED
|
@@ -23,6 +23,7 @@ export * as rest from "./src/rest.ts";
|
|
|
23
23
|
export * as server from "./src/server.ts";
|
|
24
24
|
export * as serving from "./src/serving.ts";
|
|
25
25
|
export * as servingSanitize from "./src/serving-sanitize.ts";
|
|
26
|
+
export * as skillPaths from "./src/skill-paths.ts";
|
|
26
27
|
export * as statement from "./src/statement.ts";
|
|
27
28
|
export * as storageSchema from "./src/storage-schema.ts";
|
|
28
29
|
export * as summarize from "./src/summarize.ts";
|
|
@@ -33,8 +34,8 @@ export * as workspaces from "./src/workspaces.ts";
|
|
|
33
34
|
export * as writer from "./src/writer.ts";
|
|
34
35
|
export { FALLBACK_AGENT_ID, DEFAULT_AGENT_MAX_STEPS, DEFAULT_STYLE_INSTRUCTIONS } from "./src/agents.ts";
|
|
35
36
|
export type { MastraTools, AppKitToolOptions, ToolkitOptions, MastraPluginToolkitProvider, MastraPlugins, MastraToolsFn, MastraAgentWorkspaceResolver, MastraAgentDefinition, MastraStorageConfigOverride, MastraMemoryConfigOverride, BuiltAgents } from "./src/agents.ts";
|
|
36
|
-
export { chartPlanSchema, chartPlannerRequestSchema } from "./src/chart.ts";
|
|
37
|
-
export type { ChartPlannerRequest, PrepareChartOptions, FetchChartOptions } from "./src/chart.ts";
|
|
37
|
+
export { chartPlanSchema, chartPlannerRequestSchema, chartToolOutputSchema } from "./src/chart.ts";
|
|
38
|
+
export type { ChartPlannerRequest, ChartToolOutput, PrepareChartOptions, FetchChartOptions } from "./src/chart.ts";
|
|
38
39
|
export { MASTRA_USER_KEY, MASTRA_USER_NAME_KEY, MASTRA_USER_EMAIL_KEY, MASTRA_REQUEST_ID_KEY, MASTRA_SCOPES_KEY, TRACE_REQUEST_CONTEXT_KEYS, MASTRA_CONFIG_SCHEMA } from "./src/config.ts";
|
|
39
40
|
export type { User, MastraMemoryConfig, MastraMcpConfig, MastraPluginConfig } from "./src/config.ts";
|
|
40
41
|
export { modelCatalogueDefaults, genieSuggestionDefaults, statementDataDefaults, chartFetchDefaults, feedbackWriteDefaults } from "./src/defaults.ts";
|
|
@@ -61,10 +62,12 @@ export type { AttributedIdentity, MastraApiGateOptions } from "./src/server.ts";
|
|
|
61
62
|
export { MASTRA_MODEL_OVERRIDE_KEY } from "./src/serving.ts";
|
|
62
63
|
export type { ModelOverrideRequest } from "./src/serving.ts";
|
|
63
64
|
export type { ServingChatMessage } from "./src/serving-sanitize.ts";
|
|
65
|
+
export { ASSISTANT_SHARED_SKILLS_PATH } from "./src/skill-paths.ts";
|
|
64
66
|
export { STATEMENT_ROW_CAP } from "./src/statement.ts";
|
|
65
67
|
export { TITLE_INSTRUCTIONS } from "./src/summarize.ts";
|
|
66
68
|
export type { SummarizeOptions } from "./src/summarize.ts";
|
|
67
69
|
export type { ListThreadsOptions, DeleteThreadOptions, RenameThreadOptions, ThreadsRouteOptions } from "./src/threads.ts";
|
|
68
70
|
export { TRACE_IO_LIMIT, MLFLOW_SPAN_INPUTS_ATTR, MLFLOW_SPAN_OUTPUTS_ATTR } from "./src/trace-io.ts";
|
|
69
71
|
export type { SchemaIssues } from "./src/validation.ts";
|
|
70
|
-
export
|
|
72
|
+
export { DEFAULT_SKILL_FOLDERS } from "./src/workspaces.ts";
|
|
73
|
+
export type { WorkspaceMountContext, SkillFolderValue, SkillFolderOptions, WorkspaceMountContribution, WorkspaceMountResolver, DefaultSkillFolderName, CreateWorkspaceOptions } from "./src/workspaces.ts";
|
package/lib/index.d.ts
CHANGED
|
@@ -19,6 +19,7 @@ export * as rest from "./src/rest.ts";
|
|
|
19
19
|
export * as server from "./src/server.ts";
|
|
20
20
|
export * as serving from "./src/serving.ts";
|
|
21
21
|
export * as servingSanitize from "./src/serving-sanitize.ts";
|
|
22
|
+
export * as skillPaths from "./src/skill-paths.ts";
|
|
22
23
|
export * as statement from "./src/statement.ts";
|
|
23
24
|
export * as storageSchema from "./src/storage-schema.ts";
|
|
24
25
|
export * as summarize from "./src/summarize.ts";
|
|
@@ -29,8 +30,8 @@ export * as workspaces from "./src/workspaces.ts";
|
|
|
29
30
|
export * as writer from "./src/writer.ts";
|
|
30
31
|
export { FALLBACK_AGENT_ID, DEFAULT_AGENT_MAX_STEPS, DEFAULT_STYLE_INSTRUCTIONS } from "./src/agents.ts";
|
|
31
32
|
export type { MastraTools, AppKitToolOptions, ToolkitOptions, MastraPluginToolkitProvider, MastraPlugins, MastraToolsFn, MastraAgentWorkspaceResolver, MastraAgentDefinition, MastraStorageConfigOverride, MastraMemoryConfigOverride, BuiltAgents } from "./src/agents.ts";
|
|
32
|
-
export { chartPlanSchema, chartPlannerRequestSchema } from "./src/chart.ts";
|
|
33
|
-
export type { ChartPlannerRequest, PrepareChartOptions, FetchChartOptions } from "./src/chart.ts";
|
|
33
|
+
export { chartPlanSchema, chartPlannerRequestSchema, chartToolOutputSchema } from "./src/chart.ts";
|
|
34
|
+
export type { ChartPlannerRequest, ChartToolOutput, PrepareChartOptions, FetchChartOptions } from "./src/chart.ts";
|
|
34
35
|
export { MASTRA_USER_KEY, MASTRA_USER_NAME_KEY, MASTRA_USER_EMAIL_KEY, MASTRA_REQUEST_ID_KEY, MASTRA_SCOPES_KEY, TRACE_REQUEST_CONTEXT_KEYS, MASTRA_CONFIG_SCHEMA } from "./src/config.ts";
|
|
35
36
|
export type { User, MastraMemoryConfig, MastraMcpConfig, MastraPluginConfig } from "./src/config.ts";
|
|
36
37
|
export { modelCatalogueDefaults, genieSuggestionDefaults, statementDataDefaults, chartFetchDefaults, feedbackWriteDefaults } from "./src/defaults.ts";
|
|
@@ -57,10 +58,12 @@ export type { AttributedIdentity, MastraApiGateOptions } from "./src/server.ts";
|
|
|
57
58
|
export { MASTRA_MODEL_OVERRIDE_KEY } from "./src/serving.ts";
|
|
58
59
|
export type { ModelOverrideRequest } from "./src/serving.ts";
|
|
59
60
|
export type { ServingChatMessage } from "./src/serving-sanitize.ts";
|
|
61
|
+
export { ASSISTANT_SHARED_SKILLS_PATH } from "./src/skill-paths.ts";
|
|
60
62
|
export { STATEMENT_ROW_CAP } from "./src/statement.ts";
|
|
61
63
|
export { TITLE_INSTRUCTIONS } from "./src/summarize.ts";
|
|
62
64
|
export type { SummarizeOptions } from "./src/summarize.ts";
|
|
63
65
|
export type { ListThreadsOptions, DeleteThreadOptions, RenameThreadOptions, ThreadsRouteOptions } from "./src/threads.ts";
|
|
64
66
|
export { TRACE_IO_LIMIT, MLFLOW_SPAN_INPUTS_ATTR, MLFLOW_SPAN_OUTPUTS_ATTR } from "./src/trace-io.ts";
|
|
65
67
|
export type { SchemaIssues } from "./src/validation.ts";
|
|
66
|
-
export
|
|
68
|
+
export { DEFAULT_SKILL_FOLDERS } from "./src/workspaces.ts";
|
|
69
|
+
export type { WorkspaceMountContext, SkillFolderValue, SkillFolderOptions, WorkspaceMountContribution, WorkspaceMountResolver, DefaultSkillFolderName, CreateWorkspaceOptions } from "./src/workspaces.ts";
|
package/lib/index.js
CHANGED
|
@@ -22,6 +22,7 @@ export * as rest from "./src/rest.js";
|
|
|
22
22
|
export * as server from "./src/server.js";
|
|
23
23
|
export * as serving from "./src/serving.js";
|
|
24
24
|
export * as servingSanitize from "./src/serving-sanitize.js";
|
|
25
|
+
export * as skillPaths from "./src/skill-paths.js";
|
|
25
26
|
export * as statement from "./src/statement.js";
|
|
26
27
|
export * as storageSchema from "./src/storage-schema.js";
|
|
27
28
|
export * as summarize from "./src/summarize.js";
|
|
@@ -31,7 +32,7 @@ export * as validation from "./src/validation.js";
|
|
|
31
32
|
export * as workspaces from "./src/workspaces.js";
|
|
32
33
|
export * as writer from "./src/writer.js";
|
|
33
34
|
export { FALLBACK_AGENT_ID, DEFAULT_AGENT_MAX_STEPS, DEFAULT_STYLE_INSTRUCTIONS } from "./src/agents.js";
|
|
34
|
-
export { chartPlanSchema, chartPlannerRequestSchema } from "./src/chart.js";
|
|
35
|
+
export { chartPlanSchema, chartPlannerRequestSchema, chartToolOutputSchema } from "./src/chart.js";
|
|
35
36
|
export { MASTRA_USER_KEY, MASTRA_USER_NAME_KEY, MASTRA_USER_EMAIL_KEY, MASTRA_REQUEST_ID_KEY, MASTRA_SCOPES_KEY, TRACE_REQUEST_CONTEXT_KEYS, MASTRA_CONFIG_SCHEMA } from "./src/config.js";
|
|
36
37
|
export { modelCatalogueDefaults, genieSuggestionDefaults, statementDataDefaults, chartFetchDefaults, feedbackWriteDefaults } from "./src/defaults.js";
|
|
37
38
|
export { MastraFileSystemAdapter } from "./src/filesystems.js";
|
|
@@ -43,7 +44,9 @@ export { stripStaleChartsProcessor, ResultProcessor } from "./src/processors.js"
|
|
|
43
44
|
export { AITOOLS_SOURCE } from "./src/remote-skills.js";
|
|
44
45
|
export { MastraServer } from "./src/server.js";
|
|
45
46
|
export { MASTRA_MODEL_OVERRIDE_KEY } from "./src/serving.js";
|
|
47
|
+
export { ASSISTANT_SHARED_SKILLS_PATH } from "./src/skill-paths.js";
|
|
46
48
|
export { STATEMENT_ROW_CAP } from "./src/statement.js";
|
|
47
49
|
export { TITLE_INSTRUCTIONS } from "./src/summarize.js";
|
|
48
50
|
export { TRACE_IO_LIMIT, MLFLOW_SPAN_INPUTS_ATTR, MLFLOW_SPAN_OUTPUTS_ATTR } from "./src/trace-io.js";
|
|
49
|
-
|
|
51
|
+
export { DEFAULT_SKILL_FOLDERS } from "./src/workspaces.js";
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxLQUFLLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxLQUFLLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEtBQUssUUFBUSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sS0FBSyxXQUFXLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxLQUFLLEtBQUssTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEtBQUssT0FBTyxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxRQUFRLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxLQUFLLEdBQUcsTUFBTSxjQUFjLENBQUM7QUFDcEMsT0FBTyxLQUFLLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxLQUFLLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxLQUFLLGFBQWEsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEtBQUssVUFBVSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xELE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLFVBQVUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEtBQUssWUFBWSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxJQUFJLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEtBQUssZUFBZSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sS0FBSyxVQUFVLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxLQUFLLFNBQVMsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEtBQUssYUFBYSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sS0FBSyxTQUFTLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEtBQUssT0FBTyxNQUFNLG1CQUFtQixDQUFDO0FBQzdDLE9BQU8sS0FBSyxVQUFVLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxLQUFLLFVBQVUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpHLE9BQU8sRUFBRSxlQUFlLEVBQUUseUJBQXlCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRyxPQUFPLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixFQUFFLGlCQUFpQixFQUFFLDBCQUEwQixFQUFFLG9CQUFvQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0wsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEosT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFL0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHekUsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHM0gsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBS2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUd4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHN0QsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSx1QkFBdUIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXRHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR0VORVJBVEVEIGJ5IHByb2plbiB3YXRjaCAtIERPIE5PVCBFRElULlxuLy8gUmVnZW5lcmF0ZWQgZnJvbSB0aGUgZXhwb3J0aW5nIG1vZHVsZXMgaW4gLi9zcmMuXG4vLyBIYW5kIGVkaXRzIGFyZSBvdmVyd3JpdHRlbiBvbiB0aGUgbmV4dCB3YXRjaDsgdGhpcyBmaWxlIGlzIHJlYWQtb25seS5cblxuZXhwb3J0ICogYXMgYWdlbnRzIGZyb20gXCIuL3NyYy9hZ2VudHMudHNcIjtcbmV4cG9ydCAqIGFzIGNoYXJ0IGZyb20gXCIuL3NyYy9jaGFydC50c1wiO1xuZXhwb3J0ICogYXMgY29uZmlnIGZyb20gXCIuL3NyYy9jb25maWcudHNcIjtcbmV4cG9ydCAqIGFzIGRlZmF1bHRzIGZyb20gXCIuL3NyYy9kZWZhdWx0cy50c1wiO1xuZXhwb3J0ICogYXMgZmlsZXN5c3RlbXMgZnJvbSBcIi4vc3JjL2ZpbGVzeXN0ZW1zLnRzXCI7XG5leHBvcnQgKiBhcyBnZW5pZSBmcm9tIFwiLi9zcmMvZ2VuaWUudHNcIjtcbmV4cG9ydCAqIGFzIGhpc3RvcnkgZnJvbSBcIi4vc3JjL2hpc3RvcnkudHNcIjtcbmV4cG9ydCAqIGFzIGlkZW50aXR5IGZyb20gXCIuL3NyYy9pZGVudGl0eS50c1wiO1xuZXhwb3J0ICogYXMgbWNwIGZyb20gXCIuL3NyYy9tY3AudHNcIjtcbmV4cG9ydCAqIGFzIG1lbW9yeSBmcm9tIFwiLi9zcmMvbWVtb3J5LnRzXCI7XG5leHBvcnQgKiBhcyBtbGZsb3cgZnJvbSBcIi4vc3JjL21sZmxvdy50c1wiO1xuZXhwb3J0ICogYXMgbW9kZWwgZnJvbSBcIi4vc3JjL21vZGVsLnRzXCI7XG5leHBvcnQgKiBhcyBvYnNlcnZhYmlsaXR5IGZyb20gXCIuL3NyYy9vYnNlcnZhYmlsaXR5LnRzXCI7XG5leHBvcnQgKiBhcyBwYWdpbmF0aW9uIGZyb20gXCIuL3NyYy9wYWdpbmF0aW9uLnRzXCI7XG5leHBvcnQgKiBhcyBwbHVnaW4gZnJvbSBcIi4vc3JjL3BsdWdpbi50c1wiO1xuZXhwb3J0ICogYXMgcHJvY2Vzc29ycyBmcm9tIFwiLi9zcmMvcHJvY2Vzc29ycy50c1wiO1xuZXhwb3J0ICogYXMgcmVtb3RlU2tpbGxzIGZyb20gXCIuL3NyYy9yZW1vdGUtc2tpbGxzLnRzXCI7XG5leHBvcnQgKiBhcyByZXN0IGZyb20gXCIuL3NyYy9yZXN0LnRzXCI7XG5leHBvcnQgKiBhcyBzZXJ2ZXIgZnJvbSBcIi4vc3JjL3NlcnZlci50c1wiO1xuZXhwb3J0ICogYXMgc2VydmluZyBmcm9tIFwiLi9zcmMvc2VydmluZy50c1wiO1xuZXhwb3J0ICogYXMgc2VydmluZ1Nhbml0aXplIGZyb20gXCIuL3NyYy9zZXJ2aW5nLXNhbml0aXplLnRzXCI7XG5leHBvcnQgKiBhcyBza2lsbFBhdGhzIGZyb20gXCIuL3NyYy9za2lsbC1wYXRocy50c1wiO1xuZXhwb3J0ICogYXMgc3RhdGVtZW50IGZyb20gXCIuL3NyYy9zdGF0ZW1lbnQudHNcIjtcbmV4cG9ydCAqIGFzIHN0b3JhZ2VTY2hlbWEgZnJvbSBcIi4vc3JjL3N0b3JhZ2Utc2NoZW1hLnRzXCI7XG5leHBvcnQgKiBhcyBzdW1tYXJpemUgZnJvbSBcIi4vc3JjL3N1bW1hcml6ZS50c1wiO1xuZXhwb3J0ICogYXMgdGhyZWFkcyBmcm9tIFwiLi9zcmMvdGhyZWFkcy50c1wiO1xuZXhwb3J0ICogYXMgdHJhY2VJbyBmcm9tIFwiLi9zcmMvdHJhY2UtaW8udHNcIjtcbmV4cG9ydCAqIGFzIHZhbGlkYXRpb24gZnJvbSBcIi4vc3JjL3ZhbGlkYXRpb24udHNcIjtcbmV4cG9ydCAqIGFzIHdvcmtzcGFjZXMgZnJvbSBcIi4vc3JjL3dvcmtzcGFjZXMudHNcIjtcbmV4cG9ydCAqIGFzIHdyaXRlciBmcm9tIFwiLi9zcmMvd3JpdGVyLnRzXCI7XG5leHBvcnQgeyBGQUxMQkFDS19BR0VOVF9JRCwgREVGQVVMVF9BR0VOVF9NQVhfU1RFUFMsIERFRkFVTFRfU1RZTEVfSU5TVFJVQ1RJT05TIH0gZnJvbSBcIi4vc3JjL2FnZW50cy50c1wiO1xuZXhwb3J0IHR5cGUgeyBNYXN0cmFUb29scywgQXBwS2l0VG9vbE9wdGlvbnMsIFRvb2xraXRPcHRpb25zLCBNYXN0cmFQbHVnaW5Ub29sa2l0UHJvdmlkZXIsIE1hc3RyYVBsdWdpbnMsIE1hc3RyYVRvb2xzRm4sIE1hc3RyYUFnZW50V29ya3NwYWNlUmVzb2x2ZXIsIE1hc3RyYUFnZW50RGVmaW5pdGlvbiwgTWFzdHJhU3RvcmFnZUNvbmZpZ092ZXJyaWRlLCBNYXN0cmFNZW1vcnlDb25maWdPdmVycmlkZSwgQnVpbHRBZ2VudHMgfSBmcm9tIFwiLi9zcmMvYWdlbnRzLnRzXCI7XG5leHBvcnQgeyBjaGFydFBsYW5TY2hlbWEsIGNoYXJ0UGxhbm5lclJlcXVlc3RTY2hlbWEsIGNoYXJ0VG9vbE91dHB1dFNjaGVtYSB9IGZyb20gXCIuL3NyYy9jaGFydC50c1wiO1xuZXhwb3J0IHR5cGUgeyBDaGFydFBsYW5uZXJSZXF1ZXN0LCBDaGFydFRvb2xPdXRwdXQsIFByZXBhcmVDaGFydE9wdGlvbnMsIEZldGNoQ2hhcnRPcHRpb25zIH0gZnJvbSBcIi4vc3JjL2NoYXJ0LnRzXCI7XG5leHBvcnQgeyBNQVNUUkFfVVNFUl9LRVksIE1BU1RSQV9VU0VSX05BTUVfS0VZLCBNQVNUUkFfVVNFUl9FTUFJTF9LRVksIE1BU1RSQV9SRVFVRVNUX0lEX0tFWSwgTUFTVFJBX1NDT1BFU19LRVksIFRSQUNFX1JFUVVFU1RfQ09OVEVYVF9LRVlTLCBNQVNUUkFfQ09ORklHX1NDSEVNQSB9IGZyb20gXCIuL3NyYy9jb25maWcudHNcIjtcbmV4cG9ydCB0eXBlIHsgVXNlciwgTWFzdHJhTWVtb3J5Q29uZmlnLCBNYXN0cmFNY3BDb25maWcsIE1hc3RyYVBsdWdpbkNvbmZpZyB9IGZyb20gXCIuL3NyYy9jb25maWcudHNcIjtcbmV4cG9ydCB7IG1vZGVsQ2F0YWxvZ3VlRGVmYXVsdHMsIGdlbmllU3VnZ2VzdGlvbkRlZmF1bHRzLCBzdGF0ZW1lbnREYXRhRGVmYXVsdHMsIGNoYXJ0RmV0Y2hEZWZhdWx0cywgZmVlZGJhY2tXcml0ZURlZmF1bHRzIH0gZnJvbSBcIi4vc3JjL2RlZmF1bHRzLnRzXCI7XG5leHBvcnQgeyBNYXN0cmFGaWxlU3lzdGVtQWRhcHRlciB9IGZyb20gXCIuL3NyYy9maWxlc3lzdGVtcy50c1wiO1xuZXhwb3J0IHR5cGUgeyBNYXN0cmFGaWxlU3lzdGVtQWRhcHRlck9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvZmlsZXN5c3RlbXMudHNcIjtcbmV4cG9ydCB7IERFRkFVTFRfR0VOSUVfQUxJQVMsIEdFTklFX0lOU1RSVUNUSU9OUyB9IGZyb20gXCIuL3NyYy9nZW5pZS50c1wiO1xuZXhwb3J0IHR5cGUgeyBHZW5pZVNwYWNlQ29uZmlnLCBHZW5pZVNwYWNlc0NvbmZpZyB9IGZyb20gXCIuL3NyYy9nZW5pZS50c1wiO1xuZXhwb3J0IHR5cGUgeyBMb2FkSGlzdG9yeU9wdGlvbnMsIENsZWFySGlzdG9yeU9wdGlvbnMsIEhpc3RvcnlSb3V0ZU9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvaGlzdG9yeS50c1wiO1xuZXhwb3J0IHsgSURFTlRJVFlfRU5WLCBJREVOVElUWV9NT0RFUywgREVGQVVMVF9JREVOVElUWV9NT0RFLCBVU0VSX0lEX0hFQURFUiwgVVNFUl9FTUFJTF9IRUFERVIgfSBmcm9tIFwiLi9zcmMvaWRlbnRpdHkudHNcIjtcbmV4cG9ydCB0eXBlIHsgTWFzdHJhSWRlbnRpdHlNb2RlIH0gZnJvbSBcIi4vc3JjL2lkZW50aXR5LnRzXCI7XG5leHBvcnQgdHlwZSB7IFJlc29sdmVkTWNwIH0gZnJvbSBcIi4vc3JjL21jcC50c1wiO1xuZXhwb3J0IHsgTWVtb3J5QnVpbGRlciB9IGZyb20gXCIuL3NyYy9tZW1vcnkudHNcIjtcbmV4cG9ydCB0eXBlIHsgTG9nRmVlZGJhY2tQYXJhbXMgfSBmcm9tIFwiLi9zcmMvbWxmbG93LnRzXCI7XG5leHBvcnQgdHlwZSB7IEJ1aWxkTW9kZWxPdmVycmlkZXMgfSBmcm9tIFwiLi9zcmMvbW9kZWwudHNcIjtcbmV4cG9ydCB0eXBlIHsgQnVpbGRPYnNlcnZhYmlsaXR5T3B0aW9ucyB9IGZyb20gXCIuL3NyYy9vYnNlcnZhYmlsaXR5LnRzXCI7XG5leHBvcnQgdHlwZSB7IFBlclBhZ2VCb3VuZHMgfSBmcm9tIFwiLi9zcmMvcGFnaW5hdGlvbi50c1wiO1xuZXhwb3J0IHsgTWFzdHJhUGx1Z2luLCBtYXN0cmEgfSBmcm9tIFwiLi9zcmMvcGx1Z2luLnRzXCI7XG5leHBvcnQgeyBzdHJpcFN0YWxlQ2hhcnRzUHJvY2Vzc29yLCBSZXN1bHRQcm9jZXNzb3IgfSBmcm9tIFwiLi9zcmMvcHJvY2Vzc29ycy50c1wiO1xuZXhwb3J0IHsgQUlUT09MU19TT1VSQ0UgfSBmcm9tIFwiLi9zcmMvcmVtb3RlLXNraWxscy50c1wiO1xuZXhwb3J0IHR5cGUgeyBBaVRvb2xzU291cmNlLCBSZW1vdGVTa2lsbFNvdXJjZU9wdGlvbnMsIFJlbW90ZVNraWxsU291cmNlLCBSZW1vdGVTa2lsbHNPcHRpb24sIFByb3Zpc2lvblJlbW90ZVNraWxsc09wdGlvbnMsIFByb3Zpc2lvbmVkUmVtb3RlU2tpbGxzLCBSZW1vdGVTa2lsbENhY2hlRW50cnksIFJlbW90ZVNraWxsc01ldGFkYXRhIH0gZnJvbSBcIi4vc3JjL3JlbW90ZS1za2lsbHMudHNcIjtcbmV4cG9ydCB0eXBlIHsgRGF0YWJyaWNrc0ZldGNoSW5pdCB9IGZyb20gXCIuL3NyYy9yZXN0LnRzXCI7XG5leHBvcnQgeyBNYXN0cmFTZXJ2ZXIgfSBmcm9tIFwiLi9zcmMvc2VydmVyLnRzXCI7XG5leHBvcnQgdHlwZSB7IEF0dHJpYnV0ZWRJZGVudGl0eSwgTWFzdHJhQXBpR2F0ZU9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvc2VydmVyLnRzXCI7XG5leHBvcnQgeyBNQVNUUkFfTU9ERUxfT1ZFUlJJREVfS0VZIH0gZnJvbSBcIi4vc3JjL3NlcnZpbmcudHNcIjtcbmV4cG9ydCB0eXBlIHsgTW9kZWxPdmVycmlkZVJlcXVlc3QgfSBmcm9tIFwiLi9zcmMvc2VydmluZy50c1wiO1xuZXhwb3J0IHR5cGUgeyBTZXJ2aW5nQ2hhdE1lc3NhZ2UgfSBmcm9tIFwiLi9zcmMvc2VydmluZy1zYW5pdGl6ZS50c1wiO1xuZXhwb3J0IHsgQVNTSVNUQU5UX1NIQVJFRF9TS0lMTFNfUEFUSCB9IGZyb20gXCIuL3NyYy9za2lsbC1wYXRocy50c1wiO1xuZXhwb3J0IHsgU1RBVEVNRU5UX1JPV19DQVAgfSBmcm9tIFwiLi9zcmMvc3RhdGVtZW50LnRzXCI7XG5leHBvcnQgeyBUSVRMRV9JTlNUUlVDVElPTlMgfSBmcm9tIFwiLi9zcmMvc3VtbWFyaXplLnRzXCI7XG5leHBvcnQgdHlwZSB7IFN1bW1hcml6ZU9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvc3VtbWFyaXplLnRzXCI7XG5leHBvcnQgdHlwZSB7IExpc3RUaHJlYWRzT3B0aW9ucywgRGVsZXRlVGhyZWFkT3B0aW9ucywgUmVuYW1lVGhyZWFkT3B0aW9ucywgVGhyZWFkc1JvdXRlT3B0aW9ucyB9IGZyb20gXCIuL3NyYy90aHJlYWRzLnRzXCI7XG5leHBvcnQgeyBUUkFDRV9JT19MSU1JVCwgTUxGTE9XX1NQQU5fSU5QVVRTX0FUVFIsIE1MRkxPV19TUEFOX09VVFBVVFNfQVRUUiB9IGZyb20gXCIuL3NyYy90cmFjZS1pby50c1wiO1xuZXhwb3J0IHR5cGUgeyBTY2hlbWFJc3N1ZXMgfSBmcm9tIFwiLi9zcmMvdmFsaWRhdGlvbi50c1wiO1xuZXhwb3J0IHsgREVGQVVMVF9TS0lMTF9GT0xERVJTIH0gZnJvbSBcIi4vc3JjL3dvcmtzcGFjZXMudHNcIjtcbmV4cG9ydCB0eXBlIHsgV29ya3NwYWNlTW91bnRDb250ZXh0LCBTa2lsbEZvbGRlclZhbHVlLCBTa2lsbEZvbGRlck9wdGlvbnMsIFdvcmtzcGFjZU1vdW50Q29udHJpYnV0aW9uLCBXb3Jrc3BhY2VNb3VudFJlc29sdmVyLCBEZWZhdWx0U2tpbGxGb2xkZXJOYW1lLCBDcmVhdGVXb3Jrc3BhY2VPcHRpb25zIH0gZnJvbSBcIi4vc3JjL3dvcmtzcGFjZXMudHNcIjtcbiJdfQ==
|
package/lib/src/chart.d.ts
CHANGED
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
*
|
|
27
27
|
* @module
|
|
28
28
|
*/
|
|
29
|
+
import { type BrandContext } from "@dbx-tools/shared-core";
|
|
29
30
|
import { type Chart } from "@dbx-tools/shared-mastra";
|
|
30
31
|
import type { RequestContext } from "@mastra/core/request-context";
|
|
31
32
|
import { z } from "zod";
|
|
@@ -41,13 +42,16 @@ import { type MastraPluginConfig } from "./config.ts";
|
|
|
41
42
|
* across charts.
|
|
42
43
|
*/
|
|
43
44
|
export declare const chartPlanSchema: z.ZodObject<{
|
|
44
|
-
chartType: z.ZodUnion<readonly [z.ZodLiteral<"bar">, z.ZodLiteral<"line">, z.ZodLiteral<"area">, z.ZodLiteral<"scatter">, z.ZodLiteral<"pie">]>;
|
|
45
|
+
chartType: z.ZodUnion<readonly [z.ZodLiteral<"bar">, z.ZodLiteral<"horizontalBar">, z.ZodLiteral<"line">, z.ZodLiteral<"area">, z.ZodLiteral<"combo">, z.ZodLiteral<"waterfall">, z.ZodLiteral<"scatter">, z.ZodLiteral<"heatmap">, z.ZodLiteral<"radar">, z.ZodLiteral<"pie">, z.ZodLiteral<"funnel">, z.ZodLiteral<"treemap">, z.ZodLiteral<"custom">]>;
|
|
45
46
|
title: z.ZodOptional<z.ZodString>;
|
|
46
47
|
xAxisLabel: z.ZodOptional<z.ZodString>;
|
|
47
48
|
yAxisLabel: z.ZodOptional<z.ZodString>;
|
|
48
49
|
categories: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
49
|
-
|
|
50
|
+
yCategories: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
51
|
+
series: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
50
52
|
name: z.ZodString;
|
|
53
|
+
type: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"bar">, z.ZodLiteral<"line">, z.ZodLiteral<"area">]>>;
|
|
54
|
+
yAxisIndex: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<0>, z.ZodLiteral<1>]>>;
|
|
51
55
|
data: z.ZodArray<z.ZodCatch<z.ZodPipe<z.ZodTransform<number | number[] | {
|
|
52
56
|
name: string;
|
|
53
57
|
value: number;
|
|
@@ -55,8 +59,10 @@ export declare const chartPlanSchema: z.ZodObject<{
|
|
|
55
59
|
name: z.ZodString;
|
|
56
60
|
value: z.ZodNumber;
|
|
57
61
|
}, z.core.$strip>]>>>>;
|
|
58
|
-
}, z.core.$strip
|
|
62
|
+
}, z.core.$strip>>>;
|
|
63
|
+
option: z.ZodOptional<z.ZodString>;
|
|
59
64
|
}, z.core.$strip>;
|
|
65
|
+
type ChartPlan = z.infer<typeof chartPlanSchema>;
|
|
60
66
|
/**
|
|
61
67
|
* Canonical planner input shape. Tools that source rows from an
|
|
62
68
|
* inline dataset (`render_data`) use it as their `inputSchema`
|
|
@@ -72,6 +78,19 @@ export declare const chartPlannerRequestSchema: z.ZodObject<{
|
|
|
72
78
|
data: z.ZodReadonly<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
73
79
|
}, z.core.$strip>;
|
|
74
80
|
export type ChartPlannerRequest = z.infer<typeof chartPlannerRequestSchema>;
|
|
81
|
+
/**
|
|
82
|
+
* Agent-facing result of either chart-producing tool.
|
|
83
|
+
*
|
|
84
|
+
* `marker` is deliberately redundant with `chartId`: the host still keys the
|
|
85
|
+
* cache by id, while the model gets the exact opaque token to copy into prose
|
|
86
|
+
* and has no reason to invent or retype a UUID.
|
|
87
|
+
*/
|
|
88
|
+
export declare const chartToolOutputSchema: z.ZodObject<{
|
|
89
|
+
chartId: z.ZodString;
|
|
90
|
+
marker: z.ZodString;
|
|
91
|
+
}, z.core.$strip>;
|
|
92
|
+
/** Result returned synchronously while chart planning continues in the background. */
|
|
93
|
+
export type ChartToolOutput = z.infer<typeof chartToolOutputSchema>;
|
|
75
94
|
/** Inputs to {@link prepareChart}. */
|
|
76
95
|
export interface PrepareChartOptions {
|
|
77
96
|
/** Plugin config; resolves the planner agent's model. */
|
|
@@ -124,9 +143,7 @@ export interface PrepareChartOptions {
|
|
|
124
143
|
* - on planner success: `{ chartId, result }`
|
|
125
144
|
* - on data / planner failure: `{ chartId, error }`
|
|
126
145
|
*/
|
|
127
|
-
export declare function prepareChart(opts: PrepareChartOptions): Promise<
|
|
128
|
-
chartId: string;
|
|
129
|
-
}>;
|
|
146
|
+
export declare function prepareChart(opts: PrepareChartOptions): Promise<ChartToolOutput>;
|
|
130
147
|
/** Inputs to {@link fetchChart}. */
|
|
131
148
|
export interface FetchChartOptions {
|
|
132
149
|
/**
|
|
@@ -166,6 +183,18 @@ export interface FetchChartOptions {
|
|
|
166
183
|
* so the helper returns immediately.
|
|
167
184
|
*/
|
|
168
185
|
export declare function fetchChart(chartId: string, options: FetchChartOptions): Promise<Chart | undefined>;
|
|
186
|
+
/**
|
|
187
|
+
* Expand a {@link ChartPlan} into a full Echarts `EChartsOption`
|
|
188
|
+
* JSON. Centralized here so the planner agent only fills in the
|
|
189
|
+
* compact plan shape; tooltip / animation / color / grid defaults
|
|
190
|
+
* stay consistent across charts and are easy to tune without
|
|
191
|
+
* retraining model behaviour.
|
|
192
|
+
*
|
|
193
|
+
* When `brand` is set, the resolved spec is themed with the brand's series
|
|
194
|
+
* color cycle and base text style (see {@link brandChartTheme}); otherwise
|
|
195
|
+
* Echarts' defaults apply.
|
|
196
|
+
*/
|
|
197
|
+
export declare function planToEchartsOption(plan: ChartPlan, fallbackTitle: string, brand?: BrandContext): Record<string, unknown>;
|
|
169
198
|
/**
|
|
170
199
|
* Build the `render_data` Mastra tool bound to the given plugin
|
|
171
200
|
* config. Auto-wired as a system tool on every agent (see
|
|
@@ -175,9 +204,8 @@ export declare function fetchChart(chartId: string, options: FetchChartOptions):
|
|
|
175
204
|
* Thin wrapper over {@link prepareChart} for callers that already
|
|
176
205
|
* have a dataset in hand. Mints a `chartId` synchronously, caches
|
|
177
206
|
* an empty placeholder, and kicks off the chart-planner in the
|
|
178
|
-
* background. Returns
|
|
179
|
-
*
|
|
180
|
-
* `/embed/chart/:id` route.
|
|
207
|
+
* background. Returns the `chartId` plus its ready-to-copy `marker`; the host
|
|
208
|
+
* UI resolves that marker through the plugin's `/embed/chart/:id` route.
|
|
181
209
|
*
|
|
182
210
|
* For Genie statement results, prefer the Genie agent's
|
|
183
211
|
* `prepare_chart` tool, which accepts a `statement_id` and
|
|
@@ -189,4 +217,6 @@ export declare function buildRenderDataTool(config: MastraPluginConfig): import(
|
|
|
189
217
|
description?: string | undefined;
|
|
190
218
|
}, {
|
|
191
219
|
chartId: string;
|
|
220
|
+
marker: string;
|
|
192
221
|
}, unknown, unknown, import("@mastra/core/tools").ToolExecutionContext<unknown, unknown, unknown>, "render_data", unknown>;
|
|
222
|
+
export {};
|