@duckcodeailabs/dql-agent 1.13.1 → 1.13.3

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 (39) hide show
  1. package/dist/answer-loop.d.ts +9 -1
  2. package/dist/answer-loop.d.ts.map +1 -1
  3. package/dist/answer-loop.js +57 -5
  4. package/dist/answer-loop.js.map +1 -1
  5. package/dist/app-builder-orchestrator.d.ts +46 -0
  6. package/dist/app-builder-orchestrator.d.ts.map +1 -0
  7. package/dist/app-builder-orchestrator.js +361 -0
  8. package/dist/app-builder-orchestrator.js.map +1 -0
  9. package/dist/app-builder.d.ts +19 -1
  10. package/dist/app-builder.d.ts.map +1 -1
  11. package/dist/app-builder.js +261 -51
  12. package/dist/app-builder.js.map +1 -1
  13. package/dist/app-source-catalog.d.ts +78 -0
  14. package/dist/app-source-catalog.d.ts.map +1 -0
  15. package/dist/app-source-catalog.js +236 -0
  16. package/dist/app-source-catalog.js.map +1 -0
  17. package/dist/index.d.ts +5 -1
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +3 -1
  20. package/dist/index.js.map +1 -1
  21. package/dist/metadata/analytical-policy.d.ts +8 -0
  22. package/dist/metadata/analytical-policy.d.ts.map +1 -1
  23. package/dist/metadata/analytical-policy.js +3 -0
  24. package/dist/metadata/analytical-policy.js.map +1 -1
  25. package/dist/metadata/catalog.d.ts +19 -1
  26. package/dist/metadata/catalog.d.ts.map +1 -1
  27. package/dist/metadata/catalog.js +261 -14
  28. package/dist/metadata/catalog.js.map +1 -1
  29. package/dist/metadata/meaning-evidence.d.ts +0 -5
  30. package/dist/metadata/meaning-evidence.d.ts.map +1 -1
  31. package/dist/metadata/meaning-evidence.js +57 -0
  32. package/dist/metadata/meaning-evidence.js.map +1 -1
  33. package/dist/propose/build-from-prompt.d.ts.map +1 -1
  34. package/dist/propose/build-from-prompt.js +27 -0
  35. package/dist/propose/build-from-prompt.js.map +1 -1
  36. package/dist/skills/loader.d.ts.map +1 -1
  37. package/dist/skills/loader.js +27 -1
  38. package/dist/skills/loader.js.map +1 -1
  39. package/package.json +4 -4
@@ -0,0 +1,46 @@
1
+ import type { AppBuildFrame, AppBuildRequirement, AppBuildSourcePolicy } from '@duckcodeailabs/dql-core';
2
+ import type { AppSourceCatalogRecord } from './app-source-catalog.js';
3
+ export type AppBuilderComponentRole = AppBuildRequirement['role'];
4
+ export type AppBuilderComponentView = 'kpi' | 'line' | 'bar' | 'table';
5
+ export interface AppBuilderPlannedComponent {
6
+ id: string;
7
+ title: string;
8
+ sourceId: string;
9
+ requirementIds: string[];
10
+ role: AppBuilderComponentRole;
11
+ view: AppBuilderComponentView;
12
+ rationale: string;
13
+ }
14
+ export interface AppBuilderBuildBrief {
15
+ version: 1;
16
+ planningMode: 'ai' | 'deterministic_fallback';
17
+ frame: AppBuildFrame;
18
+ requirements: AppBuildRequirement[];
19
+ components: AppBuilderPlannedComponent[];
20
+ selectedSourceIds: string[];
21
+ candidateSourceIds: string[];
22
+ warnings: string[];
23
+ }
24
+ export interface AppBuilderPlannerCompletionInput {
25
+ system: string;
26
+ user: string;
27
+ }
28
+ export type AppBuilderPlannerCompletion = (input: AppBuilderPlannerCompletionInput) => Promise<string | undefined>;
29
+ export interface PlanAppBuildBriefInput {
30
+ prompt: string;
31
+ candidates: AppSourceCatalogRecord[];
32
+ sourcePolicy: AppBuildSourcePolicy;
33
+ domain?: string;
34
+ audience?: string;
35
+ complete?: AppBuilderPlannerCompletion;
36
+ }
37
+ /**
38
+ * App-specific orchestration boundary. It shares a host provider adapter but
39
+ * owns a structured, stateful build brief rather than invoking Ask AI's answer
40
+ * state machine. At most one provider call is made and it can reference only
41
+ * the supplied candidate IDs.
42
+ *
43
+ * Acceptance: PRD-007, AGT-026.
44
+ */
45
+ export declare function planAppBuildBrief(input: PlanAppBuildBriefInput): Promise<AppBuilderBuildBrief>;
46
+ //# sourceMappingURL=app-builder-orchestrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-builder-orchestrator.d.ts","sourceRoot":"","sources":["../src/app-builder-orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEtE,MAAM,MAAM,uBAAuB,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAClE,MAAM,MAAM,uBAAuB,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;AAEvE,MAAM,WAAW,0BAA0B;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,IAAI,EAAE,uBAAuB,CAAC;IAC9B,IAAI,EAAE,uBAAuB,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,CAAC,CAAC;IACX,YAAY,EAAE,IAAI,GAAG,wBAAwB,CAAC;IAC9C,KAAK,EAAE,aAAa,CAAC;IACrB,YAAY,EAAE,mBAAmB,EAAE,CAAC;IACpC,UAAU,EAAE,0BAA0B,EAAE,CAAC;IACzC,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,gCAAgC;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,2BAA2B,GAAG,CACxC,KAAK,EAAE,gCAAgC,KACpC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;AAEjC,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,sBAAsB,EAAE,CAAC;IACrC,YAAY,EAAE,oBAAoB,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,2BAA2B,CAAC;CACxC;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAqCpG"}
@@ -0,0 +1,361 @@
1
+ /**
2
+ * App-specific orchestration boundary. It shares a host provider adapter but
3
+ * owns a structured, stateful build brief rather than invoking Ask AI's answer
4
+ * state machine. At most one provider call is made and it can reference only
5
+ * the supplied candidate IDs.
6
+ *
7
+ * Acceptance: PRD-007, AGT-026.
8
+ */
9
+ export async function planAppBuildBrief(input) {
10
+ const prompt = input.prompt.trim();
11
+ if (!prompt)
12
+ throw new Error('App build prompt is required.');
13
+ const candidates = input.candidates.slice(0, 12);
14
+ if (!input.complete || candidates.length === 0)
15
+ return deterministicBrief(input, candidates);
16
+ let raw;
17
+ try {
18
+ raw = await input.complete({
19
+ system: appBuilderSystemPrompt(),
20
+ user: appBuilderUserPrompt(input, candidates),
21
+ });
22
+ }
23
+ catch {
24
+ return deterministicBrief(input, candidates, ['The configured App planning provider was unavailable; deterministic matching was used.']);
25
+ }
26
+ const parsed = parsePlannerJson(raw);
27
+ if (!parsed) {
28
+ return deterministicBrief(input, candidates, ['The App planning provider returned an invalid build brief; deterministic matching was used.']);
29
+ }
30
+ const allowedIds = new Set(candidates.map((candidate) => candidate.sourceId));
31
+ const requirements = normalizeRequirements(parsed.requirements);
32
+ const requirementIds = new Set(requirements.map((requirement) => requirement.id));
33
+ const components = normalizeComponents(parsed.components, allowedIds, requirementIds);
34
+ if (requirements.length === 0 || components.length === 0) {
35
+ return deterministicBrief(input, candidates, ['The App planning provider did not return grounded requirements and components; deterministic matching was used.']);
36
+ }
37
+ const frame = normalizeFrame(parsed.frame, prompt, input.audience);
38
+ return {
39
+ version: 1,
40
+ planningMode: 'ai',
41
+ frame,
42
+ requirements,
43
+ components,
44
+ selectedSourceIds: Array.from(new Set(components.map((component) => component.sourceId))),
45
+ candidateSourceIds: candidates.map((candidate) => candidate.sourceId),
46
+ warnings: [],
47
+ };
48
+ }
49
+ function deterministicBrief(input, candidates, warnings = []) {
50
+ const requirementQuestions = deterministicRequirementQuestions(input.prompt);
51
+ const requirements = requirementQuestions.map((question, index) => ({
52
+ id: `requirement-${index + 1}`,
53
+ question,
54
+ role: inferRequirementRole(question, index),
55
+ required: true,
56
+ measures: [],
57
+ dimensions: [],
58
+ filters: [],
59
+ }));
60
+ const requirementIdsBySource = new Map();
61
+ const selected = [];
62
+ const addSelection = (candidate, requirementId) => {
63
+ if (!selected.some((item) => item.sourceId === candidate.sourceId))
64
+ selected.push(candidate);
65
+ const ids = requirementIdsBySource.get(candidate.sourceId) ?? [];
66
+ if (!ids.includes(requirementId))
67
+ ids.push(requirementId);
68
+ requirementIdsBySource.set(candidate.sourceId, ids);
69
+ };
70
+ if (requirements.length === 1) {
71
+ for (const candidate of candidates.slice(0, Math.min(3, candidates.length))) {
72
+ addSelection(candidate, requirements[0].id);
73
+ }
74
+ }
75
+ else {
76
+ const used = new Set();
77
+ for (const requirement of requirements) {
78
+ const ranked = candidates
79
+ .map((candidate) => ({ candidate, score: deterministicCandidateScore(requirement.question, candidate) }))
80
+ .filter((entry) => entry.score > 0)
81
+ .sort((left, right) => right.score - left.score || left.candidate.sourceId.localeCompare(right.candidate.sourceId));
82
+ const match = ranked.find((entry) => !used.has(entry.candidate.sourceId)) ?? ranked[0];
83
+ if (!match)
84
+ continue;
85
+ used.add(match.candidate.sourceId);
86
+ addSelection(match.candidate, requirement.id);
87
+ }
88
+ }
89
+ const components = selected.map((candidate, index) => {
90
+ const requirementIds = requirementIdsBySource.get(candidate.sourceId) ?? [];
91
+ const primaryRequirement = requirements.find((requirement) => requirementIds.includes(requirement.id));
92
+ return {
93
+ id: `component-${index + 1}`,
94
+ title: candidate.title,
95
+ sourceId: candidate.sourceId,
96
+ requirementIds,
97
+ role: primaryRequirement?.role ?? inferRole(candidate, index),
98
+ view: inferView(candidate, index),
99
+ rationale: candidate.reasons[0] ?? `Matched ${candidate.title} from the App source catalog.`,
100
+ };
101
+ });
102
+ return {
103
+ version: 1,
104
+ planningMode: 'deterministic_fallback',
105
+ frame: {
106
+ goal: input.prompt.trim(),
107
+ decision: input.prompt.trim(),
108
+ audience: input.audience?.trim() || 'App users',
109
+ metrics: Array.from(new Set(selected.flatMap((candidate) => candidate.capabilities.measures))),
110
+ dimensions: Array.from(new Set(selected.flatMap((candidate) => candidate.capabilities.dimensions))),
111
+ filters: Array.from(new Set(selected.flatMap((candidate) => candidate.capabilities.filters))),
112
+ desiredOutput: 'Interactive analytical App',
113
+ },
114
+ requirements,
115
+ components,
116
+ selectedSourceIds: selected.map((candidate) => candidate.sourceId),
117
+ candidateSourceIds: candidates.map((candidate) => candidate.sourceId),
118
+ warnings,
119
+ };
120
+ }
121
+ const DETERMINISTIC_REQUIREMENT_STOP_WORDS = new Set([
122
+ 'a', 'an', 'analytics', 'and', 'app', 'application', 'available', 'block',
123
+ 'build', 'certified', 'create', 'dashboard', 'data', 'dql', 'draft', 'for',
124
+ 'from', 'governed', 'in', 'last', 'me', 'of', 'on', 'please', 'report',
125
+ 'source', 'table', 'the', 'to', 'using', 'view', 'warehouse', 'with',
126
+ ]);
127
+ function deterministicRequirementQuestions(prompt) {
128
+ const trimmed = prompt.trim().replace(/[.!?]+$/, '');
129
+ const focusMatch = trimmed.match(/\b(?:showing|including|that shows?|that tracks?|that monitors?)\b\s+(.+)$/i);
130
+ const focus = (focusMatch?.[1] ?? trimmed.replace(/^(?:please\s+)?(?:build|create|make|design)\s+(?:me\s+)?/i, '')).trim();
131
+ const parts = focus.split(/\s*(?:,|;|\band\b)\s*/i)
132
+ .map((part) => part.replace(/^(?:and\s+)?/i, '').trim())
133
+ .filter((part) => part.length > 2);
134
+ if (parts.length < 2 || parts.length > 6 || parts.some((part) => deterministicWords(part).size === 0))
135
+ return [trimmed];
136
+ return Array.from(new Set(parts.map((part) => part[0].toUpperCase() + part.slice(1))));
137
+ }
138
+ function deterministicWords(value) {
139
+ return new Set(value.toLowerCase().split(/[^a-z0-9]+/)
140
+ .map((token) => token.length > 3 && token.endsWith('s') ? token.slice(0, -1) : token)
141
+ .filter((token) => token.length > 1 && !DETERMINISTIC_REQUIREMENT_STOP_WORDS.has(token)));
142
+ }
143
+ function deterministicCandidateScore(question, candidate) {
144
+ const required = deterministicWords(question);
145
+ const title = deterministicWords(candidate.title);
146
+ const evidence = deterministicWords([
147
+ candidate.title,
148
+ candidate.description ?? '',
149
+ candidate.qualifiedIdentity,
150
+ ...candidate.tags,
151
+ ...candidate.capabilities.measures,
152
+ ...candidate.capabilities.dimensions,
153
+ ...candidate.capabilities.filters,
154
+ ].join(' '));
155
+ let score = 0;
156
+ for (const word of required) {
157
+ if (title.has(word))
158
+ score += 4;
159
+ else if (evidence.has(word))
160
+ score += 2;
161
+ }
162
+ return score;
163
+ }
164
+ function inferRequirementRole(question, index) {
165
+ const normalized = question.toLowerCase();
166
+ if (/trend|growth|change|week|month|quarter|year|over time/.test(normalized))
167
+ return 'trend';
168
+ if (/region|segment|category|channel|breakdown|rank|top/.test(normalized))
169
+ return 'breakdown';
170
+ if (/detail|customer|order|record|list/.test(normalized))
171
+ return 'detail';
172
+ return index === 0 ? 'kpi' : 'evidence';
173
+ }
174
+ function appBuilderSystemPrompt() {
175
+ return [
176
+ 'You are the DQL App Builder planner. Produce one stateful analytical App build brief, not a prose answer.',
177
+ 'Use only sourceId values present in the supplied candidate cards. Never invent a source, field, capability, or trust state.',
178
+ 'Draft and review sources may be recommended, but their trust must not be upgraded.',
179
+ 'Return JSON only with keys frame, requirements, and components.',
180
+ 'frame: {goal, decision?, audience?, metrics[], dimensions[], grain?, timeRange?, comparison?, filters[], desiredOutput?, clarificationQuestions?}.',
181
+ 'requirements: [{id, question, role, required, measures[], dimensions[], filters[], grain?}]. role is kpi, trend, breakdown, detail, narrative, or evidence.',
182
+ 'components: [{id, title, sourceId, requirementIds[], role, view, rationale}]. view is kpi, line, bar, or table.',
183
+ 'Prefer the fewest components that cover the request. Ask a clarification only when a material choice cannot be made from supplied evidence.',
184
+ ].join('\n');
185
+ }
186
+ function appBuilderUserPrompt(input, candidates) {
187
+ return JSON.stringify({
188
+ request: input.prompt,
189
+ sourcePolicy: input.sourcePolicy,
190
+ domain: input.domain,
191
+ audience: input.audience,
192
+ candidateCards: candidates.map((candidate) => ({
193
+ sourceId: candidate.sourceId,
194
+ qualifiedIdentity: candidate.qualifiedIdentity,
195
+ title: candidate.title,
196
+ description: candidate.description,
197
+ domain: candidate.domain,
198
+ lifecycle: candidate.lifecycle,
199
+ trust: candidate.trust,
200
+ eligibleForLocalPreview: candidate.eligibility.localPreview,
201
+ capabilities: candidate.capabilities,
202
+ evidence: candidate.reasons,
203
+ })),
204
+ });
205
+ }
206
+ function parsePlannerJson(raw) {
207
+ if (!raw?.trim())
208
+ return undefined;
209
+ const start = raw.indexOf('{');
210
+ const end = raw.lastIndexOf('}');
211
+ if (start < 0 || end <= start)
212
+ return undefined;
213
+ try {
214
+ const parsed = JSON.parse(raw.slice(start, end + 1));
215
+ return parsed && typeof parsed === 'object' && !Array.isArray(parsed)
216
+ ? parsed
217
+ : undefined;
218
+ }
219
+ catch {
220
+ return undefined;
221
+ }
222
+ }
223
+ function normalizeFrame(value, prompt, audience) {
224
+ const record = objectValue(value);
225
+ return {
226
+ goal: stringValue(record?.goal) ?? prompt,
227
+ ...(stringValue(record?.decision) ? { decision: stringValue(record?.decision) } : {}),
228
+ audience: stringValue(record?.audience) ?? audience ?? 'App users',
229
+ metrics: stringArray(record?.metrics),
230
+ dimensions: stringArray(record?.dimensions),
231
+ ...(stringValue(record?.grain) ? { grain: stringValue(record?.grain) } : {}),
232
+ ...(stringValue(record?.timeRange) ? { timeRange: stringValue(record?.timeRange) } : {}),
233
+ ...(stringValue(record?.comparison) ? { comparison: stringValue(record?.comparison) } : {}),
234
+ filters: stringArray(record?.filters),
235
+ ...(stringValue(record?.desiredOutput) ? { desiredOutput: stringValue(record?.desiredOutput) } : {}),
236
+ ...normalizeClarifications(record?.clarificationQuestions),
237
+ };
238
+ }
239
+ function normalizeRequirements(value) {
240
+ if (!Array.isArray(value))
241
+ return [];
242
+ const seen = new Set();
243
+ return value.slice(0, 12).flatMap((raw, index) => {
244
+ const record = objectValue(raw);
245
+ if (!record)
246
+ return [];
247
+ const id = stringValue(record.id) ?? `requirement-${index + 1}`;
248
+ const question = stringValue(record.question);
249
+ const role = appRole(record.role);
250
+ if (!question || !role || seen.has(id))
251
+ return [];
252
+ seen.add(id);
253
+ return [{
254
+ id,
255
+ question,
256
+ role,
257
+ required: record.required !== false,
258
+ measures: stringArray(record.measures),
259
+ dimensions: stringArray(record.dimensions),
260
+ filters: stringArray(record.filters),
261
+ ...(stringValue(record.grain) ? { grain: stringValue(record.grain) } : {}),
262
+ }];
263
+ });
264
+ }
265
+ function normalizeComponents(value, allowedSourceIds, requirementIds) {
266
+ if (!Array.isArray(value))
267
+ return [];
268
+ const seen = new Set();
269
+ return value.slice(0, 16).flatMap((raw, index) => {
270
+ const record = objectValue(raw);
271
+ if (!record)
272
+ return [];
273
+ const sourceId = stringValue(record.sourceId);
274
+ const role = appRole(record.role);
275
+ const view = appView(record.view);
276
+ const id = stringValue(record.id) ?? `component-${index + 1}`;
277
+ if (!sourceId || !allowedSourceIds.has(sourceId) || !role || !view || seen.has(id))
278
+ return [];
279
+ seen.add(id);
280
+ return [{
281
+ id,
282
+ title: stringValue(record.title) ?? id,
283
+ sourceId,
284
+ requirementIds: stringArray(record.requirementIds).filter((requirementId) => requirementIds.has(requirementId)),
285
+ role,
286
+ view,
287
+ rationale: stringValue(record.rationale) ?? 'Selected from the bounded App source candidate set.',
288
+ }];
289
+ });
290
+ }
291
+ function normalizeClarifications(value) {
292
+ if (!Array.isArray(value))
293
+ return {};
294
+ const questions = value.slice(0, 3).flatMap((raw, index) => {
295
+ const record = objectValue(raw);
296
+ const question = stringValue(record?.question);
297
+ if (!record || !question || !Array.isArray(record.choices))
298
+ return [];
299
+ const choices = record.choices.slice(0, 5).flatMap((choiceRaw, choiceIndex) => {
300
+ const choice = objectValue(choiceRaw);
301
+ const label = stringValue(choice?.label);
302
+ if (!choice || !label)
303
+ return [];
304
+ return [{
305
+ id: stringValue(choice.id) ?? `choice-${choiceIndex + 1}`,
306
+ label,
307
+ ...(stringValue(choice.description) ? { description: stringValue(choice.description) } : {}),
308
+ }];
309
+ });
310
+ if (choices.length < 2)
311
+ return [];
312
+ return [{
313
+ id: stringValue(record.id) ?? `clarification-${index + 1}`,
314
+ question,
315
+ choices,
316
+ required: record.required !== false,
317
+ ...(stringValue(record.answerId) ? { answerId: stringValue(record.answerId) } : {}),
318
+ }];
319
+ });
320
+ return questions.length ? { clarificationQuestions: questions } : {};
321
+ }
322
+ function inferRole(candidate, index) {
323
+ const text = `${candidate.title} ${candidate.capabilities.chartType ?? ''}`.toLowerCase();
324
+ if (index === 0 && candidate.capabilities.measures.length)
325
+ return 'kpi';
326
+ if (/trend|time|date|week|month|line/.test(text))
327
+ return 'trend';
328
+ if (/region|segment|category|channel|bar|rank/.test(text))
329
+ return 'breakdown';
330
+ return 'detail';
331
+ }
332
+ function inferView(candidate, index) {
333
+ const allowed = candidate.capabilities.allowedVisualizations ?? [];
334
+ const preferred = candidate.capabilities.chartType ?? allowed[0] ?? '';
335
+ if (/line|area/.test(preferred))
336
+ return 'line';
337
+ if (/bar|column|rank/.test(preferred))
338
+ return 'bar';
339
+ if (index === 0 && candidate.capabilities.measures.length)
340
+ return 'kpi';
341
+ return 'table';
342
+ }
343
+ function appRole(value) {
344
+ return value === 'kpi' || value === 'trend' || value === 'breakdown' || value === 'detail'
345
+ || value === 'narrative' || value === 'evidence' ? value : undefined;
346
+ }
347
+ function appView(value) {
348
+ return value === 'kpi' || value === 'line' || value === 'bar' || value === 'table' ? value : undefined;
349
+ }
350
+ function objectValue(value) {
351
+ return value && typeof value === 'object' && !Array.isArray(value) ? value : undefined;
352
+ }
353
+ function stringValue(value) {
354
+ return typeof value === 'string' && value.trim() ? value.trim() : undefined;
355
+ }
356
+ function stringArray(value) {
357
+ return Array.isArray(value)
358
+ ? Array.from(new Set(value.filter((item) => typeof item === 'string' && Boolean(item.trim())).map((item) => item.trim())))
359
+ : [];
360
+ }
361
+ //# sourceMappingURL=app-builder-orchestrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-builder-orchestrator.js","sourceRoot":"","sources":["../src/app-builder-orchestrator.ts"],"names":[],"mappings":"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"}
@@ -58,7 +58,7 @@ export interface AppPlanGenUi {
58
58
  export interface AppPlanFilter {
59
59
  id: string;
60
60
  label: string;
61
- type: "date" | "daterange" | "select" | "string" | "number";
61
+ type: "date" | "daterange" | "select" | "search" | "string" | "number";
62
62
  default?: unknown;
63
63
  options?: string[];
64
64
  bindsTo?: string;
@@ -223,4 +223,22 @@ export declare const APP_BUILDER_SKILLS: AppBuilderSkill[];
223
223
  export declare function planAppFromPrompt(input: PlanAppFromPromptInput): AppPlan;
224
224
  export declare function validateAppPlan(plan: AppPlan, kg: KGStore): AppPlanValidationResult;
225
225
  export declare function generateAppFromPlan(projectRoot: string, plan: AppPlan, kg: KGStore, options?: GenerateAppFromPlanOptions): GeneratedAppPackage;
226
+ /**
227
+ * Compile a validated AppPlan into typed App/dashboard documents without
228
+ * touching the user's project. App Studio uses this for AI proposal diffs;
229
+ * only the later Publish to Project service writes canonical App source.
230
+ */
231
+ export declare function materializeAppPlanDocuments(plan: AppPlan, kg: KGStore, options?: GenerateAppFromPlanOptions): Pick<GeneratedAppPackage, "app" | "dashboards">;
232
+ /**
233
+ * A tile title a stakeholder can read.
234
+ *
235
+ * A certified block's KG node name is its id — `monthly_revenue` — so using it
236
+ * directly labelled every AI-built tile with an identifier, which also made the
237
+ * titles look like system fields rather than something the author may rename.
238
+ * Prefer the lead clause of the block's own description, which authors already
239
+ * write as a summary ("Monthly gross order revenue and order count."), and fall
240
+ * back to the de-slugged id when that clause is missing or too long to sit in a
241
+ * tile header.
242
+ */
243
+ export declare function humanTileTitle(name: string, description?: string): string;
226
244
  //# sourceMappingURL=app-builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-builder.d.ts","sourceRoot":"","sources":["../src/app-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app-builder.d.ts","sourceRoot":"","sources":["../src/app-builder.ts"],"names":[],"mappings":"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"}