11import { Text } from "@components/text" ;
2+ import { DEFAULT_CLAUDE_EXECUTION_MODE } from "@posthog/core/sessions/executionModes" ;
23import {
34 countUserMessages ,
45 getSessionActivityPhase ,
56} from "@posthog/core/sessions/sessionActivity" ;
67import { isTaskRunning } from "@posthog/core/tasks/taskArchive" ;
7- import type { Task } from "@posthog/shared" ;
8+ import {
9+ DEFAULT_GATEWAY_MODEL ,
10+ DEFAULT_REASONING_EFFORT ,
11+ type ExecutionMode ,
12+ getReasoningEffortOptions ,
13+ type SupportedReasoningEffort ,
14+ serializeCloudPrompt ,
15+ type Task ,
16+ } from "@posthog/shared" ;
817import { useQueryClient } from "@tanstack/react-query" ;
918import * as Haptics from "expo-haptics" ;
1019import { useLocalSearchParams , useRouter } from "expo-router" ;
@@ -20,24 +29,14 @@ import { useReanimatedKeyboardAnimation } from "react-native-keyboard-controller
2029import Animated , { useAnimatedStyle } from "react-native-reanimated" ;
2130import { FloatingBackButton } from "@/components/FloatingBackButton" ;
2231import { usePreferencesStore } from "@/features/preferences/stores/preferencesStore" ;
23- import { runTaskInCloud } from "@/features/tasks/api" ;
2432import { CustomImageBadge } from "@/features/tasks/components/CustomImageBadge" ;
2533import { FloatingTaskHeader } from "@/features/tasks/components/FloatingTaskHeader" ;
2634import { PrDiffStatsBadge } from "@/features/tasks/components/PrDiffStatsBadge" ;
2735import { PrStatusBadge } from "@/features/tasks/components/PrStatusBadge" ;
2836import { StopRunButton } from "@/features/tasks/components/StopRunButton" ;
2937import { TaskSessionView } from "@/features/tasks/components/TaskSessionView" ;
3038import { buildCloudPromptBlocks } from "@/features/tasks/composer/attachments/buildCloudPrompt" ;
31- import { serializeCloudPrompt } from "@/features/tasks/composer/attachments/cloudPrompt" ;
3239import type { PendingAttachment } from "@/features/tasks/composer/attachments/types" ;
33- import {
34- DEFAULT_EXECUTION_MODE ,
35- DEFAULT_MODEL ,
36- DEFAULT_REASONING ,
37- type ExecutionMode ,
38- modelSupportsReasoning ,
39- type ReasoningEffort ,
40- } from "@/features/tasks/composer/options" ;
4140import { QueuedMessagesDock } from "@/features/tasks/composer/QueuedMessagesDock" ;
4241import { TaskChatComposer } from "@/features/tasks/composer/TaskChatComposer" ;
4342import {
@@ -169,10 +168,10 @@ export default function TaskDetailScreen() {
169168 string | undefined
170169 > ( ) ;
171170 const composerMode : ExecutionMode =
172- composerConfig ?. mode ?? DEFAULT_EXECUTION_MODE ;
173- const composerModel = composerConfig ?. model ?? DEFAULT_MODEL ;
174- const composerReasoning : ReasoningEffort =
175- composerConfig ?. reasoning ?? DEFAULT_REASONING ;
171+ composerConfig ?. mode ?? DEFAULT_CLAUDE_EXECUTION_MODE ;
172+ const composerModel = composerConfig ?. model ?? DEFAULT_GATEWAY_MODEL ;
173+ const composerReasoning : SupportedReasoningEffort =
174+ composerConfig ?. reasoning ?? DEFAULT_REASONING_EFFORT ;
176175
177176 const messagingMode = useMessagingMode ( taskId ) ;
178177 const queuedCount = useQueuedCount ( taskId ) ;
@@ -312,16 +311,21 @@ export default function TaskDetailScreen() {
312311 )
313312 : text ;
314313
315- const supportsReasoning = modelSupportsReasoning ( composerModel ) ;
316- const updatedTask = await runTaskInCloud ( taskId , {
317- resumeFromRunId : task . latest_run ?. id ,
318- pendingUserMessage,
319- runtimeAdapter : "claude" ,
320- model : composerModel ,
321- reasoningEffort : supportsReasoning ? composerReasoning : undefined ,
322- initialPermissionMode : composerMode ,
323- rtkEnabled : usePreferencesStore . getState ( ) . rtkEnabledCloud ,
324- } ) ;
314+ const supportsReasoning =
315+ getReasoningEffortOptions ( "claude" , composerModel ) !== null ;
316+ const updatedTask = await getPostHogApiClient ( ) . runTaskInCloud (
317+ taskId ,
318+ undefined ,
319+ {
320+ resumeFromRunId : task . latest_run ?. id ,
321+ pendingUserMessage,
322+ adapter : "claude" ,
323+ model : composerModel ,
324+ reasoningLevel : supportsReasoning ? composerReasoning : undefined ,
325+ initialPermissionMode : composerMode ,
326+ rtkEnabled : usePreferencesStore . getState ( ) . rtkEnabledCloud ,
327+ } ,
328+ ) ;
325329 setTask ( updatedTask ) ;
326330 await connectToTask ( updatedTask ) ;
327331 updateTaskInCache ( updatedTask ) ;
@@ -506,7 +510,7 @@ export default function TaskDetailScreen() {
506510 ) ;
507511
508512 const handleReasoningChange = useCallback (
509- ( value : ReasoningEffort ) => {
513+ ( value : SupportedReasoningEffort ) => {
510514 if ( ! taskId ) return ;
511515 setComposerConfig ( taskId , { reasoning : value } ) ;
512516 setConfigOption ( taskId , "effort" , value ) . catch ( ( ) => { } ) ;
@@ -559,10 +563,14 @@ export default function TaskDetailScreen() {
559563 setRetrying ( true ) ;
560564 disconnectFromTask ( taskId ) ;
561565
562- const updatedTask = await runTaskInCloud ( taskId , {
563- resumeFromRunId : task . latest_run ?. id ,
564- rtkEnabled : usePreferencesStore . getState ( ) . rtkEnabledCloud ,
565- } ) ;
566+ const updatedTask = await getPostHogApiClient ( ) . runTaskInCloud (
567+ taskId ,
568+ undefined ,
569+ {
570+ resumeFromRunId : task . latest_run ?. id ,
571+ rtkEnabled : usePreferencesStore . getState ( ) . rtkEnabledCloud ,
572+ } ,
573+ ) ;
566574 setTask ( updatedTask ) ;
567575 await connectToTask ( updatedTask ) ;
568576 updateTaskInCache ( updatedTask ) ;
0 commit comments