chore: rename first-party tools flake input
What: - replace nix-steipete-tools with nix-openclaw-tools across flake wiring - pass first-party tool packages through the overlay and package set explicitly - update the bundled plugin catalog for the renamed tool repo Why: - keep nix-openclaw aligned with the upstream OpenClaw tool repo rename - avoid stale steipete naming in package and plugin resolution Tests: - git diff --cached --check: passed - scripts/check-flake-lock-owners.sh: passed - nix eval --raw .#packages.x86_64-linux.openclaw-tools.name --accept-flake-config: openclaw-tools - nix eval --json --impure --expr '<overlay toolNames eval>': returned node/pnpm/core plus gogcli, goplaces, summarize, camsnap, sonoscli
This commit is contained in:
parent
ecfb1dc936
commit
e16f9743fd
@ -129,7 +129,7 @@ openclawPlugin = {
|
||||
Host behavior: creates `~/.config/xuezh/config.json` from `settings`; exports both envs; fails if the pointed files are missing/empty.
|
||||
|
||||
## Bundled Plugin Set (current)
|
||||
- summarize, peekaboo, poltergeist, sag, camsnap, gogcli, goplaces, bird, sonoscli, imsg.
|
||||
- summarize, discrawl, wacrawl, peekaboo, poltergeist, sag, camsnap, gogcli, goplaces, sonoscli, imsg.
|
||||
- Source of truth: `nix/modules/home-manager/openclaw/plugin-catalog.nix`.
|
||||
- Each follows the same contract: packages + skills; env/state declared via `needs`; enabled via config toggle; sources pinned via the bundled plugin catalog.
|
||||
|
||||
|
||||
@ -304,17 +304,18 @@ Install wires up Twilio creds. Binary handles webhook server. Skill teaches agen
|
||||
|
||||
## The Plugin Ecosystem Vision
|
||||
|
||||
**First-party plugins** already exist — see [nix-steipete-tools](https://github.com/openclaw/nix-steipete-tools/tree/main/tools):
|
||||
**First-party plugins** already exist — see [nix-openclaw-tools](https://github.com/openclaw/nix-openclaw-tools/tree/main/tools):
|
||||
- `summarize` — YouTube/article summarization
|
||||
- `oracle` — second-model review
|
||||
- `discrawl` — Discord archive/search
|
||||
- `wacrawl` — WhatsApp archive/search
|
||||
- `peekaboo` — screenshot capture
|
||||
- `camsnap` — webcam capture
|
||||
- `poltergeist` — browser automation
|
||||
- `sag` — web search
|
||||
- `bird` — Twitter/X integration
|
||||
- `poltergeist` — file watching and automation
|
||||
- `sag` — text-to-speech
|
||||
- `sonoscli` — Sonos control
|
||||
- `imsg` — iMessage integration
|
||||
- `gogcli` — Google Calendar
|
||||
- `goplaces` — Google Places
|
||||
|
||||
All follow the same contract. All pinned in nix-openclaw. Enable with one line:
|
||||
```nix
|
||||
|
||||
14
flake.lock
generated
14
flake.lock
generated
@ -38,21 +38,21 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-steipete-tools": {
|
||||
"nix-openclaw-tools": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1773561580,
|
||||
"narHash": "sha256-wT0bKTp45YnMkc4yXQvk943Zz/rksYiIjEXGdWzxnic=",
|
||||
"lastModified": 1777976020,
|
||||
"narHash": "sha256-IsgLwW0Y6JYiWXbxmzN1FDO0//Osu2YpeID1tFMbwkk=",
|
||||
"owner": "openclaw",
|
||||
"repo": "nix-steipete-tools",
|
||||
"rev": "cd4c429ff3b3aaef9f92e59812cf2baf5704b86f",
|
||||
"repo": "nix-openclaw-tools",
|
||||
"rev": "08955054f466e2eb55628763c1d7ee2de5af9f6d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "openclaw",
|
||||
"repo": "nix-steipete-tools",
|
||||
"repo": "nix-openclaw-tools",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
@ -92,7 +92,7 @@
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"home-manager": "home-manager",
|
||||
"nix-steipete-tools": "nix-steipete-tools",
|
||||
"nix-openclaw-tools": "nix-openclaw-tools",
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
}
|
||||
},
|
||||
|
||||
24
flake.nix
24
flake.nix
@ -13,7 +13,7 @@
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
home-manager.url = "github:nix-community/home-manager";
|
||||
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||
nix-steipete-tools.url = "github:openclaw/nix-steipete-tools";
|
||||
nix-openclaw-tools.url = "github:openclaw/nix-openclaw-tools";
|
||||
};
|
||||
|
||||
outputs =
|
||||
@ -22,10 +22,20 @@
|
||||
nixpkgs,
|
||||
flake-utils,
|
||||
home-manager,
|
||||
nix-steipete-tools,
|
||||
nix-openclaw-tools,
|
||||
}:
|
||||
let
|
||||
overlay = import ./nix/overlay.nix;
|
||||
openclawToolPkgsFor =
|
||||
system:
|
||||
if nix-openclaw-tools ? packages && builtins.hasAttr system nix-openclaw-tools.packages then
|
||||
nix-openclaw-tools.packages.${system}
|
||||
else
|
||||
{ };
|
||||
overlay =
|
||||
final: prev:
|
||||
import ./nix/overlay.nix {
|
||||
openclawToolPkgs = openclawToolPkgsFor prev.stdenv.hostPlatform.system;
|
||||
} final prev;
|
||||
sourceInfoStable = import ./nix/sources/openclaw-source.nix;
|
||||
systems = [
|
||||
"x86_64-linux"
|
||||
@ -39,15 +49,11 @@
|
||||
inherit system;
|
||||
overlays = [ overlay ];
|
||||
};
|
||||
steipetePkgs =
|
||||
if nix-steipete-tools ? packages && builtins.hasAttr system nix-steipete-tools.packages then
|
||||
nix-steipete-tools.packages.${system}
|
||||
else
|
||||
{ };
|
||||
openclawToolPkgs = openclawToolPkgsFor system;
|
||||
packageSetStable = import ./nix/packages {
|
||||
pkgs = pkgs;
|
||||
sourceInfo = sourceInfoStable;
|
||||
steipetePkgs = steipetePkgs;
|
||||
openclawToolPkgs = openclawToolPkgs;
|
||||
};
|
||||
in
|
||||
{
|
||||
|
||||
@ -26,13 +26,13 @@ let
|
||||
|
||||
bundledPluginSources =
|
||||
let
|
||||
stepieteRev = "c110209720cbc6c87fccb6c1e1c2b79b1d719245";
|
||||
stepieteNarHash = "sha256-1Vo7rcLGdKaqj39J3HhBKh8IbljSjgCUhinCFJbDPl8=";
|
||||
stepiete =
|
||||
openclawToolsRev = "08955054f466e2eb55628763c1d7ee2de5af9f6d";
|
||||
openclawToolsNarHash = "sha256-IsgLwW0Y6JYiWXbxmzN1FDO0//Osu2YpeID1tFMbwkk=";
|
||||
openclawTools =
|
||||
tool:
|
||||
"github:openclaw/nix-steipete-tools?dir=tools/${tool}&rev=${stepieteRev}&narHash=${stepieteNarHash}";
|
||||
"github:openclaw/nix-openclaw-tools?dir=tools/${tool}&rev=${openclawToolsRev}&narHash=${openclawToolsNarHash}";
|
||||
in
|
||||
lib.mapAttrs (_name: plugin: plugin.source or (stepiete plugin.tool)) pluginCatalog;
|
||||
lib.mapAttrs (_name: plugin: plugin.source or (openclawTools plugin.tool)) pluginCatalog;
|
||||
|
||||
bundledPlugins = lib.filter (p: p != null) (
|
||||
lib.mapAttrsToList (
|
||||
|
||||
@ -5,6 +5,18 @@
|
||||
linux = true;
|
||||
};
|
||||
|
||||
discrawl = {
|
||||
tool = "discrawl";
|
||||
description = "Archive and search Discord history";
|
||||
linux = true;
|
||||
};
|
||||
|
||||
wacrawl = {
|
||||
tool = "wacrawl";
|
||||
description = "Archive and search WhatsApp Desktop history";
|
||||
linux = true;
|
||||
};
|
||||
|
||||
peekaboo = {
|
||||
tool = "peekaboo";
|
||||
description = "Screenshot your screen";
|
||||
@ -13,7 +25,7 @@
|
||||
|
||||
poltergeist = {
|
||||
tool = "poltergeist";
|
||||
description = "Click, type, control macOS UI";
|
||||
description = "File watching and automation";
|
||||
linux = false;
|
||||
};
|
||||
|
||||
@ -42,12 +54,6 @@
|
||||
linux = true;
|
||||
};
|
||||
|
||||
bird = {
|
||||
tool = "bird";
|
||||
description = "Twitter/X integration";
|
||||
linux = false;
|
||||
};
|
||||
|
||||
sonoscli = {
|
||||
tool = "sonoscli";
|
||||
description = "Control Sonos speakers";
|
||||
|
||||
@ -1,7 +1,17 @@
|
||||
{
|
||||
openclawToolPkgs ? { },
|
||||
}:
|
||||
final: prev:
|
||||
let
|
||||
packages = import ./packages { pkgs = prev; };
|
||||
toolNames = (import ./tools/extended.nix { pkgs = prev; }).toolNames;
|
||||
packages = import ./packages {
|
||||
pkgs = prev;
|
||||
openclawToolPkgs = openclawToolPkgs;
|
||||
};
|
||||
toolNames =
|
||||
(import ./tools/extended.nix {
|
||||
pkgs = prev;
|
||||
openclawToolPkgs = openclawToolPkgs;
|
||||
}).toolNames;
|
||||
withTools =
|
||||
{
|
||||
toolNamesOverride ? null,
|
||||
@ -9,6 +19,7 @@ let
|
||||
}:
|
||||
import ./packages {
|
||||
pkgs = prev;
|
||||
openclawToolPkgs = openclawToolPkgs;
|
||||
inherit toolNamesOverride excludeToolNames;
|
||||
};
|
||||
in
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
{
|
||||
pkgs,
|
||||
sourceInfo ? import ../sources/openclaw-source.nix,
|
||||
steipetePkgs ? { },
|
||||
openclawToolPkgs ? { },
|
||||
toolNamesOverride ? null,
|
||||
excludeToolNames ? [ ],
|
||||
}:
|
||||
@ -9,7 +9,7 @@ let
|
||||
isDarwin = pkgs.stdenv.hostPlatform.isDarwin;
|
||||
toolSets = import ../tools/extended.nix {
|
||||
pkgs = pkgs;
|
||||
steipetePkgs = steipetePkgs;
|
||||
openclawToolPkgs = openclawToolPkgs;
|
||||
inherit toolNamesOverride excludeToolNames;
|
||||
};
|
||||
openclawGateway = pkgs.callPackage ./openclaw-gateway.nix {
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
pkgs,
|
||||
steipetePkgs ? { },
|
||||
openclawToolPkgs ? { },
|
||||
toolNamesOverride ? null,
|
||||
excludeToolNames ? [ ],
|
||||
}:
|
||||
@ -19,9 +19,9 @@ let
|
||||
pick =
|
||||
name:
|
||||
let
|
||||
fromSteipete = pickFrom steipetePkgs name;
|
||||
fromOpenClawTools = pickFrom openclawToolPkgs name;
|
||||
in
|
||||
if fromSteipete != null then fromSteipete else pickFrom pkgs name;
|
||||
if fromOpenClawTools != null then fromOpenClawTools else pickFrom pkgs name;
|
||||
ensure = names: safe (map pick names);
|
||||
|
||||
baseNames = [
|
||||
@ -36,24 +36,13 @@ let
|
||||
"ripgrep"
|
||||
];
|
||||
|
||||
pluginCatalog = import ../modules/home-manager/openclaw/plugin-catalog.nix;
|
||||
bundledToolNames = lib.unique (map (plugin: plugin.tool) (builtins.attrValues pluginCatalog));
|
||||
|
||||
extraNames = [
|
||||
"go"
|
||||
"uv"
|
||||
"openai-whisper"
|
||||
"spotify-player"
|
||||
"openhue-cli"
|
||||
"wacli"
|
||||
"ordercli"
|
||||
"blucli"
|
||||
"eightctl"
|
||||
"mcporter"
|
||||
"qmd"
|
||||
"nano-pdf"
|
||||
]
|
||||
++ bundledToolNames;
|
||||
"gogcli"
|
||||
"goplaces"
|
||||
"summarize"
|
||||
"camsnap"
|
||||
"sonoscli"
|
||||
];
|
||||
toolNamesBase = if toolNamesOverride != null then toolNamesOverride else baseNames ++ extraNames;
|
||||
toolNames = builtins.filter (name: !builtins.elem name excludeToolNames) toolNamesBase;
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
# Allowed GitHub inputs in flake.lock (owner/repo)
|
||||
NixOS/nixpkgs
|
||||
openclaw/nix-steipete-tools
|
||||
openclaw/nix-openclaw-tools
|
||||
nix-community/home-manager
|
||||
nix-systems/default
|
||||
numtide/flake-utils
|
||||
|
||||
Loading…
Reference in New Issue
Block a user