Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .changeset/astra-fable51.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
"@transloadit/node": minor
"transloadit": minor
"@transloadit/utils": patch
"@transloadit/mcp-server": patch
"@transloadit/types": minor
"@transloadit/zod": minor
---

Support GPT-6 Astra and Claude Fable 5.1, and use Astra for automatic chat and assembly-instruction compilation. Assembly compilation retains medium reasoning effort. Existing model identifiers remain supported.
12 changes: 12 additions & 0 deletions docs/prompts/2026-09-06-astra-fable51.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Astra and Fable 5.1 rollout review

PR: https://github.com/transloadit/node-sdk/pull/490

- [x] Review PR context; no open human review comments.
- [x] Council: add the missing release changeset, including companion packages.
- [x] Council: replace the stale Sol-default comment.
- [x] Council: record the backend dependency and block client rollout until API support is deployed.
- [x] `yarn check` passed; Node 20/22/24, E2E, build, and release dry-run CI passed on the implementation head.

This PR must not release new client defaults before the API2 sister PR is deployed. Current CI and
deployment/merge status remain on the PR.
10 changes: 5 additions & 5 deletions packages/node/src/alphalib/types/robots/ai-chat.ts
Original file line number Diff line number Diff line change
Expand Up @@ -551,6 +551,7 @@ export const MODEL_CAPABILITIES: Record<string, { pdf: boolean; image: boolean }
'anthropic/claude-opus-4-6': { pdf: true, image: true },
'anthropic/claude-opus-4-7': { pdf: true, image: true },
'anthropic/claude-fable-5': { pdf: true, image: true },
'anthropic/claude-fable-5-1': { pdf: true, image: true },
'anthropic/claude-sonnet-5': { pdf: true, image: true },
'openai/gpt-4.1-2025-04-14': { pdf: false, image: true },
'openai/chatgpt-4o-latest': { pdf: false, image: true },
Expand All @@ -564,17 +565,16 @@ export const MODEL_CAPABILITIES: Record<string, { pdf: boolean; image: boolean }
'openai/gpt-5.2-pro': { pdf: false, image: true },
'openai/gpt-5.5': { pdf: false, image: true },
'openai/gpt-5.6-sol': { pdf: false, image: true },
'openai/gpt-6-astra': { pdf: false, image: true },
'openai/gpt-5.4': { pdf: false, image: true },
'openai/gpt-5.4-mini': { pdf: false, image: true },
'openai/gpt-5.4-nano': { pdf: false, image: true },
'google/gemini-2.5-pro': { pdf: true, image: true },
'moonshot/kimi-k2': { pdf: false, image: false },
}

// Default model for /ai/chat when `model: "auto"` (or unset).
// 2026-07-09: default is GPT-5.6 Sol (intentional; aligns with our current recommended OpenAI
// flagship model). Keep this aligned with MODEL_CAPABILITIES.
export const AI_CHAT_DEFAULT_MODEL = 'openai/gpt-5.6-sol' satisfies keyof typeof MODEL_CAPABILITIES
/** Default /ai/chat model for `auto` or omitted selections; keep aligned with the API backend. */
export const AI_CHAT_DEFAULT_MODEL = 'openai/gpt-6-astra' satisfies keyof typeof MODEL_CAPABILITIES

const supportedModelsList = Object.keys(MODEL_CAPABILITIES)

Expand Down Expand Up @@ -614,7 +614,7 @@ export const robotAiChatInstructionsSchema = robotBase
.enum(['xhigh', 'high', 'medium', 'low'])
.optional()
.describe(
'Controls how much effort the model spends on reasoning. Higher values produce more thorough responses but cost more tokens. Applies to models that support extended thinking (OpenAI o-series, GPT-5.x, Anthropic Claude with thinking). If omitted, the model default is used.',
'Controls how much effort the model spends on reasoning. Higher values produce more thorough responses but cost more tokens. Applies to models that support extended thinking (OpenAI o-series, GPT-5.x, GPT-6, Anthropic Claude with thinking). If omitted, the model default is used.',
),
credentials: z
.union([z.string(), z.array(z.string())])
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ describe('compileAssemblyInstructionsFromPrompt', () => {
expect(aiSteps[0]).toMatchObject({
robot: '/ai/chat',
result: true,
model: 'openai/gpt-5.6-sol',
model: 'openai/gpt-6-astra',
reasoning_effort: 'medium',
format: 'json',
interpolate: { system_message: false },
Expand Down
2 changes: 1 addition & 1 deletion packages/utils/src/assemblyInstructionsCompiler.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
export const COMPILE_ASSEMBLY_INSTRUCTIONS_DEFAULT_MODEL = 'openai/gpt-5.6-sol'
export const COMPILE_ASSEMBLY_INSTRUCTIONS_DEFAULT_MODEL = 'openai/gpt-6-astra'
export const COMPILE_ASSEMBLY_INSTRUCTIONS_DEFAULT_REASONING_EFFORT = 'medium'
export const COMPILE_ASSEMBLY_INSTRUCTIONS_DEFAULT_MAX_ATTEMPTS = 3

Expand Down