feat: add Grok Build support (#1030)

* test: define Grok Build integration behavior

* feat: add Grok Build agent integration

* test: cover Grok permissions and resume paths

* docs: add Grok Build setup guide

* fix: scope Grok ACP discovery to session cwd

* fix: align Grok permission UI semantics

* docs: clarify Grok runner setup

* test: require Grok create model and effort options

* feat: add Grok create model and effort pickers

* test: define Grok runtime parity behavior

* feat: add Grok runtime ACP controls and discovery

* fix: tighten Grok runtime controls

* fix: suppress nonfatal Grok title quota errors

* feat: support Grok Auto permission mode

* feat: forward ACP native session titles for Grok

* fix: guard Grok Windows shell arguments
This commit is contained in:
SSU-WEI HUANG
2026-07-13 08:41:30 +08:00
committed by GitHub
parent de07643828
commit b9eed7c071
92 changed files with 3796 additions and 63 deletions
@@ -154,6 +154,16 @@ describe('getModelOptionsForFlavor', () => {
{ value: 'claude-sonnet-4-5', label: 'claude-sonnet-4-5' }
])
})
it('returns only default/current for grok without falling back to Claude models', () => {
expect(getModelOptionsForFlavor('grok')).toEqual([
{ value: null, label: 'Default' }
])
expect(getModelOptionsForFlavor('grok', 'grok-4.5')).toEqual([
{ value: null, label: 'Default' },
{ value: 'grok-4.5', label: 'grok-4.5' }
])
})
})
describe('getNextModelForFlavor', () => {
@@ -219,6 +229,10 @@ describe('getNextModelForFlavor', () => {
expect(next).toBe('claude-sonnet-4-5')
})
it('keeps the current grok model on cycle (no Claude fallback)', () => {
expect(getNextModelForFlavor('grok', 'grok-4.5')).toBe('grok-4.5')
})
it('returns null for pi without a current model (no Claude fallback)', () => {
const next = getNextModelForFlavor('pi', null)
expect(next).toBeNull()