dsh-tender-workbench 0.5.3 → 0.5.4
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/CHANGELOG.md +5 -0
- package/README.en.md +6 -6
- package/README.md +9 -9
- package/docs/RELEASE-0.5.4.md +26 -0
- package/lib/client.js +264 -66
- package/lib/client.js.map +1 -1
- package/lib/types/client/TenderEntry.d.ts +2 -2
- package/lib/types/client/TenderEntry.d.ts.map +1 -1
- package/lib/types/client/better-sidebar-adapter.d.ts +5 -5
- package/lib/types/client/better-sidebar-adapter.d.ts.map +1 -1
- package/lib/types/client/index.d.ts +1 -1
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/client/workbench/TenderWorkbench.d.ts.map +1 -1
- package/lib/types/client/workbench/navigation-controller.d.ts +8 -3
- package/lib/types/client/workbench/navigation-controller.d.ts.map +1 -1
- package/lib/types/client/workbench/session-view-memory.d.ts +10 -0
- package/lib/types/client/workbench/session-view-memory.d.ts.map +1 -0
- package/package.json +2 -2
- package/docs/RELEASE-0.5.3.md +0 -8
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { InjectFace, PropsLocale, PropsRuntime } from '@deepseek-ai/dsh-client-ui-slots';
|
|
2
|
-
import type {
|
|
2
|
+
import type { WorkbenchDestination } from './workbench/navigation-controller.ts';
|
|
3
3
|
export interface TenderHeroInjected {
|
|
4
|
-
openPhase(phase:
|
|
4
|
+
openPhase(phase: WorkbenchDestination): boolean;
|
|
5
5
|
}
|
|
6
6
|
export type TenderHeroTitleBridgeProps = PropsRuntime<'conversation.input.dock'> & PropsLocale<'tenderFilter'> & InjectFace<TenderHeroInjected>;
|
|
7
7
|
/** Only this session's own DOM is branded; no root/single brand slot. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TenderEntry.d.ts","sourceRoot":"","sources":["../../../src/client/TenderEntry.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAS7F,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"TenderEntry.d.ts","sourceRoot":"","sources":["../../../src/client/TenderEntry.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAS7F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAA;AAKhF,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAA;CAChD;AAED,MAAM,MAAM,0BAA0B,GAAG,YAAY,CAAC,yBAAyB,CAAC,GAC5E,WAAW,CAAC,cAAc,CAAC,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAA;AAahE,yEAAyE;AACzE,wBAAgB,qBAAqB,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,0BAA0B,+BAiCrG;AAED,MAAM,WAAW,0BAA0B;IACzC,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACpC;AAED,MAAM,MAAM,uBAAuB,GAAG,YAAY,CAAC,uBAAuB,CAAC,GACvE,UAAU,CAAC,0BAA0B,CAAC,GACtC,WAAW,CAAC,cAAc,CAAC,CAAA;AAiB/B,qFAAqF;AACrF,wBAAgB,kBAAkB,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,uBAAuB,sCAsEvG;AAED,MAAM,WAAW,yBAAyB;IACxC,aAAa,IAAI,OAAO,CAAA;CACzB;AAED,MAAM,MAAM,sBAAsB,GAAG,YAAY,CAAC,qCAAqC,CAAC,GACpF,UAAU,CAAC,yBAAyB,CAAC,GACrC,WAAW,CAAC,cAAc,CAAC,CAAA;AAE/B,wBAAgB,wBAAwB,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,sBAAsB,sCAmB9G"}
|
|
@@ -10,15 +10,16 @@ export interface TenderWorkbenchRevealController {
|
|
|
10
10
|
attach(sessionId: string, target: RevealTarget): () => void;
|
|
11
11
|
/** Consume one explicit user-entry reveal request, now or after first mount. */
|
|
12
12
|
request(sessionId: string): void;
|
|
13
|
+
dispose(): void;
|
|
13
14
|
}
|
|
14
15
|
/** Reveal only the panel that owns the workbench Tab; floating Tabs are already visible. */
|
|
15
16
|
export declare function revealTenderWorkbenchState(state: SidebarState, tabId: string): SidebarState;
|
|
16
17
|
/**
|
|
17
18
|
* Session-scoped, non-persistent handshake between an explicit product entry
|
|
18
|
-
* and the mounted Better Sidebar Tab.
|
|
19
|
-
*
|
|
19
|
+
* and the mounted Better Sidebar Tab. No service means inert (isolated rendering
|
|
20
|
+
* only). Production binds a probed service and explicitly disposes its listener.
|
|
20
21
|
*/
|
|
21
|
-
export declare function createTenderWorkbenchRevealController(): TenderWorkbenchRevealController;
|
|
22
|
+
export declare function createTenderWorkbenchRevealController(service?: Pick<BetterSidebarService, 'getSnapshot' | 'subscribeState'>): TenderWorkbenchRevealController;
|
|
22
23
|
/** Bind the workbench shell to its Session reveal controller. */
|
|
23
24
|
export declare function useTenderWorkbenchReveal(controller: TenderWorkbenchRevealController, props: Pick<TabComponentProps, 'scope' | 'store' | 'tab'>): void;
|
|
24
25
|
/** Fail loudly only when the mandatory provider lacks an exercised capability. */
|
|
@@ -27,8 +28,7 @@ export declare function assertBetterSidebarContract(service: BetterSidebarServic
|
|
|
27
28
|
export declare function registerTenderWorkbenchTab(service: BetterSidebarService, component: (props: TabComponentProps) => ReactNode, title?: string | (() => string), icon?: ReactNode | ((size: number) => ReactNode)): () => void;
|
|
28
29
|
/**
|
|
29
30
|
* Create or focus the workbench Tab in the explicitly supplied Session. A
|
|
30
|
-
* reveal
|
|
31
|
-
* inactive targeted opens never alter a hidden Session's panel geometry.
|
|
31
|
+
* pending reveal is consumed only when its Session becomes current.
|
|
32
32
|
*/
|
|
33
33
|
export declare function openTenderWorkbench(service: BetterSidebarService, scope: SessionScope, reveal: TenderWorkbenchRevealController): boolean;
|
|
34
34
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"better-sidebar-adapter.d.ts","sourceRoot":"","sources":["../../../src/client/better-sidebar-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AACjD,OAAO,KAAK,EACV,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,iBAAiB,EAClB,MAAM,mCAAmC,CAAA;AAE1C,eAAO,MAAM,uBAAuB,EAAG,4BAAqC,CAAA;AAE5E,UAAU,YAAY;IACpB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,+BAA+B;IAC9C,wDAAwD;IACxD,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,CAAA;IAC3D,gFAAgF;IAChF,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"better-sidebar-adapter.d.ts","sourceRoot":"","sources":["../../../src/client/better-sidebar-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AACjD,OAAO,KAAK,EACV,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,iBAAiB,EAClB,MAAM,mCAAmC,CAAA;AAE1C,eAAO,MAAM,uBAAuB,EAAG,4BAAqC,CAAA;AAE5E,UAAU,YAAY;IACpB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,+BAA+B;IAC9C,wDAAwD;IACxD,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI,CAAA;IAC3D,gFAAgF;IAChF,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,OAAO,IAAI,IAAI,CAAA;CAChB;AAkBD,4FAA4F;AAC5F,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,YAAY,CAS3F;AAED;;;;GAIG;AACH,wBAAgB,qCAAqC,CACnD,OAAO,CAAC,EAAE,IAAI,CAAC,oBAAoB,EAAE,aAAa,GAAG,gBAAgB,CAAC,GACrE,+BAA+B,CAgDjC;AAED,iEAAiE;AACjE,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,+BAA+B,EAC3C,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC,GACxD,IAAI,CAKN;AAED,kFAAkF;AAClF,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAc/E;AAED,gGAAgG;AAChG,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,oBAAoB,EAC7B,SAAS,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,SAAS,EAClD,KAAK,GAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAS,EACtC,IAAI,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,CAAC,GAC/C,MAAM,IAAI,CAUZ;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,oBAAoB,EAC7B,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,+BAA+B,GACtC,OAAO,CAMT"}
|
|
@@ -6,7 +6,7 @@ declare module '@deepseek-ai/dsh-client-ui-slots' {
|
|
|
6
6
|
tenderFilter: TenderKey;
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
|
-
/**
|
|
9
|
+
/** Core conversation stays available while the optional workbench provider is absent. */
|
|
10
10
|
export declare const inject: string[];
|
|
11
11
|
/** Register the dedicated Session entry, workbench Tab, Hero brand, and Header recovery action. */
|
|
12
12
|
export declare function apply(ctx: TenderClientContext): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/index.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/index.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAoB9D,OAAO,EAAU,KAAK,SAAS,EAAE,MAAM,cAAc,CAAA;AAiBrD,OAAO,QAAQ,kCAAkC,CAAC;IAChD,UAAU,kBAAkB;QAC1B,2DAA2D;QAC3D,YAAY,EAAE,SAAS,CAAA;KACxB;CACF;AAID,yFAAyF;AACzF,eAAO,MAAM,MAAM,UAElB,CAAA;AAmCD,mGAAmG;AACnG,wBAAgB,KAAK,CAAC,GAAG,EAAE,mBAAmB,GAAG,IAAI,CAsIpD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TenderWorkbench.d.ts","sourceRoot":"","sources":["../../../../src/client/workbench/TenderWorkbench.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAA;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AAC1E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AAEzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAS/D,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,8BAA8B,CAAA;AAMnF,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EAC1B,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAKL,KAAK,kBAAkB,EACvB,KAAK,mCAAmC,
|
|
1
|
+
{"version":3,"file":"TenderWorkbench.d.ts","sourceRoot":"","sources":["../../../../src/client/workbench/TenderWorkbench.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type Dispatch, type SetStateAction } from 'react';
|
|
2
2
|
import type { TenderWorkflowProjectionV2, WorkflowStage } from '../../contracts/workflow.ts';
|
|
3
|
+
import { createSessionViewMemory } from './session-view-memory.ts';
|
|
3
4
|
export type WorkbenchPhaseIcon = 'search' | 'screening' | 'decision' | 'delivery';
|
|
4
5
|
/** Single front-stage mapping for the seven non-linear Projection nodes. */
|
|
5
6
|
export declare const TENDER_WORKBENCH_PHASES: readonly [{
|
|
@@ -32,15 +33,19 @@ export declare const TENDER_WORKBENCH_PHASES: readonly [{
|
|
|
32
33
|
readonly completionNode: "report";
|
|
33
34
|
}];
|
|
34
35
|
export type WorkbenchPhase = typeof TENDER_WORKBENCH_PHASES[number]['id'];
|
|
36
|
+
export type WorkbenchDestination = WorkbenchPhase | 'history';
|
|
35
37
|
export type WorkbenchPhaseProgress = 'not-started' | 'progress' | 'completed' | 'running' | 'failed' | 'blocked' | 'unavailable';
|
|
36
38
|
export declare const WORKBENCH_PHASES: readonly WorkbenchPhase[];
|
|
37
39
|
export declare function tenderWorkbenchPhaseProgress(projection: TenderWorkflowProjectionV2 | undefined, phase: WorkbenchPhase): WorkbenchPhaseProgress;
|
|
38
40
|
export declare function tenderWorkbenchPhaseForStage(stage: WorkflowStage | undefined): WorkbenchPhase;
|
|
39
41
|
export interface TenderWorkbenchNavigationController {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
+
readonly memory: ReturnType<typeof createSessionViewMemory>;
|
|
43
|
+
currentView(sessionId: string): WorkbenchDestination;
|
|
44
|
+
attach(sessionId: string, select: Dispatch<SetStateAction<WorkbenchDestination>>): () => void;
|
|
45
|
+
request(sessionId: string, phase: WorkbenchDestination): void;
|
|
46
|
+
dispose(): void;
|
|
42
47
|
}
|
|
43
48
|
/** Session-scoped transient navigation; it never represents workflow progress. */
|
|
44
49
|
export declare function createTenderWorkbenchNavigationController(): TenderWorkbenchNavigationController;
|
|
45
|
-
export declare function useTenderWorkbenchNavigation(controller: TenderWorkbenchNavigationController, sessionId: string, select: Dispatch<SetStateAction<
|
|
50
|
+
export declare function useTenderWorkbenchNavigation(controller: TenderWorkbenchNavigationController, sessionId: string, select: Dispatch<SetStateAction<WorkbenchDestination>>): void;
|
|
46
51
|
//# sourceMappingURL=navigation-controller.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation-controller.d.ts","sourceRoot":"","sources":["../../../../src/client/workbench/navigation-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAA;AACrE,OAAO,KAAK,EACV,0BAA0B,EAC1B,aAAa,EACd,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"navigation-controller.d.ts","sourceRoot":"","sources":["../../../../src/client/workbench/navigation-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAA;AACrE,OAAO,KAAK,EACV,0BAA0B,EAC1B,aAAa,EACd,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AAElE,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,UAAU,CAAA;AAEjF,4EAA4E;AAC5E,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwCjC,CAAA;AAEH,MAAM,MAAM,cAAc,GAAG,OAAO,uBAAuB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAA;AACzE,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG,SAAS,CAAA;AAC7D,MAAM,MAAM,sBAAsB,GAAG,aAAa,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,aAAa,CAAA;AAEhI,eAAO,MAAM,gBAAgB,EAAE,SAAS,cAAc,EAAmD,CAAA;AAEzG,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,0BAA0B,GAAG,SAAS,EAClD,KAAK,EAAE,cAAc,GACpB,sBAAsB,CAaxB;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,GAAG,cAAc,CAG7F;AAED,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAA;IAC3D,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,oBAAoB,CAAA;IACpD,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC,GAAG,MAAM,IAAI,CAAA;IAC7F,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,oBAAoB,GAAG,IAAI,CAAA;IAC7D,OAAO,IAAI,IAAI,CAAA;CAChB;AAED,kFAAkF;AAClF,wBAAgB,yCAAyC,IAAI,mCAAmC,CAgC/F;AAED,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,mCAAmC,EAC/C,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC,GACrD,IAAI,CAEN"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type Dispatch, type SetStateAction } from 'react';
|
|
2
|
+
/** Client-lifetime view memory only. Never stores task facts or host geometry. */
|
|
3
|
+
export declare function createSessionViewMemory(): {
|
|
4
|
+
read<T>(sessionId: string, key: string, initial: () => T): T;
|
|
5
|
+
write<T>(sessionId: string, key: string, value: T): void;
|
|
6
|
+
dispose(): void;
|
|
7
|
+
};
|
|
8
|
+
/** The production view is keyed by Session: remounts recover only that Session. */
|
|
9
|
+
export declare function useSessionViewState<T>(memory: ReturnType<typeof createSessionViewMemory>, sessionId: string, key: string, initial: () => T): [T, Dispatch<SetStateAction<T>>];
|
|
10
|
+
//# sourceMappingURL=session-view-memory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-view-memory.d.ts","sourceRoot":"","sources":["../../../../src/client/workbench/session-view-memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAA;AAEjF,kFAAkF;AAClF,wBAAgB,uBAAuB;SAI9B,CAAC,aAAa,MAAM,OAAO,MAAM,WAAW,MAAM,CAAC,GAAG,CAAC;UAItD,CAAC,aAAa,MAAM,OAAO,MAAM,SAAS,CAAC;;EAQpD;AAED,mFAAmF;AACnF,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,MAAM,EAAE,UAAU,CAAC,OAAO,uBAAuB,CAAC,EAClD,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,CAAC,GACf,CAAC,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAUlC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-tender-workbench",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.4",
|
|
4
4
|
"description": "Tender search and bid intelligence in DeepSeek Harness with proposed project search, rule screening, human review and Excel/PDF exports using user-authorized Qichacha MCP.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"deepseek-harness",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"README.en.md",
|
|
48
48
|
"CHANGELOG.md",
|
|
49
49
|
"cordis.patch.yml",
|
|
50
|
-
"docs/RELEASE-0.5.
|
|
50
|
+
"docs/RELEASE-0.5.4.md",
|
|
51
51
|
"lib/index.js",
|
|
52
52
|
"lib/client.js",
|
|
53
53
|
"lib/client.js.map",
|
package/docs/RELEASE-0.5.3.md
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
# dsh-tender-workbench 0.5.3
|
|
2
|
-
|
|
3
|
-
Version: **0.5.3**
|
|
4
|
-
Status: **release candidate**
|
|
5
|
-
|
|
6
|
-
本次仅优化搜索发现与安装转化:更新 npm description/keywords、README 安装首屏、真实能力边界、示意流程、升级回滚与四产品互链。运行时功能与依赖版本不变。
|
|
7
|
-
|
|
8
|
-
发布前执行项目完整 check;发布后核验 npm 精确版本、latest、README 与 provenance。回滚可安装 dsh-tender-workbench@0.5.2,使用升级前任务目录副本。
|