@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 CHANGED
@@ -1,3 +1,60 @@
1
- # Temporary Holding Version
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
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
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
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
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
+ }