diff options
| author | Adam Malczewski <[email protected]> | 2026-06-21 16:56:42 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-06-21 16:56:42 +0900 |
| commit | ea0e938eca3072649dc8707c999ec00cf87b986a (patch) | |
| tree | 41f96ed517fe779ed612fc4cb3e8359a841ad088 /packages/session-orchestrator/src | |
| parent | 36e950ba2cd2591e86f0dcc898f740481c59d912 (diff) | |
| download | dispatch-ea0e938eca3072649dc8707c999ec00cf87b986a.tar.gz dispatch-ea0e938eca3072649dc8707c999ec00cf87b986a.zip | |
feat(transport): CLI endpoints + conversation.open broadcast (Wave 2)
transport-http: GET /conversations (list with ?q= prefix filter),
GET /conversations/:id/last (blocks until turn settles, returns last AI
text), POST /conversations/:id/open (emits conversationOpened hook),
PUT /conversations/:id/title (set title). emit threaded from host.emit.
extractLastAssistantText pure helper. 21 new tests (166 total).
transport-ws: subscribes to conversationOpened hook, broadcasts
ConversationOpenMessage to all connected WS clients. 2 new tests.
session-orchestrator: conversationOpened hook descriptor (exported).
Diffstat (limited to 'packages/session-orchestrator/src')
| -rw-r--r-- | packages/session-orchestrator/src/index.ts | 2 | ||||
| -rw-r--r-- | packages/session-orchestrator/src/orchestrator.ts | 14 |
2 files changed, 16 insertions, 0 deletions
diff --git a/packages/session-orchestrator/src/index.ts b/packages/session-orchestrator/src/index.ts index afec2b4..3d8ad18 100644 --- a/packages/session-orchestrator/src/index.ts +++ b/packages/session-orchestrator/src/index.ts @@ -1,8 +1,10 @@ export { extension, manifest } from "./extension.js"; export { type ConversationClosedPayload, + type ConversationOpenedPayload, cacheWarmHandle, conversationClosed, + conversationOpened, createSessionOrchestrator, createWarmService, type EnqueueInput, diff --git a/packages/session-orchestrator/src/orchestrator.ts b/packages/session-orchestrator/src/orchestrator.ts index 3a74c2d..82ca59e 100644 --- a/packages/session-orchestrator/src/orchestrator.ts +++ b/packages/session-orchestrator/src/orchestrator.ts @@ -97,6 +97,20 @@ export interface ConversationClosedPayload { export const conversationClosed: EventHookDescriptor<ConversationClosedPayload> = defineEventHook<ConversationClosedPayload>("session-orchestrator/conversation-closed"); +/** Payload for the conversationOpened bus event. */ +export interface ConversationOpenedPayload { + readonly conversationId: string; +} + +/** + * Fired when a client requests to "open" a conversation (e.g. the CLI `--open` + * flag). Transport-ws subscribes and broadcasts a `conversation.open` WS + * message to all connected frontend clients. The frontend decides whether to + * open/focus a tab — the backend just signals. + */ +export const conversationOpened: EventHookDescriptor<ConversationOpenedPayload> = + defineEventHook<ConversationOpenedPayload>("session-orchestrator/conversation-opened"); + /** Payload for the warmCompleted bus event. */ export interface WarmCompletedPayload { readonly conversationId: string; |
