helix-lang 11.0.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 (193) hide show
  1. package/README.md +168 -0
  2. package/dist/architect.d.ts +14 -0
  3. package/dist/architect.d.ts.map +1 -0
  4. package/dist/architect.js +127 -0
  5. package/dist/architect.js.map +1 -0
  6. package/dist/bin/helix.d.ts +20 -0
  7. package/dist/bin/helix.d.ts.map +1 -0
  8. package/dist/bin/helix.js +921 -0
  9. package/dist/bin/helix.js.map +1 -0
  10. package/dist/commands/collaborate/index.d.ts +2 -0
  11. package/dist/commands/collaborate/index.d.ts.map +1 -0
  12. package/dist/commands/collaborate/index.js +129 -0
  13. package/dist/commands/collaborate/index.js.map +1 -0
  14. package/dist/commands/collaborate/server.d.ts +31 -0
  15. package/dist/commands/collaborate/server.d.ts.map +1 -0
  16. package/dist/commands/collaborate/server.js +159 -0
  17. package/dist/commands/collaborate/server.js.map +1 -0
  18. package/dist/commands/deploy/index.d.ts +25 -0
  19. package/dist/commands/deploy/index.d.ts.map +1 -0
  20. package/dist/commands/deploy/index.js +130 -0
  21. package/dist/commands/deploy/index.js.map +1 -0
  22. package/dist/commands/deploy/platforms/fly.d.ts +9 -0
  23. package/dist/commands/deploy/platforms/fly.d.ts.map +1 -0
  24. package/dist/commands/deploy/platforms/fly.js +68 -0
  25. package/dist/commands/deploy/platforms/fly.js.map +1 -0
  26. package/dist/commands/deploy/platforms/railway.d.ts +9 -0
  27. package/dist/commands/deploy/platforms/railway.d.ts.map +1 -0
  28. package/dist/commands/deploy/platforms/railway.js +115 -0
  29. package/dist/commands/deploy/platforms/railway.js.map +1 -0
  30. package/dist/commands/deploy/platforms/vercel.d.ts +10 -0
  31. package/dist/commands/deploy/platforms/vercel.d.ts.map +1 -0
  32. package/dist/commands/deploy/platforms/vercel.js +126 -0
  33. package/dist/commands/deploy/platforms/vercel.js.map +1 -0
  34. package/dist/commands/deploy.d.ts +6 -0
  35. package/dist/commands/deploy.d.ts.map +1 -0
  36. package/dist/commands/deploy.js +56 -0
  37. package/dist/commands/deploy.js.map +1 -0
  38. package/dist/commands/evolve/analyzers/performance.d.ts +13 -0
  39. package/dist/commands/evolve/analyzers/performance.d.ts.map +1 -0
  40. package/dist/commands/evolve/analyzers/performance.js +591 -0
  41. package/dist/commands/evolve/analyzers/performance.js.map +1 -0
  42. package/dist/commands/evolve/analyzers/security.d.ts +21 -0
  43. package/dist/commands/evolve/analyzers/security.d.ts.map +1 -0
  44. package/dist/commands/evolve/analyzers/security.js +280 -0
  45. package/dist/commands/evolve/analyzers/security.js.map +1 -0
  46. package/dist/commands/evolve/index.d.ts +2 -0
  47. package/dist/commands/evolve/index.d.ts.map +1 -0
  48. package/dist/commands/evolve/index.js +122 -0
  49. package/dist/commands/evolve/index.js.map +1 -0
  50. package/dist/commands/generate.d.ts +6 -0
  51. package/dist/commands/generate.d.ts.map +1 -0
  52. package/dist/commands/generate.js +277 -0
  53. package/dist/commands/generate.js.map +1 -0
  54. package/dist/commands/install.d.ts +2 -0
  55. package/dist/commands/install.d.ts.map +1 -0
  56. package/dist/commands/install.js +176 -0
  57. package/dist/commands/install.js.map +1 -0
  58. package/dist/commands/library/index.d.ts +27 -0
  59. package/dist/commands/library/index.d.ts.map +1 -0
  60. package/dist/commands/library/index.js +126 -0
  61. package/dist/commands/library/index.js.map +1 -0
  62. package/dist/commands/migrate.d.ts +5 -0
  63. package/dist/commands/migrate.d.ts.map +1 -0
  64. package/dist/commands/migrate.js +258 -0
  65. package/dist/commands/migrate.js.map +1 -0
  66. package/dist/commands/new.d.ts +6 -0
  67. package/dist/commands/new.d.ts.map +1 -0
  68. package/dist/commands/new.js +195 -0
  69. package/dist/commands/new.js.map +1 -0
  70. package/dist/commands/preflight.d.ts +20 -0
  71. package/dist/commands/preflight.d.ts.map +1 -0
  72. package/dist/commands/preflight.js +182 -0
  73. package/dist/commands/preflight.js.map +1 -0
  74. package/dist/commands/preview.d.ts +13 -0
  75. package/dist/commands/preview.d.ts.map +1 -0
  76. package/dist/commands/preview.js +260 -0
  77. package/dist/commands/preview.js.map +1 -0
  78. package/dist/commands/run.d.ts +6 -0
  79. package/dist/commands/run.d.ts.map +1 -0
  80. package/dist/commands/run.js +96 -0
  81. package/dist/commands/run.js.map +1 -0
  82. package/dist/commands/spawn.d.ts +11 -0
  83. package/dist/commands/spawn.d.ts.map +1 -0
  84. package/dist/commands/spawn.js +916 -0
  85. package/dist/commands/spawn.js.map +1 -0
  86. package/dist/compiler.d.ts +12 -0
  87. package/dist/compiler.d.ts.map +1 -0
  88. package/dist/compiler.js +92 -0
  89. package/dist/compiler.js.map +1 -0
  90. package/dist/core/file-writer.d.ts +36 -0
  91. package/dist/core/file-writer.d.ts.map +1 -0
  92. package/dist/core/file-writer.js +268 -0
  93. package/dist/core/file-writer.js.map +1 -0
  94. package/dist/core/registry.d.ts +57 -0
  95. package/dist/core/registry.d.ts.map +1 -0
  96. package/dist/core/registry.js +222 -0
  97. package/dist/core/registry.js.map +1 -0
  98. package/dist/core/self-healing.d.ts +47 -0
  99. package/dist/core/self-healing.d.ts.map +1 -0
  100. package/dist/core/self-healing.js +250 -0
  101. package/dist/core/self-healing.js.map +1 -0
  102. package/dist/core/types.d.ts +126 -0
  103. package/dist/core/types.d.ts.map +1 -0
  104. package/dist/core/types.js +7 -0
  105. package/dist/core/types.js.map +1 -0
  106. package/dist/generators/databases/mongodb.d.ts +10 -0
  107. package/dist/generators/databases/mongodb.d.ts.map +1 -0
  108. package/dist/generators/databases/mongodb.js +83 -0
  109. package/dist/generators/databases/mongodb.js.map +1 -0
  110. package/dist/generators/databases/redis.d.ts +2 -0
  111. package/dist/generators/databases/redis.d.ts.map +1 -0
  112. package/dist/generators/databases/redis.js +140 -0
  113. package/dist/generators/databases/redis.js.map +1 -0
  114. package/dist/generators/flutter.d.ts +32 -0
  115. package/dist/generators/flutter.d.ts.map +1 -0
  116. package/dist/generators/flutter.js +628 -0
  117. package/dist/generators/flutter.js.map +1 -0
  118. package/dist/openrouter.d.ts +68 -0
  119. package/dist/openrouter.d.ts.map +1 -0
  120. package/dist/openrouter.js +241 -0
  121. package/dist/openrouter.js.map +1 -0
  122. package/dist/page-generator.d.ts +22 -0
  123. package/dist/page-generator.d.ts.map +1 -0
  124. package/dist/page-generator.js +192 -0
  125. package/dist/page-generator.js.map +1 -0
  126. package/dist/parser.d.ts +76 -0
  127. package/dist/parser.d.ts.map +1 -0
  128. package/dist/parser.js +691 -0
  129. package/dist/parser.js.map +1 -0
  130. package/dist/prompts/master-architect.d.ts +9 -0
  131. package/dist/prompts/master-architect.d.ts.map +1 -0
  132. package/dist/prompts/master-architect.js +150 -0
  133. package/dist/prompts/master-architect.js.map +1 -0
  134. package/dist/researcher.d.ts +12 -0
  135. package/dist/researcher.d.ts.map +1 -0
  136. package/dist/researcher.js +85 -0
  137. package/dist/researcher.js.map +1 -0
  138. package/dist/self-heal.d.ts +29 -0
  139. package/dist/self-heal.d.ts.map +1 -0
  140. package/dist/self-heal.js +260 -0
  141. package/dist/self-heal.js.map +1 -0
  142. package/dist/services/SupabaseDeployer.d.ts +9 -0
  143. package/dist/services/SupabaseDeployer.d.ts.map +1 -0
  144. package/dist/services/SupabaseDeployer.js +50 -0
  145. package/dist/services/SupabaseDeployer.js.map +1 -0
  146. package/dist/test-generator.d.ts +18 -0
  147. package/dist/test-generator.d.ts.map +1 -0
  148. package/dist/test-generator.js +180 -0
  149. package/dist/test-generator.js.map +1 -0
  150. package/dist/themes/index.d.ts +52 -0
  151. package/dist/themes/index.d.ts.map +1 -0
  152. package/dist/themes/index.js +273 -0
  153. package/dist/themes/index.js.map +1 -0
  154. package/dist/types.d.ts +9 -0
  155. package/dist/types.d.ts.map +1 -0
  156. package/dist/types.js +81 -0
  157. package/dist/types.js.map +1 -0
  158. package/dist/utils/constitutional-validator.d.ts +73 -0
  159. package/dist/utils/constitutional-validator.d.ts.map +1 -0
  160. package/dist/utils/constitutional-validator.js +249 -0
  161. package/dist/utils/constitutional-validator.js.map +1 -0
  162. package/library/auth-flow/app/api/auth/[...nextauth]/route.ts +31 -0
  163. package/library/auth-flow/app/api/auth/login/route.ts +90 -0
  164. package/library/auth-flow/app/api/auth/register/route.ts +91 -0
  165. package/library/auth-flow/components/auth/AuthMiddleware.tsx +139 -0
  166. package/library/auth-flow/components/auth/LoginForm.tsx +125 -0
  167. package/library/auth-flow/components/auth/RegisterForm.tsx +168 -0
  168. package/library/auth-flow/components/auth/nextauth-config.ts +99 -0
  169. package/library/auth-flow/manifest.json +29 -0
  170. package/library/auth-flow/schema.prisma +45 -0
  171. package/library/dashboard-analytics/components/dashboard/ActivityFeed.tsx +109 -0
  172. package/library/dashboard-analytics/components/dashboard/LineChart.tsx +180 -0
  173. package/library/dashboard-analytics/components/dashboard/StatsCard.tsx +47 -0
  174. package/library/dashboard-analytics/components/dashboard/SummaryGrid.tsx +39 -0
  175. package/library/dashboard-analytics/manifest.json +19 -0
  176. package/library/data-table/components/table/BulkActions.tsx +59 -0
  177. package/library/data-table/components/table/ColumnToggle.tsx +65 -0
  178. package/library/data-table/components/table/DataTable.tsx +318 -0
  179. package/library/data-table/components/table/ExportCSV.tsx +52 -0
  180. package/library/data-table/components/table/SearchFilter.tsx +48 -0
  181. package/library/data-table/manifest.json +20 -0
  182. package/library/file-upload/app/api/upload/route.ts +107 -0
  183. package/library/file-upload/components/upload/DropZone.tsx +268 -0
  184. package/library/file-upload/components/upload/FilePreview.tsx +82 -0
  185. package/library/file-upload/components/upload/UploadProgress.tsx +92 -0
  186. package/library/file-upload/components/upload/fileStorage.ts +142 -0
  187. package/library/file-upload/manifest.json +21 -0
  188. package/library/notification-system/app/api/notifications/route.ts +121 -0
  189. package/library/notification-system/components/notifications/NotificationBell.tsx +154 -0
  190. package/library/notification-system/components/notifications/NotificationProvider.tsx +161 -0
  191. package/library/notification-system/components/notifications/Toast.tsx +112 -0
  192. package/library/notification-system/manifest.json +20 -0
  193. package/package.json +66 -0
@@ -0,0 +1,222 @@
1
+ "use strict";
2
+ /**
3
+ * Helix Plugin Registry v11.0
4
+ * Dynamic discovery and loading of generator plugins
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ var __importDefault = (this && this.__importDefault) || function (mod) {
40
+ return (mod && mod.__esModule) ? mod : { "default": mod };
41
+ };
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.getRegistry = exports.PluginRegistry = void 0;
44
+ const fs = __importStar(require("fs-extra"));
45
+ const path = __importStar(require("path"));
46
+ const chalk_1 = __importDefault(require("chalk"));
47
+ // Built-in generators
48
+ const BUILT_IN_GENERATORS = [
49
+ {
50
+ name: "helix-gen-flutter",
51
+ target: "flutter",
52
+ version: "10.0.0",
53
+ modulePath: "../generators/flutter",
54
+ isBuiltIn: true,
55
+ },
56
+ {
57
+ name: "helix-gen-nextjs",
58
+ target: "web",
59
+ version: "10.0.0",
60
+ modulePath: "../commands/spawn",
61
+ isBuiltIn: true,
62
+ },
63
+ ];
64
+ /**
65
+ * Plugin Registry - Discovers and loads generator plugins
66
+ */
67
+ class PluginRegistry {
68
+ static instance;
69
+ plugins = new Map();
70
+ loadedPlugins = new Map();
71
+ constructor() {
72
+ // Register built-in generators
73
+ for (const plugin of BUILT_IN_GENERATORS) {
74
+ this.plugins.set(plugin.target, plugin);
75
+ }
76
+ }
77
+ /**
78
+ * Get singleton instance
79
+ */
80
+ static getInstance() {
81
+ if (!PluginRegistry.instance) {
82
+ PluginRegistry.instance = new PluginRegistry();
83
+ }
84
+ return PluginRegistry.instance;
85
+ }
86
+ /**
87
+ * Scan for helix-gen-* packages in node_modules
88
+ * @param projectPath - Path to scan for plugins
89
+ */
90
+ async scanForPlugins(projectPath = process.cwd()) {
91
+ const packageJsonPath = path.join(projectPath, "package.json");
92
+ if (!fs.existsSync(packageJsonPath)) {
93
+ return;
94
+ }
95
+ try {
96
+ const packageJson = await fs.readJSON(packageJsonPath);
97
+ const allDeps = {
98
+ ...packageJson.dependencies,
99
+ ...packageJson.devDependencies,
100
+ };
101
+ // Find helix-gen-* packages
102
+ for (const [name, version] of Object.entries(allDeps)) {
103
+ if (name.startsWith("helix-gen-") && !this.isBuiltIn(name)) {
104
+ await this.registerExternalPlugin(name, String(version), projectPath);
105
+ }
106
+ }
107
+ }
108
+ catch (error) {
109
+ console.log(chalk_1.default.yellow(`⚠️ Could not scan for plugins: ${error}`));
110
+ }
111
+ }
112
+ /**
113
+ * Check if a plugin is built-in
114
+ */
115
+ isBuiltIn(name) {
116
+ return BUILT_IN_GENERATORS.some(p => p.name === name);
117
+ }
118
+ /**
119
+ * Register an external plugin
120
+ */
121
+ async registerExternalPlugin(name, version, projectPath) {
122
+ const modulePath = path.join(projectPath, "node_modules", name);
123
+ if (!fs.existsSync(modulePath)) {
124
+ console.log(chalk_1.default.yellow(`⚠️ Plugin ${name} not found in node_modules`));
125
+ return;
126
+ }
127
+ try {
128
+ // Read plugin's package.json to get target
129
+ const pluginPkgPath = path.join(modulePath, "package.json");
130
+ const pluginPkg = await fs.readJSON(pluginPkgPath);
131
+ const target = pluginPkg.helix?.target || name.replace("helix-gen-", "");
132
+ this.plugins.set(target, {
133
+ name,
134
+ target,
135
+ version,
136
+ modulePath,
137
+ isBuiltIn: false,
138
+ });
139
+ console.log(chalk_1.default.green(`✓ Plugin loaded: ${name} (target: ${target})`));
140
+ }
141
+ catch (error) {
142
+ console.log(chalk_1.default.yellow(`⚠️ Could not load plugin ${name}: ${error}`));
143
+ }
144
+ }
145
+ /**
146
+ * Get all registered plugins
147
+ */
148
+ getPlugins() {
149
+ return Array.from(this.plugins.values());
150
+ }
151
+ /**
152
+ * Get available targets
153
+ */
154
+ getAvailableTargets() {
155
+ return Array.from(this.plugins.keys());
156
+ }
157
+ /**
158
+ * Check if a target is supported
159
+ */
160
+ hasTarget(target) {
161
+ return this.plugins.has(target);
162
+ }
163
+ /**
164
+ * Get plugin entry for a target
165
+ */
166
+ getPlugin(target) {
167
+ return this.plugins.get(target);
168
+ }
169
+ /**
170
+ * Load and return a generator plugin
171
+ */
172
+ async loadGenerator(target) {
173
+ // Check cache
174
+ if (this.loadedPlugins.has(target)) {
175
+ return this.loadedPlugins.get(target);
176
+ }
177
+ const entry = this.plugins.get(target);
178
+ if (!entry) {
179
+ console.log(chalk_1.default.red(`❌ No generator found for target: ${target}`));
180
+ return null;
181
+ }
182
+ try {
183
+ // Dynamic import
184
+ const module = await Promise.resolve(`${entry.modulePath}`).then(s => __importStar(require(s)));
185
+ // Look for a default export or a named 'plugin' export
186
+ const plugin = module.default || module.plugin;
187
+ if (plugin && typeof plugin.generate === "function") {
188
+ this.loadedPlugins.set(target, plugin);
189
+ return plugin;
190
+ }
191
+ // For built-in generators, they might not follow plugin interface yet
192
+ return null;
193
+ }
194
+ catch (error) {
195
+ console.log(chalk_1.default.red(`❌ Failed to load generator for ${target}: ${error}`));
196
+ return null;
197
+ }
198
+ }
199
+ /**
200
+ * List all plugins with their status
201
+ */
202
+ listPlugins() {
203
+ console.log(chalk_1.default.cyan("\n📦 Helix Plugin Registry\n"));
204
+ const plugins = this.getPlugins();
205
+ if (plugins.length === 0) {
206
+ console.log(chalk_1.default.gray(" No plugins registered"));
207
+ return;
208
+ }
209
+ for (const plugin of plugins) {
210
+ const status = plugin.isBuiltIn
211
+ ? chalk_1.default.blue("[built-in]")
212
+ : chalk_1.default.green("[external]");
213
+ console.log(` ${chalk_1.default.white(plugin.target)} → ${plugin.name} ${status}`);
214
+ }
215
+ console.log("");
216
+ }
217
+ }
218
+ exports.PluginRegistry = PluginRegistry;
219
+ // Export singleton accessor
220
+ const getRegistry = () => PluginRegistry.getInstance();
221
+ exports.getRegistry = getRegistry;
222
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/core/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Helix Self-Healing Cortex v11.0
3
+ * Automatic error detection, retry, and repair for AI-generated code
4
+ */
5
+ import { GenerationResult } from "./types";
6
+ /**
7
+ * Self-Healing wrapper for AI generation calls
8
+ * Automatically retries and attempts to repair broken output
9
+ */
10
+ export declare class SelfHealingCortex {
11
+ private repairLog;
12
+ /**
13
+ * Execute an AI generation with self-healing
14
+ * @param generator - The generation function to execute
15
+ * @param validator - Validation function that throws on invalid output
16
+ */
17
+ execute<T>(generator: () => Promise<T>, validator: (result: T) => void, repairContext?: string): Promise<GenerationResult<T>>;
18
+ /**
19
+ * Execute AI generation that returns JSON and self-heal invalid JSON
20
+ */
21
+ executeJSON<T>(systemPrompt: string, userPrompt: string, parseAndValidate: (json: any) => T): Promise<GenerationResult<T>>;
22
+ /**
23
+ * Execute code generation with build validation
24
+ */
25
+ executeWithBuildCheck(generator: () => Promise<string>, buildChecker: (code: string) => Promise<{
26
+ success: boolean;
27
+ error?: string;
28
+ }>): Promise<GenerationResult<string>>;
29
+ /**
30
+ * Extract JSON from a potentially markdown-wrapped response
31
+ */
32
+ private extractJSON;
33
+ /**
34
+ * Create a repair prompt based on the original prompt and error
35
+ */
36
+ private createRepairPrompt;
37
+ /**
38
+ * Ask AI to repair broken code
39
+ */
40
+ private repairCode;
41
+ /**
42
+ * Get the repair log
43
+ */
44
+ getRepairLog(): string[];
45
+ }
46
+ export declare const selfHeal: SelfHealingCortex;
47
+ //# sourceMappingURL=self-healing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"self-healing.d.ts","sourceRoot":"","sources":["../../src/core/self-healing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,gBAAgB,EAAiB,MAAM,SAAS,CAAC;AAI1D;;;GAGG;AACH,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,SAAS,CAAgB;IAEjC;;;;OAIG;IACG,OAAO,CAAC,CAAC,EACX,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,SAAS,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,EAC9B,aAAa,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IA8C/B;;OAEG;IACG,WAAW,CAAC,CAAC,EACf,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,gBAAgB,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,GACnC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IA+C/B;;OAEG;IACG,qBAAqB,CACvB,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAChC,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAC9E,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IA6CpC;;OAEG;IACH,OAAO,CAAC,WAAW;IA8CnB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAa1B;;OAEG;YACW,UAAU;IAiCxB;;OAEG;IACH,YAAY,IAAI,MAAM,EAAE;CAG3B;AAGD,eAAO,MAAM,QAAQ,mBAA0B,CAAC"}
@@ -0,0 +1,250 @@
1
+ "use strict";
2
+ /**
3
+ * Helix Self-Healing Cortex v11.0
4
+ * Automatic error detection, retry, and repair for AI-generated code
5
+ */
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.selfHeal = exports.SelfHealingCortex = void 0;
11
+ const chalk_1 = __importDefault(require("chalk"));
12
+ const openrouter_1 = require("../openrouter");
13
+ const MAX_REPAIR_ATTEMPTS = 2;
14
+ /**
15
+ * Self-Healing wrapper for AI generation calls
16
+ * Automatically retries and attempts to repair broken output
17
+ */
18
+ class SelfHealingCortex {
19
+ repairLog = [];
20
+ /**
21
+ * Execute an AI generation with self-healing
22
+ * @param generator - The generation function to execute
23
+ * @param validator - Validation function that throws on invalid output
24
+ */
25
+ async execute(generator, validator, repairContext) {
26
+ this.repairLog = [];
27
+ let attempts = 0;
28
+ let lastError = "";
29
+ while (attempts <= MAX_REPAIR_ATTEMPTS) {
30
+ attempts++;
31
+ try {
32
+ const result = await generator();
33
+ // Validate the result
34
+ try {
35
+ validator(result);
36
+ return {
37
+ success: true,
38
+ data: result,
39
+ attempts,
40
+ repairLog: this.repairLog,
41
+ };
42
+ }
43
+ catch (validationError) {
44
+ lastError = validationError.message || String(validationError);
45
+ this.repairLog.push(`Attempt ${attempts}: Validation failed - ${lastError}`);
46
+ if (attempts <= MAX_REPAIR_ATTEMPTS) {
47
+ console.log(chalk_1.default.yellow(`⚠️ Validation failed, attempting repair (${attempts}/${MAX_REPAIR_ATTEMPTS})...`));
48
+ }
49
+ }
50
+ }
51
+ catch (generationError) {
52
+ lastError = generationError.message || String(generationError);
53
+ this.repairLog.push(`Attempt ${attempts}: Generation failed - ${lastError}`);
54
+ if (attempts <= MAX_REPAIR_ATTEMPTS) {
55
+ console.log(chalk_1.default.yellow(`⚠️ Generation failed, retrying (${attempts}/${MAX_REPAIR_ATTEMPTS})...`));
56
+ }
57
+ }
58
+ }
59
+ return {
60
+ success: false,
61
+ error: lastError,
62
+ attempts,
63
+ repairLog: this.repairLog,
64
+ };
65
+ }
66
+ /**
67
+ * Execute AI generation that returns JSON and self-heal invalid JSON
68
+ */
69
+ async executeJSON(systemPrompt, userPrompt, parseAndValidate) {
70
+ this.repairLog = [];
71
+ let attempts = 0;
72
+ let currentPrompt = userPrompt;
73
+ let lastError = "";
74
+ while (attempts <= MAX_REPAIR_ATTEMPTS) {
75
+ attempts++;
76
+ try {
77
+ const response = await (0, openrouter_1.createCompletion)(systemPrompt, currentPrompt, {
78
+ model: openrouter_1.DEFAULT_MODEL,
79
+ maxTokens: 8192,
80
+ });
81
+ // Try to extract JSON from response
82
+ const jsonStr = this.extractJSON(response);
83
+ const parsed = JSON.parse(jsonStr);
84
+ const validated = parseAndValidate(parsed);
85
+ return {
86
+ success: true,
87
+ data: validated,
88
+ attempts,
89
+ repairLog: this.repairLog,
90
+ };
91
+ }
92
+ catch (error) {
93
+ lastError = error.message || String(error);
94
+ this.repairLog.push(`Attempt ${attempts}: ${lastError}`);
95
+ if (attempts <= MAX_REPAIR_ATTEMPTS) {
96
+ // Create a repair request
97
+ currentPrompt = this.createRepairPrompt(userPrompt, lastError);
98
+ console.log(chalk_1.default.yellow(`⚠️ JSON parsing failed, requesting repair (${attempts}/${MAX_REPAIR_ATTEMPTS})...`));
99
+ }
100
+ }
101
+ }
102
+ return {
103
+ success: false,
104
+ error: `Failed after ${attempts} attempts: ${lastError}`,
105
+ attempts,
106
+ repairLog: this.repairLog,
107
+ };
108
+ }
109
+ /**
110
+ * Execute code generation with build validation
111
+ */
112
+ async executeWithBuildCheck(generator, buildChecker) {
113
+ this.repairLog = [];
114
+ let attempts = 0;
115
+ let currentCode = "";
116
+ let lastError = "";
117
+ while (attempts <= MAX_REPAIR_ATTEMPTS) {
118
+ attempts++;
119
+ try {
120
+ currentCode = await generator();
121
+ const buildResult = await buildChecker(currentCode);
122
+ if (buildResult.success) {
123
+ return {
124
+ success: true,
125
+ data: currentCode,
126
+ attempts,
127
+ repairLog: this.repairLog,
128
+ };
129
+ }
130
+ lastError = buildResult.error || "Build failed";
131
+ this.repairLog.push(`Attempt ${attempts}: Build failed - ${lastError}`);
132
+ if (attempts <= MAX_REPAIR_ATTEMPTS) {
133
+ console.log(chalk_1.default.yellow(`⚠️ Build check failed, attempting repair (${attempts}/${MAX_REPAIR_ATTEMPTS})...`));
134
+ // Request AI to fix the code
135
+ currentCode = await this.repairCode(currentCode, lastError);
136
+ }
137
+ }
138
+ catch (error) {
139
+ lastError = error.message || String(error);
140
+ this.repairLog.push(`Attempt ${attempts}: ${lastError}`);
141
+ }
142
+ }
143
+ return {
144
+ success: false,
145
+ error: lastError,
146
+ attempts,
147
+ repairLog: this.repairLog,
148
+ };
149
+ }
150
+ /**
151
+ * Extract JSON from a potentially markdown-wrapped response
152
+ */
153
+ extractJSON(response) {
154
+ let json = response.trim();
155
+ // Remove markdown code fences
156
+ if (json.startsWith("```json")) {
157
+ json = json.slice(7);
158
+ }
159
+ else if (json.startsWith("```")) {
160
+ json = json.slice(3);
161
+ }
162
+ if (json.endsWith("```")) {
163
+ json = json.slice(0, -3);
164
+ }
165
+ // Try to find JSON object/array bounds
166
+ const startBrace = json.indexOf("{");
167
+ const startBracket = json.indexOf("[");
168
+ const start = startBrace === -1 ? startBracket :
169
+ startBracket === -1 ? startBrace :
170
+ Math.min(startBrace, startBracket);
171
+ if (start !== -1) {
172
+ json = json.slice(start);
173
+ }
174
+ // Find matching end
175
+ let depth = 0;
176
+ let end = 0;
177
+ const openChar = json[0];
178
+ const closeChar = openChar === "{" ? "}" : "]";
179
+ for (let i = 0; i < json.length; i++) {
180
+ if (json[i] === openChar)
181
+ depth++;
182
+ if (json[i] === closeChar)
183
+ depth--;
184
+ if (depth === 0) {
185
+ end = i + 1;
186
+ break;
187
+ }
188
+ }
189
+ if (end > 0) {
190
+ json = json.slice(0, end);
191
+ }
192
+ return json.trim();
193
+ }
194
+ /**
195
+ * Create a repair prompt based on the original prompt and error
196
+ */
197
+ createRepairPrompt(originalPrompt, error) {
198
+ return `The previous generation had an error:
199
+ ERROR: ${error}
200
+
201
+ Please fix the issue and regenerate. Remember:
202
+ 1. Output ONLY valid JSON, no markdown or explanations
203
+ 2. Ensure all required fields are present
204
+ 3. Ensure proper escaping of special characters
205
+
206
+ ORIGINAL REQUEST:
207
+ ${originalPrompt}`;
208
+ }
209
+ /**
210
+ * Ask AI to repair broken code
211
+ */
212
+ async repairCode(brokenCode, error) {
213
+ const systemPrompt = `You are a code repair specialist.
214
+ Fix the error in the provided code and return ONLY the corrected code.
215
+ Do not include explanations or markdown fences.`;
216
+ const userPrompt = `Fix this code that has an error:
217
+
218
+ ERROR:
219
+ ${error}
220
+
221
+ CODE:
222
+ ${brokenCode}
223
+
224
+ Return the fixed code only.`;
225
+ const response = await (0, openrouter_1.createCompletion)(systemPrompt, userPrompt, {
226
+ model: openrouter_1.DEFAULT_MODEL,
227
+ maxTokens: 8192,
228
+ });
229
+ // Clean response
230
+ let code = response.trim();
231
+ if (code.startsWith("```")) {
232
+ const endOfFirstLine = code.indexOf("\n");
233
+ code = code.slice(endOfFirstLine + 1);
234
+ }
235
+ if (code.endsWith("```")) {
236
+ code = code.slice(0, -3);
237
+ }
238
+ return code.trim();
239
+ }
240
+ /**
241
+ * Get the repair log
242
+ */
243
+ getRepairLog() {
244
+ return [...this.repairLog];
245
+ }
246
+ }
247
+ exports.SelfHealingCortex = SelfHealingCortex;
248
+ // Export singleton
249
+ exports.selfHeal = new SelfHealingCortex();
250
+ //# sourceMappingURL=self-healing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"self-healing.js","sourceRoot":"","sources":["../../src/core/self-healing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,126 @@
1
+ /**
2
+ * Helix Core Types v11.0
3
+ * Type definitions for the Helix Development Platform
4
+ */
5
+ /**
6
+ * Represents a single file to be generated
7
+ */
8
+ export interface GeneratedFile {
9
+ /** Relative path from project root (e.g., "lib/models/task.dart") */
10
+ path: string;
11
+ /** File content */
12
+ content: string;
13
+ /** Whether this file can be overwritten if it exists */
14
+ overwrite?: boolean;
15
+ }
16
+ /**
17
+ * A map of all files to be generated for a project
18
+ */
19
+ export interface FileSystemMap {
20
+ /** List of files to generate */
21
+ files: GeneratedFile[];
22
+ /** Project metadata */
23
+ metadata: {
24
+ projectName: string;
25
+ generatedAt: string;
26
+ helixVersion: string;
27
+ target: "flutter" | "web";
28
+ database?: "local" | "supabase";
29
+ ai?: "none" | "openrouter";
30
+ };
31
+ }
32
+ /**
33
+ * Result of a code generation attempt
34
+ */
35
+ export interface GenerationResult<T = string> {
36
+ success: boolean;
37
+ data?: T;
38
+ error?: string;
39
+ attempts: number;
40
+ repairLog?: string[];
41
+ }
42
+ /**
43
+ * Interface that all Helix generator plugins must implement
44
+ */
45
+ export interface GeneratorPlugin {
46
+ /** Unique plugin identifier (e.g., "helix-gen-expo") */
47
+ name: string;
48
+ /** Human-readable description */
49
+ description: string;
50
+ /** Target platform identifier (e.g., "expo", "tauri") */
51
+ target: string;
52
+ /** Plugin version */
53
+ version: string;
54
+ /**
55
+ * Generate a complete project from a prompt
56
+ * @param prompt - Natural language description
57
+ * @param constitution - Optional context/guidelines
58
+ * @param options - Additional generation options
59
+ */
60
+ generate(prompt: string, constitution?: string, options?: Record<string, string>): Promise<FileSystemMap>;
61
+ /**
62
+ * Get the dependencies required for this target
63
+ */
64
+ getDependencies(): string[];
65
+ /**
66
+ * Get scaffold command (e.g., "flutter create", "npx create-expo-app")
67
+ */
68
+ getScaffoldCommand(projectName: string): {
69
+ command: string;
70
+ args: string[];
71
+ };
72
+ }
73
+ /**
74
+ * Registry entry for a discovered plugin
75
+ */
76
+ export interface PluginRegistryEntry {
77
+ name: string;
78
+ target: string;
79
+ version: string;
80
+ modulePath: string;
81
+ isBuiltIn: boolean;
82
+ }
83
+ /**
84
+ * Supported deployment platforms
85
+ */
86
+ export type DeploymentPlatform = "vercel" | "firebase" | "netlify" | "codemagic";
87
+ /**
88
+ * Deployment configuration
89
+ */
90
+ export interface DeploymentConfig {
91
+ platform: DeploymentPlatform;
92
+ projectType: "flutter" | "nextjs";
93
+ buildCommand: string;
94
+ outputDir: string;
95
+ envVars?: Record<string, string>;
96
+ }
97
+ /**
98
+ * Preview server configuration
99
+ */
100
+ export interface PreviewConfig {
101
+ projectType: "flutter" | "nextjs";
102
+ command: string;
103
+ args: string[];
104
+ watchPatterns: string[];
105
+ port?: number;
106
+ }
107
+ /**
108
+ * Request for AI-powered code generation
109
+ */
110
+ export interface AIGenerationRequest {
111
+ systemPrompt: string;
112
+ userPrompt: string;
113
+ expectedFormat: "code" | "json" | "markdown";
114
+ maxTokens?: number;
115
+ temperature?: number;
116
+ }
117
+ /**
118
+ * Parsed response from AI generation
119
+ */
120
+ export interface AIGenerationResponse {
121
+ raw: string;
122
+ parsed?: FileSystemMap;
123
+ isValid: boolean;
124
+ validationErrors?: string[];
125
+ }
126
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}