@sanqianx/project-knowledge 5.0.20 → 5.0.22
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 +12 -1
- package/_site/_test/agent-capture-mcp-ui-test.js +2 -1
- package/_site/_test/agent-capture-ui-test.js +2 -1
- package/_site/_test/fixtures/slow-startup-integration.cjs +12 -0
- package/_site/_test/fixtures/startup-repair-worker.cjs +13 -0
- package/_site/_test/integration-auto-repair-test.js +21 -0
- package/_site/_test/knowledge-panel-lifecycle-test.js +154 -0
- package/_site/_test/knowledge-panel-ui-contract-test.js +110 -112
- package/_site/_test/startup-integration-isolation-test.js +59 -0
- package/_site/_test/startup-integration-repair-test.js +43 -0
- package/_site/_test/workspace-ui-contract-test.js +31 -31
- package/_site/_test/zcode-capture-integration-test.js +4 -0
- package/_site/lib/integration-auto-repair.js +5 -3
- package/_site/lib/integration-repair-worker.js +16 -0
- package/_site/lib/server-app.js +8 -5
- package/_site/lib/startup-integration-repair.js +77 -0
- package/docs/fresh-v5-start.md +2 -0
- package/module-runtime-manifest.json +128 -126
- 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/ui/index.html +1 -1
- package/ui/knowledge-panel.html +11 -14
- package/ui/product.css +2 -10
- package/ui/product.js +73 -56
|
@@ -1,146 +1,148 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema": "project-knowledge/module-content/v1",
|
|
3
3
|
"productFiles": {
|
|
4
|
-
"ui/index.html": "
|
|
5
|
-
"ui/knowledge-panel.html": "
|
|
6
|
-
"ui/product.js": "
|
|
4
|
+
"ui/index.html": "00864e2015de1b6564c1a43b6853e1efbf8385744e3cda79f279027818858672",
|
|
5
|
+
"ui/knowledge-panel.html": "dfd85f15759472252d797853263e9da0054b251c56bb9ccdc8a75e6301334ca8",
|
|
6
|
+
"ui/product.js": "26b2cc5438fdc331c0aeb1f77bdb1c8340ca1468211f78a5348d84706e953feb",
|
|
7
7
|
"ui/live-client.js": "0d81fa894c629bb839e1931fc3c5ebad4d831aae8232d6ce8c0f542e9e3559e8",
|
|
8
|
-
"ui/product.css": "
|
|
8
|
+
"ui/product.css": "7347c47148891b7799b5d3711baff1c7fe5db08c6209c30c391d6aee7eb30be8",
|
|
9
9
|
"ui/favicon.svg": "c48be946b224112ebb0238b44263f7a61bda31e531afa895c2e9801c0ff24f32",
|
|
10
10
|
"plugins/project-knowledge/hooks/claude.json": "d61510327e3e1facbb4c645228e9f50cad05a88b33d80c4c22e5ba9f8b9f5359",
|
|
11
11
|
"plugins/project-knowledge/hooks/codex.json": "216e03c07295606ef6ebb2c4f669ad0d790b5e7c4f3f34600488033db75e4239",
|
|
12
12
|
"plugins/project-knowledge/scripts/context-hook.cjs": "da666153ad5723592cce42d25337ae649f7d93e43fab76b3c6d1263933de063f",
|
|
13
13
|
"plugins/project-knowledge/scripts/mcp-launcher.cjs": "7c68830b5c73eb53ef030756a4de33987f7eab6b1a6cc15602835aac3f954893",
|
|
14
|
-
"plugins/project-knowledge/.claude-plugin/plugin.json": "
|
|
15
|
-
"plugins/project-knowledge/.codex-plugin/plugin.json": "
|
|
16
|
-
"plugins/project-knowledge/.mcp.json": "
|
|
14
|
+
"plugins/project-knowledge/.claude-plugin/plugin.json": "acdbc819e7e3949a2b8e01380f3e8811d06f74e5578cc872d736faa0db4e2106",
|
|
15
|
+
"plugins/project-knowledge/.codex-plugin/plugin.json": "915cae73db9f32bbbcf9c5aee24aca9356bf730914489c8611f734616f1e4b6c",
|
|
16
|
+
"plugins/project-knowledge/.mcp.json": "9c493221141723265d80ebff5e68029e159d1688a8bfb121678ad93bf78ff6d8"
|
|
17
17
|
},
|
|
18
18
|
"modules": {
|
|
19
19
|
"terminal": {
|
|
20
20
|
"name": "@sanqianx/claude-ai-workbench",
|
|
21
21
|
"installName": "claude-ai-workbench",
|
|
22
|
-
"version": "0.13.
|
|
22
|
+
"version": "0.13.3",
|
|
23
23
|
"files": {
|
|
24
|
-
"LICENSE": "
|
|
25
|
-
"README.md": "
|
|
26
|
-
"apps/agent-terminal/app.css": "
|
|
27
|
-
"apps/agent-terminal/app.js": "
|
|
28
|
-
"apps/agent-terminal/
|
|
29
|
-
"apps/agent-terminal/
|
|
30
|
-
"apps/agent-terminal/panel-proof
|
|
24
|
+
"LICENSE": "c1b9df1275e769f3dbab000d1e457a2d4b0f28eb5da6c77e48dc37eeba202ed7",
|
|
25
|
+
"README.md": "43938c8a64397d340dcf633edc40a7cea7dd8a95b5f82cf612b2c15b66c380b6",
|
|
26
|
+
"apps/agent-terminal/app.css": "fb308326290f6c1cf1b899725a8d401b66d178e7df59f28b05f86f2157f3b573",
|
|
27
|
+
"apps/agent-terminal/app.js": "b9f9c2f1cef784fe00ffa58ea814828612dd8424ac82d10c0e29ab5a873ff1fe",
|
|
28
|
+
"apps/agent-terminal/conversation-composer.js": "4f0135fa61f3a19de9bc518cb7001dcc333a793db6de643d4ee6eaa629489c58",
|
|
29
|
+
"apps/agent-terminal/index.html": "e48da485ed9931dfe06a6bdfddd8a2d34b920121c424247a5d8ac18aad9e1954",
|
|
30
|
+
"apps/agent-terminal/panel-host-proof.html": "b4b5c69cbd4d019002dd63b364523875f9b5e58c75c8fa873ed05d3717229fa6",
|
|
31
|
+
"apps/agent-terminal/panel-proof-content.html": "87f59cf76fc5e78aa24d51432d358aa15fc8242f469cabb164bf181d23f85778",
|
|
31
32
|
"apps/agent-terminal/right-dock-panel-registry.js": "07a4b6d31b1b2d678f92b6f0786cf49129708bd38ef4a15976d824150cbadec6",
|
|
32
|
-
"apps/agent-terminal/right-workspace-dock.css": "
|
|
33
|
-
"apps/agent-terminal/right-workspace-dock.js": "
|
|
34
|
-
"apps/ai-profile-settings-host/index.html": "
|
|
35
|
-
"apps/ai-profile-settings-host/page.css": "
|
|
36
|
-
"apps/ai-profile-settings-host/page.js": "
|
|
37
|
-
"apps/minimal-test-host/host.css": "
|
|
38
|
-
"apps/minimal-test-host/host.js": "
|
|
39
|
-
"apps/minimal-test-host/index.html": "
|
|
40
|
-
"apps/minimal-test-host/optional-mock/fault-injection.js": "
|
|
41
|
-
"apps/minimal-test-host/README.md": "
|
|
42
|
-
"docs/sdk/FILE_LAYOUT.md": "
|
|
43
|
-
"docs/sdk/INTEGRATION.md": "
|
|
44
|
-
"docs/sdk/openapi.yaml": "
|
|
45
|
-
"docs/sdk/README.md": "
|
|
46
|
-
"docs/sdk/SESSION_EVENTS.md": "
|
|
47
|
-
"package.json": "
|
|
48
|
-
"packages/client/index.d.ts": "
|
|
49
|
-
"packages/client/index.js": "
|
|
50
|
-
"packages/client/package.json": "
|
|
51
|
-
"packages/client/README.md": "
|
|
52
|
-
"packages/contracts/index.d.ts": "
|
|
53
|
-
"packages/contracts/index.js": "
|
|
54
|
-
"packages/contracts/package.json": "
|
|
55
|
-
"packages/contracts/README.md": "
|
|
56
|
-
"packages/core/index.d.ts": "
|
|
57
|
-
"packages/core/index.js": "
|
|
58
|
-
"packages/core/package.json": "
|
|
59
|
-
"packages/core/README.md": "
|
|
60
|
-
"packages/server/bin/agent-terminal-server.js": "
|
|
33
|
+
"apps/agent-terminal/right-workspace-dock.css": "d368021905c9c77be871fbda300d820ef362f25f076f04f8d1073da70cbecfaa",
|
|
34
|
+
"apps/agent-terminal/right-workspace-dock.js": "05997169d6cd7f2564926ac1eca08aefde53bf5ee5f27092eaf85241998bb4b4",
|
|
35
|
+
"apps/ai-profile-settings-host/index.html": "bc158f68954506d2b8e43c690f28dbe931eff9a02b1524855ac17e74ea4df736",
|
|
36
|
+
"apps/ai-profile-settings-host/page.css": "8b75cbf7f1ea5aaa92f2889390720ece310a8fd4b9ca38c890fa447d4323a557",
|
|
37
|
+
"apps/ai-profile-settings-host/page.js": "f42755a3ed17bd7e00919cee56875b04035aa3c5526fce889f8ba52f4278a8b8",
|
|
38
|
+
"apps/minimal-test-host/host.css": "b870f0816a1fcd27b73ed20b4785b46f95729e55a6a5a56624234c74a012a915",
|
|
39
|
+
"apps/minimal-test-host/host.js": "dd18df55686f9f1a0eb6ba0713cdc3ae5b3e304aec0a2504d62c962b775778e7",
|
|
40
|
+
"apps/minimal-test-host/index.html": "a43ca39a89d9877bc658efc02f9de26ecd68356bd35078dfa440e11b7ba11394",
|
|
41
|
+
"apps/minimal-test-host/optional-mock/fault-injection.js": "4749c8210e5a2b9eab5c8b8188b9c9b2ce9dfc9bcb5eeb0d2d745042453f87f5",
|
|
42
|
+
"apps/minimal-test-host/README.md": "fa73136f4ee3865c2d91eb97b2e8c03679aa4688e44c1e1c8ec6e27d604b0de5",
|
|
43
|
+
"docs/sdk/FILE_LAYOUT.md": "17882f96505c8161bfb66876684b9d2d3f50021a111b8b844502d3cb4e97870a",
|
|
44
|
+
"docs/sdk/INTEGRATION.md": "d4c0c80d2d2fc610205102d703a429bfaa20f9f3a48f1718f5bab02ee90138df",
|
|
45
|
+
"docs/sdk/openapi.yaml": "1714e2ba9d1b72c0282c39f1978f90fc736332b696b7ab2d695ae327d2ced2da",
|
|
46
|
+
"docs/sdk/README.md": "7ab591d39c36a3b84cfdf487ff567040ec453975f3ef0fba86dc822094667b61",
|
|
47
|
+
"docs/sdk/SESSION_EVENTS.md": "578659512950fdaf99b9dd4b17bc5dd855079a4b4a2e910c79f43e7acf662252",
|
|
48
|
+
"package.json": "0b128b2462d8750ac97a0100e0c6daa46c8d502d67fdb4a6996c7cb4f7e8f78c",
|
|
49
|
+
"packages/client/index.d.ts": "7d86421a0dace70aaf27da87200cb8c1df46b583ff699a72d66189ab32779285",
|
|
50
|
+
"packages/client/index.js": "fbbeb0ea2125d5bd72e8b308f20901af5ae0d609d3f7be4f7e435f61b5a7b081",
|
|
51
|
+
"packages/client/package.json": "3424f76897eaf326cca6be22ea2043f36fbc3c0d5752a5ac8b57d70116eb075a",
|
|
52
|
+
"packages/client/README.md": "7a6a110ee5ef4a2aeb23afb1dcff7be00613a30a3ff2566cf3c6cdf4f6e3181a",
|
|
53
|
+
"packages/contracts/index.d.ts": "24c625b2ad1910ba428c155d52b5786af937e0a9695f92380748e5efe5c7d5f1",
|
|
54
|
+
"packages/contracts/index.js": "2640531e4ef5fd4ea5f56e63cc099f9d6357de7306ef9e6fe3dff3b97f3d9304",
|
|
55
|
+
"packages/contracts/package.json": "54ddad1b846160cc2e4c353e1d78abcda8b308e35bde2bf825b41a273bbb3f96",
|
|
56
|
+
"packages/contracts/README.md": "44d83a3cc508cec6c5c20dfa1f2c08d5ea03e3afb2853639fdc0a9cc8eb5b9c8",
|
|
57
|
+
"packages/core/index.d.ts": "c95b24a13f8aeeb128497833cf298790563baca6036ea5d29a9d8daff53199d7",
|
|
58
|
+
"packages/core/index.js": "825640d0edc7dd130f22da1f580d2cda355566a40b0b36e42e5f38909605bbfa",
|
|
59
|
+
"packages/core/package.json": "33ff6b6f081b19af6f83d1f0a7ddb5b603a01c423c43400a2743a4a4e5740319",
|
|
60
|
+
"packages/core/README.md": "e222c546104a168f1038d95c6c4efb8e5603edd6145ab2cab79cab977fb710e5",
|
|
61
|
+
"packages/server/bin/agent-terminal-server.js": "01ac54215f1fcbe64c4b78ce9cd83f66215177f67cdccddad30491c94f3b6746",
|
|
61
62
|
"packages/server/bin/claude-workbench-server.js": "73fc7f1022b8cd5bbe8aed0eb105223e83627960e7208cffa6c29a2879932f38",
|
|
62
|
-
"packages/server/bin/claude-workbench.js": "
|
|
63
|
-
"packages/server/index.d.ts": "
|
|
64
|
-
"packages/server/index.js": "
|
|
65
|
-
"packages/server/lib/agent-discovery.js": "
|
|
66
|
-
"packages/server/lib/agent-registry.js": "
|
|
67
|
-
"packages/server/lib/agent-spawn-env.js": "
|
|
68
|
-
"packages/server/lib/attachment-store.js": "
|
|
69
|
-
"packages/server/lib/bridges/app-server-bridge.js": "
|
|
70
|
-
"packages/server/lib/bridges/opencode-server-bridge.js": "
|
|
71
|
-
"packages/server/lib/capture-settings-store.js": "
|
|
72
|
-
"packages/server/lib/claude-history-recovery.js": "
|
|
73
|
-
"packages/server/lib/cli-session-recovery.js": "
|
|
74
|
-
"packages/server/lib/context-resolver.js": "
|
|
75
|
-
"packages/server/lib/conversation-capture.js": "
|
|
76
|
-
"packages/server/lib/delegation-phase-store.js": "
|
|
77
|
-
"packages/server/lib/delegation-store.js": "
|
|
78
|
-
"packages/server/lib/diagnostics.js": "
|
|
79
|
-
"packages/server/lib/drivers/cli-json-runner.js": "
|
|
80
|
-
"packages/server/lib/drivers/codex-driver.js": "
|
|
81
|
-
"packages/server/lib/drivers/opencode-driver.js": "
|
|
82
|
-
"packages/server/lib/drivers/zcode-driver.js": "
|
|
83
|
-
"packages/server/lib/drivers/zcode-profile-runtime.js": "
|
|
84
|
-
"packages/server/lib/event-stream.js": "
|
|
85
|
-
"packages/server/lib/folder-picker.js": "
|
|
86
|
-
"packages/server/lib/http-handler.js": "
|
|
87
|
-
"packages/server/lib/json-file.js": "
|
|
88
|
-
"packages/server/lib/knowledge-context.js": "
|
|
89
|
-
"packages/server/lib/model-detection.js": "
|
|
90
|
-
"packages/server/lib/
|
|
91
|
-
"packages/server/lib/
|
|
92
|
-
"packages/server/lib/
|
|
93
|
-
"packages/server/lib/
|
|
94
|
-
"packages/server/lib/session-
|
|
95
|
-
"packages/server/lib/
|
|
96
|
-
"packages/server/lib/
|
|
97
|
-
"packages/server/lib/
|
|
98
|
-
"packages/server/
|
|
99
|
-
"packages/server/
|
|
100
|
-
"packages/
|
|
101
|
-
"packages/ui/ai-profile-settings.
|
|
102
|
-
"packages/ui/
|
|
103
|
-
"packages/ui/claude-terminal.
|
|
104
|
-
"packages/ui/
|
|
105
|
-
"packages/ui/index.
|
|
106
|
-
"packages/ui/
|
|
107
|
-
"packages/ui/
|
|
108
|
-
"packages/ui/
|
|
109
|
-
"
|
|
110
|
-
"src/
|
|
111
|
-
"src/backend/http/
|
|
112
|
-
"src/backend/http/
|
|
113
|
-
"src/backend/
|
|
114
|
-
"src/backend/
|
|
115
|
-
"src/backend/lib/ai-
|
|
116
|
-
"src/backend/lib/ai-
|
|
117
|
-
"src/backend/lib/ai-
|
|
118
|
-
"src/backend/lib/
|
|
119
|
-
"src/backend/lib/
|
|
120
|
-
"src/backend/lib/
|
|
121
|
-
"src/backend/lib/
|
|
122
|
-
"src/backend/lib/
|
|
123
|
-
"src/backend/lib/
|
|
124
|
-
"src/backend/lib/native-task-
|
|
125
|
-
"src/backend/lib/native-task-history-
|
|
126
|
-
"src/backend/lib/native-task-
|
|
127
|
-
"src/backend/lib/native-task-
|
|
128
|
-
"src/backend/lib/native-task-
|
|
129
|
-
"src/backend/lib/native-task-
|
|
130
|
-
"src/backend/lib/native-task-
|
|
131
|
-
"src/backend/lib/
|
|
132
|
-
"src/backend/lib/
|
|
133
|
-
"src/backend/lib/
|
|
134
|
-
"src/backend/lib/sdk-
|
|
135
|
-
"src/backend/lib/
|
|
136
|
-
"src/backend/lib/
|
|
137
|
-
"src/backend/lib/task-
|
|
138
|
-
"src/
|
|
139
|
-
"src/
|
|
140
|
-
"src/sdk-wave-
|
|
141
|
-
"src/sdk-wave-
|
|
142
|
-
"src/sdk-wave-
|
|
143
|
-
"src/sdk-wave-
|
|
63
|
+
"packages/server/bin/claude-workbench.js": "98dbd550d4d657056a75a190e7ee0dffd9f760fba58783f3ffb8d389ad7a32de",
|
|
64
|
+
"packages/server/index.d.ts": "1bf40dae09d7f8730633a9f6c867c5fc6636ded560c3636f3340586916209d02",
|
|
65
|
+
"packages/server/index.js": "631d8254bf963ea527194bf6b69e026a0601e4ecdabdef448fd2c18f9a3f2048",
|
|
66
|
+
"packages/server/lib/agent-discovery.js": "c332e12b2b3736156b3e96a2683108944b5f7fd66abca1854bf75ff260729db8",
|
|
67
|
+
"packages/server/lib/agent-registry.js": "afacdbe75cc692cba9e2930eed69b2c27353147c7f9bfb34cab1af97d2d2ddb5",
|
|
68
|
+
"packages/server/lib/agent-spawn-env.js": "f34f672a6153c8454615c440f41b4c81582c4b7f74f6dace4e26c43df9dba6cf",
|
|
69
|
+
"packages/server/lib/attachment-store.js": "5c92c45c7ec5a8b0ee9c14edb42eeda5fce93d8e654718dcd75c12e3f0bfa6e7",
|
|
70
|
+
"packages/server/lib/bridges/app-server-bridge.js": "c860c6b9e0f63ead9f4f289dad1fe05fc93314e89b29cdf7722fba0472c9af11",
|
|
71
|
+
"packages/server/lib/bridges/opencode-server-bridge.js": "23b6065599bece60cc8d3d4779be90d62a6936ec437424287cc87325d250e02b",
|
|
72
|
+
"packages/server/lib/capture-settings-store.js": "eb18885d7bedd3e353287dd7d1cf81e815e5d65d5d82170aa8fe5506a03de8bd",
|
|
73
|
+
"packages/server/lib/claude-history-recovery.js": "a1c15ef2c863d85ab6447d6b70bda0d69ed1a65dd14e375cb2cad1252068a17e",
|
|
74
|
+
"packages/server/lib/cli-session-recovery.js": "e66dc0ad83af18841bf3a598bb27932af42a20cf9395c16dcbaf9b022a5201b5",
|
|
75
|
+
"packages/server/lib/context-resolver.js": "a89fa2b55a86a62396a59052fb394d08532e528c87160d5bd6057bd8bdc26952",
|
|
76
|
+
"packages/server/lib/conversation-capture.js": "c1474d1a3c148b68ac8974f9252a2c996b9a7378c9ab8272b9115480cb5143a2",
|
|
77
|
+
"packages/server/lib/delegation-phase-store.js": "5bfd5c0ee5c139001e1990a5c4eb2ba5862bd6549b42badcb670a31390502a01",
|
|
78
|
+
"packages/server/lib/delegation-store.js": "1caa803ed03bba6e722d589fa7a728ce0bac9355782be3fbd406429ab6709153",
|
|
79
|
+
"packages/server/lib/diagnostics.js": "b45687fcc07f8baeb33ffd08efdc875494d4e3205887514fdfd7e1ce6370753b",
|
|
80
|
+
"packages/server/lib/drivers/cli-json-runner.js": "2d182ef4b4f957f04e12036da055e881837e5f1fc86c351bef6b755189b08c9a",
|
|
81
|
+
"packages/server/lib/drivers/codex-driver.js": "22166b9467768f813ae04a4b12093ea8407c5ac17bd943d2d87666199c6590de",
|
|
82
|
+
"packages/server/lib/drivers/opencode-driver.js": "ae97fbdae954dbe6ce21e1f7faac6c3440f2424fdd609d39f7645abe9dc8b598",
|
|
83
|
+
"packages/server/lib/drivers/zcode-driver.js": "429ffc17c60c3732e57fa86b7c8b16697e1ea82bb2f2770a2aff7927ba346ae3",
|
|
84
|
+
"packages/server/lib/drivers/zcode-profile-runtime.js": "77c5ac83551cc424375918863d4a31039984492c3a1c987a615a072ac7cb1f14",
|
|
85
|
+
"packages/server/lib/event-stream.js": "cfbe8207594f004ed0ad65a907401eef833f641b94064fa88852b9ae8c15fe59",
|
|
86
|
+
"packages/server/lib/folder-picker.js": "da2caf8b6a4c00a22556fe355d28d735d78dd814fa0aa7edfc6c4cde8ca8c384",
|
|
87
|
+
"packages/server/lib/http-handler.js": "0370a594f8386f2083693ce0a40a0104021125c9ea6002e55cd57d87224d947d",
|
|
88
|
+
"packages/server/lib/json-file.js": "4252b57abcd0aafa45c584bac98fcbaf09174774addbb5a4798b381a7aeb35cc",
|
|
89
|
+
"packages/server/lib/knowledge-context.js": "c3d8a9545547c636e6cdf908be53bef4968e674d2aab235562e762e25c210c06",
|
|
90
|
+
"packages/server/lib/model-detection.js": "fa52213200c1f1a1f00e463ada57c415bf1bd4e2aedfebd04de50750509d06cf",
|
|
91
|
+
"packages/server/lib/parent-context.js": "488fe97855cc53934d0a68fb3ccb64a17da78274937b8c036c7e1bbf42099944",
|
|
92
|
+
"packages/server/lib/profile-store.js": "70a9ff6aa31fe438ba8431f3e461f72e5d977f3510f2c42d39e9133e2f3491a8",
|
|
93
|
+
"packages/server/lib/project-store.js": "5225c78f3216340f01b99356496c8e2c2d9cfc6247954a3f00b273dd2cc5b692",
|
|
94
|
+
"packages/server/lib/runtime-loader.js": "33e152cb630d986581946928d7ab7d25d53e63647a433b0c1ff4d02c32a6298f",
|
|
95
|
+
"packages/server/lib/session-archive-store.js": "d3335b832a6e9fb9792991056f6596a997a4959efa6e62b60fb60133fb724196",
|
|
96
|
+
"packages/server/lib/session-history.js": "89437e20bdcaf90d792c122be19c5af22de740593391dfb4d1054937bade2d5e",
|
|
97
|
+
"packages/server/lib/system-doctor.js": "d098a046f425e90ef25209be69d78beefdfd9c2af92f08068a9bfc52053a8f7d",
|
|
98
|
+
"packages/server/lib/ui-preferences-store.js": "e108cb22e7cc1f3438704913d5401e01de2c0e717eb2abd3bdc4727209393819",
|
|
99
|
+
"packages/server/lib/workbench-service.js": "e6969c67f8c4155312ff3f81a6f4ec95a8d0908771b6d43feb8e69ac22633522",
|
|
100
|
+
"packages/server/package.json": "e67cb6d4399f9548dcb14d02db0239801f2705e7f6b9c47e1c785f200b7e6355",
|
|
101
|
+
"packages/server/README.md": "a34cfaa4f4e859008b44e2be8e1aafb56e97fe83e6129c968a8562945fa843f3",
|
|
102
|
+
"packages/ui/ai-profile-settings.d.ts": "0551b6c6eda6d18ea89a976daddf01b2161195f4874fe2d67a57cd9ecc6ce643",
|
|
103
|
+
"packages/ui/ai-profile-settings.js": "e92bbac67a1199d473e4e44b32d1cc76c5b6c79306d4fef9d9067a1bb6ec42ca",
|
|
104
|
+
"packages/ui/claude-terminal.d.ts": "2e8b4ae14f69ec791e2aacbec48ea2bc6e0076e0445a38e99cc477cf2e0a3011",
|
|
105
|
+
"packages/ui/claude-terminal.js": "96bd217a4a7e4792ae3fbaaf46249ecee13b0f4e01fc6d25a1b8b22d8f8fe00c",
|
|
106
|
+
"packages/ui/index.d.ts": "e547ab39640fe7519fb367b78442dc8a2c51b2efd17b66f8b0a003b154b36ead",
|
|
107
|
+
"packages/ui/index.js": "f4394aabd395938f5c3fe587e430471d4033e83945a9b9c7e0149ad4040982c9",
|
|
108
|
+
"packages/ui/package.json": "e136e16aef0304bb5107fca1ed076f6fd479af9757817e38c8f16276d59d9783",
|
|
109
|
+
"packages/ui/README.md": "793c4a9c286fee23f39062a1976ca3afe9d2816dcdb55e156ba940e1ef514f89",
|
|
110
|
+
"packages/ui/theme.css": "8f03a081272a7db11b196f7a70d0fafb1f8d954778f329f1ba53d110d9d5fd98",
|
|
111
|
+
"src/assets/claude-prompts.json": "cb111f2e0a45afe8a31c251a504d1ab5375966ed61291660e61fd2efd77f6d9f",
|
|
112
|
+
"src/backend/http/ai-profile-routes.js": "4b13a8e9ccbb0317f2ae7b3d468c060c33a9e1ffa49b781a495193a8eebaca68",
|
|
113
|
+
"src/backend/http/claude-routes.js": "63730f0a5b5798152017f9b8679828ec25984a0c88d4ca883012841c13989c82",
|
|
114
|
+
"src/backend/http/node-helpers.js": "da365da8223ee999e6addb3c2607f286bbe1ebf8e88423c7fdaf130de88c5d78",
|
|
115
|
+
"src/backend/index.js": "b94cfffde773555041d7c524eaf676f5010b1688929e327c5967bacbe5942bf6",
|
|
116
|
+
"src/backend/lib/ai-adapter.js": "7e6c6645c6d7e3d9dece10be75a1f6e54e37c6aa4d24167faff83dd2cc2c98d0",
|
|
117
|
+
"src/backend/lib/ai-profile-store.js": "373e82d24b3b94017aceffdd49a7ce983cc8044871e5dcc245a4834e646e33c5",
|
|
118
|
+
"src/backend/lib/ai-vendor-presets.js": "02c6de9c2e89ad0286426e8eb4900c3c6a4960ef0e8f9d27ffb5836062abfbb2",
|
|
119
|
+
"src/backend/lib/ai-workspace.js": "969917f26cd0b0a272932714819d838a2bab2a5aac5c4e946647dfa3afa479bf",
|
|
120
|
+
"src/backend/lib/automation-config.js": "00da7ec85a4d665695cc56cbfe353b11912af5486bc7d81469425ec93c4c0ce7",
|
|
121
|
+
"src/backend/lib/claude-cli-runner.js": "111e4361c0779252406fa5c5c417980a1c6fd81fc41fadecbed961e1da41e8f4",
|
|
122
|
+
"src/backend/lib/data-dir.js": "a62d96d1ab538e37690ad31fe4f51e84120b55b6bc767661ed98ad9242f879db",
|
|
123
|
+
"src/backend/lib/llm-client.js": "834cb8be7081e38b3a593e8559e6698a5211199e5652526a4f50d305a2134bbc",
|
|
124
|
+
"src/backend/lib/model-context-windows.js": "f64f7c995143407b7390105087e3ebcd56a5a3ba2fd3019478a86f9e3c6b7896",
|
|
125
|
+
"src/backend/lib/native-task-control.js": "c52fb866325ae13430360cbac3634575c8abf0833f6863133a3b60fb25d62a39",
|
|
126
|
+
"src/backend/lib/native-task-history-index.js": "032d4126426479a1126442ac41c8e0a53db5d044c14173fc1f40749da716c682",
|
|
127
|
+
"src/backend/lib/native-task-history-reader.js": "22fb45a6866a98387392252e663eda9e4c6ffd7590a505e1c9dac9f9d765fe93",
|
|
128
|
+
"src/backend/lib/native-task-messages.js": "107472a0f47f6838ddc7de481ee5f45eec283d94f44affd24972d959dfcb4d48",
|
|
129
|
+
"src/backend/lib/native-task-registry.js": "800849951625e647c91e4179aab26896e06d350d9836baffe5bdb9aa743ff53b",
|
|
130
|
+
"src/backend/lib/native-task-runtime.js": "4aabfa755fdd81dd7917ac04de108b103e5f7fe125c176e7752489dfeec1b64f",
|
|
131
|
+
"src/backend/lib/native-task-trace.js": "3ebcef282c917e32588d3856b8359a2e6ca74cf28f4c887f8a0fcf64387baaa3",
|
|
132
|
+
"src/backend/lib/native-task-transcript.js": "b23cae1c34c0c83893f2436825f2009bc0b87ae1ec93c982d3fb8af78ed5e128",
|
|
133
|
+
"src/backend/lib/prompt-registry.js": "9af496af837c7ae98cea2c5f55e81485dcaedf6f27c94b1d6d0384de897f94b9",
|
|
134
|
+
"src/backend/lib/runtime-config.js": "8335525d2aff757f8022ab037dd00eb7bef7ff87a75ac946d599c2666b092323",
|
|
135
|
+
"src/backend/lib/sdk-session-stream.js": "d7cac7e8d8f19e2aa34f403382c79f2bba26b0dfab79f5b855b4318bfcd112ee",
|
|
136
|
+
"src/backend/lib/sdk-turn-stream.js": "3177bbec81cc0d4b1b578305056e4547b26069dde4f0133766a8a16fa3d8f923",
|
|
137
|
+
"src/backend/lib/store-scope.js": "c07640abe888490b87e9287c77dbc1972cd9b414d7669a07e5e22bf5266cd051",
|
|
138
|
+
"src/backend/lib/task-identity.js": "5fbea33d0e31552e98dbea277f7f3fe8c46ba47d53e84451161615b50c297c09",
|
|
139
|
+
"src/backend/lib/task-state-projection.js": "df8f96fdd877220ec151463071f8ce4416f9c13e59a04223be7b6b7920ee1063",
|
|
140
|
+
"src/index.js": "12e436e628ccdaaed1975602507427b8b3fe3493d70beb54023e02a5d19c4fc9",
|
|
141
|
+
"src/sdk-wave-a.ts": "dc6c049b4e6f7a8c4a240b02498e6b247b679f34aefc7ff5b71322d96987de5f",
|
|
142
|
+
"src/sdk-wave-b.ts": "63c7a01b7f003f46439b23d584a01f9c362cc86b368381b96c6b6a83db1ba97a",
|
|
143
|
+
"src/sdk-wave-c.ts": "e69aa2cd61174baf790fe2f703e0e364d1228a55d9a7d0be9a2030d7500b9843",
|
|
144
|
+
"src/sdk-wave-d.ts": "6b04f955b70ed3dbe9df02012e99f05d977530dbac038b8eae5039131c7a6093",
|
|
145
|
+
"src/sdk-wave-e.ts": "31acfa15505c6b08f4da253bc21e94859d7972576dcd760effeba4656a36577f"
|
|
144
146
|
}
|
|
145
147
|
},
|
|
146
148
|
"vectorHub": {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sanqianx/project-knowledge",
|
|
3
|
-
"version": "5.0.
|
|
3
|
+
"version": "5.0.22",
|
|
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": {
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
"@sanqianx/vector-hub": "1.0.8-rc.8",
|
|
91
91
|
"buffer": "^6.0.3",
|
|
92
92
|
"cheerio": "^1.2.0",
|
|
93
|
-
"claude-ai-workbench": "npm:@sanqianx/claude-ai-workbench@0.13.
|
|
93
|
+
"claude-ai-workbench": "npm:@sanqianx/claude-ai-workbench@0.13.3",
|
|
94
94
|
"cross-spawn": "7.0.6",
|
|
95
95
|
"dotenv": "^17.4.2",
|
|
96
96
|
"gpt-tokenizer": "^3.4.0",
|
|
@@ -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.22",
|
|
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.22"
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
14
|
}
|
package/ui/index.html
CHANGED
|
@@ -23,7 +23,7 @@
|
|
|
23
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
|
-
<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
|
|
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></div></section>
|
|
27
27
|
<section class="view module-view" id="view-search"><div class="module-toolbar"><span>查找知识</span><div class="segmented" id="searchScope"><button data-scope="project">当前项目</button><button data-scope="domain">所属领域</button><button data-scope="brain">整个智脑</button></div></div><div id="searchEmpty" class="empty" hidden>尚未导入项目。<button data-action="import">导入项目</button></div><div class="frame-container"><iframe id="vectorFrame" title="知识检索" referrerpolicy="same-origin"></iframe></div></section>
|
|
28
28
|
<section class="view" id="view-memory"><div class="section-heading"><div><h2>长期记忆</h2><p>手动添加约定,或审核 Agent 提取的候选;确认内容与适用范围后生效。</p></div><button id="addMemory" class="primary" disabled>添加记忆</button></div><div class="memory-toolbar"><div class="segmented" id="memoryTabs"><button data-memory-tab="confirmed">已确认</button><button data-memory-tab="candidate">候选箱 <span id="candidateCount"></span></button></div><div class="actions"><select id="memoryScopeFilter" aria-label="筛选记忆范围"><option value="">全部范围</option><option value="global">全局记忆</option><option value="domain">领域记忆</option><option value="project">项目记忆</option></select><select id="memoryTargetFilter" aria-label="筛选记忆目标" hidden></select></div></div><div id="memoryContent"></div></section>
|
|
29
29
|
<section class="view" id="view-projects"><div class="section-heading"><div><h2>领域与项目</h2><p>统一管理归属,项目知识仍保存在原来的目录。</p></div><div class="actions"><button id="createDomain">创建领域</button><button class="primary" data-action="import">导入项目</button></div></div><div class="hierarchy"><div class="panel tree" id="projectTree"></div><div class="panel" id="projectDetail"></div></div></section>
|
package/ui/knowledge-panel.html
CHANGED
|
@@ -6,19 +6,18 @@
|
|
|
6
6
|
<meta name="color-scheme" content="light dark">
|
|
7
7
|
<title>本次知识引用</title>
|
|
8
8
|
<style>
|
|
9
|
-
:root{color-scheme:light
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
:root{color-scheme:light;font-family:system-ui,-apple-system,"Segoe UI","Microsoft YaHei",sans-serif;--page:#fff;--text:#202733;--muted:#687587;--line:#dce2e8}
|
|
10
|
+
:root[data-theme="dark"]{color-scheme:dark;--page:#20252d;--text:#e6ebf0;--muted:#a0aaba;--line:#39424f}
|
|
11
|
+
body{margin:0;padding:24px;background:var(--page);color:var(--text);font-size:14px;line-height:1.65}
|
|
12
|
+
h1{font-size:14px;margin:0 0 4px}
|
|
12
13
|
#panelStatus{margin:0 0 12px;color:#5a6069}
|
|
13
14
|
#panelProject{display:block;margin:0 0 12px;color:#5a6069;font-size:12px}
|
|
14
|
-
.reference{border:1px solid
|
|
15
|
-
.reference h2{font-size:
|
|
15
|
+
.reference{border:1px solid var(--line);border-radius:10px;padding:14px;margin:0 0 12px}
|
|
16
|
+
.reference h2{font-size:14px;margin:0 0 4px}
|
|
16
17
|
.reference small{display:block;color:#5a6069;overflow-wrap:anywhere}
|
|
17
|
-
.reference code{display:block;color:#5a6069;font-size:11px;margin-top:4px;overflow-wrap:anywhere}
|
|
18
18
|
.reference p{margin:6px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}
|
|
19
19
|
.kb-empty{color:#5a6069}
|
|
20
|
-
#
|
|
21
|
-
@media (prefers-color-scheme:dark){body{background:#14161a;color:#e6e8eb}.reference{background:#1c1f24;border-color:#2c3038}#panelStatus,#panelProject,.reference small,.reference code,.kb-empty{color:#9aa0a8}}
|
|
20
|
+
#panelStatus,#panelProject,.reference small,.kb-empty{color:var(--muted);font-size:12px}
|
|
22
21
|
</style>
|
|
23
22
|
</head>
|
|
24
23
|
<body>
|
|
@@ -26,7 +25,6 @@ h1{font-size:13px;margin:0 0 4px}
|
|
|
26
25
|
<small id="panelProject"></small>
|
|
27
26
|
<p id="panelStatus">等待知识内容…</p>
|
|
28
27
|
<div id="panelReferences"><p class="kb-empty">面板就绪后显示实际检索到的项目事实、领域经验和已确认记忆。</p></div>
|
|
29
|
-
<footer id="panelMarker">KB-K1-KNOWLEDGE-PANEL-v1</footer>
|
|
30
28
|
<script>
|
|
31
29
|
(function () {
|
|
32
30
|
'use strict';
|
|
@@ -67,11 +65,9 @@ h1{font-size:13px;margin:0 0 4px}
|
|
|
67
65
|
heading.textContent = String(entry.title || entry.entryId || '知识引用');
|
|
68
66
|
var source = document.createElement('small');
|
|
69
67
|
source.textContent = String(entry.source || '');
|
|
70
|
-
var entryId = document.createElement('code');
|
|
71
|
-
entryId.textContent = String(entry.entryId || '');
|
|
72
68
|
var text = document.createElement('p');
|
|
73
69
|
text.textContent = String(entry.text || '').slice(0, 800);
|
|
74
|
-
item.append(heading, source, text
|
|
70
|
+
item.append(heading, source, text);
|
|
75
71
|
return item;
|
|
76
72
|
}
|
|
77
73
|
|
|
@@ -80,8 +76,9 @@ h1{font-size:13px;margin:0 0 4px}
|
|
|
80
76
|
if (content === null || typeof content !== 'object' || Array.isArray(content)) {
|
|
81
77
|
throw new Error('内容必须是普通对象');
|
|
82
78
|
}
|
|
79
|
+
document.documentElement.dataset.theme = content.theme === 'dark' ? 'dark' : 'light';
|
|
83
80
|
titleNode.textContent = String(content.title || '本次知识引用');
|
|
84
|
-
projectNode.textContent = String(content.
|
|
81
|
+
projectNode.textContent = String(content.projectName || '');
|
|
85
82
|
statusNode.textContent = STATUS_LABELS[String(content.status || '')] || '本次任务上下文';
|
|
86
83
|
refsNode.replaceChildren();
|
|
87
84
|
var references = Array.isArray(content.references) ? content.references : [];
|
|
@@ -108,7 +105,7 @@ h1{font-size:13px;margin:0 0 4px}
|
|
|
108
105
|
render(data);
|
|
109
106
|
acknowledge(data.panelId, data.version, true, null);
|
|
110
107
|
} catch (error) {
|
|
111
|
-
statusNode.textContent = '
|
|
108
|
+
statusNode.textContent = '知识引用暂时无法显示,请稍后重试。';
|
|
112
109
|
acknowledge(data.panelId, data.version, false, error && error.message ? error.message : 'render failed');
|
|
113
110
|
}
|
|
114
111
|
});
|
package/ui/product.css
CHANGED
|
@@ -5,17 +5,9 @@ label>.detail-path{display:block;width:100%;margin:8px 0 0;color:var(--text)}
|
|
|
5
5
|
.agent-detail{margin-top:8px}.agent-detail summary{cursor:pointer;color:var(--muted);font-size:12px;user-select:none}.agent-detail[open] summary{margin-bottom:2px}.agent-detail .actions{margin-top:8px}
|
|
6
6
|
#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}
|
|
7
7
|
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
|
|
8
|
-
.
|
|
8
|
+
.reference{overflow-wrap:anywhere}.reference small{min-width:0;max-width:100%}
|
|
9
9
|
html[data-theme=dark]{--page:#171a1f;--surface:#20252d;--surface2:#252b34;--surface3:#2c333e;--line:#39424f;--text:#e6ebf0;--muted:#a0aaba;--faint:#788393;--nav:#1b2028;--accent:#8aa8cf;--accent-soft:#293748;--good:#81b29a;--bad:#d88b8b;--bad-soft:#39292d;color-scheme:dark}
|
|
10
10
|
*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%}body{margin:0;overflow:hidden;background:var(--page);color:var(--text);font:13px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:34px;padding:6px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}button:hover{background:var(--surface3)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:3px}svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}h1,h2,h3,p{margin:0}h1{font-size:18px;font-weight:650}h2{font-size:16px;font-weight:600}h3{font-size:13px;font-weight:600}small,.muted{color:var(--muted)}small{font-size:11px}p{color:var(--muted);margin-top:8px}input,select,textarea{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:8px 12px;min-width:0}label{display:block;font-size:12px;margin:16px 0;color:var(--muted)}label>input,label>select,label>textarea{display:block;width:100%;margin-top:8px;color:var(--text)}pre{font:12px/1.8 Consolas,"Microsoft YaHei",monospace;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text)}
|
|
11
|
-
.app{height:100%;display:grid;grid-template-columns:232px minmax(0,1fr)}.sidebar{display:flex;flex-direction:column;border-right:1px solid var(--line);background:var(--nav);min-height:0}.brand{display:flex;align-items:center;gap:8px;padding:24px 20px 16px}.brand-mark{width:32px;height:32px;display:block;flex:none;object-fit:contain}.brand strong{font-size:14px}.brand small{display:block}.brain-label{padding:0 20px 16px;color:var(--muted);overflow-wrap:anywhere}.sidebar nav{display:grid;gap:8px;padding:8px 12px}.sidebar nav button{justify-content:flex-start;min-height:40px;text-align:left;border-color:transparent;background:transparent;color:var(--muted)}.sidebar nav button.active{border-color:var(--line);background:var(--surface);color:var(--text)}.count{margin-left:auto;background:var(--surface3);padding:0 6px;border-radius:4px}.system-button{margin: auto 12px 16px;justify-content:flex-start;min-height:56px;background:transparent;border-color:transparent;padding:8px}.system-button>span:nth-child(2){flex:1;text-align:left}.system-button b,.system-button small{display:block;font-size:11px}.dot{width:7px;height:7px;border-radius:50%;background:var(--faint);flex:none}.dot.up{background:var(--good)}.dot.issue{background:var(--bad)}main{min-width:0;min-height:0;display:flex;flex-direction:column}.topbar{height:72px;flex:none;display:flex;align-items:center;gap:16px;padding:0 24px;background:var(--surface);border-bottom:1px solid var(--line)}.spacer{flex:1}.topbar select{width:240px}.icon-button{padding:8px;min-width:34px}.content{position:relative;flex:1;min-height:0}.view{display:none;height:100%;overflow:auto;padding:32px}.view.active{display:block}.view.module-view{padding:0;overflow:hidden}.module-view.active{display:flex;flex-direction:column}.frame-container{position:relative;flex:1;min-width:0;min-height:0;overflow:hidden;background:var(--surface)}iframe{display:block;width:100%;height:100%;border:0;background:var(--surface)}.work-layout{display:grid;grid-template-columns:minmax(0,1fr)
|
|
11
|
+
.app{height:100%;display:grid;grid-template-columns:232px minmax(0,1fr)}.sidebar{display:flex;flex-direction:column;border-right:1px solid var(--line);background:var(--nav);min-height:0}.brand{display:flex;align-items:center;gap:8px;padding:24px 20px 16px}.brand-mark{width:32px;height:32px;display:block;flex:none;object-fit:contain}.brand strong{font-size:14px}.brand small{display:block}.brain-label{padding:0 20px 16px;color:var(--muted);overflow-wrap:anywhere}.sidebar nav{display:grid;gap:8px;padding:8px 12px}.sidebar nav button{justify-content:flex-start;min-height:40px;text-align:left;border-color:transparent;background:transparent;color:var(--muted)}.sidebar nav button.active{border-color:var(--line);background:var(--surface);color:var(--text)}.count{margin-left:auto;background:var(--surface3);padding:0 6px;border-radius:4px}.system-button{margin: auto 12px 16px;justify-content:flex-start;min-height:56px;background:transparent;border-color:transparent;padding:8px}.system-button>span:nth-child(2){flex:1;text-align:left}.system-button b,.system-button small{display:block;font-size:11px}.dot{width:7px;height:7px;border-radius:50%;background:var(--faint);flex:none}.dot.up{background:var(--good)}.dot.issue{background:var(--bad)}main{min-width:0;min-height:0;display:flex;flex-direction:column}.topbar{height:72px;flex:none;display:flex;align-items:center;gap:16px;padding:0 24px;background:var(--surface);border-bottom:1px solid var(--line)}.spacer{flex:1}.topbar select{width:240px}.icon-button{padding:8px;min-width:34px}.content{position:relative;flex:1;min-height:0}.view{display:none;height:100%;overflow:auto;padding:32px}.view.active{display:block}.view.module-view{padding:0;overflow:hidden}.module-view.active{display:flex;flex-direction:column}.frame-container{position:relative;flex:1;min-width:0;min-height:0;overflow:hidden;background:var(--surface)}iframe{display:block;width:100%;height:100%;border:0;background:var(--surface)}.work-layout{display:grid;grid-template-columns:minmax(0,1fr);height:100%;min-height:0}.module-toolbar{flex:none;min-height:56px;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:8px 24px;border-bottom:1px solid var(--line);background:var(--surface)}.segmented{display:flex;gap:4px}.segmented button{background:transparent;border-color:transparent;color:var(--muted)}.segmented button.active{background:var(--surface);border-color:var(--line);color:var(--text)}
|
|
12
12
|
.welcome{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:32px}.welcome h2{font-size:24px;margin-top:8px}.actions{display:flex;gap:8px;align-items:center}.grid2{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,1fr);gap:24px}.stack{display:grid;gap:24px}.panel{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:24px;min-width:0}.panel h2{margin-bottom:16px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:24px}.section-heading p{font-size:12px}.row{display:flex;align-items:center;gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}.row:last-child{border-bottom:0}.row>div{flex:1;min-width:0}.row b{font-weight:600}.row small{display:block;margin-top:4px;overflow-wrap:anywhere}.row time{color:var(--muted);font-size:11px;flex:none}.status{font-size:11px;border:1px solid var(--line);border-radius:4px;padding:2px 8px;white-space:nowrap;color:var(--muted)}.status.up{color:var(--good)}.status.issue{color:var(--bad);background:var(--bad-soft)}.empty{padding:64px 24px;text-align:center;color:var(--muted);background:var(--surface);border-radius:8px;line-height:1.9}.empty button{display:block;margin:16px auto 0}.small-empty{padding:16px 0;text-align:left;background:transparent;font-size:12px}.hierarchy{display:grid;grid-template-columns:296px minmax(0,1fr);gap:24px}.tree h3{margin:24px 0 8px;color:var(--muted);font-size:11px}.tree button{width:100%;justify-content:flex-start;text-align:left;background:transparent;border-color:transparent;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree button.active{background:var(--accent-soft);color:var(--accent)}.detail-path{padding:12px 16px;background:var(--surface2);border:1px solid var(--line);border-radius:8px;margin:8px 0 24px;font:12px/1.8 Consolas,"Microsoft YaHei",monospace;overflow-wrap:anywhere}.detail-label{color:var(--muted);font-size:11px}.memory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:24px}.memory-card{padding:24px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.memory-card p{color:var(--text);margin:0 0 16px;white-space:pre-wrap}.memory-card .actions{margin-top:16px}.reference{display:block;text-align:left;width:100%;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:16px 0}.reference b,.reference small{display:block;text-align:left}.reference p{font-size:12px;text-align:left}.activity-updates{flex:1;overflow:auto;padding:24px 32px}.run{margin-bottom:16px;background:var(--surface);border:1px solid var(--line);border-radius:8px}.run summary{padding:16px 24px;cursor:pointer;display:flex;align-items:center;gap:16px}.run summary strong{flex:1}.run>div{padding:0 24px 24px}.run .error{color:var(--bad)}.operation{padding:8px 0;color:var(--muted)}
|
|
13
13
|
.drawer-backdrop{position:fixed;inset:0;background:rgba(10,18,25,.25);z-index:20}.drawer{position:fixed;right:0;top:0;height:100%;width:448px;background:var(--surface);border-left:1px solid var(--line);z-index:21;display:flex;flex-direction:column}.drawer>header{height:72px;display:flex;align-items:center;justify-content:space-between;padding:24px;border-bottom:1px solid var(--line)}.drawer-content{overflow:auto;flex:1;padding:24px}.drawer section{padding-bottom:24px;margin-bottom:24px;border-bottom:1px solid var(--line)}.drawer select{width:100%;margin:16px 0}.drawer .actions{flex-wrap:wrap}.drawer section:last-child{border-bottom:0}.input-with-action{display:flex;gap:8px;margin-top:8px}.input-with-action input{flex:1}.input-with-action button{flex:none}.checkbox{display:flex;align-items:center;gap:8px}.checkbox input{width:auto;margin:0}dialog{width:560px;max-width:90vw;max-height:90vh;overflow:auto;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:12px;padding:24px}dialog::backdrop{background:rgba(10,18,25,.35)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.dialog-heading>button{border:0;background:transparent;font-size:20px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:24px}.feedback{padding:12px 16px;background:var(--surface2);border:1px solid var(--line);border-radius:8px;color:var(--muted);white-space:pre-wrap}.feedback.issue{color:var(--bad)}.reference-dialog{width:880px}.reference-dialog pre{margin-top:24px;max-height:60vh;overflow:auto}.engine-dialog{width:calc(100vw - 96px);height:calc(100vh - 96px);padding:0;overflow:hidden}.engine-dialog .dialog-heading{height:64px;padding:16px 24px;border-bottom:1px solid var(--line);margin:0}.engine-dialog iframe{height:calc(100% - 64px)}.toast{position:fixed;bottom:24px;right:24px;z-index:50;background:var(--surface);padding:12px 16px;border:1px solid var(--line);border-radius:8px;max-width:480px;color:var(--text)}
|
|
14
|
-
/* K1 knowledge panel: when the dock panel owns the content, the fixed column
|
|
15
|
-
folds via a grid-track animation - no extra toggle button is introduced. */
|
|
16
|
-
.work-layout{transition:grid-template-columns .2s ease}
|
|
17
|
-
.work-layout.kb-panel-collapsed{grid-template-columns:minmax(0,1fr) 0px}
|
|
18
|
-
.knowledge-context{min-width:0;transition:visibility .2s ease,padding .2s ease}
|
|
19
|
-
.work-layout.kb-panel-collapsed .knowledge-context{visibility:hidden;border-left-width:0;padding-left:0;padding-right:0}
|
|
20
|
-
.panel-notice{display:block;margin-top:4px;color:var(--bad,#b3261e)}
|
|
21
|
-
@media (prefers-reduced-motion: reduce){.work-layout,.knowledge-context{transition:none}}
|