claude_code 0.0.16 → 0.0.18

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 912e60b15e6af441632728d384ad6bde287ea6cf14eeae1c54934ae60951da0b
4
- data.tar.gz: f6619c2932a46a6a29d8ee6db2b7d9e6463228c524e511ea5a9f6e5a83fa0457
3
+ metadata.gz: d71920ae98cc19c69eda1610b4c4367f1531b3b41c466fdc467d920bae63a713
4
+ data.tar.gz: 8f855c18f87fb0643e328bc5de2462cf2621f2ea38158876428ad78667b18c3b
5
5
  SHA512:
6
- metadata.gz: 52a42ebd63060fb1c9f3cbc8da87ddb0fda733c73df81d049210f77c044251e7e7a157ecce4af0acf4863984cebb1bb4a5f8771c7766cc0718ac2c3aaa1ccf49
7
- data.tar.gz: 353fd6f2af321a1c1cde6c2fbf8a1f820d1789089a63c2136c934e4057a461f96e4e29f0c3b95b53097374a8adab0f52e019ad529e6d53a2001530c5b8ea22e1
6
+ metadata.gz: f28919a76f9c55edd6462f6dd659bac4fe5881138134841aaa45db6dfb9479a5f66da184946b85452f8178aad82e92dc7502b7489ef740b28e8935ed29af5410
7
+ data.tar.gz: 21f774d7eeb568ba4d7c88559447080a87ca531ebfbce7f8fd225ad25b12efc2525e056464b99d705bea1553719d3f8915a953c2e55f4dc40187bfd9cafb42ee
@@ -5,7 +5,11 @@
5
5
  "Bash(git add:*)",
6
6
  "Bash(git commit:*)",
7
7
  "Bash(git push:*)",
8
- "Bash(gem build:*)"
8
+ "Bash(gem build:*)",
9
+ "Bash(gem push:*)",
10
+ "Bash(ls:*)",
11
+ "Bash(gem search:*)",
12
+ "Bash(ruby:*)"
9
13
  ],
10
14
  "deny": []
11
15
  }
data/.rspec_status CHANGED
@@ -1,128 +1,128 @@
1
1
  example_id | status | run_time |
2
2
  -------------------------------------------------- | ------ | --------------- |
3
- ./spec/claude_code/add_mcp_server_spec.rb[1:1:1:1] | passed | 0.0008 seconds |
3
+ ./spec/claude_code/add_mcp_server_spec.rb[1:1:1:1] | passed | 0.00084 seconds |
4
4
  ./spec/claude_code/add_mcp_server_spec.rb[1:1:1:2] | passed | 0.00004 seconds |
5
- ./spec/claude_code/add_mcp_server_spec.rb[1:1:1:3] | passed | 0.00004 seconds |
6
- ./spec/claude_code/add_mcp_server_spec.rb[1:1:1:4] | passed | 0.00003 seconds |
7
- ./spec/claude_code/add_mcp_server_spec.rb[1:1:2:1] | passed | 0.00003 seconds |
8
- ./spec/claude_code/add_mcp_server_spec.rb[1:1:2:2] | passed | 0.00003 seconds |
9
- ./spec/claude_code/add_mcp_server_spec.rb[1:1:2:3] | passed | 0.00003 seconds |
10
- ./spec/claude_code/add_mcp_server_spec.rb[1:1:2:4] | passed | 0.00004 seconds |
11
- ./spec/claude_code/add_mcp_server_spec.rb[1:1:2:5] | passed | 0.00004 seconds |
12
- ./spec/claude_code/add_mcp_server_spec.rb[1:1:3:1] | passed | 0.00012 seconds |
5
+ ./spec/claude_code/add_mcp_server_spec.rb[1:1:1:3] | passed | 0.00005 seconds |
6
+ ./spec/claude_code/add_mcp_server_spec.rb[1:1:1:4] | passed | 0.00004 seconds |
7
+ ./spec/claude_code/add_mcp_server_spec.rb[1:1:2:1] | passed | 0.00011 seconds |
8
+ ./spec/claude_code/add_mcp_server_spec.rb[1:1:2:2] | passed | 0.00004 seconds |
9
+ ./spec/claude_code/add_mcp_server_spec.rb[1:1:2:3] | passed | 0.00004 seconds |
10
+ ./spec/claude_code/add_mcp_server_spec.rb[1:1:2:4] | passed | 0.00005 seconds |
11
+ ./spec/claude_code/add_mcp_server_spec.rb[1:1:2:5] | passed | 0.00005 seconds |
12
+ ./spec/claude_code/add_mcp_server_spec.rb[1:1:3:1] | passed | 0.00003 seconds |
13
13
  ./spec/claude_code/add_mcp_server_spec.rb[1:1:3:2] | passed | 0.00003 seconds |
14
- ./spec/claude_code/add_mcp_server_spec.rb[1:1:3:3] | passed | 0.00003 seconds |
15
- ./spec/claude_code/add_mcp_server_spec.rb[1:1:4:1] | passed | 0.00007 seconds |
14
+ ./spec/claude_code/add_mcp_server_spec.rb[1:1:3:3] | passed | 0.00127 seconds |
15
+ ./spec/claude_code/add_mcp_server_spec.rb[1:1:4:1] | passed | 0.00006 seconds |
16
16
  ./spec/claude_code/add_mcp_server_spec.rb[1:1:5:1] | passed | 0.00004 seconds |
17
- ./spec/claude_code/client_spec.rb[1:1:1:1] | passed | 0.00039 seconds |
18
- ./spec/claude_code/client_spec.rb[1:1:1:2] | passed | 0.00043 seconds |
19
- ./spec/claude_code/client_spec.rb[1:1:1:3] | passed | 0.0005 seconds |
17
+ ./spec/claude_code/client_spec.rb[1:1:1:1] | passed | 0.00041 seconds |
18
+ ./spec/claude_code/client_spec.rb[1:1:1:2] | passed | 0.00038 seconds |
19
+ ./spec/claude_code/client_spec.rb[1:1:1:3] | passed | 0.00042 seconds |
20
20
  ./spec/claude_code/client_spec.rb[1:1:1:4] | passed | 0.00044 seconds |
21
- ./spec/claude_code/client_spec.rb[1:1:2:1] | passed | 0.00019 seconds |
21
+ ./spec/claude_code/client_spec.rb[1:1:2:1] | passed | 0.00024 seconds |
22
22
  ./spec/claude_code/client_spec.rb[1:1:3:1] | passed | 0.00012 seconds |
23
- ./spec/claude_code/client_spec.rb[1:1:4:1] | passed | 0.00035 seconds |
24
- ./spec/claude_code/client_spec.rb[1:1:5:1] | passed | 0.00032 seconds |
25
- ./spec/claude_code/client_spec.rb[1:1:5:2] | passed | 0.00036 seconds |
26
- ./spec/claude_code/client_spec.rb[1:1:5:3] | passed | 0.00033 seconds |
23
+ ./spec/claude_code/client_spec.rb[1:1:4:1] | passed | 0.00097 seconds |
24
+ ./spec/claude_code/client_spec.rb[1:1:5:1] | passed | 0.00046 seconds |
25
+ ./spec/claude_code/client_spec.rb[1:1:5:2] | passed | 0.00042 seconds |
26
+ ./spec/claude_code/client_spec.rb[1:1:5:3] | passed | 0.00054 seconds |
27
27
  ./spec/claude_code/client_spec.rb[1:2:1] | passed | 0.00007 seconds |
28
- ./spec/claude_code/client_spec.rb[1:2:2] | passed | 0.00018 seconds |
28
+ ./spec/claude_code/client_spec.rb[1:2:2] | passed | 0.00019 seconds |
29
29
  ./spec/claude_code/client_spec.rb[1:2:3] | passed | 0.00018 seconds |
30
- ./spec/claude_code/client_spec.rb[1:2:4] | passed | 0.00023 seconds |
31
- ./spec/claude_code/client_spec.rb[1:3:1:1] | passed | 0.00003 seconds |
30
+ ./spec/claude_code/client_spec.rb[1:2:4] | passed | 0.00019 seconds |
31
+ ./spec/claude_code/client_spec.rb[1:3:1:1] | passed | 0.00004 seconds |
32
32
  ./spec/claude_code/client_spec.rb[1:3:1:2] | passed | 0.00004 seconds |
33
- ./spec/claude_code/client_spec.rb[1:3:2:1] | passed | 0.00003 seconds |
33
+ ./spec/claude_code/client_spec.rb[1:3:2:1] | passed | 0.00004 seconds |
34
34
  ./spec/claude_code/client_spec.rb[1:3:3:1] | passed | 0.00004 seconds |
35
- ./spec/claude_code/client_spec.rb[1:3:4:1] | passed | 0.00004 seconds |
35
+ ./spec/claude_code/client_spec.rb[1:3:4:1] | passed | 0.00003 seconds |
36
36
  ./spec/claude_code/client_spec.rb[1:3:5:1] | passed | 0.00003 seconds |
37
- ./spec/claude_code/client_spec.rb[1:3:5:2] | passed | 0.00004 seconds |
37
+ ./spec/claude_code/client_spec.rb[1:3:5:2] | passed | 0.00003 seconds |
38
38
  ./spec/claude_code/client_spec.rb[1:3:6:1] | passed | 0.00004 seconds |
39
- ./spec/claude_code/client_spec.rb[1:3:6:2] | passed | 0.00004 seconds |
40
- ./spec/claude_code/subprocess_cli_spec.rb[1:1:1:1] | passed | 0.0004 seconds |
41
- ./spec/claude_code/subprocess_cli_spec.rb[1:1:1:2] | passed | 0.00045 seconds |
42
- ./spec/claude_code/subprocess_cli_spec.rb[1:1:2:1] | passed | 0.00016 seconds |
43
- ./spec/claude_code/subprocess_cli_spec.rb[1:1:3:1] | passed | 0.00034 seconds |
44
- ./spec/claude_code/subprocess_cli_spec.rb[1:2:1] | passed | 0.00004 seconds |
45
- ./spec/claude_code/subprocess_cli_spec.rb[1:2:2] | passed | 0.00006 seconds |
46
- ./spec/claude_code/subprocess_cli_spec.rb[1:2:3] | passed | 0.00004 seconds |
47
- ./spec/claude_code/subprocess_cli_spec.rb[1:2:4] | passed | 0.00008 seconds |
48
- ./spec/claude_code/subprocess_cli_spec.rb[1:3:1] | passed | 0.00112 seconds |
49
- ./spec/claude_code/subprocess_cli_spec.rb[1:3:2] | passed | 0.00018 seconds |
50
- ./spec/claude_code/subprocess_cli_spec.rb[1:3:3] | passed | 0.00031 seconds |
51
- ./spec/claude_code/subprocess_cli_spec.rb[1:4:1] | passed | 0.00004 seconds |
52
- ./spec/claude_code/subprocess_cli_spec.rb[1:4:2] | passed | 0.00012 seconds |
53
- ./spec/claude_code/subprocess_cli_spec.rb[1:4:3] | passed | 0.00011 seconds |
54
- ./spec/claude_code/subprocess_cli_spec.rb[1:5:1] | passed | 0.00022 seconds |
55
- ./spec/claude_code/subprocess_cli_spec.rb[1:5:2] | passed | 0.00026 seconds |
56
- ./spec/claude_code_spec.rb[1:1] | passed | 0.00281 seconds |
39
+ ./spec/claude_code/client_spec.rb[1:3:6:2] | passed | 0.00003 seconds |
40
+ ./spec/claude_code/subprocess_cli_spec.rb[1:1:1:1] | passed | 0.00046 seconds |
41
+ ./spec/claude_code/subprocess_cli_spec.rb[1:1:1:2] | passed | 0.00069 seconds |
42
+ ./spec/claude_code/subprocess_cli_spec.rb[1:1:2:1] | passed | 0.00009 seconds |
43
+ ./spec/claude_code/subprocess_cli_spec.rb[1:1:3:1] | passed | 0.00039 seconds |
44
+ ./spec/claude_code/subprocess_cli_spec.rb[1:2:1] | passed | 0.00005 seconds |
45
+ ./spec/claude_code/subprocess_cli_spec.rb[1:2:2] | passed | 0.00004 seconds |
46
+ ./spec/claude_code/subprocess_cli_spec.rb[1:2:3] | passed | 0.00003 seconds |
47
+ ./spec/claude_code/subprocess_cli_spec.rb[1:2:4] | passed | 0.00006 seconds |
48
+ ./spec/claude_code/subprocess_cli_spec.rb[1:3:1] | passed | 0.0014 seconds |
49
+ ./spec/claude_code/subprocess_cli_spec.rb[1:3:2] | passed | 0.0027 seconds |
50
+ ./spec/claude_code/subprocess_cli_spec.rb[1:3:3] | passed | 0.00332 seconds |
51
+ ./spec/claude_code/subprocess_cli_spec.rb[1:4:1] | passed | 0.00005 seconds |
52
+ ./spec/claude_code/subprocess_cli_spec.rb[1:4:2] | passed | 0.00017 seconds |
53
+ ./spec/claude_code/subprocess_cli_spec.rb[1:4:3] | passed | 0.00013 seconds |
54
+ ./spec/claude_code/subprocess_cli_spec.rb[1:5:1] | passed | 0.00033 seconds |
55
+ ./spec/claude_code/subprocess_cli_spec.rb[1:5:2] | passed | 0.00017 seconds |
56
+ ./spec/claude_code_spec.rb[1:1] | passed | 0.00458 seconds |
57
57
  ./spec/claude_code_spec.rb[1:2:1] | passed | 0.00026 seconds |
58
- ./spec/claude_code_spec.rb[1:2:2] | passed | 0.0014 seconds |
59
- ./spec/claude_code_spec.rb[1:2:3] | passed | 0.00016 seconds |
60
- ./spec/claude_code_spec.rb[1:2:4] | passed | 0.00016 seconds |
61
- ./spec/claude_code_spec.rb[1:2:5] | passed | 0.00018 seconds |
62
- ./spec/claude_code_spec.rb[1:2:6] | passed | 0.00019 seconds |
63
- ./spec/claude_code_spec.rb[1:3:1] | passed | 0.0002 seconds |
64
- ./spec/claude_code_spec.rb[1:3:2] | passed | 0.00031 seconds |
65
- ./spec/claude_code_spec.rb[1:3:3] | passed | 0.00041 seconds |
66
- ./spec/claude_code_spec.rb[1:3:4] | passed | 0.00027 seconds |
67
- ./spec/claude_code_spec.rb[1:4:1] | passed | 0.0002 seconds |
68
- ./spec/claude_code_spec.rb[1:4:2] | passed | 0.00016 seconds |
69
- ./spec/claude_code_spec.rb[1:4:3] | passed | 0.00052 seconds |
70
- ./spec/claude_code_spec.rb[1:5:1] | passed | 0.00014 seconds |
71
- ./spec/claude_code_spec.rb[1:5:2] | passed | 0.00026 seconds |
72
- ./spec/claude_code_spec.rb[1:6:1] | passed | 0.00047 seconds |
73
- ./spec/claude_code_spec.rb[1:6:2] | passed | 0.00022 seconds |
74
- ./spec/claude_code_spec.rb[1:6:3] | passed | 0.00048 seconds |
75
- ./spec/claude_code_spec.rb[1:7:1] | passed | 0.0001 seconds |
76
- ./spec/claude_code_spec.rb[1:7:2] | passed | 0.00011 seconds |
77
- ./spec/claude_code_spec.rb[1:8:1] | passed | 0.00048 seconds |
78
- ./spec/claude_code_spec.rb[1:8:2] | passed | 0.00096 seconds |
79
- ./spec/claude_code_spec.rb[1:9:1:1] | passed | 0.00054 seconds |
80
- ./spec/claude_code_spec.rb[1:9:1:2] | passed | 0.00015 seconds |
81
- ./spec/claude_code_spec.rb[1:9:1:3] | passed | 0.00011 seconds |
58
+ ./spec/claude_code_spec.rb[1:2:2] | passed | 0.00021 seconds |
59
+ ./spec/claude_code_spec.rb[1:2:3] | passed | 0.00017 seconds |
60
+ ./spec/claude_code_spec.rb[1:2:4] | passed | 0.00024 seconds |
61
+ ./spec/claude_code_spec.rb[1:2:5] | passed | 0.0002 seconds |
62
+ ./spec/claude_code_spec.rb[1:2:6] | passed | 0.00023 seconds |
63
+ ./spec/claude_code_spec.rb[1:3:1] | passed | 0.00015 seconds |
64
+ ./spec/claude_code_spec.rb[1:3:2] | passed | 0.00017 seconds |
65
+ ./spec/claude_code_spec.rb[1:3:3] | passed | 0.0002 seconds |
66
+ ./spec/claude_code_spec.rb[1:3:4] | passed | 0.00013 seconds |
67
+ ./spec/claude_code_spec.rb[1:4:1] | passed | 0.00035 seconds |
68
+ ./spec/claude_code_spec.rb[1:4:2] | passed | 0.00065 seconds |
69
+ ./spec/claude_code_spec.rb[1:4:3] | passed | 0.00079 seconds |
70
+ ./spec/claude_code_spec.rb[1:5:1] | passed | 0.00017 seconds |
71
+ ./spec/claude_code_spec.rb[1:5:2] | passed | 0.00039 seconds |
72
+ ./spec/claude_code_spec.rb[1:6:1] | passed | 0.00018 seconds |
73
+ ./spec/claude_code_spec.rb[1:6:2] | passed | 0.00018 seconds |
74
+ ./spec/claude_code_spec.rb[1:6:3] | passed | 0.00015 seconds |
75
+ ./spec/claude_code_spec.rb[1:7:1] | passed | 0.00015 seconds |
76
+ ./spec/claude_code_spec.rb[1:7:2] | passed | 0.00032 seconds |
77
+ ./spec/claude_code_spec.rb[1:8:1] | passed | 0.00023 seconds |
78
+ ./spec/claude_code_spec.rb[1:8:2] | passed | 0.00086 seconds |
79
+ ./spec/claude_code_spec.rb[1:9:1:1] | passed | 0.00014 seconds |
80
+ ./spec/claude_code_spec.rb[1:9:1:2] | passed | 0.00011 seconds |
81
+ ./spec/claude_code_spec.rb[1:9:1:3] | passed | 0.00133 seconds |
82
82
  ./spec/errors_spec.rb[1:1:1:1] | passed | 0.00003 seconds |
83
83
  ./spec/errors_spec.rb[1:1:1:2] | passed | 0.00003 seconds |
84
84
  ./spec/errors_spec.rb[1:1:2:1] | passed | 0.00003 seconds |
85
85
  ./spec/errors_spec.rb[1:1:2:2] | passed | 0.00003 seconds |
86
86
  ./spec/errors_spec.rb[1:1:2:3] | passed | 0.00003 seconds |
87
- ./spec/errors_spec.rb[1:1:2:4] | passed | 0.00003 seconds |
88
- ./spec/errors_spec.rb[1:1:3:1] | passed | 0.00003 seconds |
87
+ ./spec/errors_spec.rb[1:1:2:4] | passed | 0.00002 seconds |
88
+ ./spec/errors_spec.rb[1:1:3:1] | passed | 0.00002 seconds |
89
89
  ./spec/errors_spec.rb[1:1:3:2] | passed | 0.00003 seconds |
90
90
  ./spec/errors_spec.rb[1:1:4:1] | passed | 0.00003 seconds |
91
91
  ./spec/errors_spec.rb[1:1:4:2] | passed | 0.00003 seconds |
92
92
  ./spec/errors_spec.rb[1:1:4:3] | passed | 0.00003 seconds |
93
- ./spec/errors_spec.rb[1:1:4:4] | passed | 0.00004 seconds |
93
+ ./spec/errors_spec.rb[1:1:4:4] | passed | 0.00003 seconds |
94
94
  ./spec/errors_spec.rb[1:1:4:5] | passed | 0.00003 seconds |
95
95
  ./spec/errors_spec.rb[1:1:5:1] | passed | 0.00003 seconds |
96
- ./spec/errors_spec.rb[1:1:5:2] | passed | 0.00004 seconds |
97
- ./spec/errors_spec.rb[1:1:5:3] | passed | 0.00037 seconds |
98
- ./spec/errors_spec.rb[1:1:5:4] | passed | 0.00004 seconds |
99
- ./spec/errors_spec.rb[1:2:1] | passed | 0.00031 seconds |
100
- ./spec/errors_spec.rb[1:2:2] | passed | 0.00016 seconds |
101
- ./spec/errors_spec.rb[1:2:3] | passed | 0.00014 seconds |
102
- ./spec/errors_spec.rb[1:2:4] | passed | 0.00018 seconds |
103
- ./spec/errors_spec.rb[1:2:5] | passed | 0.00014 seconds |
104
- ./spec/integration/claude_code_spec.rb[1:1:1:1] | passed | 0.00074 seconds |
105
- ./spec/integration/claude_code_spec.rb[1:1:2:1] | passed | 0.00395 seconds |
106
- ./spec/integration/claude_code_spec.rb[1:1:3:1] | passed | 0.00289 seconds |
107
- ./spec/integration/claude_code_spec.rb[1:1:4:1] | passed | 0.0004 seconds |
108
- ./spec/integration/claude_code_spec.rb[1:1:5:1] | passed | 0.00039 seconds |
109
- ./spec/jsonl_helpers_spec.rb[1:1:1] | passed | 0.00003 seconds |
110
- ./spec/jsonl_helpers_spec.rb[1:1:2] | passed | 0.00002 seconds |
111
- ./spec/jsonl_helpers_spec.rb[1:1:3] | passed | 0.00003 seconds |
96
+ ./spec/errors_spec.rb[1:1:5:2] | passed | 0.00012 seconds |
97
+ ./spec/errors_spec.rb[1:1:5:3] | passed | 0.00004 seconds |
98
+ ./spec/errors_spec.rb[1:1:5:4] | passed | 0.00003 seconds |
99
+ ./spec/errors_spec.rb[1:2:1] | passed | 0.00038 seconds |
100
+ ./spec/errors_spec.rb[1:2:2] | passed | 0.00022 seconds |
101
+ ./spec/errors_spec.rb[1:2:3] | passed | 0.00015 seconds |
102
+ ./spec/errors_spec.rb[1:2:4] | passed | 0.00015 seconds |
103
+ ./spec/errors_spec.rb[1:2:5] | passed | 0.00016 seconds |
104
+ ./spec/integration/claude_code_spec.rb[1:1:1:1] | passed | 0.00068 seconds |
105
+ ./spec/integration/claude_code_spec.rb[1:1:2:1] | passed | 0.00045 seconds |
106
+ ./spec/integration/claude_code_spec.rb[1:1:3:1] | passed | 0.00017 seconds |
107
+ ./spec/integration/claude_code_spec.rb[1:1:4:1] | passed | 0.00046 seconds |
108
+ ./spec/integration/claude_code_spec.rb[1:1:5:1] | passed | 0.00045 seconds |
109
+ ./spec/jsonl_helpers_spec.rb[1:1:1] | passed | 0.00011 seconds |
110
+ ./spec/jsonl_helpers_spec.rb[1:1:2] | passed | 0.00003 seconds |
111
+ ./spec/jsonl_helpers_spec.rb[1:1:3] | passed | 0.00008 seconds |
112
112
  ./spec/jsonl_helpers_spec.rb[1:1:4] | passed | 0.00003 seconds |
113
- ./spec/jsonl_helpers_spec.rb[1:2:1] | passed | 0.00004 seconds |
113
+ ./spec/jsonl_helpers_spec.rb[1:2:1] | passed | 0.00003 seconds |
114
114
  ./spec/jsonl_helpers_spec.rb[1:2:2] | passed | 0.00003 seconds |
115
- ./spec/jsonl_helpers_spec.rb[1:2:3] | passed | 0.00003 seconds |
115
+ ./spec/jsonl_helpers_spec.rb[1:2:3] | passed | 0.00002 seconds |
116
116
  ./spec/jsonl_helpers_spec.rb[1:2:4] | passed | 0.00003 seconds |
117
- ./spec/jsonl_helpers_spec.rb[1:3:1] | passed | 0.00005 seconds |
117
+ ./spec/jsonl_helpers_spec.rb[1:3:1] | passed | 0.0001 seconds |
118
118
  ./spec/jsonl_helpers_spec.rb[1:3:2] | passed | 0.00003 seconds |
119
- ./spec/jsonl_helpers_spec.rb[1:3:3] | passed | 0.00003 seconds |
120
- ./spec/jsonl_helpers_spec.rb[1:3:4] | passed | 0.00004 seconds |
121
- ./spec/jsonl_helpers_spec.rb[1:4:1] | passed | 0.00064 seconds |
119
+ ./spec/jsonl_helpers_spec.rb[1:3:3] | passed | 0.00004 seconds |
120
+ ./spec/jsonl_helpers_spec.rb[1:3:4] | passed | 0.00005 seconds |
121
+ ./spec/jsonl_helpers_spec.rb[1:4:1] | passed | 0.00079 seconds |
122
122
  ./spec/types_spec.rb[1:1:1:1] | passed | 0.00003 seconds |
123
123
  ./spec/types_spec.rb[1:1:2:1] | passed | 0.00003 seconds |
124
124
  ./spec/types_spec.rb[1:1:3:1] | passed | 0.00003 seconds |
125
125
  ./spec/types_spec.rb[1:1:4:1] | passed | 0.00003 seconds |
126
126
  ./spec/types_spec.rb[1:2:1] | passed | 0.00004 seconds |
127
127
  ./spec/types_spec.rb[1:2:2] | passed | 0.00003 seconds |
128
- ./spec/types_spec.rb[1:2:3:1] | passed | 0.00003 seconds |
128
+ ./spec/types_spec.rb[1:2:3:1] | passed | 0.00005 seconds |
data/CHANGELOG.md CHANGED
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.0.18] - 2025-01-16
11
+
12
+ ### Fixed
13
+ - Fixed command line length limit issue by switching from command line arguments to stdin for prompt input
14
+ - This resolves errors when using long prompts that exceed system ARG_MAX limits
15
+
10
16
  ### Added
11
17
  - Real-time streaming support with lazy enumerators
12
18
  - Ergonomic MCP (Model Context Protocol) integration
data/USAGE_EXAMPLES.md CHANGED
@@ -59,7 +59,7 @@ resume_last("Continue with last session")
59
59
  require_relative 'path/to/ruby/lib/claude_code_sdk'
60
60
 
61
61
  # Use normally
62
- ClaudeCodeSDK.query(prompt: "Hello").each { |msg| puts msg }
62
+ ClaudeCode.query(prompt: "Hello").each { |msg| puts msg }
63
63
  ```
64
64
 
65
65
  ## Rails + Sidekiq Streaming Example
@@ -83,29 +83,29 @@ gem 'redis'
83
83
  # app/jobs/claude_streaming_job.rb
84
84
  class ClaudeStreamingJob
85
85
  include Sidekiq::Job
86
-
86
+
87
87
  def perform(user_id, query_id, prompt, options = {})
88
88
  require_relative '../vendor/claude-code-sdk-ruby/lib/claude_code_sdk'
89
-
89
+
90
90
  channel = "claude_stream_#{user_id}_#{query_id}"
91
-
91
+
92
92
  # Parse options
93
- claude_options = ClaudeCodeSDK::ClaudeCodeOptions.new(
93
+ claude_options = ClaudeCode::ClaudeCodeOptions.new(
94
94
  model: options['model'],
95
95
  max_turns: options['max_turns'] || 1,
96
96
  system_prompt: options['system_prompt'],
97
97
  allowed_tools: options['allowed_tools'] || []
98
98
  )
99
-
99
+
100
100
  # Stream Claude responses
101
101
  message_count = 0
102
- ClaudeCodeSDK.query(
102
+ ClaudeCode.query(
103
103
  prompt: prompt,
104
104
  options: claude_options,
105
105
  cli_path: ENV['CLAUDE_CLI_PATH'] || '/usr/local/bin/claude'
106
106
  ).each do |message|
107
107
  message_count += 1
108
-
108
+
109
109
  # Broadcast each message via ActionCable
110
110
  ActionCable.server.broadcast(channel, {
111
111
  type: 'claude_message',
@@ -114,11 +114,11 @@ class ClaudeStreamingJob
114
114
  timestamp: Time.current.iso8601,
115
115
  data: serialize_claude_message(message)
116
116
  })
117
-
117
+
118
118
  # Optional: Save to database
119
119
  save_message_to_db(user_id, query_id, message_count, message)
120
120
  end
121
-
121
+
122
122
  # Broadcast completion
123
123
  ActionCable.server.broadcast(channel, {
124
124
  type: 'complete',
@@ -127,23 +127,23 @@ class ClaudeStreamingJob
127
127
  timestamp: Time.current.iso8601
128
128
  })
129
129
  end
130
-
130
+
131
131
  private
132
-
132
+
133
133
  def serialize_claude_message(message)
134
134
  case message
135
- when ClaudeCodeSDK::SystemMessage
135
+ when ClaudeCode::SystemMessage
136
136
  {
137
137
  message_type: 'system',
138
138
  subtype: message.subtype,
139
139
  data: message.data
140
140
  }
141
- when ClaudeCodeSDK::AssistantMessage
141
+ when ClaudeCode::AssistantMessage
142
142
  {
143
143
  message_type: 'assistant',
144
144
  content: message.content.map { |block| serialize_content_block(block) }
145
145
  }
146
- when ClaudeCodeSDK::ResultMessage
146
+ when ClaudeCode::ResultMessage
147
147
  {
148
148
  message_type: 'result',
149
149
  subtype: message.subtype,
@@ -153,18 +153,18 @@ class ClaudeStreamingJob
153
153
  }
154
154
  end
155
155
  end
156
-
156
+
157
157
  def serialize_content_block(block)
158
158
  case block
159
- when ClaudeCodeSDK::TextBlock
159
+ when ClaudeCode::TextBlock
160
160
  { type: 'text', text: block.text }
161
- when ClaudeCodeSDK::ToolUseBlock
161
+ when ClaudeCode::ToolUseBlock
162
162
  { type: 'tool_use', id: block.id, name: block.name, input: block.input }
163
- when ClaudeCodeSDK::ToolResultBlock
163
+ when ClaudeCode::ToolResultBlock
164
164
  { type: 'tool_result', tool_use_id: block.tool_use_id, content: block.content, is_error: block.is_error }
165
165
  end
166
166
  end
167
-
167
+
168
168
  def save_message_to_db(user_id, query_id, message_index, message)
169
169
  # Example database save
170
170
  # ClaudeMessage.create!(
@@ -191,7 +191,7 @@ class ClaudeStreamChannel < ApplicationCable::Channel
191
191
  reject
192
192
  end
193
193
  end
194
-
194
+
195
195
  def unsubscribed
196
196
  # Cleanup when channel is unsubscribed
197
197
  end
@@ -204,10 +204,10 @@ end
204
204
  # app/controllers/claude_controller.rb
205
205
  class ClaudeController < ApplicationController
206
206
  before_action :authenticate_user!
207
-
207
+
208
208
  def create_stream_query
209
209
  query_id = SecureRandom.uuid
210
-
210
+
211
211
  # Validate input
212
212
  prompt = params.require(:prompt)
213
213
  options = {
@@ -216,7 +216,7 @@ class ClaudeController < ApplicationController
216
216
  'system_prompt' => params[:system_prompt],
217
217
  'allowed_tools' => params[:allowed_tools] || []
218
218
  }
219
-
219
+
220
220
  # Start background job
221
221
  ClaudeStreamingJob.perform_async(
222
222
  current_user.id,
@@ -224,7 +224,7 @@ class ClaudeController < ApplicationController
224
224
  prompt,
225
225
  options
226
226
  )
227
-
227
+
228
228
  render json: {
229
229
  query_id: query_id,
230
230
  channel: "claude_stream_#{current_user.id}_#{query_id}",
@@ -243,7 +243,7 @@ class ClaudeStreaming {
243
243
  this.userId = userId;
244
244
  this.activeSubscriptions = new Map();
245
245
  }
246
-
246
+
247
247
  startQuery(prompt, options = {}) {
248
248
  return fetch('/claude/stream_query', {
249
249
  method: 'POST',
@@ -265,7 +265,7 @@ class ClaudeStreaming {
265
265
  return data;
266
266
  });
267
267
  }
268
-
268
+
269
269
  subscribeToQuery(queryId, onMessage, onComplete) {
270
270
  const subscription = App.cable.subscriptions.create(
271
271
  {
@@ -287,13 +287,13 @@ class ClaudeStreaming {
287
287
  }
288
288
  }
289
289
  );
290
-
290
+
291
291
  this.activeSubscriptions.set(queryId, subscription);
292
292
  }
293
-
293
+
294
294
  handleClaudeMessage(data, onMessage) {
295
295
  const message = data.data;
296
-
296
+
297
297
  if (message.message_type === 'assistant') {
298
298
  message.content.forEach(block => {
299
299
  if (block.type === 'text') {
@@ -320,7 +320,7 @@ class ClaudeStreaming {
320
320
  });
321
321
  }
322
322
  }
323
-
323
+
324
324
  handleComplete(data, onComplete) {
325
325
  if (onComplete) {
326
326
  onComplete({
@@ -330,7 +330,7 @@ class ClaudeStreaming {
330
330
  });
331
331
  }
332
332
  }
333
-
333
+
334
334
  unsubscribeFromQuery(queryId) {
335
335
  const subscription = this.activeSubscriptions.get(queryId);
336
336
  if (subscription) {
@@ -376,7 +376,7 @@ REDIS_URL=redis://localhost:6379/0
376
376
  # config/routes.rb
377
377
  Rails.application.routes.draw do
378
378
  mount ActionCable.server => '/cable'
379
-
379
+
380
380
  resources :claude, only: [] do
381
381
  collection do
382
382
  post 'stream_query'
@@ -418,11 +418,11 @@ ClaudeStreamingJob.perform_async(
418
418
  This setup provides:
419
419
  - ✅ Real-time streaming via WebSockets
420
420
  - ✅ Background processing with Sidekiq
421
- - ✅ Error handling and retry logic
421
+ - ✅ Error handling and retry logic
422
422
  - ✅ Message persistence (optional)
423
423
  - ✅ User authentication and authorization
424
424
  - ✅ Frontend integration with ActionCable
425
425
  - ✅ MCP server support
426
426
  - ✅ Cost tracking and monitoring
427
427
 
428
- The streaming happens in real-time, so users see Claude's responses as they're generated, providing an excellent user experience for AI-powered Rails applications.
428
+ The streaming happens in real-time, so users see Claude's responses as they're generated, providing an excellent user experience for AI-powered Rails applications.
Binary file
data/docs/README.md CHANGED
@@ -24,7 +24,7 @@ gem install claude_code_sdk
24
24
 
25
25
  **Prerequisites:**
26
26
  - Ruby 3.0+
27
- - Node.js
27
+ - Node.js
28
28
  - Claude Code: `npm install -g @anthropic-ai/claude-code`
29
29
 
30
30
  ## Quick Start
@@ -33,10 +33,10 @@ gem install claude_code_sdk
33
33
  require 'claude_code_sdk'
34
34
 
35
35
  # Simple query with streaming
36
- ClaudeCodeSDK.query(prompt: "What is 2 + 2?").each do |message|
37
- if message.is_a?(ClaudeCodeSDK::AssistantMessage)
36
+ ClaudeCode.query(prompt: "What is 2 + 2?").each do |message|
37
+ if message.is_a?(ClaudeCode::AssistantMessage)
38
38
  message.content.each do |block|
39
- if block.is_a?(ClaudeCodeSDK::TextBlock)
39
+ if block.is_a?(ClaudeCode::TextBlock)
40
40
  puts block.text
41
41
  end
42
42
  end
@@ -51,7 +51,7 @@ end
51
51
  - Low memory footprint - process one message at a time
52
52
  - Perfect for interactive applications and long-running operations
53
53
 
54
- ### 🔧 **Ergonomic MCP Integration**
54
+ ### 🔧 **Ergonomic MCP Integration**
55
55
  - Simple one-line MCP server configuration
56
56
  - Support for HTTP, SSE, and stdio MCP servers
57
57
  - Built-in helpers for common use cases
@@ -75,13 +75,13 @@ end
75
75
  require 'claude_code_sdk'
76
76
 
77
77
  # With options
78
- options = ClaudeCodeSDK::ClaudeCodeOptions.new(
78
+ options = ClaudeCode::ClaudeCodeOptions.new(
79
79
  model: "sonnet",
80
80
  system_prompt: "You are a helpful assistant",
81
81
  max_turns: 1
82
82
  )
83
83
 
84
- ClaudeCodeSDK.query(
84
+ ClaudeCode.query(
85
85
  prompt: "Explain Ruby blocks",
86
86
  options: options,
87
87
  cli_path: "/path/to/claude"
@@ -94,7 +94,7 @@ end
94
94
 
95
95
  ```ruby
96
96
  # Ultra-convenient MCP usage
97
- ClaudeCodeSDK.quick_mcp_query(
97
+ ClaudeCode.quick_mcp_query(
98
98
  "Use the about tool to describe yourself",
99
99
  server_name: "ninja",
100
100
  server_url: "https://mcp-creator-ninja-v1-4-0.mcp.soy/",
@@ -104,13 +104,13 @@ ClaudeCodeSDK.quick_mcp_query(
104
104
  end
105
105
 
106
106
  # Advanced MCP configuration
107
- mcp_servers = ClaudeCodeSDK.add_mcp_server("my_server", {
107
+ mcp_servers = ClaudeCode.add_mcp_server("my_server", {
108
108
  command: "node",
109
109
  args: ["my-mcp-server.js"],
110
110
  env: { "API_KEY" => "secret" }
111
111
  })
112
112
 
113
- options = ClaudeCodeSDK::ClaudeCodeOptions.new(
113
+ options = ClaudeCode::ClaudeCodeOptions.new(
114
114
  allowed_tools: ["mcp__my_server__my_tool"],
115
115
  mcp_servers: mcp_servers
116
116
  )
@@ -120,16 +120,16 @@ options = ClaudeCodeSDK::ClaudeCodeOptions.new(
120
120
 
121
121
  ```ruby
122
122
  # Auto-formatted streaming
123
- ClaudeCodeSDK.stream_query(
123
+ ClaudeCode.stream_query(
124
124
  prompt: "Count from 1 to 5",
125
- options: ClaudeCodeSDK::ClaudeCodeOptions.new(max_turns: 1)
125
+ options: ClaudeCode::ClaudeCodeOptions.new(max_turns: 1)
126
126
  )
127
127
 
128
128
  # Custom streaming with timestamps
129
129
  start_time = Time.now
130
- ClaudeCodeSDK.stream_query(
130
+ ClaudeCode.stream_query(
131
131
  prompt: "Explain inheritance",
132
- options: ClaudeCodeSDK::ClaudeCodeOptions.new(max_turns: 1)
132
+ options: ClaudeCode::ClaudeCodeOptions.new(max_turns: 1)
133
133
  ) do |message, index|
134
134
  timestamp = Time.now - start_time
135
135
  puts "[#{format('%.2f', timestamp)}s] #{message}"
@@ -142,11 +142,11 @@ end
142
142
  # Background job with real-time streaming
143
143
  class ClaudeStreamingJob
144
144
  include Sidekiq::Job
145
-
145
+
146
146
  def perform(user_id, query_id, prompt, options = {})
147
147
  channel = "claude_stream_#{user_id}_#{query_id}"
148
-
149
- ClaudeCodeSDK.query(prompt: prompt, options: options).each do |message|
148
+
149
+ ClaudeCode.query(prompt: prompt, options: options).each do |message|
150
150
  # Broadcast to ActionCable
151
151
  ActionCable.server.broadcast(channel, {
152
152
  type: 'message',
@@ -162,16 +162,16 @@ end
162
162
 
163
163
  ### Core Methods
164
164
 
165
- #### `ClaudeCodeSDK.query(prompt:, options: nil, cli_path: nil, mcp_servers: {})`
165
+ #### `ClaudeCode.query(prompt:, options: nil, cli_path: nil, mcp_servers: {})`
166
166
  Main method for querying Claude with streaming support.
167
167
 
168
- #### `ClaudeCodeSDK.quick_mcp_query(prompt, server_name:, server_url:, tools:, **options)`
168
+ #### `ClaudeCode.quick_mcp_query(prompt, server_name:, server_url:, tools:, **options)`
169
169
  Convenient method for quick MCP server usage.
170
170
 
171
- #### `ClaudeCodeSDK.stream_query(prompt:, options: nil, cli_path: nil, mcp_servers: {}, &block)`
171
+ #### `ClaudeCode.stream_query(prompt:, options: nil, cli_path: nil, mcp_servers: {}, &block)`
172
172
  Streaming helper with auto-formatting or custom block handling.
173
173
 
174
- #### `ClaudeCodeSDK.add_mcp_server(name, config)`
174
+ #### `ClaudeCode.add_mcp_server(name, config)`
175
175
  Helper to create MCP server configurations.
176
176
 
177
177
  ### Configuration Classes
@@ -188,7 +188,7 @@ Main configuration class with all CLI options:
188
188
 
189
189
  #### MCP Server Configurations
190
190
  - `McpHttpServerConfig` - HTTP/HTTPS MCP servers
191
- - `McpSSEServerConfig` - Server-Sent Events MCP servers
191
+ - `McpSSEServerConfig` - Server-Sent Events MCP servers
192
192
  - `McpStdioServerConfig` - Stdio MCP servers
193
193
 
194
194
  ### Message Types
@@ -215,14 +215,14 @@ Main configuration class with all CLI options:
215
215
 
216
216
  ```ruby
217
217
  begin
218
- ClaudeCodeSDK.query(prompt: "Hello").each do |message|
218
+ ClaudeCode.query(prompt: "Hello").each do |message|
219
219
  # Process message
220
220
  end
221
- rescue ClaudeCodeSDK::CLINotFoundError
221
+ rescue ClaudeCode::CLINotFoundError
222
222
  puts "Please install Claude Code"
223
- rescue ClaudeCodeSDK::ProcessError => e
223
+ rescue ClaudeCode::ProcessError => e
224
224
  puts "Process failed: #{e.exit_code}"
225
- rescue ClaudeCodeSDK::CLIJSONDecodeError => e
225
+ rescue ClaudeCode::CLIJSONDecodeError => e
226
226
  puts "JSON parsing failed: #{e.message}"
227
227
  end
228
228
  ```
@@ -251,4 +251,4 @@ auto_stream("Count to 5")
251
251
 
252
252
  ## License
253
253
 
254
- MIT
254
+ MIT