| 1118 | } |
| 1119 | |
| 1120 | func nestedClientMetadataForRequest(h http.Header, nestedClientMetadata *engine.ClientMetadata) *engine.ClientMetadata { |
| 1121 | clientMetadata := *nestedClientMetadata |
| 1122 | clientMetadata.AllowedLLMModules = slices.Clone(nestedClientMetadata.AllowedLLMModules) |
| 1123 | if clientMetadata.ClientVersion == "" { |
| 1124 | clientMetadata.ClientVersion = engine.Version |
| 1125 | } |
| 1126 | clientMetadata.Labels = map[string]string{} |
| 1127 | |
| 1128 | var extraModules []engine.ExtraModule |
| 1129 | var loadWorkspaceModules bool |
| 1130 | var eagerRuntime bool |
| 1131 | var workspaceRef *string |
| 1132 | if md, _ := engine.ClientMetadataFromHTTPHeaders(h); md != nil { |
| 1133 | clientMetadata.ClientVersion = md.ClientVersion |
| 1134 | clientMetadata.AllowedLLMModules = slices.Clone(md.AllowedLLMModules) |
| 1135 | extraModules = md.ExtraModules |
| 1136 | loadWorkspaceModules = md.LoadWorkspaceModules |
| 1137 | eagerRuntime = md.EagerRuntime |
| 1138 | if declaredWorkspace, ok := workspaceRefFromClientMetadata(md); ok { |
| 1139 | ref := declaredWorkspace |
| 1140 | workspaceRef = &ref |
| 1141 | } |
| 1142 | if md.LockMode != "" { |
| 1143 | clientMetadata.LockMode = md.LockMode |
| 1144 | } |
| 1145 | } |
| 1146 | |
| 1147 | clientMetadata.ExtraModules = extraModules |
| 1148 | clientMetadata.LoadWorkspaceModules = loadWorkspaceModules |
| 1149 | clientMetadata.EagerRuntime = eagerRuntime |
| 1150 | clientMetadata.Workspace = workspaceRef |
| 1151 | return &clientMetadata |
| 1152 | } |
| 1153 | |
| 1154 | const InstrumentationLibrary = "dagger.io/engine.server" |
| 1155 | |