@qikdev/mcp 6.6.45 → 6.6.47

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/build/src/sdk.d.ts +13 -0
  2. package/build/src/sdk.d.ts.map +1 -0
  3. package/build/src/sdk.js +33 -0
  4. package/build/src/sdk.js.map +1 -0
  5. package/build/src/tools/component-marketplace.d.ts +96 -0
  6. package/build/src/tools/component-marketplace.d.ts.map +1 -0
  7. package/build/src/tools/component-marketplace.js +259 -0
  8. package/build/src/tools/component-marketplace.js.map +1 -0
  9. package/build/src/tools/components.d.ts +23 -0
  10. package/build/src/tools/components.d.ts.map +1 -0
  11. package/build/src/tools/components.js +388 -0
  12. package/build/src/tools/components.js.map +1 -0
  13. package/build/src/tools/create.d.ts.map +1 -1
  14. package/build/src/tools/create.js +39 -0
  15. package/build/src/tools/create.js.map +1 -1
  16. package/build/src/tools/enhanced-interfaces.d.ts +21 -0
  17. package/build/src/tools/enhanced-interfaces.d.ts.map +1 -0
  18. package/build/src/tools/enhanced-interfaces.js +64 -0
  19. package/build/src/tools/enhanced-interfaces.js.map +1 -0
  20. package/build/src/tools/index.d.ts.map +1 -1
  21. package/build/src/tools/index.js +17 -0
  22. package/build/src/tools/index.js.map +1 -1
  23. package/build/src/tools/interface-builder.d.ts +19 -0
  24. package/build/src/tools/interface-builder.d.ts.map +1 -0
  25. package/build/src/tools/interface-builder.js +425 -0
  26. package/build/src/tools/interface-builder.js.map +1 -0
  27. package/build/src/tools/interfaces.d.ts +23 -0
  28. package/build/src/tools/interfaces.d.ts.map +1 -0
  29. package/build/src/tools/interfaces.js +821 -0
  30. package/build/src/tools/interfaces.js.map +1 -0
  31. package/build/src/tools/nlp-parser.d.ts +33 -0
  32. package/build/src/tools/nlp-parser.d.ts.map +1 -0
  33. package/build/src/tools/nlp-parser.js +258 -0
  34. package/build/src/tools/nlp-parser.js.map +1 -0
  35. package/build/src/tools/route-generator.d.ts +61 -0
  36. package/build/src/tools/route-generator.d.ts.map +1 -0
  37. package/build/src/tools/route-generator.js +388 -0
  38. package/build/src/tools/route-generator.js.map +1 -0
  39. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enhanced-interfaces.js","sourceRoot":"","sources":["../../../src/tools/enhanced-interfaces.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,KAAK,GAAG,gEAAgE,CAAC;IAC/E,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,MAAW,EAAE,MAAW;IAChD,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IAE7B,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAChC,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE,CAAC;oBACrB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChD,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBACpD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ,CAAC,IAAS;IACzB,OAAO,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAClE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,OAAO,GAAG;SACP,WAAW,EAAE;SACb,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;SAC5B,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,OAAO,GAAG;SACP,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;SACvE,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAS1D,eAAO,MAAM,KAAK,EAAE,IAAI,EAQvB,CAAC;AAGF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAQjD,CAAC;AAGF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAEjE;AAGD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AA6B1D,eAAO,MAAM,KAAK,EAAE,IAAI,EAevB,CAAC;AAGF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAejD,CAAC;AAGF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAEjE;AAGD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD"}
@@ -4,6 +4,9 @@ import { listContentTool, handleListContent } from "./list.js";
4
4
  import { updateContentTool, handleUpdateContent } from "./update.js";
5
5
  import { getUserSessionTool, handleGetUserSession } from "./user.js";
6
6
  import { getProfileTimelineTool, handleGetProfileTimeline } from "./profile.js";
7
+ import { getAvailableComponentsTool, getComponentDetailsTool, suggestComponentsTool, handleGetAvailableComponents, handleGetComponentDetails, handleSuggestComponents } from "./components.js";
8
+ import { createInterfaceTool, addInterfaceRouteTool, suggestInterfaceTemplatesTool, handleCreateInterface, handleAddInterfaceRoute, handleSuggestInterfaceTemplates } from "./interfaces.js";
9
+ import { buildInterfaceFromPromptTool, handleBuildInterfaceFromPrompt } from "./interface-builder.js";
7
10
  // Registry of all available tools
8
11
  export const tools = [
9
12
  glossaryTool,
@@ -13,6 +16,13 @@ export const tools = [
13
16
  updateContentTool,
14
17
  getUserSessionTool,
15
18
  getProfileTimelineTool,
19
+ getAvailableComponentsTool,
20
+ getComponentDetailsTool,
21
+ suggestComponentsTool,
22
+ createInterfaceTool,
23
+ addInterfaceRouteTool,
24
+ suggestInterfaceTemplatesTool,
25
+ buildInterfaceFromPromptTool,
16
26
  ];
17
27
  // Registry of all tool handlers
18
28
  export const toolHandlers = {
@@ -23,6 +33,13 @@ export const toolHandlers = {
23
33
  "update_content": handleUpdateContent,
24
34
  "get_user_session": handleGetUserSession,
25
35
  "get_profile_timeline": handleGetProfileTimeline,
36
+ "get_available_components": handleGetAvailableComponents,
37
+ "get_component_details": handleGetComponentDetails,
38
+ "suggest_components": handleSuggestComponents,
39
+ "create_interface": handleCreateInterface,
40
+ "add_interface_route": handleAddInterfaceRoute,
41
+ "suggest_interface_templates": handleSuggestInterfaceTemplates,
42
+ "build_interface_from_prompt": handleBuildInterfaceFromPrompt,
26
43
  };
27
44
  // Helper function to get a tool handler by name
28
45
  export function getToolHandler(name) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AACjH,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAEhF,kCAAkC;AAClC,MAAM,CAAC,MAAM,KAAK,GAAW;IAC3B,YAAY;IACZ,kBAAkB;IAClB,iBAAiB;IACjB,eAAe;IACf,iBAAiB;IACjB,kBAAkB;IAClB,sBAAsB;CACvB,CAAC;AAEF,gCAAgC;AAChC,MAAM,CAAC,MAAM,YAAY,GAA6B;IACpD,cAAc,EAAE,iBAAiB;IACjC,0BAA0B,EAAE,CAAC,IAAS,EAAE,EAAE,CAAC,2BAA2B,CAAC,IAAI,CAAC,cAAc,CAAC;IAC3F,gBAAgB,EAAE,mBAAmB;IACrC,cAAc,EAAE,iBAAiB;IACjC,gBAAgB,EAAE,mBAAmB;IACrC,kBAAkB,EAAE,oBAAoB;IACxC,sBAAsB,EAAE,wBAAwB;CACjD,CAAC;AAEF,gDAAgD;AAChD,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,4CAA4C;AAC5C,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,IAAI,IAAI,YAAY,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AACjH,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,qBAAqB,EACrB,4BAA4B,EAC5B,yBAAyB,EACzB,uBAAuB,EACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,6BAA6B,EAC7B,qBAAqB,EACrB,uBAAuB,EACvB,+BAA+B,EAChC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,4BAA4B,EAC5B,8BAA8B,EAC/B,MAAM,wBAAwB,CAAC;AAEhC,kCAAkC;AAClC,MAAM,CAAC,MAAM,KAAK,GAAW;IAC3B,YAAY;IACZ,kBAAkB;IAClB,iBAAiB;IACjB,eAAe;IACf,iBAAiB;IACjB,kBAAkB;IAClB,sBAAsB;IACtB,0BAA0B;IAC1B,uBAAuB;IACvB,qBAAqB;IACrB,mBAAmB;IACnB,qBAAqB;IACrB,6BAA6B;IAC7B,4BAA4B;CAC7B,CAAC;AAEF,gCAAgC;AAChC,MAAM,CAAC,MAAM,YAAY,GAA6B;IACpD,cAAc,EAAE,iBAAiB;IACjC,0BAA0B,EAAE,CAAC,IAAS,EAAE,EAAE,CAAC,2BAA2B,CAAC,IAAI,CAAC,cAAc,CAAC;IAC3F,gBAAgB,EAAE,mBAAmB;IACrC,cAAc,EAAE,iBAAiB;IACjC,gBAAgB,EAAE,mBAAmB;IACrC,kBAAkB,EAAE,oBAAoB;IACxC,sBAAsB,EAAE,wBAAwB;IAChD,0BAA0B,EAAE,4BAA4B;IACxD,uBAAuB,EAAE,yBAAyB;IAClD,oBAAoB,EAAE,uBAAuB;IAC7C,kBAAkB,EAAE,qBAAqB;IACzC,qBAAqB,EAAE,uBAAuB;IAC9C,6BAA6B,EAAE,+BAA+B;IAC9D,6BAA6B,EAAE,8BAA8B;CAC9D,CAAC;AAEF,gDAAgD;AAChD,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,4CAA4C;AAC5C,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,IAAI,IAAI,YAAY,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Interface Builder - Main Orchestration Tool
3
+ * Builds complete interfaces from natural language prompts
4
+ */
5
+ import { Tool } from "@modelcontextprotocol/sdk/types.js";
6
+ /**
7
+ * Build Interface from Prompt Tool
8
+ */
9
+ export declare const buildInterfaceFromPromptTool: Tool;
10
+ /**
11
+ * Handler for building interfaces from prompts
12
+ */
13
+ export declare function handleBuildInterfaceFromPrompt(args: any): Promise<{
14
+ content: Array<{
15
+ type: string;
16
+ text: string;
17
+ }>;
18
+ }>;
19
+ //# sourceMappingURL=interface-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface-builder.d.ts","sourceRoot":"","sources":["../../../src/tools/interface-builder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAgB1D;;GAEG;AACH,eAAO,MAAM,4BAA4B,EAAE,IA0B1C,CAAC;AAEF;;GAEG;AACH,wBAAsB,8BAA8B,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CA4F3H"}
@@ -0,0 +1,425 @@
1
+ /**
2
+ * Interface Builder - Main Orchestration Tool
3
+ * Builds complete interfaces from natural language prompts
4
+ */
5
+ import { ConfigManager } from "../config.js";
6
+ import { parseInterfacePrompt } from "./nlp-parser.js";
7
+ import { getMarketplaceComponents } from "./component-marketplace.js";
8
+ import { generateRoutes, generateMenus, addLegalPages } from "./route-generator.js";
9
+ import { handleCreateContent } from "./create.js";
10
+ /**
11
+ * Build Interface from Prompt Tool
12
+ */
13
+ export const buildInterfaceFromPromptTool = {
14
+ name: "build_interface_from_prompt",
15
+ description: "🎨 Build a complete, beautiful interface from a natural language description. Examples: 'Create a portfolio website with about, work, and contact pages' or 'Build a restaurant app with menu, locations, and reservations'",
16
+ inputSchema: {
17
+ type: "object",
18
+ properties: {
19
+ prompt: {
20
+ type: "string",
21
+ description: "Natural language description of the interface you want to build"
22
+ },
23
+ scope: {
24
+ type: "string",
25
+ description: "The scope ID to create the interface in. If not provided and multiple scopes are available, you'll be prompted to select one."
26
+ },
27
+ primaryColor: {
28
+ type: "string",
29
+ description: "Optional primary color for the interface (hex code, e.g., '#4a90e2'). Defaults to a nice blue."
30
+ },
31
+ includeAuth: {
32
+ type: "boolean",
33
+ description: "Force include authentication pages even if not mentioned in prompt. Defaults to auto-detect."
34
+ }
35
+ },
36
+ required: ["prompt"],
37
+ additionalProperties: false
38
+ },
39
+ };
40
+ /**
41
+ * Handler for building interfaces from prompts
42
+ */
43
+ export async function handleBuildInterfaceFromPrompt(args) {
44
+ try {
45
+ const configManager = new ConfigManager();
46
+ const config = await configManager.loadConfig();
47
+ if (!config) {
48
+ throw new Error('Qik MCP server not configured. Run setup first.');
49
+ }
50
+ console.log('🎨 Building interface structure from prompt...');
51
+ // Step 1: Parse the natural language prompt
52
+ const parsed = parseInterfacePrompt(args.prompt);
53
+ console.log('📋 Parsed requirements:', {
54
+ appName: parsed.appName,
55
+ appType: parsed.appType,
56
+ requiresAuth: parsed.requiresAuth,
57
+ pages: parsed.pages.map(p => p.name),
58
+ features: parsed.features
59
+ });
60
+ // Step 2: Fetch available components and glossary
61
+ const [components, glossaryResponse] = await Promise.all([
62
+ getMarketplaceComponents(config),
63
+ fetchGlossary(config)
64
+ ]);
65
+ console.log(`📦 Found ${components.length} available components`);
66
+ console.log(`📚 Found ${glossaryResponse.length} content types in glossary`);
67
+ // Step 3: Generate routes from parsed pages
68
+ const routes = await generateRoutes(parsed.pages, components, glossaryResponse, config);
69
+ console.log(`🛣️ Generated ${routes.length} routes`);
70
+ // Step 4: Add authentication pages if needed
71
+ if (parsed.requiresAuth || args.includeAuth) {
72
+ addAuthPages(routes, components);
73
+ console.log('🔐 Added authentication pages');
74
+ }
75
+ // Step 5: Add legal pages (Privacy Policy, Terms)
76
+ addLegalPages(routes, components);
77
+ console.log('📄 Added legal pages');
78
+ // Step 6: Generate menus
79
+ const menus = generateMenus(routes);
80
+ console.log(`📋 Generated ${menus.length} menus`);
81
+ // Step 7: Generate styles
82
+ const styles = generateInterfaceStyles(args.primaryColor);
83
+ const header = generateHeader(menus, components);
84
+ const footer = generateFooter(menus, components);
85
+ console.log('✨ Interface structure complete, delegating to create_content...');
86
+ // Step 8: Delegate to create_content with the built interface structure
87
+ // This will handle scope selection, permissions, and creation
88
+ return await handleCreateContent({
89
+ typeKey: "interface",
90
+ title: parsed.appName,
91
+ seo: {
92
+ title: parsed.appName,
93
+ description: `${parsed.appName} - Built with Qik`
94
+ },
95
+ menus,
96
+ services: [],
97
+ components: [],
98
+ styles,
99
+ header,
100
+ footer,
101
+ slots: [],
102
+ layout: '<div><header-slot /><route-slot /><footer-slot /></div>',
103
+ routes,
104
+ fields: [],
105
+ scope: args.scope // Pass through scope if provided
106
+ });
107
+ }
108
+ catch (error) {
109
+ console.error('❌ Interface build failed:', error);
110
+ return {
111
+ content: [{
112
+ type: "text",
113
+ text: `❌ Failed to build interface: ${error.message}\n\n${error.stack || ''}`
114
+ }]
115
+ };
116
+ }
117
+ }
118
+ /**
119
+ * Fetch glossary from API
120
+ */
121
+ async function fetchGlossary(config) {
122
+ const response = await fetch(`${config.apiUrl || 'https://api.qik.dev'}/glossary`, {
123
+ headers: {
124
+ 'Authorization': `Bearer ${config.accessToken}`,
125
+ 'Content-Type': 'application/json',
126
+ },
127
+ });
128
+ if (!response.ok) {
129
+ throw new Error(`Failed to fetch glossary: HTTP ${response.status}`);
130
+ }
131
+ const data = await response.json();
132
+ return Array.isArray(data) ? data : (data.items || data.types || []);
133
+ }
134
+ /**
135
+ * Add authentication pages to routes
136
+ */
137
+ function addAuthPages(routes, components) {
138
+ const hasLogin = routes.some(r => r.name === 'userLogin' || r.name === 'login');
139
+ const hasSignup = routes.some(r => r.name === 'userSignup' || r.name === 'signup');
140
+ // Find auth component
141
+ const authComponent = components.find(c => c.title.toLowerCase().includes('combined') &&
142
+ c.title.toLowerCase().includes('auth')) || components.find(c => c.title.toLowerCase().includes('login'));
143
+ if (!authComponent) {
144
+ console.warn('⚠️ Auth component not found in marketplace');
145
+ return;
146
+ }
147
+ if (!hasLogin) {
148
+ routes.push(createAuthPage('Login', '/login', 'userLogin', authComponent, 'login'));
149
+ }
150
+ if (!hasSignup) {
151
+ routes.push(createAuthPage('Signup', '/signup', 'userSignup', authComponent, 'signup'));
152
+ }
153
+ }
154
+ /**
155
+ * Create an authentication page
156
+ */
157
+ function createAuthPage(title, path, name, component, defaultState) {
158
+ return {
159
+ title,
160
+ path,
161
+ name,
162
+ type: 'route',
163
+ sections: [{
164
+ title: component.title,
165
+ uuid: generateUUID(),
166
+ componentID: component._id,
167
+ componentVersion: 'latest',
168
+ model: {
169
+ hideTitle: false,
170
+ redirectTo: 'home',
171
+ redirectFromIntent: true,
172
+ defaultState
173
+ },
174
+ slots: []
175
+ }],
176
+ seo: {
177
+ title,
178
+ description: `${title} page`,
179
+ sitemapDisabled: false
180
+ },
181
+ headerDisabled: false,
182
+ footerDisabled: false,
183
+ contextVisibility: {
184
+ hideAuthenticated: true,
185
+ hideUnauthenticated: false
186
+ }
187
+ };
188
+ }
189
+ /**
190
+ * Generate comprehensive interface styles
191
+ */
192
+ function generateInterfaceStyles(primaryColor) {
193
+ const primary = primaryColor || '#4a90e2';
194
+ return {
195
+ pre: `:root {
196
+ --primary: ${primary};
197
+ --text: #333;
198
+ --headings: #111;
199
+ --bg: #fff;
200
+ --bg-secondary: #f8f9fa;
201
+ --border: #e0e0e0;
202
+ --wrap-width: 1200px;
203
+ --radius: 0.5rem;
204
+ --shadow: 0 2px 8px rgba(0,0,0,0.1);
205
+ }
206
+
207
+ @media(prefers-color-scheme: dark) {
208
+ :root {
209
+ --bg: #1a1a1a;
210
+ --bg-secondary: #2d2d2d;
211
+ --text: #e0e0e0;
212
+ --headings: #fff;
213
+ --border: #404040;
214
+ --shadow: 0 2px 8px rgba(0,0,0,0.3);
215
+ }
216
+ }`,
217
+ post: `body, html {
218
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;
219
+ font-size: clamp(14px, 1.2vw, 18px);
220
+ line-height: 1.6;
221
+ color: var(--text);
222
+ background: var(--bg);
223
+ margin: 0;
224
+ padding: 0;
225
+ }
226
+
227
+ * {
228
+ box-sizing: border-box;
229
+ }
230
+
231
+ /* Vertical and Horizontal Wrapping */
232
+ .v-wrap {
233
+ padding: 3rem 0;
234
+ }
235
+
236
+ .h-wrap {
237
+ max-width: var(--wrap-width);
238
+ margin: 0 auto;
239
+ padding: 0 1.5rem;
240
+ }
241
+
242
+ /* Typography */
243
+ h1, h2, h3, h4, h5, h6 {
244
+ color: var(--headings);
245
+ line-height: 1.2;
246
+ margin-top: 0;
247
+ margin-bottom: 1rem;
248
+ font-weight: 700;
249
+ }
250
+
251
+ h1 { font-size: clamp(2rem, 5vw, 3rem); }
252
+ h2 { font-size: clamp(1.5rem, 4vw, 2.5rem); }
253
+ h3 { font-size: clamp(1.25rem, 3vw, 2rem); }
254
+ h4 { font-size: 1.5rem; }
255
+ h5 { font-size: 1.25rem; }
256
+ h6 { font-size: 1.1rem; }
257
+
258
+ p {
259
+ margin: 0 0 1rem 0;
260
+ }
261
+
262
+ a {
263
+ color: var(--primary);
264
+ text-decoration: none;
265
+ transition: opacity 0.2s;
266
+ }
267
+
268
+ a:hover {
269
+ opacity: 0.8;
270
+ }
271
+
272
+ /* Utility Classes */
273
+ .font-xs { font-size: 0.75rem; }
274
+ .font-sm { font-size: 0.875rem; }
275
+ .font-lg { font-size: 1.25rem; }
276
+ .font-xl { font-size: 1.5rem; }
277
+ .font-muted { opacity: 0.6; }
278
+
279
+ .text-center { text-align: center; }
280
+ .text-right { text-align: right; }
281
+
282
+ /* Responsive Grid */
283
+ .grid {
284
+ display: grid;
285
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
286
+ gap: 2rem;
287
+ }
288
+
289
+ /* Card Component */
290
+ .card {
291
+ background: var(--bg-secondary);
292
+ border-radius: var(--radius);
293
+ padding: 1.5rem;
294
+ box-shadow: var(--shadow);
295
+ }
296
+
297
+ /* Button Styles */
298
+ button, .btn {
299
+ background: var(--primary);
300
+ color: white;
301
+ border: none;
302
+ padding: 0.75rem 1.5rem;
303
+ border-radius: var(--radius);
304
+ cursor: pointer;
305
+ font-size: 1rem;
306
+ transition: all 0.2s;
307
+ }
308
+
309
+ button:hover, .btn:hover {
310
+ transform: translateY(-2px);
311
+ box-shadow: var(--shadow);
312
+ }
313
+
314
+ /* Form Styles */
315
+ input, textarea, select {
316
+ width: 100%;
317
+ padding: 0.75rem;
318
+ border: 1px solid var(--border);
319
+ border-radius: var(--radius);
320
+ background: var(--bg);
321
+ color: var(--text);
322
+ font-size: 1rem;
323
+ }
324
+
325
+ input:focus, textarea:focus, select:focus {
326
+ outline: none;
327
+ border-color: var(--primary);
328
+ }
329
+
330
+ /* Responsive */
331
+ @media (max-width: 768px) {
332
+ .v-wrap {
333
+ padding: 2rem 0;
334
+ }
335
+
336
+ .h-wrap {
337
+ padding: 0 1rem;
338
+ }
339
+
340
+ .grid {
341
+ grid-template-columns: 1fr;
342
+ gap: 1rem;
343
+ }
344
+ }
345
+
346
+ /* Touch device optimization */
347
+ @media (pointer: coarse) {
348
+ * {
349
+ -webkit-tap-highlight-color: transparent;
350
+ }
351
+
352
+ button, .btn, a {
353
+ min-height: 44px;
354
+ min-width: 44px;
355
+ }
356
+ }`,
357
+ includes: [],
358
+ themes: []
359
+ };
360
+ }
361
+ /**
362
+ * Generate header structure
363
+ */
364
+ function generateHeader(menus, components) {
365
+ // Find menu component
366
+ const menuComponent = components.find(c => c.title.toLowerCase().includes('horizontal') &&
367
+ c.title.toLowerCase().includes('menu'));
368
+ if (!menuComponent) {
369
+ return { sections: [] };
370
+ }
371
+ return {
372
+ sections: [{
373
+ title: 'Header Navigation',
374
+ uuid: generateUUID(),
375
+ componentID: menuComponent._id,
376
+ componentVersion: 'latest',
377
+ model: {
378
+ menu: 'primaryMenu',
379
+ style: 'horizontal'
380
+ },
381
+ slots: []
382
+ }]
383
+ };
384
+ }
385
+ /**
386
+ * Generate footer structure
387
+ */
388
+ function generateFooter(menus, components) {
389
+ // Check if footer menu exists
390
+ const hasFooterMenu = menus.some(m => m.name === 'footerMenu');
391
+ if (!hasFooterMenu) {
392
+ return { sections: [] };
393
+ }
394
+ // Find menu component
395
+ const menuComponent = components.find(c => c.title.toLowerCase().includes('horizontal') &&
396
+ c.title.toLowerCase().includes('menu'));
397
+ if (!menuComponent) {
398
+ return { sections: [] };
399
+ }
400
+ return {
401
+ sections: [{
402
+ title: 'Footer Navigation',
403
+ uuid: generateUUID(),
404
+ componentID: menuComponent._id,
405
+ componentVersion: 'latest',
406
+ model: {
407
+ menu: 'footerMenu',
408
+ style: 'horizontal'
409
+ },
410
+ slots: []
411
+ }]
412
+ };
413
+ }
414
+ /**
415
+ * Generate UUID
416
+ */
417
+ function generateUUID() {
418
+ const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
419
+ let result = '';
420
+ for (let i = 0; i < 10; i++) {
421
+ result += chars.charAt(Math.floor(Math.random() * chars.length));
422
+ }
423
+ return result;
424
+ }
425
+ //# sourceMappingURL=interface-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface-builder.js","sourceRoot":"","sources":["../../../src/tools/interface-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { Tool } from "@modelcontextprotocol/sdk/types.js";
2
+ export declare const createInterfaceTool: Tool;
3
+ export declare const addInterfaceRouteTool: Tool;
4
+ export declare const suggestInterfaceTemplatesTool: Tool;
5
+ export declare function handleCreateInterface(args: any): Promise<{
6
+ content: Array<{
7
+ type: string;
8
+ text: string;
9
+ }>;
10
+ }>;
11
+ export declare function handleAddInterfaceRoute(args: any): Promise<{
12
+ content: Array<{
13
+ type: string;
14
+ text: string;
15
+ }>;
16
+ }>;
17
+ export declare function handleSuggestInterfaceTemplates(args: any): Promise<{
18
+ content: Array<{
19
+ type: string;
20
+ text: string;
21
+ }>;
22
+ }>;
23
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/tools/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAsD1D,eAAO,MAAM,mBAAmB,EAAE,IAgCjC,CAAC;AAGF,eAAO,MAAM,qBAAqB,EAAE,IAyCnC,CAAC;AAGF,eAAO,MAAM,6BAA6B,EAAE,IAuB3C,CAAC;AAGF,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAuFlH;AAGD,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAwIpH;AAGD,wBAAsB,+BAA+B,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAgD5H"}