Файли
openidea/src/features/agents/AgentRegistry.module.css
T
arookieofcтаa-rookie-of-C-language 9dbae1d189 feat(agents): configurable executable for every built-in agent (#682)
Settings › Tools › Agents is split into Built-in and ACP Registry tabs. The Built-in tab lists every built-in agent with its status (custom executable or not found on PATH) and, for the selected agent, its default launch line, an Executable field (empty = auto-detect on PATH) with Browse and Reset, and its sign-in hint. Edits are staged with the Settings dialog and written on Apply / OK; Cancel discards them.

The override is written to <config>/agents/<id>.toml, keeping hand-written name, driver, args and env; resetting a command-only override removes the file. AgentProvider now exposes the program, args, built-in defaults, login hint and whether the command is editable: built-ins started through a package runner (npx) and registry installs are read-only, with the reason shown.

Fixes #596

Co-authored-by: a-rookie-of-C-language <[email protected]>
2026-11-03 21:55:51 +08:00

139 рядки
2.2 KiB
CSS

.body {
display: flex;
flex-direction: column;
gap: 12px;
height: 100%;
min-height: 0;
}
/* The compact variant may shrink in toolbars; here it keeps its height above the panes. */
.tabs {
flex: none;
}
.notice,
.warning,
.error,
.empty {
margin: 0;
font-size: var(--fs-small);
overflow-wrap: anywhere;
}
.notice {
color: var(--fg-muted);
}
.warning {
color: var(--warning);
}
.error {
color: var(--danger);
white-space: pre-wrap;
}
.empty {
padding: 16px 4px;
color: var(--fg-subtle);
text-align: center;
}
.list {
flex: 1;
min-height: 240px;
overflow: auto;
border: 1px solid var(--border-strong);
border-radius: var(--radius-control);
}
.loading {
height: 100%;
display: flex;
align-items: center;
justify-content: center;
gap: 8px;
color: var(--fg-muted);
font-size: var(--fs-small);
}
.rows {
margin: 0;
padding: 0;
list-style: none;
}
.row {
display: flex;
align-items: flex-start;
gap: 12px;
padding: 8px 10px;
border-bottom: 1px solid var(--border);
}
.row:last-child {
border-bottom: none;
}
.main {
flex: 1;
min-width: 0;
display: flex;
flex-direction: column;
gap: 3px;
}
.titleLine {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 6px;
}
.name {
color: var(--fg-strong);
font-weight: 600;
}
.version {
color: var(--fg-muted);
font-size: var(--fs-small);
}
.description {
margin: 0;
color: var(--fg-secondary);
font-size: var(--fs-small);
overflow-wrap: anywhere;
}
.meta {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 4px 10px;
color: var(--fg-subtle);
font-size: var(--fs-tiny);
}
.link {
padding: 0;
border: none;
background: none;
color: var(--link);
font: inherit;
cursor: pointer;
}
.link:hover {
color: var(--link-hover);
text-decoration: underline;
}
.link:focus-visible {
outline: 1px solid var(--accent);
outline-offset: 1px;
}
.progress {
display: flex;
flex-direction: column;
gap: 3px;
margin-top: 4px;
}
.progressText {
color: var(--fg-muted);
font-size: var(--fs-tiny);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.actions {
flex: none;
display: flex;
gap: 6px;
}