klaude-code 1.2.6__py3-none-any.whl → 1.8.0__py3-none-any.whl
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.
- klaude_code/auth/__init__.py +24 -0
- klaude_code/auth/codex/__init__.py +20 -0
- klaude_code/auth/codex/exceptions.py +17 -0
- klaude_code/auth/codex/jwt_utils.py +45 -0
- klaude_code/auth/codex/oauth.py +229 -0
- klaude_code/auth/codex/token_manager.py +84 -0
- klaude_code/cli/auth_cmd.py +73 -0
- klaude_code/cli/config_cmd.py +91 -0
- klaude_code/cli/cost_cmd.py +338 -0
- klaude_code/cli/debug.py +78 -0
- klaude_code/cli/list_model.py +307 -0
- klaude_code/cli/main.py +233 -134
- klaude_code/cli/runtime.py +309 -117
- klaude_code/{version.py → cli/self_update.py} +114 -5
- klaude_code/cli/session_cmd.py +37 -21
- klaude_code/command/__init__.py +88 -27
- klaude_code/command/clear_cmd.py +8 -7
- klaude_code/command/command_abc.py +31 -31
- klaude_code/command/debug_cmd.py +79 -0
- klaude_code/command/export_cmd.py +19 -53
- klaude_code/command/export_online_cmd.py +154 -0
- klaude_code/command/fork_session_cmd.py +267 -0
- klaude_code/command/help_cmd.py +7 -8
- klaude_code/command/model_cmd.py +60 -10
- klaude_code/command/model_select.py +84 -0
- klaude_code/command/prompt-jj-describe.md +32 -0
- klaude_code/command/prompt_command.py +19 -11
- klaude_code/command/refresh_cmd.py +8 -10
- klaude_code/command/registry.py +139 -40
- klaude_code/command/release_notes_cmd.py +84 -0
- klaude_code/command/resume_cmd.py +111 -0
- klaude_code/command/status_cmd.py +104 -60
- klaude_code/command/terminal_setup_cmd.py +7 -9
- klaude_code/command/thinking_cmd.py +98 -0
- klaude_code/config/__init__.py +14 -6
- klaude_code/config/assets/__init__.py +1 -0
- klaude_code/config/assets/builtin_config.yaml +303 -0
- klaude_code/config/builtin_config.py +38 -0
- klaude_code/config/config.py +378 -109
- klaude_code/config/select_model.py +117 -53
- klaude_code/config/thinking.py +269 -0
- klaude_code/{const/__init__.py → const.py} +50 -19
- klaude_code/core/agent.py +20 -28
- klaude_code/core/executor.py +327 -112
- klaude_code/core/manager/__init__.py +2 -4
- klaude_code/core/manager/llm_clients.py +1 -15
- klaude_code/core/manager/llm_clients_builder.py +10 -11
- klaude_code/core/manager/sub_agent_manager.py +37 -6
- klaude_code/core/prompt.py +63 -44
- klaude_code/core/prompts/prompt-claude-code.md +2 -13
- klaude_code/core/prompts/prompt-codex-gpt-5-1-codex-max.md +117 -0
- klaude_code/core/prompts/prompt-codex-gpt-5-2-codex.md +117 -0
- klaude_code/core/prompts/prompt-codex.md +9 -42
- klaude_code/core/prompts/prompt-minimal.md +12 -0
- klaude_code/core/prompts/{prompt-subagent-explore.md → prompt-sub-agent-explore.md} +16 -3
- klaude_code/core/prompts/{prompt-subagent-oracle.md → prompt-sub-agent-oracle.md} +1 -2
- klaude_code/core/prompts/prompt-sub-agent-web.md +51 -0
- klaude_code/core/reminders.py +283 -95
- klaude_code/core/task.py +113 -75
- klaude_code/core/tool/__init__.py +24 -31
- klaude_code/core/tool/file/_utils.py +36 -0
- klaude_code/core/tool/file/apply_patch.py +17 -25
- klaude_code/core/tool/file/apply_patch_tool.py +57 -77
- klaude_code/core/tool/file/diff_builder.py +151 -0
- klaude_code/core/tool/file/edit_tool.py +50 -63
- klaude_code/core/tool/file/move_tool.md +41 -0
- klaude_code/core/tool/file/move_tool.py +435 -0
- klaude_code/core/tool/file/read_tool.md +1 -1
- klaude_code/core/tool/file/read_tool.py +86 -86
- klaude_code/core/tool/file/write_tool.py +59 -69
- klaude_code/core/tool/report_back_tool.py +84 -0
- klaude_code/core/tool/shell/bash_tool.py +265 -22
- klaude_code/core/tool/shell/command_safety.py +3 -6
- klaude_code/core/tool/{memory → skill}/skill_tool.py +16 -26
- klaude_code/core/tool/sub_agent_tool.py +13 -2
- klaude_code/core/tool/todo/todo_write_tool.md +0 -157
- klaude_code/core/tool/todo/todo_write_tool.py +1 -1
- klaude_code/core/tool/todo/todo_write_tool_raw.md +182 -0
- klaude_code/core/tool/todo/update_plan_tool.py +1 -1
- klaude_code/core/tool/tool_abc.py +18 -0
- klaude_code/core/tool/tool_context.py +27 -12
- klaude_code/core/tool/tool_registry.py +7 -7
- klaude_code/core/tool/tool_runner.py +44 -36
- klaude_code/core/tool/truncation.py +29 -14
- klaude_code/core/tool/web/mermaid_tool.md +43 -0
- klaude_code/core/tool/web/mermaid_tool.py +2 -5
- klaude_code/core/tool/web/web_fetch_tool.md +1 -1
- klaude_code/core/tool/web/web_fetch_tool.py +112 -22
- klaude_code/core/tool/web/web_search_tool.md +23 -0
- klaude_code/core/tool/web/web_search_tool.py +130 -0
- klaude_code/core/turn.py +168 -66
- klaude_code/llm/__init__.py +2 -10
- klaude_code/llm/anthropic/client.py +190 -178
- klaude_code/llm/anthropic/input.py +39 -15
- klaude_code/llm/bedrock/__init__.py +3 -0
- klaude_code/llm/bedrock/client.py +60 -0
- klaude_code/llm/client.py +7 -21
- klaude_code/llm/codex/__init__.py +5 -0
- klaude_code/llm/codex/client.py +149 -0
- klaude_code/llm/google/__init__.py +3 -0
- klaude_code/llm/google/client.py +309 -0
- klaude_code/llm/google/input.py +215 -0
- klaude_code/llm/input_common.py +3 -9
- klaude_code/llm/openai_compatible/client.py +72 -164
- klaude_code/llm/openai_compatible/input.py +6 -4
- klaude_code/llm/openai_compatible/stream.py +273 -0
- klaude_code/llm/openai_compatible/tool_call_accumulator.py +17 -1
- klaude_code/llm/openrouter/client.py +89 -160
- klaude_code/llm/openrouter/input.py +18 -30
- klaude_code/llm/openrouter/reasoning.py +118 -0
- klaude_code/llm/registry.py +39 -7
- klaude_code/llm/responses/client.py +184 -171
- klaude_code/llm/responses/input.py +20 -1
- klaude_code/llm/usage.py +17 -12
- klaude_code/protocol/commands.py +17 -1
- klaude_code/protocol/events.py +31 -4
- klaude_code/protocol/llm_param.py +13 -10
- klaude_code/protocol/model.py +232 -29
- klaude_code/protocol/op.py +90 -1
- klaude_code/protocol/op_handler.py +35 -1
- klaude_code/protocol/sub_agent/__init__.py +117 -0
- klaude_code/protocol/sub_agent/explore.py +63 -0
- klaude_code/protocol/sub_agent/oracle.py +91 -0
- klaude_code/protocol/sub_agent/task.py +61 -0
- klaude_code/protocol/sub_agent/web.py +79 -0
- klaude_code/protocol/tools.py +4 -2
- klaude_code/session/__init__.py +2 -2
- klaude_code/session/codec.py +71 -0
- klaude_code/session/export.py +293 -86
- klaude_code/session/selector.py +89 -67
- klaude_code/session/session.py +320 -309
- klaude_code/session/store.py +220 -0
- klaude_code/session/templates/export_session.html +595 -83
- klaude_code/session/templates/mermaid_viewer.html +926 -0
- klaude_code/skill/__init__.py +27 -0
- klaude_code/skill/assets/deslop/SKILL.md +17 -0
- klaude_code/skill/assets/dev-docs/SKILL.md +108 -0
- klaude_code/skill/assets/handoff/SKILL.md +39 -0
- klaude_code/skill/assets/jj-workspace/SKILL.md +20 -0
- klaude_code/skill/assets/skill-creator/SKILL.md +139 -0
- klaude_code/{core/tool/memory/skill_loader.py → skill/loader.py} +55 -15
- klaude_code/skill/manager.py +70 -0
- klaude_code/skill/system_skills.py +192 -0
- klaude_code/trace/__init__.py +20 -2
- klaude_code/trace/log.py +150 -5
- klaude_code/ui/__init__.py +4 -9
- klaude_code/ui/core/input.py +1 -1
- klaude_code/ui/core/stage_manager.py +7 -7
- klaude_code/ui/modes/debug/display.py +2 -1
- klaude_code/ui/modes/repl/__init__.py +3 -48
- klaude_code/ui/modes/repl/clipboard.py +5 -5
- klaude_code/ui/modes/repl/completers.py +487 -123
- klaude_code/ui/modes/repl/display.py +5 -4
- klaude_code/ui/modes/repl/event_handler.py +370 -117
- klaude_code/ui/modes/repl/input_prompt_toolkit.py +552 -105
- klaude_code/ui/modes/repl/key_bindings.py +146 -23
- klaude_code/ui/modes/repl/renderer.py +189 -99
- klaude_code/ui/renderers/assistant.py +9 -2
- klaude_code/ui/renderers/bash_syntax.py +178 -0
- klaude_code/ui/renderers/common.py +78 -0
- klaude_code/ui/renderers/developer.py +104 -48
- klaude_code/ui/renderers/diffs.py +87 -6
- klaude_code/ui/renderers/errors.py +11 -6
- klaude_code/ui/renderers/mermaid_viewer.py +57 -0
- klaude_code/ui/renderers/metadata.py +112 -76
- klaude_code/ui/renderers/sub_agent.py +92 -7
- klaude_code/ui/renderers/thinking.py +40 -18
- klaude_code/ui/renderers/tools.py +405 -227
- klaude_code/ui/renderers/user_input.py +73 -13
- klaude_code/ui/rich/__init__.py +10 -1
- klaude_code/ui/rich/cjk_wrap.py +228 -0
- klaude_code/ui/rich/code_panel.py +131 -0
- klaude_code/ui/rich/live.py +17 -0
- klaude_code/ui/rich/markdown.py +305 -170
- klaude_code/ui/rich/searchable_text.py +10 -13
- klaude_code/ui/rich/status.py +190 -49
- klaude_code/ui/rich/theme.py +135 -39
- klaude_code/ui/terminal/__init__.py +55 -0
- klaude_code/ui/terminal/color.py +1 -1
- klaude_code/ui/terminal/control.py +13 -22
- klaude_code/ui/terminal/notifier.py +44 -4
- klaude_code/ui/terminal/selector.py +658 -0
- klaude_code/ui/utils/common.py +0 -18
- klaude_code-1.8.0.dist-info/METADATA +377 -0
- klaude_code-1.8.0.dist-info/RECORD +219 -0
- {klaude_code-1.2.6.dist-info → klaude_code-1.8.0.dist-info}/entry_points.txt +1 -0
- klaude_code/command/diff_cmd.py +0 -138
- klaude_code/command/prompt-dev-docs-update.md +0 -56
- klaude_code/command/prompt-dev-docs.md +0 -46
- klaude_code/config/list_model.py +0 -162
- klaude_code/core/manager/agent_manager.py +0 -127
- klaude_code/core/prompts/prompt-subagent-webfetch.md +0 -46
- klaude_code/core/tool/file/multi_edit_tool.md +0 -42
- klaude_code/core/tool/file/multi_edit_tool.py +0 -199
- klaude_code/core/tool/memory/memory_tool.md +0 -16
- klaude_code/core/tool/memory/memory_tool.py +0 -462
- klaude_code/llm/openrouter/reasoning_handler.py +0 -209
- klaude_code/protocol/sub_agent.py +0 -348
- klaude_code/ui/utils/debouncer.py +0 -42
- klaude_code-1.2.6.dist-info/METADATA +0 -178
- klaude_code-1.2.6.dist-info/RECORD +0 -167
- /klaude_code/core/prompts/{prompt-subagent.md → prompt-sub-agent.md} +0 -0
- /klaude_code/core/tool/{memory → skill}/__init__.py +0 -0
- /klaude_code/core/tool/{memory → skill}/skill_tool.md +0 -0
- {klaude_code-1.2.6.dist-info → klaude_code-1.8.0.dist-info}/WHEEL +0 -0
|
@@ -0,0 +1,377 @@
|
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
|
+
Name: klaude-code
|
|
3
|
+
Version: 1.8.0
|
|
4
|
+
Summary: Minimal code agent CLI
|
|
5
|
+
Requires-Dist: anthropic>=0.66.0
|
|
6
|
+
Requires-Dist: chardet>=5.2.0
|
|
7
|
+
Requires-Dist: ddgs>=9.9.3
|
|
8
|
+
Requires-Dist: diff-match-patch>=20241021
|
|
9
|
+
Requires-Dist: google-genai>=1.56.0
|
|
10
|
+
Requires-Dist: markdown-it-py>=4.0.0
|
|
11
|
+
Requires-Dist: openai>=1.102.0
|
|
12
|
+
Requires-Dist: pillow>=12.0.0
|
|
13
|
+
Requires-Dist: prompt-toolkit>=3.0.52
|
|
14
|
+
Requires-Dist: pydantic>=2.11.7
|
|
15
|
+
Requires-Dist: pyyaml>=6.0.2
|
|
16
|
+
Requires-Dist: rich>=14.1.0
|
|
17
|
+
Requires-Dist: trafilatura>=2.0.0
|
|
18
|
+
Requires-Dist: typer>=0.17.3
|
|
19
|
+
Requires-Python: >=3.13
|
|
20
|
+
Description-Content-Type: text/markdown
|
|
21
|
+
|
|
22
|
+
# Klaude Code
|
|
23
|
+
|
|
24
|
+
Minimal code agent CLI.
|
|
25
|
+
|
|
26
|
+
## Features
|
|
27
|
+
- **Multi-provider**: Anthropic, OpenAI Responses API, OpenRouter
|
|
28
|
+
- **Keep reasoning item in context**: Interleaved thinking support
|
|
29
|
+
- **Model-aware tools**: Claude Code tools for Sonnet, `apply_patch` for GPT-5/Codex
|
|
30
|
+
- **Structured sub-agent output**: Define JSON schema, get schema-compliant responses via constrained decoding
|
|
31
|
+
- **Recursive `@file` mentions**: Circular dependency protection, relative path resolution
|
|
32
|
+
- **Reminders**: Cooldown-based todo tracking and instruction reinforcement
|
|
33
|
+
- **External file sync**: Monitoring for external edits (linter, manual)
|
|
34
|
+
- **Interrupt handling**: Ctrl+C preserves partial responses and synthesizes tool cancellation results
|
|
35
|
+
- **Output truncation**: Large outputs saved to file system with snapshot links
|
|
36
|
+
- **Skills**: Built-in + user + project Agent Skills (with implicit invocation by Skill tool or explicit invocation by typing `$`)
|
|
37
|
+
- **Sessions**: Resumable with `--continue`
|
|
38
|
+
- **Cost tracking**: Automatic API cost calculation and display (USD/CNY)
|
|
39
|
+
- **Version update check**: Background PyPI version check with upgrade prompts
|
|
40
|
+
- **Terminal title**: Shows current directory and model name
|
|
41
|
+
- **Mermaid diagrams**: Interactive local HTML viewer with zoom, pan, and SVG export
|
|
42
|
+
- **Extras**: Slash commands, sub-agents, image paste, terminal notifications, auto-theming
|
|
43
|
+
|
|
44
|
+
## Installation
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
uv tool install klaude-code
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
To update:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
uv tool upgrade klaude-code
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Or use the built-in alias command:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
klaude update
|
|
60
|
+
klaude upgrade
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
To show version:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
klaude --version
|
|
67
|
+
klaude -v
|
|
68
|
+
klaude version
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Usage
|
|
72
|
+
|
|
73
|
+
### Interactive Mode
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
klaude [--model <name>] [--select-model]
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**Options:**
|
|
80
|
+
- `--version`/`-V`/`-v`: Show version and exit.
|
|
81
|
+
- `--model`/`-m`: Preferred model name (exact match picks immediately; otherwise opens the interactive selector filtered by this value).
|
|
82
|
+
- `--select-model`/`-s`: Open the interactive model selector at startup (shows all models unless `--model` is also provided).
|
|
83
|
+
- `--continue`/`-c`: Resume the most recent session.
|
|
84
|
+
- `--resume`/`-r`: Select a session to resume for this project.
|
|
85
|
+
- `--resume-by-id <id>`: Resume a session by its ID directly.
|
|
86
|
+
- `--vanilla`: Minimal mode with only basic tools (Bash, Read, Edit) and no system prompts.
|
|
87
|
+
|
|
88
|
+
**Model selection behavior:**
|
|
89
|
+
- Default: uses `main_model` from config.
|
|
90
|
+
- `--select-model`: always prompts you to pick.
|
|
91
|
+
- `--model <value>`: tries to resolve `<value>` to a single model; if it can't, it prompts with a filtered list (and falls back to showing all models if there are no matches).
|
|
92
|
+
|
|
93
|
+
**Debug Options:**
|
|
94
|
+
- `--debug`/`-d`: Enable debug mode with verbose logging and LLM trace.
|
|
95
|
+
- `--debug-filter`: Filter debug output by type (comma-separated).
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
### Configuration
|
|
99
|
+
|
|
100
|
+
#### Quick Start (Zero Config)
|
|
101
|
+
|
|
102
|
+
Klaude comes with built-in provider configurations. Just set an API key environment variable and start using it:
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
# Pick one (or more) of these:
|
|
106
|
+
export ANTHROPIC_API_KEY=sk-ant-xxx # Claude models
|
|
107
|
+
export OPENAI_API_KEY=sk-xxx # GPT models
|
|
108
|
+
export OPENROUTER_API_KEY=sk-or-xxx # OpenRouter (multi-provider)
|
|
109
|
+
export DEEPSEEK_API_KEY=sk-xxx # DeepSeek models
|
|
110
|
+
export MOONSHOT_API_KEY=sk-xxx # Moonshot/Kimi models
|
|
111
|
+
|
|
112
|
+
# Then just run:
|
|
113
|
+
klaude
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
On first run, you'll be prompted to select a model. Your choice is saved as `main_model`.
|
|
117
|
+
|
|
118
|
+
#### Built-in Providers
|
|
119
|
+
|
|
120
|
+
| Provider | Env Variable | Models |
|
|
121
|
+
|-------------|-----------------------|-------------------------------------------------------------------------------|
|
|
122
|
+
| anthropic | `ANTHROPIC_API_KEY` | sonnet, opus |
|
|
123
|
+
| openai | `OPENAI_API_KEY` | gpt-5.2 |
|
|
124
|
+
| openrouter | `OPENROUTER_API_KEY` | gpt-5.2, gpt-5.2-fast, gpt-5.1-codex-max, sonnet, opus, haiku, kimi, gemini-* |
|
|
125
|
+
| deepseek | `DEEPSEEK_API_KEY` | deepseek |
|
|
126
|
+
| moonshot | `MOONSHOT_API_KEY` | kimi@moonshot |
|
|
127
|
+
| codex | N/A (OAuth) | gpt-5.2-codex |
|
|
128
|
+
|
|
129
|
+
List all configured providers and models:
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
klaude list
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Models from providers without a valid API key are shown as dimmed/unavailable.
|
|
136
|
+
|
|
137
|
+
#### Custom Configuration
|
|
138
|
+
|
|
139
|
+
User config file: `~/.klaude/klaude-config.yaml`
|
|
140
|
+
|
|
141
|
+
Open in editor:
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
klaude config
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
##### Adding Models to Built-in Providers
|
|
148
|
+
|
|
149
|
+
You can add custom models to existing built-in providers without redefining the entire provider. Just reference the `provider_name` and add your `model_list`:
|
|
150
|
+
|
|
151
|
+
```yaml
|
|
152
|
+
# ~/.klaude/klaude-config.yaml
|
|
153
|
+
provider_list:
|
|
154
|
+
- provider_name: openrouter # Reference existing built-in provider
|
|
155
|
+
model_list:
|
|
156
|
+
- model_name: seed
|
|
157
|
+
model_params:
|
|
158
|
+
model: bytedance-seed/seed-1.6 # Model ID from OpenRouter
|
|
159
|
+
context_limit: 262000
|
|
160
|
+
cost:
|
|
161
|
+
input: 0.25
|
|
162
|
+
output: 2
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
**How merging works:**
|
|
166
|
+
- Your models are merged with the built-in models for that provider
|
|
167
|
+
- You only need `provider_name` and `model_list` - protocol, api_key, etc. are inherited from the built-in config
|
|
168
|
+
- To override a built-in model, use the same `model_name` (e.g., `sonnet` to customize the built-in sonnet)
|
|
169
|
+
|
|
170
|
+
**More examples:**
|
|
171
|
+
|
|
172
|
+
```yaml
|
|
173
|
+
provider_list:
|
|
174
|
+
# Add multiple models to OpenRouter
|
|
175
|
+
- provider_name: openrouter
|
|
176
|
+
model_list:
|
|
177
|
+
- model_name: qwen-coder
|
|
178
|
+
model_params:
|
|
179
|
+
model: qwen/qwen-2.5-coder-32b-instruct
|
|
180
|
+
context_limit: 131072
|
|
181
|
+
cost:
|
|
182
|
+
input: 0.3
|
|
183
|
+
output: 0.9
|
|
184
|
+
- model_name: llama-405b
|
|
185
|
+
model_params:
|
|
186
|
+
model: meta-llama/llama-3.1-405b-instruct
|
|
187
|
+
context_limit: 131072
|
|
188
|
+
cost:
|
|
189
|
+
input: 0.8
|
|
190
|
+
output: 0.8
|
|
191
|
+
|
|
192
|
+
# Add models to Anthropic provider
|
|
193
|
+
- provider_name: anthropic
|
|
194
|
+
model_list:
|
|
195
|
+
- model_name: haiku@ant
|
|
196
|
+
model_params:
|
|
197
|
+
model: claude-3-5-haiku-20241022
|
|
198
|
+
context_limit: 200000
|
|
199
|
+
cost:
|
|
200
|
+
input: 1.0
|
|
201
|
+
output: 5.0
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
After adding models, run `klaude list` to verify they appear in the model list.
|
|
205
|
+
|
|
206
|
+
##### Overriding Provider Settings
|
|
207
|
+
|
|
208
|
+
Override provider-level settings (like api_key) while keeping built-in models:
|
|
209
|
+
|
|
210
|
+
```yaml
|
|
211
|
+
provider_list:
|
|
212
|
+
- provider_name: anthropic
|
|
213
|
+
api_key: sk-my-custom-key # Override the default ${ANTHROPIC_API_KEY}
|
|
214
|
+
# Built-in models (sonnet, opus) are still available
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
##### Adding New Providers
|
|
218
|
+
|
|
219
|
+
For providers not in the built-in list, you must specify `protocol`:
|
|
220
|
+
|
|
221
|
+
```yaml
|
|
222
|
+
provider_list:
|
|
223
|
+
- provider_name: my-azure-openai
|
|
224
|
+
protocol: openai
|
|
225
|
+
api_key: ${AZURE_OPENAI_KEY}
|
|
226
|
+
base_url: https://my-instance.openai.azure.com/
|
|
227
|
+
is_azure: true
|
|
228
|
+
azure_api_version: "2024-02-15-preview"
|
|
229
|
+
model_list:
|
|
230
|
+
- model_name: gpt-4-azure
|
|
231
|
+
model_params:
|
|
232
|
+
model: gpt-4
|
|
233
|
+
context_limit: 128000
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
##### Full Example
|
|
237
|
+
|
|
238
|
+
```yaml
|
|
239
|
+
# User configuration - merged with built-in config
|
|
240
|
+
main_model: opus
|
|
241
|
+
|
|
242
|
+
sub_agent_models:
|
|
243
|
+
oracle: gpt-4.1
|
|
244
|
+
explore: sonnet
|
|
245
|
+
task: opus
|
|
246
|
+
webagent: sonnet
|
|
247
|
+
|
|
248
|
+
provider_list:
|
|
249
|
+
# Add models to built-in openrouter
|
|
250
|
+
- provider_name: openrouter
|
|
251
|
+
model_list:
|
|
252
|
+
- model_name: qwen-coder
|
|
253
|
+
model_params:
|
|
254
|
+
model: qwen/qwen-2.5-coder-32b-instruct
|
|
255
|
+
context_limit: 131072
|
|
256
|
+
|
|
257
|
+
# Add a completely new provider
|
|
258
|
+
- provider_name: local-ollama
|
|
259
|
+
protocol: openai
|
|
260
|
+
base_url: http://localhost:11434/v1
|
|
261
|
+
api_key: ollama
|
|
262
|
+
model_list:
|
|
263
|
+
- model_name: local-llama
|
|
264
|
+
model_params:
|
|
265
|
+
model: llama3.2
|
|
266
|
+
context_limit: 8192
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
##### Supported Protocols
|
|
270
|
+
|
|
271
|
+
- `anthropic` - Anthropic Claude API
|
|
272
|
+
- `openai` - OpenAI-compatible API
|
|
273
|
+
- `responses` - OpenAI Responses API (for o-series, GPT-5, Codex)
|
|
274
|
+
- `openrouter` - OpenRouter API
|
|
275
|
+
- `google` - Google Gemini API
|
|
276
|
+
- `bedrock` - AWS Bedrock (uses AWS credentials instead of api_key)
|
|
277
|
+
- `codex` - OpenAI Codex CLI (OAuth-based)
|
|
278
|
+
|
|
279
|
+
List configured providers and models:
|
|
280
|
+
|
|
281
|
+
```bash
|
|
282
|
+
klaude list
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
### Session Management
|
|
286
|
+
|
|
287
|
+
Clean up sessions with few messages:
|
|
288
|
+
|
|
289
|
+
```bash
|
|
290
|
+
# Remove sessions with fewer than 5 messages (default)
|
|
291
|
+
klaude session clean
|
|
292
|
+
|
|
293
|
+
# Remove sessions with fewer than 10 messages
|
|
294
|
+
klaude session clean --min 10
|
|
295
|
+
|
|
296
|
+
# Remove all sessions for the current project
|
|
297
|
+
klaude session clean-all
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
### Cost Tracking
|
|
301
|
+
|
|
302
|
+
View aggregated usage statistics across all sessions:
|
|
303
|
+
|
|
304
|
+
```bash
|
|
305
|
+
# Show all historical usage data
|
|
306
|
+
klaude cost
|
|
307
|
+
|
|
308
|
+
# Show usage for the last 7 days only
|
|
309
|
+
klaude cost --days 7
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
### Slash Commands
|
|
313
|
+
|
|
314
|
+
Inside the interactive session (`klaude`), use these commands to streamline your workflow:
|
|
315
|
+
|
|
316
|
+
- `/model` - Switch the active LLM during the session.
|
|
317
|
+
- `/thinking` - Configure model thinking/reasoning level.
|
|
318
|
+
- `/clear` - Clear the current conversation context.
|
|
319
|
+
- `/status` - Show session usage statistics (cost, tokens, model breakdown).
|
|
320
|
+
- `/resume` - Select and resume a previous session.
|
|
321
|
+
- `/fork-session` - Fork current session to a new session ID (supports interactive fork point selection).
|
|
322
|
+
- `/export` - Export last assistant message to a temp Markdown file.
|
|
323
|
+
- `/export-online` - Export and deploy session to surge.sh as a static webpage.
|
|
324
|
+
- `/debug [filters]` - Toggle debug mode and configure debug filters.
|
|
325
|
+
- `/init` - Bootstrap a new project structure or module.
|
|
326
|
+
- `/dev-doc [feature]` - Generate a comprehensive execution plan for a feature.
|
|
327
|
+
- `/terminal-setup` - Configure terminal for Shift+Enter support.
|
|
328
|
+
- `/help` - List all available commands.
|
|
329
|
+
|
|
330
|
+
|
|
331
|
+
### Input Shortcuts
|
|
332
|
+
|
|
333
|
+
| Key | Action |
|
|
334
|
+
| -------------------- | ------------------------------------------- |
|
|
335
|
+
| `Enter` | Submit input |
|
|
336
|
+
| `Shift+Enter` | Insert newline (requires `/terminal-setup`) |
|
|
337
|
+
| `Ctrl+J` | Insert newline |
|
|
338
|
+
| `Ctrl+L` | Open model picker overlay |
|
|
339
|
+
| `Ctrl+T` | Open thinking level picker overlay |
|
|
340
|
+
| `Ctrl+V` | Paste image from clipboard |
|
|
341
|
+
| `Left/Right` | Move cursor (wraps across lines) |
|
|
342
|
+
| `Backspace` | Delete character or selected text |
|
|
343
|
+
| `c` (with selection) | Copy selected text to clipboard |
|
|
344
|
+
|
|
345
|
+
### Non-Interactive Headless Mode (exec)
|
|
346
|
+
|
|
347
|
+
Execute a single command without starting the interactive REPL:
|
|
348
|
+
|
|
349
|
+
```bash
|
|
350
|
+
# Direct input
|
|
351
|
+
klaude exec "what is 2+2?"
|
|
352
|
+
|
|
353
|
+
# Pipe input
|
|
354
|
+
echo "hello world" | klaude exec
|
|
355
|
+
|
|
356
|
+
# With model selection
|
|
357
|
+
|
|
358
|
+
# Exact model name (non-interactive)
|
|
359
|
+
echo "generate quicksort in python" | klaude exec --model gpt-5.1
|
|
360
|
+
|
|
361
|
+
# Partial/ambiguous name opens the interactive selector (filtered)
|
|
362
|
+
echo "generate quicksort in python" | klaude exec --model gpt
|
|
363
|
+
|
|
364
|
+
# Stream all events as JSON lines (for programmatic processing)
|
|
365
|
+
klaude exec "what is 2+2?" --stream-json
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
### Sub-Agents
|
|
369
|
+
|
|
370
|
+
The main agent can spawn specialized sub-agents for specific tasks:
|
|
371
|
+
|
|
372
|
+
| Sub-Agent | Purpose |
|
|
373
|
+
|-----------|---------|
|
|
374
|
+
| **Explore** | Fast codebase exploration - find files, search code, answer questions about the codebase |
|
|
375
|
+
| **Task** | Handle complex multi-step tasks autonomously |
|
|
376
|
+
| **WebAgent** | Search the web, fetch pages, and analyze content |
|
|
377
|
+
| **Oracle** | Advanced reasoning advisor for code reviews, architecture planning, and bug analysis |
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
klaude_code/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
+
klaude_code/auth/__init__.py,sha256=jLUgi4V4m0t2BlVuuni7iANOErpJgAeEqByuD1sKUvQ,480
|
|
3
|
+
klaude_code/auth/codex/__init__.py,sha256=rrpPvr-_R4kbj_oZ2U_fPmIfDPZov9Pjz2bAFpztUJk,502
|
|
4
|
+
klaude_code/auth/codex/exceptions.py,sha256=TcAKPozsY3SCh_krTYFlJ8FU5jepgSTg-5UO1dA4OgE,388
|
|
5
|
+
klaude_code/auth/codex/jwt_utils.py,sha256=tuaJKT4vAIGeaQjNzgNcHWGrYYSDrDeaQT9h4cw5Us8,1134
|
|
6
|
+
klaude_code/auth/codex/oauth.py,sha256=4hAGZ2Dv87NC3loEws7U5yNyPyIrryGm5YXY2FkHeyo,7840
|
|
7
|
+
klaude_code/auth/codex/token_manager.py,sha256=F4xH5PhE9cksqTiWsU_YAboNe284VgUFWF2VY1sZV9U,2720
|
|
8
|
+
klaude_code/cli/__init__.py,sha256=YzlAoWAr5rx5oe6B_4zPxRFS4QaZauuy1AFwampP5fg,45
|
|
9
|
+
klaude_code/cli/auth_cmd.py,sha256=UWMHjn9xZp2o8OZc-x8y9MnkZgRWOkFXk05iKJYcySE,2561
|
|
10
|
+
klaude_code/cli/config_cmd.py,sha256=hlvslLNgdRHkokq1Pnam0XOdR3jqO3K0vNLqtWnPa6Q,3261
|
|
11
|
+
klaude_code/cli/cost_cmd.py,sha256=PZHeSgIkmxdWjlR1DXVX47CbGsb7zOyNkU5A4q2vgkg,12202
|
|
12
|
+
klaude_code/cli/debug.py,sha256=cPQ7cgATcJTyBIboleW_Q4Pa_t-tGG6x-Hj3woeeuHE,2669
|
|
13
|
+
klaude_code/cli/list_model.py,sha256=3SLURZXH_WgX-vGWIt52NuRm2D14-jcONtiS5GDM2xA,11248
|
|
14
|
+
klaude_code/cli/main.py,sha256=1ojM_83OOCTn-TT-soVpn_aAI2PgTjixng4_3nd-uZI,13557
|
|
15
|
+
klaude_code/cli/runtime.py,sha256=muuuqWPDdZPNFwq_Eb08MFbnaCzUGZCDFiC-dMvpzCY,19824
|
|
16
|
+
klaude_code/cli/self_update.py,sha256=iGuj0i869Zi0M70W52-VVLxZp90ISr30fQpZkHGMK2o,8059
|
|
17
|
+
klaude_code/cli/session_cmd.py,sha256=9C30dzXCbPobminqenCjYvEuzZBS5zWXg3JpuhxT_OQ,3199
|
|
18
|
+
klaude_code/command/__init__.py,sha256=IK2jz2SFMLVIcVzD5evKk3zWv6u1CjgCgfJXzWdvDlk,3470
|
|
19
|
+
klaude_code/command/clear_cmd.py,sha256=3Ru6pFmOwru06XTLTuEGNUhKgy3COOaNe22Dk0TpGrQ,719
|
|
20
|
+
klaude_code/command/command_abc.py,sha256=wZl_azY6Dpd4OvjtkSEPI3ilXaygLIVkO7NCgNlrofQ,2536
|
|
21
|
+
klaude_code/command/debug_cmd.py,sha256=9sBIAwHz28QoI-tHsU3ksQlDObF1ilIbtAAEAVMR0v0,2734
|
|
22
|
+
klaude_code/command/export_cmd.py,sha256=Cs7YXWtos-ZfN9OEppIl8Xrb017kDG7R6hGiilqt2bM,1623
|
|
23
|
+
klaude_code/command/export_online_cmd.py,sha256=RYYLnkLtg6edsgysmhsfTw16ncFRIT6PqeTdWhWXLHE,6094
|
|
24
|
+
klaude_code/command/fork_session_cmd.py,sha256=_8QXiFVC3tMjlW3F5jUjhCWQ0CkhWfKJnlNFujjbVHs,9950
|
|
25
|
+
klaude_code/command/help_cmd.py,sha256=wtmOoi4DVaMJPCXLlNKJ4s-kNycNKuYk0MZkZijXLcQ,1666
|
|
26
|
+
klaude_code/command/model_cmd.py,sha256=h3jUi9YOhT9rN87yfCxxU-yN3UiUzwI7Xf2UsRjjP5I,2956
|
|
27
|
+
klaude_code/command/model_select.py,sha256=_TquYw8zDQHkEaRCqOCIcD2XWt8Jg-3WfGhHFSsjFw0,3189
|
|
28
|
+
klaude_code/command/prompt-init.md,sha256=a4_FQ3gKizqs2vl9oEY5jtG6HNhv3f-1b5RSCFq0A18,1873
|
|
29
|
+
klaude_code/command/prompt-jj-describe.md,sha256=n-7hiXU8oodCMR3ipNyRR86pAUzXMz6seloU9a6QQnY,974
|
|
30
|
+
klaude_code/command/prompt_command.py,sha256=rMi-ZRLpUSt1t0IQVtwnzIYqcrXK-MwZrabbZ8dc8U4,2774
|
|
31
|
+
klaude_code/command/refresh_cmd.py,sha256=Gd5-Vg8VRMOAMgXOzR2Y8wtVQudL0TWEdkut_fyQjQs,1292
|
|
32
|
+
klaude_code/command/registry.py,sha256=IeOGJ_TMWb_EE5c2JnWYR6XdDfwYfQDFAikI4u_5tXw,6904
|
|
33
|
+
klaude_code/command/release_notes_cmd.py,sha256=FIrBRfKTlXEp8mBh15buNjgOrl_GMX7FeeMWxYYBn1o,2674
|
|
34
|
+
klaude_code/command/resume_cmd.py,sha256=YiIj4jbabf8QGTZoIkTjGWmrBof24r98zwNRd-NuROU,3945
|
|
35
|
+
klaude_code/command/status_cmd.py,sha256=eq6F1jDd0eqF4nOqMoSS4vO49o5SzcMPhR4266KiubA,5405
|
|
36
|
+
klaude_code/command/terminal_setup_cmd.py,sha256=SivM1gX_anGY_8DCQNFZ5VblFqt4sVgCMEWPRlo6K5w,10911
|
|
37
|
+
klaude_code/command/thinking_cmd.py,sha256=NPejWmx6HDxoWzAJVLEENCr3Wi6sQSbT8A8LRh1-2Nk,3059
|
|
38
|
+
klaude_code/config/__init__.py,sha256=Qe1BeMekBfO2-Zd30x33lB70hdM1QQZGrp4DbWSQ-II,353
|
|
39
|
+
klaude_code/config/assets/__init__.py,sha256=uMUfmXT3I-gYiI-HVr1DrE60mx5cY1o8V7SYuGqOmvY,32
|
|
40
|
+
klaude_code/config/assets/builtin_config.yaml,sha256=m-jWYrfe-cv5NBZ8lrsKTnQWNj7-MiGjDkvrEl7mg0w,7042
|
|
41
|
+
klaude_code/config/builtin_config.py,sha256=LkHr7Ml-6ir6rObn9hUj5-wa-fgfJsc4T2_NdRa1ax0,1135
|
|
42
|
+
klaude_code/config/config.py,sha256=4CRkpR0ect1as0j4MK6F1Rd2uLX-ZV1orzQ-DIfB9Z8,17326
|
|
43
|
+
klaude_code/config/select_model.py,sha256=PPbQ-BAJkwXPINBcCSPAlZjiXm4rEtg2y0hPnZE8Bnc,5183
|
|
44
|
+
klaude_code/config/thinking.py,sha256=X-vywa36ggO_2z4iVhss1mAVEPAwAbcj1s68F0-B0G4,9223
|
|
45
|
+
klaude_code/const.py,sha256=49ic3m4NHUtmA2xZjOSkYxy0KxFoADVAaMMtH6E5C0g,5129
|
|
46
|
+
klaude_code/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
47
|
+
klaude_code/core/agent.py,sha256=bWm-UFX_0-KAy5j_YHH8X8o3MJT4-40Ni2EaDP2SL5k,5819
|
|
48
|
+
klaude_code/core/executor.py,sha256=oIDE0O_kxtudSjfQcN3o0AWinkz3ddAEgqj84tYh7yY,28191
|
|
49
|
+
klaude_code/core/manager/__init__.py,sha256=hdIbpnYj6i18byiWjtJIm5l7NYYDQMvafw8fePVPydc,562
|
|
50
|
+
klaude_code/core/manager/llm_clients.py,sha256=X2oMFWgJcP0tK8GEtMMDYR3HyR6_H8FuyCqpzWF5x2k,871
|
|
51
|
+
klaude_code/core/manager/llm_clients_builder.py,sha256=vvNV6hSpWtUCMZORQN6OfFWyA_3OAOGS5SFGy6oaKMs,1641
|
|
52
|
+
klaude_code/core/manager/sub_agent_manager.py,sha256=DCRlPimgmW_wykkjqAK_dUeeKxNavS8fJ4mhhT7As-E,4872
|
|
53
|
+
klaude_code/core/prompt.py,sha256=piHP0Cu_u583_RHPjhVvTkdp5GgHQ29y3IM2QFVHITY,3869
|
|
54
|
+
klaude_code/core/prompts/prompt-claude-code.md,sha256=uuWBv6GrG63mdmBedAHT5U9yOpbHSKFYbbS2xBnUzOE,8290
|
|
55
|
+
klaude_code/core/prompts/prompt-codex-gpt-5-1-codex-max.md,sha256=SW-y8AmR99JL_9j26k9YVAOQuZ18vR12aT5CWHkZDc4,11741
|
|
56
|
+
klaude_code/core/prompts/prompt-codex-gpt-5-2-codex.md,sha256=GA1pIIF6JuAl4P3FIW4tVJ6zL_5iZ8MY_PF0DW9hBuU,11719
|
|
57
|
+
klaude_code/core/prompts/prompt-codex.md,sha256=ybL6CXrGnK6Cw9KuEicQg4kKllIcVa2NwUyuUWitPzk,21672
|
|
58
|
+
klaude_code/core/prompts/prompt-gemini.md,sha256=JjE1tHSByGKJzjn4Gpj1zekT7ry1Yqbwx5qx3fZy2gE,3901
|
|
59
|
+
klaude_code/core/prompts/prompt-minimal.md,sha256=6-ZmQQkE3f92W_3V2wS7ocB13wLog1_UojCjZG0K4v8,1559
|
|
60
|
+
klaude_code/core/prompts/prompt-sub-agent-explore.md,sha256=21kFodjhvN0L-c_ZFo4yVhJOyzfgES-Dty9Vz_Ew9q8,2629
|
|
61
|
+
klaude_code/core/prompts/prompt-sub-agent-oracle.md,sha256=1PLI3snvxnenCOPVrL0IxZnBl5b2xxGhlufHAyLyf60,1376
|
|
62
|
+
klaude_code/core/prompts/prompt-sub-agent-web.md,sha256=ewS7-h8_u4QZftFpqrZWpht9Ap08s7zF9D4k4md8oD8,2360
|
|
63
|
+
klaude_code/core/prompts/prompt-sub-agent.md,sha256=dmmdsOenbAOfqG6FmdR88spOLZkXmntDBs-cmZ9DN_g,897
|
|
64
|
+
klaude_code/core/reminders.py,sha256=M_YPlOuZ2TpTjoxfEp1FbswB4yuk9_XUgSGb9MoMBCA,24741
|
|
65
|
+
klaude_code/core/task.py,sha256=hVplXxo9RvMQgCBJSMH7vhftYp29ZzAhmhSJK0OjWOw,12017
|
|
66
|
+
klaude_code/core/tool/__init__.py,sha256=Y1r-xka9Zk5e5SrB0kcweFp4LyH0aafQ-BDiwYCAqFY,1992
|
|
67
|
+
klaude_code/core/tool/file/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
68
|
+
klaude_code/core/tool/file/_utils.py,sha256=OG4BE9WyJqzH8ilVCL3D9yvAcHk-r-L9snd-E8gO_io,967
|
|
69
|
+
klaude_code/core/tool/file/apply_patch.py,sha256=LZd3pYQ9ow_TxiFnqYuzD216HmvkLX6lW6BoMd9iQRs,17080
|
|
70
|
+
klaude_code/core/tool/file/apply_patch_tool.md,sha256=KVDsjUiLDa97gym0NrZNVG4jA1_zN-2i-B3upVQyOhU,59
|
|
71
|
+
klaude_code/core/tool/file/apply_patch_tool.py,sha256=LGH0vfKAEGy91Q-quo75JQERUGeoojOao7NvEdQONTI,8059
|
|
72
|
+
klaude_code/core/tool/file/diff_builder.py,sha256=b53S4Ebw7aPmd9AZ97Pxu6MRcnUIdVD36MJ2yTDrAjI,5872
|
|
73
|
+
klaude_code/core/tool/file/edit_tool.md,sha256=rEcUjJuPC46t1nXWjTDxplDcxWDbzTWsr6_bYt5_aRI,1110
|
|
74
|
+
klaude_code/core/tool/file/edit_tool.py,sha256=VZoSPNIFWPG07G7wTBZG_Cti16l-eRYvCvnUiX8x_vA,10925
|
|
75
|
+
klaude_code/core/tool/file/move_tool.md,sha256=vG5tpr-48ylcEh6KLAv0bP4nZKIJbpo4oaZYATNfb0g,1432
|
|
76
|
+
klaude_code/core/tool/file/move_tool.py,sha256=f5nMSOUly71rc9qpmowpO44CtO-zGcJAnfQwv1w8XRY,18218
|
|
77
|
+
klaude_code/core/tool/file/read_tool.md,sha256=74SLSl1tq3L0por73M0QV_ws41MRIvGXQpfLb8dmtp0,1351
|
|
78
|
+
klaude_code/core/tool/file/read_tool.py,sha256=HFA4lYaS_eV9C0UjXCuIVXhbD6OKrpkq4WN33z0EgP0,12877
|
|
79
|
+
klaude_code/core/tool/file/write_tool.md,sha256=CNnYgtieUasuHdpXLDpTEsqe492Pf7v75M4RQ3oIer8,613
|
|
80
|
+
klaude_code/core/tool/file/write_tool.py,sha256=suQyzR3mzluaSV_APqiOQP9J6LQ-2kauxX8P1AOo3qk,5693
|
|
81
|
+
klaude_code/core/tool/report_back_tool.py,sha256=KRZzQAIxniwXe58SDJcfK_DCf9TFFAx8XC75wPEjmpY,3246
|
|
82
|
+
klaude_code/core/tool/shell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
83
|
+
klaude_code/core/tool/shell/bash_tool.md,sha256=ILKpnRCBTkU2uSDEdZQjNYo1l6hsM4TO-3RD5zWC61c,3935
|
|
84
|
+
klaude_code/core/tool/shell/bash_tool.py,sha256=H3DlUZUdtmFYwI9wlkJpv8daGeeqP7GhOjQIKriGoog,14759
|
|
85
|
+
klaude_code/core/tool/shell/command_safety.py,sha256=Xlyn8QvjaA_krPNScpcTQwP3byoXxwoX_jc97AWvr6Q,13039
|
|
86
|
+
klaude_code/core/tool/skill/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
87
|
+
klaude_code/core/tool/skill/skill_tool.md,sha256=UfjJK5EGAd3mf7ym5rIrRdPyV3kBTxNnwzOjNnHOBrE,973
|
|
88
|
+
klaude_code/core/tool/skill/skill_tool.py,sha256=QLcweYEfO-ncv2tdPSqANZrq2U651AG4RjGpFKeAweY,2880
|
|
89
|
+
klaude_code/core/tool/sub_agent_tool.py,sha256=5n0HDxv4cUzuwBhYiAe3gIJ0s3QgV4GSV12CIIkD_g0,3190
|
|
90
|
+
klaude_code/core/tool/todo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
91
|
+
klaude_code/core/tool/todo/todo_write_tool.md,sha256=BFP9qIkzkakzskHwIOPVtDhehkh0F90A5oosyDuC_BE,1682
|
|
92
|
+
klaude_code/core/tool/todo/todo_write_tool.py,sha256=XgSo8F1aJn_0fkh9Gx-5DHNFNlbZys1bUjwhe6NwyLU,4506
|
|
93
|
+
klaude_code/core/tool/todo/todo_write_tool_raw.md,sha256=AJ2OkZGcccQYDXkydPAr5JI2SExBF8qJd0rXsHySLps,9711
|
|
94
|
+
klaude_code/core/tool/todo/update_plan_tool.md,sha256=OoEF4voHHd5J3VDv7tq3UCHdXApkBvxdHXUf5tVOkE8,157
|
|
95
|
+
klaude_code/core/tool/todo/update_plan_tool.py,sha256=5MmmApG0wObBgc-mLETjIMupxIv-SZ7Q0uJO2Krtl1k,3794
|
|
96
|
+
klaude_code/core/tool/tool_abc.py,sha256=CROXR16__l-IumQsoa00O9-MlG7cpbl5JU4UrjouZhI,1179
|
|
97
|
+
klaude_code/core/tool/tool_context.py,sha256=k3toeAVtm8_-EVfD-2Kw0atx7EyN3c5AL1DIc8TlF6s,4149
|
|
98
|
+
klaude_code/core/tool/tool_registry.py,sha256=VuHQHk9cY7jkvVQ6ATKWVxhPW4HPgyCnskcv6eeiw9E,2678
|
|
99
|
+
klaude_code/core/tool/tool_runner.py,sha256=A_RviRFr8kF6TjdGOzdgCIingeyJLBxNbZpcTnzT64E,10695
|
|
100
|
+
klaude_code/core/tool/truncation.py,sha256=YPKzelOM45rHW_OkcfX5_Ojg_pPi8yDZu7lSnwl9b_k,7334
|
|
101
|
+
klaude_code/core/tool/web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
102
|
+
klaude_code/core/tool/web/mermaid_tool.md,sha256=vvPSWxbY3P_cBpHh6AM8Je9JJoMY4FBTJzoteEkwuDU,2095
|
|
103
|
+
klaude_code/core/tool/web/mermaid_tool.py,sha256=Dbf9zjXCgQzwGNWC5EXE9Mt6ko5BZB6DN0Bc2r85sP8,2594
|
|
104
|
+
klaude_code/core/tool/web/web_fetch_tool.md,sha256=jIrW-EAmfl50bBevcfioQ3Vrg8kWlHSut8ze_sRgRGw,486
|
|
105
|
+
klaude_code/core/tool/web/web_fetch_tool.py,sha256=7WzOsAHdfijROOlk3JixtHUV1D2Cuwnf-AhoznrqATw,8551
|
|
106
|
+
klaude_code/core/tool/web/web_search_tool.md,sha256=l5gGPx-fXHFel1zLBljm8isy9pwEYXGrq5cFzzw1VBw,1135
|
|
107
|
+
klaude_code/core/tool/web/web_search_tool.py,sha256=9-dzzMXOdTA_QsdnwHw251R0VelOltlneovV73E4mLE,4028
|
|
108
|
+
klaude_code/core/turn.py,sha256=PvtVV5GLAvYYAsl3RJNDnIvX1Yp4Va8whr0TR8x-9PI,12706
|
|
109
|
+
klaude_code/llm/__init__.py,sha256=b4AsqnrMIs0a5qR_ti6rZcHwFzAReTwOW96EqozEoSo,287
|
|
110
|
+
klaude_code/llm/anthropic/__init__.py,sha256=PWETvaeNAAX3ue0ww1uRUIxTJG0RpWiutkn7MlwKxBs,67
|
|
111
|
+
klaude_code/llm/anthropic/client.py,sha256=32MdRXm605OUXWrOy3MHAaFrUBih0gchETwNbjuoLmg,10248
|
|
112
|
+
klaude_code/llm/anthropic/input.py,sha256=nyDX3uFK0GVduSiLlBEgBjAl70e0pgIZSF3PbbbuW78,8585
|
|
113
|
+
klaude_code/llm/bedrock/__init__.py,sha256=UmXPBXMmigAJ7euIh59iivSeUdrYJwum0RYU7okkkPM,86
|
|
114
|
+
klaude_code/llm/bedrock/client.py,sha256=U-vWTEwrwpTKMGNPEINEOHtkCwpLv6n3fBDSF4By0mU,2135
|
|
115
|
+
klaude_code/llm/client.py,sha256=FbFnzLUAKM61goiYNdKi8-D4rBfu_ksaxjJtmJn0w_4,960
|
|
116
|
+
klaude_code/llm/codex/__init__.py,sha256=8vN2j2ezWB_UVpfqQ8ooStsBeLL5SY4SUMXOXdWiMaI,132
|
|
117
|
+
klaude_code/llm/codex/client.py,sha256=0BAOiLAdk2PxBEYuC_TGOs4_h6yfNZr1YWuf1lzkBxM,5329
|
|
118
|
+
klaude_code/llm/google/__init__.py,sha256=tQtf_mh_mC3E4S9XAsnhS2JZXGRnYUsBKF0jpXZTvM0,61
|
|
119
|
+
klaude_code/llm/google/client.py,sha256=VqEkPqypzrTyBU_u3yfnMcBlfhZISQi8tejertqICKs,11383
|
|
120
|
+
klaude_code/llm/google/input.py,sha256=AJkrqtTyP80tE80HK5hMaPsHMJK2oF5F3h25cKeELeQ,7930
|
|
121
|
+
klaude_code/llm/input_common.py,sha256=NxiYlhGRFntiLiKm5sKLCF0xGYW6DwcyvIhj6KAZoeU,8533
|
|
122
|
+
klaude_code/llm/openai_compatible/__init__.py,sha256=ACGpnki7k53mMcCl591aw99pm9jZOZk0ghr7atOfNps,81
|
|
123
|
+
klaude_code/llm/openai_compatible/client.py,sha256=sMzHxaDZ4CRDgwSr1pZPqpG6YbHJA-Zk0cFyC_r-ihA,4396
|
|
124
|
+
klaude_code/llm/openai_compatible/input.py,sha256=rtWVjpwb9tLrinucezmncQXet8MerUxE5Gxc32sfDr4,3750
|
|
125
|
+
klaude_code/llm/openai_compatible/stream.py,sha256=KeB3FhfvIq_NkYJTUlyv_aV9DVu4OLxTf9_oij6kwD0,10839
|
|
126
|
+
klaude_code/llm/openai_compatible/tool_call_accumulator.py,sha256=Tpcs2od48qNXSCHGNyzgJcFa2jlsCFuZOGK1DoOmj3o,4651
|
|
127
|
+
klaude_code/llm/openrouter/__init__.py,sha256=_As8lHjwj6vapQhLorZttTpukk5ZiCdhFdGT38_ASPo,69
|
|
128
|
+
klaude_code/llm/openrouter/client.py,sha256=zUkH7wkiYUJMGS_8iaVwdhzUnry7WLw4Q1IDQtncmK0,4864
|
|
129
|
+
klaude_code/llm/openrouter/input.py,sha256=aHVJCejkwzWaTM_EBbgmzKWyZfttAws2Y7QDW_NCnZk,5671
|
|
130
|
+
klaude_code/llm/openrouter/reasoning.py,sha256=d6RU6twuGfdf0mXGQoxSNRzFaSa3GJFV8Eve5GzDXfU,4472
|
|
131
|
+
klaude_code/llm/registry.py,sha256=ezfUcPld-j_KbC-DBuFeJpqLYTOL54DvGlfJpAslEL8,2089
|
|
132
|
+
klaude_code/llm/responses/__init__.py,sha256=WsiyvnNiIytaYcaAqNiB8GI-5zcpjjeODPbMlteeFjA,67
|
|
133
|
+
klaude_code/llm/responses/client.py,sha256=XEsVehevQJ0WFbEVxIkI-su7VwIcaeq0P9eSrIRcGug,10184
|
|
134
|
+
klaude_code/llm/responses/input.py,sha256=qr61LmQJdcb_f-ofrAz06WpK_k4PEcI36XsyuZAXbKk,6805
|
|
135
|
+
klaude_code/llm/usage.py,sha256=ohQ6EBsWXZj6B4aJ4lDPqfhXRyd0LUAM1nXEJ_elD7A,4207
|
|
136
|
+
klaude_code/protocol/__init__.py,sha256=aGUgzhYqvhuT3Mk2vj7lrHGriH4h9TSbqV1RsRFAZjQ,194
|
|
137
|
+
klaude_code/protocol/commands.py,sha256=4tFt98CD_KvS9C-XEaHLN-S-QFsbDxQb_kGKnPkQlrk,958
|
|
138
|
+
klaude_code/protocol/events.py,sha256=LlrxsHdWitcIg5tLrS2KbSd5Jv1TH-XlhF8e1xprYAo,3969
|
|
139
|
+
klaude_code/protocol/llm_param.py,sha256=O5sn3-KJnhS_0FOxDDvAFJ2Sx7ZYdJ74ugnwu-gHZG8,4538
|
|
140
|
+
klaude_code/protocol/model.py,sha256=zz1DeSkpUWDT-OZBlypaGWA4z78TSeefA-Tj8mJMHp4,14257
|
|
141
|
+
klaude_code/protocol/op.py,sha256=--RllgP6Upacb6cqHd26RSwrvqZg4w6GhcebmV8gKJo,5763
|
|
142
|
+
klaude_code/protocol/op_handler.py,sha256=hSxEVPEkk0vRPRsOyJdEn3sa87c_m17wzFGKjaMqa4o,1929
|
|
143
|
+
klaude_code/protocol/sub_agent/__init__.py,sha256=Abap5lPLgnSCQsVD3axfeqnj2UtxOcDLGX8e9HugfSU,3964
|
|
144
|
+
klaude_code/protocol/sub_agent/explore.py,sha256=Z4M7i98XBLew38ClXiW-hJteSYjMUu2b548rkR7JW3A,2579
|
|
145
|
+
klaude_code/protocol/sub_agent/oracle.py,sha256=0cbuutKQcvwaM--Q15mbkCdbpZMF4YjxDN1jkuGVKp4,3344
|
|
146
|
+
klaude_code/protocol/sub_agent/task.py,sha256=3RYXTfK0vqSevv0MG3DYUpExrCS2F3Cvszl_Zz9d8-g,3620
|
|
147
|
+
klaude_code/protocol/sub_agent/web.py,sha256=Z5vUM367kz8CIexN6UVPG4XxzVOaaRek-Ga64NvcZdk,3043
|
|
148
|
+
klaude_code/protocol/tools.py,sha256=ejhMCBBMz1ODbPEiynhzjB-aLbIRKL-wipPFv-nEz4g,373
|
|
149
|
+
klaude_code/session/__init__.py,sha256=4sw81uQvEd3YUOOjamKk1KqGmxeb4Ic9T1Tee5zztyU,241
|
|
150
|
+
klaude_code/session/codec.py,sha256=ummbqT7t6uHHXtaS9lOkyhi1h0YpMk7SNSms8DyGAHU,2015
|
|
151
|
+
klaude_code/session/export.py,sha256=30FZrkEDDjccMgXlAwsBMlCXuPDS9531__SCX_nk29M,31538
|
|
152
|
+
klaude_code/session/selector.py,sha256=FpKpGs06fM-LdV-yVUqEY-FJsFn2OtGK-0paXjsZVTg,2770
|
|
153
|
+
klaude_code/session/session.py,sha256=kepapzAcidzOi9Tl7WjisbGgQzkkmL7HlMeGNVYUKU0,19546
|
|
154
|
+
klaude_code/session/store.py,sha256=DOf5R3pxQmmexfWIjCwZ27SBVsk7b_qIN7deXghCy90,7114
|
|
155
|
+
klaude_code/session/templates/export_session.html,sha256=hGmlGFb7a2Iu4mkev_Q2-GywIQ9lEXuDlh83dDs4bgs,125862
|
|
156
|
+
klaude_code/session/templates/mermaid_viewer.html,sha256=lOkETxlctX1C1WJtS1wFw6KhNQmemxwJZFpXDSjlMOk,27842
|
|
157
|
+
klaude_code/skill/__init__.py,sha256=yeWeCfRGPOhT4mx_pjdo4fLondQ_Vx0edBtnFusLhls,839
|
|
158
|
+
klaude_code/skill/assets/deslop/SKILL.md,sha256=XMBER6gOyYnZof_u7l30CZSzmDcINe8XP-n_loah0EQ,873
|
|
159
|
+
klaude_code/skill/assets/dev-docs/SKILL.md,sha256=eHI9v44KZAOcptlnAVp2aq2Ms7WGhncm-zmGUPGmhU8,3810
|
|
160
|
+
klaude_code/skill/assets/handoff/SKILL.md,sha256=GDHrEqWUeAQy7gGhha_y5jzjpv8C-xhk0hqMH5h59v8,1712
|
|
161
|
+
klaude_code/skill/assets/jj-workspace/SKILL.md,sha256=toxoyrBBoGl9Yv4PYrw_gD071LLZ2RoepUR8qTDRn1M,977
|
|
162
|
+
klaude_code/skill/assets/skill-creator/SKILL.md,sha256=0ByoWb9ao0UKSoM5Tmz-Qe5CAPliTrVpUK0gPd9TFqo,5520
|
|
163
|
+
klaude_code/skill/loader.py,sha256=3xGh4udco7tXlrnGFh4Kr5yljtadJ391jKYjaQ2Z3js,10534
|
|
164
|
+
klaude_code/skill/manager.py,sha256=XRSGgGpNJo2Q9pHKpWo-VyMqf_y-dEt9JGtDoC3Eq-U,2088
|
|
165
|
+
klaude_code/skill/system_skills.py,sha256=cfhxk5Jc1OFip-Lamr6RwlAEPq-UA60M3NdwSneKGco,6124
|
|
166
|
+
klaude_code/trace/__init__.py,sha256=q8uOYhWr2_Mia1aEK_vkqx91YAfFM25ItIB6J8n3_pM,352
|
|
167
|
+
klaude_code/trace/log.py,sha256=ivvs60XfMT1n7WUt060cit_8YAumsT_6crr7Us_fdEY,9231
|
|
168
|
+
klaude_code/ui/__init__.py,sha256=XuEQsFUkJet8HI04cRmNLwnHOUqaPCRy4hF7PJnIfCY,2737
|
|
169
|
+
klaude_code/ui/core/__init__.py,sha256=2NakrTDcxem5D0atyEY_Rxv1BbKCeZweF63L6AAq6r8,23
|
|
170
|
+
klaude_code/ui/core/display.py,sha256=NwFQ9oKi8i3T5EsYDRrTpGBr3BZI0Ggns37JuQEOH54,3540
|
|
171
|
+
klaude_code/ui/core/input.py,sha256=GqEos_VKRpfzQg0LQvr3210gzu2mw0_7OpPyNXmF3LI,2533
|
|
172
|
+
klaude_code/ui/core/stage_manager.py,sha256=5rJ7Fg3vf_4x9PTt6VOZ-SVRpg9jAZhZkCh_tQslLNg,1578
|
|
173
|
+
klaude_code/ui/modes/__init__.py,sha256=ByDPbyYYU4o5kdnEes3b1VEV173RI9XAXyzkFbrApEY,26
|
|
174
|
+
klaude_code/ui/modes/debug/__init__.py,sha256=1-1tAk7FtENdYzExSttYdHiJ-qH3DIQ5yYJ51ms2uSg,13
|
|
175
|
+
klaude_code/ui/modes/debug/display.py,sha256=7_j9NGZqL4wE2LWhF1TjDHac4MfaWlYN2RHZCTfQad8,1096
|
|
176
|
+
klaude_code/ui/modes/exec/__init__.py,sha256=RsYa-DmDJj6g7iXb4H9mm2_Cu-KDQOD10RJd3yhVf_k,12
|
|
177
|
+
klaude_code/ui/modes/exec/display.py,sha256=m2kkgaUoGD9rEVUmcm7Vs_PyAI2iruKCJYRhANjSsKo,1965
|
|
178
|
+
klaude_code/ui/modes/repl/__init__.py,sha256=_0II73jlz5JUtvJsZ9sGRJzeHIQyJJpaI0egvmryYNw,286
|
|
179
|
+
klaude_code/ui/modes/repl/clipboard.py,sha256=ZCpk7kRSXGhh0Q_BWtUUuSYT7ZOqRjAoRcg9T9n48Wo,5137
|
|
180
|
+
klaude_code/ui/modes/repl/completers.py,sha256=zH5zslovTKJwH1Gu8ZufvMDGkSd342F6fHE1hjlxHgM,31849
|
|
181
|
+
klaude_code/ui/modes/repl/display.py,sha256=06wawOHWO2ItEA9EIEh97p3GDID7TJhAtpaA03nPQXs,2335
|
|
182
|
+
klaude_code/ui/modes/repl/event_handler.py,sha256=O8yDr4xNMAqgXEiT90KWBoQX-2pIPjVf591QJ0ftjIo,25482
|
|
183
|
+
klaude_code/ui/modes/repl/input_prompt_toolkit.py,sha256=QZBBAUK7Bkq1TBwtvBnJ0bGYtGH5HWvpWcb1bppGnl0,27072
|
|
184
|
+
klaude_code/ui/modes/repl/key_bindings.py,sha256=tZV0ILMWpHCPcVFpf9bnbTSXgnnqsW0-6cCMMVTRciA,13023
|
|
185
|
+
klaude_code/ui/modes/repl/renderer.py,sha256=ljsgu4bLLnGOeCpbWbQPdJnMI7SP_K5WD88yOhZLGjU,16111
|
|
186
|
+
klaude_code/ui/renderers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
187
|
+
klaude_code/ui/renderers/assistant.py,sha256=7iu5zlHR7JGviHs2eA25Dsbd7ZkzCR2_0XzkqMPVxDI,862
|
|
188
|
+
klaude_code/ui/renderers/bash_syntax.py,sha256=VcX_tuojOtS58s_Ff-Zmhw_6LBRn2wsvR5UBtEr_qQU,5923
|
|
189
|
+
klaude_code/ui/renderers/common.py,sha256=l9V7yuiejowyw3FdZ2n3VJ2OO_K1rEUINmFz-mC2xlw,2648
|
|
190
|
+
klaude_code/ui/renderers/developer.py,sha256=GI6MreYDvLHNa40KlhOR0PQoR_ePOLtlYhv3pAPKHp8,8164
|
|
191
|
+
klaude_code/ui/renderers/diffs.py,sha256=uLpgYTudH38wucozoUw4xbPWMC6uYTQTaDTHcg-0zvM,10418
|
|
192
|
+
klaude_code/ui/renderers/errors.py,sha256=MavmYOQ7lyjA_VpuUpDVFCuY9W7XrMVdLsg2lCOn4GY,655
|
|
193
|
+
klaude_code/ui/renderers/mermaid_viewer.py,sha256=TIUFLtTqdG-iFD4Mgm8OdzU_9UO14niftTJ11f4makc,1691
|
|
194
|
+
klaude_code/ui/renderers/metadata.py,sha256=EWxh5UTSZG_vRVf6taKI_E1YkR_56U1Gs9soDuZcpq4,8576
|
|
195
|
+
klaude_code/ui/renderers/sub_agent.py,sha256=zG4T7hKEb7G-kD_Mgc7lmzwbukvdNLG7Y7a9K1WlHGA,5950
|
|
196
|
+
klaude_code/ui/renderers/thinking.py,sha256=TbQxkjR6MuDXzASBK_rMaxxqvSdhfwDtVwXhOExuvlM,1946
|
|
197
|
+
klaude_code/ui/renderers/tools.py,sha256=lebQHccj2tkJIjO-JB0TvCIixx-BKXHfD-egXSxBV7Y,27891
|
|
198
|
+
klaude_code/ui/renderers/user_input.py,sha256=OPHVOZsCefIRVpgl6WMBFusc3Vwyr1fk5ilFaQ64AqU,4500
|
|
199
|
+
klaude_code/ui/rich/__init__.py,sha256=zEZjnHR3Fnv_sFMxwIMjoJfwDoC4GRGv3lHJzAGRq_o,236
|
|
200
|
+
klaude_code/ui/rich/cjk_wrap.py,sha256=ncmifgTwF6q95iayHQyazGbntt7BRQb_Ed7aXc8JU6Y,7551
|
|
201
|
+
klaude_code/ui/rich/code_panel.py,sha256=ZKuJHh-kh-hIkBXSGLERLaDbJ7I9hvtvmYKocJn39_w,4744
|
|
202
|
+
klaude_code/ui/rich/live.py,sha256=qiBLPSE4KW_Dpemy5MZ5BKhkFWEN2fjXBiQHmhJrPSM,2722
|
|
203
|
+
klaude_code/ui/rich/markdown.py,sha256=0tU4i1QTsyfjTf8sL-s-Ui-MMXyq-U4f2n465qJc_Xs,16486
|
|
204
|
+
klaude_code/ui/rich/quote.py,sha256=tZcxN73SfDBHF_qk0Jkh9gWBqPBn8VLp9RF36YRdKEM,1123
|
|
205
|
+
klaude_code/ui/rich/searchable_text.py,sha256=PUe6MotKxSBY4FlPeojVjVQgxCsx_jiQ41bCzLp8WvE,2271
|
|
206
|
+
klaude_code/ui/rich/status.py,sha256=M_pPNbZUYJ7uaxSGoSaNGrzPhHDZfcV2gjUeu8XmYNg,13192
|
|
207
|
+
klaude_code/ui/rich/theme.py,sha256=5R2TpedF21iQHgF4sVwlWcCBjNJ-sOcneHScDBH3hHI,14439
|
|
208
|
+
klaude_code/ui/terminal/__init__.py,sha256=GIMnsEcIAGT_vBHvTlWEdyNmAEpruyscUA6M_j3GQZU,1412
|
|
209
|
+
klaude_code/ui/terminal/color.py,sha256=jvVbuysf5pnI0uAjUVeyW2HwU58dutTg2msykbu2w4Y,7197
|
|
210
|
+
klaude_code/ui/terminal/control.py,sha256=WhkqEWdtzUO4iWULp-iI9VazAWmzzW52qTQXk-4Dr4s,4922
|
|
211
|
+
klaude_code/ui/terminal/notifier.py,sha256=Mi7UlpAYgNj4mhsGLSdQxa2tQNfE3c6jCcT3U_v_vQ4,4577
|
|
212
|
+
klaude_code/ui/terminal/progress_bar.py,sha256=MDnhPbqCnN4GDgLOlxxOEVZPDwVC_XL2NM5sl1MFNcQ,2133
|
|
213
|
+
klaude_code/ui/terminal/selector.py,sha256=W_cc3onFD0eqwZd1-45PRfL4fj9qYG3gMzBVONNYNQ0,22760
|
|
214
|
+
klaude_code/ui/utils/__init__.py,sha256=YEsCLjbCPaPza-UXTPUMTJTrc9BmNBUP5CbFWlshyOQ,15
|
|
215
|
+
klaude_code/ui/utils/common.py,sha256=tqHqwgLtAyP805kwRFyoAL4EgMutcNb3Y-GAXJ4IeuM,2263
|
|
216
|
+
klaude_code-1.8.0.dist-info/WHEEL,sha256=eh7sammvW2TypMMMGKgsM83HyA_3qQ5Lgg3ynoecH3M,79
|
|
217
|
+
klaude_code-1.8.0.dist-info/entry_points.txt,sha256=kkXIXedaTOtjXPr2rVjRVVXZYlFUcBHELaqmyVlWUFA,92
|
|
218
|
+
klaude_code-1.8.0.dist-info/METADATA,sha256=A1hV9MLCmLQxky0KHLNsdlWkXUKrTkdz4tHVz_rte_Y,12198
|
|
219
|
+
klaude_code-1.8.0.dist-info/RECORD,,
|