@@ -3,11 +3,15 @@ package context
33import "context"
44
55// DefaultBuilder preserves the current runtime context-building behavior.
6- type DefaultBuilder struct {}
6+ type DefaultBuilder struct {
7+ gitRunner gitCommandRunner
8+ }
79
810// NewBuilder returns the default context builder implementation.
911func NewBuilder () Builder {
10- return & DefaultBuilder {}
12+ return & DefaultBuilder {
13+ gitRunner : runGitCommand ,
14+ }
1115}
1216
1317// Build assembles the provider-facing context for the current round.
@@ -16,8 +20,22 @@ func (b *DefaultBuilder) Build(ctx context.Context, input BuildInput) (BuildResu
1620 return BuildResult {}, err
1721 }
1822
23+ rules , err := loadProjectRules (ctx , input .Metadata .Workdir )
24+ if err != nil {
25+ return BuildResult {}, err
26+ }
27+
28+ systemState , err := collectSystemState (ctx , input .Metadata , b .gitRunner )
29+ if err != nil {
30+ return BuildResult {}, err
31+ }
32+
1933 return BuildResult {
20- SystemPrompt : defaultSystemPrompt (),
21- Messages : trimMessages (input .Messages ),
34+ SystemPrompt : composeSystemPrompt (
35+ defaultSystemPrompt (),
36+ renderProjectRulesSection (rules ),
37+ renderSystemStateSection (systemState ),
38+ ),
39+ Messages : trimMessages (input .Messages ),
2240 }, nil
2341}
0 commit comments