diff --git a/modules/nixos/nix/default.nix b/modules/nixos/nix/default.nix index 9c14304..a95730d 100644 --- a/modules/nixos/nix/default.nix +++ b/modules/nixos/nix/default.nix @@ -38,6 +38,7 @@ in sshUser = "evanreichard"; protocol = "ssh"; sshKey = config.sops.secrets.builder_ssh_key.path; + publicHostKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGlpC0rorATKzK8mLMKgCYqM5N2N/GgS2t4M13cwnAOS"; supportedFeatures = [ "benchmark" "big-parallel" diff --git a/modules/nixos/services/llama-swap/config.nix b/modules/nixos/services/llama-swap/config.nix index 60fe80c..f3dc4f3 100644 --- a/modules/nixos/services/llama-swap/config.nix +++ b/modules/nixos/services/llama-swap/config.nix @@ -682,7 +682,10 @@ in # https://huggingface.co/unsloth/Qwen3.6-35B-A3B-MTP-GGUF/tree/main "qwen3.6-35b-dual" = { name = "Qwen3.6 35B (Dual GPU, UD-Q6)"; - macros.ctx = "215000"; + # macros.ctx = "215000"; + # -ctk q8_0 \ + # -ctv q8_0 \ + macros.ctx = "131072"; cmd = '' ${llama-cpp}/bin/llama-server \ --port ''${PORT} \ @@ -694,8 +697,6 @@ in --top-k 20 \ --min-p 0.00 \ --presence-penalty 0.0 \ - -ctk q8_0 \ - -ctv q8_0 \ --spec-type draft-mtp \ --spec-draft-n-max 3 \ -dev CUDA0,CUDA1 \ diff --git a/packages/pi-coding-agent/default.nix b/packages/pi-coding-agent/default.nix index f67b950..97215a4 100644 --- a/packages/pi-coding-agent/default.nix +++ b/packages/pi-coding-agent/default.nix @@ -18,16 +18,16 @@ buildNpmPackage rec { pname = "pi-coding-agent"; - version = "0.78.0"; + version = "0.78.1"; src = fetchFromGitHub { owner = "earendil-works"; repo = "pi-mono"; rev = "v${version}"; - hash = "sha256-Cw+W5w6yuL+cH+JfgCbEwiyeXloMb7yFd46TXJPZGTg="; + hash = "sha256-K5+reVdi9LPwUHxFgM1iFWojuj6M/m25ymhkDOQdBE4="; }; - npmDepsHash = "sha256-StMh+5zyJ0nln5rMx5rrGm40A9EcvOIOnGKo/HO4+7g="; + npmDepsHash = "sha256-PknwCOAr61Fq2Mhl6jd79Rdsje1OXFts2MDLM/gIEYE="; nativeBuildInputs = [ pkg-config makeWrapper ]; diff --git a/packages/pi-coding-agent/package-lock.json b/packages/pi-coding-agent/package-lock.json index 03e975d..dda77a4 100644 --- a/packages/pi-coding-agent/package-lock.json +++ b/packages/pi-coding-agent/package-lock.json @@ -12,7 +12,8 @@ "packages/coding-agent/examples/extensions/with-deps", "packages/coding-agent/examples/extensions/custom-provider-anthropic", "packages/coding-agent/examples/extensions/custom-provider-gitlab-duo", - "packages/coding-agent/examples/extensions/sandbox" + "packages/coding-agent/examples/extensions/sandbox", + "packages/coding-agent/examples/extensions/gondolin" ], "devDependencies": { "@anthropic-ai/sandbox-runtime": "0.0.26", @@ -722,6 +723,78 @@ "node": ">=14.21.3" } }, + "node_modules/@cto.af/wtf8": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/@cto.af/wtf8/-/wtf8-0.0.5.tgz", + "integrity": "sha512-LfUFi+Vv4eDzj+XAtR89e3wwjXA/NZjUSwU5NhwbBrLecxPaBYFy3exCuc1j+D4UZeOVdqlsl8G7LmOt18V0tg==", + "license": "MIT", + "engines": { + "node": ">=20" + } + }, + "node_modules/@earendil-works/gondolin": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@earendil-works/gondolin/-/gondolin-0.12.0.tgz", + "integrity": "sha512-BXbvzQKb5QmxY5NtthRDONJTu7+IDKbzqWGrJyyNXMP7N681Tx0Q9TK8pK1ba8nUvYQTipNJyGZOsJfYiZll1A==", + "license": "Apache-2.0", + "dependencies": { + "cbor2": "^2.3.0", + "node-forge": "^1.3.3", + "ssh2": "^1.17.0", + "undici": "^6.21.0" + }, + "bin": { + "gondolin": "dist/bin/gondolin.js" + }, + "engines": { + "node": ">=23.6.0" + }, + "optionalDependencies": { + "@earendil-works/gondolin-krun-runner-darwin-arm64": "0.12.0", + "@earendil-works/gondolin-krun-runner-linux-x64": "0.12.0" + } + }, + "node_modules/@earendil-works/gondolin-krun-runner-darwin-arm64": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@earendil-works/gondolin-krun-runner-darwin-arm64/-/gondolin-krun-runner-darwin-arm64-0.12.0.tgz", + "integrity": "sha512-ftDlusht4PcT7Y3TuPrZIKrCXy3isiBTVMvlXYK0pcud2uXY6uwFTGeunYgP+8ND/60ddb+MImqbfmkcK8B84A==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "bin": { + "gondolin-krun-runner": "bin/gondolin-krun-runner" + } + }, + "node_modules/@earendil-works/gondolin-krun-runner-linux-x64": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@earendil-works/gondolin-krun-runner-linux-x64/-/gondolin-krun-runner-linux-x64-0.12.0.tgz", + "integrity": "sha512-RRYsgwe2r5ApKmFNy469QgwnyjAHpAs9XANdWpTd9ol4iUYOY3sX7e0xIooAKxd+ktxGI4N/xRWicwGen3D/Ow==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "bin": { + "gondolin-krun-runner": "bin/gondolin-krun-runner" + } + }, + "node_modules/@earendil-works/gondolin/node_modules/undici": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.26.0.tgz", + "integrity": "sha512-4yqz8a3n5HmGTlsbADNtr/dJlhkh/55Rq798G6ibiULcXbDtaLpTl1pvdqcbFfeoj3iSi52lePFM7h9H21cw/A==", + "license": "MIT", + "engines": { + "node": ">=18.17" + } + }, "node_modules/@earendil-works/pi-agent-core": { "resolved": "packages/agent", "link": true @@ -2572,6 +2645,15 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "license": "MIT", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, "node_modules/assertion-error": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", @@ -2623,6 +2705,15 @@ ], "license": "MIT" }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "license": "BSD-3-Clause", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, "node_modules/bignumber.js": { "version": "9.3.1", "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.1.tgz", @@ -2706,6 +2797,15 @@ "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", "license": "BSD-3-Clause" }, + "node_modules/buildcheck": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/buildcheck/-/buildcheck-0.0.7.tgz", + "integrity": "sha512-lHblz4ahamxpTmnsk+MNTRWsjYKv965MwOrSJyeD588rR3Jcu7swE+0wN5F+PbL5cjgu/9ObkhfzEPuofEMwLA==", + "optional": true, + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/cac": { "version": "6.7.14", "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", @@ -2731,6 +2831,18 @@ "node": "^18.12.0 || >= 20.9.0" } }, + "node_modules/cbor2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cbor2/-/cbor2-2.3.0.tgz", + "integrity": "sha512-76WB3hq8BoaGkMkBVJ27fW5LJU+qqDLEpgRNCG/SYKhODWXpVPOTD4UcUto3IEzYLA52nsvbhb0wabhHDn3qXg==", + "license": "MIT", + "dependencies": { + "@cto.af/wtf8": "0.0.5" + }, + "engines": { + "node": ">=20" + } + }, "node_modules/chai": { "version": "5.3.3", "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", @@ -2806,6 +2918,20 @@ "node": ">=18" } }, + "node_modules/cpu-features": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/cpu-features/-/cpu-features-0.0.10.tgz", + "integrity": "sha512-9IkYqtX3YHPCzoVg1Py+o9057a3i0fp7S530UWokCSaFVTc7CwXPRiOjRjBQQ18ZCNafx78YfnG+HALxtVmOGA==", + "hasInstallScript": true, + "optional": true, + "dependencies": { + "buildcheck": "~0.0.6", + "nan": "^2.19.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -3943,6 +4069,13 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "license": "MIT" }, + "node_modules/nan": { + "version": "2.27.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.27.0.tgz", + "integrity": "sha512-hC+0LidcL3XE4rp1C4H54KujgXKzbfyTngZTwBByQxsOxCEKZT0MPQ4hOKUH2jU1OYstqdDH4onyHPDzcV0XdQ==", + "license": "MIT", + "optional": true + }, "node_modules/nanoid": { "version": "3.3.12", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", @@ -4034,6 +4167,15 @@ "url": "https://opencollective.com/node-fetch" } }, + "node_modules/node-forge": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.4.0.tgz", + "integrity": "sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ==", + "license": "(BSD-3-Clause OR GPL-2.0)", + "engines": { + "node": ">= 6.13.0" + } + }, "node_modules/npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", @@ -4202,6 +4344,10 @@ "resolved": "packages/coding-agent/examples/extensions/custom-provider-gitlab-duo", "link": true }, + "node_modules/pi-extension-gondolin": { + "resolved": "packages/coding-agent/examples/extensions/gondolin", + "link": true + }, "node_modules/pi-extension-sandbox": { "resolved": "packages/coding-agent/examples/extensions/sandbox", "link": true @@ -4544,6 +4690,12 @@ ], "license": "MIT" }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, "node_modules/semver": { "version": "7.8.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.0.tgz", @@ -4696,6 +4848,23 @@ "node": ">=0.10.0" } }, + "node_modules/ssh2": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.17.0.tgz", + "integrity": "sha512-wPldCk3asibAjQ/kziWQQt1Wh3PgDFpC0XpwclzKcdT1vql6KeYxf5LIt4nlFkUeR8WuphYMKqUA56X4rjbfgQ==", + "hasInstallScript": true, + "dependencies": { + "asn1": "^0.2.6", + "bcrypt-pbkdf": "^1.0.2" + }, + "engines": { + "node": ">=10.16.0" + }, + "optionalDependencies": { + "cpu-features": "~0.0.10", + "nan": "^2.23.0" + } + }, "node_modules/stackback": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", @@ -5116,6 +5285,12 @@ "node": "*" } }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "license": "Unlicense" + }, "node_modules/typebox": { "version": "1.1.38", "resolved": "https://registry.npmjs.org/typebox/-/typebox-1.1.38.tgz", @@ -5995,10 +6170,10 @@ }, "packages/agent": { "name": "@earendil-works/pi-agent-core", - "version": "0.77.0", + "version": "0.78.1", "license": "MIT", "dependencies": { - "@earendil-works/pi-ai": "^0.77.0", + "@earendil-works/pi-ai": "^0.78.1", "ignore": "7.0.5", "typebox": "1.1.38", "yaml": "2.9.0" @@ -6032,7 +6207,7 @@ }, "packages/ai": { "name": "@earendil-works/pi-ai", - "version": "0.77.0", + "version": "0.78.1", "license": "MIT", "dependencies": { "@anthropic-ai/sdk": "0.91.1", @@ -6077,12 +6252,12 @@ }, "packages/coding-agent": { "name": "@earendil-works/pi-coding-agent", - "version": "0.77.0", + "version": "0.78.1", "license": "MIT", "dependencies": { - "@earendil-works/pi-agent-core": "^0.77.0", - "@earendil-works/pi-ai": "^0.77.0", - "@earendil-works/pi-tui": "^0.77.0", + "@earendil-works/pi-agent-core": "^0.78.1", + "@earendil-works/pi-ai": "^0.78.1", + "@earendil-works/pi-tui": "^0.78.1", "@silvia-odwyer/photon-node": "0.3.4", "chalk": "5.6.2", "cross-spawn": "7.0.6", @@ -6121,25 +6296,32 @@ }, "packages/coding-agent/examples/extensions/custom-provider-anthropic": { "name": "pi-extension-custom-provider-anthropic", - "version": "0.77.0", + "version": "0.78.1", "dependencies": { "@anthropic-ai/sdk": "0.52.0" } }, "packages/coding-agent/examples/extensions/custom-provider-gitlab-duo": { "name": "pi-extension-custom-provider-gitlab-duo", - "version": "0.77.0" + "version": "0.78.1" + }, + "packages/coding-agent/examples/extensions/gondolin": { + "name": "pi-extension-gondolin", + "version": "0.78.1", + "dependencies": { + "@earendil-works/gondolin": "0.12.0" + } }, "packages/coding-agent/examples/extensions/sandbox": { "name": "pi-extension-sandbox", - "version": "1.7.0", + "version": "1.8.1", "dependencies": { "@anthropic-ai/sandbox-runtime": "0.0.26" } }, "packages/coding-agent/examples/extensions/with-deps": { "name": "pi-extension-with-deps", - "version": "0.77.0", + "version": "0.78.1", "dependencies": { "ms": "2.1.3" }, @@ -6175,7 +6357,7 @@ }, "packages/tui": { "name": "@earendil-works/pi-tui", - "version": "0.77.0", + "version": "0.78.1", "license": "MIT", "dependencies": { "get-east-asian-width": "1.6.0",