refactor(gui): source SessionProjectionMap from the interface package's pure-type outlet

Swap the client runtime's parallel-construction placeholder for
import type from @deepseek-ai/dsh-session-projection/types — the zero-import
outlet, never the package root, whose dsh-agent → dsh-session chain would drag
the host Context.sessions merge into the client program. One type table end to
end (host provider, wire block, client cell, React hook); the spec's test key
now declare-merges the real module. Adds the workspace dep and the tsconfig
project reference.
This commit is contained in:
imccyu
2026-07-27 16:15:29 +08:00
parent 70cc77eab0
commit 95a3794e68
4 changed files with 15 additions and 15 deletions
@@ -8,21 +8,17 @@
* (useProjection) happens in web-react.
*/
import type { SessionEvent } from '@deepseek-ai/dsh-session/types'
import type { SessionProjectionMap } from '@deepseek-ai/dsh-session-projection/types'
import type { ObservableSnapshot } from '../contract/store.ts'
import { Notifier } from './notifier.ts'
/**
* The single projection type table, typed end to end (host provider, wire
* block, client cell, React hook). Domain packages merge their keys in.
*
* TODO(gui): switch to `import type { SessionProjectionMap } from
* '@deepseek-ai/dsh-session-projection'` (pure type-only edge) once the host
* interface package lands; this placeholder is structurally identical and
* exists only because the two bases are built in parallel. No second
* client-side "views" table — one map end to end (user ruling, RFC
* Alternatives).
*/
export interface SessionProjectionMap {}
// The single projection type table, typed end to end (host provider, wire
// block, client cell, React hook) — the interface package's pure-type outlet
// (`/types`, zero imports), never the package root: the root's dsh-agent →
// dsh-session chain would drag the host `Context.sessions` merge into the
// client program (one program must not hold both sides). No second
// client-side "views" table (user ruling, RFC Alternatives).
export type { SessionProjectionMap } from '@deepseek-ai/dsh-session-projection/types'
/**
* Minimal validating-schema face (zod-compatible: `ZodType<T>` satisfies it