@sanqianx/project-knowledge 5.0.19 → 5.0.20-rc.1
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/.agents/plugins/marketplace.json +3 -3
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +5 -0
- package/LICENSE +201 -201
- package/NOTICE +5 -5
- package/README.md +349 -349
- package/_modules/knowledge-engine/README.md +4 -0
- package/_modules/knowledge-engine/src/analysis-failures.js +39 -0
- package/_modules/knowledge-engine/src/analysis-worker.js +6 -2
- package/_modules/knowledge-engine/src/coordinator.js +7 -0
- package/_modules/knowledge-engine/src/headless-analyzer.js +2 -1
- package/_modules/knowledge-engine/src/server.js +1 -1
- package/_site/_test/agent-capture-mcp-ui-test.js +67 -67
- package/_site/_test/ai-profile-test.js +75 -75
- package/_site/_test/ai-vendor-presets-test.js +91 -91
- package/_site/_test/automatic-context-test.js +70 -70
- package/_site/_test/bin-cli-test.js +230 -230
- package/_site/_test/bridge-adapter-test.js +95 -95
- package/_site/_test/bridge-consumer-service-test.js +310 -310
- package/_site/_test/candidate-bin-content-test.js +35 -35
- package/_site/_test/candidate-product-assets-test.js +13 -13
- package/_site/_test/candidate-release-contract-test.js +14 -14
- package/_site/_test/capture-hook-dedup-test.js +158 -158
- package/_site/_test/claude-executable-discovery-test.js +28 -28
- package/_site/_test/claude-session-lifecycle-sweep-test.js +252 -252
- package/_site/_test/cli-instance-management-test.js +62 -62
- package/_site/_test/client-capture-restart-e2e-test.js +189 -189
- package/_site/_test/codex-conversation-projection-test.js +60 -60
- package/_site/_test/codex-marketplace-scoped-path-test.js +186 -186
- package/_site/_test/codex-notify-capture-e2e-test.js +101 -101
- package/_site/_test/codex-notify-fanout-test.js +134 -134
- package/_site/_test/codex-notify-upgrade-test.js +253 -253
- package/_site/_test/commit-boundary-freeze-test.js +147 -147
- package/_site/_test/commit-conversation-binding-test.js +4 -4
- package/_site/_test/configuration-generation-test.js +22 -22
- package/_site/_test/context-pack-test.js +200 -200
- package/_site/_test/conversation-api-test.js +10 -10
- package/_site/_test/conversation-origin-test.js +15 -15
- package/_site/_test/cross-repo-isolation-e2e-test.js +187 -187
- package/_site/_test/embedding-config-test.js +32 -32
- package/_site/_test/fixtures/fake-browser-exit.js +10 -10
- package/_site/_test/fixtures/fake-browser-hang.js +10 -10
- package/_site/_test/fixtures/integration-busy-worker.cjs +6 -6
- package/_site/_test/fixtures/make-git-repos.js +92 -92
- package/_site/_test/fixtures/retrieval-gold-queries.json +32 -32
- package/_site/_test/fresh-hook-reimport-test.js +53 -53
- package/_site/_test/fresh-product-data-test.js +56 -56
- package/_site/_test/git-path-compatibility-test.js +80 -80
- package/_site/_test/git-validation-test.js +81 -81
- package/_site/_test/hook-worktree-test.js +42 -42
- package/_site/_test/index-builder-test.js +41 -41
- package/_site/_test/index-error-display-contract-test.js +10 -10
- package/_site/_test/integration-adapters-test.js +67 -67
- package/_site/_test/integration-capture-setup-test.js +118 -118
- package/_site/_test/integration-runtime-binding-a2-test.js +566 -566
- package/_site/_test/integration-runtime-binding-a3-test.js +227 -227
- package/_site/_test/integration-runtime-binding-test.js +473 -473
- package/_site/_test/integration-status-scan-test.js +29 -29
- package/_site/_test/kb-framework-test.js +57 -57
- package/_site/_test/kbpath-follow-test.js +63 -63
- package/_site/_test/knowledge-db-test.js +144 -144
- package/_site/_test/knowledge-engine-client-test.js +109 -109
- package/_site/_test/knowledge-maintenance-test.js +40 -40
- package/_site/_test/knowledge-panel-ui-contract-test.js +112 -0
- package/_site/_test/knowledge-scopes-test.js +37 -37
- package/_site/_test/knowledge-storage-location-test.js +28 -28
- package/_site/_test/launcher-readiness-test.js +80 -80
- package/_site/_test/legacy-claude-session-alias-test.js +106 -106
- package/_site/_test/legacy-routes-removed-test.js +47 -47
- package/_site/_test/legacy-workbench-exclusion-test.js +92 -92
- package/_site/_test/live-gateway-test.js +48 -48
- package/_site/_test/local-marketplace-test.js +16 -16
- package/_site/_test/log-redaction-test.js +58 -58
- package/_site/_test/markdown-maintenance-test.js +11 -11
- package/_site/_test/model-context-windows-test.js +89 -89
- package/_site/_test/module-agent-start-proxy-test.js +65 -65
- package/_site/_test/module-artifact-integrity-test.js +27 -27
- package/_site/_test/module-boundary-test.js +30 -30
- package/_site/_test/module-bridge-eventbridge-test.js +202 -202
- package/_site/_test/module-dynamic-port-test.js +118 -118
- package/_site/_test/module-index-proxy-test.js +33 -33
- package/_site/_test/module-model-configuration-test.js +44 -44
- package/_site/_test/module-process-lifecycle-test.js +35 -35
- package/_site/_test/module-stream-proxy-test.js +34 -34
- package/_site/_test/module-terminal-restart-test.js +63 -63
- package/_site/_test/module-wiring-unbind-race-test.js +59 -59
- package/_site/_test/native-context-integrations-test.js +86 -86
- package/_site/_test/orphaned-claim-recovery-test.js +80 -80
- package/_site/_test/package-boundary-test.js +43 -42
- package/_site/_test/package-startup-test.js +56 -56
- package/_site/_test/packaged-ui-smoke-test.js +88 -88
- package/_site/_test/pr-consumer-contract-test.js +55 -55
- package/_site/_test/product-brand-contract-test.js +25 -25
- package/_site/_test/product-diagnostics-ui-test.js +93 -93
- package/_site/_test/product-import-ui-test.js +104 -104
- package/_site/_test/product-progress-status-test.js +12 -1
- package/_site/_test/project-remove-running-guard-test.js +79 -79
- package/_site/_test/project-store-test.js +90 -90
- package/_site/_test/registry-events-test.js +38 -38
- package/_site/_test/release-version-sync-test.js +115 -115
- package/_site/_test/requirement-binding-test.js +113 -113
- package/_site/_test/runtime-endpoint-test.js +64 -64
- package/_site/_test/scanner-test.js +83 -83
- package/_site/_test/server-security-test.js +96 -96
- package/_site/_test/sessions-stream-test.js +93 -93
- package/_site/_test/shared-scope-root-binding-test.js +67 -67
- package/_site/_test/simple-import-test.js +98 -98
- package/_site/_test/startup-analysis-disabled-test.js +6 -6
- package/_site/_test/team-knowledge-store-sparse-checkout-test.js +196 -196
- package/_site/_test/team-knowledge-store-test.js +132 -132
- package/_site/_test/test-server-cleanup-test.js +35 -35
- package/_site/_test/test-server-module-isolation-test.js +37 -37
- package/_site/_test/tracking-start-test.js +35 -35
- package/_site/_test/workbench-context-receipts-test.js +22 -22
- package/_site/_test/workspace-ui-contract-test.js +31 -31
- package/_site/_test/zcode-capture-integration-test.js +108 -108
- package/_site/lib/ai-vendor-presets.js +83 -83
- package/_site/lib/ai-workspace.js +3 -3
- package/_site/lib/atomic-file.js +204 -204
- package/_site/lib/bridge-adapter.js +260 -260
- package/_site/lib/capture-hook-config.js +108 -108
- package/_site/lib/claude-cli-runner.js +89 -89
- package/_site/lib/cli-instances.js +43 -43
- package/_site/lib/codex-context-status.js +17 -17
- package/_site/lib/codex-notify-config.js +193 -193
- package/_site/lib/commit-conversation-binder.js +12 -12
- package/_site/lib/commit-reconciler.js +38 -38
- package/_site/lib/context-pack-builder.js +299 -299
- package/_site/lib/conversation-exclusions.js +204 -204
- package/_site/lib/conversation-query-service.js +17 -17
- package/_site/lib/data-dir.js +13 -13
- package/_site/lib/embedding-service.js +85 -85
- package/_site/lib/engine-connection.js +93 -93
- package/_site/lib/engine-knowledge-client.js +72 -72
- package/_site/lib/folder-picker-output.js +3 -3
- package/_site/lib/git-path.js +14 -14
- package/_site/lib/github-team-store.js +3 -3
- package/_site/lib/index-builder.js +157 -157
- package/_site/lib/integration-status-scan.js +99 -99
- package/_site/lib/integration-status-worker.js +14 -14
- package/_site/lib/kb-framework.js +15 -15
- package/_site/lib/knowledge-db.js +363 -363
- package/_site/lib/knowledge-schema.js +121 -121
- package/_site/lib/live-gateway.js +78 -78
- package/_site/lib/llm-client.js +12 -12
- package/_site/lib/model-context-windows.js +82 -82
- package/_site/lib/module-bridge.js +874 -874
- package/_site/lib/module-port-resolver.js +57 -57
- package/_site/lib/post-commit-automation.js +54 -54
- package/_site/lib/product-data.js +35 -35
- package/_site/lib/project-lifecycle-service.js +14 -14
- package/_site/lib/project-registry-store.js +129 -129
- package/_site/lib/prompt-registry.js +148 -148
- package/_site/lib/registry-events.js +16 -16
- package/_site/lib/requirement-adapters.js +10 -10
- package/_site/lib/requirement-binder.js +112 -112
- package/_site/lib/runtime-control.js +89 -89
- package/_site/lib/runtime-endpoint.js +5 -5
- package/_site/lib/zcode-context-integration.js +60 -60
- package/_site/scripts/codex-notify-fanout.cjs +95 -95
- package/_site/scripts/install-module-candidates.js +69 -69
- package/_site/scripts/pack-module-candidates.js +89 -89
- package/_site/scripts/sync-product-content.js +28 -28
- package/_site/scripts/sync-release-version.js +164 -164
- package/_site/scripts/vendor-modules.js +49 -49
- package/_site/scripts/verify-module-runtime.js +50 -50
- package/_site/scripts/verify-product-runtime.js +36 -36
- package/_site/scripts/verify-retrieval-gold.js +83 -83
- package/_site/server.js +15 -15
- package/_site/start.bat +26 -26
- package/_site/stop.bat +11 -11
- package/bin/project-knowledge-integrations.js +254 -254
- package/bin/project-knowledge-kb.js +67 -67
- package/bin/project-knowledge-mcp.js +8 -8
- package/bin/project-knowledge.js +170 -170
- package/claude-prompts.json +21 -21
- package/docs/README.zh-CN.md +205 -205
- package/docs/assets/architecture.svg +181 -181
- package/docs/assets/logo.svg +49 -49
- package/docs/fresh-v5-start.md +42 -42
- package/docs/leader-glm-workbench-playbook.md +122 -122
- package/docs/project-registry-schema.md +11 -11
- package/docs/release-5.0.16-acceptance.md +176 -176
- package/docs/release-5.0.17-acceptance.md +117 -117
- package/docs/release-5.0.19-acceptance.md +39 -25
- package/docs/team-knowledge-mode-a-plan.md +73 -73
- package/module-runtime-manifest.json +53 -33
- package/package.json +3 -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/plugins/project-knowledge/opencode/project-knowledge.md +3 -3
- package/plugins/project-knowledge/skills/project-knowledge/SKILL.md +28 -28
- package/templates/change.md +30 -30
- package/templates/project-readme.md +18 -18
- package/ui/index.html +1 -1
- package/ui/knowledge-panel.html +118 -0
- package/ui/product.css +8 -0
- package/ui/product.js +146 -4
- package/vendor-manifest.json +55 -54
package/docs/README.zh-CN.md
CHANGED
|
@@ -1,205 +1,205 @@
|
|
|
1
|
-
# project-knowledge
|
|
2
|
-
|
|
3
|
-
本地、由 Git Commit 驱动的智脑知识服务。Markdown 是知识事实源;vector-hub
|
|
4
|
-
提供可重建的派生索引。外壳只负责导航、归属、接线与状态投影。
|
|
5
|
-
|
|
6
|
-
## 安装与运行
|
|
7
|
-
|
|
8
|
-
v5 不再兼容或迁移旧知识库数据。停止旧版后重新设置模型、知识根目录并导入
|
|
9
|
-
项目;默认新数据目录为 `~/.project-knowledge-v5`。旧文件保留但不读取。
|
|
10
|
-
详见 [从头开始](fresh-v5-start.md)。
|
|
11
|
-
|
|
12
|
-
新机器完整安装只需三条命令:
|
|
13
|
-
|
|
14
|
-
```bash
|
|
15
|
-
npm install -g @sanqianx/project-knowledge@latest
|
|
16
|
-
project-knowledge-integrations install
|
|
17
|
-
project-knowledge
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
1. `npm install -g @sanqianx/project-knowledge@latest` 安装外壳、固定版本的
|
|
21
|
-
工作台、vector-hub、event-bridge,以及包内 knowledge-engine。
|
|
22
|
-
2. `project-knowledge-integrations install` 是一次性的 Integration Setup,
|
|
23
|
-
对检测到的每个客户端(Claude Code / Codex / OpenCode)同时安装两类
|
|
24
|
-
相互独立、分别上报状态的能力:
|
|
25
|
-
- **Knowledge Integration**:插件 / MCP / Skill,让外部 Agent 能查询知识库;
|
|
26
|
-
- **Development Capture**:托管的 Bridge hooks / notify / plugin,把真实
|
|
27
|
-
Git 工作区里的 Agent 对话捕捉进已导入项目的「开发对话」。
|
|
28
|
-
同时注册 host 级 `project-knowledge` Bridge consumer。全程无需打开任何
|
|
29
|
-
客户端 UI;第三方 hooks 与配置完整保留;Codex notify 冲突只上报不覆盖。
|
|
30
|
-
3. `project-knowledge` 启动全新的 v5 本地服务。重新配置模型、知识根目录并导入
|
|
31
|
-
项目,不迁移旧登记、会话、知识、索引或未完成任务。
|
|
32
|
-
|
|
33
|
-
注意事项:
|
|
34
|
-
|
|
35
|
-
- 装完 Development Capture 后,已在运行的 Claude Code 会话需重启一次
|
|
36
|
-
(hooks 在会话启动时加载)。只捕捉配置之后的对话,历史不回填。
|
|
37
|
-
- 按需收窄安装范围:`--ide claude` / `--capture-only` / `--knowledge-only`;
|
|
38
|
-
按客户端移除捕捉:`uninstall --capture-only`;全局禁用捕捉(含注销 Bridge
|
|
39
|
-
consumer):`disable-capture`。
|
|
40
|
-
|
|
41
|
-
默认只监听 `127.0.0.1:5757`。CLI 会记录实际 loopback endpoint,托管 Git
|
|
42
|
-
Hook 不依赖写死端口。
|
|
43
|
-
|
|
44
|
-
```bash
|
|
45
|
-
project-knowledge
|
|
46
|
-
project-knowledge --fg
|
|
47
|
-
project-knowledge status
|
|
48
|
-
project-knowledge stop
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
需要 Node.js 22+ 与 `PATH` 中的 Git。4.8.0 仅交付 npm 网页版本,不提供新版
|
|
52
|
-
Windows 安装包或桌面自动更新。
|
|
53
|
-
|
|
54
|
-
## 唯一分析流程
|
|
55
|
-
|
|
56
|
-
知识引擎是唯一分析执行者:
|
|
57
|
-
|
|
58
|
-
```text
|
|
59
|
-
Git Hook → event-bridge journal → 引擎持久化认领 → 隔离 Agent 分析
|
|
60
|
-
→ staging 校验 → 知识晋升 → vector-hub 索引 → 检索
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
导入只建立 Git tracking baseline、创建项目元数据并安装/验证 Hook;不运行 AI、
|
|
64
|
-
不扫描全仓推测需求、不生成 TODO 知识。空仓库导入后的第一个 Commit会被处理。
|
|
65
|
-
|
|
66
|
-
Hook 向 bridge journal 写入提交证据,通知只负责唤醒。通知丢失仍由 journal
|
|
67
|
-
消费及启动对账恢复;Hook 故障不阻塞提交。同项目严格串行、失败即停;不同项目
|
|
68
|
-
最多两个并发分析,重复事件不会重做已完成提交。关闭浏览器不停止后台维护。
|
|
69
|
-
|
|
70
|
-
## 知识与索引安全
|
|
71
|
-
|
|
72
|
-
每个 Commit 的 claim 会冻结 Commit SHA、真实 patch、绑定的 requirement IDs、
|
|
73
|
-
prompt hash 与固定 knowledgePath。AI 只能写内部 per-run staging,不能写源码或
|
|
74
|
-
final knowledgePath。产物 manifest 必须通过路径、UTF-8、Markdown、hash、证据与
|
|
75
|
-
操作类型验证。
|
|
76
|
-
|
|
77
|
-
Promotion 使用 backup、hash 与 durable journal。只有 Markdown promotion 验证
|
|
78
|
-
成功后才推进 lastAnalyzedCommit 并把 index 标为 dirty。索引失败不会回滚真实
|
|
79
|
-
Markdown,也不会重跑 AI;启动和维护流程会重试 dirty index。
|
|
80
|
-
|
|
81
|
-
vector-hub 是唯一派生索引服务,外壳不再执行第二套索引写入。索引失败独立显示
|
|
82
|
-
“知识已更新,索引待修复”,修复索引不重跑模型、不撤销有效知识。
|
|
83
|
-
|
|
84
|
-
应用不会创建、修改、刷新或删除 `CLAUDE.md`。
|
|
85
|
-
|
|
86
|
-
## 需求记录与查询
|
|
87
|
-
|
|
88
|
-
### 外部 Agent 会话采集
|
|
89
|
-
|
|
90
|
-
在网页左下角打开“系统状态 → 外部 Agent 采集”,对使用的工具点击“接入”或
|
|
91
|
-
“修复”;“移除采集”只移除托管 Hook,不删除历史记录或第三方配置。
|
|
92
|
-
“检测到命令/检测到配置”与“已配置采集”是不同状态,未检测到不等于没有安装。
|
|
93
|
-
配置完成后重新打开外部 Agent 会话,再到活动记录验证新会话是否出现。
|
|
94
|
-
|
|
95
|
-
```powershell
|
|
96
|
-
project-knowledge-integrations status --all
|
|
97
|
-
project-knowledge-integrations install --ide zcode --capture-only
|
|
98
|
-
project-knowledge-integrations uninstall --ide zcode --capture-only
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
ZCode 接入当前仅包含会话采集,不会冒充已安装 MCP/知识检索插件。
|
|
102
|
-
接入失败会显示操作 ID,并写入数据目录 `logs/system/YYYY-MM-DD.jsonl`;
|
|
103
|
-
网页“系统诊断记录”可查看和导出。注册消费者本身不能代替安装 Agent Hook。
|
|
104
|
-
|
|
105
|
-
Claude Code、Codex、OpenCode 集成可在编码前追加用户真实需求元数据。记录写入
|
|
106
|
-
项目 `requirements.jsonl`,不会触发分析或写知识。
|
|
107
|
-
|
|
108
|
-
MCP 提供只读 `resolve/search/ask/get/history`,以及唯一写能力
|
|
109
|
-
`record_requirement`。CLI 示例:
|
|
110
|
-
|
|
111
|
-
```bash
|
|
112
|
-
project-knowledge-kb search --project <projectId> --query "令牌轮换" --json
|
|
113
|
-
project-knowledge-kb ask --project <projectId> --query "登录方案如何决定?"
|
|
114
|
-
project-knowledge-kb get --project <projectId> --entry modules/auth.md --json
|
|
115
|
-
project-knowledge-kb history --project <projectId> --json
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
只读查询不会创建或修改配置。索引不可用时回退到真实 Markdown。项目、所属领域、
|
|
119
|
-
整个智脑是包含范围;未确认记忆不能作为长期偏好注入任务。
|
|
120
|
-
|
|
121
|
-
## 存储合同
|
|
122
|
-
|
|
123
|
-
内部数据默认在 `~/.project-knowledge-v5/`,可用 `KB_DATA_DIR` 修改。用户必须先设置
|
|
124
|
-
global knowledge root,再导入项目;它只影响未来导入。每个项目导入时固化绝对
|
|
125
|
-
knowledgePath,修改 global root 不会移动已有项目。
|
|
126
|
-
|
|
127
|
-
```text
|
|
128
|
-
~/.project-knowledge-v5/
|
|
129
|
-
├── settings.json
|
|
130
|
-
├── projects.json # 仅 ID、顺序、最小显示快照
|
|
131
|
-
├── projects/<projectId>/
|
|
132
|
-
│ ├── config.json # 固定 repoPath/knowledgePath
|
|
133
|
-
│ ├── state.json # tracking/claim/index/Hook 状态
|
|
134
|
-
│ └── requirements.jsonl # 按需创建
|
|
135
|
-
├── knowledge-engine/ # 持久化 claim、run、journal 游标
|
|
136
|
-
├── cache/
|
|
137
|
-
├── runtime/
|
|
138
|
-
├── logs/{app,projects,hooks}/
|
|
139
|
-
└── recovery/
|
|
140
|
-
|
|
141
|
-
<用户选择的知识根>/
|
|
142
|
-
└── <项目 storage name>/
|
|
143
|
-
├── README.md
|
|
144
|
-
├── GOAL.md
|
|
145
|
-
├── ARCHITECTURE.md
|
|
146
|
-
├── modules/*.md
|
|
147
|
-
└── changes/*.md
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
Team knowledge 是显式例外:项目可绑定已经 checkout 的 team store 子目录。路径
|
|
151
|
-
仍必须位于所选 store 内并固化到 config;删除项目注册时不会删除这类外部知识。
|
|
152
|
-
|
|
153
|
-
## 迁移
|
|
154
|
-
|
|
155
|
-
`layout-v2` 迁移先只读发现旧资产,创建 journal 和集中 recovery backup,再 staging
|
|
156
|
-
settings、per-project config/state、最小 registry 与旧 index。验证路径、secret、
|
|
157
|
-
Commit pointer、日志和索引后才激活,completion marker 最后写。任何阶段中断都
|
|
158
|
-
保留旧 reader、用户知识、历史日志、配置与 backup,允许安全重试。
|
|
159
|
-
|
|
160
|
-
## 产品 UI
|
|
161
|
-
|
|
162
|
-
一级导航为智脑首页、开始工作、知识检索、长期记忆、领域与项目、活动记录。
|
|
163
|
-
开始工作嵌入真实工作台,保留消息流、中止、权限和会话恢复,不重复实现聊天。
|
|
164
|
-
在“领域与项目”点击“导入项目”,确认代码目录、知识目录及领域;部分接线失败
|
|
165
|
-
保留项目,只重试失败模块。系统状态集中展示四模块健康、模型配置与诊断。
|
|
166
|
-
|
|
167
|
-
加入智脑不会搬动已有项目知识。领域共享知识及已确认记忆与项目知识并存。
|
|
168
|
-
凭据由 Workbench 统一管理;维护默认模型独立于聊天临时切换,运行凭据不进
|
|
169
|
-
引擎状态、日志或浏览器消息。
|
|
170
|
-
|
|
171
|
-
活动记录保留结构化日志能力:
|
|
172
|
-
|
|
173
|
-
- trace/debug/info/warn/error/fatal 六级;
|
|
174
|
-
- 本地日期、项目、component、event、operation、Commit、全文过滤;
|
|
175
|
-
- newest-first cursor 分页、暂停/自动刷新、按当前条件导出;
|
|
176
|
-
- operation flow、结构化 error/stack、logger degraded 状态;
|
|
177
|
-
- Hook/索引/项目状态、统一的浅深主题。
|
|
178
|
-
|
|
179
|
-
日志使用 `log/v2` JSONL,按天和 50 MiB segment 轮转;默认保留 365 天,`0`
|
|
180
|
-
表示不按时间删除,并受总容量策略约束。写入、查询、error 与 export 全部递归脱敏。
|
|
181
|
-
日志根固定在内部数据目录,不能由 API 修改。
|
|
182
|
-
|
|
183
|
-
## API 安全
|
|
184
|
-
|
|
185
|
-
默认 loopback + same-origin,不使用 wildcard CORS。非回环绑定必须配置
|
|
186
|
-
`KB_SITE_AUTH_TOKEN` 并通过 Origin 校验。AI profile GET 只返回 masked metadata;
|
|
187
|
-
通用错误不返回 stack;不存在 raw-file、通用项目覆盖、手动 Hook 或手动分析接口。
|
|
188
|
-
|
|
189
|
-
## 验证
|
|
190
|
-
|
|
191
|
-
```bash
|
|
192
|
-
npm ci
|
|
193
|
-
npm test -- --no-report
|
|
194
|
-
npm test --prefix desktop
|
|
195
|
-
npm pack --dry-run --json
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
自动回归覆盖真实 Git Hook、空格/中文路径、提交证据、promotion/index、查询、
|
|
199
|
-
恢复与日志。产品浏览器验收只检查 1920×1080 桌面视口,模型和 embedding 为
|
|
200
|
-
可控替身;真实模型与真实索引抽测分别报告。完整故障组合和用户已有数据的最终
|
|
201
|
-
切换另行验收,不用可点击页面代替真实链路通过。
|
|
202
|
-
|
|
203
|
-
## 许可证
|
|
204
|
-
|
|
205
|
-
[Apache-2.0](../LICENSE),另见 [NOTICE](../NOTICE)。
|
|
1
|
+
# project-knowledge
|
|
2
|
+
|
|
3
|
+
本地、由 Git Commit 驱动的智脑知识服务。Markdown 是知识事实源;vector-hub
|
|
4
|
+
提供可重建的派生索引。外壳只负责导航、归属、接线与状态投影。
|
|
5
|
+
|
|
6
|
+
## 安装与运行
|
|
7
|
+
|
|
8
|
+
v5 不再兼容或迁移旧知识库数据。停止旧版后重新设置模型、知识根目录并导入
|
|
9
|
+
项目;默认新数据目录为 `~/.project-knowledge-v5`。旧文件保留但不读取。
|
|
10
|
+
详见 [从头开始](fresh-v5-start.md)。
|
|
11
|
+
|
|
12
|
+
新机器完整安装只需三条命令:
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
npm install -g @sanqianx/project-knowledge@latest
|
|
16
|
+
project-knowledge-integrations install
|
|
17
|
+
project-knowledge
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
1. `npm install -g @sanqianx/project-knowledge@latest` 安装外壳、固定版本的
|
|
21
|
+
工作台、vector-hub、event-bridge,以及包内 knowledge-engine。
|
|
22
|
+
2. `project-knowledge-integrations install` 是一次性的 Integration Setup,
|
|
23
|
+
对检测到的每个客户端(Claude Code / Codex / OpenCode)同时安装两类
|
|
24
|
+
相互独立、分别上报状态的能力:
|
|
25
|
+
- **Knowledge Integration**:插件 / MCP / Skill,让外部 Agent 能查询知识库;
|
|
26
|
+
- **Development Capture**:托管的 Bridge hooks / notify / plugin,把真实
|
|
27
|
+
Git 工作区里的 Agent 对话捕捉进已导入项目的「开发对话」。
|
|
28
|
+
同时注册 host 级 `project-knowledge` Bridge consumer。全程无需打开任何
|
|
29
|
+
客户端 UI;第三方 hooks 与配置完整保留;Codex notify 冲突只上报不覆盖。
|
|
30
|
+
3. `project-knowledge` 启动全新的 v5 本地服务。重新配置模型、知识根目录并导入
|
|
31
|
+
项目,不迁移旧登记、会话、知识、索引或未完成任务。
|
|
32
|
+
|
|
33
|
+
注意事项:
|
|
34
|
+
|
|
35
|
+
- 装完 Development Capture 后,已在运行的 Claude Code 会话需重启一次
|
|
36
|
+
(hooks 在会话启动时加载)。只捕捉配置之后的对话,历史不回填。
|
|
37
|
+
- 按需收窄安装范围:`--ide claude` / `--capture-only` / `--knowledge-only`;
|
|
38
|
+
按客户端移除捕捉:`uninstall --capture-only`;全局禁用捕捉(含注销 Bridge
|
|
39
|
+
consumer):`disable-capture`。
|
|
40
|
+
|
|
41
|
+
默认只监听 `127.0.0.1:5757`。CLI 会记录实际 loopback endpoint,托管 Git
|
|
42
|
+
Hook 不依赖写死端口。
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
project-knowledge
|
|
46
|
+
project-knowledge --fg
|
|
47
|
+
project-knowledge status
|
|
48
|
+
project-knowledge stop
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
需要 Node.js 22+ 与 `PATH` 中的 Git。4.8.0 仅交付 npm 网页版本,不提供新版
|
|
52
|
+
Windows 安装包或桌面自动更新。
|
|
53
|
+
|
|
54
|
+
## 唯一分析流程
|
|
55
|
+
|
|
56
|
+
知识引擎是唯一分析执行者:
|
|
57
|
+
|
|
58
|
+
```text
|
|
59
|
+
Git Hook → event-bridge journal → 引擎持久化认领 → 隔离 Agent 分析
|
|
60
|
+
→ staging 校验 → 知识晋升 → vector-hub 索引 → 检索
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
导入只建立 Git tracking baseline、创建项目元数据并安装/验证 Hook;不运行 AI、
|
|
64
|
+
不扫描全仓推测需求、不生成 TODO 知识。空仓库导入后的第一个 Commit会被处理。
|
|
65
|
+
|
|
66
|
+
Hook 向 bridge journal 写入提交证据,通知只负责唤醒。通知丢失仍由 journal
|
|
67
|
+
消费及启动对账恢复;Hook 故障不阻塞提交。同项目严格串行、失败即停;不同项目
|
|
68
|
+
最多两个并发分析,重复事件不会重做已完成提交。关闭浏览器不停止后台维护。
|
|
69
|
+
|
|
70
|
+
## 知识与索引安全
|
|
71
|
+
|
|
72
|
+
每个 Commit 的 claim 会冻结 Commit SHA、真实 patch、绑定的 requirement IDs、
|
|
73
|
+
prompt hash 与固定 knowledgePath。AI 只能写内部 per-run staging,不能写源码或
|
|
74
|
+
final knowledgePath。产物 manifest 必须通过路径、UTF-8、Markdown、hash、证据与
|
|
75
|
+
操作类型验证。
|
|
76
|
+
|
|
77
|
+
Promotion 使用 backup、hash 与 durable journal。只有 Markdown promotion 验证
|
|
78
|
+
成功后才推进 lastAnalyzedCommit 并把 index 标为 dirty。索引失败不会回滚真实
|
|
79
|
+
Markdown,也不会重跑 AI;启动和维护流程会重试 dirty index。
|
|
80
|
+
|
|
81
|
+
vector-hub 是唯一派生索引服务,外壳不再执行第二套索引写入。索引失败独立显示
|
|
82
|
+
“知识已更新,索引待修复”,修复索引不重跑模型、不撤销有效知识。
|
|
83
|
+
|
|
84
|
+
应用不会创建、修改、刷新或删除 `CLAUDE.md`。
|
|
85
|
+
|
|
86
|
+
## 需求记录与查询
|
|
87
|
+
|
|
88
|
+
### 外部 Agent 会话采集
|
|
89
|
+
|
|
90
|
+
在网页左下角打开“系统状态 → 外部 Agent 采集”,对使用的工具点击“接入”或
|
|
91
|
+
“修复”;“移除采集”只移除托管 Hook,不删除历史记录或第三方配置。
|
|
92
|
+
“检测到命令/检测到配置”与“已配置采集”是不同状态,未检测到不等于没有安装。
|
|
93
|
+
配置完成后重新打开外部 Agent 会话,再到活动记录验证新会话是否出现。
|
|
94
|
+
|
|
95
|
+
```powershell
|
|
96
|
+
project-knowledge-integrations status --all
|
|
97
|
+
project-knowledge-integrations install --ide zcode --capture-only
|
|
98
|
+
project-knowledge-integrations uninstall --ide zcode --capture-only
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
ZCode 接入当前仅包含会话采集,不会冒充已安装 MCP/知识检索插件。
|
|
102
|
+
接入失败会显示操作 ID,并写入数据目录 `logs/system/YYYY-MM-DD.jsonl`;
|
|
103
|
+
网页“系统诊断记录”可查看和导出。注册消费者本身不能代替安装 Agent Hook。
|
|
104
|
+
|
|
105
|
+
Claude Code、Codex、OpenCode 集成可在编码前追加用户真实需求元数据。记录写入
|
|
106
|
+
项目 `requirements.jsonl`,不会触发分析或写知识。
|
|
107
|
+
|
|
108
|
+
MCP 提供只读 `resolve/search/ask/get/history`,以及唯一写能力
|
|
109
|
+
`record_requirement`。CLI 示例:
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
project-knowledge-kb search --project <projectId> --query "令牌轮换" --json
|
|
113
|
+
project-knowledge-kb ask --project <projectId> --query "登录方案如何决定?"
|
|
114
|
+
project-knowledge-kb get --project <projectId> --entry modules/auth.md --json
|
|
115
|
+
project-knowledge-kb history --project <projectId> --json
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
只读查询不会创建或修改配置。索引不可用时回退到真实 Markdown。项目、所属领域、
|
|
119
|
+
整个智脑是包含范围;未确认记忆不能作为长期偏好注入任务。
|
|
120
|
+
|
|
121
|
+
## 存储合同
|
|
122
|
+
|
|
123
|
+
内部数据默认在 `~/.project-knowledge-v5/`,可用 `KB_DATA_DIR` 修改。用户必须先设置
|
|
124
|
+
global knowledge root,再导入项目;它只影响未来导入。每个项目导入时固化绝对
|
|
125
|
+
knowledgePath,修改 global root 不会移动已有项目。
|
|
126
|
+
|
|
127
|
+
```text
|
|
128
|
+
~/.project-knowledge-v5/
|
|
129
|
+
├── settings.json
|
|
130
|
+
├── projects.json # 仅 ID、顺序、最小显示快照
|
|
131
|
+
├── projects/<projectId>/
|
|
132
|
+
│ ├── config.json # 固定 repoPath/knowledgePath
|
|
133
|
+
│ ├── state.json # tracking/claim/index/Hook 状态
|
|
134
|
+
│ └── requirements.jsonl # 按需创建
|
|
135
|
+
├── knowledge-engine/ # 持久化 claim、run、journal 游标
|
|
136
|
+
├── cache/
|
|
137
|
+
├── runtime/
|
|
138
|
+
├── logs/{app,projects,hooks}/
|
|
139
|
+
└── recovery/
|
|
140
|
+
|
|
141
|
+
<用户选择的知识根>/
|
|
142
|
+
└── <项目 storage name>/
|
|
143
|
+
├── README.md
|
|
144
|
+
├── GOAL.md
|
|
145
|
+
├── ARCHITECTURE.md
|
|
146
|
+
├── modules/*.md
|
|
147
|
+
└── changes/*.md
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Team knowledge 是显式例外:项目可绑定已经 checkout 的 team store 子目录。路径
|
|
151
|
+
仍必须位于所选 store 内并固化到 config;删除项目注册时不会删除这类外部知识。
|
|
152
|
+
|
|
153
|
+
## 迁移
|
|
154
|
+
|
|
155
|
+
`layout-v2` 迁移先只读发现旧资产,创建 journal 和集中 recovery backup,再 staging
|
|
156
|
+
settings、per-project config/state、最小 registry 与旧 index。验证路径、secret、
|
|
157
|
+
Commit pointer、日志和索引后才激活,completion marker 最后写。任何阶段中断都
|
|
158
|
+
保留旧 reader、用户知识、历史日志、配置与 backup,允许安全重试。
|
|
159
|
+
|
|
160
|
+
## 产品 UI
|
|
161
|
+
|
|
162
|
+
一级导航为智脑首页、开始工作、知识检索、长期记忆、领域与项目、活动记录。
|
|
163
|
+
开始工作嵌入真实工作台,保留消息流、中止、权限和会话恢复,不重复实现聊天。
|
|
164
|
+
在“领域与项目”点击“导入项目”,确认代码目录、知识目录及领域;部分接线失败
|
|
165
|
+
保留项目,只重试失败模块。系统状态集中展示四模块健康、模型配置与诊断。
|
|
166
|
+
|
|
167
|
+
加入智脑不会搬动已有项目知识。领域共享知识及已确认记忆与项目知识并存。
|
|
168
|
+
凭据由 Workbench 统一管理;维护默认模型独立于聊天临时切换,运行凭据不进
|
|
169
|
+
引擎状态、日志或浏览器消息。
|
|
170
|
+
|
|
171
|
+
活动记录保留结构化日志能力:
|
|
172
|
+
|
|
173
|
+
- trace/debug/info/warn/error/fatal 六级;
|
|
174
|
+
- 本地日期、项目、component、event、operation、Commit、全文过滤;
|
|
175
|
+
- newest-first cursor 分页、暂停/自动刷新、按当前条件导出;
|
|
176
|
+
- operation flow、结构化 error/stack、logger degraded 状态;
|
|
177
|
+
- Hook/索引/项目状态、统一的浅深主题。
|
|
178
|
+
|
|
179
|
+
日志使用 `log/v2` JSONL,按天和 50 MiB segment 轮转;默认保留 365 天,`0`
|
|
180
|
+
表示不按时间删除,并受总容量策略约束。写入、查询、error 与 export 全部递归脱敏。
|
|
181
|
+
日志根固定在内部数据目录,不能由 API 修改。
|
|
182
|
+
|
|
183
|
+
## API 安全
|
|
184
|
+
|
|
185
|
+
默认 loopback + same-origin,不使用 wildcard CORS。非回环绑定必须配置
|
|
186
|
+
`KB_SITE_AUTH_TOKEN` 并通过 Origin 校验。AI profile GET 只返回 masked metadata;
|
|
187
|
+
通用错误不返回 stack;不存在 raw-file、通用项目覆盖、手动 Hook 或手动分析接口。
|
|
188
|
+
|
|
189
|
+
## 验证
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
npm ci
|
|
193
|
+
npm test -- --no-report
|
|
194
|
+
npm test --prefix desktop
|
|
195
|
+
npm pack --dry-run --json
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
自动回归覆盖真实 Git Hook、空格/中文路径、提交证据、promotion/index、查询、
|
|
199
|
+
恢复与日志。产品浏览器验收只检查 1920×1080 桌面视口,模型和 embedding 为
|
|
200
|
+
可控替身;真实模型与真实索引抽测分别报告。完整故障组合和用户已有数据的最终
|
|
201
|
+
切换另行验收,不用可点击页面代替真实链路通过。
|
|
202
|
+
|
|
203
|
+
## 许可证
|
|
204
|
+
|
|
205
|
+
[Apache-2.0](../LICENSE),另见 [NOTICE](../NOTICE)。
|