refactor: apply repository naming contract

Apply the accepted pre-release package, service, type, directory, and role renames as one repository-wide change.
This commit is contained in:
Tianyi Cui
2026-08-13 00:36:22 +08:00
parent 101df7cf58
commit a2d0f7f411
3281 changed files with 21730 additions and 21592 deletions

View File

@@ -16,7 +16,7 @@
* negative "not a client package" verdict) is cached per name and never
* expires — plugin-set changes take effect on restart; bundle content
* changes reach the graph only through
* {@link ClientModuleHostService.rebuilt}.
* {@link ClientModuleRegistry.rebuilt}.
* @module @deepseek-ai/dsh-client-modules
*/
@@ -39,7 +39,7 @@ export type {
declare module '@deepseek-ai/cordis' {
interface Context {
/** The web plugin table (provided by the client-modules node half). */
clientModuleHost: ClientModuleHostService
clientModules: ClientModuleRegistry
}
}
@@ -181,8 +181,8 @@ export function injectBootManifest(html: string, graph: WebBootGraph): string {
* already-loaded entries aggregates into one loud throw (FAILED fiber; the
* boot activation audit reports it).
*/
export class ClientModuleHostService extends Service {
static inject = ['httpServer', 'loader']
export class ClientModuleRegistry extends Service {
static inject = ['webServer', 'loader']
private readonly table = new Map<string, WebPluginRecord>()
// Negative verdicts (unresolvable specifier — builtins like cordis:include,
@@ -198,10 +198,10 @@ export class ClientModuleHostService extends Service {
/**
* Build the service: subscribe, seed, and run the activation flush.
* @param ctx - plugin context carrying httpServer and loader.
* @param ctx - plugin context carrying webServer and loader.
*/
constructor(ctx: Context) {
super(ctx, 'clientModuleHost')
super(ctx, 'clientModules')
// Resolution anchor: the config tree's baseUrl (the cordis.yml directory,
// whose package declares every composed plugin as a dependency). The
// modules package's own URL would miss sibling packages under pnpm's
@@ -239,11 +239,11 @@ export class ClientModuleHostService extends Service {
}
ctx.effect(
() => ctx.httpServer.register({ kind: 'prefix', path: '/plugins', handler: this.serveBundle }),
() => ctx.webServer.register({ kind: 'prefix', path: '/plugins', handler: this.serveBundle }),
'client-modules: bundle route',
)
ctx.effect(
() => ctx.httpServer.tapIndex(html => injectBootManifest(html, this.composed)),
() => ctx.webServer.tapIndex(html => injectBootManifest(html, this.composed)),
'client-modules: boot manifest injection',
)
}
@@ -457,4 +457,4 @@ export class ClientModuleHostService extends Service {
}
}
export default ClientModuleHostService
export default ClientModuleRegistry

View File

@@ -25,7 +25,7 @@ export const inject = ['invariants']
*/
const install: InvariantInstaller = (ctx, fail) => {
ctx.on('internal/plugin', () => {
const host = ctx.get('clientModuleHost')
const host = ctx.get('clientModules')
if (host === undefined) return // browser side / host without the node half: nothing to audit
for (const row of host.graph().entries) {
if (host.clientPath(row.id) === undefined) {

View File

@@ -7,8 +7,8 @@ import { dirname, join } from 'node:path'
import { pathToFileURL } from 'node:url'
import { Context } from '@deepseek-ai/cordis'
import { afterEach, describe, expect, it } from 'vitest'
import type { HttpServerService, WebRoute } from '@deepseek-ai/dsh-host-webserver'
import { ClientModuleHostService } from '../src/index.ts'
import type { WebServer, WebRoute } from '@deepseek-ai/dsh-host-webserver'
import { ClientModuleRegistry } from '../src/index.ts'
let root: string | undefined
@@ -38,7 +38,7 @@ function writePackage(
}
/** Construct the node-half service and capture its plugin-bundle route. */
function constructWithRoute(packageNames: string[]): { service: ClientModuleHostService; route: WebRoute } {
function constructWithRoute(packageNames: string[]): { service: ClientModuleRegistry; route: WebRoute } {
const ctx = new Context()
ctx.baseUrl = pathToFileURL(root!).href + '/'
ctx.provide('loader', {
@@ -49,7 +49,7 @@ function constructWithRoute(packageNames: string[]): { service: ClientModuleHost
},
})
let route: WebRoute | undefined
const httpServer: Pick<HttpServerService, 'port' | 'register' | 'tapIndex'> = {
const webServer: Pick<WebServer, 'port' | 'register' | 'tapIndex'> = {
port: 0,
register: (candidate) => {
if (candidate.path === '/plugins') route = candidate
@@ -57,14 +57,14 @@ function constructWithRoute(packageNames: string[]): { service: ClientModuleHost
},
tapIndex: () => () => {},
}
ctx.provide('httpServer', httpServer as HttpServerService)
const service = new ClientModuleHostService(ctx)
ctx.provide('webServer', webServer as WebServer)
const service = new ClientModuleRegistry(ctx)
if (route === undefined) throw new Error('client bundle route was not registered')
return { service, route }
}
/** Construct the node-half service over the enabled fixture entries. */
function construct(packageNames: string[]): ClientModuleHostService {
function construct(packageNames: string[]): ClientModuleRegistry {
return constructWithRoute(packageNames).service
}

View File

@@ -11,6 +11,6 @@
{ "path": "../../../vendor/cordis" },
{ "path": "../../../vendor/loader" },
{ "path": "../../host/webserver" },
{ "path": "../../support/invariants" }
{ "path": "../../runtime-diagnostics/invariants" }
]
}