claude-agent-sdk 1.0.0 → 1.2.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.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +10 -0
  3. data/CHANGELOG.md +110 -0
  4. data/README.md +43 -31
  5. data/docs/cli-installer.md +26 -4
  6. data/docs/client.md +40 -11
  7. data/docs/configuration.md +206 -1
  8. data/docs/errors.md +32 -2
  9. data/docs/hooks-and-permissions.md +30 -10
  10. data/docs/mcp-servers.md +30 -9
  11. data/docs/observability.md +61 -10
  12. data/docs/options.md +232 -0
  13. data/docs/rails.md +263 -18
  14. data/docs/sessions.md +40 -12
  15. data/docs/subagents.md +1 -1
  16. data/docs/types.md +100 -11
  17. data/lib/claude_agent_sdk/cli_installer.rb +140 -19
  18. data/lib/claude_agent_sdk/command_builder.rb +84 -27
  19. data/lib/claude_agent_sdk/fiber_boundary.rb +45 -2
  20. data/lib/claude_agent_sdk/instrumentation/otel.rb +90 -28
  21. data/lib/claude_agent_sdk/query.rb +547 -132
  22. data/lib/claude_agent_sdk/railtie.rb +27 -2
  23. data/lib/claude_agent_sdk/sdk_mcp_server.rb +78 -26
  24. data/lib/claude_agent_sdk/session_mutations.rb +112 -92
  25. data/lib/claude_agent_sdk/session_resume.rb +356 -39
  26. data/lib/claude_agent_sdk/session_store.rb +31 -2
  27. data/lib/claude_agent_sdk/sessions.rb +720 -138
  28. data/lib/claude_agent_sdk/subprocess_cli_transport.rb +252 -29
  29. data/lib/claude_agent_sdk/testing/session_store_conformance.rb +18 -7
  30. data/lib/claude_agent_sdk/transcript_mirror_batcher.rb +45 -37
  31. data/lib/claude_agent_sdk/transport.rb +28 -12
  32. data/lib/claude_agent_sdk/types/attributes.rb +9 -0
  33. data/lib/claude_agent_sdk/types/base.rb +85 -15
  34. data/lib/claude_agent_sdk/types/hooks.rb +73 -0
  35. data/lib/claude_agent_sdk/types/mcp.rb +37 -1
  36. data/lib/claude_agent_sdk/types/messages.rb +7 -1
  37. data/lib/claude_agent_sdk/types/option_values.rb +186 -4
  38. data/lib/claude_agent_sdk/types/options.rb +104 -17
  39. data/lib/claude_agent_sdk/types/permissions.rb +18 -9
  40. data/lib/claude_agent_sdk/version.rb +1 -1
  41. data/lib/claude_agent_sdk.rb +111 -53
  42. data/lib/generators/claude_agent_sdk/install/templates/claude_agent_sdk.rb.tt +6 -0
  43. data/sig/claude_agent_sdk/types/hooks.rbs +6 -3
  44. data/sig/claude_agent_sdk/types/option_values.rbs +23 -6
  45. data/sig/claude_agent_sdk/types/options.rbs +20 -7
  46. data/sig/claude_agent_sdk/types/permissions.rbs +4 -2
  47. metadata +6 -4
@@ -48,7 +48,7 @@ module ClaudeAgentSDK
48
48
  ?permission_prompt_tool_name: String?,
49
49
  ?cwd: (String | Pathname)?,
50
50
  ?cli_path: (String | Pathname)?,
51
- ?settings: (String | Hash[Symbol | String, untyped])?,
51
+ ?settings: (String | Pathname | Hash[Symbol | String, untyped])?,
52
52
  ?add_dirs: Array[String | Pathname]?,
53
53
  ?env: Hash[String | Symbol, String?]?,
54
54
  ?extra_args: Hash[String | Symbol, untyped]?,
@@ -68,7 +68,7 @@ module ClaudeAgentSDK
68
68
  ?plugins: Array[SdkPluginConfig | Hash[Symbol | String, untyped]]?,
69
69
  ?debug_stderr: (_Puts | String)?,
70
70
  ?betas: Array[String]?,
71
- ?tools: (Array[String] | ToolsPreset | Hash[Symbol | String, untyped])?,
71
+ ?tools: (Array[String] | ToolsPreset | Hash[Symbol | String, untyped] | String)?,
72
72
  ?sandbox: (SandboxSettings | Hash[Symbol | String, untyped] | bool)?,
73
73
  ?thinking: thinking_config?,
74
74
  ?effort: (String | Symbol | Integer)?,
@@ -85,6 +85,7 @@ module ClaudeAgentSDK
85
85
  ?include_hook_events: bool?,
86
86
  ?strict_mcp_config: bool?,
87
87
  ?forward_subagent_text: bool?,
88
+ ?verbatim_prompts: bool?,
88
89
  ?agent_progress_summaries: bool?,
89
90
  ?callback_scheduling: (:thread | :inline | "thread" | "inline")?,
90
91
  ?callback_wrapper: _CallbackWrapper?
@@ -132,8 +133,9 @@ module ClaudeAgentSDK
132
133
 
133
134
  attr_accessor cli_path: (String | Pathname)?
134
135
 
135
- # A settings JSON String, a path to a settings file, or a Hash.
136
- attr_accessor settings: (String | Hash[Symbol | String, untyped])?
136
+ # A settings JSON String, a path to a settings file (a String or a
137
+ # Pathname), or a Hash.
138
+ attr_accessor settings: (String | Pathname | Hash[Symbol | String, untyped])?
137
139
 
138
140
  attr_accessor add_dirs: Array[String | Pathname]?
139
141
 
@@ -184,10 +186,13 @@ module ClaudeAgentSDK
184
186
  # Entries of SDK_BETAS.
185
187
  attr_accessor betas: Array[String]?
186
188
 
187
- # The base tool set: tool names, or a preset.
188
- attr_accessor tools: (Array[String] | ToolsPreset | Hash[Symbol | String, untyped])?
189
+ # The base tool set: tool names (an Array, or the CLI's comma-separated
190
+ # String such as "Read,Grep"), or a preset.
191
+ attr_accessor tools: (Array[String] | ToolsPreset | Hash[Symbol | String, untyped] | String)?
189
192
 
190
- # true / false are forwarded as-is (a bare toggle).
193
+ # true / false are forwarded as-is (a bare toggle). A Hash may spell the
194
+ # fields of SandboxSettings, and of its network / filesystem, in
195
+ # snake_case or in the CLI's camelCase (see SandboxSettings).
191
196
  attr_accessor sandbox: (SandboxSettings | Hash[Symbol | String, untyped] | bool)?
192
197
 
193
198
  attr_accessor thinking: thinking_config?
@@ -264,6 +269,14 @@ module ClaudeAgentSDK
264
269
 
265
270
  def forward_subagent_text?: () -> bool
266
271
 
272
+ # Mark every outgoing user message client_composed, so the CLI delivers
273
+ # it as written (false by default).
274
+ attr_reader verbatim_prompts: bool?
275
+
276
+ def verbatim_prompts=: (untyped value) -> bool?
277
+
278
+ def verbatim_prompts?: () -> bool
279
+
267
280
  # Request model-generated progress summaries for subagent tasks (nil:
268
281
  # unset, not sent).
269
282
  attr_reader agent_progress_summaries: bool?
@@ -41,7 +41,8 @@ module ClaudeAgentSDK
41
41
 
42
42
  attr_accessor directories: Array[String]?
43
43
 
44
- # One of PERMISSION_UPDATE_DESTINATIONS.
44
+ # One of PERMISSION_UPDATE_DESTINATIONS. When nil, #to_h sends "session"
45
+ # (unless type is nil too).
45
46
  attr_accessor destination: String?
46
47
 
47
48
  attr_reader rules: Array[PermissionRuleValue]?
@@ -49,7 +50,8 @@ module ClaudeAgentSDK
49
50
  # Hash entries (camelCase or snake_case keys) become PermissionRuleValue.
50
51
  def rules=: (Array[PermissionRuleValue | Hash[Symbol | String, untyped]]? value) -> Array[PermissionRuleValue | Hash[Symbol | String, untyped]]?
51
52
 
52
- # The wire form (camelCase keys).
53
+ # The wire form (camelCase keys). A rule without content has no
54
+ # ruleContent key.
53
55
  def to_h: () -> Hash[Symbol, untyped]
54
56
  end
55
57
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: claude-agent-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ya-luotao
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-09-23 00:00:00.000000000 Z
11
+ date: 2026-10-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: async
@@ -54,14 +54,14 @@ dependencies:
54
54
  name: bundler
55
55
  requirement: !ruby/object:Gem::Requirement
56
56
  requirements:
57
- - - "~>"
57
+ - - ">="
58
58
  - !ruby/object:Gem::Version
59
59
  version: '2.0'
60
60
  type: :development
61
61
  prerelease: false
62
62
  version_requirements: !ruby/object:Gem::Requirement
63
63
  requirements:
64
- - - "~>"
64
+ - - ">="
65
65
  - !ruby/object:Gem::Version
66
66
  version: '2.0'
67
67
  - !ruby/object:Gem::Dependency
@@ -118,6 +118,7 @@ executables: []
118
118
  extensions: []
119
119
  extra_rdoc_files: []
120
120
  files:
121
+ - ".yardopts"
121
122
  - CHANGELOG.md
122
123
  - LICENSE
123
124
  - README.md
@@ -129,6 +130,7 @@ files:
129
130
  - docs/hooks-and-permissions.md
130
131
  - docs/mcp-servers.md
131
132
  - docs/observability.md
133
+ - docs/options.md
132
134
  - docs/rails.md
133
135
  - docs/sessions.md
134
136
  - docs/subagents.md