@sanqianx/project-knowledge 5.0.9-rc.1 → 5.0.9-rc.10

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 (35) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +96 -0
  3. package/README.md +27 -4
  4. package/_modules/knowledge-engine/README.md +4 -1
  5. package/_modules/knowledge-engine/package.json +1 -1
  6. package/_modules/knowledge-engine/src/headless-analyzer.js +3 -1
  7. package/_modules/knowledge-engine/src/knowledge-targets.js +46 -0
  8. package/_modules/knowledge-engine/src/retrieval.js +7 -5
  9. package/_site/_test/fixtures/make-git-repos.js +1 -9
  10. package/_site/_test/knowledge-engine-client-test.js +105 -0
  11. package/_site/_test/sessions-stream-test.js +3 -2
  12. package/_site/_test/shared-scope-root-binding-test.js +67 -0
  13. package/_site/_test/simple-import-test.js +3 -2
  14. package/_site/_test/team-knowledge-store-test.js +3 -2
  15. package/_site/_test/test-server-cleanup-test.js +31 -0
  16. package/_site/_test/vector-storage-root-test.js +52 -0
  17. package/_site/_test/workspace-ui-contract-test.js +1 -0
  18. package/_site/lib/contracts.js +5 -0
  19. package/_site/lib/engine-knowledge-client.js +72 -0
  20. package/_site/lib/knowledge-tool-runtime.js +7 -0
  21. package/_site/lib/module-bridge.js +44 -11
  22. package/_site/lib/server-app.js +3 -3
  23. package/_site/lib/settings-store.js +20 -0
  24. package/_site/lib/storage-layout.js +4 -0
  25. package/bin/project-knowledge-kb.js +4 -2
  26. package/bin/project-knowledge-mcp.js +7 -1
  27. package/module-runtime-manifest.json +40 -38
  28. package/package.json +3 -3
  29. package/plugins/project-knowledge/.claude-plugin/plugin.json +1 -1
  30. package/plugins/project-knowledge/.codex-plugin/plugin.json +1 -1
  31. package/plugins/project-knowledge/.mcp.json +1 -1
  32. package/ui/index.html +2 -2
  33. package/ui/product.css +1 -0
  34. package/ui/product.js +12 -1
  35. package/vendor-manifest.json +6 -5
@@ -1,19 +1,19 @@
1
1
  {
2
2
  "schema": "project-knowledge/module-content/v1",
3
3
  "productFiles": {
4
- "ui/index.html": "db9cc5624132d336ee6b31ba37c93572b89e382f68e4b6331b4b886be8253bb5",
5
- "ui/product.js": "50d26a9aa3a95889804f8ca771dada9e1ea89d6956851e58dadf119a75842b9c",
6
- "ui/product.css": "3f89daeb52c5f1ed8a79150c9a84200187474a013fd97c6d7c8799d850e5b0b7",
4
+ "ui/index.html": "5cc3f9519a0671e7d5b24a94987a96b7ee81d3ed3367e3c02cd70934f08e64c8",
5
+ "ui/product.js": "714295970c175e4ada8155422dd3b1a013e9f452efc713f528373b36030ca26d",
6
+ "ui/product.css": "70547d3f2c53b6cc5c73cb95eb8cb3faf0dc8ccee7cd6b11a89a88885de7c3f8",
7
7
  "ui/favicon.svg": "c48be946b224112ebb0238b44263f7a61bda31e531afa895c2e9801c0ff24f32"
8
8
  },
9
9
  "modules": {
10
10
  "terminal": {
11
11
  "name": "@sanqianx/claude-ai-workbench",
12
12
  "installName": "claude-ai-workbench",
13
- "version": "0.13.1",
13
+ "version": "0.13.2-rc.4",
14
14
  "files": {
15
15
  "LICENSE": "c1b9df1275e769f3dbab000d1e457a2d4b0f28eb5da6c77e48dc37eeba202ed7",
16
- "README.md": "07a12d2397f625bd9d3a5e2944012d031a03c0bf1c8237e7c2b6f47cb6636685",
16
+ "README.md": "6f4176416a3cfa702d17da8987327e014fec93e34ff5bd350175c771a55c1521",
17
17
  "apps/agent-terminal/app.css": "39cc65ac65bcb390f4aa21d9b783182ca229557f6bec15090f69598120161917",
18
18
  "apps/agent-terminal/app.js": "2fedcc79f9515ebae89d1c7dc996d732aa1d0946038eaaa045438121bf27f551",
19
19
  "apps/agent-terminal/index.html": "6a52ba210696c8aed99e2786e21d2771340070d51583199dd74c8da41edf0257",
@@ -27,52 +27,54 @@
27
27
  "apps/minimal-test-host/README.md": "fa73136f4ee3865c2d91eb97b2e8c03679aa4688e44c1e1c8ec6e27d604b0de5",
28
28
  "docs/sdk/FILE_LAYOUT.md": "17882f96505c8161bfb66876684b9d2d3f50021a111b8b844502d3cb4e97870a",
29
29
  "docs/sdk/INTEGRATION.md": "d4c0c80d2d2fc610205102d703a429bfaa20f9f3a48f1718f5bab02ee90138df",
30
- "docs/sdk/openapi.yaml": "3e6cc332979a58d98073e5e04ceccef1c62aff681e78dc9f705450e6ad95006e",
30
+ "docs/sdk/openapi.yaml": "702a9cab4ccc38c186977c4bdcba653443311c676d6c7a70b7661647fa303470",
31
31
  "docs/sdk/README.md": "7ab591d39c36a3b84cfdf487ff567040ec453975f3ef0fba86dc822094667b61",
32
- "package.json": "88df20662b9034a4cfca3b5c49cf58f2ad41398d34abfd37078a13fe87642cd7",
32
+ "package.json": "87a7e1e85554e0d047eac03787c405d7017b5d83648a4968638553c136d0b7d1",
33
33
  "packages/client/index.d.ts": "fb66b7b21ac936cddcb7f74543cf4f3bb7e80c169534ec249ab8ef2356224162",
34
34
  "packages/client/index.js": "92fe5ddd32289d729f336f669e47bd9601e562f5a4309ee4fa7f7f15b567edc2",
35
- "packages/client/package.json": "4998341161acc712ef4b775004d2e791c232662269c18924029d7fa9e63e7452",
35
+ "packages/client/package.json": "796d1fb39003b780248a962967ae4f0f84a5d834b2beedeedc10b958291c3645",
36
36
  "packages/client/README.md": "342dff9b1dcbc85fccc9b980ed3e4e455aa71133af1d0805b8431ea2ac564ef8",
37
37
  "packages/contracts/index.d.ts": "edc717067bfb864c6c95df0c408a799fbf90b7552519131e6dc35af3f9eb9006",
38
38
  "packages/contracts/index.js": "565b4a88190dbb8994cd0a9309b30b00f64305d65505fff9fa360d7ce69dfb58",
39
- "packages/contracts/package.json": "26d81905c0757c918ec9d0272645e4e6c3a5e64cfc7c31eb2e40c4f31f12dde1",
39
+ "packages/contracts/package.json": "deaa5929f849f6f994df7fbb0243c77f896b8fc73edcc3c785206b898cfafa71",
40
40
  "packages/contracts/README.md": "44d83a3cc508cec6c5c20dfa1f2c08d5ea03e3afb2853639fdc0a9cc8eb5b9c8",
41
41
  "packages/core/index.d.ts": "c95b24a13f8aeeb128497833cf298790563baca6036ea5d29a9d8daff53199d7",
42
42
  "packages/core/index.js": "5579ceb1a63d3f962f5656c75f82cf60cd834fd270b4aa95e581bf38e4432448",
43
- "packages/core/package.json": "a8dacd7a973ea57bcead83668aa837c3092537397d043b6f4a381a71c7fe7c8e",
43
+ "packages/core/package.json": "6e579a889060bf6fad7709ea89a104fe4ac90854ea39107b649c44b3b83666bf",
44
44
  "packages/core/README.md": "e222c546104a168f1038d95c6c4efb8e5603edd6145ab2cab79cab977fb710e5",
45
- "packages/server/bin/agent-terminal-server.js": "b01297ab245a2b994bf42043b7469bd6e71d8f76a4bb99d4ed651e71844c152f",
46
- "packages/server/bin/claude-workbench-server.js": "a8c46ed7e71afcc10e00a104ed6f2d0ac05346a743b33c3a5bd11b1314d80f40",
45
+ "packages/server/bin/agent-terminal-server.js": "043dff4d76e3fd213b666a55e581ed1e72f9e5b8de6cb798fbf42bd39ed26861",
46
+ "packages/server/bin/claude-workbench-server.js": "b03c730b6d86faf6974afea26c74109d59b1bbc1ecc656c1d6270258708694ac",
47
47
  "packages/server/bin/claude-workbench.js": "98dbd550d4d657056a75a190e7ee0dffd9f760fba58783f3ffb8d389ad7a32de",
48
48
  "packages/server/index.d.ts": "ad39d5091056df5ec94e031a0de47c2c4ff75128ec3edadc3d3a364fca1b912b",
49
- "packages/server/index.js": "96750689d90661c49bcdd170ed3f2d4e19dafd180ae62640e2207c3b261a8918",
49
+ "packages/server/index.js": "06f2f28a838246e5f40449e449d54961f4d6fda74bb2a5b739a4bfc8fcd7e171",
50
50
  "packages/server/lib/agent-discovery.js": "7fa15684329fd287cd0869183808311bf975263255425562f2896bc2c1a69e7c",
51
- "packages/server/lib/agent-registry.js": "1c1ce6771ee3fc217293b5c5166ade8f098b6d5d68d47511bd772ba86ee438e9",
51
+ "packages/server/lib/agent-registry.js": "fbf4f3e96542502a41e7fdf77037d63c3b0444d26708ad9766bec90fbb6b38bb",
52
52
  "packages/server/lib/attachment-store.js": "5c92c45c7ec5a8b0ee9c14edb42eeda5fce93d8e654718dcd75c12e3f0bfa6e7",
53
53
  "packages/server/lib/bridges/app-server-bridge.js": "85bb644ab570a7a7e6aa26123c8e3cd2e8c11c3ff4e1270954b8e26517968f69",
54
54
  "packages/server/lib/bridges/opencode-server-bridge.js": "ab3a9330db5a497760b998dbe6af47fbe351683ad92941d7e1a820e72e382bb1",
55
55
  "packages/server/lib/capture-settings-store.js": "eb18885d7bedd3e353287dd7d1cf81e815e5d65d5d82170aa8fe5506a03de8bd",
56
+ "packages/server/lib/cli-session-recovery.js": "e66dc0ad83af18841bf3a598bb27932af42a20cf9395c16dcbaf9b022a5201b5",
56
57
  "packages/server/lib/context-resolver.js": "d3060bfe35fb184e521847fc0900cf6114f8ebf3120ce13ed39dfc224af54660",
57
58
  "packages/server/lib/conversation-capture.js": "9f3ee29003eaea4778dc1e4b7e23e868f2ba0268bd43db07317acba62f48a094",
58
59
  "packages/server/lib/diagnostics.js": "b45687fcc07f8baeb33ffd08efdc875494d4e3205887514fdfd7e1ce6370753b",
59
- "packages/server/lib/drivers/cli-json-runner.js": "c3febcea2df92b72125d053a4ffe6349e61caa98491acb6123ae964b6b90de8a",
60
- "packages/server/lib/drivers/codex-driver.js": "cb6f60048af534d836c7e95c494fbd16aa28ba24c5e94d76edb2eb9720f4cb54",
61
- "packages/server/lib/drivers/opencode-driver.js": "119b11663d926a3f5f7c63c960264784879459b3f84e6fdf482b4346697a6376",
62
- "packages/server/lib/drivers/zcode-driver.js": "507dcd56e17066703f2467a96bb3c9efca6b7b1810a78d607ac576508e8d4615",
60
+ "packages/server/lib/drivers/cli-json-runner.js": "d3ad5dc67481d69abb3593ca58e7ca703bf1c438042d634d83642803849d797f",
61
+ "packages/server/lib/drivers/codex-driver.js": "d472a6229aab8e3e5a568fa5f6c63de77afcf2b84c7a930101dd94e8b11a640e",
62
+ "packages/server/lib/drivers/opencode-driver.js": "322043d2d1912204c17b8c46f14d19bf132c096365cdacfdb98cfc0855e88c73",
63
+ "packages/server/lib/drivers/zcode-driver.js": "89c99e3f40c8064260d83153116c2c12acfec9485df2e495207ba3a64bb95764",
64
+ "packages/server/lib/drivers/zcode-profile-runtime.js": "77c5ac83551cc424375918863d4a31039984492c3a1c987a615a072ac7cb1f14",
63
65
  "packages/server/lib/event-stream.js": "b0f20bac19933a1a428c22938ae2666a1231b74a4330619b885171662133f48b",
64
66
  "packages/server/lib/folder-picker.js": "70f55df999262b90433f2b4251aa69dd70a23b55a84756b5f1d24dbeacfbda31",
65
67
  "packages/server/lib/http-handler.js": "c0b1cc19c66beef0f0d9b8db48ede6b110bff59d410b81673bab2e81c05b01d7",
66
- "packages/server/lib/json-file.js": "c922e10116655cd519a5365aaac5468266f6d8a76e41db33eaa51f94b79dae13",
68
+ "packages/server/lib/json-file.js": "4252b57abcd0aafa45c584bac98fcbaf09174774addbb5a4798b381a7aeb35cc",
67
69
  "packages/server/lib/knowledge-context.js": "82023a94472fcb6fd6a74a53be43091473dbef11e6ac94ff9482c8a7fbc5c286",
68
70
  "packages/server/lib/model-detection.js": "fa52213200c1f1a1f00e463ada57c415bf1bd4e2aedfebd04de50750509d06cf",
69
- "packages/server/lib/profile-store.js": "2a4496970c4b54a814f043cdeda87b897ad80d298dd96385964cf17e8164e6c6",
71
+ "packages/server/lib/profile-store.js": "70a9ff6aa31fe438ba8431f3e461f72e5d977f3510f2c42d39e9133e2f3491a8",
70
72
  "packages/server/lib/project-store.js": "5225c78f3216340f01b99356496c8e2c2d9cfc6247954a3f00b273dd2cc5b692",
71
73
  "packages/server/lib/session-archive-store.js": "d3335b832a6e9fb9792991056f6596a997a4959efa6e62b60fb60133fb724196",
72
74
  "packages/server/lib/system-doctor.js": "2b0e858d69d8fb268eaed950c9883473ee9850684b532bc2db8e14674a974919",
73
75
  "packages/server/lib/ui-preferences-store.js": "e108cb22e7cc1f3438704913d5401e01de2c0e717eb2abd3bdc4727209393819",
74
- "packages/server/lib/workbench-service.js": "b5caac09665b21a118a0cd826adfa3f3006e68989182e4d80bf3a4554b951250",
75
- "packages/server/package.json": "6e80c900440c99144a629458c287bc1215a2aa0841c7493612f8db00e9f5dc66",
76
+ "packages/server/lib/workbench-service.js": "92b9323db8742bbdd69abd111c81cab86b225103596f6818b007fbfe2376fc6f",
77
+ "packages/server/package.json": "618af8f48eb5da8f163d061c1832973a0b1e8a733fb795ff9c00f56379a4d1b1",
76
78
  "packages/server/README.md": "a34cfaa4f4e859008b44e2be8e1aafb56e97fe83e6129c968a8562945fa843f3",
77
79
  "packages/ui/ai-profile-settings.d.ts": "0551b6c6eda6d18ea89a976daddf01b2161195f4874fe2d67a57cd9ecc6ce643",
78
80
  "packages/ui/ai-profile-settings.js": "e92bbac67a1199d473e4e44b32d1cc76c5b6c79306d4fef9d9067a1bb6ec42ca",
@@ -80,7 +82,7 @@
80
82
  "packages/ui/claude-terminal.js": "96bd217a4a7e4792ae3fbaaf46249ecee13b0f4e01fc6d25a1b8b22d8f8fe00c",
81
83
  "packages/ui/index.d.ts": "e547ab39640fe7519fb367b78442dc8a2c51b2efd17b66f8b0a003b154b36ead",
82
84
  "packages/ui/index.js": "f4394aabd395938f5c3fe587e430471d4033e83945a9b9c7e0149ad4040982c9",
83
- "packages/ui/package.json": "fd52ffefcb0dca34c5058d84559fe25a8d635469b039c9fd05b499889636731b",
85
+ "packages/ui/package.json": "f5da277437bfb5308bb0cc8c998cc7b02cc92db7dd767a2242eedcad30200b81",
84
86
  "packages/ui/README.md": "793c4a9c286fee23f39062a1976ca3afe9d2816dcdb55e156ba940e1ef514f89",
85
87
  "packages/ui/theme.css": "8f03a081272a7db11b196f7a70d0fafb1f8d954778f329f1ba53d110d9d5fd98",
86
88
  "src/assets/claude-prompts.json": "cb111f2e0a45afe8a31c251a504d1ab5375966ed61291660e61fd2efd77f6d9f",
@@ -93,7 +95,7 @@
93
95
  "src/backend/lib/ai-vendor-presets.js": "02c6de9c2e89ad0286426e8eb4900c3c6a4960ef0e8f9d27ffb5836062abfbb2",
94
96
  "src/backend/lib/ai-workspace.js": "969917f26cd0b0a272932714819d838a2bab2a5aac5c4e946647dfa3afa479bf",
95
97
  "src/backend/lib/automation-config.js": "c23b868bbcfbcece4465c9c939faccaef582667e858f3f36fc7b6d19bcd545e6",
96
- "src/backend/lib/claude-cli-runner.js": "05cc4e57e7e52721de8d9e14eff1f37424bd094796bbbc70fcbca0a6c203d868",
98
+ "src/backend/lib/claude-cli-runner.js": "d72ab781fc9b7194fcb4ea44dd8b7d6ef3a8812924af261d37859e8e5602d379",
97
99
  "src/backend/lib/data-dir.js": "a62d96d1ab538e37690ad31fe4f51e84120b55b6bc767661ed98ad9242f879db",
98
100
  "src/backend/lib/llm-client.js": "76d1a73fbea445b5ac34c23d1a3b084e0884c5efed6f7d3b9ed76d406d2cd038",
99
101
  "src/backend/lib/model-context-windows.js": "f64f7c995143407b7390105087e3ebcd56a5a3ba2fd3019478a86f9e3c6b7896",
@@ -110,9 +112,9 @@
110
112
  "vectorHub": {
111
113
  "name": "@sanqianx/vector-hub",
112
114
  "installName": "@sanqianx/vector-hub",
113
- "version": "1.0.7",
115
+ "version": "1.0.8-rc.2",
114
116
  "files": {
115
- "README.md": "1998a65a3a50419fee13016b201621aaba6a5868038cb5f18a7f0a15fef74900",
117
+ "README.md": "b0d0fd647aef14c803ac4573f58bd2d425c2dc9bc736187a4684d7caba473184",
116
118
  "dist/cjs/bin.d.ts": "43e818adf60173644896298637f47b01d5819b17eda46eaa32d0c7d64724d012",
117
119
  "dist/cjs/bin.js": "8d0317ce087d22074b4ad350d63bf39cd6d218da565496621cd0daf4245cbdc4",
118
120
  "dist/cjs/bin.js.map": "818e872380d9c7ba045238ba65ce77111ba822b356be26327ed05936e5667e5e",
@@ -134,12 +136,12 @@
134
136
  "dist/cjs/server/folder-picker.d.ts": "b9c59dbc834fff668b1894f516450c2edc985c7bfac31edf9b7b4e766474b32b",
135
137
  "dist/cjs/server/folder-picker.js": "053121152a210c899e8593d60670a2a510b435c3b479300c572aa4bc8443e58e",
136
138
  "dist/cjs/server/folder-picker.js.map": "dce1ad1b03c8a6a4fba7b3cacec5b65e55c1dfd1886c5e70df384efd1a5c68a6",
137
- "dist/cjs/server/manager.d.ts": "f2fc59843006b2a96d9f1d6a39ac02e359e6016068c6f9cc1b16705979b2f03a",
138
- "dist/cjs/server/manager.js": "eb10297ef7f37a0a736c7662e4a3f524b25110681c166969df099fce8198468a",
139
- "dist/cjs/server/manager.js.map": "6b1e0d041a9d292fc7fdd351e09331477d965c6e7b48bafa7d50ec66902399f5",
139
+ "dist/cjs/server/manager.d.ts": "d23ee9c3f9b72ff89c511f81f5cfb6e2b62d4ba4963099c3c9f5a65531216097",
140
+ "dist/cjs/server/manager.js": "aea5c81a048cf2bd7736c289dbee9cf2d0bea4caf7093a1d8f8179d6fcea48a3",
141
+ "dist/cjs/server/manager.js.map": "594ac93b2986160e47f927683f2f5feee84054dbf7255d965ada9dea561845b8",
140
142
  "dist/cjs/server/server.d.ts": "13288ace9aa6ec016a2b06dc036868324ac6c23c7e73771e95d120be778f238a",
141
- "dist/cjs/server/server.js": "844b981bbbb905552973e74d61cdf773c54e6bf2eb928280de1d286c8f17ad0a",
142
- "dist/cjs/server/server.js.map": "b0ca6318fa5aa7bebce6f84c725d2f7329231ad6c195066de96bb1de2e90c588",
143
+ "dist/cjs/server/server.js": "43d6e18a1a36fd1af6179ff98d356efaee1da9464c85d76e9bf057b71741534e",
144
+ "dist/cjs/server/server.js.map": "d599dbfbe0f98abaf103849eafee70b407d332ff0d767c1d95f54c80e85bf2bb",
143
145
  "dist/esm/bin.d.ts": "43e818adf60173644896298637f47b01d5819b17eda46eaa32d0c7d64724d012",
144
146
  "dist/esm/bin.js": "69f6059ce2336eb7f0d9503f86c83da787aaf74a8bfd804c694ba5b2e1728be0",
145
147
  "dist/esm/bin.js.map": "fc174c2b5c66c20ff88184ddeb00577406185945ccadb0bddbb2014909339e9e",
@@ -162,14 +164,14 @@
162
164
  "dist/esm/server/folder-picker.d.ts": "b9c59dbc834fff668b1894f516450c2edc985c7bfac31edf9b7b4e766474b32b",
163
165
  "dist/esm/server/folder-picker.js": "6c8247e431b7181c45fb169b29e5825a0b3589f44e1625b3a5a291d7b8358042",
164
166
  "dist/esm/server/folder-picker.js.map": "f70723213f032a0f10f538289a176a50fc8f02c200b0194479ffc139b5fbb13b",
165
- "dist/esm/server/manager.d.ts": "f2fc59843006b2a96d9f1d6a39ac02e359e6016068c6f9cc1b16705979b2f03a",
166
- "dist/esm/server/manager.js": "9c89e36fa7d8eef98f29c9180c455d27c1b3dca991df4249d5dcda759b43d9a3",
167
- "dist/esm/server/manager.js.map": "c754044a92afa6f95155871054fccb79eb7b9753803dff0a36a3336d99892d76",
167
+ "dist/esm/server/manager.d.ts": "d23ee9c3f9b72ff89c511f81f5cfb6e2b62d4ba4963099c3c9f5a65531216097",
168
+ "dist/esm/server/manager.js": "2f1772ce5885128694e8cd9c89ca7ae74694a1f85758fc8e17b577b7ab54c2e4",
169
+ "dist/esm/server/manager.js.map": "f68a87c9763e8c4e3ddfc98e981ada4ea83922793035f19051b88dc3e7f47bc0",
168
170
  "dist/esm/server/server.d.ts": "13288ace9aa6ec016a2b06dc036868324ac6c23c7e73771e95d120be778f238a",
169
- "dist/esm/server/server.js": "6781d298e17451013e2fe475e282a1e9e853be0788819583cdfab50662d7940f",
170
- "dist/esm/server/server.js.map": "3abb22e239bd841307a323e1b02b51ebba43ec0a708d32c9d1ec35aa44967090",
171
- "package.json": "3812a503cc8ac2197d980f920a28e54c141193db7ab8e82c8718655b40df4f08",
172
- "ui/index.html": "20c11d7e77e4fd57083ea9ecc434231a64d4b49b6f64e49b7c31b3dbaf044f19",
171
+ "dist/esm/server/server.js": "df4caa8a596a9724c526dab5395e5018f63164ef0d10522d75ca4c44d62c1ee3",
172
+ "dist/esm/server/server.js.map": "3743325b664476176931989f2d762d53b48c5eb4bcbf3d81ab222c4231d026be",
173
+ "package.json": "812251c1b6f091da2f7ab06c93446e5f7c19bf4715074919e38e956e0eca373b",
174
+ "ui/index.html": "7301a595d625dadcd424069e7bb978004bfb6118eddef7a223bd25449ca6e0eb",
173
175
  "ui/vendor/marked.min.js": "c68075672d976e4777390560baa112194855bd4404b13647da4855aae1f9360c"
174
176
  }
175
177
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sanqianx/project-knowledge",
3
- "version": "5.0.9-rc.1",
3
+ "version": "5.0.9-rc.10",
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,10 +81,10 @@
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.7",
84
+ "@sanqianx/vector-hub": "1.0.8-rc.2",
85
85
  "buffer": "^6.0.3",
86
86
  "cheerio": "^1.2.0",
87
- "claude-ai-workbench": "npm:@sanqianx/claude-ai-workbench@0.13.1",
87
+ "claude-ai-workbench": "npm:@sanqianx/claude-ai-workbench@0.13.2-rc.4",
88
88
  "cross-spawn": "7.0.6",
89
89
  "dotenv": "^17.4.2",
90
90
  "gpt-tokenizer": "^3.4.0",
@@ -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.1",
4
+ "version": "5.0.9-rc.10",
5
5
  "description": "Read durable project decisions and implementation history from Project Knowledge.",
6
6
  "author": {
7
7
  "name": "SanQianX",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "project-knowledge",
3
- "version": "5.0.9-rc.1",
3
+ "version": "5.0.9-rc.10",
4
4
  "description": "Read durable project decisions and implementation history from Project Knowledge.",
5
5
  "author": {
6
6
  "name": "SanQianX",
@@ -6,7 +6,7 @@
6
6
  "args": [
7
7
  "-y",
8
8
  "--package",
9
- "@sanqianx/project-knowledge@5.0.9-rc.1",
9
+ "@sanqianx/project-knowledge@5.0.9-rc.10",
10
10
  "project-knowledge-mcp"
11
11
  ]
12
12
  }
package/ui/index.html CHANGED
@@ -20,7 +20,7 @@
20
20
  <button id="openSystem" class="system-button"><span class="dot" id="systemDot"></span><span><b id="systemTitle">正在检查系统</b><small id="systemDetail">本机知识服务</small></span><svg viewBox="0 0 24 24"><path d="m9 6 6 6-6 6"/></svg></button>
21
21
  </aside>
22
22
  <main>
23
- <header class="topbar"><div><small id="breadcrumb">我的智脑</small><h1 id="pageTitle">智脑首页</h1></div><div class="spacer"></div><select id="projectSelect" aria-label="当前项目"><option value="">尚未导入项目</option></select><button id="themeToggle" class="icon-button" title="切换浅色或深色主题" aria-label="切换主题"><svg viewBox="0 0 24 24"><circle cx="12" cy="12" r="4"/><path d="M12 2v3M12 19v3M2 12h3M19 12h3"/></svg></button></header>
23
+ <header class="topbar"><div><small id="breadcrumb">我的智脑</small><h1 id="pageTitle">智脑首页</h1></div><div class="spacer"></div><select id="projectSelect" aria-label="当前项目" disabled><option value="">尚未导入项目</option></select><button id="themeToggle" class="icon-button" title="切换浅色或深色主题" aria-label="切换主题"><svg viewBox="0 0 24 24"><circle cx="12" cy="12" r="4"/><path d="M12 2v3M12 19v3M2 12h3M19 12h3"/></svg></button></header>
24
24
  <div class="content">
25
25
  <section class="view" id="view-home"><div class="welcome"><div><small>工作概览</small><h2 id="homeTitle">我的智脑</h2><p>保存项目事实,连接相关经验。你的长期偏好,只在确认后使用。</p></div><div class="actions"><button class="primary" data-go="work">开始工作</button><button data-action="import">导入项目</button></div></div><div id="homeContent"></div></section>
26
26
  <section class="view module-view" id="view-work"><div id="workEmpty" class="empty" hidden>导入项目后,就可以在这里开始工作。<button data-action="import">导入项目</button></div><div class="work-layout" id="workLayout"><div class="frame-container"><iframe id="workFrame" title="Agent 工作台" referrerpolicy="same-origin"></iframe></div><aside class="knowledge-context"><header><h2>本次知识引用</h2><small id="contextScope">任务发送前自动检索</small></header><div id="contextContent" class="empty small-empty">发送任务后显示实际检索到的项目事实、领域经验和已确认记忆。</div></aside></div></section>
@@ -40,7 +40,7 @@
40
40
  <section id="agentCaptureSection"><div class="actions"><h3>外部 Agent 采集</h3><button id="refreshAgentCapture">检查状态</button></div><p class="muted">只接入你使用的工具。采集外部开发会话,不会重新安装 Agent,也不影响已有记录。</p><div id="agentCaptureList"></div><p id="agentCaptureFeedback" class="feedback" role="status"></p></section>
41
41
  <section><h3>后台维护模型</h3><p class="muted">使用持久化默认模型,不跟随聊天中的临时切换。</p><select id="maintenanceModel" aria-label="后台维护默认模型"></select><div class="actions"><button id="saveMaintenance">保存默认模型</button><button id="configureProviders">管理模型供应商</button></div><p id="configurationStatus" class="muted"></p></section>
42
42
  <section><h3>向量检索模型</h3><p id="embeddingStatus" class="muted">正在读取配置。</p><button id="openEmbedding">配置向量模型</button><p class="muted">凭据由工作台统一保存。未配置时仍可使用文本检索。</p></section>
43
- <section><h3>智脑设置</h3><label>名称<input id="brainName" maxlength="100"></label><label>知识根目录<div class="input-with-action"><input id="knowledgeRoot"><button id="pickRoot">选择</button></div></label><p class="muted">修改根目录不会移动已有项目知识或共享知识。</p><button id="saveBrainSettings">保存设置</button></section>
43
+ <section><h3>智脑设置</h3><label>名称<input id="brainName" maxlength="100"></label><label>知识根目录<div class="input-with-action"><input id="knowledgeRoot"><button id="pickRoot">选择</button></div></label><label>向量索引目录<output id="indexStoragePath" class="detail-path"></output></label><p id="indexStorageStatus" class="muted"></p><p class="muted">索引跟随知识根目录,可重新构建;切换时原索引保留,已有项目知识与共享知识不移动。</p><button id="saveBrainSettings">保存设置</button></section>
44
44
  <section><div class="actions"><button id="openEngine">知识引擎诊断</button><button id="openLogs">系统诊断记录</button></div><p class="muted">诊断不影响正在进行的会话与维护。</p></section>
45
45
  </div>
46
46
  </aside>
package/ui/product.css CHANGED
@@ -1,4 +1,5 @@
1
1
  :root{--page:#f3f5f7;--surface:#fff;--surface2:#f8f9fb;--surface3:#edf1f4;--line:#dce2e8;--text:#202733;--muted:#687587;--faint:#8e99a7;--nav:#eef1f4;--accent:#516f89;--accent-soft:#e6edf3;--good:#397761;--bad:#a05252;--bad-soft:#fbeeee;color-scheme:light}
2
+ label>.detail-path{display:block;width:100%;margin:8px 0 0;color:var(--text)}
2
3
  .agent-capture-row{display:flex;align-items:center;gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}.agent-capture-row>div:first-child{flex:1;min-width:0}.agent-capture-row small{display:block;color:var(--muted);margin-top:8px;overflow-wrap:anywhere}.agent-capture-row .actions{flex-shrink:0}#agentCaptureFeedback{white-space:pre-wrap}
3
4
  #logsDialog{display:flex;flex-direction:column;overflow:hidden}#logsDialog:not([open]){display:none}#logsContent{overflow:auto;min-height:0;flex:1;margin-top:16px}#logsContent .row{align-items:flex-start;cursor:pointer}#logsContent pre{flex:1;min-width:0;margin:0}#logsContent .log-entry{border-bottom:1px solid var(--line)}#logsContent .log-detail{padding:16px;background:var(--surface2);max-height:320px;overflow:auto}#logsContent [data-level=warn],#logsContent [data-level=error],#logsContent [data-level=fatal]{color:var(--bad)}#logsContent .row time,#logsContent .row pre{color:inherit}
4
5
  @media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
package/ui/product.js CHANGED
@@ -159,6 +159,8 @@
159
159
  const [brain, projects, health] = await Promise.all([api('/api/brain'), api('/api/projects/aggregated'), api('/api/modules/health')]);
160
160
  if (epoch !== registryEpoch) return;
161
161
  state.brain = brain.brain; state.root = brain.knowledgeRoot; state.projects = projects.projects; state.health = health.modules; state.ownership = health.ownership;
162
+ state.indexStorage = { path: brain.indexStoragePath, ...brain.configuration?.indexStorage };
163
+ state.scopeStatus = brain.configuration?.scopeStatus;
162
164
  if (!activeProject()) { state.projectId = state.projects[0]?.projectId || ''; state.epoch++; Object.keys(frames).forEach(frameContext); }
163
165
  renderProjectOptions(); renderSystem(); connectProgress(); await refreshSnapshot(); setView(state.view);
164
166
  } catch (error) { toast(error.message); }
@@ -170,9 +172,13 @@
170
172
  function renderSystem() {
171
173
  const down = Object.keys(modules).filter(key => !state.health[key]?.up);
172
174
  const pending = state.ownership?.owner === 'engine' && !state.ownership.ready;
175
+ const storagePending = !!state.indexStorage?.expectedPath && state.indexStorage.status !== 'ready';
176
+ renderStorageInfo();
173
177
  $('systemDot').className = `dot ${down.length || pending ? 'issue' : 'up'}`;
174
178
  $('systemTitle').textContent = pending ? '知识引擎连接待恢复' : down.length ? '部分服务需要处理' : '系统连接正常';
175
179
  $('systemDetail').textContent = pending ? `${state.ownership.message || '服务恢复后自动重试。'}${state.ownership.error ? ` · ${state.ownership.error.step} (${state.ownership.error.code})` : ''}` : down.length ? down.map(k => modules[k]).join('、') : '本机知识服务已连接';
180
+ if (storagePending && !pending && !down.length) { $('systemDot').className = 'dot issue'; $('systemTitle').textContent = '索引目录接线待恢复'; $('systemDetail').textContent = `目标目录:${state.indexStorage.expectedPath}。请在系统状态中修复接线。`; }
181
+ if (state.root && state.scopeStatus?.status === 'pending' && !pending && !down.length) { $('systemDot').className = 'dot issue'; $('systemTitle').textContent = '共享知识接线待恢复'; $('systemDetail').textContent = '已有知识与长期记忆保留,请在系统状态中修复接线。'; }
176
182
  $('moduleHealth').innerHTML = Object.entries(modules).map(([key, name]) => `<div class="row"><div><b>${esc(name)}</b><small>${esc(state.health[key]?.url || '')}</small></div>${badge(state.health[key]?.up ? '在线' : '离线', state.health[key]?.up ? 'up' : 'issue')}</div>`).join('');
177
183
  if (!navigator.onLine) {
178
184
  $('systemDot').className = 'dot issue'; $('systemTitle').textContent = '网页连接中断';
@@ -183,8 +189,13 @@
183
189
  async function openSystem() {
184
190
  $('systemDrawer').hidden = false; $('drawerBackdrop').hidden = false;
185
191
  $('brainName').value = state.brain.name; $('knowledgeRoot').value = state.root;
192
+ renderStorageInfo();
186
193
  await Promise.all([loadMaintenance(), loadAgentCapture()]);
187
194
  }
195
+ function renderStorageInfo() {
196
+ $('indexStoragePath').textContent = state.indexStorage?.actualPath || state.indexStorage?.path || '设置知识根目录后自动确定';
197
+ $('indexStorageStatus').textContent = state.indexStorage?.status === 'ready' ? '索引目录已生效。' : `索引接线待恢复;目标目录:${state.indexStorage?.expectedPath || state.indexStorage?.path || '尚未设置'}`;
198
+ }
188
199
  async function loadAgentCapture() {
189
200
  const epoch = ++captureEpoch;
190
201
  try {
@@ -376,7 +387,7 @@
376
387
  on('embeddingForm', 'submit', async event => { event.preventDefault(); await saveEmbedding(); });
377
388
  on('disableEmbedding', 'click', () => saveEmbedding(false));
378
389
  on('embeddingDialog', 'close', () => { $('embeddingSecret').value = ''; });
379
- on('saveBrainSettings', 'click', async () => { await api('/api/brain', { method: 'PATCH', body: { name: $('brainName').value } }); await api('/api/settings', { method: 'PATCH', body: { knowledge: { rootPath: $('knowledgeRoot').value } } }); toast('设置已保存,已有知识未移动。'); await refreshRegistry(); if (resumeImport) closeSystem(); });
390
+ on('saveBrainSettings', 'click', async () => { await api('/api/brain', { method: 'PATCH', body: { name: $('brainName').value } }); const saved = await api('/api/settings', { method: 'PATCH', body: { knowledge: { rootPath: $('knowledgeRoot').value } } }); toast(saved.configuration?.scopeStatus?.status === 'pending' ? '设置已保存,共享知识接线待恢复;已有知识保留。' : saved.configuration?.indexStorage?.status === 'ready' ? '设置已保存,索引目录已生效;已有知识未移动。' : '设置已保存,索引目录接线待恢复;已有知识保留。'); await refreshRegistry(true); if (resumeImport) closeSystem(); });
380
391
  on('setupImportRoot', 'click', async () => { $('importDialog').close(); resumeImport = true; await openSystem(); $('knowledgeRoot').focus(); });
381
392
  on('pickRoot', 'click', () => pick('knowledgeRoot')); on('pickCode', 'click', () => pick('importCode')); on('pickKnowledge', 'click', () => pick('importKnowledge'));
382
393
  on('openEngine', 'click', () => { closeSystem(); initializeFrame('engine'); $('engineDialog').showModal(); post('engine', { type: 'kb:visibility', visible: true }); });
@@ -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.1",
6
+ "version": "0.2.3-rc.4",
7
7
  "root": "_modules/knowledge-engine",
8
8
  "files": {
9
- "README.md": "899de4400e5baf2a981fbfeb1b6adef0b64a0c022a0dbf8d11706d58b0c6b277",
10
- "package.json": "a90e49be24b25b526c2325da9a2bf897de3b449b1cfbdb595427fd080484cc9c",
9
+ "README.md": "df15aafdfe833186c1f655a1847171435214b96ad168c5eb44774fec82d28cf6",
10
+ "package.json": "61e95ac2871a4e4e8964851161aac3c7fe4ef5015c8d03ec6ff1e9e53bbaa43f",
11
11
  "src/analysis-contract.js": "fee063967d32eefc955cf0729f7dc8cb31bd690b85e22471c9059494a599c77a",
12
12
  "src/analysis-output.js": "95a3c19dcc9ab85d1dba7fee5b9aec80f9c000dfba89da3fd0be25a81e2fb680",
13
13
  "src/analysis-worker.js": "a105cabe6e1573b2d986b1e7a5aaf615e2fb53524156fc8e4e2c0a71f2c97e55",
@@ -15,10 +15,11 @@
15
15
  "src/bridge-client.js": "ae0dba21e4286694bcd9e064ca36564ec997969ae1eb1ce4f8a6665e447cbffe",
16
16
  "src/coordinator.js": "1df096060faa83245c49b65a861f32cdaeeb7a190b94abf2ad6477151d7ca2ff",
17
17
  "src/diagnostics.js": "f7b516ace61a1e9faaa6876930b9e2e258499a25857d1203f4e53d28bfd0fa1a",
18
- "src/headless-analyzer.js": "cfe54b392b2aff6e2c5157481dfeb5ccebc4ce83d1d74aa44f28cf2eb923b013",
18
+ "src/headless-analyzer.js": "2f345adee332c003ecb9a1e01eac4fa69d8802b4e6dd9effb03ac3cb19aa3e48",
19
19
  "src/index-request.js": "78f26b872299005499fff4f2d1f9e8f986784f2ff36a5cf2be2b1e7b7c7d9378",
20
+ "src/knowledge-targets.js": "aa44ec285d16d7b1c0b63bf084058a1d6f867fa9929c753b6b0cbb24f7b20ee2",
20
21
  "src/memories.js": "0a8667e6daba99fa5022393951a28e96cdadf98af85b6af9a6be96c7f4e896fc",
21
- "src/retrieval.js": "b3ae3f701a007e3d3ff98811bb80db3505e2fcc87f94aaa9e36057edc7eb71c2",
22
+ "src/retrieval.js": "bbb09cefc3c6ed692a51edfeecf6ac50619b8a2afbdf2034e0fdb5e00f4cfa68",
22
23
  "src/runtime/README.md": "9be676eca76a7857b34d7357194e6f0ee733c22e61d962d53984715dbec7f673",
23
24
  "src/runtime/atomic-file.js": "9846b4b69db5ded811acf19a1181ef93615d93efaa542b858e552a7f3124ad23",
24
25
  "src/runtime/automation-config.js": "6498c5397be12b155829740595a1553d4dcd6eaa7db6ced3ef88fdc60218f00e",