family-ai-agent 1.0.7 → 1.0.9

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.
package/dist/cli/index.js CHANGED
@@ -260,7 +260,7 @@ async function runQuery(query) {
260
260
  program
261
261
  .name('family-ai-agent')
262
262
  .description('Family AI Agent - Your AI Family for All Tasks')
263
- .version('1.0.6');
263
+ .version('1.0.9');
264
264
  // Add config command group
265
265
  program.addCommand(createConfigCommand());
266
266
  program
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/database/adapters/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAUpF;;GAEG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAoGrF;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAWhH;AAED;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,eAAe,CAAC,CAU3D;AAmBD;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAOlD;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAGnC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,YAAY,GAAG,QAAQ,GAAG,IAAI,CAE/D;AAGD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;;;;;;;;;;AAEhD,wBAQE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/database/adapters/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAUpF;;GAEG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CA2FrF;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAWhH;AAED;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,eAAe,CAAC,CAU3D;AA8CD;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAOlD;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAGnC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,YAAY,GAAG,QAAQ,GAAG,IAAI,CAE/D;AAGD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;;;;;;;;;;AAEhD,wBAQE"}
@@ -52,15 +52,7 @@ export async function detectDatabase(config) {
52
52
  reason: 'Explicit SQLite configuration',
53
53
  };
54
54
  }
55
- // 2. Check for DATABASE_URL (usually means PostgreSQL is intended)
56
- if (config.postgresUrl) {
57
- return {
58
- type: 'postgresql',
59
- connectionString: config.postgresUrl,
60
- reason: 'DATABASE_URL environment variable set',
61
- };
62
- }
63
- // 3. Try PostgreSQL connection
55
+ // 2. Try PostgreSQL connection (either from DATABASE_URL or built from config)
64
56
  try {
65
57
  const connectionString = buildPostgresUrl({
66
58
  DATABASE_URL: config.postgresUrl,
@@ -145,14 +137,38 @@ export async function getAdapter() {
145
137
  */
146
138
  async function initializeAdapter() {
147
139
  const config = getDatabaseConfig();
148
- const detection = await detectDatabase(config);
140
+ let detection = await detectDatabase(config);
149
141
  logger.info('Database detected', {
150
142
  type: detection.type,
151
143
  reason: detection.reason,
152
144
  path: detection.sqlitePath,
153
145
  });
154
- adapterInstance = await createAdapter(detection, config);
155
- return adapterInstance;
146
+ try {
147
+ adapterInstance = await createAdapter(detection, config);
148
+ return adapterInstance;
149
+ }
150
+ catch (error) {
151
+ // If PostgreSQL initialization failed and we're not in explicit mode, fallback to SQLite
152
+ if (detection.type === 'postgresql' && config.type === 'auto') {
153
+ const message = error instanceof Error ? error.message : 'Unknown error';
154
+ logger.warn('PostgreSQL initialization failed, falling back to SQLite', { error: message });
155
+ // Retry with SQLite
156
+ detection = {
157
+ type: 'sqlite',
158
+ sqlitePath: config.sqlitePath ?? getDefaultSqlitePath(),
159
+ reason: 'PostgreSQL initialization failed, auto-fallback to SQLite',
160
+ };
161
+ logger.info('Retrying with SQLite', {
162
+ type: detection.type,
163
+ reason: detection.reason,
164
+ path: detection.sqlitePath,
165
+ });
166
+ adapterInstance = await createAdapter(detection, config);
167
+ return adapterInstance;
168
+ }
169
+ // Otherwise, re-throw the error
170
+ throw error;
171
+ }
156
172
  }
157
173
  /**
158
174
  * Close the database adapter
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/database/adapters/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/database/adapters/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "family-ai-agent",
3
- "version": "1.0.7",
3
+ "version": "1.0.9",
4
4
  "description": "Multi-agent AI system with memory and autonomous capabilities",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
package/src/cli/index.ts CHANGED
@@ -320,7 +320,7 @@ async function runQuery(query: string): Promise<void> {
320
320
  program
321
321
  .name('family-ai-agent')
322
322
  .description('Family AI Agent - Your AI Family for All Tasks')
323
- .version('1.0.6');
323
+ .version('1.0.9');
324
324
 
325
325
  // Add config command group
326
326
  program.addCommand(createConfigCommand());
@@ -60,16 +60,7 @@ export async function detectDatabase(config: DatabaseConfig): Promise<DetectionR
60
60
  };
61
61
  }
62
62
 
63
- // 2. Check for DATABASE_URL (usually means PostgreSQL is intended)
64
- if (config.postgresUrl) {
65
- return {
66
- type: 'postgresql',
67
- connectionString: config.postgresUrl,
68
- reason: 'DATABASE_URL environment variable set',
69
- };
70
- }
71
-
72
- // 3. Try PostgreSQL connection
63
+ // 2. Try PostgreSQL connection (either from DATABASE_URL or built from config)
73
64
  try {
74
65
  const connectionString = buildPostgresUrl({
75
66
  DATABASE_URL: config.postgresUrl,
@@ -162,7 +153,7 @@ export async function getAdapter(): Promise<DatabaseAdapter> {
162
153
  */
163
154
  async function initializeAdapter(): Promise<DatabaseAdapter> {
164
155
  const config = getDatabaseConfig();
165
- const detection = await detectDatabase(config);
156
+ let detection = await detectDatabase(config);
166
157
 
167
158
  logger.info('Database detected', {
168
159
  type: detection.type,
@@ -170,8 +161,35 @@ async function initializeAdapter(): Promise<DatabaseAdapter> {
170
161
  path: detection.sqlitePath,
171
162
  });
172
163
 
173
- adapterInstance = await createAdapter(detection, config);
174
- return adapterInstance;
164
+ try {
165
+ adapterInstance = await createAdapter(detection, config);
166
+ return adapterInstance;
167
+ } catch (error) {
168
+ // If PostgreSQL initialization failed and we're not in explicit mode, fallback to SQLite
169
+ if (detection.type === 'postgresql' && config.type === 'auto') {
170
+ const message = error instanceof Error ? error.message : 'Unknown error';
171
+ logger.warn('PostgreSQL initialization failed, falling back to SQLite', { error: message });
172
+
173
+ // Retry with SQLite
174
+ detection = {
175
+ type: 'sqlite',
176
+ sqlitePath: config.sqlitePath ?? getDefaultSqlitePath(),
177
+ reason: 'PostgreSQL initialization failed, auto-fallback to SQLite',
178
+ };
179
+
180
+ logger.info('Retrying with SQLite', {
181
+ type: detection.type,
182
+ reason: detection.reason,
183
+ path: detection.sqlitePath,
184
+ });
185
+
186
+ adapterInstance = await createAdapter(detection, config);
187
+ return adapterInstance;
188
+ }
189
+
190
+ // Otherwise, re-throw the error
191
+ throw error;
192
+ }
175
193
  }
176
194
 
177
195
  /**