jaymd96-pants-clawthor 0.1.1__py3-none-any.whl → 0.1.3__py3-none-any.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.
- {jaymd96_pants_clawthor-0.1.1.dist-info → jaymd96_pants_clawthor-0.1.3.dist-info}/METADATA +1 -1
- jaymd96_pants_clawthor-0.1.3.dist-info/RECORD +8 -0
- pants_clawthor/register.py +1 -6
- pants_clawthor/rules.py +76 -48
- jaymd96_pants_clawthor-0.1.1.dist-info/RECORD +0 -8
- {jaymd96_pants_clawthor-0.1.1.dist-info → jaymd96_pants_clawthor-0.1.3.dist-info}/WHEEL +0 -0
- {jaymd96_pants_clawthor-0.1.1.dist-info → jaymd96_pants_clawthor-0.1.3.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: jaymd96-pants-clawthor
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.3
|
|
4
4
|
Summary: Pants plugin for compiling Clawthor Claude Code plugins
|
|
5
5
|
Project-URL: Homepage, https://github.com/anthropics/clawthor
|
|
6
6
|
Project-URL: Documentation, https://github.com/anthropics/clawthor/tree/main/pants-plugin
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
pants_clawthor/__init__.py,sha256=dK1Vo_AAC_Y-Ga9xq2EtBsy8XolwPrX4ZCM_Vb_zEF4,96
|
|
2
|
+
pants_clawthor/register.py,sha256=1-Xh9V6ZDIMS7pIPxto4wim6EpSHb2gJpEo5XDEBlmU,366
|
|
3
|
+
pants_clawthor/rules.py,sha256=KUFUc_odXd1icaCaIeiPIR4mqQGpXlSlEel7IIWHyEU,2663
|
|
4
|
+
pants_clawthor/targets.py,sha256=pvApklAA94qNlkLlX5yRzkkdqBsJiKqor51y4UDeqgQ,1288
|
|
5
|
+
jaymd96_pants_clawthor-0.1.3.dist-info/METADATA,sha256=qBs7kuccEqOJrvxYeFZTzYUKQgFzOhEjxWedN-M3Sgo,4859
|
|
6
|
+
jaymd96_pants_clawthor-0.1.3.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
7
|
+
jaymd96_pants_clawthor-0.1.3.dist-info/licenses/LICENSE,sha256=y8CeiP6Qd9jxidfFjPkyZhsRjs9XarMIMVDP91lZsJE,1066
|
|
8
|
+
jaymd96_pants_clawthor-0.1.3.dist-info/RECORD,,
|
pants_clawthor/register.py
CHANGED
|
@@ -1,17 +1,12 @@
|
|
|
1
1
|
"""Register clawthor plugin with Pants."""
|
|
2
2
|
|
|
3
|
-
from pants.engine.rules import collect_rules
|
|
4
|
-
from pants.engine.target import TargetRuleset
|
|
5
|
-
|
|
6
3
|
from pants_clawthor.rules import rules as clawthor_rules
|
|
7
4
|
from pants_clawthor.targets import ClaudoPluginTarget
|
|
8
5
|
|
|
9
6
|
|
|
10
7
|
def rules():
|
|
11
8
|
"""Register all rules for the clawthor plugin."""
|
|
12
|
-
return [
|
|
13
|
-
*collect_rules(clawthor_rules),
|
|
14
|
-
]
|
|
9
|
+
return [*clawthor_rules()]
|
|
15
10
|
|
|
16
11
|
|
|
17
12
|
def target_types():
|
pants_clawthor/rules.py
CHANGED
|
@@ -1,57 +1,85 @@
|
|
|
1
1
|
"""Build rules for Clawthor plugin compilation."""
|
|
2
2
|
|
|
3
|
-
import os
|
|
4
|
-
import shutil
|
|
5
3
|
import subprocess
|
|
6
|
-
from
|
|
7
|
-
|
|
8
|
-
from pants.engine.
|
|
9
|
-
from pants.engine.
|
|
10
|
-
from pants.engine.
|
|
11
|
-
from pants.engine.
|
|
12
|
-
|
|
13
|
-
from
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
4
|
+
from dataclasses import dataclass
|
|
5
|
+
|
|
6
|
+
from pants.engine.console import Console
|
|
7
|
+
from pants.engine.goal import Goal, GoalSubsystem
|
|
8
|
+
from pants.engine.rules import collect_rules, goal_rule
|
|
9
|
+
from pants.engine.target import Targets
|
|
10
|
+
|
|
11
|
+
from pants_clawthor.targets import (
|
|
12
|
+
ClaudoPluginDefinitionField,
|
|
13
|
+
ClaudoPluginMarketplaceModeField,
|
|
14
|
+
ClaudoPluginOutputDirField,
|
|
15
|
+
ClaudoPluginTarget,
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class ClawthorCompileSubsystem(GoalSubsystem):
|
|
20
|
+
name = "clawthor-compile"
|
|
21
|
+
help = "Compile Clawthor definitions into Claude Code plugins."
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class ClawthorCompile(Goal):
|
|
25
|
+
subsystem_cls = ClawthorCompileSubsystem
|
|
26
|
+
environment_behavior = Goal.EnvironmentBehavior.LOCAL_ONLY
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
@goal_rule
|
|
30
|
+
async def clawthor_compile(
|
|
31
|
+
targets: Targets,
|
|
32
|
+
console: Console,
|
|
33
|
+
) -> ClawthorCompile:
|
|
34
|
+
"""Compile Clawthor definitions into Claude Code plugins."""
|
|
35
|
+
exit_code = 0
|
|
36
|
+
|
|
37
|
+
claude_targets = [t for t in targets if isinstance(t, ClaudoPluginTarget)]
|
|
38
|
+
|
|
39
|
+
if not claude_targets:
|
|
40
|
+
console.print_stderr("No claude_plugin targets found.")
|
|
41
|
+
return ClawthorCompile(exit_code=1)
|
|
42
|
+
|
|
43
|
+
for target in claude_targets:
|
|
44
|
+
definition_file = target[ClaudoPluginDefinitionField].value
|
|
45
|
+
output_dir = target[ClaudoPluginOutputDirField].value
|
|
46
|
+
marketplace_mode = target[ClaudoPluginMarketplaceModeField].value.lower() == "true"
|
|
47
|
+
|
|
48
|
+
# Build clawthor command
|
|
49
|
+
cmd = ["clawthor", "compile", definition_file, output_dir]
|
|
50
|
+
if marketplace_mode:
|
|
51
|
+
cmd.append("--marketplace")
|
|
52
|
+
|
|
53
|
+
spec_path = target.address.spec_path or "."
|
|
54
|
+
console.print_stdout(
|
|
55
|
+
f"Compiling {target.address} ({definition_file} -> {output_dir}/)..."
|
|
39
56
|
)
|
|
40
57
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
58
|
+
try:
|
|
59
|
+
result = subprocess.run(
|
|
60
|
+
cmd,
|
|
61
|
+
cwd=spec_path,
|
|
62
|
+
capture_output=True,
|
|
63
|
+
text=True,
|
|
64
|
+
check=False,
|
|
44
65
|
)
|
|
45
66
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
67
|
+
if result.returncode != 0:
|
|
68
|
+
console.print_stderr(f"Compilation failed for {target.address}:")
|
|
69
|
+
console.print_stderr(result.stderr)
|
|
70
|
+
exit_code = 1
|
|
71
|
+
else:
|
|
72
|
+
console.print_stdout(f"Successfully compiled {target.address}")
|
|
73
|
+
if result.stdout.strip():
|
|
74
|
+
console.print_stdout(result.stdout.strip())
|
|
75
|
+
except FileNotFoundError:
|
|
76
|
+
console.print_stderr(
|
|
77
|
+
"clawthor command not found. Install the clawthor gem: gem install clawthor"
|
|
78
|
+
)
|
|
79
|
+
exit_code = 1
|
|
80
|
+
|
|
81
|
+
return ClawthorCompile(exit_code=exit_code)
|
|
55
82
|
|
|
56
83
|
|
|
57
|
-
rules
|
|
84
|
+
def rules():
|
|
85
|
+
return collect_rules()
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
pants_clawthor/__init__.py,sha256=dK1Vo_AAC_Y-Ga9xq2EtBsy8XolwPrX4ZCM_Vb_zEF4,96
|
|
2
|
-
pants_clawthor/register.py,sha256=quSgKINdumPxMpyNGpgcFu_xeX06Z_UivIjhaoD9MGo,486
|
|
3
|
-
pants_clawthor/rules.py,sha256=LOvRBq4nqiNAcD2T0zoIqVKmD9SCqgdJwH8hjbZO97M,1667
|
|
4
|
-
pants_clawthor/targets.py,sha256=pvApklAA94qNlkLlX5yRzkkdqBsJiKqor51y4UDeqgQ,1288
|
|
5
|
-
jaymd96_pants_clawthor-0.1.1.dist-info/METADATA,sha256=0yKrganfSEMu2qQZAbOAzYGoHxScKSXJxmO_KFT_Qf4,4859
|
|
6
|
-
jaymd96_pants_clawthor-0.1.1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
7
|
-
jaymd96_pants_clawthor-0.1.1.dist-info/licenses/LICENSE,sha256=y8CeiP6Qd9jxidfFjPkyZhsRjs9XarMIMVDP91lZsJE,1066
|
|
8
|
-
jaymd96_pants_clawthor-0.1.1.dist-info/RECORD,,
|
|
File without changes
|
{jaymd96_pants_clawthor-0.1.1.dist-info → jaymd96_pants_clawthor-0.1.3.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|