agentic-qe 2.8.0 → 2.8.2

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 (226) hide show
  1. package/CHANGELOG.md +148 -0
  2. package/README.md +1 -1
  3. package/dist/agents/BaseAgent.d.ts +329 -0
  4. package/dist/agents/BaseAgent.d.ts.map +1 -1
  5. package/dist/agents/BaseAgent.js +657 -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/code-intelligence/embeddings/EmbeddingCacheFactory.d.ts +135 -0
  14. package/dist/code-intelligence/embeddings/EmbeddingCacheFactory.d.ts.map +1 -0
  15. package/dist/code-intelligence/embeddings/EmbeddingCacheFactory.js +301 -0
  16. package/dist/code-intelligence/embeddings/EmbeddingCacheFactory.js.map +1 -0
  17. package/dist/code-intelligence/embeddings/NomicEmbedder.d.ts +78 -6
  18. package/dist/code-intelligence/embeddings/NomicEmbedder.d.ts.map +1 -1
  19. package/dist/code-intelligence/embeddings/NomicEmbedder.js +162 -21
  20. package/dist/code-intelligence/embeddings/NomicEmbedder.js.map +1 -1
  21. package/dist/code-intelligence/embeddings/backends/MemoryBackend.d.ts +59 -0
  22. package/dist/code-intelligence/embeddings/backends/MemoryBackend.d.ts.map +1 -0
  23. package/dist/code-intelligence/embeddings/backends/MemoryBackend.js +173 -0
  24. package/dist/code-intelligence/embeddings/backends/MemoryBackend.js.map +1 -0
  25. package/dist/code-intelligence/embeddings/backends/RedisBackend.d.ts +50 -0
  26. package/dist/code-intelligence/embeddings/backends/RedisBackend.d.ts.map +1 -0
  27. package/dist/code-intelligence/embeddings/backends/RedisBackend.js +279 -0
  28. package/dist/code-intelligence/embeddings/backends/RedisBackend.js.map +1 -0
  29. package/dist/code-intelligence/embeddings/backends/SQLiteBackend.d.ts +64 -0
  30. package/dist/code-intelligence/embeddings/backends/SQLiteBackend.d.ts.map +1 -0
  31. package/dist/code-intelligence/embeddings/backends/SQLiteBackend.js +314 -0
  32. package/dist/code-intelligence/embeddings/backends/SQLiteBackend.js.map +1 -0
  33. package/dist/code-intelligence/embeddings/backends/index.d.ts +16 -0
  34. package/dist/code-intelligence/embeddings/backends/index.d.ts.map +1 -0
  35. package/dist/code-intelligence/embeddings/backends/index.js +28 -0
  36. package/dist/code-intelligence/embeddings/backends/index.js.map +1 -0
  37. package/dist/code-intelligence/embeddings/backends/types.d.ts +177 -0
  38. package/dist/code-intelligence/embeddings/backends/types.d.ts.map +1 -0
  39. package/dist/code-intelligence/embeddings/backends/types.js +30 -0
  40. package/dist/code-intelligence/embeddings/backends/types.js.map +1 -0
  41. package/dist/code-intelligence/embeddings/index.d.ts +7 -0
  42. package/dist/code-intelligence/embeddings/index.d.ts.map +1 -1
  43. package/dist/code-intelligence/embeddings/index.js +16 -1
  44. package/dist/code-intelligence/embeddings/index.js.map +1 -1
  45. package/dist/core/memory/HNSWVectorMemory.js +1 -1
  46. package/dist/infrastructure/index.d.ts +15 -0
  47. package/dist/infrastructure/index.d.ts.map +1 -0
  48. package/dist/infrastructure/index.js +44 -0
  49. package/dist/infrastructure/index.js.map +1 -0
  50. package/dist/infrastructure/network/AgentRateLimiter.d.ts +59 -0
  51. package/dist/infrastructure/network/AgentRateLimiter.d.ts.map +1 -0
  52. package/dist/infrastructure/network/AgentRateLimiter.js +186 -0
  53. package/dist/infrastructure/network/AgentRateLimiter.js.map +1 -0
  54. package/dist/infrastructure/network/AuditLogger.d.ts +102 -0
  55. package/dist/infrastructure/network/AuditLogger.d.ts.map +1 -0
  56. package/dist/infrastructure/network/AuditLogger.js +284 -0
  57. package/dist/infrastructure/network/AuditLogger.js.map +1 -0
  58. package/dist/infrastructure/network/DomainWhitelist.d.ts +111 -0
  59. package/dist/infrastructure/network/DomainWhitelist.d.ts.map +1 -0
  60. package/dist/infrastructure/network/DomainWhitelist.js +216 -0
  61. package/dist/infrastructure/network/DomainWhitelist.js.map +1 -0
  62. package/dist/infrastructure/network/NetworkPolicyManager.d.ts +97 -0
  63. package/dist/infrastructure/network/NetworkPolicyManager.d.ts.map +1 -0
  64. package/dist/infrastructure/network/NetworkPolicyManager.js +309 -0
  65. package/dist/infrastructure/network/NetworkPolicyManager.js.map +1 -0
  66. package/dist/infrastructure/network/index.d.ts +19 -0
  67. package/dist/infrastructure/network/index.d.ts.map +1 -0
  68. package/dist/infrastructure/network/index.js +46 -0
  69. package/dist/infrastructure/network/index.js.map +1 -0
  70. package/dist/infrastructure/network/policies/default-policies.d.ts +78 -0
  71. package/dist/infrastructure/network/policies/default-policies.d.ts.map +1 -0
  72. package/dist/infrastructure/network/policies/default-policies.js +312 -0
  73. package/dist/infrastructure/network/policies/default-policies.js.map +1 -0
  74. package/dist/infrastructure/network/types.d.ts +214 -0
  75. package/dist/infrastructure/network/types.d.ts.map +1 -0
  76. package/dist/infrastructure/network/types.js +25 -0
  77. package/dist/infrastructure/network/types.js.map +1 -0
  78. package/dist/infrastructure/sandbox/ResourceMonitor.d.ts +124 -0
  79. package/dist/infrastructure/sandbox/ResourceMonitor.d.ts.map +1 -0
  80. package/dist/infrastructure/sandbox/ResourceMonitor.js +305 -0
  81. package/dist/infrastructure/sandbox/ResourceMonitor.js.map +1 -0
  82. package/dist/infrastructure/sandbox/SandboxManager.d.ts +122 -0
  83. package/dist/infrastructure/sandbox/SandboxManager.d.ts.map +1 -0
  84. package/dist/infrastructure/sandbox/SandboxManager.js +527 -0
  85. package/dist/infrastructure/sandbox/SandboxManager.js.map +1 -0
  86. package/dist/infrastructure/sandbox/index.d.ts +18 -0
  87. package/dist/infrastructure/sandbox/index.d.ts.map +1 -0
  88. package/dist/infrastructure/sandbox/index.js +38 -0
  89. package/dist/infrastructure/sandbox/index.js.map +1 -0
  90. package/dist/infrastructure/sandbox/profiles/agent-profiles.d.ts +53 -0
  91. package/dist/infrastructure/sandbox/profiles/agent-profiles.d.ts.map +1 -0
  92. package/dist/infrastructure/sandbox/profiles/agent-profiles.js +433 -0
  93. package/dist/infrastructure/sandbox/profiles/agent-profiles.js.map +1 -0
  94. package/dist/infrastructure/sandbox/types.d.ts +227 -0
  95. package/dist/infrastructure/sandbox/types.d.ts.map +1 -0
  96. package/dist/infrastructure/sandbox/types.js +63 -0
  97. package/dist/infrastructure/sandbox/types.js.map +1 -0
  98. package/dist/mcp/handlers/NewDomainToolsHandler.d.ts +8 -8
  99. package/dist/mcp/handlers/NewDomainToolsHandler.d.ts.map +1 -1
  100. package/dist/mcp/handlers/NewDomainToolsHandler.js.map +1 -1
  101. package/dist/mcp/handlers/ruvector/RuVectorHandler.d.ts +54 -0
  102. package/dist/mcp/handlers/ruvector/RuVectorHandler.d.ts.map +1 -0
  103. package/dist/mcp/handlers/ruvector/RuVectorHandler.js +325 -0
  104. package/dist/mcp/handlers/ruvector/RuVectorHandler.js.map +1 -0
  105. package/dist/mcp/handlers/ruvector/index.d.ts +5 -0
  106. package/dist/mcp/handlers/ruvector/index.d.ts.map +1 -0
  107. package/dist/mcp/handlers/ruvector/index.js +9 -0
  108. package/dist/mcp/handlers/ruvector/index.js.map +1 -0
  109. package/dist/mcp/server-instructions.d.ts +1 -1
  110. package/dist/mcp/server-instructions.js +1 -1
  111. package/dist/mcp/server.d.ts.map +1 -1
  112. package/dist/mcp/server.js +100 -22
  113. package/dist/mcp/server.js.map +1 -1
  114. package/dist/nervous-system/adapters/BTSPAdapter.d.ts +342 -0
  115. package/dist/nervous-system/adapters/BTSPAdapter.d.ts.map +1 -0
  116. package/dist/nervous-system/adapters/BTSPAdapter.js +494 -0
  117. package/dist/nervous-system/adapters/BTSPAdapter.js.map +1 -0
  118. package/dist/nervous-system/adapters/CircadianController.d.ts +560 -0
  119. package/dist/nervous-system/adapters/CircadianController.d.ts.map +1 -0
  120. package/dist/nervous-system/adapters/CircadianController.js +882 -0
  121. package/dist/nervous-system/adapters/CircadianController.js.map +1 -0
  122. package/dist/nervous-system/adapters/GlobalWorkspaceAdapter.d.ts +337 -0
  123. package/dist/nervous-system/adapters/GlobalWorkspaceAdapter.d.ts.map +1 -0
  124. package/dist/nervous-system/adapters/GlobalWorkspaceAdapter.js +532 -0
  125. package/dist/nervous-system/adapters/GlobalWorkspaceAdapter.js.map +1 -0
  126. package/dist/nervous-system/adapters/HdcMemoryAdapter.d.ts +444 -0
  127. package/dist/nervous-system/adapters/HdcMemoryAdapter.d.ts.map +1 -0
  128. package/dist/nervous-system/adapters/HdcMemoryAdapter.js +715 -0
  129. package/dist/nervous-system/adapters/HdcMemoryAdapter.js.map +1 -0
  130. package/dist/nervous-system/adapters/ReflexLayer.d.ts +231 -0
  131. package/dist/nervous-system/adapters/ReflexLayer.d.ts.map +1 -0
  132. package/dist/nervous-system/adapters/ReflexLayer.js +309 -0
  133. package/dist/nervous-system/adapters/ReflexLayer.js.map +1 -0
  134. package/dist/nervous-system/index.d.ts +25 -0
  135. package/dist/nervous-system/index.d.ts.map +1 -0
  136. package/dist/nervous-system/index.js +80 -0
  137. package/dist/nervous-system/index.js.map +1 -0
  138. package/dist/nervous-system/integration/BTSPLearningEngine.d.ts +266 -0
  139. package/dist/nervous-system/integration/BTSPLearningEngine.d.ts.map +1 -0
  140. package/dist/nervous-system/integration/BTSPLearningEngine.js +587 -0
  141. package/dist/nervous-system/integration/BTSPLearningEngine.js.map +1 -0
  142. package/dist/nervous-system/integration/CircadianAgent.d.ts +389 -0
  143. package/dist/nervous-system/integration/CircadianAgent.d.ts.map +1 -0
  144. package/dist/nervous-system/integration/CircadianAgent.js +696 -0
  145. package/dist/nervous-system/integration/CircadianAgent.js.map +1 -0
  146. package/dist/nervous-system/integration/HybridPatternStore.d.ts +244 -0
  147. package/dist/nervous-system/integration/HybridPatternStore.d.ts.map +1 -0
  148. package/dist/nervous-system/integration/HybridPatternStore.js +622 -0
  149. package/dist/nervous-system/integration/HybridPatternStore.js.map +1 -0
  150. package/dist/nervous-system/integration/NervousSystemEnhancement.d.ts +459 -0
  151. package/dist/nervous-system/integration/NervousSystemEnhancement.d.ts.map +1 -0
  152. package/dist/nervous-system/integration/NervousSystemEnhancement.js +921 -0
  153. package/dist/nervous-system/integration/NervousSystemEnhancement.js.map +1 -0
  154. package/dist/nervous-system/integration/WorkspaceAgent.d.ts +398 -0
  155. package/dist/nervous-system/integration/WorkspaceAgent.d.ts.map +1 -0
  156. package/dist/nervous-system/integration/WorkspaceAgent.js +722 -0
  157. package/dist/nervous-system/integration/WorkspaceAgent.js.map +1 -0
  158. package/dist/nervous-system/integration/index.d.ts +22 -0
  159. package/dist/nervous-system/integration/index.d.ts.map +1 -0
  160. package/dist/nervous-system/integration/index.js +44 -0
  161. package/dist/nervous-system/integration/index.js.map +1 -0
  162. package/dist/nervous-system/persistence/BTSPSerializer.d.ts +96 -0
  163. package/dist/nervous-system/persistence/BTSPSerializer.d.ts.map +1 -0
  164. package/dist/nervous-system/persistence/BTSPSerializer.js +223 -0
  165. package/dist/nervous-system/persistence/BTSPSerializer.js.map +1 -0
  166. package/dist/nervous-system/persistence/CircadianSerializer.d.ts +90 -0
  167. package/dist/nervous-system/persistence/CircadianSerializer.d.ts.map +1 -0
  168. package/dist/nervous-system/persistence/CircadianSerializer.js +239 -0
  169. package/dist/nervous-system/persistence/CircadianSerializer.js.map +1 -0
  170. package/dist/nervous-system/persistence/HdcSerializer.d.ts +100 -0
  171. package/dist/nervous-system/persistence/HdcSerializer.d.ts.map +1 -0
  172. package/dist/nervous-system/persistence/HdcSerializer.js +259 -0
  173. package/dist/nervous-system/persistence/HdcSerializer.js.map +1 -0
  174. package/dist/nervous-system/persistence/INervousSystemStore.d.ts +208 -0
  175. package/dist/nervous-system/persistence/INervousSystemStore.d.ts.map +1 -0
  176. package/dist/nervous-system/persistence/INervousSystemStore.js +11 -0
  177. package/dist/nervous-system/persistence/INervousSystemStore.js.map +1 -0
  178. package/dist/nervous-system/persistence/NervousSystemPersistenceManager.d.ts +187 -0
  179. package/dist/nervous-system/persistence/NervousSystemPersistenceManager.d.ts.map +1 -0
  180. package/dist/nervous-system/persistence/NervousSystemPersistenceManager.js +411 -0
  181. package/dist/nervous-system/persistence/NervousSystemPersistenceManager.js.map +1 -0
  182. package/dist/nervous-system/persistence/SQLiteNervousSystemStore.d.ts +98 -0
  183. package/dist/nervous-system/persistence/SQLiteNervousSystemStore.d.ts.map +1 -0
  184. package/dist/nervous-system/persistence/SQLiteNervousSystemStore.js +510 -0
  185. package/dist/nervous-system/persistence/SQLiteNervousSystemStore.js.map +1 -0
  186. package/dist/nervous-system/persistence/index.d.ts +22 -0
  187. package/dist/nervous-system/persistence/index.d.ts.map +1 -0
  188. package/dist/nervous-system/persistence/index.js +45 -0
  189. package/dist/nervous-system/persistence/index.js.map +1 -0
  190. package/dist/nervous-system/wasm-loader.d.ts +52 -0
  191. package/dist/nervous-system/wasm-loader.d.ts.map +1 -0
  192. package/dist/nervous-system/wasm-loader.js +188 -0
  193. package/dist/nervous-system/wasm-loader.js.map +1 -0
  194. package/dist/persistence/HybridPersistenceProvider.d.ts +184 -0
  195. package/dist/persistence/HybridPersistenceProvider.d.ts.map +1 -0
  196. package/dist/persistence/HybridPersistenceProvider.js +1086 -0
  197. package/dist/persistence/HybridPersistenceProvider.js.map +1 -0
  198. package/dist/persistence/IPersistenceProvider.d.ts +657 -0
  199. package/dist/persistence/IPersistenceProvider.d.ts.map +1 -0
  200. package/dist/persistence/IPersistenceProvider.js +11 -0
  201. package/dist/persistence/IPersistenceProvider.js.map +1 -0
  202. package/dist/persistence/SupabaseConfig.d.ts +176 -0
  203. package/dist/persistence/SupabaseConfig.d.ts.map +1 -0
  204. package/dist/persistence/SupabaseConfig.js +277 -0
  205. package/dist/persistence/SupabaseConfig.js.map +1 -0
  206. package/dist/persistence/SupabasePersistenceProvider.d.ts +143 -0
  207. package/dist/persistence/SupabasePersistenceProvider.d.ts.map +1 -0
  208. package/dist/persistence/SupabasePersistenceProvider.js +959 -0
  209. package/dist/persistence/SupabasePersistenceProvider.js.map +1 -0
  210. package/dist/persistence/adapters/CodeIntelligenceSyncAdapter.d.ts +213 -0
  211. package/dist/persistence/adapters/CodeIntelligenceSyncAdapter.d.ts.map +1 -0
  212. package/dist/persistence/adapters/CodeIntelligenceSyncAdapter.js +468 -0
  213. package/dist/persistence/adapters/CodeIntelligenceSyncAdapter.js.map +1 -0
  214. package/dist/persistence/adapters/MemorySyncAdapter.d.ts +115 -0
  215. package/dist/persistence/adapters/MemorySyncAdapter.d.ts.map +1 -0
  216. package/dist/persistence/adapters/MemorySyncAdapter.js +291 -0
  217. package/dist/persistence/adapters/MemorySyncAdapter.js.map +1 -0
  218. package/dist/persistence/adapters/index.d.ts +11 -0
  219. package/dist/persistence/adapters/index.d.ts.map +1 -0
  220. package/dist/persistence/adapters/index.js +20 -0
  221. package/dist/persistence/adapters/index.js.map +1 -0
  222. package/dist/persistence/index.d.ts +14 -0
  223. package/dist/persistence/index.d.ts.map +1 -1
  224. package/dist/persistence/index.js +36 -1
  225. package/dist/persistence/index.js.map +1 -1
  226. package/package.json +7 -1
@@ -0,0 +1,176 @@
1
+ /**
2
+ * Supabase Configuration
3
+ *
4
+ * Configuration types and utilities for Supabase cloud persistence.
5
+ * Supports environment variable loading and secure key management.
6
+ *
7
+ * @module persistence/SupabaseConfig
8
+ */
9
+ import type { SharingConfig } from './IPersistenceProvider.js';
10
+ /**
11
+ * Environment variable names for Supabase configuration
12
+ */
13
+ export declare const SUPABASE_ENV_VARS: {
14
+ /** Supabase project URL */
15
+ readonly URL: "SUPABASE_URL";
16
+ /** Supabase anonymous key (public) */
17
+ readonly ANON_KEY: "SUPABASE_ANON_KEY";
18
+ /** Supabase service role key (admin, optional) */
19
+ readonly SERVICE_ROLE_KEY: "SUPABASE_SERVICE_ROLE_KEY";
20
+ /** AQE project ID */
21
+ readonly PROJECT_ID: "AQE_PROJECT_ID";
22
+ /** Persistence provider type */
23
+ readonly PROVIDER: "AQE_PERSISTENCE_PROVIDER";
24
+ /** Default privacy level */
25
+ readonly DEFAULT_PRIVACY: "AQE_DEFAULT_PRIVACY";
26
+ /** Auto-share enabled */
27
+ readonly AUTO_SHARE: "AQE_AUTO_SHARE";
28
+ /** Auto-import enabled */
29
+ readonly AUTO_IMPORT: "AQE_AUTO_IMPORT";
30
+ /** Sync interval (ms) */
31
+ readonly SYNC_INTERVAL: "AQE_SYNC_INTERVAL";
32
+ };
33
+ /**
34
+ * Supabase connection configuration
35
+ */
36
+ export interface SupabaseConnectionConfig {
37
+ /** Supabase project URL (e.g., https://xxx.supabase.co) */
38
+ url: string;
39
+ /** Supabase anonymous key (safe to expose in client) */
40
+ anonKey: string;
41
+ /** Supabase service role key (admin operations only) */
42
+ serviceRoleKey?: string;
43
+ }
44
+ /**
45
+ * Project configuration for multi-tenant support
46
+ */
47
+ export interface ProjectConfig {
48
+ /** Project ID (auto-generated if not specified) */
49
+ projectId?: string;
50
+ /** Project name for display */
51
+ projectName?: string;
52
+ /** Owner user ID (from Supabase Auth) */
53
+ ownerId?: string;
54
+ /** Team member IDs with access */
55
+ teamIds?: string[];
56
+ }
57
+ /**
58
+ * Sync configuration for hybrid mode
59
+ */
60
+ export interface SyncConfig {
61
+ /** Sync interval in milliseconds (default: 60000 = 1 minute) */
62
+ syncInterval: number;
63
+ /** Conflict resolution strategy */
64
+ conflictResolution: 'local' | 'remote' | 'newest';
65
+ /** Maximum batch size for sync operations */
66
+ batchSize: number;
67
+ /** Retry attempts for failed syncs */
68
+ retryAttempts: number;
69
+ /** Retry delay in milliseconds */
70
+ retryDelay: number;
71
+ /** Enable background sync */
72
+ backgroundSync: boolean;
73
+ }
74
+ /**
75
+ * Full Supabase configuration
76
+ */
77
+ export interface SupabaseConfig {
78
+ /** Connection configuration */
79
+ connection: SupabaseConnectionConfig;
80
+ /** Project configuration */
81
+ project: ProjectConfig;
82
+ /** Sharing configuration */
83
+ sharing: SharingConfig;
84
+ /** Sync configuration (for hybrid mode) */
85
+ sync: SyncConfig;
86
+ /** Enable RuVector extension features */
87
+ enableRuVector: boolean;
88
+ /** Enable Row-Level Security enforcement */
89
+ enableRLS: boolean;
90
+ }
91
+ /**
92
+ * Default sharing configuration (private by default)
93
+ */
94
+ export declare const DEFAULT_SHARING_CONFIG: SharingConfig;
95
+ /**
96
+ * Default sync configuration
97
+ */
98
+ export declare const DEFAULT_SYNC_CONFIG: SyncConfig;
99
+ /**
100
+ * Default Supabase configuration
101
+ */
102
+ export declare const DEFAULT_SUPABASE_CONFIG: Partial<SupabaseConfig>;
103
+ /**
104
+ * Load Supabase configuration from environment variables
105
+ *
106
+ * @returns Partial configuration from environment
107
+ * @throws Error if required variables are missing
108
+ */
109
+ export declare function loadSupabaseConfigFromEnv(): Partial<SupabaseConfig>;
110
+ /**
111
+ * Check if Supabase is configured via environment variables
112
+ *
113
+ * @returns True if Supabase URL and key are set
114
+ */
115
+ export declare function isSupabaseConfigured(): boolean;
116
+ /**
117
+ * Get the configured persistence provider type from environment
118
+ *
119
+ * @returns Provider type or 'sqlite' as default
120
+ */
121
+ export declare function getConfiguredProvider(): 'sqlite' | 'supabase' | 'hybrid';
122
+ /**
123
+ * Validation result for configuration
124
+ */
125
+ export interface ConfigValidationResult {
126
+ valid: boolean;
127
+ errors: string[];
128
+ warnings: string[];
129
+ }
130
+ /**
131
+ * Validate Supabase configuration
132
+ *
133
+ * @param config Configuration to validate
134
+ * @returns Validation result
135
+ */
136
+ export declare function validateSupabaseConfig(config: Partial<SupabaseConfig>): ConfigValidationResult;
137
+ /**
138
+ * Build a complete Supabase configuration
139
+ *
140
+ * @param overrides Configuration overrides
141
+ * @returns Complete configuration with defaults applied
142
+ * @throws Error if required configuration is missing
143
+ */
144
+ export declare function buildSupabaseConfig(overrides?: Partial<SupabaseConfig>): SupabaseConfig;
145
+ /**
146
+ * Supabase table names for AQE data
147
+ */
148
+ export declare const SUPABASE_TABLES: {
149
+ /** Projects/tenants table */
150
+ readonly PROJECTS: "qe_projects";
151
+ /** Learning experiences */
152
+ readonly EXPERIENCES: "qe_learning_experiences";
153
+ /** Test patterns */
154
+ readonly PATTERNS: "qe_patterns";
155
+ /** Nervous system state */
156
+ readonly NERVOUS_SYSTEM: "qe_nervous_system_state";
157
+ /** Aggregated metrics */
158
+ readonly METRICS: "qe_aggregate_metrics";
159
+ /** Sync queue for hybrid mode */
160
+ readonly SYNC_QUEUE: "qe_sync_queue";
161
+ /** Memory entries (SwarmMemory sync) */
162
+ readonly MEMORY_ENTRIES: "qe_memory_entries";
163
+ /** Telemetry events */
164
+ readonly EVENTS: "qe_events";
165
+ /** Code chunks (code intelligence sync) */
166
+ readonly CODE_CHUNKS: "qe_code_chunks";
167
+ };
168
+ /**
169
+ * Get table name with optional schema prefix
170
+ *
171
+ * @param table Table constant
172
+ * @param schema Optional schema name
173
+ * @returns Full table name
174
+ */
175
+ export declare function getTableName(table: (typeof SUPABASE_TABLES)[keyof typeof SUPABASE_TABLES], schema?: string): string;
176
+ //# sourceMappingURL=SupabaseConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SupabaseConfig.d.ts","sourceRoot":"","sources":["../../src/persistence/SupabaseConfig.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,277 @@
1
+ "use strict";
2
+ /**
3
+ * Supabase Configuration
4
+ *
5
+ * Configuration types and utilities for Supabase cloud persistence.
6
+ * Supports environment variable loading and secure key management.
7
+ *
8
+ * @module persistence/SupabaseConfig
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.SUPABASE_TABLES = exports.DEFAULT_SUPABASE_CONFIG = exports.DEFAULT_SYNC_CONFIG = exports.DEFAULT_SHARING_CONFIG = exports.SUPABASE_ENV_VARS = void 0;
12
+ exports.loadSupabaseConfigFromEnv = loadSupabaseConfigFromEnv;
13
+ exports.isSupabaseConfigured = isSupabaseConfigured;
14
+ exports.getConfiguredProvider = getConfiguredProvider;
15
+ exports.validateSupabaseConfig = validateSupabaseConfig;
16
+ exports.buildSupabaseConfig = buildSupabaseConfig;
17
+ exports.getTableName = getTableName;
18
+ // ============================================
19
+ // Environment Variable Names
20
+ // ============================================
21
+ /**
22
+ * Environment variable names for Supabase configuration
23
+ */
24
+ exports.SUPABASE_ENV_VARS = {
25
+ /** Supabase project URL */
26
+ URL: 'SUPABASE_URL',
27
+ /** Supabase anonymous key (public) */
28
+ ANON_KEY: 'SUPABASE_ANON_KEY',
29
+ /** Supabase service role key (admin, optional) */
30
+ SERVICE_ROLE_KEY: 'SUPABASE_SERVICE_ROLE_KEY',
31
+ /** AQE project ID */
32
+ PROJECT_ID: 'AQE_PROJECT_ID',
33
+ /** Persistence provider type */
34
+ PROVIDER: 'AQE_PERSISTENCE_PROVIDER',
35
+ /** Default privacy level */
36
+ DEFAULT_PRIVACY: 'AQE_DEFAULT_PRIVACY',
37
+ /** Auto-share enabled */
38
+ AUTO_SHARE: 'AQE_AUTO_SHARE',
39
+ /** Auto-import enabled */
40
+ AUTO_IMPORT: 'AQE_AUTO_IMPORT',
41
+ /** Sync interval (ms) */
42
+ SYNC_INTERVAL: 'AQE_SYNC_INTERVAL',
43
+ };
44
+ // ============================================
45
+ // Default Configuration
46
+ // ============================================
47
+ /**
48
+ * Default sharing configuration (private by default)
49
+ */
50
+ exports.DEFAULT_SHARING_CONFIG = {
51
+ defaultPrivacyLevel: 'private',
52
+ autoShare: false,
53
+ autoImport: false,
54
+ };
55
+ /**
56
+ * Default sync configuration
57
+ */
58
+ exports.DEFAULT_SYNC_CONFIG = {
59
+ syncInterval: 60000, // 1 minute
60
+ conflictResolution: 'newest',
61
+ batchSize: 100,
62
+ retryAttempts: 3,
63
+ retryDelay: 1000,
64
+ backgroundSync: true,
65
+ };
66
+ /**
67
+ * Default Supabase configuration
68
+ */
69
+ exports.DEFAULT_SUPABASE_CONFIG = {
70
+ project: {},
71
+ sharing: exports.DEFAULT_SHARING_CONFIG,
72
+ sync: exports.DEFAULT_SYNC_CONFIG,
73
+ enableRuVector: true,
74
+ enableRLS: true,
75
+ };
76
+ // ============================================
77
+ // Environment Loading
78
+ // ============================================
79
+ /**
80
+ * Load Supabase configuration from environment variables
81
+ *
82
+ * @returns Partial configuration from environment
83
+ * @throws Error if required variables are missing
84
+ */
85
+ function loadSupabaseConfigFromEnv() {
86
+ const url = process.env[exports.SUPABASE_ENV_VARS.URL];
87
+ const anonKey = process.env[exports.SUPABASE_ENV_VARS.ANON_KEY];
88
+ const serviceRoleKey = process.env[exports.SUPABASE_ENV_VARS.SERVICE_ROLE_KEY];
89
+ const projectId = process.env[exports.SUPABASE_ENV_VARS.PROJECT_ID];
90
+ const defaultPrivacy = process.env[exports.SUPABASE_ENV_VARS.DEFAULT_PRIVACY];
91
+ const autoShare = process.env[exports.SUPABASE_ENV_VARS.AUTO_SHARE];
92
+ const autoImport = process.env[exports.SUPABASE_ENV_VARS.AUTO_IMPORT];
93
+ const syncInterval = process.env[exports.SUPABASE_ENV_VARS.SYNC_INTERVAL];
94
+ // Build config from environment
95
+ const config = {};
96
+ if (url && anonKey) {
97
+ config.connection = {
98
+ url,
99
+ anonKey,
100
+ serviceRoleKey,
101
+ };
102
+ }
103
+ if (projectId) {
104
+ config.project = { projectId };
105
+ }
106
+ // Override sharing defaults if specified
107
+ const sharing = {};
108
+ if (defaultPrivacy && ['private', 'team', 'public'].includes(defaultPrivacy)) {
109
+ sharing.defaultPrivacyLevel = defaultPrivacy;
110
+ }
111
+ if (autoShare !== undefined) {
112
+ sharing.autoShare = autoShare === 'true' || autoShare === '1';
113
+ }
114
+ if (autoImport !== undefined) {
115
+ sharing.autoImport = autoImport === 'true' || autoImport === '1';
116
+ }
117
+ if (Object.keys(sharing).length > 0) {
118
+ config.sharing = { ...exports.DEFAULT_SHARING_CONFIG, ...sharing };
119
+ }
120
+ // Override sync defaults if specified
121
+ if (syncInterval) {
122
+ const interval = parseInt(syncInterval, 10);
123
+ if (!isNaN(interval) && interval > 0) {
124
+ config.sync = { ...exports.DEFAULT_SYNC_CONFIG, syncInterval: interval };
125
+ }
126
+ }
127
+ return config;
128
+ }
129
+ /**
130
+ * Check if Supabase is configured via environment variables
131
+ *
132
+ * @returns True if Supabase URL and key are set
133
+ */
134
+ function isSupabaseConfigured() {
135
+ const url = process.env[exports.SUPABASE_ENV_VARS.URL];
136
+ const anonKey = process.env[exports.SUPABASE_ENV_VARS.ANON_KEY];
137
+ return Boolean(url && anonKey);
138
+ }
139
+ /**
140
+ * Get the configured persistence provider type from environment
141
+ *
142
+ * @returns Provider type or 'sqlite' as default
143
+ */
144
+ function getConfiguredProvider() {
145
+ const provider = process.env[exports.SUPABASE_ENV_VARS.PROVIDER];
146
+ if (provider === 'supabase' || provider === 'hybrid') {
147
+ return provider;
148
+ }
149
+ return 'sqlite';
150
+ }
151
+ /**
152
+ * Validate Supabase configuration
153
+ *
154
+ * @param config Configuration to validate
155
+ * @returns Validation result
156
+ */
157
+ function validateSupabaseConfig(config) {
158
+ const errors = [];
159
+ const warnings = [];
160
+ // Check connection config
161
+ if (!config.connection) {
162
+ errors.push('Missing connection configuration');
163
+ }
164
+ else {
165
+ if (!config.connection.url) {
166
+ errors.push('Missing Supabase URL');
167
+ }
168
+ else if (!config.connection.url.startsWith('https://')) {
169
+ errors.push('Supabase URL must use HTTPS');
170
+ }
171
+ if (!config.connection.anonKey) {
172
+ errors.push('Missing Supabase anonymous key');
173
+ }
174
+ if (!config.connection.serviceRoleKey) {
175
+ warnings.push('No service role key configured - admin operations will be limited');
176
+ }
177
+ }
178
+ // Check project config
179
+ if (!config.project?.projectId) {
180
+ warnings.push('No project ID configured - a new project will be auto-created');
181
+ }
182
+ // Check sharing config
183
+ if (config.sharing?.autoShare && config.sharing?.defaultPrivacyLevel === 'private') {
184
+ warnings.push('autoShare is enabled but defaultPrivacyLevel is private - experiences will not be shared');
185
+ }
186
+ return {
187
+ valid: errors.length === 0,
188
+ errors,
189
+ warnings,
190
+ };
191
+ }
192
+ // ============================================
193
+ // Configuration Builder
194
+ // ============================================
195
+ /**
196
+ * Build a complete Supabase configuration
197
+ *
198
+ * @param overrides Configuration overrides
199
+ * @returns Complete configuration with defaults applied
200
+ * @throws Error if required configuration is missing
201
+ */
202
+ function buildSupabaseConfig(overrides = {}) {
203
+ // Load from environment first
204
+ const envConfig = loadSupabaseConfigFromEnv();
205
+ // Merge with overrides (overrides take precedence)
206
+ const merged = {
207
+ ...exports.DEFAULT_SUPABASE_CONFIG,
208
+ ...envConfig,
209
+ ...overrides,
210
+ // Deep merge for nested objects
211
+ connection: {
212
+ ...envConfig.connection,
213
+ ...overrides.connection,
214
+ },
215
+ project: {
216
+ ...envConfig.project,
217
+ ...overrides.project,
218
+ },
219
+ sharing: {
220
+ ...exports.DEFAULT_SHARING_CONFIG,
221
+ ...envConfig.sharing,
222
+ ...overrides.sharing,
223
+ },
224
+ sync: {
225
+ ...exports.DEFAULT_SYNC_CONFIG,
226
+ ...envConfig.sync,
227
+ ...overrides.sync,
228
+ },
229
+ };
230
+ // Validate
231
+ const validation = validateSupabaseConfig(merged);
232
+ if (!validation.valid) {
233
+ throw new Error(`Invalid Supabase configuration: ${validation.errors.join(', ')}`);
234
+ }
235
+ // Log warnings
236
+ for (const warning of validation.warnings) {
237
+ console.warn(`[SupabaseConfig] Warning: ${warning}`);
238
+ }
239
+ return merged;
240
+ }
241
+ // ============================================
242
+ // Table Names
243
+ // ============================================
244
+ /**
245
+ * Supabase table names for AQE data
246
+ */
247
+ exports.SUPABASE_TABLES = {
248
+ /** Projects/tenants table */
249
+ PROJECTS: 'qe_projects',
250
+ /** Learning experiences */
251
+ EXPERIENCES: 'qe_learning_experiences',
252
+ /** Test patterns */
253
+ PATTERNS: 'qe_patterns',
254
+ /** Nervous system state */
255
+ NERVOUS_SYSTEM: 'qe_nervous_system_state',
256
+ /** Aggregated metrics */
257
+ METRICS: 'qe_aggregate_metrics',
258
+ /** Sync queue for hybrid mode */
259
+ SYNC_QUEUE: 'qe_sync_queue',
260
+ /** Memory entries (SwarmMemory sync) */
261
+ MEMORY_ENTRIES: 'qe_memory_entries',
262
+ /** Telemetry events */
263
+ EVENTS: 'qe_events',
264
+ /** Code chunks (code intelligence sync) */
265
+ CODE_CHUNKS: 'qe_code_chunks',
266
+ };
267
+ /**
268
+ * Get table name with optional schema prefix
269
+ *
270
+ * @param table Table constant
271
+ * @param schema Optional schema name
272
+ * @returns Full table name
273
+ */
274
+ function getTableName(table, schema) {
275
+ return schema ? `${schema}.${table}` : table;
276
+ }
277
+ //# sourceMappingURL=SupabaseConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SupabaseConfig.js","sourceRoot":"","sources":["../../src/persistence/SupabaseConfig.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,143 @@
1
+ /**
2
+ * Supabase Persistence Provider
3
+ *
4
+ * Cloud persistence provider using Supabase PostgreSQL with RuVector extension.
5
+ * Supports multi-tenant data isolation via Row-Level Security and
6
+ * vector similarity search for intelligent experience/pattern matching.
7
+ *
8
+ * @module persistence/SupabasePersistenceProvider
9
+ */
10
+ import type { IPersistenceProvider, ProviderInfo, LearningExperience, ExperienceQuery, SharedExperienceQuery, StoredPattern, PatternQuery, NervousSystemComponent, PrivacyLevel, MemoryEntry, MemoryQuery, EventRecord, EventQuery, CodeChunk, CodeChunkQuery, CodeSearchResult, CodeLanguage } from './IPersistenceProvider.js';
11
+ import { type SupabaseConfig } from './SupabaseConfig.js';
12
+ /**
13
+ * Supabase cloud persistence provider
14
+ *
15
+ * Implements IPersistenceProvider using Supabase PostgreSQL backend.
16
+ * Features:
17
+ * - Multi-tenant data isolation via RLS
18
+ * - Vector similarity search via RuVector
19
+ * - Automatic embedding generation (optional)
20
+ * - Sharing between users/teams
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * const provider = new SupabasePersistenceProvider({
25
+ * connection: {
26
+ * url: 'https://xxx.supabase.co',
27
+ * anonKey: 'xxx',
28
+ * },
29
+ * project: { projectId: 'my-project' },
30
+ * });
31
+ *
32
+ * await provider.initialize();
33
+ *
34
+ * // Store an experience
35
+ * await provider.storeExperience({
36
+ * id: 'exp-1',
37
+ * agentId: 'test-gen',
38
+ * agentType: 'test-generator',
39
+ * taskType: 'unit-test-generation',
40
+ * context: { sourceFile: 'UserService.ts' },
41
+ * outcome: { result: 'success', confidence: 0.95 },
42
+ * privacyLevel: 'team',
43
+ * isAnonymized: false,
44
+ * shareCount: 0,
45
+ * createdAt: new Date(),
46
+ * });
47
+ *
48
+ * // Search for similar experiences
49
+ * const similar = await provider.searchSimilarExperiences(embedding, 10);
50
+ * ```
51
+ */
52
+ export declare class SupabasePersistenceProvider implements IPersistenceProvider {
53
+ private client;
54
+ private config;
55
+ private projectId;
56
+ private initialized;
57
+ /**
58
+ * Create a new Supabase persistence provider
59
+ *
60
+ * @param configOverrides Configuration overrides
61
+ */
62
+ constructor(configOverrides?: Partial<SupabaseConfig>);
63
+ initialize(): Promise<void>;
64
+ shutdown(): Promise<void>;
65
+ storeExperience(experience: LearningExperience): Promise<void>;
66
+ queryExperiences(query: ExperienceQuery): Promise<LearningExperience[]>;
67
+ searchSimilarExperiences(embedding: number[], limit: number): Promise<LearningExperience[]>;
68
+ storePattern(pattern: StoredPattern): Promise<void>;
69
+ queryPatterns(query: PatternQuery): Promise<StoredPattern[]>;
70
+ searchSimilarPatterns(embedding: number[], limit: number): Promise<StoredPattern[]>;
71
+ saveNervousSystemState(agentId: string, component: NervousSystemComponent, state: Uint8Array | Record<string, unknown>): Promise<void>;
72
+ loadNervousSystemState(agentId: string, component: NervousSystemComponent): Promise<Uint8Array | Record<string, unknown> | null>;
73
+ deleteNervousSystemState(agentId: string): Promise<void>;
74
+ listAgentsWithState(): Promise<string[]>;
75
+ shareExperience(experienceId: string, privacyLevel: PrivacyLevel): Promise<void>;
76
+ importSharedExperiences(query: SharedExperienceQuery): Promise<LearningExperience[]>;
77
+ sharePattern(patternId: string, privacyLevel: PrivacyLevel): Promise<void>;
78
+ importSharedPatterns(query: PatternQuery & {
79
+ includePublic?: boolean;
80
+ }): Promise<StoredPattern[]>;
81
+ storeMemoryEntry(entry: MemoryEntry): Promise<void>;
82
+ storeMemoryEntries(entries: MemoryEntry[]): Promise<void>;
83
+ getMemoryEntry(key: string, partition?: string): Promise<MemoryEntry | null>;
84
+ queryMemoryEntries(query: MemoryQuery): Promise<MemoryEntry[]>;
85
+ deleteMemoryEntries(keyPattern: string, partition?: string): Promise<number>;
86
+ storeEvent(event: EventRecord): Promise<void>;
87
+ storeEvents(events: EventRecord[]): Promise<void>;
88
+ queryEvents(query: EventQuery): Promise<EventRecord[]>;
89
+ deleteOldEvents(olderThan: Date): Promise<number>;
90
+ storeCodeChunk(chunk: CodeChunk): Promise<void>;
91
+ storeCodeChunks(chunks: CodeChunk[]): Promise<void>;
92
+ queryCodeChunks(query: CodeChunkQuery): Promise<CodeChunk[]>;
93
+ searchSimilarCode(embedding: number[], options?: {
94
+ limit?: number;
95
+ minScore?: number;
96
+ projectId?: string;
97
+ language?: CodeLanguage;
98
+ }): Promise<CodeSearchResult[]>;
99
+ deleteCodeChunksForFile(projectId: string, filePath: string): Promise<number>;
100
+ deleteCodeChunksForProject(projectId: string): Promise<number>;
101
+ getProviderInfo(): ProviderInfo;
102
+ private ensureInitialized;
103
+ /**
104
+ * Get or create the project for this provider
105
+ */
106
+ private ensureProject;
107
+ /**
108
+ * Convert database row to LearningExperience
109
+ */
110
+ private rowToExperience;
111
+ /**
112
+ * Convert database row to StoredPattern
113
+ */
114
+ private rowToPattern;
115
+ /**
116
+ * Convert database row to MemoryEntry
117
+ */
118
+ private rowToMemoryEntry;
119
+ /**
120
+ * Convert database row to EventRecord
121
+ */
122
+ private rowToEvent;
123
+ /**
124
+ * Convert database row to CodeChunk
125
+ */
126
+ private rowToCodeChunk;
127
+ /**
128
+ * Convert Uint8Array to base64 string for storage
129
+ */
130
+ private uint8ArrayToBase64;
131
+ /**
132
+ * Convert base64 string back to Uint8Array
133
+ */
134
+ private base64ToUint8Array;
135
+ }
136
+ /**
137
+ * Factory function to create a Supabase persistence provider
138
+ *
139
+ * @param config Configuration overrides
140
+ * @returns Configured provider instance
141
+ */
142
+ export declare function createSupabasePersistenceProvider(config?: Partial<SupabaseConfig>): SupabasePersistenceProvider;
143
+ //# sourceMappingURL=SupabasePersistenceProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SupabasePersistenceProvider.d.ts","sourceRoot":"","sources":["../../src/persistence/SupabasePersistenceProvider.ts"],"names":[],"mappings":"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"}