kimi-cli 0.40__py3-none-any.whl → 0.42__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.
Potentially problematic release.
This version of kimi-cli might be problematic. Click here for more details.
- kimi_cli/CHANGELOG.md +27 -0
- kimi_cli/__init__.py +127 -359
- kimi_cli/agents/{koder → default}/agent.yaml +1 -1
- kimi_cli/agents/{koder → default}/system.md +1 -1
- kimi_cli/agentspec.py +115 -0
- kimi_cli/cli.py +249 -0
- kimi_cli/config.py +28 -14
- kimi_cli/constant.py +4 -0
- kimi_cli/exception.py +16 -0
- kimi_cli/llm.py +70 -0
- kimi_cli/metadata.py +5 -68
- kimi_cli/prompts/__init__.py +2 -2
- kimi_cli/session.py +81 -0
- kimi_cli/soul/__init__.py +102 -6
- kimi_cli/soul/agent.py +152 -0
- kimi_cli/soul/approval.py +1 -1
- kimi_cli/soul/compaction.py +4 -4
- kimi_cli/soul/kimisoul.py +39 -46
- kimi_cli/soul/runtime.py +94 -0
- kimi_cli/tools/dmail/__init__.py +1 -1
- kimi_cli/tools/file/glob.md +1 -1
- kimi_cli/tools/file/glob.py +2 -2
- kimi_cli/tools/file/grep.py +1 -1
- kimi_cli/tools/file/patch.py +2 -2
- kimi_cli/tools/file/read.py +1 -1
- kimi_cli/tools/file/replace.py +2 -2
- kimi_cli/tools/file/write.py +2 -2
- kimi_cli/tools/task/__init__.py +48 -40
- kimi_cli/tools/task/task.md +1 -1
- kimi_cli/tools/todo/__init__.py +1 -1
- kimi_cli/tools/utils.py +1 -1
- kimi_cli/tools/web/search.py +5 -2
- kimi_cli/ui/__init__.py +0 -69
- kimi_cli/ui/acp/__init__.py +8 -9
- kimi_cli/ui/print/__init__.py +21 -37
- kimi_cli/ui/shell/__init__.py +8 -19
- kimi_cli/ui/shell/liveview.py +1 -1
- kimi_cli/ui/shell/metacmd.py +5 -10
- kimi_cli/ui/shell/prompt.py +10 -3
- kimi_cli/ui/shell/setup.py +5 -5
- kimi_cli/ui/shell/update.py +2 -2
- kimi_cli/ui/shell/visualize.py +10 -7
- kimi_cli/utils/changelog.py +3 -1
- kimi_cli/wire/__init__.py +69 -0
- kimi_cli/{soul/wire.py → wire/message.py} +4 -39
- {kimi_cli-0.40.dist-info → kimi_cli-0.42.dist-info}/METADATA +51 -18
- kimi_cli-0.42.dist-info/RECORD +86 -0
- kimi_cli-0.42.dist-info/entry_points.txt +3 -0
- kimi_cli/agent.py +0 -261
- kimi_cli/agents/koder/README.md +0 -3
- kimi_cli/utils/provider.py +0 -70
- kimi_cli-0.40.dist-info/RECORD +0 -81
- kimi_cli-0.40.dist-info/entry_points.txt +0 -3
- /kimi_cli/agents/{koder → default}/sub.yaml +0 -0
- {kimi_cli-0.40.dist-info → kimi_cli-0.42.dist-info}/WHEEL +0 -0
kimi_cli/ui/shell/prompt.py
CHANGED
|
@@ -419,8 +419,14 @@ class CustomPromptSession:
|
|
|
419
419
|
completion = buff.complete_state.completions[0]
|
|
420
420
|
buff.apply_completion(completion)
|
|
421
421
|
|
|
422
|
-
@_kb.add("
|
|
423
|
-
|
|
422
|
+
@_kb.add("escape", "enter", eager=True)
|
|
423
|
+
@_kb.add("c-j", eager=True)
|
|
424
|
+
def _insert_newline(event: KeyPressEvent) -> None:
|
|
425
|
+
"""Insert a newline when Alt-Enter or Ctrl-J is pressed."""
|
|
426
|
+
event.current_buffer.insert_text("\n")
|
|
427
|
+
|
|
428
|
+
@_kb.add("c-x", eager=True)
|
|
429
|
+
def _switch_mode(event: KeyPressEvent) -> None:
|
|
424
430
|
self._mode = self._mode.toggle()
|
|
425
431
|
# Apply mode-specific settings
|
|
426
432
|
self._apply_mode(event)
|
|
@@ -549,7 +555,8 @@ class CustomPromptSession:
|
|
|
549
555
|
self._current_toast = None
|
|
550
556
|
else:
|
|
551
557
|
shortcuts = [
|
|
552
|
-
"ctrl-
|
|
558
|
+
"ctrl-x: switch mode",
|
|
559
|
+
"ctrl-j: newline",
|
|
553
560
|
"ctrl-d: exit",
|
|
554
561
|
]
|
|
555
562
|
for shortcut in shortcuts:
|
kimi_cli/ui/shell/setup.py
CHANGED
|
@@ -26,19 +26,19 @@ class _Platform(NamedTuple):
|
|
|
26
26
|
_PLATFORMS = [
|
|
27
27
|
_Platform(
|
|
28
28
|
id="kimi-for-coding",
|
|
29
|
-
name="Kimi For Coding",
|
|
29
|
+
name="Kimi For Coding (CN)",
|
|
30
30
|
base_url="https://api.kimi.com/coding/v1",
|
|
31
31
|
search_url="https://api.kimi.com/coding/v1/search",
|
|
32
32
|
),
|
|
33
33
|
_Platform(
|
|
34
34
|
id="moonshot-cn",
|
|
35
|
-
name="Moonshot AI 开放平台",
|
|
35
|
+
name="Moonshot AI 开放平台 (moonshot.cn)",
|
|
36
36
|
base_url="https://api.moonshot.cn/v1",
|
|
37
37
|
allowed_models=["kimi-k2-turbo-preview", "kimi-k2-0905-preview", "kimi-k2-0711-preview"],
|
|
38
38
|
),
|
|
39
39
|
_Platform(
|
|
40
40
|
id="moonshot-ai",
|
|
41
|
-
name="Moonshot AI Open Platform",
|
|
41
|
+
name="Moonshot AI Open Platform (moonshot.ai)",
|
|
42
42
|
base_url="https://api.moonshot.ai/v1",
|
|
43
43
|
allowed_models=["kimi-k2-turbo-preview", "kimi-k2-0905-preview", "kimi-k2-0711-preview"],
|
|
44
44
|
),
|
|
@@ -77,7 +77,7 @@ async def setup(app: "ShellApp", args: list[str]):
|
|
|
77
77
|
await asyncio.sleep(1)
|
|
78
78
|
console.clear()
|
|
79
79
|
|
|
80
|
-
from kimi_cli import Reload
|
|
80
|
+
from kimi_cli.cli import Reload
|
|
81
81
|
|
|
82
82
|
raise Reload
|
|
83
83
|
|
|
@@ -185,6 +185,6 @@ async def _prompt_text(prompt: str, *, is_password: bool = False) -> str | None:
|
|
|
185
185
|
@meta_command
|
|
186
186
|
def reload(app: "ShellApp", args: list[str]):
|
|
187
187
|
"""Reload configuration"""
|
|
188
|
-
from kimi_cli import Reload
|
|
188
|
+
from kimi_cli.cli import Reload
|
|
189
189
|
|
|
190
190
|
raise Reload
|
kimi_cli/ui/shell/update.py
CHANGED
|
@@ -85,7 +85,7 @@ LATEST_VERSION_FILE = get_share_dir() / "latest_version.txt"
|
|
|
85
85
|
|
|
86
86
|
|
|
87
87
|
async def _do_update(*, print: bool, check_only: bool) -> UpdateResult:
|
|
88
|
-
from kimi_cli import
|
|
88
|
+
from kimi_cli.constant import VERSION as current_version
|
|
89
89
|
|
|
90
90
|
def _print(message: str) -> None:
|
|
91
91
|
if print:
|
|
@@ -105,7 +105,7 @@ async def _do_update(*, print: bool, check_only: bool) -> UpdateResult:
|
|
|
105
105
|
return UpdateResult.FAILED
|
|
106
106
|
|
|
107
107
|
logger.debug("Latest version: {latest_version}", latest_version=latest_version)
|
|
108
|
-
LATEST_VERSION_FILE.write_text(latest_version)
|
|
108
|
+
LATEST_VERSION_FILE.write_text(latest_version, encoding="utf-8")
|
|
109
109
|
|
|
110
110
|
cur_t = semver_tuple(current_version)
|
|
111
111
|
lat_t = semver_tuple(latest_version)
|
kimi_cli/ui/shell/visualize.py
CHANGED
|
@@ -5,19 +5,19 @@ from kosong.base.message import ContentPart, TextPart, ToolCall, ToolCallPart
|
|
|
5
5
|
from kosong.tooling import ToolResult
|
|
6
6
|
|
|
7
7
|
from kimi_cli.soul import StatusSnapshot
|
|
8
|
-
from kimi_cli.
|
|
8
|
+
from kimi_cli.ui.shell.console import console
|
|
9
|
+
from kimi_cli.ui.shell.keyboard import listen_for_keyboard
|
|
10
|
+
from kimi_cli.ui.shell.liveview import StepLiveView, StepLiveViewWithMarkdown
|
|
11
|
+
from kimi_cli.utils.logging import logger
|
|
12
|
+
from kimi_cli.wire import WireUISide
|
|
13
|
+
from kimi_cli.wire.message import (
|
|
9
14
|
ApprovalRequest,
|
|
10
15
|
CompactionBegin,
|
|
11
16
|
CompactionEnd,
|
|
12
17
|
StatusUpdate,
|
|
13
18
|
StepBegin,
|
|
14
19
|
StepInterrupted,
|
|
15
|
-
Wire,
|
|
16
20
|
)
|
|
17
|
-
from kimi_cli.ui.shell.console import console
|
|
18
|
-
from kimi_cli.ui.shell.keyboard import listen_for_keyboard
|
|
19
|
-
from kimi_cli.ui.shell.liveview import StepLiveView, StepLiveViewWithMarkdown
|
|
20
|
-
from kimi_cli.utils.logging import logger
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
@asynccontextmanager
|
|
@@ -39,7 +39,10 @@ async def _keyboard_listener(step: StepLiveView):
|
|
|
39
39
|
|
|
40
40
|
|
|
41
41
|
async def visualize(
|
|
42
|
-
wire:
|
|
42
|
+
wire: WireUISide,
|
|
43
|
+
*,
|
|
44
|
+
initial_status: StatusSnapshot,
|
|
45
|
+
cancel_event: asyncio.Event | None = None,
|
|
43
46
|
):
|
|
44
47
|
"""
|
|
45
48
|
A loop to consume agent events and visualize the agent behavior.
|
kimi_cli/utils/changelog.py
CHANGED
|
@@ -98,4 +98,6 @@ def format_release_notes(changelog: dict[str, ReleaseEntry]) -> str:
|
|
|
98
98
|
return "\n".join(parts).strip()
|
|
99
99
|
|
|
100
100
|
|
|
101
|
-
CHANGELOG = parse_changelog(
|
|
101
|
+
CHANGELOG = parse_changelog(
|
|
102
|
+
(Path(__file__).parent.parent / "CHANGELOG.md").read_text(encoding="utf-8")
|
|
103
|
+
)
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import asyncio
|
|
2
|
+
|
|
3
|
+
from kosong.base.message import ContentPart, ToolCallPart
|
|
4
|
+
|
|
5
|
+
from kimi_cli.utils.logging import logger
|
|
6
|
+
from kimi_cli.wire.message import WireMessage
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class Wire:
|
|
10
|
+
"""
|
|
11
|
+
A channel for communication between the soul and the UI during a soul run.
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
def __init__(self):
|
|
15
|
+
self._queue = asyncio.Queue[WireMessage]()
|
|
16
|
+
self._soul_side = WireSoulSide(self._queue)
|
|
17
|
+
self._ui_side = WireUISide(self._queue)
|
|
18
|
+
|
|
19
|
+
@property
|
|
20
|
+
def soul_side(self) -> "WireSoulSide":
|
|
21
|
+
return self._soul_side
|
|
22
|
+
|
|
23
|
+
@property
|
|
24
|
+
def ui_side(self) -> "WireUISide":
|
|
25
|
+
return self._ui_side
|
|
26
|
+
|
|
27
|
+
def shutdown(self) -> None:
|
|
28
|
+
self._queue.shutdown()
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class WireSoulSide:
|
|
32
|
+
"""
|
|
33
|
+
The soul side of a wire.
|
|
34
|
+
"""
|
|
35
|
+
|
|
36
|
+
def __init__(self, queue: asyncio.Queue[WireMessage]):
|
|
37
|
+
self._queue = queue
|
|
38
|
+
|
|
39
|
+
def send(self, msg: WireMessage) -> None:
|
|
40
|
+
if not isinstance(msg, ContentPart | ToolCallPart):
|
|
41
|
+
logger.debug("Sending wire message: {msg}", msg=msg)
|
|
42
|
+
self._queue.put_nowait(msg)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
class WireUISide:
|
|
46
|
+
"""
|
|
47
|
+
The UI side of a wire.
|
|
48
|
+
"""
|
|
49
|
+
|
|
50
|
+
def __init__(self, queue: asyncio.Queue[WireMessage]):
|
|
51
|
+
self._queue = queue
|
|
52
|
+
|
|
53
|
+
async def receive(self) -> WireMessage:
|
|
54
|
+
msg = await self._queue.get()
|
|
55
|
+
if not isinstance(msg, ContentPart | ToolCallPart):
|
|
56
|
+
logger.debug("Receiving wire message: {msg}", msg=msg)
|
|
57
|
+
return msg
|
|
58
|
+
|
|
59
|
+
def receive_nowait(self) -> WireMessage | None:
|
|
60
|
+
"""
|
|
61
|
+
Try receive a message without waiting. If no message is available, return None.
|
|
62
|
+
"""
|
|
63
|
+
try:
|
|
64
|
+
msg = self._queue.get_nowait()
|
|
65
|
+
except asyncio.QueueEmpty:
|
|
66
|
+
return None
|
|
67
|
+
if not isinstance(msg, ContentPart | ToolCallPart):
|
|
68
|
+
logger.debug("Receiving wire message: {msg}", msg=msg)
|
|
69
|
+
return msg
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import asyncio
|
|
2
2
|
import uuid
|
|
3
|
-
from contextvars import ContextVar
|
|
4
3
|
from enum import Enum
|
|
5
|
-
from typing import NamedTuple
|
|
4
|
+
from typing import TYPE_CHECKING, NamedTuple
|
|
6
5
|
|
|
7
6
|
from kosong.base.message import ContentPart, ToolCall, ToolCallPart
|
|
8
7
|
from kosong.tooling import ToolResult
|
|
9
8
|
|
|
10
|
-
|
|
11
|
-
from kimi_cli.
|
|
9
|
+
if TYPE_CHECKING:
|
|
10
|
+
from kimi_cli.soul import StatusSnapshot
|
|
12
11
|
|
|
13
12
|
|
|
14
13
|
class StepBegin(NamedTuple):
|
|
@@ -39,7 +38,7 @@ class CompactionEnd:
|
|
|
39
38
|
|
|
40
39
|
|
|
41
40
|
class StatusUpdate(NamedTuple):
|
|
42
|
-
status: StatusSnapshot
|
|
41
|
+
status: "StatusSnapshot"
|
|
43
42
|
|
|
44
43
|
|
|
45
44
|
type ControlFlowEvent = StepBegin | StepInterrupted | CompactionBegin | CompactionEnd | StatusUpdate
|
|
@@ -90,37 +89,3 @@ class ApprovalRequest:
|
|
|
90
89
|
|
|
91
90
|
|
|
92
91
|
type WireMessage = Event | ApprovalRequest
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
class Wire:
|
|
96
|
-
"""
|
|
97
|
-
A channel for communication between the soul and the UI.
|
|
98
|
-
"""
|
|
99
|
-
|
|
100
|
-
def __init__(self):
|
|
101
|
-
self._queue = asyncio.Queue[WireMessage]()
|
|
102
|
-
|
|
103
|
-
def send(self, msg: WireMessage) -> None:
|
|
104
|
-
if not isinstance(msg, ContentPart | ToolCallPart):
|
|
105
|
-
logger.debug("Sending wire message: {msg}", msg=msg)
|
|
106
|
-
self._queue.put_nowait(msg)
|
|
107
|
-
|
|
108
|
-
async def receive(self) -> WireMessage:
|
|
109
|
-
msg = await self._queue.get()
|
|
110
|
-
if not isinstance(msg, ContentPart | ToolCallPart):
|
|
111
|
-
logger.debug("Receiving wire message: {msg}", msg=msg)
|
|
112
|
-
return msg
|
|
113
|
-
|
|
114
|
-
def shutdown(self) -> None:
|
|
115
|
-
self._queue.shutdown()
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
current_wire = ContextVar[Wire | None]("current_wire", default=None)
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
def get_wire_or_none() -> Wire | None:
|
|
122
|
-
"""
|
|
123
|
-
Get the current wire or None.
|
|
124
|
-
Expect to be not None when called from anywhere in the agent loop.
|
|
125
|
-
"""
|
|
126
|
-
return current_wire.get()
|
|
@@ -1,29 +1,34 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: kimi-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.42
|
|
4
4
|
Summary: Kimi CLI is your next CLI agent.
|
|
5
|
-
Requires-Dist: agent-client-protocol
|
|
6
|
-
Requires-Dist: aiofiles
|
|
7
|
-
Requires-Dist: aiohttp
|
|
8
|
-
Requires-Dist: click
|
|
9
|
-
Requires-Dist: kosong
|
|
10
|
-
Requires-Dist: loguru
|
|
11
|
-
Requires-Dist: patch-ng
|
|
12
|
-
Requires-Dist: prompt-toolkit
|
|
13
|
-
Requires-Dist: pyyaml
|
|
14
|
-
Requires-Dist: rich
|
|
15
|
-
Requires-Dist: ripgrepy
|
|
16
|
-
Requires-Dist: streamingjson
|
|
17
|
-
Requires-Dist: trafilatura
|
|
18
|
-
Requires-Dist: tenacity
|
|
19
|
-
Requires-Dist: fastmcp
|
|
20
|
-
Requires-Dist: pydantic
|
|
21
|
-
Requires-Dist: httpx[socks]
|
|
5
|
+
Requires-Dist: agent-client-protocol==0.4.9
|
|
6
|
+
Requires-Dist: aiofiles==25.1.0
|
|
7
|
+
Requires-Dist: aiohttp==3.13.1
|
|
8
|
+
Requires-Dist: click==8.3.0
|
|
9
|
+
Requires-Dist: kosong==0.15.0
|
|
10
|
+
Requires-Dist: loguru==0.7.3
|
|
11
|
+
Requires-Dist: patch-ng==1.19.0
|
|
12
|
+
Requires-Dist: prompt-toolkit==3.0.52
|
|
13
|
+
Requires-Dist: pyyaml==6.0.3
|
|
14
|
+
Requires-Dist: rich==14.2.0
|
|
15
|
+
Requires-Dist: ripgrepy==2.2.0
|
|
16
|
+
Requires-Dist: streamingjson==0.0.5
|
|
17
|
+
Requires-Dist: trafilatura==2.0.0
|
|
18
|
+
Requires-Dist: tenacity==9.1.2
|
|
19
|
+
Requires-Dist: fastmcp==2.12.5
|
|
20
|
+
Requires-Dist: pydantic==2.12.3
|
|
21
|
+
Requires-Dist: httpx[socks]==0.28.1
|
|
22
22
|
Requires-Python: >=3.13
|
|
23
23
|
Description-Content-Type: text/markdown
|
|
24
24
|
|
|
25
25
|
# Kimi CLI
|
|
26
26
|
|
|
27
|
+
[](https://github.com/MoonshotAI/kimi-cli/graphs/commit-activity)
|
|
28
|
+
[](https://github.com/MoonshotAI/kimi-cli/actions)
|
|
29
|
+
[](https://pypi.org/project/kimi-cli/)
|
|
30
|
+
[](https://pypistats.org/packages/kimi-cli)
|
|
31
|
+
|
|
27
32
|
[中文](https://www.kimi.com/coding/docs/kimi-cli.html)
|
|
28
33
|
|
|
29
34
|
Kimi CLI is a new CLI agent that can help you with your software development tasks and terminal operations.
|
|
@@ -152,3 +157,31 @@ Run `kimi` with `--mcp-config-file` option to connect to the specified MCP serve
|
|
|
152
157
|
```sh
|
|
153
158
|
kimi --mcp-config-file /path/to/mcp.json
|
|
154
159
|
```
|
|
160
|
+
|
|
161
|
+
## Development
|
|
162
|
+
|
|
163
|
+
To develop Kimi CLI, run:
|
|
164
|
+
|
|
165
|
+
```sh
|
|
166
|
+
git clone https://github.com/MoonshotAI/kimi-cli.git
|
|
167
|
+
cd kimi-cli
|
|
168
|
+
|
|
169
|
+
make prepare # prepare the development environment
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
Then you can start working on Kimi CLI.
|
|
173
|
+
|
|
174
|
+
Refer to the following commands after you make changes:
|
|
175
|
+
|
|
176
|
+
```sh
|
|
177
|
+
uv run kimi # run Kimi CLI
|
|
178
|
+
|
|
179
|
+
make format # format code
|
|
180
|
+
make check # run linting and type checking
|
|
181
|
+
make test # run tests
|
|
182
|
+
make help # show all make targets
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
## Contributing
|
|
186
|
+
|
|
187
|
+
We welcome contributions to Kimi CLI! Please refer to [CONTRIBUTING.md](./CONTRIBUTING.md) for more information.
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
kimi_cli/CHANGELOG.md,sha256=7db667fadfee922d93c191895cb4c7be4d6724225b5edc908ea285c88b8e9c31,7880
|
|
2
|
+
kimi_cli/__init__.py,sha256=12fdc2946dc726697834c3f48787cd8fc0e2fdf38fb78d7c815236e2ce6a35ff,5576
|
|
3
|
+
kimi_cli/agents/default/agent.yaml,sha256=6e5c51987ef5cfc0c4c4e34cc20b6fc975953ee219623fccae81a19155aab7b3,709
|
|
4
|
+
kimi_cli/agents/default/sub.yaml,sha256=e0c1ea34fdb04b0d6dc635709f0f130aff25d7f9fb97e238470143c8145be251,634
|
|
5
|
+
kimi_cli/agents/default/system.md,sha256=1d8fd4956b2442215396b5e9651771c9da8f9505ccbd3b6d5e91b1ac4ff35418,5001
|
|
6
|
+
kimi_cli/agentspec.py,sha256=1148b5184ca610b2fb261ce365a63eb2fc9d09497330fe0ea4b2567fc98d5657,4307
|
|
7
|
+
kimi_cli/cli.py,sha256=5db63b9299b7ede52c7d758e627579d9082e4466f34fbe5e8bcd0910e1e98e67,6658
|
|
8
|
+
kimi_cli/config.py,sha256=a8a56c974569210c85c68ecbcfd69b6746879a0e2db5556299c9cb78c4c6573b,4896
|
|
9
|
+
kimi_cli/constant.py,sha256=78e25b9304cca7b6f70bb08bf0e1fee4b066297a05386e56dd6935ba42027cd9,110
|
|
10
|
+
kimi_cli/exception.py,sha256=a3fec07566da7d2d34be8cc454fb825f34109bbde3cddf69e1ece6ab21b4b219,259
|
|
11
|
+
kimi_cli/llm.py,sha256=069df4db494257ccc4fc183e6a3a89f032970d811f402ab02104876e69e310d6,2715
|
|
12
|
+
kimi_cli/metadata.py,sha256=9e9d4bc12ff26fc34e0e09d9068be989f2ff3c8b682ef453de69e442f8f672a1,1557
|
|
13
|
+
kimi_cli/prompts/__init__.py,sha256=6dc5ed2d841f145c09550075f30853cdc51f00d2f5d9aa1097f8edea770536e7,174
|
|
14
|
+
kimi_cli/prompts/compact.md,sha256=6655bd7d8270b24d8f97b51ef7c471cf71d686c56f8ec9a5cc9e47caa3aae87c,1877
|
|
15
|
+
kimi_cli/prompts/init.md,sha256=d271a0df6dd7b330ffec4f645a74c0392dafc1b3bfc1e3f2a77624e96cf6abbe,1380
|
|
16
|
+
kimi_cli/py.typed,sha256=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855,0
|
|
17
|
+
kimi_cli/session.py,sha256=c0623b0cec8ce311f1ddc7bb47e1e452499e13f816b7c3023342499a436dcfc5,2853
|
|
18
|
+
kimi_cli/share.py,sha256=4292df7f44177419c45c772a933b5f36e2b7533f8cef9842629a438bc7856dc0,204
|
|
19
|
+
kimi_cli/soul/__init__.py,sha256=c1c09bb719c46db8d95873e4ef9856cbef92f54035829749c779ab0fad3dfc50,4702
|
|
20
|
+
kimi_cli/soul/agent.py,sha256=637aa6c8c52fd334fb20f15db6f54ef47dc1731eec14efd54d42c29f53bbe13b,4833
|
|
21
|
+
kimi_cli/soul/approval.py,sha256=48cd230dff81dfd70bd85f1ad2b99604d5569cf617a4c79c444f9772bbc89ce6,2552
|
|
22
|
+
kimi_cli/soul/compaction.py,sha256=dab17979060fceeed4a7a344373833022dc7abac04282364f2a1b20e6edd4581,3558
|
|
23
|
+
kimi_cli/soul/context.py,sha256=541759a65f8f87a3424a6da160ffb2043046e6f6b714124d94d82a77635df9bc,5855
|
|
24
|
+
kimi_cli/soul/denwarenji.py,sha256=66b95f052a1fa844e2347972d34e1916a7be24d3e493701b451f5380b0375c9f,1384
|
|
25
|
+
kimi_cli/soul/kimisoul.py,sha256=7e0b821952f9f0bc7c9c7fd31b697a55dc5e5dfbc011f966638c2775f68480ed,11470
|
|
26
|
+
kimi_cli/soul/message.py,sha256=b0fce0a0901fad38f2778b85f82427d4a42906891893a643e537a9268eb6e190,2529
|
|
27
|
+
kimi_cli/soul/runtime.py,sha256=13a13b48e9743436211a590d1e33ecc73abc3cc77fad36cef6b73795ae77ce74,2629
|
|
28
|
+
kimi_cli/soul/toolset.py,sha256=60166d89ef0efac690fa6866e88afe70fbe80ad862ba2524d70ddf657a730d14,744
|
|
29
|
+
kimi_cli/tools/__init__.py,sha256=4d612402814eede7182e0a55e7dd21c4532b5dd44700dc744763a8308c2f74f8,3280
|
|
30
|
+
kimi_cli/tools/bash/__init__.py,sha256=de21b19c714bda53f6c89e3348c4c82fb4278040130fed1d261b3ab203054e8c,3028
|
|
31
|
+
kimi_cli/tools/bash/bash.md,sha256=5d9cc54b3718097951340b0a737c8e1fa308341fd2c4ebd121be94de31dd5f73,2348
|
|
32
|
+
kimi_cli/tools/dmail/__init__.py,sha256=a9186ed4e52c34cab7516060bb6edca73324912233b1581c0d3a40b026400133,1277
|
|
33
|
+
kimi_cli/tools/dmail/dmail.md,sha256=0d18cae387dd52127ddc99e296253c09e68ccba5f343153c0adbe77d7586e759,1912
|
|
34
|
+
kimi_cli/tools/file/__init__.py,sha256=1516fb4c71097f9c14b605e7b9a1872af8786bdcb48323d1fa83bb1419436abb,546
|
|
35
|
+
kimi_cli/tools/file/glob.md,sha256=11fbfaf6033f57b69c6f91077ddd90505036937cd7217600d96992b9a48b7ca7,1400
|
|
36
|
+
kimi_cli/tools/file/glob.py,sha256=67b0b55e95b57e34cb43ecf382667d1b9b78903787c00bb2d0929dbede812f2f,5413
|
|
37
|
+
kimi_cli/tools/file/grep.md,sha256=12353db42cf3b5d9d91ac7c0f0b9c2a732e8b050c23a78f4e668db823cca4d50,245
|
|
38
|
+
kimi_cli/tools/file/grep.py,sha256=01794320049b46207aeb28bd7f3dbea373ede891916107cab871ea959e81a335,9787
|
|
39
|
+
kimi_cli/tools/file/patch.md,sha256=f9edbed6c6a03bf7448a51acc1f42622395fd7f1674a814e9a3b2302d3b7b92e,404
|
|
40
|
+
kimi_cli/tools/file/patch.py,sha256=7e31d85ece4ece2439e9dfd085505e496d9e47d176b820c61798e3c4f71628db,5228
|
|
41
|
+
kimi_cli/tools/file/read.md,sha256=4c2d83e557daadc0612fb1a613e252b2c8e4df7ae57e6db094e9e75e994cb23b,1066
|
|
42
|
+
kimi_cli/tools/file/read.py,sha256=1d3d8116ee23f224d04c5ba10e3c3261e94fbbe3b932d57ae5fca48a0afdb592,5068
|
|
43
|
+
kimi_cli/tools/file/replace.md,sha256=f429f263fa580f2f6107907a33ba8800dcdbd4fc1d9ff8dc4f858bd76ec6bbc6,267
|
|
44
|
+
kimi_cli/tools/file/replace.py,sha256=8df993fb49a975b87820fbdbc7d7b349e18516250b0f895dd047b87c3df89e73,5204
|
|
45
|
+
kimi_cli/tools/file/write.md,sha256=f37b0f4742da57797ec4dd29fbd4fdc9b6617c6be644724a3b16d651c6129cec,324
|
|
46
|
+
kimi_cli/tools/file/write.py,sha256=22f4eb8e635b279e48bde7f09e7416a01b8ed88c140424c149a6398a0a321f1a,4378
|
|
47
|
+
kimi_cli/tools/mcp.py,sha256=12f63c9ee5b82a5b0f23daca0b5ce4ceb3a6190ce5b553ee24e499699521e426,3620
|
|
48
|
+
kimi_cli/tools/task/__init__.py,sha256=8a0ccc313a616428d68f804986dba69de400502af64bf4c52b366e4d5ff7eeff,6523
|
|
49
|
+
kimi_cli/tools/task/task.md,sha256=391cc3553c7d310a323626bae180dd41cb810fb1233583713ebde105f954147a,2280
|
|
50
|
+
kimi_cli/tools/test.py,sha256=c094a91a2d1a5259e192f1147facd5eebd5e5c413787fce167db90e4b41b5119,1442
|
|
51
|
+
kimi_cli/tools/think/__init__.py,sha256=31b06088e2404cb09d42e0acec97c185e4861890bb687f28b41f39cea01b5733,603
|
|
52
|
+
kimi_cli/tools/think/think.md,sha256=ab40d4de1d8adb208384a4ab548e35776283cb0a681c6e208b041fc40ccba724,200
|
|
53
|
+
kimi_cli/tools/todo/__init__.py,sha256=aa02c8afa19d9ae2ef1f6ffee147dc96732a9cb9895aa5e13fe0f9efe753fe00,897
|
|
54
|
+
kimi_cli/tools/todo/set_todo_list.md,sha256=89509503f43ab321d440a04dc133ddc3e29859f68907a42c39e6093f7bfd485c,1654
|
|
55
|
+
kimi_cli/tools/utils.py,sha256=2e00d6f04f91e05a91bfb691e547a76193063fa6769a03f7d3ff992aba9372bf,4596
|
|
56
|
+
kimi_cli/tools/web/__init__.py,sha256=e13108c598828a8a05907a7a821e7ac92f5d63572bb9866dc12ca026094acb42,95
|
|
57
|
+
kimi_cli/tools/web/fetch.md,sha256=56d00bd93b4e379c4f7efe445fce963eb26b8d20f85d4c19097ba6f33bd0019a,67
|
|
58
|
+
kimi_cli/tools/web/fetch.py,sha256=66448121d27d67f75b977c32244c721c2ccff1b2e097c2fe6717e66018d8f747,3183
|
|
59
|
+
kimi_cli/tools/web/search.md,sha256=24049f9e90d37083e0fc78b8b2e3a5f6fadf09bea00f36712b235d1212a2f532,146
|
|
60
|
+
kimi_cli/tools/web/search.py,sha256=e7fcb1eae31f97637a27fffc774f361c773bf4df5dad5b5a6104aaa91a2f3d22,4511
|
|
61
|
+
kimi_cli/ui/__init__.py,sha256=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855,0
|
|
62
|
+
kimi_cli/ui/acp/__init__.py,sha256=cc8bf39f342de7661134f282369b286bb6c4571b1e0001a0cb216207a62d709c,17354
|
|
63
|
+
kimi_cli/ui/print/__init__.py,sha256=0fd783a6a65b85515129edd98adc3a4a154b37e579b313a42648c6c1fabcb1f7,5867
|
|
64
|
+
kimi_cli/ui/shell/__init__.py,sha256=3648c8e3d4e03408fd7c5f626a85d91752155ca703f688bf122b6048a5bf8800,10603
|
|
65
|
+
kimi_cli/ui/shell/console.py,sha256=bcbf7efd214cba3d2259f2a2c1842250cde96d49e4f9f1e0b60273cf1c366be3,842
|
|
66
|
+
kimi_cli/ui/shell/debug.py,sha256=cd4e7259c83f099b5c6519713be5306580f30d3fa4944e07916d4468e960c9c7,5562
|
|
67
|
+
kimi_cli/ui/shell/keyboard.py,sha256=8735c00363484263681adf885baec824e5f76cb4084bd024651e80190926edc5,3035
|
|
68
|
+
kimi_cli/ui/shell/liveview.py,sha256=f4e6ac37c446740b5c55cf37d5ebd327b5d41334d41d5e54ad8ad15445c1a492,14239
|
|
69
|
+
kimi_cli/ui/shell/metacmd.py,sha256=a0e52e9cbd8758c1ba13f025599341aa59dd5bc5e244840da2ff9bb71f952a20,7678
|
|
70
|
+
kimi_cli/ui/shell/prompt.py,sha256=e1590530239244cc39d8e3ff6fdfb4b431da0cf21f8b0ad5c0900c5a4b3978d8,19398
|
|
71
|
+
kimi_cli/ui/shell/setup.py,sha256=36be348c8cdbb908f1b896f7dfd93802df4d76eeb8572d39b81a34dfd5ee2a3c,5374
|
|
72
|
+
kimi_cli/ui/shell/update.py,sha256=56dcb0bd1da82b98c22bfdddca717a2805bd8ac3e93bf23fb3b508549c41fae8,7340
|
|
73
|
+
kimi_cli/ui/shell/visualize.py,sha256=7035d53e41ae59e5df7008759ee4f14e44352cc4ac087c6b67d784a7dd51c733,4291
|
|
74
|
+
kimi_cli/utils/aiohttp.py,sha256=f8f61e3beaf6439e949c33c3a10db3035bf88136e882b09c858ea92a4c888e00,245
|
|
75
|
+
kimi_cli/utils/changelog.py,sha256=bfcf5a5a360b13648bb7a6abc83e427270caa502646b5acc950d62148510641c,3402
|
|
76
|
+
kimi_cli/utils/logging.py,sha256=129298ac214ecd8d913c3431cc05d754f9c4c8c4042c458618bf9e8ddebdb763,399
|
|
77
|
+
kimi_cli/utils/message.py,sha256=ca8f8d3c7dc6d4fce938d1cfe8a7a7343e39ce1e2f0c7b2d76d838edc7d9f187,304
|
|
78
|
+
kimi_cli/utils/path.py,sha256=fdd4fc08999ddc7c610f884b4ba8d27932248b9ed06b5eb4139519edd00b3f75,687
|
|
79
|
+
kimi_cli/utils/pyinstaller.py,sha256=e5d709d0490ef8645bbed2d2363920c59f25bd17c04f471bf4a8c0fa2ebe1801,581
|
|
80
|
+
kimi_cli/utils/string.py,sha256=f8a842ee014b9023d4045392f33ca6f576f5238ad3d40cb6df071a3ce9f5ed9c,365
|
|
81
|
+
kimi_cli/wire/__init__.py,sha256=a8d3ebbe0e6a98893771541d166a3d8ec3bc2551117ee4bc47fabce68694bb5a,1853
|
|
82
|
+
kimi_cli/wire/message.py,sha256=72222d3f3d7228a323dbba7b1084f35018104c58e4bb2aa51d0827984791841d,2398
|
|
83
|
+
kimi_cli-0.42.dist-info/WHEEL,sha256=70ab3c2925fe316809860cb034f99ba13c4b49819b339959274aab755cc084a8,78
|
|
84
|
+
kimi_cli-0.42.dist-info/entry_points.txt,sha256=97e051756296e9db3167f6dce61d6c88e58d170314a2d63d18c84c73a5c1333b,44
|
|
85
|
+
kimi_cli-0.42.dist-info/METADATA,sha256=760c1ea5111946d261c9c995803cbe326c1c70095a9f035b293651eda1deb95c,5187
|
|
86
|
+
kimi_cli-0.42.dist-info/RECORD,,
|