47 lines
1.1 KiB
Python
47 lines
1.1 KiB
Python
from claude_dspy import ClaudeCode, ClaudeCodeConfig
|
|
from pydantic import BaseModel
|
|
import dspy
|
|
|
|
|
|
class Output(BaseModel):
|
|
files: list[str]
|
|
|
|
|
|
class ClaudeCodeSignature(dspy.Signature):
|
|
message: str = dspy.InputField(desc="Request to process")
|
|
output: list[str] = dspy.OutputField(desc="List of files modified or created")
|
|
|
|
|
|
def main():
|
|
# create config
|
|
config = ClaudeCodeConfig()
|
|
|
|
# create agent
|
|
cc = ClaudeCode(
|
|
config,
|
|
signature=ClaudeCodeSignature,
|
|
working_directory=".",
|
|
permission_mode="acceptEdits",
|
|
allowed_tools=["Read", "Glob", "Write"],
|
|
)
|
|
|
|
# use it
|
|
print("Running ClaudeCode...")
|
|
result = cc(
|
|
message="Create a new file called helloworld.txt with the alphabet backwards"
|
|
)
|
|
|
|
print(f"Success: {result.output}")
|
|
print(result.usage)
|
|
|
|
print(f"Session ID: {cc.session_id}")
|
|
cc.push_to_hub(
|
|
"farouk1/claude-code",
|
|
with_code=True,
|
|
commit_message="Add more functionality to signature description parsing",
|
|
)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|