@auto-engineer/information-architect 0.13.3 → 0.15.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.
@@ -1,9 +1,9 @@
1
+ import { promises as fs } from 'node:fs';
2
+ import * as path from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
1
4
  import { defineCommandHandler } from '@auto-engineer/message-bus';
2
- import { promises as fs } from 'fs';
3
- import * as path from 'path';
4
- import { fileURLToPath } from 'url';
5
- import { processFlowsWithAI } from '../index.js';
6
5
  import createDebug from 'debug';
6
+ import { processFlowsWithAI, validateCompositionReferences } from '../index.js';
7
7
  import { flattenClientSpecs } from '../spec-utils.js';
8
8
  const debug = createDebug('auto:information-architect:generate-command');
9
9
  const debugSchema = createDebug('auto:information-architect:generate-command:schema');
@@ -14,11 +14,16 @@ const __filename = fileURLToPath(import.meta.url);
14
14
  const __dirname = path.dirname(__filename);
15
15
  export const commandHandler = defineCommandHandler({
16
16
  name: 'GenerateIA',
17
+ displayName: 'Generate IA',
17
18
  alias: 'generate:ia',
18
19
  description: 'Generate Information Architecture',
19
20
  category: 'generate',
20
21
  icon: 'building',
21
- events: ['IAGenerated', 'IAGenerationFailed'],
22
+ events: [
23
+ { name: 'IAGenerated', displayName: 'IA Generated' },
24
+ { name: 'IAGenerationFailed', displayName: 'IA Generation Failed' },
25
+ { name: 'IAValidationFailed', displayName: 'IA Validation Failed' },
26
+ ],
22
27
  fields: {
23
28
  outputDir: {
24
29
  description: 'Context directory',
@@ -35,6 +40,9 @@ export const commandHandler = defineCommandHandler({
35
40
  if (result.type === 'IAGenerated') {
36
41
  debug('IA schema generated successfully');
37
42
  }
43
+ else if (result.type === 'IAValidationFailed') {
44
+ debug('Validation failed with %d errors', result.data.errors.length);
45
+ }
38
46
  else {
39
47
  debug('Failed: %s', result.data.error);
40
48
  }
@@ -106,7 +114,7 @@ async function getUniqueSchemaPath(outputDir) {
106
114
  return { filePath, existingSchema };
107
115
  }
108
116
  async function handleGenerateIACommandInternal(command) {
109
- const { outputDir, modelPath } = command.data;
117
+ const { outputDir, modelPath, previousErrors } = command.data;
110
118
  debug('Handling GenerateIA command');
111
119
  debug(' Output directory: %s', outputDir);
112
120
  debug(' Request ID: %s', command.requestId);
@@ -134,8 +142,27 @@ async function handleGenerateIACommandInternal(command) {
134
142
  debug('Processing flows with AI...');
135
143
  debug(' Existing schema: %s', existingSchema ? 'yes' : 'no');
136
144
  debug(' Atom count: %d', atoms.length);
137
- const iaSchema = await processFlowsWithAI(processedModel, uxSchema, existingSchema, atoms);
145
+ const iaSchema = await processFlowsWithAI(processedModel, uxSchema, existingSchema, atoms, previousErrors);
138
146
  debug('AI processing complete');
147
+ const validationErrors = validateCompositionReferences(iaSchema, atomNames);
148
+ if (validationErrors.length > 0) {
149
+ debug('Validation failed with %d errors', validationErrors.length);
150
+ for (const err of validationErrors) {
151
+ debug(' - %s', err.message);
152
+ }
153
+ const validationFailedEvent = {
154
+ type: 'IAValidationFailed',
155
+ data: {
156
+ errors: validationErrors,
157
+ outputDir,
158
+ modelPath,
159
+ },
160
+ timestamp: new Date(),
161
+ requestId: command.requestId,
162
+ correlationId: command.correlationId,
163
+ };
164
+ return validationFailedEvent;
165
+ }
139
166
  // Write the schema to file
140
167
  debugResult('Writing IA schema to: %s', filePath);
141
168
  const schemaJson = JSON.stringify(iaSchema, null, 2);
@@ -1 +1 @@
1
- {"version":3,"file":"generate-ia.js","sourceRoot":"","sources":["../../../src/commands/generate-ia.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-ia.js","sourceRoot":"","sources":["../../../src/commands/generate-ia.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { processFlowsWithAI } from './index.js';
1
+ import * as fs from 'node:fs/promises';
2
+ import * as path from 'node:path';
2
3
  import uxSchema from './auto-ux-schema.json.js';
3
- import * as fs from 'fs/promises';
4
- import * as path from 'path';
4
+ import { processFlowsWithAI } from './index.js';
5
5
  function determineSectionType(line) {
6
6
  if (line === '## Components')
7
7
  return 'components';
@@ -70,7 +70,7 @@ async function getUniqueSchemaPath(outputDir) {
70
70
  await fs.mkdir(outputDir, { recursive: true });
71
71
  const baseFileName = 'auto-ia-scheme';
72
72
  const basePath = path.join(outputDir, baseFileName);
73
- let existingSchema = undefined;
73
+ let existingSchema;
74
74
  try {
75
75
  existingSchema = JSON.parse(await fs.readFile(`${basePath}.json`, 'utf-8'));
76
76
  console.log('Existing IA schema found and will be taken into account.');
@@ -1 +1 @@
1
- {"version":3,"file":"generate-ia-schema.js","sourceRoot":"","sources":["../../src/generate-ia-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-ia-schema.js","sourceRoot":"","sources":["../../src/generate-ia-schema.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,14 @@
1
- import { AIProvider } from '@auto-engineer/ai-gateway';
2
- import { type UXSchema, type AIAgentOutput } from './types.js';
3
- import { type Model } from '@auto-engineer/narrative';
1
+ import { type AIProvider } from '@auto-engineer/ai-gateway';
2
+ import type { Model } from '@auto-engineer/narrative';
3
+ import type { AIAgentOutput, UXSchema } from './types.js';
4
+ export interface ValidationError {
5
+ component: string;
6
+ type: 'molecule' | 'organism';
7
+ field: string;
8
+ invalidReferences: string[];
9
+ message: string;
10
+ }
11
+ export declare function validateCompositionReferences(schema: unknown, designSystemAtoms?: string[]): ValidationError[];
4
12
  export declare class InformationArchitectAgent {
5
13
  private provider?;
6
14
  constructor(provider?: AIProvider);
@@ -10,7 +18,7 @@ export declare class InformationArchitectAgent {
10
18
  name: string;
11
19
  type: string;
12
20
  }[];
13
- }[]): Promise<AIAgentOutput>;
21
+ }[], previousErrors?: string): Promise<AIAgentOutput>;
14
22
  private constructPrompt;
15
23
  }
16
24
  export declare function processFlowsWithAI(model: Model, uxSchema: UXSchema, existingSchema?: object, atoms?: {
@@ -19,5 +27,5 @@ export declare function processFlowsWithAI(model: Model, uxSchema: UXSchema, exi
19
27
  name: string;
20
28
  type: string;
21
29
  }[];
22
- }[]): Promise<AIAgentOutput>;
30
+ }[], previousErrors?: string): Promise<AIAgentOutput>;
23
31
  //# sourceMappingURL=ia-agent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ia-agent.d.ts","sourceRoot":"","sources":["../../src/ia-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAetD,qBAAa,yBAAyB;IACpC,OAAO,CAAC,QAAQ,CAAC,CAAa;gBAElB,QAAQ,CAAC,EAAE,UAAU;IAI3B,oBAAoB,CACxB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,cAAc,CAAC,EAAE,MAAM,EACvB,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAAE,EAAE,GAClE,OAAO,CAAC,aAAa,CAAC;IAsBzB,OAAO,CAAC,eAAe;CAgGxB;AAED,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,cAAc,CAAC,EAAE,MAAM,EACvB,KAAK,CAAC,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,EAAE,GAClE,OAAO,CAAC,aAAa,CAAC,CAGxB"}
1
+ {"version":3,"file":"ia-agent.d.ts","sourceRoot":"","sources":["../../src/ia-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAsB,MAAM,2BAA2B,CAAC;AAChF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAoC1D,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,UAAU,GAAG,UAAU,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAE,MAAM,EAAO,GAAG,eAAe,EAAE,CAsDlH;AAED,qBAAa,yBAAyB;IACpC,OAAO,CAAC,QAAQ,CAAC,CAAa;gBAElB,QAAQ,CAAC,EAAE,UAAU;IAI3B,oBAAoB,CACxB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,cAAc,CAAC,EAAE,MAAM,EACvB,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAAE,EAAE,EACnE,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,aAAa,CAAC;IAsBzB,OAAO,CAAC,eAAe;CAsHxB;AAED,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,cAAc,CAAC,EAAE,MAAM,EACvB,KAAK,CAAC,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,EAAE,EACnE,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,aAAa,CAAC,CAGxB"}
@@ -11,12 +11,57 @@ function isJsonString(str) {
11
11
  return false;
12
12
  }
13
13
  }
14
+ export function validateCompositionReferences(schema, designSystemAtoms = []) {
15
+ const s = schema;
16
+ const errors = [];
17
+ const schemaAtoms = Object.keys(s.atoms?.items ?? {});
18
+ const atomNames = new Set([...schemaAtoms, ...designSystemAtoms]);
19
+ const moleculeNames = new Set(Object.keys(s.molecules?.items ?? {}));
20
+ const organismNames = new Set(Object.keys(s.organisms?.items ?? {}));
21
+ for (const [name, def] of Object.entries(s.molecules?.items ?? {})) {
22
+ const referencedAtoms = def.composition?.atoms ?? [];
23
+ const invalidAtoms = referencedAtoms.filter((atom) => !atomNames.has(atom));
24
+ if (invalidAtoms.length > 0) {
25
+ errors.push({
26
+ component: name,
27
+ type: 'molecule',
28
+ field: 'composition.atoms',
29
+ invalidReferences: invalidAtoms,
30
+ message: `Molecule "${name}" references non-existent atoms: ${invalidAtoms.join(', ')}`,
31
+ });
32
+ }
33
+ }
34
+ for (const [name, def] of Object.entries(s.organisms?.items ?? {})) {
35
+ const referencedMolecules = def.composition?.molecules ?? [];
36
+ const nonExistentMolecules = referencedMolecules.filter((mol) => !moleculeNames.has(mol) && !organismNames.has(mol));
37
+ if (nonExistentMolecules.length > 0) {
38
+ errors.push({
39
+ component: name,
40
+ type: 'organism',
41
+ field: 'composition.molecules',
42
+ invalidReferences: nonExistentMolecules,
43
+ message: `Organism "${name}" references non-existent molecules: ${nonExistentMolecules.join(', ')}`,
44
+ });
45
+ }
46
+ const organismsAsMolecules = referencedMolecules.filter((mol) => organismNames.has(mol) && !moleculeNames.has(mol));
47
+ if (organismsAsMolecules.length > 0) {
48
+ errors.push({
49
+ component: name,
50
+ type: 'organism',
51
+ field: 'composition.molecules',
52
+ invalidReferences: organismsAsMolecules,
53
+ message: `Organism "${name}" incorrectly references organisms as molecules: ${organismsAsMolecules.join(', ')}. These should be in molecules.items, not organisms.items.`,
54
+ });
55
+ }
56
+ }
57
+ return errors;
58
+ }
14
59
  export class InformationArchitectAgent {
15
60
  constructor(provider) {
16
61
  this.provider = provider;
17
62
  }
18
- async generateUXComponents(model, uxSchema, existingSchema, atoms) {
19
- const prompt = this.constructPrompt(model, uxSchema, existingSchema, atoms);
63
+ async generateUXComponents(model, uxSchema, existingSchema, atoms, previousErrors) {
64
+ const prompt = this.constructPrompt(model, uxSchema, existingSchema, atoms, previousErrors);
20
65
  try {
21
66
  const response = await generateTextWithAI(prompt, {
22
67
  provider: this.provider,
@@ -28,7 +73,7 @@ export class InformationArchitectAgent {
28
73
  }
29
74
  const clean = extractJsonFromMarkdown(response);
30
75
  if (!isJsonString(clean)) {
31
- throw new Error('AI did not return valid JSON. Got: ' + clean.slice(0, 100));
76
+ throw new Error(`AI did not return valid JSON. Got: ${clean.slice(0, 100)}`);
32
77
  }
33
78
  return JSON.parse(clean);
34
79
  }
@@ -37,13 +82,33 @@ export class InformationArchitectAgent {
37
82
  throw error;
38
83
  }
39
84
  }
40
- constructPrompt(model, uxSchema, existingSchema, atoms) {
85
+ constructPrompt(model, uxSchema, existingSchema, atoms, previousErrors) {
86
+ const errorContext = previousErrors
87
+ ? `
88
+ PREVIOUS ATTEMPT FAILED VALIDATION. You MUST fix these errors:
89
+ ${previousErrors}
90
+
91
+ The schema was rejected because of the composition errors above. Please regenerate the schema with these issues corrected.
92
+ `
93
+ : '';
41
94
  return `
42
95
  You are an expert UI architect and product designer. Given the following model (containing flows, messages, and integrations) and UX schema, generate a detailed JSON specification for the application's UI components and pages.
43
-
96
+ ${errorContext}
44
97
  IMPORTANT: Only generate pages and components that are directly referenced in the provided model's flows. Do NOT add any extra pages or components, and do NOT make assumptions outside the flows. If something is not mentioned in the flows, it should NOT appear in the output.
45
98
  IMPORTANT: try your best to reuse the existing atoms, and try not to generate atoms with context: like Submit Button, because the submit part is mainly irrelevant, instead just use the Button atom if provided.
46
99
 
100
+ CRITICAL COMPOSITION RULES - THESE ARE STRICT AND MUST BE FOLLOWED:
101
+ 1. Atoms: Basic UI primitives (Button, Text, Input, Icon, etc.). Atoms do NOT compose other atoms.
102
+ 2. Molecules: Composed ONLY of atoms. A molecule's "composition.atoms" array must ONLY reference items that exist in "atoms.items".
103
+ 3. Organisms: Composed of atoms AND molecules. An organism's "composition.molecules" array must ONLY reference items that exist in "molecules.items". An organism MUST NOT reference other organisms.
104
+ 4. Pages: Can reference organisms, molecules, and atoms.
105
+
106
+ VALIDATION CHECKLIST (the schema will be rejected if these rules are violated):
107
+ - Every item in a molecule's "composition.atoms" MUST exist in "atoms.items"
108
+ - Every item in an organism's "composition.molecules" MUST exist in "molecules.items"
109
+ - An organism's "composition.molecules" MUST NOT contain names that only exist in "organisms.items"
110
+ - Cross-check all composition references before finalizing the output
111
+
47
112
  $${atoms ? `Here is a list of available atomic components (atoms) from the design system. Use these atoms and their props as much as possible. Only create new atoms if absolutely necessary. And only put the new atoms created into the schema. \n\nAtoms:\n${JSON.stringify(atoms, null, 2)}\n` : ''}
48
113
  System Model (flows, messages, integrations):
49
114
  ${JSON.stringify(model, null, 2)}
@@ -129,8 +194,8 @@ Do not include any text, explanation, or markdown—only the JSON object as desc
129
194
  `;
130
195
  }
131
196
  }
132
- export async function processFlowsWithAI(model, uxSchema, existingSchema, atoms) {
197
+ export async function processFlowsWithAI(model, uxSchema, existingSchema, atoms, previousErrors) {
133
198
  const agent = new InformationArchitectAgent();
134
- return agent.generateUXComponents(model, uxSchema, existingSchema, atoms);
199
+ return agent.generateUXComponents(model, uxSchema, existingSchema, atoms, previousErrors);
135
200
  }
136
201
  //# sourceMappingURL=ia-agent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ia-agent.js","sourceRoot":"","sources":["../../src/ia-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAc,MAAM,2BAA2B,CAAC;AAI3E,SAAS,uBAAuB,CAAC,IAAY;IAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,iCAAiC,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AACtE,CAAC;AAED,SAAS,YAAY,CAAC,GAAW;IAC/B,IAAI,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,OAAO,yBAAyB;IAGpC,YAAY,QAAqB;QAC/B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,KAAY,EACZ,QAAkB,EAClB,cAAuB,EACvB,KAAmE;QAEnE,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;QAC5E,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE;gBAChD,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,WAAW,EAAE,GAAG;gBAChB,SAAS,EAAE,IAAI,GAAG,CAAC;aACpB,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC/C,CAAC;YACD,MAAM,KAAK,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;YAChD,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,qCAAqC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC/E,CAAC;YACD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAkB,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;YACtD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,eAAe,CACrB,KAAY,EACZ,QAAkB,EAClB,cAAuB,EACvB,KAAmE;QAEnE,OAAO;;;;;;GAMR,KAAK,CAAC,CAAC,CAAC,qPAAqP,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;;EAErS,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;;;EAG9B,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;;EAEjC,cAAc,CAAC,CAAC,CAAC,kNAAkN,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2EpR,CAAC;IACA,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,KAAY,EACZ,QAAkB,EAClB,cAAuB,EACvB,KAAmE;IAEnE,MAAM,KAAK,GAAG,IAAI,yBAAyB,EAAE,CAAC;IAC9C,OAAO,KAAK,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;AAC5E,CAAC"}
1
+ {"version":3,"file":"ia-agent.js","sourceRoot":"","sources":["../../src/ia-agent.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,15 @@
1
- export { InformationArchitectAgent, processFlowsWithAI } from './ia-agent.js';
2
- export type { UXSchema, AIAgentOutput } from './types.js';
1
+ export { InformationArchitectAgent, processFlowsWithAI, type ValidationError, validateCompositionReferences, } from './ia-agent.js';
2
+ export type { AIAgentOutput, UXSchema } from './types.js';
3
3
  export declare const COMMANDS: import("@auto-engineer/message-bus").UnifiedCommandHandler<Readonly<{
4
4
  type: "GenerateIA";
5
5
  data: Readonly<{
6
6
  modelPath: string;
7
7
  outputDir: string;
8
+ previousErrors?: string;
8
9
  }>;
9
10
  timestamp?: Date;
10
11
  requestId?: string;
11
12
  correlationId?: string;
12
13
  }>>[];
13
- export type { GenerateIACommand, GenerateIAEvents, IAGeneratedEvent, IAGenerationFailedEvent, } from './commands/generate-ia';
14
+ export type { GenerateIACommand, GenerateIAEvents, IAGeneratedEvent, IAGenerationFailedEvent, IAValidationFailedEvent, } from './commands/generate-ia';
14
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAC9E,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG1D,eAAO,MAAM,QAAQ;;;;;;;;;KAAsB,CAAC;AAC5C,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,yBAAyB,EACzB,kBAAkB,EAClB,KAAK,eAAe,EACpB,6BAA6B,GAC9B,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG1D,eAAO,MAAM,QAAQ;;;;;;;;;;KAAsB,CAAC;AAC5C,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC"}
package/dist/src/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // Barrel exports
2
- export { InformationArchitectAgent, processFlowsWithAI } from './ia-agent.js';
2
+ export { InformationArchitectAgent, processFlowsWithAI, validateCompositionReferences, } from './ia-agent.js';
3
3
  import { commandHandler as generateIAHandler } from './commands/generate-ia.js';
4
4
  export const COMMANDS = [generateIAHandler];
5
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,iBAAiB;AACjB,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAG9E,OAAO,EAAE,cAAc,IAAI,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC7E,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,iBAAiB,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,iBAAiB;AACjB,OAAO,EACL,yBAAyB,EACzB,kBAAkB,EAElB,6BAA6B,GAC9B,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,cAAc,IAAI,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC7E,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,iBAAiB,CAAC,CAAC"}