agent-world 0.11.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (267) hide show
  1. package/README.md +55 -4
  2. package/dist/cli/commands.d.ts +109 -0
  3. package/dist/cli/commands.js +2024 -0
  4. package/dist/cli/display.d.ts +124 -0
  5. package/dist/cli/display.js +381 -0
  6. package/dist/cli/hitl.d.ts +33 -0
  7. package/dist/cli/hitl.js +81 -0
  8. package/dist/cli/index.d.ts +2 -0
  9. package/dist/cli/stream.d.ts +41 -0
  10. package/dist/cli/stream.js +222 -0
  11. package/dist/core/activity-tracker.d.ts +16 -0
  12. package/dist/core/activity-tracker.d.ts.map +1 -0
  13. package/dist/core/activity-tracker.js +91 -0
  14. package/dist/core/activity-tracker.js.map +1 -0
  15. package/dist/core/ai-commands.d.ts +16 -0
  16. package/dist/core/ai-commands.d.ts.map +1 -0
  17. package/dist/core/ai-commands.js +24 -0
  18. package/dist/core/ai-commands.js.map +1 -0
  19. package/dist/core/ai-sdk-patch.d.ts +24 -0
  20. package/dist/core/ai-sdk-patch.d.ts.map +1 -0
  21. package/dist/core/ai-sdk-patch.js +169 -0
  22. package/dist/core/ai-sdk-patch.js.map +1 -0
  23. package/dist/core/anthropic-direct.d.ts +52 -0
  24. package/dist/core/anthropic-direct.d.ts.map +1 -0
  25. package/dist/core/anthropic-direct.js +301 -0
  26. package/dist/core/anthropic-direct.js.map +1 -0
  27. package/dist/core/approval-cache.d.ts +104 -0
  28. package/dist/core/approval-cache.d.ts.map +1 -0
  29. package/dist/core/approval-cache.js +150 -0
  30. package/dist/core/approval-cache.js.map +1 -0
  31. package/dist/core/chat-constants.d.ts +20 -0
  32. package/dist/core/chat-constants.d.ts.map +1 -0
  33. package/dist/core/chat-constants.js +22 -0
  34. package/dist/core/chat-constants.js.map +1 -0
  35. package/dist/core/create-agent-tool.d.ts +66 -0
  36. package/dist/core/create-agent-tool.d.ts.map +1 -0
  37. package/dist/core/create-agent-tool.js +212 -0
  38. package/dist/core/create-agent-tool.js.map +1 -0
  39. package/dist/core/events/approval-checker.d.ts +61 -0
  40. package/dist/core/events/approval-checker.d.ts.map +1 -0
  41. package/dist/core/events/approval-checker.js +226 -0
  42. package/dist/core/events/approval-checker.js.map +1 -0
  43. package/dist/core/events/index.d.ts +25 -0
  44. package/dist/core/events/index.d.ts.map +1 -0
  45. package/dist/core/events/index.js +30 -0
  46. package/dist/core/events/index.js.map +1 -0
  47. package/dist/core/events/memory-manager.d.ts +73 -0
  48. package/dist/core/events/memory-manager.d.ts.map +1 -0
  49. package/dist/core/events/memory-manager.js +1218 -0
  50. package/dist/core/events/memory-manager.js.map +1 -0
  51. package/dist/core/events/mention-logic.d.ts +39 -0
  52. package/dist/core/events/mention-logic.d.ts.map +1 -0
  53. package/dist/core/events/mention-logic.js +163 -0
  54. package/dist/core/events/mention-logic.js.map +1 -0
  55. package/dist/core/events/orchestrator.d.ts +69 -0
  56. package/dist/core/events/orchestrator.d.ts.map +1 -0
  57. package/dist/core/events/orchestrator.js +883 -0
  58. package/dist/core/events/orchestrator.js.map +1 -0
  59. package/dist/core/events/persistence.d.ts +41 -0
  60. package/dist/core/events/persistence.d.ts.map +1 -0
  61. package/dist/core/events/persistence.js +296 -0
  62. package/dist/core/events/persistence.js.map +1 -0
  63. package/dist/core/events/publishers.d.ts +81 -0
  64. package/dist/core/events/publishers.d.ts.map +1 -0
  65. package/dist/core/events/publishers.js +272 -0
  66. package/dist/core/events/publishers.js.map +1 -0
  67. package/dist/core/events/subscribers.d.ts +45 -0
  68. package/dist/core/events/subscribers.d.ts.map +1 -0
  69. package/dist/core/events/subscribers.js +288 -0
  70. package/dist/core/events/subscribers.js.map +1 -0
  71. package/dist/core/events/tool-bridge-logging.d.ts +28 -0
  72. package/dist/core/events/tool-bridge-logging.d.ts.map +1 -0
  73. package/dist/core/events/tool-bridge-logging.js +94 -0
  74. package/dist/core/events/tool-bridge-logging.js.map +1 -0
  75. package/dist/core/events-metadata.d.ts +72 -0
  76. package/dist/core/events-metadata.d.ts.map +1 -0
  77. package/dist/core/events-metadata.js +167 -0
  78. package/dist/core/events-metadata.js.map +1 -0
  79. package/dist/core/events.d.ts +186 -0
  80. package/dist/core/events.d.ts.map +1 -0
  81. package/dist/core/events.js +1248 -0
  82. package/dist/core/events.js.map +1 -0
  83. package/dist/core/export.d.ts +106 -0
  84. package/dist/core/export.d.ts.map +1 -0
  85. package/dist/core/export.js +705 -0
  86. package/dist/core/export.js.map +1 -0
  87. package/dist/core/file-tools.d.ts +114 -0
  88. package/dist/core/file-tools.d.ts.map +1 -0
  89. package/dist/core/file-tools.js +370 -0
  90. package/dist/core/file-tools.js.map +1 -0
  91. package/dist/core/google-direct.d.ts +58 -0
  92. package/dist/core/google-direct.d.ts.map +1 -0
  93. package/dist/core/google-direct.js +298 -0
  94. package/dist/core/google-direct.js.map +1 -0
  95. package/dist/core/hitl.d.ts +54 -0
  96. package/dist/core/hitl.d.ts.map +1 -0
  97. package/dist/core/hitl.js +153 -0
  98. package/dist/core/hitl.js.map +1 -0
  99. package/dist/core/index.d.ts +59 -0
  100. package/dist/core/index.d.ts.map +1 -0
  101. package/dist/core/index.js +70 -0
  102. package/dist/core/index.js.map +1 -0
  103. package/dist/core/llm-config.d.ts +128 -0
  104. package/dist/core/llm-config.d.ts.map +1 -0
  105. package/dist/core/llm-config.js +164 -0
  106. package/dist/core/llm-config.js.map +1 -0
  107. package/dist/core/llm-manager.d.ts +163 -0
  108. package/dist/core/llm-manager.d.ts.map +1 -0
  109. package/dist/core/llm-manager.js +669 -0
  110. package/dist/core/llm-manager.js.map +1 -0
  111. package/dist/core/load-skill-tool.d.ts +55 -0
  112. package/dist/core/load-skill-tool.d.ts.map +1 -0
  113. package/dist/core/load-skill-tool.js +468 -0
  114. package/dist/core/load-skill-tool.js.map +1 -0
  115. package/dist/core/logger.d.ts +88 -0
  116. package/dist/core/logger.d.ts.map +1 -0
  117. package/dist/core/logger.js +358 -0
  118. package/dist/core/logger.js.map +1 -0
  119. package/dist/core/managers.d.ts +131 -0
  120. package/dist/core/managers.d.ts.map +1 -0
  121. package/dist/core/managers.js +1223 -0
  122. package/dist/core/managers.js.map +1 -0
  123. package/dist/core/mcp-server-registry.d.ts +304 -0
  124. package/dist/core/mcp-server-registry.d.ts.map +1 -0
  125. package/dist/core/mcp-server-registry.js +1769 -0
  126. package/dist/core/mcp-server-registry.js.map +1 -0
  127. package/dist/core/mcp-tools.d.ts +56 -0
  128. package/dist/core/mcp-tools.d.ts.map +1 -0
  129. package/dist/core/mcp-tools.js +186 -0
  130. package/dist/core/mcp-tools.js.map +1 -0
  131. package/dist/core/message-prep.d.ts +81 -0
  132. package/dist/core/message-prep.d.ts.map +1 -0
  133. package/dist/core/message-prep.js +223 -0
  134. package/dist/core/message-prep.js.map +1 -0
  135. package/dist/core/message-processing-control.d.ts +54 -0
  136. package/dist/core/message-processing-control.d.ts.map +1 -0
  137. package/dist/core/message-processing-control.js +139 -0
  138. package/dist/core/message-processing-control.js.map +1 -0
  139. package/dist/core/openai-direct.d.ts +80 -0
  140. package/dist/core/openai-direct.d.ts.map +1 -0
  141. package/dist/core/openai-direct.js +374 -0
  142. package/dist/core/openai-direct.js.map +1 -0
  143. package/dist/core/shell-cmd-tool.d.ts +235 -0
  144. package/dist/core/shell-cmd-tool.d.ts.map +1 -0
  145. package/dist/core/shell-cmd-tool.js +1157 -0
  146. package/dist/core/shell-cmd-tool.js.map +1 -0
  147. package/dist/core/shell-process-registry.d.ts +88 -0
  148. package/dist/core/shell-process-registry.d.ts.map +1 -0
  149. package/dist/core/shell-process-registry.js +309 -0
  150. package/dist/core/shell-process-registry.js.map +1 -0
  151. package/dist/core/skill-registry.d.ts +75 -0
  152. package/dist/core/skill-registry.d.ts.map +1 -0
  153. package/dist/core/skill-registry.js +369 -0
  154. package/dist/core/skill-registry.js.map +1 -0
  155. package/dist/core/skill-script-runner.d.ts +89 -0
  156. package/dist/core/skill-script-runner.d.ts.map +1 -0
  157. package/dist/core/skill-script-runner.js +274 -0
  158. package/dist/core/skill-script-runner.js.map +1 -0
  159. package/dist/core/skill-selector.d.ts +65 -0
  160. package/dist/core/skill-selector.d.ts.map +1 -0
  161. package/dist/core/skill-selector.js +190 -0
  162. package/dist/core/skill-selector.js.map +1 -0
  163. package/dist/core/skill-settings.d.ts +20 -0
  164. package/dist/core/skill-settings.d.ts.map +1 -0
  165. package/dist/core/skill-settings.js +40 -0
  166. package/dist/core/skill-settings.js.map +1 -0
  167. package/dist/core/storage/agent-storage.d.ts +134 -0
  168. package/dist/core/storage/agent-storage.d.ts.map +1 -0
  169. package/dist/core/storage/agent-storage.js +498 -0
  170. package/dist/core/storage/agent-storage.js.map +1 -0
  171. package/dist/core/storage/eventStorage/fileEventStorage.d.ts +100 -0
  172. package/dist/core/storage/eventStorage/fileEventStorage.d.ts.map +1 -0
  173. package/dist/core/storage/eventStorage/fileEventStorage.js +494 -0
  174. package/dist/core/storage/eventStorage/fileEventStorage.js.map +1 -0
  175. package/dist/core/storage/eventStorage/index.d.ts +31 -0
  176. package/dist/core/storage/eventStorage/index.d.ts.map +1 -0
  177. package/dist/core/storage/eventStorage/index.js +31 -0
  178. package/dist/core/storage/eventStorage/index.js.map +1 -0
  179. package/dist/core/storage/eventStorage/memoryEventStorage.d.ts +87 -0
  180. package/dist/core/storage/eventStorage/memoryEventStorage.d.ts.map +1 -0
  181. package/dist/core/storage/eventStorage/memoryEventStorage.js +244 -0
  182. package/dist/core/storage/eventStorage/memoryEventStorage.js.map +1 -0
  183. package/dist/core/storage/eventStorage/sqliteEventStorage.d.ts +45 -0
  184. package/dist/core/storage/eventStorage/sqliteEventStorage.d.ts.map +1 -0
  185. package/dist/core/storage/eventStorage/sqliteEventStorage.js +301 -0
  186. package/dist/core/storage/eventStorage/sqliteEventStorage.js.map +1 -0
  187. package/dist/core/storage/eventStorage/types.d.ts +142 -0
  188. package/dist/core/storage/eventStorage/types.d.ts.map +1 -0
  189. package/dist/core/storage/eventStorage/types.js +43 -0
  190. package/dist/core/storage/eventStorage/types.js.map +1 -0
  191. package/dist/core/storage/eventStorage/validation.d.ts +30 -0
  192. package/dist/core/storage/eventStorage/validation.d.ts.map +1 -0
  193. package/dist/core/storage/eventStorage/validation.js +68 -0
  194. package/dist/core/storage/eventStorage/validation.js.map +1 -0
  195. package/dist/core/storage/legacy-migrations.d.ts +45 -0
  196. package/dist/core/storage/legacy-migrations.d.ts.map +1 -0
  197. package/dist/core/storage/legacy-migrations.js +295 -0
  198. package/dist/core/storage/legacy-migrations.js.map +1 -0
  199. package/dist/core/storage/memory-storage.d.ts +105 -0
  200. package/dist/core/storage/memory-storage.d.ts.map +1 -0
  201. package/dist/core/storage/memory-storage.js +415 -0
  202. package/dist/core/storage/memory-storage.js.map +1 -0
  203. package/dist/core/storage/migration-runner.d.ts +96 -0
  204. package/dist/core/storage/migration-runner.d.ts.map +1 -0
  205. package/dist/core/storage/migration-runner.js +306 -0
  206. package/dist/core/storage/migration-runner.js.map +1 -0
  207. package/dist/core/storage/queue-storage.d.ts +147 -0
  208. package/dist/core/storage/queue-storage.d.ts.map +1 -0
  209. package/dist/core/storage/queue-storage.js +290 -0
  210. package/dist/core/storage/queue-storage.js.map +1 -0
  211. package/dist/core/storage/skill-storage.d.ts +136 -0
  212. package/dist/core/storage/skill-storage.d.ts.map +1 -0
  213. package/dist/core/storage/skill-storage.js +474 -0
  214. package/dist/core/storage/skill-storage.js.map +1 -0
  215. package/dist/core/storage/sqlite-schema.d.ts +95 -0
  216. package/dist/core/storage/sqlite-schema.d.ts.map +1 -0
  217. package/dist/core/storage/sqlite-schema.js +156 -0
  218. package/dist/core/storage/sqlite-schema.js.map +1 -0
  219. package/dist/core/storage/sqlite-storage.d.ts +146 -0
  220. package/dist/core/storage/sqlite-storage.d.ts.map +1 -0
  221. package/dist/core/storage/sqlite-storage.js +709 -0
  222. package/dist/core/storage/sqlite-storage.js.map +1 -0
  223. package/dist/core/storage/storage-factory.d.ts +61 -0
  224. package/dist/core/storage/storage-factory.d.ts.map +1 -0
  225. package/dist/core/storage/storage-factory.js +794 -0
  226. package/dist/core/storage/storage-factory.js.map +1 -0
  227. package/dist/core/storage/validation.d.ts +36 -0
  228. package/dist/core/storage/validation.d.ts.map +1 -0
  229. package/dist/core/storage/validation.js +79 -0
  230. package/dist/core/storage/validation.js.map +1 -0
  231. package/dist/core/storage/world-storage.d.ts +114 -0
  232. package/dist/core/storage/world-storage.d.ts.map +1 -0
  233. package/dist/core/storage/world-storage.js +378 -0
  234. package/dist/core/storage/world-storage.js.map +1 -0
  235. package/dist/core/subscription.d.ts +43 -0
  236. package/dist/core/subscription.d.ts.map +1 -0
  237. package/dist/core/subscription.js +227 -0
  238. package/dist/core/subscription.js.map +1 -0
  239. package/dist/core/tool-utils.d.ts +80 -0
  240. package/dist/core/tool-utils.d.ts.map +1 -0
  241. package/dist/core/tool-utils.js +273 -0
  242. package/dist/core/tool-utils.js.map +1 -0
  243. package/dist/core/types.d.ts +595 -0
  244. package/dist/core/types.d.ts.map +1 -0
  245. package/dist/core/types.js +158 -0
  246. package/dist/core/types.js.map +1 -0
  247. package/dist/core/utils.d.ts +138 -0
  248. package/dist/core/utils.d.ts.map +1 -0
  249. package/dist/core/utils.js +478 -0
  250. package/dist/core/utils.js.map +1 -0
  251. package/dist/core/world-class.d.ts +43 -0
  252. package/dist/core/world-class.d.ts.map +1 -0
  253. package/dist/core/world-class.js +90 -0
  254. package/dist/core/world-class.js.map +1 -0
  255. package/dist/index.d.ts +18 -0
  256. package/dist/public/assets/agent-sprites-DJFgj-zP.png +0 -0
  257. package/dist/public/assets/border-KHK37r8y.svg +83 -0
  258. package/dist/public/assets/index-C9kPXL6G.css +1 -0
  259. package/dist/public/assets/index-DOQEHGWt.js +96 -0
  260. package/dist/public/index.html +21 -0
  261. package/dist/server/api.d.ts +2 -0
  262. package/dist/server/api.js +1124 -0
  263. package/dist/server/index.d.ts +29 -0
  264. package/dist/server/sse-handler.d.ts +62 -0
  265. package/dist/server/sse-handler.js +234 -0
  266. package/package.json +21 -5
  267. package/scripts/launch-electron.js +0 -58
@@ -0,0 +1,156 @@
1
+ /**
2
+ * SQLite Database Schema for Agent World System
3
+ *
4
+ * Logger Category: storage.schema
5
+ * Purpose: Schema utilities and PRAGMA configuration
6
+ *
7
+ * Features:
8
+ * - PRAGMA configuration for performance and integrity
9
+ * - Schema version tracking (PRAGMA user_version)
10
+ * - Database statistics and integrity validation
11
+ * - Index and trigger creation utilities
12
+ *
13
+ * Schema Design:
14
+ * - worlds: Core world configuration and metadata
15
+ * - agents: Agent configuration with LLM settings
16
+ * - agent_memory: Current active conversation memory
17
+ * - memory_archives: Archive session metadata with rich information
18
+ * - archived_messages: Historical conversation content linked to archives
19
+ * - archive_statistics: Usage analytics and management data
20
+ * - world_chats: Chat session management
21
+ * - events: Event storage with sequences
22
+ * - event_sequences: Atomic sequence generation
23
+ *
24
+ * Implementation:
25
+ * - PRAGMA settings for performance and integrity
26
+ * - JSON column types for flexible configuration storage
27
+ * - Timestamp tracking for all operations
28
+ * - Cascading deletes for data consistency
29
+ * - Prepared statements for security and performance
30
+ * - 2025-11-02: Refactored to remove migration logic (now in migration-runner.ts)
31
+ * - 2025-11-02: Schema initialization deprecated - all databases use migration system (0000-0009)
32
+ * - 2025-11-02: Removed initializeSchema() - migration 0000 handles base schema creation
33
+ */
34
+ import { promisify } from 'util';
35
+ import * as fs from 'fs';
36
+ import * as path from 'path';
37
+ import { createCategoryLogger } from '../logger.js';
38
+ const logger = createCategoryLogger('storage.schema');
39
+ export async function createSQLiteSchemaContext(config) {
40
+ if (typeof window !== 'undefined') {
41
+ throw new Error('SQLite not available in browser environment');
42
+ }
43
+ try {
44
+ // Ensure parent directory exists for the database file
45
+ const dbPath = config.database;
46
+ const dir = path.dirname(dbPath);
47
+ if (!fs.existsSync(dir)) {
48
+ fs.mkdirSync(dir, { recursive: true });
49
+ }
50
+ // Use dynamic import for ESM compatibility
51
+ const sqlite3Module = await import('sqlite3');
52
+ const sqlite3 = sqlite3Module.default || sqlite3Module;
53
+ const db = new sqlite3.Database(dbPath);
54
+ configurePragmas({ db, config });
55
+ return { db, config, isInitialized: false };
56
+ }
57
+ catch (error) {
58
+ console.error('[sqlite-schema] Failed to import or initialize sqlite3:', error);
59
+ throw new Error('SQLite3 module not available. Please install sqlite3: npm install sqlite3');
60
+ }
61
+ }
62
+ // ...existing code...
63
+ export function configurePragmas(ctx) {
64
+ const { db, config } = ctx;
65
+ try {
66
+ if (config.enableWAL !== false) {
67
+ db.run("PRAGMA journal_mode = WAL");
68
+ }
69
+ if (config.enableForeignKeys !== false) {
70
+ db.run("PRAGMA foreign_keys = ON");
71
+ }
72
+ db.run(`PRAGMA busy_timeout = ${config.busyTimeout || 30000}`);
73
+ db.run(`PRAGMA cache_size = ${config.cacheSize || -64000}`);
74
+ db.run("PRAGMA synchronous = NORMAL");
75
+ db.run("PRAGMA page_size = 4096");
76
+ }
77
+ catch (error) {
78
+ // Ignore pragma errors in test environments
79
+ }
80
+ }
81
+ /**
82
+ * @deprecated All schema initialization is now handled by the migration system.
83
+ * This file only provides utility functions for PRAGMA configuration and database introspection.
84
+ * Schema creation (tables, indexes, triggers) is defined in migrations/*.sql files.
85
+ */
86
+ export async function getSchemaVersion(ctx) {
87
+ const get = promisify(ctx.db.get.bind(ctx.db));
88
+ try {
89
+ const result = await get("PRAGMA user_version");
90
+ return result.user_version;
91
+ }
92
+ catch {
93
+ return 0;
94
+ }
95
+ }
96
+ export async function setSchemaVersion(ctx, version) {
97
+ const run = promisify(ctx.db.run.bind(ctx.db));
98
+ await run(`PRAGMA user_version = ${version}`);
99
+ }
100
+ /**
101
+ * Validate database integrity
102
+ * Checks for corruption and foreign key constraint violations
103
+ */
104
+ export async function validateIntegrity(ctx) {
105
+ const get = promisify(ctx.db.get.bind(ctx.db));
106
+ const all = promisify(ctx.db.all.bind(ctx.db));
107
+ const errors = [];
108
+ try {
109
+ const integrityCheck = await get("PRAGMA integrity_check");
110
+ if (integrityCheck.integrity_check !== 'ok') {
111
+ errors.push(`Database integrity check failed: ${integrityCheck.integrity_check}`);
112
+ }
113
+ const foreignKeyCheck = await all("PRAGMA foreign_key_check");
114
+ if (foreignKeyCheck.length > 0) {
115
+ errors.push(`Foreign key constraint violations: ${foreignKeyCheck.length}`);
116
+ }
117
+ return { isValid: errors.length === 0, errors };
118
+ }
119
+ catch (error) {
120
+ errors.push(`Integrity validation error: ${error instanceof Error ? error.message : error}`);
121
+ return { isValid: false, errors };
122
+ }
123
+ }
124
+ export async function getDatabaseStats(ctx) {
125
+ const get = promisify(ctx.db.get.bind(ctx.db));
126
+ const [worldCount, agentCount, activeMemoryCount, archiveCount, archivedMessageCount, sizeInfo] = await Promise.all([
127
+ get("SELECT COUNT(*) as count FROM worlds"),
128
+ get("SELECT COUNT(*) as count FROM agents"),
129
+ get("SELECT COUNT(*) as count FROM agent_memory"),
130
+ get("SELECT COUNT(*) as count FROM memory_archives"),
131
+ get("SELECT COUNT(*) as count FROM archived_messages"),
132
+ get("PRAGMA page_count")
133
+ ]);
134
+ return {
135
+ worldCount: worldCount.count || 0,
136
+ agentCount: agentCount.count || 0,
137
+ activeMemoryCount: activeMemoryCount.count || 0,
138
+ archiveCount: archiveCount.count || 0,
139
+ archivedMessageCount: archivedMessageCount.count || 0,
140
+ databaseSize: (sizeInfo.page_count || 0) * 4096
141
+ };
142
+ }
143
+ export async function closeSchema(ctx) {
144
+ return new Promise((resolve, reject) => {
145
+ ctx.db.close((err) => {
146
+ if (err)
147
+ reject(err);
148
+ else
149
+ resolve();
150
+ });
151
+ });
152
+ }
153
+ export function getDatabase(ctx) {
154
+ return ctx.db;
155
+ }
156
+ //# sourceMappingURL=sqlite-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite-schema.js","sourceRoot":"","sources":["../../../core/storage/sqlite-schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,146 @@
1
+ /**
2
+ * SQLite Storage Implementation for Agent World System
3
+ *
4
+ * Features:
5
+ * - Full implementation of StorageAPI interface for SQLite backend
6
+ * - Complete chat operations with proper TypeScript types (WorldChat, ChatData, etc.)
7
+ * - Enhanced snapshot operations for world state preservation and restoration
8
+ * - Enhanced archive management with rich metadata and search capabilities
9
+ * - Optimized queries with prepared statements and transactions
10
+ * - Data integrity with foreign key constraints and validation
11
+ * - Migration support from file-based storage
12
+ * - Performance monitoring and analytics
13
+ *
14
+ * Enhanced Chat Features:
15
+ * - Full CRUD operations for world chats with proper type safety
16
+ * - Snapshot storage and restoration with atomic transactions
17
+ * - Foreign key relationships ensuring data consistency
18
+ * - Efficient querying with indexed columns
19
+ *
20
+ * Enhanced Archive Features:
21
+ * - Rich archive metadata (session names, reasons, statistics)
22
+ * - Content-based search across archived conversations
23
+ * - Archive usage analytics and trends
24
+ * - Efficient querying by date, agent, participants
25
+ * - Export capabilities in various formats
26
+ *
27
+ * Implementation:
28
+ * - Maintains compatibility with existing storage interfaces
29
+ * - Uses proper async/await patterns for SQLite operations
30
+ * - Implements batch operations for efficiency
31
+ * - Provides transaction support for data consistency
32
+ * - Includes comprehensive error handling and validation
33
+ * - Complete type safety with proper TypeScript interfaces
34
+ *
35
+ * Recent Changes:
36
+ * - 2026-02-13: Added atomic compare-and-set chat title update helper (`updateChatNameIfCurrent`).
37
+ * - 2026-02-13: Fixed migration directory resolution so Electron runtimes launched from `electron/` still run root `migrations/`.
38
+ * - 2025-08-01: Added proper TypeScript types for all chat operations
39
+ * - 2025-08-01: Implemented restoreFromSnapshot with atomic transactions
40
+ * - 2025-08-01: Enhanced type safety removing any types
41
+ * - 2025-08-06: Fixed initialization order - migration check before schema initialization
42
+ * - 2025-11-02: Integrated SQL migration runner, removed legacy migrations
43
+ */
44
+ import type { Database } from 'sqlite3';
45
+ import { createSQLiteSchemaContext, ArchiveMetadata, ArchiveStatistics, SQLiteConfig } from './sqlite-schema.js';
46
+ import type { World, Agent, AgentMessage, Chat, UpdateChatParams, WorldChat } from '../types.js';
47
+ /**
48
+ * Enhanced archive query options
49
+ */
50
+ export interface ArchiveQueryOptions {
51
+ worldId?: string;
52
+ agentId?: string;
53
+ startDate?: Date;
54
+ endDate?: Date;
55
+ sessionName?: string;
56
+ tags?: string[];
57
+ participants?: string[];
58
+ searchContent?: string;
59
+ limit?: number;
60
+ offset?: number;
61
+ sortBy?: 'created_at' | 'message_count' | 'session_name';
62
+ sortOrder?: 'ASC' | 'DESC';
63
+ }
64
+ /**
65
+ * Archive search result
66
+ */
67
+ export interface ArchiveSearchResult {
68
+ archives: ArchiveInfo[];
69
+ totalCount: number;
70
+ hasMore: boolean;
71
+ }
72
+ /**
73
+ * Archive information with metadata
74
+ */
75
+ export interface ArchiveInfo {
76
+ id: number;
77
+ agentId: string;
78
+ worldId: string;
79
+ sessionName?: string;
80
+ archiveReason?: string;
81
+ messageCount: number;
82
+ startTime?: Date;
83
+ endTime?: Date;
84
+ participants: string[];
85
+ tags: string[];
86
+ createdAt: Date;
87
+ }
88
+ /**
89
+ * Archive export options
90
+ */
91
+ export interface ArchiveExportOptions {
92
+ format: 'json' | 'csv' | 'txt' | 'markdown';
93
+ includeMetadata?: boolean;
94
+ includeMessages?: boolean;
95
+ compression?: 'none' | 'gzip';
96
+ }
97
+ export interface SQLiteStorageContext {
98
+ schemaCtx: Awaited<ReturnType<typeof createSQLiteSchemaContext>>;
99
+ db: Database;
100
+ isInitialized: boolean;
101
+ }
102
+ export declare function createSQLiteStorageContext(config: SQLiteConfig): Promise<SQLiteStorageContext>;
103
+ /**
104
+ * Utility to initialize the database schema and insert a default world and agent if not present.
105
+ * This is useful for first-time setup or testing.
106
+ */
107
+ export declare function initializeWithDefaults(ctx: SQLiteStorageContext): Promise<void>;
108
+ export declare function saveWorld(ctx: SQLiteStorageContext, worldData: World): Promise<void>;
109
+ export declare function loadWorld(ctx: SQLiteStorageContext, worldId: string): Promise<World | null>;
110
+ export declare function deleteWorld(ctx: SQLiteStorageContext, worldId: string): Promise<boolean>;
111
+ export declare function listWorlds(ctx: SQLiteStorageContext): Promise<World[]>;
112
+ export declare function saveAgent(ctx: SQLiteStorageContext, worldId: string, agent: Agent): Promise<void>;
113
+ export declare function loadAgent(ctx: SQLiteStorageContext, worldId: string, agentId: string): Promise<Agent | null>;
114
+ export declare function deleteAgent(ctx: SQLiteStorageContext, worldId: string, agentId: string): Promise<boolean>;
115
+ export declare function listAgents(ctx: SQLiteStorageContext, worldId: string): Promise<Agent[]>;
116
+ export declare function saveAgentMemory(ctx: SQLiteStorageContext, worldId: string, agentId: string, memory: AgentMessage[]): Promise<void>;
117
+ export declare function deleteMemoryByChatId(ctx: SQLiteStorageContext, worldId: string, chatId: string): Promise<number>;
118
+ export declare function getMemory(ctx: SQLiteStorageContext, worldId: string, chatId: string): Promise<AgentMessage[]>;
119
+ export declare function saveAgentsBatch(ctx: SQLiteStorageContext, worldId: string, agents: Agent[]): Promise<void>;
120
+ export declare function loadAgentsBatch(ctx: SQLiteStorageContext, worldId: string, agentIds: string[]): Promise<Agent[]>;
121
+ export declare function validateIntegrity(ctx: SQLiteStorageContext, worldId: string, agentId?: string): Promise<boolean>;
122
+ export declare function repairData(ctx: SQLiteStorageContext, worldId: string, agentId?: string): Promise<boolean>;
123
+ export declare function saveChatData(ctx: SQLiteStorageContext, worldId: string, chat: Chat): Promise<void>;
124
+ export declare function loadChatData(ctx: SQLiteStorageContext, worldId: string, chatId: string): Promise<Chat | null>;
125
+ export declare function deleteChatData(ctx: SQLiteStorageContext, worldId: string, chatId: string): Promise<boolean>;
126
+ export declare function listChatHistories(ctx: SQLiteStorageContext, worldId: string): Promise<Chat[]>;
127
+ export declare function updateChatData(ctx: SQLiteStorageContext, worldId: string, chatId: string, updates: UpdateChatParams): Promise<Chat | null>;
128
+ export declare function updateChatNameIfCurrent(ctx: SQLiteStorageContext, worldId: string, chatId: string, expectedName: string, nextName: string): Promise<boolean>;
129
+ export declare function saveWorldChat(ctx: SQLiteStorageContext, worldId: string, chatId: string, chat: WorldChat): Promise<void>;
130
+ export declare function loadWorldChatFull(ctx: SQLiteStorageContext, worldId: string, chatId: string): Promise<WorldChat | null>;
131
+ export declare function loadWorldChat(ctx: SQLiteStorageContext, worldId: string, chatId: string): Promise<WorldChat | null>;
132
+ export declare function restoreFromWorldChat(ctx: SQLiteStorageContext, worldId: string, chat: WorldChat): Promise<boolean>;
133
+ export declare function archiveAgentMemory(ctx: SQLiteStorageContext, worldId: string, agentId: string, memory: AgentMessage[], metadata?: ArchiveMetadata): Promise<number>;
134
+ export declare function searchArchives(ctx: SQLiteStorageContext, options: ArchiveQueryOptions): Promise<ArchiveSearchResult>;
135
+ export declare function getArchiveStatistics(ctx: SQLiteStorageContext, worldId: string, agentId?: string): Promise<ArchiveStatistics>;
136
+ export declare function exportArchive(ctx: SQLiteStorageContext, archiveId: number, options: ArchiveExportOptions): Promise<string>;
137
+ export declare function close(ctx: SQLiteStorageContext): Promise<void>;
138
+ export declare function getDatabaseStats(ctx: SQLiteStorageContext): Promise<{
139
+ worldCount: number;
140
+ agentCount: number;
141
+ activeMemoryCount: number;
142
+ archiveCount: number;
143
+ archivedMessageCount: number;
144
+ databaseSize: number;
145
+ }>;
146
+ //# sourceMappingURL=sqlite-storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite-storage.d.ts","sourceRoot":"","sources":["../../../core/storage/sqlite-storage.ts"],"names":[],"mappings":"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"}