mycontext-cli 0.1.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.
Files changed (94) hide show
  1. package/README.md +440 -0
  2. package/dist/cli/src/agents/implementations/CodeGenSubAgent.d.ts +43 -0
  3. package/dist/cli/src/agents/implementations/CodeGenSubAgent.d.ts.map +1 -0
  4. package/dist/cli/src/agents/implementations/CodeGenSubAgent.js +1440 -0
  5. package/dist/cli/src/agents/implementations/CodeGenSubAgent.js.map +1 -0
  6. package/dist/cli/src/agents/implementations/DocsSubAgent.d.ts +35 -0
  7. package/dist/cli/src/agents/implementations/DocsSubAgent.d.ts.map +1 -0
  8. package/dist/cli/src/agents/implementations/DocsSubAgent.js +351 -0
  9. package/dist/cli/src/agents/implementations/DocsSubAgent.js.map +1 -0
  10. package/dist/cli/src/agents/implementations/QASubAgent.d.ts +31 -0
  11. package/dist/cli/src/agents/implementations/QASubAgent.d.ts.map +1 -0
  12. package/dist/cli/src/agents/implementations/QASubAgent.js +190 -0
  13. package/dist/cli/src/agents/implementations/QASubAgent.js.map +1 -0
  14. package/dist/cli/src/agents/interfaces/SubAgent.d.ts +157 -0
  15. package/dist/cli/src/agents/interfaces/SubAgent.d.ts.map +1 -0
  16. package/dist/cli/src/agents/interfaces/SubAgent.js +7 -0
  17. package/dist/cli/src/agents/interfaces/SubAgent.js.map +1 -0
  18. package/dist/cli/src/agents/orchestrator/SubAgentOrchestrator.d.ts +59 -0
  19. package/dist/cli/src/agents/orchestrator/SubAgentOrchestrator.d.ts.map +1 -0
  20. package/dist/cli/src/agents/orchestrator/SubAgentOrchestrator.js +305 -0
  21. package/dist/cli/src/agents/orchestrator/SubAgentOrchestrator.js.map +1 -0
  22. package/dist/cli/src/agents/personalities/definitions.d.ts +34 -0
  23. package/dist/cli/src/agents/personalities/definitions.d.ts.map +1 -0
  24. package/dist/cli/src/agents/personalities/definitions.js +360 -0
  25. package/dist/cli/src/agents/personalities/definitions.js.map +1 -0
  26. package/dist/cli/src/cli.d.ts +3 -0
  27. package/dist/cli/src/cli.d.ts.map +1 -0
  28. package/dist/cli/src/cli.js +286 -0
  29. package/dist/cli/src/cli.js.map +1 -0
  30. package/dist/cli/src/commands/auth.d.ts +23 -0
  31. package/dist/cli/src/commands/auth.d.ts.map +1 -0
  32. package/dist/cli/src/commands/auth.js +212 -0
  33. package/dist/cli/src/commands/auth.js.map +1 -0
  34. package/dist/cli/src/commands/generate-components.d.ts +28 -0
  35. package/dist/cli/src/commands/generate-components.d.ts.map +1 -0
  36. package/dist/cli/src/commands/generate-components.js +680 -0
  37. package/dist/cli/src/commands/generate-components.js.map +1 -0
  38. package/dist/cli/src/commands/generate.d.ts +108 -0
  39. package/dist/cli/src/commands/generate.d.ts.map +1 -0
  40. package/dist/cli/src/commands/generate.js +1984 -0
  41. package/dist/cli/src/commands/generate.js.map +1 -0
  42. package/dist/cli/src/commands/init.d.ts +13 -0
  43. package/dist/cli/src/commands/init.d.ts.map +1 -0
  44. package/dist/cli/src/commands/init.js +91 -0
  45. package/dist/cli/src/commands/init.js.map +1 -0
  46. package/dist/cli/src/commands/list.d.ts +17 -0
  47. package/dist/cli/src/commands/list.d.ts.map +1 -0
  48. package/dist/cli/src/commands/list.js +209 -0
  49. package/dist/cli/src/commands/list.js.map +1 -0
  50. package/dist/cli/src/commands/preview.d.ts +23 -0
  51. package/dist/cli/src/commands/preview.d.ts.map +1 -0
  52. package/dist/cli/src/commands/preview.js +1200 -0
  53. package/dist/cli/src/commands/preview.js.map +1 -0
  54. package/dist/cli/src/commands/status.d.ts +21 -0
  55. package/dist/cli/src/commands/status.d.ts.map +1 -0
  56. package/dist/cli/src/commands/status.js +287 -0
  57. package/dist/cli/src/commands/status.js.map +1 -0
  58. package/dist/cli/src/commands/validate.d.ts +22 -0
  59. package/dist/cli/src/commands/validate.d.ts.map +1 -0
  60. package/dist/cli/src/commands/validate.js +259 -0
  61. package/dist/cli/src/commands/validate.js.map +1 -0
  62. package/dist/cli/src/types/index.d.ts +152 -0
  63. package/dist/cli/src/types/index.d.ts.map +1 -0
  64. package/dist/cli/src/types/index.js +3 -0
  65. package/dist/cli/src/types/index.js.map +1 -0
  66. package/dist/cli/src/utils/apiKeyManager.d.ts +137 -0
  67. package/dist/cli/src/utils/apiKeyManager.d.ts.map +1 -0
  68. package/dist/cli/src/utils/apiKeyManager.js +471 -0
  69. package/dist/cli/src/utils/apiKeyManager.js.map +1 -0
  70. package/dist/cli/src/utils/errorHandler.d.ts +105 -0
  71. package/dist/cli/src/utils/errorHandler.d.ts.map +1 -0
  72. package/dist/cli/src/utils/errorHandler.js +332 -0
  73. package/dist/cli/src/utils/errorHandler.js.map +1 -0
  74. package/dist/cli/src/utils/fileSystem.d.ts +58 -0
  75. package/dist/cli/src/utils/fileSystem.d.ts.map +1 -0
  76. package/dist/cli/src/utils/fileSystem.js +230 -0
  77. package/dist/cli/src/utils/fileSystem.js.map +1 -0
  78. package/dist/cli/src/utils/githubModels.d.ts +53 -0
  79. package/dist/cli/src/utils/githubModels.d.ts.map +1 -0
  80. package/dist/cli/src/utils/githubModels.js +239 -0
  81. package/dist/cli/src/utils/githubModels.js.map +1 -0
  82. package/dist/cli/src/utils/spinner.d.ts +28 -0
  83. package/dist/cli/src/utils/spinner.d.ts.map +1 -0
  84. package/dist/cli/src/utils/spinner.js +112 -0
  85. package/dist/cli/src/utils/spinner.js.map +1 -0
  86. package/dist/cli/src/utils/xaiClient.d.ts +59 -0
  87. package/dist/cli/src/utils/xaiClient.d.ts.map +1 -0
  88. package/dist/cli/src/utils/xaiClient.js +244 -0
  89. package/dist/cli/src/utils/xaiClient.js.map +1 -0
  90. package/dist/lib/analytics/usage-tracker.d.ts +125 -0
  91. package/dist/lib/analytics/usage-tracker.d.ts.map +1 -0
  92. package/dist/lib/analytics/usage-tracker.js +429 -0
  93. package/dist/lib/analytics/usage-tracker.js.map +1 -0
  94. package/package.json +64 -0
@@ -0,0 +1,53 @@
1
+ export interface GitHubModelsConfig {
2
+ token: string;
3
+ model?: string;
4
+ temperature?: number;
5
+ maxTokens?: number;
6
+ }
7
+ export interface GitHubModelsRequest {
8
+ prompt: string;
9
+ model?: string;
10
+ temperature?: number;
11
+ maxTokens?: number;
12
+ systemPrompt?: string;
13
+ }
14
+ export interface GitHubModelsResponse {
15
+ content: string;
16
+ model: string;
17
+ usage?: {
18
+ promptTokens: number;
19
+ completionTokens: number;
20
+ totalTokens: number;
21
+ };
22
+ }
23
+ export declare class GitHubModelsClient {
24
+ private client;
25
+ private config;
26
+ private endpoint;
27
+ constructor(config: GitHubModelsConfig);
28
+ /**
29
+ * Generate content using GitHub Models
30
+ */
31
+ generate(request: GitHubModelsRequest): Promise<GitHubModelsResponse>;
32
+ /**
33
+ * Generate a component list using GitHub Models
34
+ */
35
+ generateComponentList(projectDescription: string): Promise<any>;
36
+ /**
37
+ * Generate a React component using GitHub Models
38
+ */
39
+ generateComponent(componentSpec: any, groupName: string): Promise<string>;
40
+ /**
41
+ * Generate documentation for a component
42
+ */
43
+ generateComponentDocs(componentCode: string, componentSpec: any): Promise<string>;
44
+ /**
45
+ * Test the connection to GitHub Models
46
+ */
47
+ testConnection(): Promise<boolean>;
48
+ /**
49
+ * Get available models (this would require a different API endpoint)
50
+ */
51
+ listModels(): Promise<string[]>;
52
+ }
53
+ //# sourceMappingURL=githubModels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"githubModels.d.ts","sourceRoot":"","sources":["../../../../src/utils/githubModels.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE;QACN,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,QAAQ,CAAwC;gBAE5C,MAAM,EAAE,kBAAkB;IAQtC;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA8C3E;;OAEG;IACG,qBAAqB,CAAC,kBAAkB,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAsDrE;;OAEG;IACG,iBAAiB,CACrB,aAAa,EAAE,GAAG,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC;IA6ClB;;OAEG;IACG,qBAAqB,CACzB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,GAAG,GACjB,OAAO,CAAC,MAAM,CAAC;IAiClB;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAaxC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAWtC"}
@@ -0,0 +1,239 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.GitHubModelsClient = void 0;
37
+ const ai_inference_1 = __importStar(require("@azure-rest/ai-inference"));
38
+ const core_auth_1 = require("@azure/core-auth");
39
+ class GitHubModelsClient {
40
+ constructor(config) {
41
+ this.endpoint = "https://models.github.ai/inference";
42
+ this.config = config;
43
+ this.client = (0, ai_inference_1.default)(this.endpoint, new core_auth_1.AzureKeyCredential(config.token));
44
+ }
45
+ /**
46
+ * Generate content using GitHub Models
47
+ */
48
+ async generate(request) {
49
+ try {
50
+ const model = request.model || this.config.model || "deepseek/DeepSeek-V3-0324";
51
+ const temperature = request.temperature || this.config.temperature || 0.7;
52
+ const maxTokens = request.maxTokens || this.config.maxTokens || 4000;
53
+ const messages = [];
54
+ if (request.systemPrompt) {
55
+ messages.push({ role: "system", content: request.systemPrompt });
56
+ }
57
+ messages.push({ role: "user", content: request.prompt });
58
+ const response = await this.client.path("/chat/completions").post({
59
+ body: {
60
+ messages,
61
+ temperature,
62
+ top_p: 1.0,
63
+ max_tokens: maxTokens,
64
+ model: model,
65
+ },
66
+ });
67
+ if ((0, ai_inference_1.isUnexpected)(response)) {
68
+ throw new Error(response.body.error?.message || "GitHub Models API error");
69
+ }
70
+ return {
71
+ content: response.body.choices[0]?.message?.content || "",
72
+ model: response.body.model || model,
73
+ usage: response.body.usage,
74
+ };
75
+ }
76
+ catch (error) {
77
+ console.error("GitHub Models API error:", error);
78
+ throw new Error(`GitHub Models generation failed: ${error instanceof Error ? error.message : "Unknown error"}`);
79
+ }
80
+ }
81
+ /**
82
+ * Generate a component list using GitHub Models
83
+ */
84
+ async generateComponentList(projectDescription) {
85
+ const prompt = `Generate a comprehensive component list for a React/Next.js project with the following description:
86
+
87
+ ${projectDescription}
88
+
89
+ Please generate a JSON structure with the following format:
90
+ {
91
+ "project": {
92
+ "name": "Project Name",
93
+ "description": "Project description",
94
+ "version": "1.0.0"
95
+ },
96
+ "groups": [
97
+ {
98
+ "name": "Group Name",
99
+ "description": "Group description",
100
+ "priority": "high|medium|low",
101
+ "components": [
102
+ {
103
+ "name": "ComponentName",
104
+ "description": "Component description",
105
+ "type": "component type",
106
+ "priority": "high|medium|low",
107
+ "userStories": ["User story 1", "User story 2"],
108
+ "actionFunctions": ["function1", "function2"],
109
+ "dependencies": ["dependency1", "dependency2"],
110
+ "tags": ["tag1", "tag2"]
111
+ }
112
+ ]
113
+ }
114
+ ]
115
+ }
116
+
117
+ Focus on creating a well-structured component architecture with clear separation of concerns.`;
118
+ const response = await this.generate({
119
+ prompt,
120
+ systemPrompt: "You are an expert React/Next.js developer who creates well-structured component architectures. Always respond with valid JSON.",
121
+ temperature: 0.3,
122
+ maxTokens: 4000,
123
+ });
124
+ try {
125
+ return JSON.parse(response.content);
126
+ }
127
+ catch (error) {
128
+ throw new Error(`Failed to parse component list JSON: ${error instanceof Error ? error.message : "Invalid JSON"}`);
129
+ }
130
+ }
131
+ /**
132
+ * Generate a React component using GitHub Models
133
+ */
134
+ async generateComponent(componentSpec, groupName) {
135
+ const prompt = `Generate a production-ready React component with TypeScript for the following specification:
136
+
137
+ Component Name: ${componentSpec.name}
138
+ Description: ${componentSpec.description}
139
+ Type: ${componentSpec.type}
140
+ Group: ${groupName}
141
+
142
+ User Stories:
143
+ ${componentSpec.userStories?.map((story) => `- ${story}`).join("\n")}
144
+
145
+ Action Functions:
146
+ ${componentSpec.actionFunctions?.map((func) => `- ${func}`).join("\n")}
147
+
148
+ Dependencies:
149
+ ${componentSpec.dependencies?.map((dep) => `- ${dep}`).join("\n")}
150
+
151
+ Tags:
152
+ ${componentSpec.tags?.map((tag) => `- ${tag}`).join("\n")}
153
+
154
+ Requirements:
155
+ - Use TypeScript with strict typing
156
+ - Use modern React patterns (hooks, functional components)
157
+ - Include proper error handling and loading states
158
+ - Use Tailwind CSS for styling
159
+ - Include shadcn/ui components where appropriate
160
+ - Add comprehensive JSDoc comments
161
+ - Include proper accessibility attributes
162
+ - Use Zustand for state management if needed
163
+ - Include proper prop validation
164
+ - Add example usage
165
+
166
+ Generate a complete, production-ready component that can be used immediately.`;
167
+ const response = await this.generate({
168
+ prompt,
169
+ systemPrompt: "You are an expert React/TypeScript developer who creates production-ready components. Always generate complete, functional code with proper TypeScript types and modern React patterns.",
170
+ temperature: 0.4,
171
+ maxTokens: 4000,
172
+ });
173
+ return response.content;
174
+ }
175
+ /**
176
+ * Generate documentation for a component
177
+ */
178
+ async generateComponentDocs(componentCode, componentSpec) {
179
+ const prompt = `Generate comprehensive documentation for the following React component:
180
+
181
+ Component Name: ${componentSpec.name}
182
+ Description: ${componentSpec.description}
183
+
184
+ Component Code:
185
+ \`\`\`tsx
186
+ ${componentCode}
187
+ \`\`\`
188
+
189
+ Please generate a README.md file that includes:
190
+ - Component overview
191
+ - Props documentation
192
+ - Usage examples
193
+ - Best practices
194
+ - Accessibility considerations
195
+ - Dependencies
196
+ - Installation instructions
197
+
198
+ Make the documentation clear, comprehensive, and easy to follow.`;
199
+ const response = await this.generate({
200
+ prompt,
201
+ systemPrompt: "You are a technical writer who creates clear, comprehensive documentation for React components. Always generate well-structured markdown documentation.",
202
+ temperature: 0.3,
203
+ maxTokens: 2000,
204
+ });
205
+ return response.content;
206
+ }
207
+ /**
208
+ * Test the connection to GitHub Models
209
+ */
210
+ async testConnection() {
211
+ try {
212
+ await this.generate({
213
+ prompt: "Hello, this is a test message.",
214
+ maxTokens: 10,
215
+ });
216
+ return true;
217
+ }
218
+ catch (error) {
219
+ console.error("GitHub Models connection test failed:", error);
220
+ return false;
221
+ }
222
+ }
223
+ /**
224
+ * Get available models (this would require a different API endpoint)
225
+ */
226
+ async listModels() {
227
+ // For now, return a list of known GitHub Models
228
+ return [
229
+ "deepseek/DeepSeek-V3-0324",
230
+ "claude-3-5-sonnet",
231
+ "gpt-4o",
232
+ "gpt-4o-mini",
233
+ "grok-3",
234
+ "grok-3-mini",
235
+ ];
236
+ }
237
+ }
238
+ exports.GitHubModelsClient = GitHubModelsClient;
239
+ //# sourceMappingURL=githubModels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"githubModels.js","sourceRoot":"","sources":["../../../../src/utils/githubModels.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yEAAqE;AACrE,gDAAsD;AA2BtD,MAAa,kBAAkB;IAK7B,YAAY,MAA0B;QAF9B,aAAQ,GAAG,oCAAoC,CAAC;QAGtD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,IAAA,sBAAW,EACvB,IAAI,CAAC,QAAQ,EACb,IAAI,8BAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CACrC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,OAA4B;QACzC,IAAI,CAAC;YACH,MAAM,KAAK,GACT,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,2BAA2B,CAAC;YACpE,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,GAAG,CAAC;YAC1E,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC;YAErE,MAAM,QAAQ,GAAG,EAAE,CAAC;YAEpB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;gBACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;YACnE,CAAC;YAED,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAEzD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC;gBAChE,IAAI,EAAE;oBACJ,QAAQ;oBACR,WAAW;oBACX,KAAK,EAAE,GAAG;oBACV,UAAU,EAAE,SAAS;oBACrB,KAAK,EAAE,KAAK;iBACb;aACF,CAAC,CAAC;YAEH,IAAI,IAAA,2BAAY,EAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CACb,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,yBAAyB,CAC1D,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE;gBACzD,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK;gBACnC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;aAC3B,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;YACjD,MAAM,IAAI,KAAK,CACb,oCACE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAC3C,EAAE,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,qBAAqB,CAAC,kBAA0B;QACpD,MAAM,MAAM,GAAG;;EAEjB,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8FA8B0E,CAAC;QAE3F,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC;YACnC,MAAM;YACN,YAAY,EACV,gIAAgI;YAClI,WAAW,EAAE,GAAG;YAChB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,wCACE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,cAC3C,EAAE,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CACrB,aAAkB,EAClB,SAAiB;QAEjB,MAAM,MAAM,GAAG;;kBAED,aAAa,CAAC,IAAI;eACrB,aAAa,CAAC,WAAW;QAChC,aAAa,CAAC,IAAI;SACjB,SAAS;;;EAGhB,aAAa,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;EAG1E,aAAa,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;EAG5E,aAAa,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;EAGvE,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;8EAca,CAAC;QAE3E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC;YACnC,MAAM;YACN,YAAY,EACV,yLAAyL;YAC3L,WAAW,EAAE,GAAG;YAChB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,qBAAqB,CACzB,aAAqB,EACrB,aAAkB;QAElB,MAAM,MAAM,GAAG;;kBAED,aAAa,CAAC,IAAI;eACrB,aAAa,CAAC,WAAW;;;;EAItC,aAAa;;;;;;;;;;;;iEAYkD,CAAC;QAE9D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC;YACnC,MAAM;YACN,YAAY,EACV,yJAAyJ;YAC3J,WAAW,EAAE,GAAG;YAChB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc;QAClB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC;gBAClB,MAAM,EAAE,gCAAgC;gBACxC,SAAS,EAAE,EAAE;aACd,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAC;YAC9D,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,gDAAgD;QAChD,OAAO;YACL,2BAA2B;YAC3B,mBAAmB;YACnB,QAAQ;YACR,aAAa;YACb,QAAQ;YACR,aAAa;SACd,CAAC;IACJ,CAAC;CACF;AA/OD,gDA+OC"}
@@ -0,0 +1,28 @@
1
+ export declare class EnhancedSpinner {
2
+ private text;
3
+ private isSpinning;
4
+ private spinnerChars;
5
+ private currentFrame;
6
+ private interval;
7
+ private startTime;
8
+ private lastLineLength;
9
+ private encouragementMessages;
10
+ private lastEncouragementTime;
11
+ constructor(text: string);
12
+ private clearLine;
13
+ private getEncouragementMessage;
14
+ private updateSpinner;
15
+ start(): this;
16
+ success(options?: {
17
+ text?: string;
18
+ }): this;
19
+ error(options?: {
20
+ text?: string;
21
+ }): this;
22
+ warn(options?: {
23
+ text?: string;
24
+ }): this;
25
+ updateText(newText: string): this;
26
+ stop(): this;
27
+ }
28
+ //# sourceMappingURL=spinner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spinner.d.ts","sourceRoot":"","sources":["../../../../src/utils/spinner.ts"],"names":[],"mappings":"AAEA,qBAAa,eAAe;IAC1B,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,UAAU,CAAU;IAC5B,OAAO,CAAC,YAAY,CAAW;IAC/B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,qBAAqB,CAAW;IACxC,OAAO,CAAC,qBAAqB,CAAS;gBAE1B,IAAI,EAAE,MAAM;IAuBxB,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,uBAAuB;IAgB/B,OAAO,CAAC,aAAa;IAoBrB,KAAK,IAAI,IAAI;IAUb,OAAO,CAAC,OAAO,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,IAAI;IAY9C,KAAK,CAAC,OAAO,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,IAAI;IAU5C,IAAI,CAAC,OAAO,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,IAAI;IAY3C,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKjC,IAAI,IAAI,IAAI;CAQb"}
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.EnhancedSpinner = void 0;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ class EnhancedSpinner {
9
+ constructor(text) {
10
+ this.text = text;
11
+ this.isSpinning = false;
12
+ this.spinnerChars = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"];
13
+ this.currentFrame = 0;
14
+ this.interval = null;
15
+ this.startTime = null;
16
+ this.lastLineLength = 0;
17
+ this.encouragementMessages = [
18
+ " Hang in there! 🚀",
19
+ " Lol sorry it's taking long... ☕",
20
+ " Grab some coffee/water while we work! ☕",
21
+ " Did you dream last night? 🌙",
22
+ " Almost there, promise! 💪",
23
+ " Building something awesome... 🎨",
24
+ " Rome wasn't built in a day! 🏛️",
25
+ " Good things take time... ⏰",
26
+ " Still cooking your project... 👨‍🍳",
27
+ " Patience, young padawan... 🧘‍♂️",
28
+ ];
29
+ this.lastEncouragementTime = 0;
30
+ }
31
+ clearLine() {
32
+ // Clear the current line completely
33
+ process.stdout.write("\r" + " ".repeat(this.lastLineLength) + "\r");
34
+ }
35
+ getEncouragementMessage() {
36
+ const now = Date.now();
37
+ // Show encouragement every 5 seconds after 10 seconds have passed
38
+ if (now - (this.startTime || 0) > 10000 &&
39
+ now - this.lastEncouragementTime > 5000) {
40
+ this.lastEncouragementTime = now;
41
+ const randomIndex = Math.floor(Math.random() * this.encouragementMessages.length);
42
+ return this.encouragementMessages[randomIndex];
43
+ }
44
+ return "";
45
+ }
46
+ updateSpinner() {
47
+ const elapsed = this.startTime ? Date.now() - this.startTime : 0;
48
+ const elapsedSeconds = Math.floor(elapsed / 1000);
49
+ const timeDisplay = elapsedSeconds > 0 ? chalk_1.default.gray(` (${elapsedSeconds}s)`) : "";
50
+ const encouragement = this.getEncouragementMessage();
51
+ // Clear the current line completely
52
+ this.clearLine();
53
+ // Show main spinner line with encouragement inline
54
+ const mainLine = `${chalk_1.default.blue(this.spinnerChars[this.currentFrame])} ${this.text}${timeDisplay}${encouragement}`;
55
+ process.stdout.write(mainLine);
56
+ this.lastLineLength = mainLine.replace(/\x1b\[[0-9;]*m/g, "").length;
57
+ this.currentFrame = (this.currentFrame + 1) % this.spinnerChars.length;
58
+ }
59
+ start() {
60
+ this.isSpinning = true;
61
+ this.startTime = Date.now();
62
+ this.lastEncouragementTime = this.startTime;
63
+ this.interval = setInterval(() => {
64
+ this.updateSpinner();
65
+ }, 100);
66
+ return this;
67
+ }
68
+ success(options = {}) {
69
+ if (this.isSpinning) {
70
+ if (this.interval)
71
+ clearInterval(this.interval);
72
+ this.clearLine();
73
+ process.stdout.write(`${chalk_1.default.green("✅")} ${options.text || this.text}\n`);
74
+ this.isSpinning = false;
75
+ }
76
+ return this;
77
+ }
78
+ error(options = {}) {
79
+ if (this.isSpinning) {
80
+ if (this.interval)
81
+ clearInterval(this.interval);
82
+ this.clearLine();
83
+ process.stdout.write(`${chalk_1.default.red("❌")} ${options.text || this.text}\n`);
84
+ this.isSpinning = false;
85
+ }
86
+ return this;
87
+ }
88
+ warn(options = {}) {
89
+ if (this.isSpinning) {
90
+ if (this.interval)
91
+ clearInterval(this.interval);
92
+ this.clearLine();
93
+ process.stdout.write(`${chalk_1.default.yellow("⚠️")} ${options.text || this.text}\n`);
94
+ this.isSpinning = false;
95
+ }
96
+ return this;
97
+ }
98
+ updateText(newText) {
99
+ this.text = newText;
100
+ return this;
101
+ }
102
+ stop() {
103
+ if (this.isSpinning && this.interval) {
104
+ clearInterval(this.interval);
105
+ this.clearLine();
106
+ this.isSpinning = false;
107
+ }
108
+ return this;
109
+ }
110
+ }
111
+ exports.EnhancedSpinner = EnhancedSpinner;
112
+ //# sourceMappingURL=spinner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spinner.js","sourceRoot":"","sources":["../../../../src/utils/spinner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ export interface XAIConfig {
2
+ apiKey: string;
3
+ model?: string;
4
+ temperature?: number;
5
+ maxTokens?: number;
6
+ baseUrl?: string;
7
+ }
8
+ export interface XAIRequest {
9
+ prompt: string;
10
+ model?: string;
11
+ temperature?: number;
12
+ maxTokens?: number;
13
+ systemPrompt?: string;
14
+ stream?: boolean;
15
+ }
16
+ export interface XAIResponse {
17
+ content: string;
18
+ model: string;
19
+ usage?: {
20
+ promptTokens: number;
21
+ completionTokens: number;
22
+ totalTokens: number;
23
+ };
24
+ finishReason?: string;
25
+ }
26
+ export declare class XAIClient {
27
+ private config;
28
+ private baseUrl;
29
+ constructor(config: XAIConfig);
30
+ /**
31
+ * Generate content using X.AI API
32
+ */
33
+ generate(request: XAIRequest): Promise<XAIResponse>;
34
+ /**
35
+ * Generate context files using X.AI
36
+ */
37
+ generateContext(projectDescription: string): Promise<Record<string, string>>;
38
+ /**
39
+ * Generate component list using X.AI
40
+ */
41
+ generateComponentList(projectDescription: string): Promise<any>;
42
+ /**
43
+ * Generate individual component using X.AI
44
+ */
45
+ generateComponent(componentSpec: any, groupName: string): Promise<string>;
46
+ /**
47
+ * Generate component documentation using X.AI
48
+ */
49
+ generateComponentDocs(componentCode: string, componentSpec: any): Promise<string>;
50
+ /**
51
+ * Test connection to X.AI API
52
+ */
53
+ testConnection(): Promise<boolean>;
54
+ /**
55
+ * List available models
56
+ */
57
+ listModels(): Promise<string[]>;
58
+ }
59
+ //# sourceMappingURL=xaiClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xaiClient.d.ts","sourceRoot":"","sources":["../../../../src/utils/xaiClient.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE;QACN,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,SAAS;IAK7B;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IAwDzD;;OAEG;IACG,eAAe,CACnB,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAqClC;;OAEG;IACG,qBAAqB,CAAC,kBAAkB,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAkDrE;;OAEG;IACG,iBAAiB,CACrB,aAAa,EAAE,GAAG,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC;IA6ClB;;OAEG;IACG,qBAAqB,CACzB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,GAAG,GACjB,OAAO,CAAC,MAAM,CAAC;IAkClB;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAaxC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAItC"}