Compare commits
14 Commits
c06adec7d8
...
polecat/ru
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
41bd72fc40 | ||
| 2cdc15163c | |||
| a77b1230fe | |||
| 623a387127 | |||
| 737f2b09e4 | |||
| cddc9de14a | |||
| 53e3bbe78f | |||
| c258eafe34 | |||
| 03d0b76f97 | |||
| b5f7233214 | |||
| 1203662237 | |||
| 6ad714b57c | |||
| 5440214295 | |||
| cc305af899 |
@@ -1,4 +0,0 @@
|
||||
{
|
||||
"database": "beads.db",
|
||||
"jsonl_export": "sync_base.jsonl"
|
||||
}
|
||||
@@ -12,7 +12,7 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
|
||||
- uses: https://git.johnogle.info/johno/gitea-actions/nix-setup@main
|
||||
- uses: https://git.johnogle.info/johno/gitea-actions/nix-setup@v1
|
||||
|
||||
- name: Check flake
|
||||
run: nix flake check
|
||||
|
||||
5
.gitignore
vendored
5
.gitignore
vendored
@@ -1,3 +1,8 @@
|
||||
result
|
||||
thoughts
|
||||
.beads
|
||||
|
||||
# Gas Town (added by gt)
|
||||
.runtime/
|
||||
.claude/
|
||||
.logs/
|
||||
|
||||
23
flake.lock
generated
23
flake.lock
generated
@@ -8,11 +8,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1768509852,
|
||||
"narHash": "sha256-4oZXrqBjK9V8qKHoxlfil20qcJdOU8HXJA4627nX1nQ=",
|
||||
"lastModified": 1769020852,
|
||||
"narHash": "sha256-MR6evuoa8w6mjYTesTAa3bsRH+c3IB7EOEDTCjsiAp8=",
|
||||
"owner": "steveyegge",
|
||||
"repo": "beads",
|
||||
"rev": "d3db8253ff09e0f139ffbb6f839afe13acbf7bdb",
|
||||
"rev": "cb46db603d34c0190605eecb8724a6c581119f09",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -78,6 +78,22 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gastown": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1769031452,
|
||||
"narHash": "sha256-tTvtLvTr38okqbpNnr5exfurI6VkVKNLcnM+A6O7DGY=",
|
||||
"ref": "refs/heads/main",
|
||||
"rev": "93e22595cd59802a24253b100dcfae98a6849428",
|
||||
"revCount": 2938,
|
||||
"type": "git",
|
||||
"url": "ssh://git@git.johnogle.info:2222/johno/gastown.git"
|
||||
},
|
||||
"original": {
|
||||
"type": "git",
|
||||
"url": "ssh://git@git.johnogle.info:2222/johno/gastown.git"
|
||||
}
|
||||
},
|
||||
"google-cookie-retrieval": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@@ -306,6 +322,7 @@
|
||||
"root": {
|
||||
"inputs": {
|
||||
"beads": "beads",
|
||||
"gastown": "gastown",
|
||||
"google-cookie-retrieval": "google-cookie-retrieval",
|
||||
"home-manager": "home-manager",
|
||||
"home-manager-unstable": "home-manager-unstable",
|
||||
|
||||
30
flake.nix
30
flake.nix
@@ -47,6 +47,11 @@
|
||||
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
||||
};
|
||||
|
||||
gastown = {
|
||||
url = "git+ssh://git@git.johnogle.info:2222/johno/gastown.git";
|
||||
flake = false; # No flake.nix upstream yet
|
||||
};
|
||||
|
||||
nix-doom-emacs-unstraightened = {
|
||||
url = "github:marienz/nix-doom-emacs-unstraightened";
|
||||
# Don't follow nixpkgs to avoid rebuild issues with emacs-overlay
|
||||
@@ -84,11 +89,20 @@
|
||||
};
|
||||
|
||||
|
||||
# Shared unstable overlays for custom package builds
|
||||
customUnstableOverlays = [
|
||||
# Override claude-code in unstable to use our custom GCS-based build
|
||||
# (needed for corporate networks that block npm registry)
|
||||
(ufinal: uprev: {
|
||||
claude-code = uprev.callPackage ./packages/claude-code {};
|
||||
})
|
||||
];
|
||||
|
||||
nixosModules = [
|
||||
./roles
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
{
|
||||
nixpkgs.overlays = [ (mkBaseOverlay {}) ];
|
||||
nixpkgs.overlays = [ (mkBaseOverlay { unstableOverlays = customUnstableOverlays; }) ];
|
||||
}
|
||||
(mkHomeManagerConfig {
|
||||
sharedModules = [ inputs.plasma-manager.homeModules.plasma-manager ];
|
||||
@@ -101,7 +115,7 @@
|
||||
inputs.home-manager-unstable.nixosModules.home-manager
|
||||
inputs.jovian.nixosModules.jovian
|
||||
{
|
||||
nixpkgs.overlays = [ (mkBaseOverlay {}) ];
|
||||
nixpkgs.overlays = [ (mkBaseOverlay { unstableOverlays = customUnstableOverlays; }) ];
|
||||
}
|
||||
(mkHomeManagerConfig {
|
||||
sharedModules = [ inputs.plasma-manager-unstable.homeModules.plasma-manager ];
|
||||
@@ -112,17 +126,7 @@
|
||||
./roles/darwin.nix
|
||||
inputs.home-manager.darwinModules.home-manager
|
||||
{
|
||||
nixpkgs.overlays = [
|
||||
(mkBaseOverlay {
|
||||
# Override claude-code in unstable to use our custom GCS-based build
|
||||
# (needed for corporate networks that block npm registry)
|
||||
unstableOverlays = [
|
||||
(ufinal: uprev: {
|
||||
claude-code = uprev.callPackage ./packages/claude-code {};
|
||||
})
|
||||
];
|
||||
})
|
||||
];
|
||||
nixpkgs.overlays = [ (mkBaseOverlay { unstableOverlays = customUnstableOverlays; }) ];
|
||||
}
|
||||
(mkHomeManagerConfig { sharedModules = []; })
|
||||
];
|
||||
|
||||
@@ -11,6 +11,23 @@ let
|
||||
vendorHash = "sha256-YU+bRLVlWtHzJ1QPzcKJ70f+ynp8lMoIeFlm+29BNPE=";
|
||||
});
|
||||
|
||||
# Gastown - multi-agent workspace manager (no upstream flake.nix yet)
|
||||
# Source is tracked via flake input for renovate updates
|
||||
gastownPackage = pkgs.buildGoModule {
|
||||
pname = "gastown";
|
||||
version = "unstable-${builtins.substring 0 8 globalInputs.gastown.rev or "unknown"}";
|
||||
src = globalInputs.gastown;
|
||||
vendorHash = "sha256-ripY9vrYgVW8bngAyMLh0LkU/Xx1UUaLgmAA7/EmWQU=";
|
||||
subPackages = [ "cmd/gt" ];
|
||||
doCheck = false;
|
||||
meta = with lib; {
|
||||
description = "Gas Town - multi-agent workspace manager by Steve Yegge";
|
||||
homepage = "https://github.com/steveyegge/gastown";
|
||||
license = licenses.mit;
|
||||
mainProgram = "gt";
|
||||
};
|
||||
};
|
||||
|
||||
# Fetch the claude-plugins repository (for humanlayer commands/agents)
|
||||
# Update the rev to get newer versions of the commands
|
||||
claudePluginsRepo = builtins.fetchGit {
|
||||
@@ -44,9 +61,11 @@ in
|
||||
config = mkIf cfg.enable {
|
||||
home.packages = [
|
||||
beadsPackage
|
||||
gastownPackage
|
||||
pkgs.unstable.claude-code
|
||||
pkgs.unstable.claude-code-router
|
||||
pkgs.unstable.codex
|
||||
pkgs.sqlite
|
||||
|
||||
# Custom packages
|
||||
pkgs.custom.tea-rbw
|
||||
|
||||
@@ -1,28 +1,29 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, autoPatchelfHook
|
||||
, patchelf
|
||||
, glibc
|
||||
}:
|
||||
|
||||
let
|
||||
version = "2.0.76";
|
||||
version = "2.1.12";
|
||||
|
||||
srcs = {
|
||||
aarch64-darwin = {
|
||||
url = "https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases/${version}/darwin-arm64/claude";
|
||||
sha256 = "b76f6d4d09233e67295897b0a1ed2e22d7afa406431529d8b1b532b63b8cbcbd";
|
||||
sha256 = "40be59519a84bd35eb1111aa46f72aa6b3443866d3f6336252a198fdcaefbbe5";
|
||||
};
|
||||
x86_64-darwin = {
|
||||
url = "https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases/${version}/darwin-x64/claude";
|
||||
sha256 = "9d94582f0af5d2201f1c907bf24ff8d216104b897ee0b24795a6c081f40e08d7";
|
||||
sha256 = "0eee4b46c91749480bf856f88e49b15a3e944faa9d346679c5f0c0d7fa6f2f54";
|
||||
};
|
||||
x86_64-linux = {
|
||||
url = "https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases/${version}/linux-x64/claude";
|
||||
sha256 = "5dcdb480f91ba0df0bc8bd6aff148d3dfd3883f0899eeb5b9427a8b0abe7a687";
|
||||
sha256 = "3fe979215489dc1b31463fadf95ed2d2d5473a9969447bb7a46431f4578847d4";
|
||||
};
|
||||
aarch64-linux = {
|
||||
url = "https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases/${version}/linux-arm64/claude";
|
||||
sha256 = "f64a994c8e5bfb84d7242cebbec75d6919db2ee46d50b8fc7a88d5066db193f9";
|
||||
sha256 = "e214b1d3b5afd4cd2de9177359001d41a3eb98cb1e3665fe97edc592f5aa132f";
|
||||
};
|
||||
};
|
||||
|
||||
@@ -38,8 +39,14 @@ in stdenv.mkDerivation {
|
||||
|
||||
dontUnpack = true;
|
||||
dontBuild = true;
|
||||
# Bun standalone binaries have JS code appended after the ELF sections
|
||||
# stripping/patching would remove or corrupt this appended data
|
||||
dontStrip = true;
|
||||
dontPatchELF = true;
|
||||
|
||||
nativeBuildInputs = lib.optionals stdenv.isLinux [ autoPatchelfHook ];
|
||||
# Don't use autoPatchelfHook - it rewrites the ELF and strips the appended
|
||||
# bun bundle (the JS code is appended after the ELF sections)
|
||||
nativeBuildInputs = lib.optionals stdenv.isLinux [ patchelf ];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
@@ -49,6 +56,14 @@ in stdenv.mkDerivation {
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
# Manually patch the interpreter for bun standalone binaries
|
||||
# patchelf --set-interpreter modifies in-place without rewriting the entire ELF,
|
||||
# preserving the appended JS bundle that bun needs at runtime
|
||||
postFixup = lib.optionalString stdenv.isLinux ''
|
||||
interpreter="${glibc}/lib/${if stdenv.hostPlatform.system == "aarch64-linux" then "ld-linux-aarch64.so.1" else "ld-linux-x86-64.so.2"}"
|
||||
patchelf --set-interpreter "$interpreter" $out/bin/claude
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Terminal-based AI coding assistant from Anthropic";
|
||||
homepage = "https://www.anthropic.com/claude-code";
|
||||
|
||||
@@ -59,6 +59,32 @@
|
||||
"matchPackageNames": [
|
||||
"/google-cookie-retrieval/"
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "Gastown is under active development - check for updates daily",
|
||||
"matchManagers": [
|
||||
"nix"
|
||||
],
|
||||
"matchPackageNames": [
|
||||
"/gastown/"
|
||||
],
|
||||
"schedule": [
|
||||
"before 6am every day"
|
||||
],
|
||||
"automerge": false
|
||||
},
|
||||
{
|
||||
"description": "Beads is under active development - check for updates daily",
|
||||
"matchManagers": [
|
||||
"nix"
|
||||
],
|
||||
"matchPackageNames": [
|
||||
"/beads/"
|
||||
],
|
||||
"schedule": [
|
||||
"before 6am every day"
|
||||
],
|
||||
"automerge": false
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user