Commit graph

76 commits

Author SHA1 Message Date
Snider
148670fd82 feat(cli): add build variants with tags, rename release to ci
- Rename `release` command to `ci` for clarity
- Add build tag support for different binary variants:
  - Default: full development binary (all commands)
  - `-tags ci`: minimal CI binary (build, ci, sdk, doctor)
- Reorganize command registration into separate files:
  - commands_dev.go: full fat (default)
  - commands_ci.go: CI-only

Build CI variant: `go build -tags ci -o core-ci ./cmd/core/`

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 12:35:27 +00:00
Snider
b4872c65b3 refactor(cli): move git/multi-repo commands under core dev
Move multi-repo workflow commands under `core dev`:
- work, health, commit, push, pull
- issues, reviews, ci, impact

Cleaner root with language-specific groups:
- core go (Go development)
- core php (PHP/Laravel)
- core dev (multi-repo workflow)
- core vm (LinuxKit VMs)
- core pkg (package management)

Update SKILL.md with new command paths.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 12:25:18 +00:00
Snider
2d2b63af39 feat(cli): add core go command group
Add Go development tools under `core go`:
- test: Run tests with coverage (CGO_ENABLED=0)
- fmt: Format code with goimports/gofmt
- lint: Run golangci-lint
- mod: Module management (tidy, download, verify, graph)
- work: Workspace management (sync, init, use)

Update SKILL.md with Go Development section.
Keep `core test` at root for backward compatibility.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 12:22:01 +00:00
Snider
ecee1635cd chore(cli): remove tview-example command
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 12:17:37 +00:00
Snider
aa7a1021d3 refactor(cli): add core pkg command group for package management
- Create new pkg.go with search, install, list, update, outdated subcommands
- Remove separate search.go and install.go files
- Update root.go to use AddPkgCommands instead of individual commands
- Update skill documentation with pkg commands in quick reference, decision tree, and common mistakes

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 11:42:22 +00:00
Snider
395b84ed03 refactor(cli): move container commands under core vm
Groups all LinuxKit VM commands under `core vm` for cleaner root help:
- core vm run      - Run a VM from image or template
- core vm ps       - List running VMs
- core vm stop     - Stop a running VM
- core vm logs     - View VM logs
- core vm exec     - Execute command in VM
- core vm templates - Manage LinuxKit templates

Updates help text and output messages to use `core vm` prefix.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 11:35:22 +00:00
Snider
e2eb0f4b56 chore(cli): remove ASCII art banner
Simplifies CLI startup by removing the large ASCII art banner.
Now uses clir's standard header with version and description.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 11:28:58 +00:00
Snider
a3fef89c44 feat(cli): add core test command for Go test DX
Adds `core test` command with:
- Coverage summary by default, detailed with --coverage
- Verbose mode (--verbose) to stream test output
- Package filtering (--pkg ./pkg/...)
- Test name filtering (--run TestName)
- Short mode (--short) for skipping integration tests
- Race detection (--race)
- JSON output (--json) for CI/agents

Sets MACOSX_DEPLOYMENT_TARGET=26.0 to suppress macOS linker warnings.
Filters linker warnings from output for clean DX.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 11:15:23 +00:00
Snider
11e898c914 feat(docs): map core repo to packages/go/ in docs sync
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 10:47:49 +00:00
Snider
afc0b0400e feat(cli): implement runReleaseSDK for SDK generation
Add the runReleaseSDK function that calls release.RunSDK() to
enable SDK-only releases via `core release --target sdk`. The
function loads configuration, applies CLI overrides, and displays
styled output for the SDK generation process.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 03:25:44 +00:00
Snider
accabe288a feat(cli): add --target flag to release command
Add target flag to support different release targets (e.g., sdk).
The runReleaseSDK function will be implemented in a follow-up commit.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 03:23:17 +00:00
Snider
0b949b9e07 feat(cli): integrate signing into build command
Adds --no-sign and --notarize flags.
Signs macOS binaries after build, GPG signs checksums.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 02:57:46 +00:00
Snider
acd0f90424 feat(cli): add dev command group
Commands:
- core dev install/boot/stop/status
- core dev shell/serve/test
- core dev claude (sandboxed AI session)
- core dev update

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 02:23:29 +00:00
Snider
5e0252b5ee chore(deps): sync go modules after SDK implementation
Updates go.mod and go.sum files across all workspace modules
after adding oasdiff and kin-openapi dependencies for SDK generation.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 01:29:39 +00:00
Snider
674b1cd021 feat(cli): add sdk command with generate, diff, validate
Commands:
- core sdk generate [--spec FILE] [--lang LANG]
- core sdk diff --base VERSION [--spec FILE]
- core sdk validate [--spec FILE]

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 01:22:40 +00:00
Snider
513a241c1b feat(release): add package manager publishers for S3.2
Add publishers for distributing CLI binaries to package managers:
- npm: binary wrapper pattern with postinstall download
- Homebrew: formula generation + tap auto-commit
- Scoop: JSON manifest + bucket auto-commit
- AUR: PKGBUILD + .SRCINFO + AUR push
- Chocolatey: NuSpec + install script + optional push

Each publisher supports:
- Dry-run mode for previewing changes
- Auto-commit to own repos (tap/bucket/AUR)
- Generate files for PRs to official repos via `official` config

Also includes Docker and LinuxKit build helpers.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 00:32:04 +00:00
Snider
20f25ca062 feat(agentic): add AI collaboration features
Context gathering:
- BuildTaskContext for AI consumption
- GatherRelatedFiles from task references
- Keyword search for related code
- Git status and recent commits

Task completion:
- AutoCommit with task reference and Co-Authored-By
- CreatePR using gh CLI
- SyncStatus back to agentic service
- CreateBranch with {type}/{id}-{title} format

CLI commands:
- core dev task <id> --context - show with AI context
- core dev task:commit <id> - auto-commit
- core dev task:pr <id> - create PR

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 20:04:45 +00:00
Snider
3b6427f324 feat(agentic): implement core-agentic API client
Add pkg/agentic for AI-assisted task management:
- API client for core-agentic service
- Task listing, claiming, updating, completion
- Config from .env or ~/.core/agentic.yaml

CLI commands:
- core dev tasks - list available tasks
- core dev task <id> - show/claim task
- core dev task --auto - AI picks highest priority
- core dev task:update <id> - update progress
- core dev task:complete <id> - mark complete

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 19:58:41 +00:00
Snider
605ee023ca feat(php): add Coolify deployment integration
Commands:
- core php deploy - deploy to production
- core php deploy --staging - deploy to staging
- core php deploy:status - show deployment status
- core php deploy:rollback - rollback to previous
- core php deploy:list - list recent deployments

Features:
- Coolify API client
- Config from .env (COOLIFY_URL, TOKEN, APP_ID)
- Wait for deployment completion with --wait

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 19:39:04 +00:00
Snider
312fce343d feat(php): add package management for local development
Commands:
- core php packages link <path>... - link local packages
- core php packages unlink <name>... - unlink packages
- core php packages update - update linked packages
- core php packages list - list linked packages

Features:
- Composer path repositories with symlink
- Auto-detect package name from composer.json
- Preserves existing composer.json fields

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 19:33:55 +00:00
Snider
5759d84268 feat(php): add testing and quality commands
Testing:
- core php test - run PHPUnit/Pest (auto-detected)
- core php test --parallel - parallel testing
- core php test --coverage - with coverage
- core php test --filter <pattern> - filter tests

Quality:
- core php fmt - format with Laravel Pint
- core php fmt --fix - auto-fix issues
- core php analyse - run PHPStan/Larastan
- core php analyse --level 9 - set analysis level

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 19:26:57 +00:00
Snider
5568f86768 feat(php): add container build support (Docker + LinuxKit)
Add container commands to pkg/php:
- core php build - Docker/LinuxKit image builds
- core php serve --production - run production container
- core php shell - shell into running container

Features:
- Auto-generate FrankenPHP Dockerfile from project
- Detect PHP extensions from composer.json
- Multi-stage builds with frontend assets
- Laravel optimizations (config/route/view caching)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 19:24:11 +00:00
Snider
96d394435a feat(php): implement Laravel development environment support
Add pkg/php for Laravel/PHP development:
- Auto-detect Laravel project and required services
- FrankenPHP/Octane, Vite, Horizon, Reverb, Redis orchestration
- mkcert SSL integration for local HTTPS
- Unified log streaming with colored service prefixes
- Graceful shutdown handling

CLI commands:
- core php dev - start all services
- core php logs - unified/per-service logs
- core php stop - stop all services
- core php status - show service status
- core php ssl - setup SSL certificates

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 19:14:06 +00:00
Snider
b4e1b1423d feat(container): add LinuxKit YAML templates with variable substitution
Templates:
- core-dev: Development environment (Go, Node, PHP, Docker-in-LinuxKit)
- server-php: Production FrankenPHP server with Caddy

Features:
- Variable substitution: ${VAR} (required), ${VAR:-default} (optional)
- Template listing, viewing, and variable extraction
- Run directly from template: core run --template <name>

CLI commands:
- core templates - list available templates
- core templates show <name> - display template
- core templates vars <name> - show variables
- core run --template <name> --var KEY=value

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 18:59:45 +00:00
Snider
3bd9f9bc3d feat(container): implement LinuxKit container runtime
Add pkg/container for running LinuxKit VMs:
- Manager interface with Run, Stop, List, Logs, Exec
- Hypervisor abstraction (QEMU, Hyperkit)
- Auto-detect available hypervisor and image format
- State persistence in ~/.core/containers.json
- Log management in ~/.core/logs/

CLI commands:
- core run <image> - run LinuxKit image (-d for detach)
- core ps - list containers (-a for all)
- core stop <id> - stop container
- core logs <id> - view logs (-f to follow)
- core exec <id> <cmd> - execute via SSH

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 18:50:32 +00:00
Snider
0f072ad353 feat(release): implement release system with GitHub publisher
Add pkg/release package for automated releases:
- Config loading from .core/release.yaml
- Version detection from git tags with auto-increment
- Changelog generation from conventional commits
- GitHub publisher using gh CLI

CLI commands:
- core release - build + publish to GitHub
- core release --dry-run - preview without publishing
- core release init - interactive config setup
- core release changelog - generate changelog
- core release version - show/set version

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 18:33:11 +00:00
Snider
0237edeb0d feat(build): add Wails v3 builder for desktop app cross-compilation
Add WailsBuilder to pkg/build/builders:
- Auto-detect frontend package manager (bun > pnpm > yarn > npm)
- Install dependencies and build frontend automatically
- Cross-compile with wails3 CLI for all target platforms
- Platform-specific artifact detection (NSIS/DMG/binary)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 18:16:57 +00:00
Snider
9fe47a9bc6 feat(build): implement core build system with cross-compilation
Add pkg/build package replacing goreleaser with native build system:

- Project discovery (go.mod, wails.json, package.json, composer.json)
- Go cross-compilation with GOOS/GOARCH, CGO_ENABLED=0, ldflags
- Config loading from .core/build.yaml with sensible defaults
- Archive creation (tar.gz for linux/darwin, zip for windows)
- SHA256 checksum generation with CHECKSUMS.txt

CLI integration via `core build`:
- Auto-detect project type or specify with --type
- Cross-compile with --targets (e.g., linux/amd64,darwin/arm64)
- CI mode with --ci for JSON output
- Archive/checksum flags (--archive, --checksum)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 17:59:02 +00:00
Snider
d1f63342cb fix(ci): track Wails build config files for lthn-desktop and core-demo
Add exceptions in .gitignore to track build configuration files
(Taskfile.yml, info.json, manifests, etc.) while keeping build
outputs (bin/) ignored.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 15:35:51 +00:00
Snider
41a0faba75 refactor: migrate module path from Snider/Core to host-uk/core
Move Go module from github.com/Snider/Core to github.com/host-uk/core
to match the new repository location under the host-uk organization.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 15:29:42 +00:00
Snider
1d3245a00c docs(core): update org name in examples (letheanvpn → LetheanNetwork)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 15:22:02 +00:00
Snider
4d72229e01 docs(core): update README with setup, doctor, search, install commands
- Add setup command documentation
- Add doctor command documentation
- Add search command with caching notes
- Add install command documentation
- Add cache directory structure section
- Update architecture diagram with new files

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 15:20:27 +00:00
Snider
858c9b4462 fix(dependencies): update golang.org/x modules to latest versions 2026-01-28 15:19:39 +00:00
Snider
936e968ad0 feat(core): add workspace-local cache for GitHub API responses
- Add pkg/cache for file-based caching with TTL
- Cache lives in workspace .core/cache/ (not home dir)
- Search command now caches repo lists for 1 hour
- Shows "Cache: host-uk (5s ago)" on cache hit
- Use --refresh to bypass cache
- Add .core/ to core-devops .gitignore

Structure:
  .core/cache/github/<org>/repos.json

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 15:19:03 +00:00
Snider
75c52e96e9 feat(core): add search and install commands with gh HTTPS clone
- Add `core search --org <org>` to list repos from GitHub
  - Supports --pattern for glob filtering (e.g., 'core-*')
  - Supports --type for type filtering (e.g., 'service', 'mod')
  - Uses `gh repo list` for reliable API access
- Add `core install --repo <org/repo>` to clone individual repos
  - Auto-detects target directory from repos.yaml
  - Optional --add flag to add to registry
  - Detects repo type from naming convention
- Update gitClone to use HTTPS URL with gh (no SSH key needed)
  - Falls back to SSH if HTTPS fails

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 15:12:34 +00:00
Snider
548602b97d feat(core): add setup and doctor commands for workspace bootstrap
- Add `core setup` to clone repos from registry into packages/
  - Supports --dry-run, --only type filter
  - Skips repos with clone: false
  - Detects existing clones
- Add `core doctor` to check development environment
  - Checks git, gh, php, composer, node
  - Verifies SSH key exists
  - Checks gh CLI authentication
  - Shows workspace registry status
- Update Repo struct with Clone field for skip control
- Change Repo.Type from RepoType to string for flexibility

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 14:50:55 +00:00
Snider
61e446b5ff fix(core): add registry path output to commit/push/pull commands
Show which registry file is being used (or if scanning directory)
for better debugging when commands behave unexpectedly.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 14:23:11 +00:00
Snider
b332f91559 fix: update dependencies and add new mining bridge functionality 2026-01-27 21:12:48 +00:00
Snider
9360430226 docs(core): add README for multi-repo CLI
Document all commands, configuration, and usage examples.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 21:09:33 +00:00
Snider
f3d5fd6668 feat(core): add multi-repo management CLI commands
Add comprehensive CLI tooling for managing multiple repositories:

Commands added:
- core health: Quick health summary across all repos
- core work: Status + Claude-assisted commits + push (replaces push-all.sh)
- core commit: Claude-assisted commits only
- core push: Push repos with unpushed commits
- core pull: Pull repos that are behind
- core impact <repo>: Dependency impact analysis
- core issues: List GitHub issues across repos
- core reviews: List PRs with review status
- core ci: Check GitHub Actions status
- core docs list/sync: Documentation management

New packages:
- pkg/repos: Registry parser for repos.yaml with dependency graph
- pkg/git: Parallel git status operations

Features:
- Auto-discovers repos.yaml or scans current directory
- Sequential GitHub API calls to avoid rate limits
- Colored output with lipgloss
- SSH passphrase gate preserved for push operations

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 21:08:51 +00:00
Snider
091c725036 feat(lthn-desktop): integrate Snider/Mining as native plugin
Add Mining module as a native Go plugin for lthn-desktop:

- Add github.com/Snider/Mining dependency (v0.0.9)
- Create MiningBridge that wraps the Mining service for Wails
- Implement module.GinModule interface for API route registration
- Register mining module with the Core module registry
- Provide Wails-bound methods for frontend: ListMiners, GetMinerStats,
  StartMiner, StopMiner, GetAvailableMiners, InstallMiner, UninstallMiner
- Update mining.itw3.json with native module configuration

The mining module provides:
- XMRig and TTMiner support
- Mining pool management
- Real-time hashrate monitoring
- Miner installation/uninstallation
- Mining profiles

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 17:17:14 +00:00
Snider
9ef000853e feat: add lthn-desktop as default GUI and restructure build targets
- Set lthn-desktop as the default gui build target (port 9247)
- Add core-demo GUI with Vite frontend (port 9245)
- Configure core-gui on port 9246 to avoid conflicts
- Update .gitignore for lthn-desktop and core-demo artifacts
- Include lthn-desktop Angular frontend with Monaco editor and Claude panel
- Add frontend.old directory preserving original lthn-desktop pages

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 14:40:33 +00:00
Snider
a0a7ea20da feat: add autogenerated TypeScript definitions and service interfaces 2026-01-15 22:47:11 +00:00
Snider
0ad5c09ee6 feat: add initial project structure with configuration files and components 2026-01-15 22:46:50 +00:00
Snider
4e02d5bc97 refactor: bring external packages home and restructure
- Imported packages from separate repos:
  - github.com/Snider/config -> pkg/config
  - github.com/Snider/display -> pkg/display
  - github.com/Snider/help -> pkg/help
  - github.com/Snider/i18n -> pkg/i18n
  - github.com/Snider/updater -> pkg/updater
- Moved core code from root to pkg/core
- Flattened nested package structures
- Updated all import paths to github.com/Snider/Core/pkg/*
- Added Display interface to Core
- Updated go.work for workspace modules

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 15:30:43 +00:00
Snider
60c0d4f6c7 refactor: Update import path for Core and add CLAUDE.md documentation
Signed-off-by: Snider <snider@host.uk.com>
2026-01-04 20:16:52 +00:00
Snider
f0f6dafc1d removes interfaces for pkg's moved out of core.
Signed-off-by: Snider <snider@lt.hn>
2025-11-24 23:48:24 +00:00
67a38acc7c refactor: Remove unused packages and flatten project structure (#27)
* refactor: Remove unused packages and flatten project structure

Removes the following unused packages:
- pkg/crypt
- pkg/workspace
- pkg/io

Moves the remaining packages (core, e, runtime) to the top level of the project.

Updates all import paths to reflect the new structure.

* refactor: Remove unused packages and flatten project structure

Removes the following unused packages:
- pkg/crypt
- pkg/workspace
- pkg/io

Moves the remaining packages (core, e, runtime) to the top level of the project.

Updates all import paths to reflect the new structure.

---------

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
2025-11-13 17:26:38 +00:00
Snider
09aa39c42c Update web manifest and robots.txt for project rebranding
Signed-off-by: Snider <snider@lt.hn>
2025-11-04 13:13:51 +00:00
Snider
e0cf77c64a Remove unused commands from the development tools
Signed-off-by: Snider <snider@lt.hn>
2025-11-04 13:12:37 +00:00