@sanqianx/project-knowledge 5.0.18 → 5.0.19
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 +9 -0
- package/_modules/knowledge-engine/src/analysis-contract.js +4 -3
- package/_modules/knowledge-engine/src/coordinator.js +1 -0
- package/_modules/knowledge-engine/src/memories.js +10 -5
- package/_modules/knowledge-engine/src/memory-eligibility.js +74 -0
- package/_modules/knowledge-engine/src/retrieval-ranking.js +19 -1
- package/_modules/knowledge-engine/src/runtime/commit-conversation-binder.js +1 -0
- package/_modules/knowledge-engine/src/runtime/commit-prompt.js +12 -9
- package/_modules/knowledge-engine/src/runtime/conversation-store.js +2 -0
- package/_site/_test/candidate-bin-content-test.js +35 -0
- package/_site/_test/candidate-product-assets-test.js +13 -0
- package/_site/_test/conversation-origin-test.js +15 -0
- package/_site/_test/fixtures/retrieval-gold-queries.json +32 -0
- package/_site/_test/module-index-proxy-test.js +33 -0
- package/_site/_test/module-terminal-restart-test.js +63 -0
- package/_site/_test/registry-events-test.js +38 -0
- package/_site/_test/workbench-context-receipts-test.js +22 -0
- package/_site/lib/commit-conversation-binder.js +1 -0
- package/_site/lib/conversation-store.js +2 -0
- package/_site/lib/engine-connection.js +4 -1
- package/_site/lib/live-gateway.js +3 -1
- package/_site/lib/module-bridge.js +19 -10
- package/_site/lib/registry-events.js +16 -0
- package/_site/lib/server-app.js +10 -1
- package/_site/scripts/pack-module-candidates.js +21 -4
- package/_site/scripts/verify-retrieval-gold.js +83 -0
- package/docs/leader-glm-workbench-playbook.md +4 -1
- package/docs/release-5.0.19-acceptance.md +25 -0
- package/module-runtime-manifest.json +104 -102
- package/package.json +109 -108
- 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/ui/product.js +29 -4
- package/vendor-manifest.json +9 -8
package/package.json
CHANGED
|
@@ -1,108 +1,109 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@sanqianx/project-knowledge",
|
|
3
|
-
"version": "5.0.
|
|
4
|
-
"description": "Knowledge base manager with Git integration, AI-driven analysis, and bilingual (zh-CN/en-US) knowledge output",
|
|
5
|
-
"main": "_site/server.js",
|
|
6
|
-
"scripts": {
|
|
7
|
-
"start": "node _site/server.js",
|
|
8
|
-
"test": "node _site/_test/run-all-tests.js",
|
|
9
|
-
"release:sync": "node _site/scripts/sync-release-version.js --web-only",
|
|
10
|
-
"vendor:modules": "node _site/scripts/vendor-modules.js",
|
|
11
|
-
"runtime:verify": "node _site/scripts/verify-module-runtime.js --working-tree",
|
|
12
|
-
"release:verify": "node _site/scripts/sync-release-version.js --check --web-only && node _site/scripts/verify-module-runtime.js && node _site/scripts/verify-product-runtime.js && node _site/_test/integration-adapters-test.js",
|
|
13
|
-
"preversion": "npm run release:verify",
|
|
14
|
-
"version": "node _site/scripts/sync-release-version.js --stage --web-only",
|
|
15
|
-
"postversion": "npm run release:verify"
|
|
16
|
-
},
|
|
17
|
-
"bin": {
|
|
18
|
-
"project-knowledge": "bin/project-knowledge.js",
|
|
19
|
-
"project-knowledge-kb": "bin/project-knowledge-kb.js",
|
|
20
|
-
"project-knowledge-mcp": "bin/project-knowledge-mcp.js",
|
|
21
|
-
"project-knowledge-integrations": "bin/project-knowledge-integrations.js"
|
|
22
|
-
},
|
|
23
|
-
"engines": {
|
|
24
|
-
"node": ">=22"
|
|
25
|
-
},
|
|
26
|
-
"files": [
|
|
27
|
-
"_site/server.js",
|
|
28
|
-
"ui/index.html",
|
|
29
|
-
"ui/product.css",
|
|
30
|
-
"ui/product.js",
|
|
31
|
-
"ui/live-client.js",
|
|
32
|
-
"ui/favicon.svg",
|
|
33
|
-
"_site/lib/",
|
|
34
|
-
"_modules/knowledge-engine/",
|
|
35
|
-
"vendor-manifest.json",
|
|
36
|
-
"module-runtime-manifest.json",
|
|
37
|
-
"_site/scripts/",
|
|
38
|
-
"_site/_test/*.js",
|
|
39
|
-
"_site/_test/fixtures/",
|
|
40
|
-
"_site/start.bat",
|
|
41
|
-
"_site/stop.bat",
|
|
42
|
-
"claude-prompts.json",
|
|
43
|
-
"bin/",
|
|
44
|
-
"plugins/",
|
|
45
|
-
".claude-plugin/",
|
|
46
|
-
".agents/plugins/",
|
|
47
|
-
"templates/",
|
|
48
|
-
"docs/assets/",
|
|
49
|
-
"docs/README.zh-CN.md",
|
|
50
|
-
"docs/project-registry-schema.md",
|
|
51
|
-
"docs/team-knowledge-mode-a-plan.md",
|
|
52
|
-
"docs/testing-strategy.md",
|
|
53
|
-
"docs/leader-glm-workbench-playbook.md",
|
|
54
|
-
"docs/release-5.0.16-acceptance.md",
|
|
55
|
-
"docs/release-5.0.17-acceptance.md",
|
|
56
|
-
"docs/
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
"
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
"
|
|
80
|
-
"
|
|
81
|
-
|
|
82
|
-
"@
|
|
83
|
-
"@grpc/
|
|
84
|
-
"@
|
|
85
|
-
"@
|
|
86
|
-
"@
|
|
87
|
-
"@
|
|
88
|
-
"@sanqianx/
|
|
89
|
-
"
|
|
90
|
-
"
|
|
91
|
-
"
|
|
92
|
-
"
|
|
93
|
-
"
|
|
94
|
-
"
|
|
95
|
-
"
|
|
96
|
-
"
|
|
97
|
-
"
|
|
98
|
-
"
|
|
99
|
-
"
|
|
100
|
-
"
|
|
101
|
-
"
|
|
102
|
-
"
|
|
103
|
-
"
|
|
104
|
-
"wink-
|
|
105
|
-
"
|
|
106
|
-
"
|
|
107
|
-
|
|
108
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@sanqianx/project-knowledge",
|
|
3
|
+
"version": "5.0.19",
|
|
4
|
+
"description": "Knowledge base manager with Git integration, AI-driven analysis, and bilingual (zh-CN/en-US) knowledge output",
|
|
5
|
+
"main": "_site/server.js",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"start": "node _site/server.js",
|
|
8
|
+
"test": "node _site/_test/run-all-tests.js",
|
|
9
|
+
"release:sync": "node _site/scripts/sync-release-version.js --web-only",
|
|
10
|
+
"vendor:modules": "node _site/scripts/vendor-modules.js",
|
|
11
|
+
"runtime:verify": "node _site/scripts/verify-module-runtime.js --working-tree",
|
|
12
|
+
"release:verify": "node _site/scripts/sync-release-version.js --check --web-only && node _site/scripts/verify-module-runtime.js && node _site/scripts/verify-product-runtime.js && node _site/_test/integration-adapters-test.js",
|
|
13
|
+
"preversion": "npm run release:verify",
|
|
14
|
+
"version": "node _site/scripts/sync-release-version.js --stage --web-only",
|
|
15
|
+
"postversion": "npm run release:verify"
|
|
16
|
+
},
|
|
17
|
+
"bin": {
|
|
18
|
+
"project-knowledge": "bin/project-knowledge.js",
|
|
19
|
+
"project-knowledge-kb": "bin/project-knowledge-kb.js",
|
|
20
|
+
"project-knowledge-mcp": "bin/project-knowledge-mcp.js",
|
|
21
|
+
"project-knowledge-integrations": "bin/project-knowledge-integrations.js"
|
|
22
|
+
},
|
|
23
|
+
"engines": {
|
|
24
|
+
"node": ">=22"
|
|
25
|
+
},
|
|
26
|
+
"files": [
|
|
27
|
+
"_site/server.js",
|
|
28
|
+
"ui/index.html",
|
|
29
|
+
"ui/product.css",
|
|
30
|
+
"ui/product.js",
|
|
31
|
+
"ui/live-client.js",
|
|
32
|
+
"ui/favicon.svg",
|
|
33
|
+
"_site/lib/",
|
|
34
|
+
"_modules/knowledge-engine/",
|
|
35
|
+
"vendor-manifest.json",
|
|
36
|
+
"module-runtime-manifest.json",
|
|
37
|
+
"_site/scripts/",
|
|
38
|
+
"_site/_test/*.js",
|
|
39
|
+
"_site/_test/fixtures/",
|
|
40
|
+
"_site/start.bat",
|
|
41
|
+
"_site/stop.bat",
|
|
42
|
+
"claude-prompts.json",
|
|
43
|
+
"bin/",
|
|
44
|
+
"plugins/",
|
|
45
|
+
".claude-plugin/",
|
|
46
|
+
".agents/plugins/",
|
|
47
|
+
"templates/",
|
|
48
|
+
"docs/assets/",
|
|
49
|
+
"docs/README.zh-CN.md",
|
|
50
|
+
"docs/project-registry-schema.md",
|
|
51
|
+
"docs/team-knowledge-mode-a-plan.md",
|
|
52
|
+
"docs/testing-strategy.md",
|
|
53
|
+
"docs/leader-glm-workbench-playbook.md",
|
|
54
|
+
"docs/release-5.0.16-acceptance.md",
|
|
55
|
+
"docs/release-5.0.17-acceptance.md",
|
|
56
|
+
"docs/release-5.0.19-acceptance.md",
|
|
57
|
+
"docs/fresh-v5-start.md",
|
|
58
|
+
"README.md",
|
|
59
|
+
"NOTICE",
|
|
60
|
+
"CHANGELOG.md"
|
|
61
|
+
],
|
|
62
|
+
"repository": {
|
|
63
|
+
"type": "git",
|
|
64
|
+
"url": "git+https://github.com/SanQianX/project-knowledge-base.git"
|
|
65
|
+
},
|
|
66
|
+
"keywords": [
|
|
67
|
+
"knowledge-base",
|
|
68
|
+
"git",
|
|
69
|
+
"ai",
|
|
70
|
+
"claude",
|
|
71
|
+
"codex",
|
|
72
|
+
"opencode",
|
|
73
|
+
"mcp",
|
|
74
|
+
"documentation",
|
|
75
|
+
"scanner",
|
|
76
|
+
"context-pack",
|
|
77
|
+
"post-commit-hook"
|
|
78
|
+
],
|
|
79
|
+
"author": "SanQianX",
|
|
80
|
+
"license": "Apache-2.0",
|
|
81
|
+
"dependencies": {
|
|
82
|
+
"@anthropic-ai/claude-agent-sdk": "^0.2.141",
|
|
83
|
+
"@grpc/grpc-js": "^1.14.5",
|
|
84
|
+
"@grpc/proto-loader": "^0.8.1",
|
|
85
|
+
"@huggingface/transformers": "3.8.1",
|
|
86
|
+
"@lancedb/lancedb": "0.31.0",
|
|
87
|
+
"@modelcontextprotocol/sdk": "1.29.0",
|
|
88
|
+
"@sanqianx/ai-coding-event-bridge-console": "0.7.2",
|
|
89
|
+
"@sanqianx/vector-hub": "1.0.8-rc.8",
|
|
90
|
+
"buffer": "^6.0.3",
|
|
91
|
+
"cheerio": "^1.2.0",
|
|
92
|
+
"claude-ai-workbench": "npm:@sanqianx/claude-ai-workbench@0.13.2-rc.21",
|
|
93
|
+
"cross-spawn": "7.0.6",
|
|
94
|
+
"dotenv": "^17.4.2",
|
|
95
|
+
"gpt-tokenizer": "^3.4.0",
|
|
96
|
+
"http-proxy-agent": "7.0.2",
|
|
97
|
+
"https-proxy-agent": "7.0.6",
|
|
98
|
+
"json-colorizer": "^3.0.1",
|
|
99
|
+
"jsonc-parser": "3.3.1",
|
|
100
|
+
"openai": "^6.49.0",
|
|
101
|
+
"socks-proxy-agent": "8.0.5",
|
|
102
|
+
"turndown": "^7.2.4",
|
|
103
|
+
"uuid": "^13.0.2",
|
|
104
|
+
"wink-bm25-text-search": "^3.1.2",
|
|
105
|
+
"wink-nlp": "^2.4.0",
|
|
106
|
+
"ws": "^8.21.0",
|
|
107
|
+
"yargs": "^18.1.0"
|
|
108
|
+
}
|
|
109
|
+
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
|
|
3
3
|
"name": "project-knowledge",
|
|
4
4
|
"hooks": "./hooks/claude.json",
|
|
5
|
-
"version": "5.0.
|
|
5
|
+
"version": "5.0.19",
|
|
6
6
|
"description": "Read durable project decisions and implementation history from Project Knowledge.",
|
|
7
7
|
"author": {
|
|
8
8
|
"name": "SanQianX",
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"const fs=require('fs'),path=require('path'),os=require('os');const PKG='@sanqianx/project-knowledge',SC='project-knowledge/integration-runtime/v1';let f='';const root=process.env.CLAUDE_PLUGIN_ROOT||process.env.PLUGIN_ROOT;if(root){f=path.join(root,'scripts','mcp-launcher.cjs');if(!fs.existsSync(f))f=''}if(!f){const dd=process.env.KB_DATA_DIR||path.join(os.homedir(),'.project-knowledge-v5');try{const bp=path.join(dd,'integration-runtime.json');const st=fs.statSync(bp);if(st.isFile()&&st.size<=32768){const b=JSON.parse(fs.readFileSync(bp,'utf8'));if(b&&b.schema===SC&&b.packageName===PKG&&typeof b.packageRoot==='string'&&path.isAbsolute(b.packageRoot)){const c=path.join(b.packageRoot,'plugins','project-knowledge','scripts','mcp-launcher.cjs');const rr=fs.realpathSync(b.packageRoot),cr=fs.realpathSync(c);const rel=path.relative(rr,cr);if(rel&&rel!=='..'&&!rel.startsWith('..'+path.sep)&&!path.isAbsolute(rel)&&fs.statSync(cr).isFile())f=cr}}}catch(e){}}if(!f){console.error('[project-knowledge-mcp] 未能通过受信任插件根或已验证的安装绑定定位启动器,已停止;不访问网络,也不加载工作目录源码。');process.exit(127)}require(f);"
|
|
9
9
|
],
|
|
10
10
|
"env": {
|
|
11
|
-
"KB_PLUGIN_VERSION": "5.0.
|
|
11
|
+
"KB_PLUGIN_VERSION": "5.0.19"
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
14
|
}
|
package/ui/product.js
CHANGED
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
const badge = (text, status = '') => `<span class="status ${esc(status)}">${esc(text)}</span>`;
|
|
22
22
|
let toastTimer, refreshTimer, preflightTimer, editingMemoryId, logStream, logEpoch = 0, referenceEpoch = 0, snapshotEpoch = 0, registryEpoch = 0, registryPromise = null, resumeImport = false, unbindProjectId = '', unbinding = false;
|
|
23
23
|
let captureEpoch = 0, captureBusy = false;
|
|
24
|
+
let registryStream = null, registryReceipt = null, registryRefreshTimer;
|
|
24
25
|
async function api(url, options = {}) {
|
|
25
26
|
const { allowNotReady, timeoutMs = (options.method || 'GET') === 'GET' && !url.includes('pick-folder') ? 3000 : 0, ...init } = options;
|
|
26
27
|
if (init.body && typeof init.body !== 'string') init.body = JSON.stringify(init.body);
|
|
@@ -43,8 +44,12 @@
|
|
|
43
44
|
function frameContext(key) {
|
|
44
45
|
const project = activeProject();
|
|
45
46
|
const frame = frames[key];
|
|
47
|
+
if (!frame.ready) return;
|
|
46
48
|
const ref = key === 'terminal' ? project?.modules.terminal.projectId || project?.workspacePath : key === 'eventBridge' ? project?.modules.eventBridge.projectId || project?.workspacePath : project?.projectId;
|
|
47
49
|
frame.requestId = `${state.epoch}:${key}`;
|
|
50
|
+
const signature = JSON.stringify([state.epoch, ref || '', state.scope, document.documentElement.dataset.theme, frameVisible(key)]);
|
|
51
|
+
if (frame.contextSignature === signature) return;
|
|
52
|
+
frame.contextSignature = signature;
|
|
48
53
|
post(key, { type: 'kb:theme', theme: document.documentElement.dataset.theme });
|
|
49
54
|
post(key, { type: 'kb:scope', scope: state.scope });
|
|
50
55
|
post(key, { type: 'kb:sidebar', visible: key === 'terminal' });
|
|
@@ -148,7 +153,10 @@
|
|
|
148
153
|
$('memoryText').value = memory.text; $('memoryScope').value = memory.scopeType || 'global';
|
|
149
154
|
updateMemoryTarget($('memoryScope').value, memory.scopeId || memory.brainId);
|
|
150
155
|
$('memoryOriginal').textContent = `原始总结:${memory.originalText || memory.text}`;
|
|
151
|
-
$('memoryEvidence').textContent = memory.evidence ? `${projectName(memory.evidence.projectId)} · ${memory.evidence.commitSha} / ${memory.evidence.entryId}` : '';
|
|
156
|
+
$('memoryEvidence').textContent = memory.evidence ? `${projectName(memory.evidence.projectId)} · ${memory.evidence.commitSha} / ${memory.evidence.entryId}${memory.sourceEventId || memory.evidence.sourceEventId ? ` · 用户事件 ${memory.sourceEventId || memory.evidence.sourceEventId}` : ''}` : '';
|
|
157
|
+
let eligibility = $('memoryEligibility');
|
|
158
|
+
if (!eligibility) { eligibility = document.createElement('p'); eligibility.id = 'memoryEligibility'; $('memoryEvidenceDetails').append(eligibility); }
|
|
159
|
+
eligibility.textContent = memory.eligibility ? `推荐理由:${memory.eligibility.reason || ''}\n范围依据:${memory.eligibility.scopeReason || ''}` : memory.status === 'candidate' ? '旧候选尚未按跨项目长期共识标准复核。' : '';
|
|
152
160
|
$('memoryQuote').textContent = memory.evidence?.quote || '';
|
|
153
161
|
$('memoryEvidenceDetails').hidden = memory.sourceType === 'manual'; $('manualMemoryHint').hidden = memory.sourceType !== 'manual';
|
|
154
162
|
$('memoryFeedback').hidden = true; $('saveMemoryCandidate').hidden = memory.status !== 'candidate';
|
|
@@ -239,6 +247,21 @@
|
|
|
239
247
|
stream.addEventListener('progress', () => { if (state.stream === stream) scheduleRefresh(); });
|
|
240
248
|
stream.onerror = () => { if (state.stream === stream) $('activityConnection').textContent = '连接中断,正在恢复快照'; };
|
|
241
249
|
}
|
|
250
|
+
function connectRegistryEvents() {
|
|
251
|
+
if (registryStream || !navigator.onLine) return;
|
|
252
|
+
const stream = registryStream = new ProgressSource('/api/registry/events');
|
|
253
|
+
const changed = event => {
|
|
254
|
+
if (registryStream !== stream) return;
|
|
255
|
+
let receipt; try { receipt = JSON.parse(event.data); } catch { return; }
|
|
256
|
+
const signature = `${receipt.instanceId}:${receipt.revision}`;
|
|
257
|
+
const previous = registryReceipt; registryReceipt = signature;
|
|
258
|
+
if (!previous || previous === signature) return;
|
|
259
|
+
clearTimeout(registryRefreshTimer);
|
|
260
|
+
registryRefreshTimer = setTimeout(() => { if (!document.hidden) void refreshRegistry(); }, 100);
|
|
261
|
+
};
|
|
262
|
+
stream.addEventListener('registry-snapshot', changed);
|
|
263
|
+
stream.addEventListener('registry-changed', changed);
|
|
264
|
+
}
|
|
242
265
|
function refreshRegistry(force = false) {
|
|
243
266
|
if (!navigator.onLine) return Promise.resolve();
|
|
244
267
|
if (registryPromise && !force) return registryPromise;
|
|
@@ -612,19 +635,21 @@
|
|
|
612
635
|
window.addEventListener('hashchange', () => setView(location.hash.slice(1)));
|
|
613
636
|
window.addEventListener('offline', () => {
|
|
614
637
|
snapshotEpoch++; clearTimeout(refreshTimer);
|
|
615
|
-
state.stream?.close(); state.stream = null; logStream?.close(); logStream = null; logEpoch++;
|
|
638
|
+
state.stream?.close(); state.stream = null; registryStream?.close(); registryStream = null; logStream?.close(); logStream = null; logEpoch++;
|
|
616
639
|
state.engineAvailable = false; $('activityConnection').textContent = '连接中断,恢复后自动读取快照';
|
|
617
640
|
renderSystem(); render();
|
|
618
641
|
});
|
|
619
642
|
window.addEventListener('online', () => {
|
|
643
|
+
connectRegistryEvents();
|
|
620
644
|
$('activityConnection').textContent = state.engineAvailable && state.stream?.readyState === EventSource.OPEN ? '已连接实时更新' : '正在恢复快照'; refreshRegistry();
|
|
621
645
|
if ($('logsDialog').open) loadLogs().catch(error => toast(error.message));
|
|
622
646
|
});
|
|
623
|
-
window.addEventListener('beforeunload', () => { state.stream?.close(); logStream?.close(); });
|
|
647
|
+
window.addEventListener('beforeunload', () => { state.stream?.close(); registryStream?.close(); clearTimeout(registryRefreshTimer); logStream?.close(); });
|
|
648
|
+
document.addEventListener('visibilitychange', () => { if (!document.hidden) { connectRegistryEvents(); void refreshRegistry(); } });
|
|
624
649
|
document.addEventListener('keydown', e => { if (e.key === 'Escape') closeSystem(); });
|
|
625
650
|
document.documentElement.dataset.theme = localStorage.getItem('kb.theme') === 'dark' ? 'dark' : 'light';
|
|
626
651
|
all('[data-scope]').forEach(button => button.classList.toggle('active', button.dataset.scope === state.scope));
|
|
627
652
|
state.view = titles[location.hash.slice(1)] ? location.hash.slice(1) : 'home';
|
|
628
653
|
setView(state.view); refreshRegistry();
|
|
629
|
-
|
|
654
|
+
connectRegistryEvents();
|
|
630
655
|
})();
|
package/vendor-manifest.json
CHANGED
|
@@ -8,32 +8,33 @@
|
|
|
8
8
|
"files": {
|
|
9
9
|
"README.md": "677a7aaf8f6ae06477423be871306297ccfe9c3a39fa71d87cbfdbb3b83f5b7e",
|
|
10
10
|
"package.json": "2e24f8fc1ac3269bdcbd9b7179edf3eff31758545e970c689ab5ae3cb1c49c41",
|
|
11
|
-
"src/analysis-contract.js": "
|
|
11
|
+
"src/analysis-contract.js": "6d4b9fde0e05d9a80d43e96d0c27febf082ecdb19312faf0280d6c9b16ac71b1",
|
|
12
12
|
"src/analysis-output.js": "95a3c19dcc9ab85d1dba7fee5b9aec80f9c000dfba89da3fd0be25a81e2fb680",
|
|
13
13
|
"src/analysis-worker.js": "a105cabe6e1573b2d986b1e7a5aaf615e2fb53524156fc8e4e2c0a71f2c97e55",
|
|
14
14
|
"src/bin.js": "22208907431d0f3a971a669c7e5eb44b3b7af9bbb36fd7ba17c3b90c4288bd70",
|
|
15
15
|
"src/bridge-client.js": "ae0dba21e4286694bcd9e064ca36564ec997969ae1eb1ce4f8a6665e447cbffe",
|
|
16
16
|
"src/context.js": "edd9d4942f6039dd4aaadec88533042ae130f1b80d935d87f61b071904a6688c",
|
|
17
|
-
"src/coordinator.js": "
|
|
17
|
+
"src/coordinator.js": "1fa012d7872e1375012ec3dcddfb6279de406529593eeb49deaa0be180eaff5b",
|
|
18
18
|
"src/diagnostics.js": "f7b516ace61a1e9faaa6876930b9e2e258499a25857d1203f4e53d28bfd0fa1a",
|
|
19
19
|
"src/headless-analyzer.js": "e01f81b8f24a4423c19dd8893be8c702a85edbdbb644322e3acab96c3ebaac7d",
|
|
20
20
|
"src/index-request.js": "78f26b872299005499fff4f2d1f9e8f986784f2ff36a5cf2be2b1e7b7c7d9378",
|
|
21
21
|
"src/knowledge-targets.js": "aa44ec285d16d7b1c0b63bf084058a1d6f867fa9929c753b6b0cbb24f7b20ee2",
|
|
22
|
-
"src/memories.js": "
|
|
22
|
+
"src/memories.js": "7ad6701033c9a98a0d918b9745c012f9e90b8de6db6e1d870e2ebf77000a1aac",
|
|
23
|
+
"src/memory-eligibility.js": "48af31f23f81140dbc706ff83a39ba9f411314d87d01e5accfaf419c7a74e0ea",
|
|
23
24
|
"src/retrieval-policy.json": "3205fb4eb114a839a74f902e6fae6a61e1460958e5a9d7e29add32b60ba4e05a",
|
|
24
|
-
"src/retrieval-ranking.js": "
|
|
25
|
+
"src/retrieval-ranking.js": "061b64f5bffec3269851830b30ab51abc3260274e5207ea4864ae33d9cb22809",
|
|
25
26
|
"src/retrieval.js": "32f17494eb838cc6b209df35dbe33a155c1728420c9e501a4974c4f2a1b33ceb",
|
|
26
27
|
"src/runtime/README.md": "9be676eca76a7857b34d7357194e6f0ee733c22e61d962d53984715dbec7f673",
|
|
27
28
|
"src/runtime/atomic-file.js": "9846b4b69db5ded811acf19a1181ef93615d93efaa542b858e552a7f3124ad23",
|
|
28
29
|
"src/runtime/automation-config.js": "6498c5397be12b155829740595a1553d4dcd6eaa7db6ced3ef88fdc60218f00e",
|
|
29
|
-
"src/runtime/commit-conversation-binder.js": "
|
|
30
|
+
"src/runtime/commit-conversation-binder.js": "1b3539d9218cfb9867feec3c60b5632403b73433698fc96c61418a84fe83625a",
|
|
30
31
|
"src/runtime/commit-processing-ledger.js": "455aa1ac4e212c0b63d9df99e49aa94703cd24145e41aa9794f16274b2ec2e18",
|
|
31
|
-
"src/runtime/commit-prompt.js": "
|
|
32
|
+
"src/runtime/commit-prompt.js": "db7b6942fc1a1a561c88b901075ccc2015e5cb4c2c3c673d62ac329459968494",
|
|
32
33
|
"src/runtime/commit-reconciler.js": "41d0bafe43692cf37ac4e9c4b81a8bcfd828ca849cbe20d9fede237b6d001c69",
|
|
33
34
|
"src/runtime/content-hash.js": "201ee7dcc054310f14097a00058cf9b28fa913367eef616e0fdd8facbf3c6c41",
|
|
34
35
|
"src/runtime/contracts.js": "1088fd8bb36a5dc32a52496d54a6c7c5255c53ca5ff1fe90e42cfeb276e99044",
|
|
35
36
|
"src/runtime/conversation-exclusions.js": "ef8545034b862d384fb460140490bb531b58d94992f5e2222ebaaa079b44fa63",
|
|
36
|
-
"src/runtime/conversation-store.js": "
|
|
37
|
+
"src/runtime/conversation-store.js": "9bdfab167e2803d14cc16e66bf253e13d67d2f85d567faec8a8b08fd9f9aafd0",
|
|
37
38
|
"src/runtime/evidence-bundle.js": "33d4614849d5e1d69aba8b75c3a43c18b7b6f94e5c78654c82ef631331cc94cc",
|
|
38
39
|
"src/runtime/git-runner.js": "b74fe197bd4dcf3e70635ef7b1f2615edf965c1d9a3ffe5406aabd41b76d74a9",
|
|
39
40
|
"src/runtime/knowledge-promotion.js": "62fbd8282f83d666f0cae9c39c97a9a9b0175473356a0da0aa3805c757b0a9c1",
|
|
@@ -47,7 +48,7 @@
|
|
|
47
48
|
"ui/app.js": "33a2ba38f0dafbbb2e30a1eb3fc93476bfcaf528e124e1a9b2edd2fb69221e9e",
|
|
48
49
|
"ui/index.html": "ce3565cfefd4838b11d37a91a906ef26ca5a1834844fe3f7c897b56851a3c418"
|
|
49
50
|
},
|
|
50
|
-
"sourceCommit": "
|
|
51
|
+
"sourceCommit": "1bfa9a5a7be2719935295bd243d994ebf6c51226"
|
|
51
52
|
}
|
|
52
53
|
}
|
|
53
54
|
}
|