@downcity/agent 1.1.7 → 1.1.8

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 (274) hide show
  1. package/bin/agent/AgentContext.d.ts.map +1 -1
  2. package/bin/agent/AgentContext.js +1 -0
  3. package/bin/agent/AgentContext.js.map +1 -1
  4. package/bin/agent/AgentContextTypes.d.ts +5 -1
  5. package/bin/agent/AgentContextTypes.d.ts.map +1 -1
  6. package/bin/agent/AgentRuntime.d.ts +6 -1
  7. package/bin/agent/AgentRuntime.d.ts.map +1 -1
  8. package/bin/agent/AgentRuntime.js +22 -3
  9. package/bin/agent/AgentRuntime.js.map +1 -1
  10. package/bin/agent/AgentRuntimeState.d.ts.map +1 -1
  11. package/bin/agent/AgentRuntimeState.js +58 -2
  12. package/bin/agent/AgentRuntimeState.js.map +1 -1
  13. package/bin/agent/AgentRuntimeTypes.d.ts +5 -1
  14. package/bin/agent/AgentRuntimeTypes.d.ts.map +1 -1
  15. package/bin/agent/project/AgentInitializer.d.ts +3 -2
  16. package/bin/agent/project/AgentInitializer.d.ts.map +1 -1
  17. package/bin/agent/project/AgentInitializer.js +34 -44
  18. package/bin/agent/project/AgentInitializer.js.map +1 -1
  19. package/bin/config/Config.d.ts.map +1 -1
  20. package/bin/config/Config.js +2 -21
  21. package/bin/config/Config.js.map +1 -1
  22. package/bin/config/Paths.d.ts +1 -5
  23. package/bin/config/Paths.d.ts.map +1 -1
  24. package/bin/config/Paths.js +2 -8
  25. package/bin/config/Paths.js.map +1 -1
  26. package/bin/host/daemon/ProjectSetup.d.ts +2 -1
  27. package/bin/host/daemon/ProjectSetup.d.ts.map +1 -1
  28. package/bin/host/daemon/ProjectSetup.js +14 -21
  29. package/bin/host/daemon/ProjectSetup.js.map +1 -1
  30. package/bin/host/runtime/AgentHostRuntime.d.ts.map +1 -1
  31. package/bin/host/runtime/AgentHostRuntime.js +1 -2
  32. package/bin/host/runtime/AgentHostRuntime.js.map +1 -1
  33. package/bin/host/runtime/CityPaths.d.ts +0 -3
  34. package/bin/host/runtime/CityPaths.d.ts.map +1 -1
  35. package/bin/host/runtime/CityPaths.js +0 -3
  36. package/bin/host/runtime/CityPaths.js.map +1 -1
  37. package/bin/host/sdk/Agent.d.ts +1 -0
  38. package/bin/host/sdk/Agent.d.ts.map +1 -1
  39. package/bin/host/sdk/Agent.js +24 -2
  40. package/bin/host/sdk/Agent.js.map +1 -1
  41. package/bin/host/sdk/AgentSdkTypes.d.ts +9 -0
  42. package/bin/host/sdk/AgentSdkTypes.d.ts.map +1 -1
  43. package/bin/http/Server.d.ts.map +1 -1
  44. package/bin/http/Server.js +1 -11
  45. package/bin/http/Server.js.map +1 -1
  46. package/bin/http/auth/AuthEnv.d.ts +0 -9
  47. package/bin/http/auth/AuthEnv.d.ts.map +1 -1
  48. package/bin/http/auth/AuthEnv.js +0 -9
  49. package/bin/http/auth/AuthEnv.js.map +1 -1
  50. package/bin/http/auth/CliAuthStateStore.d.ts +0 -4
  51. package/bin/http/auth/CliAuthStateStore.d.ts.map +1 -1
  52. package/bin/http/auth/CliAuthStateStore.js +0 -4
  53. package/bin/http/auth/CliAuthStateStore.js.map +1 -1
  54. package/bin/http/control/ModelRoutes.d.ts.map +1 -1
  55. package/bin/http/control/ModelRoutes.js +3 -8
  56. package/bin/http/control/ModelRoutes.js.map +1 -1
  57. package/bin/index.d.ts +2 -6
  58. package/bin/index.d.ts.map +1 -1
  59. package/bin/index.js +2 -6
  60. package/bin/index.js.map +1 -1
  61. package/bin/model/CreateModel.d.ts +2 -2
  62. package/bin/model/CreateModel.d.ts.map +1 -1
  63. package/bin/model/CreateModel.js +13 -12
  64. package/bin/model/CreateModel.js.map +1 -1
  65. package/bin/plugin/Activation.d.ts +4 -0
  66. package/bin/plugin/Activation.d.ts.map +1 -1
  67. package/bin/plugin/Activation.js +2 -2
  68. package/bin/plugin/Activation.js.map +1 -1
  69. package/bin/plugin/LocalExecution.d.ts.map +1 -1
  70. package/bin/plugin/LocalExecution.js +23 -2
  71. package/bin/plugin/LocalExecution.js.map +1 -1
  72. package/bin/plugin/PluginRegistry.js +2 -2
  73. package/bin/plugin/PluginRegistry.js.map +1 -1
  74. package/bin/plugins/asr/Plugin.d.ts.map +1 -1
  75. package/bin/plugins/asr/Plugin.js +4 -5
  76. package/bin/plugins/asr/Plugin.js.map +1 -1
  77. package/bin/plugins/auth/Plugin.d.ts.map +1 -1
  78. package/bin/plugins/auth/Plugin.js +1 -0
  79. package/bin/plugins/auth/Plugin.js.map +1 -1
  80. package/bin/plugins/auth/runtime/AuthorizationConfig.d.ts +4 -4
  81. package/bin/plugins/auth/runtime/AuthorizationConfig.d.ts.map +1 -1
  82. package/bin/plugins/auth/runtime/AuthorizationConfig.js +28 -26
  83. package/bin/plugins/auth/runtime/AuthorizationConfig.js.map +1 -1
  84. package/bin/plugins/auth/runtime/AuthorizationPolicy.d.ts +2 -0
  85. package/bin/plugins/auth/runtime/AuthorizationPolicy.d.ts.map +1 -1
  86. package/bin/plugins/auth/runtime/AuthorizationPolicy.js +3 -2
  87. package/bin/plugins/auth/runtime/AuthorizationPolicy.js.map +1 -1
  88. package/bin/plugins/auth/runtime/AuthorizationStore.d.ts +1 -1
  89. package/bin/plugins/auth/runtime/AuthorizationStore.d.ts.map +1 -1
  90. package/bin/plugins/auth/runtime/AuthorizationStore.js +3 -4
  91. package/bin/plugins/auth/runtime/AuthorizationStore.js.map +1 -1
  92. package/bin/plugins/skill/Plugin.js +2 -2
  93. package/bin/plugins/skill/Plugin.js.map +1 -1
  94. package/bin/plugins/tts/Plugin.d.ts.map +1 -1
  95. package/bin/plugins/tts/Plugin.js +4 -5
  96. package/bin/plugins/tts/Plugin.js.map +1 -1
  97. package/bin/plugins/web/Plugin.d.ts.map +1 -1
  98. package/bin/plugins/web/Plugin.js +4 -5
  99. package/bin/plugins/web/Plugin.js.map +1 -1
  100. package/bin/plugins/workboard/Plugin.js +2 -2
  101. package/bin/plugins/workboard/Plugin.js.map +1 -1
  102. package/bin/service/builtins/chat/accounts/ChannelAccountService.d.ts +4 -1
  103. package/bin/service/builtins/chat/accounts/ChannelAccountService.d.ts.map +1 -1
  104. package/bin/service/builtins/chat/accounts/ChannelAccountService.js +64 -91
  105. package/bin/service/builtins/chat/accounts/ChannelAccountService.js.map +1 -1
  106. package/bin/service/builtins/chat/runtime/ChatChannelActions.d.ts.map +1 -1
  107. package/bin/service/builtins/chat/runtime/ChatChannelActions.js +11 -18
  108. package/bin/service/builtins/chat/runtime/ChatChannelActions.js.map +1 -1
  109. package/bin/service/builtins/chat/runtime/ChatChannelCore.d.ts +1 -1
  110. package/bin/service/builtins/chat/runtime/ChatChannelCore.d.ts.map +1 -1
  111. package/bin/service/builtins/chat/runtime/ChatChannelCore.js +9 -17
  112. package/bin/service/builtins/chat/runtime/ChatChannelCore.js.map +1 -1
  113. package/bin/service/builtins/memory/Action.d.ts +1 -5
  114. package/bin/service/builtins/memory/Action.d.ts.map +1 -1
  115. package/bin/service/builtins/memory/Action.js +4 -42
  116. package/bin/service/builtins/memory/Action.js.map +1 -1
  117. package/bin/service/builtins/memory/MemoryService.d.ts.map +1 -1
  118. package/bin/service/builtins/memory/MemoryService.js +2 -32
  119. package/bin/service/builtins/memory/MemoryService.js.map +1 -1
  120. package/bin/service/builtins/memory/runtime/Search.d.ts +7 -3
  121. package/bin/service/builtins/memory/runtime/Search.d.ts.map +1 -1
  122. package/bin/service/builtins/memory/runtime/Search.js +220 -16
  123. package/bin/service/builtins/memory/runtime/Search.js.map +1 -1
  124. package/bin/service/builtins/memory/runtime/Store.d.ts +9 -50
  125. package/bin/service/builtins/memory/runtime/Store.d.ts.map +1 -1
  126. package/bin/service/builtins/memory/runtime/Store.js +10 -130
  127. package/bin/service/builtins/memory/runtime/Store.js.map +1 -1
  128. package/bin/service/builtins/memory/runtime/Writer.d.ts.map +1 -1
  129. package/bin/service/builtins/memory/runtime/Writer.js +1 -2
  130. package/bin/service/builtins/memory/runtime/Writer.js.map +1 -1
  131. package/bin/service/builtins/memory/types/Memory.d.ts +3 -57
  132. package/bin/service/builtins/memory/types/Memory.d.ts.map +1 -1
  133. package/bin/service/schedule/Store.d.ts +22 -25
  134. package/bin/service/schedule/Store.d.ts.map +1 -1
  135. package/bin/service/schedule/Store.js +172 -154
  136. package/bin/service/schedule/Store.js.map +1 -1
  137. package/bin/session/composer/system/default/SystemDomain.d.ts.map +1 -1
  138. package/bin/session/composer/system/default/SystemDomain.js +1 -0
  139. package/bin/session/composer/system/default/SystemDomain.js.map +1 -1
  140. package/bin/shared/types/AgentHost.d.ts +120 -4
  141. package/bin/shared/types/AgentHost.d.ts.map +1 -1
  142. package/bin/shared/types/Plugin.d.ts +5 -1
  143. package/bin/shared/types/Plugin.d.ts.map +1 -1
  144. package/package.json +1 -4
  145. package/src/agent/AgentContext.ts +1 -0
  146. package/src/agent/AgentContextTypes.ts +5 -0
  147. package/src/agent/AgentRuntime.ts +32 -3
  148. package/src/agent/AgentRuntimeState.ts +66 -2
  149. package/src/agent/AgentRuntimeTypes.ts +5 -0
  150. package/src/agent/project/AgentInitializer.ts +40 -42
  151. package/src/config/Config.ts +2 -17
  152. package/src/config/Paths.ts +2 -9
  153. package/src/host/daemon/ProjectSetup.ts +19 -21
  154. package/src/host/runtime/AgentHostRuntime.ts +0 -2
  155. package/src/host/runtime/CityPaths.ts +0 -3
  156. package/src/host/sdk/Agent.ts +26 -2
  157. package/src/host/sdk/AgentSdkTypes.ts +10 -0
  158. package/src/http/Server.ts +0 -13
  159. package/src/http/auth/AuthEnv.ts +0 -9
  160. package/src/http/auth/CliAuthStateStore.ts +0 -4
  161. package/src/http/control/ModelRoutes.ts +3 -9
  162. package/src/index.ts +2 -12
  163. package/src/model/CreateModel.ts +15 -13
  164. package/src/plugin/Activation.ts +6 -2
  165. package/src/plugin/LocalExecution.ts +24 -2
  166. package/src/plugin/PluginRegistry.ts +2 -2
  167. package/src/plugins/asr/Plugin.ts +4 -5
  168. package/src/plugins/auth/Plugin.ts +1 -0
  169. package/src/plugins/auth/runtime/AuthorizationConfig.ts +47 -37
  170. package/src/plugins/auth/runtime/AuthorizationPolicy.ts +5 -2
  171. package/src/plugins/auth/runtime/AuthorizationStore.ts +6 -5
  172. package/src/plugins/skill/Plugin.ts +2 -2
  173. package/src/plugins/tts/Plugin.ts +4 -5
  174. package/src/plugins/web/Plugin.ts +4 -5
  175. package/src/plugins/workboard/Plugin.ts +2 -2
  176. package/src/service/builtins/chat/accounts/ChannelAccountService.ts +42 -62
  177. package/src/service/builtins/chat/runtime/ChatChannelActions.ts +12 -18
  178. package/src/service/builtins/chat/runtime/ChatChannelCore.ts +9 -14
  179. package/src/service/builtins/memory/Action.ts +6 -47
  180. package/src/service/builtins/memory/MemoryService.ts +1 -33
  181. package/src/service/builtins/memory/runtime/Search.ts +256 -16
  182. package/src/service/builtins/memory/runtime/Store.ts +13 -185
  183. package/src/service/builtins/memory/runtime/Writer.ts +1 -2
  184. package/src/service/builtins/memory/types/Memory.ts +2 -59
  185. package/src/service/schedule/Store.ts +215 -175
  186. package/src/session/composer/system/default/SystemDomain.ts +1 -0
  187. package/src/shared/types/AgentHost.ts +138 -4
  188. package/src/shared/types/Plugin.ts +5 -0
  189. package/tsconfig.tsbuildinfo +1 -1
  190. package/bin/http/auth/AuthMiddleware.d.ts +0 -36
  191. package/bin/http/auth/AuthMiddleware.d.ts.map +0 -1
  192. package/bin/http/auth/AuthMiddleware.js +0 -37
  193. package/bin/http/auth/AuthMiddleware.js.map +0 -1
  194. package/bin/http/auth/AuthRoutes.d.ts +0 -17
  195. package/bin/http/auth/AuthRoutes.d.ts.map +0 -1
  196. package/bin/http/auth/AuthRoutes.js +0 -78
  197. package/bin/http/auth/AuthRoutes.js.map +0 -1
  198. package/bin/http/auth/AuthService.d.ts +0 -119
  199. package/bin/http/auth/AuthService.d.ts.map +0 -1
  200. package/bin/http/auth/AuthService.js +0 -307
  201. package/bin/http/auth/AuthService.js.map +0 -1
  202. package/bin/http/auth/AuthStore.d.ts +0 -165
  203. package/bin/http/auth/AuthStore.d.ts.map +0 -1
  204. package/bin/http/auth/AuthStore.js +0 -442
  205. package/bin/http/auth/AuthStore.js.map +0 -1
  206. package/bin/http/auth/RoutePolicy.d.ts +0 -30
  207. package/bin/http/auth/RoutePolicy.d.ts.map +0 -1
  208. package/bin/http/auth/RoutePolicy.js +0 -229
  209. package/bin/http/auth/RoutePolicy.js.map +0 -1
  210. package/bin/plugin/Lifecycle.d.ts +0 -33
  211. package/bin/plugin/Lifecycle.d.ts.map +0 -1
  212. package/bin/plugin/Lifecycle.js +0 -102
  213. package/bin/plugin/Lifecycle.js.map +0 -1
  214. package/bin/service/builtins/memory/runtime/Indexer.d.ts +0 -71
  215. package/bin/service/builtins/memory/runtime/Indexer.d.ts.map +0 -1
  216. package/bin/service/builtins/memory/runtime/Indexer.js +0 -345
  217. package/bin/service/builtins/memory/runtime/Indexer.js.map +0 -1
  218. package/bin/service/schedule/Schema.d.ts +0 -171
  219. package/bin/service/schedule/Schema.d.ts.map +0 -1
  220. package/bin/service/schedule/Schema.js +0 -26
  221. package/bin/service/schedule/Schema.js.map +0 -1
  222. package/bin/shared/utils/store/StoreChannelAccountRepository.d.ts +0 -34
  223. package/bin/shared/utils/store/StoreChannelAccountRepository.d.ts.map +0 -1
  224. package/bin/shared/utils/store/StoreChannelAccountRepository.js +0 -198
  225. package/bin/shared/utils/store/StoreChannelAccountRepository.js.map +0 -1
  226. package/bin/shared/utils/store/StoreEnvRepository.d.ts +0 -98
  227. package/bin/shared/utils/store/StoreEnvRepository.d.ts.map +0 -1
  228. package/bin/shared/utils/store/StoreEnvRepository.js +0 -334
  229. package/bin/shared/utils/store/StoreEnvRepository.js.map +0 -1
  230. package/bin/shared/utils/store/StoreModelRepository.d.ts +0 -61
  231. package/bin/shared/utils/store/StoreModelRepository.d.ts.map +0 -1
  232. package/bin/shared/utils/store/StoreModelRepository.js +0 -278
  233. package/bin/shared/utils/store/StoreModelRepository.js.map +0 -1
  234. package/bin/shared/utils/store/StoreSchema.d.ts +0 -13
  235. package/bin/shared/utils/store/StoreSchema.d.ts.map +0 -1
  236. package/bin/shared/utils/store/StoreSchema.js +0 -319
  237. package/bin/shared/utils/store/StoreSchema.js.map +0 -1
  238. package/bin/shared/utils/store/StoreSecureSettings.d.ts +0 -33
  239. package/bin/shared/utils/store/StoreSecureSettings.d.ts.map +0 -1
  240. package/bin/shared/utils/store/StoreSecureSettings.js +0 -91
  241. package/bin/shared/utils/store/StoreSecureSettings.js.map +0 -1
  242. package/bin/shared/utils/store/StoreShared.d.ts +0 -44
  243. package/bin/shared/utils/store/StoreShared.d.ts.map +0 -1
  244. package/bin/shared/utils/store/StoreShared.js +0 -40
  245. package/bin/shared/utils/store/StoreShared.js.map +0 -1
  246. package/bin/shared/utils/store/crypto.d.ts +0 -24
  247. package/bin/shared/utils/store/crypto.d.ts.map +0 -1
  248. package/bin/shared/utils/store/crypto.js +0 -101
  249. package/bin/shared/utils/store/crypto.js.map +0 -1
  250. package/bin/shared/utils/store/index.d.ts +0 -230
  251. package/bin/shared/utils/store/index.d.ts.map +0 -1
  252. package/bin/shared/utils/store/index.js +0 -360
  253. package/bin/shared/utils/store/index.js.map +0 -1
  254. package/bin/shared/utils/store/schema.d.ts +0 -690
  255. package/bin/shared/utils/store/schema.d.ts.map +0 -1
  256. package/bin/shared/utils/store/schema.js +0 -81
  257. package/bin/shared/utils/store/schema.js.map +0 -1
  258. package/src/http/auth/AuthMiddleware.ts +0 -61
  259. package/src/http/auth/AuthRoutes.ts +0 -100
  260. package/src/http/auth/AuthService.ts +0 -367
  261. package/src/http/auth/AuthStore.ts +0 -572
  262. package/src/http/auth/RoutePolicy.ts +0 -255
  263. package/src/plugin/Lifecycle.ts +0 -116
  264. package/src/service/builtins/memory/runtime/Indexer.ts +0 -466
  265. package/src/service/schedule/Schema.ts +0 -34
  266. package/src/shared/utils/store/StoreChannelAccountRepository.ts +0 -269
  267. package/src/shared/utils/store/StoreEnvRepository.ts +0 -452
  268. package/src/shared/utils/store/StoreModelRepository.ts +0 -324
  269. package/src/shared/utils/store/StoreSchema.ts +0 -344
  270. package/src/shared/utils/store/StoreSecureSettings.ts +0 -126
  271. package/src/shared/utils/store/StoreShared.ts +0 -67
  272. package/src/shared/utils/store/crypto.ts +0 -112
  273. package/src/shared/utils/store/index.ts +0 -497
  274. package/src/shared/utils/store/schema.ts +0 -103
@@ -1,345 +0,0 @@
1
- /**
2
- * Memory Indexer(SQLite FTS)。
3
- *
4
- * 关键点(中文)
5
- * - 使用 SQLite + FTS5 做本地检索加速。
6
- * - Markdown 仍是事实源,索引可重建。
7
- */
8
- import crypto from "node:crypto";
9
- import fs from "node:fs/promises";
10
- import { mkdirSync } from "node:fs";
11
- import path from "node:path";
12
- import Database from "better-sqlite3";
13
- const INDEX_SCHEMA_VERSION = 1;
14
- const SNIPPET_MAX_CHARS = 700;
15
- const CHUNK_MAX_CHARS = 1600;
16
- const CHUNK_OVERLAP_CHARS = 240;
17
- function hashText(value) {
18
- return crypto.createHash("sha256").update(value).digest("hex");
19
- }
20
- function normalizeText(input) {
21
- return String(input || "").replace(/\r\n/g, "\n");
22
- }
23
- function quoteFtsToken(token) {
24
- return `"${token.replace(/"/g, '""')}"`;
25
- }
26
- /**
27
- * 构建 FTS 查询表达式。
28
- */
29
- export function buildFtsQuery(raw) {
30
- const normalized = String(raw || "").trim();
31
- if (!normalized)
32
- return null;
33
- const tokens = normalized
34
- .replace(/[^\p{L}\p{N}_-]+/gu, " ")
35
- .split(/\s+/)
36
- .map((item) => item.trim())
37
- .filter(Boolean)
38
- .slice(0, 12);
39
- if (tokens.length === 0) {
40
- return null;
41
- }
42
- return tokens.map((token) => `${quoteFtsToken(token)}*`).join(" ");
43
- }
44
- function bm25RankToScore(rank) {
45
- if (!Number.isFinite(rank)) {
46
- return 0;
47
- }
48
- return 1 / (1 + Math.abs(rank));
49
- }
50
- function truncateText(value, maxChars) {
51
- if (value.length <= maxChars) {
52
- return value;
53
- }
54
- return value.slice(0, maxChars);
55
- }
56
- function chunkMarkdown(content) {
57
- const lines = normalizeText(content).split("\n");
58
- if (lines.length === 0) {
59
- return [];
60
- }
61
- const out = [];
62
- let bucket = [];
63
- let chars = 0;
64
- const flush = () => {
65
- if (bucket.length === 0)
66
- return;
67
- const startLine = bucket[0]?.lineNo ?? 1;
68
- const endLine = bucket[bucket.length - 1]?.lineNo ?? startLine;
69
- const text = bucket.map((item) => item.line).join("\n").trim();
70
- if (text) {
71
- out.push({
72
- startLine,
73
- endLine,
74
- text,
75
- hash: hashText(text),
76
- });
77
- }
78
- };
79
- const carryOverlap = () => {
80
- if (bucket.length === 0 || CHUNK_OVERLAP_CHARS <= 0) {
81
- bucket = [];
82
- chars = 0;
83
- return;
84
- }
85
- let acc = 0;
86
- const next = [];
87
- for (let i = bucket.length - 1; i >= 0; i -= 1) {
88
- const row = bucket[i];
89
- if (!row)
90
- continue;
91
- acc += row.line.length + 1;
92
- next.unshift(row);
93
- if (acc >= CHUNK_OVERLAP_CHARS)
94
- break;
95
- }
96
- bucket = next;
97
- chars = bucket.reduce((sum, item) => sum + item.line.length + 1, 0);
98
- };
99
- for (let i = 0; i < lines.length; i += 1) {
100
- const line = lines[i] ?? "";
101
- const rowSize = line.length + 1;
102
- if (bucket.length > 0 && chars + rowSize > CHUNK_MAX_CHARS) {
103
- flush();
104
- carryOverlap();
105
- }
106
- bucket.push({ line, lineNo: i + 1 });
107
- chars += rowSize;
108
- }
109
- flush();
110
- return out;
111
- }
112
- /**
113
- * MemoryIndexManager(单项目单实例)。
114
- */
115
- export class MemoryIndexer {
116
- rootPath;
117
- dbPath;
118
- db;
119
- constructor(rootPath) {
120
- this.rootPath = rootPath;
121
- this.dbPath = path.join(rootPath, ".downcity", "memory", "index.sqlite");
122
- const dir = path.dirname(this.dbPath);
123
- // 同步创建目录,保证 sqlite 可打开。
124
- // 关键点(中文):这里是启动路径,避免引入异步竞态。
125
- mkdirSync(dir, { recursive: true });
126
- this.db = new Database(this.dbPath);
127
- // 关键点(中文):使用 WAL 改善并发读写稳定性,避免长事务阻塞查询。
128
- this.db.pragma("journal_mode = WAL");
129
- this.ensureSchema();
130
- }
131
- getRelativeDbPath() {
132
- return path.relative(this.rootPath, this.dbPath).replace(/\\/g, "/");
133
- }
134
- close() {
135
- this.db.close();
136
- }
137
- ensureSchema() {
138
- this.db.exec(`
139
- CREATE TABLE IF NOT EXISTS meta (
140
- key TEXT PRIMARY KEY,
141
- value TEXT NOT NULL
142
- );
143
- `);
144
- this.db.exec(`
145
- CREATE TABLE IF NOT EXISTS files (
146
- path TEXT PRIMARY KEY,
147
- source TEXT NOT NULL,
148
- hash TEXT NOT NULL,
149
- mtime INTEGER NOT NULL,
150
- size INTEGER NOT NULL
151
- );
152
- `);
153
- this.db.exec(`
154
- CREATE TABLE IF NOT EXISTS chunks (
155
- id TEXT PRIMARY KEY,
156
- path TEXT NOT NULL,
157
- source TEXT NOT NULL,
158
- start_line INTEGER NOT NULL,
159
- end_line INTEGER NOT NULL,
160
- text TEXT NOT NULL,
161
- hash TEXT NOT NULL,
162
- updated_at INTEGER NOT NULL
163
- );
164
- `);
165
- this.db.exec(`
166
- CREATE INDEX IF NOT EXISTS idx_chunks_path ON chunks(path);
167
- `);
168
- this.db.exec(`
169
- CREATE INDEX IF NOT EXISTS idx_chunks_source ON chunks(source);
170
- `);
171
- this.db.exec(`
172
- CREATE VIRTUAL TABLE IF NOT EXISTS chunks_fts USING fts5(
173
- text,
174
- id UNINDEXED,
175
- path UNINDEXED,
176
- source UNINDEXED,
177
- start_line UNINDEXED,
178
- end_line UNINDEXED
179
- );
180
- `);
181
- const schemaVersion = this.db
182
- .prepare(`SELECT value FROM meta WHERE key = ?`)
183
- .get("schema_version");
184
- if (schemaVersion?.value !== String(INDEX_SCHEMA_VERSION)) {
185
- this.db
186
- .prepare(`INSERT INTO meta (key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value`)
187
- .run("schema_version", String(INDEX_SCHEMA_VERSION));
188
- }
189
- }
190
- listIndexedFiles() {
191
- return this.db
192
- .prepare(`SELECT path, hash FROM files`)
193
- .all();
194
- }
195
- deleteFileIndex(relPath) {
196
- this.db.prepare(`DELETE FROM chunks_fts WHERE path = ?`).run(relPath);
197
- this.db.prepare(`DELETE FROM chunks WHERE path = ?`).run(relPath);
198
- this.db.prepare(`DELETE FROM files WHERE path = ?`).run(relPath);
199
- }
200
- writeFileChunks(file, chunks) {
201
- const now = Date.now();
202
- const insertChunk = this.db.prepare(`INSERT INTO chunks (id, path, source, start_line, end_line, text, hash, updated_at)
203
- VALUES (?, ?, ?, ?, ?, ?, ?, ?)`);
204
- const insertFts = this.db.prepare(`INSERT INTO chunks_fts (text, id, path, source, start_line, end_line)
205
- VALUES (?, ?, ?, ?, ?, ?)`);
206
- for (const chunk of chunks) {
207
- const id = hashText(`${file.relPath}:${file.source}:${chunk.startLine}:${chunk.endLine}:${chunk.hash}`);
208
- insertChunk.run(id, file.relPath, file.source, chunk.startLine, chunk.endLine, chunk.text, chunk.hash, now);
209
- insertFts.run(chunk.text, id, file.relPath, file.source, chunk.startLine, chunk.endLine);
210
- }
211
- }
212
- async sync(files, options) {
213
- const totalFiles = files.length;
214
- const force = options?.force === true;
215
- const existing = new Map(this.listIndexedFiles().map((item) => [item.path, item.hash]));
216
- const activePaths = new Set(files.map((item) => item.relPath));
217
- let reindexedFiles = 0;
218
- let removedFiles = 0;
219
- let totalChunks = 0;
220
- this.db.exec("BEGIN");
221
- try {
222
- for (const file of files) {
223
- const stat = await fs.stat(file.absPath);
224
- const content = normalizeText(await fs.readFile(file.absPath, "utf-8"));
225
- const hash = hashText(content);
226
- const prevHash = existing.get(file.relPath);
227
- if (!force && prevHash === hash) {
228
- continue;
229
- }
230
- this.deleteFileIndex(file.relPath);
231
- const chunks = chunkMarkdown(content);
232
- this.writeFileChunks(file, chunks);
233
- this.db
234
- .prepare(`INSERT INTO files (path, source, hash, mtime, size)
235
- VALUES (?, ?, ?, ?, ?)
236
- ON CONFLICT(path) DO UPDATE SET
237
- source = excluded.source,
238
- hash = excluded.hash,
239
- mtime = excluded.mtime,
240
- size = excluded.size`)
241
- .run(file.relPath, file.source, hash, stat.mtimeMs, stat.size);
242
- reindexedFiles += 1;
243
- totalChunks += chunks.length;
244
- }
245
- for (const stale of existing.keys()) {
246
- if (activePaths.has(stale))
247
- continue;
248
- this.deleteFileIndex(stale);
249
- removedFiles += 1;
250
- }
251
- this.db
252
- .prepare(`INSERT INTO meta (key, value) VALUES (?, ?)
253
- ON CONFLICT(key) DO UPDATE SET value = excluded.value`)
254
- .run("last_indexed_at", String(Date.now()));
255
- this.db.exec("COMMIT");
256
- }
257
- catch (error) {
258
- this.db.exec("ROLLBACK");
259
- throw error;
260
- }
261
- return {
262
- totalFiles,
263
- reindexedFiles,
264
- removedFiles,
265
- totalChunks,
266
- };
267
- }
268
- search(params) {
269
- const ftsQuery = buildFtsQuery(params.query);
270
- if (!ftsQuery) {
271
- return [];
272
- }
273
- const rows = this.db
274
- .prepare(`SELECT path, source, start_line, end_line, text, bm25(chunks_fts) AS rank
275
- FROM chunks_fts
276
- WHERE chunks_fts MATCH ?
277
- ORDER BY rank ASC
278
- LIMIT ?`)
279
- .all(ftsQuery, Math.max(1, params.maxResults * 3));
280
- const mapped = rows
281
- .map((row) => {
282
- const score = bm25RankToScore(row.rank);
283
- const citation = row.start_line === row.end_line
284
- ? `${row.path}#L${row.start_line}`
285
- : `${row.path}#L${row.start_line}-L${row.end_line}`;
286
- return {
287
- path: row.path,
288
- source: row.source,
289
- startLine: row.start_line,
290
- endLine: row.end_line,
291
- score,
292
- snippet: truncateText(row.text, SNIPPET_MAX_CHARS),
293
- citation,
294
- };
295
- })
296
- .filter((item) => item.score >= params.minScore)
297
- .slice(0, params.maxResults);
298
- let remain = Math.max(0, params.maxInjectedChars);
299
- const clamped = [];
300
- for (const item of mapped) {
301
- if (remain <= 0)
302
- break;
303
- if (item.snippet.length <= remain) {
304
- clamped.push(item);
305
- remain -= item.snippet.length;
306
- continue;
307
- }
308
- clamped.push({
309
- ...item,
310
- snippet: item.snippet.slice(0, remain),
311
- });
312
- break;
313
- }
314
- return clamped;
315
- }
316
- status() {
317
- const filesRow = this.db
318
- .prepare(`SELECT COUNT(*) as c FROM files`)
319
- .get();
320
- const chunksRow = this.db
321
- .prepare(`SELECT COUNT(*) as c FROM chunks`)
322
- .get();
323
- const sourceRows = this.db
324
- .prepare(`SELECT source, COUNT(*) as files,
325
- (SELECT COUNT(*) FROM chunks c WHERE c.source = f.source) AS chunks
326
- FROM files f
327
- GROUP BY source`)
328
- .all();
329
- const orderedSources = ["longterm", "daily", "working"];
330
- const sourceCounts = orderedSources.map((source) => {
331
- const found = sourceRows.find((item) => item.source === source);
332
- return {
333
- source,
334
- files: found?.files ?? 0,
335
- chunks: found?.chunks ?? 0,
336
- };
337
- });
338
- return {
339
- files: filesRow?.c ?? 0,
340
- chunks: chunksRow?.c ?? 0,
341
- sourceCounts,
342
- };
343
- }
344
- }
345
- //# sourceMappingURL=Indexer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Indexer.js","sourceRoot":"","sources":["../../../../../src/service/builtins/memory/runtime/Indexer.ts"],"names":[],"mappings":"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"}
@@ -1,171 +0,0 @@
1
- /**
2
- * Service Schedule SQLite schema。
3
- *
4
- * 关键点(中文)
5
- * - 使用 Drizzle 定义本地调度任务表。
6
- * - 仅保留 MVP 所需字段:任务目标、执行时间、状态与错误摘要。
7
- */
8
- /**
9
- * 调度任务表。
10
- */
11
- export declare const scheduledJobsTable: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
12
- name: "scheduled_jobs";
13
- schema: undefined;
14
- columns: {
15
- id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
16
- name: "id";
17
- tableName: "scheduled_jobs";
18
- dataType: "string";
19
- columnType: "SQLiteText";
20
- data: string;
21
- driverParam: string;
22
- notNull: true;
23
- hasDefault: false;
24
- isPrimaryKey: true;
25
- isAutoincrement: false;
26
- hasRuntimeDefault: false;
27
- enumValues: [string, ...string[]];
28
- baseColumn: never;
29
- identity: undefined;
30
- generated: undefined;
31
- }, object>;
32
- serviceName: import("drizzle-orm/sqlite-core").SQLiteColumn<{
33
- name: "service_name";
34
- tableName: "scheduled_jobs";
35
- dataType: "string";
36
- columnType: "SQLiteText";
37
- data: string;
38
- driverParam: string;
39
- notNull: true;
40
- hasDefault: false;
41
- isPrimaryKey: false;
42
- isAutoincrement: false;
43
- hasRuntimeDefault: false;
44
- enumValues: [string, ...string[]];
45
- baseColumn: never;
46
- identity: undefined;
47
- generated: undefined;
48
- }, object>;
49
- actionName: import("drizzle-orm/sqlite-core").SQLiteColumn<{
50
- name: "action_name";
51
- tableName: "scheduled_jobs";
52
- dataType: "string";
53
- columnType: "SQLiteText";
54
- data: string;
55
- driverParam: string;
56
- notNull: true;
57
- hasDefault: false;
58
- isPrimaryKey: false;
59
- isAutoincrement: false;
60
- hasRuntimeDefault: false;
61
- enumValues: [string, ...string[]];
62
- baseColumn: never;
63
- identity: undefined;
64
- generated: undefined;
65
- }, object>;
66
- payloadJson: import("drizzle-orm/sqlite-core").SQLiteColumn<{
67
- name: "payload_json";
68
- tableName: "scheduled_jobs";
69
- dataType: "string";
70
- columnType: "SQLiteText";
71
- data: string;
72
- driverParam: string;
73
- notNull: true;
74
- hasDefault: false;
75
- isPrimaryKey: false;
76
- isAutoincrement: false;
77
- hasRuntimeDefault: false;
78
- enumValues: [string, ...string[]];
79
- baseColumn: never;
80
- identity: undefined;
81
- generated: undefined;
82
- }, object>;
83
- runAtMs: import("drizzle-orm/sqlite-core").SQLiteColumn<{
84
- name: "run_at_ms";
85
- tableName: "scheduled_jobs";
86
- dataType: "number";
87
- columnType: "SQLiteInteger";
88
- data: number;
89
- driverParam: number;
90
- notNull: true;
91
- hasDefault: false;
92
- isPrimaryKey: false;
93
- isAutoincrement: false;
94
- hasRuntimeDefault: false;
95
- enumValues: undefined;
96
- baseColumn: never;
97
- identity: undefined;
98
- generated: undefined;
99
- }, object>;
100
- status: import("drizzle-orm/sqlite-core").SQLiteColumn<{
101
- name: "status";
102
- tableName: "scheduled_jobs";
103
- dataType: "string";
104
- columnType: "SQLiteText";
105
- data: string;
106
- driverParam: string;
107
- notNull: true;
108
- hasDefault: false;
109
- isPrimaryKey: false;
110
- isAutoincrement: false;
111
- hasRuntimeDefault: false;
112
- enumValues: [string, ...string[]];
113
- baseColumn: never;
114
- identity: undefined;
115
- generated: undefined;
116
- }, object>;
117
- error: import("drizzle-orm/sqlite-core").SQLiteColumn<{
118
- name: "error";
119
- tableName: "scheduled_jobs";
120
- dataType: "string";
121
- columnType: "SQLiteText";
122
- data: string;
123
- driverParam: string;
124
- notNull: false;
125
- hasDefault: false;
126
- isPrimaryKey: false;
127
- isAutoincrement: false;
128
- hasRuntimeDefault: false;
129
- enumValues: [string, ...string[]];
130
- baseColumn: never;
131
- identity: undefined;
132
- generated: undefined;
133
- }, object>;
134
- createdAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
135
- name: "created_at";
136
- tableName: "scheduled_jobs";
137
- dataType: "number";
138
- columnType: "SQLiteInteger";
139
- data: number;
140
- driverParam: number;
141
- notNull: true;
142
- hasDefault: false;
143
- isPrimaryKey: false;
144
- isAutoincrement: false;
145
- hasRuntimeDefault: false;
146
- enumValues: undefined;
147
- baseColumn: never;
148
- identity: undefined;
149
- generated: undefined;
150
- }, object>;
151
- updatedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
152
- name: "updated_at";
153
- tableName: "scheduled_jobs";
154
- dataType: "number";
155
- columnType: "SQLiteInteger";
156
- data: number;
157
- driverParam: number;
158
- notNull: true;
159
- hasDefault: false;
160
- isPrimaryKey: false;
161
- isAutoincrement: false;
162
- hasRuntimeDefault: false;
163
- enumValues: undefined;
164
- baseColumn: never;
165
- identity: undefined;
166
- generated: undefined;
167
- }, object>;
168
- };
169
- dialect: "sqlite";
170
- }>;
171
- //# sourceMappingURL=Schema.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../../src/service/schedule/Schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoB9B,CAAC"}
@@ -1,26 +0,0 @@
1
- /**
2
- * Service Schedule SQLite schema。
3
- *
4
- * 关键点(中文)
5
- * - 使用 Drizzle 定义本地调度任务表。
6
- * - 仅保留 MVP 所需字段:任务目标、执行时间、状态与错误摘要。
7
- */
8
- import { index, integer, sqliteTable, text } from "drizzle-orm/sqlite-core";
9
- /**
10
- * 调度任务表。
11
- */
12
- export const scheduledJobsTable = sqliteTable("scheduled_jobs", {
13
- id: text("id").primaryKey(),
14
- serviceName: text("service_name").notNull(),
15
- actionName: text("action_name").notNull(),
16
- payloadJson: text("payload_json").notNull(),
17
- runAtMs: integer("run_at_ms").notNull(),
18
- status: text("status").notNull(),
19
- error: text("error"),
20
- createdAt: integer("created_at").notNull(),
21
- updatedAt: integer("updated_at").notNull(),
22
- }, (table) => ({
23
- statusRunAtIdx: index("scheduled_jobs_status_run_at_idx").on(table.status, table.runAtMs),
24
- runAtIdx: index("scheduled_jobs_run_at_idx").on(table.runAtMs),
25
- }));
26
- //# sourceMappingURL=Schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../../src/service/schedule/Schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAE5E;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,WAAW,CAC3C,gBAAgB,EAChB;IACE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE;IAC3B,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE;IAC3C,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE;IACzC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE;IAC3C,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE;IACvC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE;IAChC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE;IAC1C,SAAS,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE;CAC3C,EACD,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACV,cAAc,EAAE,KAAK,CAAC,kCAAkC,CAAC,CAAC,EAAE,CAC1D,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,OAAO,CACd;IACD,QAAQ,EAAE,KAAK,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;CAC/D,CAAC,CACH,CAAC"}
@@ -1,34 +0,0 @@
1
- /**
2
- * PlatformStore 渠道账号仓储。
3
- *
4
- * 关键点(中文)
5
- * - 统一管理 `channel_accounts` 表。
6
- * - 负责敏感字段解密/加密与 channel account 的语义化组装。
7
- */
8
- import type { StoredChannelAccount, UpsertChannelAccountInput } from "../../../shared/types/Store.js";
9
- import type { PlatformStoreContext } from "./StoreShared.js";
10
- /**
11
- * 同步列出 channel accounts。
12
- */
13
- export declare function listChannelAccountsSync(context: PlatformStoreContext, channelInput?: string): StoredChannelAccount[];
14
- /**
15
- * 同步按 ID 获取 channel account。
16
- */
17
- export declare function getChannelAccountSync(context: PlatformStoreContext, accountIdInput: string): StoredChannelAccount | null;
18
- /**
19
- * 异步列出 channel accounts。
20
- */
21
- export declare function listChannelAccounts(context: PlatformStoreContext, channelInput?: string): Promise<StoredChannelAccount[]>;
22
- /**
23
- * 异步按 ID 获取 channel account。
24
- */
25
- export declare function getChannelAccount(context: PlatformStoreContext, accountIdInput: string): Promise<StoredChannelAccount | null>;
26
- /**
27
- * 新增或更新 channel account。
28
- */
29
- export declare function upsertChannelAccount(context: PlatformStoreContext, input: UpsertChannelAccountInput): Promise<void>;
30
- /**
31
- * 删除 channel account。
32
- */
33
- export declare function removeChannelAccount(context: PlatformStoreContext, accountIdInput: string): void;
34
- //# sourceMappingURL=StoreChannelAccountRepository.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StoreChannelAccountRepository.d.ts","sourceRoot":"","sources":["../../../../src/shared/utils/store/StoreChannelAccountRepository.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAQ7D;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,oBAAoB,EAC7B,YAAY,CAAC,EAAE,MAAM,GACpB,oBAAoB,EAAE,CA8BxB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,oBAAoB,EAC7B,cAAc,EAAE,MAAM,GACrB,oBAAoB,GAAG,IAAI,CAI7B;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,oBAAoB,EAC7B,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,oBAAoB,EAAE,CAAC,CA8BjC;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,oBAAoB,EAC7B,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAItC;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,oBAAoB,EAC7B,KAAK,EAAE,yBAAyB,GAC/B,OAAO,CAAC,IAAI,CAAC,CA4Df;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,oBAAoB,EAC7B,cAAc,EAAE,MAAM,GACrB,IAAI,CAGN"}