@ariaflowagents/config 0.7.0 → 0.8.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 (39) hide show
  1. package/dist/agent-architect/index.d.ts +10 -0
  2. package/dist/agent-architect/index.d.ts.map +1 -0
  3. package/dist/agent-architect/index.js +131 -0
  4. package/dist/agent-architect/index.js.map +1 -0
  5. package/dist/agent-architect/prompt-generator.d.ts +9 -0
  6. package/dist/agent-architect/prompt-generator.d.ts.map +1 -0
  7. package/dist/agent-architect/prompt-generator.js +155 -0
  8. package/dist/agent-architect/prompt-generator.js.map +1 -0
  9. package/dist/agent-architect/rfc-emitter.d.ts +18 -0
  10. package/dist/agent-architect/rfc-emitter.d.ts.map +1 -0
  11. package/dist/agent-architect/rfc-emitter.js +350 -0
  12. package/dist/agent-architect/rfc-emitter.js.map +1 -0
  13. package/dist/agent-architect/tool-recommender.d.ts +8 -0
  14. package/dist/agent-architect/tool-recommender.d.ts.map +1 -0
  15. package/dist/agent-architect/tool-recommender.js +87 -0
  16. package/dist/agent-architect/tool-recommender.js.map +1 -0
  17. package/dist/agent-architect/types.d.ts +904 -0
  18. package/dist/agent-architect/types.d.ts.map +1 -0
  19. package/dist/agent-architect/types.js +89 -0
  20. package/dist/agent-architect/types.js.map +1 -0
  21. package/dist/agent-architect/use-case-analyzer.d.ts +8 -0
  22. package/dist/agent-architect/use-case-analyzer.d.ts.map +1 -0
  23. package/dist/agent-architect/use-case-analyzer.js +76 -0
  24. package/dist/agent-architect/use-case-analyzer.js.map +1 -0
  25. package/dist/cli.d.ts +1 -0
  26. package/dist/cli.d.ts.map +1 -1
  27. package/dist/cli.js +890 -0
  28. package/dist/cli.js.map +1 -1
  29. package/dist/llm-flow-generator.d.ts.map +1 -1
  30. package/dist/llm-flow-generator.js +31 -73
  31. package/dist/llm-flow-generator.js.map +1 -1
  32. package/dist/loader.js +13 -13
  33. package/dist/loader.js.map +1 -1
  34. package/dist/prompt-lint.js +4 -4
  35. package/dist/prompt-lint.js.map +1 -1
  36. package/dist/types.d.ts +1 -1
  37. package/dist/types.d.ts.map +1 -1
  38. package/guide/README.md +95 -0
  39. package/package.json +10 -10
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agent-architect/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ import { z } from 'zod';
2
+ export const DomainAnalysisSchema = z.object({
3
+ domain: z.string().describe('The primary domain'),
4
+ subDomain: z.string().describe('More specific subdomain, empty if none'),
5
+ entities: z.array(z.string()).describe('Key entities'),
6
+ workflows: z.array(z.string()).describe('Main workflows'),
7
+ userIntents: z.array(z.string()).describe('User intents'),
8
+ keyOutcomes: z.array(z.string()).describe('Key outcomes'),
9
+ constraints: z.array(z.string()).describe('Constraints, empty if none'),
10
+ });
11
+ export const ToolRecommendationSchema = z.object({
12
+ toolName: z.string(),
13
+ description: z.string(),
14
+ reason: z.string(),
15
+ whenToUse: z.string(),
16
+ onError: z.string(),
17
+ priority: z.enum(['required', 'recommended', 'optional']),
18
+ });
19
+ export const PromptLayerSchema = z.object({
20
+ name: z.string(),
21
+ content: z.string(),
22
+ purpose: z.string(),
23
+ });
24
+ export const SixLayerPromptSchema = z.object({
25
+ identityAndRole: PromptLayerSchema,
26
+ safetyAndGuardrails: PromptLayerSchema,
27
+ toolContract: PromptLayerSchema,
28
+ reasoningWorkflow: PromptLayerSchema,
29
+ executionPolicy: PromptLayerSchema,
30
+ outputConstraints: PromptLayerSchema,
31
+ });
32
+ export const FlowNodeSchema = z.object({
33
+ id: z.string(),
34
+ name: z.string(),
35
+ purpose: z.string(),
36
+ toolCalls: z.array(z.string()).optional(),
37
+ successCriteria: z.array(z.string()),
38
+ });
39
+ export const FlowDesignSchema = z.object({
40
+ nodes: z.array(FlowNodeSchema),
41
+ entryPoint: z.string(),
42
+ transitions: z.array(z.object({
43
+ from: z.string(),
44
+ to: z.string(),
45
+ trigger: z.string(),
46
+ condition: z.string().optional(),
47
+ })),
48
+ });
49
+ export const ToolSpecificationSchema = z.object({
50
+ name: z.string(),
51
+ description: z.string(),
52
+ inputSchema: z.record(z.any()),
53
+ outputSchema: z.record(z.any()),
54
+ integrationSteps: z.array(z.string()),
55
+ requiredAuth: z.array(z.string()).optional(),
56
+ });
57
+ export const ArchitectClarificationSchema = z.object({
58
+ question: z.string(),
59
+ answer: z.string(),
60
+ });
61
+ export const AgentBlueprintSchema = z.object({
62
+ id: z.string(),
63
+ name: z.string(),
64
+ useCase: z.string(),
65
+ mode: z.enum(['llm', 'flow', 'hybrid']),
66
+ target: z.enum(['config', 'code', 'both']),
67
+ domainAnalysis: DomainAnalysisSchema,
68
+ selectedTools: z.array(z.string()),
69
+ toolRecommendations: z.array(ToolRecommendationSchema),
70
+ toolPolicy: z.record(z.string()),
71
+ promptLayers: SixLayerPromptSchema,
72
+ flowDesign: FlowDesignSchema.optional(),
73
+ evalPlan: z.object({
74
+ scenarios: z.array(z.string()),
75
+ passCriteria: z.array(z.string()).optional(),
76
+ }),
77
+ toolSpecifications: z.array(ToolSpecificationSchema).optional(),
78
+ generationMeta: z.object({
79
+ generatedAt: z.string(),
80
+ model: z.string(),
81
+ llmRequired: z.boolean(),
82
+ llmEnabled: z.boolean(),
83
+ llmMode: z.string().optional(),
84
+ interactive: z.boolean(),
85
+ clarificationCount: z.number(),
86
+ clarifications: z.array(ArchitectClarificationSchema),
87
+ }),
88
+ }).strict();
89
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/agent-architect/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { type DomainAnalysis } from './types.js';
2
+ export interface UseCaseAnalyzerOptions {
3
+ model?: string;
4
+ contextText?: string;
5
+ timeoutMs?: number;
6
+ }
7
+ export declare function analyzeUseCase(useCase: string, options?: UseCaseAnalyzerOptions): Promise<DomainAnalysis>;
8
+ //# sourceMappingURL=use-case-analyzer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-case-analyzer.d.ts","sourceRoot":"","sources":["../../src/agent-architect/use-case-analyzer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,cAAc,EAAwB,MAAM,YAAY,CAAC;AA0CvE,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,cAAc,CAAC,CAuCzB"}
@@ -0,0 +1,76 @@
1
+ import { generateObject } from 'ai';
2
+ import { openai } from '@ai-sdk/openai';
3
+ import { z } from 'zod';
4
+ import { DomainAnalysisSchema } from './types.js';
5
+ const AnalysisSchema = z.object({
6
+ domain: z.string().describe('The primary domain: e-commerce, healthcare, finance, education, hospitality, sales, support, scheduling, data-entry'),
7
+ subDomain: z.string().describe('More specific subdomain if applicable, empty string if none'),
8
+ entities: z.array(z.string()).describe('Key entities involved: customers, orders, products, appointments, etc.'),
9
+ workflows: z.array(z.string()).describe('Main workflows or processes the agent handles'),
10
+ userIntents: z.array(z.string()).describe('Primary user intents or goals'),
11
+ keyOutcomes: z.array(z.string()).describe('Key outcomes the agent should achieve'),
12
+ constraints: z.array(z.string()).describe('Any explicit constraints mentioned, empty array if none'),
13
+ });
14
+ function resolveModel(modelInput) {
15
+ const requested = modelInput?.trim() || 'gpt-5-mini';
16
+ const modelId = requested.startsWith('openai:') ? requested.slice('openai:'.length).trim() : requested;
17
+ return openai(modelId || 'gpt-5-mini');
18
+ }
19
+ function buildAnalysisPrompt(useCase, contextText) {
20
+ const contextSection = contextText && contextText.trim().length > 0
21
+ ? `\n## Additional Context\n${contextText.trim()}\n`
22
+ : '';
23
+ return `Analyze this use case for building a conversational AI agent.
24
+
25
+ ## Use Case
26
+ ${useCase}
27
+ ${contextSection}
28
+
29
+ ## Your Task
30
+ Analyze the use case and extract:
31
+ 1. **Domain**: What industry/domain is this? Be specific.
32
+ 2. **SubDomain**: More specific area if applicable
33
+ 3. **Entities**: What are the key entities? (customers, orders, products, appointments, etc.)
34
+ 4. **Workflows**: What are the main processes the agent handles?
35
+ 5. **User Intents**: What are users trying to accomplish?
36
+ 6. **Key Outcomes**: What should the agent achieve?
37
+ 7. **Constraints**: Any explicit constraints mentioned?
38
+
39
+ Be specific and thorough. The analysis should inform tool selection and flow design.`;
40
+ }
41
+ export async function analyzeUseCase(useCase, options = {}) {
42
+ const model = resolveModel(options.model);
43
+ const timeoutMs = options.timeoutMs ?? 60000;
44
+ if (!process.env.OPENAI_API_KEY) {
45
+ throw new Error('OPENAI_API_KEY is required for LLM use case analysis');
46
+ }
47
+ const result = await Promise.race([
48
+ generateObject({
49
+ model,
50
+ schema: AnalysisSchema,
51
+ system: `You are an expert business analyst specializing in conversational AI agent design.
52
+ Your task is to analyze use cases and extract domain knowledge that will inform:
53
+ - Tool recommendations
54
+ - Flow design
55
+ - Prompt layer generation
56
+
57
+ Analyze ANY use case thoroughly - it could be about ordering products, scheduling appointments,
58
+ providing customer support, collecting data, sending notifications, or anything else.
59
+ Be specific about the domain, entities, workflows, and outcomes.`,
60
+ prompt: buildAnalysisPrompt(useCase, options.contextText),
61
+ }),
62
+ new Promise((_, reject) => setTimeout(() => reject(new Error(`Use case analysis timed out after ${timeoutMs}ms`)), timeoutMs)),
63
+ ]);
64
+ const parsed = DomainAnalysisSchema.parse(result.object);
65
+ const domainAnalysis = {
66
+ domain: parsed.domain,
67
+ subDomain: parsed.subDomain || undefined,
68
+ entities: parsed.entities,
69
+ workflows: parsed.workflows,
70
+ userIntents: parsed.userIntents,
71
+ keyOutcomes: parsed.keyOutcomes,
72
+ constraints: parsed.constraints.length > 0 ? parsed.constraints : undefined,
73
+ };
74
+ return domainAnalysis;
75
+ }
76
+ //# sourceMappingURL=use-case-analyzer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-case-analyzer.js","sourceRoot":"","sources":["../../src/agent-architect/use-case-analyzer.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts CHANGED
@@ -11,6 +11,7 @@
11
11
  * npx ariaflow prompt lint [--path <file-or-dir>] [--config <path>] [--strict] [--json]
12
12
  * npx ariaflow pack init <name> [--starter <id>] [--cwd <dir>] [--force]
13
13
  * npx ariaflow flow generate --use-case <text> [--out <path>]
14
+ * npx ariaflow agent architect --use-case <text> [--mode llm|flow|hybrid]
14
15
  */
15
16
  export {};
16
17
  //# sourceMappingURL=cli.d.ts.map
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;GAYG"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;GAaG"}