fix: Patch headless mode GPT-5 (#88)

Co-authored-by: cpacker <packercharles@gmail.com>
This commit is contained in:
Kevin Lin
2025-11-16 20:48:50 -08:00
committed by GitHub
parent 8df4c08510
commit 754db3b273
8 changed files with 75 additions and 46 deletions

View File

@@ -12,6 +12,7 @@ import type {
import type { LlmConfig } from "@letta-ai/letta-client/resources/models/models";
import { Box, Static } from "ink";
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
import type { ApprovalResult } from "../agent/approval-execution";
import { getResumeData } from "../agent/check-approval";
import { getClient } from "../agent/client";
import { sendMessageStream } from "../agent/message";
@@ -19,6 +20,7 @@ import { linkToolsToAgent, unlinkToolsFromAgent } from "../agent/modify";
import { SessionStats } from "../agent/stats";
import type { ApprovalContext } from "../permissions/analyzer";
import { permissionMode } from "../permissions/mode";
import type { ToolExecutionResult } from "../tools/manager";
import {
analyzeToolApproval,
checkToolPermission,
@@ -148,13 +150,13 @@ export default function App({
| { type: "deny"; approval: ApprovalRequest; reason: string }
>
>([]);
const [isExecutingTool, setIsExecutingTool] = useState(false);
const [isExecutingTool, _setIsExecutingTool] = useState(false);
// Track auto-handled results to combine with user decisions
const [autoHandledResults, setAutoHandledResults] = useState<
Array<{
toolCallId: string;
result: any;
result: ToolExecutionResult;
}>
>([]);
const [autoDeniedApprovals, setAutoDeniedApprovals] = useState<
@@ -1291,7 +1293,7 @@ export default function App({
await processConversation([
{
type: "approval",
approvals: allResults as any, // Type assertion: union type with optional fields is compatible at runtime
approvals: allResults as ApprovalResult[],
},
]);
},
@@ -1759,12 +1761,20 @@ export default function App({
<ApprovalDialog
approvals={
pendingApprovals[approvalResults.length]
? [pendingApprovals[approvalResults.length]!]
? ([
pendingApprovals[
approvalResults.length
] as ApprovalRequest,
] as ApprovalRequest[])
: []
}
approvalContexts={
approvalContexts[approvalResults.length]
? [approvalContexts[approvalResults.length]!]
? ([
approvalContexts[
approvalResults.length
] as ApprovalContext,
] as ApprovalContext[])
: []
}
progress={{