diff options
| author | Adam Malczewski <[email protected]> | 2026-06-27 03:40:38 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-06-27 03:40:38 +0900 |
| commit | d5633cf6e007eaf8255a44529a638d2466a74ba3 (patch) | |
| tree | 14fe72f5b585eb72c763073b4e7022b914bdbafb /packages/kernel | |
| parent | ad9d135e583c99a0d93327115defa43187cde1c3 (diff) | |
| download | dispatch-d5633cf6e007eaf8255a44529a638d2466a74ba3.tar.gz dispatch-d5633cf6e007eaf8255a44529a638d2466a74ba3.zip | |
feat(vision-handoff): implement vision for capable models and universal vision handoff
Diffstat (limited to 'packages/kernel')
| -rw-r--r-- | packages/kernel/src/contracts/conversation.ts | 2 | ||||
| -rw-r--r-- | packages/kernel/src/contracts/index.ts | 2 | ||||
| -rw-r--r-- | packages/kernel/src/contracts/provider.ts | 10 |
3 files changed, 14 insertions, 0 deletions
diff --git a/packages/kernel/src/contracts/conversation.ts b/packages/kernel/src/contracts/conversation.ts index f074c52..80da86e 100644 --- a/packages/kernel/src/contracts/conversation.ts +++ b/packages/kernel/src/contracts/conversation.ts @@ -12,6 +12,8 @@ export type { ConversationMeta, ConversationStatus, ErrorChunk, + ImageChunk, + ImageInput, Role, StepId, StepMetrics, diff --git a/packages/kernel/src/contracts/index.ts b/packages/kernel/src/contracts/index.ts index 09e0a56..28e0a0b 100644 --- a/packages/kernel/src/contracts/index.ts +++ b/packages/kernel/src/contracts/index.ts @@ -19,6 +19,8 @@ export type { ConversationMeta, ConversationStatus, ErrorChunk, + ImageChunk, + ImageInput, Role, StepId, StepMetrics, diff --git a/packages/kernel/src/contracts/provider.ts b/packages/kernel/src/contracts/provider.ts index b6dc8ca..3137073 100644 --- a/packages/kernel/src/contracts/provider.ts +++ b/packages/kernel/src/contracts/provider.ts @@ -114,6 +114,16 @@ export interface ModelInfo { readonly displayName?: string; /** The model's max context window in tokens (e.g. 200000). Optional — providers that don't report it leave it undefined. */ readonly contextWindow?: number; + /** + * Whether this model can natively accept image input (vision/multimodal). + * When `true`, image chunks in a user message are passed through to the + * provider serialized to its image-content format. When `false`/absent, the + * orchestrator's vision handoff transcribes images to text (via a + * vision-capable model) before the model sees them. Optional — providers + * that cannot detect it leave it undefined (treated as non-vision); a + * provider that knows a model is vision-capable sets it `true`. + */ + readonly vision?: boolean; } /** |
