clawpowers 2.2.5 → 2.2.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +186 -160
- package/COMPATIBILITY.md +48 -13
- package/KNOWN_LIMITATIONS.md +20 -19
- package/LICENSE +44 -44
- package/LICENSING.md +10 -10
- package/README.md +486 -462
- package/SECURITY.md +52 -52
- package/dist/index.d.ts +17 -5
- package/dist/index.js +187 -92
- package/dist/index.js.map +1 -1
- package/native/Cargo.lock +4927 -4927
- package/native/Cargo.toml +73 -73
- package/native/crates/canonical/Cargo.toml +24 -24
- package/native/crates/canonical/src/lib.rs +677 -673
- package/native/crates/compression/Cargo.toml +20 -20
- package/native/crates/compression/benches/compression_bench.rs +42 -42
- package/native/crates/compression/src/lib.rs +393 -393
- package/native/crates/evm-eth/Cargo.toml +13 -13
- package/native/crates/evm-eth/src/lib.rs +105 -105
- package/native/crates/fee/Cargo.toml +15 -15
- package/native/crates/fee/src/lib.rs +281 -281
- package/native/crates/index/Cargo.toml +16 -16
- package/native/crates/index/src/lib.rs +277 -277
- package/native/crates/policy/Cargo.toml +17 -17
- package/native/crates/policy/src/lib.rs +614 -614
- package/native/crates/security/Cargo.toml +22 -22
- package/native/crates/security/src/lib.rs +478 -478
- package/native/crates/tokens/Cargo.toml +13 -13
- package/native/crates/tokens/src/lib.rs +534 -534
- package/native/crates/verification/Cargo.toml +23 -23
- package/native/crates/verification/src/lib.rs +333 -333
- package/native/crates/wallet/Cargo.toml +20 -20
- package/native/crates/wallet/src/lib.rs +261 -261
- package/native/crates/x402/Cargo.toml +30 -30
- package/native/crates/x402/src/lib.rs +423 -423
- package/native/ffi/Cargo.toml +34 -34
- package/native/ffi/build.rs +4 -4
- package/native/ffi/src/lib.rs +352 -352
- package/native/ffi/tests/integration.rs +354 -354
- package/native/pyo3/Cargo.toml +26 -26
- package/native/pyo3/pyproject.toml +16 -16
- package/native/pyo3/src/lib.rs +407 -407
- package/native/pyo3/tests/test_smoke.py +180 -180
- package/native/wasm/Cargo.toml +47 -44
- package/native/wasm/pkg/.gitignore +6 -6
- package/native/wasm/pkg/clawpowers_wasm.d.ts +208 -208
- package/native/wasm/pkg/clawpowers_wasm.js +872 -872
- package/native/wasm/pkg/clawpowers_wasm_bg.wasm.d.ts +40 -40
- package/native/wasm/pkg/package.json +16 -16
- package/native/wasm/pkg-node/clawpowers_wasm.d.ts +143 -143
- package/native/wasm/pkg-node/clawpowers_wasm.js +798 -798
- package/native/wasm/pkg-node/clawpowers_wasm_bg.wasm.d.ts +40 -40
- package/native/wasm/pkg-node/package.json +12 -12
- package/native/wasm/src/lib.rs +433 -433
- package/package.json +13 -8
- package/scripts/build-wasm.mjs +59 -0
- package/scripts/generate_hermes_wrappers.py +211 -0
- package/scripts/hermes_wrapper_overrides.json +184 -0
- package/scripts/run-python-script.mjs +48 -0
- package/scripts/verify-consumer-install.mjs +109 -0
- package/scripts/verify-wasm-artifacts.mjs +26 -3
- package/scripts/verify_hermes_wrappers.py +154 -0
- package/skill.json +20 -0
- package/skills/1password/SKILL.md +34 -0
- package/skills/README.md +44 -0
- package/skills/agent-nexus-2/SKILL.md +34 -0
- package/skills/apple-notes/SKILL.md +34 -0
- package/skills/apple-reminders/SKILL.md +34 -0
- package/skills/autoresearch/SKILL.md +43 -0
- package/skills/bear-notes/SKILL.md +34 -0
- package/skills/blogwatcher/SKILL.md +34 -0
- package/skills/blucli/SKILL.md +34 -0
- package/skills/bluebubbles/SKILL.md +34 -0
- package/skills/business-strategy/SKILL.md +41 -0
- package/skills/camsnap/SKILL.md +34 -0
- package/skills/canvas/SKILL.md +34 -0
- package/skills/clawhub/SKILL.md +34 -0
- package/skills/coding-agent/SKILL.md +34 -0
- package/skills/coding-discipline.skill/SKILL.md +34 -0
- package/skills/content-writer/SKILL.md +41 -0
- package/skills/discord/SKILL.md +34 -0
- package/skills/eightctl/SKILL.md +34 -0
- package/skills/execution-validation.skill/SKILL.md +34 -0
- package/skills/gemini/SKILL.md +34 -0
- package/skills/gh-issues/SKILL.md +34 -0
- package/skills/gifgrep/SKILL.md +34 -0
- package/skills/github/SKILL.md +41 -0
- package/skills/gog/SKILL.md +34 -0
- package/skills/goplaces/SKILL.md +34 -0
- package/skills/healthcheck/SKILL.md +34 -0
- package/skills/himalaya/SKILL.md +34 -0
- package/skills/humanize/SKILL.md +41 -0
- package/skills/imsg/SKILL.md +34 -0
- package/skills/itp/SKILL.md +112 -0
- package/skills/mcporter/SKILL.md +34 -0
- package/skills/model-usage/SKILL.md +34 -0
- package/skills/nano-pdf/SKILL.md +34 -0
- package/skills/node-connect/SKILL.md +34 -0
- package/skills/notion/SKILL.md +34 -0
- package/skills/obsidian/SKILL.md +34 -0
- package/skills/openai-whisper/SKILL.md +34 -0
- package/skills/openai-whisper-api/SKILL.md +34 -0
- package/skills/openhue/SKILL.md +34 -0
- package/skills/oracle/SKILL.md +34 -0
- package/skills/ordercli/SKILL.md +34 -0
- package/skills/peekaboo/SKILL.md +34 -0
- package/skills/polyclaw/SKILL.md +34 -0
- package/skills/prospector/SKILL.md +41 -0
- package/skills/rsi.skill/SKILL.md +34 -0
- package/skills/sag/SKILL.md +34 -0
- package/skills/security/SKILL.md +41 -0
- package/skills/session-logs/SKILL.md +34 -0
- package/skills/sherpa-onnx-tts/SKILL.md +34 -0
- package/skills/skill-creator/SKILL.md +34 -0
- package/skills/slack/SKILL.md +34 -0
- package/skills/songsee/SKILL.md +34 -0
- package/skills/sonoscli/SKILL.md +34 -0
- package/skills/spotify-player/SKILL.md +34 -0
- package/skills/strykr-prism/SKILL.md +41 -0
- package/skills/summarize/SKILL.md +34 -0
- package/skills/taskbridge/SKILL.md +34 -0
- package/skills/things-mac/SKILL.md +34 -0
- package/skills/tmux/SKILL.md +34 -0
- package/skills/trello/SKILL.md +34 -0
- package/skills/validator-agent/SKILL.md +41 -0
- package/skills/video-frames/SKILL.md +34 -0
- package/skills/voice-call/SKILL.md +34 -0
- package/skills/wacli/SKILL.md +34 -0
- package/skills/weather/SKILL.md +34 -0
- package/skills/webmcp-payments/SKILL.md +41 -0
- package/skills/xurl/SKILL.md +34 -0
- package/src/skills/catalog.ts +435 -435
- package/src/skills/executor.ts +56 -56
- package/src/skills/index.ts +3 -3
- package/src/skills/itp/SKILL.md +112 -112
- package/src/skills/loader.ts +262 -193
- package/native/ffi/index.node +0 -0
- package/native/wasm/pkg-node/.gitignore +0 -6
|
@@ -5,13 +5,36 @@
|
|
|
5
5
|
* npm pack --dry-run --json interleaves prepack build output (from tsup) on stdout
|
|
6
6
|
* before the JSON array. We find the LAST '[' that starts a valid JSON array.
|
|
7
7
|
*/
|
|
8
|
-
import { spawnSync } from 'child_process';
|
|
8
|
+
import { spawnSync } from 'node:child_process';
|
|
9
|
+
import { existsSync } from 'node:fs';
|
|
10
|
+
import { join } from 'node:path';
|
|
9
11
|
|
|
10
|
-
|
|
12
|
+
function npmCliPath() {
|
|
13
|
+
if (process.env.npm_execpath) return process.env.npm_execpath;
|
|
14
|
+
const appData = process.env.APPDATA;
|
|
15
|
+
if (appData) {
|
|
16
|
+
const candidate = join(appData, 'npm', 'node_modules', 'npm', 'bin', 'npm-cli.js');
|
|
17
|
+
if (existsSync(candidate)) return candidate;
|
|
18
|
+
}
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const cliPath = npmCliPath();
|
|
23
|
+
const npmCommand = cliPath ? process.execPath : (process.platform === 'win32' ? 'npm.cmd' : 'npm');
|
|
24
|
+
const npmArgs = cliPath
|
|
25
|
+
? [cliPath, 'pack', '--dry-run', '--json']
|
|
26
|
+
: ['pack', '--dry-run', '--json'];
|
|
27
|
+
const result = spawnSync(npmCommand, npmArgs, {
|
|
11
28
|
encoding: 'utf8',
|
|
12
29
|
stdio: ['ignore', 'pipe', 'inherit'], // let prepack stderr go to terminal, capture stdout
|
|
30
|
+
maxBuffer: 64 * 1024 * 1024,
|
|
31
|
+
shell: !cliPath && process.platform === 'win32',
|
|
13
32
|
});
|
|
14
33
|
|
|
34
|
+
if (result.error) {
|
|
35
|
+
console.error(result.error.stack ?? result.error);
|
|
36
|
+
}
|
|
37
|
+
|
|
15
38
|
const stdout = result.stdout ?? '';
|
|
16
39
|
|
|
17
40
|
// Find the last '[' in stdout -- npm pack JSON array always comes after prepack output
|
|
@@ -32,7 +55,7 @@ if (!pack) {
|
|
|
32
55
|
process.exit(1);
|
|
33
56
|
}
|
|
34
57
|
|
|
35
|
-
const files = (pack[0]?.files ?? []).map(f => f.path);
|
|
58
|
+
const files = (pack[0]?.files ?? []).map(f => String(f.path).replace(/^package\//, ''));
|
|
36
59
|
|
|
37
60
|
const required = [
|
|
38
61
|
'native/wasm/pkg-node/clawpowers_wasm.js',
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import argparse
|
|
4
|
+
import json
|
|
5
|
+
import os
|
|
6
|
+
import shutil
|
|
7
|
+
import subprocess
|
|
8
|
+
import sys
|
|
9
|
+
import tempfile
|
|
10
|
+
import time
|
|
11
|
+
from pathlib import Path
|
|
12
|
+
|
|
13
|
+
DEFAULT_HERMES_REPO = 'https://github.com/NousResearch/hermes-agent.git'
|
|
14
|
+
DEFAULT_HERMES_REF = 'main'
|
|
15
|
+
DEFAULT_SAMPLES = [
|
|
16
|
+
'itp',
|
|
17
|
+
'github',
|
|
18
|
+
'content-writer',
|
|
19
|
+
'webmcp-payments',
|
|
20
|
+
'prospector',
|
|
21
|
+
'security',
|
|
22
|
+
'business-strategy',
|
|
23
|
+
]
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def parse_args() -> argparse.Namespace:
|
|
27
|
+
parser = argparse.ArgumentParser(description='Verify Hermes-loadable skill wrappers in this repo.')
|
|
28
|
+
parser.add_argument(
|
|
29
|
+
'--repo',
|
|
30
|
+
default=str(Path.cwd()),
|
|
31
|
+
help='Path to the ClawPowers-Skills checkout. Defaults to the current working directory.',
|
|
32
|
+
)
|
|
33
|
+
parser.add_argument(
|
|
34
|
+
'--hermes-agent',
|
|
35
|
+
default=os.environ.get('HERMES_AGENT_CHECKOUT', ''),
|
|
36
|
+
help=(
|
|
37
|
+
'Path to a Hermes agent checkout. Can also be set with HERMES_AGENT_CHECKOUT. '
|
|
38
|
+
'When omitted, the verifier clones NousResearch/hermes-agent at --hermes-ref into a temp directory.'
|
|
39
|
+
),
|
|
40
|
+
)
|
|
41
|
+
parser.add_argument(
|
|
42
|
+
'--hermes-repo',
|
|
43
|
+
default=os.environ.get('HERMES_AGENT_REPO', DEFAULT_HERMES_REPO),
|
|
44
|
+
help='Git URL used when --hermes-agent/HERMES_AGENT_CHECKOUT is not provided.',
|
|
45
|
+
)
|
|
46
|
+
parser.add_argument(
|
|
47
|
+
'--hermes-ref',
|
|
48
|
+
default=os.environ.get('HERMES_AGENT_REF', DEFAULT_HERMES_REF),
|
|
49
|
+
help='Hermes git ref used for the temporary checkout when --hermes-agent is omitted.',
|
|
50
|
+
)
|
|
51
|
+
parser.add_argument('--sample', action='append', dest='samples', default=[])
|
|
52
|
+
return parser.parse_args()
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
def _run(cmd: list[str], cwd: Path | None = None) -> None:
|
|
56
|
+
subprocess.run(cmd, cwd=str(cwd) if cwd else None, check=True)
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
def resolve_hermes_agent(args: argparse.Namespace, tmp_root: Path) -> tuple[Path, str]:
|
|
60
|
+
if args.hermes_agent:
|
|
61
|
+
hermes_agent = Path(args.hermes_agent).expanduser().resolve()
|
|
62
|
+
source = f'local:{hermes_agent}'
|
|
63
|
+
else:
|
|
64
|
+
hermes_agent = tmp_root / 'hermes-agent'
|
|
65
|
+
clone_cmd = [
|
|
66
|
+
'git',
|
|
67
|
+
'clone',
|
|
68
|
+
'--depth',
|
|
69
|
+
'1',
|
|
70
|
+
'--branch',
|
|
71
|
+
args.hermes_ref,
|
|
72
|
+
args.hermes_repo,
|
|
73
|
+
str(hermes_agent),
|
|
74
|
+
]
|
|
75
|
+
try:
|
|
76
|
+
_run(clone_cmd)
|
|
77
|
+
except subprocess.CalledProcessError:
|
|
78
|
+
_run(['git', 'clone', '--depth', '1', args.hermes_repo, str(hermes_agent)])
|
|
79
|
+
_run(['git', 'fetch', '--depth', '1', 'origin', args.hermes_ref], cwd=hermes_agent)
|
|
80
|
+
_run(['git', 'checkout', 'FETCH_HEAD'], cwd=hermes_agent)
|
|
81
|
+
source = f'git:{args.hermes_repo}@{args.hermes_ref}'
|
|
82
|
+
|
|
83
|
+
if not hermes_agent.exists():
|
|
84
|
+
raise SystemExit(f'Missing Hermes agent checkout: {hermes_agent}')
|
|
85
|
+
|
|
86
|
+
tools_module = hermes_agent / 'tools' / 'skills_tool.py'
|
|
87
|
+
if not tools_module.exists():
|
|
88
|
+
raise SystemExit(f'Missing Hermes skills tool module: {tools_module}')
|
|
89
|
+
|
|
90
|
+
return hermes_agent, source
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
def main() -> int:
|
|
94
|
+
args = parse_args()
|
|
95
|
+
repo = Path(args.repo).expanduser().resolve()
|
|
96
|
+
skills_src = repo / 'skills'
|
|
97
|
+
|
|
98
|
+
if not skills_src.exists():
|
|
99
|
+
raise SystemExit(
|
|
100
|
+
f'Missing skills directory: {skills_src}. Run this from the ClawPowers-Skills repo root or pass --repo.'
|
|
101
|
+
)
|
|
102
|
+
|
|
103
|
+
started = time.perf_counter()
|
|
104
|
+
with tempfile.TemporaryDirectory(prefix='hermes-compat-') as compat_tmpdir:
|
|
105
|
+
compat_tmp = Path(compat_tmpdir)
|
|
106
|
+
hermes_agent, hermes_source = resolve_hermes_agent(args, compat_tmp)
|
|
107
|
+
expected = sorted(path.name for path in skills_src.iterdir() if path.is_dir())
|
|
108
|
+
|
|
109
|
+
with tempfile.TemporaryDirectory(prefix='hermes-skill-verify-') as hermes_home_tmpdir:
|
|
110
|
+
tmp_home = Path(hermes_home_tmpdir)
|
|
111
|
+
shutil.copytree(skills_src, tmp_home / 'skills')
|
|
112
|
+
os.environ['HERMES_HOME'] = str(tmp_home)
|
|
113
|
+
sys.path.insert(0, str(hermes_agent))
|
|
114
|
+
|
|
115
|
+
from tools.skills_tool import skills_list, skill_view, check_skills_requirements # type: ignore
|
|
116
|
+
|
|
117
|
+
listing = json.loads(skills_list())
|
|
118
|
+
if not listing.get('success'):
|
|
119
|
+
raise SystemExit(f'skills_list failed: {listing}')
|
|
120
|
+
|
|
121
|
+
discovered = sorted(skill['name'] for skill in listing['skills'])
|
|
122
|
+
if discovered != expected:
|
|
123
|
+
missing = sorted(set(expected) - set(discovered))
|
|
124
|
+
extra = sorted(set(discovered) - set(expected))
|
|
125
|
+
raise SystemExit(
|
|
126
|
+
f'Skill discovery mismatch. Missing={missing} Extra={extra}'
|
|
127
|
+
)
|
|
128
|
+
|
|
129
|
+
samples = args.samples or DEFAULT_SAMPLES
|
|
130
|
+
sample_results = []
|
|
131
|
+
for name in samples:
|
|
132
|
+
viewed = json.loads(skill_view(name))
|
|
133
|
+
if not viewed.get('success'):
|
|
134
|
+
raise SystemExit(f'skill_view failed for {name}: {viewed}')
|
|
135
|
+
sample_results.append(name)
|
|
136
|
+
|
|
137
|
+
requirements_ok = check_skills_requirements()
|
|
138
|
+
duration_ms = round((time.perf_counter() - started) * 1000, 1)
|
|
139
|
+
|
|
140
|
+
result = {
|
|
141
|
+
'repo': str(repo),
|
|
142
|
+
'hermes_source': hermes_source,
|
|
143
|
+
'hermes_agent': str(hermes_agent),
|
|
144
|
+
'count': len(discovered),
|
|
145
|
+
'samples_checked': sample_results,
|
|
146
|
+
'requirements_ok': requirements_ok,
|
|
147
|
+
'duration_ms': duration_ms,
|
|
148
|
+
}
|
|
149
|
+
print(json.dumps(result, indent=2))
|
|
150
|
+
return 0 if requirements_ok else 1
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
if __name__ == '__main__':
|
|
154
|
+
raise SystemExit(main())
|
package/skill.json
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "clawpowers",
|
|
3
|
+
"version": "2.2.7",
|
|
4
|
+
"description": "Capability library for AI agents: payments, memory, RSI, wallet, swarm, and ITP primitives.",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "https://github.com/up2itnow0822/ClawPowers-Skills"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://clawpowers.ai",
|
|
10
|
+
"license": "BSL-1.1",
|
|
11
|
+
"packageManager": "npm",
|
|
12
|
+
"entrypoints": {
|
|
13
|
+
"library": "dist/index.js",
|
|
14
|
+
"types": "dist/index.d.ts"
|
|
15
|
+
},
|
|
16
|
+
"notes": [
|
|
17
|
+
"ClawPowers is a capability library, not a standalone OpenClaw wrapper.",
|
|
18
|
+
"For the stock OpenClaw wrapper runtime, use the clawpowers-agent package."
|
|
19
|
+
]
|
|
20
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 1password
|
|
3
|
+
description: "Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op."
|
|
4
|
+
metadata:
|
|
5
|
+
hermes:
|
|
6
|
+
tags: [productivity, clawpowers-catalog, hermes-compatible]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
<!-- generated-by: scripts/generate_hermes_wrappers.py -->
|
|
10
|
+
|
|
11
|
+
# 1password
|
|
12
|
+
|
|
13
|
+
This Hermes-compatible skill wrapper exports the ClawPowers catalog entry for `1password`.
|
|
14
|
+
|
|
15
|
+
## Purpose
|
|
16
|
+
|
|
17
|
+
Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.
|
|
18
|
+
|
|
19
|
+
## When to use
|
|
20
|
+
|
|
21
|
+
- use this skill when the task matches the capability described above
|
|
22
|
+
## Source of truth
|
|
23
|
+
|
|
24
|
+
- Catalog source: `src/skills/catalog.ts`
|
|
25
|
+
- Catalog entry source class: `openclaw-bundled`
|
|
26
|
+
- Category: `productivity`
|
|
27
|
+
|
|
28
|
+
## Notes
|
|
29
|
+
|
|
30
|
+
- This wrapper makes the skill discoverable and loadable by Hermes as a standard `SKILL.md` bundle.
|
|
31
|
+
- It does not, by itself, claim that every underlying runtime, CLI, API integration, or library dependency behind the broader ClawPowers ecosystem is fully configured in Hermes.
|
|
32
|
+
## Compatibility boundary
|
|
33
|
+
|
|
34
|
+
This file is part of the Hermes-compatible top-level `skills/` surface for this branch. It should be read as a discoverable skill bundle, not as a blanket claim that the wider `clawpowers` library/runtime surface is fully configured inside Hermes.
|
package/skills/README.md
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# ClawPowers skills for Hermes
|
|
2
|
+
|
|
3
|
+
This directory is the **Hermes-supported surface** for this branch.
|
|
4
|
+
|
|
5
|
+
Only skills placed here are in scope for the branch's Hermes compatibility claim.
|
|
6
|
+
|
|
7
|
+
## Current exported skills
|
|
8
|
+
|
|
9
|
+
- Total exported skills: 67
|
|
10
|
+
- Hand-authored validated wedge: `itp`
|
|
11
|
+
- Catalog-derived wrappers: 66
|
|
12
|
+
- Richer generated wrappers with override guidance: 10
|
|
13
|
+
|
|
14
|
+
## Install shape
|
|
15
|
+
|
|
16
|
+
Hermes expects skills like:
|
|
17
|
+
|
|
18
|
+
```text
|
|
19
|
+
~/.hermes/skills/<skill-name>/SKILL.md
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Example:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
mkdir -p ~/.hermes/skills/itp
|
|
26
|
+
cp skills/itp/SKILL.md ~/.hermes/skills/itp/SKILL.md
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Fast verification
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
python3 scripts/verify_hermes_wrappers.py
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Then validate with Hermes' own skill tooling.
|
|
36
|
+
|
|
37
|
+
## Important boundary
|
|
38
|
+
|
|
39
|
+
This branch now exports the full ClawPowers catalog as Hermes-loadable skill bundles, but that does **not** automatically mean every broader `clawpowers` runtime/library module is a native Hermes package surface.
|
|
40
|
+
|
|
41
|
+
This branch separates:
|
|
42
|
+
|
|
43
|
+
- **Hermes-compatible skill bundles** under `skills/`
|
|
44
|
+
- **non-Hermes-native library/runtime surfaces** elsewhere in the repo
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: agent-nexus-2
|
|
3
|
+
description: "Multi-agent coordination and task delegation for complex workflows requiring parallel agent execution."
|
|
4
|
+
metadata:
|
|
5
|
+
hermes:
|
|
6
|
+
tags: [development, clawpowers-catalog, hermes-compatible]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
<!-- generated-by: scripts/generate_hermes_wrappers.py -->
|
|
10
|
+
|
|
11
|
+
# agent-nexus-2
|
|
12
|
+
|
|
13
|
+
This Hermes-compatible skill wrapper exports the ClawPowers catalog entry for `agent-nexus-2`.
|
|
14
|
+
|
|
15
|
+
## Purpose
|
|
16
|
+
|
|
17
|
+
Multi-agent coordination and task delegation for complex workflows requiring parallel agent execution.
|
|
18
|
+
|
|
19
|
+
## When to use
|
|
20
|
+
|
|
21
|
+
- use this skill when the task matches the capability described above
|
|
22
|
+
## Source of truth
|
|
23
|
+
|
|
24
|
+
- Catalog source: `src/skills/catalog.ts`
|
|
25
|
+
- Catalog entry source class: `managed`
|
|
26
|
+
- Category: `development`
|
|
27
|
+
|
|
28
|
+
## Notes
|
|
29
|
+
|
|
30
|
+
- This wrapper makes the skill discoverable and loadable by Hermes as a standard `SKILL.md` bundle.
|
|
31
|
+
- It does not, by itself, claim that every underlying runtime, CLI, API integration, or library dependency behind the broader ClawPowers ecosystem is fully configured in Hermes.
|
|
32
|
+
## Compatibility boundary
|
|
33
|
+
|
|
34
|
+
This file is part of the Hermes-compatible top-level `skills/` surface for this branch. It should be read as a discoverable skill bundle, not as a blanket claim that the wider `clawpowers` library/runtime surface is fully configured inside Hermes.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: apple-notes
|
|
3
|
+
description: "Manage Apple Notes via the `memo` CLI on macOS (create, view, edit, delete, search, move, and export notes). Use when a user asks OpenClaw to add a note, list notes, search notes, or manage note folders."
|
|
4
|
+
metadata:
|
|
5
|
+
hermes:
|
|
6
|
+
tags: [productivity, clawpowers-catalog, hermes-compatible]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
<!-- generated-by: scripts/generate_hermes_wrappers.py -->
|
|
10
|
+
|
|
11
|
+
# apple-notes
|
|
12
|
+
|
|
13
|
+
This Hermes-compatible skill wrapper exports the ClawPowers catalog entry for `apple-notes`.
|
|
14
|
+
|
|
15
|
+
## Purpose
|
|
16
|
+
|
|
17
|
+
Manage Apple Notes via the `memo` CLI on macOS (create, view, edit, delete, search, move, and export notes). Use when a user asks OpenClaw to add a note, list notes, search notes, or manage note folders.
|
|
18
|
+
|
|
19
|
+
## When to use
|
|
20
|
+
|
|
21
|
+
- use this skill when the task matches the capability described above
|
|
22
|
+
## Source of truth
|
|
23
|
+
|
|
24
|
+
- Catalog source: `src/skills/catalog.ts`
|
|
25
|
+
- Catalog entry source class: `openclaw-bundled`
|
|
26
|
+
- Category: `productivity`
|
|
27
|
+
|
|
28
|
+
## Notes
|
|
29
|
+
|
|
30
|
+
- This wrapper makes the skill discoverable and loadable by Hermes as a standard `SKILL.md` bundle.
|
|
31
|
+
- It does not, by itself, claim that every underlying runtime, CLI, API integration, or library dependency behind the broader ClawPowers ecosystem is fully configured in Hermes.
|
|
32
|
+
## Compatibility boundary
|
|
33
|
+
|
|
34
|
+
This file is part of the Hermes-compatible top-level `skills/` surface for this branch. It should be read as a discoverable skill bundle, not as a blanket claim that the wider `clawpowers` library/runtime surface is fully configured inside Hermes.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: apple-reminders
|
|
3
|
+
description: "Manage Apple Reminders via remindctl CLI (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output."
|
|
4
|
+
metadata:
|
|
5
|
+
hermes:
|
|
6
|
+
tags: [productivity, clawpowers-catalog, hermes-compatible]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
<!-- generated-by: scripts/generate_hermes_wrappers.py -->
|
|
10
|
+
|
|
11
|
+
# apple-reminders
|
|
12
|
+
|
|
13
|
+
This Hermes-compatible skill wrapper exports the ClawPowers catalog entry for `apple-reminders`.
|
|
14
|
+
|
|
15
|
+
## Purpose
|
|
16
|
+
|
|
17
|
+
Manage Apple Reminders via remindctl CLI (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output.
|
|
18
|
+
|
|
19
|
+
## When to use
|
|
20
|
+
|
|
21
|
+
- use this skill when the task matches the capability described above
|
|
22
|
+
## Source of truth
|
|
23
|
+
|
|
24
|
+
- Catalog source: `src/skills/catalog.ts`
|
|
25
|
+
- Catalog entry source class: `openclaw-bundled`
|
|
26
|
+
- Category: `productivity`
|
|
27
|
+
|
|
28
|
+
## Notes
|
|
29
|
+
|
|
30
|
+
- This wrapper makes the skill discoverable and loadable by Hermes as a standard `SKILL.md` bundle.
|
|
31
|
+
- It does not, by itself, claim that every underlying runtime, CLI, API integration, or library dependency behind the broader ClawPowers ecosystem is fully configured in Hermes.
|
|
32
|
+
## Compatibility boundary
|
|
33
|
+
|
|
34
|
+
This file is part of the Hermes-compatible top-level `skills/` surface for this branch. It should be read as a discoverable skill bundle, not as a blanket claim that the wider `clawpowers` library/runtime surface is fully configured inside Hermes.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: autoresearch
|
|
3
|
+
description: "Autonomous code quality improvement loop using keep-or-revert cycles. Optimizes a composite quality score derived from tests, lint, and type coverage."
|
|
4
|
+
metadata:
|
|
5
|
+
hermes:
|
|
6
|
+
tags: [development, clawpowers-catalog, hermes-compatible]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
<!-- generated-by: scripts/generate_hermes_wrappers.py -->
|
|
10
|
+
|
|
11
|
+
# Autoresearch — Autonomous Code Quality & RSI Loop
|
|
12
|
+
|
|
13
|
+
Autonomous code quality and harness-improvement loop for audits, baselines, and keep-or-revert mutation experiments.
|
|
14
|
+
|
|
15
|
+
## Purpose
|
|
16
|
+
|
|
17
|
+
Autonomous code quality improvement loop using keep-or-revert cycles. Optimizes a composite quality score derived from tests, lint, and type coverage.
|
|
18
|
+
|
|
19
|
+
## When to use
|
|
20
|
+
|
|
21
|
+
- when you need a code audit or quality scan
|
|
22
|
+
- when you want a baseline before making changes
|
|
23
|
+
- when running a small keep-or-revert improvement loop
|
|
24
|
+
- when evaluating prompt or harness mutations
|
|
25
|
+
## Quickstart
|
|
26
|
+
|
|
27
|
+
- python3 tools/autoresearch-mlx/autoresearch_agent.py audit <path>
|
|
28
|
+
- python3 tools/autoresearch-mlx/autoresearch_agent.py baseline <path>
|
|
29
|
+
- python3 tools/autoresearch-mlx/autoresearch_agent.py scan <path>
|
|
30
|
+
## Source of truth
|
|
31
|
+
|
|
32
|
+
- Catalog source: `src/skills/catalog.ts`
|
|
33
|
+
- Catalog entry source class: `managed`
|
|
34
|
+
- Category: `development`
|
|
35
|
+
|
|
36
|
+
## Notes
|
|
37
|
+
|
|
38
|
+
- Use one mutation per experiment and keep it reversible.
|
|
39
|
+
- If quality regresses, revert immediately.
|
|
40
|
+
- This wrapper summarizes the real workspace skill without claiming the full local toolchain ships inside this repo.
|
|
41
|
+
## Compatibility boundary
|
|
42
|
+
|
|
43
|
+
This file is part of the Hermes-compatible top-level `skills/` surface for this branch. It should be read as a discoverable skill bundle, not as a blanket claim that the wider `clawpowers` library/runtime surface is fully configured inside Hermes.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: bear-notes
|
|
3
|
+
description: "Create, search, and manage Bear notes via grizzly CLI."
|
|
4
|
+
metadata:
|
|
5
|
+
hermes:
|
|
6
|
+
tags: [productivity, clawpowers-catalog, hermes-compatible]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
<!-- generated-by: scripts/generate_hermes_wrappers.py -->
|
|
10
|
+
|
|
11
|
+
# bear-notes
|
|
12
|
+
|
|
13
|
+
This Hermes-compatible skill wrapper exports the ClawPowers catalog entry for `bear-notes`.
|
|
14
|
+
|
|
15
|
+
## Purpose
|
|
16
|
+
|
|
17
|
+
Create, search, and manage Bear notes via grizzly CLI.
|
|
18
|
+
|
|
19
|
+
## When to use
|
|
20
|
+
|
|
21
|
+
- use this skill when the task matches the capability described above
|
|
22
|
+
## Source of truth
|
|
23
|
+
|
|
24
|
+
- Catalog source: `src/skills/catalog.ts`
|
|
25
|
+
- Catalog entry source class: `openclaw-bundled`
|
|
26
|
+
- Category: `productivity`
|
|
27
|
+
|
|
28
|
+
## Notes
|
|
29
|
+
|
|
30
|
+
- This wrapper makes the skill discoverable and loadable by Hermes as a standard `SKILL.md` bundle.
|
|
31
|
+
- It does not, by itself, claim that every underlying runtime, CLI, API integration, or library dependency behind the broader ClawPowers ecosystem is fully configured in Hermes.
|
|
32
|
+
## Compatibility boundary
|
|
33
|
+
|
|
34
|
+
This file is part of the Hermes-compatible top-level `skills/` surface for this branch. It should be read as a discoverable skill bundle, not as a blanket claim that the wider `clawpowers` library/runtime surface is fully configured inside Hermes.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: blogwatcher
|
|
3
|
+
description: "Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI."
|
|
4
|
+
metadata:
|
|
5
|
+
hermes:
|
|
6
|
+
tags: [utilities, clawpowers-catalog, hermes-compatible]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
<!-- generated-by: scripts/generate_hermes_wrappers.py -->
|
|
10
|
+
|
|
11
|
+
# blogwatcher
|
|
12
|
+
|
|
13
|
+
This Hermes-compatible skill wrapper exports the ClawPowers catalog entry for `blogwatcher`.
|
|
14
|
+
|
|
15
|
+
## Purpose
|
|
16
|
+
|
|
17
|
+
Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.
|
|
18
|
+
|
|
19
|
+
## When to use
|
|
20
|
+
|
|
21
|
+
- use this skill when the task matches the capability described above
|
|
22
|
+
## Source of truth
|
|
23
|
+
|
|
24
|
+
- Catalog source: `src/skills/catalog.ts`
|
|
25
|
+
- Catalog entry source class: `openclaw-bundled`
|
|
26
|
+
- Category: `utilities`
|
|
27
|
+
|
|
28
|
+
## Notes
|
|
29
|
+
|
|
30
|
+
- This wrapper makes the skill discoverable and loadable by Hermes as a standard `SKILL.md` bundle.
|
|
31
|
+
- It does not, by itself, claim that every underlying runtime, CLI, API integration, or library dependency behind the broader ClawPowers ecosystem is fully configured in Hermes.
|
|
32
|
+
## Compatibility boundary
|
|
33
|
+
|
|
34
|
+
This file is part of the Hermes-compatible top-level `skills/` surface for this branch. It should be read as a discoverable skill bundle, not as a blanket claim that the wider `clawpowers` library/runtime surface is fully configured inside Hermes.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: blucli
|
|
3
|
+
description: "BluOS CLI (blu) for discovery, playback, grouping, and volume."
|
|
4
|
+
metadata:
|
|
5
|
+
hermes:
|
|
6
|
+
tags: [music, clawpowers-catalog, hermes-compatible]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
<!-- generated-by: scripts/generate_hermes_wrappers.py -->
|
|
10
|
+
|
|
11
|
+
# blucli
|
|
12
|
+
|
|
13
|
+
This Hermes-compatible skill wrapper exports the ClawPowers catalog entry for `blucli`.
|
|
14
|
+
|
|
15
|
+
## Purpose
|
|
16
|
+
|
|
17
|
+
BluOS CLI (blu) for discovery, playback, grouping, and volume.
|
|
18
|
+
|
|
19
|
+
## When to use
|
|
20
|
+
|
|
21
|
+
- use this skill when the task matches the capability described above
|
|
22
|
+
## Source of truth
|
|
23
|
+
|
|
24
|
+
- Catalog source: `src/skills/catalog.ts`
|
|
25
|
+
- Catalog entry source class: `openclaw-bundled`
|
|
26
|
+
- Category: `music`
|
|
27
|
+
|
|
28
|
+
## Notes
|
|
29
|
+
|
|
30
|
+
- This wrapper makes the skill discoverable and loadable by Hermes as a standard `SKILL.md` bundle.
|
|
31
|
+
- It does not, by itself, claim that every underlying runtime, CLI, API integration, or library dependency behind the broader ClawPowers ecosystem is fully configured in Hermes.
|
|
32
|
+
## Compatibility boundary
|
|
33
|
+
|
|
34
|
+
This file is part of the Hermes-compatible top-level `skills/` surface for this branch. It should be read as a discoverable skill bundle, not as a blanket claim that the wider `clawpowers` library/runtime surface is fully configured inside Hermes.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: bluebubbles
|
|
3
|
+
description: "Use when you need to send or manage iMessages via BlueBubbles (recommended iMessage integration). Calls go through the generic message tool with channel=bluebubbles."
|
|
4
|
+
metadata:
|
|
5
|
+
hermes:
|
|
6
|
+
tags: [communication, clawpowers-catalog, hermes-compatible]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
<!-- generated-by: scripts/generate_hermes_wrappers.py -->
|
|
10
|
+
|
|
11
|
+
# bluebubbles
|
|
12
|
+
|
|
13
|
+
This Hermes-compatible skill wrapper exports the ClawPowers catalog entry for `bluebubbles`.
|
|
14
|
+
|
|
15
|
+
## Purpose
|
|
16
|
+
|
|
17
|
+
Use when you need to send or manage iMessages via BlueBubbles (recommended iMessage integration). Calls go through the generic message tool with channel=bluebubbles.
|
|
18
|
+
|
|
19
|
+
## When to use
|
|
20
|
+
|
|
21
|
+
- use this skill when the task matches the capability described above
|
|
22
|
+
## Source of truth
|
|
23
|
+
|
|
24
|
+
- Catalog source: `src/skills/catalog.ts`
|
|
25
|
+
- Catalog entry source class: `openclaw-bundled`
|
|
26
|
+
- Category: `communication`
|
|
27
|
+
|
|
28
|
+
## Notes
|
|
29
|
+
|
|
30
|
+
- This wrapper makes the skill discoverable and loadable by Hermes as a standard `SKILL.md` bundle.
|
|
31
|
+
- It does not, by itself, claim that every underlying runtime, CLI, API integration, or library dependency behind the broader ClawPowers ecosystem is fully configured in Hermes.
|
|
32
|
+
## Compatibility boundary
|
|
33
|
+
|
|
34
|
+
This file is part of the Hermes-compatible top-level `skills/` surface for this branch. It should be read as a discoverable skill bundle, not as a blanket claim that the wider `clawpowers` library/runtime surface is fully configured inside Hermes.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: business-strategy
|
|
3
|
+
description: "PMF validation, beachhead identification, activity ROI analysis, kill/invest decisions, and strategic metrics for the AI Agent Economy."
|
|
4
|
+
metadata:
|
|
5
|
+
hermes:
|
|
6
|
+
tags: [productivity, clawpowers-catalog, hermes-compatible]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
<!-- generated-by: scripts/generate_hermes_wrappers.py -->
|
|
10
|
+
|
|
11
|
+
# Business Strategy
|
|
12
|
+
|
|
13
|
+
Strategy wrapper for PMF validation, beachhead selection, ROI calls, and kill-or-invest decisions for the AI Agent Economy.
|
|
14
|
+
|
|
15
|
+
## Purpose
|
|
16
|
+
|
|
17
|
+
PMF validation, beachhead identification, activity ROI analysis, kill/invest decisions, and strategic metrics for the AI Agent Economy.
|
|
18
|
+
|
|
19
|
+
## When to use
|
|
20
|
+
|
|
21
|
+
- when deciding what to invest in or cut
|
|
22
|
+
- when evaluating PMF, beachheads, or strategic focus
|
|
23
|
+
- when comparing activity ROI or prioritizing execution lanes
|
|
24
|
+
## Quickstart
|
|
25
|
+
|
|
26
|
+
- define the decision and success metric first
|
|
27
|
+
- compare options using expected ROI and strategic fit
|
|
28
|
+
- end with a clear continue, kill, or reallocate recommendation
|
|
29
|
+
## Source of truth
|
|
30
|
+
|
|
31
|
+
- Catalog source: `src/skills/catalog.ts`
|
|
32
|
+
- Catalog entry source class: `managed`
|
|
33
|
+
- Category: `productivity`
|
|
34
|
+
|
|
35
|
+
## Notes
|
|
36
|
+
|
|
37
|
+
- The catalog frames this as a decision-making and prioritization surface, not a generic brainstorming tool.
|
|
38
|
+
- This wrapper exposes the Hermes-loadable skill surface only and does not replace deeper strategy artifacts elsewhere in the workspace.
|
|
39
|
+
## Compatibility boundary
|
|
40
|
+
|
|
41
|
+
This file is part of the Hermes-compatible top-level `skills/` surface for this branch. It should be read as a discoverable skill bundle, not as a blanket claim that the wider `clawpowers` library/runtime surface is fully configured inside Hermes.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: camsnap
|
|
3
|
+
description: "Capture frames or clips from RTSP/ONVIF cameras."
|
|
4
|
+
metadata:
|
|
5
|
+
hermes:
|
|
6
|
+
tags: [media, clawpowers-catalog, hermes-compatible]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
<!-- generated-by: scripts/generate_hermes_wrappers.py -->
|
|
10
|
+
|
|
11
|
+
# camsnap
|
|
12
|
+
|
|
13
|
+
This Hermes-compatible skill wrapper exports the ClawPowers catalog entry for `camsnap`.
|
|
14
|
+
|
|
15
|
+
## Purpose
|
|
16
|
+
|
|
17
|
+
Capture frames or clips from RTSP/ONVIF cameras.
|
|
18
|
+
|
|
19
|
+
## When to use
|
|
20
|
+
|
|
21
|
+
- use this skill when the task matches the capability described above
|
|
22
|
+
## Source of truth
|
|
23
|
+
|
|
24
|
+
- Catalog source: `src/skills/catalog.ts`
|
|
25
|
+
- Catalog entry source class: `openclaw-bundled`
|
|
26
|
+
- Category: `media`
|
|
27
|
+
|
|
28
|
+
## Notes
|
|
29
|
+
|
|
30
|
+
- This wrapper makes the skill discoverable and loadable by Hermes as a standard `SKILL.md` bundle.
|
|
31
|
+
- It does not, by itself, claim that every underlying runtime, CLI, API integration, or library dependency behind the broader ClawPowers ecosystem is fully configured in Hermes.
|
|
32
|
+
## Compatibility boundary
|
|
33
|
+
|
|
34
|
+
This file is part of the Hermes-compatible top-level `skills/` surface for this branch. It should be read as a discoverable skill bundle, not as a blanket claim that the wider `clawpowers` library/runtime surface is fully configured inside Hermes.
|