@cheezmil/aek-base 0.0.0-stage → 1.0.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/README.md +59 -2
- package/lib/client.js +19 -0
- package/lib/index.js +28 -0
- package/lib/types/client/Brand.d.ts +13 -0
- package/lib/types/client/index.d.ts +13 -0
- package/lib/types/index.d.ts +19 -0
- package/package.json +60 -4
package/README.md
CHANGED
|
@@ -1,3 +1,60 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
description: "AEK base identity layer — rebrands the dsh web UI sidebar and startup announcement for AEK deployments."
|
|
3
|
+
kind: "package-reference"
|
|
4
|
+
---
|
|
2
5
|
|
|
3
|
-
|
|
6
|
+
# @cheezmil/aek-base
|
|
7
|
+
|
|
8
|
+
The AEK base identity layer. It rebrands two user-visible surfaces of a dsh web
|
|
9
|
+
profile so they read as AEK instead of DeepSeek Harness:
|
|
10
|
+
|
|
11
|
+
- the **sidebar brand** — fills the `sidebar.brand.mark` and `sidebar.brand.name`
|
|
12
|
+
slots with the AEK orange-slice mark and the `AEK` name, replacing the shell's
|
|
13
|
+
fish-mark and `brand.localBuild` fallback;
|
|
14
|
+
- the **startup announcement** — prints the `aek web: <url>` readiness line,
|
|
15
|
+
replacing the dsh web-app bundle's own `dsh web:` line (which the web profile
|
|
16
|
+
suppresses with `printUrl: false`).
|
|
17
|
+
|
|
18
|
+
The document title is rebranded separately through the `DSH_CLIENT_TITLE` build
|
|
19
|
+
environment value, which `AppFrame` already reads. This package has no runtime
|
|
20
|
+
state and does not affect model requests.
|
|
21
|
+
|
|
22
|
+
## Use this package
|
|
23
|
+
|
|
24
|
+
Install it into a dsh web profile and register it in the profile's cordis patch:
|
|
25
|
+
|
|
26
|
+
```yaml
|
|
27
|
+
- id: aek-base
|
|
28
|
+
name: '@cheezmil/aek-base'
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Suppress the dsh bundle's own URL line so only the AEK line prints:
|
|
32
|
+
|
|
33
|
+
```yaml
|
|
34
|
+
- id: web-app
|
|
35
|
+
name: '@deepseek-ai/dsh-web-app'
|
|
36
|
+
config:
|
|
37
|
+
printUrl: false
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Understand the implementation
|
|
41
|
+
|
|
42
|
+
The host half (`src/index.ts`) injects the `connection` service and prints
|
|
43
|
+
`aek web: <authenticatedUrl>` once, mirroring the web-app bundle's readiness
|
|
44
|
+
line. The client half (`src/client/index.ts`) injects the `slots` service and
|
|
45
|
+
registers the AEK mark and name into the sidebar brand slots as one
|
|
46
|
+
declaration-aware set, the same pattern as `@deepseek-ai/dsh-client-ui-brand-official`.
|
|
47
|
+
|
|
48
|
+
## Model Experience
|
|
49
|
+
|
|
50
|
+
No effect on model requests, token usage, or KV-cache behavior. The package
|
|
51
|
+
changes only browser presentation and process stdout.
|
|
52
|
+
|
|
53
|
+
## Known Limitations and Deferred Work
|
|
54
|
+
|
|
55
|
+
- The AEK name is plain localized text, not an SVG wordmark; a designed
|
|
56
|
+
wordmark can replace `AekBrandName` later.
|
|
57
|
+
- The host half prints as soon as the `connection` service mounts; it does not
|
|
58
|
+
wait for the full Loader tree to settle (sufficient for a human-readable
|
|
59
|
+
readiness line; a supervisor that RPCs on seeing the line should wait for
|
|
60
|
+
the dsh bundle's own loader-gated signal).
|
package/lib/client.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
window.__ModuleLoader__.load({
|
|
2
|
+
id: "@cheezmil/aek-base",
|
|
3
|
+
factory: (require) => {
|
|
4
|
+
var module = { exports: {} };
|
|
5
|
+
var exports = module.exports;
|
|
6
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
7
|
+
//#region src/client/index.ts
|
|
8
|
+
/** aek-home owns the surface; aek-base contributes no client UI. */
|
|
9
|
+
const inject = [];
|
|
10
|
+
/** Identity no-op: the AEK brand now lives in aek-home's own surface. */
|
|
11
|
+
function apply(_ctx) {}
|
|
12
|
+
//#endregion
|
|
13
|
+
exports.apply = apply;
|
|
14
|
+
exports.inject = inject;
|
|
15
|
+
return module.exports;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=client.js.map
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
//#region lib/types/index.js
|
|
2
|
+
/**
|
|
3
|
+
* AEK base identity layer, host half. Prints the `aek web:` readiness line.
|
|
4
|
+
* The dsh web-app bundle's own `dsh web:` line is suppressed via
|
|
5
|
+
* `printUrl: false` in the web profile's cordis patch, so AEK surfaces the
|
|
6
|
+
* AEK-prefixed URL instead. Set `DSH_CLIENT_TITLE` at build time to rebrand
|
|
7
|
+
* the document title; this host half owns the process-stdout announcement.
|
|
8
|
+
* @module @cheezmil/aek-base
|
|
9
|
+
*/
|
|
10
|
+
/** Stable Cordis plugin name. */
|
|
11
|
+
const name = "aek-base";
|
|
12
|
+
/** Services required before the AEK URL line can print. */
|
|
13
|
+
const inject = ["webServer"];
|
|
14
|
+
const ANNOUNCED_ROOTS = /* @__PURE__ */ new WeakSet();
|
|
15
|
+
/**
|
|
16
|
+
* Print the `aek web:` readiness line once the connection service mounts.
|
|
17
|
+
* @param ctx - plugin context carrying the webServer service.
|
|
18
|
+
*/
|
|
19
|
+
function apply(ctx) {
|
|
20
|
+
ctx.inject(["connection"], (connectionCtx) => {
|
|
21
|
+
if (ANNOUNCED_ROOTS.has(connectionCtx.root)) return;
|
|
22
|
+
const url = connectionCtx.connection.authenticatedUrl(ctx.webServer.getOrigin());
|
|
23
|
+
ANNOUNCED_ROOTS.add(connectionCtx.root);
|
|
24
|
+
console.log(`aek web: ${url}`);
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
//#endregion
|
|
28
|
+
export { apply, inject, name };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { SidebarBrandMarkOwnerProps } from '@deepseek-ai/dsh-client-ui-sidebar/client';
|
|
2
|
+
/**
|
|
3
|
+
* The AEK brand mark — an orange slice, at the requested square edge.
|
|
4
|
+
* @param props.size - square edge in pixels.
|
|
5
|
+
* @returns the orange-slice svg (aria-hidden; pair with the name for accessibility).
|
|
6
|
+
*/
|
|
7
|
+
export declare function AekBrandMark({ size }: SidebarBrandMarkOwnerProps): import("react").JSX.Element;
|
|
8
|
+
/**
|
|
9
|
+
* The AEK brand name wordmark.
|
|
10
|
+
* @returns the AEK name as localized text.
|
|
11
|
+
*/
|
|
12
|
+
export declare function AekBrandName(): import("react").JSX.Element;
|
|
13
|
+
//# sourceMappingURL=Brand.d.ts.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AEK base identity layer, client half. With aek-home as the direct-render
|
|
3
|
+
* application root and the dsh sidebar/shell disabled, there are no sidebar
|
|
4
|
+
* brand slots to fill; the client half is an identity no-op. The host half
|
|
5
|
+
* still prints `aek web:` and pins the AEK home dir.
|
|
6
|
+
* @module @cheezmil/aek-base/src/client/index
|
|
7
|
+
*/
|
|
8
|
+
import type { Context as ClientContext } from '@deepseek-ai/cordis';
|
|
9
|
+
/** aek-home owns the surface; aek-base contributes no client UI. */
|
|
10
|
+
export declare const inject: readonly string[];
|
|
11
|
+
/** Identity no-op: the AEK brand now lives in aek-home's own surface. */
|
|
12
|
+
export declare function apply(_ctx: ClientContext): void;
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AEK base identity layer, host half. Prints the `aek web:` readiness line.
|
|
3
|
+
* The dsh web-app bundle's own `dsh web:` line is suppressed via
|
|
4
|
+
* `printUrl: false` in the web profile's cordis patch, so AEK surfaces the
|
|
5
|
+
* AEK-prefixed URL instead. Set `DSH_CLIENT_TITLE` at build time to rebrand
|
|
6
|
+
* the document title; this host half owns the process-stdout announcement.
|
|
7
|
+
* @module @cheezmil/aek-base
|
|
8
|
+
*/
|
|
9
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
10
|
+
/** Stable Cordis plugin name. */
|
|
11
|
+
export declare const name = "aek-base";
|
|
12
|
+
/** Services required before the AEK URL line can print. */
|
|
13
|
+
export declare const inject: string[];
|
|
14
|
+
/**
|
|
15
|
+
* Print the `aek web:` readiness line once the connection service mounts.
|
|
16
|
+
* @param ctx - plugin context carrying the webServer service.
|
|
17
|
+
*/
|
|
18
|
+
export declare function apply(ctx: Context): void;
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,62 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cheezmil/aek-base",
|
|
3
|
-
"
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"description": "AEK base identity layer: pins the AEK home dir and prints the `aek web:` startup line; the client half is an identity no-op (aek-home owns the surface)",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"publishConfig": {
|
|
6
|
+
"access": "public"
|
|
7
|
+
},
|
|
8
|
+
"type": "module",
|
|
9
|
+
"main": "lib/index.js",
|
|
10
|
+
"types": "lib/types/index.d.ts",
|
|
11
|
+
"exports": {
|
|
12
|
+
".": {
|
|
13
|
+
"types": "./lib/types/index.d.ts",
|
|
14
|
+
"default": "./lib/index.js"
|
|
15
|
+
},
|
|
16
|
+
"./client": {
|
|
17
|
+
"types": "./lib/types/client/index.d.ts",
|
|
18
|
+
"default": "./lib/client.js"
|
|
19
|
+
},
|
|
20
|
+
"./types": {
|
|
21
|
+
"types": "./lib/types/index.d.ts",
|
|
22
|
+
"default": "./lib/index.js"
|
|
23
|
+
},
|
|
24
|
+
"./src/*": "./src/*",
|
|
25
|
+
"./package.json": "./package.json"
|
|
26
|
+
},
|
|
27
|
+
"dsh": {
|
|
28
|
+
"client": {
|
|
29
|
+
"inject": [],
|
|
30
|
+
"platform": "web"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"scripts": {
|
|
34
|
+
"bundle": "tsdown",
|
|
35
|
+
"watch": "tsdown --watch"
|
|
36
|
+
},
|
|
37
|
+
"license": "MIT",
|
|
38
|
+
"peerDependencies": {
|
|
39
|
+
"@deepseek-ai/cordis": ">=4.0.0",
|
|
40
|
+
"@deepseek-ai/cosmokit": ">=1.8.0"
|
|
41
|
+
},
|
|
42
|
+
"devDependencies": {
|
|
43
|
+
"@deepseek-ai/cordis": "^4.0.5",
|
|
44
|
+
"@deepseek-ai/cosmokit": "^1.8.6",
|
|
45
|
+
"@deepseek-ai/dsh-client-connection": "workspace:*",
|
|
46
|
+
"@deepseek-ai/dsh-client-ui-primitives": "workspace:*",
|
|
47
|
+
"@deepseek-ai/dsh-client-ui-renderer": "workspace:*",
|
|
48
|
+
"@deepseek-ai/dsh-client-ui-sidebar": "workspace:*",
|
|
49
|
+
"@deepseek-ai/dsh-host-webserver": "workspace:*",
|
|
50
|
+
"react": "^18.2.0",
|
|
51
|
+
"react-dom": "^18.2.0"
|
|
52
|
+
},
|
|
53
|
+
"files": [
|
|
54
|
+
"lib/index.js",
|
|
55
|
+
"lib/client.js",
|
|
56
|
+
"lib/types/**/*.d.ts"
|
|
57
|
+
],
|
|
58
|
+
"aek": {
|
|
59
|
+
"type": "dsh-bundle",
|
|
60
|
+
"description": "AEK identity layer: re-exports Context/Volatile/ClientContext types and prints the aek web: readiness line"
|
|
61
|
+
}
|
|
62
|
+
}
|