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
50 changes: 33 additions & 17 deletions design-system/registry/components.json
Original file line number Diff line number Diff line change
Expand Up @@ -1890,6 +1890,22 @@
"shell.css"
]
},
"tabbed-window": {
"classes": [
"tabbed-window"
],
"files": [
"shell.css"
]
},
"tabbed-window-tabs": {
"classes": [
"tabbed-window-tabs"
],
"files": [
"shell.css"
]
},
"table-wrap": {
"classes": [
"table-wrap"
Expand Down Expand Up @@ -2148,7 +2164,7 @@
"prop": "display",
"value": "inline-flex",
"file": "shell.css",
"line": 1060
"line": 1069
},
{
"selector": ".app.is-collapsed .user-trigger > svg",
Expand All @@ -2157,7 +2173,7 @@
"prop": "display",
"value": "inline-flex",
"file": "shell.css",
"line": 1060
"line": 1069
},
{
"selector": ".app.is-collapsed .user-trigger",
Expand All @@ -2166,21 +2182,21 @@
"prop": "padding",
"value": "6px 8px",
"file": "shell.css",
"line": 1069
"line": 1078
},
{
"selector": ".liquid-metal::after",
"prop": "inset",
"value": "-5px",
"file": "shell.css",
"line": 1235
"line": 1244
},
{
"selector": ".liquid-metal::after",
"prop": "padding",
"value": "5px",
"file": "shell.css",
"line": 1236
"line": 1245
}
],
"ghostRules": [
Expand All @@ -2191,8 +2207,8 @@
"prop": "display",
"value": "revert",
"file": "shell.css",
"line": 1053,
"losesTo": "shell.css:1060"
"line": 1062,
"losesTo": "shell.css:1069"
},
{
"selector": ".app.is-collapsed .user-trigger > svg",
Expand All @@ -2201,8 +2217,8 @@
"prop": "display",
"value": "revert",
"file": "shell.css",
"line": 1053,
"losesTo": "shell.css:1060"
"line": 1062,
"losesTo": "shell.css:1069"
},
{
"selector": ".app.is-collapsed .user-trigger",
Expand All @@ -2211,24 +2227,24 @@
"prop": "padding",
"value": "0 10px",
"file": "shell.css",
"line": 1065,
"losesTo": "shell.css:1069"
"line": 1074,
"losesTo": "shell.css:1078"
},
{
"selector": ".liquid-metal::after",
"prop": "inset",
"value": "-2px",
"file": "shell.css",
"line": 1191,
"losesTo": "shell.css:1235"
"line": 1200,
"losesTo": "shell.css:1244"
},
{
"selector": ".liquid-metal::after",
"prop": "padding",
"value": "2px",
"file": "shell.css",
"line": 1193,
"losesTo": "shell.css:1236"
"line": 1202,
"losesTo": "shell.css:1245"
}
],
"componentSheets": {
Expand All @@ -2244,8 +2260,8 @@
"stats": {
"tokens": 58,
"darkOverrides": 50,
"blocks": 223,
"classes": 241,
"blocks": 225,
"classes": 243,
"canonicalRules": 5,
"ghostRules": 5
}
Expand Down
24 changes: 13 additions & 11 deletions design-system/registry/llms.txt
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@
### sidebar
--sidebar-width-collapsed: 60px

## Blocks (223 BEM blocks, 241 classes)
## Blocks (225 BEM blocks, 243 classes)
actions (shell.css): actions
agent-type-select (shell.css): agent-type-select__option
alert-row (shell.css): alert-row
Expand Down Expand Up @@ -275,6 +275,8 @@ status (base.css): status
sub (canvas.css, shell.css): sub
switch (base.css): switch
tab (shell.css): tab
tabbed-window (shell.css): tabbed-window
tabbed-window-tabs (shell.css): tabbed-window-tabs
table-wrap (base.css): table-wrap
tabs (shell.css): tabs
toast (shell.css): toast
Expand Down Expand Up @@ -322,18 +324,18 @@ Tabs: src/components/ui.tsx
(empty until primitives exist)

## Canonical rules — same selector+property declared twice with different values; the winner renders (5)
.app.is-collapsed .nav-action { display: inline-flex } ← shell.css:1060 [@media (max-width: 900px)]
.app.is-collapsed .user-trigger > svg { display: inline-flex } ← shell.css:1060 [@media (max-width: 900px)]
.app.is-collapsed .user-trigger { padding: 6px 8px } ← shell.css:1069 [@media (max-width: 900px)]
.liquid-metal::after { inset: -5px } ← shell.css:1235
.liquid-metal::after { padding: 5px } ← shell.css:1236
.app.is-collapsed .nav-action { display: inline-flex } ← shell.css:1069 [@media (max-width: 900px)]
.app.is-collapsed .user-trigger > svg { display: inline-flex } ← shell.css:1069 [@media (max-width: 900px)]
.app.is-collapsed .user-trigger { padding: 6px 8px } ← shell.css:1078 [@media (max-width: 900px)]
.liquid-metal::after { inset: -5px } ← shell.css:1244
.liquid-metal::after { padding: 5px } ← shell.css:1245

## Ghost rules — declared but always losing; edit the canonical rule instead, delete these in the refactor project (5)
.app.is-collapsed .nav-action { display: revert } at shell.css:1053 loses to shell.css:1060
.app.is-collapsed .user-trigger > svg { display: revert } at shell.css:1053 loses to shell.css:1060
.app.is-collapsed .user-trigger { padding: 0 10px } at shell.css:1065 loses to shell.css:1069
.liquid-metal::after { inset: -2px } at shell.css:1191 loses to shell.css:1235
.liquid-metal::after { padding: 2px } at shell.css:1193 loses to shell.css:1236
.app.is-collapsed .nav-action { display: revert } at shell.css:1062 loses to shell.css:1069
.app.is-collapsed .user-trigger > svg { display: revert } at shell.css:1062 loses to shell.css:1069
.app.is-collapsed .user-trigger { padding: 0 10px } at shell.css:1074 loses to shell.css:1078
.liquid-metal::after { inset: -2px } at shell.css:1200 loses to shell.css:1244
.liquid-metal::after { padding: 2px } at shell.css:1202 loses to shell.css:1245

## Component-loaded sheets — imported by components, not index.css; they load after the global styles (2)
canvas.css ← pages/Topology.tsx
Expand Down
9 changes: 9 additions & 0 deletions docs/releases/0.29.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Thinker 0.29.0

```bash
docker pull tmsoftbrasil/thinker:0.29.0
```

## Mudanças

- feat: CLI manages every workspace object (local servers, connection settings, triggers, outbound proxies, alerts, limits, organizations, users), connection page tabs Activity and Models, Manage as a tabbed floating window, sidebar highlights the account kind, runtime icons for local servers in breadcrumb and Topology
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions packages/backend/src/console/topology.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,8 @@ export interface TopologyProvider extends Usage {
name: string;
label: string;
active: boolean;
/** Runtime of a local server added as a custom provider (lmstudio, ollama, llamacpp). */
localType: string | null;
}

/** An outbound proxy profile, or the global proxy of the environment (`profileId` null). */
Expand Down Expand Up @@ -479,6 +481,7 @@ export class TopologyService {
name: customById.get(c.provider.toLowerCase())?.name ?? c.provider,
label: c.label,
active: c.is_active,
localType: customById.get(c.provider.toLowerCase())?.local_type ?? null,
...zero(),
});
}
Expand Down
21 changes: 12 additions & 9 deletions packages/cli/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,15 +49,18 @@ The CLI uses that gateway for later commands. You can select another gateway wit

## Useful commands

| Task | Command |
| ------------------------------ | ------------------------------------------------ |
| Check your connection | `thinker doctor` |
| List available agent platforms | `thinker agent platforms` |
| List connectable providers | `thinker provider catalog` |
| Review an agent's routing | `thinker routing status my-app` |
| Read or set model params | `thinker routing params get my-app` |
| Read recent requests | `thinker requests get --agent my-app --range 7d` |
| See all commands and options | `thinker --help` |
| Task | Command |
| -------------------------------- | -------------------------------------------------------------------------------- |
| Check your connection | `thinker doctor` |
| List available agent platforms | `thinker agent platforms` |
| List connectable providers | `thinker provider catalog` |
| Review an agent's routing | `thinker routing status my-app` |
| Read or set model params | `thinker routing params get my-app` |
| Read recent requests | `thinker requests get --agent my-app --range 7d` |
| Add an LM Studio/Ollama server | `thinker provider local add --type lmstudio --name lab --host 10.0.0.5` |
| Manage triggers, proxies, limits | `thinker trigger list`, `thinker proxy server list`, `thinker limit list my-app` |
| Manage workspaces and users | `thinker org list`, `thinker user list` |
| See all commands and options | `thinker --help` |

Most commands write JSON to stdout for scripts and coding agents. `thinker agent env` and `thinker skill show` write text. `thinker routing test` sends a real provider request, which may incur provider charges. Destructive commands require `--yes`.

Expand Down
2 changes: 2 additions & 0 deletions packages/cli/skill/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,3 +53,5 @@ Namespace = scope: `provider *` acts tenant-wide, `agent *` acts on one agent, `
- Slurping the whole request log — pagination is one page per call by design; loop on `next_cursor`.

Also on the surface when needed: `thinker doctor` (first stop when anything is wrong), `agent setup <name> [--reveal]` (setup block anytime; key masked unless revealed), `agent key path|show`, `agent provider enable|disable <agent> <provider>`, `agent rotate-key` (revocation is instant), `thinker models <agent> --cost --capabilities`.

Workspace objects beyond agents and routes, all JSON in and out: `provider local add --type ollama|lmstudio|llamacpp` (probes the runtime's native API, then registers it), `connection set <id>` (base URL and stream timeouts; `default` clears), `trigger`, `proxy server|profile|assign`, `alert`, `limit`, `org`, `user`. Their create/update commands take typed flags plus `--data '<json>'` / `--data-file` / `--data-stdin` and repeatable `--set path=value` (dotted paths nest), so a field without its own flag is still reachable — e.g. `thinker trigger create --name Graylog --type gelf --set config.host=logs --set config.port=12201`. Objects are addressed by id or name (users by email).
Loading
Loading