@framers/sql-storage-adapter 0.3.2 → 0.3.3

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.
@@ -1,4 +1,41 @@
1
- import path from 'path';
1
+ // Browser-safe path utilities - avoid importing Node.js 'path' module in browser builds
2
+ const isBrowser = typeof window !== 'undefined' && typeof window.document !== 'undefined';
3
+ const isNode = typeof process !== 'undefined' && !!process.versions?.node;
4
+ // Browser-safe path join (only used in Node.js environments)
5
+ const joinPath = async (parts) => {
6
+ if (isBrowser) {
7
+ // In browser, just join with '/' (not used anyway since filePath is provided)
8
+ return parts.join('/');
9
+ }
10
+ // In Node.js, use path.join dynamically
11
+ if (isNode) {
12
+ try {
13
+ // Dynamic import to avoid bundling 'path' in browser builds
14
+ const path = await import('path');
15
+ return path.join(...parts);
16
+ }
17
+ catch {
18
+ // Fallback if import fails
19
+ return parts.join('/');
20
+ }
21
+ }
22
+ return parts.join('/');
23
+ };
24
+ // Browser-safe process.env access
25
+ const getEnv = (key) => {
26
+ if (typeof process !== 'undefined' && process.env) {
27
+ return process.env[key];
28
+ }
29
+ return undefined;
30
+ };
31
+ // Browser-safe process.cwd()
32
+ const getCwd = () => {
33
+ if (isNode && typeof process !== 'undefined' && process.cwd) {
34
+ return process.cwd();
35
+ }
36
+ // Browser fallback (not used in browser anyway)
37
+ return '/';
38
+ };
2
39
  import { StorageResolutionError } from './contracts';
3
40
  import { createBetterSqliteAdapter } from '../adapters/betterSqliteAdapter';
4
41
  import { createSqlJsAdapter } from '../adapters/sqlJsAdapter';
@@ -17,9 +54,10 @@ const isCapacitorRuntime = () => {
17
54
  * Tries candidates in the supplied priority order and falls back when one fails.
18
55
  */
19
56
  export const resolveStorageAdapter = async (options = {}) => {
20
- const envOverride = process.env.STORAGE_ADAPTER;
21
- const postgresConnection = options.postgres?.connectionString ?? process.env.DATABASE_URL ?? undefined;
22
- const filePath = options.filePath ?? path.join(process.cwd(), 'db_data', 'app.sqlite3');
57
+ const envOverride = getEnv('STORAGE_ADAPTER');
58
+ const postgresConnection = options.postgres?.connectionString ?? getEnv('DATABASE_URL') ?? undefined;
59
+ const defaultFilePath = isBrowser ? 'db_data/app.sqlite3' : await joinPath([getCwd(), 'db_data', 'app.sqlite3']);
60
+ const filePath = options.filePath ?? defaultFilePath;
23
61
  const defaultPriority = (() => {
24
62
  if (options.priority && options.priority.length > 0) {
25
63
  return options.priority;
@@ -70,7 +108,7 @@ export const resolveStorageAdapter = async (options = {}) => {
70
108
  factory: async () => {
71
109
  const adapterOptions = options.openOptions?.adapterOptions;
72
110
  return new IndexedDbAdapter({
73
- dbName: adapterOptions?.dbName || 'agentos-db',
111
+ dbName: adapterOptions?.dbName || 'app-db',
74
112
  autoSave: true,
75
113
  });
76
114
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/core/resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/core/resolver.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@framers/sql-storage-adapter",
3
- "version": "0.3.2",
3
+ "version": "0.3.3",
4
4
  "description": "Robust cross-platform SQL storage abstraction with automatic fallbacks and runtime detection",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,320 +0,0 @@
1
- /**
2
- * @fileoverview AgentOS-First Storage Adapter
3
- * @description Opinionated storage layer designed specifically for AgentOS with auto-schema,
4
- * typed queries, and cross-platform persistence. This is the recommended way to use
5
- * sql-storage-adapter with AgentOS.
6
- *
7
- * **Features:**
8
- * - Auto-detects best adapter for platform (web, electron, capacitor, node, cloud)
9
- * - Pre-configured schema for conversations, sessions, personas, telemetry
10
- * - Typed query builders for common AgentOS operations
11
- * - Optional cloud sync for hybrid local+remote architectures
12
- * - Export/import for data portability
13
- *
14
- * @example Basic Usage
15
- * ```typescript
16
- * import { createAgentOSStorage } from '../agentos';
17
- * import { AgentOS } from '@agentos/core';
18
- *
19
- * const storage = await createAgentOSStorage({
20
- * platform: 'auto', // Detects: web, electron, capacitor, node, cloud
21
- * persistence: true,
22
- * });
23
- *
24
- * const agentos = new AgentOS();
25
- * await agentos.initialize({
26
- * storageAdapter: storage,
27
- * // ... other config
28
- * });
29
- * ```
30
- *
31
- * @example Multi-Platform
32
- * ```typescript
33
- * // Web (browser): Uses IndexedDB
34
- * const webStorage = await createAgentOSStorage({ platform: 'web' });
35
- *
36
- * // Desktop (Electron): Uses better-sqlite3
37
- * const desktopStorage = await createAgentOSStorage({ platform: 'electron' });
38
- *
39
- * // Mobile (Capacitor): Uses native SQLite
40
- * const mobileStorage = await createAgentOSStorage({ platform: 'capacitor' });
41
- *
42
- * // Cloud (Node): Uses PostgreSQL
43
- * const cloudStorage = await createAgentOSStorage({
44
- * platform: 'cloud',
45
- * postgres: { connectionString: process.env.DATABASE_URL }
46
- * });
47
- * ```
48
- *
49
- * @example Hybrid Sync
50
- * ```typescript
51
- * const storage = await createAgentOSStorage({
52
- * local: { adapter: 'indexeddb' },
53
- * remote: { adapter: 'postgres', connectionString: CLOUD_URL },
54
- * syncStrategy: 'optimistic', // Local-first, background sync
55
- * syncIntervalMs: 30000,
56
- * });
57
- * ```
58
- */
59
- import type { StorageAdapter } from '../core/contracts';
60
- import type { AdapterKind } from '../core/contracts/context';
61
- /**
62
- * Platform types for AgentOS deployment
63
- */
64
- export type AgentOSPlatform = 'web' | 'electron' | 'capacitor' | 'node' | 'cloud' | 'auto';
65
- /**
66
- * Sync strategy for hybrid local+remote storage
67
- */
68
- export type SyncStrategy = 'local-only' | 'remote-only' | 'optimistic' | 'pessimistic';
69
- /**
70
- * Configuration for AgentOS-optimized storage
71
- */
72
- export interface AgentOSStorageConfig {
73
- /**
74
- * Target platform. 'auto' detects runtime automatically.
75
- * @default 'auto'
76
- */
77
- platform?: AgentOSPlatform;
78
- /**
79
- * Enable persistence (vs in-memory only).
80
- * @default true
81
- */
82
- persistence?: boolean;
83
- /**
84
- * Database name (for IndexedDB, SQLite file, etc.)
85
- * @default 'agentos-db'
86
- */
87
- dbName?: string;
88
- /**
89
- * File path for SQLite adapters
90
- */
91
- filePath?: string;
92
- /**
93
- * PostgreSQL connection config
94
- */
95
- postgres?: {
96
- connectionString?: string;
97
- };
98
- /**
99
- * Capacitor-specific options
100
- */
101
- capacitor?: {
102
- database?: string;
103
- encrypted?: boolean;
104
- };
105
- /**
106
- * Features to enable (auto-creates tables)
107
- * @default all enabled
108
- */
109
- features?: {
110
- conversations?: boolean;
111
- sessions?: boolean;
112
- personas?: boolean;
113
- telemetry?: boolean;
114
- workflows?: boolean;
115
- };
116
- /**
117
- * Optional cloud sync for hybrid architectures
118
- */
119
- cloudSync?: {
120
- enabled?: boolean;
121
- provider?: 'supabase' | 'postgres' | 'custom';
122
- connectionString?: string;
123
- syncStrategy?: SyncStrategy;
124
- syncIntervalMs?: number;
125
- };
126
- /**
127
- * Advanced: manual adapter priority override
128
- */
129
- adapterPriority?: AdapterKind[];
130
- }
131
- /**
132
- * AgentOS-optimized storage adapter with auto-schema and typed queries.
133
- *
134
- * This class wraps a generic StorageAdapter and adds AgentOS-specific
135
- * functionality like auto-schema creation, typed query builders, and
136
- * optional cloud sync.
137
- */
138
- export declare class AgentOSStorageAdapter {
139
- private adapter;
140
- private config;
141
- constructor(adapter: StorageAdapter, config: AgentOSStorageConfig);
142
- /**
143
- * Initializes the storage adapter and creates AgentOS schema.
144
- */
145
- initialize(): Promise<void>;
146
- /**
147
- * Gets the underlying storage adapter for custom queries.
148
- */
149
- getAdapter(): StorageAdapter;
150
- /**
151
- * Closes the storage adapter.
152
- */
153
- close(): Promise<void>;
154
- /**
155
- * Conversations API with typed query builders.
156
- *
157
- * @example
158
- * ```typescript
159
- * await storage.conversations.save('conv-1', 'user-1', 'v_researcher', [
160
- * { type: 'user', content: 'Hello', timestamp: Date.now() },
161
- * { type: 'assistant', content: 'Hi!', timestamp: Date.now() },
162
- * ]);
163
- *
164
- * const conversation = await storage.conversations.get('conv-1');
165
- * const allConversations = await storage.conversations.list('user-1', { limit: 50 });
166
- * ```
167
- */
168
- get conversations(): {
169
- /**
170
- * Saves a conversation with its events.
171
- * Creates the conversation if it doesn't exist, updates if it does.
172
- */
173
- save: (id: string, userId: string, personaId: string, events: any[]) => Promise<void>;
174
- /**
175
- * Gets a conversation by ID with all its events.
176
- * Returns null if not found.
177
- */
178
- get: (id: string) => Promise<{
179
- events: any[];
180
- id: string;
181
- user_id: string;
182
- persona_id: string;
183
- created_at: number;
184
- updated_at: number;
185
- metadata: string;
186
- } | null>;
187
- /**
188
- * Lists conversations for a user, ordered by most recent first.
189
- */
190
- list: (userId: string, options?: {
191
- limit?: number;
192
- offset?: number;
193
- }) => Promise<{
194
- id: string;
195
- user_id: string;
196
- persona_id: string;
197
- created_at: number;
198
- updated_at: number;
199
- metadata: string;
200
- }[]>;
201
- /**
202
- * Deletes a conversation and all its events.
203
- */
204
- delete: (id: string) => Promise<void>;
205
- };
206
- /**
207
- * Sessions API with typed query builders.
208
- *
209
- * @example
210
- * ```typescript
211
- * await storage.sessions.save('session-1', 'user-1', 'V Session', 'persona', 'v_researcher');
212
- * const session = await storage.sessions.get('session-1');
213
- * const allSessions = await storage.sessions.list('user-1', { limit: 25 });
214
- * ```
215
- */
216
- get sessions(): {
217
- /**
218
- * Saves a session (creates or updates).
219
- */
220
- save: (id: string, userId: string, displayName: string, targetType: "persona" | "agency", targetId: string, metadata?: Record<string, any>) => Promise<void>;
221
- /**
222
- * Gets a session by ID.
223
- */
224
- get: (id: string) => Promise<{
225
- id: string;
226
- user_id: string;
227
- display_name: string;
228
- target_type: "persona" | "agency";
229
- target_id: string;
230
- created_at: number;
231
- updated_at: number;
232
- metadata: string;
233
- } | null>;
234
- /**
235
- * Lists sessions for a user, ordered by most recent first.
236
- */
237
- list: (userId: string, options?: {
238
- limit?: number;
239
- offset?: number;
240
- targetType?: "persona" | "agency";
241
- }) => Promise<{
242
- id: string;
243
- user_id: string;
244
- display_name: string;
245
- target_type: "persona" | "agency";
246
- target_id: string;
247
- created_at: number;
248
- updated_at: number;
249
- metadata: string;
250
- }[]>;
251
- /**
252
- * Deletes a session.
253
- */
254
- delete: (id: string) => Promise<void>;
255
- };
256
- /**
257
- * Personas API with typed query builders.
258
- *
259
- * @example
260
- * ```typescript
261
- * await storage.personas.cache('v_researcher', 'V', personaDefinition);
262
- * const persona = await storage.personas.get('v_researcher');
263
- * const allPersonas = await storage.personas.list();
264
- * ```
265
- */
266
- get personas(): {
267
- /**
268
- * Caches a persona definition (creates or updates).
269
- */
270
- cache: (id: string, displayName: string, definition: any) => Promise<void>;
271
- /**
272
- * Gets a persona by ID.
273
- */
274
- get: (id: string) => Promise<{
275
- definition: any;
276
- id: string;
277
- display_name: string;
278
- description: string;
279
- created_at: number;
280
- updated_at: number;
281
- } | null>;
282
- /**
283
- * Lists all personas, ordered by display name.
284
- */
285
- list: () => Promise<{
286
- definition: any;
287
- id: string;
288
- display_name: string;
289
- description: string;
290
- created_at: number;
291
- updated_at: number;
292
- }[]>;
293
- /**
294
- * Deletes a persona.
295
- */
296
- delete: (id: string) => Promise<void>;
297
- };
298
- }
299
- /**
300
- * Creates an AgentOS-optimized storage adapter with auto-detection and schema setup.
301
- *
302
- * This is the recommended way to use sql-storage-adapter with AgentOS.
303
- * It automatically:
304
- * 1. Detects the best storage adapter for the current platform
305
- * 2. Creates AgentOS-specific tables (conversations, sessions, personas, etc.)
306
- * 3. Provides typed query builders for common operations
307
- * 4. Handles graceful degradation (e.g., IndexedDB → sql.js)
308
- *
309
- * @param config Configuration for platform, persistence, and features
310
- * @returns Initialized AgentOSStorageAdapter
311
- *
312
- * @example
313
- * ```typescript
314
- * const storage = await createAgentOSStorage({ platform: 'auto' });
315
- * const agentos = new AgentOS();
316
- * await agentos.initialize({ storageAdapter: storage.getAdapter() });
317
- * ```
318
- */
319
- export declare function createAgentOSStorage(config?: AgentOSStorageConfig): Promise<AgentOSStorageAdapter>;
320
- //# sourceMappingURL=AgentOSStorageAdapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AgentOSStorageAdapter.d.ts","sourceRoot":"","sources":["../../src/agentos/AgentOSStorageAdapter.ts"],"names":[],"mappings":"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"}