Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions charts/openab/templates/configmap.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,12 @@ data:
[reactions]
enabled = {{ ($cfg.reactions).enabled | default true }}
remove_after_reply = {{ ($cfg.reactions).removeAfterReply | default false }}
{{- if ($cfg.reactions).toolDisplay }}
{{- if not (has ($cfg.reactions).toolDisplay (list "full" "compact" "none")) }}
{{- fail (printf "agents.%s.reactions.toolDisplay must be one of: full, compact, none — got: %s" $name ($cfg.reactions).toolDisplay) }}
{{- end }}
tool_display = {{ ($cfg.reactions).toolDisplay | toJson }}
{{- end }}
{{- if ($cfg.stt).enabled }}
{{- if not ($cfg.stt).apiKey }}
{{ fail (printf "agents.%s.stt.apiKey is required when stt.enabled=true" $name) }}
Expand Down
40 changes: 40 additions & 0 deletions charts/openab/tests/tool-display_test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
suite: toolDisplay
templates:
- templates/configmap.yaml
tests:
- it: renders tool_display = "compact"
set:
agents.kiro.reactions.toolDisplay: compact
asserts:
- matchRegex:
path: data["config.toml"]
pattern: 'tool_display = "compact"'

- it: renders tool_display = "full"
set:
agents.kiro.reactions.toolDisplay: full
asserts:
- matchRegex:
path: data["config.toml"]
pattern: 'tool_display = "full"'

- it: renders tool_display = "none"
set:
agents.kiro.reactions.toolDisplay: none
asserts:
- matchRegex:
path: data["config.toml"]
pattern: 'tool_display = "none"'

- it: omits tool_display when not set
asserts:
- notMatchRegex:
path: data["config.toml"]
pattern: tool_display

- it: rejects invalid toolDisplay value
set:
agents.kiro.reactions.toolDisplay: hidden
asserts:
- failedTemplate:
errorPattern: "must be one of: full, compact, none"
7 changes: 7 additions & 0 deletions charts/openab/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ agents:
# reactions:
# enabled: true
# removeAfterReply: false
# # toolDisplay: "compact" (default) | "full" | "none"
# persistence:
# enabled: true
# storageClass: ""
Expand Down Expand Up @@ -80,6 +81,7 @@ agents:
# reactions:
# enabled: true
# removeAfterReply: false
# # toolDisplay: "compact" (default) | "full" | "none"
# persistence:
# enabled: true
# storageClass: ""
Expand Down Expand Up @@ -109,6 +111,7 @@ agents:
# reactions:
# enabled: true
# removeAfterReply: false
# # toolDisplay: "compact" (default) | "full" | "none"
# persistence:
# enabled: true
# storageClass: ""
Expand Down Expand Up @@ -164,6 +167,10 @@ agents:
reactions:
enabled: true
removeAfterReply: false
# toolDisplay: "compact" (default) | "full" | "none"
# compact: show count summary (e.g. ✅ 3 · 🔧 1 tool(s))
# full: show complete tool titles (for debugging)
# none: hide tool lines entirely
stt:
enabled: false
apiKey: ""
Expand Down
2 changes: 2 additions & 0 deletions docs/config-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,7 @@ Emoji reaction feedback on messages to show agent processing status.
|-----|------|---------|-------------|
| `enabled` | bool | `true` | Enable/disable reaction feedback. |
| `remove_after_reply` | bool | `false` | Remove the status reaction after the agent replies. |
| `tool_display` | string | `"compact"` | How tool calls are rendered: `"full"` (complete title), `"compact"` (count summary, e.g. `✅ 3 · 🔧 1 tool(s)`), or `"none"` (hidden). |

### `[reactions.emojis]`

Expand Down Expand Up @@ -307,6 +308,7 @@ Key mapping (`values.yaml` → `config.toml`):
| `agents.<name>.pool.maxSessions` | `[pool] max_sessions` |
| `agents.<name>.pool.sessionTtlHours` | `[pool] session_ttl_hours` |
| `agents.<name>.reactions.enabled` | `[reactions] enabled` |
| `agents.<name>.reactions.toolDisplay` | `[reactions] tool_display` |
| `agents.<name>.stt.apiKey` | `[stt] api_key` |
| `agents.<name>.cronjobs[].enabled` | `[[cron.jobs]] enabled` |
| `agents.<name>.cronjobs[].schedule` | `[[cron.jobs]] schedule` |
Expand Down
71 changes: 71 additions & 0 deletions docs/tool-display.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# Tool Display Configuration

Control how tool calls are rendered in chat messages during agent responses.

## Configuration

```toml
[reactions]
tool_display = "compact" # full | compact | none
```

### Helm

```yaml
agents:
kiro:
reactions:
toolDisplay: "compact" # full | compact | none
```

## Modes

### `compact` (default)

Shows a single-line count summary. No tool names, commands, or arguments are displayed.

```
✅ 3 · 🔧 1 tool(s)

Agent response text here...
```

Best for: everyday use, public channels, mobile.

### `full`

Shows each tool call with its complete title. When more than 3 tools finish, they collapse into a count summary automatically.

```
✅ `curl -s "https://ghcr.io/v2/openabdev/charts/openab/tags/list"`
✅ `grep -r "pattern" src/`
🔧 `npm install`...

Agent response text here...
```

Best for: debugging, understanding what the agent is doing step by step.

### `none`

Hides tool lines entirely. Only the final agent response is shown. Reaction emojis (🔧→✅) still work, so you can tell the agent is busy.

```
Agent response text here...
```

Best for: clean output when you only care about the final answer.

## Icons

| Icon | Meaning |
|------|---------|
| 🔧 | Tool is running |
| ✅ | Tool completed successfully |
| ❌ | Tool failed |

## Notes

- **Default changed**: `compact` is the new default. Previously, tool calls were always shown in full. If you want the old behavior, set `tool_display = "full"`.
- **Reaction emojis are independent**: The emoji reactions on messages (👀→🤔→🔧→🆗) work regardless of `tool_display` setting.
- **Streaming behavior**: In `compact` mode, the count updates in real-time as tools start and finish. In `full` mode, individual tool lines appear and update during streaming.
Loading
Loading