From b19a0dfe25a063919e5920d3e2ac73d8c286ea60 Mon Sep 17 00:00:00 2001 From: Snider Date: Tue, 7 Apr 2026 12:46:35 +0100 Subject: [PATCH] fix: migrate module paths from forge.lthn.ai to dappco.re MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update all import paths and go.mod deps to dappco.re equivalents. Fix API compat for core v0.8.0-alpha.1: RegisterTask→RegisterAction, core.Task→core.Message handler signatures. Co-Authored-By: Virgil --- cmd/deploy/cmd_commands.go | 2 +- cmd/deploy/cmd_deploy.go | 2 +- cmd/dev/cmd_api.go | 2 +- cmd/dev/cmd_api_testgen.go | 4 +- cmd/dev/cmd_api_testgen_test.go | 2 +- cmd/dev/cmd_apply.go | 2 +- cmd/dev/cmd_bundles.go | 2 +- cmd/dev/cmd_ci.go | 2 +- cmd/dev/cmd_commit.go | 2 +- cmd/dev/cmd_dev.go | 2 +- cmd/dev/cmd_file_sync.go | 2 +- cmd/dev/cmd_file_sync_test.go | 2 +- cmd/dev/cmd_health.go | 2 +- cmd/dev/cmd_impact.go | 2 +- cmd/dev/cmd_issues.go | 2 +- cmd/dev/cmd_pull.go | 2 +- cmd/dev/cmd_push.go | 2 +- cmd/dev/cmd_reviews.go | 2 +- cmd/dev/cmd_sync.go | 6 +- cmd/dev/cmd_tag.go | 2 +- cmd/dev/cmd_vm.go | 4 +- cmd/dev/cmd_vm_test.go | 2 +- cmd/dev/cmd_work.go | 2 +- cmd/dev/cmd_workflow.go | 2 +- cmd/dev/registry.go | 4 +- cmd/dev/service.go | 9 ++- cmd/docs/cmd_commands.go | 2 +- cmd/docs/cmd_docs.go | 2 +- cmd/docs/cmd_list.go | 2 +- cmd/docs/cmd_scan.go | 4 +- cmd/docs/cmd_sync.go | 2 +- cmd/gitcmd/cmd_git.go | 2 +- cmd/setup/cmd_bootstrap.go | 2 +- cmd/setup/cmd_ci.go | 2 +- cmd/setup/cmd_commands.go | 2 +- cmd/setup/cmd_github.go | 2 +- cmd/setup/cmd_registry.go | 4 +- cmd/setup/cmd_repo.go | 2 +- cmd/setup/cmd_setup.go | 2 +- cmd/setup/cmd_wizard.go | 2 +- cmd/setup/github_diff.go | 2 +- cmd/setup/github_labels.go | 2 +- cmd/setup/github_protection.go | 2 +- cmd/setup/github_security.go | 2 +- cmd/setup/github_webhooks.go | 2 +- cmd/workspace/config.go | 81 +++++++++++++++++++ go.mod | 34 +++----- go.sum | 138 +++++--------------------------- 48 files changed, 169 insertions(+), 195 deletions(-) create mode 100644 cmd/workspace/config.go diff --git a/cmd/deploy/cmd_commands.go b/cmd/deploy/cmd_commands.go index eb8c24f..621d59a 100644 --- a/cmd/deploy/cmd_commands.go +++ b/cmd/deploy/cmd_commands.go @@ -1,7 +1,7 @@ package deploy import ( - "forge.lthn.ai/core/cli/pkg/cli" + "dappco.re/go/core/cli/pkg/cli" _ "dappco.re/go/core/devops/locales" ) diff --git a/cmd/deploy/cmd_deploy.go b/cmd/deploy/cmd_deploy.go index c72c5fc..531151c 100644 --- a/cmd/deploy/cmd_deploy.go +++ b/cmd/deploy/cmd_deploy.go @@ -6,7 +6,7 @@ import ( "fmt" "os" - "forge.lthn.ai/core/cli/pkg/cli" + "dappco.re/go/core/cli/pkg/cli" "dappco.re/go/core/devops/deploy/coolify" "dappco.re/go/core/i18n" log "dappco.re/go/core/log" diff --git a/cmd/dev/cmd_api.go b/cmd/dev/cmd_api.go index 7c3de17..42f3f29 100644 --- a/cmd/dev/cmd_api.go +++ b/cmd/dev/cmd_api.go @@ -2,7 +2,7 @@ package dev import ( "dappco.re/go/core/i18n" - "forge.lthn.ai/core/cli/pkg/cli" + "dappco.re/go/core/cli/pkg/cli" ) // addAPICommands adds the 'api' command and its subcommands to the given parent command. diff --git a/cmd/dev/cmd_api_testgen.go b/cmd/dev/cmd_api_testgen.go index 29267f7..7284c2b 100644 --- a/cmd/dev/cmd_api_testgen.go +++ b/cmd/dev/cmd_api_testgen.go @@ -7,7 +7,7 @@ import ( "dappco.re/go/core/i18n" coreio "dappco.re/go/core/io" - "forge.lthn.ai/core/cli/pkg/cli" + "dappco.re/go/core/cli/pkg/cli" ) func addTestGenCommand(parent *cli.Command) { @@ -69,7 +69,7 @@ const publicAPITestTemplate = `// Code generated by "core dev api test-gen"; DO package {{.ServiceName}} import ( - impl "forge.lthn.ai/core/cli/{{.ServiceName}}" + impl "dappco.re/go/core/cli/{{.ServiceName}}" ) {{range .Symbols}} diff --git a/cmd/dev/cmd_api_testgen_test.go b/cmd/dev/cmd_api_testgen_test.go index 536f57e..4d292f0 100644 --- a/cmd/dev/cmd_api_testgen_test.go +++ b/cmd/dev/cmd_api_testgen_test.go @@ -52,7 +52,7 @@ func Ignored() {} require.Contains(t, content, `// Code generated by "core dev api test-gen"; DO NOT EDIT.`) require.Contains(t, content, `package demo`) - require.Contains(t, content, `impl "forge.lthn.ai/core/cli/demo"`) + require.Contains(t, content, `impl "dappco.re/go/core/cli/demo"`) require.Contains(t, content, `type _ = impl.Example`) require.Contains(t, content, `type _ = impl.Another`) require.Contains(t, content, `const _ = impl.Answer`) diff --git a/cmd/dev/cmd_apply.go b/cmd/dev/cmd_apply.go index de00f54..2421fc2 100644 --- a/cmd/dev/cmd_apply.go +++ b/cmd/dev/cmd_apply.go @@ -19,7 +19,7 @@ import ( core "dappco.re/go/core/log" "dappco.re/go/core/scm/git" "dappco.re/go/core/scm/repos" - "forge.lthn.ai/core/cli/pkg/cli" + "dappco.re/go/core/cli/pkg/cli" ) // Apply command flags diff --git a/cmd/dev/cmd_bundles.go b/cmd/dev/cmd_bundles.go index cb9d8c2..106b52b 100644 --- a/cmd/dev/cmd_bundles.go +++ b/cmd/dev/cmd_bundles.go @@ -30,7 +30,7 @@ func NewWorkBundle(opts WorkBundleOptions) (*WorkBundle, error) { c.Service("dev", core.Service{ OnStart: func() core.Result { - c.RegisterTask(svc.handleTask) + c.RegisterAction(svc.handleAction) return core.Result{OK: true} }, }) diff --git a/cmd/dev/cmd_ci.go b/cmd/dev/cmd_ci.go index 2c4c2ce..7cdecdc 100644 --- a/cmd/dev/cmd_ci.go +++ b/cmd/dev/cmd_ci.go @@ -7,7 +7,7 @@ import ( "code.gitea.io/sdk/gitea" - "forge.lthn.ai/core/cli/pkg/cli" + "dappco.re/go/core/cli/pkg/cli" "dappco.re/go/core/i18n" ) diff --git a/cmd/dev/cmd_commit.go b/cmd/dev/cmd_commit.go index ba5496a..01b3bb6 100644 --- a/cmd/dev/cmd_commit.go +++ b/cmd/dev/cmd_commit.go @@ -5,7 +5,7 @@ import ( "os" "path/filepath" - "forge.lthn.ai/core/cli/pkg/cli" + "dappco.re/go/core/cli/pkg/cli" "dappco.re/go/core/scm/git" "dappco.re/go/core/i18n" coreio "dappco.re/go/core/io" diff --git a/cmd/dev/cmd_dev.go b/cmd/dev/cmd_dev.go index 88ae1ce..4a0a648 100644 --- a/cmd/dev/cmd_dev.go +++ b/cmd/dev/cmd_dev.go @@ -35,7 +35,7 @@ package dev import ( "dappco.re/go/core/i18n" - "forge.lthn.ai/core/cli/pkg/cli" + "dappco.re/go/core/cli/pkg/cli" _ "dappco.re/go/core/devops/locales" ) diff --git a/cmd/dev/cmd_file_sync.go b/cmd/dev/cmd_file_sync.go index 74c22b9..766e09d 100644 --- a/cmd/dev/cmd_file_sync.go +++ b/cmd/dev/cmd_file_sync.go @@ -19,7 +19,7 @@ import ( "dappco.re/go/core/log" "dappco.re/go/core/scm/git" "dappco.re/go/core/scm/repos" - "forge.lthn.ai/core/cli/pkg/cli" + "dappco.re/go/core/cli/pkg/cli" ) // File sync command flags diff --git a/cmd/dev/cmd_file_sync_test.go b/cmd/dev/cmd_file_sync_test.go index 1b1513f..85a61c2 100644 --- a/cmd/dev/cmd_file_sync_test.go +++ b/cmd/dev/cmd_file_sync_test.go @@ -5,7 +5,7 @@ import ( "github.com/stretchr/testify/require" - "forge.lthn.ai/core/cli/pkg/cli" + "dappco.re/go/core/cli/pkg/cli" ) func TestAddFileSyncCommand_Good(t *testing.T) { diff --git a/cmd/dev/cmd_health.go b/cmd/dev/cmd_health.go index 6686a2a..db4d75a 100644 --- a/cmd/dev/cmd_health.go +++ b/cmd/dev/cmd_health.go @@ -7,7 +7,7 @@ import ( "slices" "strings" - "forge.lthn.ai/core/cli/pkg/cli" + "dappco.re/go/core/cli/pkg/cli" "dappco.re/go/core/scm/git" "dappco.re/go/core/i18n" ) diff --git a/cmd/dev/cmd_impact.go b/cmd/dev/cmd_impact.go index 8854ee0..ecd109d 100644 --- a/cmd/dev/cmd_impact.go +++ b/cmd/dev/cmd_impact.go @@ -3,7 +3,7 @@ package dev import ( "slices" - "forge.lthn.ai/core/cli/pkg/cli" + "dappco.re/go/core/cli/pkg/cli" "dappco.re/go/core/i18n" "dappco.re/go/core/io" log "dappco.re/go/core/log" diff --git a/cmd/dev/cmd_issues.go b/cmd/dev/cmd_issues.go index 1bf01fe..0f38557 100644 --- a/cmd/dev/cmd_issues.go +++ b/cmd/dev/cmd_issues.go @@ -7,7 +7,7 @@ import ( "code.gitea.io/sdk/gitea" - "forge.lthn.ai/core/cli/pkg/cli" + "dappco.re/go/core/cli/pkg/cli" "dappco.re/go/core/i18n" ) diff --git a/cmd/dev/cmd_pull.go b/cmd/dev/cmd_pull.go index 487ed5e..e534c6f 100644 --- a/cmd/dev/cmd_pull.go +++ b/cmd/dev/cmd_pull.go @@ -4,7 +4,7 @@ import ( "context" "os/exec" - "forge.lthn.ai/core/cli/pkg/cli" + "dappco.re/go/core/cli/pkg/cli" "dappco.re/go/core/scm/git" "dappco.re/go/core/i18n" ) diff --git a/cmd/dev/cmd_push.go b/cmd/dev/cmd_push.go index 952ec2b..cfb5733 100644 --- a/cmd/dev/cmd_push.go +++ b/cmd/dev/cmd_push.go @@ -5,7 +5,7 @@ import ( "os" "path/filepath" - "forge.lthn.ai/core/cli/pkg/cli" + "dappco.re/go/core/cli/pkg/cli" "dappco.re/go/core/scm/git" "dappco.re/go/core/i18n" ) diff --git a/cmd/dev/cmd_reviews.go b/cmd/dev/cmd_reviews.go index b7ed776..7ece07d 100644 --- a/cmd/dev/cmd_reviews.go +++ b/cmd/dev/cmd_reviews.go @@ -7,7 +7,7 @@ import ( "code.gitea.io/sdk/gitea" - "forge.lthn.ai/core/cli/pkg/cli" + "dappco.re/go/core/cli/pkg/cli" "dappco.re/go/core/i18n" ) diff --git a/cmd/dev/cmd_sync.go b/cmd/dev/cmd_sync.go index f7b2894..1ca4ce3 100644 --- a/cmd/dev/cmd_sync.go +++ b/cmd/dev/cmd_sync.go @@ -13,7 +13,7 @@ import ( "dappco.re/go/core/i18n" coreio "dappco.re/go/core/io" - "forge.lthn.ai/core/cli/pkg/cli" + "dappco.re/go/core/cli/pkg/cli" "golang.org/x/text/cases" "golang.org/x/text/language" @@ -169,10 +169,10 @@ package {{.ServiceName}} import ( // Import the internal implementation with an alias. - impl "forge.lthn.ai/core/cli/{{.ServiceName}}" + impl "dappco.re/go/core/cli/{{.ServiceName}}" // Import the core contracts to re-export the interface. - "forge.lthn.ai/core/cli/core" + "dappco.re/go/core/cli/core" ) {{range .Symbols}} diff --git a/cmd/dev/cmd_tag.go b/cmd/dev/cmd_tag.go index 17e4882..bd567e8 100644 --- a/cmd/dev/cmd_tag.go +++ b/cmd/dev/cmd_tag.go @@ -9,7 +9,7 @@ import ( "strconv" "strings" - "forge.lthn.ai/core/cli/pkg/cli" + "dappco.re/go/core/cli/pkg/cli" "dappco.re/go/core/i18n" log "dappco.re/go/core/log" ) diff --git a/cmd/dev/cmd_vm.go b/cmd/dev/cmd_vm.go index 02c5205..2b44985 100644 --- a/cmd/dev/cmd_vm.go +++ b/cmd/dev/cmd_vm.go @@ -8,8 +8,8 @@ import ( "dappco.re/go/core/i18n" "dappco.re/go/core/io" log "dappco.re/go/core/log" - "forge.lthn.ai/core/cli/pkg/cli" - "forge.lthn.ai/core/go-container/devenv" + "dappco.re/go/core/cli/pkg/cli" + "dappco.re/go/core/container/devenv" ) // addVMCommands adds the dev environment VM commands to the dev parent command. diff --git a/cmd/dev/cmd_vm_test.go b/cmd/dev/cmd_vm_test.go index 864d44a..8ddbf9f 100644 --- a/cmd/dev/cmd_vm_test.go +++ b/cmd/dev/cmd_vm_test.go @@ -5,7 +5,7 @@ import ( "github.com/stretchr/testify/require" - "forge.lthn.ai/core/cli/pkg/cli" + "dappco.re/go/core/cli/pkg/cli" ) func TestAddVMStatusCommand_Good(t *testing.T) { diff --git a/cmd/dev/cmd_work.go b/cmd/dev/cmd_work.go index 4292a43..bc07cd6 100644 --- a/cmd/dev/cmd_work.go +++ b/cmd/dev/cmd_work.go @@ -6,7 +6,7 @@ import ( "slices" "strings" - "forge.lthn.ai/core/cli/pkg/cli" + "dappco.re/go/core/cli/pkg/cli" "dappco.re/go/core/i18n" "dappco.re/go/core/scm/git" ) diff --git a/cmd/dev/cmd_workflow.go b/cmd/dev/cmd_workflow.go index be47c9c..b2c6645 100644 --- a/cmd/dev/cmd_workflow.go +++ b/cmd/dev/cmd_workflow.go @@ -10,7 +10,7 @@ import ( "dappco.re/go/core/i18n" "dappco.re/go/core/io" "dappco.re/go/core/scm/repos" - "forge.lthn.ai/core/cli/pkg/cli" + "dappco.re/go/core/cli/pkg/cli" ) // Workflow command flags diff --git a/cmd/dev/registry.go b/cmd/dev/registry.go index 8dac852..5047f2d 100644 --- a/cmd/dev/registry.go +++ b/cmd/dev/registry.go @@ -5,11 +5,11 @@ import ( "path/filepath" "strings" - "dappco.re/go/agent/cmd/workspace" + "dappco.re/go/core/devops/cmd/workspace" "dappco.re/go/core/i18n" "dappco.re/go/core/io" "dappco.re/go/core/scm/repos" - "forge.lthn.ai/core/cli/pkg/cli" + "dappco.re/go/core/cli/pkg/cli" ) // loadRegistryWithConfig loads the registry and applies workspace configuration. diff --git a/cmd/dev/service.go b/cmd/dev/service.go index e403db7..8e2fa80 100644 --- a/cmd/dev/service.go +++ b/cmd/dev/service.go @@ -5,7 +5,7 @@ import ( "os" "os/exec" - agentic "dappco.re/go/agent/pkg/lifecycle" + "dappco.re/go/agent/pkg/lib" "dappco.re/go/core" ) @@ -19,13 +19,16 @@ type Service struct { *core.ServiceRuntime[ServiceOptions] } -func (s *Service) handleTask(_ *core.Core, _ core.Task) core.Result { +func (s *Service) handleAction(_ *core.Core, _ core.Message) core.Result { return core.Result{} } // doCommit shells out to claude for AI-assisted commit. func doCommit(ctx context.Context, repoPath string, allowEdit bool) error { - prompt := agentic.Prompt("commit") + prompt := "" + if r := lib.Prompt("commit"); r.OK { + prompt = r.Value.(string) + } tools := "Bash,Read,Glob,Grep" if allowEdit { diff --git a/cmd/docs/cmd_commands.go b/cmd/docs/cmd_commands.go index 522a165..bdf0062 100644 --- a/cmd/docs/cmd_commands.go +++ b/cmd/docs/cmd_commands.go @@ -9,7 +9,7 @@ package docs import ( - "forge.lthn.ai/core/cli/pkg/cli" + "dappco.re/go/core/cli/pkg/cli" _ "dappco.re/go/core/devops/locales" ) diff --git a/cmd/docs/cmd_docs.go b/cmd/docs/cmd_docs.go index 4e99b59..cc1fe32 100644 --- a/cmd/docs/cmd_docs.go +++ b/cmd/docs/cmd_docs.go @@ -2,7 +2,7 @@ package docs import ( - "forge.lthn.ai/core/cli/pkg/cli" + "dappco.re/go/core/cli/pkg/cli" "dappco.re/go/core/i18n" ) diff --git a/cmd/docs/cmd_list.go b/cmd/docs/cmd_list.go index 6d8673d..40a3982 100644 --- a/cmd/docs/cmd_list.go +++ b/cmd/docs/cmd_list.go @@ -3,7 +3,7 @@ package docs import ( "strings" - "forge.lthn.ai/core/cli/pkg/cli" + "dappco.re/go/core/cli/pkg/cli" "dappco.re/go/core/i18n" ) diff --git a/cmd/docs/cmd_scan.go b/cmd/docs/cmd_scan.go index 95afd42..7c8fb24 100644 --- a/cmd/docs/cmd_scan.go +++ b/cmd/docs/cmd_scan.go @@ -6,11 +6,11 @@ import ( "path/filepath" "strings" - "dappco.re/go/agent/cmd/workspace" + "dappco.re/go/core/devops/cmd/workspace" "dappco.re/go/core/i18n" "dappco.re/go/core/io" "dappco.re/go/core/scm/repos" - "forge.lthn.ai/core/cli/pkg/cli" + "dappco.re/go/core/cli/pkg/cli" ) // RepoDocInfo holds documentation info for a repo diff --git a/cmd/docs/cmd_sync.go b/cmd/docs/cmd_sync.go index 72db260..6728ee8 100644 --- a/cmd/docs/cmd_sync.go +++ b/cmd/docs/cmd_sync.go @@ -9,7 +9,7 @@ import ( "dappco.re/go/core/i18n" "dappco.re/go/core/io" "dappco.re/go/core/scm/repos" - "forge.lthn.ai/core/cli/pkg/cli" + "dappco.re/go/core/cli/pkg/cli" ) // Flag variables for sync command diff --git a/cmd/gitcmd/cmd_git.go b/cmd/gitcmd/cmd_git.go index fbb5def..dacbd89 100644 --- a/cmd/gitcmd/cmd_git.go +++ b/cmd/gitcmd/cmd_git.go @@ -14,7 +14,7 @@ package gitcmd import ( "dappco.re/go/core/devops/cmd/dev" - "forge.lthn.ai/core/cli/pkg/cli" + "dappco.re/go/core/cli/pkg/cli" "dappco.re/go/core/i18n" ) diff --git a/cmd/setup/cmd_bootstrap.go b/cmd/setup/cmd_bootstrap.go index bebfbf5..e3e2d34 100644 --- a/cmd/setup/cmd_bootstrap.go +++ b/cmd/setup/cmd_bootstrap.go @@ -13,7 +13,7 @@ import ( "path/filepath" "strings" - "dappco.re/go/agent/cmd/workspace" + "dappco.re/go/core/devops/cmd/workspace" "dappco.re/go/core/i18n" coreio "dappco.re/go/core/io" log "dappco.re/go/core/log" diff --git a/cmd/setup/cmd_ci.go b/cmd/setup/cmd_ci.go index 627c46a..3a78e3f 100644 --- a/cmd/setup/cmd_ci.go +++ b/cmd/setup/cmd_ci.go @@ -7,7 +7,7 @@ import ( "runtime" coreio "dappco.re/go/core/io" - "forge.lthn.ai/core/cli/pkg/cli" + "dappco.re/go/core/cli/pkg/cli" "gopkg.in/yaml.v3" ) diff --git a/cmd/setup/cmd_commands.go b/cmd/setup/cmd_commands.go index ccebd7a..5d5fd37 100644 --- a/cmd/setup/cmd_commands.go +++ b/cmd/setup/cmd_commands.go @@ -24,7 +24,7 @@ package setup import ( - "forge.lthn.ai/core/cli/pkg/cli" + "dappco.re/go/core/cli/pkg/cli" "dappco.re/go/core/i18n" _ "dappco.re/go/core/devops/locales" diff --git a/cmd/setup/cmd_github.go b/cmd/setup/cmd_github.go index f5f8dda..520cf5c 100644 --- a/cmd/setup/cmd_github.go +++ b/cmd/setup/cmd_github.go @@ -21,7 +21,7 @@ import ( "os/exec" "path/filepath" - "forge.lthn.ai/core/cli/pkg/cli" + "dappco.re/go/core/cli/pkg/cli" "dappco.re/go/core/i18n" coreio "dappco.re/go/core/io" log "dappco.re/go/core/log" diff --git a/cmd/setup/cmd_registry.go b/cmd/setup/cmd_registry.go index 7fabe4f..9ae8328 100644 --- a/cmd/setup/cmd_registry.go +++ b/cmd/setup/cmd_registry.go @@ -13,12 +13,12 @@ import ( "path/filepath" "strings" - "dappco.re/go/agent/cmd/workspace" + "dappco.re/go/core/devops/cmd/workspace" "dappco.re/go/core/i18n" coreio "dappco.re/go/core/io" log "dappco.re/go/core/log" "dappco.re/go/core/scm/repos" - "forge.lthn.ai/core/cli/pkg/cli" + "dappco.re/go/core/cli/pkg/cli" ) // runRegistrySetup loads a registry from path and runs setup. diff --git a/cmd/setup/cmd_repo.go b/cmd/setup/cmd_repo.go index b0ebd2a..9bb83cb 100644 --- a/cmd/setup/cmd_repo.go +++ b/cmd/setup/cmd_repo.go @@ -17,7 +17,7 @@ import ( "dappco.re/go/core/i18n" coreio "dappco.re/go/core/io" log "dappco.re/go/core/log" - "forge.lthn.ai/core/cli/pkg/cli" + "dappco.re/go/core/cli/pkg/cli" ) var repoDryRun bool diff --git a/cmd/setup/cmd_setup.go b/cmd/setup/cmd_setup.go index a3b20f6..39a4be3 100644 --- a/cmd/setup/cmd_setup.go +++ b/cmd/setup/cmd_setup.go @@ -3,7 +3,7 @@ package setup import ( "dappco.re/go/core/i18n" - "forge.lthn.ai/core/cli/pkg/cli" + "dappco.re/go/core/cli/pkg/cli" ) // Style aliases from shared package diff --git a/cmd/setup/cmd_wizard.go b/cmd/setup/cmd_wizard.go index 250ed8e..0fe91d3 100644 --- a/cmd/setup/cmd_wizard.go +++ b/cmd/setup/cmd_wizard.go @@ -9,7 +9,7 @@ import ( "dappco.re/go/core/i18n" "dappco.re/go/core/scm/repos" - "forge.lthn.ai/core/cli/pkg/cli" + "dappco.re/go/core/cli/pkg/cli" "golang.org/x/term" ) diff --git a/cmd/setup/github_diff.go b/cmd/setup/github_diff.go index 987a145..2cab0c1 100644 --- a/cmd/setup/github_diff.go +++ b/cmd/setup/github_diff.go @@ -8,7 +8,7 @@ import ( "slices" "strings" - "forge.lthn.ai/core/cli/pkg/cli" + "dappco.re/go/core/cli/pkg/cli" "dappco.re/go/core/i18n" ) diff --git a/cmd/setup/github_labels.go b/cmd/setup/github_labels.go index dddc8fa..3f490e3 100644 --- a/cmd/setup/github_labels.go +++ b/cmd/setup/github_labels.go @@ -12,7 +12,7 @@ import ( "os/exec" "strings" - "forge.lthn.ai/core/cli/pkg/cli" + "dappco.re/go/core/cli/pkg/cli" ) // GitHubLabel represents a label as returned by the GitHub API. diff --git a/cmd/setup/github_protection.go b/cmd/setup/github_protection.go index b7e8c8e..ce4b71e 100644 --- a/cmd/setup/github_protection.go +++ b/cmd/setup/github_protection.go @@ -12,7 +12,7 @@ import ( "os/exec" "strings" - "forge.lthn.ai/core/cli/pkg/cli" + "dappco.re/go/core/cli/pkg/cli" log "dappco.re/go/core/log" ) diff --git a/cmd/setup/github_security.go b/cmd/setup/github_security.go index fbe2762..ee8f72d 100644 --- a/cmd/setup/github_security.go +++ b/cmd/setup/github_security.go @@ -14,7 +14,7 @@ import ( "os/exec" "strings" - "forge.lthn.ai/core/cli/pkg/cli" + "dappco.re/go/core/cli/pkg/cli" log "dappco.re/go/core/log" ) diff --git a/cmd/setup/github_webhooks.go b/cmd/setup/github_webhooks.go index e5b1eeb..93aeac0 100644 --- a/cmd/setup/github_webhooks.go +++ b/cmd/setup/github_webhooks.go @@ -12,7 +12,7 @@ import ( "os/exec" "strings" - "forge.lthn.ai/core/cli/pkg/cli" + "dappco.re/go/core/cli/pkg/cli" log "dappco.re/go/core/log" ) diff --git a/cmd/workspace/config.go b/cmd/workspace/config.go new file mode 100644 index 0000000..81119a2 --- /dev/null +++ b/cmd/workspace/config.go @@ -0,0 +1,81 @@ +// Package workspace provides workspace configuration for the devops CLI. +// +// It reads and writes workspace configuration from .core/workspace.yaml: +// +// cfg, err := workspace.LoadConfig("/path/to/workspace") +// if err == nil && cfg != nil { +// fmt.Println(cfg.PackagesDir) +// } +package workspace + +import ( + "os" + "path/filepath" + + coreio "dappco.re/go/core/io" + log "dappco.re/go/core/log" + "gopkg.in/yaml.v3" +) + +// WorkspaceConfig holds workspace-level configuration from .core/workspace.yaml. +type WorkspaceConfig struct { + Version int `yaml:"version"` + Active string `yaml:"active"` // Active package name + DefaultOnly []string `yaml:"default_only"` // Default types for setup + PackagesDir string `yaml:"packages_dir"` // Where packages are cloned +} + +// DefaultConfig returns a config with sensible defaults. +func DefaultConfig() *WorkspaceConfig { + return &WorkspaceConfig{ + Version: 1, + PackagesDir: "./packages", + } +} + +// LoadConfig reads .core/workspace.yaml from the given directory, walking up to parent dirs. +// Returns nil (no error) if no config file is found. +func LoadConfig(dir string) (*WorkspaceConfig, error) { + path := filepath.Join(dir, ".core", "workspace.yaml") + + if !coreio.Local.IsFile(path) { + parent := filepath.Dir(dir) + if parent != dir { + return LoadConfig(parent) + } + return nil, nil + } + + data, err := coreio.Local.Read(path) + if err != nil { + return nil, log.E("workspace.LoadConfig", "failed to read workspace config", err) + } + + cfg := DefaultConfig() + if err := yaml.Unmarshal([]byte(data), cfg); err != nil { + return nil, log.E("workspace.LoadConfig", "failed to parse workspace config", err) + } + + return cfg, nil +} + +// FindRoot searches upward for the root directory containing .core/workspace.yaml. +func FindRoot() (string, error) { + dir, err := os.Getwd() + if err != nil { + return "", err + } + + for { + if coreio.Local.IsFile(filepath.Join(dir, ".core", "workspace.yaml")) { + return dir, nil + } + parent := filepath.Dir(dir) + if parent == dir { + break + } + dir = parent + } + + return "", log.E("workspace.FindRoot", "not inside a workspace", nil) +} diff --git a/go.mod b/go.mod index cdfd39d..1e5267a 100644 --- a/go.mod +++ b/go.mod @@ -4,14 +4,14 @@ go 1.26.0 require ( code.gitea.io/sdk/gitea v0.23.2 - dappco.re/go/core v0.4.7 - dappco.re/go/agent v0.3.3 - dappco.re/go/core/i18n v0.1.7 - dappco.re/go/core/io v0.1.7 - dappco.re/go/core/log v0.0.4 - dappco.re/go/core/scm v0.3.6 - dappco.re/go/core/cli v0.3.7 - dappco.re/go/core/container v0.1.7 + dappco.re/go/agent v0.11.0 + dappco.re/go/core v0.8.0-alpha.1 + dappco.re/go/core/cli v0.5.2 + dappco.re/go/core/container v0.2.2 + dappco.re/go/core/i18n v0.2.3 + dappco.re/go/core/io v0.4.1 + dappco.re/go/core/log v0.1.2 + dappco.re/go/core/scm v0.6.1 github.com/kluctl/go-embed-python v0.0.0-3.13.1-20241219-1 github.com/stretchr/testify v1.11.1 golang.org/x/term v0.41.0 @@ -21,12 +21,10 @@ require ( require ( codeberg.org/mvdkleijn/forgejo-sdk/forgejo/v2 v2.2.0 // indirect - dappco.re/go/core/config v0.1.8 // indirect - dappco.re/go/core/inference v0.1.6 // indirect - dappco.re/go/core/store v0.1.9 // indirect + dappco.re/go/core/config v0.2.3 // indirect + dappco.re/go/core/inference v0.3.0 // indirect github.com/42wim/httpsig v1.2.3 // indirect github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect - github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/charmbracelet/bubbletea v1.3.10 // indirect github.com/charmbracelet/colorprofile v0.4.3 // indirect github.com/charmbracelet/lipgloss v1.1.1-0.20250404203927-76690c660834 // indirect @@ -37,14 +35,12 @@ require ( github.com/clipperhouse/uax29/v2 v2.7.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/davidmz/go-pageant v1.0.2 // indirect - github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect - github.com/dustin/go-humanize v1.0.1 // indirect github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect github.com/fsnotify/fsnotify v1.9.0 // indirect github.com/go-fed/httpsig v1.1.0 // indirect github.com/go-viper/mapstructure/v2 v2.5.0 // indirect + github.com/goccy/go-json v0.10.6 // indirect github.com/gofrs/flock v0.13.0 // indirect - github.com/google/uuid v1.6.0 // indirect github.com/hashicorp/go-version v1.8.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/lucasb-eyer/go-colorful v1.3.0 // indirect @@ -54,11 +50,8 @@ require ( github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect github.com/muesli/cancelreader v0.2.2 // indirect github.com/muesli/termenv v0.16.0 // indirect - github.com/ncruces/go-strftime v1.0.0 // indirect github.com/pelletier/go-toml/v2 v2.2.4 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/redis/go-redis/v9 v9.18.0 // indirect - github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect github.com/rivo/uniseg v0.4.7 // indirect github.com/sagikazarmark/locafero v0.12.0 // indirect github.com/sirupsen/logrus v1.9.4 // indirect @@ -69,13 +62,8 @@ require ( github.com/spf13/viper v1.21.0 // indirect github.com/subosito/gotenv v1.6.0 // indirect github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect - go.uber.org/atomic v1.11.0 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect golang.org/x/crypto v0.49.0 // indirect golang.org/x/sync v0.20.0 // indirect golang.org/x/sys v0.42.0 // indirect - modernc.org/libc v1.70.0 // indirect - modernc.org/mathutil v1.7.1 // indirect - modernc.org/memory v1.11.0 // indirect - modernc.org/sqlite v1.47.0 // indirect ) diff --git a/go.sum b/go.sum index 4c5247c..9f936da 100644 --- a/go.sum +++ b/go.sum @@ -2,76 +2,30 @@ code.gitea.io/sdk/gitea v0.23.2 h1:iJB1FDmLegwfwjX8gotBDHdPSbk/ZR8V9VmEJaVsJYg= code.gitea.io/sdk/gitea v0.23.2/go.mod h1:yyF5+GhljqvA30sRDreoyHILruNiy4ASufugzYg0VHM= codeberg.org/mvdkleijn/forgejo-sdk/forgejo/v2 v2.2.0 h1:HTCWpzyWQOHDWt3LzI6/d2jvUDsw/vgGRWm/8BTvcqI= codeberg.org/mvdkleijn/forgejo-sdk/forgejo/v2 v2.2.0/go.mod h1:ZglEEDj+qkxYUb+SQIeqGtFxQrbaMYqIOgahNKb7uxs= -dappco.re/go/agent v0.3.3 h1:hVF+ExuJ/WHuQjEdje6bSUPcUpy6jUscVl9fiuV8l74= -dappco.re/go/agent v0.3.3/go.mod h1:UnrGApmKd/GzHEFcgy/tYuSfeJwxRx8UsxPhTjU5Ntw= -dappco.re/go/agent v0.9.0 h1:ZfQTyUWa7YXznGLQZG9r7njwWThfLfsdIkOXJWboqZc= -dappco.re/go/agent v0.9.0/go.mod h1:UnrGApmKd/GzHEFcgy/tYuSfeJwxRx8UsxPhTjU5Ntw= -dappco.re/go/agent v0.10.0-alpha.1 h1:hZEm4lAqjP6wgsxelYETdMUhGTHdIBpH8hJTMO58GPA= -dappco.re/go/agent v0.10.0-alpha.1/go.mod h1:jiShGsIfHS7b7rJXMdb30K+wKL8Kx8w/VUrLNDYRbCo= -dappco.re/go/core v0.4.7 h1:KmIA/2lo6rl1NMtLrKqCWfMlUqpDZYH3q0/d10dTtGA= -dappco.re/go/core v0.4.7/go.mod h1:f2/tBZ3+3IqDrg2F5F598llv0nmb/4gJVCFzM5geE4A= +dappco.re/go/agent v0.11.0 h1:5PKzxJf+z0WF+QsxgkMwvDUODj38DGCx0uMk1KxtWkg= +dappco.re/go/agent v0.11.0/go.mod h1:nBF4HMMSZD/YJg+MTHqTv71csgFlCyy62Ux084yjw+U= dappco.re/go/core v0.8.0-alpha.1 h1:gj7+Scv+L63Z7wMxbJYHhaRFkHJo2u4MMPuUSv/Dhtk= dappco.re/go/core v0.8.0-alpha.1/go.mod h1:f2/tBZ3+3IqDrg2F5F598llv0nmb/4gJVCFzM5geE4A= -dappco.re/go/core/i18n v0.1.7 h1:JhJeptA/I42c7GhmtJDPDlvhO8Y3izQ82wpaXCy/XZ0= -dappco.re/go/core/i18n v0.1.7/go.mod h1:0VDjwtY99NSj2iqwrI09h5GUsJeM9s48MLkr+/Dn4G8= -dappco.re/go/core/i18n v0.2.1 h1:BeEThqNmQxFoGHY95jSlawq8+RmJBEz4fZ7D7eRQSJo= -dappco.re/go/core/i18n v0.2.1/go.mod h1:9eSVJXr3OpIGWQvDynfhqcp27xnLMwlYLgsByU+p7ok= -dappco.re/go/core/inference v0.2.0/go.mod h1:YLYk/FxWACGehXpHCTa/t7hFl9uvAoq83QYSBakNNlc= -dappco.re/go/core/io v0.1.7 h1:tYyOnNFQcF//mqDLTNjBu4PV/CBizW7hm2ZnwdQQi40= -dappco.re/go/core/io v0.1.7/go.mod h1:8lRLFk4Dnp5cR/Cyzh9WclD5566TbpdRgwcH7UZLWn4= -dappco.re/go/core/io v0.3.0-alpha.1 h1:xTWrlk72qG0+aIyP5+Telp2nmFF0GG0EBFyVrOiBtec= -dappco.re/go/core/io v0.3.0-alpha.1/go.mod h1:1/DWfw8U9ARKQobFJ7KhsNw2lvJGnQr/vi4Pmqxps6s= -dappco.re/go/core/log v0.0.4 h1:qy54NYLh9nA4Kvo6XBsuAdyDD5jRc9PVnJLz9R0LiBw= -dappco.re/go/core/log v0.0.4/go.mod h1:r14MXKOD3LF/sI8XUJQhRk/SZHBE7jAFVuCfgkXoZPw= -dappco.re/go/core/log v0.1.0 h1:pa71Vq2TD2aoEUQWFKwNcaJ3GBY8HbaNGqtE688Unyc= -dappco.re/go/core/log v0.1.0/go.mod h1:Nkqb8gsXhZAO8VLpx7B8i1iAmohhzqA20b9Zr8VUcJs= -dappco.re/go/core/scm v0.3.6 h1:QUHaaPggP0+zfg7y4Q+BChQaVjx6PW+LKkOzcWYPpZ0= -dappco.re/go/core/scm v0.3.6/go.mod h1:IWFIYDfRH0mtRdqY5zV06l/RkmkPpBM6FcbKWhg1Qa8= -dappco.re/go/core/scm v0.5.0-alpha.1 h1:/LDH7lhVkogqJMxs3w6qmx87RuoHf3nGBNb5El2YQCg= -dappco.re/go/core/scm v0.5.0-alpha.1/go.mod h1:qj/tAPMefuQ9HR5Sb+6qZTuaFNbvTOAhedsXHcal1qU= -dappco.re/go/core/store v0.2.0/go.mod h1:QQGJiruayjna3nywbf0N2gcO502q/oEkPoSpBpSKbLM= -forge.lthn.ai/core/agent v0.3.3 h1:lGpoD5OgvdJ5z+qofw8fBWkDB186QM7I2jjXEbtzSdA= -forge.lthn.ai/core/agent v0.3.3/go.mod h1:UnrGApmKd/GzHEFcgy/tYuSfeJwxRx8UsxPhTjU5Ntw= -forge.lthn.ai/core/agent v0.9.0 h1:O43ncyGmEKapB2kjxEzGODqOOMMT5IyZsotXieqmZGo= -forge.lthn.ai/core/agent v0.9.0/go.mod h1:UnrGApmKd/GzHEFcgy/tYuSfeJwxRx8UsxPhTjU5Ntw= -forge.lthn.ai/core/cli v0.3.7 h1:1GrbaGg0wDGHr6+klSbbGyN/9sSbHvFbdySJznymhwg= -forge.lthn.ai/core/cli v0.3.7/go.mod h1:DBUppJkA9P45ZFGgI2B8VXw1rAZxamHoI/KG7fRvTNs= -forge.lthn.ai/core/config v0.1.8 h1:xP2hys7T94QGVF/OTh84/Zr5Dm/dL/0vzjht8zi+LOg= -forge.lthn.ai/core/config v0.1.8/go.mod h1:8epZrkwoCt+5ayrqdinOUU/+w6UoxOyv9ZrdgVOgYfQ= -forge.lthn.ai/core/config v0.2.0-alpha.1 h1:lhxmnESx+iplLV7aqORbdOodQPSGoBk86oIxPyCXjmc= -forge.lthn.ai/core/config v0.2.0-alpha.1/go.mod h1:AIm7VlO/h4s1LmGSn0HZb+RqAbhmZFJppVGivcsJmGE= -forge.lthn.ai/core/go v0.3.3 h1:kYYZ2nRYy0/Be3cyuLJspRjLqTMxpckVyhb/7Sw2gd0= -forge.lthn.ai/core/go v0.3.3/go.mod h1:Cp4ac25pghvO2iqOu59t1GyngTKVOzKB5/VPdhRi9CQ= -forge.lthn.ai/core/go-container v0.1.7 h1:+/6NIu7OWyK2LSi2obnFF5fVpWhKiWduMiEkmnbZS6U= -forge.lthn.ai/core/go-container v0.1.7/go.mod h1:k0z4yhfZC05bYB5ANdpDFC3AcefnOWJvosXSBSydjs4= -forge.lthn.ai/core/go-i18n v0.1.7 h1:aHkAoc3W8fw3RPNvw/UszQbjyFWXHszzbZgty3SwyAA= -forge.lthn.ai/core/go-i18n v0.1.7/go.mod h1:0VDjwtY99NSj2iqwrI09h5GUsJeM9s48MLkr+/Dn4G8= -forge.lthn.ai/core/go-inference v0.1.6 h1:ce42zC0zO8PuISUyAukAN1NACEdWp5wF1mRgnh5+58E= -forge.lthn.ai/core/go-inference v0.1.6/go.mod h1:jfWz+IJX55wAH98+ic6FEqqGB6/P31CHlg7VY7pxREw= -forge.lthn.ai/core/go-inference v0.1.7 h1:9Dy6v03jX5ZRH3n5iTzlYyGtucuBIgSe+S7GWvBzx9Q= -forge.lthn.ai/core/go-inference v0.1.7/go.mod h1:jfWz+IJX55wAH98+ic6FEqqGB6/P31CHlg7VY7pxREw= -forge.lthn.ai/core/go-io v0.1.7 h1:Tdb6sqh+zz1lsGJaNX9RFWM6MJ/RhSAyxfulLXrJsbk= -forge.lthn.ai/core/go-io v0.1.7/go.mod h1:8lRLFk4Dnp5cR/Cyzh9WclD5566TbpdRgwcH7UZLWn4= -forge.lthn.ai/core/go-log v0.0.4 h1:KTuCEPgFmuM8KJfnyQ8vPOU1Jg654W74h8IJvfQMfv0= -forge.lthn.ai/core/go-log v0.0.4/go.mod h1:r14MXKOD3LF/sI8XUJQhRk/SZHBE7jAFVuCfgkXoZPw= -forge.lthn.ai/core/go-scm v0.2.0 h1:TvDyCzw0HWzXjmqe6uPc46nPaRzc7MPGswmwZt0CmXo= -forge.lthn.ai/core/go-scm v0.2.0/go.mod h1:Q/PV2FbqDlWnAOsXAd1pgSiHOlRCPW4HcPmOt8Z9H+E= -forge.lthn.ai/core/go-scm v0.3.6 h1:LFNx8Fs82mrpxro/MPUM6tMiD4DqPmdu83UknXztQjc= -forge.lthn.ai/core/go-scm v0.3.6/go.mod h1:IWFIYDfRH0mtRdqY5zV06l/RkmkPpBM6FcbKWhg1Qa8= -forge.lthn.ai/core/go-store v0.1.6 h1:7T+K5cciXOaWRxge0WnGkt0PcK3epliWBa1G2FLEuac= -forge.lthn.ai/core/go-store v0.1.6/go.mod h1:/2vqaAn+HgGU14N29B+vIfhjIsBzy7RC+AluI6BIUKI= -forge.lthn.ai/core/go-store v0.1.9 h1:DGO2sUo2i/csWbhw7zxU7oyGF2FJT72/8w47GhZ1joM= -forge.lthn.ai/core/go-store v0.1.9/go.mod h1:VNnHh94TMD3+L+sSgvxn0GHtDKhJR8FD6JiuIuRtjuk= +dappco.re/go/core/cli v0.5.2 h1:mo+PERo3lUytE+r3ArHr8o2nTftXjgPPsU/rn3ETXDM= +dappco.re/go/core/cli v0.5.2/go.mod h1:D4zfn3ec/hb72AWX/JWDvkW+h2WDKQcxGUrzoss7q2s= +dappco.re/go/core/config v0.2.3 h1:sEX0Vtm3WfzsJWhqegWTVr2W90MK3BQ6FQ3cU/2MC+o= +dappco.re/go/core/config v0.2.3/go.mod h1:/rOblY96zfANXywS+WCukJYESmmkeFnYWvI19vy5NYY= +dappco.re/go/core/container v0.2.2 h1:x4JI/GmtX/TGBGa7WJu6dSVQzAHpptKHtAKvwYUxAyg= +dappco.re/go/core/container v0.2.2/go.mod h1:XEV22GjJa8zQhawKnt8dDFEQ1NqSy7xG/bwAd8iqcDA= +dappco.re/go/core/i18n v0.2.3 h1:GqFaTR1I0SfSEc4WtsAkgao+jp8X5qcMPqrX0eMAOrY= +dappco.re/go/core/i18n v0.2.3/go.mod h1:LoyX/4fIEJO/wiHY3Q682+4P0Ob7zPemcATfwp0JBUg= +dappco.re/go/core/inference v0.3.0 h1:ANFnlVO1LEYDipeDeBgqmb8CHvOTUFhMPyfyHGqO0IY= +dappco.re/go/core/inference v0.3.0/go.mod h1:wbRY0v6iwOoJCpTvcBFarAM08bMgpPcrF6yv3vccYoA= +dappco.re/go/core/io v0.4.1 h1:15dm7ldhFIAuZOrBiQG6XVZDpSvCxtZsUXApwTAB3wQ= +dappco.re/go/core/io v0.4.1/go.mod h1:w71dukyunczLb8frT9JOd5B78PjwWQD3YAXiCt3AcPA= +dappco.re/go/core/log v0.1.2 h1:pQSZxKD8VycdvjNJmatXbPSq2OxcP2xHbF20zgFIiZI= +dappco.re/go/core/log v0.1.2/go.mod h1:Nkqb8gsXhZAO8VLpx7B8i1iAmohhzqA20b9Zr8VUcJs= +dappco.re/go/core/scm v0.6.1 h1:nQWr2AGreLzhp//2zZolol87TCKlzV2/I/hpBVkv0Gc= +dappco.re/go/core/scm v0.6.1/go.mod h1:fYy/xazjyv84X8sxBIpTBikSdU5nQq4qf/IR2hXnd5E= github.com/42wim/httpsig v1.2.3 h1:xb0YyWhkYj57SPtfSttIobJUPJZB9as1nsfo7KWVcEs= github.com/42wim/httpsig v1.2.3/go.mod h1:nZq9OlYKDrUBhptd77IHx4/sZZD+IxTBADvAPI9G/EM= github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8= -github.com/bsm/ginkgo/v2 v2.12.0 h1:Ny8MWAHyOepLGlLKYmXG4IEkioBysk6GpaRTLC8zwWs= -github.com/bsm/ginkgo/v2 v2.12.0/go.mod h1:SwYbGRRDovPVboqFv0tPTcG1sN61LM1Z4ARdbAV9g4c= -github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA= -github.com/bsm/gomega v1.27.10/go.mod h1:JyEr/xRbxbtgWNi8tIEVPUYZ5Dzef52k01W3YH0H+O0= -github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= -github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/charmbracelet/bubbletea v1.3.10 h1:otUDHWMMzQSB0Pkc87rm691KZ3SWa4KUlvF9nRvCICw= github.com/charmbracelet/bubbletea v1.3.10/go.mod h1:ORQfo0fk8U+po9VaNvnV95UPWA1BitP1E0N6xJPlHr4= github.com/charmbracelet/colorprofile v0.4.3 h1:QPa1IWkYI+AOB+fE+mg/5/4HRMZcaXex9t5KX76i20Q= @@ -93,10 +47,6 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davidmz/go-pageant v1.0.2 h1:bPblRCh5jGU+Uptpz6LgMZGD5hJoOt7otgT454WvHn0= github.com/davidmz/go-pageant v1.0.2/go.mod h1:P2EDDnMqIwG5Rrp05dTRITj9z2zpGcD9efWSkTNKLIE= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= -github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= -github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f h1:Y/CXytFA4m6baUTXGLOoWe4PQhGxaX0KpnayAqC48p4= github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f/go.mod h1:vw97MGsxSvLiUE2X8qFplwetxpGLQrlU1Q9AUEIzCaM= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -109,22 +59,16 @@ github.com/go-viper/mapstructure/v2 v2.5.0 h1:vM5IJoUAy3d7zRSVtIwQgBj7BiWtMPfmPE github.com/go-viper/mapstructure/v2 v2.5.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= +github.com/goccy/go-json v0.10.6 h1:p8HrPJzOakx/mn/bQtjgNjdTcN+/S6FcG2CTtQOrHVU= +github.com/goccy/go-json v0.10.6/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= github.com/gofrs/flock v0.13.0 h1:95JolYOvGMqeH31+FC7D2+uULf6mG61mEZ/A8dRYMzw= github.com/gofrs/flock v0.13.0/go.mod h1:jxeyy9R1auM5S6JYDBhDt+E2TCo7DkratH4Pgi8P+Z0= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= -github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e h1:ijClszYn+mADRFY17kjQEVQ1XRhq2/JR1M3sGqeJoxs= -github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e/go.mod h1:boTsfXsheKC2y+lKOCMpSfarhxDeIzfZG1jqGcPl3cA= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/hashicorp/go-version v1.8.0 h1:KAkNb1HAiZd1ukkxDFGmokVZe1Xy9HG6NUp+bPle2i4= github.com/hashicorp/go-version v1.8.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= -github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= -github.com/klauspost/cpuid/v2 v2.3.0 h1:S4CRMLnYUhGeDFDqkGriYKdfoFlDnMtqTiI/sFzhA9Y= -github.com/klauspost/cpuid/v2 v2.3.0/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0= github.com/kluctl/go-embed-python v0.0.0-3.13.1-20241219-1 h1:x1cSEj4Ug5mpuZgUHLvUmlc5r//KHFn6iYiRSrRcVy4= github.com/kluctl/go-embed-python v0.0.0-3.13.1-20241219-1/go.mod h1:3ebNU9QBrNpUO+Hj6bHaGpkh5pymDHQ+wwVPHTE4mCE= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= @@ -145,16 +89,10 @@ github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELU github.com/muesli/cancelreader v0.2.2/go.mod h1:3XuTXfFS2VjM+HTLZY9Ak0l6eUKfijIfMUZ4EgX0QYo= github.com/muesli/termenv v0.16.0 h1:S5AlUN9dENB57rsbnkPyfdGuWIlkmzJjbFf0Tf5FWUc= github.com/muesli/termenv v0.16.0/go.mod h1:ZRfOIKPFDYQoDFF4Olj7/QJbW60Ol/kL1pU3VfY/Cnk= -github.com/ncruces/go-strftime v1.0.0 h1:HMFp8mLCTPp341M/ZnA4qaf7ZlsbTc+miZjCLOFAw7w= -github.com/ncruces/go-strftime v1.0.0/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls= github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4= github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/redis/go-redis/v9 v9.18.0 h1:pMkxYPkEbMPwRdenAzUNyFNrDgHx9U+DrBabWNfSRQs= -github.com/redis/go-redis/v9 v9.18.0/go.mod h1:k3ufPphLU5YXwNTUcCRXGxUoF1fqxnhFQmscfkCoDA0= -github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= -github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= @@ -181,10 +119,6 @@ github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8 github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no= github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM= -github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= -github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= -go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= -go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -194,8 +128,6 @@ golang.org/x/crypto v0.49.0 h1:+Ng2ULVvLHnJ/ZFEq4KdcDd/cfjrrjjNSXNzxg0Y4U4= golang.org/x/crypto v0.49.0/go.mod h1:ErX4dUh2UM+CFYiXZRTcMpEcN8b/1gxEuv3nODoYtCA= golang.org/x/exp v0.0.0-20260312153236-7ab1446f8b90 h1:jiDhWWeC7jfWqR9c/uplMOqJ0sbNlNWv0UkzE0vX1MA= golang.org/x/exp v0.0.0-20260312153236-7ab1446f8b90/go.mod h1:xE1HEv6b+1SCZ5/uscMRjUBKtIxworgEcEi+/n9NQDQ= -golang.org/x/mod v0.34.0 h1:xIHgNUUnW6sYkcM5Jleh05DvLOtwc6RitGHbDk4akRI= -golang.org/x/mod v0.34.0/go.mod h1:ykgH52iCZe79kzLLMhyCUzhMci+nQj+0XkbXpNYtVjY= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4= @@ -215,38 +147,8 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.35.0 h1:JOVx6vVDFokkpaq1AEptVzLTpDe9KGpj5tR4/X+ybL8= golang.org/x/text v0.35.0/go.mod h1:khi/HExzZJ2pGnjenulevKNX1W67CUy0AsXcNubPGCA= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.43.0 h1:12BdW9CeB3Z+J/I/wj34VMl8X+fEXBxVR90JeMX5E7s= -golang.org/x/tools v0.43.0/go.mod h1:uHkMso649BX2cZK6+RpuIPXS3ho2hZo4FVwfoy1vIk0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -modernc.org/cc/v4 v4.27.1 h1:9W30zRlYrefrDV2JE2O8VDtJ1yPGownxciz5rrbQZis= -modernc.org/cc/v4 v4.27.1/go.mod h1:uVtb5OGqUKpoLWhqwNQo/8LwvoiEBLvZXIQ/SmO6mL0= -modernc.org/ccgo/v4 v4.32.0 h1:hjG66bI/kqIPX1b2yT6fr/jt+QedtP2fqojG2VrFuVw= -modernc.org/ccgo/v4 v4.32.0/go.mod h1:6F08EBCx5uQc38kMGl+0Nm0oWczoo1c7cgpzEry7Uc0= -modernc.org/fileutil v1.4.0 h1:j6ZzNTftVS054gi281TyLjHPp6CPHr2KCxEXjEbD6SM= -modernc.org/fileutil v1.4.0/go.mod h1:EqdKFDxiByqxLk8ozOxObDSfcVOv/54xDs/DUHdvCUU= -modernc.org/gc/v2 v2.6.5 h1:nyqdV8q46KvTpZlsw66kWqwXRHdjIlJOhG6kxiV/9xI= -modernc.org/gc/v2 v2.6.5/go.mod h1:YgIahr1ypgfe7chRuJi2gD7DBQiKSLMPgBQe9oIiito= -modernc.org/gc/v3 v3.1.2 h1:ZtDCnhonXSZexk/AYsegNRV1lJGgaNZJuKjJSWKyEqo= -modernc.org/gc/v3 v3.1.2/go.mod h1:HFK/6AGESC7Ex+EZJhJ2Gni6cTaYpSMmU/cT9RmlfYY= -modernc.org/goabi0 v0.2.0 h1:HvEowk7LxcPd0eq6mVOAEMai46V+i7Jrj13t4AzuNks= -modernc.org/goabi0 v0.2.0/go.mod h1:CEFRnnJhKvWT1c1JTI3Avm+tgOWbkOu5oPA8eH8LnMI= -modernc.org/libc v1.70.0 h1:U58NawXqXbgpZ/dcdS9kMshu08aiA6b7gusEusqzNkw= -modernc.org/libc v1.70.0/go.mod h1:OVmxFGP1CI/Z4L3E0Q3Mf1PDE0BucwMkcXjjLntvHJo= -modernc.org/mathutil v1.7.1 h1:GCZVGXdaN8gTqB1Mf/usp1Y/hSqgI2vAGGP4jZMCxOU= -modernc.org/mathutil v1.7.1/go.mod h1:4p5IwJITfppl0G4sUEDtCr4DthTaT47/N3aT6MhfgJg= -modernc.org/memory v1.11.0 h1:o4QC8aMQzmcwCK3t3Ux/ZHmwFPzE6hf2Y5LbkRs+hbI= -modernc.org/memory v1.11.0/go.mod h1:/JP4VbVC+K5sU2wZi9bHoq2MAkCnrt2r98UGeSK7Mjw= -modernc.org/opt v0.1.4 h1:2kNGMRiUjrp4LcaPuLY2PzUfqM/w9N23quVwhKt5Qm8= -modernc.org/opt v0.1.4/go.mod h1:03fq9lsNfvkYSfxrfUhZCWPk1lm4cq4N+Bh//bEtgns= -modernc.org/sortutil v1.2.1 h1:+xyoGf15mM3NMlPDnFqrteY07klSFxLElE2PVuWIJ7w= -modernc.org/sortutil v1.2.1/go.mod h1:7ZI3a3REbai7gzCLcotuw9AC4VZVpYMjDzETGsSMqJE= -modernc.org/sqlite v1.47.0 h1:R1XyaNpoW4Et9yly+I2EeX7pBza/w+pmYee/0HJDyKk= -modernc.org/sqlite v1.47.0/go.mod h1:hWjRO6Tj/5Ik8ieqxQybiEOUXy0NJFNp2tpvVpKlvig= -modernc.org/strutil v1.2.1 h1:UneZBkQA+DX2Rp35KcM69cSsNES9ly8mQWD71HKlOA0= -modernc.org/strutil v1.2.1/go.mod h1:EHkiggD70koQxjVdSBM3JKM7k6L0FbGE5eymy9i3B9A= -modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y= -modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM=