skillxp 0.1.0__py3-none-win_arm64.whl
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.
skillxp/__init__.py
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"""Python wrapper around the skillxp Go CLI, which observes how agent
|
|
2
|
+
harnesses (Antigravity CLI, Claude Code, Codex CLI) load and activate
|
|
3
|
+
Agent Skills.
|
|
4
|
+
|
|
5
|
+
The wheel bundles the real binary; the ``skillxp`` console script is a
|
|
6
|
+
transparent passthrough. The CLI writes its results to disk
|
|
7
|
+
(``observation.json``, ``session.json``, archived transcripts) rather
|
|
8
|
+
than printing a JSON envelope, so this package carries no invocation
|
|
9
|
+
API: run the CLI via ``subprocess`` with ``binary_path()`` and read the
|
|
10
|
+
bundle. Set SKILLXP_BINARY to override which binary is invoked.
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
import os
|
|
14
|
+
import subprocess
|
|
15
|
+
import sys
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class NotInstalledError(RuntimeError):
|
|
19
|
+
"""No bundled binary for this platform (and no SKILLXP_BINARY override)."""
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def binary_path():
|
|
23
|
+
"""Return the path of the skillxp binary this wrapper invokes."""
|
|
24
|
+
override = os.environ.get("SKILLXP_BINARY")
|
|
25
|
+
if override:
|
|
26
|
+
return override
|
|
27
|
+
exe = "skillxp.exe" if sys.platform == "win32" else "skillxp"
|
|
28
|
+
path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "bin", exe)
|
|
29
|
+
if not os.path.exists(path):
|
|
30
|
+
raise NotInstalledError(
|
|
31
|
+
"skillxp: no bundled binary for this platform; install the Go "
|
|
32
|
+
"CLI instead (https://github.com/agent-ecosystem/skillxp) and "
|
|
33
|
+
"set SKILLXP_BINARY"
|
|
34
|
+
)
|
|
35
|
+
# Some installers drop the exec bit on package data; restore best-effort.
|
|
36
|
+
if os.name == "posix" and not os.access(path, os.X_OK):
|
|
37
|
+
try:
|
|
38
|
+
os.chmod(path, 0o755)
|
|
39
|
+
except OSError:
|
|
40
|
+
pass
|
|
41
|
+
return path
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def _main():
|
|
45
|
+
"""Console-script entry: transparent passthrough to the binary."""
|
|
46
|
+
try:
|
|
47
|
+
binary = binary_path()
|
|
48
|
+
except NotInstalledError as err:
|
|
49
|
+
print(err, file=sys.stderr)
|
|
50
|
+
raise SystemExit(69) # EX_UNAVAILABLE: no usable binary
|
|
51
|
+
argv = [binary] + sys.argv[1:]
|
|
52
|
+
if os.name == "posix":
|
|
53
|
+
os.execv(binary, argv)
|
|
54
|
+
raise SystemExit(subprocess.call(argv))
|
skillxp/bin/skillxp.exe
ADDED
|
Binary file
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: skillxp
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Observes how agent harnesses (Antigravity CLI, Claude Code, Codex CLI) load and activate Agent Skills. Python wrapper around the skillxp Go CLI.
|
|
5
|
+
Author: Dachary Carey
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/agent-ecosystem/skillxp
|
|
8
|
+
Project-URL: Repository, https://github.com/agent-ecosystem/skillxp
|
|
9
|
+
Keywords: agent,skills,agent-skills,claude-code,codex,antigravity,headless
|
|
10
|
+
Requires-Python: >=3.9
|
|
11
|
+
Description-Content-Type: text/markdown
|
|
12
|
+
|
|
13
|
+
# skillxp
|
|
14
|
+
|
|
15
|
+
Python wrapper around
|
|
16
|
+
[skillxp](https://github.com/agent-ecosystem/skillxp), a Go CLI that
|
|
17
|
+
observes how agent harnesses (Antigravity CLI, Claude Code, Codex CLI)
|
|
18
|
+
load and activate [Agent Skills](https://agentskills.io): it installs a
|
|
19
|
+
skill in a fresh fixture, invokes the harness headlessly, and reports
|
|
20
|
+
what actually reached the model, with transcript evidence.
|
|
21
|
+
|
|
22
|
+
The wheel bundles the real Go binary for your platform.
|
|
23
|
+
|
|
24
|
+
## CLI
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
pip install skillxp
|
|
28
|
+
skillxp harnesses
|
|
29
|
+
|
|
30
|
+
skillxp observe -harness claude-code -install ./my-skill \
|
|
31
|
+
-prompt "Activate the my-skill skill and follow its instructions." \
|
|
32
|
+
-activation -trace "PHRASE-IN-BODY-1234" -out out/
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Identical to the Go CLI — see the
|
|
36
|
+
[project README](https://github.com/agent-ecosystem/skillxp) for the full
|
|
37
|
+
surface and the observation bundle layout.
|
|
38
|
+
|
|
39
|
+
## API
|
|
40
|
+
|
|
41
|
+
The CLI writes its results to disk (`observation.json`, `session.json`,
|
|
42
|
+
archived transcripts) rather than printing a JSON envelope, so this
|
|
43
|
+
package carries no invocation API. Run the CLI via `subprocess` and read
|
|
44
|
+
the bundle; `binary_path()` exposes the bundled binary:
|
|
45
|
+
|
|
46
|
+
```python
|
|
47
|
+
import subprocess
|
|
48
|
+
import skillxp
|
|
49
|
+
|
|
50
|
+
subprocess.run([skillxp.binary_path(), "observe", "-harness", "claude-code", ...])
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Set `SKILLXP_BINARY` to override which binary the wrapper invokes.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
skillxp/__init__.py,sha256=2ULIsZrqfOOr8ZfxGOGSb0GlZ0ZhOp4lj8VQfPFHuok,1956
|
|
2
|
+
skillxp/bin/skillxp.exe,sha256=-rhI_iwdpzR4wpE6OxXmv4isddt0tTAoCgmyVi5JoQM,3093504
|
|
3
|
+
skillxp-0.1.0.dist-info/METADATA,sha256=K7aUDfr1nvqWmGPQRGlPlmy61VClhNL3dafGVcx5MfU,1819
|
|
4
|
+
skillxp-0.1.0.dist-info/WHEEL,sha256=ux5fMpBU8T9s3LuuE_Ub5HA06kp2dZMa6XaEtUPsYpw,97
|
|
5
|
+
skillxp-0.1.0.dist-info/entry_points.txt,sha256=8zrZ_9CeuOdFiAudHjb6SaUsBb2fuBk5zVemCUKIfHE,42
|
|
6
|
+
skillxp-0.1.0.dist-info/top_level.txt,sha256=65Iy2aflfmM5WUIsUnQVbUlxO7z2PwzwwgD5-AXA7fA,8
|
|
7
|
+
skillxp-0.1.0.dist-info/RECORD,,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
skillxp
|