@sanqianx/project-knowledge 5.0.9-rc.10 → 5.0.9-rc.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +11 -0
- package/_modules/knowledge-engine/README.md +2 -0
- package/_modules/knowledge-engine/package.json +1 -1
- package/_modules/knowledge-engine/src/retrieval.js +2 -1
- package/_modules/knowledge-engine/src/runtime/markdown-knowledge-indexer.js +7 -2
- package/module-runtime-manifest.json +25 -25
- package/package.json +2 -2
- package/plugins/project-knowledge/.claude-plugin/plugin.json +1 -1
- package/plugins/project-knowledge/.codex-plugin/plugin.json +1 -1
- package/plugins/project-knowledge/.mcp.json +1 -1
- package/vendor-manifest.json +5 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [5.0.9-rc.11] - 2026-10-11
|
|
4
|
+
|
|
5
|
+
- Pin vector-hub 1.0.8-rc.3 and vendor engine 0.2.3-rc.5. Raw commit
|
|
6
|
+
conversations and internal backups are analysis evidence, not knowledge.
|
|
7
|
+
Exclude them from managed indexes, search and get; retain source evidence.
|
|
8
|
+
- Prune stale derived records during sync and rebuild once on source-policy
|
|
9
|
+
upgrade, without repeating paid whole-index work on ordinary restarts.
|
|
10
|
+
- Keep standalone vector-hub general document support unchanged.
|
|
11
|
+
- Record both original failing regressions and successful Node 22/24 reruns;
|
|
12
|
+
installed, real model and existing-v5 gates still precede latest promotion.
|
|
13
|
+
|
|
3
14
|
## [5.0.9-rc.10] - 2026-10-11
|
|
4
15
|
|
|
5
16
|
- Preserve acknowledged brain/domain knowledge-directory bindings when changing
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# knowledge-engine
|
|
2
2
|
|
|
3
|
+
正式知识检索(包括 `get`)排除 `dev-conversations`、内部会话、备份与隐藏目录。提交会话只作为分析证据,不直接充当已晋升知识;原始证据仍由事件模块保留。
|
|
4
|
+
|
|
3
5
|
> 开发前读 [AGENTS.md](AGENTS.md)。该指南中的脚手架状态是历史背景;当前运行契约及实现状态以本 README 为准。
|
|
4
6
|
|
|
5
7
|
`project-knowledge` 模块家族的第四块:**知识引擎**。owns 两个职责面,shell 只负责连接与投影("The shell owns no features"):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sanqianx/ai-coding-knowledge-engine",
|
|
3
|
-
"version": "0.2.3-rc.
|
|
3
|
+
"version": "0.2.3-rc.5",
|
|
4
4
|
"description": "Knowledge engine module for project-knowledge: commit-boundary triggered knowledge analysis/generation (trigger plane) and retrieval for development assistants (retrieval plane).",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"main": "src/server.js",
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
const fs = require('node:fs');
|
|
3
3
|
const path = require('node:path');
|
|
4
4
|
const { KnowledgeRetrievalService } = require('./runtime/knowledge-retrieval-service');
|
|
5
|
-
const { listMarkdownFiles } = require('./runtime/markdown-knowledge-indexer');
|
|
5
|
+
const { listMarkdownFiles, isExcludedKnowledgePath } = require('./runtime/markdown-knowledge-indexer');
|
|
6
6
|
const { DomainError } = require('./runtime/contracts');
|
|
7
7
|
|
|
8
8
|
class EngineRetrieval extends KnowledgeRetrievalService {
|
|
@@ -116,6 +116,7 @@ class EngineRetrieval extends KnowledgeRetrievalService {
|
|
|
116
116
|
if (input.spaceId && !scope && input.spaceId !== `project:${registration.projectId}`) throw new DomainError('PROJECT_NOT_FOUND', '知识范围与项目归属不匹配。', { status: 404 });
|
|
117
117
|
const project = scope ? { projectId: scope.id, knowledgePath: scope.knowledgePath } : registration;
|
|
118
118
|
const entryId = String(input.entryId || input.entry || '').replace(/\\/g, '/');
|
|
119
|
+
if (isExcludedKnowledgePath(entryId)) throw new DomainError('PATH_OUTSIDE_ROOT', '会话证据与内部数据不能作为正式知识读取。', { status: 403 });
|
|
119
120
|
const target = path.resolve(project.knowledgePath, entryId);
|
|
120
121
|
if (!entryId || !/\.md$/i.test(target) || !this.layout.isPathInside(project.knowledgePath, target, { realpath: true })) throw new DomainError('PATH_OUTSIDE_ROOT', '知识文件越界。', { status: 403 });
|
|
121
122
|
if (!fs.existsSync(target) || !fs.statSync(target).isFile() || fs.lstatSync(target).isSymbolicLink()) throw new DomainError('PROJECT_NOT_FOUND', '知识文件不存在。', { status: 404 });
|
|
@@ -5,13 +5,17 @@ const { sha256 } = require('./content-hash');
|
|
|
5
5
|
const CHUNKER_VERSION = 1;
|
|
6
6
|
const DEFAULT_MAX_CHARS = 1200;
|
|
7
7
|
const DEFAULT_OVERLAP_CHARS = 120;
|
|
8
|
-
const EXCLUDED_DIRS = new Set(['.git', '_ai', '_backup', 'node_modules']);
|
|
8
|
+
const EXCLUDED_DIRS = new Set(['.git', '_ai', '_backup', 'node_modules', 'dev-conversations']);
|
|
9
9
|
const DERIVED_INDEX_FILENAME = '00-index.md';
|
|
10
10
|
|
|
11
11
|
function normalizeRel(value) {
|
|
12
12
|
return String(value || '').replace(/\\/g, '/').replace(/^\.\//, '');
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
+
function isExcludedKnowledgePath(value) {
|
|
16
|
+
return normalizeRel(value).split('/').some(segment => segment.startsWith('.') || EXCLUDED_DIRS.has(segment.toLowerCase()));
|
|
17
|
+
}
|
|
18
|
+
|
|
15
19
|
function stripFrontmatter(markdown) {
|
|
16
20
|
return String(markdown || '').replace(/^---\s*\r?\n[\s\S]*?\r?\n---\s*\r?\n?/, '');
|
|
17
21
|
}
|
|
@@ -112,7 +116,7 @@ function listMarkdownFiles(root, options = {}) {
|
|
|
112
116
|
const files = [];
|
|
113
117
|
const walk = (dir) => {
|
|
114
118
|
for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
|
|
115
|
-
if (entry.name.startsWith('.') || EXCLUDED_DIRS.has(entry.name)) continue;
|
|
119
|
+
if (entry.name.startsWith('.') || EXCLUDED_DIRS.has(entry.name.toLowerCase())) continue;
|
|
116
120
|
const abs = path.join(dir, entry.name);
|
|
117
121
|
if (entry.isDirectory()) walk(abs);
|
|
118
122
|
else if (entry.isFile() && /\.md$/i.test(entry.name) && (includeDerived || !isDerivedIndex(entry.name))) files.push(abs);
|
|
@@ -224,6 +228,7 @@ module.exports = {
|
|
|
224
228
|
CHUNKER_VERSION,
|
|
225
229
|
chunkMarkdown,
|
|
226
230
|
listMarkdownFiles,
|
|
231
|
+
isExcludedKnowledgePath,
|
|
227
232
|
isDerivedIndex,
|
|
228
233
|
inferEntryType,
|
|
229
234
|
parseKnowledgeMetadata,
|
|
@@ -112,9 +112,9 @@
|
|
|
112
112
|
"vectorHub": {
|
|
113
113
|
"name": "@sanqianx/vector-hub",
|
|
114
114
|
"installName": "@sanqianx/vector-hub",
|
|
115
|
-
"version": "1.0.8-rc.
|
|
115
|
+
"version": "1.0.8-rc.3",
|
|
116
116
|
"files": {
|
|
117
|
-
"README.md": "
|
|
117
|
+
"README.md": "da267117f2f3cf61bc865a6fa3a2097dcb999f7f7e50eb7add0b74494a9f982e",
|
|
118
118
|
"dist/cjs/bin.d.ts": "43e818adf60173644896298637f47b01d5819b17eda46eaa32d0c7d64724d012",
|
|
119
119
|
"dist/cjs/bin.js": "8d0317ce087d22074b4ad350d63bf39cd6d218da565496621cd0daf4245cbdc4",
|
|
120
120
|
"dist/cjs/bin.js.map": "818e872380d9c7ba045238ba65ce77111ba822b356be26327ed05936e5667e5e",
|
|
@@ -122,12 +122,12 @@
|
|
|
122
122
|
"dist/cjs/core/embeddings.js": "5e199fd6e0de174aad1ba5440dd6358d9b180d4f82d62c7d8cd1fb8a17efb2d7",
|
|
123
123
|
"dist/cjs/core/embeddings.js.map": "f1b9ec78274cdd7359a59e8a47af7c376de61587bc4b9fc78df970734169ee38",
|
|
124
124
|
"dist/cjs/core/hub.d.ts": "5173ac7396ffdce780fa0b93428a330142a1a2edf378527b6291036edc9a0d7d",
|
|
125
|
-
"dist/cjs/core/hub.js": "
|
|
126
|
-
"dist/cjs/core/hub.js.map": "
|
|
127
|
-
"dist/cjs/core/kb-sync.d.ts": "
|
|
128
|
-
"dist/cjs/core/kb-sync.js": "
|
|
129
|
-
"dist/cjs/core/kb-sync.js.map": "
|
|
130
|
-
"dist/cjs/core/types.d.ts": "
|
|
125
|
+
"dist/cjs/core/hub.js": "f90ee514c0cf9ac67d7aae728d7af2606d7404ab84436fbdc066663006cb67e2",
|
|
126
|
+
"dist/cjs/core/hub.js.map": "10d5d99d4ca8edb6af289b9da28eb63037ffa6762f382434040292d517d887fa",
|
|
127
|
+
"dist/cjs/core/kb-sync.d.ts": "8290ae4c5840dcf98769cfec1734d5ebeb102020b348da2a8382b1cad057da1b",
|
|
128
|
+
"dist/cjs/core/kb-sync.js": "b6bc7f11d3e63894fe8633151ac38c853f30d8675a15e57605bd8ff68bffd4b5",
|
|
129
|
+
"dist/cjs/core/kb-sync.js.map": "687ce74cdf668c1b99809a23c078861e66dacd0050056ff0231d69c3d6e6b85a",
|
|
130
|
+
"dist/cjs/core/types.d.ts": "b54fd90a3aaef7b90fe106857de350b2300b7eaa46a5bfb6b4959bfe09faa554",
|
|
131
131
|
"dist/cjs/core/types.js": "b0d2bc4142d0c62d43f996aaeb64f22c4889ac853f8a3765758b505d972d0149",
|
|
132
132
|
"dist/cjs/core/types.js.map": "9c8da204af4d662188e539b27e61f9ee44ecbe68da4211676ebdda14303e6f3b",
|
|
133
133
|
"dist/cjs/index.d.ts": "96aa5a8b9c843a85c7cdc00901e0e95ecae6f01655e7de2d965f96b1d19181a0",
|
|
@@ -136,12 +136,12 @@
|
|
|
136
136
|
"dist/cjs/server/folder-picker.d.ts": "b9c59dbc834fff668b1894f516450c2edc985c7bfac31edf9b7b4e766474b32b",
|
|
137
137
|
"dist/cjs/server/folder-picker.js": "053121152a210c899e8593d60670a2a510b435c3b479300c572aa4bc8443e58e",
|
|
138
138
|
"dist/cjs/server/folder-picker.js.map": "dce1ad1b03c8a6a4fba7b3cacec5b65e55c1dfd1886c5e70df384efd1a5c68a6",
|
|
139
|
-
"dist/cjs/server/manager.d.ts": "
|
|
140
|
-
"dist/cjs/server/manager.js": "
|
|
141
|
-
"dist/cjs/server/manager.js.map": "
|
|
139
|
+
"dist/cjs/server/manager.d.ts": "06c0e5c05ad47b3ab0a826303703d1b38d68e45f3686e687d832470dac56a05b",
|
|
140
|
+
"dist/cjs/server/manager.js": "947aba093ae79b294a67d8ebd10ceedcc5ff92a3298dfffbc09681f66eed4448",
|
|
141
|
+
"dist/cjs/server/manager.js.map": "d5236999f576019189c8464c4a9aaf1776902da2c5c09d962b557210cc3d8427",
|
|
142
142
|
"dist/cjs/server/server.d.ts": "13288ace9aa6ec016a2b06dc036868324ac6c23c7e73771e95d120be778f238a",
|
|
143
|
-
"dist/cjs/server/server.js": "
|
|
144
|
-
"dist/cjs/server/server.js.map": "
|
|
143
|
+
"dist/cjs/server/server.js": "18cb8c4ada3a7b4c8fa20a2bdfcee2d7bff440ab1d0caabf7c6eaed2b5178bed",
|
|
144
|
+
"dist/cjs/server/server.js.map": "e7a4689fdaedcea9644c0c1a3065cce71017af9aa13be6cb4a90889eae0e7885",
|
|
145
145
|
"dist/esm/bin.d.ts": "43e818adf60173644896298637f47b01d5819b17eda46eaa32d0c7d64724d012",
|
|
146
146
|
"dist/esm/bin.js": "69f6059ce2336eb7f0d9503f86c83da787aaf74a8bfd804c694ba5b2e1728be0",
|
|
147
147
|
"dist/esm/bin.js.map": "fc174c2b5c66c20ff88184ddeb00577406185945ccadb0bddbb2014909339e9e",
|
|
@@ -149,12 +149,12 @@
|
|
|
149
149
|
"dist/esm/core/embeddings.js": "b19e0cf42ca03e50644e39e39da4c003b9e273213c4532bd443c77085d2db521",
|
|
150
150
|
"dist/esm/core/embeddings.js.map": "043aa6822e6b4a692be025d89efb5d7d44f4b6b39ce36bcfad2e64dde45589bb",
|
|
151
151
|
"dist/esm/core/hub.d.ts": "5173ac7396ffdce780fa0b93428a330142a1a2edf378527b6291036edc9a0d7d",
|
|
152
|
-
"dist/esm/core/hub.js": "
|
|
153
|
-
"dist/esm/core/hub.js.map": "
|
|
154
|
-
"dist/esm/core/kb-sync.d.ts": "
|
|
155
|
-
"dist/esm/core/kb-sync.js": "
|
|
156
|
-
"dist/esm/core/kb-sync.js.map": "
|
|
157
|
-
"dist/esm/core/types.d.ts": "
|
|
152
|
+
"dist/esm/core/hub.js": "ea14e891ce2b1861b2a2a1cc9acf0d4249fab2b3354694cfbe519a26f4199453",
|
|
153
|
+
"dist/esm/core/hub.js.map": "a02798e02a9b4a4c41e7496c23d12c12bee25b3ed6adccb0fde91a5b757f70a6",
|
|
154
|
+
"dist/esm/core/kb-sync.d.ts": "8290ae4c5840dcf98769cfec1734d5ebeb102020b348da2a8382b1cad057da1b",
|
|
155
|
+
"dist/esm/core/kb-sync.js": "cbdfab9fecbdd2d6996744ad0bf88f446012d5616f57fdc60f5a8e8d8c462c5f",
|
|
156
|
+
"dist/esm/core/kb-sync.js.map": "e14d56e04a08642f6fb917310cf296ab2cf05c6a2fc6a2cab8ab929f50300843",
|
|
157
|
+
"dist/esm/core/types.d.ts": "b54fd90a3aaef7b90fe106857de350b2300b7eaa46a5bfb6b4959bfe09faa554",
|
|
158
158
|
"dist/esm/core/types.js": "01ae2a5b120382f9a648ced7ee8507493a134f216d100fc61600c6c9738235d2",
|
|
159
159
|
"dist/esm/core/types.js.map": "9c8da204af4d662188e539b27e61f9ee44ecbe68da4211676ebdda14303e6f3b",
|
|
160
160
|
"dist/esm/index.d.ts": "96aa5a8b9c843a85c7cdc00901e0e95ecae6f01655e7de2d965f96b1d19181a0",
|
|
@@ -164,13 +164,13 @@
|
|
|
164
164
|
"dist/esm/server/folder-picker.d.ts": "b9c59dbc834fff668b1894f516450c2edc985c7bfac31edf9b7b4e766474b32b",
|
|
165
165
|
"dist/esm/server/folder-picker.js": "6c8247e431b7181c45fb169b29e5825a0b3589f44e1625b3a5a291d7b8358042",
|
|
166
166
|
"dist/esm/server/folder-picker.js.map": "f70723213f032a0f10f538289a176a50fc8f02c200b0194479ffc139b5fbb13b",
|
|
167
|
-
"dist/esm/server/manager.d.ts": "
|
|
168
|
-
"dist/esm/server/manager.js": "
|
|
169
|
-
"dist/esm/server/manager.js.map": "
|
|
167
|
+
"dist/esm/server/manager.d.ts": "06c0e5c05ad47b3ab0a826303703d1b38d68e45f3686e687d832470dac56a05b",
|
|
168
|
+
"dist/esm/server/manager.js": "96e1262505a02299e3d6ae5dc1c7ba3a3f69c694f57d89d97e3e4c163b40523e",
|
|
169
|
+
"dist/esm/server/manager.js.map": "10bb43dec7cdf07d1e6260552f40ca347a6eb491ba8bbe81b6ce2a41157a9a87",
|
|
170
170
|
"dist/esm/server/server.d.ts": "13288ace9aa6ec016a2b06dc036868324ac6c23c7e73771e95d120be778f238a",
|
|
171
|
-
"dist/esm/server/server.js": "
|
|
172
|
-
"dist/esm/server/server.js.map": "
|
|
173
|
-
"package.json": "
|
|
171
|
+
"dist/esm/server/server.js": "fcf74d2d6ddc19be2ceab561efc904a2b703507901a6a35c3646c4032cac56d6",
|
|
172
|
+
"dist/esm/server/server.js.map": "6c19f311146c60a1ccea89ac223a16ca44e690ac5ac4d8408cd19edc7066f83e",
|
|
173
|
+
"package.json": "5010182529b9f1d4624ff4abd02b8eb48dbbeb4ddf92ef4bc45dd6b332aed100",
|
|
174
174
|
"ui/index.html": "7301a595d625dadcd424069e7bb978004bfb6118eddef7a223bd25449ca6e0eb",
|
|
175
175
|
"ui/vendor/marked.min.js": "c68075672d976e4777390560baa112194855bd4404b13647da4855aae1f9360c"
|
|
176
176
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sanqianx/project-knowledge",
|
|
3
|
-
"version": "5.0.9-rc.
|
|
3
|
+
"version": "5.0.9-rc.11",
|
|
4
4
|
"description": "Knowledge base manager with Git integration, AI-driven analysis, and bilingual (zh-CN/en-US) knowledge output",
|
|
5
5
|
"main": "_site/server.js",
|
|
6
6
|
"scripts": {
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
"@lancedb/lancedb": "0.31.0",
|
|
82
82
|
"@modelcontextprotocol/sdk": "1.29.0",
|
|
83
83
|
"@sanqianx/ai-coding-event-bridge-console": "0.7.2",
|
|
84
|
-
"@sanqianx/vector-hub": "1.0.8-rc.
|
|
84
|
+
"@sanqianx/vector-hub": "1.0.8-rc.3",
|
|
85
85
|
"buffer": "^6.0.3",
|
|
86
86
|
"cheerio": "^1.2.0",
|
|
87
87
|
"claude-ai-workbench": "npm:@sanqianx/claude-ai-workbench@0.13.2-rc.4",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
|
|
3
3
|
"name": "project-knowledge",
|
|
4
|
-
"version": "5.0.9-rc.
|
|
4
|
+
"version": "5.0.9-rc.11",
|
|
5
5
|
"description": "Read durable project decisions and implementation history from Project Knowledge.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "SanQianX",
|
package/vendor-manifest.json
CHANGED
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
"modules": {
|
|
4
4
|
"knowledge-engine": {
|
|
5
5
|
"name": "@sanqianx/ai-coding-knowledge-engine",
|
|
6
|
-
"version": "0.2.3-rc.
|
|
6
|
+
"version": "0.2.3-rc.5",
|
|
7
7
|
"root": "_modules/knowledge-engine",
|
|
8
8
|
"files": {
|
|
9
|
-
"README.md": "
|
|
10
|
-
"package.json": "
|
|
9
|
+
"README.md": "8c501eebd770b4a54f3ec97bb2c21b8953eed7d7b21ce1a0ecdb9e11ac795c7b",
|
|
10
|
+
"package.json": "bb46aa0bb25124f104eedd14287003201da26d6dfdbd0bde9218d65997eb0801",
|
|
11
11
|
"src/analysis-contract.js": "fee063967d32eefc955cf0729f7dc8cb31bd690b85e22471c9059494a599c77a",
|
|
12
12
|
"src/analysis-output.js": "95a3c19dcc9ab85d1dba7fee5b9aec80f9c000dfba89da3fd0be25a81e2fb680",
|
|
13
13
|
"src/analysis-worker.js": "a105cabe6e1573b2d986b1e7a5aaf615e2fb53524156fc8e4e2c0a71f2c97e55",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"src/index-request.js": "78f26b872299005499fff4f2d1f9e8f986784f2ff36a5cf2be2b1e7b7c7d9378",
|
|
20
20
|
"src/knowledge-targets.js": "aa44ec285d16d7b1c0b63bf084058a1d6f867fa9929c753b6b0cbb24f7b20ee2",
|
|
21
21
|
"src/memories.js": "0a8667e6daba99fa5022393951a28e96cdadf98af85b6af9a6be96c7f4e896fc",
|
|
22
|
-
"src/retrieval.js": "
|
|
22
|
+
"src/retrieval.js": "4cfc2a6d11fcd480ac4e87818729e475b0c24917082e460594e62af0509afdd4",
|
|
23
23
|
"src/runtime/README.md": "9be676eca76a7857b34d7357194e6f0ee733c22e61d962d53984715dbec7f673",
|
|
24
24
|
"src/runtime/atomic-file.js": "9846b4b69db5ded811acf19a1181ef93615d93efaa542b858e552a7f3124ad23",
|
|
25
25
|
"src/runtime/automation-config.js": "6498c5397be12b155829740595a1553d4dcd6eaa7db6ced3ef88fdc60218f00e",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"src/runtime/knowledge-promotion.js": "c24aba505caf11cdc8faba763beffc65956c1330ef28ed5fbd6ae16eac640fa6",
|
|
37
37
|
"src/runtime/knowledge-retrieval-service.js": "75444f495a9ad0720af0e57b8d27d7ac1325c78a768f4f68ebd86ebc2524945e",
|
|
38
38
|
"src/runtime/layout.js": "c48fa1db62e5df1edefe13218e470c5ceea4ef2781293512c2c18e5c2ba0c7e9",
|
|
39
|
-
"src/runtime/markdown-knowledge-indexer.js": "
|
|
39
|
+
"src/runtime/markdown-knowledge-indexer.js": "4d6b5b955849d274ca0614ef030c94526da7c39ab0874f02c168d0681f5b1406",
|
|
40
40
|
"src/runtime/scanner.js": "d99fa8d74a6fbbaae75ca49f62127e14cf9e48b1404e4b4d597ef39df5441410",
|
|
41
41
|
"src/server.js": "7deff466d28b94ec8975cd87ebd55c59d0aa6b49a8dfa447b552b1d32aa9c4b7",
|
|
42
42
|
"src/store.js": "71f0417c2c1e42b89429e3dee1adff7b2c09e86682cb3f4843ce6d9e5aafd7ec",
|