agentic-qe 2.8.0 → 2.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 (142) hide show
  1. package/CHANGELOG.md +105 -0
  2. package/README.md +1 -1
  3. package/dist/agents/BaseAgent.d.ts +128 -0
  4. package/dist/agents/BaseAgent.d.ts.map +1 -1
  5. package/dist/agents/BaseAgent.js +256 -0
  6. package/dist/agents/BaseAgent.js.map +1 -1
  7. package/dist/cli/commands/supabase/index.d.ts +20 -0
  8. package/dist/cli/commands/supabase/index.d.ts.map +1 -0
  9. package/dist/cli/commands/supabase/index.js +632 -0
  10. package/dist/cli/commands/supabase/index.js.map +1 -0
  11. package/dist/cli/index.js +3 -0
  12. package/dist/cli/index.js.map +1 -1
  13. package/dist/core/memory/HNSWVectorMemory.js +1 -1
  14. package/dist/mcp/handlers/NewDomainToolsHandler.d.ts +8 -8
  15. package/dist/mcp/handlers/NewDomainToolsHandler.d.ts.map +1 -1
  16. package/dist/mcp/handlers/NewDomainToolsHandler.js.map +1 -1
  17. package/dist/mcp/handlers/ruvector/RuVectorHandler.d.ts +54 -0
  18. package/dist/mcp/handlers/ruvector/RuVectorHandler.d.ts.map +1 -0
  19. package/dist/mcp/handlers/ruvector/RuVectorHandler.js +325 -0
  20. package/dist/mcp/handlers/ruvector/RuVectorHandler.js.map +1 -0
  21. package/dist/mcp/handlers/ruvector/index.d.ts +5 -0
  22. package/dist/mcp/handlers/ruvector/index.d.ts.map +1 -0
  23. package/dist/mcp/handlers/ruvector/index.js +9 -0
  24. package/dist/mcp/handlers/ruvector/index.js.map +1 -0
  25. package/dist/mcp/server-instructions.d.ts +1 -1
  26. package/dist/mcp/server-instructions.js +1 -1
  27. package/dist/mcp/server.d.ts.map +1 -1
  28. package/dist/mcp/server.js +100 -22
  29. package/dist/mcp/server.js.map +1 -1
  30. package/dist/nervous-system/adapters/BTSPAdapter.d.ts +342 -0
  31. package/dist/nervous-system/adapters/BTSPAdapter.d.ts.map +1 -0
  32. package/dist/nervous-system/adapters/BTSPAdapter.js +494 -0
  33. package/dist/nervous-system/adapters/BTSPAdapter.js.map +1 -0
  34. package/dist/nervous-system/adapters/CircadianController.d.ts +560 -0
  35. package/dist/nervous-system/adapters/CircadianController.d.ts.map +1 -0
  36. package/dist/nervous-system/adapters/CircadianController.js +882 -0
  37. package/dist/nervous-system/adapters/CircadianController.js.map +1 -0
  38. package/dist/nervous-system/adapters/GlobalWorkspaceAdapter.d.ts +337 -0
  39. package/dist/nervous-system/adapters/GlobalWorkspaceAdapter.d.ts.map +1 -0
  40. package/dist/nervous-system/adapters/GlobalWorkspaceAdapter.js +532 -0
  41. package/dist/nervous-system/adapters/GlobalWorkspaceAdapter.js.map +1 -0
  42. package/dist/nervous-system/adapters/HdcMemoryAdapter.d.ts +444 -0
  43. package/dist/nervous-system/adapters/HdcMemoryAdapter.d.ts.map +1 -0
  44. package/dist/nervous-system/adapters/HdcMemoryAdapter.js +715 -0
  45. package/dist/nervous-system/adapters/HdcMemoryAdapter.js.map +1 -0
  46. package/dist/nervous-system/adapters/ReflexLayer.d.ts +231 -0
  47. package/dist/nervous-system/adapters/ReflexLayer.d.ts.map +1 -0
  48. package/dist/nervous-system/adapters/ReflexLayer.js +309 -0
  49. package/dist/nervous-system/adapters/ReflexLayer.js.map +1 -0
  50. package/dist/nervous-system/index.d.ts +25 -0
  51. package/dist/nervous-system/index.d.ts.map +1 -0
  52. package/dist/nervous-system/index.js +80 -0
  53. package/dist/nervous-system/index.js.map +1 -0
  54. package/dist/nervous-system/integration/BTSPLearningEngine.d.ts +266 -0
  55. package/dist/nervous-system/integration/BTSPLearningEngine.d.ts.map +1 -0
  56. package/dist/nervous-system/integration/BTSPLearningEngine.js +587 -0
  57. package/dist/nervous-system/integration/BTSPLearningEngine.js.map +1 -0
  58. package/dist/nervous-system/integration/CircadianAgent.d.ts +389 -0
  59. package/dist/nervous-system/integration/CircadianAgent.d.ts.map +1 -0
  60. package/dist/nervous-system/integration/CircadianAgent.js +696 -0
  61. package/dist/nervous-system/integration/CircadianAgent.js.map +1 -0
  62. package/dist/nervous-system/integration/HybridPatternStore.d.ts +244 -0
  63. package/dist/nervous-system/integration/HybridPatternStore.d.ts.map +1 -0
  64. package/dist/nervous-system/integration/HybridPatternStore.js +622 -0
  65. package/dist/nervous-system/integration/HybridPatternStore.js.map +1 -0
  66. package/dist/nervous-system/integration/NervousSystemEnhancement.d.ts +459 -0
  67. package/dist/nervous-system/integration/NervousSystemEnhancement.d.ts.map +1 -0
  68. package/dist/nervous-system/integration/NervousSystemEnhancement.js +921 -0
  69. package/dist/nervous-system/integration/NervousSystemEnhancement.js.map +1 -0
  70. package/dist/nervous-system/integration/WorkspaceAgent.d.ts +398 -0
  71. package/dist/nervous-system/integration/WorkspaceAgent.d.ts.map +1 -0
  72. package/dist/nervous-system/integration/WorkspaceAgent.js +722 -0
  73. package/dist/nervous-system/integration/WorkspaceAgent.js.map +1 -0
  74. package/dist/nervous-system/integration/index.d.ts +22 -0
  75. package/dist/nervous-system/integration/index.d.ts.map +1 -0
  76. package/dist/nervous-system/integration/index.js +44 -0
  77. package/dist/nervous-system/integration/index.js.map +1 -0
  78. package/dist/nervous-system/persistence/BTSPSerializer.d.ts +96 -0
  79. package/dist/nervous-system/persistence/BTSPSerializer.d.ts.map +1 -0
  80. package/dist/nervous-system/persistence/BTSPSerializer.js +223 -0
  81. package/dist/nervous-system/persistence/BTSPSerializer.js.map +1 -0
  82. package/dist/nervous-system/persistence/CircadianSerializer.d.ts +90 -0
  83. package/dist/nervous-system/persistence/CircadianSerializer.d.ts.map +1 -0
  84. package/dist/nervous-system/persistence/CircadianSerializer.js +239 -0
  85. package/dist/nervous-system/persistence/CircadianSerializer.js.map +1 -0
  86. package/dist/nervous-system/persistence/HdcSerializer.d.ts +100 -0
  87. package/dist/nervous-system/persistence/HdcSerializer.d.ts.map +1 -0
  88. package/dist/nervous-system/persistence/HdcSerializer.js +259 -0
  89. package/dist/nervous-system/persistence/HdcSerializer.js.map +1 -0
  90. package/dist/nervous-system/persistence/INervousSystemStore.d.ts +208 -0
  91. package/dist/nervous-system/persistence/INervousSystemStore.d.ts.map +1 -0
  92. package/dist/nervous-system/persistence/INervousSystemStore.js +11 -0
  93. package/dist/nervous-system/persistence/INervousSystemStore.js.map +1 -0
  94. package/dist/nervous-system/persistence/NervousSystemPersistenceManager.d.ts +187 -0
  95. package/dist/nervous-system/persistence/NervousSystemPersistenceManager.d.ts.map +1 -0
  96. package/dist/nervous-system/persistence/NervousSystemPersistenceManager.js +411 -0
  97. package/dist/nervous-system/persistence/NervousSystemPersistenceManager.js.map +1 -0
  98. package/dist/nervous-system/persistence/SQLiteNervousSystemStore.d.ts +98 -0
  99. package/dist/nervous-system/persistence/SQLiteNervousSystemStore.d.ts.map +1 -0
  100. package/dist/nervous-system/persistence/SQLiteNervousSystemStore.js +510 -0
  101. package/dist/nervous-system/persistence/SQLiteNervousSystemStore.js.map +1 -0
  102. package/dist/nervous-system/persistence/index.d.ts +22 -0
  103. package/dist/nervous-system/persistence/index.d.ts.map +1 -0
  104. package/dist/nervous-system/persistence/index.js +45 -0
  105. package/dist/nervous-system/persistence/index.js.map +1 -0
  106. package/dist/nervous-system/wasm-loader.d.ts +52 -0
  107. package/dist/nervous-system/wasm-loader.d.ts.map +1 -0
  108. package/dist/nervous-system/wasm-loader.js +188 -0
  109. package/dist/nervous-system/wasm-loader.js.map +1 -0
  110. package/dist/persistence/HybridPersistenceProvider.d.ts +184 -0
  111. package/dist/persistence/HybridPersistenceProvider.d.ts.map +1 -0
  112. package/dist/persistence/HybridPersistenceProvider.js +1086 -0
  113. package/dist/persistence/HybridPersistenceProvider.js.map +1 -0
  114. package/dist/persistence/IPersistenceProvider.d.ts +657 -0
  115. package/dist/persistence/IPersistenceProvider.d.ts.map +1 -0
  116. package/dist/persistence/IPersistenceProvider.js +11 -0
  117. package/dist/persistence/IPersistenceProvider.js.map +1 -0
  118. package/dist/persistence/SupabaseConfig.d.ts +176 -0
  119. package/dist/persistence/SupabaseConfig.d.ts.map +1 -0
  120. package/dist/persistence/SupabaseConfig.js +277 -0
  121. package/dist/persistence/SupabaseConfig.js.map +1 -0
  122. package/dist/persistence/SupabasePersistenceProvider.d.ts +143 -0
  123. package/dist/persistence/SupabasePersistenceProvider.d.ts.map +1 -0
  124. package/dist/persistence/SupabasePersistenceProvider.js +955 -0
  125. package/dist/persistence/SupabasePersistenceProvider.js.map +1 -0
  126. package/dist/persistence/adapters/CodeIntelligenceSyncAdapter.d.ts +213 -0
  127. package/dist/persistence/adapters/CodeIntelligenceSyncAdapter.d.ts.map +1 -0
  128. package/dist/persistence/adapters/CodeIntelligenceSyncAdapter.js +468 -0
  129. package/dist/persistence/adapters/CodeIntelligenceSyncAdapter.js.map +1 -0
  130. package/dist/persistence/adapters/MemorySyncAdapter.d.ts +115 -0
  131. package/dist/persistence/adapters/MemorySyncAdapter.d.ts.map +1 -0
  132. package/dist/persistence/adapters/MemorySyncAdapter.js +291 -0
  133. package/dist/persistence/adapters/MemorySyncAdapter.js.map +1 -0
  134. package/dist/persistence/adapters/index.d.ts +11 -0
  135. package/dist/persistence/adapters/index.d.ts.map +1 -0
  136. package/dist/persistence/adapters/index.js +20 -0
  137. package/dist/persistence/adapters/index.js.map +1 -0
  138. package/dist/persistence/index.d.ts +14 -0
  139. package/dist/persistence/index.d.ts.map +1 -1
  140. package/dist/persistence/index.js +36 -1
  141. package/dist/persistence/index.js.map +1 -1
  142. package/package.json +3 -1
@@ -0,0 +1,632 @@
1
+ "use strict";
2
+ /**
3
+ * Supabase CLI Commands
4
+ *
5
+ * Commands for configuring and managing Supabase cloud persistence.
6
+ *
7
+ * Usage:
8
+ * aqe supabase init - Interactive setup wizard
9
+ * aqe supabase status - Check connection and sync status
10
+ * aqe supabase sync - Force sync local data to cloud
11
+ * aqe supabase schema - Display SQL schema for manual setup
12
+ *
13
+ * @module cli/commands/supabase
14
+ */
15
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ var desc = Object.getOwnPropertyDescriptor(m, k);
18
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
19
+ desc = { enumerable: true, get: function() { return m[k]; } };
20
+ }
21
+ Object.defineProperty(o, k2, desc);
22
+ }) : (function(o, m, k, k2) {
23
+ if (k2 === undefined) k2 = k;
24
+ o[k2] = m[k];
25
+ }));
26
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
27
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
28
+ }) : function(o, v) {
29
+ o["default"] = v;
30
+ });
31
+ var __importStar = (this && this.__importStar) || (function () {
32
+ var ownKeys = function(o) {
33
+ ownKeys = Object.getOwnPropertyNames || function (o) {
34
+ var ar = [];
35
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
36
+ return ar;
37
+ };
38
+ return ownKeys(o);
39
+ };
40
+ return function (mod) {
41
+ if (mod && mod.__esModule) return mod;
42
+ var result = {};
43
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
44
+ __setModuleDefault(result, mod);
45
+ return result;
46
+ };
47
+ })();
48
+ var __importDefault = (this && this.__importDefault) || function (mod) {
49
+ return (mod && mod.__esModule) ? mod : { "default": mod };
50
+ };
51
+ Object.defineProperty(exports, "__esModule", { value: true });
52
+ exports.createSupabaseCommand = createSupabaseCommand;
53
+ const commander_1 = require("commander");
54
+ const chalk_1 = __importDefault(require("chalk"));
55
+ const inquirer_1 = __importDefault(require("inquirer"));
56
+ const ora_1 = __importDefault(require("ora"));
57
+ const fs = __importStar(require("fs-extra"));
58
+ const path = __importStar(require("path"));
59
+ const SupabaseConfig_js_1 = require("../../../persistence/SupabaseConfig.js");
60
+ const SupabasePersistenceProvider_js_1 = require("../../../persistence/SupabasePersistenceProvider.js");
61
+ const HybridPersistenceProvider_js_1 = require("../../../persistence/HybridPersistenceProvider.js");
62
+ /**
63
+ * Create the supabase command group
64
+ */
65
+ function createSupabaseCommand() {
66
+ const supabase = new commander_1.Command('supabase')
67
+ .description('Supabase cloud persistence management');
68
+ // aqe supabase init
69
+ supabase
70
+ .command('init')
71
+ .description('Interactive setup for Supabase cloud persistence')
72
+ .option('--url <url>', 'Supabase project URL')
73
+ .option('--anon-key <key>', 'Supabase anonymous key')
74
+ .option('--service-key <key>', 'Supabase service role key (optional)')
75
+ .option('-y, --yes', 'Skip prompts and use provided options')
76
+ .action(async (options) => {
77
+ await runSupabaseInit(options);
78
+ });
79
+ // aqe supabase status
80
+ supabase
81
+ .command('status')
82
+ .description('Check Supabase connection and sync status')
83
+ .action(async () => {
84
+ await runSupabaseStatus();
85
+ });
86
+ // aqe supabase sync
87
+ supabase
88
+ .command('sync')
89
+ .description('Force sync local data to Supabase cloud')
90
+ .option('--direction <dir>', 'Sync direction: push, pull, both', 'push')
91
+ .option('--type <type>', 'Data type to sync: all, memory, code, experiences, patterns', 'all')
92
+ .option('--partition <partition>', 'Partition to sync (for memory)')
93
+ .option('--project <projectId>', 'Project ID (for code intelligence)')
94
+ .option('--dry-run', 'Show what would be synced without syncing')
95
+ .option('--migrate', 'Migrate all existing local data from memory.db to Supabase')
96
+ .action(async (options) => {
97
+ await runSupabaseSync(options);
98
+ });
99
+ // aqe supabase schema
100
+ supabase
101
+ .command('schema')
102
+ .description('Display SQL schema for manual Supabase setup')
103
+ .option('--output <file>', 'Write schema to file instead of stdout')
104
+ .action(async (options) => {
105
+ await runSupabaseSchema(options);
106
+ });
107
+ // aqe supabase test
108
+ supabase
109
+ .command('test')
110
+ .description('Test Supabase connection')
111
+ .action(async () => {
112
+ await runSupabaseTest();
113
+ });
114
+ return supabase;
115
+ }
116
+ /**
117
+ * Interactive Supabase initialization wizard
118
+ */
119
+ async function runSupabaseInit(options) {
120
+ console.log(chalk_1.default.bold.cyan('\n🚀 Supabase Cloud Persistence Setup\n'));
121
+ // Check if already configured
122
+ if ((0, SupabaseConfig_js_1.isSupabaseConfigured)()) {
123
+ console.log(chalk_1.default.yellow('⚠️ Supabase is already configured in your environment.'));
124
+ if (!options.yes) {
125
+ const { reconfigure } = await inquirer_1.default.prompt([
126
+ {
127
+ type: 'confirm',
128
+ name: 'reconfigure',
129
+ message: 'Do you want to reconfigure?',
130
+ default: false,
131
+ },
132
+ ]);
133
+ if (!reconfigure) {
134
+ console.log(chalk_1.default.gray('Keeping existing configuration.'));
135
+ return;
136
+ }
137
+ }
138
+ }
139
+ // Gather configuration
140
+ let url = options.url;
141
+ let anonKey = options.anonKey;
142
+ let serviceKey = options.serviceKey;
143
+ let privacyLevel = 'private';
144
+ let autoShare = false;
145
+ let persistenceMode = 'hybrid';
146
+ if (!options.yes) {
147
+ console.log(chalk_1.default.gray('You can find these values in your Supabase project settings.\n'));
148
+ const answers = await inquirer_1.default.prompt([
149
+ {
150
+ type: 'input',
151
+ name: 'url',
152
+ message: 'Supabase Project URL:',
153
+ default: url || process.env.SUPABASE_URL,
154
+ validate: (input) => {
155
+ if (!input)
156
+ return 'URL is required';
157
+ if (!input.startsWith('https://'))
158
+ return 'URL must start with https://';
159
+ if (!input.includes('supabase.co'))
160
+ return 'URL should be a Supabase project URL';
161
+ return true;
162
+ },
163
+ },
164
+ {
165
+ type: 'password',
166
+ name: 'anonKey',
167
+ message: 'Supabase Anon Key:',
168
+ default: anonKey || process.env.SUPABASE_ANON_KEY,
169
+ validate: (input) => {
170
+ if (!input)
171
+ return 'Anon key is required';
172
+ if (input.length < 30)
173
+ return 'Invalid key format';
174
+ return true;
175
+ },
176
+ },
177
+ {
178
+ type: 'password',
179
+ name: 'serviceKey',
180
+ message: 'Supabase Service Role Key (optional, for admin):',
181
+ default: serviceKey || process.env.SUPABASE_SERVICE_ROLE_KEY,
182
+ },
183
+ {
184
+ type: 'list',
185
+ name: 'persistenceMode',
186
+ message: 'Persistence mode:',
187
+ choices: [
188
+ {
189
+ name: 'Hybrid (recommended) - Local-first with cloud sync',
190
+ value: 'hybrid',
191
+ },
192
+ {
193
+ name: 'Supabase only - Cloud-only persistence',
194
+ value: 'supabase',
195
+ },
196
+ {
197
+ name: 'SQLite only - Local persistence (no cloud)',
198
+ value: 'sqlite',
199
+ },
200
+ ],
201
+ default: 'hybrid',
202
+ },
203
+ {
204
+ type: 'list',
205
+ name: 'privacyLevel',
206
+ message: 'Default privacy level for learnings:',
207
+ choices: [
208
+ {
209
+ name: 'Private - Only visible to you',
210
+ value: 'private',
211
+ },
212
+ {
213
+ name: 'Team - Visible to team members',
214
+ value: 'team',
215
+ },
216
+ {
217
+ name: 'Public - Visible to everyone',
218
+ value: 'public',
219
+ },
220
+ ],
221
+ default: 'private',
222
+ },
223
+ {
224
+ type: 'confirm',
225
+ name: 'autoShare',
226
+ message: 'Automatically share successful patterns?',
227
+ default: false,
228
+ },
229
+ ]);
230
+ url = answers.url;
231
+ anonKey = answers.anonKey;
232
+ serviceKey = answers.serviceKey;
233
+ privacyLevel = answers.privacyLevel;
234
+ autoShare = answers.autoShare;
235
+ persistenceMode = answers.persistenceMode;
236
+ }
237
+ // Validate configuration
238
+ const spinner = (0, ora_1.default)('Validating configuration...').start();
239
+ try {
240
+ const config = (0, SupabaseConfig_js_1.buildSupabaseConfig)({
241
+ connection: {
242
+ url: url,
243
+ anonKey: anonKey,
244
+ serviceRoleKey: serviceKey,
245
+ },
246
+ sharing: {
247
+ defaultPrivacyLevel: privacyLevel,
248
+ autoShare,
249
+ autoImport: false,
250
+ },
251
+ });
252
+ spinner.succeed('Configuration validated');
253
+ // Test connection
254
+ spinner.start('Testing connection...');
255
+ const provider = new SupabasePersistenceProvider_js_1.SupabasePersistenceProvider({
256
+ connection: config.connection,
257
+ });
258
+ await provider.initialize();
259
+ await provider.shutdown();
260
+ spinner.succeed('Connection successful');
261
+ // Write environment file
262
+ spinner.start('Writing configuration...');
263
+ const envContent = generateEnvContent({
264
+ url: url,
265
+ anonKey: anonKey,
266
+ serviceKey,
267
+ persistenceMode,
268
+ privacyLevel,
269
+ autoShare,
270
+ });
271
+ const envPath = path.join(process.cwd(), '.env.supabase');
272
+ await fs.writeFile(envPath, envContent);
273
+ spinner.succeed(`Configuration written to ${chalk_1.default.cyan('.env.supabase')}`);
274
+ // Show next steps
275
+ console.log(chalk_1.default.bold.green('\n✅ Supabase setup complete!\n'));
276
+ console.log(chalk_1.default.yellow('Next steps:'));
277
+ console.log(chalk_1.default.gray('1. Add these variables to your environment or .env file:'));
278
+ console.log(chalk_1.default.cyan(` source .env.supabase`));
279
+ console.log(chalk_1.default.gray('2. Run the schema SQL on your Supabase project:'));
280
+ console.log(chalk_1.default.cyan(` aqe supabase schema --output supabase-schema.sql`));
281
+ console.log(chalk_1.default.gray('3. Verify your setup:'));
282
+ console.log(chalk_1.default.cyan(` aqe supabase status`));
283
+ console.log('');
284
+ }
285
+ catch (error) {
286
+ spinner.fail('Configuration failed');
287
+ console.error(chalk_1.default.red(`Error: ${error instanceof Error ? error.message : error}`));
288
+ process.exit(1);
289
+ }
290
+ }
291
+ /**
292
+ * Check Supabase connection status
293
+ */
294
+ async function runSupabaseStatus() {
295
+ console.log(chalk_1.default.bold.cyan('\n📊 Supabase Status\n'));
296
+ // Check environment
297
+ const isConfigured = (0, SupabaseConfig_js_1.isSupabaseConfigured)();
298
+ const provider = (0, SupabaseConfig_js_1.getConfiguredProvider)();
299
+ console.log(chalk_1.default.bold('Configuration:'));
300
+ console.log(` Provider: ${chalk_1.default.cyan(provider)}`);
301
+ console.log(` Supabase URL: ${process.env.SUPABASE_URL ? chalk_1.default.green('✓ Set') : chalk_1.default.red('✗ Not set')}`);
302
+ console.log(` Anon Key: ${process.env.SUPABASE_ANON_KEY ? chalk_1.default.green('✓ Set') : chalk_1.default.red('✗ Not set')}`);
303
+ console.log(` Service Key: ${process.env.SUPABASE_SERVICE_ROLE_KEY ? chalk_1.default.green('✓ Set') : chalk_1.default.gray('○ Optional')}`);
304
+ console.log('');
305
+ if (!isConfigured) {
306
+ console.log(chalk_1.default.yellow('⚠️ Supabase is not configured. Run `aqe supabase init` to set up.'));
307
+ return;
308
+ }
309
+ // Test connection
310
+ const spinner = (0, ora_1.default)('Testing connection...').start();
311
+ try {
312
+ const config = (0, SupabaseConfig_js_1.buildSupabaseConfig)();
313
+ const testProvider = new SupabasePersistenceProvider_js_1.SupabasePersistenceProvider({
314
+ connection: config.connection,
315
+ });
316
+ await testProvider.initialize();
317
+ const info = testProvider.getProviderInfo();
318
+ await testProvider.shutdown();
319
+ spinner.succeed('Connection successful');
320
+ console.log(chalk_1.default.bold('\nProvider Info:'));
321
+ console.log(` Type: ${chalk_1.default.cyan(info.type)}`);
322
+ console.log(` Location: ${chalk_1.default.gray(info.location || 'N/A')}`);
323
+ console.log(` Features: ${chalk_1.default.gray(info.features.join(', '))}`);
324
+ if (info.stats) {
325
+ console.log(chalk_1.default.bold('\nStatistics:'));
326
+ if (info.stats.agentCount !== undefined) {
327
+ console.log(` Agents: ${info.stats.agentCount}`);
328
+ }
329
+ if (info.stats.lastSyncTime) {
330
+ console.log(` Last Sync: ${info.stats.lastSyncTime.toISOString()}`);
331
+ }
332
+ }
333
+ }
334
+ catch (error) {
335
+ spinner.fail('Connection failed');
336
+ console.error(chalk_1.default.red(`Error: ${error instanceof Error ? error.message : error}`));
337
+ }
338
+ console.log('');
339
+ }
340
+ /**
341
+ * Force sync data to/from cloud
342
+ */
343
+ async function runSupabaseSync(options) {
344
+ // Handle migration mode
345
+ if (options.migrate) {
346
+ await runSupabaseMigrate(options.dryRun);
347
+ return;
348
+ }
349
+ console.log(chalk_1.default.bold.cyan('\n🔄 Syncing with Supabase...\n'));
350
+ if (!(0, SupabaseConfig_js_1.isSupabaseConfigured)()) {
351
+ console.log(chalk_1.default.red('❌ Supabase is not configured. Run `aqe supabase init` first.'));
352
+ process.exit(1);
353
+ }
354
+ console.log(chalk_1.default.gray(`Direction: ${options.direction}`));
355
+ console.log(chalk_1.default.gray(`Type: ${options.type}`));
356
+ if (options.partition)
357
+ console.log(chalk_1.default.gray(`Partition: ${options.partition}`));
358
+ if (options.project)
359
+ console.log(chalk_1.default.gray(`Project: ${options.project}`));
360
+ if (options.dryRun)
361
+ console.log(chalk_1.default.yellow('(Dry run - no changes will be made)\n'));
362
+ console.log('');
363
+ const spinner = (0, ora_1.default)('Initializing sync...').start();
364
+ try {
365
+ // Build configuration
366
+ const config = (0, SupabaseConfig_js_1.buildSupabaseConfig)();
367
+ const dbDir = path.join(process.cwd(), '.agentic-qe');
368
+ // Create hybrid provider for sync
369
+ spinner.text = 'Creating hybrid provider...';
370
+ const provider = (0, HybridPersistenceProvider_js_1.createHybridPersistenceProvider)({
371
+ localDbPath: path.join(dbDir, 'aqe-telemetry.db'),
372
+ supabaseConfig: {
373
+ connection: {
374
+ url: config.connection.url,
375
+ anonKey: config.connection.anonKey,
376
+ serviceRoleKey: config.connection.serviceRoleKey,
377
+ },
378
+ sync: config.sync,
379
+ },
380
+ syncConfig: {
381
+ syncInterval: 0, // Disable automatic sync for manual mode
382
+ batchSize: config.sync.batchSize,
383
+ conflictResolution: config.sync.conflictResolution,
384
+ retryAttempts: config.sync.retryAttempts,
385
+ retryDelay: config.sync.retryDelay,
386
+ backgroundSync: false,
387
+ },
388
+ autoSync: false,
389
+ });
390
+ await provider.initialize();
391
+ spinner.succeed('Provider initialized');
392
+ const results = [];
393
+ // Sync based on direction and type
394
+ if (options.direction === 'push' || options.direction === 'both') {
395
+ spinner.start('Pushing local data to cloud...');
396
+ if (!options.dryRun) {
397
+ // Get sync queue status
398
+ const stats = provider.getSyncStats();
399
+ spinner.text = `Syncing ${stats.pendingOperations} pending operations...`;
400
+ // Force sync
401
+ const syncResult = await provider.forceSyncNow();
402
+ results.push({
403
+ type: 'push',
404
+ synced: syncResult.synced,
405
+ failed: syncResult.failed,
406
+ });
407
+ spinner.succeed(`Push complete: ${syncResult.synced} synced, ${syncResult.failed} failed`);
408
+ }
409
+ else {
410
+ const stats = provider.getSyncStats();
411
+ spinner.info(`Would push ${stats.pendingOperations} pending operations`);
412
+ }
413
+ }
414
+ if (options.direction === 'pull' || options.direction === 'both') {
415
+ spinner.start('Pulling data from cloud...');
416
+ if (!options.dryRun) {
417
+ let pulled = 0;
418
+ // Pull based on type
419
+ if (options.type === 'all' || options.type === 'experiences') {
420
+ spinner.text = 'Pulling experiences...';
421
+ const experiences = await provider.importSharedExperiences?.({
422
+ limit: 1000,
423
+ });
424
+ pulled += experiences?.length ?? 0;
425
+ }
426
+ if (options.type === 'all' || options.type === 'patterns') {
427
+ spinner.text = 'Pulling patterns...';
428
+ const patterns = await provider.queryPatterns?.({
429
+ limit: 1000,
430
+ });
431
+ pulled += patterns?.length ?? 0;
432
+ }
433
+ results.push({ type: 'pull', synced: pulled, failed: 0 });
434
+ spinner.succeed(`Pull complete: ${pulled} items retrieved`);
435
+ }
436
+ else {
437
+ spinner.info('Would pull experiences and patterns from cloud');
438
+ }
439
+ }
440
+ await provider.shutdown();
441
+ // Summary
442
+ console.log(chalk_1.default.bold.green('\n✅ Sync complete!\n'));
443
+ console.log(chalk_1.default.bold('Summary:'));
444
+ for (const result of results) {
445
+ const status = result.failed > 0 ? chalk_1.default.yellow('⚠') : chalk_1.default.green('✓');
446
+ console.log(` ${status} ${result.type}: ${result.synced} synced, ${result.failed} failed`);
447
+ }
448
+ if (options.dryRun) {
449
+ console.log(chalk_1.default.yellow('\n(Dry run - no actual changes were made)'));
450
+ }
451
+ }
452
+ catch (error) {
453
+ spinner.fail('Sync failed');
454
+ console.error(chalk_1.default.red(`\nError: ${error instanceof Error ? error.message : error}`));
455
+ if (error instanceof Error && error.message.includes('database')) {
456
+ console.log(chalk_1.default.yellow('\nHint: Make sure the .agentic-qe directory exists and contains valid databases.'));
457
+ }
458
+ process.exit(1);
459
+ }
460
+ }
461
+ /**
462
+ * Migrate existing local data to Supabase
463
+ */
464
+ async function runSupabaseMigrate(dryRun) {
465
+ console.log(chalk_1.default.bold.cyan('\n📦 Migrating local data to Supabase...\n'));
466
+ if (!(0, SupabaseConfig_js_1.isSupabaseConfigured)()) {
467
+ console.log(chalk_1.default.red('❌ Supabase is not configured. Run `aqe supabase init` first.'));
468
+ process.exit(1);
469
+ }
470
+ const dbDir = path.join(process.cwd(), '.agentic-qe');
471
+ const memoryDbPath = path.join(dbDir, 'memory.db');
472
+ // Check if memory.db exists
473
+ if (!fs.existsSync(memoryDbPath)) {
474
+ console.log(chalk_1.default.yellow('⚠️ No local memory.db found. Nothing to migrate.'));
475
+ return;
476
+ }
477
+ if (dryRun) {
478
+ console.log(chalk_1.default.yellow('(Dry run - showing what would be migrated)\n'));
479
+ // Count local data
480
+ const Database = (await Promise.resolve().then(() => __importStar(require('better-sqlite3')))).default;
481
+ const db = new Database(memoryDbPath, { readonly: true });
482
+ const expCount = db.prepare('SELECT COUNT(*) as count FROM learning_experiences').get()?.count || 0;
483
+ const memCount = db.prepare('SELECT COUNT(*) as count FROM memory_entries').get()?.count || 0;
484
+ const patCount = db.prepare('SELECT COUNT(*) as count FROM patterns').get()?.count || 0;
485
+ db.close();
486
+ console.log(chalk_1.default.bold('Would migrate:'));
487
+ console.log(` 📚 Learning experiences: ${chalk_1.default.cyan(expCount)}`);
488
+ console.log(` 💾 Memory entries: ${chalk_1.default.cyan(memCount)} (first 2000)`);
489
+ console.log(` 🎯 Patterns: ${chalk_1.default.cyan(patCount)} (first 500)`);
490
+ return;
491
+ }
492
+ const spinner = (0, ora_1.default)('Initializing migration...').start();
493
+ try {
494
+ const config = (0, SupabaseConfig_js_1.buildSupabaseConfig)();
495
+ // Create hybrid provider
496
+ const provider = (0, HybridPersistenceProvider_js_1.createHybridPersistenceProvider)({
497
+ localDbPath: path.join(dbDir, 'aqe-telemetry.db'),
498
+ supabaseConfig: {
499
+ connection: {
500
+ url: config.connection.url,
501
+ anonKey: config.connection.anonKey,
502
+ serviceRoleKey: config.connection.serviceRoleKey,
503
+ },
504
+ sync: config.sync,
505
+ },
506
+ syncConfig: {
507
+ syncInterval: 0,
508
+ batchSize: 100,
509
+ conflictResolution: 'remote',
510
+ retryAttempts: 3,
511
+ retryDelay: 1000,
512
+ backgroundSync: false,
513
+ },
514
+ autoSync: false,
515
+ });
516
+ await provider.initialize();
517
+ spinner.succeed('Provider initialized');
518
+ // Run migration
519
+ spinner.start('Migrating data...');
520
+ const results = await provider.migrateLocalToCloud(memoryDbPath, {
521
+ batchSize: 50,
522
+ onProgress: (msg) => {
523
+ spinner.text = msg;
524
+ },
525
+ });
526
+ await provider.shutdown();
527
+ spinner.succeed('Migration complete');
528
+ // Summary
529
+ console.log(chalk_1.default.bold.green('\n✅ Migration complete!\n'));
530
+ console.log(chalk_1.default.bold('Summary:'));
531
+ console.log(` ${chalk_1.default.green('✓')} Learning experiences: ${results.experiences}`);
532
+ console.log(` ${chalk_1.default.green('✓')} Memory entries: ${results.memories}`);
533
+ console.log(` ${chalk_1.default.green('✓')} Patterns: ${results.patterns}`);
534
+ console.log(` ${chalk_1.default.green('✓')} Events: ${results.events}`);
535
+ if (results.failed > 0) {
536
+ console.log(` ${chalk_1.default.yellow('⚠')} Failed: ${results.failed}`);
537
+ }
538
+ }
539
+ catch (error) {
540
+ spinner.fail('Migration failed');
541
+ console.error(chalk_1.default.red(`\nError: ${error instanceof Error ? error.message : error}`));
542
+ process.exit(1);
543
+ }
544
+ }
545
+ /**
546
+ * Display SQL schema for manual setup
547
+ */
548
+ async function runSupabaseSchema(options) {
549
+ const schemaPath = path.join(__dirname, '../../../../scripts/supabase-schema.sql');
550
+ try {
551
+ const schema = await fs.readFile(schemaPath, 'utf8');
552
+ if (options.output) {
553
+ await fs.writeFile(options.output, schema);
554
+ console.log(chalk_1.default.green(`✅ Schema written to ${chalk_1.default.cyan(options.output)}`));
555
+ console.log(chalk_1.default.gray('\nRun this SQL in your Supabase SQL Editor to create the tables.'));
556
+ }
557
+ else {
558
+ console.log(chalk_1.default.bold.cyan('\n📋 Supabase Schema\n'));
559
+ console.log(chalk_1.default.gray('Copy and run this SQL in your Supabase SQL Editor:\n'));
560
+ console.log(schema);
561
+ }
562
+ }
563
+ catch (error) {
564
+ if (error.code === 'ENOENT') {
565
+ console.log(chalk_1.default.red('❌ Schema file not found.'));
566
+ console.log(chalk_1.default.gray('The schema file should be at: scripts/supabase-schema.sql'));
567
+ }
568
+ else {
569
+ console.error(chalk_1.default.red(`Error: ${error instanceof Error ? error.message : error}`));
570
+ }
571
+ process.exit(1);
572
+ }
573
+ }
574
+ /**
575
+ * Test Supabase connection
576
+ */
577
+ async function runSupabaseTest() {
578
+ console.log(chalk_1.default.bold.cyan('\n🧪 Testing Supabase Connection...\n'));
579
+ if (!(0, SupabaseConfig_js_1.isSupabaseConfigured)()) {
580
+ console.log(chalk_1.default.red('❌ Supabase is not configured. Run `aqe supabase init` first.'));
581
+ process.exit(1);
582
+ }
583
+ const spinner = (0, ora_1.default)('Connecting...').start();
584
+ try {
585
+ const config = (0, SupabaseConfig_js_1.buildSupabaseConfig)();
586
+ spinner.text = 'Initializing provider...';
587
+ const provider = new SupabasePersistenceProvider_js_1.SupabasePersistenceProvider({
588
+ connection: config.connection,
589
+ });
590
+ await provider.initialize();
591
+ spinner.succeed('Connected successfully');
592
+ // Try a simple operation
593
+ spinner.start('Testing data operations...');
594
+ const agents = await provider.listAgentsWithState();
595
+ spinner.succeed(`Found ${agents.length} agents with state`);
596
+ await provider.shutdown();
597
+ console.log(chalk_1.default.green('\n✅ All tests passed!'));
598
+ }
599
+ catch (error) {
600
+ spinner.fail('Test failed');
601
+ console.error(chalk_1.default.red(`\nError: ${error instanceof Error ? error.message : error}`));
602
+ if (error instanceof Error && error.message.includes('Invalid API key')) {
603
+ console.log(chalk_1.default.yellow('\nHint: Check that your SUPABASE_ANON_KEY is correct.'));
604
+ }
605
+ else if (error instanceof Error && error.message.includes('fetch failed')) {
606
+ console.log(chalk_1.default.yellow('\nHint: Check that your SUPABASE_URL is correct and reachable.'));
607
+ }
608
+ process.exit(1);
609
+ }
610
+ }
611
+ /**
612
+ * Generate .env file content
613
+ */
614
+ function generateEnvContent(config) {
615
+ const lines = [
616
+ '# Supabase Configuration for Agentic QE',
617
+ '# Generated by: aqe supabase init',
618
+ `# Date: ${new Date().toISOString()}`,
619
+ '',
620
+ '# Supabase Connection',
621
+ `export ${SupabaseConfig_js_1.SUPABASE_ENV_VARS.URL}="${config.url}"`,
622
+ `export ${SupabaseConfig_js_1.SUPABASE_ENV_VARS.ANON_KEY}="${config.anonKey}"`,
623
+ ];
624
+ if (config.serviceKey) {
625
+ lines.push(`export ${SupabaseConfig_js_1.SUPABASE_ENV_VARS.SERVICE_ROLE_KEY}="${config.serviceKey}"`);
626
+ }
627
+ lines.push('', '# Persistence Settings', `export ${SupabaseConfig_js_1.SUPABASE_ENV_VARS.PROVIDER}="${config.persistenceMode}"`, `export ${SupabaseConfig_js_1.SUPABASE_ENV_VARS.DEFAULT_PRIVACY}="${config.privacyLevel}"`, `export ${SupabaseConfig_js_1.SUPABASE_ENV_VARS.AUTO_SHARE}="${config.autoShare}"`, '');
628
+ return lines.join('\n');
629
+ }
630
+ // Export for use in main CLI
631
+ exports.default = createSupabaseCommand;
632
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/commands/supabase/index.ts"],"names":[],"mappings":"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"}