Skip to content

Commit d9dbf2c

Browse files
ashwin-antclaude
andcommitted
refactor: add type field to SystemPromptPreset
Update SystemPromptPreset to include required type: "preset" field alongside preset: "claude_code", matching the TypeScript SDK structure. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
1 parent 888ecfb commit d9dbf2c

File tree

5 files changed

+21
-7
lines changed

5 files changed

+21
-7
lines changed

examples/system_prompt.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ async def preset_system_prompt():
4444
print("=== Preset System Prompt (Default) ===")
4545

4646
options = ClaudeCodeOptions(
47-
system_prompt={"preset": "claude_code"},
47+
system_prompt={"type": "preset", "preset": "claude_code"},
4848
)
4949

5050
async for message in query(prompt="What is 2 + 2?", options=options):
@@ -61,6 +61,7 @@ async def preset_with_append():
6161

6262
options = ClaudeCodeOptions(
6363
system_prompt={
64+
"type": "preset",
6465
"preset": "claude_code",
6566
"append": "Always end your response with a fun fact.",
6667
},

src/claude_code_sdk/_internal/transport/subprocess_cli.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,10 @@ def _build_command(self) -> list[str]:
9090
elif isinstance(self._options.system_prompt, str):
9191
cmd.extend(["--system-prompt", self._options.system_prompt])
9292
else:
93-
if "append" in self._options.system_prompt:
93+
if (
94+
self._options.system_prompt.get("type") == "preset"
95+
and "append" in self._options.system_prompt
96+
):
9497
cmd.extend(
9598
["--append-system-prompt", self._options.system_prompt["append"]]
9699
)

src/claude_code_sdk/types.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
class SystemPromptPreset(TypedDict):
2222
"""System prompt preset configuration."""
2323

24+
type: Literal["preset"]
2425
preset: Literal["claude_code"]
2526
append: NotRequired[str]
2627

tests/test_transport.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ def test_build_command_with_system_prompt_preset(self):
7171
transport = SubprocessCLITransport(
7272
prompt="test",
7373
options=ClaudeCodeOptions(
74-
system_prompt={"preset": "claude_code"},
74+
system_prompt={"type": "preset", "preset": "claude_code"},
7575
),
7676
cli_path="/usr/bin/claude",
7777
)
@@ -85,7 +85,11 @@ def test_build_command_with_system_prompt_preset_and_append(self):
8585
transport = SubprocessCLITransport(
8686
prompt="test",
8787
options=ClaudeCodeOptions(
88-
system_prompt={"preset": "claude_code", "append": "Be concise."},
88+
system_prompt={
89+
"type": "preset",
90+
"preset": "claude_code",
91+
"append": "Be concise.",
92+
},
8993
),
9094
cli_path="/usr/bin/claude",
9195
)

tests/test_types.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -117,16 +117,21 @@ def test_claude_code_options_with_system_prompt_string(self):
117117
def test_claude_code_options_with_system_prompt_preset(self):
118118
"""Test Options with system prompt preset."""
119119
options = ClaudeCodeOptions(
120-
system_prompt={"preset": "claude_code"},
120+
system_prompt={"type": "preset", "preset": "claude_code"},
121121
)
122-
assert options.system_prompt == {"preset": "claude_code"}
122+
assert options.system_prompt == {"type": "preset", "preset": "claude_code"}
123123

124124
def test_claude_code_options_with_system_prompt_preset_and_append(self):
125125
"""Test Options with system prompt preset and append."""
126126
options = ClaudeCodeOptions(
127-
system_prompt={"preset": "claude_code", "append": "Be concise."},
127+
system_prompt={
128+
"type": "preset",
129+
"preset": "claude_code",
130+
"append": "Be concise.",
131+
},
128132
)
129133
assert options.system_prompt == {
134+
"type": "preset",
130135
"preset": "claude_code",
131136
"append": "Be concise.",
132137
}

0 commit comments

Comments
 (0)