Skip to content

Commit 6126ede

Browse files
authored
Merge pull request sipeed#2566 from lc6464/refactor/providers-tools-layout
refactor(providers,tools): reorganize packages and facades
2 parents 9fe6782 + 743cd36 commit 6126ede

73 files changed

Lines changed: 1374 additions & 214 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package providers
1+
package cliprovider
22

33
import (
44
"bytes"

pkg/providers/claude_cli_provider_integration_test.go renamed to pkg/providers/cli/claude_cli_provider_integration_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//go:build integration
22

3-
package providers
3+
package cliprovider
44

55
import (
66
"context"

pkg/providers/claude_cli_provider_test.go renamed to pkg/providers/cli/claude_cli_provider_test.go

Lines changed: 1 addition & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package providers
1+
package cliprovider
22

33
import (
44
"context"
@@ -9,8 +9,6 @@ import (
99
"strings"
1010
"testing"
1111
"time"
12-
13-
"github.com/sipeed/picoclaw/pkg/config"
1412
)
1513

1614
// --- Compile-time interface check ---
@@ -409,83 +407,6 @@ func TestChat_EmptyWorkspaceDoesNotSetDir(t *testing.T) {
409407
}
410408
}
411409

412-
// --- CreateProvider factory tests ---
413-
414-
func TestCreateProvider_ClaudeCli(t *testing.T) {
415-
cfg := config.DefaultConfig()
416-
cfg.ModelList = []*config.ModelConfig{
417-
{ModelName: "claude-sonnet-4.6", Model: "claude-cli/claude-sonnet-4.6", Workspace: "/test/ws"},
418-
}
419-
cfg.Agents.Defaults.ModelName = "claude-sonnet-4.6"
420-
421-
provider, _, err := CreateProvider(cfg)
422-
if err != nil {
423-
t.Fatalf("CreateProvider(claude-cli) error = %v", err)
424-
}
425-
426-
cliProvider, ok := provider.(*ClaudeCliProvider)
427-
if !ok {
428-
t.Fatalf("CreateProvider(claude-cli) returned %T, want *ClaudeCliProvider", provider)
429-
}
430-
if cliProvider.workspace != "/test/ws" {
431-
t.Errorf("workspace = %q, want %q", cliProvider.workspace, "/test/ws")
432-
}
433-
}
434-
435-
func TestCreateProvider_ClaudeCode(t *testing.T) {
436-
cfg := config.DefaultConfig()
437-
cfg.ModelList = []*config.ModelConfig{
438-
{ModelName: "claude-code", Model: "claude-cli/claude-code"},
439-
}
440-
cfg.Agents.Defaults.ModelName = "claude-code"
441-
442-
provider, _, err := CreateProvider(cfg)
443-
if err != nil {
444-
t.Fatalf("CreateProvider(claude-code) error = %v", err)
445-
}
446-
if _, ok := provider.(*ClaudeCliProvider); !ok {
447-
t.Fatalf("CreateProvider(claude-code) returned %T, want *ClaudeCliProvider", provider)
448-
}
449-
}
450-
451-
func TestCreateProvider_ClaudeCodec(t *testing.T) {
452-
cfg := config.DefaultConfig()
453-
cfg.ModelList = []*config.ModelConfig{
454-
{ModelName: "claudecode", Model: "claude-cli/claudecode"},
455-
}
456-
cfg.Agents.Defaults.ModelName = "claudecode"
457-
458-
provider, _, err := CreateProvider(cfg)
459-
if err != nil {
460-
t.Fatalf("CreateProvider(claudecode) error = %v", err)
461-
}
462-
if _, ok := provider.(*ClaudeCliProvider); !ok {
463-
t.Fatalf("CreateProvider(claudecode) returned %T, want *ClaudeCliProvider", provider)
464-
}
465-
}
466-
467-
func TestCreateProvider_ClaudeCliDefaultWorkspace(t *testing.T) {
468-
cfg := config.DefaultConfig()
469-
cfg.ModelList = []*config.ModelConfig{
470-
{ModelName: "claude-cli", Model: "claude-cli/claude-sonnet"},
471-
}
472-
cfg.Agents.Defaults.ModelName = "claude-cli"
473-
cfg.Agents.Defaults.Workspace = ""
474-
475-
provider, _, err := CreateProvider(cfg)
476-
if err != nil {
477-
t.Fatalf("CreateProvider error = %v", err)
478-
}
479-
480-
cliProvider, ok := provider.(*ClaudeCliProvider)
481-
if !ok {
482-
t.Fatalf("returned %T, want *ClaudeCliProvider", provider)
483-
}
484-
if cliProvider.workspace != "." {
485-
t.Errorf("workspace = %q, want %q (default)", cliProvider.workspace, ".")
486-
}
487-
}
488-
489410
// --- messagesToPrompt tests ---
490411

491412
func TestMessagesToPrompt_SingleUser(t *testing.T) {

pkg/providers/codex_cli_credentials.go renamed to pkg/providers/cli/codex_cli_credentials.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package providers
1+
package cliprovider
22

33
import (
44
"encoding/json"

pkg/providers/codex_cli_credentials_test.go renamed to pkg/providers/cli/codex_cli_credentials_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package providers
1+
package cliprovider
22

33
import (
44
"os"
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package providers
1+
package cliprovider
22

33
import (
44
"bufio"

pkg/providers/codex_cli_provider_integration_test.go renamed to pkg/providers/cli/codex_cli_provider_integration_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//go:build integration
22

3-
package providers
3+
package cliprovider
44

55
import (
66
"context"

pkg/providers/codex_cli_provider_test.go renamed to pkg/providers/cli/codex_cli_provider_test.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package providers
1+
package cliprovider
22

33
import (
44
"context"
@@ -7,6 +7,7 @@ import (
77
"os"
88
"os/exec"
99
"path/filepath"
10+
"runtime"
1011
"strings"
1112
"testing"
1213
)
@@ -400,6 +401,9 @@ func TestCodexCliProvider_GetDefaultModel(t *testing.T) {
400401

401402
func createMockCodexCLI(t *testing.T, events []string) string {
402403
t.Helper()
404+
if runtime.GOOS == "windows" {
405+
t.Skip("mock CLI scripts not supported on Windows")
406+
}
403407
tmpDir := t.TempDir()
404408
scriptPath := filepath.Join(tmpDir, "codex")
405409

@@ -471,6 +475,9 @@ func TestCodexCliProvider_MockCLI_Error(t *testing.T) {
471475
}
472476

473477
func TestCodexCliProvider_MockCLI_WithModel(t *testing.T) {
478+
if runtime.GOOS == "windows" {
479+
t.Skip("mock CLI scripts not supported on Windows")
480+
}
474481
// Mock script that captures args to verify model flag is passed
475482
tmpDir := t.TempDir()
476483
scriptPath := filepath.Join(tmpDir, "codex")
@@ -517,6 +524,9 @@ echo '{"type":"turn.completed"}'`
517524
}
518525

519526
func TestCodexCliProvider_MockCLI_ContextCancel(t *testing.T) {
527+
if runtime.GOOS == "windows" {
528+
t.Skip("mock CLI scripts not supported on Windows")
529+
}
520530
// Script that sleeps forever
521531
tmpDir := t.TempDir()
522532
scriptPath := filepath.Join(tmpDir, "codex")

pkg/providers/github_copilot_provider.go renamed to pkg/providers/cli/github_copilot_provider.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package providers
1+
package cliprovider
22

33
import (
44
"context"
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package providers
1+
package cliprovider
22

33
import (
44
"encoding/json"

0 commit comments

Comments
 (0)