@antelopejs/dms-ai 0.7.0 → 0.9.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 (190) hide show
  1. package/README.md +17 -7
  2. package/dist/lifecycle/skill-sources.js +17 -17
  3. package/dist/lifecycle/skill-sources.js.map +1 -1
  4. package/dist/pages/settings/availability.js.map +1 -1
  5. package/dist/pages/settings/sections.js +10 -0
  6. package/dist/pages/settings/sections.js.map +1 -1
  7. package/dist/routes/builder.d.ts +7 -1
  8. package/dist/routes/builder.js +3 -0
  9. package/dist/routes/builder.js.map +1 -1
  10. package/dist/routes/changes.d.ts +5 -4
  11. package/dist/routes/changes.js.map +1 -1
  12. package/dist/routes/codex-account.d.ts +3 -2
  13. package/dist/routes/codex-account.js.map +1 -1
  14. package/dist/routes/sidecar-results.d.ts +2 -2
  15. package/dist/routes/sidecar-results.js.map +1 -1
  16. package/dist/routes/status.js.map +1 -1
  17. package/dist/sidecar/http-client.js +3 -1
  18. package/dist/sidecar/http-client.js.map +1 -1
  19. package/dist/sidecar/index.d.ts +1 -0
  20. package/dist/sidecar/index.js +1 -0
  21. package/dist/sidecar/index.js.map +1 -1
  22. package/dist/sidecar/json-body.d.ts +4 -0
  23. package/dist/sidecar/json-body.js +33 -0
  24. package/dist/sidecar/json-body.js.map +1 -0
  25. package/dist/sidecar/settings-values.d.ts +5 -2
  26. package/dist/sidecar/settings-values.js.map +1 -1
  27. package/dist/vocabulary/tools.js +3 -0
  28. package/dist/vocabulary/tools.js.map +1 -1
  29. package/frontend-vue/app/chat/components/ChatView.vue +38 -37
  30. package/frontend-vue/app/chat/components/NoticeCard.vue +16 -0
  31. package/frontend-vue/app/chat/components/PanelHeader.vue +2 -6
  32. package/frontend-vue/app/chat/composables/conversation-events.ts +4 -0
  33. package/frontend-vue/app/chat/composables/useConversation.ts +6 -0
  34. package/frontend-vue/app/chat/types/protocol.ts +9 -1
  35. package/frontend-vue/app/chat/utils/status-label.ts +50 -0
  36. package/frontend-vue/app/chat/utils/tool-lexicon.ts +16 -0
  37. package/frontend-vue/app/components/SkillDetail.vue +1 -1
  38. package/frontend-vue/app/plugins/ai.client.ts +2 -2
  39. package/frontend-vue/app/runtime/assistant-actions.ts +4 -2
  40. package/frontend-vue/app/runtime/assistant-session.ts +5 -1
  41. package/frontend-vue/app/runtime/block-health.ts +135 -0
  42. package/frontend-vue/app/runtime/constants.ts +1 -0
  43. package/frontend-vue/app/runtime/navigation-complete.ts +47 -6
  44. package/frontend-vue/app/runtime/panel-intents.ts +6 -2
  45. package/frontend-vue/app/views/ChangeSetPanel.vue +1 -1
  46. package/frontend-vue/app/views/composables/useAiData.ts +10 -18
  47. package/frontend-vue/app/views/composables/useChangeSetActions.ts +5 -15
  48. package/frontend-vue/app/views/constants.ts +1 -1
  49. package/frontend-vue/app/views/types.ts +1 -1
  50. package/frontend-vue/build/backend-boundary.ts +54 -21
  51. package/frontend-vue/i18n/locales/dms-ai-pages-en-GB.json +7 -0
  52. package/frontend-vue/i18n/locales/dms-ai-pages-fr-FR.json +7 -0
  53. package/frontend-vue/i18n/locales/dms-ai-panel-en-GB.json +6 -1
  54. package/frontend-vue/i18n/locales/dms-ai-panel-fr-FR.json +6 -1
  55. package/frontend-vue/tests/assistant-actions.test.ts +37 -0
  56. package/frontend-vue/tests/block-health.test.ts +142 -0
  57. package/frontend-vue/tests/chat/conversation-events.test.ts +34 -0
  58. package/frontend-vue/tests/chat/tool-lexicon.test.ts +1 -0
  59. package/frontend-vue/tests/navigation.test.ts +67 -2
  60. package/frontend-vue/tests/support/api-error-presenter.ts +28 -0
  61. package/frontend-vue/tests/support/panel-harness.ts +2 -2
  62. package/frontend-vue/tests/views/api-data-reads.test.ts +2 -0
  63. package/frontend-vue/tests/views/api-error-presentation.test.ts +89 -0
  64. package/package.json +7 -6
  65. package/sidecar/dist/agent/provider.d.ts +5 -0
  66. package/sidecar/dist/agent/runner.d.ts +5 -0
  67. package/sidecar/dist/agent/runner.js +2 -0
  68. package/sidecar/dist/agent/runner.js.map +1 -1
  69. package/sidecar/dist/builder/builder-client.js +2 -2
  70. package/sidecar/dist/builder/builder-client.js.map +1 -1
  71. package/sidecar/dist/constants/builder.d.ts +2 -1
  72. package/sidecar/dist/constants/builder.js +12 -0
  73. package/sidecar/dist/constants/builder.js.map +1 -1
  74. package/sidecar/dist/constants/claude.d.ts +2 -0
  75. package/sidecar/dist/constants/claude.js +2 -0
  76. package/sidecar/dist/constants/claude.js.map +1 -1
  77. package/sidecar/dist/constants/mcp.d.ts +1 -1
  78. package/sidecar/dist/constants/mcp.js +1 -1
  79. package/sidecar/dist/constants/mcp.js.map +1 -1
  80. package/sidecar/dist/constants/native-binary.d.ts +5 -2
  81. package/sidecar/dist/constants/native-binary.js +5 -2
  82. package/sidecar/dist/constants/native-binary.js.map +1 -1
  83. package/sidecar/dist/constants/settings.d.ts +1 -0
  84. package/sidecar/dist/constants/settings.js +2 -0
  85. package/sidecar/dist/constants/settings.js.map +1 -1
  86. package/sidecar/dist/constants/timing.d.ts +1 -0
  87. package/sidecar/dist/constants/timing.js +1 -0
  88. package/sidecar/dist/constants/timing.js.map +1 -1
  89. package/sidecar/dist/constants/tool-kinds.js +1 -0
  90. package/sidecar/dist/constants/tool-kinds.js.map +1 -1
  91. package/sidecar/dist/logs/logs-client.js +2 -1
  92. package/sidecar/dist/logs/logs-client.js.map +1 -1
  93. package/sidecar/dist/logs/types.d.ts +2 -1
  94. package/sidecar/dist/mcp/define-tool.d.ts +1 -1
  95. package/sidecar/dist/mcp/define-tool.js.map +1 -1
  96. package/sidecar/dist/mcp/tools/builder-compose.d.ts +51 -0
  97. package/sidecar/dist/mcp/tools/builder-compose.js +96 -0
  98. package/sidecar/dist/mcp/tools/builder-compose.js.map +1 -0
  99. package/sidecar/dist/mcp/tools/builder-expr.d.ts +5 -0
  100. package/sidecar/dist/mcp/tools/builder-expr.js +25 -0
  101. package/sidecar/dist/mcp/tools/builder-expr.js.map +1 -0
  102. package/sidecar/dist/mcp/tools/builder-gate.js +2 -2
  103. package/sidecar/dist/mcp/tools/builder-gate.js.map +1 -1
  104. package/sidecar/dist/mcp/tools/builder-project.js +54 -1
  105. package/sidecar/dist/mcp/tools/builder-project.js.map +1 -1
  106. package/sidecar/dist/mcp/tools/builder-queries.d.ts +65 -0
  107. package/sidecar/dist/mcp/tools/builder-queries.js +73 -0
  108. package/sidecar/dist/mcp/tools/builder-queries.js.map +1 -0
  109. package/sidecar/dist/mcp/tools/builder-table-view-schema.d.ts +99 -0
  110. package/sidecar/dist/mcp/tools/builder-table-view-schema.js +118 -0
  111. package/sidecar/dist/mcp/tools/builder-table-view-schema.js.map +1 -0
  112. package/sidecar/dist/mcp/tools/builder-table-view.d.ts +102 -0
  113. package/sidecar/dist/mcp/tools/builder-table-view.js +24 -0
  114. package/sidecar/dist/mcp/tools/builder-table-view.js.map +1 -0
  115. package/sidecar/dist/mcp/tools/builder.d.ts +166 -20
  116. package/sidecar/dist/mcp/tools/builder.js +20 -73
  117. package/sidecar/dist/mcp/tools/builder.js.map +1 -1
  118. package/sidecar/dist/mcp/tools/navigate-to-page.js +12 -4
  119. package/sidecar/dist/mcp/tools/navigate-to-page.js.map +1 -1
  120. package/sidecar/dist/mcp/types.d.ts +2 -1
  121. package/sidecar/dist/pages/block-health.d.ts +14 -0
  122. package/sidecar/dist/pages/block-health.js +60 -0
  123. package/sidecar/dist/pages/block-health.js.map +1 -0
  124. package/sidecar/dist/prompts/agent.d.ts +1 -1
  125. package/sidecar/dist/prompts/agent.js +4 -3
  126. package/sidecar/dist/prompts/agent.js.map +1 -1
  127. package/sidecar/dist/protocol/events.d.ts +43 -0
  128. package/sidecar/dist/protocol/events.js +10 -0
  129. package/sidecar/dist/protocol/events.js.map +1 -1
  130. package/sidecar/dist/protocol/json.d.ts +4 -0
  131. package/sidecar/dist/protocol/json.js +29 -0
  132. package/sidecar/dist/protocol/json.js.map +1 -1
  133. package/sidecar/dist/protocol/messages.d.ts +57 -0
  134. package/sidecar/dist/protocol/messages.js +22 -0
  135. package/sidecar/dist/protocol/messages.js.map +1 -1
  136. package/sidecar/dist/providers/claude/config.d.ts +20 -3
  137. package/sidecar/dist/providers/claude/config.js +17 -5
  138. package/sidecar/dist/providers/claude/config.js.map +1 -1
  139. package/sidecar/dist/providers/claude/model-fallback.d.ts +9 -0
  140. package/sidecar/dist/providers/claude/model-fallback.js +37 -0
  141. package/sidecar/dist/providers/claude/model-fallback.js.map +1 -0
  142. package/sidecar/dist/providers/claude/provider.js +23 -22
  143. package/sidecar/dist/providers/claude/provider.js.map +1 -1
  144. package/sidecar/dist/providers/claude/resolve-binary.js +18 -13
  145. package/sidecar/dist/providers/claude/resolve-binary.js.map +1 -1
  146. package/sidecar/dist/providers/claude/session-stream.d.ts +23 -0
  147. package/sidecar/dist/providers/claude/session-stream.js +58 -0
  148. package/sidecar/dist/providers/claude/session-stream.js.map +1 -0
  149. package/sidecar/dist/server/chat-events.d.ts +16 -3
  150. package/sidecar/dist/server/chat-events.js +1 -0
  151. package/sidecar/dist/server/chat-events.js.map +1 -1
  152. package/sidecar/dist/server/http-io.d.ts +2 -1
  153. package/sidecar/dist/server/http-io.js.map +1 -1
  154. package/sidecar/dist/server/http-routes.js +4 -7
  155. package/sidecar/dist/server/http-routes.js.map +1 -1
  156. package/sidecar/dist/server/navigation-completer.d.ts +15 -2
  157. package/sidecar/dist/server/navigation-completer.js +42 -41
  158. package/sidecar/dist/server/navigation-completer.js.map +1 -1
  159. package/sidecar/dist/server/permission-events.d.ts +8 -4
  160. package/sidecar/dist/server/permission-events.js.map +1 -1
  161. package/sidecar/dist/server/routing.js +15 -2
  162. package/sidecar/dist/server/routing.js.map +1 -1
  163. package/sidecar/dist/server/safety-net.js +2 -2
  164. package/sidecar/dist/server/safety-net.js.map +1 -1
  165. package/sidecar/dist/server/tool-calls.d.ts +13 -4
  166. package/sidecar/dist/server/tool-calls.js.map +1 -1
  167. package/sidecar/dist/server/turns.d.ts +16 -2
  168. package/sidecar/dist/server/turns.js +13 -3
  169. package/sidecar/dist/server/turns.js.map +1 -1
  170. package/sidecar/dist/state/change-sets.js +4 -1
  171. package/sidecar/dist/state/change-sets.js.map +1 -1
  172. package/sidecar/dist/state/conversations.d.ts +1 -0
  173. package/sidecar/dist/state/conversations.js +8 -0
  174. package/sidecar/dist/state/conversations.js.map +1 -1
  175. package/sidecar/dist/state/settings-store.d.ts +1 -0
  176. package/sidecar/dist/state/settings-store.js +1 -0
  177. package/sidecar/dist/state/settings-store.js.map +1 -1
  178. package/sidecar/dist/state/settings-types.d.ts +1 -0
  179. package/sidecar/dist/state/store.js +8 -2
  180. package/sidecar/dist/state/store.js.map +1 -1
  181. package/sidecar/dist/state/types.d.ts +8 -1
  182. package/sidecar/dist/state/types.js.map +1 -1
  183. package/sidecar/package.json +2 -2
  184. package/skills/dms-ai/SKILL.md +1 -1
  185. package/skills/dms-builder-safe/REFERENCE.md +5 -6
  186. package/skills/dms-builder-safe/SKILL.md +12 -10
  187. package/skills/dms-external-database/REFERENCE.md +20 -8
  188. package/skills/dms-external-database/SKILL.md +64 -18
  189. package/skills/dms-page-design/SKILL.md +192 -0
  190. package/skills/dms-page-design/cases.json +57 -0
@@ -1 +1 @@
1
- {"version":3,"file":"logs-client.js","sourceRoot":"","sources":["../../src/logs/logs-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logs-client.js","sourceRoot":"","sources":["../../src/logs/logs-client.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
+ import type { JsonValue } from "../protocol/json.js";
1
2
  export interface BufferedLog {
2
3
  time: number;
3
4
  channel: string;
4
5
  levelId: number;
5
- args: unknown[];
6
+ args: JsonValue[];
6
7
  }
7
8
  export interface LogQuery {
8
9
  since?: number;
@@ -13,7 +13,7 @@ export type McpToolArgs<Schema extends McpToolInputSchema> = {
13
13
  _output: infer Output;
14
14
  } ? Output : never;
15
15
  } & {};
16
- export type McpToolHandler<Schema extends McpToolInputSchema> = (args: McpToolArgs<Schema>, extra: unknown) => Promise<McpToolResult>;
16
+ export type McpToolHandler<Schema extends McpToolInputSchema> = (args: McpToolArgs<Schema>) => Promise<McpToolResult>;
17
17
  export interface McpToolDefinition<Schema extends McpToolInputSchema = McpToolInputSchema> {
18
18
  name: string;
19
19
  description: string;
@@ -1 +1 @@
1
- {"version":3,"file":"define-tool.js","sourceRoot":"","sources":["../../src/mcp/define-tool.ts"],"names":[],"mappings":"AA+CA,MAAM,UAAU,UAAU,CACxB,IAAY,EACZ,WAAmB,EACnB,MAAc,EACd,OAA+B;IAE/B,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"define-tool.js","sourceRoot":"","sources":["../../src/mcp/define-tool.ts"],"names":[],"mappings":"AA8CA,MAAM,UAAU,UAAU,CACxB,IAAY,EACZ,WAAmB,EACnB,MAAc,EACd,OAA+B;IAE/B,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAChD,CAAC"}
@@ -0,0 +1,51 @@
1
+ import { z } from "zod";
2
+ import { type BuilderRun } from "./builder-expr.js";
3
+ declare const OPTIONS: z.ZodRecord<z.ZodString, z.ZodUnknown>;
4
+ type Options = z.infer<typeof OPTIONS>;
5
+ declare const BLOCK_QUERY: z.ZodObject<{
6
+ name: z.ZodOptional<z.ZodString>;
7
+ into: z.ZodOptional<z.ZodString>;
8
+ args: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
9
+ resource: z.ZodString;
10
+ template: z.ZodString;
11
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
12
+ response: z.ZodOptional<z.ZodEnum<{
13
+ value: "value";
14
+ items: "items";
15
+ series: "series";
16
+ card: "card";
17
+ }>>;
18
+ compare: z.ZodOptional<z.ZodBoolean>;
19
+ endpoint: z.ZodOptional<z.ZodString>;
20
+ }, z.core.$strip>;
21
+ export interface ComposeBlockInput {
22
+ name: string;
23
+ type: string;
24
+ config?: Options | undefined;
25
+ controller?: string | undefined;
26
+ slot?: string | undefined;
27
+ meta?: Options | undefined;
28
+ query?: z.infer<typeof BLOCK_QUERY> | undefined;
29
+ children?: ComposeBlockInput[] | undefined;
30
+ }
31
+ export declare function buildComposeTools(run: BuilderRun): import("../define-tool.js").McpToolDefinition<{
32
+ pageRef: z.ZodOptional<z.ZodString>;
33
+ create: z.ZodOptional<z.ZodObject<{
34
+ name: z.ZodString;
35
+ displayName: z.ZodString;
36
+ category: z.ZodString;
37
+ icon: z.ZodOptional<z.ZodString>;
38
+ description: z.ZodOptional<z.ZodString>;
39
+ order: z.ZodOptional<z.ZodNumber>;
40
+ module: z.ZodOptional<z.ZodString>;
41
+ }, z.core.$strip>>;
42
+ parent: z.ZodOptional<z.ZodString>;
43
+ placement: z.ZodOptional<z.ZodObject<{
44
+ before: z.ZodOptional<z.ZodString>;
45
+ after: z.ZodOptional<z.ZodString>;
46
+ }, z.core.$strip>>;
47
+ blocks: z.ZodArray<z.ZodType<ComposeBlockInput, unknown, z.core.$ZodTypeInternals<ComposeBlockInput, unknown>>>;
48
+ preview: z.ZodOptional<z.ZodBoolean>;
49
+ args: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
50
+ }>[];
51
+ export {};
@@ -0,0 +1,96 @@
1
+ import { z } from "zod";
2
+ import { defineTool } from "../define-tool.js";
3
+ import { exprRefusal, hasExprSentinel, note, } from "./builder-expr.js";
4
+ import { QUERY_ARGS, QUERY_FIELDS } from "./builder-queries.js";
5
+ const DESCRIPTION = "Builds a whole page, or adds a group of blocks to one, in a single call: the blocks, the queries they read, the layout rows and the page itself when it does not exist yet. One rewrite, one typecheck, and nothing is written when any block is refused; the error names each refused block by JSON pointer into your input (`/blocks/3/children/0/query/params/groupBy`). A data block carries its `query` inline (the BuilderAddQuery fields, `name` defaulting to the block's name): the route it compiles to is written into the block's `fetchUrl` for you, so never pass `fetchUrl` yourself. Containers (`PageToolbar`, `Grid`, `GridRow`, `Section`…) carry their blocks in `children`, and a child sits in its row in order. Pass `preview: true` first to run every query with `args` and read each block's answer without writing: a block whose `status` is `empty` or `zero` would render nothing useful, so fix its query before the writing call. To put blocks above or below a table already on the page (a KPI row above the TableView a mapping wrote), pass `placement: { before: \"table\" }`; a later BuilderMapResources keeps them. Use BuilderAddBlock and BuilderAddQuery for a single edit.";
6
+ const OPTIONS = z.record(z.string(), z.unknown());
7
+ const BLOCK_QUERY = z.object({
8
+ ...QUERY_FIELDS,
9
+ name: QUERY_FIELDS.name.optional(),
10
+ into: z
11
+ .string()
12
+ .optional()
13
+ .describe("The block config key that receives the route. Defaults to `fetchUrl`."),
14
+ args: QUERY_ARGS.optional().describe("Values for this query's preview only, over the call's `args`."),
15
+ });
16
+ const COMPOSE_BLOCK = z.lazy(() => z.object({
17
+ name: z
18
+ .string()
19
+ .describe("camelCase identifier, unique among its siblings. Becomes the block's path segment."),
20
+ type: z.string().describe("A block type from BuilderCatalog."),
21
+ config: OPTIONS.optional().describe('The block\'s options, per BuilderCatalog. A chart inside a ChartCard is `{ "$block": { "type": "ChartArea", "config": {} } }`.'),
22
+ controller: z
23
+ .string()
24
+ .optional()
25
+ .describe("Resource ref for a controller-leading block such as `TableView`."),
26
+ slot: z.string().optional().describe("The slot this block fills."),
27
+ meta: OPTIONS.optional().describe('Child metadata in its row, e.g. `{ "colSpan": 2 }`.'),
28
+ query: BLOCK_QUERY.optional().describe("The query this block reads, added to the page with it."),
29
+ children: z
30
+ .array(COMPOSE_BLOCK)
31
+ .optional()
32
+ .describe("Blocks nested in this container, in order."),
33
+ }));
34
+ const CREATE_PAGE = z
35
+ .object({
36
+ name: z
37
+ .string()
38
+ .describe("Route slug: lowercase letters, digits and dashes."),
39
+ displayName: z.string(),
40
+ category: z
41
+ .string()
42
+ .describe("An existing CategoryRef from BuilderListPages."),
43
+ icon: z.string().optional(),
44
+ description: z.string().optional(),
45
+ order: z.number().optional(),
46
+ module: z
47
+ .string()
48
+ .optional()
49
+ .describe("The project module to write into. Omit for the project's own."),
50
+ })
51
+ .describe("Create the page with these fields in the same call. Give this or `pageRef`, not both.");
52
+ const PLACEMENT = z
53
+ .object({
54
+ before: z.string().optional(),
55
+ after: z.string().optional(),
56
+ })
57
+ .describe('Put the new blocks next to the block of this name among the siblings already there (e.g. `{ "before": "table" }`). Omit to append.');
58
+ export function buildComposeTools(run) {
59
+ return [
60
+ defineTool("BuilderComposePage", note(DESCRIPTION), {
61
+ pageRef: z
62
+ .string()
63
+ .optional()
64
+ .describe("An existing PageRef to add the blocks to."),
65
+ create: CREATE_PAGE.optional(),
66
+ parent: z
67
+ .string()
68
+ .optional()
69
+ .describe("An existing container block path to add the blocks under (from BuilderPageStructure). Omit for the page itself."),
70
+ placement: PLACEMENT.optional(),
71
+ blocks: z
72
+ .array(COMPOSE_BLOCK)
73
+ .min(1)
74
+ .describe("The blocks to add, in order, each with its query inline."),
75
+ preview: z
76
+ .boolean()
77
+ .optional()
78
+ .describe("Run every query with `args` and answer `previews` per block without writing anything."),
79
+ args: QUERY_ARGS.optional(),
80
+ }, async ({ pageRef, create, parent, placement, blocks, preview, args }) => {
81
+ const input = {
82
+ page: pageRef,
83
+ create,
84
+ parent,
85
+ placement,
86
+ blocks,
87
+ preview,
88
+ args,
89
+ };
90
+ return hasExprSentinel(input)
91
+ ? exprRefusal()
92
+ : run("ComposePage", [input]);
93
+ }),
94
+ ];
95
+ }
96
+ //# sourceMappingURL=builder-compose.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder-compose.js","sourceRoot":"","sources":["../../../src/mcp/tools/builder-compose.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { McpToolResult } from "../define-tool.js";
2
+ export type BuilderRun = (op: string, args: unknown[]) => Promise<McpToolResult>;
3
+ export declare function note(description: string): string;
4
+ export declare function hasExprSentinel(value: unknown): boolean;
5
+ export declare function exprRefusal(): McpToolResult;
@@ -0,0 +1,25 @@
1
+ import { z } from "zod";
2
+ import { BUILDER_ESCALATION_NOTE, BUILDER_EXPR_REFUSAL, } from "../../prompts/builder.js";
3
+ import { opResult } from "./builder-project.js";
4
+ export function note(description) {
5
+ return `${description}\n\n${BUILDER_ESCALATION_NOTE}`;
6
+ }
7
+ const EXPR_SENTINEL = z.object({ $expr: z.string() });
8
+ const EXPR_CARRIER = z.record(z.string(), z.unknown());
9
+ export function hasExprSentinel(value) {
10
+ if (Array.isArray(value)) {
11
+ return value.some(hasExprSentinel);
12
+ }
13
+ if (EXPR_SENTINEL.safeParse(value).success) {
14
+ return true;
15
+ }
16
+ const record = EXPR_CARRIER.safeParse(value);
17
+ return record.success && Object.values(record.data).some(hasExprSentinel);
18
+ }
19
+ export function exprRefusal() {
20
+ return opResult({
21
+ ok: false,
22
+ error: { code: "unsupported", detail: BUILDER_EXPR_REFUSAL },
23
+ });
24
+ }
25
+ //# sourceMappingURL=builder-expr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder-expr.js","sourceRoot":"","sources":["../../../src/mcp/tools/builder-expr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAShD,MAAM,UAAU,IAAI,CAAC,WAAmB;IACtC,OAAO,GAAG,WAAW,OAAO,uBAAuB,EAAE,CAAC;AACxD,CAAC;AAED,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACtD,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAGvD,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC7C,OAAO,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAC5E,CAAC;AAGD,MAAM,UAAU,WAAW;IACzB,OAAO,QAAQ,CAAC;QACd,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,oBAAoB,EAAE;KAC7D,CAAC,CAAC;AACL,CAAC"}
@@ -9,12 +9,12 @@ function withGate(definition, gate) {
9
9
  return definition;
10
10
  return {
11
11
  ...definition,
12
- handler: async (args, extra) => {
12
+ handler: async (args) => {
13
13
  const decision = await gate(definition.name, args);
14
14
  if (!decision.isAllowed)
15
15
  return refusal(decision.message);
16
16
  const granted = decision.keepData === true ? { ...args, keepData: true } : args;
17
- return definition.handler(granted, extra);
17
+ return definition.handler(granted);
18
18
  },
19
19
  };
20
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"builder-gate.js","sourceRoot":"","sources":["../../../src/mcp/tools/builder-gate.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,2BAA2B,CAAC;AAsBnC,SAAS,OAAO,CAAC,OAA2B;IAC1C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,IAAI,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC7E,CAAC;AAED,SAAS,QAAQ,CACf,UAAgC,EAChC,IAAiB;IAEjB,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,UAAU,CAAC;IAC/D,IAAI,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,UAAU,CAAC;IAC5D,OAAO;QACL,GAAG,UAAU;QACb,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;YAC7B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACnD,IAAI,CAAC,QAAQ,CAAC,SAAS;gBAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC1D,MAAM,OAAO,GACX,QAAQ,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAClE,OAAO,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC5C,CAAC;KACF,CAAC;AACJ,CAAC;AAGD,MAAM,UAAU,gBAAgB,CAC9B,KAA6B,EAC7B,IAAiB;IAEjB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;AAC/D,CAAC"}
1
+ {"version":3,"file":"builder-gate.js","sourceRoot":"","sources":["../../../src/mcp/tools/builder-gate.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,2BAA2B,CAAC;AAsBnC,SAAS,OAAO,CAAC,OAA2B;IAC1C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,IAAI,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC7E,CAAC;AAED,SAAS,QAAQ,CACf,UAAgC,EAChC,IAAiB;IAEjB,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,UAAU,CAAC;IAC/D,IAAI,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,UAAU,CAAC;IAC5D,OAAO;QACL,GAAG,UAAU;QACb,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACtB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACnD,IAAI,CAAC,QAAQ,CAAC,SAAS;gBAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC1D,MAAM,OAAO,GACX,QAAQ,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAClE,OAAO,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;KACF,CAAC;AACJ,CAAC;AAGD,MAAM,UAAU,gBAAgB,CAC9B,KAA6B,EAC7B,IAAiB;IAEjB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;AAC/D,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  import { BUILDER_ANALYSE_DATABASE_TOOL_NAME, BUILDER_ANALYSIS_POLL_MS, BUILDER_ANALYSIS_WAIT_MS, BUILDER_CONFIGURE_PROJECT_TOOL_NAME, BUILDER_MAP_RESOURCES_TOOL_NAME, BUILDER_MAPPING_TOOL_NAME, } from "../../constants/builder.js";
3
3
  import { defineTool, } from "../define-tool.js";
4
+ import { TABLE_VIEW_SETTINGS } from "./builder-table-view-schema.js";
4
5
  export const PLANNED_CHANGES_ARG = "plannedChanges";
5
6
  const OP_ANSWER = z.object({
6
7
  ok: z.unknown().optional(),
@@ -69,8 +70,39 @@ const MAPPED_FIELD = z.object({
69
70
  searchable: z.boolean().optional(),
70
71
  relation: z
71
72
  .string()
73
+ .nullable()
72
74
  .optional()
73
- .describe("`schema.name` of another relation in this call, or one the module mapped before: makes the column a relation column onto that relation's single-column key."),
75
+ .describe("`schema.name` of another relation in this call, or one the module mapped before: makes the column a relation column onto that relation's single-column key. Left out, a declared foreign key onto such a relation (with a TableView) becomes one anyway; null keeps the column a plain value."),
76
+ display: z
77
+ .union([
78
+ z.object({
79
+ kind: z.literal("badge"),
80
+ items: z.array(z.object({
81
+ value: z.string(),
82
+ label: z.string(),
83
+ tone: z.enum([
84
+ "neutral",
85
+ "primary",
86
+ "secondary",
87
+ "success",
88
+ "warning",
89
+ "error",
90
+ "info",
91
+ ]),
92
+ })),
93
+ }),
94
+ z.object({
95
+ kind: z.literal("price"),
96
+ currency: z
97
+ .string()
98
+ .regex(/^[A-Z]{3}$/)
99
+ .optional()
100
+ .describe("ISO 4217 code of the amount (`USD`). Left out, the Builder reads it from the column comment or a one-value currency column, else amounts show in euros."),
101
+ }),
102
+ ])
103
+ .nullable()
104
+ .optional()
105
+ .describe("How the column is drawn: a `badge` on a text column of few values, a `price` on an amount. The proposal's display when left out; `null` writes the column plain."),
74
106
  });
75
107
  const MAPPED_RESOURCE = z.object({
76
108
  relation: z.string().describe("`schema.name`."),
@@ -90,6 +122,27 @@ const MAPPED_RESOURCE = z.object({
90
122
  .boolean()
91
123
  .describe("False serves the TableView without new, edit and delete."),
92
124
  fields: z.array(MAPPED_FIELD),
125
+ tabs: z
126
+ .object({ column: z.string() })
127
+ .nullable()
128
+ .optional()
129
+ .describe("Tabs above the table by a filterable badge column: All, then one per value. The proposal's tabs when left out; `null` writes none."),
130
+ icon: z
131
+ .string()
132
+ .optional()
133
+ .describe("The page's menu icon, an icon name such as `i-ph-shopping-cart`."),
134
+ description: z
135
+ .string()
136
+ .optional()
137
+ .describe("What the page is for, in a sentence."),
138
+ order: z
139
+ .number()
140
+ .optional()
141
+ .describe("Sorts the page among its category's pages, lowest first. 100 by default, so a dashboard created with order 0 comes before the mapped tables."),
142
+ tableOptions: z
143
+ .object(TABLE_VIEW_SETTINGS)
144
+ .optional()
145
+ .describe("Displays (kanban, cards, grouped), views and footer figures for the page's table, with the same checks as BuilderConfigureTableView; a refused choice is a warning and the page keeps what it had."),
93
146
  });
94
147
  const EXCLUDED = z.object({
95
148
  relation: z.string().describe("`schema.name`."),
@@ -1 +1 @@
1
- {"version":3,"file":"builder-project.js","sourceRoot":"","sources":["../../../src/mcp/tools/builder-project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builder-project.js","sourceRoot":"","sources":["../../../src/mcp/tools/builder-project.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ import { z } from "zod";
2
+ import { type BuilderRun } from "./builder-expr.js";
3
+ export declare const QUERY_ARGS: z.ZodRecord<z.ZodString, z.ZodUnknown>;
4
+ export declare const QUERY_FIELDS: {
5
+ name: z.ZodString;
6
+ resource: z.ZodString;
7
+ template: z.ZodString;
8
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
9
+ response: z.ZodOptional<z.ZodEnum<{
10
+ value: "value";
11
+ items: "items";
12
+ series: "series";
13
+ card: "card";
14
+ }>>;
15
+ compare: z.ZodOptional<z.ZodBoolean>;
16
+ endpoint: z.ZodOptional<z.ZodString>;
17
+ };
18
+ export declare function buildQueryTools(run: BuilderRun): (import("../define-tool.js").McpToolDefinition<{
19
+ resourceType: z.ZodOptional<z.ZodString>;
20
+ }> | import("../define-tool.js").McpToolDefinition<{
21
+ name: z.ZodString;
22
+ resource: z.ZodString;
23
+ template: z.ZodString;
24
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
25
+ response: z.ZodOptional<z.ZodEnum<{
26
+ value: "value";
27
+ items: "items";
28
+ series: "series";
29
+ card: "card";
30
+ }>>;
31
+ compare: z.ZodOptional<z.ZodBoolean>;
32
+ endpoint: z.ZodOptional<z.ZodString>;
33
+ page: z.ZodString;
34
+ }> | import("../define-tool.js").McpToolDefinition<{
35
+ args: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
36
+ name: z.ZodString;
37
+ resource: z.ZodString;
38
+ template: z.ZodString;
39
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
40
+ response: z.ZodOptional<z.ZodEnum<{
41
+ value: "value";
42
+ items: "items";
43
+ series: "series";
44
+ card: "card";
45
+ }>>;
46
+ compare: z.ZodOptional<z.ZodBoolean>;
47
+ endpoint: z.ZodOptional<z.ZodString>;
48
+ }> | import("../define-tool.js").McpToolDefinition<{
49
+ query: z.ZodString;
50
+ patch: z.ZodObject<{
51
+ resource: z.ZodOptional<z.ZodString>;
52
+ template: z.ZodOptional<z.ZodString>;
53
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
54
+ response: z.ZodOptional<z.ZodEnum<{
55
+ value: "value";
56
+ items: "items";
57
+ series: "series";
58
+ card: "card";
59
+ }>>;
60
+ compare: z.ZodOptional<z.ZodBoolean>;
61
+ endpoint: z.ZodOptional<z.ZodString>;
62
+ }, z.core.$strip>;
63
+ }> | import("../define-tool.js").McpToolDefinition<{
64
+ query: z.ZodString;
65
+ }>)[];
@@ -0,0 +1,73 @@
1
+ import { z } from "zod";
2
+ import { defineTool } from "../define-tool.js";
3
+ import { exprRefusal, hasExprSentinel, note, } from "./builder-expr.js";
4
+ const QUERY_REF = z
5
+ .string()
6
+ .describe("A query ref `<pageRef>@<queryName>` (e.g. `/catalog/books@inStockCount`), as reported in BuilderPageStructure's `queries`.");
7
+ const QUERY_ENDPOINT = z
8
+ .string()
9
+ .describe('Route path relative to the page\'s slug, e.g. `/stats/in-stock`. Must start with `/` and not collide with another route the page serves. Omit for `/stats/<kebab-name>`. A `$param` bound with `in: "param"` reads a path segment, so include a matching `:name` (e.g. `/stats/by-author/:author`).');
10
+ const QUERY_PARAMS = z
11
+ .record(z.string(), z.unknown())
12
+ .describe("The template's parameters, keyed exactly as the `params` schema BuilderQueryTemplates reports for it — that schema documents every key and value shape, and an unrecognised key is rejected.");
13
+ const QUERY_RESPONSE = z
14
+ .enum(["series", "card", "value", "items"])
15
+ .describe("How the route arranges a `series` template's points for the block that reads them: `series` (the default) one point per group, for a bare chart such as ChartLine, ChartColumn or ChartBar; `card` a figure above its series, for a ChartCard; `value` a figure and its sparkline, for a KpiCard; `items` ranked entries, for a TopListCard. A block reads only its own arrangement, so match the block. A `count` or `aggregate` query answers `{ value }` whatever you pass.");
16
+ const QUERY_COMPARE = z
17
+ .boolean()
18
+ .describe("Also answer the preceding period so a card shows a delta. Only meaningful when the query binds its period with `$param` `from` and `to`.");
19
+ export const QUERY_ARGS = z
20
+ .record(z.string(), z.unknown())
21
+ .describe('The values the route would receive, by the name it exposes them under, e.g. `{ "from": "2026-01-01", "to": "2026-03-31" }` for a query binding `$param` `from` and `to`. With `compare`, also `compareFrom` and `compareTo`.');
22
+ export const QUERY_FIELDS = {
23
+ name: z
24
+ .string()
25
+ .describe("camelCase identifier, unique among the page's members. Names the route; the model method it compiles into may differ, since queries wanting the identical chain share one."),
26
+ resource: z
27
+ .string()
28
+ .describe("Resource ref to read, from BuilderListResources."),
29
+ template: z.string().describe("A template id from BuilderQueryTemplates."),
30
+ params: QUERY_PARAMS.optional(),
31
+ response: QUERY_RESPONSE.optional(),
32
+ compare: QUERY_COMPARE.optional(),
33
+ endpoint: QUERY_ENDPOINT.optional(),
34
+ };
35
+ export function buildQueryTools(run) {
36
+ return [
37
+ defineTool("BuilderQueryTemplates", note("Lists the query templates BuilderAddQuery can compile, each with its id, what it computes, its `output` kind, and the JSON Schema for its `params`. Call this before adding a query — the schema is the reference for every parameter and value shape."), {
38
+ resourceType: z
39
+ .string()
40
+ .optional()
41
+ .describe("Filter to templates for one resource type (v1 has only `database-table`). Omit for all."),
42
+ }, ({ resourceType }) => run("ListQueryTemplates", resourceType ? [resourceType] : [])),
43
+ defineTool("BuilderAddQuery", note("Adds a query — a page-hosted GET route serving a computed number, or one per group, that the DataAPI cannot give you. Compiles the template into a method on the resource's model and a route on the page, atomically. Returns `{ query, route }`; `route` is the full URL to pass as the reading block's `fetchUrl`. A `count` or `aggregate` route serves `{ \"value\": <number> }`; a `series` route serves the arrangement `response` names. Add `compare: true` to a query that binds its period with `$param` `from` and `to` so a card shows a delta. Run BuilderPreviewQuery first to see what the route would answer."), {
44
+ page: z
45
+ .string()
46
+ .describe("PageRef the query is served from — the page that displays it, not the resource's page."),
47
+ ...QUERY_FIELDS,
48
+ }, async ({ page, ...input }) => hasExprSentinel(input) ? exprRefusal() : run("AddQuery", [page, input])),
49
+ defineTool("BuilderPreviewQuery", note("Runs a query that is not saved and answers what its route would, as `{ body, truncated }`, writing nothing. Takes BuilderAddQuery's query fields (no page) and `args`. An empty `series` or `items` in `body` means the block reading it renders empty: fix the query before wiring its route."), {
50
+ ...QUERY_FIELDS,
51
+ args: QUERY_ARGS.optional(),
52
+ }, async ({ args, ...query }) => hasExprSentinel({ query, args })
53
+ ? exprRefusal()
54
+ : run("PreviewQuery", [
55
+ args === undefined ? { query } : { query, args },
56
+ ])),
57
+ defineTool("BuilderConfigureQuery", note("Recompiles a query, replacing both its route and its chain. Only the keys you pass change; the rest are re-read from the query. A query BuilderPageStructure reports as `opaque` is refused with opaque_target, leaving the hand-edit intact. Renaming is not supported — remove and re-add. Never affects another page's query, even one sharing the same model method."), {
58
+ query: QUERY_REF,
59
+ patch: z.object({
60
+ resource: z.string().optional(),
61
+ template: z.string().optional(),
62
+ params: QUERY_PARAMS.optional(),
63
+ response: QUERY_RESPONSE.optional(),
64
+ compare: QUERY_COMPARE.optional(),
65
+ endpoint: QUERY_ENDPOINT.optional(),
66
+ }),
67
+ }, async ({ query, patch }) => hasExprSentinel(patch)
68
+ ? exprRefusal()
69
+ : run("ConfigureQuery", [query, patch])),
70
+ defineTool("BuilderRemoveQuery", note("Removes a query's route from the page, and its model method too once no route on any page still calls it. Works on an opaque query as well — the builder can always remove what it cannot edit. Does not detect blocks whose fetchUrl points at the removed route: fix those in the same turn."), { query: QUERY_REF }, ({ query }) => run("RemoveQuery", [query])),
71
+ ];
72
+ }
73
+ //# sourceMappingURL=builder-queries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder-queries.js","sourceRoot":"","sources":["../../../src/mcp/tools/builder-queries.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,99 @@
1
+ import { z } from "zod";
2
+ export declare const TABLE_VIEW_SETTINGS: {
3
+ kanban: z.ZodOptional<z.ZodNullable<z.ZodObject<{
4
+ groupBy: z.ZodString;
5
+ draggable: z.ZodOptional<z.ZodBoolean>;
6
+ }, z.core.$strip>>>;
7
+ grouped: z.ZodOptional<z.ZodNullable<z.ZodObject<{
8
+ groupBy: z.ZodString;
9
+ by: z.ZodOptional<z.ZodEnum<{
10
+ value: "value";
11
+ day: "day";
12
+ week: "week";
13
+ }>>;
14
+ collapsible: z.ZodOptional<z.ZodBoolean>;
15
+ count: z.ZodOptional<z.ZodBoolean>;
16
+ }, z.core.$strip>>>;
17
+ cards: z.ZodOptional<z.ZodNullable<z.ZodObject<{
18
+ fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
19
+ }, z.core.$strip>>>;
20
+ defaultDisplay: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
21
+ table: "table";
22
+ kanban: "kanban";
23
+ cards: "cards";
24
+ grouped: "grouped";
25
+ }>>>;
26
+ views: z.ZodOptional<z.ZodNullable<z.ZodObject<{
27
+ items: z.ZodArray<z.ZodObject<{
28
+ id: z.ZodString;
29
+ label: z.ZodString;
30
+ icon: z.ZodOptional<z.ZodString>;
31
+ count: z.ZodOptional<z.ZodBoolean>;
32
+ filters: z.ZodOptional<z.ZodArray<z.ZodObject<{
33
+ column: z.ZodString;
34
+ mode: z.ZodOptional<z.ZodEnum<{
35
+ is: "is";
36
+ is_not: "is_not";
37
+ include: "include";
38
+ exclude: "exclude";
39
+ contains: "contains";
40
+ not_contains: "not_contains";
41
+ greater_than: "greater_than";
42
+ less_than: "less_than";
43
+ greater_than_or_equal_to: "greater_than_or_equal_to";
44
+ less_than_or_equal_to: "less_than_or_equal_to";
45
+ is_empty: "is_empty";
46
+ is_not_empty: "is_not_empty";
47
+ }>>;
48
+ value: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
49
+ }, z.core.$strip>>>;
50
+ search: z.ZodOptional<z.ZodString>;
51
+ sort: z.ZodOptional<z.ZodArray<z.ZodObject<{
52
+ column: z.ZodString;
53
+ desc: z.ZodOptional<z.ZodBoolean>;
54
+ }, z.core.$strip>>>;
55
+ columns: z.ZodOptional<z.ZodObject<{
56
+ visible: z.ZodOptional<z.ZodArray<z.ZodString>>;
57
+ hidden: z.ZodOptional<z.ZodArray<z.ZodString>>;
58
+ order: z.ZodOptional<z.ZodArray<z.ZodString>>;
59
+ }, z.core.$strip>>;
60
+ display: z.ZodOptional<z.ZodEnum<{
61
+ table: "table";
62
+ kanban: "kanban";
63
+ cards: "cards";
64
+ grouped: "grouped";
65
+ }>>;
66
+ density: z.ZodOptional<z.ZodEnum<{
67
+ default: "default";
68
+ compact: "compact";
69
+ }>>;
70
+ }, z.core.$strip>>;
71
+ layout: z.ZodOptional<z.ZodEnum<{
72
+ tabs: "tabs";
73
+ strip: "strip";
74
+ menu: "menu";
75
+ }>>;
76
+ defaultView: z.ZodOptional<z.ZodString>;
77
+ userViews: z.ZodOptional<z.ZodBoolean>;
78
+ }, z.core.$strip>>>;
79
+ footer: z.ZodOptional<z.ZodNullable<z.ZodObject<{
80
+ summary: z.ZodOptional<z.ZodArray<z.ZodObject<{
81
+ label: z.ZodString;
82
+ op: z.ZodEnum<{
83
+ count: "count";
84
+ sum: "sum";
85
+ }>;
86
+ field: z.ZodOptional<z.ZodString>;
87
+ where: z.ZodOptional<z.ZodObject<{
88
+ column: z.ZodString;
89
+ op: z.ZodEnum<{
90
+ in: "in";
91
+ equals: "equals";
92
+ notEquals: "notEquals";
93
+ notIn: "notIn";
94
+ }>;
95
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>]>;
96
+ }, z.core.$strip>>;
97
+ }, z.core.$strip>>>;
98
+ }, z.core.$strip>>>;
99
+ };