claude_agent 0.1.0
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.
- checksums.yaml +7 -0
- data/.claude/commands/spec/complete.md +105 -0
- data/.claude/commands/spec/update.md +95 -0
- data/.claude/rules/conventions.md +622 -0
- data/.claude/rules/git.md +86 -0
- data/.claude/rules/pull-requests.md +31 -0
- data/.claude/rules/releases.md +177 -0
- data/.claude/rules/testing.md +267 -0
- data/.claude/settings.json +49 -0
- data/CHANGELOG.md +13 -0
- data/CLAUDE.md +94 -0
- data/LICENSE.txt +21 -0
- data/README.md +679 -0
- data/Rakefile +63 -0
- data/SPEC.md +558 -0
- data/lib/claude_agent/abort_controller.rb +113 -0
- data/lib/claude_agent/client.rb +298 -0
- data/lib/claude_agent/content_blocks.rb +163 -0
- data/lib/claude_agent/control_protocol.rb +717 -0
- data/lib/claude_agent/errors.rb +103 -0
- data/lib/claude_agent/hooks.rb +228 -0
- data/lib/claude_agent/mcp/server.rb +166 -0
- data/lib/claude_agent/mcp/tool.rb +137 -0
- data/lib/claude_agent/message_parser.rb +262 -0
- data/lib/claude_agent/messages.rb +421 -0
- data/lib/claude_agent/options.rb +264 -0
- data/lib/claude_agent/permissions.rb +164 -0
- data/lib/claude_agent/query.rb +90 -0
- data/lib/claude_agent/sandbox_settings.rb +139 -0
- data/lib/claude_agent/spawn.rb +235 -0
- data/lib/claude_agent/transport/base.rb +61 -0
- data/lib/claude_agent/transport/subprocess.rb +432 -0
- data/lib/claude_agent/types.rb +193 -0
- data/lib/claude_agent/version.rb +5 -0
- data/lib/claude_agent.rb +28 -0
- data/sig/claude_agent.rbs +912 -0
- data/sig/manifest.yaml +5 -0
- metadata +97 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 962eff5c1e28589e347c1096e8c9683714b58bc95d56f281256580311bf0b87f
|
|
4
|
+
data.tar.gz: e482f60ed6579f9b364e2947b970fca1eaf35c6eec02e5669d557b9c5caf15bc
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 03fc463581c3dc92b0f3d121e7f59f252b746e0a049f4eb505ef14938799de397f4cb64cd01fca09946c8be38b767205792a06f51cfa968abd880eebc2b7d79c
|
|
7
|
+
data.tar.gz: a3407945fe4b87957c898ca2872f869b62cd520db7afbf76602aa5105febcb2a95dc5a66131b68ad0254b8b7f922ecc387394f96bd78ac9da2227443f3cb2a33
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Implement missing Ruby SDK features identified in SPEC.md to achieve full parity with TypeScript/Python SDKs
|
|
3
|
+
allowed-tools: Bash, Read, Glob, Grep, Write, Edit, TodoWrite, Task, AskUserQuestion, EnterPlanMode
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Complete SDK Feature Parity
|
|
7
|
+
|
|
8
|
+
You are implementing missing features in the Ruby SDK to achieve full parity with the official TypeScript and Python Claude Agent SDKs.
|
|
9
|
+
|
|
10
|
+
## Step 1: Identify Missing Features
|
|
11
|
+
|
|
12
|
+
Read SPEC.md and identify all features where the Ruby SDK shows ❌ (not implemented):
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
Read SPEC.md
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Create a prioritized list of missing features:
|
|
19
|
+
1. **High Priority** - Features implemented in BOTH TypeScript and Python SDKs
|
|
20
|
+
2. **Medium Priority** - Features only in TypeScript SDK (Python also missing)
|
|
21
|
+
3. **Low Priority** - TypeScript-only features that may be JS-specific
|
|
22
|
+
|
|
23
|
+
Use TodoWrite to track the features to implement.
|
|
24
|
+
|
|
25
|
+
## Step 2: Research Each Feature
|
|
26
|
+
|
|
27
|
+
For each missing feature, gather complete context before planning:
|
|
28
|
+
|
|
29
|
+
### 2a. Official Documentation
|
|
30
|
+
|
|
31
|
+
Use the `claude-code-guide` agent to understand the feature's intended behavior:
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
Task(subagent_type: "claude-code-guide", prompt: "How does [feature] work in the Claude Agent SDK? What are all the options, behaviors, and edge cases?")
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### 2b. TypeScript Implementation
|
|
38
|
+
|
|
39
|
+
Read the TypeScript type definitions to understand the API surface:
|
|
40
|
+
- `vendor/claude-agent-sdk-npm/sdk.d.ts`
|
|
41
|
+
|
|
42
|
+
### 2c. Python Implementation (if available)
|
|
43
|
+
|
|
44
|
+
If Python has the feature, read their implementation for patterns:
|
|
45
|
+
- `vendor/claude-agent-sdk-python/src/claude_agent_sdk/types.py`
|
|
46
|
+
- `vendor/claude-agent-sdk-python/src/claude_agent_sdk/_internal/`
|
|
47
|
+
|
|
48
|
+
## Step 3: Clarify Requirements
|
|
49
|
+
|
|
50
|
+
Use AskUserQuestion to resolve any ambiguities:
|
|
51
|
+
|
|
52
|
+
- Implementation approach choices
|
|
53
|
+
- Ruby-specific design decisions
|
|
54
|
+
- Whether certain features should be skipped (e.g., JS-specific)
|
|
55
|
+
- Priority ordering if time-constrained
|
|
56
|
+
|
|
57
|
+
## Step 4: Enter Plan Mode
|
|
58
|
+
|
|
59
|
+
Enter plan mode to design the implementation:
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
EnterPlanMode
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
The plan should include:
|
|
66
|
+
- Which files to create or modify
|
|
67
|
+
- Data structures (use `Data.define` for immutable types)
|
|
68
|
+
- Public API design
|
|
69
|
+
- Test coverage requirements
|
|
70
|
+
- Any breaking changes or deprecations
|
|
71
|
+
|
|
72
|
+
## Step 5: Implement Features
|
|
73
|
+
|
|
74
|
+
After plan approval, implement each feature:
|
|
75
|
+
|
|
76
|
+
1. Add types/data structures
|
|
77
|
+
2. Update Options if new configuration needed
|
|
78
|
+
3. Implement core functionality
|
|
79
|
+
4. Add CLI argument mapping (if applicable)
|
|
80
|
+
5. Update RBS type signatures in `sig/` directory
|
|
81
|
+
6. Write unit tests in `test/claude_agent/`
|
|
82
|
+
7. Write integration tests in `test/integration/` for features that interact with CLI/API
|
|
83
|
+
8. Update SPEC.md to mark feature as ✅
|
|
84
|
+
|
|
85
|
+
### Testing Requirements
|
|
86
|
+
|
|
87
|
+
- **Unit tests** - For all new types, data structures, and internal logic
|
|
88
|
+
- **Integration tests** - Required for anything that:
|
|
89
|
+
- Spawns the CLI subprocess
|
|
90
|
+
- Sends/receives messages via the control protocol
|
|
91
|
+
- Interacts with MCP servers
|
|
92
|
+
- Uses file checkpointing or session management
|
|
93
|
+
|
|
94
|
+
## Step 6: Update Specification
|
|
95
|
+
|
|
96
|
+
After implementing features, run `/spec:update` to refresh SPEC.md with the new implementation status.
|
|
97
|
+
|
|
98
|
+
## Output
|
|
99
|
+
|
|
100
|
+
Provide a summary of:
|
|
101
|
+
- Features implemented
|
|
102
|
+
- Any features skipped (with reasons)
|
|
103
|
+
- Breaking changes introduced
|
|
104
|
+
- Test coverage added
|
|
105
|
+
- Remaining gaps (if any)
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Update SPEC.md with latest feature parity comparison across TypeScript, Python, and Ruby SDKs
|
|
3
|
+
allowed-tools: Bash, Read, Glob, Grep, Write, Edit, TodoWrite, Task
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Update SDK Specification Document
|
|
7
|
+
|
|
8
|
+
You are updating the SPEC.md file to reflect the current feature parity between the TypeScript, Python, and Ruby Claude Agent SDKs.
|
|
9
|
+
|
|
10
|
+
## Step 1: Update Reference SDKs
|
|
11
|
+
|
|
12
|
+
First, ensure the reference SDKs are up to date:
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
bin/update-reference-sdks
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
This clones/updates:
|
|
19
|
+
- Python SDK from GitHub → `vendor/claude-agent-sdk-python`
|
|
20
|
+
- TypeScript SDK from npm → `vendor/claude-agent-sdk-npm`
|
|
21
|
+
|
|
22
|
+
## Step 2: Research Official Documentation
|
|
23
|
+
|
|
24
|
+
Use the `claude-code-guide` agent to check for any new or updated SDK features:
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
Task(subagent_type: "claude-code-guide", prompt: "What are all the features and options in the Claude Agent SDK? Include configuration options, hooks, permissions, MCP support, and control protocol methods.")
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
This helps catch features that may be documented but not yet in the SDK source files.
|
|
31
|
+
|
|
32
|
+
## Step 3: Analyze All Three SDKs
|
|
33
|
+
|
|
34
|
+
Read and compare the following files:
|
|
35
|
+
|
|
36
|
+
### TypeScript SDK (Primary Reference)
|
|
37
|
+
- `vendor/claude-agent-sdk-npm/sdk.d.ts` - Complete API surface with all types
|
|
38
|
+
|
|
39
|
+
### Python SDK
|
|
40
|
+
- `vendor/claude-agent-sdk-python/src/claude_agent_sdk/types.py` - Type definitions
|
|
41
|
+
|
|
42
|
+
### Ruby SDK (This Repository)
|
|
43
|
+
Key files to check:
|
|
44
|
+
- `lib/claude_agent/options.rb` - Configuration options
|
|
45
|
+
- `lib/claude_agent/messages.rb` - Message types
|
|
46
|
+
- `lib/claude_agent/content_blocks.rb` - Content block types
|
|
47
|
+
- `lib/claude_agent/types.rb` - Additional types
|
|
48
|
+
- `lib/claude_agent/hooks.rb` - Hook types
|
|
49
|
+
- `lib/claude_agent/permissions.rb` - Permission types
|
|
50
|
+
- `lib/claude_agent/control_protocol.rb` - Control protocol
|
|
51
|
+
- `lib/claude_agent/sandbox_settings.rb` - Sandbox config
|
|
52
|
+
- `lib/claude_agent/mcp/server.rb` - MCP server
|
|
53
|
+
- `lib/claude_agent/mcp/tool.rb` - MCP tools
|
|
54
|
+
- `lib/claude_agent/client.rb` - Client class
|
|
55
|
+
- `lib/claude_agent/errors.rb` - Error types
|
|
56
|
+
|
|
57
|
+
## Step 4: Update SPEC.md
|
|
58
|
+
|
|
59
|
+
Update the existing SPEC.md file with:
|
|
60
|
+
|
|
61
|
+
1. **Reference Versions** - Update TypeScript SDK version and Python SDK commit
|
|
62
|
+
2. **Feature Tables** - Update all ✅/❌ markers based on current implementations
|
|
63
|
+
3. **New Features** - Add any new features found in the TypeScript SDK
|
|
64
|
+
4. **Removed Features** - Remove any deprecated features
|
|
65
|
+
|
|
66
|
+
### Categories to Compare
|
|
67
|
+
|
|
68
|
+
1. Options/Configuration
|
|
69
|
+
2. Message Types
|
|
70
|
+
3. Content Blocks
|
|
71
|
+
4. Control Protocol
|
|
72
|
+
5. Hooks
|
|
73
|
+
6. Permissions
|
|
74
|
+
7. MCP Support
|
|
75
|
+
8. Sessions
|
|
76
|
+
9. Subagents
|
|
77
|
+
10. Sandbox Settings
|
|
78
|
+
11. Error Handling
|
|
79
|
+
12. Client API
|
|
80
|
+
|
|
81
|
+
## Guidelines
|
|
82
|
+
|
|
83
|
+
- **Be thorough** - Check every field and option in each SDK
|
|
84
|
+
- **TypeScript is authoritative** - The TypeScript sdk.d.ts is the most complete reference
|
|
85
|
+
- **Preserve format** - Keep the existing table structure and markdown formatting
|
|
86
|
+
- **Update versions** - Always update the reference version info at the top
|
|
87
|
+
- **Note changes** - If significant changes are found, mention them after updating
|
|
88
|
+
|
|
89
|
+
## Output
|
|
90
|
+
|
|
91
|
+
After updating SPEC.md, provide a brief summary of:
|
|
92
|
+
- SDK versions checked
|
|
93
|
+
- Any new features added to the spec
|
|
94
|
+
- Any features removed from the spec
|
|
95
|
+
- Any notable gaps in the Ruby SDK
|