dsh-plugin-shop 0.8.7-beta.2 → 0.8.7
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 +10 -11
- package/lib/client.js +2759 -2752
- package/lib/types/client/ShopSection.d.ts +10 -0
- package/lib/types/client/ShopTab.d.ts +7 -4
- package/lib/types/client/index.d.ts +3 -3
- package/lib/types/client/locales.d.ts +9 -7
- package/lib/types/client/present.d.ts +0 -13
- package/package.json +1 -1
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The shop's Settings section (design §5.1, amended 2026-10-15): its own
|
|
3
|
+
* entry in the Settings nav, directly after Built-in plugins, where it used
|
|
4
|
+
* to be a tab inside that section. The page carries the title and the one
|
|
5
|
+
* intro line the built-in Models and Built-in plugins pages carry, above the
|
|
6
|
+
* shop body, which is `ShopTab` unchanged.
|
|
7
|
+
*/
|
|
8
|
+
import type { ReactNode } from 'react';
|
|
9
|
+
import { type ShopTabProps } from './ShopTab.tsx';
|
|
10
|
+
export declare function ShopSection(props: ShopTabProps): ReactNode;
|
|
@@ -62,8 +62,11 @@ export interface ShopTabInjected {
|
|
|
62
62
|
reload?: () => void;
|
|
63
63
|
}
|
|
64
64
|
/** Full component props assembled by the Settings slot renderer. */
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
65
|
+
/** The shop body's props: since 2026-10-15 the shop is its own Settings
|
|
66
|
+
* section (design §5.1), whose one owner prop, `close`, the body ignores. */
|
|
67
|
+
export type ShopTabProps = PropsRuntime<'settings.section'> & PropsLocale<'settings.shop'> & InjectFace<ShopTabInjected>;
|
|
68
|
+
/** The shop body inside its own error boundary, as `ShopSection` renders it
|
|
69
|
+
* below the page's title and intro (the settings slot registers `ShopSection`,
|
|
70
|
+
* `index.ts`). Exported under the name the body used to carry, so nothing can
|
|
71
|
+
* render the body without the boundary. */
|
|
69
72
|
export declare function ShopTab(props: ShopTabProps): ReactNode;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Shop settings surface, browser half — one
|
|
2
|
+
* Shop settings surface, browser half — one Settings section (`settings.section`)
|
|
3
3
|
* that browses the catalog, installs with acknowledgement, toggles
|
|
4
4
|
* enablement, lists installed plugins, and restarts dsh after installs.
|
|
5
5
|
* Mounts the shop Remote itself (the assembly does not know this package)
|
|
@@ -9,7 +9,7 @@ import type { ClientContext } from '@deepseek-ai/dsh-client-runtime/client';
|
|
|
9
9
|
import type { ShopLocaleKey } from './locales.ts';
|
|
10
10
|
declare module '@deepseek-ai/dsh-client-ui-slots' {
|
|
11
11
|
interface LocaleNamespaceMap {
|
|
12
|
-
/** Shop
|
|
12
|
+
/** Shop Settings section copy. */
|
|
13
13
|
'settings.shop': ShopLocaleKey;
|
|
14
14
|
}
|
|
15
15
|
}
|
|
@@ -40,5 +40,5 @@ export declare const WARM_TTL_MS: number;
|
|
|
40
40
|
* namespace is therefore read through the reflect shop instead (`ctx.get`,
|
|
41
41
|
* see apply), which has no inject requirement. */
|
|
42
42
|
export declare const inject: string[];
|
|
43
|
-
/** Mount the shop Remote and contribute the shop
|
|
43
|
+
/** Mount the shop Remote and contribute the shop's Settings section. */
|
|
44
44
|
export declare function apply(ctx: ClientContext): Promise<void>;
|
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
/** Copy dictionaries for the shop Settings
|
|
1
|
+
/** Copy dictionaries for the shop's Settings section. */
|
|
2
2
|
/** Simplified Chinese dictionary and key source of truth. */
|
|
3
3
|
export declare const zh: {
|
|
4
|
-
|
|
4
|
+
/** The shop's name in Settings (design §5.1, amended 2026-10-15): its nav
|
|
5
|
+
* entry and its page title, one key so the two cannot drift apart. */
|
|
6
|
+
title: string;
|
|
7
|
+
/** The shop's Settings page intro line (design §5.1, amended 2026-10-15),
|
|
8
|
+
* as the built-in Models and 内置插件 pages carry one under their title. */
|
|
9
|
+
intro: string;
|
|
5
10
|
loading: string;
|
|
6
11
|
error: string;
|
|
7
12
|
installedError: string;
|
|
@@ -48,9 +53,6 @@ export declare const zh: {
|
|
|
48
53
|
install: string;
|
|
49
54
|
cancel: string;
|
|
50
55
|
dismiss: string;
|
|
51
|
-
/** What every install now stands under, on the page rather than in a dialog
|
|
52
|
-
* (spec §9.2/§9.3, amended 2026-10-14). */
|
|
53
|
-
disclosure: string;
|
|
54
56
|
/** The fold toggle under a card's collapsed red block. `aria-expanded` plus:
|
|
55
57
|
* open shows the whole block; closed shows two lines of it. This toggle is
|
|
56
58
|
* independent of the card's own header-expand. */
|
|
@@ -195,7 +197,8 @@ export declare const zh: {
|
|
|
195
197
|
export type ShopLocaleKey = keyof typeof zh;
|
|
196
198
|
/** English dictionary checked against the Chinese key set. */
|
|
197
199
|
export declare const en: {
|
|
198
|
-
|
|
200
|
+
title: string;
|
|
201
|
+
intro: string;
|
|
199
202
|
loading: string;
|
|
200
203
|
error: string;
|
|
201
204
|
installedError: string;
|
|
@@ -237,7 +240,6 @@ export declare const en: {
|
|
|
237
240
|
install: string;
|
|
238
241
|
cancel: string;
|
|
239
242
|
dismiss: string;
|
|
240
|
-
disclosure: string;
|
|
241
243
|
moreRedLines: string;
|
|
242
244
|
lessRedLines: string;
|
|
243
245
|
installing: string;
|
|
@@ -169,19 +169,6 @@ export declare function refusedPeersText(refused: Readonly<Record<string, string
|
|
|
169
169
|
* install it cannot vouch for.
|
|
170
170
|
*/
|
|
171
171
|
export declare function heldBy(entry: EntryIdentity, specs: Readonly<Record<string, string>> | undefined): string | undefined;
|
|
172
|
-
/** The disclosure every install now stands under (spec §9.3, amended
|
|
173
|
-
* 2026-10-14). It used to be the acknowledgement dialog's body: the gate asked
|
|
174
|
-
* a reader to accept THESE privileges before each community install. The gate
|
|
175
|
-
* is gone, and the same facts stand instead as one quiet line on the page, so
|
|
176
|
-
* they cannot be missed and cannot be dismissed unread.
|
|
177
|
-
*
|
|
178
|
-
* Stated in the general case — "a plugin", not "this plugin" — because it now
|
|
179
|
-
* describes the tier system rather than one entry, and because the community
|
|
180
|
-
* tier is never badged on a card: naming a badge that is not rendered would
|
|
181
|
-
* send a reader looking for it. */
|
|
182
|
-
export declare const DISCLOSURE_EN = "Once installed, a plugin holds the same privileges as a built-in one: reading and writing your files, running shell commands, and reading and modifying the requests sent to the model. Plugins not marked Verified have not been reviewed.";
|
|
183
|
-
/** The same facts in the zh register, with the same force. */
|
|
184
|
-
export declare const DISCLOSURE_ZH = "\u5B89\u88C5\u540E\uFF0C\u63D2\u4EF6\u62E5\u6709\u4E0E\u5185\u7F6E\u63D2\u4EF6\u76F8\u540C\u7684\u6743\u9650\uFF1A\u8BFB\u5199\u4F60\u7684\u6587\u4EF6\u3001\u6267\u884C shell \u547D\u4EE4\uFF0C\u4EE5\u53CA\u8BFB\u53D6\u548C\u4FEE\u6539\u53D1\u9001\u7ED9\u6A21\u578B\u7684\u8BF7\u6C42\u3002\u672A\u6807\u300C\u5DF2\u5BA1\u6838\u300D\u7684\u63D2\u4EF6\u672A\u7ECF\u5BA1\u6838\u3002";
|
|
185
172
|
/** Install rejection code → locale key, for the rejected-state code label
|
|
186
173
|
* (§7.2): every rejection the host can return has a human label here. */
|
|
187
174
|
export declare function rejectionCodeKey(code: InstallRejectionCode): ShopLocaleKey;
|
package/package.json
CHANGED