@dbx-tools/appkit-mastra 0.3.44 → 0.4.0

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.
Files changed (56) hide show
  1. package/lib/index.d.ts +71 -0
  2. package/lib/index.js +56 -0
  3. package/lib/src/agents.d.ts +347 -0
  4. package/lib/src/agents.js +554 -0
  5. package/lib/src/chart.d.ts +192 -0
  6. package/lib/src/chart.js +638 -0
  7. package/lib/src/config.d.ts +479 -0
  8. package/lib/src/config.js +190 -0
  9. package/lib/src/defaults.d.ts +68 -0
  10. package/lib/src/defaults.js +107 -0
  11. package/lib/src/filesystems.d.ts +208 -0
  12. package/lib/src/filesystems.js +958 -0
  13. package/lib/src/genie.d.ts +166 -0
  14. package/lib/src/genie.js +969 -0
  15. package/lib/src/history.d.ts +97 -0
  16. package/lib/src/history.js +264 -0
  17. package/lib/src/mcp.d.ts +66 -0
  18. package/lib/src/mcp.js +65 -0
  19. package/lib/src/memory.d.ts +111 -0
  20. package/lib/src/memory.js +275 -0
  21. package/lib/src/mlflow.d.ts +63 -0
  22. package/lib/src/mlflow.js +117 -0
  23. package/lib/src/model.d.ts +62 -0
  24. package/lib/src/model.js +168 -0
  25. package/lib/src/observability.d.ts +81 -0
  26. package/lib/src/observability.js +98 -0
  27. package/lib/src/pagination.d.ts +23 -0
  28. package/lib/src/pagination.js +31 -0
  29. package/lib/src/plugin.d.ts +352 -0
  30. package/lib/src/plugin.js +1015 -0
  31. package/lib/src/processors.d.ts +62 -0
  32. package/lib/src/processors.js +162 -0
  33. package/lib/src/rest.d.ts +36 -0
  34. package/lib/src/rest.js +46 -0
  35. package/lib/src/server.d.ts +155 -0
  36. package/lib/src/server.js +336 -0
  37. package/lib/src/serving-sanitize.d.ts +104 -0
  38. package/lib/src/serving-sanitize.js +228 -0
  39. package/lib/src/serving.d.ts +61 -0
  40. package/lib/src/serving.js +78 -0
  41. package/lib/src/statement.d.ts +51 -0
  42. package/lib/src/statement.js +83 -0
  43. package/lib/src/storage-schema.d.ts +14 -0
  44. package/lib/src/storage-schema.js +34 -0
  45. package/lib/src/summarize.d.ts +70 -0
  46. package/lib/src/summarize.js +142 -0
  47. package/lib/src/threads.d.ts +109 -0
  48. package/lib/src/threads.js +301 -0
  49. package/lib/src/validation.d.ts +19 -0
  50. package/lib/src/validation.js +17 -0
  51. package/lib/src/workspaces.d.ts +68 -0
  52. package/lib/src/workspaces.js +246 -0
  53. package/lib/src/writer.d.ts +25 -0
  54. package/lib/src/writer.js +40 -0
  55. package/lib/tsconfig.tsbuildinfo +1 -0
  56. package/package.json +17 -13
package/lib/index.d.ts ADDED
@@ -0,0 +1,71 @@
1
+ export * as agents from "./src/agents.js";
2
+ export * as chart from "./src/chart.js";
3
+ export * as config from "./src/config.js";
4
+ export * as defaults from "./src/defaults.js";
5
+ export * as filesystems from "./src/filesystems.js";
6
+ export * as genie from "./src/genie.js";
7
+ export * as history from "./src/history.js";
8
+ export * as mcp from "./src/mcp.js";
9
+ export * as memory from "./src/memory.js";
10
+ export * as mlflow from "./src/mlflow.js";
11
+ export * as model from "./src/model.js";
12
+ export * as observability from "./src/observability.js";
13
+ export * as pagination from "./src/pagination.js";
14
+ export * as plugin from "./src/plugin.js";
15
+ export * as processors from "./src/processors.js";
16
+ export * as rest from "./src/rest.js";
17
+ export * as server from "./src/server.js";
18
+ export * as serving from "./src/serving.js";
19
+ export * as servingSanitize from "./src/serving-sanitize.js";
20
+ export * as statement from "./src/statement.js";
21
+ export * as storageSchema from "./src/storage-schema.js";
22
+ export * as summarize from "./src/summarize.js";
23
+ export * as threads from "./src/threads.js";
24
+ export * as validation from "./src/validation.js";
25
+ export * as workspaces from "./src/workspaces.js";
26
+ export * as writer from "./src/writer.js";
27
+ export { tool, createAgent, FALLBACK_AGENT_ID, DEFAULT_AGENT_MAX_STEPS, DEFAULT_STYLE_INSTRUCTIONS, buildAgents, approvalGatedToolIds } from "./src/agents.js";
28
+ export type { MastraTools, AppKitToolOptions, ToolkitOptions, MastraPluginToolkitProvider, MastraPlugins, MastraToolsFn, MastraAgentWorkspaceResolver, MastraAgentDefinition, MastraStorageConfigOverride, MastraMemoryConfigOverride, BuiltAgents } from "./src/agents.js";
29
+ export { chartPlanSchema, chartPlannerRequestSchema, prepareChart, fetchChart, buildRenderDataTool } from "./src/chart.js";
30
+ export type { ChartPlannerRequest, PrepareChartOptions, FetchChartOptions } from "./src/chart.js";
31
+ export { MASTRA_USER_KEY, MASTRA_USER_NAME_KEY, MASTRA_USER_EMAIL_KEY, MASTRA_REQUEST_ID_KEY, MASTRA_SCOPES_KEY, TRACE_REQUEST_CONTEXT_KEYS, executionContextUserId, resolveUserKey, MASTRA_CONFIG_SCHEMA } from "./src/config.js";
32
+ export type { User, MastraMemoryConfig, MastraMcpConfig, MastraPluginConfig } from "./src/config.js";
33
+ export { modelCatalogueDefaults, genieSuggestionDefaults, statementDataDefaults, chartFetchDefaults, feedbackWriteDefaults } from "./src/defaults.js";
34
+ export { normalizeDatabricksBasePath, isDbfsPath, isWorkspaceFilesPath, resolveDatabricksAbsolutePath, toDatabricksWorkspacePath, DatabricksWorkspaceFilesystem, emptyFilesystem } from "./src/filesystems.js";
35
+ export type { DatabricksMkdirsMode, DatabricksWorkspaceFilesystemOptions } from "./src/filesystems.js";
36
+ export { DEFAULT_GENIE_ALIAS, GENIE_INSTRUCTIONS, normalizeGenieSpaces, resolveGenieSpaces, buildGenieTools, buildGenieToolkitProvider, collectSpaceSuggestions } from "./src/genie.js";
37
+ export type { GenieSpaceConfig, GenieSpacesConfig } from "./src/genie.js";
38
+ export { loadHistory, clearHistory, historyRoute } from "./src/history.js";
39
+ export type { LoadHistoryOptions, ClearHistoryOptions, HistoryRouteOptions } from "./src/history.js";
40
+ export { buildMcpServer } from "./src/mcp.js";
41
+ export type { ResolvedMcp } from "./src/mcp.js";
42
+ export { createServicePrincipalPool, needsLakebase, createMemoryBuilder, MemoryBuilder } from "./src/memory.js";
43
+ export { mlflowEnabled, resolveFeedbackEnabled, logFeedback } from "./src/mlflow.js";
44
+ export type { LogFeedbackParams } from "./src/mlflow.js";
45
+ export { buildModel } from "./src/model.js";
46
+ export type { BuildModelOverrides } from "./src/model.js";
47
+ export { isOtlpTracingConfigured, buildObservability } from "./src/observability.js";
48
+ export type { BuildObservabilityOptions } from "./src/observability.js";
49
+ export { clampPerPage, parseIntParam } from "./src/pagination.js";
50
+ export type { PerPageBounds } from "./src/pagination.js";
51
+ export { MastraPlugin, mastra } from "./src/plugin.js";
52
+ export { stripStaleChartsProcessor, ResultProcessor } from "./src/processors.js";
53
+ export { databricksFetch, readResponseText, readResponseJson } from "./src/rest.js";
54
+ export type { DatabricksFetchInit } from "./src/rest.js";
55
+ export { stampRequestContextUser, createRequestContext, MastraServer, isMastraRequestAllowed, attachRoutePatchMiddleware } from "./src/server.js";
56
+ export type { MastraApiGateOptions } from "./src/server.js";
57
+ export { MASTRA_MODEL_OVERRIDE_KEY, extractModelOverride, resolveServingConfig } from "./src/serving.js";
58
+ export type { ModelOverrideRequest } from "./src/serving.js";
59
+ export { rewriteServingBody, stripReasoningFromServingMessages, repairAssistantPrefill, rewriteServingResponseBody, flattenChoiceMessageContent } from "./src/serving-sanitize.js";
60
+ export type { ServingChatMessage } from "./src/serving-sanitize.js";
61
+ export { STATEMENT_ROW_CAP, fetchStatementData } from "./src/statement.js";
62
+ export { agentStorageSchemaName } from "./src/storage-schema.js";
63
+ export { TITLE_INSTRUCTIONS, summaryModel, summarizeText, buildSummarizeTool } from "./src/summarize.js";
64
+ export type { SummarizeOptions } from "./src/summarize.js";
65
+ export { listThreads, deleteThread, renameThread, threadsRoute } from "./src/threads.js";
66
+ export type { ListThreadsOptions, DeleteThreadOptions, RenameThreadOptions, ThreadsRouteOptions } from "./src/threads.js";
67
+ export { invalidFields } from "./src/validation.js";
68
+ export type { SchemaIssues } from "./src/validation.js";
69
+ export { createWorkspace } from "./src/workspaces.js";
70
+ export type { CreateWorkspaceOptions } from "./src/workspaces.js";
71
+ export { safeWrite } from "./src/writer.js";
package/lib/index.js ADDED
@@ -0,0 +1,56 @@
1
+ // GENERATED by projen watch - DO NOT EDIT.
2
+ // Regenerated from the exporting modules in ./src.
3
+ // Hand edits are overwritten on the next watch; this file is read-only.
4
+ export * as agents from "./src/agents.js";
5
+ export * as chart from "./src/chart.js";
6
+ export * as config from "./src/config.js";
7
+ export * as defaults from "./src/defaults.js";
8
+ export * as filesystems from "./src/filesystems.js";
9
+ export * as genie from "./src/genie.js";
10
+ export * as history from "./src/history.js";
11
+ export * as mcp from "./src/mcp.js";
12
+ export * as memory from "./src/memory.js";
13
+ export * as mlflow from "./src/mlflow.js";
14
+ export * as model from "./src/model.js";
15
+ export * as observability from "./src/observability.js";
16
+ export * as pagination from "./src/pagination.js";
17
+ export * as plugin from "./src/plugin.js";
18
+ export * as processors from "./src/processors.js";
19
+ export * as rest from "./src/rest.js";
20
+ export * as server from "./src/server.js";
21
+ export * as serving from "./src/serving.js";
22
+ export * as servingSanitize from "./src/serving-sanitize.js";
23
+ export * as statement from "./src/statement.js";
24
+ export * as storageSchema from "./src/storage-schema.js";
25
+ export * as summarize from "./src/summarize.js";
26
+ export * as threads from "./src/threads.js";
27
+ export * as validation from "./src/validation.js";
28
+ export * as workspaces from "./src/workspaces.js";
29
+ export * as writer from "./src/writer.js";
30
+ export { tool, createAgent, FALLBACK_AGENT_ID, DEFAULT_AGENT_MAX_STEPS, DEFAULT_STYLE_INSTRUCTIONS, buildAgents, approvalGatedToolIds } from "./src/agents.js";
31
+ export { chartPlanSchema, chartPlannerRequestSchema, prepareChart, fetchChart, buildRenderDataTool } from "./src/chart.js";
32
+ export { MASTRA_USER_KEY, MASTRA_USER_NAME_KEY, MASTRA_USER_EMAIL_KEY, MASTRA_REQUEST_ID_KEY, MASTRA_SCOPES_KEY, TRACE_REQUEST_CONTEXT_KEYS, executionContextUserId, resolveUserKey, MASTRA_CONFIG_SCHEMA } from "./src/config.js";
33
+ export { modelCatalogueDefaults, genieSuggestionDefaults, statementDataDefaults, chartFetchDefaults, feedbackWriteDefaults } from "./src/defaults.js";
34
+ export { normalizeDatabricksBasePath, isDbfsPath, isWorkspaceFilesPath, resolveDatabricksAbsolutePath, toDatabricksWorkspacePath, DatabricksWorkspaceFilesystem, emptyFilesystem } from "./src/filesystems.js";
35
+ export { DEFAULT_GENIE_ALIAS, GENIE_INSTRUCTIONS, normalizeGenieSpaces, resolveGenieSpaces, buildGenieTools, buildGenieToolkitProvider, collectSpaceSuggestions } from "./src/genie.js";
36
+ export { loadHistory, clearHistory, historyRoute } from "./src/history.js";
37
+ export { buildMcpServer } from "./src/mcp.js";
38
+ export { createServicePrincipalPool, needsLakebase, createMemoryBuilder, MemoryBuilder } from "./src/memory.js";
39
+ export { mlflowEnabled, resolveFeedbackEnabled, logFeedback } from "./src/mlflow.js";
40
+ export { buildModel } from "./src/model.js";
41
+ export { isOtlpTracingConfigured, buildObservability } from "./src/observability.js";
42
+ export { clampPerPage, parseIntParam } from "./src/pagination.js";
43
+ export { MastraPlugin, mastra } from "./src/plugin.js";
44
+ export { stripStaleChartsProcessor, ResultProcessor } from "./src/processors.js";
45
+ export { databricksFetch, readResponseText, readResponseJson } from "./src/rest.js";
46
+ export { stampRequestContextUser, createRequestContext, MastraServer, isMastraRequestAllowed, attachRoutePatchMiddleware } from "./src/server.js";
47
+ export { MASTRA_MODEL_OVERRIDE_KEY, extractModelOverride, resolveServingConfig } from "./src/serving.js";
48
+ export { rewriteServingBody, stripReasoningFromServingMessages, repairAssistantPrefill, rewriteServingResponseBody, flattenChoiceMessageContent } from "./src/serving-sanitize.js";
49
+ export { STATEMENT_ROW_CAP, fetchStatementData } from "./src/statement.js";
50
+ export { agentStorageSchemaName } from "./src/storage-schema.js";
51
+ export { TITLE_INSTRUCTIONS, summaryModel, summarizeText, buildSummarizeTool } from "./src/summarize.js";
52
+ export { listThreads, deleteThread, renameThread, threadsRoute } from "./src/threads.js";
53
+ export { invalidFields } from "./src/validation.js";
54
+ export { createWorkspace } from "./src/workspaces.js";
55
+ export { safeWrite } from "./src/writer.js";
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxPQUFPLEtBQUssTUFBTSxNQUFNLGNBQWMsQ0FBQztBQUN2QyxPQUFPLEtBQUssS0FBSyxNQUFNLGFBQWEsQ0FBQztBQUNyQyxPQUFPLEtBQUssTUFBTSxNQUFNLGNBQWMsQ0FBQztBQUN2QyxPQUFPLEtBQUssUUFBUSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sS0FBSyxXQUFXLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxLQUFLLEtBQUssTUFBTSxhQUFhLENBQUM7QUFDckMsT0FBTyxLQUFLLE9BQU8sTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxLQUFLLEdBQUcsTUFBTSxXQUFXLENBQUM7QUFDakMsT0FBTyxLQUFLLE1BQU0sTUFBTSxjQUFjLENBQUM7QUFDdkMsT0FBTyxLQUFLLE1BQU0sTUFBTSxjQUFjLENBQUM7QUFDdkMsT0FBTyxLQUFLLEtBQUssTUFBTSxhQUFhLENBQUM7QUFDckMsT0FBTyxLQUFLLGFBQWEsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEtBQUssVUFBVSxNQUFNLGtCQUFrQixDQUFDO0FBQy9DLE9BQU8sS0FBSyxNQUFNLE1BQU0sY0FBYyxDQUFDO0FBQ3ZDLE9BQU8sS0FBSyxVQUFVLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxLQUFLLElBQUksTUFBTSxZQUFZLENBQUM7QUFDbkMsT0FBTyxLQUFLLE1BQU0sTUFBTSxjQUFjLENBQUM7QUFDdkMsT0FBTyxLQUFLLE9BQU8sTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxLQUFLLGVBQWUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEtBQUssU0FBUyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sS0FBSyxhQUFhLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxLQUFLLFNBQVMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEtBQUssT0FBTyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEtBQUssVUFBVSxNQUFNLGtCQUFrQixDQUFDO0FBQy9DLE9BQU8sS0FBSyxVQUFVLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxLQUFLLE1BQU0sTUFBTSxjQUFjLENBQUM7QUFDdkMsT0FBTyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsMEJBQTBCLEVBQUUsV0FBVyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTVKLE9BQU8sRUFBRSxlQUFlLEVBQUUseUJBQXlCLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV4SCxPQUFPLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixFQUFFLGlCQUFpQixFQUFFLDBCQUEwQixFQUFFLHNCQUFzQixFQUFFLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVoTyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuSixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsVUFBVSxFQUFFLG9CQUFvQixFQUFFLDZCQUE2QixFQUFFLHlCQUF5QixFQUFFLDZCQUE2QixFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTVNLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxlQUFlLEVBQUUseUJBQXlCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFckwsT0FBTyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXhFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFM0MsT0FBTyxFQUFFLDBCQUEwQixFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDN0csT0FBTyxFQUFFLGFBQWEsRUFBRSxzQkFBc0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFbEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV6QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVsRixPQUFPLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRS9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3BELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRWpGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxvQkFBb0IsRUFBRSxZQUFZLEVBQUUsc0JBQXNCLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFL0ksT0FBTyxFQUFFLHlCQUF5QixFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXRHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxpQ0FBaUMsRUFBRSxzQkFBc0IsRUFBRSwwQkFBMEIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRWhMLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFdEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHRU5FUkFURUQgYnkgcHJvamVuIHdhdGNoIC0gRE8gTk9UIEVESVQuXG4vLyBSZWdlbmVyYXRlZCBmcm9tIHRoZSBleHBvcnRpbmcgbW9kdWxlcyBpbiAuL3NyYy5cbi8vIEhhbmQgZWRpdHMgYXJlIG92ZXJ3cml0dGVuIG9uIHRoZSBuZXh0IHdhdGNoOyB0aGlzIGZpbGUgaXMgcmVhZC1vbmx5LlxuXG5leHBvcnQgKiBhcyBhZ2VudHMgZnJvbSBcIi4vc3JjL2FnZW50c1wiO1xuZXhwb3J0ICogYXMgY2hhcnQgZnJvbSBcIi4vc3JjL2NoYXJ0XCI7XG5leHBvcnQgKiBhcyBjb25maWcgZnJvbSBcIi4vc3JjL2NvbmZpZ1wiO1xuZXhwb3J0ICogYXMgZGVmYXVsdHMgZnJvbSBcIi4vc3JjL2RlZmF1bHRzXCI7XG5leHBvcnQgKiBhcyBmaWxlc3lzdGVtcyBmcm9tIFwiLi9zcmMvZmlsZXN5c3RlbXNcIjtcbmV4cG9ydCAqIGFzIGdlbmllIGZyb20gXCIuL3NyYy9nZW5pZVwiO1xuZXhwb3J0ICogYXMgaGlzdG9yeSBmcm9tIFwiLi9zcmMvaGlzdG9yeVwiO1xuZXhwb3J0ICogYXMgbWNwIGZyb20gXCIuL3NyYy9tY3BcIjtcbmV4cG9ydCAqIGFzIG1lbW9yeSBmcm9tIFwiLi9zcmMvbWVtb3J5XCI7XG5leHBvcnQgKiBhcyBtbGZsb3cgZnJvbSBcIi4vc3JjL21sZmxvd1wiO1xuZXhwb3J0ICogYXMgbW9kZWwgZnJvbSBcIi4vc3JjL21vZGVsXCI7XG5leHBvcnQgKiBhcyBvYnNlcnZhYmlsaXR5IGZyb20gXCIuL3NyYy9vYnNlcnZhYmlsaXR5XCI7XG5leHBvcnQgKiBhcyBwYWdpbmF0aW9uIGZyb20gXCIuL3NyYy9wYWdpbmF0aW9uXCI7XG5leHBvcnQgKiBhcyBwbHVnaW4gZnJvbSBcIi4vc3JjL3BsdWdpblwiO1xuZXhwb3J0ICogYXMgcHJvY2Vzc29ycyBmcm9tIFwiLi9zcmMvcHJvY2Vzc29yc1wiO1xuZXhwb3J0ICogYXMgcmVzdCBmcm9tIFwiLi9zcmMvcmVzdFwiO1xuZXhwb3J0ICogYXMgc2VydmVyIGZyb20gXCIuL3NyYy9zZXJ2ZXJcIjtcbmV4cG9ydCAqIGFzIHNlcnZpbmcgZnJvbSBcIi4vc3JjL3NlcnZpbmdcIjtcbmV4cG9ydCAqIGFzIHNlcnZpbmdTYW5pdGl6ZSBmcm9tIFwiLi9zcmMvc2VydmluZy1zYW5pdGl6ZVwiO1xuZXhwb3J0ICogYXMgc3RhdGVtZW50IGZyb20gXCIuL3NyYy9zdGF0ZW1lbnRcIjtcbmV4cG9ydCAqIGFzIHN0b3JhZ2VTY2hlbWEgZnJvbSBcIi4vc3JjL3N0b3JhZ2Utc2NoZW1hXCI7XG5leHBvcnQgKiBhcyBzdW1tYXJpemUgZnJvbSBcIi4vc3JjL3N1bW1hcml6ZVwiO1xuZXhwb3J0ICogYXMgdGhyZWFkcyBmcm9tIFwiLi9zcmMvdGhyZWFkc1wiO1xuZXhwb3J0ICogYXMgdmFsaWRhdGlvbiBmcm9tIFwiLi9zcmMvdmFsaWRhdGlvblwiO1xuZXhwb3J0ICogYXMgd29ya3NwYWNlcyBmcm9tIFwiLi9zcmMvd29ya3NwYWNlc1wiO1xuZXhwb3J0ICogYXMgd3JpdGVyIGZyb20gXCIuL3NyYy93cml0ZXJcIjtcbmV4cG9ydCB7IHRvb2wsIGNyZWF0ZUFnZW50LCBGQUxMQkFDS19BR0VOVF9JRCwgREVGQVVMVF9BR0VOVF9NQVhfU1RFUFMsIERFRkFVTFRfU1RZTEVfSU5TVFJVQ1RJT05TLCBidWlsZEFnZW50cywgYXBwcm92YWxHYXRlZFRvb2xJZHMgfSBmcm9tIFwiLi9zcmMvYWdlbnRzXCI7XG5leHBvcnQgdHlwZSB7IE1hc3RyYVRvb2xzLCBBcHBLaXRUb29sT3B0aW9ucywgVG9vbGtpdE9wdGlvbnMsIE1hc3RyYVBsdWdpblRvb2xraXRQcm92aWRlciwgTWFzdHJhUGx1Z2lucywgTWFzdHJhVG9vbHNGbiwgTWFzdHJhQWdlbnRXb3Jrc3BhY2VSZXNvbHZlciwgTWFzdHJhQWdlbnREZWZpbml0aW9uLCBNYXN0cmFTdG9yYWdlQ29uZmlnT3ZlcnJpZGUsIE1hc3RyYU1lbW9yeUNvbmZpZ092ZXJyaWRlLCBCdWlsdEFnZW50cyB9IGZyb20gXCIuL3NyYy9hZ2VudHNcIjtcbmV4cG9ydCB7IGNoYXJ0UGxhblNjaGVtYSwgY2hhcnRQbGFubmVyUmVxdWVzdFNjaGVtYSwgcHJlcGFyZUNoYXJ0LCBmZXRjaENoYXJ0LCBidWlsZFJlbmRlckRhdGFUb29sIH0gZnJvbSBcIi4vc3JjL2NoYXJ0XCI7XG5leHBvcnQgdHlwZSB7IENoYXJ0UGxhbm5lclJlcXVlc3QsIFByZXBhcmVDaGFydE9wdGlvbnMsIEZldGNoQ2hhcnRPcHRpb25zIH0gZnJvbSBcIi4vc3JjL2NoYXJ0XCI7XG5leHBvcnQgeyBNQVNUUkFfVVNFUl9LRVksIE1BU1RSQV9VU0VSX05BTUVfS0VZLCBNQVNUUkFfVVNFUl9FTUFJTF9LRVksIE1BU1RSQV9SRVFVRVNUX0lEX0tFWSwgTUFTVFJBX1NDT1BFU19LRVksIFRSQUNFX1JFUVVFU1RfQ09OVEVYVF9LRVlTLCBleGVjdXRpb25Db250ZXh0VXNlcklkLCByZXNvbHZlVXNlcktleSwgTUFTVFJBX0NPTkZJR19TQ0hFTUEgfSBmcm9tIFwiLi9zcmMvY29uZmlnXCI7XG5leHBvcnQgdHlwZSB7IFVzZXIsIE1hc3RyYU1lbW9yeUNvbmZpZywgTWFzdHJhTWNwQ29uZmlnLCBNYXN0cmFQbHVnaW5Db25maWcgfSBmcm9tIFwiLi9zcmMvY29uZmlnXCI7XG5leHBvcnQgeyBtb2RlbENhdGFsb2d1ZURlZmF1bHRzLCBnZW5pZVN1Z2dlc3Rpb25EZWZhdWx0cywgc3RhdGVtZW50RGF0YURlZmF1bHRzLCBjaGFydEZldGNoRGVmYXVsdHMsIGZlZWRiYWNrV3JpdGVEZWZhdWx0cyB9IGZyb20gXCIuL3NyYy9kZWZhdWx0c1wiO1xuZXhwb3J0IHsgbm9ybWFsaXplRGF0YWJyaWNrc0Jhc2VQYXRoLCBpc0RiZnNQYXRoLCBpc1dvcmtzcGFjZUZpbGVzUGF0aCwgcmVzb2x2ZURhdGFicmlja3NBYnNvbHV0ZVBhdGgsIHRvRGF0YWJyaWNrc1dvcmtzcGFjZVBhdGgsIERhdGFicmlja3NXb3Jrc3BhY2VGaWxlc3lzdGVtLCBlbXB0eUZpbGVzeXN0ZW0gfSBmcm9tIFwiLi9zcmMvZmlsZXN5c3RlbXNcIjtcbmV4cG9ydCB0eXBlIHsgRGF0YWJyaWNrc01rZGlyc01vZGUsIERhdGFicmlja3NXb3Jrc3BhY2VGaWxlc3lzdGVtT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9maWxlc3lzdGVtc1wiO1xuZXhwb3J0IHsgREVGQVVMVF9HRU5JRV9BTElBUywgR0VOSUVfSU5TVFJVQ1RJT05TLCBub3JtYWxpemVHZW5pZVNwYWNlcywgcmVzb2x2ZUdlbmllU3BhY2VzLCBidWlsZEdlbmllVG9vbHMsIGJ1aWxkR2VuaWVUb29sa2l0UHJvdmlkZXIsIGNvbGxlY3RTcGFjZVN1Z2dlc3Rpb25zIH0gZnJvbSBcIi4vc3JjL2dlbmllXCI7XG5leHBvcnQgdHlwZSB7IEdlbmllU3BhY2VDb25maWcsIEdlbmllU3BhY2VzQ29uZmlnIH0gZnJvbSBcIi4vc3JjL2dlbmllXCI7XG5leHBvcnQgeyBsb2FkSGlzdG9yeSwgY2xlYXJIaXN0b3J5LCBoaXN0b3J5Um91dGUgfSBmcm9tIFwiLi9zcmMvaGlzdG9yeVwiO1xuZXhwb3J0IHR5cGUgeyBMb2FkSGlzdG9yeU9wdGlvbnMsIENsZWFySGlzdG9yeU9wdGlvbnMsIEhpc3RvcnlSb3V0ZU9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvaGlzdG9yeVwiO1xuZXhwb3J0IHsgYnVpbGRNY3BTZXJ2ZXIgfSBmcm9tIFwiLi9zcmMvbWNwXCI7XG5leHBvcnQgdHlwZSB7IFJlc29sdmVkTWNwIH0gZnJvbSBcIi4vc3JjL21jcFwiO1xuZXhwb3J0IHsgY3JlYXRlU2VydmljZVByaW5jaXBhbFBvb2wsIG5lZWRzTGFrZWJhc2UsIGNyZWF0ZU1lbW9yeUJ1aWxkZXIsIE1lbW9yeUJ1aWxkZXIgfSBmcm9tIFwiLi9zcmMvbWVtb3J5XCI7XG5leHBvcnQgeyBtbGZsb3dFbmFibGVkLCByZXNvbHZlRmVlZGJhY2tFbmFibGVkLCBsb2dGZWVkYmFjayB9IGZyb20gXCIuL3NyYy9tbGZsb3dcIjtcbmV4cG9ydCB0eXBlIHsgTG9nRmVlZGJhY2tQYXJhbXMgfSBmcm9tIFwiLi9zcmMvbWxmbG93XCI7XG5leHBvcnQgeyBidWlsZE1vZGVsIH0gZnJvbSBcIi4vc3JjL21vZGVsXCI7XG5leHBvcnQgdHlwZSB7IEJ1aWxkTW9kZWxPdmVycmlkZXMgfSBmcm9tIFwiLi9zcmMvbW9kZWxcIjtcbmV4cG9ydCB7IGlzT3RscFRyYWNpbmdDb25maWd1cmVkLCBidWlsZE9ic2VydmFiaWxpdHkgfSBmcm9tIFwiLi9zcmMvb2JzZXJ2YWJpbGl0eVwiO1xuZXhwb3J0IHR5cGUgeyBCdWlsZE9ic2VydmFiaWxpdHlPcHRpb25zIH0gZnJvbSBcIi4vc3JjL29ic2VydmFiaWxpdHlcIjtcbmV4cG9ydCB7IGNsYW1wUGVyUGFnZSwgcGFyc2VJbnRQYXJhbSB9IGZyb20gXCIuL3NyYy9wYWdpbmF0aW9uXCI7XG5leHBvcnQgdHlwZSB7IFBlclBhZ2VCb3VuZHMgfSBmcm9tIFwiLi9zcmMvcGFnaW5hdGlvblwiO1xuZXhwb3J0IHsgTWFzdHJhUGx1Z2luLCBtYXN0cmEgfSBmcm9tIFwiLi9zcmMvcGx1Z2luXCI7XG5leHBvcnQgeyBzdHJpcFN0YWxlQ2hhcnRzUHJvY2Vzc29yLCBSZXN1bHRQcm9jZXNzb3IgfSBmcm9tIFwiLi9zcmMvcHJvY2Vzc29yc1wiO1xuZXhwb3J0IHsgZGF0YWJyaWNrc0ZldGNoLCByZWFkUmVzcG9uc2VUZXh0LCByZWFkUmVzcG9uc2VKc29uIH0gZnJvbSBcIi4vc3JjL3Jlc3RcIjtcbmV4cG9ydCB0eXBlIHsgRGF0YWJyaWNrc0ZldGNoSW5pdCB9IGZyb20gXCIuL3NyYy9yZXN0XCI7XG5leHBvcnQgeyBzdGFtcFJlcXVlc3RDb250ZXh0VXNlciwgY3JlYXRlUmVxdWVzdENvbnRleHQsIE1hc3RyYVNlcnZlciwgaXNNYXN0cmFSZXF1ZXN0QWxsb3dlZCwgYXR0YWNoUm91dGVQYXRjaE1pZGRsZXdhcmUgfSBmcm9tIFwiLi9zcmMvc2VydmVyXCI7XG5leHBvcnQgdHlwZSB7IE1hc3RyYUFwaUdhdGVPcHRpb25zIH0gZnJvbSBcIi4vc3JjL3NlcnZlclwiO1xuZXhwb3J0IHsgTUFTVFJBX01PREVMX09WRVJSSURFX0tFWSwgZXh0cmFjdE1vZGVsT3ZlcnJpZGUsIHJlc29sdmVTZXJ2aW5nQ29uZmlnIH0gZnJvbSBcIi4vc3JjL3NlcnZpbmdcIjtcbmV4cG9ydCB0eXBlIHsgTW9kZWxPdmVycmlkZVJlcXVlc3QgfSBmcm9tIFwiLi9zcmMvc2VydmluZ1wiO1xuZXhwb3J0IHsgcmV3cml0ZVNlcnZpbmdCb2R5LCBzdHJpcFJlYXNvbmluZ0Zyb21TZXJ2aW5nTWVzc2FnZXMsIHJlcGFpckFzc2lzdGFudFByZWZpbGwsIHJld3JpdGVTZXJ2aW5nUmVzcG9uc2VCb2R5LCBmbGF0dGVuQ2hvaWNlTWVzc2FnZUNvbnRlbnQgfSBmcm9tIFwiLi9zcmMvc2VydmluZy1zYW5pdGl6ZVwiO1xuZXhwb3J0IHR5cGUgeyBTZXJ2aW5nQ2hhdE1lc3NhZ2UgfSBmcm9tIFwiLi9zcmMvc2VydmluZy1zYW5pdGl6ZVwiO1xuZXhwb3J0IHsgU1RBVEVNRU5UX1JPV19DQVAsIGZldGNoU3RhdGVtZW50RGF0YSB9IGZyb20gXCIuL3NyYy9zdGF0ZW1lbnRcIjtcbmV4cG9ydCB7IGFnZW50U3RvcmFnZVNjaGVtYU5hbWUgfSBmcm9tIFwiLi9zcmMvc3RvcmFnZS1zY2hlbWFcIjtcbmV4cG9ydCB7IFRJVExFX0lOU1RSVUNUSU9OUywgc3VtbWFyeU1vZGVsLCBzdW1tYXJpemVUZXh0LCBidWlsZFN1bW1hcml6ZVRvb2wgfSBmcm9tIFwiLi9zcmMvc3VtbWFyaXplXCI7XG5leHBvcnQgdHlwZSB7IFN1bW1hcml6ZU9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvc3VtbWFyaXplXCI7XG5leHBvcnQgeyBsaXN0VGhyZWFkcywgZGVsZXRlVGhyZWFkLCByZW5hbWVUaHJlYWQsIHRocmVhZHNSb3V0ZSB9IGZyb20gXCIuL3NyYy90aHJlYWRzXCI7XG5leHBvcnQgdHlwZSB7IExpc3RUaHJlYWRzT3B0aW9ucywgRGVsZXRlVGhyZWFkT3B0aW9ucywgUmVuYW1lVGhyZWFkT3B0aW9ucywgVGhyZWFkc1JvdXRlT3B0aW9ucyB9IGZyb20gXCIuL3NyYy90aHJlYWRzXCI7XG5leHBvcnQgeyBpbnZhbGlkRmllbGRzIH0gZnJvbSBcIi4vc3JjL3ZhbGlkYXRpb25cIjtcbmV4cG9ydCB0eXBlIHsgU2NoZW1hSXNzdWVzIH0gZnJvbSBcIi4vc3JjL3ZhbGlkYXRpb25cIjtcbmV4cG9ydCB7IGNyZWF0ZVdvcmtzcGFjZSB9IGZyb20gXCIuL3NyYy93b3Jrc3BhY2VzXCI7XG5leHBvcnQgdHlwZSB7IENyZWF0ZVdvcmtzcGFjZU9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvd29ya3NwYWNlc1wiO1xuZXhwb3J0IHsgc2FmZVdyaXRlIH0gZnJvbSBcIi4vc3JjL3dyaXRlclwiO1xuIl19
@@ -0,0 +1,347 @@
1
+ /**
2
+ * Agent registration for the Mastra AppKit plugin.
3
+ *
4
+ * Mirrors the shape of the AppKit `agents` plugin (`config.agents` map
5
+ * of {@link MastraAgentDefinition}, dual-form `tools` accepting a plain
6
+ * record or a `(plugins) => tools` callback). Resolves each definition
7
+ * into a Mastra `Agent` instance during plugin setup; user-supplied
8
+ * tool callbacks are invoked exactly once with a typed
9
+ * {@link MastraPlugins} map built from registered sibling plugins.
10
+ *
11
+ * When no agents are registered the plugin falls back to a single
12
+ * built-in analyst so the bare `mastra()` call still mounts a working
13
+ * streamable agent for demos.
14
+ *
15
+ * @module
16
+ */
17
+ import { plugin } from "@dbx-tools/appkit";
18
+ import { log } from "@dbx-tools/shared-core";
19
+ import type { AgentConfig, ToolsInput } from "@mastra/core/agent";
20
+ import { Agent } from "@mastra/core/agent";
21
+ import type { Tool } from "@mastra/core/tools";
22
+ import type { Workspace } from "@mastra/core/workspace";
23
+ import type { PgVectorConfig, PostgresStoreConfig } from "@mastra/pg";
24
+ import type { MastraPluginConfig } from "./config.js";
25
+ import type { MemoryBuilder } from "./memory.js";
26
+ /**
27
+ * Tool record accepted by every Mastra `Agent.tools` field and by the
28
+ * `tools(plugins)` callback on {@link MastraAgentDefinition}.
29
+ *
30
+ * Alias of Mastra's `ToolsInput`, so it already accepts:
31
+ *
32
+ * - Mastra tools built with {@link createTool} (or `new Tool(...)`)
33
+ * - Mastra tools built with the AppKit-shaped {@link tool} wrapper
34
+ * below
35
+ * - Vercel AI SDK tools (`tool({ ... })` from `ai`)
36
+ * - Provider-defined tools (e.g. `openai.tools.webSearch(...)`)
37
+ *
38
+ * Existing tool libraries drop in as-is - nothing in this package
39
+ * forces a rebuild.
40
+ */
41
+ export type MastraTools = ToolsInput;
42
+ /** Re-export of Mastra's native `createTool` for full-feature access. */
43
+ export { createTool } from "@mastra/core/tools";
44
+ /**
45
+ * AppKit-shaped tool factory. Lets users mix-and-match tools across
46
+ * AppKit's `agents` plugin and `mastra` with a single import:
47
+ *
48
+ * ```ts
49
+ * import { tool } from "@dbx-tools/appkit-mastra";
50
+ * import { z } from "zod";
51
+ *
52
+ * get_weather: tool({
53
+ * description: "Weather",
54
+ * schema: z.object({ city: z.string() }),
55
+ * execute: async ({ city }) => `Sunny in ${city}`,
56
+ * }),
57
+ * ```
58
+ *
59
+ * Maps onto Mastra's `createTool`:
60
+ *
61
+ * - `description` -> `description` (required)
62
+ * - `schema` -> `inputSchema` (optional)
63
+ * - `execute(input)` -> `execute(input, ctx)` - Mastra already calls
64
+ * the first arg with the parsed inputs, so the body shape is
65
+ * identical. The Mastra `context` arg is forwarded as the second
66
+ * parameter when the caller declares it.
67
+ * - `id`: optional. Defaults to a stable identifier derived from
68
+ * `description` (slugified, with a short hash suffix for
69
+ * uniqueness). Pass an explicit `id` when you need a stable string
70
+ * for tracing or MCP exposure.
71
+ *
72
+ * Reach for {@link createTool} when you need Mastra-only fields
73
+ * (`outputSchema`, `suspendSchema`, `requireApproval`, `mcp`, etc.).
74
+ */
75
+ export declare function tool(opts: AppKitToolOptions): Tool;
76
+ /**
77
+ * Input shape for the AppKit-style {@link tool} factory. A trimmed
78
+ * subset of Mastra's `createTool` options that mirrors the
79
+ * `@databricks/appkit/beta` `tool({ description, schema, execute })`
80
+ * signature.
81
+ *
82
+ * Generics are intentionally absent - inference flows through the
83
+ * caller's `schema` (typically a Zod object), and the `execute` body
84
+ * destructures naturally from that. Reach for {@link createTool} when
85
+ * you need the fully-typed input/output schemas wired explicitly.
86
+ */
87
+ export interface AppKitToolOptions {
88
+ /** Optional stable identifier; auto-derived from `description` when omitted. */
89
+ id?: string;
90
+ /** Human-readable description shown to the model. Required. */
91
+ description: string;
92
+ /**
93
+ * Optional input schema (any Standard Schema instance, e.g. Zod).
94
+ * Maps to Mastra's `inputSchema`; passed through to the model
95
+ * verbatim.
96
+ */
97
+ schema?: unknown;
98
+ /**
99
+ * Execute body. First arg is the parsed input (typed off `schema`
100
+ * when supplied), second arg is the full Mastra execution context
101
+ * (request context, abort signal, mastra instance) if you need it.
102
+ */
103
+ execute: (input: any, context?: unknown) => unknown;
104
+ }
105
+ /**
106
+ * Identity helper that brands a definition as a Mastra agent. Mirrors
107
+ * AppKit's `createAgent(def)` so the registration shape matches:
108
+ *
109
+ * ```ts
110
+ * const support = createAgent({
111
+ * instructions: "...",
112
+ * model: "databricks-claude-sonnet-4-6",
113
+ * tools(plugins) { return { ... }; },
114
+ * });
115
+ * ```
116
+ *
117
+ * Returns the definition unchanged - the wrapper exists only to anchor
118
+ * type inference and to match the AppKit API surface.
119
+ */
120
+ export declare function createAgent<T extends MastraAgentDefinition>(def: T): T;
121
+ /**
122
+ * Filter / rename options accepted by every plugin's `.toolkit()`
123
+ * method. Mirrors AppKit's `ToolkitOptions` verbatim so options pass
124
+ * through unchanged - the underlying AppKit plugin does the filtering
125
+ * and we just adapt the resulting entries into Mastra tools.
126
+ */
127
+ export interface ToolkitOptions {
128
+ /**
129
+ * Key prefix prepended to every tool name. AppKit's default is
130
+ * `${pluginName}.` when omitted; pass an explicit `""` to drop it.
131
+ */
132
+ prefix?: string;
133
+ /** Allowlist of local tool names. */
134
+ only?: string[];
135
+ /** Denylist of local tool names. */
136
+ except?: string[];
137
+ /** Remap specific local names to different keys. */
138
+ rename?: Record<string, string>;
139
+ }
140
+ /**
141
+ * Toolkit provider shape every entry in the {@link MastraPlugins} map
142
+ * exposes. Identical to AppKit's `PluginToolkitProvider` - any AppKit
143
+ * plugin that implements the standard `ToolProvider` interface
144
+ * (`getAgentTools` + `executeAgentTool` + `toolkit`) is reachable
145
+ * through this surface automatically.
146
+ */
147
+ export interface MastraPluginToolkitProvider {
148
+ /**
149
+ * Returns a Mastra-shaped tools record adapted from the plugin's
150
+ * agent tools. Each tool dispatches back through the plugin's
151
+ * `executeAgentTool` so OBO auth and telemetry spans stay intact.
152
+ */
153
+ toolkit(opts?: ToolkitOptions): MastraTools;
154
+ }
155
+ /**
156
+ * Plugin map handed to the function form of
157
+ * {@link MastraAgentDefinition.tools}. Mirrors AppKit's `Plugins`
158
+ * type exactly: a string-keyed record where every value exposes
159
+ * `.toolkit(opts)`.
160
+ *
161
+ * Implemented as a runtime Proxy that auto-discovers any registered
162
+ * AppKit plugin implementing the standard `ToolProvider` interface
163
+ * (`analytics`, `files`, `lakebase`, `genie`, plus any third-party
164
+ * plugin that does the same). Unknown names resolve to `undefined`
165
+ * at runtime, so guard with `?.` and `?? {}` when spreading from a
166
+ * plugin that may not be registered in every environment.
167
+ *
168
+ * @example
169
+ * ```ts
170
+ * createAgent({
171
+ * instructions: "...",
172
+ * tools(plugins) {
173
+ * return {
174
+ * ...plugins.analytics.toolkit(),
175
+ * ...plugins.files.toolkit({ only: ["uploads.read"] }),
176
+ * get_weather: tool({
177
+ * description: "Weather",
178
+ * schema: z.object({ city: z.string() }),
179
+ * execute: async ({ city }) => `Sunny in ${city}`,
180
+ * }),
181
+ * };
182
+ * },
183
+ * });
184
+ * ```
185
+ */
186
+ export type MastraPlugins = Record<string, MastraPluginToolkitProvider>;
187
+ /** Function form of {@link MastraAgentDefinition.tools}. */
188
+ export type MastraToolsFn = (plugins: MastraPlugins) => MastraTools | Promise<MastraTools>;
189
+ /** Function form of {@link MastraAgentDefinition.workspace}. */
190
+ export type MastraAgentWorkspaceResolver = () => Workspace | undefined;
191
+ /**
192
+ * A code-defined Mastra agent. Mirrors the shape AppKit's `agents`
193
+ * plugin uses for `AgentDefinition`. The registry key under
194
+ * `config.agents` is the `agentId` the client streams against; `name`
195
+ * is purely informational (defaults to the key).
196
+ */
197
+ export interface MastraAgentDefinition {
198
+ /** Display name used as `Agent.name`. Defaults to the registry key. */
199
+ name?: string;
200
+ /** Optional long-form description; surfaced as `Agent.description`. */
201
+ description?: string;
202
+ /** System prompt body. */
203
+ instructions: string;
204
+ /**
205
+ * Per-agent model override.
206
+ *
207
+ * - `undefined` (default): falls back to the workspace
208
+ * `/serving-endpoints` resolver that {@link buildModel} configures
209
+ * from the per-request `WorkspaceClient`.
210
+ * - `string`: shorthand for "use the default resolver but swap the
211
+ * `modelId`" (e.g. `"databricks-meta-llama-3-3-70b-instruct"`).
212
+ * - Any other Mastra `DynamicArgument<MastraModelConfig>`: passed
213
+ * straight through to `Agent.model`. Use this when you need full
214
+ * control over auth or providerId.
215
+ */
216
+ model?: AgentConfig["model"] | string;
217
+ /**
218
+ * Per-agent tool record. Either a plain map or a callback that
219
+ * receives the typed {@link MastraPlugins} sibling-plugin index and
220
+ * returns a map. The callback runs exactly once at agent setup; the
221
+ * result is cached for the agent's lifetime.
222
+ */
223
+ tools?: MastraTools | MastraToolsFn;
224
+ /**
225
+ * Per-agent semantic recall (PgVector) override. Cascades from
226
+ * `config.memory`; the agent value wins when set.
227
+ *
228
+ * - `undefined` (default): inherit `config.memory`. When that's
229
+ * enabled, the agent **shares the plugin-level singleton `PgVector`
230
+ * instance** (cross-agent semantic recall across the same index).
231
+ * - `false`: disable semantic recall for this agent only.
232
+ * - `true`: enable using the shared singleton (same as default when
233
+ * plugin memory is enabled; useful to opt in when plugin disabled).
234
+ * - {@link MastraMemoryConfig} object: dedicated `PgVector` for this
235
+ * agent (private recall index). Bypasses the shared singleton.
236
+ */
237
+ memory?: boolean | MastraMemoryConfigOverride;
238
+ /**
239
+ * Per-agent thread/message storage (`PostgresStore`) override.
240
+ * Cascades from `config.storage`; the agent value wins when set.
241
+ *
242
+ * - `undefined` (default): inherit `config.storage`. When that's
243
+ * enabled, the agent gets its **own per-agent `PostgresStore`**
244
+ * keyed by {@link agentStorageSchemaName} so threads and
245
+ * messages stay isolated between agents in the same database.
246
+ * - `false`: disable storage for this agent only (purely in-memory).
247
+ * - `true`: enable with the per-agent default schema.
248
+ * - {@link MastraStorageConfigOverride} object: dedicated
249
+ * `PostgresStore` config (custom schema, connection, etc.).
250
+ */
251
+ storage?: boolean | MastraStorageConfigOverride;
252
+ /**
253
+ * Mastra {@link Workspace} for this agent (filesystem, sandbox, or other
254
+ * providers). Assistant skills from Databricks workspace paths are wired
255
+ * via {@link createWorkspace}.
256
+ */
257
+ workspace?: Workspace | MastraAgentWorkspaceResolver;
258
+ }
259
+ /**
260
+ * Distributive `Omit` so unions in `PostgresStoreConfig` /
261
+ * `PgVectorConfig` keep their discriminants after the override types
262
+ * strip `id`. The built-in `Omit` collapses unions to one shape with
263
+ * common fields only, which loses the connection-style discriminants.
264
+ */
265
+ type DistributiveOmit<T, K extends keyof never> = T extends unknown ? Omit<T, K> : never;
266
+ /**
267
+ * `PostgresStoreConfig` minus `id` - per-agent overrides accept any
268
+ * Mastra-supported storage shape. `id` is filled in automatically
269
+ * from the agent registry key so traces stay stable.
270
+ */
271
+ export type MastraStorageConfigOverride = DistributiveOmit<PostgresStoreConfig, "id"> & {
272
+ id?: string;
273
+ };
274
+ /**
275
+ * `PgVectorConfig` minus `id` - per-agent overrides accept any
276
+ * Mastra-supported vector shape. `id` is filled in automatically
277
+ * from the agent registry key.
278
+ */
279
+ export type MastraMemoryConfigOverride = DistributiveOmit<PgVectorConfig, "id"> & {
280
+ id?: string;
281
+ };
282
+ /** Output of {@link buildAgents}: resolved agents plus the default id. */
283
+ export interface BuiltAgents {
284
+ agents: Record<string, Agent>;
285
+ defaultAgentId: string;
286
+ /**
287
+ * Static default serving-endpoint id per agent id, as resolved by
288
+ * {@link describeAgentDefaultModel}. `"<dynamic>"` when the model is a
289
+ * function decided at call time. Consumed by the plugin's
290
+ * `GET /default-model` route handler so the client's model picker can label
291
+ * its default option with the real endpoint's humanized name.
292
+ */
293
+ defaultModels: Record<string, string>;
294
+ /**
295
+ * Ambient tools shared across every agent (the built-in system tools
296
+ * spread with `config.tools`). Surfaced so the optional MCP server
297
+ * can re-expose them when {@link MastraMcpConfig.tools} is enabled.
298
+ */
299
+ ambientTools: MastraTools;
300
+ }
301
+ /** Fallback agent id used when `config.agents` is omitted entirely. */
302
+ export declare const FALLBACK_AGENT_ID = "default";
303
+ /**
304
+ * Default per-turn step ceiling applied to every registered agent
305
+ * when {@link MastraPluginConfig.agentMaxSteps} is unset. Sized to
306
+ * fit a decomposed Genie turn (grounding + several `ask_genie`
307
+ * calls + `prepare_chart` per dataset + the final-text reply) with
308
+ * headroom for the model to chain a couple of follow-ups before
309
+ * answering - well above Mastra's own `agent.generate` default of
310
+ * 5, which would cut multi-step orchestration off mid-loop.
311
+ */
312
+ export declare const DEFAULT_AGENT_MAX_STEPS = 25;
313
+ /**
314
+ * Style guardrails appended to every agent's `instructions` to curb
315
+ * common LLM-isms (em dashes, emojis, sycophantic openers, excessive
316
+ * hedging, throwaway closers). Appended rather than prepended so the
317
+ * agent's role/context comes first; the model's recency bias then
318
+ * helps the style rules dominate the response surface.
319
+ *
320
+ * Override globally via {@link MastraPluginConfig.styleInstructions}
321
+ * (pass `false` to disable entirely, or a string to replace).
322
+ */
323
+ export declare const DEFAULT_STYLE_INSTRUCTIONS: string;
324
+ /**
325
+ * Resolve every entry in `config.agents` into a Mastra `Agent`
326
+ * instance. When `config.agents` is omitted the plugin registers a
327
+ * single built-in `default` analyst so the bare `mastra()` call still
328
+ * yields a working agent.
329
+ *
330
+ * Per-agent tool callbacks are invoked once with a typed
331
+ * {@link MastraPlugins} index built from registered sibling plugins
332
+ * (currently `genie`; extend `MastraPlugins` to surface more).
333
+ *
334
+ * @throws when `config.defaultAgent` is set to an id that isn't in the
335
+ * resolved registry; this is a wiring bug, not a runtime condition.
336
+ */
337
+ export declare function buildAgents(opts: {
338
+ config: MastraPluginConfig;
339
+ context: plugin.PluginContextLike | undefined;
340
+ memoryBuilder?: MemoryBuilder;
341
+ log: log.Logger;
342
+ }): Promise<BuiltAgents>;
343
+ /**
344
+ * Tool ids on `tools` that are approval-gated (`requireApproval: true`).
345
+ * Keys are used as a fallback when a tool omits an explicit `id`.
346
+ */
347
+ export declare function approvalGatedToolIds(tools: MastraTools): string[];