feat/ml-integration #2

Merged
Snider merged 81 commits from feat/ml-integration into dev 2026-02-16 06:19:10 +00:00
510 changed files with 2281 additions and 7615 deletions
Showing only changes of commit 3fdc3f3086 - Show all commits

View file

@ -30,7 +30,7 @@ core/
package domain
import (
"github.com/host-uk/core/pkg/cli"
"forge.lthn.ai/core/cli/pkg/cli"
"github.com/spf13/cobra"
)
@ -53,7 +53,7 @@ func NewNameCmd() *cobra.Command {
## CLI Output Helpers
```go
import "github.com/host-uk/core/pkg/cli"
import "forge.lthn.ai/core/cli/pkg/cli"
cli.Success("Operation completed") // Green check
cli.Warning("Something to note") // Yellow warning

View file

@ -1,7 +1,7 @@
# Issue 258: Smart Test Detection
## Original Issue
<https://github.com/host-uk/core/issues/258>
<https://forge.lthn.ai/core/cli/issues/258>
## Summary
Make `core test` smart — detect changed Go files and run only relevant tests.

View file

@ -1,7 +1,7 @@
blank_issues_enabled: true
contact_links:
- name: Host UK Documentation
url: https://github.com/host-uk/core-devops
url: https://forge.lthn.ai/core/cli-devops
about: Setup guides and workspace documentation
- name: Discussions
url: https://github.com/orgs/host-uk/discussions

View file

@ -83,7 +83,7 @@ jobs:
\`\`\`bash
# macOS/Linux
curl -fsSL https://github.com/host-uk/core/releases/download/$VERSION/core-linux-amd64 -o core
curl -fsSL https://forge.lthn.ai/core/cli/releases/download/$VERSION/core-linux-amd64 -o core
chmod +x core && sudo mv core /usr/local/bin/
\`\`\`
" \

View file

@ -84,7 +84,7 @@ jobs:
\`\`\`bash
# macOS/Linux
curl -fsSL https://github.com/host-uk/core/releases/download/$VERSION/core-linux-amd64 -o core
curl -fsSL https://forge.lthn.ai/core/cli/releases/download/$VERSION/core-linux-amd64 -o core
chmod +x core && sudo mv core /usr/local/bin/
\`\`\`
" \

View file

@ -62,7 +62,7 @@ jobs:
ARCHIVE_PREFIX="core-${GOOS}-${GOARCH}"
APP_VERSION="${{ env.NEXT_VERSION }}-alpha.${{ github.run_number }}"
go build -ldflags "-s -w -X github.com/host-uk/core/pkg/cli.AppVersion=${APP_VERSION}" -o "./bin/${BINARY}" .
go build -ldflags "-s -w -X forge.lthn.ai/core/cli/pkg/cli.AppVersion=${APP_VERSION}" -o "./bin/${BINARY}" .
# Create tar.gz for Homebrew (non-Windows)
if [ "$GOOS" != "windows" ]; then
@ -252,7 +252,7 @@ jobs:
scoop install core
# Direct download (example: Linux amd64)
curl -fsSL https://github.com/host-uk/core/releases/download/$VERSION/core-linux-amd64 -o core
curl -fsSL https://forge.lthn.ai/core/cli/releases/download/$VERSION/core-linux-amd64 -o core
chmod +x core && sudo mv core /usr/local/bin/
\`\`\`
" \
@ -306,21 +306,21 @@ jobs:
class Core < Formula
desc "Host UK development CLI"
homepage "https://github.com/host-uk/core"
homepage "https://forge.lthn.ai/core/cli"
version "${FORMULA_VERSION}"
license "EUPL-1.2"
on_macos do
url "https://github.com/host-uk/core/releases/download/${VERSION}/core-darwin-arm64.tar.gz"
url "https://forge.lthn.ai/core/cli/releases/download/${VERSION}/core-darwin-arm64.tar.gz"
sha256 "${DARWIN_ARM64}"
end
on_linux do
if Hardware::CPU.arm?
url "https://github.com/host-uk/core/releases/download/${VERSION}/core-linux-arm64.tar.gz"
url "https://forge.lthn.ai/core/cli/releases/download/${VERSION}/core-linux-arm64.tar.gz"
sha256 "${LINUX_ARM64}"
else
url "https://github.com/host-uk/core/releases/download/${VERSION}/core-linux-amd64.tar.gz"
url "https://forge.lthn.ai/core/cli/releases/download/${VERSION}/core-linux-amd64.tar.gz"
sha256 "${LINUX_AMD64}"
end
end
@ -350,12 +350,12 @@ jobs:
class CoreIde < Formula
desc "Host UK desktop development environment"
homepage "https://github.com/host-uk/core"
homepage "https://forge.lthn.ai/core/cli"
version "${FORMULA_VERSION}"
license "EUPL-1.2"
on_linux do
url "https://github.com/host-uk/core/releases/download/${VERSION}/core-ide-linux-amd64.tar.gz"
url "https://forge.lthn.ai/core/cli/releases/download/${VERSION}/core-ide-linux-amd64.tar.gz"
sha256 "${IDE_LINUX_AMD64}"
end
@ -375,10 +375,10 @@ jobs:
version "${FORMULA_VERSION}"
sha256 "${IDE_DARWIN_ARM64}"
url "https://github.com/host-uk/core/releases/download/${VERSION}/core-ide-darwin-arm64.tar.gz"
url "https://forge.lthn.ai/core/cli/releases/download/${VERSION}/core-ide-darwin-arm64.tar.gz"
name "Core IDE"
desc "Host UK desktop development environment"
homepage "https://github.com/host-uk/core"
homepage "https://forge.lthn.ai/core/cli"
app "Core IDE.app"
end
@ -436,7 +436,7 @@ jobs:
{
"version": "VERSION_PLACEHOLDER",
"description": "Host UK development CLI",
"homepage": "https://github.com/host-uk/core",
"homepage": "https://forge.lthn.ai/core/cli",
"license": "EUPL-1.2",
"architecture": {
"64bit": {
@ -449,7 +449,7 @@ jobs:
"autoupdate": {
"architecture": {
"64bit": {
"url": "https://github.com/host-uk/core/releases/download/v$version/core-windows-amd64.zip"
"url": "https://forge.lthn.ai/core/cli/releases/download/v$version/core-windows-amd64.zip"
}
}
}
@ -457,7 +457,7 @@ jobs:
MANIFEST
sed -i "s|VERSION_PLACEHOLDER|${MANIFEST_VERSION}|g" core.json
sed -i "s|URL_PLACEHOLDER|https://github.com/host-uk/core/releases/download/${VERSION}/core-windows-amd64.zip|g" core.json
sed -i "s|URL_PLACEHOLDER|https://forge.lthn.ai/core/cli/releases/download/${VERSION}/core-windows-amd64.zip|g" core.json
sed -i "s|HASH_PLACEHOLDER|${WIN_AMD64}|g" core.json
sed -i 's/^ //' core.json
@ -467,7 +467,7 @@ jobs:
{
"version": "VERSION_PLACEHOLDER",
"description": "Host UK desktop development environment",
"homepage": "https://github.com/host-uk/core",
"homepage": "https://forge.lthn.ai/core/cli",
"license": "EUPL-1.2",
"architecture": {
"64bit": {
@ -480,14 +480,14 @@ jobs:
"autoupdate": {
"architecture": {
"64bit": {
"url": "https://github.com/host-uk/core/releases/download/v$version/core-ide-windows-amd64.zip"
"url": "https://forge.lthn.ai/core/cli/releases/download/v$version/core-ide-windows-amd64.zip"
}
}
}
}
MANIFEST
sed -i "s|VERSION_PLACEHOLDER|${MANIFEST_VERSION}|g" core-ide.json
sed -i "s|URL_PLACEHOLDER|https://github.com/host-uk/core/releases/download/${VERSION}/core-ide-windows-amd64.zip|g" core-ide.json
sed -i "s|URL_PLACEHOLDER|https://forge.lthn.ai/core/cli/releases/download/${VERSION}/core-ide-windows-amd64.zip|g" core-ide.json
sed -i "s|HASH_PLACEHOLDER|${IDE_WIN_AMD64}|g" core-ide.json
sed -i 's/^ //' core-ide.json
fi

View file

@ -148,10 +148,10 @@ jobs:
# Version injection via ldflags
LDFLAGS="-s -w"
LDFLAGS="${LDFLAGS} -X github.com/host-uk/core/internal/bugseti.Version=${VERSION}"
LDFLAGS="${LDFLAGS} -X github.com/host-uk/core/internal/bugseti.Channel=${CHANNEL}"
LDFLAGS="${LDFLAGS} -X github.com/host-uk/core/internal/bugseti.Commit=${COMMIT_SHA}"
LDFLAGS="${LDFLAGS} -X github.com/host-uk/core/internal/bugseti.BuildTime=$(date -u +%Y-%m-%dT%H:%M:%SZ)"
LDFLAGS="${LDFLAGS} -X forge.lthn.ai/core/cli/internal/bugseti.Version=${VERSION}"
LDFLAGS="${LDFLAGS} -X forge.lthn.ai/core/cli/internal/bugseti.Channel=${CHANNEL}"
LDFLAGS="${LDFLAGS} -X forge.lthn.ai/core/cli/internal/bugseti.Commit=${COMMIT_SHA}"
LDFLAGS="${LDFLAGS} -X forge.lthn.ai/core/cli/internal/bugseti.BuildTime=$(date -u +%Y-%m-%dT%H:%M:%SZ)"
if [ "$GOOS" = "windows" ]; then
export CGO_ENABLED=0

View file

@ -25,7 +25,7 @@ jobs:
- name: Build core CLI
run: |
go build -ldflags "-X github.com/host-uk/core/pkg/cli.AppVersion=${{ env.CORE_VERSION }}" -o /usr/local/bin/core .
go build -ldflags "-X forge.lthn.ai/core/cli/pkg/cli.AppVersion=${{ env.CORE_VERSION }}" -o /usr/local/bin/core .
core --version
- name: Generate code

View file

@ -26,7 +26,7 @@ jobs:
- name: Build core CLI
run: |
go build -ldflags "-X github.com/host-uk/core/pkg/cli.AppVersion=${{ env.CORE_VERSION }}" -o /usr/local/bin/core .
go build -ldflags "-X forge.lthn.ai/core/cli/pkg/cli.AppVersion=${{ env.CORE_VERSION }}" -o /usr/local/bin/core .
core --version
- name: Generate code

View file

@ -26,7 +26,7 @@ jobs:
- name: Build core CLI
run: |
go build -ldflags "-X github.com/host-uk/core/pkg/cli.AppVersion=${{ env.CORE_VERSION }}" -o /usr/local/bin/core .
go build -ldflags "-X forge.lthn.ai/core/cli/pkg/cli.AppVersion=${{ env.CORE_VERSION }}" -o /usr/local/bin/core .
core --version
- name: Generate code

View file

@ -33,7 +33,7 @@ jobs:
- name: Build core CLI
run: |
go build -ldflags "-X github.com/host-uk/core/pkg/cli.AppVersion=${{ env.CORE_VERSION }}" -o /usr/local/bin/core .
go build -ldflags "-X forge.lthn.ai/core/cli/pkg/cli.AppVersion=${{ env.CORE_VERSION }}" -o /usr/local/bin/core .
core --version
- name: Generate code

View file

@ -25,7 +25,7 @@ jobs:
- name: Build core CLI
run: |
go build -ldflags "-X github.com/host-uk/core/pkg/cli.AppVersion=${{ env.CORE_VERSION }}" -o /usr/local/bin/core .
go build -ldflags "-X forge.lthn.ai/core/cli/pkg/cli.AppVersion=${{ env.CORE_VERSION }}" -o /usr/local/bin/core .
core --version
- name: Generate code

View file

@ -26,7 +26,7 @@ jobs:
- name: Build core CLI
run: |
go build -ldflags "-X github.com/host-uk/core/pkg/cli.AppVersion=${{ env.CORE_VERSION }}" -o /usr/local/bin/core .
go build -ldflags "-X forge.lthn.ai/core/cli/pkg/cli.AppVersion=${{ env.CORE_VERSION }}" -o /usr/local/bin/core .
core --version
- name: Generate code

View file

@ -26,7 +26,7 @@ jobs:
- name: Build core CLI
run: |
go build -ldflags "-X github.com/host-uk/core/pkg/cli.AppVersion=${{ env.CORE_VERSION }}" -o /usr/local/bin/core .
go build -ldflags "-X forge.lthn.ai/core/cli/pkg/cli.AppVersion=${{ env.CORE_VERSION }}" -o /usr/local/bin/core .
core --version
- name: Generate code

View file

@ -33,7 +33,7 @@ jobs:
- name: Build core CLI
run: |
go build -ldflags "-X github.com/host-uk/core/pkg/cli.AppVersion=${{ env.CORE_VERSION }}" -o /usr/local/bin/core .
go build -ldflags "-X forge.lthn.ai/core/cli/pkg/cli.AppVersion=${{ env.CORE_VERSION }}" -o /usr/local/bin/core .
core --version
- name: Generate code

View file

@ -47,7 +47,7 @@ jobs:
ARCHIVE_PREFIX="core-${GOOS}-${GOARCH}"
APP_VERSION="${GITHUB_REF_NAME#v}"
go build -ldflags "-s -w -X github.com/host-uk/core/pkg/cli.AppVersion=${APP_VERSION}" -o "./bin/${BINARY}" .
go build -ldflags "-s -w -X forge.lthn.ai/core/cli/pkg/cli.AppVersion=${APP_VERSION}" -o "./bin/${BINARY}" .
# Create tar.gz for Homebrew (non-Windows)
if [ "$GOOS" != "windows" ]; then
@ -260,21 +260,21 @@ jobs:
class Core < Formula
desc "Host UK development CLI"
homepage "https://github.com/host-uk/core"
homepage "https://forge.lthn.ai/core/cli"
version "${FORMULA_VERSION}"
license "EUPL-1.2"
on_macos do
url "https://github.com/host-uk/core/releases/download/${VERSION}/core-darwin-arm64.tar.gz"
url "https://forge.lthn.ai/core/cli/releases/download/${VERSION}/core-darwin-arm64.tar.gz"
sha256 "${DARWIN_ARM64}"
end
on_linux do
if Hardware::CPU.arm?
url "https://github.com/host-uk/core/releases/download/${VERSION}/core-linux-arm64.tar.gz"
url "https://forge.lthn.ai/core/cli/releases/download/${VERSION}/core-linux-arm64.tar.gz"
sha256 "${LINUX_ARM64}"
else
url "https://github.com/host-uk/core/releases/download/${VERSION}/core-linux-amd64.tar.gz"
url "https://forge.lthn.ai/core/cli/releases/download/${VERSION}/core-linux-amd64.tar.gz"
sha256 "${LINUX_AMD64}"
end
end
@ -304,12 +304,12 @@ jobs:
class CoreIde < Formula
desc "Host UK desktop development environment"
homepage "https://github.com/host-uk/core"
homepage "https://forge.lthn.ai/core/cli"
version "${FORMULA_VERSION}"
license "EUPL-1.2"
on_linux do
url "https://github.com/host-uk/core/releases/download/${VERSION}/core-ide-linux-amd64.tar.gz"
url "https://forge.lthn.ai/core/cli/releases/download/${VERSION}/core-ide-linux-amd64.tar.gz"
sha256 "${IDE_LINUX_AMD64}"
end
@ -329,10 +329,10 @@ jobs:
version "${FORMULA_VERSION}"
sha256 "${IDE_DARWIN_ARM64}"
url "https://github.com/host-uk/core/releases/download/${VERSION}/core-ide-darwin-arm64.tar.gz"
url "https://forge.lthn.ai/core/cli/releases/download/${VERSION}/core-ide-darwin-arm64.tar.gz"
name "Core IDE"
desc "Host UK desktop development environment"
homepage "https://github.com/host-uk/core"
homepage "https://forge.lthn.ai/core/cli"
app "Core IDE.app"
end
@ -390,7 +390,7 @@ jobs:
{
"version": "VERSION_PLACEHOLDER",
"description": "Host UK development CLI",
"homepage": "https://github.com/host-uk/core",
"homepage": "https://forge.lthn.ai/core/cli",
"license": "EUPL-1.2",
"architecture": {
"64bit": {
@ -403,7 +403,7 @@ jobs:
"autoupdate": {
"architecture": {
"64bit": {
"url": "https://github.com/host-uk/core/releases/download/v$version/core-windows-amd64.zip"
"url": "https://forge.lthn.ai/core/cli/releases/download/v$version/core-windows-amd64.zip"
}
}
}
@ -411,7 +411,7 @@ jobs:
MANIFEST
sed -i "s|VERSION_PLACEHOLDER|${MANIFEST_VERSION}|g" core.json
sed -i "s|URL_PLACEHOLDER|https://github.com/host-uk/core/releases/download/${VERSION}/core-windows-amd64.zip|g" core.json
sed -i "s|URL_PLACEHOLDER|https://forge.lthn.ai/core/cli/releases/download/${VERSION}/core-windows-amd64.zip|g" core.json
sed -i "s|HASH_PLACEHOLDER|${WIN_AMD64}|g" core.json
sed -i 's/^ //' core.json
@ -421,7 +421,7 @@ jobs:
{
"version": "VERSION_PLACEHOLDER",
"description": "Host UK desktop development environment",
"homepage": "https://github.com/host-uk/core",
"homepage": "https://forge.lthn.ai/core/cli",
"license": "EUPL-1.2",
"architecture": {
"64bit": {
@ -434,14 +434,14 @@ jobs:
"autoupdate": {
"architecture": {
"64bit": {
"url": "https://github.com/host-uk/core/releases/download/v$version/core-ide-windows-amd64.zip"
"url": "https://forge.lthn.ai/core/cli/releases/download/v$version/core-ide-windows-amd64.zip"
}
}
}
}
MANIFEST
sed -i "s|VERSION_PLACEHOLDER|${MANIFEST_VERSION}|g" core-ide.json
sed -i "s|URL_PLACEHOLDER|https://github.com/host-uk/core/releases/download/${VERSION}/core-ide-windows-amd64.zip|g" core-ide.json
sed -i "s|URL_PLACEHOLDER|https://forge.lthn.ai/core/cli/releases/download/${VERSION}/core-ide-windows-amd64.zip|g" core-ide.json
sed -i "s|HASH_PLACEHOLDER|${IDE_WIN_AMD64}|g" core-ide.json
sed -i 's/^ //' core-ide.json
fi

View file

@ -9,9 +9,9 @@ steps:
- go mod download
- >-
go build
-ldflags "-X github.com/host-uk/core/pkg/cli.AppVersion=ci
-X github.com/host-uk/core/pkg/cli.BuildCommit=${CI_COMMIT_SHA:0:7}
-X github.com/host-uk/core/pkg/cli.BuildDate=$(date -u +%Y%m%d)"
-ldflags "-X forge.lthn.ai/core/cli/pkg/cli.AppVersion=ci
-X forge.lthn.ai/core/cli/pkg/cli.BuildCommit=${CI_COMMIT_SHA:0:7}
-X forge.lthn.ai/core/cli/pkg/cli.BuildDate=$(date -u +%Y%m%d)"
-o ./bin/core .
- ./bin/core --version

View file

@ -1,14 +1,14 @@
# Core
[![codecov](https://codecov.io/gh/host-uk/core/branch/dev/graph/badge.svg)](https://codecov.io/gh/host-uk/core)
[![Go Test Coverage](https://github.com/host-uk/core/actions/workflows/coverage.yml/badge.svg)](https://github.com/host-uk/core/actions/workflows/coverage.yml)
[![Code Scanning](https://github.com/host-uk/core/actions/workflows/codescan.yml/badge.svg)](https://github.com/host-uk/core/actions/workflows/codescan.yml)
[![Go Test Coverage](https://forge.lthn.ai/core/cli/actions/workflows/coverage.yml/badge.svg)](https://forge.lthn.ai/core/cli/actions/workflows/coverage.yml)
[![Code Scanning](https://forge.lthn.ai/core/cli/actions/workflows/codescan.yml/badge.svg)](https://forge.lthn.ai/core/cli/actions/workflows/codescan.yml)
[![Go Version](https://img.shields.io/github/go-mod/go-version/host-uk/core)](https://go.dev/)
[![License](https://img.shields.io/badge/License-EUPL--1.2-blue.svg)](https://opensource.org/licenses/EUPL-1.2)
Core is a Web3 Framework, written in Go using Wails.io to replace Electron and the bloat of browsers that, at their core, still live in their mum's basement.
- Repo: https://github.com/host-uk/core
- Repo: https://forge.lthn.ai/core/cli
## Vision
@ -26,7 +26,7 @@ Core is an **opinionated Web3 desktop application framework** providing:
```bash
# 1. Install Core
go install github.com/host-uk/core/cmd/core@latest
go install forge.lthn.ai/core/cli/cmd/core@latest
# 2. Verify environment
core doctor
@ -44,7 +44,7 @@ For more details, see the [User Guide](docs/user-guide.md).
## Framework Quick Start (Go)
```go
import core "github.com/host-uk/core/pkg/framework/core"
import core "forge.lthn.ai/core/cli/pkg/framework/core"
app, err := core.New(
core.WithServiceLock(),
@ -210,7 +210,7 @@ app.RegisterService(application.NewService(coreService)) // Only Core is regist
**Currently exposed** (see `cmd/core-gui/public/bindings/`):
```typescript
// From frontend:
import { ACTION, Config, Service } from './bindings/github.com/host-uk/core/pkg/core'
import { ACTION, Config, Service } from './bindings/forge.lthn.ai/core/cli/pkg/core'
ACTION(msg) // Broadcast IPC message
Config() // Get config service reference
@ -259,7 +259,7 @@ Sub-services are accessed via Core's **IPC/ACTION system**, not direct Wails bin
```typescript
// Frontend calls Core.ACTION() with typed messages
import { ACTION } from './bindings/github.com/host-uk/core/pkg/core'
import { ACTION } from './bindings/forge.lthn.ai/core/cli/pkg/core'
// Open a window
ACTION({ action: "display.open_window", name: "settings", options: { Title: "Settings", Width: 800 } })

View file

@ -15,7 +15,7 @@ vars:
SEMVER_PRERELEASE:
sh: '[ "{{.SEMVER_COMMITS}}" = "0" ] && echo "" || echo "dev.{{.SEMVER_COMMITS}}"'
# ldflags
PKG: "github.com/host-uk/core/pkg/cli"
PKG: "forge.lthn.ai/core/cli/pkg/cli"
LDFLAGS_BASE: >-
-X {{.PKG}}.AppVersion={{.SEMVER_VERSION}}
-X {{.PKG}}.BuildCommit={{.SEMVER_COMMIT}}

View file

@ -19,7 +19,7 @@ BugSETI is a system tray application that helps developers contribute to open so
```bash
# Clone the repository
git clone https://github.com/host-uk/core.git
git clone https://forge.lthn.ai/core/cli.git
cd core
# Build BugSETI

View file

@ -12,7 +12,7 @@ description: |
it pulls OSS issues from GitHub, AI prepares context,
you fix bugs, and it auto-submits PRs.
vendor: "Lethean"
homepage: "https://github.com/host-uk/core"
homepage: "https://forge.lthn.ai/core/cli"
license: "MIT"
contents:

View file

@ -1,20 +1,20 @@
module github.com/host-uk/core/cmd/bugseti
module forge.lthn.ai/core/cli/cmd/bugseti
go 1.25.5
require (
github.com/Snider/Borg v0.2.0
github.com/host-uk/core v0.0.0
github.com/host-uk/core/internal/bugseti v0.0.0
github.com/host-uk/core/internal/bugseti/updater v0.0.0
forge.lthn.ai/core/cli v0.0.0
forge.lthn.ai/core/cli/internal/bugseti v0.0.0
forge.lthn.ai/core/cli/internal/bugseti/updater v0.0.0
github.com/wailsapp/wails/v3 v3.0.0-alpha.64
)
replace github.com/host-uk/core => ../..
replace forge.lthn.ai/core/cli => ../..
replace github.com/host-uk/core/internal/bugseti => ../../internal/bugseti
replace forge.lthn.ai/core/cli/internal/bugseti => ../../internal/bugseti
replace github.com/host-uk/core/internal/bugseti/updater => ../../internal/bugseti/updater
replace forge.lthn.ai/core/cli/internal/bugseti/updater => ../../internal/bugseti/updater
require (
dario.cat/mergo v1.0.2 // indirect

View file

@ -16,9 +16,9 @@ import (
"runtime"
"strings"
"github.com/host-uk/core/cmd/bugseti/icons"
"github.com/host-uk/core/internal/bugseti"
"github.com/host-uk/core/internal/bugseti/updater"
"forge.lthn.ai/core/cli/cmd/bugseti/icons"
"forge.lthn.ai/core/cli/internal/bugseti"
"forge.lthn.ai/core/cli/internal/bugseti/updater"
"github.com/wailsapp/wails/v3/pkg/application"
"github.com/wailsapp/wails/v3/pkg/events"
)

View file

@ -5,7 +5,7 @@ import (
"context"
"log"
"github.com/host-uk/core/internal/bugseti"
"forge.lthn.ai/core/cli/internal/bugseti"
"github.com/wailsapp/wails/v3/pkg/application"
)

View file

@ -11,8 +11,8 @@ import (
"time"
"github.com/Snider/Borg/pkg/tim"
"github.com/host-uk/core/internal/bugseti"
"github.com/host-uk/core/pkg/io/datanode"
"forge.lthn.ai/core/cli/internal/bugseti"
"forge.lthn.ai/core/cli/pkg/io/datanode"
)
// WorkspaceService manages DataNode-backed workspaces for issues.

View file

@ -186,7 +186,7 @@
<div class="flex items-center gap-6 text-sm">
<a href="#how-it-works" class="text-lethean-400 hover:text-lethean-200 transition-colors link-underline">How it works</a>
<a href="#ecosystem" class="text-lethean-400 hover:text-lethean-200 transition-colors link-underline">Ecosystem</a>
<a href="https://github.com/host-uk/core" target="_blank" rel="noopener" class="text-lethean-400 hover:text-lethean-200 transition-colors link-underline">GitHub</a>
<a href="https://forge.lthn.ai/core/cli" target="_blank" rel="noopener" class="text-lethean-400 hover:text-lethean-200 transition-colors link-underline">GitHub</a>
<a href="#join" class="inline-flex items-center gap-1.5 px-4 py-1.5 rounded-md bg-cyan-400/10 text-cyan-400 border border-cyan-400/20 hover:bg-cyan-400/20 hover:border-cyan-400/30 transition-all text-sm font-medium">
Get BugSETI
</a>
@ -249,7 +249,7 @@
Download BugSETI
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 7l5 5m0 0l-5 5m5-5H6"/></svg>
</a>
<a href="https://github.com/host-uk/core" target="_blank" rel="noopener" class="inline-flex items-center gap-2 px-6 py-3 rounded-lg border border-lethean-600/50 text-lethean-300 font-medium text-sm hover:bg-lethean-800/50 hover:border-lethean-500/50 transition-all">
<a href="https://forge.lthn.ai/core/cli" target="_blank" rel="noopener" class="inline-flex items-center gap-2 px-6 py-3 rounded-lg border border-lethean-600/50 text-lethean-300 font-medium text-sm hover:bg-lethean-800/50 hover:border-lethean-500/50 transition-all">
<svg class="w-4 h-4" fill="currentColor" viewBox="0 0 24 24"><path d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z"/></svg>
View Source
</a>
@ -518,13 +518,13 @@
<!-- Download buttons -->
<div class="flex flex-col sm:flex-row items-center justify-center gap-3 mb-12">
<a href="https://github.com/host-uk/core/releases" target="_blank" rel="noopener" class="w-full sm:w-auto inline-flex items-center justify-center gap-2 px-6 py-3.5 rounded-lg bg-lethean-800 border border-lethean-600/40 text-lethean-200 font-medium text-sm hover:bg-lethean-700 hover:border-lethean-500/50 transition-all">
<a href="https://forge.lthn.ai/core/cli/releases" target="_blank" rel="noopener" class="w-full sm:w-auto inline-flex items-center justify-center gap-2 px-6 py-3.5 rounded-lg bg-lethean-800 border border-lethean-600/40 text-lethean-200 font-medium text-sm hover:bg-lethean-700 hover:border-lethean-500/50 transition-all">
<span class="text-lg">🐧</span> Linux
</a>
<a href="https://github.com/host-uk/core/releases" target="_blank" rel="noopener" class="w-full sm:w-auto inline-flex items-center justify-center gap-2 px-6 py-3.5 rounded-lg bg-lethean-800 border border-lethean-600/40 text-lethean-200 font-medium text-sm hover:bg-lethean-700 hover:border-lethean-500/50 transition-all">
<a href="https://forge.lthn.ai/core/cli/releases" target="_blank" rel="noopener" class="w-full sm:w-auto inline-flex items-center justify-center gap-2 px-6 py-3.5 rounded-lg bg-lethean-800 border border-lethean-600/40 text-lethean-200 font-medium text-sm hover:bg-lethean-700 hover:border-lethean-500/50 transition-all">
<span class="text-lg">🍎</span> macOS
</a>
<a href="https://github.com/host-uk/core/releases" target="_blank" rel="noopener" class="w-full sm:w-auto inline-flex items-center justify-center gap-2 px-6 py-3.5 rounded-lg bg-lethean-800 border border-lethean-600/40 text-lethean-200 font-medium text-sm hover:bg-lethean-700 hover:border-lethean-500/50 transition-all">
<a href="https://forge.lthn.ai/core/cli/releases" target="_blank" rel="noopener" class="w-full sm:w-auto inline-flex items-center justify-center gap-2 px-6 py-3.5 rounded-lg bg-lethean-800 border border-lethean-600/40 text-lethean-200 font-medium text-sm hover:bg-lethean-700 hover:border-lethean-500/50 transition-all">
<span class="text-lg">🪟</span> Windows
</a>
</div>
@ -533,7 +533,7 @@
<div class="gradient-border rounded-lg overflow-hidden max-w-md mx-auto">
<div class="bg-lethean-900 rounded-lg px-5 py-3 font-mono text-sm text-left">
<span class="text-lethean-500"># or build from source</span><br>
<span class="text-cyan-400">$</span> <span class="text-lethean-300">git clone https://github.com/host-uk/core</span><br>
<span class="text-cyan-400">$</span> <span class="text-lethean-300">git clone https://forge.lthn.ai/core/cli</span><br>
<span class="text-cyan-400">$</span> <span class="text-lethean-300">cd core && go build ./cmd/bugseti</span>
</div>
</div>

View file

@ -1,4 +1,4 @@
module github.com/host-uk/core/cmd/core-app
module forge.lthn.ai/core/cli/cmd/core-app
go 1.25.5
@ -64,4 +64,4 @@ require (
gopkg.in/warnings.v0 v0.1.2 // indirect
)
replace github.com/host-uk/core => ../..
replace forge.lthn.ai/core/cli => ../..

View file

@ -11,7 +11,7 @@ import (
"log"
"runtime"
"github.com/host-uk/core/cmd/core-app/icons"
"forge.lthn.ai/core/cli/cmd/core-app/icons"
"github.com/wailsapp/wails/v3/pkg/application"
)

View file

@ -5,7 +5,7 @@ import (
"log"
"time"
"github.com/host-uk/core/pkg/mcp/ide"
"forge.lthn.ai/core/cli/pkg/mcp/ide"
"github.com/wailsapp/wails/v3/pkg/application"
)

View file

@ -5,7 +5,7 @@ import (
"log"
"time"
"github.com/host-uk/core/pkg/mcp/ide"
"forge.lthn.ai/core/cli/pkg/mcp/ide"
"github.com/wailsapp/wails/v3/pkg/application"
)

View file

@ -1,10 +1,10 @@
module github.com/host-uk/core/cmd/core-ide
module forge.lthn.ai/core/cli/cmd/core-ide
go 1.25.5
require (
github.com/gorilla/websocket v1.5.3
github.com/host-uk/core v0.0.0
forge.lthn.ai/core/cli v0.0.0
github.com/wailsapp/wails/v3 v3.0.0-alpha.64
)
@ -54,4 +54,4 @@ require (
gopkg.in/warnings.v0 v0.1.2 // indirect
)
replace github.com/host-uk/core => ../..
replace forge.lthn.ai/core/cli => ../..

View file

@ -4,8 +4,8 @@ import (
"context"
"log"
"github.com/host-uk/core/pkg/mcp/ide"
"github.com/host-uk/core/pkg/ws"
"forge.lthn.ai/core/cli/pkg/mcp/ide"
"forge.lthn.ai/core/cli/pkg/ws"
"github.com/wailsapp/wails/v3/pkg/application"
)

View file

@ -13,9 +13,9 @@ import (
"runtime"
"strings"
"github.com/host-uk/core/cmd/core-ide/icons"
"github.com/host-uk/core/pkg/mcp/ide"
"github.com/host-uk/core/pkg/ws"
"forge.lthn.ai/core/cli/cmd/core-ide/icons"
"forge.lthn.ai/core/cli/pkg/mcp/ide"
"forge.lthn.ai/core/cli/pkg/ws"
"github.com/wailsapp/wails/v3/pkg/application"
)

View file

@ -8,7 +8,7 @@ import (
"net/http"
"sync"
"github.com/host-uk/core/pkg/ws"
"forge.lthn.ai/core/cli/pkg/ws"
"github.com/wailsapp/wails/v3/pkg/application"
)

BIN
core-ide Executable file

Binary file not shown.

View file

@ -26,8 +26,8 @@ core dev work --status
repos:
- name: core
path: ./core
url: https://github.com/host-uk/core
url: https://forge.lthn.ai/core/cli
- name: core-php
path: ./core-php
url: https://github.com/host-uk/core-php
url: https://forge.lthn.ai/core/cli-php
```

View file

@ -32,7 +32,7 @@ core go mod graph | dot -Tpng -o deps.png
## Output
```
github.com/host-uk/core github.com/stretchr/testify@v1.11.1
forge.lthn.ai/core/cli github.com/stretchr/testify@v1.11.1
github.com/stretchr/testify@v1.11.1 github.com/davecgh/go-spew@v1.1.2
github.com/stretchr/testify@v1.11.1 github.com/pmezard/go-difflib@v1.0.1
...

View file

@ -23,7 +23,7 @@ Unified interface for Go/PHP development, multi-repo management, and deployment.
## Installation
```bash
go install github.com/host-uk/core/cmd/core@latest
go install forge.lthn.ai/core/cli/cmd/core@latest
```
Verify: `core doctor`

View file

@ -21,7 +21,7 @@ It is both. The Core Framework (`pkg/core`) is a library for building Go desktop
The recommended way is via Go:
```bash
go install github.com/host-uk/core/cmd/core@latest
go install forge.lthn.ai/core/cli/cmd/core@latest
```
Ensure your Go bin directory is in your PATH. See [Getting Started](getting-started.md) for more options.

View file

@ -25,7 +25,7 @@ Optional (for specific features):
```bash
# Install latest release
go install github.com/host-uk/core/cmd/core@latest
go install forge.lthn.ai/core/cli/cmd/core@latest
# Verify installation
core doctor
@ -39,21 +39,21 @@ export PATH="$PATH:$(go env GOPATH)/bin"
### Option 2: Download Binary
Download pre-built binaries from [GitHub Releases](https://github.com/host-uk/core/releases):
Download pre-built binaries from [GitHub Releases](https://forge.lthn.ai/core/cli/releases):
```bash
# macOS (Apple Silicon)
curl -Lo core https://github.com/host-uk/core/releases/latest/download/core-darwin-arm64
curl -Lo core https://forge.lthn.ai/core/cli/releases/latest/download/core-darwin-arm64
chmod +x core
sudo mv core /usr/local/bin/
# macOS (Intel)
curl -Lo core https://github.com/host-uk/core/releases/latest/download/core-darwin-amd64
curl -Lo core https://forge.lthn.ai/core/cli/releases/latest/download/core-darwin-amd64
chmod +x core
sudo mv core /usr/local/bin/
# Linux (x86_64)
curl -Lo core https://github.com/host-uk/core/releases/latest/download/core-linux-amd64
curl -Lo core https://forge.lthn.ai/core/cli/releases/latest/download/core-linux-amd64
chmod +x core
sudo mv core /usr/local/bin/
```
@ -62,7 +62,7 @@ sudo mv core /usr/local/bin/
```bash
# Clone repository
git clone https://github.com/host-uk/core.git
git clone https://forge.lthn.ai/core/cli.git
cd core
# Build with Task (recommended)
@ -181,7 +181,7 @@ core doctor
core <command> --help
# Full documentation
https://github.com/host-uk/core/tree/main/docs
https://forge.lthn.ai/core/cli/tree/main/docs
```
## See Also

View file

@ -6,10 +6,10 @@ Core is a unified CLI for the host-uk ecosystem - build, release, and deploy Go,
```bash
# Via Go (recommended)
go install github.com/host-uk/core/cmd/core@latest
go install forge.lthn.ai/core/cli/cmd/core@latest
# Or download binary from releases
curl -Lo core https://github.com/host-uk/core/releases/latest/download/core-$(go env GOOS)-$(go env GOARCH)
curl -Lo core https://forge.lthn.ai/core/cli/releases/latest/download/core-$(go env GOOS)-$(go env GOARCH)
chmod +x core && sudo mv core /usr/local/bin/
# Verify

View file

@ -364,7 +364,7 @@ import (
"log"
"time"
"github.com/host-uk/core/pkg/webview"
"forge.lthn.ai/core/cli/pkg/webview"
)
func main() {
@ -424,7 +424,7 @@ import (
"log"
"time"
"github.com/host-uk/core/pkg/webview"
"forge.lthn.ai/core/cli/pkg/webview"
)
func main() {

View file

@ -47,8 +47,8 @@ Here is the technical documentation for the Core framework packages.
* **Framework Integration**: The `Service` struct embeds `framework.ServiceRuntime`, utilizing the Actor pattern (Queries and Tasks) to allow dynamic log level adjustment at runtime without restarting the application.
### 4. Dependencies
* `github.com/host-uk/core/pkg/io`: Used by `rotation.go` to handle file operations (renaming, deleting, writing) abstractly.
* `github.com/host-uk/core/pkg/framework`: Used by `service.go` to hook into the application lifecycle and message bus.
* `forge.lthn.ai/core/cli/pkg/io`: Used by `rotation.go` to handle file operations (renaming, deleting, writing) abstractly.
* `forge.lthn.ai/core/cli/pkg/framework`: Used by `service.go` to hook into the application lifecycle and message bus.
* Standard Lib: `errors`, `fmt`, `os`, `sync`, `time`.
### 5. Test Coverage Notes
@ -88,8 +88,8 @@ Here is the technical documentation for the Core framework packages.
### 4. Dependencies
* `github.com/spf13/viper`: Core logic for map merging and unmarshalling.
* `gopkg.in/yaml.v3`: For marshalling data when saving.
* `github.com/host-uk/core/pkg/io`: For reading/writing config files.
* `github.com/host-uk/core/pkg/framework/core`: For service integration and error handling.
* `forge.lthn.ai/core/cli/pkg/io`: For reading/writing config files.
* `forge.lthn.ai/core/cli/pkg/framework/core`: For service integration and error handling.
### 5. Test Coverage Notes
* **Precedence**: Verify that Environment variables override File values.
@ -122,7 +122,7 @@ Here is the technical documentation for the Core framework packages.
### 4. Dependencies
* Standard Lib: `io`, `io/fs`, `os`, `path/filepath`, `strings`, `time`.
* `github.com/host-uk/core/pkg/io/local`: (Implied) The concrete implementation for OS disk access.
* `forge.lthn.ai/core/cli/pkg/io/local`: (Implied) The concrete implementation for OS disk access.
### 5. Test Coverage Notes
* **Mock fidelity**: The `MockMedium` must behave exactly like the OS. E.g., `Rename` should fail if the source doesn't exist; `Delete` should fail if a directory is not empty.
@ -198,10 +198,10 @@ Here is the technical documentation for the Core framework packages.
4. Server validates signature against User Public Key.
### 4. Dependencies
* `github.com/host-uk/core/pkg/io`: For user database storage.
* `github.com/host-uk/core/pkg/crypt/lthn`: (Implied) Specific password hashing.
* `github.com/host-uk/core/pkg/crypt/pgp`: (Implied) OpenPGP operations.
* `github.com/host-uk/core/pkg/framework/core`: Error handling.
* `forge.lthn.ai/core/cli/pkg/io`: For user database storage.
* `forge.lthn.ai/core/cli/pkg/crypt/lthn`: (Implied) Specific password hashing.
* `forge.lthn.ai/core/cli/pkg/crypt/pgp`: (Implied) OpenPGP operations.
* `forge.lthn.ai/core/cli/pkg/framework/core`: Error handling.
### 5. Test Coverage Notes
* **Flow Verification**: Full integration test simulating a client: Register -> Get Challenge -> Decrypt/Sign (Mock Client) -> Validate -> Get Token.

View file

@ -60,9 +60,9 @@ The `cli` package is a comprehensive application runtime and UI framework design
### 4. Dependencies
- `github.com/spf13/cobra`: The underlying command routing engine.
- `github.com/host-uk/core/pkg/framework`: The dependency injection and service lifecycle container.
- `github.com/host-uk/core/pkg/i18n`: For translation and semantic grammar generation.
- `github.com/host-uk/core/pkg/log`: For structured logging.
- `forge.lthn.ai/core/cli/pkg/framework`: The dependency injection and service lifecycle container.
- `forge.lthn.ai/core/cli/pkg/i18n`: For translation and semantic grammar generation.
- `forge.lthn.ai/core/cli/pkg/log`: For structured logging.
- `golang.org/x/term`: For TTY detection.
### 5. Test Coverage Notes
@ -162,8 +162,8 @@ The `workspace` package implements the `core.Workspace` interface, providing iso
- **Key Management**: Delegates actual key generation to the core's `Crypt()` service but manages the storage of the resulting keys within the workspace layout.
### 4. Dependencies
- `github.com/host-uk/core/pkg/framework/core`: Interfaces.
- `github.com/host-uk/core/pkg/io`: File system abstraction (`io.Medium`).
- `forge.lthn.ai/core/cli/pkg/framework/core`: Interfaces.
- `forge.lthn.ai/core/cli/pkg/io`: File system abstraction (`io.Medium`).
- `crypt` service (Runtime dependency): Required for `CreateWorkspace`.
### 5. Test Coverage Notes

View file

@ -87,8 +87,8 @@ type Builder interface {
### 4. Dependencies
* `archive/tar`, `archive/zip`, `compress/gzip`: Standard library for archiving.
* `github.com/Snider/Borg/pkg/compress`: External dependency for XZ compression support.
* `github.com/host-uk/core/pkg/io`: Internal interface for filesystem abstraction.
* `github.com/host-uk/core/pkg/config`: Internal centralized configuration loading.
* `forge.lthn.ai/core/cli/pkg/io`: Internal interface for filesystem abstraction.
* `forge.lthn.ai/core/cli/pkg/config`: Internal centralized configuration loading.
### 5. Test Coverage Notes
* **Mocking IO**: Tests must implement a mock `io.Medium` to simulate file existence (`Detect`) and write operations (`Archive`) without touching the disk.
@ -158,7 +158,7 @@ type RunOptions struct {
### 4. Dependencies
* `os/exec`: Essential for spawning the hypervisor processes.
* `embed`: For built-in templates.
* `github.com/host-uk/core/pkg/io`: Filesystem access for state and logs.
* `forge.lthn.ai/core/cli/pkg/io`: Filesystem access for state and logs.
### 5. Test Coverage Notes
* **Process Management**: Difficult to test `Run` in standard CI. Mocking `exec.Command` or the `Hypervisor` interface is required.
@ -224,7 +224,7 @@ func (r *Runner) RunParallel(ctx context.Context, specs []RunSpec) (*RunAllResul
### 4. Dependencies
* `os/exec`: The underlying execution engine.
* `github.com/host-uk/core/pkg/framework`: Creates the `ServiceRuntime` and provides the IPC/Action bus.
* `forge.lthn.ai/core/cli/pkg/framework`: Creates the `ServiceRuntime` and provides the IPC/Action bus.
### 5. Test Coverage Notes
* **Concurrency**: The `Runner` needs tests for race conditions during parallel execution.
@ -286,7 +286,7 @@ type JobHandler interface {
* **Journaling**: Writes `jsonl` (JSON Lines) files partitioned by repository and date (`baseDir/owner/repo/YYYY-MM-DD.jsonl`), ensuring an append-only audit trail.
### 4. Dependencies
* `github.com/host-uk/core/pkg/log`: Internal logging.
* `forge.lthn.ai/core/cli/pkg/log`: Internal logging.
* `encoding/json`: For journal serialization.
### 5. Test Coverage Notes

View file

@ -72,7 +72,7 @@ func NewService(opts ServiceOptions) func(*framework.Core) (any, error)
### Dependencies
* `os/exec`: For invoking git commands.
* `github.com/host-uk/core/pkg/framework`: For service registration and message passing types.
* `forge.lthn.ai/core/cli/pkg/framework`: For service registration and message passing types.
### Test Coverage Notes
* **Mocking**: Testing requires abstracting `exec.Command`. Since this package calls `exec.CommandContext` directly, tests likely require overriding a package-level variable or using a "fake exec" pattern during test initialization.
@ -135,7 +135,7 @@ func (repo *Repo) IsGitRepo() bool
### Dependencies
* `gopkg.in/yaml.v3`: For parsing `repos.yaml`.
* `github.com/host-uk/core/pkg/io`: For filesystem abstraction (`io.Medium`).
* `forge.lthn.ai/core/cli/pkg/io`: For filesystem abstraction (`io.Medium`).
### Test Coverage Notes
* **Circular Dependencies**: Critical test cases must define a registry with `A->B->A` dependencies to ensure `TopologicalOrder` returns a clear error and doesn't stack overflow.
@ -197,7 +197,7 @@ func (c *Client) ListUserRepos(...)
### Dependencies
* `code.gitea.io/sdk/gitea` (for `pkg/gitea`)
* `codeberg.org/mvdkleijn/forgejo-sdk` (for `pkg/forge`)
* `github.com/host-uk/core/pkg/config`: For persistent auth storage.
* `forge.lthn.ai/core/cli/pkg/config`: For persistent auth storage.
### Test Coverage Notes
* **Draft Status**: The raw HTTP patch in `pkg/forge` needs integration testing against a real instance or a high-fidelity HTTP mock to ensure payload format matches Forgejo's API expectation.
@ -250,8 +250,8 @@ func IncrementVersion(current string) string
* **SDK Generation**: Includes a specialized sub-pipeline (`RunSDK`) that handles OpenAPI diffing and client generation.
### Dependencies
* `github.com/host-uk/core/pkg/build`: For compiling artifacts.
* `github.com/host-uk/core/pkg/release/publishers`: Interface definitions for publishing targets.
* `forge.lthn.ai/core/cli/pkg/build`: For compiling artifacts.
* `forge.lthn.ai/core/cli/pkg/release/publishers`: Interface definitions for publishing targets.
* `golang.org/x/text`: For title casing in changelogs.
### Test Coverage Notes

View file

@ -51,8 +51,8 @@ func ListAgents(cfg *config.Config) (map[string]AgentConfig, error)
* **Defaults Handling**: `LoadAgents` applies specific logic defaults (e.g., default queue directories, default models like "sonnet") to ensure the system works with minimal configuration.
### 4. Dependencies
* `github.com/host-uk/core/pkg/config`: For reading/writing the persistent configuration state.
* `github.com/host-uk/core/pkg/jobrunner/handlers`: To map local config structs to the runtime types used by the job dispatch system.
* `forge.lthn.ai/core/cli/pkg/config`: For reading/writing the persistent configuration state.
* `forge.lthn.ai/core/cli/pkg/jobrunner/handlers`: To map local config structs to the runtime types used by the job dispatch system.
### 5. Test Coverage Notes
* **Configuration Persistence**: Tests should verify that `SaveAgent` correctly updates the underlying config file and that `LoadAgents` retrieves it accurately.

View file

@ -58,7 +58,7 @@ type TaskResult struct { Changed, Failed bool; Msg, Stdout string; ... }
* **SSH Abstraction**: `ssh.go` wraps `golang.org/x/crypto/ssh` to handle connection pooling, key management, and `sudo` escalation (become).
### 4. Dependencies
* `github.com/host-uk/core/pkg/log`: structured logging.
* `forge.lthn.ai/core/cli/pkg/log`: structured logging.
* `golang.org/x/crypto/ssh`: Underlying SSH transport.
* `gopkg.in/yaml.v3`: YAML parsing.
@ -129,7 +129,7 @@ Re-exports `Core`, `Option`, `Message`, `Startable`, `Stoppable`, and constructo
Purely structural; contains type aliases and variable assignments to expose the internal `core` package.
### 4. Dependencies
* `github.com/host-uk/core/pkg/framework/core`
* `forge.lthn.ai/core/cli/pkg/framework/core`
### 5. Test Coverage Notes
No logic to test directly; coverage belongs in `pkg/framework/core`.

View file

@ -40,7 +40,7 @@ package mypackage
import (
"sync"
"github.com/host-uk/core/pkg/framework"
"forge.lthn.ai/core/cli/pkg/framework"
)
// Service provides mypackage functionality with Core integration.
@ -120,7 +120,7 @@ import (
"sync"
"sync/atomic"
"github.com/host-uk/core/pkg/framework"
"forge.lthn.ai/core/cli/pkg/framework"
)
// Global default service

View file

@ -5,7 +5,7 @@ The `pkg/i18n` package provides internationalisation and localisation for Go CLI
## Quick Start
```go
import "github.com/host-uk/core/pkg/i18n"
import "forge.lthn.ai/core/cli/pkg/i18n"
func main() {
// Initialise with embedded locales

View file

@ -15,7 +15,7 @@
**Files:**
- Create: `go.work`
**Context:** The repo has two real modules — the root (`github.com/host-uk/core`) and core-ide (`github.com/host-uk/core/internal/core-ide`). Without a workspace, core-ide can't import `pkg/jobrunner` from the root module during local development without fragile `replace` directives. A `go.work` file makes cross-module imports resolve locally, keeps each module's `go.mod` clean, and lets CI build each variant independently.
**Context:** The repo has two real modules — the root (`forge.lthn.ai/core/cli`) and core-ide (`forge.lthn.ai/core/cli/internal/core-ide`). Without a workspace, core-ide can't import `pkg/jobrunner` from the root module during local development without fragile `replace` directives. A `go.work` file makes cross-module imports resolve locally, keeps each module's `go.mod` clean, and lets CI build each variant independently.
**Step 1: Create the workspace file**
@ -580,7 +580,7 @@ import (
"fmt"
"time"
"github.com/host-uk/core/pkg/log"
"forge.lthn.ai/core/cli/pkg/log"
)
// PollerConfig configures the job runner poller.
@ -732,7 +732,7 @@ func (p *Poller) AddHandler(h JobHandler) {
_ = fmt.Sprintf // ensure fmt imported for future use
```
Wait — remove that last line. The `fmt` import is only needed if used. Let me correct: the implementation above doesn't use `fmt` directly, so remove it from imports. The `log` package import path is `github.com/host-uk/core/pkg/log`.
Wait — remove that last line. The `fmt` import is only needed if used. Let me correct: the implementation above doesn't use `fmt` directly, so remove it from imports. The `log` package import path is `forge.lthn.ai/core/cli/pkg/log`.
**Step 4: Run tests**
@ -755,7 +755,7 @@ git commit -m "feat(jobrunner): add Poller with multi-source dispatch and journa
- Create: `pkg/jobrunner/github/signals.go`
- Test: `pkg/jobrunner/github/source_test.go`
**Context:** This package lives in the root go.mod (`github.com/host-uk/core`), NOT in the core-ide module. It uses `oauth2` and the GitHub REST API (same pattern as `internal/cmd/updater/github.go`). Uses conditional requests (ETag/If-None-Match) to conserve rate limit.
**Context:** This package lives in the root go.mod (`forge.lthn.ai/core/cli`), NOT in the core-ide module. It uses `oauth2` and the GitHub REST API (same pattern as `internal/cmd/updater/github.go`). Uses conditional requests (ETag/If-None-Match) to conserve rate limit.
**Step 1: Write the test**
@ -769,7 +769,7 @@ import (
"net/http/httptest"
"testing"
"github.com/host-uk/core/pkg/jobrunner"
"forge.lthn.ai/core/cli/pkg/jobrunner"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
@ -856,7 +856,7 @@ import (
"strings"
"time"
"github.com/host-uk/core/pkg/jobrunner"
"forge.lthn.ai/core/cli/pkg/jobrunner"
)
// ghIssue is the minimal structure from GitHub Issues API.
@ -985,8 +985,8 @@ import (
"os"
"strings"
"github.com/host-uk/core/pkg/jobrunner"
"github.com/host-uk/core/pkg/log"
"forge.lthn.ai/core/cli/pkg/jobrunner"
"forge.lthn.ai/core/cli/pkg/log"
"golang.org/x/oauth2"
)
@ -1176,7 +1176,7 @@ import (
"net/http/httptest"
"testing"
"github.com/host-uk/core/pkg/jobrunner"
"forge.lthn.ai/core/cli/pkg/jobrunner"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
@ -1259,7 +1259,7 @@ import (
"net/http"
"time"
"github.com/host-uk/core/pkg/jobrunner"
"forge.lthn.ai/core/cli/pkg/jobrunner"
)
// PublishDraft marks a draft PR as ready for review.
@ -1355,7 +1355,7 @@ import (
"net/http/httptest"
"testing"
"github.com/host-uk/core/pkg/jobrunner"
"forge.lthn.ai/core/cli/pkg/jobrunner"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
@ -1438,7 +1438,7 @@ import (
"net/http"
"time"
"github.com/host-uk/core/pkg/jobrunner"
"forge.lthn.ai/core/cli/pkg/jobrunner"
)
// SendFixCommand comments on a PR to request a fix.
@ -1559,7 +1559,7 @@ import (
"os/exec"
"time"
"github.com/host-uk/core/pkg/jobrunner"
"forge.lthn.ai/core/cli/pkg/jobrunner"
)
type EnableAutoMerge struct{}
@ -1657,7 +1657,7 @@ import (
"net/http/httptest"
"testing"
"github.com/host-uk/core/pkg/jobrunner"
"forge.lthn.ai/core/cli/pkg/jobrunner"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
@ -1758,7 +1758,7 @@ import (
"net/http"
"time"
"github.com/host-uk/core/pkg/jobrunner"
"forge.lthn.ai/core/cli/pkg/jobrunner"
)
// ResolveThreads resolves all unresolved review threads on a PR.
@ -1918,16 +1918,16 @@ git commit -m "feat(jobrunner): add resolve_threads handler with GraphQL"
**Context:** core-ide currently always creates a Wails app. We need to branch: headless starts the poller + MCP bridge directly; desktop mode keeps the existing Wails app with poller as an optional service.
Note: core-ide has its own `go.mod` (`github.com/host-uk/core/internal/core-ide`). The jobrunner package lives in the root module. We need to add the root module as a dependency of core-ide, OR move the handler wiring into the root module. **Simplest approach:** core-ide imports `github.com/host-uk/core/pkg/jobrunner` — this requires adding the root module as a dependency in core-ide's go.mod.
Note: core-ide has its own `go.mod` (`forge.lthn.ai/core/cli/internal/core-ide`). The jobrunner package lives in the root module. We need to add the root module as a dependency of core-ide, OR move the handler wiring into the root module. **Simplest approach:** core-ide imports `forge.lthn.ai/core/cli/pkg/jobrunner` — this requires adding the root module as a dependency in core-ide's go.mod.
**Step 1: Update core-ide go.mod**
Run: `cd /Users/snider/Code/host-uk/core/internal/core-ide && go get github.com/host-uk/core/pkg/jobrunner`
Run: `cd /Users/snider/Code/host-uk/core/internal/core-ide && go get forge.lthn.ai/core/cli/pkg/jobrunner`
If this fails because the package isn't published yet, use a `replace` directive temporarily:
```
replace github.com/host-uk/core => ../..
replace forge.lthn.ai/core/cli => ../..
```
Then `go mod tidy`.
@ -2020,7 +2020,7 @@ git commit -m "feat(core-ide): register job handlers as MCP tools"
```go
// In startHeadless(), before starting poller:
updaterSvc, err := updater.NewUpdateService(updater.UpdateServiceConfig{
RepoURL: "https://github.com/host-uk/core",
RepoURL: "https://forge.lthn.ai/core/cli",
Channel: "alpha",
CheckOnStartup: updater.CheckAndUpdateOnStartup,
})

View file

@ -81,8 +81,8 @@ import (
"context"
"fmt"
ragcmd "github.com/host-uk/core/internal/cmd/rag"
"github.com/host-uk/core/pkg/rag"
ragcmd "forge.lthn.ai/core/cli/internal/cmd/rag"
"forge.lthn.ai/core/cli/pkg/rag"
"github.com/modelcontextprotocol/go-sdk/mcp"
)
@ -368,7 +368,7 @@ import (
"fmt"
"time"
"github.com/host-uk/core/pkg/ai"
"forge.lthn.ai/core/cli/pkg/ai"
"github.com/modelcontextprotocol/go-sdk/mcp"
)
@ -608,9 +608,9 @@ import (
"os/signal"
"syscall"
"github.com/host-uk/core/pkg/cli"
"github.com/host-uk/core/pkg/i18n"
"github.com/host-uk/core/pkg/mcp"
"forge.lthn.ai/core/cli/pkg/cli"
"forge.lthn.ai/core/cli/pkg/i18n"
"forge.lthn.ai/core/cli/pkg/mcp"
)
func init() {
@ -695,7 +695,7 @@ Modify `internal/variants/full.go` to add:
```go
import (
// ... existing imports ...
_ "github.com/host-uk/core/internal/cmd/mcpcmd"
_ "forge.lthn.ai/core/cli/internal/cmd/mcpcmd"
)
```

View file

@ -18,7 +18,7 @@ export PATH="$PATH:$(go env GOPATH)/bin"
source ~/.bashrc # or ~/.zshrc
```
### "go: module github.com/host-uk/core: no matching versions"
### "go: module forge.lthn.ai/core/cli: no matching versions"
**Cause:** Go module proxy hasn't cached the latest version yet.
@ -26,7 +26,7 @@ source ~/.bashrc # or ~/.zshrc
```bash
# Bypass proxy
GOPROXY=direct go install github.com/host-uk/core/cmd/core@latest
GOPROXY=direct go install forge.lthn.ai/core/cli/cmd/core@latest
```
---
@ -340,7 +340,7 @@ This verifies all required tools are installed and configured.
If you've found a bug:
1. Check existing issues: https://github.com/host-uk/core/issues
1. Check existing issues: https://forge.lthn.ai/core/cli/issues
2. Create a new issue with:
- Core version (`core --version`)
- OS and architecture (`go env GOOS GOARCH`)

View file

@ -173,7 +173,7 @@ jobs:
go-version: '1.23'
- name: Install Core
run: go install github.com/host-uk/core/cmd/core@latest
run: go install forge.lthn.ai/core/cli/cmd/core@latest
- name: Build
run: core build --ci

3
go.mod
View file

@ -1,4 +1,4 @@
module github.com/host-uk/core
module forge.lthn.ai/core/cli
go 1.25.5
@ -6,7 +6,6 @@ require (
code.gitea.io/sdk/gitea v0.23.2
github.com/Snider/Borg v0.2.0
github.com/getkin/kin-openapi v0.133.0
github.com/host-uk/core/internal/core-ide v0.0.0-20260204004957-989b7e1e6555
github.com/kluctl/go-embed-python v0.0.0-3.13.1-20241219-1
github.com/leaanthony/debme v1.2.1
github.com/leaanthony/gosod v1.0.4

2
go.sum
View file

@ -143,8 +143,6 @@ github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aN
github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY=
github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
github.com/host-uk/core/internal/core-ide v0.0.0-20260204004957-989b7e1e6555 h1:v5LWtsFypIhFzZpTx+mY64D5TyCI+CqJY8hmqmEx23E=
github.com/host-uk/core/internal/core-ide v0.0.0-20260204004957-989b7e1e6555/go.mod h1:YWAcL4vml/IMkYVKqf5J4ukTINVH1zGw0G8vg/qlops=
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A=

View file

@ -1,4 +1,4 @@
module github.com/host-uk/core/internal/bugseti
module forge.lthn.ai/core/cli/internal/bugseti
go 1.25.5

View file

@ -344,7 +344,7 @@ func (s *SubmitService) generatePRBody(issue *Issue) string {
body.WriteString("<!-- Describe how you tested your changes -->\n\n")
body.WriteString("---\n\n")
body.WriteString("*Submitted via [BugSETI](https://github.com/host-uk/core) - Distributed Bug Fixing*\n")
body.WriteString("*Submitted via [BugSETI](https://forge.lthn.ai/core/cli) - Distributed Bug Fixing*\n")
return body.String()
}

View file

@ -1,10 +1,10 @@
module github.com/host-uk/core/internal/bugseti/updater
module forge.lthn.ai/core/cli/internal/bugseti/updater
go 1.25.5
require (
github.com/host-uk/core/internal/bugseti v0.0.0
forge.lthn.ai/core/cli/internal/bugseti v0.0.0
golang.org/x/mod v0.25.0
)
replace github.com/host-uk/core/internal/bugseti => ../
replace forge.lthn.ai/core/cli/internal/bugseti => ../

View file

@ -7,7 +7,7 @@ import (
"sync"
"time"
"github.com/host-uk/core/internal/bugseti"
"forge.lthn.ai/core/cli/internal/bugseti"
)
// Service provides update functionality and Wails bindings.

View file

@ -7,7 +7,7 @@ import (
)
// Version information - these are set at build time via ldflags
// Example: go build -ldflags "-X github.com/host-uk/core/internal/bugseti.Version=1.0.0"
// Example: go build -ldflags "-X forge.lthn.ai/core/cli/internal/bugseti.Version=1.0.0"
var (
// Version is the semantic version (e.g., "1.0.0", "1.0.0-beta.1", "nightly-20260205")
Version = "dev"

View file

@ -7,9 +7,9 @@ import (
"path/filepath"
"strings"
"github.com/host-uk/core/pkg/agentci"
"github.com/host-uk/core/pkg/cli"
"github.com/host-uk/core/pkg/config"
"forge.lthn.ai/core/cli/pkg/agentci"
"forge.lthn.ai/core/cli/pkg/cli"
"forge.lthn.ai/core/cli/pkg/config"
)
// AddAgentCommands registers the 'agent' subcommand group under 'ai'.

View file

@ -3,7 +3,7 @@
package ai
import (
"github.com/host-uk/core/pkg/cli"
"forge.lthn.ai/core/cli/pkg/cli"
)
// Style aliases from shared package

View file

@ -13,9 +13,9 @@
package ai
import (
ragcmd "github.com/host-uk/core/internal/cmd/rag"
"github.com/host-uk/core/pkg/cli"
"github.com/host-uk/core/pkg/i18n"
ragcmd "forge.lthn.ai/core/cli/internal/cmd/rag"
"forge.lthn.ai/core/cli/pkg/cli"
"forge.lthn.ai/core/cli/pkg/i18n"
)
func init() {

View file

@ -16,8 +16,8 @@ import (
"syscall"
"time"
"github.com/host-uk/core/pkg/cli"
"github.com/host-uk/core/pkg/log"
"forge.lthn.ai/core/cli/pkg/cli"
"forge.lthn.ai/core/cli/pkg/log"
)
// AddDispatchCommands registers the 'dispatch' subcommand group under 'ai'.

View file

@ -10,9 +10,9 @@ import (
"strings"
"time"
"github.com/host-uk/core/pkg/agentic"
"github.com/host-uk/core/pkg/cli"
"github.com/host-uk/core/pkg/i18n"
"forge.lthn.ai/core/cli/pkg/agentic"
"forge.lthn.ai/core/cli/pkg/cli"
"forge.lthn.ai/core/cli/pkg/i18n"
)
// task:commit command flags

View file

@ -7,9 +7,9 @@ import (
"fmt"
"time"
"github.com/host-uk/core/pkg/ai"
"github.com/host-uk/core/pkg/cli"
"github.com/host-uk/core/pkg/i18n"
"forge.lthn.ai/core/cli/pkg/ai"
"forge.lthn.ai/core/cli/pkg/cli"
"forge.lthn.ai/core/cli/pkg/i18n"
)
var (

View file

@ -7,9 +7,9 @@ import (
"text/tabwriter"
"time"
"github.com/host-uk/core/pkg/cli"
"github.com/host-uk/core/pkg/config"
"github.com/host-uk/core/pkg/ratelimit"
"forge.lthn.ai/core/cli/pkg/cli"
"forge.lthn.ai/core/cli/pkg/config"
"forge.lthn.ai/core/cli/pkg/ratelimit"
)
// AddRateLimitCommands registers the 'ratelimits' subcommand group under 'ai'.

View file

@ -9,10 +9,10 @@ import (
"strings"
"time"
"github.com/host-uk/core/pkg/agentic"
"github.com/host-uk/core/pkg/ai"
"github.com/host-uk/core/pkg/cli"
"github.com/host-uk/core/pkg/i18n"
"forge.lthn.ai/core/cli/pkg/agentic"
"forge.lthn.ai/core/cli/pkg/ai"
"forge.lthn.ai/core/cli/pkg/cli"
"forge.lthn.ai/core/cli/pkg/i18n"
)
// tasks command flags

View file

@ -6,10 +6,10 @@ import (
"context"
"time"
"github.com/host-uk/core/pkg/agentic"
"github.com/host-uk/core/pkg/ai"
"github.com/host-uk/core/pkg/cli"
"github.com/host-uk/core/pkg/i18n"
"forge.lthn.ai/core/cli/pkg/agentic"
"forge.lthn.ai/core/cli/pkg/ai"
"forge.lthn.ai/core/cli/pkg/cli"
"forge.lthn.ai/core/cli/pkg/i18n"
)
// task:update command flags

View file

@ -3,8 +3,8 @@ package ai
import (
"context"
"github.com/host-uk/core/pkg/log"
"github.com/host-uk/core/pkg/ratelimit"
"forge.lthn.ai/core/cli/pkg/log"
"forge.lthn.ai/core/cli/pkg/ratelimit"
)
// executeWithRateLimit wraps an agent execution with rate limiting logic.

View file

@ -5,9 +5,9 @@ import (
"os/exec"
"strings"
"github.com/host-uk/core/pkg/cli"
"github.com/host-uk/core/pkg/i18n"
"github.com/host-uk/core/pkg/release"
"forge.lthn.ai/core/cli/pkg/cli"
"forge.lthn.ai/core/cli/pkg/i18n"
"forge.lthn.ai/core/cli/pkg/release"
)
func runChangelog(fromRef, toRef string) error {

View file

@ -2,8 +2,8 @@
package ci
import (
"github.com/host-uk/core/pkg/cli"
"github.com/host-uk/core/pkg/i18n"
"forge.lthn.ai/core/cli/pkg/cli"
"forge.lthn.ai/core/cli/pkg/i18n"
)
// Style aliases from shared

View file

@ -10,7 +10,7 @@
package ci
import (
"github.com/host-uk/core/pkg/cli"
"forge.lthn.ai/core/cli/pkg/cli"
)
func init() {

View file

@ -3,9 +3,9 @@ package ci
import (
"os"
"github.com/host-uk/core/pkg/cli"
"github.com/host-uk/core/pkg/i18n"
"github.com/host-uk/core/pkg/release"
"forge.lthn.ai/core/cli/pkg/cli"
"forge.lthn.ai/core/cli/pkg/i18n"
"forge.lthn.ai/core/cli/pkg/release"
)
func runCIReleaseInit() error {

View file

@ -5,9 +5,9 @@ import (
"errors"
"os"
"github.com/host-uk/core/pkg/cli"
"github.com/host-uk/core/pkg/i18n"
"github.com/host-uk/core/pkg/release"
"forge.lthn.ai/core/cli/pkg/cli"
"forge.lthn.ai/core/cli/pkg/i18n"
"forge.lthn.ai/core/cli/pkg/release"
)
// runCIPublish publishes pre-built artifacts from dist/.

View file

@ -3,9 +3,9 @@ package ci
import (
"os"
"github.com/host-uk/core/pkg/cli"
"github.com/host-uk/core/pkg/i18n"
"github.com/host-uk/core/pkg/release"
"forge.lthn.ai/core/cli/pkg/cli"
"forge.lthn.ai/core/cli/pkg/i18n"
"forge.lthn.ai/core/cli/pkg/release"
)
// runCIReleaseVersion shows the determined version.

View file

@ -3,10 +3,10 @@ package collect
import (
"fmt"
"github.com/host-uk/core/pkg/cli"
"github.com/host-uk/core/pkg/collect"
"github.com/host-uk/core/pkg/i18n"
"github.com/host-uk/core/pkg/io"
"forge.lthn.ai/core/cli/pkg/cli"
"forge.lthn.ai/core/cli/pkg/collect"
"forge.lthn.ai/core/cli/pkg/i18n"
"forge.lthn.ai/core/cli/pkg/io"
)
func init() {

View file

@ -4,9 +4,9 @@ import (
"context"
"strings"
"github.com/host-uk/core/pkg/cli"
"github.com/host-uk/core/pkg/collect"
"github.com/host-uk/core/pkg/i18n"
"forge.lthn.ai/core/cli/pkg/cli"
"forge.lthn.ai/core/cli/pkg/collect"
"forge.lthn.ai/core/cli/pkg/i18n"
)
// BitcoinTalk command flags

View file

@ -4,9 +4,9 @@ import (
"fmt"
"time"
"github.com/host-uk/core/pkg/cli"
collectpkg "github.com/host-uk/core/pkg/collect"
"github.com/host-uk/core/pkg/i18n"
"forge.lthn.ai/core/cli/pkg/cli"
collectpkg "forge.lthn.ai/core/cli/pkg/collect"
"forge.lthn.ai/core/cli/pkg/i18n"
)
// addDispatchCommand adds the 'dispatch' subcommand to the collect parent.

View file

@ -4,9 +4,9 @@ import (
"context"
"fmt"
"github.com/host-uk/core/pkg/cli"
"github.com/host-uk/core/pkg/collect"
"github.com/host-uk/core/pkg/i18n"
"forge.lthn.ai/core/cli/pkg/cli"
"forge.lthn.ai/core/cli/pkg/collect"
"forge.lthn.ai/core/cli/pkg/i18n"
)
// Excavate command flags

View file

@ -4,9 +4,9 @@ import (
"context"
"strings"
"github.com/host-uk/core/pkg/cli"
"github.com/host-uk/core/pkg/collect"
"github.com/host-uk/core/pkg/i18n"
"forge.lthn.ai/core/cli/pkg/cli"
"forge.lthn.ai/core/cli/pkg/collect"
"forge.lthn.ai/core/cli/pkg/i18n"
)
// GitHub command flags

View file

@ -3,9 +3,9 @@ package collect
import (
"context"
"github.com/host-uk/core/pkg/cli"
"github.com/host-uk/core/pkg/collect"
"github.com/host-uk/core/pkg/i18n"
"forge.lthn.ai/core/cli/pkg/cli"
"forge.lthn.ai/core/cli/pkg/collect"
"forge.lthn.ai/core/cli/pkg/i18n"
)
// Market command flags

View file

@ -3,9 +3,9 @@ package collect
import (
"context"
"github.com/host-uk/core/pkg/cli"
"github.com/host-uk/core/pkg/collect"
"github.com/host-uk/core/pkg/i18n"
"forge.lthn.ai/core/cli/pkg/cli"
"forge.lthn.ai/core/cli/pkg/collect"
"forge.lthn.ai/core/cli/pkg/i18n"
)
// Papers command flags

View file

@ -3,9 +3,9 @@ package collect
import (
"context"
"github.com/host-uk/core/pkg/cli"
"github.com/host-uk/core/pkg/collect"
"github.com/host-uk/core/pkg/i18n"
"forge.lthn.ai/core/cli/pkg/cli"
"forge.lthn.ai/core/cli/pkg/collect"
"forge.lthn.ai/core/cli/pkg/i18n"
)
// addProcessCommand adds the 'process' subcommand to the collect parent.

View file

@ -1,6 +1,6 @@
package config
import "github.com/host-uk/core/pkg/cli"
import "forge.lthn.ai/core/cli/pkg/cli"
func init() {
cli.RegisterCommands(AddConfigCommands)

View file

@ -3,8 +3,8 @@ package config
import (
"fmt"
"github.com/host-uk/core/pkg/cli"
"github.com/host-uk/core/pkg/config"
"forge.lthn.ai/core/cli/pkg/cli"
"forge.lthn.ai/core/cli/pkg/config"
)
func addGetCommand(parent *cli.Command) {

View file

@ -3,7 +3,7 @@ package config
import (
"fmt"
"github.com/host-uk/core/pkg/cli"
"forge.lthn.ai/core/cli/pkg/cli"
"gopkg.in/yaml.v3"
)

View file

@ -3,7 +3,7 @@ package config
import (
"fmt"
"github.com/host-uk/core/pkg/cli"
"forge.lthn.ai/core/cli/pkg/cli"
)
func addPathCommand(parent *cli.Command) {

View file

@ -1,7 +1,7 @@
package config
import (
"github.com/host-uk/core/pkg/cli"
"forge.lthn.ai/core/cli/pkg/cli"
)
func addSetCommand(parent *cli.Command) {

View file

@ -1,6 +1,6 @@
package crypt
import "github.com/host-uk/core/pkg/cli"
import "forge.lthn.ai/core/cli/pkg/cli"
func init() {
cli.RegisterCommands(AddCryptCommands)

View file

@ -4,8 +4,8 @@ import (
"fmt"
"path/filepath"
"github.com/host-uk/core/pkg/cli"
"github.com/host-uk/core/pkg/crypt"
"forge.lthn.ai/core/cli/pkg/cli"
"forge.lthn.ai/core/cli/pkg/crypt"
)
// Checksum command flags

View file

@ -5,8 +5,8 @@ import (
"os"
"strings"
"github.com/host-uk/core/pkg/cli"
"github.com/host-uk/core/pkg/crypt"
"forge.lthn.ai/core/cli/pkg/cli"
"forge.lthn.ai/core/cli/pkg/crypt"
)
// Encrypt command flags

View file

@ -3,8 +3,8 @@ package crypt
import (
"fmt"
"github.com/host-uk/core/pkg/cli"
"github.com/host-uk/core/pkg/crypt"
"forge.lthn.ai/core/cli/pkg/cli"
"forge.lthn.ai/core/cli/pkg/crypt"
"golang.org/x/crypto/bcrypt"
)

View file

@ -6,7 +6,7 @@ import (
"encoding/hex"
"fmt"
"github.com/host-uk/core/pkg/cli"
"forge.lthn.ai/core/cli/pkg/cli"
)
// Keygen command flags

View file

@ -7,9 +7,9 @@ import (
"os"
"path/filepath"
"github.com/host-uk/core/pkg/cli"
"github.com/host-uk/core/pkg/log"
"github.com/host-uk/core/pkg/mcp"
"forge.lthn.ai/core/cli/pkg/cli"
"forge.lthn.ai/core/cli/pkg/log"
"forge.lthn.ai/core/cli/pkg/mcp"
)
func init() {

View file

@ -8,8 +8,8 @@ import (
"strings"
"time"
"github.com/host-uk/core/pkg/ansible"
"github.com/host-uk/core/pkg/cli"
"forge.lthn.ai/core/cli/pkg/ansible"
"forge.lthn.ai/core/cli/pkg/cli"
"github.com/spf13/cobra"
)

View file

@ -1,7 +1,7 @@
package deploy
import (
"github.com/host-uk/core/pkg/cli"
"forge.lthn.ai/core/cli/pkg/cli"
"github.com/spf13/cobra"
)

View file

@ -6,9 +6,9 @@ import (
"fmt"
"os"
"github.com/host-uk/core/pkg/cli"
"github.com/host-uk/core/pkg/deploy/coolify"
"github.com/host-uk/core/pkg/i18n"
"forge.lthn.ai/core/cli/pkg/cli"
"forge.lthn.ai/core/cli/pkg/deploy/coolify"
"forge.lthn.ai/core/cli/pkg/i18n"
"github.com/spf13/cobra"
)

View file

@ -1,8 +1,8 @@
package dev
import (
"github.com/host-uk/core/pkg/cli"
"github.com/host-uk/core/pkg/i18n"
"forge.lthn.ai/core/cli/pkg/cli"
"forge.lthn.ai/core/cli/pkg/i18n"
)
// addAPICommands adds the 'api' command and its subcommands to the given parent command.

Some files were not shown because too many files have changed in this diff Show more