Skip to content

Commit f2c5453

Browse files
authored
Merge pull request #965 from dgageot/big-cleanup
Big cleanup
2 parents 92dfefa + 1172470 commit f2c5453

36 files changed

Lines changed: 244 additions & 321 deletions

.dockerignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@
55
!./**/*.go
66
!./**/*.txt
77
!./**/*.txt
8-
!/pkg/agentfile/default-agent.yaml
8+
!/pkg/config/default-agent.yaml

cmd/root/api.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import (
77

88
"github.com/spf13/cobra"
99

10-
"github.com/docker/cagent/pkg/agentfile"
1110
"github.com/docker/cagent/pkg/cli"
1211
"github.com/docker/cagent/pkg/config"
1312
"github.com/docker/cagent/pkg/server"
@@ -52,7 +51,7 @@ func (f *apiFlags) runAPICommand(cmd *cobra.Command, args []string) error {
5251
// Make sure no question is ever asked to the user in api mode.
5352
os.Stdin = nil
5453

55-
if f.pullIntervalMins > 0 && !agentfile.IsOCIReference(agentsPath) {
54+
if f.pullIntervalMins > 0 && !config.IsOCIReference(agentsPath) {
5655
return fmt.Errorf("--pull-interval flag can only be used with OCI references, not local files")
5756
}
5857

@@ -74,7 +73,7 @@ func (f *apiFlags) runAPICommand(cmd *cobra.Command, args []string) error {
7473
return fmt.Errorf("failed to create session store: %w", err)
7574
}
7675

77-
sources, err := agentfile.ResolveSources(ctx, nil, agentsPath)
76+
sources, err := config.ResolveSources(agentsPath)
7877
if err != nil {
7978
return fmt.Errorf("failed to resolve agent sources: %w", err)
8079
}

cmd/root/debug.go

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import (
66
"github.com/goccy/go-yaml"
77
"github.com/spf13/cobra"
88

9-
"github.com/docker/cagent/pkg/agentfile"
109
"github.com/docker/cagent/pkg/cli"
1110
"github.com/docker/cagent/pkg/config"
1211
"github.com/docker/cagent/pkg/teamloader"
@@ -49,9 +48,8 @@ func (f *debugFlags) runDebugConfigCommand(cmd *cobra.Command, args []string) er
4948

5049
ctx := cmd.Context()
5150
agentFilename := args[0]
52-
out := cli.NewPrinter(cmd.OutOrStdout())
5351

54-
agentSource, err := agentfile.ResolveSource(ctx, out, agentFilename)
52+
agentSource, err := config.Resolve(agentFilename)
5553
if err != nil {
5654
return err
5755
}
@@ -71,12 +69,12 @@ func (f *debugFlags) runDebugToolsetsCommand(cmd *cobra.Command, args []string)
7169
agentFilename := args[0]
7270
out := cli.NewPrinter(cmd.OutOrStdout())
7371

74-
agentSource, err := agentfile.ResolveSource(ctx, out, agentFilename)
72+
agentSource, err := config.Resolve(agentFilename)
7573
if err != nil {
7674
return err
7775
}
7876

79-
team, err := teamloader.LoadFrom(ctx, agentSource, &f.runConfig)
77+
team, err := teamloader.Load(ctx, agentSource, &f.runConfig)
8078
if err != nil {
8179
return err
8280
}

cmd/root/push.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"github.com/spf13/cobra"
88

99
"github.com/docker/cagent/pkg/cli"
10+
"github.com/docker/cagent/pkg/config"
1011
"github.com/docker/cagent/pkg/content"
1112
"github.com/docker/cagent/pkg/oci"
1213
"github.com/docker/cagent/pkg/remote"
@@ -28,7 +29,7 @@ func runPushCommand(cmd *cobra.Command, args []string) error {
2829
telemetry.TrackCommand("push", args)
2930

3031
ctx := cmd.Context()
31-
filePath := args[0]
32+
agentFilename := args[0]
3233
tag := args[1]
3334
out := cli.NewPrinter(cmd.OutOrStdout())
3435

@@ -37,14 +38,19 @@ func runPushCommand(cmd *cobra.Command, args []string) error {
3738
return err
3839
}
3940

40-
_, err = oci.PackageFileAsOCIToStore(ctx, filePath, tag, store)
41+
agentSource, err := config.Resolve(agentFilename)
42+
if err != nil {
43+
return fmt.Errorf("resolving agent file: %w", err)
44+
}
45+
46+
_, err = oci.PackageFileAsOCIToStore(ctx, agentSource, tag, store)
4147
if err != nil {
4248
return fmt.Errorf("failed to build artifact: %w", err)
4349
}
4450

4551
slog.Debug("Starting push", "registry_ref", tag)
4652

47-
out.Printf("Pushing agent %s to %s\n", filePath, tag)
53+
out.Printf("Pushing agent %s to %s\n", agentFilename, tag)
4854

4955
err = remote.Push(tag)
5056
if err != nil {

cmd/root/run.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import (
1111
"github.com/spf13/cobra"
1212
"go.opentelemetry.io/otel"
1313

14-
"github.com/docker/cagent/pkg/agentfile"
1514
"github.com/docker/cagent/pkg/cli"
1615
"github.com/docker/cagent/pkg/config"
1716
"github.com/docker/cagent/pkg/runtime"
@@ -92,7 +91,7 @@ func (f *runExecFlags) runOrExec(ctx context.Context, out *cli.Printer, args []s
9291
return err
9392
}
9493
} else {
95-
agentSource, err := agentfile.ResolveSource(ctx, out, agentFileName)
94+
agentSource, err := config.Resolve(agentFileName)
9695
if err != nil {
9796
return err
9897
}
@@ -120,8 +119,8 @@ func (f *runExecFlags) runOrExec(ctx context.Context, out *cli.Printer, args []s
120119
return handleRunMode(ctx, rt, sess, args)
121120
}
122121

123-
func (f *runExecFlags) loadAgentFrom(ctx context.Context, source teamloader.AgentSource) (*team.Team, error) {
124-
t, err := teamloader.LoadFrom(ctx, source, &f.runConfig, teamloader.WithModelOverrides(f.modelOverrides))
122+
func (f *runExecFlags) loadAgentFrom(ctx context.Context, agentSource config.Source) (*team.Team, error) {
123+
t, err := teamloader.Load(ctx, agentSource, &f.runConfig, teamloader.WithModelOverrides(f.modelOverrides))
125124
if err != nil {
126125
return nil, err
127126
}

e2e/cagent_a2a_test.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ type Part struct {
4141
func TestA2AServer_AgentCard(t *testing.T) {
4242
t.Parallel()
4343

44-
_, runtimeConfig := startRecordingAIProxy(t)
45-
agentCard := startA2AServer(t, "testdata/basic.yaml", runtimeConfig)
44+
_, runConfig := startRecordingAIProxy(t)
45+
agentCard := startA2AServer(t, "testdata/basic.yaml", runConfig)
4646

4747
assert.Equal(t, "root", agentCard.Name)
4848
assert.NotEmpty(t, agentCard.Description)
@@ -55,8 +55,8 @@ func TestA2AServer_AgentCard(t *testing.T) {
5555
func TestA2AServer_Invoke(t *testing.T) {
5656
t.Parallel()
5757

58-
_, runtimeConfig := startRecordingAIProxy(t)
59-
agentCard := startA2AServer(t, "testdata/basic.yaml", runtimeConfig)
58+
_, runConfig := startRecordingAIProxy(t)
59+
agentCard := startA2AServer(t, "testdata/basic.yaml", runConfig)
6060

6161
requestID := "test-request-1"
6262
jsonRPCRequest := map[string]any{
@@ -111,8 +111,8 @@ func TestA2AServer_Invoke(t *testing.T) {
111111
func TestA2AServer_MultipleRequests(t *testing.T) {
112112
t.Parallel()
113113

114-
_, runtimeConfig := startRecordingAIProxy(t)
115-
agentCard := startA2AServer(t, "testdata/basic.yaml", runtimeConfig)
114+
_, runConfig := startRecordingAIProxy(t)
115+
agentCard := startA2AServer(t, "testdata/basic.yaml", runConfig)
116116

117117
messages := []string{
118118
"Say 'hello' in one word.",
@@ -169,8 +169,8 @@ func TestA2AServer_MultipleRequests(t *testing.T) {
169169
func TestA2AServer_MultiAgent(t *testing.T) {
170170
t.Parallel()
171171

172-
_, runtimeConfig := startRecordingAIProxy(t)
173-
agentCard := startA2AServer(t, "testdata/multi.yaml", runtimeConfig)
172+
_, runConfig := startRecordingAIProxy(t)
173+
agentCard := startA2AServer(t, "testdata/multi.yaml", runConfig)
174174

175175
requestID := "test-multi-1"
176176
jsonRPCRequest := map[string]any{

e2e/cagent_mcp_test.go

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"github.com/stretchr/testify/assert"
77
"github.com/stretchr/testify/require"
88

9+
"github.com/docker/cagent/pkg/config"
910
"github.com/docker/cagent/pkg/mcp"
1011
"github.com/docker/cagent/pkg/teamloader"
1112
)
@@ -14,9 +15,11 @@ func TestMCP_SingleAgent(t *testing.T) {
1415
t.Parallel()
1516

1617
ctx := t.Context()
17-
_, runtimeConfig := startRecordingAIProxy(t)
18+
agentSource, err := config.Resolve("testdata/basic.yaml")
19+
require.NoError(t, err)
1820

19-
team, err := teamloader.Load(ctx, "testdata/basic.yaml", runtimeConfig)
21+
_, runConfig := startRecordingAIProxy(t)
22+
team, err := teamloader.Load(ctx, agentSource, runConfig)
2023
require.NoError(t, err, "Failed to load agent")
2124
t.Cleanup(func() {
2225
require.NoError(t, team.StopToolSets(ctx))
@@ -35,9 +38,11 @@ func TestMCP_MultiAgent(t *testing.T) {
3538
t.Parallel()
3639

3740
ctx := t.Context()
38-
_, runtimeConfig := startRecordingAIProxy(t)
41+
agentSource, err := config.Resolve("testdata/multi.yaml")
42+
require.NoError(t, err)
3943

40-
team, err := teamloader.Load(ctx, "testdata/multi.yaml", runtimeConfig)
44+
_, runConfig := startRecordingAIProxy(t)
45+
team, err := teamloader.Load(ctx, agentSource, runConfig)
4146
require.NoError(t, err, "Failed to load team")
4247
t.Cleanup(func() {
4348
require.NoError(t, team.StopToolSets(ctx))

e2e/runtime_test.go

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"github.com/stretchr/testify/assert"
77
"github.com/stretchr/testify/require"
88

9+
"github.com/docker/cagent/pkg/config"
910
"github.com/docker/cagent/pkg/runtime"
1011
"github.com/docker/cagent/pkg/session"
1112
"github.com/docker/cagent/pkg/teamloader"
@@ -15,9 +16,11 @@ func TestRuntime_OpenAI_Basic(t *testing.T) {
1516
t.Parallel()
1617

1718
ctx := t.Context()
18-
_, runtimeConfig := startRecordingAIProxy(t)
19+
agentSource, err := config.Resolve("testdata/basic.yaml")
20+
require.NoError(t, err)
1921

20-
team, err := teamloader.Load(ctx, "testdata/basic.yaml", runtimeConfig)
22+
_, runConfig := startRecordingAIProxy(t)
23+
team, err := teamloader.Load(ctx, agentSource, runConfig)
2124
require.NoError(t, err)
2225

2326
rt, err := runtime.New(team)
@@ -36,9 +39,11 @@ func TestRuntime_Mistral_Basic(t *testing.T) {
3639
t.Parallel()
3740

3841
ctx := t.Context()
39-
_, runtimeConfig := startRecordingAIProxy(t)
42+
agentSource, err := config.Resolve("testdata/basic.yaml")
43+
require.NoError(t, err)
4044

41-
team, err := teamloader.Load(ctx, "testdata/basic.yaml", runtimeConfig, teamloader.WithModelOverrides([]string{"mistral/mistral-small"}))
45+
_, runConfig := startRecordingAIProxy(t)
46+
team, err := teamloader.Load(ctx, agentSource, runConfig, teamloader.WithModelOverrides([]string{"mistral/mistral-small"}))
4247
require.NoError(t, err)
4348

4449
rt, err := runtime.New(team)

pkg/a2a/adapter_test.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,10 @@ import (
1414
func TestNewCAgentAdapter(t *testing.T) {
1515
t.Setenv("OPENAI_API_KEY", "DUMMY")
1616

17-
team, err := teamloader.Load(t.Context(), "testdata/basic.yaml", &config.RuntimeConfig{})
17+
agentSource, err := config.Resolve("testdata/basic.yaml")
18+
require.NoError(t, err)
19+
20+
team, err := teamloader.Load(t.Context(), agentSource, &config.RuntimeConfig{})
1821
require.NoError(t, err)
1922
defer func() {
2023
require.NoError(t, team.StopToolSets(t.Context()))
@@ -30,7 +33,10 @@ func TestNewCAgentAdapter(t *testing.T) {
3033
func TestNewCAgentAdapter_NonExistent(t *testing.T) {
3134
t.Setenv("OPENAI_API_KEY", "DUMMY")
3235

33-
team, err := teamloader.Load(t.Context(), "testdata/basic.yaml", &config.RuntimeConfig{})
36+
agentSource, err := config.Resolve("testdata/basic.yaml")
37+
require.NoError(t, err)
38+
39+
team, err := teamloader.Load(t.Context(), agentSource, &config.RuntimeConfig{})
3440
require.NoError(t, err)
3541
defer func() {
3642
require.NoError(t, team.StopToolSets(t.Context()))

pkg/a2a/server.go

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,25 +16,20 @@ import (
1616
"google.golang.org/adk/server/adka2a"
1717
"google.golang.org/adk/session"
1818

19-
"github.com/docker/cagent/pkg/agentfile"
2019
"github.com/docker/cagent/pkg/config"
2120
"github.com/docker/cagent/pkg/teamloader"
2221
"github.com/docker/cagent/pkg/version"
2322
)
2423

25-
type discardOutput struct{}
26-
27-
func (d *discardOutput) Printf(string, ...any) {}
28-
2924
func Run(ctx context.Context, agentFilename, agentName string, runConfig *config.RuntimeConfig, ln net.Listener) error {
3025
slog.Debug("Starting A2A server", "agent", agentName, "addr", ln.Addr().String())
3126

32-
agentSource, err := agentfile.ResolveSource(ctx, &discardOutput{}, agentFilename)
27+
agentSource, err := config.Resolve(agentFilename)
3328
if err != nil {
3429
return err
3530
}
3631

37-
t, err := teamloader.LoadFrom(ctx, agentSource, runConfig)
32+
t, err := teamloader.Load(ctx, agentSource, runConfig)
3833
if err != nil {
3934
return fmt.Errorf("failed to load agents: %w", err)
4035
}

0 commit comments

Comments
 (0)