@@ -10,7 +10,7 @@ type AgenticSession struct {
1010}
1111
1212type AgenticSessionSpec struct {
13- Prompt string `json:"prompt" binding:"required "`
13+ InitialPrompt string `json:"initialPrompt,omitempty "`
1414 Interactive bool `json:"interactive,omitempty"`
1515 DisplayName string `json:"displayName"`
1616 LLMSettings LLMSettings `json:"llmSettings"`
@@ -20,66 +20,44 @@ type AgenticSessionSpec struct {
2020 ResourceOverrides * ResourceOverrides `json:"resourceOverrides,omitempty"`
2121 EnvironmentVariables map [string ]string `json:"environmentVariables,omitempty"`
2222 Project string `json:"project,omitempty"`
23- // Multi-repo support (unified mapping)
24- Repos []SessionRepoMapping `json:"repos,omitempty"`
25- MainRepoIndex * int `json:"mainRepoIndex,omitempty"`
23+ // Multi-repo support
24+ Repos []SimpleRepo `json:"repos,omitempty"`
2625 // Active workflow for dynamic workflow switching
2726 ActiveWorkflow * WorkflowSelection `json:"activeWorkflow,omitempty"`
2827}
2928
30- // NamedGitRepo represents named repository types for multi-repo session support.
31- type NamedGitRepo struct {
29+ // SimpleRepo represents a simplified repository configuration
30+ type SimpleRepo struct {
3231 URL string `json:"url"`
3332 Branch * string `json:"branch,omitempty"`
3433}
3534
36- type OutputNamedGitRepo struct {
37- URL string `json:"url"`
38- Branch * string `json:"branch,omitempty"`
39- }
40-
41- // SessionRepoMapping is a unified session repo mapping.
42- type SessionRepoMapping struct {
43- Input NamedGitRepo `json:"input"`
44- Output * OutputNamedGitRepo `json:"output,omitempty"`
45- Status * string `json:"status,omitempty"`
46- }
47-
4835type AgenticSessionStatus struct {
49- Phase string `json:"phase,omitempty"`
50- Message string `json:"message,omitempty"`
51- StartTime * string `json:"startTime,omitempty"`
52- CompletionTime * string `json:"completionTime,omitempty"`
53- JobName string `json:"jobName,omitempty"`
54- StateDir string `json:"stateDir,omitempty"`
55- // Result summary fields from runner
56- Subtype string `json:"subtype,omitempty"`
57- IsError bool `json:"is_error,omitempty"`
58- NumTurns int `json:"num_turns,omitempty"`
59- SessionID string `json:"session_id,omitempty"`
60- TotalCostUSD * float64 `json:"total_cost_usd,omitempty"`
61- Usage map [string ]interface {} `json:"usage,omitempty"`
62- Result * string `json:"result,omitempty"`
36+ ObservedGeneration int64 `json:"observedGeneration,omitempty"`
37+ Phase string `json:"phase,omitempty"`
38+ StartTime * string `json:"startTime,omitempty"`
39+ CompletionTime * string `json:"completionTime,omitempty"`
40+ ReconciledRepos []ReconciledRepo `json:"reconciledRepos,omitempty"`
41+ ReconciledWorkflow * ReconciledWorkflow `json:"reconciledWorkflow,omitempty"`
42+ SDKSessionID string `json:"sdkSessionId,omitempty"`
43+ SDKRestartCount int `json:"sdkRestartCount,omitempty"`
44+ Conditions []Condition `json:"conditions,omitempty"`
6345}
6446
6547type CreateAgenticSessionRequest struct {
66- Prompt string `json:"prompt" binding:"required "`
48+ InitialPrompt string `json:"initialPrompt,omitempty "`
6749 DisplayName string `json:"displayName,omitempty"`
6850 LLMSettings * LLMSettings `json:"llmSettings,omitempty"`
6951 Timeout * int `json:"timeout,omitempty"`
7052 Interactive * bool `json:"interactive,omitempty"`
71- WorkspacePath string `json:"workspacePath,omitempty"`
7253 ParentSessionID string `json:"parent_session_id,omitempty"`
73- // Multi-repo support (unified mapping)
74- Repos []SessionRepoMapping `json:"repos,omitempty"`
75- MainRepoIndex * int `json:"mainRepoIndex,omitempty"`
76- AutoPushOnComplete * bool `json:"autoPushOnComplete,omitempty"`
77- UserContext * UserContext `json:"userContext,omitempty"`
78- BotAccount * BotAccountRef `json:"botAccount,omitempty"`
79- ResourceOverrides * ResourceOverrides `json:"resourceOverrides,omitempty"`
80- EnvironmentVariables map [string ]string `json:"environmentVariables,omitempty"`
81- Labels map [string ]string `json:"labels,omitempty"`
82- Annotations map [string ]string `json:"annotations,omitempty"`
54+ // Multi-repo support
55+ Repos []SimpleRepo `json:"repos,omitempty"`
56+ AutoPushOnComplete * bool `json:"autoPushOnComplete,omitempty"`
57+ UserContext * UserContext `json:"userContext,omitempty"`
58+ EnvironmentVariables map [string ]string `json:"environmentVariables,omitempty"`
59+ Labels map [string ]string `json:"labels,omitempty"`
60+ Annotations map [string ]string `json:"annotations,omitempty"`
8361}
8462
8563type CloneSessionRequest struct {
@@ -88,17 +66,17 @@ type CloneSessionRequest struct {
8866}
8967
9068type UpdateAgenticSessionRequest struct {
91- Prompt * string `json:"prompt ,omitempty"`
92- DisplayName * string `json:"displayName,omitempty"`
93- Timeout * int `json:"timeout,omitempty"`
94- LLMSettings * LLMSettings `json:"llmSettings,omitempty"`
69+ InitialPrompt * string `json:"initialPrompt ,omitempty"`
70+ DisplayName * string `json:"displayName,omitempty"`
71+ Timeout * int `json:"timeout,omitempty"`
72+ LLMSettings * LLMSettings `json:"llmSettings,omitempty"`
9573}
9674
9775type CloneAgenticSessionRequest struct {
9876 TargetProject string `json:"targetProject,omitempty"`
9977 TargetSessionName string `json:"targetSessionName,omitempty"`
10078 DisplayName string `json:"displayName,omitempty"`
101- Prompt string `json:"prompt ,omitempty"`
79+ InitialPrompt string `json:"initialPrompt ,omitempty"`
10280}
10381
10482// WorkflowSelection represents a workflow to load into the session
@@ -108,19 +86,30 @@ type WorkflowSelection struct {
10886 Path string `json:"path,omitempty"`
10987}
11088
111- // Mixed Provider Support Types
89+ // ReconciledRepo captures reconciliation state for a repository
90+ type ReconciledRepo struct {
91+ URL string `json:"url"`
92+ Branch string `json:"branch"`
93+ Name string `json:"name,omitempty"`
94+ Status string `json:"status,omitempty"`
95+ ClonedAt * string `json:"clonedAt,omitempty"`
96+ }
11297
113- // ProviderResult contains the result of operations for a specific provider
114- type ProviderResult struct {
115- Provider ProviderType `json:"provider"`
116- Success bool `json:"success"`
117- Error string `json:"error,omitempty"`
118- RepoURL string `json:"repoUrl"`
98+ // ReconciledWorkflow captures reconciliation state for the active workflow
99+ type ReconciledWorkflow struct {
100+ GitURL string `json:"gitUrl"`
101+ Branch string `json:"branch"`
102+ Path string `json:"path,omitempty"`
103+ Status string `json:"status,omitempty"`
104+ AppliedAt * string `json:"appliedAt,omitempty"`
119105}
120106
121- // MixedProviderSessionResult contains results from multiple providers
122- type MixedProviderSessionResult struct {
123- OverallSuccess bool `json:"overallSuccess"`
124- Results []ProviderResult `json:"results"`
125- Message string `json:"message"`
107+ // Condition mirrors metav1.Condition for API transport
108+ type Condition struct {
109+ Type string `json:"type"`
110+ Status string `json:"status"`
111+ Reason string `json:"reason,omitempty"`
112+ Message string `json:"message,omitempty"`
113+ LastTransitionTime string `json:"lastTransitionTime,omitempty"`
114+ ObservedGeneration int64 `json:"observedGeneration,omitempty"`
126115}
0 commit comments