Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ jobs:
verify:
name: Verify (fmt, lint, unit, build)
runs-on: ubuntu-latest
timeout-minutes: 25
timeout-minutes: 45
needs: changes
if: needs.changes.outputs.relevant == 'true'
steps:
Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -275,6 +275,10 @@ jobs:
echo "::error::.goreleaser.yml must sign checksums with a Sigstore bundle artifact"
exit 1
fi
if ! grep -q 'name: "@compozy/agh"' .goreleaser.yml; then
echo "::error::.goreleaser.yml must publish the @compozy/agh npm package"
exit 1
fi

- uses: goreleaser/goreleaser-action@v6
with:
Expand All @@ -290,4 +294,6 @@ jobs:
RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }}
COSIGN_EXPERIMENTAL: 1
GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
GOTMPDIR: ${{ runner.temp }}/go-tmp
2 changes: 1 addition & 1 deletion .golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ run:
- ""
issues-exit-code: 1
tests: true
timeout: 5m
timeout: 10m

linters:
default: none
Expand Down
22 changes: 16 additions & 6 deletions .goreleaser.release-header.md.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,22 @@ AGH is an agent operating system for running ACP-compatible coding agents as man

### Installation

#### Curl Installer
#### Homebrew
```bash
brew install compozy/compozy/agh
```

#### npm
```bash
npm install -g @compozy/agh
```

#### Go Install
```bash
go install github.com/compozy/agh/cmd/agh@{{ .Tag }}
```

#### Verified Binary Installer
```bash
curl -fsSL https://agh.network/install.sh | sh
```
Expand All @@ -14,8 +29,3 @@ installs `agh`, and starts `agh install` when an interactive terminal is availab

#### Binary Download
Download the appropriate `agh_<os>_<arch>.tar.gz` asset for your platform and extract it.

#### Go Install
```bash
go install github.com/pedronauck/agh/cmd/agh@{{ .Tag }}
```
18 changes: 15 additions & 3 deletions .goreleaser.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,9 @@ builds:
goarch: arm64
ldflags:
- -s -w
- -X github.com/pedronauck/agh/internal/version.Version={{ .Version }}
- -X github.com/pedronauck/agh/internal/version.Commit={{ .ShortCommit }}
- -X github.com/pedronauck/agh/internal/version.BuildDate={{ .Date }}
- -X github.com/compozy/agh/internal/version.Version={{ .Version }}
- -X github.com/compozy/agh/internal/version.Commit={{ .ShortCommit }}
- -X github.com/compozy/agh/internal/version.BuildDate={{ .Date }}
env:
- CGO_ENABLED=0
flags:
Expand Down Expand Up @@ -103,6 +103,18 @@ nfpms:
- deb
- rpm

npms:
- name: "@compozy/agh"
ids:
- agh-archive
description: "AGH — Artificial General Hivemind"
repository: "git+https://github.com/compozy/agh.git"
bugs: "https://github.com/compozy/agh/issues"
access: public
format: tar.gz
license: "BSL-1.1"
homepage: "https://agh.network"

checksum:
name_template: "checksums.txt"
algorithm: sha256
Expand Down
55 changes: 55 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# AGH

AGH is an open workplace for AI agents: one local daemon for durable agent sessions, one operator
surface for humans and agents, and one open AGH Network for agent-to-agent coordination.
It runs ACP-compatible agent CLIs as managed subprocesses, keeps work attached to a workspace,
and lets sessions discover peers, share capabilities, and close work with receipts.

The complete documentation lives at [agh.network](https://agh.network).

## Install

Use one of the managed install methods:

```bash
brew install compozy/compozy/agh
```

```bash
npm install -g @compozy/agh
```

```bash
go install github.com/compozy/agh/cmd/agh@latest
```

The full [Installation guide](https://agh.network/runtime/core/getting-started/installation) also
covers the verified binary installer, Linux packages, and source builds.

## Start

```bash
agh install
agh daemon start
agh workspace add "$PWD" --name current
agh session new --workspace current --agent general
```

## Documentation

- [Runtime overview](https://agh.network/runtime)
- [Installation](https://agh.network/runtime/core/getting-started/installation)
- [Quick Start](https://agh.network/runtime/core/getting-started/quick-start)
- [CLI reference](https://agh.network/runtime/cli-reference)
- [Extensions](https://agh.network/runtime/core/extensions)
- [AGH Network protocol](https://agh.network/protocol)
- [GitHub releases](https://github.com/compozy/agh/releases)

## Development

AGH is a Go and Bun monorepo. For local development, install the toolchains declared by the repo and
run the full verification gate before sending changes:

```bash
make verify
```
8 changes: 4 additions & 4 deletions cmd/agh-codegen/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ import (
"strings"
"syscall"

"github.com/pedronauck/agh/internal/api/spec"
"github.com/pedronauck/agh/internal/codegen/sdkts"
"github.com/pedronauck/agh/internal/config/lifecycle"
"github.com/pedronauck/agh/internal/fileutil"
"github.com/compozy/agh/internal/api/spec"
"github.com/compozy/agh/internal/codegen/sdkts"
"github.com/compozy/agh/internal/config/lifecycle"
"github.com/compozy/agh/internal/fileutil"
)

const (
Expand Down
4 changes: 2 additions & 2 deletions cmd/agh-codegen/native_tool_catalog.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ import (
"slices"
"strings"

toolspkg "github.com/pedronauck/agh/internal/tools"
builtintools "github.com/pedronauck/agh/internal/tools/builtin"
toolspkg "github.com/compozy/agh/internal/tools"
builtintools "github.com/compozy/agh/internal/tools/builtin"
)

type nativeToolCatalogEntry struct {
Expand Down
2 changes: 1 addition & 1 deletion cmd/agh/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import (
"io"
"os"

"github.com/pedronauck/agh/internal/cli"
"github.com/compozy/agh/internal/cli"
)

func main() {
Expand Down
2 changes: 1 addition & 1 deletion cmd/agh/main_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import (
"strings"
"testing"

"github.com/pedronauck/agh/internal/version"
"github.com/compozy/agh/internal/version"
)

func TestRunPrintsVersion(t *testing.T) {
Expand Down
6 changes: 3 additions & 3 deletions extensions/bridges/discord/markers.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ import (
"path/filepath"
"strings"

bridgepkg "github.com/pedronauck/agh/internal/bridges"
extensioncontract "github.com/pedronauck/agh/internal/extension/contract"
"github.com/pedronauck/agh/internal/subprocess"
bridgepkg "github.com/compozy/agh/internal/bridges"
extensioncontract "github.com/compozy/agh/internal/extension/contract"
"github.com/compozy/agh/internal/subprocess"
)

const (
Expand Down
8 changes: 4 additions & 4 deletions extensions/bridges/discord/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@ import (
"sync"
"time"

bridgepkg "github.com/pedronauck/agh/internal/bridges"
"github.com/pedronauck/agh/internal/bridgesdk"
extensioncontract "github.com/pedronauck/agh/internal/extension/contract"
"github.com/pedronauck/agh/internal/subprocess"
bridgepkg "github.com/compozy/agh/internal/bridges"
"github.com/compozy/agh/internal/bridgesdk"
extensioncontract "github.com/compozy/agh/internal/extension/contract"
"github.com/compozy/agh/internal/subprocess"
)

const (
Expand Down
8 changes: 4 additions & 4 deletions extensions/bridges/discord/provider_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,10 @@ import (
"time"
"unsafe"

bridgepkg "github.com/pedronauck/agh/internal/bridges"
"github.com/pedronauck/agh/internal/bridgesdk"
extensioncontract "github.com/pedronauck/agh/internal/extension/contract"
"github.com/pedronauck/agh/internal/subprocess"
bridgepkg "github.com/compozy/agh/internal/bridges"
"github.com/compozy/agh/internal/bridgesdk"
extensioncontract "github.com/compozy/agh/internal/extension/contract"
"github.com/compozy/agh/internal/subprocess"
)

func TestVerifyDiscordSignatureRejectsInvalidPublicKeySignatures(t *testing.T) {
Expand Down
4 changes: 2 additions & 2 deletions extensions/bridges/discord/reconcile_zero_managed_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ import (
"testing"
"time"

bridgepkg "github.com/pedronauck/agh/internal/bridges"
"github.com/pedronauck/agh/internal/bridgesdk"
bridgepkg "github.com/compozy/agh/internal/bridges"
"github.com/compozy/agh/internal/bridgesdk"
)

func TestReconcileDiscordInstanceConfigsZeroManaged(t *testing.T) {
Expand Down
6 changes: 3 additions & 3 deletions extensions/bridges/gchat/markers.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ import (
"path/filepath"
"strings"

bridgepkg "github.com/pedronauck/agh/internal/bridges"
extensioncontract "github.com/pedronauck/agh/internal/extension/contract"
"github.com/pedronauck/agh/internal/subprocess"
bridgepkg "github.com/compozy/agh/internal/bridges"
extensioncontract "github.com/compozy/agh/internal/extension/contract"
"github.com/compozy/agh/internal/subprocess"
)

const (
Expand Down
8 changes: 4 additions & 4 deletions extensions/bridges/gchat/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@ import (

"github.com/golang-jwt/jwt/v5"

bridgepkg "github.com/pedronauck/agh/internal/bridges"
"github.com/pedronauck/agh/internal/bridgesdk"
extensioncontract "github.com/pedronauck/agh/internal/extension/contract"
"github.com/pedronauck/agh/internal/subprocess"
bridgepkg "github.com/compozy/agh/internal/bridges"
"github.com/compozy/agh/internal/bridgesdk"
extensioncontract "github.com/compozy/agh/internal/extension/contract"
"github.com/compozy/agh/internal/subprocess"
)

const (
Expand Down
2 changes: 1 addition & 1 deletion extensions/bridges/gchat/provider_contract_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import (
"sync"
"testing"

bridgepkg "github.com/pedronauck/agh/internal/bridges"
bridgepkg "github.com/compozy/agh/internal/bridges"
)

func TestGChatProviderContracts(t *testing.T) {
Expand Down
10 changes: 5 additions & 5 deletions extensions/bridges/gchat/provider_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,11 @@ import (

"github.com/golang-jwt/jwt/v5"

bridgepkg "github.com/pedronauck/agh/internal/bridges"
"github.com/pedronauck/agh/internal/bridgesdk"
extensioncontract "github.com/pedronauck/agh/internal/extension/contract"
extensionprotocol "github.com/pedronauck/agh/internal/extension/protocol"
"github.com/pedronauck/agh/internal/subprocess"
bridgepkg "github.com/compozy/agh/internal/bridges"
"github.com/compozy/agh/internal/bridgesdk"
extensioncontract "github.com/compozy/agh/internal/extension/contract"
extensionprotocol "github.com/compozy/agh/internal/extension/protocol"
"github.com/compozy/agh/internal/subprocess"
)

func TestMapGChatDirectAndPubSubPayloads(t *testing.T) {
Expand Down
2 changes: 1 addition & 1 deletion extensions/bridges/github/api.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import (

"github.com/golang-jwt/jwt/v5"

"github.com/pedronauck/agh/internal/bridgesdk"
"github.com/compozy/agh/internal/bridgesdk"
)

const (
Expand Down
6 changes: 3 additions & 3 deletions extensions/bridges/github/markers.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ import (
"path/filepath"
"strings"

bridgepkg "github.com/pedronauck/agh/internal/bridges"
extensioncontract "github.com/pedronauck/agh/internal/extension/contract"
"github.com/pedronauck/agh/internal/subprocess"
bridgepkg "github.com/compozy/agh/internal/bridges"
extensioncontract "github.com/compozy/agh/internal/extension/contract"
"github.com/compozy/agh/internal/subprocess"
)

const (
Expand Down
8 changes: 4 additions & 4 deletions extensions/bridges/github/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@ import (
"sync"
"time"

bridgepkg "github.com/pedronauck/agh/internal/bridges"
"github.com/pedronauck/agh/internal/bridgesdk"
extensioncontract "github.com/pedronauck/agh/internal/extension/contract"
"github.com/pedronauck/agh/internal/subprocess"
bridgepkg "github.com/compozy/agh/internal/bridges"
"github.com/compozy/agh/internal/bridgesdk"
extensioncontract "github.com/compozy/agh/internal/extension/contract"
"github.com/compozy/agh/internal/subprocess"
)

const (
Expand Down
4 changes: 2 additions & 2 deletions extensions/bridges/github/provider_delivery_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ import (
"testing"
"time"

bridgepkg "github.com/pedronauck/agh/internal/bridges"
"github.com/pedronauck/agh/internal/bridgesdk"
bridgepkg "github.com/compozy/agh/internal/bridges"
"github.com/compozy/agh/internal/bridgesdk"
)

func TestGitHubWebhookRateLimitKey(t *testing.T) {
Expand Down
10 changes: 5 additions & 5 deletions extensions/bridges/github/provider_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,11 @@ import (
"time"
"unsafe"

bridgepkg "github.com/pedronauck/agh/internal/bridges"
"github.com/pedronauck/agh/internal/bridgesdk"
extensioncontract "github.com/pedronauck/agh/internal/extension/contract"
extensionprotocol "github.com/pedronauck/agh/internal/extension/protocol"
"github.com/pedronauck/agh/internal/subprocess"
bridgepkg "github.com/compozy/agh/internal/bridges"
"github.com/compozy/agh/internal/bridgesdk"
extensioncontract "github.com/compozy/agh/internal/extension/contract"
extensionprotocol "github.com/compozy/agh/internal/extension/protocol"
"github.com/compozy/agh/internal/subprocess"
)

type githubHTTPDoerFunc func(*http.Request) (*http.Response, error)
Expand Down
2 changes: 1 addition & 1 deletion extensions/bridges/linear/api.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import (
"sync"
"time"

"github.com/pedronauck/agh/internal/bridgesdk"
"github.com/compozy/agh/internal/bridgesdk"
)

const (
Expand Down
6 changes: 3 additions & 3 deletions extensions/bridges/linear/markers.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ import (
"path/filepath"
"strings"

bridgepkg "github.com/pedronauck/agh/internal/bridges"
extensioncontract "github.com/pedronauck/agh/internal/extension/contract"
"github.com/pedronauck/agh/internal/subprocess"
bridgepkg "github.com/compozy/agh/internal/bridges"
extensioncontract "github.com/compozy/agh/internal/extension/contract"
"github.com/compozy/agh/internal/subprocess"
)

const (
Expand Down
Loading
Loading