Merge remote-tracking branch 'github/master' into xtr/trajectory-inspection-ui

# Conflicts:
#	packages/client/runtime/src/client/sessions/session.ts
#	packages/client/ui-conversation/README.i18n.yaml
#	packages/client/ui-conversation/README.md
#	packages/client/ui-conversation/README.zh.md
This commit is contained in:
_Kerman
2026-07-29 09:48:24 +08:00
356 files changed
+8801 -1511

No files matched your search

@@ -17,14 +17,16 @@ import { ThemePresenter } from './theme-presenter.ts'
// Contract surface only (export-convergence rule: cross-package consumers
// keep a symbol exported; test-only/package-internal symbols live off /src).
// LayoutService: the ctx.layout service class (consumers type against it).
// ILayout: the ctx.layout face consumers and test fakes type against.
// OwnerShare contracts below are the render-side halves registrants compose
// against; the frame components and the store factory are package-internal.
export { LayoutService } from './service.ts'
export type { ILayout } from './service.ts'
declare module 'cordis' {
interface Context {
layout: LayoutService
/** The outward face only; the concrete service stays inside this plugin. */
layout: import('./service.ts').ILayout
}
}
@@ -14,8 +14,23 @@ import type { createLayoutStore } from './stores.ts'
/** The layout store's bound action set (framework-baked, draft params peeled). */
export type PanelActions = BoundActions<ReturnType<typeof createLayoutStore>>
/**
* The outward layout face (`ctx.layout`): the panel transitions other
* plugins may trigger — and exactly what a test fake must supply. The
* attachPanels wiring hook stays on the concrete class (root-entry assembly
* only).
*/
export interface ILayout {
/** Toggle the sidebar panel (closed ⟷ contract default width). */
toggleSidebar(): void
/** Open the details panel (no-op when already open). */
openDetails(): void
/** Close the details panel. */
closeDetails(): void
}
/** Cross-plugin panel-action face (ctx.layout). */
export class LayoutService {
export class LayoutService implements ILayout {
#panels: PanelActions | undefined
/**