dsh-tender-workbench 0.2.1-beta.1 → 0.2.1-beta.3
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/README.md +19 -17
- package/lib/client.js +10 -5
- package/lib/client.js.map +1 -1
- package/lib/index.js +87 -58
- package/lib/types/client/better-sidebar-adapter.d.ts +1 -1
- package/lib/types/client/better-sidebar-adapter.d.ts.map +1 -1
- package/lib/types/host/pipeline/qcc-adapters.d.ts +51 -51
- package/lib/types/host/pipeline/qcc-adapters.d.ts.map +1 -1
- package/lib/types/host/tools/query-tool.d.ts +3 -1
- package/lib/types/host/tools/query-tool.d.ts.map +1 -1
- package/package.json +13 -12
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
`dsh-tender-workbench` is an open-source DeepSeek Harness tender Agent workbench. The current S1-S5.3 MVP provides one Session-scoped Better Sidebar workbench, three official entry points, a four-phase progressive shell over seven internal Projection nodes, and a real query → optional analysis → human review → immutable Excel/PDF delivery chain.
|
|
4
4
|
|
|
5
|
-
The three entries are `sidebar.footer.action` (“招投标”), `conversation.input.left` (“搜索招投标”), and `conversation.session.header.actions` (reopen). They all focus the same
|
|
5
|
+
The three entries are `sidebar.footer.action` (“招投标”), `conversation.input.left` (“搜索招投标”), and `conversation.session.header.actions` (reopen). They all focus the same Better Sidebar single-instance Tab for the addressed Session. The workbench reads only that Session's Host Projection through a narrow `TenderProjectionPort`; it does not infer business state from chat text or maintain cross-Session state.
|
|
6
6
|
|
|
7
7
|
The single query workspace now captures the complete approved condition set: source scope, up to ten keywords, publication presets/prior year/custom dates, up to twenty province/city/district regions, the analysis goal, tender information type and conditional stages/amounts, procurement method/industry/type, and proposed-project stage/approval/investment. The visible execution plan, user message, Host validation, and exact qcc calls all come from the same `TenderQueryIntentV1`; hidden or inactive branches cannot leak stale values, and `smartSort` is not exposed as a user filter.
|
|
8
8
|
|
|
@@ -40,9 +40,11 @@ The MVP deliberately does not implement report preview/version centers, successf
|
|
|
40
40
|
|
|
41
41
|
## Compatibility
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
The published plugin does not pin DeepSeek Harness, MCP Connector, or Better Sidebar to exact deployment versions. Its peer metadata declares minimums with no stable-version upper bound: DSH public packages from `0.1.1-rc.2`, MCP Connector from `0.2.31`, and Better Sidebar from `0.17.1`. The active Profile still supplies one coherent runtime. Runtime compatibility remains capability-based: Better Sidebar must expose the public `targetedOpen` and `stateSubscription` features, while the Host must provide the public Session Projection, JSONL Session Persistence, Tools, Skill, Sessions, and WebServer services used by the workflow. Development and release verification currently use DSH `0.1.1-rc.2` with Better Sidebar `0.17.1` as a reproducible reference combination, not as an exact installation restriction.
|
|
44
44
|
|
|
45
|
-
S2-S5 additionally require the standard JSONL Session Persistence service and an installed, authorized `qcc-tender` MCP connection exposing the exact tools `mcp__qcc-tender__search_tenders` and `mcp__qcc-tender__search_proposed_projects`. Missing tools or non-JSONL persistence fail explicitly; there is no Web-search, Workspace-storage, or alternate-persistence fallback.
|
|
45
|
+
S2-S5 additionally require the standard JSONL Session Persistence service and an installed, authorized `qcc-tender` MCP connection exposing the exact tools `mcp__qcc-tender__search_tenders` and `mcp__qcc-tender__search_proposed_projects`. Missing capabilities, missing tools, or non-JSONL persistence fail explicitly; there is no Web-search, Workspace-storage, or alternate-persistence fallback.
|
|
46
|
+
|
|
47
|
+
`peerDependencies` let package managers diagnose versions below those minimums, but the current `dsh plugin` command delegates to pnpm, whose Profile defaults report peer conflicts as warnings instead of guaranteed installation failures. DSH currently has no Bundle-manifest prerequisite field. Consequently this package cannot promise a hard pre-install rejection on every DSH version; missing Host services still keep the Host plugin from activating, and missing Better Sidebar features fail Client activation before a business command is sent.
|
|
46
48
|
|
|
47
49
|
## Build and test
|
|
48
50
|
|
|
@@ -64,8 +66,8 @@ The build emits the Host loader entry at `lib/index.js`, the DSH Client factory
|
|
|
64
66
|
The current release is an internal preview published under the `beta` dist-tag. Install it explicitly through `@beta` so the preview channel remains clear even when npm also resolves the first published version through `latest`:
|
|
65
67
|
|
|
66
68
|
```sh
|
|
67
|
-
dsh plugin --profile web add dsh-mcp-connector
|
|
68
|
-
dsh plugin --profile web add dsh-better-sidebar
|
|
69
|
+
dsh plugin --profile web add 'dsh-mcp-connector@>=0.2.31'
|
|
70
|
+
dsh plugin --profile web add 'dsh-better-sidebar@>=0.17.1'
|
|
69
71
|
dsh plugin --profile web add dsh-tender-workbench@beta
|
|
70
72
|
dsh web --no-open
|
|
71
73
|
```
|
|
@@ -73,16 +75,16 @@ dsh web --no-open
|
|
|
73
75
|
To install an exact version:
|
|
74
76
|
|
|
75
77
|
```sh
|
|
76
|
-
dsh plugin --profile web add dsh-mcp-connector
|
|
77
|
-
dsh plugin --profile web add dsh-better-sidebar
|
|
78
|
-
dsh plugin --profile web add dsh-tender-workbench@0.2.1-beta.
|
|
78
|
+
dsh plugin --profile web add 'dsh-mcp-connector@>=0.2.31'
|
|
79
|
+
dsh plugin --profile web add 'dsh-better-sidebar@>=0.17.1'
|
|
80
|
+
dsh plugin --profile web add dsh-tender-workbench@0.2.1-beta.3
|
|
79
81
|
```
|
|
80
82
|
|
|
81
83
|
After a stable version is published to `latest`, users will be able to install it without an explicit tag:
|
|
82
84
|
|
|
83
85
|
```sh
|
|
84
|
-
dsh plugin --profile web add dsh-mcp-connector
|
|
85
|
-
dsh plugin --profile web add dsh-better-sidebar
|
|
86
|
+
dsh plugin --profile web add 'dsh-mcp-connector@>=0.2.31'
|
|
87
|
+
dsh plugin --profile web add 'dsh-better-sidebar@>=0.17.1'
|
|
86
88
|
dsh plugin --profile web add dsh-tender-workbench
|
|
87
89
|
```
|
|
88
90
|
|
|
@@ -91,8 +93,8 @@ dsh plugin --profile web add dsh-tender-workbench
|
|
|
91
93
|
Install and mount MCP Connector and Better Sidebar first. Then build this repository and run the following command from the plugin root when the public `dsh` CLI is available:
|
|
92
94
|
|
|
93
95
|
```sh
|
|
94
|
-
dsh plugin --profile web add dsh-mcp-connector
|
|
95
|
-
dsh plugin --profile web add dsh-better-sidebar
|
|
96
|
+
dsh plugin --profile web add 'dsh-mcp-connector@>=0.2.31'
|
|
97
|
+
dsh plugin --profile web add 'dsh-better-sidebar@>=0.17.1'
|
|
96
98
|
dsh plugin --profile web add .
|
|
97
99
|
dsh web --no-open
|
|
98
100
|
```
|
|
@@ -101,8 +103,8 @@ If `dsh` is only available through a separate DeepSeek Harness source checkout,
|
|
|
101
103
|
|
|
102
104
|
```sh
|
|
103
105
|
cd /path/to/deepseek-harness
|
|
104
|
-
pnpm dsh plugin --profile web add dsh-mcp-connector
|
|
105
|
-
pnpm dsh plugin --profile web add dsh-better-sidebar
|
|
106
|
+
pnpm dsh plugin --profile web add 'dsh-mcp-connector@>=0.2.31'
|
|
107
|
+
pnpm dsh plugin --profile web add 'dsh-better-sidebar@>=0.17.1'
|
|
106
108
|
pnpm dsh plugin --profile web add /absolute/path/to/dsh-tender-workbench
|
|
107
109
|
pnpm dsh web --no-open
|
|
108
110
|
```
|
|
@@ -110,9 +112,9 @@ pnpm dsh web --no-open
|
|
|
110
112
|
### Install from a tarball
|
|
111
113
|
|
|
112
114
|
```sh
|
|
113
|
-
dsh plugin --profile web add dsh-mcp-connector
|
|
114
|
-
dsh plugin --profile web add dsh-better-sidebar
|
|
115
|
-
dsh plugin --profile web add ./dsh-tender-workbench-0.2.1-beta.
|
|
115
|
+
dsh plugin --profile web add 'dsh-mcp-connector@>=0.2.31'
|
|
116
|
+
dsh plugin --profile web add 'dsh-better-sidebar@>=0.17.1'
|
|
117
|
+
dsh plugin --profile web add ./dsh-tender-workbench-0.2.1-beta.3.tgz
|
|
116
118
|
dsh web --no-open
|
|
117
119
|
```
|
|
118
120
|
|
package/lib/client.js
CHANGED
|
@@ -4507,7 +4507,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4507
4507
|
//#endregion
|
|
4508
4508
|
//#region src/client/better-sidebar-adapter.ts
|
|
4509
4509
|
const TENDER_WORKBENCH_TAB_ID = "dsh-tender-workbench:agent";
|
|
4510
|
-
const SUPPORTED_SIDEBAR_VERSION = /^0\.17\./u;
|
|
4511
4510
|
function treeContainsTab(node, tabId) {
|
|
4512
4511
|
if (node.kind === "leaf") return node.tabs.some((tab) => tab.id === tabId);
|
|
4513
4512
|
return node.children.some((child) => treeContainsTab(child, tabId));
|
|
@@ -4566,11 +4565,17 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
4566
4565
|
tabId
|
|
4567
4566
|
]);
|
|
4568
4567
|
}
|
|
4569
|
-
/** Fail loudly when the mandatory provider
|
|
4568
|
+
/** Fail loudly only when the mandatory provider lacks an exercised capability. */
|
|
4570
4569
|
function assertBetterSidebarContract(service) {
|
|
4571
|
-
|
|
4572
|
-
|
|
4573
|
-
|
|
4570
|
+
for (const method of [
|
|
4571
|
+
"registerTab",
|
|
4572
|
+
"isTabEnabled",
|
|
4573
|
+
"openTab",
|
|
4574
|
+
"getSnapshot"
|
|
4575
|
+
]) if (typeof service[method] !== "function") throw new Error(`dsh-tender-workbench requires the Better Sidebar ${method}() capability`);
|
|
4576
|
+
const features = Array.isArray(service.features) ? service.features : [];
|
|
4577
|
+
if (!features.includes("targetedOpen")) throw new Error("dsh-tender-workbench requires the Better Sidebar targetedOpen capability");
|
|
4578
|
+
if (!features.includes("stateSubscription")) throw new Error("dsh-tender-workbench requires the Better Sidebar stateSubscription capability");
|
|
4574
4579
|
}
|
|
4575
4580
|
/** Register the single Session-scoped workbench tab through Better Sidebar's public service. */
|
|
4576
4581
|
function registerTenderWorkbenchTab(service, component, title = "招投标") {
|