mirror of
https://github.com/wu736139669/hapi.git
synced 2026-08-05 06:24:37 +00:00
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:
@@ -32,6 +32,8 @@ import {
|
||||
type RpcListCodexModelsResponse,
|
||||
type RpcListCursorModelsResponse,
|
||||
type RpcListOpencodeModelsResponse,
|
||||
type RpcListGrokModelsResponse,
|
||||
type RpcListGrokReasoningEffortOptionsResponse,
|
||||
type RpcListOpencodeReasoningEffortOptionsResponse,
|
||||
type RpcCursorModel,
|
||||
type RpcOpencodeModel,
|
||||
@@ -53,6 +55,8 @@ export type {
|
||||
RpcListCodexModelsResponse,
|
||||
RpcListCursorModelsResponse,
|
||||
RpcListOpencodeModelsResponse,
|
||||
RpcListGrokModelsResponse,
|
||||
RpcListGrokReasoningEffortOptionsResponse,
|
||||
RpcListOpencodeReasoningEffortOptionsResponse,
|
||||
RpcCursorModel,
|
||||
RpcOpencodeModel,
|
||||
@@ -763,6 +767,7 @@ export class SyncEngine {
|
||||
if (flavor === 'codex') return metadata.codexSessionId ?? null
|
||||
if (flavor === 'gemini') return metadata.geminiSessionId ?? null
|
||||
if (flavor === 'opencode') return metadata.opencodeSessionId ?? null
|
||||
if (flavor === 'grok') return metadata.grokSessionId ?? null
|
||||
if (flavor === 'cursor') return metadata.cursorSessionId ?? null
|
||||
if (flavor === 'kimi') return metadata.kimiSessionId ?? null
|
||||
if (flavor === 'pi') return metadata.piSessionId ?? null
|
||||
@@ -1469,6 +1474,7 @@ export class SyncEngine {
|
||||
&& (prev?.claudeSessionId ?? null) === (next.claudeSessionId ?? null)
|
||||
&& (prev?.geminiSessionId ?? null) === (next.geminiSessionId ?? null)
|
||||
&& (prev?.opencodeSessionId ?? null) === (next.opencodeSessionId ?? null)
|
||||
&& (prev?.grokSessionId ?? null) === (next.grokSessionId ?? null)
|
||||
&& (prev?.cursorSessionId ?? null) === (next.cursorSessionId ?? null)
|
||||
&& (prev?.piSessionId ?? null) === (next.piSessionId ?? null)
|
||||
&& (prev?.kimiSessionId ?? null) === (next.kimiSessionId ?? null)
|
||||
@@ -1615,6 +1621,18 @@ export class SyncEngine {
|
||||
return await this.rpcGateway.listOpencodeModelsForCwd(machineId, cwd)
|
||||
}
|
||||
|
||||
async listGrokModelsForCwd(machineId: string, cwd: string): Promise<RpcListGrokModelsResponse> {
|
||||
return await this.rpcGateway.listGrokModelsForCwd(machineId, cwd)
|
||||
}
|
||||
|
||||
async listGrokModelsForSession(sessionId: string): Promise<RpcListGrokModelsResponse> {
|
||||
return await this.rpcGateway.listGrokModelsForSession(sessionId)
|
||||
}
|
||||
|
||||
async listGrokReasoningEffortOptionsForSession(sessionId: string): Promise<RpcListGrokReasoningEffortOptionsResponse> {
|
||||
return await this.rpcGateway.listGrokReasoningEffortOptionsForSession(sessionId)
|
||||
}
|
||||
|
||||
/** Generic Pi RPC — delegates to rpcGateway.callPiRpc. */
|
||||
async callPiRpc<T = unknown>(sessionId: string, method: string, params?: Record<string, unknown>, timeoutMs?: number): Promise<T> {
|
||||
return await this.rpcGateway.callPiRpc<T>(sessionId, method, params, timeoutMs)
|
||||
|
||||
Reference in New Issue
Block a user