@qzsy/dsh-workspace-combobox 0.0.0-stage → 0.1.0
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/LICENSE +21 -0
- package/README.md +75 -2
- package/cordis.patch.yml +3 -0
- package/dist/client.js +848 -0
- package/dist/index.js +5 -0
- package/icon.svg +13 -0
- package/locale/en.json +6 -0
- package/locale/zh.json +6 -0
- package/package.json +74 -4
- package/scripts/sync-vendor-engine.mjs +45 -0
- package/vendor/text-search-engine.LICENSE +21 -0
- package/vendor/text-search-engine.min.js +1 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 qzsy
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,3 +1,76 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @qzsy/dsh-workspace-combobox
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
> Packaged from the local DSH plugin dsh-workspace-combobox; published under the @qzsy scope.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
~~~bash
|
|
8
|
+
dsh plugin add @qzsy/dsh-workspace-combobox
|
|
9
|
+
~~~
|
|
10
|
+
|
|
11
|
+
## Upstream README
|
|
12
|
+
|
|
13
|
+
# Workspace Combobox for DSH
|
|
14
|
+
|
|
15
|
+
A persistent DeepSeek Harness Client plugin that upgrades the workspace chooser
|
|
16
|
+
above the New Session composer:
|
|
17
|
+
|
|
18
|
+
- **The picker becomes a combobox.** The dropdown that opens from the workspace
|
|
19
|
+
chip is replaced by a focused search field plus a keyboard-driven list. It
|
|
20
|
+
matches workspace **names and full paths** with one mixed-script query:
|
|
21
|
+
Han characters (`群星`), full pinyin (`qunxing`), pinyin initials (`qx`),
|
|
22
|
+
English subsequences (`flut`), and mixed forms (`qunxing-erp`, `群erp`).
|
|
23
|
+
Matched characters are highlighted; arrows move, Enter picks, Escape closes.
|
|
24
|
+
- **`Ctrl+.` switches workspace from anywhere.** A frame-wide switcher opens
|
|
25
|
+
over the current surface — including sessions where the New Session picker is
|
|
26
|
+
not rendered — with the same search, in the roomier dialog layout. Enter
|
|
27
|
+
**starts a new conversation in that Workspace** (`uiWorkspace.startSession`)
|
|
28
|
+
instead of reopening the Workspace's latest session. The binding is a normal
|
|
29
|
+
editable command (`workspace.combobox`) in Settings → Keyboard shortcuts.
|
|
30
|
+
|
|
31
|
+
Sizing is deliberately split: the picker above the composer stays compact
|
|
32
|
+
(single-line rows, 380 px wide), while the frame-wide dialog keeps the larger
|
|
33
|
+
palette dimensions and full paths.
|
|
34
|
+
|
|
35
|
+
## Where it plugs in
|
|
36
|
+
|
|
37
|
+
| Surface | Mechanism |
|
|
38
|
+
| --- | --- |
|
|
39
|
+
| New Session workspace dropdown | A `conversation.hero.workspace` occupant registered at `priority: -1`. The slot registry renders the lowest priority, so it shadows the shipped picker panel registered at 0. The trigger chip, open/close state, `selectedId`, and `onPick` still come from the conversation owner. The panel renders through a React portal on `document.body`, like the shipped menu, so no transformed or clipped ancestor can displace it. |
|
|
40
|
+
| Frame-wide switcher | A `shell.overlay` entry (`workspace-combobox.switcher`) driven by the `workspace.combobox` shortcut command. |
|
|
41
|
+
| Search | The MIT [`text-search-engine`](https://github.com/cjinhuo/text-search-engine) browser build is vendored and injected into the client module, because the client module table cannot resolve npm packages at runtime. |
|
|
42
|
+
|
|
43
|
+
Replacing the picker panel removes the shipped `conversation.hero.workspace.directoryFlow`
|
|
44
|
+
hole, so this plugin also renders its own **Add workspace…** row: it calls
|
|
45
|
+
`uiWorkspace.pickDirectory()`, registers the path through `workspaces.create()`,
|
|
46
|
+
and then picks the new workspace.
|
|
47
|
+
|
|
48
|
+
## Install
|
|
49
|
+
|
|
50
|
+
Installed into the current profile with `plugin_manager install_bundle` and the
|
|
51
|
+
absolute package directory. No build step is needed at install time: `client.js`
|
|
52
|
+
is a plain-JS `__ModuleLoader__` module that only requires `react`, with the
|
|
53
|
+
vendored engine already inlined.
|
|
54
|
+
|
|
55
|
+
## Files
|
|
56
|
+
|
|
57
|
+
- `package.json` — bundle manifest (`dsh.bundle.patch`, `dsh.client`, display resources)
|
|
58
|
+
- `cordis.patch.yml` — inserts the Host row
|
|
59
|
+
- `index.js` — Host half (no-op; everything is client-side)
|
|
60
|
+
- `client.js` — the combobox, the frame-wide switcher, the shortcut, and the
|
|
61
|
+
vendored-engine region
|
|
62
|
+
- `vendor/` — vendored engine build and its MIT license
|
|
63
|
+
- `scripts/sync-vendor-engine.mjs` — regenerates the engine region after a
|
|
64
|
+
vendor update
|
|
65
|
+
- `locale/en.json`, `locale/zh.json` — Plugin Manager title/description
|
|
66
|
+
- `icon.svg` — original artwork
|
|
67
|
+
|
|
68
|
+
## Limits
|
|
69
|
+
|
|
70
|
+
- The trigger chip above the composer belongs to the conversation owner and is
|
|
71
|
+
not replaceable by a slot occupant, so the typing happens inside the opened
|
|
72
|
+
panel (a true combobox), not in the chip itself.
|
|
73
|
+
- Workspaces are ordered by latest session activity; the search ranking prefers
|
|
74
|
+
title hits over path hits.
|
|
75
|
+
- The picker replacement shadows shipped UI. Uninstalling the bundle restores the
|
|
76
|
+
shipped picker immediately.
|
package/cordis.patch.yml
ADDED