axe-cli 1.7.8__tar.gz → 1.7.9__tar.gz
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.
- {axe_cli-1.7.8 → axe_cli-1.7.9}/PKG-INFO +1 -1
- {axe_cli-1.7.8 → axe_cli-1.7.9}/pyproject.toml +1 -1
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/app.py +8 -3
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/config.py +2 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/llm.py +6 -3
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/soul/agent.py +5 -1
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/soul/axesoul.py +10 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/ui/shell/__init__.py +2 -2
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/ui/shell/slash.py +1 -1
- {axe_cli-1.7.8 → axe_cli-1.7.9}/README.md +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/CHANGELOG.md +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/README.md +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/__init__.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/acp/AGENTS.md +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/acp/__init__.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/acp/convert.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/acp/kaos.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/acp/mcp.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/acp/server.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/acp/session.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/acp/tools.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/acp/types.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/agents/README.md +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/agents/default/agent.yaml +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/agents/default/sub.yaml +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/agents/default/system.md +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/agents/okabe/agent.yaml +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/agentspec.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/auth/__init__.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/auth/oauth.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/auth/platforms.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/cli/__init__.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/cli/__main__.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/cli/info.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/cli/mcp.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/cli/toad.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/constant.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/exception.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/metadata.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/prompts/__init__.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/prompts/compact.md +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/prompts/init.md +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/py.typed +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/session.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/share.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/skill/__init__.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/skill/flow/__init__.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/skill/flow/d2.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/skill/flow/mermaid.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/skills/README.md +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/skills/axe-cli-help/SKILL.md +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/skills/skill-creator/SKILL.md +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/soul/__init__.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/soul/approval.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/soul/compaction.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/soul/context.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/soul/denwarenji.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/soul/message.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/soul/slash.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/soul/toolset.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/token_counter.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/AGENTS.md +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/README.md +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/__init__.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/axe/__init__.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/axe/auto_init.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/axe/context.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/axe/impact.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/axe/index.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/axe/prewarm.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/axe/search.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/axe/structure.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/axe/warm.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/display.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/dmail/__init__.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/dmail/dmail.md +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/file/__init__.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/file/glob.md +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/file/glob.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/file/grep.md +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/file/grep_local.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/file/read.md +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/file/read.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/file/read_media.md +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/file/read_media.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/file/replace.md +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/file/replace.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/file/utils.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/file/write.md +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/file/write.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/multiagent/__init__.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/multiagent/create.md +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/multiagent/create.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/multiagent/task.md +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/multiagent/task.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/shell/__init__.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/shell/bash.md +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/shell/powershell.md +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/test.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/think/__init__.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/think/think.md +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/todo/__init__.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/todo/set_todo_list.md +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/utils.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/web/__init__.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/web/fetch.md +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/web/fetch.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/web/search.md +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/tools/web/search.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/ui/__init__.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/ui/acp/__init__.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/ui/print/__init__.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/ui/print/visualize.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/ui/shell/console.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/ui/shell/debug.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/ui/shell/keyboard.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/ui/shell/oauth.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/ui/shell/prompt.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/ui/shell/replay.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/ui/shell/setup.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/ui/shell/update.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/ui/shell/usage.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/ui/shell/visualize.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/utils/__init__.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/utils/aiohttp.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/utils/aioqueue.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/utils/broadcast.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/utils/changelog.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/utils/clipboard.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/utils/datetime.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/utils/diff.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/utils/environment.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/utils/envvar.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/utils/frontmatter.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/utils/logging.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/utils/media_tags.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/utils/message.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/utils/path.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/utils/pyinstaller.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/utils/rich/__init__.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/utils/rich/columns.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/utils/rich/markdown.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/utils/rich/markdown_sample.md +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/utils/rich/markdown_sample_short.md +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/utils/rich/syntax.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/utils/signals.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/utils/slashcmd.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/utils/string.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/utils/term.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/utils/typing.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/wire/__init__.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/wire/file.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/wire/jsonrpc.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/wire/protocol.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/wire/serde.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/wire/server.py +0 -0
- {axe_cli-1.7.8 → axe_cli-1.7.9}/src/axe_cli/wire/types.py +0 -0
|
@@ -108,16 +108,19 @@ class AxeCLI:
|
|
|
108
108
|
|
|
109
109
|
model: LLMModel | None = None
|
|
110
110
|
provider: LLMProvider | None = None
|
|
111
|
+
model_config_name: str | None = None
|
|
111
112
|
|
|
112
113
|
# try to use config file
|
|
113
114
|
if not model_name and config.default_model:
|
|
114
115
|
# no --model specified && default model is set in config
|
|
115
116
|
model = config.models[config.default_model]
|
|
116
117
|
provider = config.providers[model.provider]
|
|
118
|
+
model_config_name = config.default_model
|
|
117
119
|
if model_name and model_name in config.models:
|
|
118
120
|
# --model specified && model is set in config
|
|
119
121
|
model = config.models[model_name]
|
|
120
122
|
provider = config.providers[model.provider]
|
|
123
|
+
model_config_name = model_name
|
|
121
124
|
|
|
122
125
|
if not model:
|
|
123
126
|
model = LLMModel(provider="", model="", max_context_size=100_000)
|
|
@@ -142,7 +145,7 @@ class AxeCLI:
|
|
|
142
145
|
logger.info("Using LLM model: {model}", model=model)
|
|
143
146
|
logger.info("Thinking mode: {thinking}", thinking=thinking)
|
|
144
147
|
|
|
145
|
-
runtime = await Runtime.create(config, llm, session, yolo, skills_dir)
|
|
148
|
+
runtime = await Runtime.create(config, llm, model_config_name, session, yolo, skills_dir)
|
|
146
149
|
|
|
147
150
|
if agent_file is None:
|
|
148
151
|
agent_file = DEFAULT_AGENT_FILE
|
|
@@ -152,17 +155,19 @@ class AxeCLI:
|
|
|
152
155
|
await context.restore()
|
|
153
156
|
|
|
154
157
|
soul = AxeSoul(agent, context=context)
|
|
155
|
-
return AxeCLI(soul, runtime, env_overrides)
|
|
158
|
+
return AxeCLI(soul, runtime, env_overrides, model)
|
|
156
159
|
|
|
157
160
|
def __init__(
|
|
158
161
|
self,
|
|
159
162
|
_soul: AxeSoul,
|
|
160
163
|
_runtime: Runtime,
|
|
161
164
|
_env_overrides: dict[str, str],
|
|
165
|
+
_model_config: LLMModel | None = None,
|
|
162
166
|
) -> None:
|
|
163
167
|
self._soul = _soul
|
|
164
168
|
self._runtime = _runtime
|
|
165
169
|
self._env_overrides = _env_overrides
|
|
170
|
+
self._model_config = _model_config
|
|
166
171
|
|
|
167
172
|
@property
|
|
168
173
|
def soul(self) -> AxeSoul:
|
|
@@ -288,7 +293,7 @@ class AxeCLI:
|
|
|
288
293
|
welcome_info.append(
|
|
289
294
|
WelcomeInfoItem(
|
|
290
295
|
name="Model",
|
|
291
|
-
value=model_display_name(self._soul.model_name),
|
|
296
|
+
value=model_display_name(self._model_config or self._soul.model_name),
|
|
292
297
|
level=WelcomeInfoItem.Level.INFO,
|
|
293
298
|
)
|
|
294
299
|
)
|
|
@@ -52,6 +52,8 @@ class LLMModel(BaseModel):
|
|
|
52
52
|
"""Provider name"""
|
|
53
53
|
model: str
|
|
54
54
|
"""Model name"""
|
|
55
|
+
alias: str | None = None
|
|
56
|
+
"""Model alias for nickname switch"""
|
|
55
57
|
max_context_size: int
|
|
56
58
|
"""Maximum context size (unit: tokens)"""
|
|
57
59
|
capabilities: set[ModelCapability] | None = None
|
|
@@ -45,10 +45,13 @@ class LLM:
|
|
|
45
45
|
return self.chat_provider.model_name
|
|
46
46
|
|
|
47
47
|
|
|
48
|
-
def model_display_name(
|
|
49
|
-
if
|
|
48
|
+
def model_display_name(model: LLMModel | str | None) -> str:
|
|
49
|
+
"""Get display name for a model, using alias if available."""
|
|
50
|
+
if model is None:
|
|
50
51
|
return ""
|
|
51
|
-
|
|
52
|
+
if isinstance(model, str):
|
|
53
|
+
return model
|
|
54
|
+
return model.alias or model.model
|
|
52
55
|
|
|
53
56
|
|
|
54
57
|
def augment_provider_with_env_vars(provider: LLMProvider, model: LLMModel) -> dict[str, str]:
|
|
@@ -64,6 +64,7 @@ class Runtime:
|
|
|
64
64
|
|
|
65
65
|
config: Config
|
|
66
66
|
llm: LLM | None # we do not freeze the `Runtime` dataclass because LLM can be changed
|
|
67
|
+
model_config_name: str | None # name of the model config from config.toml
|
|
67
68
|
session: Session
|
|
68
69
|
builtin_args: BuiltinSystemPromptArgs
|
|
69
70
|
denwa_renji: DenwaRenji
|
|
@@ -73,10 +74,10 @@ class Runtime:
|
|
|
73
74
|
skills: dict[str, Skill]
|
|
74
75
|
oauth: OAuthManager
|
|
75
76
|
|
|
76
|
-
@staticmethod
|
|
77
77
|
async def create(
|
|
78
78
|
config: Config,
|
|
79
79
|
llm: LLM | None,
|
|
80
|
+
model_config_name: str | None,
|
|
80
81
|
session: Session,
|
|
81
82
|
yolo: bool,
|
|
82
83
|
skills_dir: KaosPath | None = None,
|
|
@@ -106,6 +107,7 @@ class Runtime:
|
|
|
106
107
|
return Runtime(
|
|
107
108
|
config=config,
|
|
108
109
|
llm=llm,
|
|
110
|
+
model_config_name=model_config_name,
|
|
109
111
|
session=session,
|
|
110
112
|
builtin_args=BuiltinSystemPromptArgs(
|
|
111
113
|
AXE_NOW=datetime.now().astimezone().isoformat(),
|
|
@@ -127,6 +129,7 @@ class Runtime:
|
|
|
127
129
|
return Runtime(
|
|
128
130
|
config=self.config,
|
|
129
131
|
llm=self.llm,
|
|
132
|
+
model_config_name=self.model_config_name,
|
|
130
133
|
session=self.session,
|
|
131
134
|
builtin_args=self.builtin_args,
|
|
132
135
|
denwa_renji=DenwaRenji(), # subagent must have its own DenwaRenji
|
|
@@ -142,6 +145,7 @@ class Runtime:
|
|
|
142
145
|
return Runtime(
|
|
143
146
|
config=self.config,
|
|
144
147
|
llm=self.llm,
|
|
148
|
+
model_config_name=self.model_config_name,
|
|
145
149
|
session=self.session,
|
|
146
150
|
builtin_args=self.builtin_args,
|
|
147
151
|
denwa_renji=DenwaRenji(), # subagent must have its own DenwaRenji
|
|
@@ -133,6 +133,16 @@ class AxeSoul:
|
|
|
133
133
|
def model_name(self) -> str:
|
|
134
134
|
return self._runtime.llm.chat_provider.model_name if self._runtime.llm else ""
|
|
135
135
|
|
|
136
|
+
@property
|
|
137
|
+
def model_display_name(self) -> str:
|
|
138
|
+
"""Get the display name for the model (uses alias if available)."""
|
|
139
|
+
if self._runtime.llm is None:
|
|
140
|
+
return ""
|
|
141
|
+
if self._runtime.model_config_name and self._runtime.model_config_name in self._runtime.config.models:
|
|
142
|
+
model_cfg = self._runtime.config.models[self._runtime.model_config_name]
|
|
143
|
+
return model_cfg.alias or model_cfg.model
|
|
144
|
+
return self._runtime.llm.chat_provider.model_name
|
|
145
|
+
|
|
136
146
|
@property
|
|
137
147
|
def model_capabilities(self) -> set[ModelCapability] | None:
|
|
138
148
|
if self._runtime.llm is None:
|
|
@@ -59,7 +59,7 @@ class Shell:
|
|
|
59
59
|
else:
|
|
60
60
|
self._start_background_task(self._auto_update())
|
|
61
61
|
|
|
62
|
-
_print_welcome_info(self.soul.name or "
|
|
62
|
+
_print_welcome_info(self.soul.name or "axe", self._welcome_info)
|
|
63
63
|
|
|
64
64
|
if isinstance(self.soul, AxeSoul):
|
|
65
65
|
await replay_recent_history(
|
|
@@ -70,7 +70,7 @@ class Shell:
|
|
|
70
70
|
with CustomPromptSession(
|
|
71
71
|
status_provider=lambda: self.soul.status,
|
|
72
72
|
model_capabilities=self.soul.model_capabilities or set(),
|
|
73
|
-
model_name=self.soul.
|
|
73
|
+
model_name=self.soul.model_display_name,
|
|
74
74
|
thinking=self.soul.thinking or False,
|
|
75
75
|
agent_mode_slash_commands=list(self._available_slash_commands.values()),
|
|
76
76
|
shell_mode_slash_commands=shell_mode_registry.list_commands(),
|
|
@@ -173,7 +173,7 @@ async def model(app: Shell, args: str):
|
|
|
173
173
|
model_cfg = config.models[name]
|
|
174
174
|
provider_label = model_cfg.provider
|
|
175
175
|
marker = " (current)" if name == curr_model_name else ""
|
|
176
|
-
label = f"{model_cfg.model} ({provider_label}){marker}"
|
|
176
|
+
label = f"{model_cfg.alias or model_cfg.model} ({provider_label}){marker}"
|
|
177
177
|
model_choices.append((name, label))
|
|
178
178
|
|
|
179
179
|
try:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|