@@ -16,6 +16,7 @@ import {
1616import { type ServerType , serve } from "@hono/node-server" ;
1717import { execGh } from "@posthog/git/gh" ;
1818import { getCurrentBranch } from "@posthog/git/queries" ;
19+ import { buildAdditionalDirectoriesPrompt } from "@posthog/shared" ;
1920import { unzipSync } from "fflate" ;
2021import { Hono } from "hono" ;
2122import { z } from "zod" ;
@@ -2471,11 +2472,14 @@ export class AgentServer {
24712472 slackThreadUrl ?: string | null ,
24722473 inboxReportUrl ?: string | null ,
24732474 ) : string | { append : string } {
2474- const cloudAppend = this . buildCloudSystemPrompt (
2475- prUrl ,
2476- slackThreadUrl ,
2477- inboxReportUrl ,
2478- ) ;
2475+ // Extra cloned repos are surfaced to the model exactly like the local
2476+ // agent's additional directories, so it knows it may work across them.
2477+ const cloudAppend = [
2478+ this . buildCloudSystemPrompt ( prUrl , slackThreadUrl , inboxReportUrl ) ,
2479+ buildAdditionalDirectoriesPrompt ( this . config . additionalDirectories ) ,
2480+ ]
2481+ . filter ( Boolean )
2482+ . join ( "\n\n" ) ;
24792483 const userPrompt = this . config . claudeCode ?. systemPrompt ;
24802484
24812485 // String override: combine user prompt with cloud instructions
@@ -2513,8 +2517,14 @@ export class AgentServer {
25132517 const plugins = this . config . claudeCode ?. plugins ;
25142518 const effort =
25152519 runtimeAdapter === "claude" ? this . config . reasoningEffort : undefined ;
2520+ // Claude-only: the SDK enforces directory access. Codex relies on the
2521+ // <additional_directories> prompt block plus the sandbox's open filesystem.
2522+ const additionalDirectories =
2523+ runtimeAdapter === "claude"
2524+ ? this . config . additionalDirectories
2525+ : undefined ;
25162526
2517- if ( ! plugins ?. length && ! effort ) {
2527+ if ( ! plugins ?. length && ! effort && ! additionalDirectories ?. length ) {
25182528 return undefined ;
25192529 }
25202530
@@ -2525,6 +2535,9 @@ export class AgentServer {
25252535 if ( effort ) {
25262536 options . effort = effort ;
25272537 }
2538+ if ( additionalDirectories ?. length ) {
2539+ options . additionalDirectories = additionalDirectories ;
2540+ }
25282541 return { claudeCode : { options } } ;
25292542 }
25302543
0 commit comments