tianxincode 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.
Files changed (128) hide show
  1. package/@.txcode/req//351/241/265/351/235/242/345/270/203/345/261/200/AI/346/234/215/345/212/241/345/225/206/345/222/214/346/250/241/345/236/213/351/205/215/347/275/256.html +241 -0
  2. package/dist/api/ai-log.routes.d.ts +2 -0
  3. package/dist/api/ai-log.routes.d.ts.map +1 -0
  4. package/dist/api/ai-log.routes.js +21 -0
  5. package/dist/api/ai-log.routes.js.map +1 -0
  6. package/dist/api/chat.routes.d.ts.map +1 -1
  7. package/dist/api/chat.routes.js +35 -1
  8. package/dist/api/chat.routes.js.map +1 -1
  9. package/dist/api/config.routes.js +21 -0
  10. package/dist/api/config.routes.js.map +1 -1
  11. package/dist/api/index.d.ts.map +1 -1
  12. package/dist/api/index.js +2 -0
  13. package/dist/api/index.js.map +1 -1
  14. package/dist/components/App.d.ts.map +1 -1
  15. package/dist/components/App.js +71 -19
  16. package/dist/components/App.js.map +1 -1
  17. package/dist/index.js +2 -0
  18. package/dist/index.js.map +1 -1
  19. package/dist/modules/ai/ai-log.service.d.ts +42 -0
  20. package/dist/modules/ai/ai-log.service.d.ts.map +1 -0
  21. package/dist/modules/ai/ai-log.service.js +52 -0
  22. package/dist/modules/ai/ai-log.service.js.map +1 -0
  23. package/dist/modules/ai/ai.service.d.ts +7 -6
  24. package/dist/modules/ai/ai.service.d.ts.map +1 -1
  25. package/dist/modules/ai/ai.service.js +53 -25
  26. package/dist/modules/ai/ai.service.js.map +1 -1
  27. package/dist/modules/ai/ai.types.d.ts +3 -0
  28. package/dist/modules/ai/ai.types.d.ts.map +1 -1
  29. package/dist/modules/ai/openai.provider.d.ts +2 -0
  30. package/dist/modules/ai/openai.provider.d.ts.map +1 -1
  31. package/dist/modules/ai/openai.provider.js +26 -2
  32. package/dist/modules/ai/openai.provider.js.map +1 -1
  33. package/dist/modules/ai/provider/base.d.ts +1 -0
  34. package/dist/modules/ai/provider/base.d.ts.map +1 -1
  35. package/dist/modules/ai/provider/openai/openai-agent.d.ts +2 -0
  36. package/dist/modules/ai/provider/openai/openai-agent.d.ts.map +1 -1
  37. package/dist/modules/ai/provider/openai/openai-agent.js +45 -8
  38. package/dist/modules/ai/provider/openai/openai-agent.js.map +1 -1
  39. package/dist/modules/ai/provider/openai/prompts.js +1 -1
  40. package/dist/modules/ai/provider/openai/prompts.js.map +1 -1
  41. package/dist/modules/ai/react.agent.d.ts +1 -0
  42. package/dist/modules/ai/react.agent.d.ts.map +1 -1
  43. package/dist/modules/ai/react.agent.js +14 -1
  44. package/dist/modules/ai/react.agent.js.map +1 -1
  45. package/dist/modules/db/db.service.d.ts +13 -66
  46. package/dist/modules/db/db.service.d.ts.map +1 -1
  47. package/dist/modules/db/db.service.js +171 -143
  48. package/dist/modules/db/db.service.js.map +1 -1
  49. package/dist/modules/db/db.types.d.ts +3 -3
  50. package/dist/modules/db/db.types.d.ts.map +1 -1
  51. package/dist/modules/db/db.types.js +1 -1
  52. package/dist/modules/tools/builtin/bash.js +3 -2
  53. package/dist/modules/tools/builtin/bash.js.map +1 -1
  54. package/dist/modules/tools/provider/bash.d.ts +3 -0
  55. package/dist/modules/tools/provider/bash.d.ts.map +1 -0
  56. package/dist/modules/tools/provider/bash.js +135 -0
  57. package/dist/modules/tools/provider/bash.js.map +1 -0
  58. package/dist/modules/tools/provider/code_search.d.ts +3 -0
  59. package/dist/modules/tools/provider/code_search.d.ts.map +1 -0
  60. package/dist/modules/tools/provider/code_search.js +90 -0
  61. package/dist/modules/tools/provider/code_search.js.map +1 -0
  62. package/dist/modules/tools/provider/edit_file.d.ts +3 -0
  63. package/dist/modules/tools/provider/edit_file.d.ts.map +1 -0
  64. package/dist/modules/tools/provider/edit_file.js +95 -0
  65. package/dist/modules/tools/provider/edit_file.js.map +1 -0
  66. package/dist/modules/tools/provider/glob.d.ts +3 -0
  67. package/dist/modules/tools/provider/glob.d.ts.map +1 -0
  68. package/dist/modules/tools/provider/glob.js +87 -0
  69. package/dist/modules/tools/provider/glob.js.map +1 -0
  70. package/dist/modules/tools/provider/grep.d.ts +3 -0
  71. package/dist/modules/tools/provider/grep.d.ts.map +1 -0
  72. package/dist/modules/tools/provider/grep.js +96 -0
  73. package/dist/modules/tools/provider/grep.js.map +1 -0
  74. package/dist/modules/tools/provider/index.d.ts +7 -0
  75. package/dist/modules/tools/provider/index.d.ts.map +1 -0
  76. package/dist/modules/tools/provider/index.js +37 -0
  77. package/dist/modules/tools/provider/index.js.map +1 -0
  78. package/dist/modules/tools/provider/lsp.d.ts +6 -0
  79. package/dist/modules/tools/provider/lsp.d.ts.map +1 -0
  80. package/dist/modules/tools/provider/lsp.js +128 -0
  81. package/dist/modules/tools/provider/lsp.js.map +1 -0
  82. package/dist/modules/tools/provider/memory.d.ts +3 -0
  83. package/dist/modules/tools/provider/memory.d.ts.map +1 -0
  84. package/dist/modules/tools/provider/memory.js +80 -0
  85. package/dist/modules/tools/provider/memory.js.map +1 -0
  86. package/dist/modules/tools/provider/read_file.d.ts +3 -0
  87. package/dist/modules/tools/provider/read_file.d.ts.map +1 -0
  88. package/dist/modules/tools/provider/read_file.js +109 -0
  89. package/dist/modules/tools/provider/read_file.js.map +1 -0
  90. package/dist/modules/tools/provider/skill.d.ts +6 -0
  91. package/dist/modules/tools/provider/skill.d.ts.map +1 -0
  92. package/dist/modules/tools/provider/skill.js +64 -0
  93. package/dist/modules/tools/provider/skill.js.map +1 -0
  94. package/dist/modules/tools/provider/todo_read.d.ts +3 -0
  95. package/dist/modules/tools/provider/todo_read.d.ts.map +1 -0
  96. package/dist/modules/tools/provider/todo_read.js +26 -0
  97. package/dist/modules/tools/provider/todo_read.js.map +1 -0
  98. package/dist/modules/tools/provider/todo_write.d.ts +3 -0
  99. package/dist/modules/tools/provider/todo_write.d.ts.map +1 -0
  100. package/dist/modules/tools/provider/todo_write.js +49 -0
  101. package/dist/modules/tools/provider/todo_write.js.map +1 -0
  102. package/dist/modules/tools/provider/tools.d.ts +4 -0
  103. package/dist/modules/tools/provider/tools.d.ts.map +1 -0
  104. package/dist/modules/tools/provider/tools.js +14 -0
  105. package/dist/modules/tools/provider/tools.js.map +1 -0
  106. package/dist/modules/tools/provider/web_fetch.d.ts +3 -0
  107. package/dist/modules/tools/provider/web_fetch.d.ts.map +1 -0
  108. package/dist/modules/tools/provider/web_fetch.js +56 -0
  109. package/dist/modules/tools/provider/web_fetch.js.map +1 -0
  110. package/dist/modules/tools/provider/web_search.d.ts +3 -0
  111. package/dist/modules/tools/provider/web_search.d.ts.map +1 -0
  112. package/dist/modules/tools/provider/web_search.js +104 -0
  113. package/dist/modules/tools/provider/web_search.js.map +1 -0
  114. package/dist/modules/tools/provider/write_file.d.ts +3 -0
  115. package/dist/modules/tools/provider/write_file.d.ts.map +1 -0
  116. package/dist/modules/tools/provider/write_file.js +63 -0
  117. package/dist/modules/tools/provider/write_file.js.map +1 -0
  118. package/dist/web/web.service.d.ts +2 -0
  119. package/dist/web/web.service.d.ts.map +1 -1
  120. package/dist/web/web.service.js +57 -8
  121. package/dist/web/web.service.js.map +1 -1
  122. package/package.json +5 -3
  123. package/web/dist/assets/AiLogsView-DWqwdXrD.js +1 -0
  124. package/web/dist/assets/Layout-CoiSqTWB.js +1 -0
  125. package/web/dist/assets/{index-CEHMSOel.js → index-B-R-RCGS.js} +65 -65
  126. package/web/dist/assets/{index-BnpKQafm.css → index-BGmGnKjT.css} +1 -1
  127. package/web/dist/index.html +2 -2
  128. package/web/dist/assets/Layout-Pvn6DBHZ.js +0 -1
@@ -9,17 +9,17 @@
9
9
  * 使用方式:
10
10
  * ```typescript
11
11
  * import { dbService } from './db.js';
12
- * dbService.init();
12
+ * await dbService.init();
13
13
  * const result = dbService.run('SELECT * FROM users');
14
14
  * ```
15
15
  */
16
- import Database from 'better-sqlite3';
16
+ import initSqlJs from 'sql.js';
17
17
  import * as path from 'path';
18
18
  import * as fs from 'fs';
19
19
  export class DbService {
20
20
  constructor(dbPath) {
21
- /** 数据库实例,延迟初始化 */
22
21
  this.db = null;
22
+ this.saveTimer = null;
23
23
  const home = process.env.HOME || process.env.USERPROFILE || '.';
24
24
  const txcodeDir = path.join(home, '.txcode');
25
25
  if (!fs.existsSync(txcodeDir)) {
@@ -27,27 +27,22 @@ export class DbService {
27
27
  }
28
28
  this.dbPath = dbPath || path.join(txcodeDir, 'data.db');
29
29
  }
30
- /**
31
- * 初始化数据库
32
- *
33
- * 执行操作:
34
- * 1. 创建数据库连接
35
- * 2. 设置 WAL 模式
36
- * 3. 启用外键约束
37
- * 4. 执行迁移
38
- */
39
- init() {
30
+ async init() {
40
31
  if (this.db) {
41
32
  this.db.close();
42
33
  }
43
- this.db = new Database(this.dbPath);
44
- this.db.pragma('journal_mode = WAL');
45
- this.db.pragma('foreign_keys = ON');
34
+ const SQL = await initSqlJs();
35
+ if (fs.existsSync(this.dbPath)) {
36
+ const fileBuffer = fs.readFileSync(this.dbPath);
37
+ this.db = new SQL.Database(fileBuffer);
38
+ }
39
+ else {
40
+ this.db = new SQL.Database();
41
+ }
42
+ this.db.run('PRAGMA foreign_keys = ON');
46
43
  this.runMigrations();
44
+ this.save();
47
45
  }
48
- /**
49
- * 重置数据库(仅用于测试)
50
- */
51
46
  reset() {
52
47
  if (this.db) {
53
48
  this.db.close();
@@ -55,85 +50,116 @@ export class DbService {
55
50
  }
56
51
  this.init();
57
52
  }
58
- /**
59
- * 获取数据库实例
60
- *
61
- * @returns 数据库实例
62
- * @throws 如果未初始化则抛出错误
63
- */
64
53
  getDb() {
65
54
  if (!this.db) {
66
- this.init();
55
+ throw new Error('Database not initialized. Call init() first.');
67
56
  }
68
57
  return this.db;
69
58
  }
70
- /**
71
- * 执行 SQL 语句
72
- *
73
- * @param sql - SQL 语句
74
- * @param params - 参数数组
75
- * @returns 执行结果
76
- */
77
59
  run(sql, params) {
60
+ const db = this.getDb();
78
61
  if (params && params.length > 0) {
79
- return this.getDb().prepare(sql).run(...params);
62
+ db.run(sql, params);
63
+ }
64
+ else {
65
+ db.run(sql);
80
66
  }
81
- return this.getDb().prepare(sql).run();
67
+ const changes = db.getRowsModified();
68
+ const result = db.exec('SELECT last_insert_rowid() as lastId');
69
+ const lastId = result.length > 0 && result[0].values.length > 0 ? Number(result[0].values[0][0]) : 0;
70
+ this.saveLater();
71
+ return { changes, lastInsertRowid: lastId };
82
72
  }
83
- /**
84
- * 查询单条记录
85
- *
86
- * @param sql - SQL 语句
87
- * @param params - 参数数组
88
- * @returns 查询结果,未找到返回 undefined
89
- */
90
73
  get(sql, params) {
74
+ const db = this.getDb();
75
+ let stmt;
91
76
  if (params && params.length > 0) {
92
- return this.getDb().prepare(sql).get(...params);
77
+ stmt = db.prepare(sql);
78
+ stmt.bind(params);
93
79
  }
94
- return this.getDb().prepare(sql).get();
80
+ else {
81
+ stmt = db.prepare(sql);
82
+ }
83
+ if (stmt.step()) {
84
+ const columns = stmt.getColumnNames();
85
+ const values = stmt.get();
86
+ stmt.free();
87
+ const row = {};
88
+ columns.forEach((col, i) => {
89
+ row[col] = values[i];
90
+ });
91
+ return row;
92
+ }
93
+ stmt.free();
94
+ return undefined;
95
95
  }
96
- /**
97
- * 查询多条记录
98
- *
99
- * @param sql - SQL 语句
100
- * @param params - 参数数组
101
- * @returns 查询结果数组
102
- */
103
96
  all(sql, params) {
97
+ const db = this.getDb();
98
+ let stmt;
104
99
  if (params && params.length > 0) {
105
- return this.getDb().prepare(sql).all(...params);
100
+ stmt = db.prepare(sql);
101
+ stmt.bind(params);
102
+ }
103
+ else {
104
+ stmt = db.prepare(sql);
106
105
  }
107
- return this.getDb().prepare(sql).all();
106
+ const results = [];
107
+ const columns = stmt.getColumnNames();
108
+ while (stmt.step()) {
109
+ const values = stmt.get();
110
+ const row = {};
111
+ columns.forEach((col, i) => {
112
+ row[col] = values[i];
113
+ });
114
+ results.push(row);
115
+ }
116
+ stmt.free();
117
+ return results;
108
118
  }
109
- /**
110
- * 执行事务
111
- *
112
- * @param fn - 事务函数
113
- * @returns 事务返回值
114
- */
115
119
  transaction(fn) {
116
- return this.getDb().transaction(fn)();
120
+ const db = this.getDb();
121
+ db.run('BEGIN TRANSACTION');
122
+ try {
123
+ const result = fn();
124
+ db.run('COMMIT');
125
+ this.saveLater();
126
+ return result;
127
+ }
128
+ catch (error) {
129
+ db.run('ROLLBACK');
130
+ throw error;
131
+ }
117
132
  }
118
- /**
119
- * 关闭数据库连接
120
- */
121
133
  close() {
134
+ if (this.saveTimer) {
135
+ clearTimeout(this.saveTimer);
136
+ this.saveTimer = null;
137
+ }
122
138
  if (this.db) {
139
+ this.save();
123
140
  this.db.close();
124
141
  this.db = null;
125
142
  }
126
143
  }
127
- /**
128
- * 执行数据库迁移
129
- *
130
- * 迁移表结构:
131
- * - migrations: 记录已执行的迁移
132
- */
144
+ save() {
145
+ if (!this.db || this.dbPath === ':memory:')
146
+ return;
147
+ const data = this.db.export();
148
+ const buffer = Buffer.from(data);
149
+ fs.writeFileSync(this.dbPath, buffer);
150
+ }
151
+ saveLater() {
152
+ if (this.saveTimer)
153
+ return;
154
+ this.saveTimer = setTimeout(() => {
155
+ this.save();
156
+ this.saveTimer = null;
157
+ }, 100);
158
+ }
133
159
  runMigrations() {
134
160
  if (!this.db)
135
161
  throw new Error('Database not initialized');
136
- this.db.exec(`
162
+ this.db.run(`
137
163
  CREATE TABLE IF NOT EXISTS migrations (
138
164
  id INTEGER PRIMARY KEY,
139
165
  name TEXT NOT NULL,
@@ -145,23 +171,22 @@ export class DbService {
145
171
  () => this.migration002AddContextFields(),
146
172
  () => this.migration003AddLspServers(),
147
173
  () => this.migration004AddProjects(),
174
+ () => this.migration005AddAiCallLogs(),
148
175
  ];
149
176
  for (let i = 0; i < migrations.length; i++) {
150
177
  const migration = migrations[i];
151
178
  const migrationId = i + 1;
152
- const applied = this.db.prepare('SELECT 1 FROM migrations WHERE id = ?').get(migrationId);
179
+ const applied = this.get('SELECT 1 FROM migrations WHERE id = ?', [migrationId]);
153
180
  if (!applied) {
154
181
  migration();
155
- this.db.prepare('INSERT INTO migrations (id, name) VALUES (?, ?)').run(migrationId, migration.name);
182
+ this.run('INSERT INTO migrations (id, name) VALUES (?, ?)', [migrationId, `migration${String(migrationId).padStart(3, '0')}`]);
156
183
  }
157
184
  }
158
185
  }
159
- /** 初始迁移:创建所有基础表 */
160
186
  migration001Initial() {
161
187
  if (!this.db)
162
188
  return;
163
- // 会话表
164
- this.db.exec(`
189
+ this.db.run(`
165
190
  CREATE TABLE IF NOT EXISTS sessions (
166
191
  id TEXT PRIMARY KEY,
167
192
  title TEXT NOT NULL,
@@ -174,8 +199,7 @@ export class DbService {
174
199
  updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
175
200
  )
176
201
  `);
177
- // 消息表(包含永久/临时记忆标记)
178
- this.db.exec(`
202
+ this.db.run(`
179
203
  CREATE TABLE IF NOT EXISTS messages (
180
204
  id INTEGER PRIMARY KEY AUTOINCREMENT,
181
205
  session_id TEXT NOT NULL,
@@ -187,8 +211,7 @@ export class DbService {
187
211
  FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE CASCADE
188
212
  )
189
213
  `);
190
- // 项目知识表
191
- this.db.exec(`
214
+ this.db.run(`
192
215
  CREATE TABLE IF NOT EXISTS project_knowledge (
193
216
  id INTEGER PRIMARY KEY AUTOINCREMENT,
194
217
  project_path TEXT NOT NULL,
@@ -199,8 +222,7 @@ export class DbService {
199
222
  UNIQUE(project_path, key)
200
223
  )
201
224
  `);
202
- // 代码片段表
203
- this.db.exec(`
225
+ this.db.run(`
204
226
  CREATE TABLE IF NOT EXISTS code_snippets (
205
227
  id INTEGER PRIMARY KEY AUTOINCREMENT,
206
228
  session_id TEXT,
@@ -212,8 +234,7 @@ export class DbService {
212
234
  FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE SET NULL
213
235
  )
214
236
  `);
215
- // 服务商表
216
- this.db.exec(`
237
+ this.db.run(`
217
238
  CREATE TABLE IF NOT EXISTS providers (
218
239
  id TEXT PRIMARY KEY,
219
240
  name TEXT NOT NULL,
@@ -225,8 +246,7 @@ export class DbService {
225
246
  updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
226
247
  )
227
248
  `);
228
- // 模型表
229
- this.db.exec(`
249
+ this.db.run(`
230
250
  CREATE TABLE IF NOT EXISTS models (
231
251
  id TEXT PRIMARY KEY,
232
252
  provider_id TEXT NOT NULL,
@@ -241,86 +261,70 @@ export class DbService {
241
261
  FOREIGN KEY (provider_id) REFERENCES providers(id) ON DELETE CASCADE
242
262
  )
243
263
  `);
244
- // 配置表
245
- this.db.exec(`
264
+ this.db.run(`
246
265
  CREATE TABLE IF NOT EXISTS config (
247
266
  key TEXT PRIMARY KEY,
248
267
  value TEXT NOT NULL,
249
268
  updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
250
269
  )
251
270
  `);
252
- // 创建索引
253
- this.db.exec(`
254
- CREATE INDEX IF NOT EXISTS idx_messages_session_id ON messages(session_id);
255
- CREATE INDEX IF NOT EXISTS idx_messages_created_at ON messages(created_at);
256
- CREATE INDEX IF NOT EXISTS idx_messages_keep_context ON messages(session_id, keep_context);
257
- CREATE INDEX IF NOT EXISTS idx_project_knowledge_path ON project_knowledge(project_path);
258
- CREATE INDEX IF NOT EXISTS idx_code_snippets_session ON code_snippets(session_id);
259
- CREATE INDEX IF NOT EXISTS idx_models_provider ON models(provider_id);
260
- CREATE INDEX IF NOT EXISTS idx_sessions_summary ON sessions(summary_message_id);
261
- `);
262
- // 初始化默认配置
263
- this.db.exec(`INSERT OR IGNORE INTO config (key, value) VALUES ('ai.maxToolIterations', '10')`);
264
- this.db.exec(`INSERT OR IGNORE INTO config (key, value) VALUES ('ai.maxSessionCompression', '5')`);
265
- this.db.exec(`INSERT OR IGNORE INTO config (key, value) VALUES ('web.port', '40000')`);
266
- this.db.exec(`INSERT OR IGNORE INTO config (key, value) VALUES ('ai.context.mode', '"fixed"')`);
267
- this.db.exec(`INSERT OR IGNORE INTO config (key, value) VALUES ('ai.context.maxTokens', '100000')`);
268
- this.db.exec(`INSERT OR IGNORE INTO config (key, value) VALUES ('ai.context.percentage', '0.95')`);
269
- this.db.exec(`INSERT OR IGNORE INTO config (key, value) VALUES ('ai.context.autoCompact', 'true')`);
271
+ this.db.run(`CREATE INDEX IF NOT EXISTS idx_messages_session_id ON messages(session_id)`);
272
+ this.db.run(`CREATE INDEX IF NOT EXISTS idx_messages_created_at ON messages(created_at)`);
273
+ this.db.run(`CREATE INDEX IF NOT EXISTS idx_messages_keep_context ON messages(session_id, keep_context)`);
274
+ this.db.run(`CREATE INDEX IF NOT EXISTS idx_project_knowledge_path ON project_knowledge(project_path)`);
275
+ this.db.run(`CREATE INDEX IF NOT EXISTS idx_code_snippets_session ON code_snippets(session_id)`);
276
+ this.db.run(`CREATE INDEX IF NOT EXISTS idx_models_provider ON models(provider_id)`);
277
+ this.db.run(`CREATE INDEX IF NOT EXISTS idx_sessions_summary ON sessions(summary_message_id)`);
278
+ this.db.run(`INSERT OR IGNORE INTO config (key, value) VALUES ('ai.maxToolIterations', '10')`);
279
+ this.db.run(`INSERT OR IGNORE INTO config (key, value) VALUES ('ai.maxSessionCompression', '5')`);
280
+ this.db.run(`INSERT OR IGNORE INTO config (key, value) VALUES ('web.port', '40000')`);
281
+ this.db.run(`INSERT OR IGNORE INTO config (key, value) VALUES ('ai.context.mode', '"fixed"')`);
282
+ this.db.run(`INSERT OR IGNORE INTO config (key, value) VALUES ('ai.context.maxTokens', '100000')`);
283
+ this.db.run(`INSERT OR IGNORE INTO config (key, value) VALUES ('ai.context.percentage', '0.95')`);
284
+ this.db.run(`INSERT OR IGNORE INTO config (key, value) VALUES ('ai.context.autoCompact', 'true')`);
270
285
  }
271
- /** 迁移002:添加上下文压缩相关字段 */
272
286
  migration002AddContextFields() {
273
287
  if (!this.db)
274
288
  return;
275
- // 检查 sessions 表是否需要添加新字段
276
- const sessionsInfo = this.db.pragma('table_info(sessions)');
277
- const sessionsColumns = sessionsInfo.map(col => col.name);
289
+ const sessionsColumns = this.getTableColumns('sessions');
278
290
  if (!sessionsColumns.includes('summary_message_id')) {
279
- this.db.exec(`ALTER TABLE sessions ADD COLUMN summary_message_id INTEGER`);
291
+ this.db.run(`ALTER TABLE sessions ADD COLUMN summary_message_id INTEGER`);
280
292
  }
281
293
  if (!sessionsColumns.includes('prompt_tokens')) {
282
- this.db.exec(`ALTER TABLE sessions ADD COLUMN prompt_tokens INTEGER DEFAULT 0`);
294
+ this.db.run(`ALTER TABLE sessions ADD COLUMN prompt_tokens INTEGER DEFAULT 0`);
283
295
  }
284
296
  if (!sessionsColumns.includes('completion_tokens')) {
285
- this.db.exec(`ALTER TABLE sessions ADD COLUMN completion_tokens INTEGER DEFAULT 0`);
297
+ this.db.run(`ALTER TABLE sessions ADD COLUMN completion_tokens INTEGER DEFAULT 0`);
286
298
  }
287
299
  if (!sessionsColumns.includes('cost')) {
288
- this.db.exec(`ALTER TABLE sessions ADD COLUMN cost REAL DEFAULT 0`);
300
+ this.db.run(`ALTER TABLE sessions ADD COLUMN cost REAL DEFAULT 0`);
289
301
  }
290
- // 检查 messages 表是否需要迁移 is_permanent 到 keep_context
291
- const messagesInfo = this.db.pragma('table_info(messages)');
292
- const messagesColumns = messagesInfo.map(col => col.name);
293
- // 如果有 is_permanent 但没有 keep_context,重命名
302
+ const messagesColumns = this.getTableColumns('messages');
294
303
  if (messagesColumns.includes('is_permanent') && !messagesColumns.includes('keep_context')) {
295
- this.db.exec(`ALTER TABLE messages RENAME COLUMN is_permanent TO keep_context`);
304
+ this.db.run(`ALTER TABLE messages RENAME COLUMN is_permanent TO keep_context`);
296
305
  }
297
306
  else if (!messagesColumns.includes('keep_context')) {
298
- this.db.exec(`ALTER TABLE messages ADD COLUMN keep_context INTEGER DEFAULT 1`);
307
+ this.db.run(`ALTER TABLE messages ADD COLUMN keep_context INTEGER DEFAULT 1`);
299
308
  }
300
- // 检查 models 表是否需要添加新字段
301
- const modelsInfo = this.db.pragma('table_info(models)');
302
- const modelsColumns = modelsInfo.map(col => col.name);
309
+ const modelsColumns = this.getTableColumns('models');
303
310
  if (!modelsColumns.includes('context_window')) {
304
- this.db.exec(`ALTER TABLE models ADD COLUMN context_window INTEGER DEFAULT 4096`);
311
+ this.db.run(`ALTER TABLE models ADD COLUMN context_window INTEGER DEFAULT 4096`);
305
312
  }
306
313
  if (!modelsColumns.includes('max_output_tokens')) {
307
- this.db.exec(`ALTER TABLE models ADD COLUMN max_output_tokens INTEGER DEFAULT 4096`);
314
+ this.db.run(`ALTER TABLE models ADD COLUMN max_output_tokens INTEGER DEFAULT 4096`);
308
315
  }
309
316
  if (!modelsColumns.includes('supports_vision')) {
310
- this.db.exec(`ALTER TABLE models ADD COLUMN supports_vision INTEGER DEFAULT 0`);
317
+ this.db.run(`ALTER TABLE models ADD COLUMN supports_vision INTEGER DEFAULT 0`);
311
318
  }
312
319
  if (!modelsColumns.includes('supports_tools')) {
313
- this.db.exec(`ALTER TABLE models ADD COLUMN supports_tools INTEGER DEFAULT 1`);
320
+ this.db.run(`ALTER TABLE models ADD COLUMN supports_tools INTEGER DEFAULT 1`);
314
321
  }
315
- // 创建索引
316
- this.db.exec(`CREATE INDEX IF NOT EXISTS idx_sessions_summary ON sessions(summary_message_id)`);
317
- this.db.exec(`CREATE INDEX IF NOT EXISTS idx_messages_keep_context ON messages(session_id, keep_context)`);
318
- // 初始化默认配置
319
- this.db.exec(`INSERT OR IGNORE INTO config (key, value) VALUES ('ai.context.mode', '"fixed"')`);
320
- this.db.exec(`INSERT OR IGNORE INTO config (key, value) VALUES ('ai.context.maxTokens', '10000')`);
321
- this.db.exec(`INSERT OR IGNORE INTO config (key, value) VALUES ('ai.context.percentage', '0.95')`);
322
- this.db.exec(`INSERT OR IGNORE INTO config (key, value) VALUES ('ai.context.autoCompact', 'true')`);
323
- // 初始化常用模型的 context_window
322
+ this.db.run(`CREATE INDEX IF NOT EXISTS idx_sessions_summary ON sessions(summary_message_id)`);
323
+ this.db.run(`CREATE INDEX IF NOT EXISTS idx_messages_keep_context ON messages(session_id, keep_context)`);
324
+ this.db.run(`INSERT OR IGNORE INTO config (key, value) VALUES ('ai.context.mode', '"fixed"')`);
325
+ this.db.run(`INSERT OR IGNORE INTO config (key, value) VALUES ('ai.context.maxTokens', '10000')`);
326
+ this.db.run(`INSERT OR IGNORE INTO config (key, value) VALUES ('ai.context.percentage', '0.95')`);
327
+ this.db.run(`INSERT OR IGNORE INTO config (key, value) VALUES ('ai.context.autoCompact', 'true')`);
324
328
  const modelContextWindows = {
325
329
  'gpt-4': 8192,
326
330
  'gpt-4-turbo': 128000,
@@ -339,11 +343,10 @@ export class DbService {
339
343
  this.run(`UPDATE models SET context_window = ? WHERE id = ?`, [contextWindow, modelId]);
340
344
  }
341
345
  }
342
- /** 迁移003:添加 LSP 服务器表 */
343
346
  migration003AddLspServers() {
344
347
  if (!this.db)
345
348
  return;
346
- this.db.exec(`
349
+ this.db.run(`
347
350
  CREATE TABLE IF NOT EXISTS lsp_server (
348
351
  id TEXT PRIMARY KEY,
349
352
  enabled INTEGER NOT NULL DEFAULT 0,
@@ -360,14 +363,13 @@ export class DbService {
360
363
  { id: "cpp", enabled: 0, auto_start: 0 },
361
364
  ];
362
365
  for (const server of defaultServers) {
363
- this.db.prepare("INSERT OR IGNORE INTO lsp_server (id, enabled, auto_start, created_at, updated_at) VALUES (?, ?, ?, ?, ?)").run(server.id, server.enabled, server.auto_start, now, now);
366
+ this.db.run("INSERT OR IGNORE INTO lsp_server (id, enabled, auto_start, created_at, updated_at) VALUES (?, ?, ?, ?, ?)", [server.id, server.enabled, server.auto_start, now, now]);
364
367
  }
365
368
  }
366
- /** 迁移004:添加项目表 */
367
369
  migration004AddProjects() {
368
370
  if (!this.db)
369
371
  return;
370
- this.db.exec(`
372
+ this.db.run(`
371
373
  CREATE TABLE IF NOT EXISTS projects (
372
374
  id TEXT PRIMARY KEY,
373
375
  name TEXT NOT NULL,
@@ -378,10 +380,36 @@ export class DbService {
378
380
  last_opened_at DATETIME DEFAULT CURRENT_TIMESTAMP
379
381
  )
380
382
  `);
381
- this.db.exec(`CREATE INDEX IF NOT EXISTS idx_projects_path ON projects(path)`);
382
- this.db.exec(`CREATE INDEX IF NOT EXISTS idx_projects_active ON projects(is_active)`);
383
+ this.db.run(`CREATE INDEX IF NOT EXISTS idx_projects_path ON projects(path)`);
384
+ this.db.run(`CREATE INDEX IF NOT EXISTS idx_projects_active ON projects(is_active)`);
385
+ }
386
+ migration005AddAiCallLogs() {
387
+ if (!this.db)
388
+ return;
389
+ this.db.run(`
390
+ CREATE TABLE IF NOT EXISTS ai_call_logs (
391
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
392
+ model_address TEXT NOT NULL,
393
+ model_name TEXT NOT NULL,
394
+ request_time DATETIME DEFAULT (datetime('now', 'localtime')),
395
+ response_time DATETIME,
396
+ duration_ms INTEGER DEFAULT 0,
397
+ input_tokens INTEGER DEFAULT 0,
398
+ output_tokens INTEGER DEFAULT 0,
399
+ cost REAL DEFAULT 0,
400
+ call_type TEXT NOT NULL CHECK (call_type IN ('tool_call', 'normal')),
401
+ session_id TEXT,
402
+ created_at DATETIME DEFAULT (datetime('now', 'localtime'))
403
+ )
404
+ `);
405
+ this.db.run(`CREATE INDEX IF NOT EXISTS idx_ai_logs_request_time ON ai_call_logs(request_time)`);
406
+ this.db.run(`CREATE INDEX IF NOT EXISTS idx_ai_logs_session_id ON ai_call_logs(session_id)`);
407
+ this.db.run(`CREATE INDEX IF NOT EXISTS idx_ai_logs_call_type ON ai_call_logs(call_type)`);
408
+ }
409
+ getTableColumns(tableName) {
410
+ const result = this.all(`PRAGMA table_info("${tableName}")`);
411
+ return result.map(row => row.name);
383
412
  }
384
413
  }
385
- /** 单例导出 */
386
414
  export const dbService = new DbService();
387
415
  //# sourceMappingURL=db.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"db.service.js","sourceRoot":"","sources":["../../../src/modules/db/db.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db.service.js","sourceRoot":"","sources":["../../../src/modules/db/db.service.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * 数据库类型定义
3
3
  *
4
- * Database: better-sqlite3 的数据库实例类型
4
+ * Database: sql.js 的数据库实例类型
5
5
  */
6
- import Database from 'better-sqlite3';
7
- export type { Database };
6
+ import { Database as SqlJsDatabase } from 'sql.js';
7
+ export type { SqlJsDatabase as Database };
8
8
  //# sourceMappingURL=db.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"db.types.d.ts","sourceRoot":"","sources":["../../../src/modules/db/db.types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,YAAY,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"db.types.d.ts","sourceRoot":"","sources":["../../../src/modules/db/db.types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEnD,YAAY,EAAE,aAAa,IAAI,QAAQ,EAAE,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * 数据库类型定义
3
3
  *
4
- * Database: better-sqlite3 的数据库实例类型
4
+ * Database: sql.js 的数据库实例类型
5
5
  */
6
6
  export {};
7
7
  //# sourceMappingURL=db.types.js.map
@@ -1,14 +1,15 @@
1
1
  import { spawn } from 'child_process';
2
2
  import fs from 'fs';
3
3
  import path from 'path';
4
+ import which from 'which';
4
5
  const DEFAULT_TIMEOUT = 120000;
5
6
  const MAX_BYTES = 50 * 1024;
6
7
  const MAX_LINES = 2000;
7
8
  function getShell() {
8
9
  if (process.platform === 'win32') {
9
- const gitPath = spawn('where', ['git'], { shell: true }).stdout.toString().trim();
10
+ const gitPath = which.sync('git', { nothrow: true });
10
11
  if (gitPath) {
11
- const bashPath = path.join(path.dirname(gitPath), '..', 'bin', 'bash.exe');
12
+ const bashPath = path.resolve(path.dirname(gitPath), '..', '..', 'bin', 'bash.exe');
12
13
  try {
13
14
  if (fs.statSync(bashPath).isFile()) {
14
15
  return bashPath;
@@ -1 +1 @@
1
- {"version":3,"file":"bash.js","sourceRoot":"","sources":["../../../../src/modules/tools/builtin/bash.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bash.js","sourceRoot":"","sources":["../../../../src/modules/tools/builtin/bash.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Tool } from '../tool.types.js';
2
+ export declare const bashTool: Tool;
3
+ //# sourceMappingURL=bash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bash.d.ts","sourceRoot":"","sources":["../../../../src/modules/tools/provider/bash.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAA2B,MAAM,kBAAkB,CAAA;AAwChE,eAAO,MAAM,QAAQ,EAAE,IA0GtB,CAAA"}