@adminiumjs/llm 0.1.0-rc.1

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 (126) hide show
  1. package/LICENSE +661 -0
  2. package/dist/apply/diff.d.ts +79 -0
  3. package/dist/apply/diff.d.ts.map +1 -0
  4. package/dist/apply/diff.js +459 -0
  5. package/dist/apply/diff.js.map +1 -0
  6. package/dist/apply/index.d.ts +6 -0
  7. package/dist/apply/index.d.ts.map +1 -0
  8. package/dist/apply/index.js +6 -0
  9. package/dist/apply/index.js.map +1 -0
  10. package/dist/apply/normalize.d.ts +55 -0
  11. package/dist/apply/normalize.d.ts.map +1 -0
  12. package/dist/apply/normalize.js +232 -0
  13. package/dist/apply/normalize.js.map +1 -0
  14. package/dist/apply/plan.d.ts +206 -0
  15. package/dist/apply/plan.d.ts.map +1 -0
  16. package/dist/apply/plan.js +422 -0
  17. package/dist/apply/plan.js.map +1 -0
  18. package/dist/apply/suggestion-id.d.ts +103 -0
  19. package/dist/apply/suggestion-id.d.ts.map +1 -0
  20. package/dist/apply/suggestion-id.js +121 -0
  21. package/dist/apply/suggestion-id.js.map +1 -0
  22. package/dist/crypto.d.ts +48 -0
  23. package/dist/crypto.d.ts.map +1 -0
  24. package/dist/crypto.js +35 -0
  25. package/dist/crypto.js.map +1 -0
  26. package/dist/index.d.ts +17 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +22 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/prompt/builder.d.ts +27 -0
  31. package/dist/prompt/builder.d.ts.map +1 -0
  32. package/dist/prompt/builder.js +263 -0
  33. package/dist/prompt/builder.js.map +1 -0
  34. package/dist/prompt/chunker.d.ts +89 -0
  35. package/dist/prompt/chunker.d.ts.map +1 -0
  36. package/dist/prompt/chunker.js +383 -0
  37. package/dist/prompt/chunker.js.map +1 -0
  38. package/dist/prompt/index.d.ts +14 -0
  39. package/dist/prompt/index.d.ts.map +1 -0
  40. package/dist/prompt/index.js +14 -0
  41. package/dist/prompt/index.js.map +1 -0
  42. package/dist/prompt/serializer.d.ts +138 -0
  43. package/dist/prompt/serializer.d.ts.map +1 -0
  44. package/dist/prompt/serializer.js +178 -0
  45. package/dist/prompt/serializer.js.map +1 -0
  46. package/dist/prompt/templates/v1.d.ts +41 -0
  47. package/dist/prompt/templates/v1.d.ts.map +1 -0
  48. package/dist/prompt/templates/v1.js +312 -0
  49. package/dist/prompt/templates/v1.js.map +1 -0
  50. package/dist/prompt/token-estimate.d.ts +16 -0
  51. package/dist/prompt/token-estimate.d.ts.map +1 -0
  52. package/dist/prompt/token-estimate.js +20 -0
  53. package/dist/prompt/token-estimate.js.map +1 -0
  54. package/dist/prompt/types.d.ts +134 -0
  55. package/dist/prompt/types.d.ts.map +1 -0
  56. package/dist/prompt/types.js +44 -0
  57. package/dist/prompt/types.js.map +1 -0
  58. package/dist/providers/anthropic.d.ts +3 -0
  59. package/dist/providers/anthropic.d.ts.map +1 -0
  60. package/dist/providers/anthropic.js +65 -0
  61. package/dist/providers/anthropic.js.map +1 -0
  62. package/dist/providers/factory.d.ts +3 -0
  63. package/dist/providers/factory.d.ts.map +1 -0
  64. package/dist/providers/factory.js +37 -0
  65. package/dist/providers/factory.js.map +1 -0
  66. package/dist/providers/http.d.ts +56 -0
  67. package/dist/providers/http.d.ts.map +1 -0
  68. package/dist/providers/http.js +148 -0
  69. package/dist/providers/http.js.map +1 -0
  70. package/dist/providers/index.d.ts +15 -0
  71. package/dist/providers/index.d.ts.map +1 -0
  72. package/dist/providers/index.js +15 -0
  73. package/dist/providers/index.js.map +1 -0
  74. package/dist/providers/model-catalog.d.ts +21 -0
  75. package/dist/providers/model-catalog.d.ts.map +1 -0
  76. package/dist/providers/model-catalog.js +121 -0
  77. package/dist/providers/model-catalog.js.map +1 -0
  78. package/dist/providers/ollama.d.ts +3 -0
  79. package/dist/providers/ollama.d.ts.map +1 -0
  80. package/dist/providers/ollama.js +55 -0
  81. package/dist/providers/ollama.js.map +1 -0
  82. package/dist/providers/openai-compatible.d.ts +3 -0
  83. package/dist/providers/openai-compatible.d.ts.map +1 -0
  84. package/dist/providers/openai-compatible.js +50 -0
  85. package/dist/providers/openai-compatible.js.map +1 -0
  86. package/dist/providers/openai.d.ts +18 -0
  87. package/dist/providers/openai.d.ts.map +1 -0
  88. package/dist/providers/openai.js +68 -0
  89. package/dist/providers/openai.js.map +1 -0
  90. package/dist/providers/types.d.ts +112 -0
  91. package/dist/providers/types.d.ts.map +1 -0
  92. package/dist/providers/types.js +55 -0
  93. package/dist/providers/types.js.map +1 -0
  94. package/dist/response/errors.d.ts +60 -0
  95. package/dist/response/errors.d.ts.map +1 -0
  96. package/dist/response/errors.js +101 -0
  97. package/dist/response/errors.js.map +1 -0
  98. package/dist/response/extract.d.ts +38 -0
  99. package/dist/response/extract.d.ts.map +1 -0
  100. package/dist/response/extract.js +77 -0
  101. package/dist/response/extract.js.map +1 -0
  102. package/dist/response/index.d.ts +8 -0
  103. package/dist/response/index.d.ts.map +1 -0
  104. package/dist/response/index.js +8 -0
  105. package/dist/response/index.js.map +1 -0
  106. package/dist/response/merge.d.ts +53 -0
  107. package/dist/response/merge.d.ts.map +1 -0
  108. package/dist/response/merge.js +348 -0
  109. package/dist/response/merge.js.map +1 -0
  110. package/dist/response/referential.d.ts +113 -0
  111. package/dist/response/referential.d.ts.map +1 -0
  112. package/dist/response/referential.js +556 -0
  113. package/dist/response/referential.js.map +1 -0
  114. package/dist/response/schema.d.ts +506 -0
  115. package/dist/response/schema.d.ts.map +1 -0
  116. package/dist/response/schema.js +191 -0
  117. package/dist/response/schema.js.map +1 -0
  118. package/dist/response/validate.d.ts +29 -0
  119. package/dist/response/validate.d.ts.map +1 -0
  120. package/dist/response/validate.js +167 -0
  121. package/dist/response/validate.js.map +1 -0
  122. package/dist/types.d.ts +95 -0
  123. package/dist/types.d.ts.map +1 -0
  124. package/dist/types.js +49 -0
  125. package/dist/types.js.map +1 -0
  126. package/package.json +30 -0
@@ -0,0 +1,506 @@
1
+ /**
2
+ * `LlmResponseV1` — the one response contract shared by the direct-API and BYO
3
+ * paths (06-llm-assist.md §1, §6.1). Shipped verbatim from §6.1: field names
4
+ * and shapes are load-bearing — the golden fixtures in §6.3 and every
5
+ * downstream consumer (validate.ts, normalize.ts, diff.ts) depend on them.
6
+ *
7
+ * ONE intentional adaptation to Zod 4 is marked below (`L10n`): the doc's
8
+ * `z.record(LocaleCode, …)` cannot be used literally — in Zod 3 an enum-keyed
9
+ * record was partial, but in Zod 4 it is exhaustive (every enum key required),
10
+ * which would reject a 2-locale response (§6.3). Nor may the key be a strict
11
+ * enum: §7.2 stage 5 (`LLM_LOCALE_KEYS`) is the SOLE owner of locale-key
12
+ * validation, and it must be per-item — a single stray/non-canonical key (a
13
+ * BCP-47 'en-US', an unrequested 'pt_BR') must drop only that one suggestion,
14
+ * not fail the whole run at Zod (stage 4, fatal). So the key is typed
15
+ * `z.string()`: any string key parses here, and validate.ts checks the exact
16
+ * requested-locale set contextually (Zod alone can't know the run's locale list).
17
+ *
18
+ * Version negotiation (§4.3) is appended after the verbatim schema.
19
+ */
20
+ import { z } from 'zod';
21
+ export declare const SCHEMA_VERSION: "adminium.llm/v1";
22
+ export declare const SUPPORTED_SCHEMA_VERSIONS: readonly ["adminium.llm/v1"];
23
+ export declare const LOCALES: readonly ["en_US", "de_DE", "ar_EG", "zh_CN", "zh_TW", "cs_CZ", "da_DK", "fr_FR"];
24
+ export declare const LocaleCode: z.ZodEnum<{
25
+ en_US: "en_US";
26
+ de_DE: "de_DE";
27
+ ar_EG: "ar_EG";
28
+ zh_CN: "zh_CN";
29
+ zh_TW: "zh_TW";
30
+ cs_CZ: "cs_CZ";
31
+ da_DK: "da_DK";
32
+ fr_FR: "fr_FR";
33
+ }>;
34
+ /** Localized text: keys must be exactly the run's requested locales — enforced
35
+ * contextually in validate.ts stage 5 (Zod alone can't know the run's locale
36
+ * list). The key schema is `z.string()`, NOT `LocaleCode`: a stray or
37
+ * non-canonical locale key must be a per-item `LLM_LOCALE_KEYS` drop (stage 5),
38
+ * never a fatal `LLM_SCHEMA_INVALID` at Zod (stage 4) that discards the whole
39
+ * run. The value still enforces a non-empty string. */
40
+ export declare const L10n: z.ZodRecord<z.ZodString, z.ZodString>;
41
+ export declare const Confidence: z.ZodNumber;
42
+ export declare const Tone: z.ZodEnum<{
43
+ pos: "pos";
44
+ warn: "warn";
45
+ danger: "danger";
46
+ accent: "accent";
47
+ muted: "muted";
48
+ }>;
49
+ export declare const PiiKind: z.ZodEnum<{
50
+ email: "email";
51
+ phone: "phone";
52
+ name: "name";
53
+ address: "address";
54
+ "gov-id": "gov-id";
55
+ dob: "dob";
56
+ financial: "financial";
57
+ credentials: "credentials";
58
+ health: "health";
59
+ ip: "ip";
60
+ location: "location";
61
+ other: "other";
62
+ }>;
63
+ export declare const Masking: z.ZodEnum<{
64
+ "mask-email": "mask-email";
65
+ "mask-partial": "mask-partial";
66
+ last4: "last4";
67
+ redact: "redact";
68
+ hash: "hash";
69
+ none: "none";
70
+ }>;
71
+ export declare const Agg: z.ZodEnum<{
72
+ count: "count";
73
+ sum: "sum";
74
+ avg: "avg";
75
+ min: "min";
76
+ max: "max";
77
+ }>;
78
+ export declare const RelationKind: z.ZodEnum<{
79
+ "many-to-one": "many-to-one";
80
+ "one-to-one": "one-to-one";
81
+ "many-to-many-via": "many-to-many-via";
82
+ }>;
83
+ export declare const PiiSuggestion: z.ZodObject<{
84
+ kind: z.ZodEnum<{
85
+ email: "email";
86
+ phone: "phone";
87
+ name: "name";
88
+ address: "address";
89
+ "gov-id": "gov-id";
90
+ dob: "dob";
91
+ financial: "financial";
92
+ credentials: "credentials";
93
+ health: "health";
94
+ ip: "ip";
95
+ location: "location";
96
+ other: "other";
97
+ }>;
98
+ masking: z.ZodEnum<{
99
+ "mask-email": "mask-email";
100
+ "mask-partial": "mask-partial";
101
+ last4: "last4";
102
+ redact: "redact";
103
+ hash: "hash";
104
+ none: "none";
105
+ }>;
106
+ reason: z.ZodString;
107
+ confidence: z.ZodNumber;
108
+ }, z.core.$strip>;
109
+ export declare const ColumnSuggestion: z.ZodObject<{
110
+ column: z.ZodString;
111
+ label: z.ZodRecord<z.ZodString, z.ZodString>;
112
+ description: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
113
+ pii: z.ZodDefault<z.ZodNullable<z.ZodObject<{
114
+ kind: z.ZodEnum<{
115
+ email: "email";
116
+ phone: "phone";
117
+ name: "name";
118
+ address: "address";
119
+ "gov-id": "gov-id";
120
+ dob: "dob";
121
+ financial: "financial";
122
+ credentials: "credentials";
123
+ health: "health";
124
+ ip: "ip";
125
+ location: "location";
126
+ other: "other";
127
+ }>;
128
+ masking: z.ZodEnum<{
129
+ "mask-email": "mask-email";
130
+ "mask-partial": "mask-partial";
131
+ last4: "last4";
132
+ redact: "redact";
133
+ hash: "hash";
134
+ none: "none";
135
+ }>;
136
+ reason: z.ZodString;
137
+ confidence: z.ZodNumber;
138
+ }, z.core.$strip>>>;
139
+ }, z.core.$strip>;
140
+ export declare const PageTemplateSuggestion: z.ZodObject<{
141
+ template: z.ZodString;
142
+ rank: z.ZodNumber;
143
+ triggers: z.ZodArray<z.ZodString>;
144
+ reason: z.ZodString;
145
+ confidence: z.ZodNumber;
146
+ }, z.core.$strip>;
147
+ export declare const Microcopy: z.ZodObject<{
148
+ emptyState: z.ZodObject<{
149
+ headline: z.ZodRecord<z.ZodString, z.ZodString>;
150
+ guidance: z.ZodRecord<z.ZodString, z.ZodString>;
151
+ }, z.core.$strip>;
152
+ pageSubtitle: z.ZodRecord<z.ZodString, z.ZodString>;
153
+ }, z.core.$strip>;
154
+ export declare const TableSuggestion: z.ZodObject<{
155
+ table: z.ZodString;
156
+ confidence: z.ZodNumber;
157
+ label: z.ZodRecord<z.ZodString, z.ZodString>;
158
+ description: z.ZodRecord<z.ZodString, z.ZodString>;
159
+ icon: z.ZodString;
160
+ displayColumn: z.ZodNullable<z.ZodString>;
161
+ naturalKey: z.ZodNullable<z.ZodArray<z.ZodString>>;
162
+ pageTemplates: z.ZodDefault<z.ZodArray<z.ZodObject<{
163
+ template: z.ZodString;
164
+ rank: z.ZodNumber;
165
+ triggers: z.ZodArray<z.ZodString>;
166
+ reason: z.ZodString;
167
+ confidence: z.ZodNumber;
168
+ }, z.core.$strip>>>;
169
+ microcopy: z.ZodOptional<z.ZodObject<{
170
+ emptyState: z.ZodObject<{
171
+ headline: z.ZodRecord<z.ZodString, z.ZodString>;
172
+ guidance: z.ZodRecord<z.ZodString, z.ZodString>;
173
+ }, z.core.$strip>;
174
+ pageSubtitle: z.ZodRecord<z.ZodString, z.ZodString>;
175
+ }, z.core.$strip>>;
176
+ columns: z.ZodDefault<z.ZodArray<z.ZodObject<{
177
+ column: z.ZodString;
178
+ label: z.ZodRecord<z.ZodString, z.ZodString>;
179
+ description: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
180
+ pii: z.ZodDefault<z.ZodNullable<z.ZodObject<{
181
+ kind: z.ZodEnum<{
182
+ email: "email";
183
+ phone: "phone";
184
+ name: "name";
185
+ address: "address";
186
+ "gov-id": "gov-id";
187
+ dob: "dob";
188
+ financial: "financial";
189
+ credentials: "credentials";
190
+ health: "health";
191
+ ip: "ip";
192
+ location: "location";
193
+ other: "other";
194
+ }>;
195
+ masking: z.ZodEnum<{
196
+ "mask-email": "mask-email";
197
+ "mask-partial": "mask-partial";
198
+ last4: "last4";
199
+ redact: "redact";
200
+ hash: "hash";
201
+ none: "none";
202
+ }>;
203
+ reason: z.ZodString;
204
+ confidence: z.ZodNumber;
205
+ }, z.core.$strip>>>;
206
+ }, z.core.$strip>>>;
207
+ }, z.core.$strip>;
208
+ export declare const EnumSuggestion: z.ZodObject<{
209
+ table: z.ZodString;
210
+ column: z.ZodString;
211
+ kind: z.ZodEnum<{
212
+ workflow: "workflow";
213
+ category: "category";
214
+ }>;
215
+ order: z.ZodNullable<z.ZodArray<z.ZodString>>;
216
+ terminal: z.ZodOptional<z.ZodArray<z.ZodString>>;
217
+ tones: z.ZodRecord<z.ZodString, z.ZodEnum<{
218
+ pos: "pos";
219
+ warn: "warn";
220
+ danger: "danger";
221
+ accent: "accent";
222
+ muted: "muted";
223
+ }>>;
224
+ reason: z.ZodString;
225
+ confidence: z.ZodNumber;
226
+ }, z.core.$strip>;
227
+ export declare const ConfirmedRelation: z.ZodObject<{
228
+ fromTable: z.ZodString;
229
+ fromColumns: z.ZodArray<z.ZodString>;
230
+ toTable: z.ZodString;
231
+ toColumns: z.ZodArray<z.ZodString>;
232
+ semantics: z.ZodString;
233
+ correct: z.ZodBoolean;
234
+ confidence: z.ZodNumber;
235
+ }, z.core.$strip>;
236
+ export declare const InferredRelation: z.ZodObject<{
237
+ fromTable: z.ZodString;
238
+ fromColumns: z.ZodArray<z.ZodString>;
239
+ toTable: z.ZodString;
240
+ toColumns: z.ZodArray<z.ZodString>;
241
+ kind: z.ZodEnum<{
242
+ "many-to-one": "many-to-one";
243
+ "one-to-one": "one-to-one";
244
+ "many-to-many-via": "many-to-many-via";
245
+ }>;
246
+ viaTable: z.ZodOptional<z.ZodString>;
247
+ evidence: z.ZodString;
248
+ confidence: z.ZodNumber;
249
+ }, z.core.$strip>;
250
+ export declare const NavGroupSuggestion: z.ZodObject<{
251
+ id: z.ZodString;
252
+ label: z.ZodRecord<z.ZodString, z.ZodString>;
253
+ icon: z.ZodString;
254
+ order: z.ZodNumber;
255
+ tables: z.ZodArray<z.ZodString>;
256
+ confidence: z.ZodNumber;
257
+ }, z.core.$strip>;
258
+ export declare const WidgetSuggestion: z.ZodObject<{
259
+ widget: z.ZodString;
260
+ rank: z.ZodNumber;
261
+ span: z.ZodUnion<readonly [z.ZodLiteral<3>, z.ZodLiteral<4>, z.ZodLiteral<6>, z.ZodLiteral<8>, z.ZodLiteral<12>]>;
262
+ table: z.ZodString;
263
+ metricColumn: z.ZodOptional<z.ZodString>;
264
+ dimensionColumn: z.ZodOptional<z.ZodString>;
265
+ timeColumn: z.ZodOptional<z.ZodString>;
266
+ agg: z.ZodOptional<z.ZodEnum<{
267
+ count: "count";
268
+ sum: "sum";
269
+ avg: "avg";
270
+ min: "min";
271
+ max: "max";
272
+ }>>;
273
+ titleEn: z.ZodString;
274
+ reason: z.ZodString;
275
+ confidence: z.ZodNumber;
276
+ }, z.core.$strip>;
277
+ export declare const DashboardSuggestion: z.ZodObject<{
278
+ id: z.ZodString;
279
+ domain: z.ZodString;
280
+ label: z.ZodRecord<z.ZodString, z.ZodString>;
281
+ order: z.ZodNumber;
282
+ tables: z.ZodArray<z.ZodString>;
283
+ widgets: z.ZodArray<z.ZodObject<{
284
+ widget: z.ZodString;
285
+ rank: z.ZodNumber;
286
+ span: z.ZodUnion<readonly [z.ZodLiteral<3>, z.ZodLiteral<4>, z.ZodLiteral<6>, z.ZodLiteral<8>, z.ZodLiteral<12>]>;
287
+ table: z.ZodString;
288
+ metricColumn: z.ZodOptional<z.ZodString>;
289
+ dimensionColumn: z.ZodOptional<z.ZodString>;
290
+ timeColumn: z.ZodOptional<z.ZodString>;
291
+ agg: z.ZodOptional<z.ZodEnum<{
292
+ count: "count";
293
+ sum: "sum";
294
+ avg: "avg";
295
+ min: "min";
296
+ max: "max";
297
+ }>>;
298
+ titleEn: z.ZodString;
299
+ reason: z.ZodString;
300
+ confidence: z.ZodNumber;
301
+ }, z.core.$strip>>;
302
+ }, z.core.$strip>;
303
+ export declare const LlmResponseV1: z.ZodObject<{
304
+ schema_version: z.ZodLiteral<"adminium.llm/v1">;
305
+ run_id: z.ZodOptional<z.ZodString>;
306
+ error: z.ZodOptional<z.ZodString>;
307
+ tables: z.ZodDefault<z.ZodArray<z.ZodObject<{
308
+ table: z.ZodString;
309
+ confidence: z.ZodNumber;
310
+ label: z.ZodRecord<z.ZodString, z.ZodString>;
311
+ description: z.ZodRecord<z.ZodString, z.ZodString>;
312
+ icon: z.ZodString;
313
+ displayColumn: z.ZodNullable<z.ZodString>;
314
+ naturalKey: z.ZodNullable<z.ZodArray<z.ZodString>>;
315
+ pageTemplates: z.ZodDefault<z.ZodArray<z.ZodObject<{
316
+ template: z.ZodString;
317
+ rank: z.ZodNumber;
318
+ triggers: z.ZodArray<z.ZodString>;
319
+ reason: z.ZodString;
320
+ confidence: z.ZodNumber;
321
+ }, z.core.$strip>>>;
322
+ microcopy: z.ZodOptional<z.ZodObject<{
323
+ emptyState: z.ZodObject<{
324
+ headline: z.ZodRecord<z.ZodString, z.ZodString>;
325
+ guidance: z.ZodRecord<z.ZodString, z.ZodString>;
326
+ }, z.core.$strip>;
327
+ pageSubtitle: z.ZodRecord<z.ZodString, z.ZodString>;
328
+ }, z.core.$strip>>;
329
+ columns: z.ZodDefault<z.ZodArray<z.ZodObject<{
330
+ column: z.ZodString;
331
+ label: z.ZodRecord<z.ZodString, z.ZodString>;
332
+ description: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
333
+ pii: z.ZodDefault<z.ZodNullable<z.ZodObject<{
334
+ kind: z.ZodEnum<{
335
+ email: "email";
336
+ phone: "phone";
337
+ name: "name";
338
+ address: "address";
339
+ "gov-id": "gov-id";
340
+ dob: "dob";
341
+ financial: "financial";
342
+ credentials: "credentials";
343
+ health: "health";
344
+ ip: "ip";
345
+ location: "location";
346
+ other: "other";
347
+ }>;
348
+ masking: z.ZodEnum<{
349
+ "mask-email": "mask-email";
350
+ "mask-partial": "mask-partial";
351
+ last4: "last4";
352
+ redact: "redact";
353
+ hash: "hash";
354
+ none: "none";
355
+ }>;
356
+ reason: z.ZodString;
357
+ confidence: z.ZodNumber;
358
+ }, z.core.$strip>>>;
359
+ }, z.core.$strip>>>;
360
+ }, z.core.$strip>>>;
361
+ enums: z.ZodDefault<z.ZodArray<z.ZodObject<{
362
+ table: z.ZodString;
363
+ column: z.ZodString;
364
+ kind: z.ZodEnum<{
365
+ workflow: "workflow";
366
+ category: "category";
367
+ }>;
368
+ order: z.ZodNullable<z.ZodArray<z.ZodString>>;
369
+ terminal: z.ZodOptional<z.ZodArray<z.ZodString>>;
370
+ tones: z.ZodRecord<z.ZodString, z.ZodEnum<{
371
+ pos: "pos";
372
+ warn: "warn";
373
+ danger: "danger";
374
+ accent: "accent";
375
+ muted: "muted";
376
+ }>>;
377
+ reason: z.ZodString;
378
+ confidence: z.ZodNumber;
379
+ }, z.core.$strip>>>;
380
+ relations: z.ZodDefault<z.ZodObject<{
381
+ confirmed: z.ZodDefault<z.ZodArray<z.ZodObject<{
382
+ fromTable: z.ZodString;
383
+ fromColumns: z.ZodArray<z.ZodString>;
384
+ toTable: z.ZodString;
385
+ toColumns: z.ZodArray<z.ZodString>;
386
+ semantics: z.ZodString;
387
+ correct: z.ZodBoolean;
388
+ confidence: z.ZodNumber;
389
+ }, z.core.$strip>>>;
390
+ inferred: z.ZodDefault<z.ZodArray<z.ZodObject<{
391
+ fromTable: z.ZodString;
392
+ fromColumns: z.ZodArray<z.ZodString>;
393
+ toTable: z.ZodString;
394
+ toColumns: z.ZodArray<z.ZodString>;
395
+ kind: z.ZodEnum<{
396
+ "many-to-one": "many-to-one";
397
+ "one-to-one": "one-to-one";
398
+ "many-to-many-via": "many-to-many-via";
399
+ }>;
400
+ viaTable: z.ZodOptional<z.ZodString>;
401
+ evidence: z.ZodString;
402
+ confidence: z.ZodNumber;
403
+ }, z.core.$strip>>>;
404
+ }, z.core.$strip>>;
405
+ navGroups: z.ZodDefault<z.ZodArray<z.ZodObject<{
406
+ id: z.ZodString;
407
+ label: z.ZodRecord<z.ZodString, z.ZodString>;
408
+ icon: z.ZodString;
409
+ order: z.ZodNumber;
410
+ tables: z.ZodArray<z.ZodString>;
411
+ confidence: z.ZodNumber;
412
+ }, z.core.$strip>>>;
413
+ dashboards: z.ZodDefault<z.ZodArray<z.ZodObject<{
414
+ id: z.ZodString;
415
+ domain: z.ZodString;
416
+ label: z.ZodRecord<z.ZodString, z.ZodString>;
417
+ order: z.ZodNumber;
418
+ tables: z.ZodArray<z.ZodString>;
419
+ widgets: z.ZodArray<z.ZodObject<{
420
+ widget: z.ZodString;
421
+ rank: z.ZodNumber;
422
+ span: z.ZodUnion<readonly [z.ZodLiteral<3>, z.ZodLiteral<4>, z.ZodLiteral<6>, z.ZodLiteral<8>, z.ZodLiteral<12>]>;
423
+ table: z.ZodString;
424
+ metricColumn: z.ZodOptional<z.ZodString>;
425
+ dimensionColumn: z.ZodOptional<z.ZodString>;
426
+ timeColumn: z.ZodOptional<z.ZodString>;
427
+ agg: z.ZodOptional<z.ZodEnum<{
428
+ count: "count";
429
+ sum: "sum";
430
+ avg: "avg";
431
+ min: "min";
432
+ max: "max";
433
+ }>>;
434
+ titleEn: z.ZodString;
435
+ reason: z.ZodString;
436
+ confidence: z.ZodNumber;
437
+ }, z.core.$strip>>;
438
+ }, z.core.$strip>>>;
439
+ notes: z.ZodOptional<z.ZodArray<z.ZodString>>;
440
+ }, z.core.$strict>;
441
+ export type LlmResponseV1 = z.infer<typeof LlmResponseV1>;
442
+ export type LocaleCode = z.infer<typeof LocaleCode>;
443
+ export type L10n = z.infer<typeof L10n>;
444
+ export type Tone = z.infer<typeof Tone>;
445
+ export type PiiKind = z.infer<typeof PiiKind>;
446
+ export type Masking = z.infer<typeof Masking>;
447
+ export type Agg = z.infer<typeof Agg>;
448
+ export type RelationKind = z.infer<typeof RelationKind>;
449
+ export type PiiSuggestion = z.infer<typeof PiiSuggestion>;
450
+ export type ColumnSuggestion = z.infer<typeof ColumnSuggestion>;
451
+ export type PageTemplateSuggestion = z.infer<typeof PageTemplateSuggestion>;
452
+ export type Microcopy = z.infer<typeof Microcopy>;
453
+ export type TableSuggestion = z.infer<typeof TableSuggestion>;
454
+ export type EnumSuggestion = z.infer<typeof EnumSuggestion>;
455
+ export type ConfirmedRelation = z.infer<typeof ConfirmedRelation>;
456
+ export type InferredRelation = z.infer<typeof InferredRelation>;
457
+ export type NavGroupSuggestion = z.infer<typeof NavGroupSuggestion>;
458
+ export type WidgetSuggestion = z.infer<typeof WidgetSuggestion>;
459
+ export type DashboardSuggestion = z.infer<typeof DashboardSuggestion>;
460
+ /**
461
+ * Prompt-contract version. §4.3 colocates the authoritative constant in
462
+ * prompt/templates/v1.ts (06-T03); it is mirrored here so the response contract
463
+ * and its version negotiation are self-contained and need no cross-subdir
464
+ * import. Both must stay equal to `'adminium.prompt/v1.1'`.
465
+ *
466
+ * v1 → v1.1: the trigger-taxonomy `page-builder` row was removed from the §5.2
467
+ * user template (page-builder is `recommendable: false` and absent from
468
+ * `LLM_ALLOWED_TEMPLATES`; the taxonomy now matches the injected allowed list) —
469
+ * see prompt/templates/v1.ts. Wording-only; the response contract
470
+ * (`adminium.llm/v1`) is unchanged.
471
+ */
472
+ export declare const PROMPT_VERSION: "adminium.prompt/v1.1";
473
+ export type SupportedSchemaVersion = (typeof SUPPORTED_SCHEMA_VERSIONS)[number];
474
+ /** Fatal code raised by stage 3 of the pipeline (§7.2) on an unknown contract. */
475
+ export declare const VERSION_MISMATCH_CODE: "LLM_VERSION_MISMATCH";
476
+ /** Rendered verbatim in the paste UI when a response targets an unknown contract (§4.3). */
477
+ export declare const VERSION_MISMATCH_HINT = "Regenerate the prompt in Studio (Settings \u2192 AI) \u2014 this response was produced for an unsupported contract version.";
478
+ export interface VersionSupported {
479
+ ok: true;
480
+ version: SupportedSchemaVersion;
481
+ }
482
+ export interface VersionRejected {
483
+ ok: false;
484
+ code: typeof VERSION_MISMATCH_CODE;
485
+ /** The offending value, echoed back for the error message / support. */
486
+ found: unknown;
487
+ message: string;
488
+ hint: string;
489
+ }
490
+ export type VersionNegotiation = VersionSupported | VersionRejected;
491
+ /**
492
+ * Predicate: is `version` a contract version this build still validates?
493
+ *
494
+ * When v2 ships, v1 stays in {@link SUPPORTED_SCHEMA_VERSIONS} and keeps
495
+ * validating against the frozen v1 schema (§4.3) — a user may paste a response
496
+ * generated from a prompt downloaded weeks earlier. `supported` is injectable so
497
+ * that forward-compatibility (a supported-but-older version) is testable today.
498
+ */
499
+ export declare function isSupportedSchemaVersion(version: unknown, supported?: readonly string[]): version is SupportedSchemaVersion;
500
+ /**
501
+ * Negotiate a response's declared `schema_version` (§4.3): a supported version
502
+ * (including a supported-but-older one) resolves `ok`; anything else is a fatal
503
+ * rejection carrying `LLM_VERSION_MISMATCH` and the regeneration hint.
504
+ */
505
+ export declare function negotiateSchemaVersion(version: unknown, supported?: readonly string[]): VersionNegotiation;
506
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/response/schema.ts"],"names":[],"mappings":"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"}