|
|
@@ -17,6 +17,12 @@ import type {
|
|
|
} from '@deepseek-ai/dsh-session'
|
|
|
// Type-only: resolves ctx.sessionProjections for the optional unit child.
|
|
|
import type {} from '@deepseek-ai/dsh-session-projection'
|
|
|
+// The `title` projection-key declaration lives in the client outlet (its one
|
|
|
+// home). A PLAIN side-effect import, not `import type`: declaration emit
|
|
|
+// elides type-only imports, and the aggregate programs resolve this package
|
|
|
+// through its emitted declarations — the merge must survive in index.d.ts.
|
|
|
+// The imported module is types-only, so the runtime edge is an empty module.
|
|
|
+import './client/types.ts'
|
|
|
import { fallbackSessionTitle, normalizeSessionTitle } from './normalize.ts'
|
|
|
|
|
|
export { fallbackSessionTitle, normalizeSessionTitle, truncateTitleUtf8 } from './normalize.ts'
|
|
|
@@ -103,17 +109,6 @@ declare module '@deepseek-ai/dsh-session' {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-declare module '@deepseek-ai/dsh-session-projection/types' {
|
|
|
- interface SessionProjectionMap {
|
|
|
- /**
|
|
|
- * The session's current normalized title — the latest `session/title`
|
|
|
- * event's text (last-wins), or `null` before the first title lands. A
|
|
|
- * plain string: the shape the client list rows consume.
|
|
|
- */
|
|
|
- title: string | null
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
/** Per-session settlement tails for title-capability out-of-band writes. */
|
|
|
const SESSION_TITLE_WRITE_TAILS = new WeakMap<Session, Promise<void>>()
|
|
|
|