@deepseek-ai/dsh-experimental-client-ui-claude-code-mods 0.2.1-alpha.1

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/lib/index.js ADDED
@@ -0,0 +1,6 @@
1
+ //#region lib/types/index.js
2
+ /** Host marker for the browser-discovered Claude Code mods band; the browser export draws it. */
3
+ /** Host plugin body; behavior lives in the client export and the bridge's Remote. */
4
+ function apply() {}
5
+ //#endregion
6
+ export { apply };
@@ -0,0 +1,23 @@
1
+ import type { HostObservable, PropsLocale, PropsRuntime } from '@deepseek-ai/dsh-client-ui-slots';
2
+ import type { SurfaceSnapshot } from '@deepseek-ai/dsh-experimental-claude-code-mods/types';
3
+ import { NS } from './locales.ts';
4
+ /** What the browser plugin injects: the session's band snapshots and the press that goes back to the Host. */
5
+ export interface BandInjected {
6
+ hooks: {
7
+ band: HostObservable<SurfaceSnapshot | undefined>;
8
+ };
9
+ /** Run a button of the current drawing on the Host; resolves to the drawing after the press. */
10
+ press: (generation: number, actionId: string) => Promise<void>;
11
+ }
12
+ /** Full props of the band entry in the input dock. */
13
+ export type BandProps = PropsRuntime<'conversation.input.dock'> & {
14
+ press: BandInjected['press'];
15
+ useBand: <T>(select: (snapshot: SurfaceSnapshot | undefined) => T) => T;
16
+ } & PropsLocale<typeof NS>;
17
+ /**
18
+ * The band above the prompt: the session's current mod drawing, with buttons
19
+ * that run their `onPress` on the Host. Hotkeys are shown as hints; a press is
20
+ * a click.
21
+ */
22
+ export declare function Band({ press, useBand, t }: BandProps): import("react").JSX.Element | null;
23
+ //# sourceMappingURL=Band.d.ts.map
@@ -0,0 +1,12 @@
1
+ /** Browser entry: mounts the bridge's Remote and registers the band above the prompt. */
2
+ import type { Context } from '@deepseek-ai/cordis';
3
+ export { inject } from './mount.ts';
4
+ export type { BandInjected, BandProps } from './Band.tsx';
5
+ export type { ModsBandKey } from './locales.ts';
6
+ /**
7
+ * Register the mods band on the Client Context.
8
+ * @param ctx - Client Context with the declared `inject` services available.
9
+ * @returns the disposer that withdraws the band.
10
+ */
11
+ export declare function apply(ctx: Context): Promise<() => Promise<void>>;
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,20 @@
1
+ /** Web dictionaries for the chrome around a mod's band; the mods' own content is theirs. */
2
+ /** Locale namespace owned by the mods band. */
3
+ export declare const NS = "claude-code-mods";
4
+ /** Simplified Chinese dictionary and key source. */
5
+ export declare const zh: {
6
+ band: string;
7
+ pressing: string;
8
+ 'press.failed': string;
9
+ 'press.stale': string;
10
+ };
11
+ /** Mods band locale key union. */
12
+ export type ModsBandKey = keyof typeof zh;
13
+ /** English dictionary checked against the Chinese key set. */
14
+ export declare const en: {
15
+ band: string;
16
+ pressing: string;
17
+ 'press.failed': string;
18
+ 'press.stale': string;
19
+ };
20
+ //# sourceMappingURL=locales.d.ts.map
@@ -0,0 +1,20 @@
1
+ /** Source-safe browser registration of the mods band: the Remote stream behind a store, the dock entry, the press. */
2
+ import type { Context } from '@deepseek-ai/cordis';
3
+ import type { TypertRemoteContribution } from '@deepseek-ai/dsh-typert-protocol';
4
+ import { type ModsBandKey } from './locales.ts';
5
+ declare module '@deepseek-ai/dsh-client-ui-slots' {
6
+ interface LocaleNamespaceMap {
7
+ /** Chrome copy around a mod's band. */
8
+ 'claude-code-mods': ModsBandKey;
9
+ }
10
+ }
11
+ /** Required browser services: the Remote namespace, slots, and localized copy. */
12
+ export declare const inject: string[];
13
+ /**
14
+ * Mount the bridge's Remote contribution and register the band.
15
+ * @param ctx - browser Context with `remote`, `slots`, and `locale`.
16
+ * @param contribution - the generated `claudeCodeMods` Remote contribution.
17
+ * @returns the disposer that withdraws the band and the Remote mount.
18
+ */
19
+ export declare function mountModsBand(ctx: Context, contribution: TypertRemoteContribution): Promise<() => Promise<void>>;
20
+ //# sourceMappingURL=mount.d.ts.map
@@ -0,0 +1,4 @@
1
+ /** Host marker for the browser-discovered Claude Code mods band; the browser export draws it. */
2
+ /** Host plugin body; behavior lives in the client export and the bridge's Remote. */
3
+ export declare function apply(): void;
4
+ //# sourceMappingURL=index.d.ts.map
package/package.json ADDED
@@ -0,0 +1,83 @@
1
+ {
2
+ "name": "@deepseek-ai/dsh-experimental-client-ui-claude-code-mods",
3
+ "description": "Web band above the prompt for Claude Code mods: draws each session's mod tree and sends button presses back to the bridge",
4
+ "version": "0.2.1-alpha.1",
5
+ "publishConfig": {
6
+ "access": "public"
7
+ },
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "git+https://github.com/deepseek-ai/deepseek-harness.git",
11
+ "directory": "packages/experimental/client-ui-claude-code-mods"
12
+ },
13
+ "type": "module",
14
+ "main": "lib/index.js",
15
+ "types": "lib/types/index.d.ts",
16
+ "exports": {
17
+ ".": {
18
+ "types": "./lib/types/index.d.ts",
19
+ "default": "./lib/index.js"
20
+ },
21
+ "./client": {
22
+ "types": "./lib/types/client/index.d.ts",
23
+ "default": "./lib/client.js"
24
+ },
25
+ "./src/*": "./src/*",
26
+ "./package.json": "./package.json"
27
+ },
28
+ "dsh": {
29
+ "client": {
30
+ "inject": [
31
+ "@deepseek-ai/dsh-api-remotes",
32
+ "@deepseek-ai/dsh-api-session-controller",
33
+ "@deepseek-ai/dsh-client-locale",
34
+ "@deepseek-ai/dsh-client-ui-conversation",
35
+ "@deepseek-ai/dsh-client-ui-primitives"
36
+ ],
37
+ "platform": "web"
38
+ }
39
+ },
40
+ "files": [
41
+ "lib/index.js",
42
+ "lib/client.js",
43
+ "lib/types/**/*.d.ts"
44
+ ],
45
+ "license": "MIT",
46
+ "peerDependencies": {
47
+ "@deepseek-ai/cordis": "~4.0.5-alpha.1",
48
+ "@deepseek-ai/dsh-api-remotes": "0.2.1-alpha.1",
49
+ "@deepseek-ai/dsh-api-session-controller": "0.2.1-alpha.1",
50
+ "@deepseek-ai/dsh-client-locale": "0.2.1-alpha.1",
51
+ "@deepseek-ai/dsh-client-ui-conversation": "0.2.1-alpha.1",
52
+ "@deepseek-ai/dsh-client-ui-primitives": "0.2.1-alpha.1",
53
+ "@deepseek-ai/dsh-client-ui-renderer": "0.2.1-alpha.1",
54
+ "@deepseek-ai/dsh-client-ui-session": "0.2.1-alpha.1",
55
+ "@deepseek-ai/dsh-client-ui-slots": "0.2.1-alpha.1",
56
+ "@deepseek-ai/dsh-experimental-claude-code-mods": "0.2.1-alpha.1",
57
+ "@deepseek-ai/dsh-session": "0.2.1-alpha.1",
58
+ "@deepseek-ai/dsh-typert-protocol": "0.2.1-alpha.1"
59
+ },
60
+ "devDependencies": {
61
+ "@testing-library/react": "^16.1.0",
62
+ "@types/react": "~18.3.1",
63
+ "react": "^18.2.0",
64
+ "react-dom": "^18.2.0",
65
+ "@deepseek-ai/cordis": "~4.0.5-alpha.1",
66
+ "@deepseek-ai/dsh-api-remotes": "0.2.1-alpha.1",
67
+ "@deepseek-ai/dsh-api-session-controller": "0.2.1-alpha.1",
68
+ "@deepseek-ai/dsh-client-locale": "0.2.1-alpha.1",
69
+ "@deepseek-ai/dsh-client-test-runtime": "0.2.1-alpha.1",
70
+ "@deepseek-ai/dsh-client-ui-conversation": "0.2.1-alpha.1",
71
+ "@deepseek-ai/dsh-client-ui-primitives": "0.2.1-alpha.1",
72
+ "@deepseek-ai/dsh-client-ui-renderer": "0.2.1-alpha.1",
73
+ "@deepseek-ai/dsh-client-ui-slots": "0.2.1-alpha.1",
74
+ "@deepseek-ai/dsh-client-ui-session": "0.2.1-alpha.1",
75
+ "@deepseek-ai/dsh-experimental-claude-code-mods": "0.2.1-alpha.1",
76
+ "@deepseek-ai/dsh-session": "0.2.1-alpha.1",
77
+ "@deepseek-ai/dsh-typert-protocol": "0.2.1-alpha.1"
78
+ },
79
+ "scripts": {
80
+ "bundle": "tsdown",
81
+ "watch": "tsdown --watch"
82
+ }
83
+ }