kimi-cli 0.35__py3-none-any.whl → 0.52__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.
Files changed (88) hide show
  1. kimi_cli/CHANGELOG.md +165 -0
  2. kimi_cli/__init__.py +0 -374
  3. kimi_cli/agents/{koder → default}/agent.yaml +1 -1
  4. kimi_cli/agents/{koder → default}/system.md +1 -1
  5. kimi_cli/agentspec.py +115 -0
  6. kimi_cli/app.py +208 -0
  7. kimi_cli/cli.py +321 -0
  8. kimi_cli/config.py +33 -16
  9. kimi_cli/constant.py +4 -0
  10. kimi_cli/exception.py +16 -0
  11. kimi_cli/llm.py +144 -3
  12. kimi_cli/metadata.py +6 -69
  13. kimi_cli/prompts/__init__.py +4 -0
  14. kimi_cli/session.py +103 -0
  15. kimi_cli/soul/__init__.py +130 -9
  16. kimi_cli/soul/agent.py +159 -0
  17. kimi_cli/soul/approval.py +5 -6
  18. kimi_cli/soul/compaction.py +106 -0
  19. kimi_cli/soul/context.py +1 -1
  20. kimi_cli/soul/kimisoul.py +180 -80
  21. kimi_cli/soul/message.py +6 -6
  22. kimi_cli/soul/runtime.py +96 -0
  23. kimi_cli/soul/toolset.py +3 -2
  24. kimi_cli/tools/__init__.py +35 -31
  25. kimi_cli/tools/bash/__init__.py +25 -9
  26. kimi_cli/tools/bash/cmd.md +31 -0
  27. kimi_cli/tools/dmail/__init__.py +5 -4
  28. kimi_cli/tools/file/__init__.py +8 -0
  29. kimi_cli/tools/file/glob.md +1 -1
  30. kimi_cli/tools/file/glob.py +4 -4
  31. kimi_cli/tools/file/grep.py +36 -19
  32. kimi_cli/tools/file/patch.py +52 -10
  33. kimi_cli/tools/file/read.py +6 -5
  34. kimi_cli/tools/file/replace.py +16 -4
  35. kimi_cli/tools/file/write.py +16 -4
  36. kimi_cli/tools/mcp.py +7 -4
  37. kimi_cli/tools/task/__init__.py +60 -41
  38. kimi_cli/tools/task/task.md +1 -1
  39. kimi_cli/tools/todo/__init__.py +4 -2
  40. kimi_cli/tools/utils.py +1 -1
  41. kimi_cli/tools/web/fetch.py +2 -1
  42. kimi_cli/tools/web/search.py +13 -12
  43. kimi_cli/ui/__init__.py +0 -68
  44. kimi_cli/ui/acp/__init__.py +67 -38
  45. kimi_cli/ui/print/__init__.py +46 -69
  46. kimi_cli/ui/shell/__init__.py +145 -154
  47. kimi_cli/ui/shell/console.py +27 -1
  48. kimi_cli/ui/shell/debug.py +187 -0
  49. kimi_cli/ui/shell/keyboard.py +183 -0
  50. kimi_cli/ui/shell/metacmd.py +34 -81
  51. kimi_cli/ui/shell/prompt.py +245 -28
  52. kimi_cli/ui/shell/replay.py +104 -0
  53. kimi_cli/ui/shell/setup.py +19 -19
  54. kimi_cli/ui/shell/update.py +11 -5
  55. kimi_cli/ui/shell/visualize.py +576 -0
  56. kimi_cli/ui/wire/README.md +109 -0
  57. kimi_cli/ui/wire/__init__.py +340 -0
  58. kimi_cli/ui/wire/jsonrpc.py +48 -0
  59. kimi_cli/utils/__init__.py +0 -0
  60. kimi_cli/utils/aiohttp.py +10 -0
  61. kimi_cli/utils/changelog.py +6 -2
  62. kimi_cli/utils/clipboard.py +10 -0
  63. kimi_cli/utils/message.py +15 -1
  64. kimi_cli/utils/rich/__init__.py +33 -0
  65. kimi_cli/utils/rich/markdown.py +959 -0
  66. kimi_cli/utils/rich/markdown_sample.md +108 -0
  67. kimi_cli/utils/rich/markdown_sample_short.md +2 -0
  68. kimi_cli/utils/signals.py +41 -0
  69. kimi_cli/utils/string.py +8 -0
  70. kimi_cli/utils/term.py +114 -0
  71. kimi_cli/wire/__init__.py +73 -0
  72. kimi_cli/wire/message.py +191 -0
  73. kimi_cli-0.52.dist-info/METADATA +186 -0
  74. kimi_cli-0.52.dist-info/RECORD +99 -0
  75. kimi_cli-0.52.dist-info/entry_points.txt +3 -0
  76. kimi_cli/agent.py +0 -261
  77. kimi_cli/agents/koder/README.md +0 -3
  78. kimi_cli/prompts/metacmds/__init__.py +0 -4
  79. kimi_cli/soul/wire.py +0 -101
  80. kimi_cli/ui/shell/liveview.py +0 -158
  81. kimi_cli/utils/provider.py +0 -64
  82. kimi_cli-0.35.dist-info/METADATA +0 -24
  83. kimi_cli-0.35.dist-info/RECORD +0 -76
  84. kimi_cli-0.35.dist-info/entry_points.txt +0 -3
  85. /kimi_cli/agents/{koder → default}/sub.yaml +0 -0
  86. /kimi_cli/prompts/{metacmds/compact.md → compact.md} +0 -0
  87. /kimi_cli/prompts/{metacmds/init.md → init.md} +0 -0
  88. {kimi_cli-0.35.dist-info → kimi_cli-0.52.dist-info}/WHEEL +0 -0
@@ -1,158 +0,0 @@
1
- import streamingjson
2
- from kosong.base.message import ToolCall, ToolCallPart
3
- from kosong.tooling import ToolError, ToolOk, ToolResult, ToolReturnType
4
- from rich.console import Group, RenderableType
5
- from rich.live import Live
6
- from rich.markup import escape
7
- from rich.spinner import Spinner
8
- from rich.text import Text
9
-
10
- from kimi_cli.soul import StatusSnapshot
11
- from kimi_cli.tools import extract_subtitle
12
- from kimi_cli.ui.shell.console import console
13
-
14
-
15
- class _ToolCallDisplay:
16
- def __init__(self, tool_call: ToolCall):
17
- self._tool_name = tool_call.function.name
18
- self._lexer = streamingjson.Lexer()
19
- if tool_call.function.arguments is not None:
20
- self._lexer.append_string(tool_call.function.arguments)
21
-
22
- self._title_markup = f"Using [blue]{self._tool_name}[/blue]"
23
- self._subtitle = extract_subtitle(self._lexer, self._tool_name)
24
- self._finished = False
25
- self._spinner = Spinner("dots", text=self._spinner_markup)
26
- self.renderable: RenderableType = Group(self._spinner)
27
-
28
- @property
29
- def finished(self) -> bool:
30
- return self._finished
31
-
32
- @property
33
- def _spinner_markup(self) -> str:
34
- return self._title_markup + self._subtitle_markup
35
-
36
- @property
37
- def _subtitle_markup(self) -> str:
38
- subtitle = self._subtitle
39
- return f"[grey50]: {escape(subtitle)}[/grey50]" if subtitle else ""
40
-
41
- def append_args_part(self, args_part: str):
42
- if self.finished:
43
- return
44
- self._lexer.append_string(args_part)
45
- # TODO: don't extract detail if it's already stable
46
- new_subtitle = extract_subtitle(self._lexer, self._tool_name)
47
- if new_subtitle and new_subtitle != self._subtitle:
48
- self._subtitle = new_subtitle
49
- self._spinner.update(text=self._spinner_markup)
50
-
51
- def finish(self, result: ToolReturnType):
52
- """
53
- Finish the live display of a tool call.
54
- After calling this, the `renderable` property should be re-rendered.
55
- """
56
- self._finished = True
57
- sign = "[red]✗[/red]" if isinstance(result, ToolError) else "[green]✓[/green]"
58
- lines = [
59
- Text.from_markup(f"{sign} Used [blue]{self._tool_name}[/blue]" + self._subtitle_markup)
60
- ]
61
- if result.brief:
62
- lines.append(
63
- Text.from_markup(
64
- f" {result.brief}", style="grey50" if isinstance(result, ToolOk) else "red"
65
- )
66
- )
67
- self.renderable = Group(*lines)
68
-
69
-
70
- class StepLiveView:
71
- def __init__(self, status: StatusSnapshot):
72
- self._line_buffer = Text("")
73
- self._tool_calls: dict[str, _ToolCallDisplay] = {}
74
- self._last_tool_call: _ToolCallDisplay | None = None
75
- self._status_text: Text | None = Text(
76
- self._format_status(status), style="grey50", justify="right"
77
- )
78
-
79
- def __enter__(self):
80
- self._live = Live(
81
- self._compose(),
82
- console=console,
83
- refresh_per_second=4,
84
- transient=False, # leave the last frame on the screen
85
- vertical_overflow="visible",
86
- )
87
- self._live.__enter__()
88
- return self
89
-
90
- def __exit__(self, exc_type, exc_value, traceback):
91
- self._live.__exit__(exc_type, exc_value, traceback)
92
-
93
- def _compose(self) -> RenderableType:
94
- sections = []
95
- if self._line_buffer:
96
- sections.append(self._line_buffer)
97
- for view in self._tool_calls.values():
98
- sections.append(view.renderable)
99
- if self._status_text:
100
- sections.append(self._status_text)
101
- return Group(*sections)
102
-
103
- def _push_out(self, text: Text | str):
104
- """
105
- Push the text out of the live view to the console.
106
- After this, the printed line will not be changed further.
107
- """
108
- console.print(text)
109
-
110
- def append_text(self, text: str):
111
- lines = text.split("\n")
112
- prev_is_empty = not self._line_buffer
113
- for line in lines[:-1]:
114
- self._push_out(self._line_buffer + line)
115
- self._line_buffer.plain = ""
116
- self._line_buffer.append(lines[-1])
117
- if (prev_is_empty and self._line_buffer) or (not prev_is_empty and not self._line_buffer):
118
- self._live.update(self._compose())
119
-
120
- def append_tool_call(self, tool_call: ToolCall):
121
- self._tool_calls[tool_call.id] = _ToolCallDisplay(tool_call)
122
- self._last_tool_call = self._tool_calls[tool_call.id]
123
- self._live.update(self._compose())
124
-
125
- def append_tool_call_part(self, tool_call_part: ToolCallPart):
126
- if not tool_call_part.arguments_part:
127
- return
128
- if self._last_tool_call is None:
129
- return
130
- self._last_tool_call.append_args_part(tool_call_part.arguments_part)
131
-
132
- def append_tool_result(self, tool_result: ToolResult):
133
- if view := self._tool_calls.get(tool_result.tool_call_id):
134
- view.finish(tool_result.result)
135
- self._live.update(self._compose())
136
-
137
- def update_status(self, status: StatusSnapshot):
138
- if self._status_text is None:
139
- return
140
- self._status_text.plain = self._format_status(status)
141
-
142
- def finish(self):
143
- for view in self._tool_calls.values():
144
- if not view.finished:
145
- # this should not happen, but just in case
146
- view.finish(ToolOk(output=""))
147
- self._live.update(self._compose())
148
-
149
- def interrupt(self):
150
- for view in self._tool_calls.values():
151
- if not view.finished:
152
- view.finish(ToolError(message="", brief="Interrupted"))
153
- self._live.update(self._compose())
154
-
155
- @staticmethod
156
- def _format_status(status: StatusSnapshot) -> str:
157
- bounded = max(0.0, min(status.context_usage, 1.0))
158
- return f"context: {bounded:.1%}"
@@ -1,64 +0,0 @@
1
- import os
2
-
3
- from kosong.chat_provider import ChaosChatProvider, Kimi, OpenAILegacy
4
- from kosong.chat_provider.chaos import ChaosConfig
5
- from pydantic import SecretStr
6
-
7
- import kimi_cli
8
- from kimi_cli.config import LLMModel, LLMProvider
9
- from kimi_cli.llm import LLM
10
-
11
-
12
- def augment_provider_with_env_vars(provider: LLMProvider, model: LLMModel):
13
- match provider.type:
14
- case "kimi":
15
- if base_url := os.getenv("KIMI_BASE_URL"):
16
- provider.base_url = base_url
17
- if api_key := os.getenv("KIMI_API_KEY"):
18
- provider.api_key = SecretStr(api_key)
19
- if model_name := os.getenv("KIMI_MODEL_NAME"):
20
- model.model = model_name
21
- if max_context_size := os.getenv("KIMI_MODEL_MAX_CONTEXT_SIZE"):
22
- model.max_context_size = int(max_context_size)
23
- case "openai_legacy":
24
- if base_url := os.getenv("OPENAI_BASE_URL"):
25
- provider.base_url = base_url
26
- if api_key := os.getenv("OPENAI_API_KEY"):
27
- provider.api_key = SecretStr(api_key)
28
- case _:
29
- pass
30
-
31
-
32
- def create_llm(provider: LLMProvider, model: LLMModel, stream: bool = True) -> LLM:
33
- match provider.type:
34
- case "kimi":
35
- chat_provider = Kimi(
36
- model=model.model,
37
- base_url=provider.base_url,
38
- api_key=provider.api_key.get_secret_value(),
39
- stream=stream,
40
- default_headers={
41
- "User-Agent": kimi_cli.USER_AGENT,
42
- },
43
- )
44
- case "openai_legacy":
45
- chat_provider = OpenAILegacy(
46
- model=model.model,
47
- base_url=provider.base_url,
48
- api_key=provider.api_key.get_secret_value(),
49
- stream=stream,
50
- )
51
- case "_chaos":
52
- chat_provider = ChaosChatProvider(
53
- model=model.model,
54
- base_url=provider.base_url,
55
- api_key=provider.api_key.get_secret_value(),
56
- chaos_config=ChaosConfig(
57
- error_probability=0.8,
58
- error_types=[429, 500, 503],
59
- ),
60
- )
61
- case _:
62
- raise ValueError(f"Unsupported provider: {provider.type}")
63
-
64
- return LLM(chat_provider=chat_provider, max_context_size=model.max_context_size)
@@ -1,24 +0,0 @@
1
- Metadata-Version: 2.3
2
- Name: kimi-cli
3
- Version: 0.35
4
- Summary: Kimi CLI is your next CLI agent.
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.14.1
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-Python: >=3.13
22
- Description-Content-Type: text/markdown
23
-
24
- # Kimi CLI
@@ -1,76 +0,0 @@
1
- kimi_cli/CHANGELOG.md,sha256=734517112bfbcefbc47675f14932689afc73784d54f6c840226c055c631831b2,6606
2
- kimi_cli/__init__.py,sha256=51c994671106389725ced892921a79019dec0df8965e90720bf344d751c4fd7e,11102
3
- kimi_cli/agent.py,sha256=46fc0293489cc1d5daaa9be6b29c8a17bbf8c5a552fd437941eb1f0ae1335a3a,8528
4
- kimi_cli/agents/koder/README.md,sha256=2d9a987110652915cd1a4356caec3eef9380479ce36906c377a1ed177d46690f,96
5
- kimi_cli/agents/koder/agent.yaml,sha256=f1c5c585e8e0a52419c820d56a4aa928eebdf7bb21f0907d6c02d4ea1c8909d7,709
6
- kimi_cli/agents/koder/sub.yaml,sha256=e0c1ea34fdb04b0d6dc635709f0f130aff25d7f9fb97e238470143c8145be251,634
7
- kimi_cli/agents/koder/system.md,sha256=27ef94b525e846f6a8e55222042b6ca8eb8d2663ff7009d7b07c50ed8798bb02,4999
8
- kimi_cli/config.py,sha256=37dd65f2aa03c051dc92d09d9c110361ee35bb8dc94eced2c1e8bf01e3918353,4157
9
- kimi_cli/llm.py,sha256=e4c4a184ce7b78fb60ce29f7b967676dd338131ab05f5ea7c3cb7b3e7c6a64d4,165
10
- kimi_cli/metadata.py,sha256=70c01da57529a9f585c0c5f3dd642f92ef16c4e49a107d8da838fa6d4746546a,3933
11
- kimi_cli/prompts/metacmds/__init__.py,sha256=56bee1833b9555c71f50d0def3de7fb6d78e018826d925686ce9295815edb666,142
12
- kimi_cli/prompts/metacmds/compact.md,sha256=6655bd7d8270b24d8f97b51ef7c471cf71d686c56f8ec9a5cc9e47caa3aae87c,1877
13
- kimi_cli/prompts/metacmds/init.md,sha256=d271a0df6dd7b330ffec4f645a74c0392dafc1b3bfc1e3f2a77624e96cf6abbe,1380
14
- kimi_cli/py.typed,sha256=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855,0
15
- kimi_cli/share.py,sha256=4292df7f44177419c45c772a933b5f36e2b7533f8cef9842629a438bc7856dc0,204
16
- kimi_cli/soul/__init__.py,sha256=10036ca53a06b42dd66e77bb2190c762c51ed4c3af7d237c05a7e59824ba0d75,1580
17
- kimi_cli/soul/approval.py,sha256=4f268c0212cc0dc86126e71dc6b6577e26dc89784e5a24ed200d9519d5018baf,2563
18
- kimi_cli/soul/context.py,sha256=541759a65f8f87a3424a6da160ffb2043046e6f6b714124d94d82a77635df9bc,5855
19
- kimi_cli/soul/denwarenji.py,sha256=66b95f052a1fa844e2347972d34e1916a7be24d3e493701b451f5380b0375c9f,1384
20
- kimi_cli/soul/kimisoul.py,sha256=f6ef5e73e7f5081090fe7e7cb13b816f750bb5b99331467ad6523eda26a5de0d,9558
21
- kimi_cli/soul/message.py,sha256=16bbdc203c791dc50c7ebbc52d91fae801313920db1029217f30b5516ba5dbf3,2459
22
- kimi_cli/soul/toolset.py,sha256=60166d89ef0efac690fa6866e88afe70fbe80ad862ba2524d70ddf657a730d14,744
23
- kimi_cli/soul/wire.py,sha256=0926a1c5d01c35d72cbf5c8f818d3dc439defbb8cadec818e3aba51e9cc0d881,2723
24
- kimi_cli/tools/__init__.py,sha256=4d612402814eede7182e0a55e7dd21c4532b5dd44700dc744763a8308c2f74f8,3280
25
- kimi_cli/tools/bash/__init__.py,sha256=2dbe6968accdef2a9f61262bb4929af00cebaeb2fb8fb64f21ea86a3004b6714,2972
26
- kimi_cli/tools/bash/bash.md,sha256=5d9cc54b3718097951340b0a737c8e1fa308341fd2c4ebd121be94de31dd5f73,2348
27
- kimi_cli/tools/dmail/__init__.py,sha256=76b2175bc4acd307db0f761b995a9c2cd8ac12f25296fab14707adb9a1baa13b,1261
28
- kimi_cli/tools/dmail/dmail.md,sha256=0d18cae387dd52127ddc99e296253c09e68ccba5f343153c0adbe77d7586e759,1912
29
- kimi_cli/tools/file/__init__.py,sha256=9c237ad169523e0be965eb2a92a4675dd03a6aef14faa65982504dd6ff8d1a3c,444
30
- kimi_cli/tools/file/glob.md,sha256=6aab77c357c203fb2d5cc2092375ce860941e3f7343b59e6ef264f42255163fa,1401
31
- kimi_cli/tools/file/glob.py,sha256=fabd6fbc1480a52d07c5ff3d570e3fb86d455438e97a9970dc44a0e7ff434101,5405
32
- kimi_cli/tools/file/grep.md,sha256=12353db42cf3b5d9d91ac7c0f0b9c2a732e8b050c23a78f4e668db823cca4d50,245
33
- kimi_cli/tools/file/grep.py,sha256=765a7f7c3387f05c2d47781b484c612639e1cfd3a1b77291e3613ce239e46947,9720
34
- kimi_cli/tools/file/patch.md,sha256=f9edbed6c6a03bf7448a51acc1f42622395fd7f1674a814e9a3b2302d3b7b92e,404
35
- kimi_cli/tools/file/patch.py,sha256=4290a8202d7a19a83a3fe6da63d298e6195c86d8faed46cdacd0323cbdb8c1c8,4765
36
- kimi_cli/tools/file/read.md,sha256=4c2d83e557daadc0612fb1a613e252b2c8e4df7ae57e6db094e9e75e994cb23b,1066
37
- kimi_cli/tools/file/read.py,sha256=c1824f0e7a56a065808414580663ba4363fcef0d374ba5ea2e8848ac411b5a5d,5061
38
- kimi_cli/tools/file/replace.md,sha256=f429f263fa580f2f6107907a33ba8800dcdbd4fc1d9ff8dc4f858bd76ec6bbc6,267
39
- kimi_cli/tools/file/replace.py,sha256=066bfe14517061b8c4abf722d64c5eee3dfe0ed0037b61c8132792845fb35586,4742
40
- kimi_cli/tools/file/write.md,sha256=f37b0f4742da57797ec4dd29fbd4fdc9b6617c6be644724a3b16d651c6129cec,324
41
- kimi_cli/tools/file/write.py,sha256=687648fb8d3c32a1c38655675a0b0981e206a021ba9a0c299cc51abb4cb991e3,3915
42
- kimi_cli/tools/mcp.py,sha256=12f63c9ee5b82a5b0f23daca0b5ce4ceb3a6190ce5b553ee24e499699521e426,3620
43
- kimi_cli/tools/task/__init__.py,sha256=82b1d73280ba3b616c2a0b3432a854e08786289002abc8233f3186b8f3bcd94f,5915
44
- kimi_cli/tools/task/task.md,sha256=eaac7458676271423e53862bb27906ed8df3b86c767abd69e28a5d52f9eecdbf,2280
45
- kimi_cli/tools/test.py,sha256=c094a91a2d1a5259e192f1147facd5eebd5e5c413787fce167db90e4b41b5119,1442
46
- kimi_cli/tools/think/__init__.py,sha256=31b06088e2404cb09d42e0acec97c185e4861890bb687f28b41f39cea01b5733,603
47
- kimi_cli/tools/think/think.md,sha256=ab40d4de1d8adb208384a4ab548e35776283cb0a681c6e208b041fc40ccba724,200
48
- kimi_cli/tools/todo/__init__.py,sha256=a21948c8635c42743e99651297ba20430c82e75a5f862e1952143987811ac009,881
49
- kimi_cli/tools/todo/set_todo_list.md,sha256=89509503f43ab321d440a04dc133ddc3e29859f68907a42c39e6093f7bfd485c,1654
50
- kimi_cli/tools/utils.py,sha256=5331f57c95df817285a5a1ea2921bee3b0bcabf6fc50eb4abcb6587839323443,4580
51
- kimi_cli/tools/web/__init__.py,sha256=e13108c598828a8a05907a7a821e7ac92f5d63572bb9866dc12ca026094acb42,95
52
- kimi_cli/tools/web/fetch.md,sha256=56d00bd93b4e379c4f7efe445fce963eb26b8d20f85d4c19097ba6f33bd0019a,67
53
- kimi_cli/tools/web/fetch.py,sha256=f0e00464e8c5e6fadd7a31b27eded781921bffdaa6fcbd0ca79247e71fe2e61b,3132
54
- kimi_cli/tools/web/search.md,sha256=24049f9e90d37083e0fc78b8b2e3a5f6fadf09bea00f36712b235d1212a2f532,146
55
- kimi_cli/tools/web/search.py,sha256=cba367a80b224c2a80e61c0c33bca6ff61c57b202a2e9f8037e221a60f05c340,4295
56
- kimi_cli/ui/__init__.py,sha256=6846e79b55b823e722c7d9189f87961f489918f1071d502633f250023b2a0ed9,2342
57
- kimi_cli/ui/acp/__init__.py,sha256=e5a93c3bbbb919fae41cedd829dbe1363ebcb56feb6413c47071692876007d52,17349
58
- kimi_cli/ui/print/__init__.py,sha256=6c3c341bf11edd022806103a49a6895802a50ab887623525a494d456ec6ffeb1,6687
59
- kimi_cli/ui/shell/__init__.py,sha256=18d9f4ef25bc6b39d0d1e58970f92f2586e17f859bd69241ff5aa20f08e8d80f,12495
60
- kimi_cli/ui/shell/console.py,sha256=4f8c420286acc83e85f8eefd34a543db77ff92f5616f15f8b70754c43dfc254f,69
61
- kimi_cli/ui/shell/liveview.py,sha256=c676f84fbaf4ceb3b9a8c816b24701c21f8d45dd93862222e7a37d1312de5c81,5841
62
- kimi_cli/ui/shell/metacmd.py,sha256=71e743a0642ec4d5bf4c68a760a43e046161946de22f062ffd1c8f4641eca9ff,9501
63
- kimi_cli/ui/shell/prompt.py,sha256=f85446d77b998e2594380c29000b06614e3fae8537db46ec96fc5ddc25490b45,19096
64
- kimi_cli/ui/shell/setup.py,sha256=a35651c3f0583cf5bdc5169530cc33df4942196c7cbc6cff6c47990dec4ff40a,5387
65
- kimi_cli/ui/shell/update.py,sha256=e37b521ed39bdb183e01b19729861fc7751cb21240f49320157766f8908b5691,7110
66
- kimi_cli/utils/changelog.py,sha256=9d9ae05f32e90a53d40626fca437b9a10e8bec5b3e63e9348135969dcab4380e,3380
67
- kimi_cli/utils/logging.py,sha256=129298ac214ecd8d913c3431cc05d754f9c4c8c4042c458618bf9e8ddebdb763,399
68
- kimi_cli/utils/message.py,sha256=ca8f8d3c7dc6d4fce938d1cfe8a7a7343e39ce1e2f0c7b2d76d838edc7d9f187,304
69
- kimi_cli/utils/path.py,sha256=fdd4fc08999ddc7c610f884b4ba8d27932248b9ed06b5eb4139519edd00b3f75,687
70
- kimi_cli/utils/provider.py,sha256=351207d17bf5a509b2758fd9757fdb0119cf36274c68e18c0da88953bbdad44c,2371
71
- kimi_cli/utils/pyinstaller.py,sha256=e5d709d0490ef8645bbed2d2363920c59f25bd17c04f471bf4a8c0fa2ebe1801,581
72
- kimi_cli/utils/string.py,sha256=f8a842ee014b9023d4045392f33ca6f576f5238ad3d40cb6df071a3ce9f5ed9c,365
73
- kimi_cli-0.35.dist-info/WHEEL,sha256=70ab3c2925fe316809860cb034f99ba13c4b49819b339959274aab755cc084a8,78
74
- kimi_cli-0.35.dist-info/entry_points.txt,sha256=d5b0f8ebf823d7590e90bf9511c8ab13f73db97cba1e1fc88585d8d7b415bcc2,40
75
- kimi_cli-0.35.dist-info/METADATA,sha256=66928c2eebde963171b9a1fd2544215fe9a0ab684aff08dfe4b896adce9ac81a,685
76
- kimi_cli-0.35.dist-info/RECORD,,
@@ -1,3 +0,0 @@
1
- [console_scripts]
2
- kimi = kimi_cli:main
3
-
File without changes
File without changes
File without changes